diff --git a/class/Api.php b/class/Api.php index c30d39b..02c325a 100755 --- a/class/Api.php +++ b/class/Api.php @@ -781,6 +781,13 @@ class Api { //数据库sql目录 $sql_dir = 'db/sql/'; $name = $data['name']; + //查询sql是否已经执行过 + $count = $this->db->count("on_db_logs",[ + "sql_name" => $name + ]); + if( $count >= 1 ) { + $this->err_msg(-2000,$name."已经更新过!"); + } $sql_name = $sql_dir.$name; //如果文件不存在,直接返回错误 if ( !file_exists($sql_name) ) { @@ -788,8 +795,16 @@ class Api { } //读取需要更新的SQL内容 try { - //读取一个SQL温江,并将单个SQL文件拆分成单条SQL语句循环执行 - $sql_content = explode(';',file_get_contents($sql_name)); + //读取一个SQL文件,并将单个SQL文件拆分成单条SQL语句循环执行 + switch ($name) { + case '20220414.sql': + $sql_content = explode("\n",file_get_contents($sql_name)); + break; + default: + $sql_content = explode(';',file_get_contents($sql_name)); + break; + } + //计算SQL总数 $num = count($sql_content) - 1; //初始数量设置为0 @@ -828,6 +843,59 @@ class Api { $this->err_msg(-2000,$e->getMessage()); } } + /** + * 更新option + */ + public function set_option($key,$value = '') { + $key = htmlspecialchars(trim($key)); + //如果key是空的 + if( empty($key) ) { + $this->err_msg(-2000,'键不能为空!'); + } + //鉴权 + if( !$this->is_login() ) { + $this->err_msg(-1002,'Authorization failure!'); + } + + $count = $this->db->count("on_options", [ + "key" => $key + ]); + + //如果数量是0,则插入,否则就是更新 + if( $count === 0 ) { + try { + $this->db->insert("on_options",[ + "key" => $key, + "value" => $value + ]); + $data = [ + "code" => 0, + "data" => "设置成功!" + ]; + exit(json_encode($data)); + } catch (\Throwable $th) { + $this->err_msg(-2000,$th); + } + } + //更新数据 + else if( $count === 1 ) { + try { + $this->db->update("on_options",[ + "value" => $value + ],[ + "key" => $key + ]); + $data = [ + "code" => 0, + "data" => "设置已更新!" + ]; + exit(json_encode($data)); + } catch (\Throwable $th) { + $this->err_msg(-2000,$th); + } + } + + } } diff --git a/controller/admin.php b/controller/admin.php index b30ced8..4ab751a 100755 --- a/controller/admin.php +++ b/controller/admin.php @@ -82,6 +82,114 @@ if ( $page == 'imp_link' ) { $category['checked'] = ''; } } +//主题详情页面 +if ( $page == 'setting/theme_detail' ) { + //获取主题名称 + $name = @$_GET['name']; + //主题目录 + $tpl_dir1 = dirname(__DIR__).'/templates/'.$name; + //备用主题目录 + $tps_dir2 = dirname(__DIR__).'/data/templates/'.$name; + if( is_dir($tpl_dir1) ) { + $info = file_get_contents($tpl_dir1.'/info.json'); + } + else{ + $info = file_get_contents($tpl_dir2.'/info.json'); + } + $theme = json_decode($info); + //var_dump($theme); +} + +//主题设置页面 +if( $page == 'setting/theme' ) { + //主题目录 + $tpl_dir1 = dirname(__DIR__).'/templates/'; + //备用主题目录 + $tps_dir2 = dirname(__DIR__).'/data/templates/'; + //声明两个空数组用来存放模板目录列表 + $tpl_one = []; + $tps_two = []; + //遍历第一个目录 + foreach ( scandir($tpl_dir1) as $value) { + //完整的路径 + $path = $tpl_dir1.$value; + //如果是目录,则push到目录列表1 + if( is_dir($path) ) { + switch ($value) { + case '.': + case '..': + case 'admin': + continue; + break; + default: + array_push($tpl_one,$value); + break; + } + + } + else{ + continue; + } + } + //如果第二个目录存在,则遍历 + if( is_dir($tps_dir2) ) { + foreach ( scandir($tpl_dir2) as $value) { + //完整的路径 + $path = $tpl_dir2.$value; + //如果是目录,则push到目录列表1 + if( is_dir($path) ) { + switch ($value) { + case '.': + case '..': + case 'admin': + continue; + break; + default: + array_push($tpl_two,$value); + break; + } + } + else{ + continue; + } + } + } + //合并目录 + //现在$tpl_one是合并后的完整主题列表 + array_merge($tpl_one,$tpl_two); + + //读取主题里面的信息 + //设置一个空数组 + $data = []; + + foreach ($tpl_one as $value) { + + //如果文件存在 + if( $tpl_dir1.$value.'/info.json' ) { + $data[$value]['info'] = json_decode(@file_get_contents( $tpl_dir1.$value.'/info.json' )); + } + else{ + $data[$value]['info'] = json_decode(@file_get_contents( $tpl_dir2.$value.'/info.json' )); + } + } + $themes = $data; + //获取当前主题 + $current_them = $db->get('on_options','value',[ 'key' => "theme" ]); +} + +//站点设置页面 +if( $page == 'setting/site' ) { + //获取当前站点信息 + $site = $db->get('on_options','value',[ 'key' => "s_site" ]); + $site = unserialize($site); +} + +//过渡页设置页面 +if( $page == 'setting/transition_page' ) { + //获取当前站点信息 + $transition_page = $db->get('on_options','value',[ 'key' => "s_transition_page" ]); + $transition_page = unserialize($transition_page); +} //如果是退出 //如果页面是添加链接页面 diff --git a/controller/api.php b/controller/api.php index d8c017a..11cf2bc 100755 --- a/controller/api.php +++ b/controller/api.php @@ -235,4 +235,52 @@ function get_sql_update_list($api){ function exe_sql($api) { $data['name'] = htmlspecialchars(trim($_GET['name'])); $api->exe_sql($data); +} + +//设置options表 +function set_theme($api) { + $key = 'theme'; + $value = htmlspecialchars($_POST['value']); + $api->set_option($key,$value); +} + +//设置站点信息 +function set_site($api) { + //获取传递过来的参数 + //获取网站标题 + $data['title'] = htmlspecialchars($_POST['title']); + //获取网站logo + $data['logo'] = htmlspecialchars($_POST['logo']); + //获取副标题 + $data['subtitle'] = htmlspecialchars($_POST['subtitle']); + //获取关键词 + $data['keywords'] = htmlspecialchars($_POST['keywords']); + //获取描述 + $data['description'] = htmlspecialchars($_POST['description']); + //获取自定义header + $data['custom_header'] = $_POST['custom_header']; + //序列化存储 + $value = serialize($data); + + + $api->set_option('s_site',$value); +} + +//设置过渡页面 +function set_transition_page($api) { + //获取传递过来的参数 + //获取开关 + $data['control'] = htmlspecialchars(trim($_POST['control'])); + //获取游客停留时间 + $data['visitor_stay_time'] = intval($_POST['visitor_stay_time']); + //获取管理员停留时间 + $data['admin_stay_time'] = intval($_POST['admin_stay_time']); + + //序列化存储 + $value = serialize($data); + + + + + $api->set_option('s_transition_page',$value); } \ No newline at end of file diff --git a/controller/click.php b/controller/click.php index 145f784..523d6f3 100755 --- a/controller/click.php +++ b/controller/click.php @@ -34,6 +34,14 @@ if( is_login() ) { $is_login = TRUE; } +//查询过渡页设置 +$transition_page = $db->get('on_options','value',[ 'key' => "s_transition_page" ]); +$transition_page = unserialize($transition_page); + +//获取当前站点信息 +$site = $db->get('on_options','value',[ 'key' => "s_site" ]); +$site = unserialize($site); + //link.id为公有,且category.id为公有 if( ( $link['property'] == 0 ) && ($category['property'] == 0) ){ //增加link.id的点击次数 @@ -46,10 +54,16 @@ if( ( $link['property'] == 0 ) && ($category['property'] == 0) ){ ]); //如果更新成功 if($update) { - //进行header跳转 - //header('location:'.$link['url']); - #加载跳转模板 - require('templates/admin/click.php'); + //判断是否开启过渡页面 + if ( ($transition_page['control'] == 'off') && ( empty($link['url_standby']) ) ){ + //进行header跳转 + header('location:'.$link['url']); + } + //如果备用链接不为空,或者开启了过渡页面 + else if( !empty($link['url_standby']) || ($transition_page['control'] == 'on') ) { + #加载跳转模板 + require('templates/admin/click.php'); + } exit; } } @@ -66,10 +80,15 @@ elseif( is_login() ) { //如果更新成功 if($update) { - //进行header跳转 - //header('location:'.$link['url']); - #加载跳转模板 - require('templates/admin/click.php'); + //判断是否开启过渡页面 + if ( ($transition_page['control'] == 'off') && ( empty($link['url_standby']) ) ){ + //进行header跳转 + header('location:'.$link['url']); + } + else if( !empty($link['url_standby']) || ($transition_page['control'] == 'on') ) { + #加载跳转模板 + require('templates/admin/click.php'); + } exit; } } diff --git a/controller/index.php b/controller/index.php index 14b2807..e9fc113 100755 --- a/controller/index.php +++ b/controller/index.php @@ -118,12 +118,22 @@ else{ // 载入前台首页模板 +//查询主题设置 +$template = $db->get("on_options","value",[ + "key" => "theme" +]); +//获取当前站点信息 +$site = $db->get('on_options','value',[ 'key' => "s_site" ]); +$site = unserialize($site); + //判断文件夹是否存在 -if( is_dir('templates/'.TEMPLATE) ){ +if( is_dir('templates/'.$template) ){ $tpl_dir = 'templates/'; } else{ $tpl_dir = 'data/templates/'; } -require($tpl_dir.TEMPLATE.'/index.php'); + + +require($tpl_dir.$template.'/index.php'); ?> \ No newline at end of file diff --git a/data/.htaccess b/data/.htaccess old mode 100644 new mode 100755 diff --git a/data/update.log b/data/update.log index 9546e5a..5c0794a 100755 --- a/data/update.log +++ b/data/update.log @@ -66,4 +66,11 @@ CREATE INDEX on_options_key_IDX ON on_options ("key"); 20220315 1. 修复一个任意文件漏洞 -2. baisuTwo主题更新 \ No newline at end of file +2. baisuTwo主题更新 + +20220414 +1. 新增:站点信息、主题、过渡页面可直接通过后台设置 +2. 主题新增 info.json 对主题进行描述 +3. 移除自定义Javascript,改用站点设置的自定义header +4. 部分资源已经本地化 +5. baisuTwo适配OneNav 0.9.18 \ No newline at end of file diff --git a/db/onenav.simple.db3 b/db/onenav.simple.db3 index 1727d3f..6ed4ea7 100644 Binary files a/db/onenav.simple.db3 and b/db/onenav.simple.db3 differ diff --git a/db/sql/20220413.sql b/db/sql/20220413.sql new file mode 100644 index 0000000..dad463a --- /dev/null +++ b/db/sql/20220413.sql @@ -0,0 +1,18 @@ +DROP TABLE on_options; +CREATE TABLE on_options ( + "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + "key" TEXT(64) NOT NULL, + "value" TEXT, + "extend" TEXT, + CONSTRAINT "option_key_only" UNIQUE ("key" ASC) +); + +CREATE INDEX "main"."on_options_id_IDX" +ON "on_options" ( + "id" ASC, + "key" ASC +); +CREATE INDEX "main"."on_options_key_IDX" +ON "on_options" ( + "key" ASC +); \ No newline at end of file diff --git a/db/sql/20220414.sql b/db/sql/20220414.sql new file mode 100644 index 0000000..e5aa82a --- /dev/null +++ b/db/sql/20220414.sql @@ -0,0 +1,3 @@ +INSERT INTO on_options ("key", value, extend) VALUES('theme', 'default', NULL); +INSERT INTO on_options ("key", value, extend) VALUES('s_site', 'a:6:{s:5:"title";s:6:"OneNav";s:4:"logo";s:0:"";s:8:"subtitle";s:24:"开源书签管理程序";s:8:"keywords";s:107:"OneNav,OneNav导航,OneNav书签,开源导航,开源书签,简洁导航,云链接,个人导航,个人书签";s:11:"description";s:319:"OneNav是一款开源免费的书签(导航)管理程序,由xiaoz使用使用PHP + SQLite 3开发,界面简洁,安装简单,使用方便。OneNav可帮助你将浏览器书签集中式管理,解决跨设备、跨平台、跨浏览器之间同步和访问困难问题,做到一处部署,随处访问。";s:13:"custom_header";s:0:"";}', NULL); +INSERT INTO on_options ("key", value, extend) VALUES('s_transition_page', 'a:3:{s:7:"control";s:3:"off";s:17:"visitor_stay_time";i:5;s:15:"admin_stay_time";i:0;}', NULL); diff --git a/static/js/jquery.min.js b/static/js/jquery.min.js new file mode 100644 index 0000000..4024b66 --- /dev/null +++ b/static/js/jquery.min.js @@ -0,0 +1,4 @@ +/*! jQuery v2.2.4 | (c) jQuery Foundation | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=a.document,e=c.slice,f=c.concat,g=c.push,h=c.indexOf,i={},j=i.toString,k=i.hasOwnProperty,l={},m="2.2.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return e.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:e.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a){return n.each(this,a)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(e.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:g,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=a&&a.toString();return!n.isArray(a)&&b-parseFloat(b)+1>=0},isPlainObject:function(a){var b;if("object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;if(a.constructor&&!k.call(a,"constructor")&&!k.call(a.constructor.prototype||{},"isPrototypeOf"))return!1;for(b in a);return void 0===b||k.call(a,b)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?i[j.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=d.createElement("script"),b.text=a,d.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(s(a)){for(c=a.length;c>d;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):g.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:h.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,g=0,h=[];if(s(a))for(d=a.length;d>g;g++)e=b(a[g],g,c),null!=e&&h.push(e);else for(g in a)e=b(a[g],g,c),null!=e&&h.push(e);return f.apply([],h)},guid:1,proxy:function(a,b){var c,d,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(d=e.call(arguments,2),f=function(){return a.apply(b||this,d.concat(e.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:l}),"function"==typeof Symbol&&(n.fn[Symbol.iterator]=c[Symbol.iterator]),n.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){i["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=!!a&&"length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ga(),z=ga(),A=ga(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+M+"))|)"+L+"*\\]",O=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+N+")*)|.*)\\)|)",P=new RegExp(L+"+","g"),Q=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),R=new RegExp("^"+L+"*,"+L+"*"),S=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),T=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),U=new RegExp(O),V=new RegExp("^"+M+"$"),W={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M+"|[*])"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},X=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,$=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,_=/[+~]/,aa=/'|\\/g,ba=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),ca=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},da=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(ea){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fa(a,b,d,e){var f,h,j,k,l,o,r,s,w=b&&b.ownerDocument,x=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==x&&9!==x&&11!==x)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==x&&(o=$.exec(a)))if(f=o[1]){if(9===x){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(w&&(j=w.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(o[2])return H.apply(d,b.getElementsByTagName(a)),d;if((f=o[3])&&c.getElementsByClassName&&b.getElementsByClassName)return H.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==x)w=b,s=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(aa,"\\$&"):b.setAttribute("id",k=u),r=g(a),h=r.length,l=V.test(k)?"#"+k:"[id='"+k+"']";while(h--)r[h]=l+" "+qa(r[h]);s=r.join(","),w=_.test(a)&&oa(b.parentNode)||b}if(s)try{return H.apply(d,w.querySelectorAll(s)),d}catch(y){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(Q,"$1"),b,d,e)}function ga(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ha(a){return a[u]=!0,a}function ia(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ja(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function ka(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function la(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function na(a){return ha(function(b){return b=+b,ha(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function oa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=fa.support={},f=fa.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fa.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ia(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ia(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Z.test(n.getElementsByClassName),c.getById=ia(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return"undefined"!=typeof b.getElementsByClassName&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=Z.test(n.querySelectorAll))&&(ia(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ia(function(a){var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Z.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ia(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",O)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Z.test(o.compareDocumentPosition),t=b||Z.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return ka(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?ka(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},fa.matches=function(a,b){return fa(a,null,null,b)},fa.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(T,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fa(b,n,null,[a]).length>0},fa.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fa.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fa.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fa.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fa.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fa.selectors={cacheLength:50,createPseudo:ha,match:W,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ba,ca),a[3]=(a[3]||a[4]||a[5]||"").replace(ba,ca),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fa.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fa.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return W.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&U.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ba,ca).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fa.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(P," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fa.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ha(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ha(function(a){var b=[],c=[],d=h(a.replace(Q,"$1"));return d[u]?ha(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ha(function(a){return function(b){return fa(a,b).length>0}}),contains:ha(function(a){return a=a.replace(ba,ca),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ha(function(a){return V.test(a||"")||fa.error("unsupported lang: "+a),a=a.replace(ba,ca).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Y.test(a.nodeName)},input:function(a){return X.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:na(function(){return[0]}),last:na(function(a,b){return[b-1]}),eq:na(function(a,b,c){return[0>c?c+b:c]}),even:na(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:na(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:na(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:na(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function ra(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j,k=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(j=b[u]||(b[u]={}),i=j[b.uniqueID]||(j[b.uniqueID]={}),(h=i[d])&&h[0]===w&&h[1]===f)return k[2]=h[2];if(i[d]=k,k[2]=a(b,c,g))return!0}}}function sa(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ta(a,b,c){for(var d=0,e=b.length;e>d;d++)fa(a,b[d],c);return c}function ua(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function va(a,b,c,d,e,f){return d&&!d[u]&&(d=va(d)),e&&!e[u]&&(e=va(e,f)),ha(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ta(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ua(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ua(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ua(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function wa(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ra(function(a){return a===b},h,!0),l=ra(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[ra(sa(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return va(i>1&&sa(m),i>1&&qa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(Q,"$1"),c,e>i&&wa(a.slice(i,e)),f>e&&wa(a=a.slice(e)),f>e&&qa(a))}m.push(c)}return sa(m)}function xa(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=F.call(i));u=ua(u)}H.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&fa.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ha(f):f}return h=fa.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wa(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xa(e,d)),f.selector=a}return f},i=fa.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(ba,ca),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=W.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(ba,ca),_.test(j[0].type)&&oa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qa(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||_.test(a)&&oa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ia(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ia(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ja("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ia(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ja("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ia(function(a){return null==a.getAttribute("disabled")})||ja(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fa}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.uniqueSort=n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},v=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},w=n.expr.match.needsContext,x=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,y=/^.[^:#\[\.,]*$/;function z(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(y.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return h.call(b,a)>-1!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(z(this,a||[],!1))},not:function(a){return this.pushStack(z(this,a||[],!0))},is:function(a){return!!z(this,"string"==typeof a&&w.test(a)?n(a):a||[],!1).length}});var A,B=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=n.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||A,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:B.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),x.test(e[1])&&n.isPlainObject(b))for(e in b)n.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&f.parentNode&&(this.length=1,this[0]=f),this.context=d,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?void 0!==c.ready?c.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};C.prototype=n.fn,A=n(d);var D=/^(?:parents|prev(?:Until|All))/,E={children:!0,contents:!0,next:!0,prev:!0};n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=w.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?h.call(n(a),this[0]):h.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.uniqueSort(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function F(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return u(a,"parentNode")},parentsUntil:function(a,b,c){return u(a,"parentNode",c)},next:function(a){return F(a,"nextSibling")},prev:function(a){return F(a,"previousSibling")},nextAll:function(a){return u(a,"nextSibling")},prevAll:function(a){return u(a,"previousSibling")},nextUntil:function(a,b,c){return u(a,"nextSibling",c)},prevUntil:function(a,b,c){return u(a,"previousSibling",c)},siblings:function(a){return v((a.parentNode||{}).firstChild,a)},children:function(a){return v(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(E[a]||n.uniqueSort(e),D.test(a)&&e.reverse()),this.pushStack(e)}});var G=/\S+/g;function H(a){var b={};return n.each(a.match(G)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?H(a):n.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),h>=c&&h--}),this},has:function(a){return a?n.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().progress(c.notify).done(c.resolve).fail(c.reject):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=e.call(arguments),d=c.length,f=1!==d||a&&n.isFunction(a.promise)?d:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?e.call(arguments):d,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(d>1)for(i=new Array(d),j=new Array(d),k=new Array(d);d>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().progress(h(b,j,i)).done(h(b,k,c)).fail(g.reject):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(d,[n]),n.fn.triggerHandler&&(n(d).triggerHandler("ready"),n(d).off("ready"))))}});function J(){d.removeEventListener("DOMContentLoaded",J),a.removeEventListener("load",J),n.ready()}n.ready.promise=function(b){return I||(I=n.Deferred(),"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(n.ready):(d.addEventListener("DOMContentLoaded",J),a.addEventListener("load",J))),I.promise(b)},n.ready.promise();var K=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)K(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},L=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function M(){this.expando=n.expando+M.uid++}M.uid=1,M.prototype={register:function(a,b){var c=b||{};return a.nodeType?a[this.expando]=c:Object.defineProperty(a,this.expando,{value:c,writable:!0,configurable:!0}),a[this.expando]},cache:function(a){if(!L(a))return{};var b=a[this.expando];return b||(b={},L(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[b]=c;else for(d in b)e[d]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=a[this.expando];if(void 0!==f){if(void 0===b)this.register(a);else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in f?d=[b,e]:(d=e,d=d in f?[d]:d.match(G)||[])),c=d.length;while(c--)delete f[d[c]]}(void 0===b||n.isEmptyObject(f))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!n.isEmptyObject(b)}};var N=new M,O=new M,P=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Q=/[A-Z]/g;function R(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Q,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:P.test(c)?n.parseJSON(c):c; +}catch(e){}O.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return O.hasData(a)||N.hasData(a)},data:function(a,b,c){return O.access(a,b,c)},removeData:function(a,b){O.remove(a,b)},_data:function(a,b,c){return N.access(a,b,c)},_removeData:function(a,b){N.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=O.get(f),1===f.nodeType&&!N.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),R(f,d,e[d])));N.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){O.set(this,a)}):K(this,function(b){var c,d;if(f&&void 0===b){if(c=O.get(f,a)||O.get(f,a.replace(Q,"-$&").toLowerCase()),void 0!==c)return c;if(d=n.camelCase(a),c=O.get(f,d),void 0!==c)return c;if(c=R(f,d,void 0),void 0!==c)return c}else d=n.camelCase(a),this.each(function(){var c=O.get(this,d);O.set(this,d,b),a.indexOf("-")>-1&&void 0!==c&&O.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){O.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=N.get(a,b),c&&(!d||n.isArray(c)?d=N.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return N.get(a,c)||N.access(a,c,{empty:n.Callbacks("once memory").add(function(){N.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length",""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};$.optgroup=$.option,$.tbody=$.tfoot=$.colgroup=$.caption=$.thead,$.th=$.td;function _(a,b){var c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function aa(a,b){for(var c=0,d=a.length;d>c;c++)N.set(a[c],"globalEval",!b||N.get(b[c],"globalEval"))}var ba=/<|&#?\w+;/;function ca(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],o=0,p=a.length;p>o;o++)if(f=a[o],f||0===f)if("object"===n.type(f))n.merge(m,f.nodeType?[f]:f);else if(ba.test(f)){g=g||l.appendChild(b.createElement("div")),h=(Y.exec(f)||["",""])[1].toLowerCase(),i=$[h]||$._default,g.innerHTML=i[1]+n.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;n.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",o=0;while(f=m[o++])if(d&&n.inArray(f,d)>-1)e&&e.push(f);else if(j=n.contains(f.ownerDocument,f),g=_(l.appendChild(f),"script"),j&&aa(g),c){k=0;while(f=g[k++])Z.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),l.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",l.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var da=/^key/,ea=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,fa=/^([^.]*)(?:\.(.+)|)/;function ga(){return!0}function ha(){return!1}function ia(){try{return d.activeElement}catch(a){}}function ja(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ja(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=ha;else if(!e)return a;return 1===f&&(g=e,e=function(a){return n().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=n.guid++)),a.each(function(){n.event.add(this,b,e,d,c)})}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=N.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return"undefined"!=typeof n&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(G)||[""],j=b.length;while(j--)h=fa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=N.hasData(a)&&N.get(a);if(r&&(i=r.events)){b=(b||"").match(G)||[""],j=b.length;while(j--)if(h=fa.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&N.remove(a,"handle events")}},dispatch:function(a){a=n.event.fix(a);var b,c,d,f,g,h=[],i=e.call(arguments),j=(N.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())a.rnamespace&&!a.rnamespace.test(g.namespace)||(a.handleObj=g,a.data=g.data,d=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==d&&(a.result=d)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!==this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>-1:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]*)\/>/gi,la=/\s*$/g;function pa(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function qa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function ra(a){var b=na.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function sa(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(N.hasData(a)&&(f=N.access(a),g=N.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}O.hasData(a)&&(h=O.access(a),i=n.extend({},h),O.set(b,i))}}function ta(a,b){var c=b.nodeName.toLowerCase();"input"===c&&X.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function ua(a,b,c,d){b=f.apply([],b);var e,g,h,i,j,k,m=0,o=a.length,p=o-1,q=b[0],r=n.isFunction(q);if(r||o>1&&"string"==typeof q&&!l.checkClone&&ma.test(q))return a.each(function(e){var f=a.eq(e);r&&(b[0]=q.call(this,e,f.html())),ua(f,b,c,d)});if(o&&(e=ca(b,a[0].ownerDocument,!1,a,d),g=e.firstChild,1===e.childNodes.length&&(e=g),g||d)){for(h=n.map(_(e,"script"),qa),i=h.length;o>m;m++)j=e,m!==p&&(j=n.clone(j,!0,!0),i&&n.merge(h,_(j,"script"))),c.call(a[m],j,m);if(i)for(k=h[h.length-1].ownerDocument,n.map(h,ra),m=0;i>m;m++)j=h[m],Z.test(j.type||"")&&!N.access(j,"globalEval")&&n.contains(k,j)&&(j.src?n._evalUrl&&n._evalUrl(j.src):n.globalEval(j.textContent.replace(oa,"")))}return a}function va(a,b,c){for(var d,e=b?n.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||n.cleanData(_(d)),d.parentNode&&(c&&n.contains(d.ownerDocument,d)&&aa(_(d,"script")),d.parentNode.removeChild(d));return a}n.extend({htmlPrefilter:function(a){return a.replace(ka,"<$1>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=_(h),f=_(a),d=0,e=f.length;e>d;d++)ta(f[d],g[d]);if(b)if(c)for(f=f||_(a),g=g||_(h),d=0,e=f.length;e>d;d++)sa(f[d],g[d]);else sa(a,h);return g=_(h,"script"),g.length>0&&aa(g,!i&&_(a,"script")),h},cleanData:function(a){for(var b,c,d,e=n.event.special,f=0;void 0!==(c=a[f]);f++)if(L(c)){if(b=c[N.expando]){if(b.events)for(d in b.events)e[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);c[N.expando]=void 0}c[O.expando]&&(c[O.expando]=void 0)}}}),n.fn.extend({domManip:ua,detach:function(a){return va(this,a,!0)},remove:function(a){return va(this,a)},text:function(a){return K(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return ua(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=pa(this,a);b.appendChild(a)}})},prepend:function(){return ua(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=pa(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return ua(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return ua(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(_(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return K(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!la.test(a)&&!$[(Y.exec(a)||["",""])[1].toLowerCase()]){a=n.htmlPrefilter(a);try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(_(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return ua(this,arguments,function(b){var c=this.parentNode;n.inArray(this,a)<0&&(n.cleanData(_(this)),c&&c.replaceChild(b,this))},a)}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),f=e.length-1,h=0;f>=h;h++)c=h===f?this:this.clone(!0),n(e[h])[b](c),g.apply(d,c.get());return this.pushStack(d)}});var wa,xa={HTML:"block",BODY:"block"};function ya(a,b){var c=n(b.createElement(a)).appendTo(b.body),d=n.css(c[0],"display");return c.detach(),d}function za(a){var b=d,c=xa[a];return c||(c=ya(a,b),"none"!==c&&c||(wa=(wa||n("';break;case 3:delete t.title,delete t.closeBtn,t.icon===-1&&0===t.icon,r.closeAll("loading");break;case 4:f||(t.content=[t.content,"body"]),t.follow=t.content[1],t.content=t.content[0]+'',delete t.title,t.tips="object"==typeof t.tips?t.tips:[t.tips,!0],t.tipsMore||r.closeAll("tips")}if(e.vessel(f,function(n,r,u){c.append(n[0]),f?function(){2==t.type||4==t.type?function(){i("body").append(n[1])}():function(){s.parents("."+l[0])[0]||(s.data("display",s.css("display")).show().addClass("layui-layer-wrap").wrap(n[1]),i("#"+l[0]+a).find("."+l[5]).before(r))}()}():c.append(n[1]),i("#"+l.MOVE)[0]||c.append(o.moveElem=u),e.layero=i("#"+l[0]+a),e.shadeo=i("#"+l.SHADE+a),t.scrollbar||l.html.css("overflow","hidden").attr("layer-full",a)}).auto(a),e.shadeo.css({"background-color":t.shade[1]||"#000",opacity:t.shade[0]||t.shade}),2==t.type&&6==r.ie&&e.layero.find("iframe").attr("src",s[0]),4==t.type?e.tips():function(){e.offset(),parseInt(o.getStyle(document.getElementById(l.MOVE),"z-index"))||function(){e.layero.css("visibility","hidden"),r.ready(function(){e.offset(),e.layero.css("visibility","visible")})}()}(),t.fixed&&n.on("resize",function(){e.offset(),(/^\d+%$/.test(t.area[0])||/^\d+%$/.test(t.area[1]))&&e.auto(a),4==t.type&&e.tips()}),t.time<=0||setTimeout(function(){r.close(e.index)},t.time),e.move().callback(),l.anim[t.anim]){var u="layer-anim "+l.anim[t.anim];e.layero.addClass(u).one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",function(){i(this).removeClass(u)})}t.isOutAnim&&e.layero.data("isOutAnim",!0)}},s.pt.auto=function(e){var t=this,a=t.config,o=i("#"+l[0]+e);""===a.area[0]&&a.maxWidth>0&&(r.ie&&r.ie<8&&a.btn&&o.width(o.innerWidth()),o.outerWidth()>a.maxWidth&&o.width(a.maxWidth));var s=[o.innerWidth(),o.innerHeight()],f=o.find(l[1]).outerHeight()||0,c=o.find("."+l[6]).outerHeight()||0,u=function(e){e=o.find(e),e.height(s[1]-f-c-2*(0|parseFloat(e.css("padding-top"))))};switch(a.type){case 2:u("iframe");break;default:""===a.area[1]?a.maxHeight>0&&o.outerHeight()>a.maxHeight?(s[1]=a.maxHeight,u("."+l[5])):a.fixed&&s[1]>=n.height()&&(s[1]=n.height(),u("."+l[5])):u("."+l[5])}return t},s.pt.offset=function(){var e=this,t=e.config,i=e.layero,a=[i.outerWidth(),i.outerHeight()],o="object"==typeof t.offset;e.offsetTop=(n.height()-a[1])/2,e.offsetLeft=(n.width()-a[0])/2,o?(e.offsetTop=t.offset[0],e.offsetLeft=t.offset[1]||e.offsetLeft):"auto"!==t.offset&&("t"===t.offset?e.offsetTop=0:"r"===t.offset?e.offsetLeft=n.width()-a[0]:"b"===t.offset?e.offsetTop=n.height()-a[1]:"l"===t.offset?e.offsetLeft=0:"lt"===t.offset?(e.offsetTop=0,e.offsetLeft=0):"lb"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=0):"rt"===t.offset?(e.offsetTop=0,e.offsetLeft=n.width()-a[0]):"rb"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=n.width()-a[0]):e.offsetTop=t.offset),t.fixed||(e.offsetTop=/%$/.test(e.offsetTop)?n.height()*parseFloat(e.offsetTop)/100:parseFloat(e.offsetTop),e.offsetLeft=/%$/.test(e.offsetLeft)?n.width()*parseFloat(e.offsetLeft)/100:parseFloat(e.offsetLeft),e.offsetTop+=n.scrollTop(),e.offsetLeft+=n.scrollLeft()),i.attr("minLeft")&&(e.offsetTop=n.height()-(i.find(l[1]).outerHeight()||0),e.offsetLeft=i.css("left")),i.css({top:e.offsetTop,left:e.offsetLeft})},s.pt.tips=function(){var e=this,t=e.config,a=e.layero,o=[a.outerWidth(),a.outerHeight()],r=i(t.follow);r[0]||(r=i("body"));var s={width:r.outerWidth(),height:r.outerHeight(),top:r.offset().top,left:r.offset().left},f=a.find(".layui-layer-TipsG"),c=t.tips[0];t.tips[1]||f.remove(),s.autoLeft=function(){s.left+o[0]-n.width()>0?(s.tipLeft=s.left+s.width-o[0],f.css({right:12,left:"auto"})):s.tipLeft=s.left},s.where=[function(){s.autoLeft(),s.tipTop=s.top-o[1]-10,f.removeClass("layui-layer-TipsB").addClass("layui-layer-TipsT").css("border-right-color",t.tips[1])},function(){s.tipLeft=s.left+s.width+10,s.tipTop=s.top,f.removeClass("layui-layer-TipsL").addClass("layui-layer-TipsR").css("border-bottom-color",t.tips[1])},function(){s.autoLeft(),s.tipTop=s.top+s.height+10,f.removeClass("layui-layer-TipsT").addClass("layui-layer-TipsB").css("border-right-color",t.tips[1])},function(){s.tipLeft=s.left-o[0]-10,s.tipTop=s.top,f.removeClass("layui-layer-TipsR").addClass("layui-layer-TipsL").css("border-bottom-color",t.tips[1])}],s.where[c-1](),1===c?s.top-(n.scrollTop()+o[1]+16)<0&&s.where[2]():2===c?n.width()-(s.left+s.width+o[0]+16)>0||s.where[3]():3===c?s.top-n.scrollTop()+s.height+o[1]+16-n.height()>0&&s.where[0]():4===c&&o[0]+16-s.left>0&&s.where[1](),a.find("."+l[5]).css({"background-color":t.tips[1],"padding-right":t.closeBtn?"30px":""}),a.css({left:s.tipLeft-(t.fixed?n.scrollLeft():0),top:s.tipTop-(t.fixed?n.scrollTop():0)})},s.pt.move=function(){var e=this,t=e.config,a=i(document),s=e.layero,l=s.find(t.move),f=s.find(".layui-layer-resize"),c={};return t.move&&l.css("cursor","move"),l.on("mousedown",function(e){e.preventDefault(),t.move&&(c.moveStart=!0,c.offset=[e.clientX-parseFloat(s.css("left")),e.clientY-parseFloat(s.css("top"))],o.moveElem.css("cursor","move").show())}),f.on("mousedown",function(e){e.preventDefault(),c.resizeStart=!0,c.offset=[e.clientX,e.clientY],c.area=[s.outerWidth(),s.outerHeight()],o.moveElem.css("cursor","se-resize").show()}),a.on("mousemove",function(i){if(c.moveStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1],l="fixed"===s.css("position");if(i.preventDefault(),c.stX=l?0:n.scrollLeft(),c.stY=l?0:n.scrollTop(),!t.moveOut){var f=n.width()-s.outerWidth()+c.stX,u=n.height()-s.outerHeight()+c.stY;af&&(a=f),ou&&(o=u)}s.css({left:a,top:o})}if(t.resize&&c.resizeStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1];i.preventDefault(),r.style(e.index,{width:c.area[0]+a,height:c.area[1]+o}),c.isResize=!0,t.resizing&&t.resizing(s)}}).on("mouseup",function(e){c.moveStart&&(delete c.moveStart,o.moveElem.hide(),t.moveEnd&&t.moveEnd(s)),c.resizeStart&&(delete c.resizeStart,o.moveElem.hide())}),e},s.pt.callback=function(){function e(){var e=a.cancel&&a.cancel(t.index,n);e===!1||r.close(t.index)}var t=this,n=t.layero,a=t.config;t.openLayer(),a.success&&(2==a.type?n.find("iframe").on("load",function(){a.success(n,t.index,t)}):a.success(n,t.index,t)),6==r.ie&&t.IE6(n),n.find("."+l[6]).children("a").on("click",function(){var e=i(this).index();if(0===e)a.yes?a.yes(t.index,n):a.btn1?a.btn1(t.index,n):r.close(t.index);else{var o=a["btn"+(e+1)]&&a["btn"+(e+1)](t.index,n);o===!1||r.close(t.index)}}),n.find("."+l[7]).on("click",e),a.shadeClose&&t.shadeo.on("click",function(){r.close(t.index)}),n.find(".layui-layer-min").on("click",function(){var e=a.min&&a.min(n,t.index);e===!1||r.min(t.index,a)}),n.find(".layui-layer-max").on("click",function(){i(this).hasClass("layui-layer-maxmin")?(r.restore(t.index),a.restore&&a.restore(n,t.index)):(r.full(t.index,a),setTimeout(function(){a.full&&a.full(n,t.index)},100))}),a.end&&(o.end[t.index]=a.end)},o.reselect=function(){i.each(i("select"),function(e,t){var n=i(this);n.parents("."+l[0])[0]||1==n.attr("layer")&&i("."+l[0]).length<1&&n.removeAttr("layer").show(),n=null})},s.pt.IE6=function(e){i("select").each(function(e,t){var n=i(this);n.parents("."+l[0])[0]||"none"===n.css("display")||n.attr({layer:"1"}).hide(),n=null})},s.pt.openLayer=function(){var e=this;r.zIndex=e.config.zIndex,r.setTop=function(e){var t=function(){r.zIndex++,e.css("z-index",r.zIndex+1)};return r.zIndex=parseInt(e[0].style.zIndex),e.on("mousedown",t),r.zIndex}},o.record=function(e){var t=[e.width(),e.height(),e.position().top,e.position().left+parseFloat(e.css("margin-left"))];e.find(".layui-layer-max").addClass("layui-layer-maxmin"),e.attr({area:t})},o.rescollbar=function(e){l.html.attr("layer-full")==e&&(l.html[0].style.removeProperty?l.html[0].style.removeProperty("overflow"):l.html[0].style.removeAttribute("overflow"),l.html.removeAttr("layer-full"))},e.layer=r,r.getChildFrame=function(e,t){return t=t||i("."+l[4]).attr("times"),i("#"+l[0]+t).find("iframe").contents().find(e)},r.getFrameIndex=function(e){return i("#"+e).parents("."+l[4]).attr("times")},r.iframeAuto=function(e){if(e){var t=r.getChildFrame("html",e).outerHeight(),n=i("#"+l[0]+e),a=n.find(l[1]).outerHeight()||0,o=n.find("."+l[6]).outerHeight()||0;n.css({height:t+a+o}),n.find("iframe").css({height:t})}},r.iframeSrc=function(e,t){i("#"+l[0]+e).find("iframe").attr("src",t)},r.style=function(e,t,n){var a=i("#"+l[0]+e),r=a.find(".layui-layer-content"),s=a.attr("type"),f=a.find(l[1]).outerHeight()||0,c=a.find("."+l[6]).outerHeight()||0;a.attr("minLeft");s!==o.type[3]&&s!==o.type[4]&&(n||(parseFloat(t.width)<=260&&(t.width=260),parseFloat(t.height)-f-c<=64&&(t.height=64+f+c)),a.css(t),c=a.find("."+l[6]).outerHeight(),s===o.type[2]?a.find("iframe").css({height:parseFloat(t.height)-f-c}):r.css({height:parseFloat(t.height)-f-c-parseFloat(r.css("padding-top"))-parseFloat(r.css("padding-bottom"))}))},r.min=function(e,t){t=t||{};var a=i("#"+l[0]+e),s=i("#"+l.SHADE+e),f=a.find(l[1]).outerHeight()||0,c=a.attr("minLeft")||181*o.minIndex+"px",u=a.css("position"),d={width:180,height:f,position:"fixed",overflow:"hidden"};o.record(a),o.minLeft[0]&&(c=o.minLeft[0],o.minLeft.shift()),t.minStack&&(d.left=c,d.top=n.height()-f,a.attr("minLeft")||o.minIndex++,a.attr("minLeft",c)),a.attr("position",u),r.style(e,d,!0),a.find(".layui-layer-min").hide(),"page"===a.attr("type")&&a.find(l[4]).hide(),o.rescollbar(e),s.hide()},r.restore=function(e){var t=i("#"+l[0]+e),n=i("#"+l.SHADE+e),a=t.attr("area").split(",");t.attr("type");r.style(e,{width:parseFloat(a[0]),height:parseFloat(a[1]),top:parseFloat(a[2]),left:parseFloat(a[3]),position:t.attr("position"),overflow:"visible"},!0),t.find(".layui-layer-max").removeClass("layui-layer-maxmin"),t.find(".layui-layer-min").show(),"page"===t.attr("type")&&t.find(l[4]).show(),o.rescollbar(e),n.show()},r.full=function(e){var t,a=i("#"+l[0]+e);o.record(a),l.html.attr("layer-full")||l.html.css("overflow","hidden").attr("layer-full",e),clearTimeout(t),t=setTimeout(function(){var t="fixed"===a.css("position");r.style(e,{top:t?0:n.scrollTop(),left:t?0:n.scrollLeft(),width:n.width(),height:n.height()},!0),a.find(".layui-layer-min").hide()},100)},r.title=function(e,t){var n=i("#"+l[0]+(t||r.index)).find(l[1]);n.html(e)},r.close=function(e,t){var n=i("#"+l[0]+e),a=n.attr("type"),s="layer-anim-close";if(n[0]){var f="layui-layer-wrap",c=function(){if(a===o.type[1]&&"object"===n.attr("conType")){n.children(":not(."+l[5]+")").remove();for(var r=n.find("."+f),s=0;s<2;s++)r.unwrap();r.css("display",r.data("display")).removeClass(f)}else{if(a===o.type[2])try{var c=i("#"+l[4]+e)[0];c.contentWindow.document.write(""),c.contentWindow.close(),n.find("."+l[5])[0].removeChild(c)}catch(u){}n[0].innerHTML="",n.remove()}"function"==typeof o.end[e]&&o.end[e](),delete o.end[e],"function"==typeof t&&t()};n.data("isOutAnim")&&n.addClass("layer-anim "+s),i("#layui-layer-moves, #"+l.SHADE+e).remove(),6==r.ie&&o.reselect(),o.rescollbar(e),n.attr("minLeft")&&(o.minIndex--,o.minLeft.push(n.attr("minLeft"))),r.ie&&r.ie<10||!n.data("isOutAnim")?c():setTimeout(function(){c()},200)}},r.closeAll=function(e,t){"function"==typeof e&&(t=e,e=null);var n=i("."+l[0]);i.each(n,function(a){var o=i(this),s=e?o.attr("type")===e:1;s&&r.close(o.attr("times"),a===n.length-1?t:null),s=null}),0===n.length&&"function"==typeof t&&t()};var f=r.cache||{},c=function(e){return f.skin?" "+f.skin+" "+f.skin+"-"+e:""};r.prompt=function(e,t){var a="";if(e=e||{},"function"==typeof e&&(t=e),e.area){var o=e.area;a='style="width: '+o[0]+"; height: "+o[1]+';"',delete e.area}var s,l=2==e.formType?'":function(){return''}(),f=e.success;return delete e.success,r.open(i.extend({type:1,btn:["确定","取消"],content:l,skin:"layui-layer-prompt"+c("prompt"),maxWidth:n.width(),success:function(t){s=t.find(".layui-layer-input"),s.val(e.value||"").focus(),"function"==typeof f&&f(t)},resize:!1,yes:function(i){var n=s.val();""===n?s.focus():n.length>(e.maxlength||500)?r.tips("最多输入"+(e.maxlength||500)+"个字数",s,{tips:1}):t&&t(n,i,s)}},e))},r.tab=function(e){e=e||{};var t=e.tab||{},n="layui-this",a=e.success;return delete e.success,r.open(i.extend({type:1,skin:"layui-layer-tab"+c("tab"),resize:!1,title:function(){var e=t.length,i=1,a="";if(e>0)for(a=''+t[0].title+"";i"+t[i].title+"";return a}(),content:'
    '+function(){var e=t.length,i=1,a="";if(e>0)for(a='
  • '+(t[0].content||"no content")+"
  • ";i'+(t[i].content||"no content")+"";return a}()+"
",success:function(t){var o=t.find(".layui-layer-title").children(),r=t.find(".layui-layer-tabmain").children();o.on("mousedown",function(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0;var a=i(this),o=a.index();a.addClass(n).siblings().removeClass(n),r.eq(o).show().siblings().hide(),"function"==typeof e.change&&e.change(o)}),"function"==typeof a&&a(t)}},e))},r.photos=function(t,n,a){function o(e,t,i){var n=new Image;return n.src=e,n.complete?t(n):(n.onload=function(){n.onload=null,t(n)},void(n.onerror=function(e){n.onerror=null,i(e)}))}var s={};if(t=t||{},t.photos){var l=!("string"==typeof t.photos||t.photos instanceof i),f=l?t.photos:{},u=f.data||[],d=f.start||0;s.imgIndex=(0|d)+1,t.img=t.img||"img";var y=t.success;if(delete t.success,l){if(0===u.length)return r.msg("没有图片")}else{var p=i(t.photos),h=function(){u=[],p.find(t.img).each(function(e){var t=i(this);t.attr("layer-index",e),u.push({alt:t.attr("alt"),pid:t.attr("layer-pid"),src:t.attr("layer-src")||t.attr("src"),thumb:t.attr("src")})})};if(h(),0===u.length)return;if(n||p.on("click",t.img,function(){h();var e=i(this),n=e.attr("layer-index");r.photos(i.extend(t,{photos:{start:n,data:u,tab:t.tab},full:t.full}),!0)}),!n)return}s.imgprev=function(e){s.imgIndex--,s.imgIndex<1&&(s.imgIndex=u.length),s.tabimg(e)},s.imgnext=function(e,t){s.imgIndex++,s.imgIndex>u.length&&(s.imgIndex=1,t)||s.tabimg(e)},s.keyup=function(e){if(!s.end){var t=e.keyCode;e.preventDefault(),37===t?s.imgprev(!0):39===t?s.imgnext(!0):27===t&&r.close(s.index)}},s.tabimg=function(e){if(!(u.length<=1))return f.start=s.imgIndex-1,r.close(s.index),r.photos(t,!0,e)},s.event=function(){s.bigimg.find(".layui-layer-imgprev").on("click",function(e){e.preventDefault(),s.imgprev(!0)}),s.bigimg.find(".layui-layer-imgnext").on("click",function(e){e.preventDefault(),s.imgnext(!0)}),i(document).on("keyup",s.keyup)},s.loadi=r.load(1,{shade:!("shade"in t)&&.9,scrollbar:!1}),o(u[d].src,function(n){r.close(s.loadi),a&&(t.anim=-1),s.index=r.open(i.extend({type:1,id:"layui-layer-photos",area:function(){var a=[n.width,n.height],o=[i(e).width()-100,i(e).height()-100];if(!t.full&&(a[0]>o[0]||a[1]>o[1])){var r=[a[0]/o[0],a[1]/o[1]];r[0]>r[1]?(a[0]=a[0]/r[0],a[1]=a[1]/r[0]):r[0]'+(u[d].alt||'+function(){return u.length>1?'
'+(u[d].alt||"")+""+s.imgIndex+" / "+u.length+"
":""}()+"",success:function(e,i){s.bigimg=e.find(".layui-layer-phimg"),s.imgsee=e.find(".layui-layer-imgbar"),s.event(e),t.tab&&t.tab(u[d],e),"function"==typeof y&&y(e)},end:function(){s.end=!0,i(document).off("keyup",s.keyup)}},t))},function(){r.close(s.loadi),r.msg("当前图片地址异常
是否继续查看下一张?",{time:3e4,btn:["下一张","不看了"],yes:function(){u.length>1&&s.imgnext(!0,!0)}})})}},o.run=function(t){i=t,n=i(e),l.html=i("html"),r.open=function(e){var t=new s(e);return t.index}},e.layui&&layui.define?(r.ready(),layui.define("jquery",function(t){r.path=layui.cache.dir,o.run(layui.$),e.layer=r,t("layer",r)})):"function"==typeof define&&define.amd?define(["jquery"],function(){return o.run(e.jQuery),r}):function(){r.ready(),o.run(e.jQuery)}()}(window);layui.define("jquery",function(e){"use strict";var t=layui.$,i=layui.hint(),n={fixbar:function(e){var i,n,r="layui-fixbar",a="layui-fixbar-top",o=t(document),l=t("body");e=t.extend({showHeight:200},e),e.bar1=e.bar1===!0?"":e.bar1,e.bar2=e.bar2===!0?"":e.bar2,e.bgcolor=e.bgcolor?"background-color:"+e.bgcolor:"";var c=[e.bar1,e.bar2,""],g=t(['
    ',e.bar1?'
  • '+c[0]+"
  • ":"",e.bar2?'
  • '+c[1]+"
  • ":"",'
  • '+c[2]+"
  • ","
"].join("")),u=g.find("."+a),s=function(){var t=o.scrollTop();t>=e.showHeight?i||(u.show(),i=1):i&&(u.hide(),i=0)};t("."+r)[0]||("object"==typeof e.css&&g.css(e.css),l.append(g),s(),g.find("li").on("click",function(){var i=t(this),n=i.attr("lay-type");"top"===n&&t("html,body").animate({scrollTop:0},200),e.click&&e.click.call(this,n)}),o.on("scroll",function(){clearTimeout(n),n=setTimeout(function(){s()},100)}))},countdown:function(e,t,i){var n=this,r="function"==typeof t,a=new Date(e).getTime(),o=new Date(!t||r?(new Date).getTime():t).getTime(),l=a-o,c=[Math.floor(l/864e5),Math.floor(l/36e5)%24,Math.floor(l/6e4)%60,Math.floor(l/1e3)%60];r&&(i=t);var g=setTimeout(function(){n.countdown(e,o+1e3,i)},1e3);return i&&i(l>0?c:[0,0,0,0],t,g),l<=0&&clearTimeout(g),g},timeAgo:function(e,t){var i=this,n=[[],[]],r=(new Date).getTime()-new Date(e).getTime();return r>26784e5?(r=new Date(e),n[0][0]=i.digit(r.getFullYear(),4),n[0][1]=i.digit(r.getMonth()+1),n[0][2]=i.digit(r.getDate()),t||(n[1][0]=i.digit(r.getHours()),n[1][1]=i.digit(r.getMinutes()),n[1][2]=i.digit(r.getSeconds())),n[0].join("-")+" "+n[1].join(":")):r>=864e5?(r/1e3/60/60/24|0)+"\u5929\u524d":r>=36e5?(r/1e3/60/60|0)+"\u5c0f\u65f6\u524d":r>=18e4?(r/1e3/60|0)+"\u5206\u949f\u524d":r<0?"\u672a\u6765":"\u521a\u521a"},digit:function(e,t){var i="";e=String(e),t=t||2;for(var n=e.length;n/g,">").replace(/'/g,"'").replace(/"/g,""")},unescape:function(e){return String(e||"").replace(/\&/g,"&").replace(/\</g,"<").replace(/\>/g,">").replace(/\'/,"'").replace(/\"/,'"')},toVisibleArea:function(e){if(e=t.extend({margin:160,duration:200,type:"y"},e),e.scrollElem[0]&&e.thisElem[0]){var i=e.scrollElem,n=e.thisElem,r="y"===e.type,a=r?"scrollTop":"scrollLeft",o=r?"top":"left",l=i[a](),c=i[r?"height":"width"](),g=i.offset()[o],u=n.offset()[o]-g,s={};(u>c-e.margin||u0&&t.unshift(""),t.join(" ")}()+">"+(a.title||"unnaming")+"";return s[0]?s.before(r):n.append(r),o.append('
'+(a.content||"")+"
"),b.hideTabMore(!0),b.tabAuto(),this},s.prototype.tabDelete=function(t,a){var e=".layui-tab-title",l=i(".layui-tab[lay-filter="+t+"]"),n=l.children(e),s=n.find('>li[lay-id="'+a+'"]');return b.tabDelete(null,s),this},s.prototype.tabChange=function(t,a){var e=".layui-tab-title",l=i(".layui-tab[lay-filter="+t+"]"),n=l.children(e),s=n.find('>li[lay-id="'+a+'"]');return b.tabClick.call(s[0],null,null,s),this},s.prototype.tab=function(t){t=t||{},m.on("click",t.headerElem,function(a){var e=i(this).index();b.tabClick.call(this,a,e,null,t)})},s.prototype.progress=function(t,a){var e="layui-progress",l=i("."+e+"[lay-filter="+t+"]"),n=l.find("."+e+"-bar"),s=n.find("."+e+"-text");return n.css("width",a).attr("lay-percent",a),s.text(a),this};var o=".layui-nav",r="layui-nav-item",c="layui-nav-bar",u="layui-nav-tree",y="layui-nav-child",d="layui-nav-child-c",f="layui-nav-more",h="layui-icon-down",p="layui-anim layui-anim-upbit",b={tabClick:function(t,a,s,o){o=o||{};var r=s||i(this),a=a||r.parent().children("li").index(r),c=o.headerElem?r.parent():r.parents(".layui-tab").eq(0),u=o.bodyElem?i(o.bodyElem):c.children(".layui-tab-content").children(".layui-tab-item"),y=r.find("a"),d="javascript:;"!==y.attr("href")&&"_blank"===y.attr("target"),f="string"==typeof r.attr("lay-unselect"),h=c.attr("lay-filter");d||f||(r.addClass(l).siblings().removeClass(l),u.eq(a).addClass(n).siblings().removeClass(n)),layui.event.call(this,e,"tab("+h+")",{elem:c,index:a})},tabDelete:function(t,a){var n=a||i(this).parent(),s=n.index(),o=n.parents(".layui-tab").eq(0),r=o.children(".layui-tab-content").children(".layui-tab-item"),c=o.attr("lay-filter");n.hasClass(l)&&(n.next()[0]?b.tabClick.call(n.next()[0],null,s+1):n.prev()[0]&&b.tabClick.call(n.prev()[0],null,s-1)),n.remove(),r.eq(s).remove(),setTimeout(function(){b.tabAuto()},50),layui.event.call(this,e,"tabDelete("+c+")",{elem:o,index:s})},tabAuto:function(){var t="layui-tab-more",e="layui-tab-bar",l="layui-tab-close",n=this;i(".layui-tab").each(function(){var s=i(this),o=s.children(".layui-tab-title"),r=(s.children(".layui-tab-content").children(".layui-tab-item"),'lay-stope="tabmore"'),c=i('');if(n===window&&8!=a.ie&&b.hideTabMore(!0),s.attr("lay-allowClose")&&o.find("li").each(function(){var t=i(this);if(!t.find("."+l)[0]){var a=i('');a.on("click",b.tabDelete),t.append(a)}}),"string"!=typeof s.attr("lay-unauto"))if(o.prop("scrollWidth")>o.outerWidth()+1){if(o.find("."+e)[0])return;o.append(c),s.attr("overflow",""),c.on("click",function(i){o[this.title?"removeClass":"addClass"](t),this.title=this.title?"":"\u6536\u7f29"})}else o.find("."+e).remove(),s.removeAttr("overflow")})},hideTabMore:function(t){var a=i(".layui-tab-title");t!==!0&&"tabmore"===i(t.target).attr("lay-stope")||(a.removeClass("layui-tab-more"),a.find(".layui-tab-bar").attr("title",""))},clickThis:function(){var t=i(this),a=t.parents(o),n=a.attr("lay-filter"),s=t.parent(),c=t.siblings("."+y),d="string"==typeof s.attr("lay-unselect");"javascript:;"!==t.attr("href")&&"_blank"===t.attr("target")||d||c[0]||(a.find("."+l).removeClass(l),s.addClass(l)),a.hasClass(u)&&(c.removeClass(p),c[0]&&(s["none"===c.css("display")?"addClass":"removeClass"](r+"ed"),"all"===a.attr("lay-shrink")&&s.siblings().removeClass(r+"ed"))),layui.event.call(this,e,"nav("+n+")",t)},collapse:function(){var t=i(this),a=t.find(".layui-colla-icon"),l=t.siblings(".layui-colla-content"),s=t.parents(".layui-collapse").eq(0),o=s.attr("lay-filter"),r="none"===l.css("display");if("string"==typeof s.attr("lay-accordion")){var c=s.children(".layui-colla-item").children("."+n);c.siblings(".layui-colla-title").children(".layui-colla-icon").html(""),c.removeClass(n)}l[r?"addClass":"removeClass"](n),a.html(r?"":""),layui.event.call(this,e,"collapse("+o+")",{title:t,content:l,show:r})}};s.prototype.init=function(t,e){var l=function(){return e?'[lay-filter="'+e+'"]':""}(),s={tab:function(){b.tabAuto.call({})},nav:function(){var t=200,e={},s={},v={},m="layui-nav-title",C=function(l,o,r){var c=i(this),h=c.find("."+y);if(o.hasClass(u)){if(!h[0]){var b=c.children("."+m);l.css({top:c.offset().top-o.offset().top,height:(b[0]?b:c).outerHeight(),opacity:1})}}else h.addClass(p),h.hasClass(d)&&h.css({left:-(h.outerWidth()-c.width())/2}),h[0]?l.css({left:l.position().left+l.width()/2,width:0,opacity:0}):l.css({left:c.position().left+parseFloat(c.css("marginLeft")),top:c.position().top+c.height()-l.height()}),e[r]=setTimeout(function(){l.css({width:h[0]?0:c.width(),opacity:h[0]?0:1})},a.ie&&a.ie<10?0:t),clearTimeout(v[r]),"block"===h.css("display")&&clearTimeout(s[r]),s[r]=setTimeout(function(){h.addClass(n),c.find("."+f).addClass(f+"d")},300)};i(o+l).each(function(a){var l=i(this),o=i(''),d=l.find("."+r);l.find("."+c)[0]||(l.append(o),(l.hasClass(u)?d.find("dd,>."+m):d).on("mouseenter",function(){C.call(this,o,l,a)}).on("mouseleave",function(){l.hasClass(u)?o.css({height:0,opacity:0}):(clearTimeout(s[a]),s[a]=setTimeout(function(){l.find("."+y).removeClass(n),l.find("."+f).removeClass(f+"d")},300))}),l.on("mouseleave",function(){clearTimeout(e[a]),v[a]=setTimeout(function(){l.hasClass(u)||o.css({width:0,left:o.position().left+o.width()/2,opacity:0})},t)})),d.find("a").each(function(){var t=i(this),a=(t.parent(),t.siblings("."+y));a[0]&&!t.children("."+f)[0]&&t.append(''),t.off("click",b.clickThis).on("click",b.clickThis)})})},breadcrumb:function(){var t=".layui-breadcrumb";i(t+l).each(function(){var t=i(this),a="lay-separator",e=t.attr(a)||"/",l=t.find("a");l.next("span["+a+"]")[0]||(l.each(function(t){t!==l.length-1&&i(this).after(""+e+"")}),t.css("visibility","visible"))})},progress:function(){var t="layui-progress";i("."+t+l).each(function(){var a=i(this),e=a.find(".layui-progress-bar"),l=e.attr("lay-percent");e.css("width",function(){return/^.+\/.+$/.test(l)?100*new Function("return "+l)()+"%":l}()),a.attr("lay-showPercent")&&setTimeout(function(){e.html(''+l+"")},350)})},collapse:function(){var t="layui-collapse";i("."+t+l).each(function(){var t=i(this).find(".layui-colla-item");t.each(function(){var t=i(this),a=t.find(".layui-colla-title"),e=t.find(".layui-colla-content"),l="none"===e.css("display");a.find(".layui-colla-icon").remove(),a.append(''+(l?"":"")+""),a.off("click",b.collapse).on("click",b.collapse)})})}};return s[t]?s[t]():layui.each(s,function(t,i){i()})},s.prototype.render=s.prototype.init;var v=new s,m=i(document);i(function(){v.render()});var C=".layui-tab-title li";m.on("click",C,b.tabClick),m.on("click",b.hideTabMore),i(window).on("resize",b.tabAuto),t(e,v)});layui.define("layer",function(e){"use strict";var t=layui.$,i=layui.layer,n=layui.hint(),o=layui.device(),a={config:{},set:function(e){var i=this;return i.config=t.extend({},i.config,e),i},on:function(e,t){return layui.onevent.call(this,r,e,t)}},l=function(){var e=this;return{upload:function(t){e.upload.call(e,t)},reload:function(t){e.reload.call(e,t)},config:e.config}},r="upload",u="layui-upload-file",c="layui-upload-form",f="layui-upload-iframe",s="layui-upload-choose",p=function(e){var i=this;i.config=t.extend({},i.config,a.config,e),i.render()};p.prototype.config={accept:"images",exts:"",auto:!0,bindAction:"",url:"",field:"file",acceptMime:"",method:"post",data:{},drag:!0,size:0,number:0,multiple:!1},p.prototype.render=function(e){var i=this,e=i.config;e.elem=t(e.elem),e.bindAction=t(e.bindAction),i.file(),i.events()},p.prototype.file=function(){var e=this,i=e.config,n=e.elemFile=t(['"].join("")),a=i.elem.next();(a.hasClass(u)||a.hasClass(c))&&a.remove(),o.ie&&o.ie<10&&i.elem.wrap('
'),e.isFile()?(e.elemFile=i.elem,i.field=i.elem[0].name):i.elem.after(n),o.ie&&o.ie<10&&e.initIE()},p.prototype.initIE=function(){var e=this,i=e.config,n=t(''),o=t(['
',"
"].join(""));t("#"+f)[0]||t("body").append(n),i.elem.next().hasClass(c)||(e.elemFile.wrap(o),i.elem.next("."+c).append(function(){var e=[];return layui.each(i.data,function(t,i){i="function"==typeof i?i():i,e.push('')}),e.join("")}()))},p.prototype.msg=function(e){return i.msg(e,{icon:2,shift:6})},p.prototype.isFile=function(){var e=this.config.elem[0];if(e)return"input"===e.tagName.toLocaleLowerCase()&&"file"===e.type},p.prototype.preview=function(e){var t=this;window.FileReader&&layui.each(t.chooseFiles,function(t,i){var n=new FileReader;n.readAsDataURL(i),n.onload=function(){e&&e(t,i,this.result)}})},p.prototype.upload=function(e,i){var n,a=this,l=a.config,r=a.elemFile[0],u=function(){var i=0,n=0,o=e||a.files||a.chooseFiles||r.files,u=function(){l.multiple&&i+n===a.fileLength&&"function"==typeof l.allDone&&l.allDone({total:a.fileLength,successful:i,aborted:n})};layui.each(o,function(e,o){var r=new FormData;r.append(l.field,o),layui.each(l.data,function(e,t){t="function"==typeof t?t():t,r.append(e,t)});var c={url:l.url,type:"post",data:r,contentType:!1,processData:!1,dataType:"json",headers:l.headers||{},success:function(t){i++,d(e,t),u()},error:function(){n++,a.msg("\u8bf7\u6c42\u4e0a\u4f20\u63a5\u53e3\u51fa\u73b0\u5f02\u5e38"),m(e),u()}};"function"==typeof l.progress&&(c.xhr=function(){var i=t.ajaxSettings.xhr();return i.upload.addEventListener("progress",function(t){if(t.lengthComputable){var i=Math.floor(t.loaded/t.total*100);l.progress(i,l.item?l.item[0]:l.elem[0],t,e)}}),i}),t.ajax(c)})},c=function(){var e=t("#"+f);a.elemFile.parent().submit(),clearInterval(p.timer),p.timer=setInterval(function(){var t,i=e.contents().find("body");try{t=i.text()}catch(n){a.msg("\u83b7\u53d6\u4e0a\u4f20\u540e\u7684\u54cd\u5e94\u4fe1\u606f\u51fa\u73b0\u5f02\u5e38"),clearInterval(p.timer),m()}t&&(clearInterval(p.timer),i.html(""),d(0,t))},30)},d=function(e,t){if(a.elemFile.next("."+s).remove(),r.value="","object"!=typeof t)try{t=JSON.parse(t)}catch(i){return t={},a.msg("\u8bf7\u5bf9\u4e0a\u4f20\u63a5\u53e3\u8fd4\u56de\u6709\u6548JSON")}"function"==typeof l.done&&l.done(t,e||0,function(e){a.upload(e)})},m=function(e){l.auto&&(r.value=""),"function"==typeof l.error&&l.error(e||0,function(e){a.upload(e)})},h=l.exts,v=function(){var t=[];return layui.each(e||a.chooseFiles,function(e,i){t.push(i.name)}),t}(),g={preview:function(e){a.preview(e)},upload:function(e,t){var i={};i[e]=t,a.upload(i)},pushFile:function(){return a.files=a.files||{},layui.each(a.chooseFiles,function(e,t){a.files[e]=t}),a.files},resetFile:function(e,t,i){var n=new File([t],i);a.files=a.files||{},a.files[e]=n}},y=function(){if(!(("choose"===i||l.auto)&&(l.choose&&l.choose(g),"choose"===i)||l.before&&l.before(g)===!1))return o.ie?o.ie>9?u():c():void u()};if(v=0===v.length?r.value.match(/[^\/\\]+\..+/g)||[]||"":v,0!==v.length){switch(l.accept){case"file":if(h&&!RegExp("\\w\\.("+h+")$","i").test(escape(v)))return a.msg("\u9009\u62e9\u7684\u6587\u4ef6\u4e2d\u5305\u542b\u4e0d\u652f\u6301\u7684\u683c\u5f0f"),r.value="";break;case"video":if(!RegExp("\\w\\.("+(h||"avi|mp4|wma|rmvb|rm|flash|3gp|flv")+")$","i").test(escape(v)))return a.msg("\u9009\u62e9\u7684\u89c6\u9891\u4e2d\u5305\u542b\u4e0d\u652f\u6301\u7684\u683c\u5f0f"),r.value="";break;case"audio":if(!RegExp("\\w\\.("+(h||"mp3|wav|mid")+")$","i").test(escape(v)))return a.msg("\u9009\u62e9\u7684\u97f3\u9891\u4e2d\u5305\u542b\u4e0d\u652f\u6301\u7684\u683c\u5f0f"),r.value="";break;default:if(layui.each(v,function(e,t){RegExp("\\w\\.("+(h||"jpg|png|gif|bmp|jpeg$")+")","i").test(escape(t))||(n=!0)}),n)return a.msg("\u9009\u62e9\u7684\u56fe\u7247\u4e2d\u5305\u542b\u4e0d\u652f\u6301\u7684\u683c\u5f0f"),r.value=""}if(a.fileLength=function(){var t=0,i=e||a.files||a.chooseFiles||r.files;return layui.each(i,function(){t++}),t}(),l.number&&a.fileLength>l.number)return a.msg("\u540c\u65f6\u6700\u591a\u53ea\u80fd\u4e0a\u4f20\u7684\u6570\u91cf\u4e3a\uff1a"+l.number);if(l.size>0&&!(o.ie&&o.ie<10)){var F;if(layui.each(a.chooseFiles,function(e,t){if(t.size>1024*l.size){var i=l.size/1024;i=i>=1?i.toFixed(2)+"MB":l.size+"KB",r.value="",F=i}}),F)return a.msg("\u6587\u4ef6\u4e0d\u80fd\u8d85\u8fc7"+F)}y()}},p.prototype.reload=function(e){e=e||{},delete e.elem,delete e.bindAction;var i=this,e=i.config=t.extend({},i.config,a.config,e),n=e.elem.next();n.attr({name:e.name,accept:e.acceptMime,multiple:e.multiple})},p.prototype.events=function(){var e=this,i=e.config,a=function(t){e.chooseFiles={},layui.each(t,function(t,i){var n=(new Date).getTime();e.chooseFiles[n+"-"+t]=i})},l=function(t,n){var o=e.elemFile,a=(i.item?i.item:i.elem,t.length>1?t.length+"\u4e2a\u6587\u4ef6":(t[0]||{}).name||o[0].value.match(/[^\/\\]+\..+/g)||[]||"");o.next().hasClass(s)&&o.next().remove(),e.upload(null,"choose"),e.isFile()||i.choose||o.after(''+a+"")};i.elem.off("upload.start").on("upload.start",function(){var o=t(this),a=o.attr("lay-data");if(a)try{a=new Function("return "+a)(),e.config=t.extend({},i,a)}catch(l){n.error("Upload element property lay-data configuration item has a syntax error: "+a)}e.config.item=o,e.elemFile[0].click()}),o.ie&&o.ie<10||i.elem.off("upload.over").on("upload.over",function(){var e=t(this);e.attr("lay-over","")}).off("upload.leave").on("upload.leave",function(){var e=t(this);e.removeAttr("lay-over")}).off("upload.drop").on("upload.drop",function(n,o){var r=t(this),u=o.originalEvent.dataTransfer.files||[];r.removeAttr("lay-over"),a(u),i.auto?e.upload(u):l(u)}),e.elemFile.off("upload.change").on("upload.change",function(){var t=this.files||[];a(t),i.auto?e.upload():l(t)}),i.bindAction.off("upload.action").on("upload.action",function(){e.upload()}),i.elem.data("haveEvents")||(e.elemFile.on("change",function(){t(this).trigger("upload.change")}),i.elem.on("click",function(){e.isFile()||t(this).trigger("upload.start")}),i.drag&&i.elem.on("dragover",function(e){e.preventDefault(),t(this).trigger("upload.over")}).on("dragleave",function(e){t(this).trigger("upload.leave")}).on("drop",function(e){e.preventDefault(),t(this).trigger("upload.drop",e)}),i.bindAction.on("click",function(){t(this).trigger("upload.action")}),i.elem.data("haveEvents",!0))},a.render=function(e){var t=new p(e);return l.call(t)},e(r,a)});layui.define(["jquery","laytpl","lay"],function(e){"use strict";var i=layui.$,n=layui.laytpl,t=layui.hint(),a=layui.device(),l=a.mobile?"click":"mousedown",r="dropdown",o="layui_"+r+"_index",u={config:{},index:layui[r]?layui[r].index+1e4:0,set:function(e){var n=this;return n.config=i.extend({},n.config,e),n},on:function(e,i){return layui.onevent.call(this,r,e,i)}},d=function(){var e=this,i=e.config,n=i.id;return d.that[n]=e,{config:i,reload:function(i){e.reload.call(e,i)}}},s="layui-dropdown",m="layui-menu-item-up",c="layui-menu-item-down",p="layui-menu-body-title",y="layui-menu-item-group",f="layui-menu-item-parent",v="layui-menu-item-divider",g="layui-menu-item-checked",h="layui-menu-item-checked2",w="layui-menu-body-panel",C="layui-menu-body-panel-left",V="."+y+">."+p,k=function(e){var n=this;n.index=++u.index,n.config=i.extend({},n.config,u.config,e),n.init()};k.prototype.config={trigger:"click",content:"",className:"",style:"",show:!1,isAllowSpread:!0,isSpreadItem:!0,data:[],delay:300},k.prototype.reload=function(e){var n=this;n.config=i.extend({},n.config,e),n.init(!0)},k.prototype.init=function(e){var n=this,t=n.config,a=t.elem=i(t.elem);if(a.length>1)return layui.each(a,function(){u.render(i.extend({},t,{elem:this}))}),n;if(!e&&a[0]&&a.data(o)){var l=d.getThis(a.data(o));if(!l)return;return l.reload(t)}t.id="id"in t?t.id:n.index,t.show&&n.render(e),n.events()},k.prototype.render=function(e){var t=this,a=t.config,r=i("body"),s=function(){var e=i('
    ');return a.data.length>0?m(e,a.data):e.html('
  • no menu
  • '),e},m=function(e,t){return layui.each(t,function(t,l){var r=l.child&&l.child.length>0,o="isSpreadItem"in l?l.isSpreadItem:a.isSpreadItem,u=l.templet?n(l.templet).render(l):a.templet?n(a.templet).render(l):l.title,d=function(){return r&&(l.type=l.type||"parent"),l.type?{group:"group",parent:"parent","-":"-"}[l.type]||"parent":""}();if("-"===d||l.title||l.id||r){var s=i(["",function(){var e="href"in l?''+u+"":u;return r?'
    '+e+function(){return"parent"===d?'':"group"===d&&a.isAllowSpread?'':""}()+"
    ":'
    '+e+"
    "}(),""].join(""));if(s.data("item",l),r){var c=i('
    '),y=i("
      ");"parent"===d?(c.append(m(y,l.child)),s.append(c)):s.append(m(y,l.child))}e.append(s)}}),e},c=['
      ',"
      "].join("");("contextmenu"===a.trigger||lay.isTopElem(a.elem[0]))&&(e=!0),!e&&a.elem.data(o+"_opened")||(t.elemView=i(c),t.elemView.append(a.content||s()),a.className&&t.elemView.addClass(a.className),a.style&&t.elemView.attr("style",a.style),u.thisId=a.id,t.remove(),r.append(t.elemView),a.elem.data(o+"_opened",!0),t.position(),d.prevElem=t.elemView,d.prevElem.data("prevElem",a.elem),t.elemView.find(".layui-menu").on(l,function(e){layui.stope(e)}),t.elemView.find(".layui-menu li").on("click",function(e){var n=i(this),l=n.data("item")||{},r=l.child&&l.child.length>0;r||"-"===l.type||(t.remove(),"function"==typeof a.click&&a.click(l,n))}),t.elemView.find(V).on("click",function(e){var n=i(this),t=n.parent(),l=t.data("item")||{};"group"===l.type&&a.isAllowSpread&&d.spread(t)}),"mouseenter"===a.trigger&&t.elemView.on("mouseenter",function(){clearTimeout(d.timer)}).on("mouseleave",function(){t.delayRemove()}))},k.prototype.position=function(e){var i=this,n=i.config;lay.position(n.elem[0],i.elemView[0],{position:n.position,e:i.e,clickType:"contextmenu"===n.trigger?"right":null,align:n.align||null})},k.prototype.remove=function(){var e=this,i=(e.config,d.prevElem);i&&(i.data("prevElem")&&i.data("prevElem").data(o+"_opened",!1),i.remove())},k.prototype.delayRemove=function(){var e=this,i=e.config;clearTimeout(d.timer),d.timer=setTimeout(function(){e.remove()},i.delay)},k.prototype.events=function(){var e=this,i=e.config;"hover"===i.trigger&&(i.trigger="mouseenter"),e.prevElem&&e.prevElem.off(i.trigger,e.prevElemCallback),e.prevElem=i.elem,e.prevElemCallback=function(n){clearTimeout(d.timer),e.e=n,e.render(),n.preventDefault(),"function"==typeof i.ready&&i.ready(e.elemView,i.elem,e.e.target)},i.elem.on(i.trigger,e.prevElemCallback),"mouseenter"===i.trigger&&i.elem.on("mouseleave",function(){e.delayRemove()})},d.that={},d.getThis=function(e){var i=d.that[e];return i||t.error(e?r+" instance with ID '"+e+"' not found":"ID argument required"),i},d.spread=function(e){var i=e.children("."+p).find(".layui-icon");e.hasClass(m)?(e.removeClass(m).addClass(c),i.removeClass("layui-icon-down").addClass("layui-icon-up")):(e.removeClass(c).addClass(m),i.removeClass("layui-icon-up").addClass("layui-icon-down"))},!function(){var e=i(window),n=i(document);e.on("resize",function(){if(u.thisId){var e=d.getThis(u.thisId);if(e){if(!e.elemView[0]||!i("."+s)[0])return!1;var n=e.config;"contextmenu"===n.trigger?e.remove():e.position()}}}),n.on(l,function(e){if(u.thisId){var i=d.getThis(u.thisId);if(i){var n=i.config;!lay.isTopElem(n.elem[0])&&"contextmenu"!==n.trigger&&(e.target===n.elem[0]||n.elem.find(e.target)[0]||e.target===i.elemView[0]||i.elemView&&i.elemView.find(e.target)[0])||i.remove()}}});var t=".layui-menu:not(.layui-dropdown-menu) li";n.on("click",t,function(e){var n=i(this),t=n.parents(".layui-menu").eq(0),a=n.hasClass(y)||n.hasClass(f),l=t.attr("lay-filter")||t.attr("id"),o=lay.options(this);n.hasClass(v)||a||(t.find("."+g).removeClass(g),t.find("."+h).removeClass(h),n.addClass(g),n.parents("."+f).addClass(h),layui.event.call(this,r,"click("+l+")",o))}),n.on("click",t+V,function(e){var n=i(this),t=n.parents("."+y+":eq(0)"),a=lay.options(t[0]);"isAllowSpread"in a&&!a.isAllowSpread||d.spread(t)});var a=".layui-menu ."+f;n.on("mouseenter",a,function(n){var t=i(this),a=t.find("."+w);if(a[0]){var l=a[0].getBoundingClientRect();l.right>e.width()&&(a.addClass(C),l=a[0].getBoundingClientRect(),l.left<0&&a.removeClass(C)),l.bottom>e.height()&&a.eq(0).css("margin-top",-(l.bottom-e.height()))}}).on("mouseleave",a,function(e){var n=i(this),t=n.children("."+w);t.removeClass(C),t.css("margin-top",0)})}(),u.reload=function(e,i){var n=d.getThis(e);return n?(n.reload(i),d.call(n)):this},u.render=function(e){var i=new k(e);return d.call(i)},e(r,u)});layui.define("jquery",function(e){"use strict";var i=layui.jquery,t={config:{},index:layui.slider?layui.slider.index+1e4:0,set:function(e){var t=this;return t.config=i.extend({},t.config,e),t},on:function(e,i){return layui.onevent.call(this,n,e,i)}},a=function(){var e=this,i=e.config;return{setValue:function(t,a){return i.value=t,e.slide("set",t,a||0)},config:i}},n="slider",l="layui-disabled",s="layui-slider",r="layui-slider-bar",o="layui-slider-wrap",u="layui-slider-wrap-btn",d="layui-slider-tips",v="layui-slider-input",c="layui-slider-input-txt",p="layui-slider-input-btn",m="layui-slider-hover",f=function(e){var a=this;a.index=++t.index,a.config=i.extend({},a.config,t.config,e),a.render()};f.prototype.config={type:"default",min:0,max:100,value:0,step:1,showstep:!1,tips:!0,input:!1,range:!1,height:200,disabled:!1,theme:"#009688"},f.prototype.render=function(){var e=this,t=e.config;if(t.step<1&&(t.step=1),t.maxt.min?a:t.min,t.value[1]=n>t.min?n:t.min,t.value[0]=t.value[0]>t.max?t.max:t.value[0],t.value[1]=t.value[1]>t.max?t.max:t.value[1];var r=Math.floor((t.value[0]-t.min)/(t.max-t.min)*100),v=Math.floor((t.value[1]-t.min)/(t.max-t.min)*100),p=v-r+"%";r+="%",v+="%"}else{"object"==typeof t.value&&(t.value=Math.min.apply(null,t.value)),t.valuet.max&&(t.value=t.max);var p=Math.floor((t.value-t.min)/(t.max-t.min)*100)+"%"}var m=t.disabled?"#c2c2c2":t.theme,f='
      '+(t.tips?'
      ':"")+'
      '+(t.range?'
      ':"")+"
      ",h=i(t.elem),y=h.next("."+s);if(y[0]&&y.remove(),e.elemTemp=i(f),t.range?(e.elemTemp.find("."+o).eq(0).data("value",t.value[0]),e.elemTemp.find("."+o).eq(1).data("value",t.value[1])):e.elemTemp.find("."+o).data("value",t.value),h.html(e.elemTemp),"vertical"===t.type&&e.elemTemp.height(t.height+"px"),t.showstep){for(var g=(t.max-t.min)/t.step,b="",x=1;x')}e.elemTemp.append(b)}if(t.input&&!t.range){var w=i('
      ');h.css("position","relative"),h.append(w),h.find("."+c).children("input").val(t.value),"vertical"===t.type?w.css({left:0,top:-48}):e.elemTemp.css("margin-right",w.outerWidth()+15)}t.disabled?(e.elemTemp.addClass(l),e.elemTemp.find("."+u).addClass(l)):e.slide(),e.elemTemp.find("."+u).on("mouseover",function(){var a="vertical"===t.type?t.height:e.elemTemp[0].offsetWidth,n=e.elemTemp.find("."+o),l="vertical"===t.type?a-i(this).parent()[0].offsetTop-n.height():i(this).parent()[0].offsetLeft,s=l/a*100,r=i(this).parent().data("value"),u=t.setTips?t.setTips(r):r;e.elemTemp.find("."+d).html(u),"vertical"===t.type?e.elemTemp.find("."+d).css({bottom:s+"%","margin-bottom":"20px",display:"inline-block"}):e.elemTemp.find("."+d).css({left:s+"%",display:"inline-block"})}).on("mouseout",function(){e.elemTemp.find("."+d).css("display","none")})},f.prototype.slide=function(e,t,a){var n=this,l=n.config,s=n.elemTemp,f=function(){return"vertical"===l.type?l.height:s[0].offsetWidth},h=s.find("."+o),y=s.next("."+v),g=y.children("."+c).children("input").val(),b=100/((l.max-l.min)/Math.ceil(l.step)),x=function(e,i){e=Math.ceil(e)*b>100?Math.ceil(e)*b:Math.round(e)*b,e=e>100?100:e,h.eq(i).css("vertical"===l.type?"bottom":"left",e+"%");var t=T(h[0].offsetLeft),a=l.range?T(h[1].offsetLeft):0;"vertical"===l.type?(s.find("."+d).css({bottom:e+"%","margin-bottom":"20px"}),t=T(f()-h[0].offsetTop-h.height()),a=l.range?T(f()-h[1].offsetTop-h.height()):0):s.find("."+d).css("left",e+"%"),t=t>100?100:t,a=a>100?100:a;var n=Math.min(t,a),o=Math.abs(t-a);"vertical"===l.type?s.find("."+r).css({height:o+"%",bottom:n+"%"}):s.find("."+r).css({width:o+"%",left:n+"%"});var u=l.min+Math.round((l.max-l.min)*e/100);if(g=u,y.children("."+c).children("input").val(g),h.eq(i).data("value",u),s.find("."+d).html(l.setTips?l.setTips(u):u),l.range){var v=[h.eq(0).data("value"),h.eq(1).data("value")];v[0]>v[1]&&v.reverse()}l.change&&l.change(l.range?v:u)},T=function(e){var i=e/f()*100/b,t=Math.round(i)*b;return e==f()&&(t=Math.ceil(i)*b),t},w=i(['
      f()&&(r=f());var o=r/f()*100/b;x(o,e),t.addClass(m),s.find("."+d).show(),i.preventDefault()},o=function(){t.removeClass(m),s.find("."+d).hide()};M(r,o)})}),s.on("click",function(e){var t=i("."+u);if(!t.is(event.target)&&0===t.has(event.target).length&&t.length){var a,n="vertical"===l.type?f()-e.clientY+i(this).offset().top:e.clientX-i(this).offset().left;n<0&&(n=0),n>f()&&(n=f());var s=n/f()*100/b;a=l.range?"vertical"===l.type?Math.abs(n-parseInt(i(h[0]).css("bottom")))>Math.abs(n-parseInt(i(h[1]).css("bottom")))?1:0:Math.abs(n-h[0].offsetLeft)>Math.abs(n-h[1].offsetLeft)?1:0:0,x(s,a),e.preventDefault()}}),y.children("."+p).children("i").each(function(e){i(this).on("click",function(){g=y.children("."+c).children("input").val(),g=1==e?g-l.stepl.max?l.max:Number(g)+l.step;var i=(g-l.min)/(l.max-l.min)*100/b;x(i,0)})});var q=function(){var e=this.value;e=isNaN(e)?0:e,e=el.max?l.max:e,this.value=e;var i=(e-l.min)/(l.max-l.min)*100/b;x(i,0)};y.children("."+c).children("input").on("keydown",function(e){13===e.keyCode&&(e.preventDefault(),q.call(this))}).on("change",q)},f.prototype.events=function(){var e=this;e.config},t.render=function(e){var i=new f(e);return a.call(i)},e(n,t)});layui.define(["jquery","lay"],function(e){"use strict";var i=layui.jquery,r=layui.lay,o=layui.device(),n=o.mobile?"click":"mousedown",l={config:{},index:layui.colorpicker?layui.colorpicker.index+1e4:0,set:function(e){var r=this;return r.config=i.extend({},r.config,e),r},on:function(e,i){return layui.onevent.call(this,"colorpicker",e,i)}},t=function(){var e=this,i=e.config;return{config:i}},c="colorpicker",a="layui-show",s="layui-colorpicker",f=".layui-colorpicker-main",d="layui-icon-down",u="layui-icon-close",p="layui-colorpicker-trigger-span",g="layui-colorpicker-trigger-i",v="layui-colorpicker-side",h="layui-colorpicker-side-slider",b="layui-colorpicker-basis",k="layui-colorpicker-alpha-bgcolor",y="layui-colorpicker-alpha-slider",m="layui-colorpicker-basis-cursor",x="layui-colorpicker-main-input",P=function(e){var i={h:0,s:0,b:0},r=Math.min(e.r,e.g,e.b),o=Math.max(e.r,e.g,e.b),n=o-r;return i.b=o,i.s=0!=o?255*n/o:0,0!=i.s?e.r==o?i.h=(e.g-e.b)/n:e.g==o?i.h=2+(e.b-e.r)/n:i.h=4+(e.r-e.g)/n:i.h=-1,o==r&&(i.h=0),i.h*=60,i.h<0&&(i.h+=360),i.s*=100/255,i.b*=100/255,i},C=function(e){var e=e.indexOf("#")>-1?e.substring(1):e;if(3==e.length){var i=e.split("");e=i[0]+i[0]+i[1]+i[1]+i[2]+i[2]}e=parseInt(e,16);var r={r:e>>16,g:(65280&e)>>8,b:255&e};return P(r)},B=function(e){var i={},r=e.h,o=255*e.s/100,n=255*e.b/100;if(0==o)i.r=i.g=i.b=n;else{var l=n,t=(255-o)*n/255,c=(l-t)*(r%60)/60;360==r&&(r=0),r<60?(i.r=l,i.b=t,i.g=t+c):r<120?(i.g=l,i.b=t,i.r=l-c):r<180?(i.g=l,i.r=t,i.b=t+c):r<240?(i.b=l,i.r=t,i.g=l-c):r<300?(i.b=l,i.g=t,i.r=t+c):r<360?(i.r=l,i.g=t,i.b=l-c):(i.r=0,i.g=0,i.b=0)}return{r:Math.round(i.r),g:Math.round(i.g),b:Math.round(i.b)}},w=function(e){var r=B(e),o=[r.r.toString(16),r.g.toString(16),r.b.toString(16)];return i.each(o,function(e,i){1==i.length&&(o[e]="0"+i)}),o.join("")},D=function(e){var i=/[0-9]{1,3}/g,r=e.match(i)||[];return{r:r[0],g:r[1],b:r[2]}},j=i(window),E=i(document),F=function(e){var r=this;r.index=++l.index,r.config=i.extend({},r.config,l.config,e),r.render()};F.prototype.config={color:"",size:null,alpha:!1,format:"hex",predefine:!1,colors:["#009688","#5FB878","#1E9FFF","#FF5722","#FFB800","#01AAED","#999","#c00","#ff8c00","#ffd700","#90ee90","#00ced1","#1e90ff","#c71585","rgb(0, 186, 189)","rgb(255, 120, 0)","rgb(250, 212, 0)","#393D49","rgba(0,0,0,.5)","rgba(255, 69, 0, 0.68)","rgba(144, 240, 144, 0.5)","rgba(31, 147, 255, 0.73)"]},F.prototype.render=function(){var e=this,r=e.config,o=i(['
      ',"",'3&&(r.alpha&&"rgb"==r.format||(e="#"+w(P(D(r.color))))),"background: "+e):e}()+'">','',"","","
      "].join("")),n=i(r.elem);r.size&&o.addClass("layui-colorpicker-"+r.size),n.addClass("layui-inline").html(e.elemColorBox=o),e.color=e.elemColorBox.find("."+p)[0].style.background,e.events()},F.prototype.renderPicker=function(){var e=this,r=e.config,o=e.elemColorBox[0],n=e.elemPicker=i(['
      ','
      ','
      ','
      ','
      ','
      ',"
      ",'
      ','
      ',"
      ","
      ",'
      ','
      ','
      ',"
      ","
      ",function(){if(r.predefine){var e=['
      '];return layui.each(r.colors,function(i,r){e.push(['
      ','
      ',"
      "].join(""))}),e.push("
      "),e.join("")}return""}(),'
      ','
      ','',"
      ",'
      ','','',"","
      "].join(""));e.elemColorBox.find("."+p)[0];i(f)[0]&&i(f).data("index")==e.index?e.removePicker(F.thisElemInd):(e.removePicker(F.thisElemInd),i("body").append(n)),F.thisElemInd=e.index,F.thisColor=o.style.background,e.position(),e.pickerEvents()},F.prototype.removePicker=function(e){var r=this;r.config;return i("#layui-colorpicker"+(e||r.index)).remove(),r},F.prototype.position=function(){var e=this,i=e.config;return r.position(e.bindElem||e.elemColorBox[0],e.elemPicker[0],{position:i.position,align:"center"}),e},F.prototype.val=function(){var e=this,i=(e.config,e.elemColorBox.find("."+p)),r=e.elemPicker.find("."+x),o=i[0],n=o.style.backgroundColor;if(n){var l=P(D(n)),t=i.attr("lay-type");if(e.select(l.h,l.s,l.b),"torgb"===t&&r.find("input").val(n),"rgba"===t){var c=D(n);if(3==(n.match(/[0-9]{1,3}/g)||[]).length)r.find("input").val("rgba("+c.r+", "+c.g+", "+c.b+", 1)"),e.elemPicker.find("."+y).css("left",280);else{r.find("input").val(n);var a=280*n.slice(n.lastIndexOf(",")+1,n.length-1);e.elemPicker.find("."+y).css("left",a)}e.elemPicker.find("."+k)[0].style.background="linear-gradient(to right, rgba("+c.r+", "+c.g+", "+c.b+", 0), rgb("+c.r+", "+c.g+", "+c.b+"))"}}else e.select(0,100,100),r.find("input").val(""),e.elemPicker.find("."+k)[0].style.background="",e.elemPicker.find("."+y).css("left",280)},F.prototype.side=function(){var e=this,r=e.config,o=e.elemColorBox.find("."+p),n=o.attr("lay-type"),l=e.elemPicker.find("."+v),t=e.elemPicker.find("."+h),c=e.elemPicker.find("."+b),a=e.elemPicker.find("."+m),s=e.elemPicker.find("."+k),f=e.elemPicker.find("."+y),C=t[0].offsetTop/180*360,w=100-(a[0].offsetTop+3)/180*100,E=(a[0].offsetLeft+3)/260*100,F=Math.round(f[0].offsetLeft/280*100)/100,H=e.elemColorBox.find("."+g),M=e.elemPicker.find(".layui-colorpicker-pre").children("div"),Y=function(i,l,t,c){e.select(i,l,t);var a=B({h:i,s:l,b:t});if(H.addClass(d).removeClass(u),o[0].style.background="rgb("+a.r+", "+a.g+", "+a.b+")","torgb"===n&&e.elemPicker.find("."+x).find("input").val("rgb("+a.r+", "+a.g+", "+a.b+")"),"rgba"===n){var p=0;p=280*c,f.css("left",p),e.elemPicker.find("."+x).find("input").val("rgba("+a.r+", "+a.g+", "+a.b+", "+c+")"),o[0].style.background="rgba("+a.r+", "+a.g+", "+a.b+", "+c+")",s[0].style.background="linear-gradient(to right, rgba("+a.r+", "+a.g+", "+a.b+", 0), rgb("+a.r+", "+a.g+", "+a.b+"))"}r.change&&r.change(e.elemPicker.find("."+x).find("input").val())},I=i(['
      '].join("")),L=function(e){i("#LAY-colorpicker-moving")[0]||i("body").append(I),I.on("mousemove",e),I.on("mouseup",function(){I.remove()}).on("mouseleave",function(){I.remove()})};t.on("mousedown",function(e){var i=this.offsetTop,r=e.clientY,o=function(e){var o=i+(e.clientY-r),n=l[0].offsetHeight;o<0&&(o=0),o>n&&(o=n);var t=o/180*360;C=t,Y(t,E,w,F),e.preventDefault()};L(o),e.preventDefault()}),l.on("click",function(e){var r=e.clientY-i(this).offset().top;r<0&&(r=0),r>this.offsetHeight&&(r=this.offsetHeight);var o=r/180*360;C=o,Y(o,E,w,F),e.preventDefault()}),a.on("mousedown",function(e){var i=this.offsetTop,r=this.offsetLeft,o=e.clientY,n=e.clientX,l=function(e){var l=i+(e.clientY-o),t=r+(e.clientX-n),a=c[0].offsetHeight-3,s=c[0].offsetWidth-3;l<-3&&(l=-3),l>a&&(l=a),t<-3&&(t=-3),t>s&&(t=s);var f=(t+3)/260*100,d=100-(l+3)/180*100;w=d,E=f,Y(C,f,d,F),e.preventDefault()};layui.stope(e),L(l),e.preventDefault()}),c.on("mousedown",function(e){var r=e.clientY-i(this).offset().top-3+j.scrollTop(),o=e.clientX-i(this).offset().left-3+j.scrollLeft();r<-3&&(r=-3),r>this.offsetHeight-3&&(r=this.offsetHeight-3),o<-3&&(o=-3),o>this.offsetWidth-3&&(o=this.offsetWidth-3);var n=(o+3)/260*100,l=100-(r+3)/180*100;w=l,E=n,Y(C,n,l,F),layui.stope(e),e.preventDefault(),a.trigger(e,"mousedown")}),f.on("mousedown",function(e){var i=this.offsetLeft,r=e.clientX,o=function(e){var o=i+(e.clientX-r),n=s[0].offsetWidth;o<0&&(o=0),o>n&&(o=n);var l=Math.round(o/280*100)/100;F=l,Y(C,E,w,l),e.preventDefault()};L(o),e.preventDefault()}),s.on("click",function(e){var r=e.clientX-i(this).offset().left;r<0&&(r=0),r>this.offsetWidth&&(r=this.offsetWidth);var o=Math.round(r/280*100)/100;F=o,Y(C,E,w,o),e.preventDefault()}),M.each(function(){i(this).on("click",function(){i(this).parent(".layui-colorpicker-pre").addClass("selected").siblings().removeClass("selected");var e,r=this.style.backgroundColor,o=P(D(r)),n=r.slice(r.lastIndexOf(",")+1,r.length-1);C=o.h,E=o.s,w=o.b,3==(r.match(/[0-9]{1,3}/g)||[]).length&&(n=1),F=n,e=280*n,Y(o.h,o.s,o.b,n)})})},F.prototype.select=function(e,i,r,o){var n=this,l=(n.config,w({h:e,s:100,b:100})),t=w({h:e,s:i,b:r}),c=e/360*180,a=180-r/100*180-3,s=i/100*260-3;n.elemPicker.find("."+h).css("top",c),n.elemPicker.find("."+b)[0].style.background="#"+l,n.elemPicker.find("."+m).css({top:a,left:s}),"change"!==o&&n.elemPicker.find("."+x).find("input").val("#"+t)},F.prototype.pickerEvents=function(){var e=this,r=e.config,o=e.elemColorBox.find("."+p),n=e.elemPicker.find("."+x+" input"),l={clear:function(i){o[0].style.background="",e.elemColorBox.find("."+g).removeClass(d).addClass(u),e.color="",r.done&&r.done(""),e.removePicker()},confirm:function(i,l){var t=n.val(),c=t,a={};if(t.indexOf(",")>-1){if(a=P(D(t)),e.select(a.h,a.s,a.b),o[0].style.background=c="#"+w(a),(t.match(/[0-9]{1,3}/g)||[]).length>3&&"rgba"===o.attr("lay-type")){var s=280*t.slice(t.lastIndexOf(",")+1,t.length-1);e.elemPicker.find("."+y).css("left",s),o[0].style.background=t,c=t}}else a=C(t),o[0].style.background=c="#"+w(a),e.elemColorBox.find("."+g).removeClass(u).addClass(d);return"change"===l?(e.select(a.h,a.s,a.b,l),void(r.change&&r.change(c))):(e.color=t,r.done&&r.done(t),void e.removePicker())}};e.elemPicker.on("click","*[colorpicker-events]",function(){var e=i(this),r=e.attr("colorpicker-events");l[r]&&l[r].call(this,e)}),n.on("keyup",function(e){var r=i(this);l.confirm.call(this,r,13===e.keyCode?null:"change")})},F.prototype.events=function(){var e=this,r=e.config,o=e.elemColorBox.find("."+p);e.elemColorBox.on("click",function(){e.renderPicker(),i(f)[0]&&(e.val(),e.side())}),r.elem[0]&&!e.elemColorBox[0].eventHandler&&(E.on(n,function(r){if(!i(r.target).hasClass(s)&&!i(r.target).parents("."+s)[0]&&!i(r.target).hasClass(f.replace(/\./g,""))&&!i(r.target).parents(f)[0]&&e.elemPicker){if(e.color){var n=P(D(e.color));e.select(n.h,n.s,n.b)}else e.elemColorBox.find("."+g).removeClass(d).addClass(u);o[0].style.background=e.color||"",e.removePicker()}}),j.on("resize",function(){return!(!e.elemPicker||!i(f)[0])&&void e.position()}),e.elemColorBox[0].eventHandler=!0)},l.render=function(e){var i=new F(e);return t.call(i)},e(c,l)});layui.define("layer",function(e){"use strict";var t=layui.$,i=layui.layer,a=layui.hint(),n=layui.device(),l="form",r=".layui-form",o="layui-this",s="layui-hide",c="layui-disabled",u=function(){this.config={verify:{required:[/[\S]+/,"\u5fc5\u586b\u9879\u4e0d\u80fd\u4e3a\u7a7a"],phone:[/^1\d{10}$/,"\u8bf7\u8f93\u5165\u6b63\u786e\u7684\u624b\u673a\u53f7"],email:[/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/,"\u90ae\u7bb1\u683c\u5f0f\u4e0d\u6b63\u786e"],url:[/^(#|(http(s?)):\/\/|\/\/)[^\s]+\.[^\s]+$/,"\u94fe\u63a5\u683c\u5f0f\u4e0d\u6b63\u786e"],number:function(e){if(!e||isNaN(e))return"\u53ea\u80fd\u586b\u5199\u6570\u5b57"},date:[/^(\d{4})[-\/](\d{1}|0\d{1}|1[0-2])([-\/](\d{1}|0\d{1}|[1-2][0-9]|3[0-1]))*$/,"\u65e5\u671f\u683c\u5f0f\u4e0d\u6b63\u786e"],identity:[/(^\d{15}$)|(^\d{17}(x|X|\d)$)/,"\u8bf7\u8f93\u5165\u6b63\u786e\u7684\u8eab\u4efd\u8bc1\u53f7"]},autocomplete:null}};u.prototype.set=function(e){var i=this;return t.extend(!0,i.config,e),i},u.prototype.verify=function(e){var i=this;return t.extend(!0,i.config.verify,e),i},u.prototype.on=function(e,t){return layui.onevent.call(this,l,e,t)},u.prototype.val=function(e,i){var a=this,n=t(r+'[lay-filter="'+e+'"]');return n.each(function(e,a){var n=t(this);layui.each(i,function(e,t){var i,a=n.find('[name="'+e+'"]');a[0]&&(i=a[0].type,"checkbox"===i?a[0].checked=t:"radio"===i?a.each(function(){this.value==t&&(this.checked=!0)}):a.val(t))})}),f.render(null,e),a.getValue(e)},u.prototype.getValue=function(e,i){i=i||t(r+'[lay-filter="'+e+'"]').eq(0);var a={},n={},l=i.find("input,select,textarea");return layui.each(l,function(e,i){var l;t(this);if(i.name=(i.name||"").replace(/^\s*|\s*&/,""),i.name){if(/^.*\[\]$/.test(i.name)){var r=i.name.match(/^(.*)\[\]$/g)[0];a[r]=0|a[r],l=i.name.replace(/^(.*)\[\]$/,"$1["+a[r]++ +"]")}/^checkbox|radio$/.test(i.type)&&!i.checked||(n[l||i.name]=i.value)}}),n},u.prototype.render=function(e,i){var n=this,u=n.config,d=t(r+function(){return i?'[lay-filter="'+i+'"]':""}()),f={input:function(){var e=d.find("input,textarea");u.autocomplete&&e.attr("autocomplete",u.autocomplete)},select:function(){var e,i="\u8bf7\u9009\u62e9",a="layui-form-select",n="layui-select-title",r="layui-select-none",u="",f=d.find("select"),v=function(i,l){t(i.target).parent().hasClass(n)&&!l||(t("."+a).removeClass(a+"ed "+a+"up"),e&&u&&e.val(u)),e=null},y=function(i,d,f){var y,p=t(this),m=i.find("."+n),g=m.find("input"),k=i.find("dl"),x=k.children("dd"),b=this.selectedIndex;if(!d){var C=function(){var e=i.offset().top+i.outerHeight()+5-h.scrollTop(),t=k.outerHeight();b=p[0].selectedIndex,i.addClass(a+"ed"),x.removeClass(s),y=null,x.eq(b).addClass(o).siblings().removeClass(o),e+t>h.height()&&e>=t&&i.addClass(a+"up"),T()},w=function(e){i.removeClass(a+"ed "+a+"up"),g.blur(),y=null,e||$(g.val(),function(e){var i=p[0].selectedIndex;e&&(u=t(p[0].options[i]).html(),0===i&&u===g.attr("placeholder")&&(u=""),g.val(u||""))})},T=function(){var e=k.children("dd."+o);if(e[0]){var t=e.position().top,i=k.height(),a=e.height();t>i&&k.scrollTop(t+k.scrollTop()-i+a-5),t<0&&k.scrollTop(t+k.scrollTop()-5)}};m.on("click",function(e){i.hasClass(a+"ed")?w():(v(e,!0),C()),k.find("."+r).remove()}),m.find(".layui-edge").on("click",function(){g.focus()}),g.on("keyup",function(e){var t=e.keyCode;9===t&&C()}).on("keydown",function(e){var t=e.keyCode;9===t&&w();var i=function(t,a){var n,l;e.preventDefault();var r=function(){var e=k.children("dd."+o);if(k.children("dd."+s)[0]&&"next"===t){var i=k.children("dd:not(."+s+",."+c+")"),n=i.eq(0).index();if(n>=0&&n\u65e0\u5339\u914d\u9879

      '):k.find("."+r).remove()},"keyup"),""===t&&k.find("."+r).remove(),void T())};f&&g.on("keyup",q).on("blur",function(i){var a=p[0].selectedIndex;e=g,u=t(p[0].options[a]).html(),0===a&&u===g.attr("placeholder")&&(u=""),setTimeout(function(){$(g.val(),function(e){u||g.val("")},"blur")},200)}),x.on("click",function(){var e=t(this),a=e.attr("lay-value"),n=p.attr("lay-filter");return!e.hasClass(c)&&(e.hasClass("layui-select-tips")?g.val(""):(g.val(e.text()),e.addClass(o)),e.siblings().removeClass(o),p.val(a).removeClass("layui-form-danger"),layui.event.call(this,l,"select("+n+")",{elem:p[0],value:a,othis:i}),w(!0),!1)}),i.find("dl>dt").on("click",function(e){return!1}),t(document).off("click",v).on("click",v)}};f.each(function(e,l){var r=t(this),s=r.next("."+a),u=this.disabled,d=l.value,f=t(l.options[l.selectedIndex]),v=l.options[0];if("string"==typeof r.attr("lay-ignore"))return r.show();var h="string"==typeof r.attr("lay-search"),p=v?v.value?i:v.innerHTML||i:i,m=t(['
      ','
      ','','
      ','
      ',function(e){var a=[];return layui.each(e,function(e,n){0!==e||n.value?"optgroup"===n.tagName.toLowerCase()?a.push("
      "+n.label+"
      "):a.push('
      '+t.trim(n.innerHTML)+"
      "):a.push('
      '+t.trim(n.innerHTML||i)+"
      ")}),0===a.length&&a.push('
      \u6ca1\u6709\u9009\u9879
      '),a.join("")}(r.find("*"))+"
      ","
      "].join(""));s[0]&&s.remove(),r.after(m),y.call(this,m,u,h)})},checkbox:function(){var e={checkbox:["layui-form-checkbox","layui-form-checked","checkbox"],_switch:["layui-form-switch","layui-form-onswitch","switch"]},i=d.find("input[type=checkbox]"),a=function(e,i){var a=t(this);e.on("click",function(){var t=a.attr("lay-filter"),n=(a.attr("lay-text")||"").split("|");a[0].disabled||(a[0].checked?(a[0].checked=!1,e.removeClass(i[1]).find("em").text(n[1])):(a[0].checked=!0,e.addClass(i[1]).find("em").text(n[0])),layui.event.call(a[0],l,i[2]+"("+t+")",{elem:a[0],value:a[0].value,othis:e}))})};i.each(function(i,n){var l=t(this),r=l.attr("lay-skin"),o=(l.attr("lay-text")||"").split("|"),s=this.disabled;"switch"===r&&(r="_"+r);var u=e[r]||e.checkbox;if("string"==typeof l.attr("lay-ignore"))return l.show();var d=l.next("."+u[0]),f=t(['
      ",function(){var e=n.title.replace(/\s/g,""),t={checkbox:[e?""+n.title+"":"",''].join(""),_switch:""+((n.checked?o[0]:o[1])||"")+""};return t[r]||t.checkbox}(),"
      "].join(""));d[0]&&d.remove(),l.after(f),a.call(this,f,u)})},radio:function(){var e="layui-form-radio",i=["",""],a=d.find("input[type=radio]"),n=function(a){var n=t(this),o="layui-anim-scaleSpring";a.on("click",function(){var s=n[0].name,c=n.parents(r),u=n.attr("lay-filter"),d=c.find("input[name="+s.replace(/(\.|#|\[|\])/g,"\\$1")+"]");n[0].disabled||(layui.each(d,function(){var a=t(this).next("."+e);this.checked=!1,a.removeClass(e+"ed"),a.find(".layui-icon").removeClass(o).html(i[1])}),n[0].checked=!0,a.addClass(e+"ed"),a.find(".layui-icon").addClass(o).html(i[0]),layui.event.call(n[0],l,"radio("+u+")",{elem:n[0],value:n[0].value,othis:a}))})};a.each(function(a,l){var r=t(this),o=r.next("."+e),s=this.disabled;if("string"==typeof r.attr("lay-ignore"))return r.show();o[0]&&o.remove();var u=t(['
      ',''+i[l.checked?0:1]+"","
      "+function(){var e=l.title||"";return"string"==typeof r.next().attr("lay-radio")&&(e=r.next().html()),e}()+"
      ","
      "].join(""));r.after(u),n.call(this,u)})}};return e?f[e]?f[e]():a.error('\u4e0d\u652f\u6301\u7684 "'+e+'" \u8868\u5355\u6e32\u67d3'):layui.each(f,function(e,t){t()}),n};var d=function(){var e=null,a=f.config.verify,o="layui-form-danger",s={},c=t(this),u=c.parents(r).eq(0),d=u.find("*[lay-verify]"),h=c.parents("form")[0],y=c.attr("lay-filter");return layui.each(d,function(l,r){var s=t(this),c=s.attr("lay-verify").split("|"),u=s.attr("lay-verType"),d=s.val();if(s.removeClass(o),layui.each(c,function(t,l){var c,f="",h="function"==typeof a[l];if(a[l]){var c=h?f=a[l](d,r):!a[l][0].test(d),y="select"===r.tagName.toLowerCase()||/^checkbox|radio$/.test(r.type);if(f=f||a[l][1],"required"===l&&(f=s.attr("lay-reqText")||f),c)return"tips"===u?i.tips(f,function(){return"string"!=typeof s.attr("lay-ignore")&&y?s.next():s}(),{tips:1}):"alert"===u?i.alert(f,{title:"\u63d0\u793a",shadeClose:!0}):/\bstring|number\b/.test(typeof f)&&i.msg(f,{icon:5,shift:6}),n.mobile?v.scrollTop(function(){try{return(y?s.next():s).offset().top-15}catch(e){return 0}}()):setTimeout(function(){(y?s.next().find("input"):r).focus()},7),s.addClass(o),e=!0}}),e)return e}),!e&&(s=f.getValue(null,u),layui.event.call(this,l,"submit("+y+")",{elem:this,form:h,field:s}))},f=new u,v=t(document),h=t(window);t(function(){f.render()}),v.on("reset",r,function(){var e=t(this).attr("lay-filter");setTimeout(function(){f.render(null,e)},50)}),v.on("submit",r,d).on("click","*[lay-submit]",d),e(l,f)});layui.define("form",function(e){"use strict";var i=layui.$,a=layui.form,n=layui.layer,t="tree",r={config:{},index:layui[t]?layui[t].index+1e4:0,set:function(e){var a=this;return a.config=i.extend({},a.config,e),a},on:function(e,i){return layui.onevent.call(this,t,e,i)}},l=function(){var e=this,i=e.config,a=i.id||e.index;return l.that[a]=e,l.config[a]=i,{config:i,reload:function(i){e.reload.call(e,i)},getChecked:function(){return e.getChecked.call(e)},setChecked:function(i){return e.setChecked.call(e,i)}}},c="layui-hide",d="layui-disabled",s="layui-tree-set",o="layui-tree-iconClick",h="layui-icon-addition",u="layui-icon-subtraction",p="layui-tree-entry",f="layui-tree-main",y="layui-tree-txt",v="layui-tree-pack",C="layui-tree-spread",k="layui-tree-setLineShort",m="layui-tree-showLine",x="layui-tree-lineExtend",b=function(e){var a=this;a.index=++r.index,a.config=i.extend({},a.config,r.config,e),a.render()};b.prototype.config={data:[],showCheckbox:!1,showLine:!0,accordion:!1,onlyIconControl:!1,isJump:!1,edit:!1,text:{defaultNodeName:"\u672a\u547d\u540d",none:"\u65e0\u6570\u636e"}},b.prototype.reload=function(e){var a=this;layui.each(e,function(e,i){"array"===layui._typeof(i)&&delete a.config[e]}),a.config=i.extend(!0,{},a.config,e),a.render()},b.prototype.render=function(){var e=this,a=e.config;e.checkids=[];var n=i('
      ');e.tree(n);var t=a.elem=i(a.elem);if(t[0]){if(e.key=a.id||e.index,e.elem=n,e.elemNone=i('
      '+a.text.none+"
      "),t.html(e.elem),0==e.elem.find(".layui-tree-set").length)return e.elem.append(e.elemNone);a.showCheckbox&&e.renderForm("checkbox"),e.elem.find(".layui-tree-set").each(function(){var e=i(this);e.parent(".layui-tree-pack")[0]||e.addClass("layui-tree-setHide"),!e.next()[0]&&e.parents(".layui-tree-pack").eq(1).hasClass("layui-tree-lineExtend")&&e.addClass(k),e.next()[0]||e.parents(".layui-tree-set").eq(0).next()[0]||e.addClass(k)}),e.events()}},b.prototype.renderForm=function(e){a.render(e,"LAY-tree-"+this.index)},b.prototype.tree=function(e,a){var n=this,t=n.config,r=a||t.data;layui.each(r,function(a,r){var l=r.children&&r.children.length>0,o=i('
      "),h=i(['
      ','
      ','
      ',function(){return t.showLine?l?'':'':''}(),function(){return t.showCheckbox?'':""}(),function(){return t.isJump&&r.href?''+(r.title||r.label||t.text.defaultNodeName)+"":''+(r.title||r.label||t.text.defaultNodeName)+""}(),"
      ",function(){if(!t.edit)return"";var e={add:'',update:'',del:''},i=['
      '];return t.edit===!0&&(t.edit=["update","del"]),"object"==typeof t.edit?(layui.each(t.edit,function(a,n){i.push(e[n]||"")}),i.join("")+"
      "):void 0}(),"
      "].join(""));l&&(h.append(o),n.tree(o,r.children)),e.append(h),h.prev("."+s)[0]&&h.prev().children(".layui-tree-pack").addClass("layui-tree-showLine"),l||h.parent(".layui-tree-pack").addClass("layui-tree-lineExtend"),n.spread(h,r),t.showCheckbox&&(r.checked&&n.checkids.push(r.id),n.checkClick(h,r)),t.edit&&n.operate(h,r)})},b.prototype.spread=function(e,a){var n=this,t=n.config,r=e.children("."+p),l=r.children("."+f),c=r.find("."+o),k=r.find("."+y),m=t.onlyIconControl?c:l,x="";m.on("click",function(i){var a=e.children("."+v),n=m.children(".layui-icon")[0]?m.children(".layui-icon"):m.find(".layui-tree-icon").children(".layui-icon");if(a[0]){if(e.hasClass(C))e.removeClass(C),a.slideUp(200),n.removeClass(u).addClass(h);else if(e.addClass(C),a.slideDown(200),n.addClass(u).removeClass(h),t.accordion){var r=e.siblings("."+s);r.removeClass(C),r.children("."+v).slideUp(200),r.find(".layui-tree-icon").children(".layui-icon").removeClass(u).addClass(h)}}else x="normal"}),k.on("click",function(){var n=i(this);n.hasClass(d)||(x=e.hasClass(C)?t.onlyIconControl?"open":"close":t.onlyIconControl?"close":"open",t.click&&t.click({elem:e,state:x,data:a}))})},b.prototype.setCheckbox=function(e,i,a){var n=this,t=(n.config,a.prop("checked"));if(!a.prop("disabled")){if("object"==typeof i.children||e.find("."+v)[0]){var r=e.find("."+v).find('input[same="layuiTreeCheck"]');r.each(function(){this.disabled||(this.checked=t)})}var l=function(e){if(e.parents("."+s)[0]){var i,a=e.parent("."+v),n=a.parent(),r=a.prev().find('input[same="layuiTreeCheck"]');t?r.prop("checked",t):(a.find('input[same="layuiTreeCheck"]').each(function(){this.checked&&(i=!0)}),i||r.prop("checked",!1)),l(n)}};l(e),n.renderForm("checkbox")}},b.prototype.checkClick=function(e,a){var n=this,t=n.config,r=e.children("."+p),l=r.children("."+f);l.on("click",'input[same="layuiTreeCheck"]+',function(r){layui.stope(r);var l=i(this).prev(),c=l.prop("checked");l.prop("disabled")||(n.setCheckbox(e,a,l),t.oncheck&&t.oncheck({elem:e,checked:c,data:a}))})},b.prototype.operate=function(e,a){var t=this,r=t.config,l=e.children("."+p),d=l.children("."+f);l.children(".layui-tree-btnGroup").on("click",".layui-icon",function(l){layui.stope(l);var f=i(this).data("type"),b=e.children("."+v),g={data:a,type:f,elem:e};if("add"==f){b[0]||(r.showLine?(d.find("."+o).addClass("layui-tree-icon"),d.find("."+o).children(".layui-icon").addClass(h).removeClass("layui-icon-file")):d.find(".layui-tree-iconArrow").removeClass(c),e.append('
      '));var w=r.operate&&r.operate(g),N={};if(N.title=r.text.defaultNodeName,N.id=w,t.tree(e.children("."+v),[N]),r.showLine)if(b[0])b.hasClass(x)||b.addClass(x),e.find("."+v).each(function(){i(this).children("."+s).last().addClass(k)}),b.children("."+s).last().prev().hasClass(k)?b.children("."+s).last().prev().removeClass(k):b.children("."+s).last().removeClass(k),!e.parent("."+v)[0]&&e.next()[0]&&b.children("."+s).last().removeClass(k);else{var T=e.siblings("."+s),L=1,I=e.parent("."+v);layui.each(T,function(e,a){i(a).children("."+v)[0]||(L=0)}),1==L?(T.children("."+v).addClass(m),T.children("."+v).children("."+s).removeClass(k),e.children("."+v).addClass(m),I.removeClass(x),I.children("."+s).last().children("."+v).children("."+s).last().addClass(k)):e.children("."+v).children("."+s).addClass(k)}if(!r.showCheckbox)return;if(d.find('input[same="layuiTreeCheck"]')[0].checked){var A=e.children("."+v).children("."+s).last();A.find('input[same="layuiTreeCheck"]')[0].checked=!0}t.renderForm("checkbox")}else if("update"==f){var F=d.children("."+y).html();d.children("."+y).html(""),d.append(''),d.children(".layui-tree-editInput").val(F).focus();var j=function(e){var i=e.val().trim();i=i?i:r.text.defaultNodeName,e.remove(),d.children("."+y).html(i),g.data.title=i,r.operate&&r.operate(g)};d.children(".layui-tree-editInput").blur(function(){j(i(this))}),d.children(".layui-tree-editInput").on("keydown",function(e){13===e.keyCode&&(e.preventDefault(),j(i(this)))})}else n.confirm('\u786e\u8ba4\u5220\u9664\u8be5\u8282\u70b9 "'+(a.title||"")+'" \u5417\uff1f',function(a){if(r.operate&&r.operate(g),g.status="remove",n.close(a),!e.prev("."+s)[0]&&!e.next("."+s)[0]&&!e.parent("."+v)[0])return e.remove(),void t.elem.append(t.elemNone);if(e.siblings("."+s).children("."+p)[0]){if(r.showCheckbox){var l=function(e){if(e.parents("."+s)[0]){var a=e.siblings("."+s).children("."+p),n=e.parent("."+v).prev(),r=n.find('input[same="layuiTreeCheck"]')[0],c=1,d=0;0==r.checked&&(a.each(function(e,a){var n=i(a).find('input[same="layuiTreeCheck"]')[0];0!=n.checked||n.disabled||(c=0),n.disabled||(d=1)}),1==c&&1==d&&(r.checked=!0,t.renderForm("checkbox"),l(n.parent("."+s))))}};l(e)}if(r.showLine){var d=e.siblings("."+s),h=1,f=e.parent("."+v);layui.each(d,function(e,a){i(a).children("."+v)[0]||(h=0)}),1==h?(b[0]||(f.removeClass(x),d.children("."+v).addClass(m),d.children("."+v).children("."+s).removeClass(k)),e.next()[0]?f.children("."+s).last().children("."+v).children("."+s).last().addClass(k):e.prev().children("."+v).children("."+s).last().addClass(k),e.next()[0]||e.parents("."+s)[1]||e.parents("."+s).eq(0).next()[0]||e.prev("."+s).addClass(k)):!e.next()[0]&&e.hasClass(k)&&e.prev().addClass(k)}}else{var y=e.parent("."+v).prev();if(r.showLine){y.find("."+o).removeClass("layui-tree-icon"),y.find("."+o).children(".layui-icon").removeClass(u).addClass("layui-icon-file");var w=y.parents("."+v).eq(0);w.addClass(x),w.children("."+s).each(function(){i(this).children("."+v).children("."+s).last().addClass(k)})}else y.find(".layui-tree-iconArrow").addClass(c);e.parents("."+s).eq(0).removeClass(C),e.parent("."+v).remove()}e.remove()})})},b.prototype.events=function(){var e=this,a=e.config;e.elem.find(".layui-tree-checkedFirst");e.setChecked(e.checkids),e.elem.find(".layui-tree-search").on("keyup",function(){var n=i(this),t=n.val(),r=n.nextAll(),l=[];r.find("."+y).each(function(){var e=i(this).parents("."+p);if(i(this).html().indexOf(t)!=-1){l.push(i(this).parent());var a=function(e){e.addClass("layui-tree-searchShow"),e.parent("."+v)[0]&&a(e.parent("."+v).parent("."+s))};a(e.parent("."+s))}}),r.find("."+p).each(function(){var e=i(this).parent("."+s);e.hasClass("layui-tree-searchShow")||e.addClass(c)}),0==r.find(".layui-tree-searchShow").length&&e.elem.append(e.elemNone),a.onsearch&&a.onsearch({elem:l})}),e.elem.find(".layui-tree-search").on("keydown",function(){i(this).nextAll().find("."+p).each(function(){var e=i(this).parent("."+s);e.removeClass("layui-tree-searchShow "+c)}),i(".layui-tree-emptyText")[0]&&i(".layui-tree-emptyText").remove()})},b.prototype.getChecked=function(){var e=this,a=e.config,n=[],t=[];e.elem.find(".layui-form-checked").each(function(){n.push(i(this).prev()[0].value)});var r=function(e,a){layui.each(e,function(e,t){layui.each(n,function(e,n){if(t.id==n){var l=i.extend({},t);return delete l.children,a.push(l),t.children&&(l.children=[],r(t.children,l.children)),!0}})})};return r(i.extend({},a.data),t),t},b.prototype.setChecked=function(e){var a=this;a.config;a.elem.find("."+s).each(function(a,n){var t=i(this).data("id"),r=i(n).children("."+p).find('input[same="layuiTreeCheck"]'),l=r.next();if("number"==typeof e){if(t==e)return r[0].checked||l.click(),!1}else"object"==typeof e&&layui.each(e,function(e,i){if(i==t&&!r[0].checked)return l.click(),!0})})},l.that={},l.config={},r.reload=function(e,i){var a=l.that[e];return a.reload(i),l.call(a)},r.getChecked=function(e){var i=l.that[e];return i.getChecked()},r.setChecked=function(e,i){var a=l.that[e];return a.setChecked(i)},r.render=function(e){var i=new b(e);return l.call(i)},e(t,r)});layui.define(["laytpl","form"],function(e){"use strict";var a=layui.$,t=layui.laytpl,i=layui.form,n="transfer",l={config:{},index:layui[n]?layui[n].index+1e4:0,set:function(e){var t=this;return t.config=a.extend({},t.config,e),t},on:function(e,a){return layui.onevent.call(this,n,e,a)}},r=function(){var e=this,a=e.config,t=a.id||e.index;return r.that[t]=e,r.config[t]=a,{config:a,reload:function(a){e.reload.call(e,a)},getData:function(){return e.getData.call(e)}}},c="layui-hide",o="layui-btn-disabled",d="layui-none",s="layui-transfer-box",u="layui-transfer-header",h="layui-transfer-search",f="layui-transfer-active",y="layui-transfer-data",p=function(e){return e=e||{},['
      ','
      ','","
      ","{{# if(d.data.showSearch){ }}",'","{{# } }}",'
        ',"
        "].join("")},v=['
        ',p({index:0,checkAllName:"layTransferLeftCheckAll"}),'
        ','",'","
        ",p({index:1,checkAllName:"layTransferRightCheckAll"}),"
        "].join(""),x=function(e){var t=this;t.index=++l.index,t.config=a.extend({},t.config,l.config,e),t.render()};x.prototype.config={title:["\u5217\u8868\u4e00","\u5217\u8868\u4e8c"],width:200,height:360,data:[],value:[],showSearch:!1,id:"",text:{none:"\u65e0\u6570\u636e",searchNone:"\u65e0\u5339\u914d\u6570\u636e"}},x.prototype.reload=function(e){var t=this;t.config=a.extend({},t.config,e),t.render()},x.prototype.render=function(){var e=this,i=e.config,n=e.elem=a(t(v).render({data:i,index:e.index})),l=i.elem=a(i.elem);l[0]&&(i.data=i.data||[],i.value=i.value||[],e.key=i.id||e.index,l.html(e.elem),e.layBox=e.elem.find("."+s),e.layHeader=e.elem.find("."+u),e.laySearch=e.elem.find("."+h),e.layData=n.find("."+y),e.layBtn=n.find("."+f+" .layui-btn"),e.layBox.css({width:i.width,height:i.height}),e.layData.css({height:function(){return i.height-e.layHeader.outerHeight()-e.laySearch.outerHeight()-2}()}),e.renderData(),e.events())},x.prototype.renderData=function(){var e=this,a=(e.config,[{checkName:"layTransferLeftCheck",views:[]},{checkName:"layTransferRightCheck",views:[]}]);e.parseData(function(e){var t=e.selected?1:0,i=["
      • ",'',"
      • "].join("");a[t].views.push(i),delete e.selected}),e.layData.eq(0).html(a[0].views.join("")),e.layData.eq(1).html(a[1].views.join("")),e.renderCheckBtn()},x.prototype.renderForm=function(e){i.render(e,"LAY-transfer-"+this.index)},x.prototype.renderCheckBtn=function(e){var t=this,i=t.config;e=e||{},t.layBox.each(function(n){var l=a(this),r=l.find("."+y),d=l.find("."+u).find('input[type="checkbox"]'),s=r.find('input[type="checkbox"]'),h=0,f=!1;if(s.each(function(){var e=a(this).data("hide");(this.checked||this.disabled||e)&&h++,this.checked&&!e&&(f=!0)}),d.prop("checked",f&&h===s.length),t.layBtn.eq(n)[f?"removeClass":"addClass"](o),!e.stopNone){var p=r.children("li:not(."+c+")").length;t.noneView(r,p?"":i.text.none)}}),t.renderForm("checkbox")},x.prototype.noneView=function(e,t){var i=a('

        '+(t||"")+"

        ");e.find("."+d)[0]&&e.find("."+d).remove(),t.replace(/\s/g,"")&&e.append(i)},x.prototype.setValue=function(){var e=this,t=e.config,i=[];return e.layBox.eq(1).find("."+y+' input[type="checkbox"]').each(function(){var e=a(this).data("hide");e||i.push(this.value)}),t.value=i,e},x.prototype.parseData=function(e){var t=this,i=t.config,n=[];return layui.each(i.data,function(t,l){l=("function"==typeof i.parseData?i.parseData(l):l)||l,n.push(l=a.extend({},l)),layui.each(i.value,function(e,a){a==l.value&&(l.selected=!0)}),e&&e(l)}),i.data=n,t},x.prototype.getData=function(e){var a=this,t=a.config,i=[];return a.setValue(),layui.each(e||t.value,function(e,a){layui.each(t.data,function(e,t){delete t.selected,a==t.value&&i.push(t)})}),i},x.prototype.events=function(){var e=this,t=e.config;e.elem.on("click",'input[lay-filter="layTransferCheckbox"]+',function(){var t=a(this).prev(),i=t[0].checked,n=t.parents("."+s).eq(0).find("."+y);t[0].disabled||("all"===t.attr("lay-type")&&n.find('input[type="checkbox"]').each(function(){this.disabled||(this.checked=i)}),e.renderCheckBtn({stopNone:!0}))}),e.layBtn.on("click",function(){var i=a(this),n=i.data("index"),l=e.layBox.eq(n),r=[];if(!i.hasClass(o)){e.layBox.eq(n).each(function(t){var i=a(this),n=i.find("."+y);n.children("li").each(function(){var t=a(this),i=t.find('input[type="checkbox"]'),n=i.data("hide");i[0].checked&&!n&&(i[0].checked=!1,l.siblings("."+s).find("."+y).append(t.clone()),t.remove(),r.push(i[0].value)),e.setValue()})}),e.renderCheckBtn();var c=l.siblings("."+s).find("."+h+" input");""===c.val()||c.trigger("keyup"),t.onchange&&t.onchange(e.getData(r),n)}}),e.laySearch.find("input").on("keyup",function(){var i=this.value,n=a(this).parents("."+h).eq(0).siblings("."+y),l=n.children("li");l.each(function(){var e=a(this),t=e.find('input[type="checkbox"]'),n=t[0].title.indexOf(i)!==-1;e[n?"removeClass":"addClass"](c),t.data("hide",!n)}),e.renderCheckBtn();var r=l.length===n.children("li."+c).length;e.noneView(n,r?t.text.searchNone:"")})},r.that={},r.config={},l.reload=function(e,a){var t=r.that[e];return t.reload(a),r.call(t)},l.getData=function(e){var a=r.that[e];return a.getData()},l.render=function(e){var a=new x(e);return r.call(a)},e(n,l)});layui.define(["laytpl","laypage","layer","form","util"],function(e){"use strict";var t=layui.$,i=layui.laytpl,a=layui.laypage,l=layui.layer,n=layui.form,o=layui.util,r=layui.hint(),c=layui.device(),d={config:{checkName:"LAY_CHECKED",indexName:"LAY_TABLE_INDEX"},cache:{},index:layui.table?layui.table.index+1e4:0,set:function(e){var i=this;return i.config=t.extend({},i.config,e),i},on:function(e,t){return layui.onevent.call(this,h,e,t)}},s=function(){var e=this,t=e.config,i=t.id||t.index;return i&&(s.that[i]=e,s.config[i]=t),{config:t,reload:function(t,i){e.reload.call(e,t,i)},setColsWidth:function(){e.setColsWidth.call(e)},resize:function(){e.resize.call(e)}}},u=function(e){var t=s.config[e];return t||r.error(e?"The table instance with ID '"+e+"' not found":"ID argument required"),t||null},y=function(e,a,l,n){var r=this.config||{};r.escape&&(a=o.escape(a));var c=e.templet?function(){return"function"==typeof e.templet?e.templet(l):i(t(e.templet).html()||String(a)).render(l)}():a;return n?t("
        "+c+"
        ").text():c},h="table",f=".layui-table",p="layui-hide",v="layui-none",m="layui-table-view",g=".layui-table-tool",b=".layui-table-box",x=".layui-table-init",k=".layui-table-header",C=".layui-table-body",w=".layui-table-main",T=".layui-table-fixed",N=".layui-table-fixed-l",L=".layui-table-fixed-r",_=".layui-table-total",S=".layui-table-page",A=".layui-table-sort",R="layui-table-edit",W="layui-table-hover",z=function(e){var t='{{#if(item2.colspan){}} colspan="{{item2.colspan}}"{{#} if(item2.rowspan){}} rowspan="{{item2.rowspan}}"{{#}}}';return e=e||{},['',"","{{# layui.each(d.data.cols, function(i1, item1){ }}","","{{# layui.each(item1, function(i2, item2){ }}",'{{# if(item2.fixed && item2.fixed !== "right"){ left = true; } }}','{{# if(item2.fixed === "right"){ right = true; } }}',function(){return e.fixed&&"right"!==e.fixed?'{{# if(item2.fixed && item2.fixed !== "right"){ }}':"right"===e.fixed?'{{# if(item2.fixed === "right"){ }}':""}(),"{{# var isSort = !(item2.colGroup) && item2.sort; }}",'",e.fixed?"{{# }; }}":"","{{# }); }}","","{{# }); }}","","
        ','
        ','{{# if(item2.type === "checkbox"){ }}','',"{{# } else { }}",'{{item2.title||""}}',"{{# if(isSort){ }}",'',"{{# } }}","{{# } }}","
        ","
        "].join("")},E=['',"","
        "].join(""),j=['
        ',"{{# if(d.data.toolbar){ }}",'
        ','
        ','
        ',"
        ","{{# } }}",'
        ',"{{# if(d.data.loading){ }}",'
        ','',"
        ","{{# } }}","{{# var left, right; }}",'
        ',z(),"
        ",'
        ',E,"
        ","{{# if(left){ }}",'
        ','
        ',z({fixed:!0}),"
        ",'
        ',E,"
        ","
        ","{{# }; }}","{{# if(right){ }}",'
        ','
        ',z({fixed:"right"}),'
        ',"
        ",'
        ',E,"
        ","
        ","{{# }; }}","
        ","{{# if(d.data.totalRow){ }}",'
        ','','',"
        ","
        ","{{# } }}","{{# if(d.data.page){ }}",'
        ','
        ',"
        ","{{# } }}","","
        "].join(""),F=t(window),I=t(document),H=function(e){var i=this;i.index=++d.index,i.config=t.extend({},i.config,d.config,e),i.render()};H.prototype.config={limit:10,loading:!0,cellMinWidth:60,defaultToolbar:["filter","exports","print"],autoSort:!0,text:{none:"\u65e0\u6570\u636e"}},H.prototype.render=function(){var e=this,a=e.config;if(a.elem=t(a.elem),a.where=a.where||{},a.id=a.id||a.elem.attr("id")||e.index,a.request=t.extend({pageName:"page",limitName:"limit"},a.request),a.response=t.extend({statusName:"code",statusCode:0,msgName:"msg",dataName:"data",totalRowName:"totalRow",countName:"count"},a.response),"object"==typeof a.page&&(a.limit=a.page.limit||a.limit,a.limits=a.page.limits||a.limits,e.page=a.page.curr=a.page.curr||1,delete a.page.elem,delete a.page.jump),!a.elem[0])return e;a.height&&/^full-\d+$/.test(a.height)&&(e.fullHeightGap=a.height.split("-")[1],a.height=F.height()-e.fullHeightGap),e.setInit();var l=a.elem,n=l.next("."+m),o=e.elem=t(i(j).render({VIEW_CLASS:m,data:a,index:e.index}));if(a.index=e.index,e.key=a.id||a.index,n[0]&&n.remove(),l.after(o),e.layTool=o.find(g),e.layBox=o.find(b),e.layHeader=o.find(k),e.layMain=o.find(w),e.layBody=o.find(C),e.layFixed=o.find(T),e.layFixLeft=o.find(N),e.layFixRight=o.find(L),e.layTotal=o.find(_),e.layPage=o.find(S),e.renderToolbar(),e.fullSize(),a.cols.length>1){var r=e.layFixed.find(k).find("th");r.height(e.layHeader.height()-1-parseFloat(r.css("padding-top"))-parseFloat(r.css("padding-bottom")))}e.pullData(e.page),e.events()},H.prototype.initOpts=function(e){var t=this,i=(t.config,{checkbox:48,radio:48,space:15,numbers:40});e.checkbox&&(e.type="checkbox"),e.space&&(e.type="space"),e.type||(e.type="normal"),"normal"!==e.type&&(e.unresize=!0,e.width=e.width||i[e.type])},H.prototype.setInit=function(e){var t=this,i=t.config;return i.clientWidth=i.width||function(){var e=function(t){var a,l;t=t||i.elem.parent(),a=t.width();try{l="none"===t.css("display")}catch(n){}return!t[0]||a&&!l?a:e(t.parent())};return e()}(),"width"===e?i.clientWidth:void layui.each(i.cols,function(e,a){layui.each(a,function(l,n){if(!n)return void a.splice(l,1);if(n.key=e+"-"+l,n.hide=n.hide||!1,n.colGroup||n.colspan>1){var o=0;layui.each(i.cols[e+1],function(t,i){i.HAS_PARENT||o>1&&o==n.colspan||(i.HAS_PARENT=!0,i.parentKey=e+"-"+l,o+=parseInt(i.colspan>1?i.colspan:1))}),n.colGroup=!0}t.initOpts(n)})})},H.prototype.renderToolbar=function(){var e=this,a=e.config,l=['
        ','
        ','
        '].join(""),n=e.layTool.find(".layui-table-tool-temp");if("default"===a.toolbar)n.html(l);else if("string"==typeof a.toolbar){var o=t(a.toolbar).html()||"";o&&n.html(i(o).render(a))}var r={filter:{title:"\u7b5b\u9009\u5217",layEvent:"LAYTABLE_COLS",icon:"layui-icon-cols"},exports:{title:"\u5bfc\u51fa",layEvent:"LAYTABLE_EXPORT",icon:"layui-icon-export"},print:{title:"\u6253\u5370",layEvent:"LAYTABLE_PRINT",icon:"layui-icon-print"}},c=[];"object"==typeof a.defaultToolbar&&layui.each(a.defaultToolbar,function(e,t){var i="string"==typeof t?r[t]:t;i&&c.push('
        ')}),e.layTool.find(".layui-table-tool-self").html(c.join(""))},H.prototype.setParentCol=function(e,t){var i=this,a=i.config,l=i.layHeader.find('th[data-key="'+a.index+"-"+t+'"]'),n=parseInt(l.attr("colspan"))||0;if(l[0]){var o=t.split("-"),r=a.cols[o[0]][o[1]];e?n--:n++,l.attr("colspan",n),l[n<1?"addClass":"removeClass"](p),r.colspan=n,r.hide=n<1;var c=l.data("parentkey");c&&i.setParentCol(e,c)}},H.prototype.setColsPatch=function(){var e=this,t=e.config;layui.each(t.cols,function(t,i){layui.each(i,function(t,i){i.hide&&e.setParentCol(i.hide,i.parentKey)})})},H.prototype.setColsWidth=function(){var e=this,t=e.config,i=0,a=0,l=0,n=0,o=e.setInit("width");e.eachCols(function(e,t){t.hide||i++}),o=o-function(){return"line"===t.skin||"nob"===t.skin?2:i+1}()-e.getScrollWidth(e.layMain[0])-1;var r=function(e){layui.each(t.cols,function(i,r){layui.each(r,function(i,c){var d=0,s=c.minWidth||t.cellMinWidth;return c?void(c.colGroup||c.hide||(e?l&&ln&&a&&(l=(o-n)/a)};r(),r(!0),e.autoColNums=a,e.eachCols(function(i,a){var n=a.minWidth||t.cellMinWidth;a.colGroup||a.hide||(0===a.width?e.getCssRule(t.index+"-"+a.key,function(e){e.style.width=Math.floor(l>=n?l:n)+"px"}):/\d+%$/.test(a.width)&&e.getCssRule(t.index+"-"+a.key,function(e){e.style.width=Math.floor(parseFloat(a.width)/100*o)+"px"}))});var c=e.layMain.width()-e.getScrollWidth(e.layMain[0])-e.layMain.children("table").outerWidth();if(e.autoColNums&&c>=-i&&c<=i){var d=function(t){var i;return t=t||e.layHeader.eq(0).find("thead th:last-child"),i=t.data("field"),!i&&t.prev()[0]?d(t.prev()):t},s=d(),u=s.data("key");e.getCssRule(u,function(t){var i=t.style.width||s.outerWidth();t.style.width=parseFloat(i)+c+"px",e.layMain.height()-e.layMain.prop("clientHeight")>0&&(t.style.width=parseFloat(t.style.width)-1+"px")})}e.loading(!0)},H.prototype.resize=function(){var e=this;e.fullSize(),e.setColsWidth(),e.scrollPatch()},H.prototype.reload=function(e,i){var a=this;e=e||{},delete a.haveInit,layui.each(e,function(e,t){"array"===layui._typeof(t)&&delete a.config[e]}),a.config=t.extend(i,{},a.config,e),a.render()},H.prototype.errorView=function(e){var i=this,a=i.layMain.find("."+v),l=t('
        '+(e||"Error")+"
        ");a[0]&&(i.layNone.remove(),a.remove()),i.layFixed.addClass(p),i.layMain.find("tbody").html(""),i.layMain.append(i.layNone=l),d.cache[i.key]=[]},H.prototype.page=1,H.prototype.pullData=function(e){var i=this,a=i.config,l=a.request,n=a.response,o=function(){"object"==typeof a.initSort&&i.sort(a.initSort.field,a.initSort.type)};if(i.startTime=(new Date).getTime(),a.url){var r={};r[l.pageName]=e,r[l.limitName]=a.limit;var c=t.extend(r,a.where);a.contentType&&0==a.contentType.indexOf("application/json")&&(c=JSON.stringify(c)),i.loading(),t.ajax({type:a.method||"get",url:a.url,contentType:a.contentType,data:c,dataType:"json",headers:a.headers||{},success:function(t){"function"==typeof a.parseData&&(t=a.parseData(t)||t),t[n.statusName]!=n.statusCode?(i.renderForm(),i.errorView(t[n.msgName]||'\u8fd4\u56de\u7684\u6570\u636e\u4e0d\u7b26\u5408\u89c4\u8303\uff0c\u6b63\u786e\u7684\u6210\u529f\u72b6\u6001\u7801\u5e94\u4e3a\uff1a"'+n.statusName+'": '+n.statusCode)):(i.renderData(t,e,t[n.countName]),o(),a.time=(new Date).getTime()-i.startTime+" ms"),i.setColsWidth(),"function"==typeof a.done&&a.done(t,e,t[n.countName])},error:function(e,t){i.errorView("\u8bf7\u6c42\u5f02\u5e38\uff0c\u9519\u8bef\u63d0\u793a\uff1a"+t),i.renderForm(),i.setColsWidth(),"function"==typeof a.error&&a.error(e,t)}})}else if("array"===layui._typeof(a.data)){var d={},s=e*a.limit-a.limit;d[n.dataName]=a.data.concat().splice(s,a.limit),d[n.countName]=a.data.length,"object"==typeof a.totalRow&&(d[n.totalRowName]=t.extend({},a.totalRow)),i.renderData(d,e,d[n.countName]),o(),i.setColsWidth(),"function"==typeof a.done&&a.done(d,e,d[n.countName])}},H.prototype.eachCols=function(e){var t=this;return d.eachCols(null,e,t.config.cols),t},H.prototype.renderData=function(e,n,o,r){var c=this,s=c.config,u=e[s.response.dataName]||[],h=e[s.response.totalRowName],f=[],m=[],g=[],b=function(){var e;return!r&&c.sortKey?c.sort(c.sortKey.field,c.sortKey.sort,!0):(layui.each(u,function(a,l){var o=[],u=[],h=[],v=a+s.limit*(n-1)+1;"array"===layui._typeof(l)&&0===l.length||(r||(l[d.config.indexName]=a),c.eachCols(function(n,r){var f=r.field||n,m=s.index+"-"+r.key,g=l[f];if(void 0!==g&&null!==g||(g=""),!r.colGroup){var b=['','
        '+function(){var n=t.extend(!0,{LAY_INDEX:v,LAY_COL:r},l),o=d.config.checkName;switch(r.type){case"checkbox":return'";case"radio":return n[o]&&(e=a),'';case"numbers":return v}return r.toolbar?i(t(r.toolbar).html()||"").render(n):y.call(c,r,g,n)}(),"
        "].join("");o.push(b),r.fixed&&"right"!==r.fixed&&u.push(b),"right"===r.fixed&&h.push(b)}}),f.push(''+o.join("")+""),m.push(''+u.join("")+""),g.push(''+h.join("")+""))}),c.layBody.scrollTop(0),c.layMain.find("."+v).remove(),c.layMain.find("tbody").html(f.join("")),c.layFixLeft.find("tbody").html(m.join("")),c.layFixRight.find("tbody").html(g.join("")),c.renderForm(),"number"==typeof e&&c.setThisRowChecked(e),c.syncCheckAll(),c.haveInit?c.scrollPatch():setTimeout(function(){c.scrollPatch()},50),c.haveInit=!0,l.close(c.tipsIndex),s.HAS_SET_COLS_PATCH||c.setColsPatch(),void(s.HAS_SET_COLS_PATCH=!0))};return d.cache[c.key]=u,c.layPage[0==o||0===u.length&&1==n?"addClass":"removeClass"](p),0===u.length?(c.renderForm(),c.errorView(s.text.none)):(c.layFixed.removeClass(p),r?b():(b(),c.renderTotal(u,h),void(s.page&&(s.page=t.extend({elem:"layui-table-page"+s.index,count:o,limit:s.limit,limits:s.limits||[10,20,30,40,50,60,70,80,90],groups:3,layout:["prev","page","next","skip","count","limit"],prev:'',next:'',jump:function(e,t){t||(c.page=e.curr,s.limit=e.limit,c.pullData(e.curr))}},s.page),s.page.count=o,a.render(s.page)))))},H.prototype.renderTotal=function(e,a){var l=this,n=l.config,o={};if(n.totalRow){layui.each(e,function(e,t){"array"===layui._typeof(t)&&0===t.length||l.eachCols(function(e,i){var a=i.field||e,l=t[a];i.totalRow&&(o[a]=(o[a]||0)+(parseFloat(l)||0))})}),l.dataTotal={};var r=[];l.eachCols(function(e,c){var d=c.field||e,s=function(){var e,t=c.totalRowText||"",i=parseFloat(o[d]).toFixed(2),n={};return n[d]=i,e=c.totalRow?y.call(l,c,i,n)||t:t,a?a[c.field]||e:e}(),u=['','
        '+function(){var e=c.totalRow||n.totalRow;return"string"==typeof e?i(e).render(t.extend({TOTAL_NUMS:s},c)):s}(),"
        "].join("");c.field&&(l.dataTotal[d]=s),r.push(u)}),l.layTotal.find("tbody").html(""+r.join("")+"")}},H.prototype.getColElem=function(e,t){var i=this,a=i.config;return e.eq(0).find(".laytable-cell-"+(a.index+"-"+t)+":eq(0)")},H.prototype.renderForm=function(e){n.render(e,"LAY-table-"+this.index)},H.prototype.setThisRowChecked=function(e){var t=this,i=(t.config,"layui-table-click"),a=t.layBody.find('tr[data-index="'+e+'"]');a.addClass(i).siblings("tr").removeClass(i)},H.prototype.sort=function(e,i,a,l){var n,o,c=this,s={},u=c.config,y=u.elem.attr("lay-filter"),f=d.cache[c.key];"string"==typeof e&&(n=e,c.layHeader.find("th").each(function(i,a){var l=t(this),o=l.data("field");if(o===e)return e=l,n=o,!1}));try{var n=n||e.data("field"),p=e.data("key");if(c.sortKey&&!a&&n===c.sortKey.field&&i===c.sortKey.sort)return;var v=c.layHeader.find("th .laytable-cell-"+p).find(A);c.layHeader.find("th").find(A).removeAttr("lay-sort"),v.attr("lay-sort",i||null),c.layFixed.find("th")}catch(m){r.error("Table modules: sort field '"+n+"' not matched")}c.sortKey={field:n,sort:i},u.autoSort&&("asc"===i?o=layui.sort(f,n):"desc"===i?o=layui.sort(f,n,!0):(o=layui.sort(f,d.config.indexName),delete c.sortKey)),s[u.response.dataName]=o||f,c.renderData(s,c.page,c.count,!0),l&&layui.event.call(e,h,"sort("+y+")",{field:n,type:i})},H.prototype.loading=function(e){var i=this,a=i.config;a.loading&&(e?(i.layInit&&i.layInit.remove(),delete i.layInit,i.layBox.find(x).remove()):(i.layInit=t(['
        ','',"
        "].join("")),i.layBox.append(i.layInit)))},H.prototype.setCheckData=function(e,t){var i=this,a=i.config,l=d.cache[i.key];l[e]&&"array"!==layui._typeof(l[e])&&(l[e][a.checkName]=t)},H.prototype.syncCheckAll=function(){var e=this,t=e.config,i=e.layHeader.find('input[name="layTableCheckbox"]'),a=function(i){return e.eachCols(function(e,a){"checkbox"===a.type&&(a[t.checkName]=i)}),i};i[0]&&(d.checkStatus(e.key).isAll?(i[0].checked||(i.prop("checked",!0),e.renderForm("checkbox")),a(!0)):(i[0].checked&&(i.prop("checked",!1),e.renderForm("checkbox")),a(!1)))},H.prototype.getCssRule=function(e,t){var i=this,a=i.elem.find("style")[0],l=a.sheet||a.styleSheet||{},n=l.cssRules||l.rules;layui.each(n,function(i,a){if(a.selectorText===".laytable-cell-"+e)return t(a),!0})},H.prototype.fullSize=function(){var e,t=this,i=t.config,a=i.height;t.fullHeightGap&&(a=F.height()-t.fullHeightGap,a<135&&(a=135),t.elem.css("height",a)),a&&(e=parseFloat(a)-(t.layHeader.outerHeight()||38),i.toolbar&&(e-=t.layTool.outerHeight()||50),i.totalRow&&(e-=t.layTotal.outerHeight()||40),i.page&&(e-=t.layPage.outerHeight()||41),t.layMain.css("height",e-2))},H.prototype.getScrollWidth=function(e){var t=0;return e?t=e.offsetWidth-e.clientWidth:(e=document.createElement("div"),e.style.width="100px",e.style.height="100px",e.style.overflowY="scroll",document.body.appendChild(e),t=e.offsetWidth-e.clientWidth,document.body.removeChild(e)),t},H.prototype.scrollPatch=function(){var e=this,i=e.layMain.children("table"),a=e.layMain.width()-e.layMain.prop("clientWidth"),l=e.layMain.height()-e.layMain.prop("clientHeight"),n=(e.getScrollWidth(e.layMain[0]),i.outerWidth()-e.layMain.width()),o=function(e){if(a&&l){if(e=e.eq(0),!e.find(".layui-table-patch")[0]){var i=t('
        ');i.find("div").css({width:a}),e.find("tr").append(i)}}else e.find(".layui-table-patch").remove()};o(e.layHeader),o(e.layTotal);var r=e.layMain.height(),c=r-l;e.layFixed.find(C).css("height",i.height()>=c?c:"auto"),e.layFixRight[n>0?"removeClass":"addClass"](p),e.layFixRight.css("right",a-1)},H.prototype.events=function(){var e,i=this,a=i.config,o=t("body"),r={},s=i.layHeader.find("th"),u=".layui-table-cell",f=a.elem.attr("lay-filter");i.layTool.on("click","*[lay-event]",function(e){var o=t(this),r=o.attr("lay-event"),s=function(e){var l=t(e.list),n=t('
          ');n.html(l),a.height&&n.css("max-height",a.height-(i.layTool.outerHeight()||50)),o.find(".layui-table-tool-panel")[0]||o.append(n),i.renderForm(),n.on("click",function(e){layui.stope(e)}),e.done&&e.done(n,l)};switch(layui.stope(e),I.trigger("table.tool.panel.remove"),l.close(i.tipsIndex),r){case"LAYTABLE_COLS":s({list:function(){var e=[];return i.eachCols(function(t,i){i.field&&"normal"==i.type&&e.push('
        • ')}),e.join("")}(),done:function(){n.on("checkbox(LAY_TABLE_TOOL_COLS)",function(e){var l=t(e.elem),n=this.checked,o=l.data("key"),r=l.data("parentkey");layui.each(a.cols,function(e,t){layui.each(t,function(t,l){if(e+"-"+t===o){var c=l.hide;l.hide=!n,i.elem.find('*[data-key="'+a.index+"-"+o+'"]')[n?"removeClass":"addClass"](p),c!=l.hide&&i.setParentCol(!n,r),i.resize()}})})})}});break;case"LAYTABLE_EXPORT":c.ie?l.tips("\u5bfc\u51fa\u529f\u80fd\u4e0d\u652f\u6301 IE\uff0c\u8bf7\u7528 Chrome \u7b49\u9ad8\u7ea7\u6d4f\u89c8\u5668\u5bfc\u51fa",this,{tips:3}):s({list:function(){return['
        • \u5bfc\u51fa\u5230 Csv \u6587\u4ef6
        • ','
        • \u5bfc\u51fa\u5230 Excel \u6587\u4ef6
        • '].join("")}(),done:function(e,l){l.on("click",function(){var e=t(this).data("type");d.exportFile.call(i,a.id,null,e)})}});break;case"LAYTABLE_PRINT":var u=window.open("\u6253\u5370\u7a97\u53e3","_blank"),y=[""].join(""),v=t(i.layHeader.html());v.append(i.layMain.find("table").html()),v.append(i.layTotal.find("table").html()),v.find("th.layui-table-patch").remove(),v.find(".layui-table-col-special").remove(),u.document.write(y+v.prop("outerHTML")),u.document.close(),u.print(),u.close()}layui.event.call(this,h,"toolbar("+f+")",t.extend({event:r,config:a},{}))}),s.on("mousemove",function(e){var i=t(this),a=i.offset().left,l=e.clientX-a;i.data("unresize")||r.resizeStart||(r.allowResize=i.width()-l<=10,o.css("cursor",r.allowResize?"col-resize":""))}).on("mouseleave",function(){t(this);r.resizeStart||o.css("cursor","")}).on("mousedown",function(e){var l=t(this);if(r.allowResize){var n=l.data("key");e.preventDefault(),r.resizeStart=!0,r.offset=[e.clientX,e.clientY],i.getCssRule(n,function(e){var t=e.style.width||l.outerWidth();r.rule=e,r.ruleWidth=parseFloat(t),r.minWidth=l.data("minwidth")||a.cellMinWidth})}}),I.on("mousemove",function(t){if(r.resizeStart){if(t.preventDefault(),r.rule){var a=r.ruleWidth+t.clientX-r.offset[0];a');return n[0].value=i.data("content")||l.text(),i.find("."+R)[0]||i.append(n),n.focus(),void layui.stope(e)}}).on("mouseenter","td",function(){b.call(this)}).on("mouseleave","td",function(){b.call(this,"hide")});var g="layui-table-grid-down",b=function(e){var i=t(this),a=i.children(u);if(!i.data("off"))if(e)i.find(".layui-table-grid-down").remove();else if(a.prop("scrollWidth")>a.outerWidth()){if(a.find("."+g)[0])return;i.append('
          ')}};i.layBody.on("click","."+g,function(e){var n=t(this),o=n.parent(),r=o.children(u);i.tipsIndex=l.tips(['
          ',r.html(),"
          ",''].join(""),r[0],{tips:[3,""],time:-1,anim:-1,maxWidth:c.ios||c.android?300:i.elem.width()/2,isOutAnim:!1,skin:"layui-table-tips",success:function(e,t){e.find(".layui-table-tips-c").on("click",function(){l.close(t)})}}),layui.stope(e)}),i.layBody.on("click","*[lay-event]",function(){var e=t(this),a=e.parents("tr").eq(0).data("index");layui.event.call(this,h,"tool("+f+")",v.call(this,{event:e.attr("lay-event")})),i.setThisRowChecked(a)}),i.layMain.on("scroll",function(){var e=t(this),a=e.scrollLeft(),n=e.scrollTop();i.layHeader.scrollLeft(a),i.layTotal.scrollLeft(a),i.layFixed.find(C).scrollTop(n),l.close(i.tipsIndex)}),F.on("resize",function(){i.resize()})},function(){I.on("click",function(){I.trigger("table.remove.tool.panel")}),I.on("table.remove.tool.panel",function(){t(".layui-table-tool-panel").remove()})}(),d.init=function(e,i){i=i||{};var a=this,l=t(e?'table[lay-filter="'+e+'"]':f+"[lay-data]"),n="Table element property lay-data configuration item has a syntax error: ";return l.each(function(){var a=t(this),l=a.attr("lay-data");try{l=new Function("return "+l)()}catch(o){r.error(n+l,"error")}var c=[],s=t.extend({elem:this,cols:[],data:[],skin:a.attr("lay-skin"),size:a.attr("lay-size"),even:"string"==typeof a.attr("lay-even")},d.config,i,l);e&&a.hide(),a.find("thead>tr").each(function(e){s.cols[e]=[],t(this).children().each(function(i){var a=t(this),l=a.attr("lay-data");try{l=new Function("return "+l)()}catch(o){return r.error(n+l)}var d=t.extend({title:a.text(),colspan:a.attr("colspan")||0,rowspan:a.attr("rowspan")||0},l);d.colspan<2&&c.push(d),s.cols[e].push(d)})}),a.find("tbody>tr").each(function(e){var i=t(this),a={};i.children("td").each(function(e,i){var l=t(this),n=l.data("field");if(n)return a[n]=l.html()}),layui.each(c,function(e,t){var l=i.children("td").eq(e);a[t.field]=l.html()}),s.data[e]=a}),d.render(s)}),a},s.that={},s.config={},d.eachCols=function(e,i,a){var l=s.config[e]||{},n=[],o=0;a=t.extend(!0,[],a||l.cols),layui.each(a,function(e,t){layui.each(t,function(t,i){if(i.colGroup){var l=0;o++,i.CHILD_COLS=[],layui.each(a[e+1],function(e,t){t.PARENT_COL_INDEX||l>1&&l==i.colspan||(t.PARENT_COL_INDEX=o,i.CHILD_COLS.push(t),l+=parseInt(t.colspan>1?t.colspan:1))})}i.PARENT_COL_INDEX||n.push(i)})});var r=function(e){layui.each(e||n,function(e,t){return t.CHILD_COLS?r(t.CHILD_COLS):void("function"==typeof i&&i(e,t))})};r()},d.checkStatus=function(e){var t=0,i=0,a=[],l=d.cache[e]||[];return layui.each(l,function(e,l){return"array"===layui._typeof(l)?void i++:void(l[d.config.checkName]&&(t++,a.push(d.clearCacheKey(l))))}),{data:a,isAll:!!l.length&&t===l.length-i}},d.getData=function(e){var t=[],i=d.cache[e]||[];return layui.each(i,function(e,i){"array"!==layui._typeof(i)&&t.push(d.clearCacheKey(i))}),t},d.exportFile=function(e,t,i){var a=this;t=t||d.clearCacheKey(d.cache[e]),i=i||"csv";var l=s.that[e],n=s.config[e]||{},o={csv:"text/csv",xls:"application/vnd.ms-excel"}[i],u=document.createElement("a");return c.ie?r.error("IE_NOT_SUPPORT_EXPORTS"):(u.href="data:"+o+";charset=utf-8,\ufeff"+encodeURIComponent(function(){var i=[],n=[],o=[];return layui.each(t,function(t,a){var o=[];"object"==typeof e?(layui.each(e,function(e,a){0==t&&i.push(a||"")}),layui.each(d.clearCacheKey(a),function(e,t){o.push('"'+(t||"")+'"')})):d.eachCols(e,function(e,n){if(n.field&&"normal"==n.type&&!n.hide){var r=a[n.field];void 0!==r&&null!==r||(r=""),0==t&&i.push(n.title||""),o.push('"'+y.call(l,n,r,a,"text")+'"')}}),n.push(o.join(","))}),layui.each(a.dataTotal,function(e,t){o.push(t)}),i.join(",")+"\r\n"+n.join("\r\n")+"\r\n"+o.join(",")}()),u.download=(n.title||"table_"+(n.index||""))+"."+i,document.body.appendChild(u),u.click(),void document.body.removeChild(u))},d.resize=function(e){if(e){var t=u(e);if(!t)return;s.that[e].resize()}else layui.each(s.that,function(){ +this.resize()})},d.reload=function(e,t,i){var a=u(e);if(a){var l=s.that[e];return l.reload(t,i),s.call(l)}},d.render=function(e){var t=new H(e);return s.call(t)},d.clearCacheKey=function(e){return e=t.extend({},e),delete e[d.config.checkName],delete e[d.config.indexName],e},t(function(){d.init()}),e(h,d)});layui.define("jquery",function(e){"use strict";var i=layui.$,n=(layui.hint(),layui.device(),{config:{},set:function(e){var n=this;return n.config=i.extend({},n.config,e),n},on:function(e,i){return layui.onevent.call(this,t,e,i)}}),t="carousel",a="layui-this",l=">*[carousel-item]>*",o="layui-carousel-left",r="layui-carousel-right",d="layui-carousel-prev",s="layui-carousel-next",u="layui-carousel-arrow",c="layui-carousel-ind",m=function(e){var t=this;t.config=i.extend({},t.config,n.config,e),t.render()};m.prototype.config={width:"600px",height:"280px",full:!1,arrow:"hover",indicator:"inside",autoplay:!0,interval:3e3,anim:"",trigger:"click",index:0},m.prototype.render=function(){var e=this,n=e.config;n.elem=i(n.elem),n.elem[0]&&(e.elemItem=n.elem.find(l),n.index<0&&(n.index=0),n.index>=e.elemItem.length&&(n.index=e.elemItem.length-1),n.interval<800&&(n.interval=800),n.full?n.elem.css({position:"fixed",width:"100%",height:"100%",zIndex:9999}):n.elem.css({width:n.width,height:n.height}),n.elem.attr("lay-anim",n.anim),e.elemItem.eq(n.index).addClass(a),e.elemItem.length<=1||(e.indicator(),e.arrow(),e.autoplay(),e.events()))},m.prototype.reload=function(e){var n=this;clearInterval(n.timer),n.config=i.extend({},n.config,e),n.render()},m.prototype.prevIndex=function(){var e=this,i=e.config,n=i.index-1;return n<0&&(n=e.elemItem.length-1),n},m.prototype.nextIndex=function(){var e=this,i=e.config,n=i.index+1;return n>=e.elemItem.length&&(n=0),n},m.prototype.addIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index+e,n.index>=i.elemItem.length&&(n.index=0)},m.prototype.subIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index-e,n.index<0&&(n.index=i.elemItem.length-1)},m.prototype.autoplay=function(){var e=this,i=e.config;i.autoplay&&(clearInterval(e.timer),e.timer=setInterval(function(){e.slide()},i.interval))},m.prototype.arrow=function(){var e=this,n=e.config,t=i(['",'"].join(""));n.elem.attr("lay-arrow",n.arrow),n.elem.find("."+u)[0]&&n.elem.find("."+u).remove(),n.elem.append(t),t.on("click",function(){var n=i(this),t=n.attr("lay-type");e.slide(t)})},m.prototype.indicator=function(){var e=this,n=e.config,t=e.elemInd=i(['
            ',function(){var i=[];return layui.each(e.elemItem,function(e){i.push("")}),i.join("")}(),"
          "].join(""));n.elem.attr("lay-indicator",n.indicator),n.elem.find("."+c)[0]&&n.elem.find("."+c).remove(),n.elem.append(t),"updown"===n.anim&&t.css("margin-top",-(t.height()/2)),t.find("li").on("hover"===n.trigger?"mouseover":n.trigger,function(){var t=i(this),a=t.index();a>n.index?e.slide("add",a-n.index):al.length&&(l.value=l.length),parseInt(l.value)!==l.value&&(l.half||(l.value=Math.ceil(l.value)-l.value<.5?Math.ceil(l.value):Math.floor(l.value)));for(var n='
            ",s=1;s<=l.length;s++){var r='
          • ";l.half&&parseInt(l.value)!==l.value&&s==Math.ceil(l.value)?n=n+'
          • ":n+=r}n+="
          "+(l.text?''+l.value+"\u661f":"")+"";var c=l.elem,f=c.next("."+t);f[0]&&f.remove(),e.elemTemp=a(n),l.span=e.elemTemp.next("span"),l.setText&&l.setText(l.value),c.html(e.elemTemp),c.addClass("layui-inline"),l.readonly||e.action()},v.prototype.setvalue=function(e){var a=this,l=a.config;l.value=e,a.render()},v.prototype.action=function(){var e=this,l=e.config,i=e.elemTemp,n=i.find("i").width();i.children("li").each(function(e){var t=e+1,v=a(this);v.on("click",function(e){if(l.value=t,l.half){var o=e.pageX-a(this).offset().left;o<=n/2&&(l.value=l.value-.5)}l.text&&i.next("span").text(l.value+"\u661f"),l.choose&&l.choose(l.value),l.setText&&l.setText(l.value)}),v.on("mousemove",function(e){if(i.find("i").each(function(){a(this).addClass(o).removeClass(r)}),i.find("i:lt("+t+")").each(function(){a(this).addClass(u).removeClass(f)}),l.half){var c=e.pageX-a(this).offset().left;c<=n/2&&v.children("i").addClass(s).removeClass(u)}}),v.on("mouseleave",function(){i.find("i").each(function(){a(this).addClass(o).removeClass(r)}),i.find("i:lt("+Math.floor(l.value)+")").each(function(){a(this).addClass(u).removeClass(f)}),l.half&&parseInt(l.value)!==l.value&&i.children("li:eq("+Math.floor(l.value)+")").children("i").addClass(s).removeClass(c)})})},v.prototype.events=function(){var e=this;e.config},l.render=function(e){var a=new v(e);return i.call(a)},e(n,l)});layui.define("jquery",function(e){"use strict";var l=layui.$,o=function(e){},t='';o.prototype.load=function(e){var o,i,n,r,a=this,c=0;e=e||{};var m=l(e.elem);if(m[0]){var f=l(e.scrollElem||document),u=e.mb||50,s=!("isAuto"in e)||e.isAuto,y=e.end||"\u6ca1\u6709\u66f4\u591a\u4e86",v=e.scrollElem&&e.scrollElem!==document,d="\u52a0\u8f7d\u66f4\u591a",h=l('");m.find(".layui-flow-more")[0]||m.append(h);var p=function(e,t){e=l(e),h.before(e),t=0==t||null,t?h.html(y):h.find("a").html(d),i=t,o=null,n&&n()},g=function(){o=!0,h.find("a").html(t),"function"==typeof e.done&&e.done(++c,p)};if(g(),h.find("a").on("click",function(){l(this);i||o||g()}),e.isLazyimg)var n=a.lazyimg({elem:e.elem+" img",scrollElem:e.scrollElem});return s?(f.on("scroll",function(){var e=l(this),t=e.scrollTop();r&&clearTimeout(r),!i&&m.width()&&(r=setTimeout(function(){var i=v?e.height():l(window).height(),n=v?e.prop("scrollHeight"):document.documentElement.scrollHeight;n-t-i<=u&&(o||g())},100))}),a):a}},o.prototype.lazyimg=function(e){var o,t=this,i=0;e=e||{};var n=l(e.scrollElem||document),r=e.elem||"img",a=e.scrollElem&&e.scrollElem!==document,c=function(e,l){var o=n.scrollTop(),r=o+l,c=a?function(){return e.offset().top-n.offset().top+o}():e.offset().top;if(c>=o&&c<=r&&e.attr("lay-src")){var f=e.attr("lay-src");layui.img(f,function(){var l=t.lazyimg.elem.eq(i);e.attr("src",f).removeAttr("lay-src"),l[0]&&m(l),i++},function(){t.lazyimg.elem.eq(i);e.removeAttr("lay-src")})}},m=function(e,o){var m=a?(o||n).height():l(window).height(),f=n.scrollTop(),u=f+m;if(t.lazyimg.elem=l(r),e)c(e,m);else for(var s=0;su)break}};if(m(),!o){var f;n.on("scroll",function(){var e=l(this);f&&clearTimeout(f),f=setTimeout(function(){m(null,e)},50)}),o=!0}return m},e("flow",new o)});layui.define(["layer","form"],function(t){"use strict";var e=layui.$,i=layui.layer,a=layui.form,l=(layui.hint(),layui.device()),n="layedit",o="layui-show",r="layui-disabled",c=function(){var t=this;t.index=0,t.config={tool:["strong","italic","underline","del","|","left","center","right","|","link","unlink","face","image"],hideTool:[],height:280}};c.prototype.set=function(t){var i=this;return e.extend(!0,i.config,t),i},c.prototype.on=function(t,e){return layui.onevent(n,t,e)},c.prototype.build=function(t,i){i=i||{};var a=this,n=a.config,r="layui-layedit",c=e("string"==typeof t?"#"+t:t),u="LAY_layedit_"+ ++a.index,d=c.next("."+r),y=e.extend({},n,i),f=function(){var t=[],e={};return layui.each(y.hideTool,function(t,i){e[i]=!0}),layui.each(y.tool,function(i,a){C[a]&&!e[a]&&t.push(C[a])}),t.join("")}(),m=e(['
          ','
          '+f+"
          ",'
          ','',"
          ","
          "].join(""));return l.ie&&l.ie<8?c.removeClass("layui-hide").addClass(o):(d[0]&&d.remove(),s.call(a,m,c[0],y),c.addClass("layui-hide").after(m),a.index)},c.prototype.getContent=function(t){var e=u(t);if(e[0])return d(e[0].document.body.innerHTML)},c.prototype.getText=function(t){var i=u(t);if(i[0])return e(i[0].document.body).text()},c.prototype.setContent=function(t,i,a){var l=u(t);l[0]&&(a?e(l[0].document.body).append(i):e(l[0].document.body).html(i),layedit.sync(t))},c.prototype.sync=function(t){var i=u(t);if(i[0]){var a=e("#"+i[1].attr("textarea"));a.val(d(i[0].document.body.innerHTML))}},c.prototype.getSelection=function(t){var e=u(t);if(e[0]){var i=m(e[0].document);return document.selection?i.text:i.toString()}};var s=function(t,i,a){var l=this,n=t.find("iframe");n.css({height:a.height}).on("load",function(){var o=n.contents(),r=n.prop("contentWindow"),c=o.find("head"),s=e([""].join("")),u=o.find("body");c.append(s),u.attr("contenteditable","true").css({"min-height":a.height}).html(i.value||""),y.apply(l,[r,n,i,a]),g.call(l,r,t,a)})},u=function(t){var i=e("#LAY_layedit_"+t),a=i.prop("contentWindow");return[a,i]},d=function(t){return 8==l.ie&&(t=t.replace(/<.+>/g,function(t){return t.toLowerCase()})),t},y=function(t,a,n,o){var r=t.document,c=e(r.body);c.on("keydown",function(t){var e=t.keyCode;if(13===e){var a=m(r),l=p(a),n=l.parentNode;if("pre"===n.tagName.toLowerCase()){if(t.shiftKey)return;return i.msg("\u8bf7\u6682\u65f6\u7528shift+enter"),!1}r.execCommand("formatBlock",!1,"

          ")}}),e(n).parents("form").on("submit",function(){var t=c.html();8==l.ie&&(t=t.replace(/<.+>/g,function(t){return t.toLowerCase()})),n.value=t}),c.on("paste",function(e){r.execCommand("formatBlock",!1,"

          "),setTimeout(function(){f.call(t,c),n.value=c.html()},100)})},f=function(t){var i=this;i.document;t.find("*[style]").each(function(){var t=this.style.textAlign;this.removeAttribute("style"),e(this).css({"text-align":t||""})}),t.find("table").addClass("layui-table"),t.find("script,link").remove()},m=function(t){return t.selection?t.selection.createRange():t.getSelection().getRangeAt(0)},p=function(t){return t.endContainer||t.parentElement().childNodes[0]},v=function(t,i,a){var l=this.document,n=document.createElement(t);for(var o in i)n.setAttribute(o,i[o]);if(n.removeAttribute("text"),l.selection){var r=a.text||i.text;if("a"===t&&!r)return;r&&(n.innerHTML=r),a.pasteHTML(e(n).prop("outerHTML")),a.select()}else{var r=a.toString()||i.text;if("a"===t&&!r)return;r&&(n.innerHTML=r),a.deleteContents(),a.insertNode(n)}},h=function(t,i){var a=this.document,l="layedit-tool-active",n=p(m(a)),o=function(e){return t.find(".layedit-tool-"+e)};i&&i[i.hasClass(l)?"removeClass":"addClass"](l),t.find(">i").removeClass(l),o("unlink").addClass(r),e(n).parents().each(function(){var t=this.tagName.toLowerCase(),e=this.style.textAlign;"b"!==t&&"strong"!==t||o("b").addClass(l),"i"!==t&&"em"!==t||o("i").addClass(l),"u"===t&&o("u").addClass(l),"strike"===t&&o("d").addClass(l),"p"===t&&("center"===e?o("center").addClass(l):"right"===e?o("right").addClass(l):o("left").addClass(l)),"a"===t&&(o("link").addClass(l),o("unlink").removeClass(r))})},g=function(t,a,l){var n=t.document,o=e(n.body),c={link:function(i){var a=p(i),l=e(a).parent();b.call(o,{href:l.attr("href"),target:l.attr("target")},function(e){var a=l[0];"A"===a.tagName?a.href=e.url:v.call(t,"a",{target:e.target,href:e.url,text:e.url},i)})},unlink:function(t){n.execCommand("unlink")},face:function(e){x.call(this,function(i){v.call(t,"img",{src:i.src,alt:i.alt},e)})},image:function(a){var n=this;layui.use("upload",function(o){var r=l.uploadImage||{};o.render({url:r.url,method:r.type,elem:e(n).find("input")[0],done:function(e){0==e.code?(e.data=e.data||{},v.call(t,"img",{src:e.data.src,alt:e.data.title},a)):i.msg(e.msg||"\u4e0a\u4f20\u5931\u8d25")}})})},code:function(e){k.call(o,function(i){v.call(t,"pre",{text:i.code,"lay-lang":i.lang},e)})},help:function(){i.open({type:2,title:"\u5e2e\u52a9",area:["600px","380px"],shadeClose:!0,shade:.1,skin:"layui-layer-msg",content:["","no"]})}},s=a.find(".layui-layedit-tool"),u=function(){var i=e(this),a=i.attr("layedit-event"),l=i.attr("lay-command");if(!i.hasClass(r)){o.focus();var u=m(n);u.commonAncestorContainer;l?(n.execCommand(l),/justifyLeft|justifyCenter|justifyRight/.test(l)&&n.execCommand("formatBlock",!1,"

          "),setTimeout(function(){o.focus()},10)):c[a]&&c[a].call(this,u),h.call(t,s,i)}},d=/image/;s.find(">i").on("mousedown",function(){var t=e(this),i=t.attr("layedit-event");d.test(i)||u.call(this)}).on("click",function(){var t=e(this),i=t.attr("layedit-event");d.test(i)&&u.call(this)}),o.on("click",function(){h.call(t,s),i.close(x.index)})},b=function(t,e){var l=this,n=i.open({type:1,id:"LAY_layedit_link",area:"350px",shade:.05,shadeClose:!0,moveType:1,title:"\u8d85\u94fe\u63a5",skin:"layui-layer-msg",content:['

            ','
          • ','','
            ','',"
            ","
          • ",'
          • ','','
            ','",'","
            ","
          • ",'
          • ','','',"
          • ","
          "].join(""),success:function(t,n){var o="submit(layedit-link-yes)";a.render("radio"),t.find(".layui-btn-primary").on("click",function(){i.close(n),l.focus()}),a.on(o,function(t){i.close(b.index),e&&e(t.field)})}});b.index=n},x=function(t){var a=function(){var t=["[\u5fae\u7b11]","[\u563b\u563b]","[\u54c8\u54c8]","[\u53ef\u7231]","[\u53ef\u601c]","[\u6316\u9f3b]","[\u5403\u60ca]","[\u5bb3\u7f9e]","[\u6324\u773c]","[\u95ed\u5634]","[\u9119\u89c6]","[\u7231\u4f60]","[\u6cea]","[\u5077\u7b11]","[\u4eb2\u4eb2]","[\u751f\u75c5]","[\u592a\u5f00\u5fc3]","[\u767d\u773c]","[\u53f3\u54fc\u54fc]","[\u5de6\u54fc\u54fc]","[\u5618]","[\u8870]","[\u59d4\u5c48]","[\u5410]","[\u54c8\u6b20]","[\u62b1\u62b1]","[\u6012]","[\u7591\u95ee]","[\u998b\u5634]","[\u62dc\u62dc]","[\u601d\u8003]","[\u6c57]","[\u56f0]","[\u7761]","[\u94b1]","[\u5931\u671b]","[\u9177]","[\u8272]","[\u54fc]","[\u9f13\u638c]","[\u6655]","[\u60b2\u4f24]","[\u6293\u72c2]","[\u9ed1\u7ebf]","[\u9634\u9669]","[\u6012\u9a82]","[\u4e92\u7c89]","[\u5fc3]","[\u4f24\u5fc3]","[\u732a\u5934]","[\u718a\u732b]","[\u5154\u5b50]","[ok]","[\u8036]","[good]","[NO]","[\u8d5e]","[\u6765]","[\u5f31]","[\u8349\u6ce5\u9a6c]","[\u795e\u9a6c]","[\u56e7]","[\u6d6e\u4e91]","[\u7ed9\u529b]","[\u56f4\u89c2]","[\u5a01\u6b66]","[\u5965\u7279\u66fc]","[\u793c\u7269]","[\u949f]","[\u8bdd\u7b52]","[\u8721\u70db]","[\u86cb\u7cd5]"],e={};return layui.each(t,function(t,i){e[i]=layui.cache.dir+"images/face/"+t+".gif"}),e}();return x.hide=x.hide||function(t){"face"!==e(t.target).attr("layedit-event")&&i.close(x.index)},x.index=i.tips(function(){var t=[];return layui.each(a,function(e,i){t.push('
        • '+e+'
        • ')}),'
            '+t.join("")+"
          "}(),this,{tips:1,time:0,skin:"layui-box layui-util-face",maxWidth:500,success:function(l,n){l.css({marginTop:-4,marginLeft:-10}).find(".layui-clear>li").on("click",function(){t&&t({src:a[this.title],alt:this.title}),i.close(n)}),e(document).off("click",x.hide).on("click",x.hide)}})},k=function(t){var e=this,l=i.open({type:1,id:"LAY_layedit_code",area:"550px",shade:.05,shadeClose:!0,moveType:1,title:"\u63d2\u5165\u4ee3\u7801",skin:"layui-layer-msg",content:['
            ','
          • ','','
            ','","
            ","
          • ",'
          • ','','
            ','',"
            ","
          • ",'
          • ','','',"
          • ","
          "].join(""),success:function(l,n){var o="submit(layedit-code-yes)";a.render("select"),l.find(".layui-btn-primary").on("click",function(){i.close(n),e.focus()}),a.on(o,function(e){i.close(k.index),t&&t(e.field)})}});k.index=l},C={html:'',strong:'',italic:'',underline:'',del:'',"|":'',left:'',center:'',right:'',link:'',unlink:'',face:'',image:'',code:'',help:''},L=new c;t(n,L)});layui.define("jquery",function(a){"use strict";var e=layui.$;a("code",function(a){var l=[];a=a||{},a.elem=e(a.elem||".layui-code"),a.lang="lang"in a?a.lang:"code",a.elem.each(function(){l.push(this)}),layui.each(l.reverse(),function(l,i){var t=e(i),c=t.html();(t.attr("lay-encode")||a.encode)&&(c=c.replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")),t.html('
          1. '+c.replace(/[\r\t\n]+/g,"
          2. ")+"
          "),t.find(">.layui-code-h3")[0]||t.prepend('

          '+(t.attr("lay-title")||a.title||"</>")+''+(t.attr("lay-lang")||a.lang||"")+"

          ");var n=t.find(">.layui-code-ol");t.addClass("layui-box layui-code-view"),(t.attr("lay-skin")||a.skin)&&t.addClass("layui-code-"+(t.attr("lay-skin")||a.skin)),(n.find("li").length/100|0)>0&&n.css("margin-left",(n.find("li").length/100|0)+"px"),(t.attr("lay-height")||a.height)&&n.css("max-height",t.attr("lay-height")||a.height)})})}).addcss("modules/code.css?v=2","skincodecss"); \ No newline at end of file diff --git a/static/mdui/css/mdui.css b/static/mdui/css/mdui.css new file mode 100644 index 0000000..5151e30 --- /dev/null +++ b/static/mdui/css/mdui.css @@ -0,0 +1,13559 @@ +/*! + * mdui 1.0.1 (https://mdui.org) + * Copyright 2016-2020 zdhxiong + * Licensed under MIT + *//*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ + +/* Document + ========================================================================== */ + +/** + * 1. Correct the line height in all browsers. + * 2. Prevent adjustments of font size after orientation changes in iOS. + */ + +html { + line-height: 1.15; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/* Sections + ========================================================================== */ + +/** + * Remove the margin in all browsers. + */ + +body { + margin: 0; +} + +/** + * Render the `main` element consistently in IE. + */ + +main { + display: block; +} + +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/* Grouping content + ========================================================================== */ + +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ + +hr { + -webkit-box-sizing: content-box; + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +pre { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Remove the gray background on active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * 1. Remove the bottom border in Chrome 57- + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ + +abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; /* 2 */ +} + +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ + +b, +strong { + font-weight: bolder; +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +code, +kbd, +samp { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/** + * Add the correct font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove the border on images inside links in IE 10. + */ + +img { + border-style: none; +} + +/* Forms + ========================================================================== */ + +/** + * 1. Change the font styles in all browsers. + * 2. Remove the margin in Firefox and Safari. + */ + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ + margin: 0; /* 2 */ +} + +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ + +button, +input { /* 1 */ + overflow: visible; +} + +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ + +button, +select { /* 1 */ + text-transform: none; +} + +/** + * Correct the inability to style clickable types in iOS and Safari. + */ + +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; +} + +/** + * Remove the inner border and padding in Firefox. + */ + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; +} + +/** + * Restore the focus styles unset by the previous rule. + */ + +button:-moz-focusring, +[type="button"]:-moz-focusring, +[type="reset"]:-moz-focusring, +[type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; +} + +/** + * Correct the padding in Firefox. + */ + +fieldset { + padding: 0.35em 0.75em 0.625em; +} + +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ + +legend { + -webkit-box-sizing: border-box; + box-sizing: border-box; /* 1 */ + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ +} + +/** + * Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ + +progress { + vertical-align: baseline; +} + +/** + * Remove the default vertical scrollbar in IE 10+. + */ + +textarea { + overflow: auto; +} + +/** + * 1. Add the correct box sizing in IE 10. + * 2. Remove the padding in IE 10. + */ + +[type="checkbox"], +[type="radio"] { + -webkit-box-sizing: border-box; + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ + +[type="search"] { + -webkit-appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ +} + +/** + * Remove the inner padding in Chrome and Safari on macOS. + */ + +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ + +::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 2 */ +} + +/* Interactive + ========================================================================== */ + +/* + * Add the correct display in Edge, IE 10+, and Firefox. + */ + +details { + display: block; +} + +/* + * Add the correct display in all browsers. + */ + +summary { + display: list-item; +} + +/* Misc + ========================================================================== */ + +/** + * Add the correct display in IE 10+. + */ + +template { + display: none; +} + +/** + * Add the correct display in IE 10. + */ + +[hidden] { + display: none; +} + +/** + * ============================================================================= + * ************ 公共样式 ************ + * ============================================================================= + */ +* { + -webkit-tap-highlight-color: transparent; +} +body { + color: rgba(0, 0, 0, 0.87); + font-size: 14px; + font-family: Roboto, Noto, Helvetica, Arial, sans-serif; + background-color: #fff; +} +@media (min-width: 600px) { + body { + font-size: 14.5px; + } +} +@media (min-width: 1024px) { + body { + font-size: 15px; + } +} +body *::-webkit-scrollbar { + width: 5px; + height: 5px; + background: transparent; +} +@media (min-width: 1024px) { + body *::-webkit-scrollbar { + width: 8px; + height: 8px; + } +} +body *::-webkit-scrollbar-thumb { + background: rgba(0, 0, 0, 0.2); +} +/* 锁定屏幕 */ +body.mdui-locked { + overflow: hidden; +} +/* 遮罩层 */ +.mdui-overlay { + position: fixed; + top: -5000px; + right: -5000px; + bottom: -5000px; + left: -5000px; + z-index: 2000; + background: rgba(0, 0, 0, 0.4); + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + visibility: hidden; + opacity: 0; + -webkit-transition-duration: 0.3s; + transition-duration: 0.3s; + -webkit-transition-property: opacity, visibility; + transition-property: opacity, visibility; + will-change: opacity; +} +/* 显示遮罩层 */ +.mdui-overlay-show { + visibility: visible; + opacity: 1; +} +/* 取消 transition 过渡效果 */ +.mdui-no-transition { + -webkit-transition-property: none !important; + transition-property: none !important; +} +/** + * ============================================================================= + * ************ Global dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark { + color: #fff; + background-color: #303030; +} +.mdui-theme-layout-dark *::-webkit-scrollbar { + width: 5px; + height: 5px; + background: transparent; +} +@media (min-width: 1024px) { + .mdui-theme-layout-dark *::-webkit-scrollbar { + width: 8px; + height: 8px; + } +} +.mdui-theme-layout-dark *::-webkit-scrollbar-thumb { + background: rgba(255, 255, 255, 0.3); +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto { + color: #fff; + background-color: #303030; + } + .mdui-theme-layout-auto *::-webkit-scrollbar { + width: 5px; + height: 5px; + background: transparent; + } + .mdui-theme-layout-auto *::-webkit-scrollbar-thumb { + background: rgba(255, 255, 255, 0.3); + } +} +@media (prefers-color-scheme: dark) and (min-width: 1024px) { + .mdui-theme-layout-auto *::-webkit-scrollbar { + width: 8px; + height: 8px; + } +} +/** + * ============================================================================= + * ************ Color 颜色 ************ + * ============================================================================= + */ +/** + * .mdui-theme-primary-[color] .mdui-color-theme + * .mdui-theme-primary-[color] .mdui-color-theme-[degree] + */ +.mdui-theme-primary-amber .mdui-color-theme { + background-color: #FFC107 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-amber .mdui-color-theme-50 { + background-color: #FFF8E1 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-amber .mdui-color-theme-100 { + background-color: #FFECB3 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-amber .mdui-color-theme-200 { + background-color: #FFE082 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-amber .mdui-color-theme-300 { + background-color: #FFD54F !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-amber .mdui-color-theme-400 { + background-color: #FFCA28 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-amber .mdui-color-theme-500 { + background-color: #FFC107 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-amber .mdui-color-theme-600 { + background-color: #FFB300 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-amber .mdui-color-theme-700 { + background-color: #FFA000 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-amber .mdui-color-theme-800 { + background-color: #FF8F00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-amber .mdui-color-theme-900 { + background-color: #FF6F00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-blue .mdui-color-theme { + background-color: #2196F3 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-blue .mdui-color-theme-50 { + background-color: #E3F2FD !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-blue .mdui-color-theme-100 { + background-color: #BBDEFB !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-blue .mdui-color-theme-200 { + background-color: #90CAF9 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-blue .mdui-color-theme-300 { + background-color: #64B5F6 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-blue .mdui-color-theme-400 { + background-color: #42A5F5 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-blue .mdui-color-theme-500 { + background-color: #2196F3 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-blue .mdui-color-theme-600 { + background-color: #1E88E5 !important; + color: #ffffff !important; +} +.mdui-theme-primary-blue .mdui-color-theme-700 { + background-color: #1976D2 !important; + color: #ffffff !important; +} +.mdui-theme-primary-blue .mdui-color-theme-800 { + background-color: #1565C0 !important; + color: #ffffff !important; +} +.mdui-theme-primary-blue .mdui-color-theme-900 { + background-color: #0D47A1 !important; + color: #ffffff !important; +} +.mdui-theme-primary-blue-grey .mdui-color-theme { + background-color: #607D8B !important; + color: #ffffff !important; +} +.mdui-theme-primary-blue-grey .mdui-color-theme-50 { + background-color: #ECEFF1 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-blue-grey .mdui-color-theme-100 { + background-color: #CFD8DC !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-blue-grey .mdui-color-theme-200 { + background-color: #B0BEC5 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-blue-grey .mdui-color-theme-300 { + background-color: #90A4AE !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-blue-grey .mdui-color-theme-400 { + background-color: #78909C !important; + color: #ffffff !important; +} +.mdui-theme-primary-blue-grey .mdui-color-theme-500 { + background-color: #607D8B !important; + color: #ffffff !important; +} +.mdui-theme-primary-blue-grey .mdui-color-theme-600 { + background-color: #546E7A !important; + color: #ffffff !important; +} +.mdui-theme-primary-blue-grey .mdui-color-theme-700 { + background-color: #455A64 !important; + color: #ffffff !important; +} +.mdui-theme-primary-blue-grey .mdui-color-theme-800 { + background-color: #37474F !important; + color: #ffffff !important; +} +.mdui-theme-primary-blue-grey .mdui-color-theme-900 { + background-color: #263238 !important; + color: #ffffff !important; +} +.mdui-theme-primary-brown .mdui-color-theme { + background-color: #795548 !important; + color: #ffffff !important; +} +.mdui-theme-primary-brown .mdui-color-theme-50 { + background-color: #EFEBE9 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-brown .mdui-color-theme-100 { + background-color: #D7CCC8 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-brown .mdui-color-theme-200 { + background-color: #BCAAA4 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-brown .mdui-color-theme-300 { + background-color: #A1887F !important; + color: #ffffff !important; +} +.mdui-theme-primary-brown .mdui-color-theme-400 { + background-color: #8D6E63 !important; + color: #ffffff !important; +} +.mdui-theme-primary-brown .mdui-color-theme-500 { + background-color: #795548 !important; + color: #ffffff !important; +} +.mdui-theme-primary-brown .mdui-color-theme-600 { + background-color: #6D4C41 !important; + color: #ffffff !important; +} +.mdui-theme-primary-brown .mdui-color-theme-700 { + background-color: #5D4037 !important; + color: #ffffff !important; +} +.mdui-theme-primary-brown .mdui-color-theme-800 { + background-color: #4E342E !important; + color: #ffffff !important; +} +.mdui-theme-primary-brown .mdui-color-theme-900 { + background-color: #3E2723 !important; + color: #ffffff !important; +} +.mdui-theme-primary-cyan .mdui-color-theme { + background-color: #00BCD4 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-cyan .mdui-color-theme-50 { + background-color: #E0F7FA !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-cyan .mdui-color-theme-100 { + background-color: #B2EBF2 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-cyan .mdui-color-theme-200 { + background-color: #80DEEA !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-cyan .mdui-color-theme-300 { + background-color: #4DD0E1 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-cyan .mdui-color-theme-400 { + background-color: #26C6DA !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-cyan .mdui-color-theme-500 { + background-color: #00BCD4 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-cyan .mdui-color-theme-600 { + background-color: #00ACC1 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-cyan .mdui-color-theme-700 { + background-color: #0097A7 !important; + color: #ffffff !important; +} +.mdui-theme-primary-cyan .mdui-color-theme-800 { + background-color: #00838F !important; + color: #ffffff !important; +} +.mdui-theme-primary-cyan .mdui-color-theme-900 { + background-color: #006064 !important; + color: #ffffff !important; +} +.mdui-theme-primary-deep-orange .mdui-color-theme { + background-color: #FF5722 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-deep-orange .mdui-color-theme-50 { + background-color: #FBE9E7 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-deep-orange .mdui-color-theme-100 { + background-color: #FFCCBC !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-deep-orange .mdui-color-theme-200 { + background-color: #FFAB91 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-deep-orange .mdui-color-theme-300 { + background-color: #FF8A65 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-deep-orange .mdui-color-theme-400 { + background-color: #FF7043 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-deep-orange .mdui-color-theme-500 { + background-color: #FF5722 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-deep-orange .mdui-color-theme-600 { + background-color: #F4511E !important; + color: #ffffff !important; +} +.mdui-theme-primary-deep-orange .mdui-color-theme-700 { + background-color: #E64A19 !important; + color: #ffffff !important; +} +.mdui-theme-primary-deep-orange .mdui-color-theme-800 { + background-color: #D84315 !important; + color: #ffffff !important; +} +.mdui-theme-primary-deep-orange .mdui-color-theme-900 { + background-color: #BF360C !important; + color: #ffffff !important; +} +.mdui-theme-primary-deep-purple .mdui-color-theme { + background-color: #673AB7 !important; + color: #ffffff !important; +} +.mdui-theme-primary-deep-purple .mdui-color-theme-50 { + background-color: #EDE7F6 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-deep-purple .mdui-color-theme-100 { + background-color: #D1C4E9 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-deep-purple .mdui-color-theme-200 { + background-color: #B39DDB !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-deep-purple .mdui-color-theme-300 { + background-color: #9575CD !important; + color: #ffffff !important; +} +.mdui-theme-primary-deep-purple .mdui-color-theme-400 { + background-color: #7E57C2 !important; + color: #ffffff !important; +} +.mdui-theme-primary-deep-purple .mdui-color-theme-500 { + background-color: #673AB7 !important; + color: #ffffff !important; +} +.mdui-theme-primary-deep-purple .mdui-color-theme-600 { + background-color: #5E35B1 !important; + color: #ffffff !important; +} +.mdui-theme-primary-deep-purple .mdui-color-theme-700 { + background-color: #512DA8 !important; + color: #ffffff !important; +} +.mdui-theme-primary-deep-purple .mdui-color-theme-800 { + background-color: #4527A0 !important; + color: #ffffff !important; +} +.mdui-theme-primary-deep-purple .mdui-color-theme-900 { + background-color: #311B92 !important; + color: #ffffff !important; +} +.mdui-theme-primary-green .mdui-color-theme { + background-color: #4CAF50 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-green .mdui-color-theme-50 { + background-color: #E8F5E9 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-green .mdui-color-theme-100 { + background-color: #C8E6C9 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-green .mdui-color-theme-200 { + background-color: #A5D6A7 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-green .mdui-color-theme-300 { + background-color: #81C784 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-green .mdui-color-theme-400 { + background-color: #66BB6A !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-green .mdui-color-theme-500 { + background-color: #4CAF50 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-green .mdui-color-theme-600 { + background-color: #43A047 !important; + color: #ffffff !important; +} +.mdui-theme-primary-green .mdui-color-theme-700 { + background-color: #388E3C !important; + color: #ffffff !important; +} +.mdui-theme-primary-green .mdui-color-theme-800 { + background-color: #2E7D32 !important; + color: #ffffff !important; +} +.mdui-theme-primary-green .mdui-color-theme-900 { + background-color: #1B5E20 !important; + color: #ffffff !important; +} +.mdui-theme-primary-grey .mdui-color-theme { + background-color: #9E9E9E !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-grey .mdui-color-theme-50 { + background-color: #FAFAFA !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-grey .mdui-color-theme-100 { + background-color: #F5F5F5 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-grey .mdui-color-theme-200 { + background-color: #EEEEEE !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-grey .mdui-color-theme-300 { + background-color: #E0E0E0 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-grey .mdui-color-theme-400 { + background-color: #BDBDBD !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-grey .mdui-color-theme-500 { + background-color: #9E9E9E !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-grey .mdui-color-theme-600 { + background-color: #757575 !important; + color: #ffffff !important; +} +.mdui-theme-primary-grey .mdui-color-theme-700 { + background-color: #616161 !important; + color: #ffffff !important; +} +.mdui-theme-primary-grey .mdui-color-theme-800 { + background-color: #424242 !important; + color: #ffffff !important; +} +.mdui-theme-primary-grey .mdui-color-theme-900 { + background-color: #212121 !important; + color: #ffffff !important; +} +.mdui-theme-primary-indigo .mdui-color-theme { + background-color: #3F51B5 !important; + color: #ffffff !important; +} +.mdui-theme-primary-indigo .mdui-color-theme-50 { + background-color: #E8EAF6 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-indigo .mdui-color-theme-100 { + background-color: #C5CAE9 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-indigo .mdui-color-theme-200 { + background-color: #9FA8DA !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-indigo .mdui-color-theme-300 { + background-color: #7986CB !important; + color: #ffffff !important; +} +.mdui-theme-primary-indigo .mdui-color-theme-400 { + background-color: #5C6BC0 !important; + color: #ffffff !important; +} +.mdui-theme-primary-indigo .mdui-color-theme-500 { + background-color: #3F51B5 !important; + color: #ffffff !important; +} +.mdui-theme-primary-indigo .mdui-color-theme-600 { + background-color: #3949AB !important; + color: #ffffff !important; +} +.mdui-theme-primary-indigo .mdui-color-theme-700 { + background-color: #303F9F !important; + color: #ffffff !important; +} +.mdui-theme-primary-indigo .mdui-color-theme-800 { + background-color: #283593 !important; + color: #ffffff !important; +} +.mdui-theme-primary-indigo .mdui-color-theme-900 { + background-color: #1A237E !important; + color: #ffffff !important; +} +.mdui-theme-primary-light-blue .mdui-color-theme { + background-color: #03A9F4 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-light-blue .mdui-color-theme-50 { + background-color: #E1F5FE !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-light-blue .mdui-color-theme-100 { + background-color: #B3E5FC !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-light-blue .mdui-color-theme-200 { + background-color: #81D4FA !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-light-blue .mdui-color-theme-300 { + background-color: #4FC3F7 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-light-blue .mdui-color-theme-400 { + background-color: #29B6F6 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-light-blue .mdui-color-theme-500 { + background-color: #03A9F4 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-light-blue .mdui-color-theme-600 { + background-color: #039BE5 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-light-blue .mdui-color-theme-700 { + background-color: #0288D1 !important; + color: #ffffff !important; +} +.mdui-theme-primary-light-blue .mdui-color-theme-800 { + background-color: #0277BD !important; + color: #ffffff !important; +} +.mdui-theme-primary-light-blue .mdui-color-theme-900 { + background-color: #01579B !important; + color: #ffffff !important; +} +.mdui-theme-primary-light-green .mdui-color-theme { + background-color: #8BC34A !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-light-green .mdui-color-theme-50 { + background-color: #F1F8E9 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-light-green .mdui-color-theme-100 { + background-color: #DCEDC8 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-light-green .mdui-color-theme-200 { + background-color: #C5E1A5 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-light-green .mdui-color-theme-300 { + background-color: #AED581 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-light-green .mdui-color-theme-400 { + background-color: #9CCC65 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-light-green .mdui-color-theme-500 { + background-color: #8BC34A !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-light-green .mdui-color-theme-600 { + background-color: #7CB342 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-light-green .mdui-color-theme-700 { + background-color: #689F38 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-light-green .mdui-color-theme-800 { + background-color: #558B2F !important; + color: #ffffff !important; +} +.mdui-theme-primary-light-green .mdui-color-theme-900 { + background-color: #33691E !important; + color: #ffffff !important; +} +.mdui-theme-primary-lime .mdui-color-theme { + background-color: #CDDC39 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-lime .mdui-color-theme-50 { + background-color: #F9FBE7 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-lime .mdui-color-theme-100 { + background-color: #F0F4C3 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-lime .mdui-color-theme-200 { + background-color: #E6EE9C !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-lime .mdui-color-theme-300 { + background-color: #DCE775 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-lime .mdui-color-theme-400 { + background-color: #D4E157 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-lime .mdui-color-theme-500 { + background-color: #CDDC39 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-lime .mdui-color-theme-600 { + background-color: #C0CA33 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-lime .mdui-color-theme-700 { + background-color: #AFB42B !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-lime .mdui-color-theme-800 { + background-color: #9E9D24 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-lime .mdui-color-theme-900 { + background-color: #827717 !important; + color: #ffffff !important; +} +.mdui-theme-primary-orange .mdui-color-theme { + background-color: #FF9800 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-orange .mdui-color-theme-50 { + background-color: #FFF3E0 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-orange .mdui-color-theme-100 { + background-color: #FFE0B2 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-orange .mdui-color-theme-200 { + background-color: #FFCC80 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-orange .mdui-color-theme-300 { + background-color: #FFB74D !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-orange .mdui-color-theme-400 { + background-color: #FFA726 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-orange .mdui-color-theme-500 { + background-color: #FF9800 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-orange .mdui-color-theme-600 { + background-color: #FB8C00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-orange .mdui-color-theme-700 { + background-color: #F57C00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-orange .mdui-color-theme-800 { + background-color: #EF6C00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-orange .mdui-color-theme-900 { + background-color: #E65100 !important; + color: #ffffff !important; +} +.mdui-theme-primary-pink .mdui-color-theme { + background-color: #E91E63 !important; + color: #ffffff !important; +} +.mdui-theme-primary-pink .mdui-color-theme-50 { + background-color: #FCE4EC !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-pink .mdui-color-theme-100 { + background-color: #F8BBD0 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-pink .mdui-color-theme-200 { + background-color: #F48FB1 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-pink .mdui-color-theme-300 { + background-color: #F06292 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-pink .mdui-color-theme-400 { + background-color: #EC407A !important; + color: #ffffff !important; +} +.mdui-theme-primary-pink .mdui-color-theme-500 { + background-color: #E91E63 !important; + color: #ffffff !important; +} +.mdui-theme-primary-pink .mdui-color-theme-600 { + background-color: #D81B60 !important; + color: #ffffff !important; +} +.mdui-theme-primary-pink .mdui-color-theme-700 { + background-color: #C2185B !important; + color: #ffffff !important; +} +.mdui-theme-primary-pink .mdui-color-theme-800 { + background-color: #AD1457 !important; + color: #ffffff !important; +} +.mdui-theme-primary-pink .mdui-color-theme-900 { + background-color: #880E4F !important; + color: #ffffff !important; +} +.mdui-theme-primary-purple .mdui-color-theme { + background-color: #9C27B0 !important; + color: #ffffff !important; +} +.mdui-theme-primary-purple .mdui-color-theme-50 { + background-color: #F3E5F5 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-purple .mdui-color-theme-100 { + background-color: #E1BEE7 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-purple .mdui-color-theme-200 { + background-color: #CE93D8 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-purple .mdui-color-theme-300 { + background-color: #BA68C8 !important; + color: #ffffff !important; +} +.mdui-theme-primary-purple .mdui-color-theme-400 { + background-color: #AB47BC !important; + color: #ffffff !important; +} +.mdui-theme-primary-purple .mdui-color-theme-500 { + background-color: #9C27B0 !important; + color: #ffffff !important; +} +.mdui-theme-primary-purple .mdui-color-theme-600 { + background-color: #8E24AA !important; + color: #ffffff !important; +} +.mdui-theme-primary-purple .mdui-color-theme-700 { + background-color: #7B1FA2 !important; + color: #ffffff !important; +} +.mdui-theme-primary-purple .mdui-color-theme-800 { + background-color: #6A1B9A !important; + color: #ffffff !important; +} +.mdui-theme-primary-purple .mdui-color-theme-900 { + background-color: #4A148C !important; + color: #ffffff !important; +} +.mdui-theme-primary-red .mdui-color-theme { + background-color: #F44336 !important; + color: #ffffff !important; +} +.mdui-theme-primary-red .mdui-color-theme-50 { + background-color: #FFEBEE !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-red .mdui-color-theme-100 { + background-color: #FFCDD2 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-red .mdui-color-theme-200 { + background-color: #EF9A9A !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-red .mdui-color-theme-300 { + background-color: #E57373 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-red .mdui-color-theme-400 { + background-color: #EF5350 !important; + color: #ffffff !important; +} +.mdui-theme-primary-red .mdui-color-theme-500 { + background-color: #F44336 !important; + color: #ffffff !important; +} +.mdui-theme-primary-red .mdui-color-theme-600 { + background-color: #E53935 !important; + color: #ffffff !important; +} +.mdui-theme-primary-red .mdui-color-theme-700 { + background-color: #D32F2F !important; + color: #ffffff !important; +} +.mdui-theme-primary-red .mdui-color-theme-800 { + background-color: #C62828 !important; + color: #ffffff !important; +} +.mdui-theme-primary-red .mdui-color-theme-900 { + background-color: #B71C1C !important; + color: #ffffff !important; +} +.mdui-theme-primary-teal .mdui-color-theme { + background-color: #009688 !important; + color: #ffffff !important; +} +.mdui-theme-primary-teal .mdui-color-theme-50 { + background-color: #E0F2F1 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-teal .mdui-color-theme-100 { + background-color: #B2DFDB !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-teal .mdui-color-theme-200 { + background-color: #80CBC4 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-teal .mdui-color-theme-300 { + background-color: #4DB6AC !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-teal .mdui-color-theme-400 { + background-color: #26A69A !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-teal .mdui-color-theme-500 { + background-color: #009688 !important; + color: #ffffff !important; +} +.mdui-theme-primary-teal .mdui-color-theme-600 { + background-color: #00897B !important; + color: #ffffff !important; +} +.mdui-theme-primary-teal .mdui-color-theme-700 { + background-color: #00796B !important; + color: #ffffff !important; +} +.mdui-theme-primary-teal .mdui-color-theme-800 { + background-color: #00695C !important; + color: #ffffff !important; +} +.mdui-theme-primary-teal .mdui-color-theme-900 { + background-color: #004D40 !important; + color: #ffffff !important; +} +.mdui-theme-primary-yellow .mdui-color-theme { + background-color: #FFEB3B !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-yellow .mdui-color-theme-50 { + background-color: #FFFDE7 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-yellow .mdui-color-theme-100 { + background-color: #FFF9C4 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-yellow .mdui-color-theme-200 { + background-color: #FFF59D !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-yellow .mdui-color-theme-300 { + background-color: #FFF176 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-yellow .mdui-color-theme-400 { + background-color: #FFEE58 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-yellow .mdui-color-theme-500 { + background-color: #FFEB3B !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-yellow .mdui-color-theme-600 { + background-color: #FDD835 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-yellow .mdui-color-theme-700 { + background-color: #FBC02D !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-yellow .mdui-color-theme-800 { + background-color: #F9A825 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-primary-yellow .mdui-color-theme-900 { + background-color: #F57F17 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +/** + * .mdui-theme-accent-[color] .mdui-color-theme-accent + * .mdui-theme-accent-[color] .mdui-color-theme-[degree] + */ +.mdui-theme-accent-amber .mdui-color-theme-accent { + background-color: #FFD740 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-amber .mdui-color-theme-a100 { + background-color: #FFE57F !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-amber .mdui-color-theme-a200 { + background-color: #FFD740 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-amber .mdui-color-theme-a400 { + background-color: #FFC400 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-amber .mdui-color-theme-a700 { + background-color: #FFAB00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-blue .mdui-color-theme-accent { + background-color: #448AFF !important; + color: #ffffff !important; +} +.mdui-theme-accent-blue .mdui-color-theme-a100 { + background-color: #82B1FF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-blue .mdui-color-theme-a200 { + background-color: #448AFF !important; + color: #ffffff !important; +} +.mdui-theme-accent-blue .mdui-color-theme-a400 { + background-color: #2979FF !important; + color: #ffffff !important; +} +.mdui-theme-accent-blue .mdui-color-theme-a700 { + background-color: #2962FF !important; + color: #ffffff !important; +} +.mdui-theme-accent-cyan .mdui-color-theme-accent { + background-color: #18FFFF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-cyan .mdui-color-theme-a100 { + background-color: #84FFFF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-cyan .mdui-color-theme-a200 { + background-color: #18FFFF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-cyan .mdui-color-theme-a400 { + background-color: #00E5FF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-cyan .mdui-color-theme-a700 { + background-color: #00B8D4 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-deep-orange .mdui-color-theme-accent { + background-color: #FF6E40 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-deep-orange .mdui-color-theme-a100 { + background-color: #FF9E80 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-deep-orange .mdui-color-theme-a200 { + background-color: #FF6E40 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-deep-orange .mdui-color-theme-a400 { + background-color: #FF3D00 !important; + color: #ffffff !important; +} +.mdui-theme-accent-deep-orange .mdui-color-theme-a700 { + background-color: #DD2C00 !important; + color: #ffffff !important; +} +.mdui-theme-accent-deep-purple .mdui-color-theme-accent { + background-color: #7C4DFF !important; + color: #ffffff !important; +} +.mdui-theme-accent-deep-purple .mdui-color-theme-a100 { + background-color: #B388FF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-deep-purple .mdui-color-theme-a200 { + background-color: #7C4DFF !important; + color: #ffffff !important; +} +.mdui-theme-accent-deep-purple .mdui-color-theme-a400 { + background-color: #651FFF !important; + color: #ffffff !important; +} +.mdui-theme-accent-deep-purple .mdui-color-theme-a700 { + background-color: #6200EA !important; + color: #ffffff !important; +} +.mdui-theme-accent-green .mdui-color-theme-accent { + background-color: #69F0AE !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-green .mdui-color-theme-a100 { + background-color: #B9F6CA !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-green .mdui-color-theme-a200 { + background-color: #69F0AE !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-green .mdui-color-theme-a400 { + background-color: #00E676 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-green .mdui-color-theme-a700 { + background-color: #00C853 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-indigo .mdui-color-theme-accent { + background-color: #536DFE !important; + color: #ffffff !important; +} +.mdui-theme-accent-indigo .mdui-color-theme-a100 { + background-color: #8C9EFF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-indigo .mdui-color-theme-a200 { + background-color: #536DFE !important; + color: #ffffff !important; +} +.mdui-theme-accent-indigo .mdui-color-theme-a400 { + background-color: #3D5AFE !important; + color: #ffffff !important; +} +.mdui-theme-accent-indigo .mdui-color-theme-a700 { + background-color: #304FFE !important; + color: #ffffff !important; +} +.mdui-theme-accent-light-blue .mdui-color-theme-accent { + background-color: #40C4FF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-light-blue .mdui-color-theme-a100 { + background-color: #80D8FF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-light-blue .mdui-color-theme-a200 { + background-color: #40C4FF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-light-blue .mdui-color-theme-a400 { + background-color: #00B0FF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-light-blue .mdui-color-theme-a700 { + background-color: #0091EA !important; + color: #ffffff !important; +} +.mdui-theme-accent-light-green .mdui-color-theme-accent { + background-color: #B2FF59 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-light-green .mdui-color-theme-a100 { + background-color: #CCFF90 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-light-green .mdui-color-theme-a200 { + background-color: #B2FF59 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-light-green .mdui-color-theme-a400 { + background-color: #76FF03 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-light-green .mdui-color-theme-a700 { + background-color: #64DD17 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-lime .mdui-color-theme-accent { + background-color: #EEFF41 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-lime .mdui-color-theme-a100 { + background-color: #F4FF81 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-lime .mdui-color-theme-a200 { + background-color: #EEFF41 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-lime .mdui-color-theme-a400 { + background-color: #C6FF00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-lime .mdui-color-theme-a700 { + background-color: #AEEA00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-orange .mdui-color-theme-accent { + background-color: #FFAB40 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-orange .mdui-color-theme-a100 { + background-color: #FFD180 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-orange .mdui-color-theme-a200 { + background-color: #FFAB40 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-orange .mdui-color-theme-a400 { + background-color: #FF9100 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-orange .mdui-color-theme-a700 { + background-color: #FF6D00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-pink .mdui-color-theme-accent { + background-color: #FF4081 !important; + color: #ffffff !important; +} +.mdui-theme-accent-pink .mdui-color-theme-a100 { + background-color: #FF80AB !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-pink .mdui-color-theme-a200 { + background-color: #FF4081 !important; + color: #ffffff !important; +} +.mdui-theme-accent-pink .mdui-color-theme-a400 { + background-color: #F50057 !important; + color: #ffffff !important; +} +.mdui-theme-accent-pink .mdui-color-theme-a700 { + background-color: #C51162 !important; + color: #ffffff !important; +} +.mdui-theme-accent-purple .mdui-color-theme-accent { + background-color: #E040FB !important; + color: #ffffff !important; +} +.mdui-theme-accent-purple .mdui-color-theme-a100 { + background-color: #EA80FC !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-purple .mdui-color-theme-a200 { + background-color: #E040FB !important; + color: #ffffff !important; +} +.mdui-theme-accent-purple .mdui-color-theme-a400 { + background-color: #D500F9 !important; + color: #ffffff !important; +} +.mdui-theme-accent-purple .mdui-color-theme-a700 { + background-color: #AA00FF !important; + color: #ffffff !important; +} +.mdui-theme-accent-red .mdui-color-theme-accent { + background-color: #FF5252 !important; + color: #ffffff !important; +} +.mdui-theme-accent-red .mdui-color-theme-a100 { + background-color: #FF8A80 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-red .mdui-color-theme-a200 { + background-color: #FF5252 !important; + color: #ffffff !important; +} +.mdui-theme-accent-red .mdui-color-theme-a400 { + background-color: #FF1744 !important; + color: #ffffff !important; +} +.mdui-theme-accent-red .mdui-color-theme-a700 { + background-color: #D50000 !important; + color: #ffffff !important; +} +.mdui-theme-accent-teal .mdui-color-theme-accent { + background-color: #64FFDA !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-teal .mdui-color-theme-a100 { + background-color: #A7FFEB !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-teal .mdui-color-theme-a200 { + background-color: #64FFDA !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-teal .mdui-color-theme-a400 { + background-color: #1DE9B6 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-teal .mdui-color-theme-a700 { + background-color: #00BFA5 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-yellow .mdui-color-theme-accent { + background-color: #FFFF00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-yellow .mdui-color-theme-a100 { + background-color: #FFFF8D !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-yellow .mdui-color-theme-a200 { + background-color: #FFFF00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-yellow .mdui-color-theme-a400 { + background-color: #FFEA00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-theme-accent-yellow .mdui-color-theme-a700 { + background-color: #FFD600 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +/** + * .mdui-color-[color] + * .mdui-color-[color]-[degree] + */ +.mdui-color-amber { + background-color: #FFC107 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-amber-50 { + background-color: #FFF8E1 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-amber-100 { + background-color: #FFECB3 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-amber-200 { + background-color: #FFE082 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-amber-300 { + background-color: #FFD54F !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-amber-400 { + background-color: #FFCA28 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-amber-500 { + background-color: #FFC107 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-amber-600 { + background-color: #FFB300 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-amber-700 { + background-color: #FFA000 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-amber-800 { + background-color: #FF8F00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-amber-900 { + background-color: #FF6F00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-blue { + background-color: #2196F3 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-blue-50 { + background-color: #E3F2FD !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-blue-100 { + background-color: #BBDEFB !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-blue-200 { + background-color: #90CAF9 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-blue-300 { + background-color: #64B5F6 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-blue-400 { + background-color: #42A5F5 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-blue-500 { + background-color: #2196F3 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-blue-600 { + background-color: #1E88E5 !important; + color: #ffffff !important; +} +.mdui-color-blue-700 { + background-color: #1976D2 !important; + color: #ffffff !important; +} +.mdui-color-blue-800 { + background-color: #1565C0 !important; + color: #ffffff !important; +} +.mdui-color-blue-900 { + background-color: #0D47A1 !important; + color: #ffffff !important; +} +.mdui-color-blue-grey { + background-color: #607D8B !important; + color: #ffffff !important; +} +.mdui-color-blue-grey-50 { + background-color: #ECEFF1 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-blue-grey-100 { + background-color: #CFD8DC !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-blue-grey-200 { + background-color: #B0BEC5 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-blue-grey-300 { + background-color: #90A4AE !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-blue-grey-400 { + background-color: #78909C !important; + color: #ffffff !important; +} +.mdui-color-blue-grey-500 { + background-color: #607D8B !important; + color: #ffffff !important; +} +.mdui-color-blue-grey-600 { + background-color: #546E7A !important; + color: #ffffff !important; +} +.mdui-color-blue-grey-700 { + background-color: #455A64 !important; + color: #ffffff !important; +} +.mdui-color-blue-grey-800 { + background-color: #37474F !important; + color: #ffffff !important; +} +.mdui-color-blue-grey-900 { + background-color: #263238 !important; + color: #ffffff !important; +} +.mdui-color-brown { + background-color: #795548 !important; + color: #ffffff !important; +} +.mdui-color-brown-50 { + background-color: #EFEBE9 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-brown-100 { + background-color: #D7CCC8 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-brown-200 { + background-color: #BCAAA4 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-brown-300 { + background-color: #A1887F !important; + color: #ffffff !important; +} +.mdui-color-brown-400 { + background-color: #8D6E63 !important; + color: #ffffff !important; +} +.mdui-color-brown-500 { + background-color: #795548 !important; + color: #ffffff !important; +} +.mdui-color-brown-600 { + background-color: #6D4C41 !important; + color: #ffffff !important; +} +.mdui-color-brown-700 { + background-color: #5D4037 !important; + color: #ffffff !important; +} +.mdui-color-brown-800 { + background-color: #4E342E !important; + color: #ffffff !important; +} +.mdui-color-brown-900 { + background-color: #3E2723 !important; + color: #ffffff !important; +} +.mdui-color-cyan { + background-color: #00BCD4 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-cyan-50 { + background-color: #E0F7FA !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-cyan-100 { + background-color: #B2EBF2 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-cyan-200 { + background-color: #80DEEA !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-cyan-300 { + background-color: #4DD0E1 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-cyan-400 { + background-color: #26C6DA !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-cyan-500 { + background-color: #00BCD4 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-cyan-600 { + background-color: #00ACC1 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-cyan-700 { + background-color: #0097A7 !important; + color: #ffffff !important; +} +.mdui-color-cyan-800 { + background-color: #00838F !important; + color: #ffffff !important; +} +.mdui-color-cyan-900 { + background-color: #006064 !important; + color: #ffffff !important; +} +.mdui-color-deep-orange { + background-color: #FF5722 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-deep-orange-50 { + background-color: #FBE9E7 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-deep-orange-100 { + background-color: #FFCCBC !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-deep-orange-200 { + background-color: #FFAB91 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-deep-orange-300 { + background-color: #FF8A65 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-deep-orange-400 { + background-color: #FF7043 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-deep-orange-500 { + background-color: #FF5722 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-deep-orange-600 { + background-color: #F4511E !important; + color: #ffffff !important; +} +.mdui-color-deep-orange-700 { + background-color: #E64A19 !important; + color: #ffffff !important; +} +.mdui-color-deep-orange-800 { + background-color: #D84315 !important; + color: #ffffff !important; +} +.mdui-color-deep-orange-900 { + background-color: #BF360C !important; + color: #ffffff !important; +} +.mdui-color-deep-purple { + background-color: #673AB7 !important; + color: #ffffff !important; +} +.mdui-color-deep-purple-50 { + background-color: #EDE7F6 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-deep-purple-100 { + background-color: #D1C4E9 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-deep-purple-200 { + background-color: #B39DDB !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-deep-purple-300 { + background-color: #9575CD !important; + color: #ffffff !important; +} +.mdui-color-deep-purple-400 { + background-color: #7E57C2 !important; + color: #ffffff !important; +} +.mdui-color-deep-purple-500 { + background-color: #673AB7 !important; + color: #ffffff !important; +} +.mdui-color-deep-purple-600 { + background-color: #5E35B1 !important; + color: #ffffff !important; +} +.mdui-color-deep-purple-700 { + background-color: #512DA8 !important; + color: #ffffff !important; +} +.mdui-color-deep-purple-800 { + background-color: #4527A0 !important; + color: #ffffff !important; +} +.mdui-color-deep-purple-900 { + background-color: #311B92 !important; + color: #ffffff !important; +} +.mdui-color-green { + background-color: #4CAF50 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-green-50 { + background-color: #E8F5E9 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-green-100 { + background-color: #C8E6C9 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-green-200 { + background-color: #A5D6A7 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-green-300 { + background-color: #81C784 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-green-400 { + background-color: #66BB6A !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-green-500 { + background-color: #4CAF50 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-green-600 { + background-color: #43A047 !important; + color: #ffffff !important; +} +.mdui-color-green-700 { + background-color: #388E3C !important; + color: #ffffff !important; +} +.mdui-color-green-800 { + background-color: #2E7D32 !important; + color: #ffffff !important; +} +.mdui-color-green-900 { + background-color: #1B5E20 !important; + color: #ffffff !important; +} +.mdui-color-grey { + background-color: #9E9E9E !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-grey-50 { + background-color: #FAFAFA !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-grey-100 { + background-color: #F5F5F5 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-grey-200 { + background-color: #EEEEEE !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-grey-300 { + background-color: #E0E0E0 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-grey-400 { + background-color: #BDBDBD !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-grey-500 { + background-color: #9E9E9E !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-grey-600 { + background-color: #757575 !important; + color: #ffffff !important; +} +.mdui-color-grey-700 { + background-color: #616161 !important; + color: #ffffff !important; +} +.mdui-color-grey-800 { + background-color: #424242 !important; + color: #ffffff !important; +} +.mdui-color-grey-900 { + background-color: #212121 !important; + color: #ffffff !important; +} +.mdui-color-indigo { + background-color: #3F51B5 !important; + color: #ffffff !important; +} +.mdui-color-indigo-50 { + background-color: #E8EAF6 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-indigo-100 { + background-color: #C5CAE9 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-indigo-200 { + background-color: #9FA8DA !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-indigo-300 { + background-color: #7986CB !important; + color: #ffffff !important; +} +.mdui-color-indigo-400 { + background-color: #5C6BC0 !important; + color: #ffffff !important; +} +.mdui-color-indigo-500 { + background-color: #3F51B5 !important; + color: #ffffff !important; +} +.mdui-color-indigo-600 { + background-color: #3949AB !important; + color: #ffffff !important; +} +.mdui-color-indigo-700 { + background-color: #303F9F !important; + color: #ffffff !important; +} +.mdui-color-indigo-800 { + background-color: #283593 !important; + color: #ffffff !important; +} +.mdui-color-indigo-900 { + background-color: #1A237E !important; + color: #ffffff !important; +} +.mdui-color-light-blue { + background-color: #03A9F4 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-blue-50 { + background-color: #E1F5FE !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-blue-100 { + background-color: #B3E5FC !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-blue-200 { + background-color: #81D4FA !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-blue-300 { + background-color: #4FC3F7 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-blue-400 { + background-color: #29B6F6 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-blue-500 { + background-color: #03A9F4 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-blue-600 { + background-color: #039BE5 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-blue-700 { + background-color: #0288D1 !important; + color: #ffffff !important; +} +.mdui-color-light-blue-800 { + background-color: #0277BD !important; + color: #ffffff !important; +} +.mdui-color-light-blue-900 { + background-color: #01579B !important; + color: #ffffff !important; +} +.mdui-color-light-green { + background-color: #8BC34A !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-green-50 { + background-color: #F1F8E9 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-green-100 { + background-color: #DCEDC8 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-green-200 { + background-color: #C5E1A5 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-green-300 { + background-color: #AED581 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-green-400 { + background-color: #9CCC65 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-green-500 { + background-color: #8BC34A !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-green-600 { + background-color: #7CB342 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-green-700 { + background-color: #689F38 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-green-800 { + background-color: #558B2F !important; + color: #ffffff !important; +} +.mdui-color-light-green-900 { + background-color: #33691E !important; + color: #ffffff !important; +} +.mdui-color-lime { + background-color: #CDDC39 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-lime-50 { + background-color: #F9FBE7 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-lime-100 { + background-color: #F0F4C3 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-lime-200 { + background-color: #E6EE9C !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-lime-300 { + background-color: #DCE775 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-lime-400 { + background-color: #D4E157 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-lime-500 { + background-color: #CDDC39 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-lime-600 { + background-color: #C0CA33 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-lime-700 { + background-color: #AFB42B !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-lime-800 { + background-color: #9E9D24 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-lime-900 { + background-color: #827717 !important; + color: #ffffff !important; +} +.mdui-color-orange { + background-color: #FF9800 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-orange-50 { + background-color: #FFF3E0 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-orange-100 { + background-color: #FFE0B2 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-orange-200 { + background-color: #FFCC80 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-orange-300 { + background-color: #FFB74D !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-orange-400 { + background-color: #FFA726 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-orange-500 { + background-color: #FF9800 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-orange-600 { + background-color: #FB8C00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-orange-700 { + background-color: #F57C00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-orange-800 { + background-color: #EF6C00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-orange-900 { + background-color: #E65100 !important; + color: #ffffff !important; +} +.mdui-color-pink { + background-color: #E91E63 !important; + color: #ffffff !important; +} +.mdui-color-pink-50 { + background-color: #FCE4EC !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-pink-100 { + background-color: #F8BBD0 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-pink-200 { + background-color: #F48FB1 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-pink-300 { + background-color: #F06292 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-pink-400 { + background-color: #EC407A !important; + color: #ffffff !important; +} +.mdui-color-pink-500 { + background-color: #E91E63 !important; + color: #ffffff !important; +} +.mdui-color-pink-600 { + background-color: #D81B60 !important; + color: #ffffff !important; +} +.mdui-color-pink-700 { + background-color: #C2185B !important; + color: #ffffff !important; +} +.mdui-color-pink-800 { + background-color: #AD1457 !important; + color: #ffffff !important; +} +.mdui-color-pink-900 { + background-color: #880E4F !important; + color: #ffffff !important; +} +.mdui-color-purple { + background-color: #9C27B0 !important; + color: #ffffff !important; +} +.mdui-color-purple-50 { + background-color: #F3E5F5 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-purple-100 { + background-color: #E1BEE7 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-purple-200 { + background-color: #CE93D8 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-purple-300 { + background-color: #BA68C8 !important; + color: #ffffff !important; +} +.mdui-color-purple-400 { + background-color: #AB47BC !important; + color: #ffffff !important; +} +.mdui-color-purple-500 { + background-color: #9C27B0 !important; + color: #ffffff !important; +} +.mdui-color-purple-600 { + background-color: #8E24AA !important; + color: #ffffff !important; +} +.mdui-color-purple-700 { + background-color: #7B1FA2 !important; + color: #ffffff !important; +} +.mdui-color-purple-800 { + background-color: #6A1B9A !important; + color: #ffffff !important; +} +.mdui-color-purple-900 { + background-color: #4A148C !important; + color: #ffffff !important; +} +.mdui-color-red { + background-color: #F44336 !important; + color: #ffffff !important; +} +.mdui-color-red-50 { + background-color: #FFEBEE !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-red-100 { + background-color: #FFCDD2 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-red-200 { + background-color: #EF9A9A !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-red-300 { + background-color: #E57373 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-red-400 { + background-color: #EF5350 !important; + color: #ffffff !important; +} +.mdui-color-red-500 { + background-color: #F44336 !important; + color: #ffffff !important; +} +.mdui-color-red-600 { + background-color: #E53935 !important; + color: #ffffff !important; +} +.mdui-color-red-700 { + background-color: #D32F2F !important; + color: #ffffff !important; +} +.mdui-color-red-800 { + background-color: #C62828 !important; + color: #ffffff !important; +} +.mdui-color-red-900 { + background-color: #B71C1C !important; + color: #ffffff !important; +} +.mdui-color-teal { + background-color: #009688 !important; + color: #ffffff !important; +} +.mdui-color-teal-50 { + background-color: #E0F2F1 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-teal-100 { + background-color: #B2DFDB !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-teal-200 { + background-color: #80CBC4 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-teal-300 { + background-color: #4DB6AC !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-teal-400 { + background-color: #26A69A !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-teal-500 { + background-color: #009688 !important; + color: #ffffff !important; +} +.mdui-color-teal-600 { + background-color: #00897B !important; + color: #ffffff !important; +} +.mdui-color-teal-700 { + background-color: #00796B !important; + color: #ffffff !important; +} +.mdui-color-teal-800 { + background-color: #00695C !important; + color: #ffffff !important; +} +.mdui-color-teal-900 { + background-color: #004D40 !important; + color: #ffffff !important; +} +.mdui-color-yellow { + background-color: #FFEB3B !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-yellow-50 { + background-color: #FFFDE7 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-yellow-100 { + background-color: #FFF9C4 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-yellow-200 { + background-color: #FFF59D !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-yellow-300 { + background-color: #FFF176 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-yellow-400 { + background-color: #FFEE58 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-yellow-500 { + background-color: #FFEB3B !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-yellow-600 { + background-color: #FDD835 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-yellow-700 { + background-color: #FBC02D !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-yellow-800 { + background-color: #F9A825 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-yellow-900 { + background-color: #F57F17 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +/** + * .mdui-color-[color]-accent + * .mdui-color-[color]-[degree] + */ +.mdui-color-amber-accent { + background-color: #FFD740 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-amber-a100 { + background-color: #FFE57F !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-amber-a200 { + background-color: #FFD740 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-amber-a400 { + background-color: #FFC400 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-amber-a700 { + background-color: #FFAB00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-blue-accent { + background-color: #448AFF !important; + color: #ffffff !important; +} +.mdui-color-blue-a100 { + background-color: #82B1FF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-blue-a200 { + background-color: #448AFF !important; + color: #ffffff !important; +} +.mdui-color-blue-a400 { + background-color: #2979FF !important; + color: #ffffff !important; +} +.mdui-color-blue-a700 { + background-color: #2962FF !important; + color: #ffffff !important; +} +.mdui-color-cyan-accent { + background-color: #18FFFF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-cyan-a100 { + background-color: #84FFFF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-cyan-a200 { + background-color: #18FFFF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-cyan-a400 { + background-color: #00E5FF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-cyan-a700 { + background-color: #00B8D4 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-deep-orange-accent { + background-color: #FF6E40 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-deep-orange-a100 { + background-color: #FF9E80 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-deep-orange-a200 { + background-color: #FF6E40 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-deep-orange-a400 { + background-color: #FF3D00 !important; + color: #ffffff !important; +} +.mdui-color-deep-orange-a700 { + background-color: #DD2C00 !important; + color: #ffffff !important; +} +.mdui-color-deep-purple-accent { + background-color: #7C4DFF !important; + color: #ffffff !important; +} +.mdui-color-deep-purple-a100 { + background-color: #B388FF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-deep-purple-a200 { + background-color: #7C4DFF !important; + color: #ffffff !important; +} +.mdui-color-deep-purple-a400 { + background-color: #651FFF !important; + color: #ffffff !important; +} +.mdui-color-deep-purple-a700 { + background-color: #6200EA !important; + color: #ffffff !important; +} +.mdui-color-green-accent { + background-color: #69F0AE !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-green-a100 { + background-color: #B9F6CA !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-green-a200 { + background-color: #69F0AE !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-green-a400 { + background-color: #00E676 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-green-a700 { + background-color: #00C853 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-indigo-accent { + background-color: #536DFE !important; + color: #ffffff !important; +} +.mdui-color-indigo-a100 { + background-color: #8C9EFF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-indigo-a200 { + background-color: #536DFE !important; + color: #ffffff !important; +} +.mdui-color-indigo-a400 { + background-color: #3D5AFE !important; + color: #ffffff !important; +} +.mdui-color-indigo-a700 { + background-color: #304FFE !important; + color: #ffffff !important; +} +.mdui-color-light-blue-accent { + background-color: #40C4FF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-blue-a100 { + background-color: #80D8FF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-blue-a200 { + background-color: #40C4FF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-blue-a400 { + background-color: #00B0FF !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-blue-a700 { + background-color: #0091EA !important; + color: #ffffff !important; +} +.mdui-color-light-green-accent { + background-color: #B2FF59 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-green-a100 { + background-color: #CCFF90 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-green-a200 { + background-color: #B2FF59 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-green-a400 { + background-color: #76FF03 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-light-green-a700 { + background-color: #64DD17 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-lime-accent { + background-color: #EEFF41 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-lime-a100 { + background-color: #F4FF81 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-lime-a200 { + background-color: #EEFF41 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-lime-a400 { + background-color: #C6FF00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-lime-a700 { + background-color: #AEEA00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-orange-accent { + background-color: #FFAB40 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-orange-a100 { + background-color: #FFD180 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-orange-a200 { + background-color: #FFAB40 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-orange-a400 { + background-color: #FF9100 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-orange-a700 { + background-color: #FF6D00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-pink-accent { + background-color: #FF4081 !important; + color: #ffffff !important; +} +.mdui-color-pink-a100 { + background-color: #FF80AB !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-pink-a200 { + background-color: #FF4081 !important; + color: #ffffff !important; +} +.mdui-color-pink-a400 { + background-color: #F50057 !important; + color: #ffffff !important; +} +.mdui-color-pink-a700 { + background-color: #C51162 !important; + color: #ffffff !important; +} +.mdui-color-purple-accent { + background-color: #E040FB !important; + color: #ffffff !important; +} +.mdui-color-purple-a100 { + background-color: #EA80FC !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-purple-a200 { + background-color: #E040FB !important; + color: #ffffff !important; +} +.mdui-color-purple-a400 { + background-color: #D500F9 !important; + color: #ffffff !important; +} +.mdui-color-purple-a700 { + background-color: #AA00FF !important; + color: #ffffff !important; +} +.mdui-color-red-accent { + background-color: #FF5252 !important; + color: #ffffff !important; +} +.mdui-color-red-a100 { + background-color: #FF8A80 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-red-a200 { + background-color: #FF5252 !important; + color: #ffffff !important; +} +.mdui-color-red-a400 { + background-color: #FF1744 !important; + color: #ffffff !important; +} +.mdui-color-red-a700 { + background-color: #D50000 !important; + color: #ffffff !important; +} +.mdui-color-teal-accent { + background-color: #64FFDA !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-teal-a100 { + background-color: #A7FFEB !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-teal-a200 { + background-color: #64FFDA !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-teal-a400 { + background-color: #1DE9B6 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-teal-a700 { + background-color: #00BFA5 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-yellow-accent { + background-color: #FFFF00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-yellow-a100 { + background-color: #FFFF8D !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-yellow-a200 { + background-color: #FFFF00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-yellow-a400 { + background-color: #FFEA00 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-color-yellow-a700 { + background-color: #FFD600 !important; + color: rgba(0, 0, 0, 0.87) !important; +} +/** + * .mdui-color-black + * .mdui-color-white + * .mdui-color-transparent + */ +.mdui-color-black { + color: #ffffff !important; + background-color: #000000 !important; +} +.mdui-color-white { + color: rgba(0, 0, 0, 0.87) !important; + background-color: #FFFFFF !important; +} +.mdui-color-transparent { + background-color: transparent !important; +} +/** + * .mdui-theme-primary-[color] .mdui-text-color-theme + * .mdui-theme-primary-[color] .mdui-text-color-theme-[degree] + */ +.mdui-theme-primary-amber .mdui-text-color-theme { + color: #FFC107 !important; +} +.mdui-theme-primary-amber .mdui-text-color-theme-50 { + color: #FFF8E1 !important; +} +.mdui-theme-primary-amber .mdui-text-color-theme-100 { + color: #FFECB3 !important; +} +.mdui-theme-primary-amber .mdui-text-color-theme-200 { + color: #FFE082 !important; +} +.mdui-theme-primary-amber .mdui-text-color-theme-300 { + color: #FFD54F !important; +} +.mdui-theme-primary-amber .mdui-text-color-theme-400 { + color: #FFCA28 !important; +} +.mdui-theme-primary-amber .mdui-text-color-theme-500 { + color: #FFC107 !important; +} +.mdui-theme-primary-amber .mdui-text-color-theme-600 { + color: #FFB300 !important; +} +.mdui-theme-primary-amber .mdui-text-color-theme-700 { + color: #FFA000 !important; +} +.mdui-theme-primary-amber .mdui-text-color-theme-800 { + color: #FF8F00 !important; +} +.mdui-theme-primary-amber .mdui-text-color-theme-900 { + color: #FF6F00 !important; +} +.mdui-theme-primary-blue .mdui-text-color-theme { + color: #2196F3 !important; +} +.mdui-theme-primary-blue .mdui-text-color-theme-50 { + color: #E3F2FD !important; +} +.mdui-theme-primary-blue .mdui-text-color-theme-100 { + color: #BBDEFB !important; +} +.mdui-theme-primary-blue .mdui-text-color-theme-200 { + color: #90CAF9 !important; +} +.mdui-theme-primary-blue .mdui-text-color-theme-300 { + color: #64B5F6 !important; +} +.mdui-theme-primary-blue .mdui-text-color-theme-400 { + color: #42A5F5 !important; +} +.mdui-theme-primary-blue .mdui-text-color-theme-500 { + color: #2196F3 !important; +} +.mdui-theme-primary-blue .mdui-text-color-theme-600 { + color: #1E88E5 !important; +} +.mdui-theme-primary-blue .mdui-text-color-theme-700 { + color: #1976D2 !important; +} +.mdui-theme-primary-blue .mdui-text-color-theme-800 { + color: #1565C0 !important; +} +.mdui-theme-primary-blue .mdui-text-color-theme-900 { + color: #0D47A1 !important; +} +.mdui-theme-primary-blue-grey .mdui-text-color-theme { + color: #607D8B !important; +} +.mdui-theme-primary-blue-grey .mdui-text-color-theme-50 { + color: #ECEFF1 !important; +} +.mdui-theme-primary-blue-grey .mdui-text-color-theme-100 { + color: #CFD8DC !important; +} +.mdui-theme-primary-blue-grey .mdui-text-color-theme-200 { + color: #B0BEC5 !important; +} +.mdui-theme-primary-blue-grey .mdui-text-color-theme-300 { + color: #90A4AE !important; +} +.mdui-theme-primary-blue-grey .mdui-text-color-theme-400 { + color: #78909C !important; +} +.mdui-theme-primary-blue-grey .mdui-text-color-theme-500 { + color: #607D8B !important; +} +.mdui-theme-primary-blue-grey .mdui-text-color-theme-600 { + color: #546E7A !important; +} +.mdui-theme-primary-blue-grey .mdui-text-color-theme-700 { + color: #455A64 !important; +} +.mdui-theme-primary-blue-grey .mdui-text-color-theme-800 { + color: #37474F !important; +} +.mdui-theme-primary-blue-grey .mdui-text-color-theme-900 { + color: #263238 !important; +} +.mdui-theme-primary-brown .mdui-text-color-theme { + color: #795548 !important; +} +.mdui-theme-primary-brown .mdui-text-color-theme-50 { + color: #EFEBE9 !important; +} +.mdui-theme-primary-brown .mdui-text-color-theme-100 { + color: #D7CCC8 !important; +} +.mdui-theme-primary-brown .mdui-text-color-theme-200 { + color: #BCAAA4 !important; +} +.mdui-theme-primary-brown .mdui-text-color-theme-300 { + color: #A1887F !important; +} +.mdui-theme-primary-brown .mdui-text-color-theme-400 { + color: #8D6E63 !important; +} +.mdui-theme-primary-brown .mdui-text-color-theme-500 { + color: #795548 !important; +} +.mdui-theme-primary-brown .mdui-text-color-theme-600 { + color: #6D4C41 !important; +} +.mdui-theme-primary-brown .mdui-text-color-theme-700 { + color: #5D4037 !important; +} +.mdui-theme-primary-brown .mdui-text-color-theme-800 { + color: #4E342E !important; +} +.mdui-theme-primary-brown .mdui-text-color-theme-900 { + color: #3E2723 !important; +} +.mdui-theme-primary-cyan .mdui-text-color-theme { + color: #00BCD4 !important; +} +.mdui-theme-primary-cyan .mdui-text-color-theme-50 { + color: #E0F7FA !important; +} +.mdui-theme-primary-cyan .mdui-text-color-theme-100 { + color: #B2EBF2 !important; +} +.mdui-theme-primary-cyan .mdui-text-color-theme-200 { + color: #80DEEA !important; +} +.mdui-theme-primary-cyan .mdui-text-color-theme-300 { + color: #4DD0E1 !important; +} +.mdui-theme-primary-cyan .mdui-text-color-theme-400 { + color: #26C6DA !important; +} +.mdui-theme-primary-cyan .mdui-text-color-theme-500 { + color: #00BCD4 !important; +} +.mdui-theme-primary-cyan .mdui-text-color-theme-600 { + color: #00ACC1 !important; +} +.mdui-theme-primary-cyan .mdui-text-color-theme-700 { + color: #0097A7 !important; +} +.mdui-theme-primary-cyan .mdui-text-color-theme-800 { + color: #00838F !important; +} +.mdui-theme-primary-cyan .mdui-text-color-theme-900 { + color: #006064 !important; +} +.mdui-theme-primary-deep-orange .mdui-text-color-theme { + color: #FF5722 !important; +} +.mdui-theme-primary-deep-orange .mdui-text-color-theme-50 { + color: #FBE9E7 !important; +} +.mdui-theme-primary-deep-orange .mdui-text-color-theme-100 { + color: #FFCCBC !important; +} +.mdui-theme-primary-deep-orange .mdui-text-color-theme-200 { + color: #FFAB91 !important; +} +.mdui-theme-primary-deep-orange .mdui-text-color-theme-300 { + color: #FF8A65 !important; +} +.mdui-theme-primary-deep-orange .mdui-text-color-theme-400 { + color: #FF7043 !important; +} +.mdui-theme-primary-deep-orange .mdui-text-color-theme-500 { + color: #FF5722 !important; +} +.mdui-theme-primary-deep-orange .mdui-text-color-theme-600 { + color: #F4511E !important; +} +.mdui-theme-primary-deep-orange .mdui-text-color-theme-700 { + color: #E64A19 !important; +} +.mdui-theme-primary-deep-orange .mdui-text-color-theme-800 { + color: #D84315 !important; +} +.mdui-theme-primary-deep-orange .mdui-text-color-theme-900 { + color: #BF360C !important; +} +.mdui-theme-primary-deep-purple .mdui-text-color-theme { + color: #673AB7 !important; +} +.mdui-theme-primary-deep-purple .mdui-text-color-theme-50 { + color: #EDE7F6 !important; +} +.mdui-theme-primary-deep-purple .mdui-text-color-theme-100 { + color: #D1C4E9 !important; +} +.mdui-theme-primary-deep-purple .mdui-text-color-theme-200 { + color: #B39DDB !important; +} +.mdui-theme-primary-deep-purple .mdui-text-color-theme-300 { + color: #9575CD !important; +} +.mdui-theme-primary-deep-purple .mdui-text-color-theme-400 { + color: #7E57C2 !important; +} +.mdui-theme-primary-deep-purple .mdui-text-color-theme-500 { + color: #673AB7 !important; +} +.mdui-theme-primary-deep-purple .mdui-text-color-theme-600 { + color: #5E35B1 !important; +} +.mdui-theme-primary-deep-purple .mdui-text-color-theme-700 { + color: #512DA8 !important; +} +.mdui-theme-primary-deep-purple .mdui-text-color-theme-800 { + color: #4527A0 !important; +} +.mdui-theme-primary-deep-purple .mdui-text-color-theme-900 { + color: #311B92 !important; +} +.mdui-theme-primary-green .mdui-text-color-theme { + color: #4CAF50 !important; +} +.mdui-theme-primary-green .mdui-text-color-theme-50 { + color: #E8F5E9 !important; +} +.mdui-theme-primary-green .mdui-text-color-theme-100 { + color: #C8E6C9 !important; +} +.mdui-theme-primary-green .mdui-text-color-theme-200 { + color: #A5D6A7 !important; +} +.mdui-theme-primary-green .mdui-text-color-theme-300 { + color: #81C784 !important; +} +.mdui-theme-primary-green .mdui-text-color-theme-400 { + color: #66BB6A !important; +} +.mdui-theme-primary-green .mdui-text-color-theme-500 { + color: #4CAF50 !important; +} +.mdui-theme-primary-green .mdui-text-color-theme-600 { + color: #43A047 !important; +} +.mdui-theme-primary-green .mdui-text-color-theme-700 { + color: #388E3C !important; +} +.mdui-theme-primary-green .mdui-text-color-theme-800 { + color: #2E7D32 !important; +} +.mdui-theme-primary-green .mdui-text-color-theme-900 { + color: #1B5E20 !important; +} +.mdui-theme-primary-grey .mdui-text-color-theme { + color: #9E9E9E !important; +} +.mdui-theme-primary-grey .mdui-text-color-theme-50 { + color: #FAFAFA !important; +} +.mdui-theme-primary-grey .mdui-text-color-theme-100 { + color: #F5F5F5 !important; +} +.mdui-theme-primary-grey .mdui-text-color-theme-200 { + color: #EEEEEE !important; +} +.mdui-theme-primary-grey .mdui-text-color-theme-300 { + color: #E0E0E0 !important; +} +.mdui-theme-primary-grey .mdui-text-color-theme-400 { + color: #BDBDBD !important; +} +.mdui-theme-primary-grey .mdui-text-color-theme-500 { + color: #9E9E9E !important; +} +.mdui-theme-primary-grey .mdui-text-color-theme-600 { + color: #757575 !important; +} +.mdui-theme-primary-grey .mdui-text-color-theme-700 { + color: #616161 !important; +} +.mdui-theme-primary-grey .mdui-text-color-theme-800 { + color: #424242 !important; +} +.mdui-theme-primary-grey .mdui-text-color-theme-900 { + color: #212121 !important; +} +.mdui-theme-primary-indigo .mdui-text-color-theme { + color: #3F51B5 !important; +} +.mdui-theme-primary-indigo .mdui-text-color-theme-50 { + color: #E8EAF6 !important; +} +.mdui-theme-primary-indigo .mdui-text-color-theme-100 { + color: #C5CAE9 !important; +} +.mdui-theme-primary-indigo .mdui-text-color-theme-200 { + color: #9FA8DA !important; +} +.mdui-theme-primary-indigo .mdui-text-color-theme-300 { + color: #7986CB !important; +} +.mdui-theme-primary-indigo .mdui-text-color-theme-400 { + color: #5C6BC0 !important; +} +.mdui-theme-primary-indigo .mdui-text-color-theme-500 { + color: #3F51B5 !important; +} +.mdui-theme-primary-indigo .mdui-text-color-theme-600 { + color: #3949AB !important; +} +.mdui-theme-primary-indigo .mdui-text-color-theme-700 { + color: #303F9F !important; +} +.mdui-theme-primary-indigo .mdui-text-color-theme-800 { + color: #283593 !important; +} +.mdui-theme-primary-indigo .mdui-text-color-theme-900 { + color: #1A237E !important; +} +.mdui-theme-primary-light-blue .mdui-text-color-theme { + color: #03A9F4 !important; +} +.mdui-theme-primary-light-blue .mdui-text-color-theme-50 { + color: #E1F5FE !important; +} +.mdui-theme-primary-light-blue .mdui-text-color-theme-100 { + color: #B3E5FC !important; +} +.mdui-theme-primary-light-blue .mdui-text-color-theme-200 { + color: #81D4FA !important; +} +.mdui-theme-primary-light-blue .mdui-text-color-theme-300 { + color: #4FC3F7 !important; +} +.mdui-theme-primary-light-blue .mdui-text-color-theme-400 { + color: #29B6F6 !important; +} +.mdui-theme-primary-light-blue .mdui-text-color-theme-500 { + color: #03A9F4 !important; +} +.mdui-theme-primary-light-blue .mdui-text-color-theme-600 { + color: #039BE5 !important; +} +.mdui-theme-primary-light-blue .mdui-text-color-theme-700 { + color: #0288D1 !important; +} +.mdui-theme-primary-light-blue .mdui-text-color-theme-800 { + color: #0277BD !important; +} +.mdui-theme-primary-light-blue .mdui-text-color-theme-900 { + color: #01579B !important; +} +.mdui-theme-primary-light-green .mdui-text-color-theme { + color: #8BC34A !important; +} +.mdui-theme-primary-light-green .mdui-text-color-theme-50 { + color: #F1F8E9 !important; +} +.mdui-theme-primary-light-green .mdui-text-color-theme-100 { + color: #DCEDC8 !important; +} +.mdui-theme-primary-light-green .mdui-text-color-theme-200 { + color: #C5E1A5 !important; +} +.mdui-theme-primary-light-green .mdui-text-color-theme-300 { + color: #AED581 !important; +} +.mdui-theme-primary-light-green .mdui-text-color-theme-400 { + color: #9CCC65 !important; +} +.mdui-theme-primary-light-green .mdui-text-color-theme-500 { + color: #8BC34A !important; +} +.mdui-theme-primary-light-green .mdui-text-color-theme-600 { + color: #7CB342 !important; +} +.mdui-theme-primary-light-green .mdui-text-color-theme-700 { + color: #689F38 !important; +} +.mdui-theme-primary-light-green .mdui-text-color-theme-800 { + color: #558B2F !important; +} +.mdui-theme-primary-light-green .mdui-text-color-theme-900 { + color: #33691E !important; +} +.mdui-theme-primary-lime .mdui-text-color-theme { + color: #CDDC39 !important; +} +.mdui-theme-primary-lime .mdui-text-color-theme-50 { + color: #F9FBE7 !important; +} +.mdui-theme-primary-lime .mdui-text-color-theme-100 { + color: #F0F4C3 !important; +} +.mdui-theme-primary-lime .mdui-text-color-theme-200 { + color: #E6EE9C !important; +} +.mdui-theme-primary-lime .mdui-text-color-theme-300 { + color: #DCE775 !important; +} +.mdui-theme-primary-lime .mdui-text-color-theme-400 { + color: #D4E157 !important; +} +.mdui-theme-primary-lime .mdui-text-color-theme-500 { + color: #CDDC39 !important; +} +.mdui-theme-primary-lime .mdui-text-color-theme-600 { + color: #C0CA33 !important; +} +.mdui-theme-primary-lime .mdui-text-color-theme-700 { + color: #AFB42B !important; +} +.mdui-theme-primary-lime .mdui-text-color-theme-800 { + color: #9E9D24 !important; +} +.mdui-theme-primary-lime .mdui-text-color-theme-900 { + color: #827717 !important; +} +.mdui-theme-primary-orange .mdui-text-color-theme { + color: #FF9800 !important; +} +.mdui-theme-primary-orange .mdui-text-color-theme-50 { + color: #FFF3E0 !important; +} +.mdui-theme-primary-orange .mdui-text-color-theme-100 { + color: #FFE0B2 !important; +} +.mdui-theme-primary-orange .mdui-text-color-theme-200 { + color: #FFCC80 !important; +} +.mdui-theme-primary-orange .mdui-text-color-theme-300 { + color: #FFB74D !important; +} +.mdui-theme-primary-orange .mdui-text-color-theme-400 { + color: #FFA726 !important; +} +.mdui-theme-primary-orange .mdui-text-color-theme-500 { + color: #FF9800 !important; +} +.mdui-theme-primary-orange .mdui-text-color-theme-600 { + color: #FB8C00 !important; +} +.mdui-theme-primary-orange .mdui-text-color-theme-700 { + color: #F57C00 !important; +} +.mdui-theme-primary-orange .mdui-text-color-theme-800 { + color: #EF6C00 !important; +} +.mdui-theme-primary-orange .mdui-text-color-theme-900 { + color: #E65100 !important; +} +.mdui-theme-primary-pink .mdui-text-color-theme { + color: #E91E63 !important; +} +.mdui-theme-primary-pink .mdui-text-color-theme-50 { + color: #FCE4EC !important; +} +.mdui-theme-primary-pink .mdui-text-color-theme-100 { + color: #F8BBD0 !important; +} +.mdui-theme-primary-pink .mdui-text-color-theme-200 { + color: #F48FB1 !important; +} +.mdui-theme-primary-pink .mdui-text-color-theme-300 { + color: #F06292 !important; +} +.mdui-theme-primary-pink .mdui-text-color-theme-400 { + color: #EC407A !important; +} +.mdui-theme-primary-pink .mdui-text-color-theme-500 { + color: #E91E63 !important; +} +.mdui-theme-primary-pink .mdui-text-color-theme-600 { + color: #D81B60 !important; +} +.mdui-theme-primary-pink .mdui-text-color-theme-700 { + color: #C2185B !important; +} +.mdui-theme-primary-pink .mdui-text-color-theme-800 { + color: #AD1457 !important; +} +.mdui-theme-primary-pink .mdui-text-color-theme-900 { + color: #880E4F !important; +} +.mdui-theme-primary-purple .mdui-text-color-theme { + color: #9C27B0 !important; +} +.mdui-theme-primary-purple .mdui-text-color-theme-50 { + color: #F3E5F5 !important; +} +.mdui-theme-primary-purple .mdui-text-color-theme-100 { + color: #E1BEE7 !important; +} +.mdui-theme-primary-purple .mdui-text-color-theme-200 { + color: #CE93D8 !important; +} +.mdui-theme-primary-purple .mdui-text-color-theme-300 { + color: #BA68C8 !important; +} +.mdui-theme-primary-purple .mdui-text-color-theme-400 { + color: #AB47BC !important; +} +.mdui-theme-primary-purple .mdui-text-color-theme-500 { + color: #9C27B0 !important; +} +.mdui-theme-primary-purple .mdui-text-color-theme-600 { + color: #8E24AA !important; +} +.mdui-theme-primary-purple .mdui-text-color-theme-700 { + color: #7B1FA2 !important; +} +.mdui-theme-primary-purple .mdui-text-color-theme-800 { + color: #6A1B9A !important; +} +.mdui-theme-primary-purple .mdui-text-color-theme-900 { + color: #4A148C !important; +} +.mdui-theme-primary-red .mdui-text-color-theme { + color: #F44336 !important; +} +.mdui-theme-primary-red .mdui-text-color-theme-50 { + color: #FFEBEE !important; +} +.mdui-theme-primary-red .mdui-text-color-theme-100 { + color: #FFCDD2 !important; +} +.mdui-theme-primary-red .mdui-text-color-theme-200 { + color: #EF9A9A !important; +} +.mdui-theme-primary-red .mdui-text-color-theme-300 { + color: #E57373 !important; +} +.mdui-theme-primary-red .mdui-text-color-theme-400 { + color: #EF5350 !important; +} +.mdui-theme-primary-red .mdui-text-color-theme-500 { + color: #F44336 !important; +} +.mdui-theme-primary-red .mdui-text-color-theme-600 { + color: #E53935 !important; +} +.mdui-theme-primary-red .mdui-text-color-theme-700 { + color: #D32F2F !important; +} +.mdui-theme-primary-red .mdui-text-color-theme-800 { + color: #C62828 !important; +} +.mdui-theme-primary-red .mdui-text-color-theme-900 { + color: #B71C1C !important; +} +.mdui-theme-primary-teal .mdui-text-color-theme { + color: #009688 !important; +} +.mdui-theme-primary-teal .mdui-text-color-theme-50 { + color: #E0F2F1 !important; +} +.mdui-theme-primary-teal .mdui-text-color-theme-100 { + color: #B2DFDB !important; +} +.mdui-theme-primary-teal .mdui-text-color-theme-200 { + color: #80CBC4 !important; +} +.mdui-theme-primary-teal .mdui-text-color-theme-300 { + color: #4DB6AC !important; +} +.mdui-theme-primary-teal .mdui-text-color-theme-400 { + color: #26A69A !important; +} +.mdui-theme-primary-teal .mdui-text-color-theme-500 { + color: #009688 !important; +} +.mdui-theme-primary-teal .mdui-text-color-theme-600 { + color: #00897B !important; +} +.mdui-theme-primary-teal .mdui-text-color-theme-700 { + color: #00796B !important; +} +.mdui-theme-primary-teal .mdui-text-color-theme-800 { + color: #00695C !important; +} +.mdui-theme-primary-teal .mdui-text-color-theme-900 { + color: #004D40 !important; +} +.mdui-theme-primary-yellow .mdui-text-color-theme { + color: #FFEB3B !important; +} +.mdui-theme-primary-yellow .mdui-text-color-theme-50 { + color: #FFFDE7 !important; +} +.mdui-theme-primary-yellow .mdui-text-color-theme-100 { + color: #FFF9C4 !important; +} +.mdui-theme-primary-yellow .mdui-text-color-theme-200 { + color: #FFF59D !important; +} +.mdui-theme-primary-yellow .mdui-text-color-theme-300 { + color: #FFF176 !important; +} +.mdui-theme-primary-yellow .mdui-text-color-theme-400 { + color: #FFEE58 !important; +} +.mdui-theme-primary-yellow .mdui-text-color-theme-500 { + color: #FFEB3B !important; +} +.mdui-theme-primary-yellow .mdui-text-color-theme-600 { + color: #FDD835 !important; +} +.mdui-theme-primary-yellow .mdui-text-color-theme-700 { + color: #FBC02D !important; +} +.mdui-theme-primary-yellow .mdui-text-color-theme-800 { + color: #F9A825 !important; +} +.mdui-theme-primary-yellow .mdui-text-color-theme-900 { + color: #F57F17 !important; +} +/** + * .mdui-theme-accent-[color] .mdui-text-color-theme-accent + * .mdui-theme-accent-[color] .mdui-text-color-theme-[degree] + */ +.mdui-theme-accent-amber .mdui-text-color-theme-accent { + color: #FFD740 !important; +} +.mdui-theme-accent-amber .mdui-text-color-theme-a100 { + color: #FFE57F !important; +} +.mdui-theme-accent-amber .mdui-text-color-theme-a200 { + color: #FFD740 !important; +} +.mdui-theme-accent-amber .mdui-text-color-theme-a400 { + color: #FFC400 !important; +} +.mdui-theme-accent-amber .mdui-text-color-theme-a700 { + color: #FFAB00 !important; +} +.mdui-theme-accent-blue .mdui-text-color-theme-accent { + color: #448AFF !important; +} +.mdui-theme-accent-blue .mdui-text-color-theme-a100 { + color: #82B1FF !important; +} +.mdui-theme-accent-blue .mdui-text-color-theme-a200 { + color: #448AFF !important; +} +.mdui-theme-accent-blue .mdui-text-color-theme-a400 { + color: #2979FF !important; +} +.mdui-theme-accent-blue .mdui-text-color-theme-a700 { + color: #2962FF !important; +} +.mdui-theme-accent-cyan .mdui-text-color-theme-accent { + color: #18FFFF !important; +} +.mdui-theme-accent-cyan .mdui-text-color-theme-a100 { + color: #84FFFF !important; +} +.mdui-theme-accent-cyan .mdui-text-color-theme-a200 { + color: #18FFFF !important; +} +.mdui-theme-accent-cyan .mdui-text-color-theme-a400 { + color: #00E5FF !important; +} +.mdui-theme-accent-cyan .mdui-text-color-theme-a700 { + color: #00B8D4 !important; +} +.mdui-theme-accent-deep-orange .mdui-text-color-theme-accent { + color: #FF6E40 !important; +} +.mdui-theme-accent-deep-orange .mdui-text-color-theme-a100 { + color: #FF9E80 !important; +} +.mdui-theme-accent-deep-orange .mdui-text-color-theme-a200 { + color: #FF6E40 !important; +} +.mdui-theme-accent-deep-orange .mdui-text-color-theme-a400 { + color: #FF3D00 !important; +} +.mdui-theme-accent-deep-orange .mdui-text-color-theme-a700 { + color: #DD2C00 !important; +} +.mdui-theme-accent-deep-purple .mdui-text-color-theme-accent { + color: #7C4DFF !important; +} +.mdui-theme-accent-deep-purple .mdui-text-color-theme-a100 { + color: #B388FF !important; +} +.mdui-theme-accent-deep-purple .mdui-text-color-theme-a200 { + color: #7C4DFF !important; +} +.mdui-theme-accent-deep-purple .mdui-text-color-theme-a400 { + color: #651FFF !important; +} +.mdui-theme-accent-deep-purple .mdui-text-color-theme-a700 { + color: #6200EA !important; +} +.mdui-theme-accent-green .mdui-text-color-theme-accent { + color: #69F0AE !important; +} +.mdui-theme-accent-green .mdui-text-color-theme-a100 { + color: #B9F6CA !important; +} +.mdui-theme-accent-green .mdui-text-color-theme-a200 { + color: #69F0AE !important; +} +.mdui-theme-accent-green .mdui-text-color-theme-a400 { + color: #00E676 !important; +} +.mdui-theme-accent-green .mdui-text-color-theme-a700 { + color: #00C853 !important; +} +.mdui-theme-accent-indigo .mdui-text-color-theme-accent { + color: #536DFE !important; +} +.mdui-theme-accent-indigo .mdui-text-color-theme-a100 { + color: #8C9EFF !important; +} +.mdui-theme-accent-indigo .mdui-text-color-theme-a200 { + color: #536DFE !important; +} +.mdui-theme-accent-indigo .mdui-text-color-theme-a400 { + color: #3D5AFE !important; +} +.mdui-theme-accent-indigo .mdui-text-color-theme-a700 { + color: #304FFE !important; +} +.mdui-theme-accent-light-blue .mdui-text-color-theme-accent { + color: #40C4FF !important; +} +.mdui-theme-accent-light-blue .mdui-text-color-theme-a100 { + color: #80D8FF !important; +} +.mdui-theme-accent-light-blue .mdui-text-color-theme-a200 { + color: #40C4FF !important; +} +.mdui-theme-accent-light-blue .mdui-text-color-theme-a400 { + color: #00B0FF !important; +} +.mdui-theme-accent-light-blue .mdui-text-color-theme-a700 { + color: #0091EA !important; +} +.mdui-theme-accent-light-green .mdui-text-color-theme-accent { + color: #B2FF59 !important; +} +.mdui-theme-accent-light-green .mdui-text-color-theme-a100 { + color: #CCFF90 !important; +} +.mdui-theme-accent-light-green .mdui-text-color-theme-a200 { + color: #B2FF59 !important; +} +.mdui-theme-accent-light-green .mdui-text-color-theme-a400 { + color: #76FF03 !important; +} +.mdui-theme-accent-light-green .mdui-text-color-theme-a700 { + color: #64DD17 !important; +} +.mdui-theme-accent-lime .mdui-text-color-theme-accent { + color: #EEFF41 !important; +} +.mdui-theme-accent-lime .mdui-text-color-theme-a100 { + color: #F4FF81 !important; +} +.mdui-theme-accent-lime .mdui-text-color-theme-a200 { + color: #EEFF41 !important; +} +.mdui-theme-accent-lime .mdui-text-color-theme-a400 { + color: #C6FF00 !important; +} +.mdui-theme-accent-lime .mdui-text-color-theme-a700 { + color: #AEEA00 !important; +} +.mdui-theme-accent-orange .mdui-text-color-theme-accent { + color: #FFAB40 !important; +} +.mdui-theme-accent-orange .mdui-text-color-theme-a100 { + color: #FFD180 !important; +} +.mdui-theme-accent-orange .mdui-text-color-theme-a200 { + color: #FFAB40 !important; +} +.mdui-theme-accent-orange .mdui-text-color-theme-a400 { + color: #FF9100 !important; +} +.mdui-theme-accent-orange .mdui-text-color-theme-a700 { + color: #FF6D00 !important; +} +.mdui-theme-accent-pink .mdui-text-color-theme-accent { + color: #FF4081 !important; +} +.mdui-theme-accent-pink .mdui-text-color-theme-a100 { + color: #FF80AB !important; +} +.mdui-theme-accent-pink .mdui-text-color-theme-a200 { + color: #FF4081 !important; +} +.mdui-theme-accent-pink .mdui-text-color-theme-a400 { + color: #F50057 !important; +} +.mdui-theme-accent-pink .mdui-text-color-theme-a700 { + color: #C51162 !important; +} +.mdui-theme-accent-purple .mdui-text-color-theme-accent { + color: #E040FB !important; +} +.mdui-theme-accent-purple .mdui-text-color-theme-a100 { + color: #EA80FC !important; +} +.mdui-theme-accent-purple .mdui-text-color-theme-a200 { + color: #E040FB !important; +} +.mdui-theme-accent-purple .mdui-text-color-theme-a400 { + color: #D500F9 !important; +} +.mdui-theme-accent-purple .mdui-text-color-theme-a700 { + color: #AA00FF !important; +} +.mdui-theme-accent-red .mdui-text-color-theme-accent { + color: #FF5252 !important; +} +.mdui-theme-accent-red .mdui-text-color-theme-a100 { + color: #FF8A80 !important; +} +.mdui-theme-accent-red .mdui-text-color-theme-a200 { + color: #FF5252 !important; +} +.mdui-theme-accent-red .mdui-text-color-theme-a400 { + color: #FF1744 !important; +} +.mdui-theme-accent-red .mdui-text-color-theme-a700 { + color: #D50000 !important; +} +.mdui-theme-accent-teal .mdui-text-color-theme-accent { + color: #64FFDA !important; +} +.mdui-theme-accent-teal .mdui-text-color-theme-a100 { + color: #A7FFEB !important; +} +.mdui-theme-accent-teal .mdui-text-color-theme-a200 { + color: #64FFDA !important; +} +.mdui-theme-accent-teal .mdui-text-color-theme-a400 { + color: #1DE9B6 !important; +} +.mdui-theme-accent-teal .mdui-text-color-theme-a700 { + color: #00BFA5 !important; +} +.mdui-theme-accent-yellow .mdui-text-color-theme-accent { + color: #FFFF00 !important; +} +.mdui-theme-accent-yellow .mdui-text-color-theme-a100 { + color: #FFFF8D !important; +} +.mdui-theme-accent-yellow .mdui-text-color-theme-a200 { + color: #FFFF00 !important; +} +.mdui-theme-accent-yellow .mdui-text-color-theme-a400 { + color: #FFEA00 !important; +} +.mdui-theme-accent-yellow .mdui-text-color-theme-a700 { + color: #FFD600 !important; +} +/** + * .mdui-text-color-[color] + * .mdui-text-color-[color]-[degree] + */ +.mdui-text-color-amber { + color: #FFC107 !important; +} +.mdui-text-color-amber-50 { + color: #FFF8E1 !important; +} +.mdui-text-color-amber-100 { + color: #FFECB3 !important; +} +.mdui-text-color-amber-200 { + color: #FFE082 !important; +} +.mdui-text-color-amber-300 { + color: #FFD54F !important; +} +.mdui-text-color-amber-400 { + color: #FFCA28 !important; +} +.mdui-text-color-amber-500 { + color: #FFC107 !important; +} +.mdui-text-color-amber-600 { + color: #FFB300 !important; +} +.mdui-text-color-amber-700 { + color: #FFA000 !important; +} +.mdui-text-color-amber-800 { + color: #FF8F00 !important; +} +.mdui-text-color-amber-900 { + color: #FF6F00 !important; +} +.mdui-text-color-blue { + color: #2196F3 !important; +} +.mdui-text-color-blue-50 { + color: #E3F2FD !important; +} +.mdui-text-color-blue-100 { + color: #BBDEFB !important; +} +.mdui-text-color-blue-200 { + color: #90CAF9 !important; +} +.mdui-text-color-blue-300 { + color: #64B5F6 !important; +} +.mdui-text-color-blue-400 { + color: #42A5F5 !important; +} +.mdui-text-color-blue-500 { + color: #2196F3 !important; +} +.mdui-text-color-blue-600 { + color: #1E88E5 !important; +} +.mdui-text-color-blue-700 { + color: #1976D2 !important; +} +.mdui-text-color-blue-800 { + color: #1565C0 !important; +} +.mdui-text-color-blue-900 { + color: #0D47A1 !important; +} +.mdui-text-color-blue-grey { + color: #607D8B !important; +} +.mdui-text-color-blue-grey-50 { + color: #ECEFF1 !important; +} +.mdui-text-color-blue-grey-100 { + color: #CFD8DC !important; +} +.mdui-text-color-blue-grey-200 { + color: #B0BEC5 !important; +} +.mdui-text-color-blue-grey-300 { + color: #90A4AE !important; +} +.mdui-text-color-blue-grey-400 { + color: #78909C !important; +} +.mdui-text-color-blue-grey-500 { + color: #607D8B !important; +} +.mdui-text-color-blue-grey-600 { + color: #546E7A !important; +} +.mdui-text-color-blue-grey-700 { + color: #455A64 !important; +} +.mdui-text-color-blue-grey-800 { + color: #37474F !important; +} +.mdui-text-color-blue-grey-900 { + color: #263238 !important; +} +.mdui-text-color-brown { + color: #795548 !important; +} +.mdui-text-color-brown-50 { + color: #EFEBE9 !important; +} +.mdui-text-color-brown-100 { + color: #D7CCC8 !important; +} +.mdui-text-color-brown-200 { + color: #BCAAA4 !important; +} +.mdui-text-color-brown-300 { + color: #A1887F !important; +} +.mdui-text-color-brown-400 { + color: #8D6E63 !important; +} +.mdui-text-color-brown-500 { + color: #795548 !important; +} +.mdui-text-color-brown-600 { + color: #6D4C41 !important; +} +.mdui-text-color-brown-700 { + color: #5D4037 !important; +} +.mdui-text-color-brown-800 { + color: #4E342E !important; +} +.mdui-text-color-brown-900 { + color: #3E2723 !important; +} +.mdui-text-color-cyan { + color: #00BCD4 !important; +} +.mdui-text-color-cyan-50 { + color: #E0F7FA !important; +} +.mdui-text-color-cyan-100 { + color: #B2EBF2 !important; +} +.mdui-text-color-cyan-200 { + color: #80DEEA !important; +} +.mdui-text-color-cyan-300 { + color: #4DD0E1 !important; +} +.mdui-text-color-cyan-400 { + color: #26C6DA !important; +} +.mdui-text-color-cyan-500 { + color: #00BCD4 !important; +} +.mdui-text-color-cyan-600 { + color: #00ACC1 !important; +} +.mdui-text-color-cyan-700 { + color: #0097A7 !important; +} +.mdui-text-color-cyan-800 { + color: #00838F !important; +} +.mdui-text-color-cyan-900 { + color: #006064 !important; +} +.mdui-text-color-deep-orange { + color: #FF5722 !important; +} +.mdui-text-color-deep-orange-50 { + color: #FBE9E7 !important; +} +.mdui-text-color-deep-orange-100 { + color: #FFCCBC !important; +} +.mdui-text-color-deep-orange-200 { + color: #FFAB91 !important; +} +.mdui-text-color-deep-orange-300 { + color: #FF8A65 !important; +} +.mdui-text-color-deep-orange-400 { + color: #FF7043 !important; +} +.mdui-text-color-deep-orange-500 { + color: #FF5722 !important; +} +.mdui-text-color-deep-orange-600 { + color: #F4511E !important; +} +.mdui-text-color-deep-orange-700 { + color: #E64A19 !important; +} +.mdui-text-color-deep-orange-800 { + color: #D84315 !important; +} +.mdui-text-color-deep-orange-900 { + color: #BF360C !important; +} +.mdui-text-color-deep-purple { + color: #673AB7 !important; +} +.mdui-text-color-deep-purple-50 { + color: #EDE7F6 !important; +} +.mdui-text-color-deep-purple-100 { + color: #D1C4E9 !important; +} +.mdui-text-color-deep-purple-200 { + color: #B39DDB !important; +} +.mdui-text-color-deep-purple-300 { + color: #9575CD !important; +} +.mdui-text-color-deep-purple-400 { + color: #7E57C2 !important; +} +.mdui-text-color-deep-purple-500 { + color: #673AB7 !important; +} +.mdui-text-color-deep-purple-600 { + color: #5E35B1 !important; +} +.mdui-text-color-deep-purple-700 { + color: #512DA8 !important; +} +.mdui-text-color-deep-purple-800 { + color: #4527A0 !important; +} +.mdui-text-color-deep-purple-900 { + color: #311B92 !important; +} +.mdui-text-color-green { + color: #4CAF50 !important; +} +.mdui-text-color-green-50 { + color: #E8F5E9 !important; +} +.mdui-text-color-green-100 { + color: #C8E6C9 !important; +} +.mdui-text-color-green-200 { + color: #A5D6A7 !important; +} +.mdui-text-color-green-300 { + color: #81C784 !important; +} +.mdui-text-color-green-400 { + color: #66BB6A !important; +} +.mdui-text-color-green-500 { + color: #4CAF50 !important; +} +.mdui-text-color-green-600 { + color: #43A047 !important; +} +.mdui-text-color-green-700 { + color: #388E3C !important; +} +.mdui-text-color-green-800 { + color: #2E7D32 !important; +} +.mdui-text-color-green-900 { + color: #1B5E20 !important; +} +.mdui-text-color-grey { + color: #9E9E9E !important; +} +.mdui-text-color-grey-50 { + color: #FAFAFA !important; +} +.mdui-text-color-grey-100 { + color: #F5F5F5 !important; +} +.mdui-text-color-grey-200 { + color: #EEEEEE !important; +} +.mdui-text-color-grey-300 { + color: #E0E0E0 !important; +} +.mdui-text-color-grey-400 { + color: #BDBDBD !important; +} +.mdui-text-color-grey-500 { + color: #9E9E9E !important; +} +.mdui-text-color-grey-600 { + color: #757575 !important; +} +.mdui-text-color-grey-700 { + color: #616161 !important; +} +.mdui-text-color-grey-800 { + color: #424242 !important; +} +.mdui-text-color-grey-900 { + color: #212121 !important; +} +.mdui-text-color-indigo { + color: #3F51B5 !important; +} +.mdui-text-color-indigo-50 { + color: #E8EAF6 !important; +} +.mdui-text-color-indigo-100 { + color: #C5CAE9 !important; +} +.mdui-text-color-indigo-200 { + color: #9FA8DA !important; +} +.mdui-text-color-indigo-300 { + color: #7986CB !important; +} +.mdui-text-color-indigo-400 { + color: #5C6BC0 !important; +} +.mdui-text-color-indigo-500 { + color: #3F51B5 !important; +} +.mdui-text-color-indigo-600 { + color: #3949AB !important; +} +.mdui-text-color-indigo-700 { + color: #303F9F !important; +} +.mdui-text-color-indigo-800 { + color: #283593 !important; +} +.mdui-text-color-indigo-900 { + color: #1A237E !important; +} +.mdui-text-color-light-blue { + color: #03A9F4 !important; +} +.mdui-text-color-light-blue-50 { + color: #E1F5FE !important; +} +.mdui-text-color-light-blue-100 { + color: #B3E5FC !important; +} +.mdui-text-color-light-blue-200 { + color: #81D4FA !important; +} +.mdui-text-color-light-blue-300 { + color: #4FC3F7 !important; +} +.mdui-text-color-light-blue-400 { + color: #29B6F6 !important; +} +.mdui-text-color-light-blue-500 { + color: #03A9F4 !important; +} +.mdui-text-color-light-blue-600 { + color: #039BE5 !important; +} +.mdui-text-color-light-blue-700 { + color: #0288D1 !important; +} +.mdui-text-color-light-blue-800 { + color: #0277BD !important; +} +.mdui-text-color-light-blue-900 { + color: #01579B !important; +} +.mdui-text-color-light-green { + color: #8BC34A !important; +} +.mdui-text-color-light-green-50 { + color: #F1F8E9 !important; +} +.mdui-text-color-light-green-100 { + color: #DCEDC8 !important; +} +.mdui-text-color-light-green-200 { + color: #C5E1A5 !important; +} +.mdui-text-color-light-green-300 { + color: #AED581 !important; +} +.mdui-text-color-light-green-400 { + color: #9CCC65 !important; +} +.mdui-text-color-light-green-500 { + color: #8BC34A !important; +} +.mdui-text-color-light-green-600 { + color: #7CB342 !important; +} +.mdui-text-color-light-green-700 { + color: #689F38 !important; +} +.mdui-text-color-light-green-800 { + color: #558B2F !important; +} +.mdui-text-color-light-green-900 { + color: #33691E !important; +} +.mdui-text-color-lime { + color: #CDDC39 !important; +} +.mdui-text-color-lime-50 { + color: #F9FBE7 !important; +} +.mdui-text-color-lime-100 { + color: #F0F4C3 !important; +} +.mdui-text-color-lime-200 { + color: #E6EE9C !important; +} +.mdui-text-color-lime-300 { + color: #DCE775 !important; +} +.mdui-text-color-lime-400 { + color: #D4E157 !important; +} +.mdui-text-color-lime-500 { + color: #CDDC39 !important; +} +.mdui-text-color-lime-600 { + color: #C0CA33 !important; +} +.mdui-text-color-lime-700 { + color: #AFB42B !important; +} +.mdui-text-color-lime-800 { + color: #9E9D24 !important; +} +.mdui-text-color-lime-900 { + color: #827717 !important; +} +.mdui-text-color-orange { + color: #FF9800 !important; +} +.mdui-text-color-orange-50 { + color: #FFF3E0 !important; +} +.mdui-text-color-orange-100 { + color: #FFE0B2 !important; +} +.mdui-text-color-orange-200 { + color: #FFCC80 !important; +} +.mdui-text-color-orange-300 { + color: #FFB74D !important; +} +.mdui-text-color-orange-400 { + color: #FFA726 !important; +} +.mdui-text-color-orange-500 { + color: #FF9800 !important; +} +.mdui-text-color-orange-600 { + color: #FB8C00 !important; +} +.mdui-text-color-orange-700 { + color: #F57C00 !important; +} +.mdui-text-color-orange-800 { + color: #EF6C00 !important; +} +.mdui-text-color-orange-900 { + color: #E65100 !important; +} +.mdui-text-color-pink { + color: #E91E63 !important; +} +.mdui-text-color-pink-50 { + color: #FCE4EC !important; +} +.mdui-text-color-pink-100 { + color: #F8BBD0 !important; +} +.mdui-text-color-pink-200 { + color: #F48FB1 !important; +} +.mdui-text-color-pink-300 { + color: #F06292 !important; +} +.mdui-text-color-pink-400 { + color: #EC407A !important; +} +.mdui-text-color-pink-500 { + color: #E91E63 !important; +} +.mdui-text-color-pink-600 { + color: #D81B60 !important; +} +.mdui-text-color-pink-700 { + color: #C2185B !important; +} +.mdui-text-color-pink-800 { + color: #AD1457 !important; +} +.mdui-text-color-pink-900 { + color: #880E4F !important; +} +.mdui-text-color-purple { + color: #9C27B0 !important; +} +.mdui-text-color-purple-50 { + color: #F3E5F5 !important; +} +.mdui-text-color-purple-100 { + color: #E1BEE7 !important; +} +.mdui-text-color-purple-200 { + color: #CE93D8 !important; +} +.mdui-text-color-purple-300 { + color: #BA68C8 !important; +} +.mdui-text-color-purple-400 { + color: #AB47BC !important; +} +.mdui-text-color-purple-500 { + color: #9C27B0 !important; +} +.mdui-text-color-purple-600 { + color: #8E24AA !important; +} +.mdui-text-color-purple-700 { + color: #7B1FA2 !important; +} +.mdui-text-color-purple-800 { + color: #6A1B9A !important; +} +.mdui-text-color-purple-900 { + color: #4A148C !important; +} +.mdui-text-color-red { + color: #F44336 !important; +} +.mdui-text-color-red-50 { + color: #FFEBEE !important; +} +.mdui-text-color-red-100 { + color: #FFCDD2 !important; +} +.mdui-text-color-red-200 { + color: #EF9A9A !important; +} +.mdui-text-color-red-300 { + color: #E57373 !important; +} +.mdui-text-color-red-400 { + color: #EF5350 !important; +} +.mdui-text-color-red-500 { + color: #F44336 !important; +} +.mdui-text-color-red-600 { + color: #E53935 !important; +} +.mdui-text-color-red-700 { + color: #D32F2F !important; +} +.mdui-text-color-red-800 { + color: #C62828 !important; +} +.mdui-text-color-red-900 { + color: #B71C1C !important; +} +.mdui-text-color-teal { + color: #009688 !important; +} +.mdui-text-color-teal-50 { + color: #E0F2F1 !important; +} +.mdui-text-color-teal-100 { + color: #B2DFDB !important; +} +.mdui-text-color-teal-200 { + color: #80CBC4 !important; +} +.mdui-text-color-teal-300 { + color: #4DB6AC !important; +} +.mdui-text-color-teal-400 { + color: #26A69A !important; +} +.mdui-text-color-teal-500 { + color: #009688 !important; +} +.mdui-text-color-teal-600 { + color: #00897B !important; +} +.mdui-text-color-teal-700 { + color: #00796B !important; +} +.mdui-text-color-teal-800 { + color: #00695C !important; +} +.mdui-text-color-teal-900 { + color: #004D40 !important; +} +.mdui-text-color-yellow { + color: #FFEB3B !important; +} +.mdui-text-color-yellow-50 { + color: #FFFDE7 !important; +} +.mdui-text-color-yellow-100 { + color: #FFF9C4 !important; +} +.mdui-text-color-yellow-200 { + color: #FFF59D !important; +} +.mdui-text-color-yellow-300 { + color: #FFF176 !important; +} +.mdui-text-color-yellow-400 { + color: #FFEE58 !important; +} +.mdui-text-color-yellow-500 { + color: #FFEB3B !important; +} +.mdui-text-color-yellow-600 { + color: #FDD835 !important; +} +.mdui-text-color-yellow-700 { + color: #FBC02D !important; +} +.mdui-text-color-yellow-800 { + color: #F9A825 !important; +} +.mdui-text-color-yellow-900 { + color: #F57F17 !important; +} +/** + * .mdui-text-color-[color]-accent + * .mdui-text-color-[color]-[degree] + */ +.mdui-text-color-amber-accent { + color: #FFD740 !important; +} +.mdui-text-color-amber-a100 { + color: #FFE57F !important; +} +.mdui-text-color-amber-a200 { + color: #FFD740 !important; +} +.mdui-text-color-amber-a400 { + color: #FFC400 !important; +} +.mdui-text-color-amber-a700 { + color: #FFAB00 !important; +} +.mdui-text-color-blue-accent { + color: #448AFF !important; +} +.mdui-text-color-blue-a100 { + color: #82B1FF !important; +} +.mdui-text-color-blue-a200 { + color: #448AFF !important; +} +.mdui-text-color-blue-a400 { + color: #2979FF !important; +} +.mdui-text-color-blue-a700 { + color: #2962FF !important; +} +.mdui-text-color-cyan-accent { + color: #18FFFF !important; +} +.mdui-text-color-cyan-a100 { + color: #84FFFF !important; +} +.mdui-text-color-cyan-a200 { + color: #18FFFF !important; +} +.mdui-text-color-cyan-a400 { + color: #00E5FF !important; +} +.mdui-text-color-cyan-a700 { + color: #00B8D4 !important; +} +.mdui-text-color-deep-orange-accent { + color: #FF6E40 !important; +} +.mdui-text-color-deep-orange-a100 { + color: #FF9E80 !important; +} +.mdui-text-color-deep-orange-a200 { + color: #FF6E40 !important; +} +.mdui-text-color-deep-orange-a400 { + color: #FF3D00 !important; +} +.mdui-text-color-deep-orange-a700 { + color: #DD2C00 !important; +} +.mdui-text-color-deep-purple-accent { + color: #7C4DFF !important; +} +.mdui-text-color-deep-purple-a100 { + color: #B388FF !important; +} +.mdui-text-color-deep-purple-a200 { + color: #7C4DFF !important; +} +.mdui-text-color-deep-purple-a400 { + color: #651FFF !important; +} +.mdui-text-color-deep-purple-a700 { + color: #6200EA !important; +} +.mdui-text-color-green-accent { + color: #69F0AE !important; +} +.mdui-text-color-green-a100 { + color: #B9F6CA !important; +} +.mdui-text-color-green-a200 { + color: #69F0AE !important; +} +.mdui-text-color-green-a400 { + color: #00E676 !important; +} +.mdui-text-color-green-a700 { + color: #00C853 !important; +} +.mdui-text-color-indigo-accent { + color: #536DFE !important; +} +.mdui-text-color-indigo-a100 { + color: #8C9EFF !important; +} +.mdui-text-color-indigo-a200 { + color: #536DFE !important; +} +.mdui-text-color-indigo-a400 { + color: #3D5AFE !important; +} +.mdui-text-color-indigo-a700 { + color: #304FFE !important; +} +.mdui-text-color-light-blue-accent { + color: #40C4FF !important; +} +.mdui-text-color-light-blue-a100 { + color: #80D8FF !important; +} +.mdui-text-color-light-blue-a200 { + color: #40C4FF !important; +} +.mdui-text-color-light-blue-a400 { + color: #00B0FF !important; +} +.mdui-text-color-light-blue-a700 { + color: #0091EA !important; +} +.mdui-text-color-light-green-accent { + color: #B2FF59 !important; +} +.mdui-text-color-light-green-a100 { + color: #CCFF90 !important; +} +.mdui-text-color-light-green-a200 { + color: #B2FF59 !important; +} +.mdui-text-color-light-green-a400 { + color: #76FF03 !important; +} +.mdui-text-color-light-green-a700 { + color: #64DD17 !important; +} +.mdui-text-color-lime-accent { + color: #EEFF41 !important; +} +.mdui-text-color-lime-a100 { + color: #F4FF81 !important; +} +.mdui-text-color-lime-a200 { + color: #EEFF41 !important; +} +.mdui-text-color-lime-a400 { + color: #C6FF00 !important; +} +.mdui-text-color-lime-a700 { + color: #AEEA00 !important; +} +.mdui-text-color-orange-accent { + color: #FFAB40 !important; +} +.mdui-text-color-orange-a100 { + color: #FFD180 !important; +} +.mdui-text-color-orange-a200 { + color: #FFAB40 !important; +} +.mdui-text-color-orange-a400 { + color: #FF9100 !important; +} +.mdui-text-color-orange-a700 { + color: #FF6D00 !important; +} +.mdui-text-color-pink-accent { + color: #FF4081 !important; +} +.mdui-text-color-pink-a100 { + color: #FF80AB !important; +} +.mdui-text-color-pink-a200 { + color: #FF4081 !important; +} +.mdui-text-color-pink-a400 { + color: #F50057 !important; +} +.mdui-text-color-pink-a700 { + color: #C51162 !important; +} +.mdui-text-color-purple-accent { + color: #E040FB !important; +} +.mdui-text-color-purple-a100 { + color: #EA80FC !important; +} +.mdui-text-color-purple-a200 { + color: #E040FB !important; +} +.mdui-text-color-purple-a400 { + color: #D500F9 !important; +} +.mdui-text-color-purple-a700 { + color: #AA00FF !important; +} +.mdui-text-color-red-accent { + color: #FF5252 !important; +} +.mdui-text-color-red-a100 { + color: #FF8A80 !important; +} +.mdui-text-color-red-a200 { + color: #FF5252 !important; +} +.mdui-text-color-red-a400 { + color: #FF1744 !important; +} +.mdui-text-color-red-a700 { + color: #D50000 !important; +} +.mdui-text-color-teal-accent { + color: #64FFDA !important; +} +.mdui-text-color-teal-a100 { + color: #A7FFEB !important; +} +.mdui-text-color-teal-a200 { + color: #64FFDA !important; +} +.mdui-text-color-teal-a400 { + color: #1DE9B6 !important; +} +.mdui-text-color-teal-a700 { + color: #00BFA5 !important; +} +.mdui-text-color-yellow-accent { + color: #FFFF00 !important; +} +.mdui-text-color-yellow-a100 { + color: #FFFF8D !important; +} +.mdui-text-color-yellow-a200 { + color: #FFFF00 !important; +} +.mdui-text-color-yellow-a400 { + color: #FFEA00 !important; +} +.mdui-text-color-yellow-a700 { + color: #FFD600 !important; +} +/** + * .mdui-text-color-black + * .mdui-text-color-black-[] + * .mdui-text-color-theme-[] + */ +.mdui-text-color-black { + color: #000000 !important; +} +.mdui-text-color-black-text, +.mdui-text-color-theme-text { + color: rgba(0, 0, 0, 0.87) !important; +} +.mdui-text-color-black-secondary, +.mdui-text-color-theme-secondary { + color: rgba(0, 0, 0, 0.54) !important; +} +.mdui-text-color-black-disabled, +.mdui-text-color-theme-disabled { + color: rgba(0, 0, 0, 0.38) !important; +} +.mdui-text-color-black-divider, +.mdui-text-color-theme-divider { + color: rgba(0, 0, 0, 0.12) !important; +} +.mdui-text-color-black-icon, +.mdui-text-color-theme-icon { + color: rgba(0, 0, 0, 0.54) !important; +} +.mdui-text-color-black-icon-disabled, +.mdui-text-color-theme-icon-disabled { + color: rgba(0, 0, 0, 0.26) !important; +} +/** + * .mdui-text-color-white + * .mdui-text-color-white-[] + */ +.mdui-text-color-white { + color: #FFFFFF !important; +} +.mdui-text-color-white-text { + color: #ffffff !important; +} +.mdui-text-color-white-secondary { + color: rgba(255, 255, 255, 0.7) !important; +} +.mdui-text-color-white-disabled { + color: rgba(255, 255, 255, 0.5) !important; +} +.mdui-text-color-white-divider { + color: rgba(255, 255, 255, 0.12) !important; +} +.mdui-text-color-white-icon { + color: #ffffff !important; +} +.mdui-text-color-white-icon-disabled { + color: rgba(255, 255, 255, 0.3) !important; +} +/** + * .mdui-text-color-theme-[] 深色主题 + */ +.mdui-theme-layout-dark .mdui-text-color-theme-text { + color: #ffffff !important; +} +.mdui-theme-layout-dark .mdui-text-color-theme-secondary { + color: rgba(255, 255, 255, 0.7) !important; +} +.mdui-theme-layout-dark .mdui-text-color-theme-disabled { + color: rgba(255, 255, 255, 0.5) !important; +} +.mdui-theme-layout-dark .mdui-text-color-theme-divider { + color: rgba(255, 255, 255, 0.12) !important; +} +.mdui-theme-layout-dark .mdui-text-color-theme-icon { + color: #ffffff !important; +} +.mdui-theme-layout-dark .mdui-text-color-theme-icon-disabled { + color: rgba(255, 255, 255, 0.3) !important; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto .mdui-text-color-theme-text { + color: #ffffff !important; + } + .mdui-theme-layout-auto .mdui-text-color-theme-secondary { + color: rgba(255, 255, 255, 0.7) !important; + } + .mdui-theme-layout-auto .mdui-text-color-theme-disabled { + color: rgba(255, 255, 255, 0.5) !important; + } + .mdui-theme-layout-auto .mdui-text-color-theme-divider { + color: rgba(255, 255, 255, 0.12) !important; + } + .mdui-theme-layout-auto .mdui-text-color-theme-icon { + color: #ffffff !important; + } + .mdui-theme-layout-auto .mdui-text-color-theme-icon-disabled { + color: rgba(255, 255, 255, 0.3) !important; + } +} +/** + * ============================================================================= + * ************ Helper 辅助类 ************ + * ============================================================================= + */ +/** + * =================== 边距 + */ +.mdui-m-a-0 { + margin: 0px !important; +} +.mdui-m-t-0 { + margin-top: 0px !important; +} +.mdui-m-r-0 { + margin-right: 0px !important; +} +.mdui-m-b-0 { + margin-bottom: 0px !important; +} +.mdui-m-l-0 { + margin-left: 0px !important; +} +.mdui-m-x-0 { + margin-right: 0px !important; + margin-left: 0px !important; +} +.mdui-m-y-0 { + margin-top: 0px !important; + margin-bottom: 0px !important; +} +.mdui-p-a-0 { + padding: 0px !important; +} +.mdui-p-t-0 { + padding-top: 0px !important; +} +.mdui-p-r-0 { + padding-right: 0px !important; +} +.mdui-p-b-0 { + padding-bottom: 0px !important; +} +.mdui-p-l-0 { + padding-left: 0px !important; +} +.mdui-p-x-0 { + padding-right: 0px !important; + padding-left: 0px !important; +} +.mdui-p-y-0 { + padding-top: 0px !important; + padding-bottom: 0px !important; +} +.mdui-m-a-1 { + margin: 8px !important; +} +.mdui-m-t-1 { + margin-top: 8px !important; +} +.mdui-m-r-1 { + margin-right: 8px !important; +} +.mdui-m-b-1 { + margin-bottom: 8px !important; +} +.mdui-m-l-1 { + margin-left: 8px !important; +} +.mdui-m-x-1 { + margin-right: 8px !important; + margin-left: 8px !important; +} +.mdui-m-y-1 { + margin-top: 8px !important; + margin-bottom: 8px !important; +} +.mdui-p-a-1 { + padding: 8px !important; +} +.mdui-p-t-1 { + padding-top: 8px !important; +} +.mdui-p-r-1 { + padding-right: 8px !important; +} +.mdui-p-b-1 { + padding-bottom: 8px !important; +} +.mdui-p-l-1 { + padding-left: 8px !important; +} +.mdui-p-x-1 { + padding-right: 8px !important; + padding-left: 8px !important; +} +.mdui-p-y-1 { + padding-top: 8px !important; + padding-bottom: 8px !important; +} +.mdui-m-a-2 { + margin: 16px !important; +} +.mdui-m-t-2 { + margin-top: 16px !important; +} +.mdui-m-r-2 { + margin-right: 16px !important; +} +.mdui-m-b-2 { + margin-bottom: 16px !important; +} +.mdui-m-l-2 { + margin-left: 16px !important; +} +.mdui-m-x-2 { + margin-right: 16px !important; + margin-left: 16px !important; +} +.mdui-m-y-2 { + margin-top: 16px !important; + margin-bottom: 16px !important; +} +.mdui-p-a-2 { + padding: 16px !important; +} +.mdui-p-t-2 { + padding-top: 16px !important; +} +.mdui-p-r-2 { + padding-right: 16px !important; +} +.mdui-p-b-2 { + padding-bottom: 16px !important; +} +.mdui-p-l-2 { + padding-left: 16px !important; +} +.mdui-p-x-2 { + padding-right: 16px !important; + padding-left: 16px !important; +} +.mdui-p-y-2 { + padding-top: 16px !important; + padding-bottom: 16px !important; +} +.mdui-m-a-3 { + margin: 24px !important; +} +.mdui-m-t-3 { + margin-top: 24px !important; +} +.mdui-m-r-3 { + margin-right: 24px !important; +} +.mdui-m-b-3 { + margin-bottom: 24px !important; +} +.mdui-m-l-3 { + margin-left: 24px !important; +} +.mdui-m-x-3 { + margin-right: 24px !important; + margin-left: 24px !important; +} +.mdui-m-y-3 { + margin-top: 24px !important; + margin-bottom: 24px !important; +} +.mdui-p-a-3 { + padding: 24px !important; +} +.mdui-p-t-3 { + padding-top: 24px !important; +} +.mdui-p-r-3 { + padding-right: 24px !important; +} +.mdui-p-b-3 { + padding-bottom: 24px !important; +} +.mdui-p-l-3 { + padding-left: 24px !important; +} +.mdui-p-x-3 { + padding-right: 24px !important; + padding-left: 24px !important; +} +.mdui-p-y-3 { + padding-top: 24px !important; + padding-bottom: 24px !important; +} +.mdui-m-a-4 { + margin: 32px !important; +} +.mdui-m-t-4 { + margin-top: 32px !important; +} +.mdui-m-r-4 { + margin-right: 32px !important; +} +.mdui-m-b-4 { + margin-bottom: 32px !important; +} +.mdui-m-l-4 { + margin-left: 32px !important; +} +.mdui-m-x-4 { + margin-right: 32px !important; + margin-left: 32px !important; +} +.mdui-m-y-4 { + margin-top: 32px !important; + margin-bottom: 32px !important; +} +.mdui-p-a-4 { + padding: 32px !important; +} +.mdui-p-t-4 { + padding-top: 32px !important; +} +.mdui-p-r-4 { + padding-right: 32px !important; +} +.mdui-p-b-4 { + padding-bottom: 32px !important; +} +.mdui-p-l-4 { + padding-left: 32px !important; +} +.mdui-p-x-4 { + padding-right: 32px !important; + padding-left: 32px !important; +} +.mdui-p-y-4 { + padding-top: 32px !important; + padding-bottom: 32px !important; +} +.mdui-m-a-5 { + margin: 40px !important; +} +.mdui-m-t-5 { + margin-top: 40px !important; +} +.mdui-m-r-5 { + margin-right: 40px !important; +} +.mdui-m-b-5 { + margin-bottom: 40px !important; +} +.mdui-m-l-5 { + margin-left: 40px !important; +} +.mdui-m-x-5 { + margin-right: 40px !important; + margin-left: 40px !important; +} +.mdui-m-y-5 { + margin-top: 40px !important; + margin-bottom: 40px !important; +} +.mdui-p-a-5 { + padding: 40px !important; +} +.mdui-p-t-5 { + padding-top: 40px !important; +} +.mdui-p-r-5 { + padding-right: 40px !important; +} +.mdui-p-b-5 { + padding-bottom: 40px !important; +} +.mdui-p-l-5 { + padding-left: 40px !important; +} +.mdui-p-x-5 { + padding-right: 40px !important; + padding-left: 40px !important; +} +.mdui-p-y-5 { + padding-top: 40px !important; + padding-bottom: 40px !important; +} +/** + * ======================== 快速浮动 + */ +/* 向左浮动 */ +.mdui-float-left { + float: left !important; +} +/* 向右浮动 */ +.mdui-float-right { + float: right !important; +} +/** + * ========================= 水平居中 + */ +/* 水平居中 */ +.mdui-center { + display: block !important; + margin-right: auto !important; + margin-left: auto !important; +} +/** + * ========================= 垂直居中 + */ +/* 垂直居中 */ +.mdui-valign { + display: -webkit-box !important; + display: -ms-flexbox !important; + display: flex !important; + -webkit-box-align: center !important; + -ms-flex-align: center !important; + align-items: center !important; +} +/** + * ========================= 文本对齐方式 + */ +/* 文本左对齐 */ +.mdui-text-left { + text-align: left !important; +} +/* 文本居中对齐 */ +.mdui-text-center { + text-align: center !important; +} +/* 文本向右对齐 */ +.mdui-text-right { + text-align: right !important; +} +/** + * ========================= 文本大小写转换 + */ +/* 文本转为小写 */ +.mdui-text-lowercase { + text-transform: lowercase !important; +} +/* 文本转为大写 */ +.mdui-text-uppercase { + text-transform: uppercase !important; +} +/* 文本转为单词的首字母大写 */ +.mdui-text-capitalize { + text-transform: capitalize !important; +} +/** + * ======================== 文本截断 + */ +/* 文本截断 */ +.mdui-text-truncate { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +/** + * ========================= 清除浮动 + */ +/* 清除浮动 */ +.mdui-clearfix::before, +.mdui-clearfix::after { + display: table; + content: ' '; +} +.mdui-clearfix::after { + clear: both; +} +/** + * ========================= 隐藏内容 + */ +/* 隐藏元素 */ +.mdui-hidden, +[hidden] { + display: none !important; +} +/* 使元素不可见 */ +.mdui-invisible { + visibility: hidden; +} +/* Responsive utilities 响应式工具 + ========================================================================== */ +/* 在特定屏幕的特备上隐藏 */ +@media (max-width: 599.9px) { + .mdui-hidden-xs { + display: none !important; + } +} +@media (min-width: 600px) and (max-width: 1023.9px) { + .mdui-hidden-sm { + display: none !important; + } +} +@media (min-width: 1024px) and (max-width: 1439.9px) { + .mdui-hidden-md { + display: none !important; + } +} +@media (min-width: 1440px) and (max-width: 1919.9px) { + .mdui-hidden-lg { + display: none !important; + } +} +@media (min-width: 1920px) { + .mdui-hidden-xl { + display: none !important; + } +} +/* 在比特定屏幕小的设备上隐藏 */ +@media (max-width: 599.9px) { + .mdui-hidden-xs-down { + display: none !important; + } +} +@media (max-width: 1023.9px) { + .mdui-hidden-sm-down { + display: none !important; + } +} +@media (max-width: 1439.9px) { + .mdui-hidden-md-down { + display: none !important; + } +} +@media (max-width: 1919.9px) { + .mdui-hidden-lg-down { + display: none !important; + } +} +.mdui-hidden-xl-down { + display: none !important; +} +/* 在比特定屏幕大的设备上隐藏 */ +.mdui-hidden-xs-up { + display: none !important; +} +@media (min-width: 600px) { + .mdui-hidden-sm-up { + display: none !important; + } +} +@media (min-width: 1024px) { + .mdui-hidden-md-up { + display: none !important; + } +} +@media (min-width: 1440px) { + .mdui-hidden-lg-up { + display: none !important; + } +} +@media (min-width: 1920px) { + .mdui-hidden-xl-up { + display: none !important; + } +} +/** + * ============================================================================= + * ************ Icon 图标 ************ + * ============================================================================= + */ +.mdui-icon, +.mdui-icon::before { + color: inherit; + font-weight: normal; + font-size: 24px; + /* Preferred icon size */ + font-style: normal; + line-height: 1; + direction: ltr; + letter-spacing: normal; + white-space: nowrap; + text-transform: none; + vertical-align: middle; + word-wrap: normal; +} +.mdui-icon { + display: inline-block; + text-align: center; +} +.mdui-icon::before { + display: block !important; + width: 24px; + height: 24px; +} +/** + * ============================================================================= + * ************ Material Icons ************ + * ============================================================================= + * + * https://github.com/google/material-design-icons/ + * v3.0.1 + */ +@font-face { + font-weight: 400; + font-family: 'Material Icons'; + font-style: normal; + src: local('Material Icons'), local('MaterialIcons-Regular'), url(../icons/material-icons/MaterialIcons-Regular.woff2) format('woff2'), url(../icons/material-icons/MaterialIcons-Regular.woff) format('woff'); +} +.material-icons { + /* stylelint-disable-next-line */ + font-family: 'Material Icons'; + /* Support for all WebKit browsers. */ + -webkit-font-smoothing: antialiased; + /* Support for Safari and Chrome. */ + text-rendering: optimizeLegibility; + /* Support for Firefox. */ + -moz-osx-font-smoothing: grayscale; + /* Support for IE. */ + -webkit-font-feature-settings: 'liga'; + font-feature-settings: 'liga'; +} +/** + * ============================================================================= + * ************ Media 媒体工具 ************ + * ============================================================================= + */ +/* 响应式图片和视频 */ +.mdui-img-fluid, +.mdui-video-fluid { + display: block; + max-width: 100%; + height: auto; +} +/* 圆角图片 */ +.mdui-img-rounded { + border-radius: 2px; +} +/* 圆形图片 */ +.mdui-img-circle { + border-radius: 50%; +} +.mdui-video-container { + position: relative; + height: 0; + padding-bottom: 56.25%; + overflow: hidden; +} +.mdui-video-container iframe, +.mdui-video-container object, +.mdui-video-container embed { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +/** + * ============================================================================= + * ************ Roboto 字体 ************ + * ============================================================================= + */ +@font-face { + font-weight: 100; + font-family: 'Roboto'; + font-style: normal; + font-display: swap; + src: local('Roboto Thin'), local('Roboto-Thin'), url('../fonts/roboto/Roboto-Thin.woff2') format('woff2'), url('../fonts/roboto/Roboto-Thin.woff') format('woff'); +} +@font-face { + font-weight: 100; + font-family: 'Roboto'; + font-style: italic; + font-display: swap; + src: local('Roboto ThinItalic'), local('Roboto-ThinItalic'), url('../fonts/roboto/Roboto-ThinItalic.woff2') format('woff2'), url('../fonts/roboto/Roboto-ThinItalic.woff') format('woff'); +} +@font-face { + font-weight: 300; + font-family: 'Roboto'; + font-style: normal; + font-display: swap; + src: local('Roboto Light'), local('Roboto-Light'), url('../fonts/roboto/Roboto-Light.woff2') format('woff2'), url('../fonts/roboto/Roboto-Light.woff') format('woff'); +} +@font-face { + font-weight: 300; + font-family: 'Roboto'; + font-style: italic; + font-display: swap; + src: local('Roboto LightItalic'), local('Roboto-LightItalic'), url('../fonts/roboto/Roboto-LightItalic.woff2') format('woff2'), url('../fonts/roboto/Roboto-LightItalic.woff') format('woff'); +} +@font-face { + font-weight: 400; + font-family: 'Roboto'; + font-style: normal; + font-display: swap; + src: local('Roboto Regular'), local('Roboto-Regular'), url('../fonts/roboto/Roboto-Regular.woff2') format('woff2'), url('../fonts/roboto/Roboto-Regular.woff') format('woff'); +} +@font-face { + font-weight: 400; + font-family: 'Roboto'; + font-style: italic; + font-display: swap; + src: local('Roboto RegularItalic'), local('Roboto-RegularItalic'), url('../fonts/roboto/Roboto-RegularItalic.woff2') format('woff2'), url('../fonts/roboto/Roboto-RegularItalic.woff') format('woff'); +} +@font-face { + font-weight: 500; + font-family: 'Roboto'; + font-style: normal; + font-display: swap; + src: local('Roboto Medium'), local('Roboto-Medium'), url('../fonts/roboto/Roboto-Medium.woff2') format('woff2'), url('../fonts/roboto/Roboto-Medium.woff') format('woff'); +} +@font-face { + font-weight: 500; + font-family: 'Roboto'; + font-style: italic; + font-display: swap; + src: local('Roboto MediumItalic'), local('Roboto-MediumItalic'), url('../fonts/roboto/Roboto-MediumItalic.woff2') format('woff2'), url('../fonts/roboto/Roboto-MediumItalic.woff') format('woff'); +} +@font-face { + font-weight: 700; + font-family: 'Roboto'; + font-style: normal; + font-display: swap; + src: local('Roboto Bold'), local('Roboto-Bold'), url('../fonts/roboto/Roboto-Bold.woff2') format('woff2'), url('../fonts/roboto/Roboto-Bold.woff') format('woff'); +} +@font-face { + font-weight: 700; + font-family: 'Roboto'; + font-style: italic; + font-display: swap; + src: local('Roboto BoldItalic'), local('Roboto-BoldItalic'), url('../fonts/roboto/Roboto-BoldItalic.woff2') format('woff2'), url('../fonts/roboto/Roboto-BoldItalic.woff') format('woff'); +} +@font-face { + font-weight: 900; + font-family: 'Roboto'; + font-style: normal; + font-display: swap; + src: local('Roboto Black'), local('Roboto-Black'), url('../fonts/roboto/Roboto-Black.woff2') format('woff2'), url('../fonts/roboto/Roboto-Black.woff') format('woff'); +} +@font-face { + font-weight: 900; + font-family: 'Roboto'; + font-style: italic; + font-display: swap; + src: local('Roboto BlackItalic'), local('Roboto-BlackItalic'), url('../fonts/roboto/Roboto-BlackItalic.woff2') format('woff2'), url('../fonts/roboto/Roboto-BlackItalic.woff') format('woff'); +} +/** + * ============================================================================= + * ************ Typography 样式排版 ************ + * ============================================================================= + */ +/* .mdui-typo-display-4 */ +.mdui-typo-display-4, +.mdui-typo-display-4-opacity { + font-weight: 300; + font-size: 112px; + letter-spacing: -0.04em; +} +.mdui-typo-display-4-opacity { + opacity: 0.54; +} +/* .mdui-typo-display-3 */ +.mdui-typo-display-3, +.mdui-typo-display-3-opacity { + font-weight: 400; + font-size: 56px; + letter-spacing: -0.02em; +} +.mdui-typo-display-3-opacity { + opacity: 0.54; +} +/* .mdui-typo-display-2 */ +.mdui-typo-display-2, +.mdui-typo-display-2-opacity { + font-weight: 400; + font-size: 45px; + letter-spacing: 0; +} +.mdui-typo-display-2-opacity { + opacity: 0.54; +} +/* .mdui-typo-display-1 */ +.mdui-typo-display-1, +.mdui-typo-display-1-opacity { + font-weight: 400; + font-size: 34px; + letter-spacing: 0; +} +.mdui-typo-display-1-opacity { + opacity: 0.54; +} +/* .mdui-typo-headline */ +.mdui-typo-headline, +.mdui-typo-headline-opacity { + font-weight: 400; + font-size: 24px; + -moz-osx-font-smoothing: grayscale; +} +.mdui-typo-headline-opacity { + opacity: 0.87; +} +/* .mdui-typo-title */ +.mdui-typo-title, +.mdui-typo-title-opacity { + font-weight: 500; + font-size: 20px; + letter-spacing: 0.02em; +} +.mdui-typo-title-opacity { + opacity: 0.87; +} +.mdui-typo-subheading, +.mdui-typo-subheading-opacity { + font-weight: 400; + font-size: 16px; + letter-spacing: 0.04em; +} +.mdui-typo-subheading-opacity { + opacity: 0.87; +} +.mdui-typo-body-2, +.mdui-typo-body-2-opacity { + font-weight: 500; + font-size: 14px; + letter-spacing: 0.04em; +} +.mdui-typo-body-2-opacity { + opacity: 0.87; +} +.mdui-typo-body-1, +.mdui-typo-body-1-opacity { + font-weight: 400; + font-size: 14px; + letter-spacing: 0.04em; +} +.mdui-typo-body-1-opacity { + opacity: 0.87; +} +.mdui-typo-caption, +.mdui-typo-caption-opacity { + font-weight: 400; + font-size: 12px; + letter-spacing: 0.08em; +} +.mdui-typo-caption-opacity { + opacity: 0.54; +} +/** + * ============================================================================= + * ************ Typography 文章排版 ************ + * ============================================================================= + */ +.mdui-typo { + line-height: 1.8; + word-wrap: break-word; + /* a */ + /* small */ + /* blockquote */ + /* mark */ + /* h1 - h6 */ + /* code */ + /* pre code */ + /* abbr */ + /* ins */ + /* u */ + /* del */ + /* hr */ + /* pre */ + /* kbd */ + /* ul / ol */ + /* img, video */ +} +.mdui-typo address, +.mdui-typo caption, +.mdui-typo cite, +.mdui-typo code, +.mdui-typo dfn, +.mdui-typo th { + font-weight: 400; + font-style: normal; +} +.mdui-typo caption, +.mdui-typo th { + text-align: left; +} +.mdui-typo q::before, +.mdui-typo q::after { + content: ''; +} +.mdui-typo pre, +.mdui-typo code, +.mdui-typo kbd, +.mdui-typo samp, +.mdui-typo pre tt { + font-family: Consolas, Courier, 'Courier New', monospace; +} +.mdui-typo figcaption { + color: rgba(0, 0, 0, 0.54); + font-size: 80%; +} +.mdui-typo [draggable], +.mdui-typo [draggable="true"] { + cursor: move; +} +.mdui-typo [draggable="false"] { + cursor: inherit; +} +.mdui-typo p, +.mdui-typo pre, +.mdui-typo ul, +.mdui-typo ol, +.mdui-typo dl, +.mdui-typo form, +.mdui-typo hr, +.mdui-typo figure, +.mdui-typo table, +.mdui-typo .mdui-table, +.mdui-typo .mdui-table-fluid { + margin: 0 0 1.2em 0; +} +.mdui-typo p:last-child, +.mdui-typo pre:last-child, +.mdui-typo ul:last-child, +.mdui-typo ol:last-child, +.mdui-typo dl:last-child, +.mdui-typo form:last-child, +.mdui-typo hr:last-child, +.mdui-typo figure:last-child, +.mdui-typo table:last-child, +.mdui-typo .mdui-table:last-child, +.mdui-typo .mdui-table-fluid:last-child { + margin-bottom: 0; +} +.mdui-typo a { + color: #FF4081; + position: relative; + display: inline-block; + overflow: hidden; + text-decoration: none; + vertical-align: top; + outline: none; +} +.mdui-typo a::before { + position: absolute; + top: auto; + bottom: 1px; + left: 0; + width: 100%; + height: 1px; + background-color: #FF4081; + -webkit-transform: scaleX(0); + transform: scaleX(0); + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-transition: all 0.2s; + transition: all 0.2s; + content: ' '; +} +.mdui-typo a:hover::before, +.mdui-typo a:focus::before { + -webkit-transform: scaleX(1); + transform: scaleX(1); +} +.mdui-typo small { + font-size: 80%; +} +.mdui-typo blockquote { + margin: 1em 3em 1em 2em; + padding-left: 1em; + font-weight: 400; + border-left: 4px solid rgba(0, 0, 0, 0.12); +} +@media only screen and (max-width: 599.9px) { + .mdui-typo blockquote { + margin: 1em 0; + } +} +.mdui-typo blockquote:last-child { + margin-bottom: 0; +} +.mdui-typo blockquote footer { + color: rgba(0, 0, 0, 0.54); + font-size: 86%; +} +.mdui-typo mark { + margin: 0 5px; + padding: 2px; + background: #fffdd1; + border-bottom: 1px solid #ffedce; +} +.mdui-typo h1, +.mdui-typo h2, +.mdui-typo h3, +.mdui-typo h4, +.mdui-typo h5, +.mdui-typo h6 { + margin-top: 1.2em; + margin-bottom: 0.6em; + color: inherit; + font-weight: 400; + font-family: inherit; + line-height: 1.35; +} +.mdui-typo h1:last-child, +.mdui-typo h2:last-child, +.mdui-typo h3:last-child, +.mdui-typo h4:last-child, +.mdui-typo h5:last-child, +.mdui-typo h6:last-child { + margin-bottom: 0; +} +.mdui-typo h1 small, +.mdui-typo h2 small, +.mdui-typo h3 small, +.mdui-typo h4 small, +.mdui-typo h5 small, +.mdui-typo h6 small { + color: rgba(0, 0, 0, 0.54); + font-weight: 400; + font-size: 65%; + line-height: 1; +} +.mdui-typo h1 { + font-size: 2em; +} +.mdui-typo h2 { + font-size: 1.8em; +} +.mdui-typo h3 { + font-size: 1.6em; +} +.mdui-typo h4 { + font-size: 1.4em; +} +.mdui-typo h5 { + font-size: 1.2em; +} +.mdui-typo h6 { + font-size: 1.1em; +} +.mdui-typo code { + padding: 2px 6px; + color: #c7254e; + background-color: #f7f7f9; + border-radius: 2px; +} +.mdui-typo pre code { + padding: 0; + color: inherit; + font-size: inherit; + line-height: 1.7; + background-color: transparent; + border-radius: 0; +} +.mdui-typo abbr[title] { + text-decoration: none; + border-bottom: 1px dotted; + cursor: help; +} +.mdui-typo ins { + text-decoration: none; + border-bottom: 1px solid ; +} +.mdui-typo u { + text-decoration: none; + border-bottom: 1px solid; +} +.mdui-typo del { + text-decoration: line-through; +} +.mdui-typo hr { + height: 10px; + margin-bottom: 0.8em; + border: none; + border-bottom: 1px solid rgba(0, 0, 0, 0.12); +} +.mdui-typo pre { + padding: 12px 16px; + overflow-x: auto; + border: 1px solid rgba(0, 0, 0, 0.12); + border-radius: 2px; + -webkit-overflow-scrolling: touch; +} +.mdui-typo kbd { + padding: 2px 6px; + color: #fff; + font-size: 90%; + background-color: #333; + border-radius: 2px; +} +.mdui-typo ul { + padding-left: 2em; + list-style: disc; +} +.mdui-typo ol { + padding-left: 2em; + list-style: decimal; +} +.mdui-typo li ul, +.mdui-typo li ol { + margin: 0.8em 0; +} +.mdui-typo li ul { + list-style: circle; +} +.mdui-typo img, +.mdui-typo video { + max-width: 100%; +} +.mdui-typo figure { + text-align: center; +} +.mdui-typo figure figcaption { + margin-top: 8px; + color: #999; + font-size: 14px; +} +.mdui-typo figure figcaption:empty::before { + z-index: -1; + color: #bfbfbf; + cursor: text; + content: attr(placeholder); +} +/** + * ============================================================================= + * ************ Typo 强调色 ************ + * ============================================================================= + */ +.mdui-theme-accent-amber .mdui-typo a { + color: #FFD740; +} +.mdui-theme-accent-amber .mdui-typo a::before { + background-color: #FFD740; +} +.mdui-theme-accent-blue .mdui-typo a { + color: #448AFF; +} +.mdui-theme-accent-blue .mdui-typo a::before { + background-color: #448AFF; +} +.mdui-theme-accent-cyan .mdui-typo a { + color: #18FFFF; +} +.mdui-theme-accent-cyan .mdui-typo a::before { + background-color: #18FFFF; +} +.mdui-theme-accent-deep-orange .mdui-typo a { + color: #FF6E40; +} +.mdui-theme-accent-deep-orange .mdui-typo a::before { + background-color: #FF6E40; +} +.mdui-theme-accent-deep-purple .mdui-typo a { + color: #7C4DFF; +} +.mdui-theme-accent-deep-purple .mdui-typo a::before { + background-color: #7C4DFF; +} +.mdui-theme-accent-green .mdui-typo a { + color: #69F0AE; +} +.mdui-theme-accent-green .mdui-typo a::before { + background-color: #69F0AE; +} +.mdui-theme-accent-indigo .mdui-typo a { + color: #536DFE; +} +.mdui-theme-accent-indigo .mdui-typo a::before { + background-color: #536DFE; +} +.mdui-theme-accent-light-blue .mdui-typo a { + color: #40C4FF; +} +.mdui-theme-accent-light-blue .mdui-typo a::before { + background-color: #40C4FF; +} +.mdui-theme-accent-light-green .mdui-typo a { + color: #B2FF59; +} +.mdui-theme-accent-light-green .mdui-typo a::before { + background-color: #B2FF59; +} +.mdui-theme-accent-lime .mdui-typo a { + color: #EEFF41; +} +.mdui-theme-accent-lime .mdui-typo a::before { + background-color: #EEFF41; +} +.mdui-theme-accent-orange .mdui-typo a { + color: #FFAB40; +} +.mdui-theme-accent-orange .mdui-typo a::before { + background-color: #FFAB40; +} +.mdui-theme-accent-pink .mdui-typo a { + color: #FF4081; +} +.mdui-theme-accent-pink .mdui-typo a::before { + background-color: #FF4081; +} +.mdui-theme-accent-purple .mdui-typo a { + color: #E040FB; +} +.mdui-theme-accent-purple .mdui-typo a::before { + background-color: #E040FB; +} +.mdui-theme-accent-red .mdui-typo a { + color: #FF5252; +} +.mdui-theme-accent-red .mdui-typo a::before { + background-color: #FF5252; +} +.mdui-theme-accent-teal .mdui-typo a { + color: #64FFDA; +} +.mdui-theme-accent-teal .mdui-typo a::before { + background-color: #64FFDA; +} +.mdui-theme-accent-yellow .mdui-typo a { + color: #FFFF00; +} +.mdui-theme-accent-yellow .mdui-typo a::before { + background-color: #FFFF00; +} +/** + * ============================================================================= + * ************ Typo dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark .mdui-typo blockquote { + border-left-color: rgba(255, 255, 255, 0.12); +} +.mdui-theme-layout-dark .mdui-typo blockquote footer { + color: rgba(255, 255, 255, 0.7); +} +.mdui-theme-layout-dark .mdui-typo figcaption { + color: rgba(255, 255, 255, 0.7); +} +.mdui-theme-layout-dark .mdui-typo mark { + background: #aaa; + border-bottom-color: #bbb; +} +.mdui-theme-layout-dark .mdui-typo h1 small, +.mdui-theme-layout-dark .mdui-typo h2 small, +.mdui-theme-layout-dark .mdui-typo h3 small, +.mdui-theme-layout-dark .mdui-typo h4 small, +.mdui-theme-layout-dark .mdui-typo h5 small, +.mdui-theme-layout-dark .mdui-typo h6 small { + color: rgba(255, 255, 255, 0.7); +} +.mdui-theme-layout-dark .mdui-typo code { + color: #FFCDD2; + background-color: #424242; +} +.mdui-theme-layout-dark .mdui-typo pre { + background: #424242; + border-color: rgba(255, 255, 255, 0.12); +} +.mdui-theme-layout-dark .mdui-typo kbd { + background: #424242; +} +.mdui-theme-layout-dark .mdui-typo hr { + border-color: rgba(255, 255, 255, 0.12); +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto .mdui-typo blockquote { + border-left-color: rgba(255, 255, 255, 0.12); + } + .mdui-theme-layout-auto .mdui-typo blockquote footer { + color: rgba(255, 255, 255, 0.7); + } + .mdui-theme-layout-auto .mdui-typo figcaption { + color: rgba(255, 255, 255, 0.7); + } + .mdui-theme-layout-auto .mdui-typo mark { + background: #aaa; + border-bottom-color: #bbb; + } + .mdui-theme-layout-auto .mdui-typo h1 small, + .mdui-theme-layout-auto .mdui-typo h2 small, + .mdui-theme-layout-auto .mdui-typo h3 small, + .mdui-theme-layout-auto .mdui-typo h4 small, + .mdui-theme-layout-auto .mdui-typo h5 small, + .mdui-theme-layout-auto .mdui-typo h6 small { + color: rgba(255, 255, 255, 0.7); + } + .mdui-theme-layout-auto .mdui-typo code { + color: #FFCDD2; + background-color: #424242; + } + .mdui-theme-layout-auto .mdui-typo pre { + background: #424242; + border-color: rgba(255, 255, 255, 0.12); + } + .mdui-theme-layout-auto .mdui-typo kbd { + background: #424242; + } + .mdui-theme-layout-auto .mdui-typo hr { + border-color: rgba(255, 255, 255, 0.12); + } +} +/** + * ============================================================================= + * ************ Grid 网格系统 ************ + * ============================================================================= + */ +.mdui-container, +.mdui-container-fluid { + -webkit-box-sizing: border-box; + box-sizing: border-box; + margin-right: auto; + margin-left: auto; + padding-right: 8px; + padding-left: 8px; +} +.mdui-container::after, +.mdui-container-fluid::after { + display: table; + clear: both; + content: ''; +} +.mdui-container { + width: 96%; + max-width: 1280px; +} +@media (min-width: 600px) { + .mdui-container { + width: 94%; + } +} +@media (min-width: 1024px) { + .mdui-container { + width: 92%; + } +} +.mdui-row, +[class*="mdui-row-"] { + margin-right: -8px; + margin-left: -8px; +} +.mdui-row::after, +[class*="mdui-row-"]::after { + display: table; + clear: both; + content: ''; +} +[class*="mdui-col-xs-"], +[class*="mdui-col-sm-"], +[class*="mdui-col-md-"], +[class*="mdui-col-lg-"], +[class*="mdui-col-xl-"], +.mdui-col { + position: relative; + -webkit-box-sizing: border-box; + box-sizing: border-box; + min-height: 1px; + padding-right: 8px; + padding-left: 8px; +} +/* 取消列间距 */ +.mdui-row-gapless .mdui-col, +.mdui-row-gapless [class*="mdui-col-xs-"], +.mdui-row-gapless [class*="mdui-col-sm-"], +.mdui-row-gapless [class*="mdui-col-md-"], +.mdui-row-gapless [class*="mdui-col-lg-"], +.mdui-row-gapless [class*="mdui-col-xl-"] { + padding-right: 0; + padding-left: 0; +} +.mdui-row-gapless .mdui-row, +.mdui-row-gapless [class*="mdui-row-"] { + margin-right: 0; + margin-left: 0; +} +.mdui-col-xs-1 { + float: left; + width: 8.333333%; +} +.mdui-col-offset-xs-1 { + margin-left: 8.333333%; +} +.mdui-row-xs-1 .mdui-col { + float: left; + width: 100%; +} +.mdui-col-xs-2 { + float: left; + width: 16.666667%; +} +.mdui-col-offset-xs-2 { + margin-left: 16.666667%; +} +.mdui-row-xs-2 .mdui-col { + float: left; + width: 50%; +} +.mdui-col-xs-3 { + float: left; + width: 25%; +} +.mdui-col-offset-xs-3 { + margin-left: 25%; +} +.mdui-row-xs-3 .mdui-col { + float: left; + width: 33.333333%; +} +.mdui-col-xs-4 { + float: left; + width: 33.333333%; +} +.mdui-col-offset-xs-4 { + margin-left: 33.333333%; +} +.mdui-row-xs-4 .mdui-col { + float: left; + width: 25%; +} +.mdui-col-xs-5 { + float: left; + width: 41.666667%; +} +.mdui-col-offset-xs-5 { + margin-left: 41.666667%; +} +.mdui-row-xs-5 .mdui-col { + float: left; + width: 20%; +} +.mdui-col-xs-6 { + float: left; + width: 50%; +} +.mdui-col-offset-xs-6 { + margin-left: 50%; +} +.mdui-row-xs-6 .mdui-col { + float: left; + width: 16.666667%; +} +.mdui-col-xs-7 { + float: left; + width: 58.333333%; +} +.mdui-col-offset-xs-7 { + margin-left: 58.333333%; +} +.mdui-row-xs-7 .mdui-col { + float: left; + width: 14.285714%; +} +.mdui-col-xs-8 { + float: left; + width: 66.666667%; +} +.mdui-col-offset-xs-8 { + margin-left: 66.666667%; +} +.mdui-row-xs-8 .mdui-col { + float: left; + width: 12.5%; +} +.mdui-col-xs-9 { + float: left; + width: 75%; +} +.mdui-col-offset-xs-9 { + margin-left: 75%; +} +.mdui-row-xs-9 .mdui-col { + float: left; + width: 11.111111%; +} +.mdui-col-xs-10 { + float: left; + width: 83.333333%; +} +.mdui-col-offset-xs-10 { + margin-left: 83.333333%; +} +.mdui-row-xs-10 .mdui-col { + float: left; + width: 10%; +} +.mdui-col-xs-11 { + float: left; + width: 91.666667%; +} +.mdui-col-offset-xs-11 { + margin-left: 91.666667%; +} +.mdui-row-xs-11 .mdui-col { + float: left; + width: 9.090909%; +} +.mdui-col-xs-12 { + float: left; + width: 100%; +} +.mdui-col-offset-xs-12 { + margin-left: 100%; +} +.mdui-row-xs-12 .mdui-col { + float: left; + width: 8.333333%; +} +@media (min-width: 600px) { + .mdui-col-sm-1 { + float: left; + width: 8.333333%; + } + .mdui-col-offset-sm-1 { + margin-left: 8.333333%; + } + .mdui-row-sm-1 .mdui-col { + float: left; + width: 100%; + } + .mdui-col-sm-2 { + float: left; + width: 16.666667%; + } + .mdui-col-offset-sm-2 { + margin-left: 16.666667%; + } + .mdui-row-sm-2 .mdui-col { + float: left; + width: 50%; + } + .mdui-col-sm-3 { + float: left; + width: 25%; + } + .mdui-col-offset-sm-3 { + margin-left: 25%; + } + .mdui-row-sm-3 .mdui-col { + float: left; + width: 33.333333%; + } + .mdui-col-sm-4 { + float: left; + width: 33.333333%; + } + .mdui-col-offset-sm-4 { + margin-left: 33.333333%; + } + .mdui-row-sm-4 .mdui-col { + float: left; + width: 25%; + } + .mdui-col-sm-5 { + float: left; + width: 41.666667%; + } + .mdui-col-offset-sm-5 { + margin-left: 41.666667%; + } + .mdui-row-sm-5 .mdui-col { + float: left; + width: 20%; + } + .mdui-col-sm-6 { + float: left; + width: 50%; + } + .mdui-col-offset-sm-6 { + margin-left: 50%; + } + .mdui-row-sm-6 .mdui-col { + float: left; + width: 16.666667%; + } + .mdui-col-sm-7 { + float: left; + width: 58.333333%; + } + .mdui-col-offset-sm-7 { + margin-left: 58.333333%; + } + .mdui-row-sm-7 .mdui-col { + float: left; + width: 14.285714%; + } + .mdui-col-sm-8 { + float: left; + width: 66.666667%; + } + .mdui-col-offset-sm-8 { + margin-left: 66.666667%; + } + .mdui-row-sm-8 .mdui-col { + float: left; + width: 12.5%; + } + .mdui-col-sm-9 { + float: left; + width: 75%; + } + .mdui-col-offset-sm-9 { + margin-left: 75%; + } + .mdui-row-sm-9 .mdui-col { + float: left; + width: 11.111111%; + } + .mdui-col-sm-10 { + float: left; + width: 83.333333%; + } + .mdui-col-offset-sm-10 { + margin-left: 83.333333%; + } + .mdui-row-sm-10 .mdui-col { + float: left; + width: 10%; + } + .mdui-col-sm-11 { + float: left; + width: 91.666667%; + } + .mdui-col-offset-sm-11 { + margin-left: 91.666667%; + } + .mdui-row-sm-11 .mdui-col { + float: left; + width: 9.090909%; + } + .mdui-col-sm-12 { + float: left; + width: 100%; + } + .mdui-col-offset-sm-12 { + margin-left: 100%; + } + .mdui-row-sm-12 .mdui-col { + float: left; + width: 8.333333%; + } +} +@media (min-width: 1024px) { + .mdui-col-md-1 { + float: left; + width: 8.333333%; + } + .mdui-col-offset-md-1 { + margin-left: 8.333333%; + } + .mdui-row-md-1 .mdui-col { + float: left; + width: 100%; + } + .mdui-col-md-2 { + float: left; + width: 16.666667%; + } + .mdui-col-offset-md-2 { + margin-left: 16.666667%; + } + .mdui-row-md-2 .mdui-col { + float: left; + width: 50%; + } + .mdui-col-md-3 { + float: left; + width: 25%; + } + .mdui-col-offset-md-3 { + margin-left: 25%; + } + .mdui-row-md-3 .mdui-col { + float: left; + width: 33.333333%; + } + .mdui-col-md-4 { + float: left; + width: 33.333333%; + } + .mdui-col-offset-md-4 { + margin-left: 33.333333%; + } + .mdui-row-md-4 .mdui-col { + float: left; + width: 25%; + } + .mdui-col-md-5 { + float: left; + width: 41.666667%; + } + .mdui-col-offset-md-5 { + margin-left: 41.666667%; + } + .mdui-row-md-5 .mdui-col { + float: left; + width: 20%; + } + .mdui-col-md-6 { + float: left; + width: 50%; + } + .mdui-col-offset-md-6 { + margin-left: 50%; + } + .mdui-row-md-6 .mdui-col { + float: left; + width: 16.666667%; + } + .mdui-col-md-7 { + float: left; + width: 58.333333%; + } + .mdui-col-offset-md-7 { + margin-left: 58.333333%; + } + .mdui-row-md-7 .mdui-col { + float: left; + width: 14.285714%; + } + .mdui-col-md-8 { + float: left; + width: 66.666667%; + } + .mdui-col-offset-md-8 { + margin-left: 66.666667%; + } + .mdui-row-md-8 .mdui-col { + float: left; + width: 12.5%; + } + .mdui-col-md-9 { + float: left; + width: 75%; + } + .mdui-col-offset-md-9 { + margin-left: 75%; + } + .mdui-row-md-9 .mdui-col { + float: left; + width: 11.111111%; + } + .mdui-col-md-10 { + float: left; + width: 83.333333%; + } + .mdui-col-offset-md-10 { + margin-left: 83.333333%; + } + .mdui-row-md-10 .mdui-col { + float: left; + width: 10%; + } + .mdui-col-md-11 { + float: left; + width: 91.666667%; + } + .mdui-col-offset-md-11 { + margin-left: 91.666667%; + } + .mdui-row-md-11 .mdui-col { + float: left; + width: 9.090909%; + } + .mdui-col-md-12 { + float: left; + width: 100%; + } + .mdui-col-offset-md-12 { + margin-left: 100%; + } + .mdui-row-md-12 .mdui-col { + float: left; + width: 8.333333%; + } +} +@media (min-width: 1440px) { + .mdui-col-lg-1 { + float: left; + width: 8.333333%; + } + .mdui-col-offset-lg-1 { + margin-left: 8.333333%; + } + .mdui-row-lg-1 .mdui-col { + float: left; + width: 100%; + } + .mdui-col-lg-2 { + float: left; + width: 16.666667%; + } + .mdui-col-offset-lg-2 { + margin-left: 16.666667%; + } + .mdui-row-lg-2 .mdui-col { + float: left; + width: 50%; + } + .mdui-col-lg-3 { + float: left; + width: 25%; + } + .mdui-col-offset-lg-3 { + margin-left: 25%; + } + .mdui-row-lg-3 .mdui-col { + float: left; + width: 33.333333%; + } + .mdui-col-lg-4 { + float: left; + width: 33.333333%; + } + .mdui-col-offset-lg-4 { + margin-left: 33.333333%; + } + .mdui-row-lg-4 .mdui-col { + float: left; + width: 25%; + } + .mdui-col-lg-5 { + float: left; + width: 41.666667%; + } + .mdui-col-offset-lg-5 { + margin-left: 41.666667%; + } + .mdui-row-lg-5 .mdui-col { + float: left; + width: 20%; + } + .mdui-col-lg-6 { + float: left; + width: 50%; + } + .mdui-col-offset-lg-6 { + margin-left: 50%; + } + .mdui-row-lg-6 .mdui-col { + float: left; + width: 16.666667%; + } + .mdui-col-lg-7 { + float: left; + width: 58.333333%; + } + .mdui-col-offset-lg-7 { + margin-left: 58.333333%; + } + .mdui-row-lg-7 .mdui-col { + float: left; + width: 14.285714%; + } + .mdui-col-lg-8 { + float: left; + width: 66.666667%; + } + .mdui-col-offset-lg-8 { + margin-left: 66.666667%; + } + .mdui-row-lg-8 .mdui-col { + float: left; + width: 12.5%; + } + .mdui-col-lg-9 { + float: left; + width: 75%; + } + .mdui-col-offset-lg-9 { + margin-left: 75%; + } + .mdui-row-lg-9 .mdui-col { + float: left; + width: 11.111111%; + } + .mdui-col-lg-10 { + float: left; + width: 83.333333%; + } + .mdui-col-offset-lg-10 { + margin-left: 83.333333%; + } + .mdui-row-lg-10 .mdui-col { + float: left; + width: 10%; + } + .mdui-col-lg-11 { + float: left; + width: 91.666667%; + } + .mdui-col-offset-lg-11 { + margin-left: 91.666667%; + } + .mdui-row-lg-11 .mdui-col { + float: left; + width: 9.090909%; + } + .mdui-col-lg-12 { + float: left; + width: 100%; + } + .mdui-col-offset-lg-12 { + margin-left: 100%; + } + .mdui-row-lg-12 .mdui-col { + float: left; + width: 8.333333%; + } +} +@media (min-width: 1920px) { + .mdui-col-xl-1 { + float: left; + width: 8.333333%; + } + .mdui-col-offset-xl-1 { + margin-left: 8.333333%; + } + .mdui-row-xl-1 .mdui-col { + float: left; + width: 100%; + } + .mdui-col-xl-2 { + float: left; + width: 16.666667%; + } + .mdui-col-offset-xl-2 { + margin-left: 16.666667%; + } + .mdui-row-xl-2 .mdui-col { + float: left; + width: 50%; + } + .mdui-col-xl-3 { + float: left; + width: 25%; + } + .mdui-col-offset-xl-3 { + margin-left: 25%; + } + .mdui-row-xl-3 .mdui-col { + float: left; + width: 33.333333%; + } + .mdui-col-xl-4 { + float: left; + width: 33.333333%; + } + .mdui-col-offset-xl-4 { + margin-left: 33.333333%; + } + .mdui-row-xl-4 .mdui-col { + float: left; + width: 25%; + } + .mdui-col-xl-5 { + float: left; + width: 41.666667%; + } + .mdui-col-offset-xl-5 { + margin-left: 41.666667%; + } + .mdui-row-xl-5 .mdui-col { + float: left; + width: 20%; + } + .mdui-col-xl-6 { + float: left; + width: 50%; + } + .mdui-col-offset-xl-6 { + margin-left: 50%; + } + .mdui-row-xl-6 .mdui-col { + float: left; + width: 16.666667%; + } + .mdui-col-xl-7 { + float: left; + width: 58.333333%; + } + .mdui-col-offset-xl-7 { + margin-left: 58.333333%; + } + .mdui-row-xl-7 .mdui-col { + float: left; + width: 14.285714%; + } + .mdui-col-xl-8 { + float: left; + width: 66.666667%; + } + .mdui-col-offset-xl-8 { + margin-left: 66.666667%; + } + .mdui-row-xl-8 .mdui-col { + float: left; + width: 12.5%; + } + .mdui-col-xl-9 { + float: left; + width: 75%; + } + .mdui-col-offset-xl-9 { + margin-left: 75%; + } + .mdui-row-xl-9 .mdui-col { + float: left; + width: 11.111111%; + } + .mdui-col-xl-10 { + float: left; + width: 83.333333%; + } + .mdui-col-offset-xl-10 { + margin-left: 83.333333%; + } + .mdui-row-xl-10 .mdui-col { + float: left; + width: 10%; + } + .mdui-col-xl-11 { + float: left; + width: 91.666667%; + } + .mdui-col-offset-xl-11 { + margin-left: 91.666667%; + } + .mdui-row-xl-11 .mdui-col { + float: left; + width: 9.090909%; + } + .mdui-col-xl-12 { + float: left; + width: 100%; + } + .mdui-col-offset-xl-12 { + margin-left: 100%; + } + .mdui-row-xl-12 .mdui-col { + float: left; + width: 8.333333%; + } +} +/** + * ============================================================================= + * ************ Shadow 阴影 ************ + * ============================================================================= + */ +.mdui-shadow-0 { + -webkit-box-shadow: none !important; + box-shadow: none !important; +} +.mdui-shadow-1 { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-2 { + -webkit-box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-3 { + -webkit-box-shadow: 0 3px 3px -2px rgba(0, 0, 0, 0.2), 0 3px 4px 0 rgba(0, 0, 0, 0.14), 0 1px 8px 0 rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 3px 3px -2px rgba(0, 0, 0, 0.2), 0 3px 4px 0 rgba(0, 0, 0, 0.14), 0 1px 8px 0 rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-4 { + -webkit-box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-5 { + -webkit-box-shadow: 0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 5px 8px 0 rgba(0, 0, 0, 0.14), 0 1px 14px 0 rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 5px 8px 0 rgba(0, 0, 0, 0.14), 0 1px 14px 0 rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-6 { + -webkit-box-shadow: 0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-7 { + -webkit-box-shadow: 0 4px 5px -2px rgba(0, 0, 0, 0.2), 0 7px 10px 1px rgba(0, 0, 0, 0.14), 0 2px 16px 1px rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 4px 5px -2px rgba(0, 0, 0, 0.2), 0 7px 10px 1px rgba(0, 0, 0, 0.14), 0 2px 16px 1px rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-8 { + -webkit-box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-9 { + -webkit-box-shadow: 0 5px 6px -3px rgba(0, 0, 0, 0.2), 0 9px 12px 1px rgba(0, 0, 0, 0.14), 0 3px 16px 2px rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 5px 6px -3px rgba(0, 0, 0, 0.2), 0 9px 12px 1px rgba(0, 0, 0, 0.14), 0 3px 16px 2px rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-10 { + -webkit-box-shadow: 0 6px 6px -3px rgba(0, 0, 0, 0.2), 0 10px 14px 1px rgba(0, 0, 0, 0.14), 0 4px 18px 3px rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 6px 6px -3px rgba(0, 0, 0, 0.2), 0 10px 14px 1px rgba(0, 0, 0, 0.14), 0 4px 18px 3px rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-11 { + -webkit-box-shadow: 0 6px 7px -4px rgba(0, 0, 0, 0.2), 0 11px 15px 1px rgba(0, 0, 0, 0.14), 0 4px 20px 3px rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 6px 7px -4px rgba(0, 0, 0, 0.2), 0 11px 15px 1px rgba(0, 0, 0, 0.14), 0 4px 20px 3px rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-12 { + -webkit-box-shadow: 0 7px 8px -4px rgba(0, 0, 0, 0.2), 0 12px 17px 2px rgba(0, 0, 0, 0.14), 0 5px 22px 4px rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 7px 8px -4px rgba(0, 0, 0, 0.2), 0 12px 17px 2px rgba(0, 0, 0, 0.14), 0 5px 22px 4px rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-13 { + -webkit-box-shadow: 0 7px 8px -4px rgba(0, 0, 0, 0.2), 0 13px 19px 2px rgba(0, 0, 0, 0.14), 0 5px 24px 4px rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 7px 8px -4px rgba(0, 0, 0, 0.2), 0 13px 19px 2px rgba(0, 0, 0, 0.14), 0 5px 24px 4px rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-14 { + -webkit-box-shadow: 0 7px 9px -4px rgba(0, 0, 0, 0.2), 0 14px 21px 2px rgba(0, 0, 0, 0.14), 0 5px 26px 4px rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 7px 9px -4px rgba(0, 0, 0, 0.2), 0 14px 21px 2px rgba(0, 0, 0, 0.14), 0 5px 26px 4px rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-15 { + -webkit-box-shadow: 0 8px 9px -5px rgba(0, 0, 0, 0.2), 0 15px 22px 2px rgba(0, 0, 0, 0.14), 0 6px 28px 5px rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 8px 9px -5px rgba(0, 0, 0, 0.2), 0 15px 22px 2px rgba(0, 0, 0, 0.14), 0 6px 28px 5px rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-16 { + -webkit-box-shadow: 0 8px 10px -5px rgba(0, 0, 0, 0.2), 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 8px 10px -5px rgba(0, 0, 0, 0.2), 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-17 { + -webkit-box-shadow: 0 8px 11px -5px rgba(0, 0, 0, 0.2), 0 17px 26px 2px rgba(0, 0, 0, 0.14), 0 6px 32px 5px rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 8px 11px -5px rgba(0, 0, 0, 0.2), 0 17px 26px 2px rgba(0, 0, 0, 0.14), 0 6px 32px 5px rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-18 { + -webkit-box-shadow: 0 9px 11px -5px rgba(0, 0, 0, 0.2), 0 18px 28px 2px rgba(0, 0, 0, 0.14), 0 7px 34px 6px rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 9px 11px -5px rgba(0, 0, 0, 0.2), 0 18px 28px 2px rgba(0, 0, 0, 0.14), 0 7px 34px 6px rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-19 { + -webkit-box-shadow: 0 9px 12px -6px rgba(0, 0, 0, 0.2), 0 19px 29px 2px rgba(0, 0, 0, 0.14), 0 7px 36px 6px rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 9px 12px -6px rgba(0, 0, 0, 0.2), 0 19px 29px 2px rgba(0, 0, 0, 0.14), 0 7px 36px 6px rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-20 { + -webkit-box-shadow: 0 10px 13px -6px rgba(0, 0, 0, 0.2), 0 20px 31px 3px rgba(0, 0, 0, 0.14), 0 8px 38px 7px rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 10px 13px -6px rgba(0, 0, 0, 0.2), 0 20px 31px 3px rgba(0, 0, 0, 0.14), 0 8px 38px 7px rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-21 { + -webkit-box-shadow: 0 10px 13px -6px rgba(0, 0, 0, 0.2), 0 21px 33px 3px rgba(0, 0, 0, 0.14), 0 8px 40px 7px rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 10px 13px -6px rgba(0, 0, 0, 0.2), 0 21px 33px 3px rgba(0, 0, 0, 0.14), 0 8px 40px 7px rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-22 { + -webkit-box-shadow: 0 10px 14px -6px rgba(0, 0, 0, 0.2), 0 22px 35px 3px rgba(0, 0, 0, 0.14), 0 8px 42px 7px rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 10px 14px -6px rgba(0, 0, 0, 0.2), 0 22px 35px 3px rgba(0, 0, 0, 0.14), 0 8px 42px 7px rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-23 { + -webkit-box-shadow: 0 11px 14px -7px rgba(0, 0, 0, 0.2), 0 23px 36px 3px rgba(0, 0, 0, 0.14), 0 9px 44px 8px rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 11px 14px -7px rgba(0, 0, 0, 0.2), 0 23px 36px 3px rgba(0, 0, 0, 0.14), 0 9px 44px 8px rgba(0, 0, 0, 0.12) !important; +} +.mdui-shadow-24 { + -webkit-box-shadow: 0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12) !important; +} +/* 鼠标悬浮时加深阴影 */ +.mdui-hoverable { + -webkit-transition: -webkit-box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1); + transition: -webkit-box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1); + transition: box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1); + transition: box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1); + will-change: box-shadow; +} +.mdui-hoverable:hover, +.mdui-hoverable:focus { + -webkit-box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12); + box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12); +} +/** + * ============================================================================= + * ************ Headroom ************ + * ============================================================================= + */ +.mdui-headroom { + -webkit-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important; + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important; +} +/* 固定在顶部时 */ +.mdui-headroom-pinned-top { + -webkit-transform: translate3d(0, 0, 0) !important; + transform: translate3d(0, 0, 0) !important; +} +/* 在顶部隐藏时 */ +.mdui-headroom-unpinned-top { + -webkit-transform: translate3d(0, -100%, 0) !important; + transform: translate3d(0, -100%, 0) !important; + -webkit-box-shadow: none !important; + box-shadow: none !important; +} +/* 固定在底部时 */ +.mdui-headroom-pinned-down { + -webkit-transform: translate3d(0, 0, 0) !important; + transform: translate3d(0, 0, 0) !important; +} +/* 在底部隐藏时 */ +.mdui-headroom-unpinned-down { + -webkit-transform: translate3d(0, 100%, 0) !important; + transform: translate3d(0, 100%, 0) !important; + -webkit-box-shadow: none !important; + box-shadow: none !important; +} +/* 固定应用栏中的工具栏 */ +.mdui-headroom-pinned-toolbar { + -webkit-transform: translate3d(0, 0, 0) !important; + transform: translate3d(0, 0, 0) !important; +} +/* 隐藏应用栏中的工具栏 */ +.mdui-headroom-unpinned-toolbar { + -webkit-transform: translate3d(0, -56px, 0) !important; + transform: translate3d(0, -56px, 0) !important; +} +@media (min-width: 600px) { + .mdui-headroom-unpinned-toolbar { + -webkit-transform: translate3d(0, -64px, 0) !important; + transform: translate3d(0, -64px, 0) !important; + } +} +@media (orientation: landscape) and (max-width: 959.9px) { + .mdui-headroom-unpinned-toolbar { + -webkit-transform: translate3d(0, -48px, 0) !important; + transform: translate3d(0, -48px, 0) !important; + } +} +/** + * ============================================================================= + * ************ Collapse 折叠插件 ************ + * ============================================================================= + */ +.mdui-collapse-item-header .mdui-collapse-item-arrow, +.mdui-collapse-item-header.mdui-collapse-item-arrow { + -webkit-transform: rotate(0); + transform: rotate(0); + -webkit-transition: -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); + transition: -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); + transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); + transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); + will-change: transform; +} +.mdui-collapse-item-body { + height: 0; + margin-top: 0; + margin-bottom: 0; + padding-top: 0; + padding-bottom: 0; + overflow: hidden; + -webkit-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + will-change: height; +} +.mdui-collapse-item-body .mdui-list-item { + padding-left: 72px; +} +.mdui-collapse-item-open > .mdui-collapse-item-header .mdui-collapse-item-arrow, +.mdui-collapse-item-open > .mdui-collapse-item-header.mdui-collapse-item-arrow { + -webkit-transform: rotate(180deg); + transform: rotate(180deg); +} +.mdui-collapse-item-open > .mdui-collapse-item-body { + height: auto; +} +/** + * ============================================================================= + * ************ Expansion panel 可扩展面板 ************ + * ============================================================================= + */ +/* 可扩展面板 */ +.mdui-panel { + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; +} +/* 面板项 */ +.mdui-panel-item { + color: rgba(0, 0, 0, 0.87); + background-color: #fff; + -webkit-transition: margin 0.3s cubic-bezier(0.4, 0, 0.2, 1); + transition: margin 0.3s cubic-bezier(0.4, 0, 0.2, 1); + will-change: margin; + border-bottom: 1px solid rgba(0, 0, 0, 0.12); + -webkit-box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); + box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); +} +.mdui-panel-item:last-child { + border-bottom: none; +} +/* 面板头部 */ +.mdui-panel-item-header { + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; + height: 48px; + padding: 0 24px; + font-size: 15px; + cursor: pointer; + -webkit-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + will-change: height, background-color; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.mdui-panel-item-header:active { + background-color: #EEEEEE; +} +/* 面板项标题 */ +.mdui-panel-item-title { + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 36%; + min-width: 36%; + padding-right: 16px; + font-weight: 500; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +/* 面板项内容 */ +.mdui-panel-item-summary { + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding-right: 16px; + color: rgba(0, 0, 0, 0.54); + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +/* 展开收起的图标 */ +.mdui-panel-item-arrow { + position: absolute; + top: 12px; + right: 24px; + color: rgba(0, 0, 0, 0.54); + -webkit-transform: rotate(0); + transform: rotate(0); + -webkit-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + will-change: transform, top; +} +.mdui-panel-item-summary + .mdui-panel-item-arrow { + position: relative; + top: 0 !important; + right: 0; +} +/* 面板项内容 */ +.mdui-panel-item-body { + height: 0; + padding: 0 24px; + overflow: hidden; + -webkit-transition: height 0.3s cubic-bezier(0.4, 0, 0.2, 1); + transition: height 0.3s cubic-bezier(0.4, 0, 0.2, 1); + will-change: height; +} +.mdui-panel-item-body::before, +.mdui-panel-item-body::after { + display: table; + content: ' '; +} +.mdui-panel-item-body::after { + clear: both; +} +.mdui-panel-item-body::before, +.mdui-panel-item-body::after { + display: table; + content: ' '; +} +.mdui-panel-item-body::after { + clear: both; +} +.mdui-panel-item-body::after { + height: 16px; +} +/* 面板项操作栏 */ +.mdui-panel-item-actions { + display: block; + width: 100%; + margin: 16px -24px 0 -24px; + padding: 16px 24px 0 24px; + text-align: right; + border-top: 1px solid rgba(0, 0, 0, 0.12); +} +.mdui-panel-item-actions .mdui-btn { + margin-left: 8px; +} +.mdui-panel-item-actions .mdui-btn:first-child { + margin-left: 0; +} +/* 打开状态的面板项 */ +.mdui-panel-item-open { + height: auto; + margin-top: 16px; + margin-bottom: 16px; +} +.mdui-panel-item-open > .mdui-panel-item-header { + height: 64px; +} +.mdui-panel-item-open > .mdui-panel-item-header .mdui-panel-item-arrow { + top: 20px; + -webkit-transform: rotate(180deg); + transform: rotate(180deg); +} +.mdui-panel-item-open > .mdui-panel-item-body { + height: auto; +} +/* 使打开项上下没有边距 */ +.mdui-panel-gapless { + -webkit-box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); + box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); +} +.mdui-panel-gapless .mdui-panel-item { + -webkit-box-shadow: none; + box-shadow: none; +} +.mdui-panel-gapless .mdui-panel-item-open { + margin-top: 0; + margin-bottom: 0; +} +/* 弹出面板 */ +.mdui-panel-popout .mdui-panel-item-open { + margin-right: -16px; + margin-left: -16px; +} +/** + * ============================================================================= + * ************ Expansion panel dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark { + /* stylelint-disable-next-line */ +} +.mdui-theme-layout-dark .mdui-panel-item { + color: #fff; + background-color: #303030; + border-bottom: 1px solid rgba(255, 255, 255, 0.12); +} +.mdui-theme-layout-dark .mdui-panel-item:last-child { + border-bottom: none; +} +.mdui-theme-layout-dark .mdui-panel-item-header:active { + background-color: #424242; +} +.mdui-theme-layout-dark .mdui-panel-item-summary { + color: rgba(255, 255, 255, 0.7); +} +.mdui-theme-layout-dark .mdui-panel-item-arrow { + color: #ffffff; +} +.mdui-theme-layout-dark .mdui-panel-item-actions { + border-top: 1px solid rgba(255, 255, 255, 0.12); +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto { + /* stylelint-disable-next-line */ + } + .mdui-theme-layout-auto .mdui-panel-item { + color: #fff; + background-color: #303030; + border-bottom: 1px solid rgba(255, 255, 255, 0.12); + } + .mdui-theme-layout-auto .mdui-panel-item:last-child { + border-bottom: none; + } + .mdui-theme-layout-auto .mdui-panel-item-header:active { + background-color: #424242; + } + .mdui-theme-layout-auto .mdui-panel-item-summary { + color: rgba(255, 255, 255, 0.7); + } + .mdui-theme-layout-auto .mdui-panel-item-arrow { + color: #ffffff; + } + .mdui-theme-layout-auto .mdui-panel-item-actions { + border-top: 1px solid rgba(255, 255, 255, 0.12); + } +} +/** + * ============================================================================= + * ************ Table 表格 ************ + * ============================================================================= + */ +.mdui-table { + position: relative; + width: 100%; + background-color: #fff; + border: 1px solid rgba(0, 0, 0, 0.12); + border-bottom: none; + border-collapse: separate; + border-spacing: 0; + -webkit-box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); + box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); +} +.mdui-table tbody tr { + position: relative; + -webkit-transition: background-color 0.28s cubic-bezier(0.4, 0, 0.2, 1); + transition: background-color 0.28s cubic-bezier(0.4, 0, 0.2, 1); +} +.mdui-table th, +.mdui-table td { + position: relative; + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding: 12px 28px; + text-align: left; + vertical-align: middle; + border-bottom: 1px solid rgba(0, 0, 0, 0.12); +} +.mdui-table th { + color: rgba(0, 0, 0, 0.54); + font-weight: 700; + font-size: 13px; + line-height: 32px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.mdui-table td { + color: rgba(0, 0, 0, 0.87); + font-size: 14px; + line-height: 24px; +} +/* 每一行前面的复选框 */ +.mdui-table-cell-checkbox { + padding-top: 0 !important; + padding-bottom: 0 !important; + padding-left: 24px !important; +} +.mdui-table-cell-checkbox .mdui-checkbox { + margin-top: 7px; +} +.mdui-table-cell-checkbox + td, +.mdui-table-cell-checkbox + th { + padding-left: 6px !important; +} +th.mdui-table-cell-checkbox .mdui-checkbox { + margin-top: 11px; +} +.mdui-table th:last-child, +.mdui-table td:last-child { + padding-right: 24px; +} +.mdui-table th:first-child, +.mdui-table td:first-child { + padding-right: 0; + padding-left: 24px; +} +.mdui-table th:nth-child(2), +.mdui-table td:nth-child(2) { + padding-left: 24px; +} +/* 鼠标悬浮时行背景加深 */ +.mdui-table-hoverable tbody tr:hover { + background-color: #EEEEEE; +} +/* 表格放到该元素内,使表格产生滚动条时只在该元素内滚动 */ +.mdui-table-fluid { + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + border: 1px solid rgba(0, 0, 0, 0.12); + border-bottom: none; + -webkit-box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); + box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); +} +.mdui-table-fluid .mdui-table { + -webkit-box-shadow: none; + box-shadow: none; + margin: 0; + border: none; +} +/* 数字列,右对齐 */ +.mdui-table-col-numeric { + text-align: right !important; +} +/* 行处于选中状态 */ +.mdui-table-row-selected { + background-color: #F5F5F5; +} +/** + * ============================================================================= + * ************ Table dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark .mdui-table { + background-color: #303030; + border: 1px solid rgba(255, 255, 255, 0.12); + border-bottom: none; +} +.mdui-theme-layout-dark .mdui-table th, +.mdui-theme-layout-dark .mdui-table td { + border-bottom: 1px solid rgba(255, 255, 255, 0.12); +} +.mdui-theme-layout-dark .mdui-table th { + color: rgba(255, 255, 255, 0.7); +} +.mdui-theme-layout-dark .mdui-table td { + color: #ffffff; +} +.mdui-theme-layout-dark .mdui-table-hoverable tbody tr:hover { + background-color: #616161; +} +.mdui-theme-layout-dark .mdui-table-fluid { + border: 1px solid rgba(255, 255, 255, 0.12); + border-bottom: none; +} +.mdui-theme-layout-dark .mdui-table-fluid .mdui-table { + -webkit-box-shadow: none; + box-shadow: none; + border: none; +} +.mdui-theme-layout-dark .mdui-table-row-selected { + background-color: #424242; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto .mdui-table { + background-color: #303030; + border: 1px solid rgba(255, 255, 255, 0.12); + border-bottom: none; + } + .mdui-theme-layout-auto .mdui-table th, + .mdui-theme-layout-auto .mdui-table td { + border-bottom: 1px solid rgba(255, 255, 255, 0.12); + } + .mdui-theme-layout-auto .mdui-table th { + color: rgba(255, 255, 255, 0.7); + } + .mdui-theme-layout-auto .mdui-table td { + color: #ffffff; + } + .mdui-theme-layout-auto .mdui-table-hoverable tbody tr:hover { + background-color: #616161; + } + .mdui-theme-layout-auto .mdui-table-fluid { + border: 1px solid rgba(255, 255, 255, 0.12); + border-bottom: none; + } + .mdui-theme-layout-auto .mdui-table-fluid .mdui-table { + -webkit-box-shadow: none; + box-shadow: none; + border: none; + } + .mdui-theme-layout-auto .mdui-table-row-selected { + background-color: #424242; + } +} +/** + * ============================================================================= + * ************ Divider 分割线 ************ + * ============================================================================= + */ +.mdui-divider, +.mdui-divider-light, +.mdui-divider-dark, +.mdui-divider-inset, +.mdui-divider-inset-light, +.mdui-divider-inset-dark { + height: 1px; + margin: -1px 0 0 0; + border: none; +} +.mdui-divider-inset, +.mdui-divider-inset-light, +.mdui-divider-inset-dark { + margin-left: 72px; +} +.mdui-divider, +.mdui-divider-inset { + background-color: rgba(0, 0, 0, 0.12); +} +.mdui-divider-light, +.mdui-divider-inset-light { + background-color: rgba(255, 255, 255, 0.12); +} +.mdui-divider-dark, +.mdui-divider-inset-dark { + background-color: rgba(0, 0, 0, 0.12); +} +/** + * ============================================================================= + * ************ Divider dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark .mdui-divider, +.mdui-theme-layout-dark .mdui-divider-inset { + background-color: rgba(255, 255, 255, 0.12); +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto .mdui-divider, + .mdui-theme-layout-auto .mdui-divider-inset { + background-color: rgba(255, 255, 255, 0.12); + } +} +/** + * ============================================================================= + * ************ 涟漪动画 ************ + * ============================================================================= + */ +.mdui-ripple { + position: relative; + overflow: hidden; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +/* Ripple */ +.mdui-ripple-wave { + position: absolute !important; + top: 0; + left: 0; + z-index: 1; + margin: 0; + padding: 0; + font-size: 0; + background-color: rgba(0, 0, 0, 0.1); + border-radius: 50%; + -webkit-transform: translate3d(0, 0, 0) scale(0); + transform: translate3d(0, 0, 0) scale(0); + -webkit-transition-duration: 1400ms; + transition-duration: 1400ms; + pointer-events: none; +} +/* 有背景色的默认使用白色涟漪 */ +.mdui-ripple[class*="mdui-color-"] .mdui-ripple-wave { + background-color: rgba(255, 255, 255, 0.3); +} +/* 白色涟漪 */ +.mdui-ripple-white .mdui-ripple-wave { + background-color: rgba(255, 255, 255, 0.3) !important; +} +/* 黑色涟漪 */ +.mdui-ripple-black .mdui-ripple-wave { + background-color: rgba(0, 0, 0, 0.1) !important; +} +.mdui-ripple-wave-fill { + opacity: 0.35; + -webkit-transition-duration: 300ms; + transition-duration: 300ms; +} +.mdui-ripple-wave-out { + opacity: 0; + -webkit-transition-duration: 600ms; + transition-duration: 600ms; +} +/** + * ============================================================================= + * ************ Ripple 颜色 ************ + * ============================================================================= + */ +.mdui-ripple-amber .mdui-ripple-wave { + background-color: rgba(255, 193, 7, 0.3) !important; +} +.mdui-ripple-blue .mdui-ripple-wave { + background-color: rgba(33, 150, 243, 0.3) !important; +} +.mdui-ripple-blue-grey .mdui-ripple-wave { + background-color: rgba(96, 125, 139, 0.3) !important; +} +.mdui-ripple-brown .mdui-ripple-wave { + background-color: rgba(121, 85, 72, 0.3) !important; +} +.mdui-ripple-cyan .mdui-ripple-wave { + background-color: rgba(0, 188, 212, 0.3) !important; +} +.mdui-ripple-deep-orange .mdui-ripple-wave { + background-color: rgba(255, 87, 34, 0.3) !important; +} +.mdui-ripple-deep-purple .mdui-ripple-wave { + background-color: rgba(103, 58, 183, 0.3) !important; +} +.mdui-ripple-green .mdui-ripple-wave { + background-color: rgba(76, 175, 80, 0.3) !important; +} +.mdui-ripple-grey .mdui-ripple-wave { + background-color: rgba(158, 158, 158, 0.3) !important; +} +.mdui-ripple-indigo .mdui-ripple-wave { + background-color: rgba(63, 81, 181, 0.3) !important; +} +.mdui-ripple-light-blue .mdui-ripple-wave { + background-color: rgba(3, 169, 244, 0.3) !important; +} +.mdui-ripple-light-green .mdui-ripple-wave { + background-color: rgba(139, 195, 74, 0.3) !important; +} +.mdui-ripple-lime .mdui-ripple-wave { + background-color: rgba(205, 220, 57, 0.3) !important; +} +.mdui-ripple-orange .mdui-ripple-wave { + background-color: rgba(255, 152, 0, 0.3) !important; +} +.mdui-ripple-pink .mdui-ripple-wave { + background-color: rgba(233, 30, 99, 0.3) !important; +} +.mdui-ripple-purple .mdui-ripple-wave { + background-color: rgba(156, 39, 176, 0.3) !important; +} +.mdui-ripple-red .mdui-ripple-wave { + background-color: rgba(244, 67, 54, 0.3) !important; +} +.mdui-ripple-teal .mdui-ripple-wave { + background-color: rgba(0, 150, 136, 0.3) !important; +} +.mdui-ripple-yellow .mdui-ripple-wave { + background-color: rgba(255, 235, 59, 0.3) !important; +} +/** + * ============================================================================= + * ************ Ripple dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark .mdui-ripple-wave { + background-color: rgba(255, 255, 255, 0.3); +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto .mdui-ripple-wave { + background-color: rgba(255, 255, 255, 0.3); + } +} +/** + * ============================================================================= + * ************ Text Field 文本框 ************ + * ============================================================================= + */ +/* 文本框外层 */ +.mdui-textfield { + position: relative; + padding-top: 16px; + padding-bottom: 8px; + overflow: hidden; +} +.mdui-textfield-has-bottom { + padding-bottom: 28px; +} +/* 输入框 */ +.mdui-textfield-input { + display: block; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; + height: 36px; + margin: 0; + padding: 8px 0; + overflow: hidden; + color: rgba(0, 0, 0, 0.87); + font-size: 16px; + font-family: inherit; + line-height: 20px; + background: none; + border: none; + border-bottom: 1px solid rgba(0, 0, 0, 0.42); + border-radius: 0; + outline: none; + -webkit-box-shadow: none; + box-shadow: none; + -webkit-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + -webkit-transition-duration: 0.2s; + transition-duration: 0.2s; + -webkit-transition-property: border-bottom-color, padding-right, -webkit-box-shadow; + transition-property: border-bottom-color, padding-right, -webkit-box-shadow; + transition-property: border-bottom-color, padding-right, box-shadow; + transition-property: border-bottom-color, padding-right, box-shadow, -webkit-box-shadow; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + resize: none; +} +.mdui-textfield-input::-webkit-input-placeholder { + color: inherit; + opacity: 0.42; +} +.mdui-textfield-input:not([disabled]):hover { + border-bottom: 1px solid rgba(0, 0, 0, 0.87); + -webkit-box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.87); + box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.87); + cursor: pointer; +} +.mdui-textfield-input[rows] { + height: auto !important; + overflow: auto; + -webkit-overflow-scrolling: touch; +} +/* 文本框 label */ +.mdui-textfield-label { + display: block; + width: 100%; + color: rgba(0, 0, 0, 0.54); + font-size: 16px; + -webkit-transform: scale(0.75) translateY(0); + transform: scale(0.75) translateY(0); + -webkit-transform-origin: left; + transform-origin: left; + -webkit-transition: all 0.2s; + transition: all 0.2s; + pointer-events: none; +} +/* 表单验证错误提示、帮助文本提示 */ +.mdui-textfield-error, +.mdui-textfield-helper { + position: absolute; + bottom: 8px; + height: 12px; + font-size: 12px; + line-height: 12px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.mdui-textfield-error { + color: rgba(255, 23, 68, 0.87); + visibility: hidden; +} +.mdui-textfield-helper { + color: rgba(0, 0, 0, 0.54); +} +/* 表单中的图标 + ========== */ +.mdui-textfield .mdui-icon { + position: absolute; + bottom: 8px; + padding: 6px; + color: rgba(0, 0, 0, 0.54); +} +.mdui-textfield .mdui-icon ~ .mdui-textfield-label, +.mdui-textfield .mdui-icon ~ .mdui-textfield-input, +.mdui-textfield .mdui-icon ~ .mdui-textfield-error, +.mdui-textfield .mdui-icon ~ .mdui-textfield-helper, +.mdui-textfield .mdui-icon ~ .mdui-textfield-flex-wrap { + /* stylelint-disable-next-line */ + width: calc(100% - 56px); + margin-left: 56px; +} +.mdui-textfield-has-bottom .mdui-icon { + bottom: 28px; +} +/* 聚焦状态的文本框 + ============= */ +.mdui-textfield-focus .mdui-textfield-input, +.mdui-textfield-focus .mdui-textfield-input:hover { + border-bottom-color: #C51162; + -webkit-box-shadow: 0 1px 0 0 #C51162; + box-shadow: 0 1px 0 0 #C51162; +} +.mdui-textfield-focus .mdui-textfield-label, +.mdui-textfield-focus .mdui-icon { + color: rgba(197, 17, 98, 0.87); +} +/* 含有浮动标签的文本框 + ================ */ +.mdui-textfield-floating-label .mdui-textfield-label { + color: rgba(0, 0, 0, 0.35); + -webkit-transform: scale(1) translateY(27px); + transform: scale(1) translateY(27px); +} +.mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-textfield-floating-label.mdui-textfield-not-empty .mdui-textfield-label { + color: rgba(0, 0, 0, 0.65); + -webkit-transform: scale(0.75) translateY(0); + transform: scale(0.75) translateY(0); +} +.mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label { + color: #E91E63; +} +/* 可展开文本框,默认向右展开 + ========== */ +.mdui-textfield-expandable { + width: 36px; + min-height: 36px; + padding: 1px 0; + -webkit-transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1); + transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1); +} +.mdui-textfield-expandable .mdui-icon { + bottom: 0; + padding: 0; +} +.mdui-textfield-expandable .mdui-textfield-input { + /* stylelint-disable-next-line */ + width: calc(100% - 36px); + margin-left: 36px; + padding-right: 0; +} +.mdui-textfield-expandable .mdui-textfield-icon { + position: absolute; + top: 0; + left: 0; +} +.mdui-textfield-expandable .mdui-textfield-close { + position: absolute; + top: 0; + right: 0; + -webkit-transform: scale(0); + transform: scale(0); +} +.mdui-textfield-expandable.mdui-textfield-expanded { + width: 100%; +} +.mdui-textfield-expandable.mdui-textfield-expanded .mdui-textfield-input { + padding-right: 36px; +} +.mdui-textfield-expandable.mdui-textfield-expanded .mdui-textfield-close { + -webkit-transform: scale(1); + transform: scale(1); +} +/* 表单验证不通过 + =========== */ +.mdui-textfield-invalid .mdui-textfield-input, +.mdui-textfield-invalid-html5 .mdui-textfield-input, +.mdui-textfield-invalid.mdui-textfield-focus .mdui-textfield-input, +.mdui-textfield-invalid-html5.mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #FF1744 !important; + -webkit-box-shadow: 0 1px 0 0 #FF1744 !important; + box-shadow: 0 1px 0 0 #FF1744 !important; +} +.mdui-textfield-invalid .mdui-textfield-label, +.mdui-textfield-invalid-html5 .mdui-textfield-label { + color: #FF1744 !important; +} +.mdui-textfield-invalid.mdui-textfield-floating-label .mdui-textfield-label, +.mdui-textfield-invalid-html5.mdui-textfield-floating-label .mdui-textfield-label { + color: rgba(255, 23, 68, 0.35) !important; +} +.mdui-textfield-invalid.mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-textfield-invalid-html5.mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-textfield-invalid.mdui-textfield-floating-label.mdui-textfield-not-empty .mdui-textfield-label, +.mdui-textfield-invalid-html5.mdui-textfield-floating-label.mdui-textfield-not-empty .mdui-textfield-label { + color: #FF1744 !important; +} +.mdui-textfield-invalid .mdui-textfield-error, +.mdui-textfield-invalid-html5 .mdui-textfield-error { + visibility: visible; +} +.mdui-textfield-invalid .mdui-textfield-error + .mdui-textfield-helper, +.mdui-textfield-invalid-html5 .mdui-textfield-error + .mdui-textfield-helper { + visibility: hidden; +} +/* 禁用表单 + ====== */ +.mdui-textfield-disabled .mdui-textfield-label, +.mdui-textfield-disabled .mdui-textfield-input::-webkit-input-placeholder { + color: rgba(0, 0, 0, 0.38); +} +.mdui-textfield-disabled .mdui-textfield-input { + color: rgba(0, 0, 0, 0.42); + cursor: default; +} +.mdui-textfield-disabled .mdui-textfield-input { + border-bottom: 1px dashed rgba(0, 0, 0, 0.42); +} +/* 字数统计 + ====== */ +.mdui-textfield-counter { + position: absolute; + right: 8px; + bottom: 8px; + height: 12px; + color: rgba(0, 0, 0, 0.54); + font-size: 12px; + line-height: 12px; +} +/** + * ============================================================================= + * ************ Textfield dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark .mdui-textfield-input { + color: #fff; + border-bottom-color: rgba(255, 255, 255, 0.7); +} +.mdui-theme-layout-dark .mdui-textfield-input::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.5); +} +.mdui-theme-layout-dark .mdui-textfield-input:not([disabled]):hover { + border-bottom-color: #ffffff; + -webkit-box-shadow: 0 1px 0 0 #ffffff; + box-shadow: 0 1px 0 0 #ffffff; +} +.mdui-theme-layout-dark .mdui-textfield .mdui-icon { + color: rgba(255, 255, 255, 0.7); +} +.mdui-theme-layout-dark .mdui-textfield-label { + color: rgba(255, 255, 255, 0.7); +} +.mdui-theme-layout-dark .mdui-textfield-floating-label .mdui-textfield-label { + color: rgba(255, 255, 255, 0.35); +} +.mdui-theme-layout-dark .mdui-textfield-error { + color: #FF1744; +} +.mdui-theme-layout-dark .mdui-textfield-helper { + color: rgba(255, 255, 255, 0.7); +} +.mdui-theme-layout-dark .mdui-textfield-counter { + color: rgba(255, 255, 255, 0.7); +} +.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input, +.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input:hover { + border-bottom-color: #FF4081; + -webkit-box-shadow: 0 1px 0 0 #FF4081; + box-shadow: 0 1px 0 0 #FF4081; +} +.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label { + color: #FF4081; +} +.mdui-theme-layout-dark .mdui-textfield-disabled .mdui-textfield-label, +.mdui-theme-layout-dark .mdui-textfield-disabled .mdui-textfield-input::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.5); +} +.mdui-theme-layout-dark .mdui-textfield-disabled .mdui-textfield-input { + color: rgba(255, 255, 255, 0.5); +} +.mdui-theme-layout-dark .mdui-textfield-disabled .mdui-textfield-input { + border-bottom-color: rgba(255, 255, 255, 0.7); +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto .mdui-textfield-input { + color: #fff; + border-bottom-color: rgba(255, 255, 255, 0.7); + } + .mdui-theme-layout-auto .mdui-textfield-input::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.5); + } + .mdui-theme-layout-auto .mdui-textfield-input:not([disabled]):hover { + border-bottom-color: #ffffff; + -webkit-box-shadow: 0 1px 0 0 #ffffff; + box-shadow: 0 1px 0 0 #ffffff; + } + .mdui-theme-layout-auto .mdui-textfield .mdui-icon { + color: rgba(255, 255, 255, 0.7); + } + .mdui-theme-layout-auto .mdui-textfield-label { + color: rgba(255, 255, 255, 0.7); + } + .mdui-theme-layout-auto .mdui-textfield-floating-label .mdui-textfield-label { + color: rgba(255, 255, 255, 0.35); + } + .mdui-theme-layout-auto .mdui-textfield-error { + color: #FF1744; + } + .mdui-theme-layout-auto .mdui-textfield-helper { + color: rgba(255, 255, 255, 0.7); + } + .mdui-theme-layout-auto .mdui-textfield-counter { + color: rgba(255, 255, 255, 0.7); + } + .mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input, + .mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input:hover { + border-bottom-color: #FF4081; + -webkit-box-shadow: 0 1px 0 0 #FF4081; + box-shadow: 0 1px 0 0 #FF4081; + } + .mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label { + color: #FF4081; + } + .mdui-theme-layout-auto .mdui-textfield-disabled .mdui-textfield-label, + .mdui-theme-layout-auto .mdui-textfield-disabled .mdui-textfield-input::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.5); + } + .mdui-theme-layout-auto .mdui-textfield-disabled .mdui-textfield-input { + color: rgba(255, 255, 255, 0.5); + } + .mdui-theme-layout-auto .mdui-textfield-disabled .mdui-textfield-input { + border-bottom-color: rgba(255, 255, 255, 0.7); + } +} +/** + * ============================================================================= + * ************ Textfield 强调色 ************ + * ============================================================================= + */ +.mdui-theme-accent-amber .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #FFAB00; + -webkit-box-shadow: 0 1px 0 0 #FFAB00; + box-shadow: 0 1px 0 0 #FFAB00; +} +.mdui-theme-accent-amber .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-amber .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-amber .mdui-textfield-focus .mdui-icon { + color: rgba(255, 171, 0, 0.87); +} +.mdui-theme-accent-amber.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #FFD740; + -webkit-box-shadow: 0 1px 0 0 #FFD740; + box-shadow: 0 1px 0 0 #FFD740; +} +.mdui-theme-accent-amber.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-amber.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-amber.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon { + color: #FFD740; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-accent-amber.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #FFD740; + -webkit-box-shadow: 0 1px 0 0 #FFD740; + box-shadow: 0 1px 0 0 #FFD740; + } + .mdui-theme-accent-amber.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-amber.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-amber.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon { + color: #FFD740; + } +} +.mdui-theme-accent-blue .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #2962FF; + -webkit-box-shadow: 0 1px 0 0 #2962FF; + box-shadow: 0 1px 0 0 #2962FF; +} +.mdui-theme-accent-blue .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-blue .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-blue .mdui-textfield-focus .mdui-icon { + color: rgba(41, 98, 255, 0.87); +} +.mdui-theme-accent-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #448AFF; + -webkit-box-shadow: 0 1px 0 0 #448AFF; + box-shadow: 0 1px 0 0 #448AFF; +} +.mdui-theme-accent-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon { + color: #448AFF; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-accent-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #448AFF; + -webkit-box-shadow: 0 1px 0 0 #448AFF; + box-shadow: 0 1px 0 0 #448AFF; + } + .mdui-theme-accent-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon { + color: #448AFF; + } +} +.mdui-theme-accent-cyan .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #00B8D4; + -webkit-box-shadow: 0 1px 0 0 #00B8D4; + box-shadow: 0 1px 0 0 #00B8D4; +} +.mdui-theme-accent-cyan .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-cyan .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-cyan .mdui-textfield-focus .mdui-icon { + color: rgba(0, 184, 212, 0.87); +} +.mdui-theme-accent-cyan.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #18FFFF; + -webkit-box-shadow: 0 1px 0 0 #18FFFF; + box-shadow: 0 1px 0 0 #18FFFF; +} +.mdui-theme-accent-cyan.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-cyan.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-cyan.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon { + color: #18FFFF; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-accent-cyan.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #18FFFF; + -webkit-box-shadow: 0 1px 0 0 #18FFFF; + box-shadow: 0 1px 0 0 #18FFFF; + } + .mdui-theme-accent-cyan.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-cyan.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-cyan.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon { + color: #18FFFF; + } +} +.mdui-theme-accent-deep-orange .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #DD2C00; + -webkit-box-shadow: 0 1px 0 0 #DD2C00; + box-shadow: 0 1px 0 0 #DD2C00; +} +.mdui-theme-accent-deep-orange .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-deep-orange .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-deep-orange .mdui-textfield-focus .mdui-icon { + color: rgba(221, 44, 0, 0.87); +} +.mdui-theme-accent-deep-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #FF6E40; + -webkit-box-shadow: 0 1px 0 0 #FF6E40; + box-shadow: 0 1px 0 0 #FF6E40; +} +.mdui-theme-accent-deep-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-deep-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-deep-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon { + color: #FF6E40; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-accent-deep-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #FF6E40; + -webkit-box-shadow: 0 1px 0 0 #FF6E40; + box-shadow: 0 1px 0 0 #FF6E40; + } + .mdui-theme-accent-deep-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-deep-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-deep-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon { + color: #FF6E40; + } +} +.mdui-theme-accent-deep-purple .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #6200EA; + -webkit-box-shadow: 0 1px 0 0 #6200EA; + box-shadow: 0 1px 0 0 #6200EA; +} +.mdui-theme-accent-deep-purple .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-deep-purple .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-deep-purple .mdui-textfield-focus .mdui-icon { + color: rgba(98, 0, 234, 0.87); +} +.mdui-theme-accent-deep-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #7C4DFF; + -webkit-box-shadow: 0 1px 0 0 #7C4DFF; + box-shadow: 0 1px 0 0 #7C4DFF; +} +.mdui-theme-accent-deep-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-deep-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-deep-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon { + color: #7C4DFF; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-accent-deep-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #7C4DFF; + -webkit-box-shadow: 0 1px 0 0 #7C4DFF; + box-shadow: 0 1px 0 0 #7C4DFF; + } + .mdui-theme-accent-deep-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-deep-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-deep-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon { + color: #7C4DFF; + } +} +.mdui-theme-accent-green .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #00C853; + -webkit-box-shadow: 0 1px 0 0 #00C853; + box-shadow: 0 1px 0 0 #00C853; +} +.mdui-theme-accent-green .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-green .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-green .mdui-textfield-focus .mdui-icon { + color: rgba(0, 200, 83, 0.87); +} +.mdui-theme-accent-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #69F0AE; + -webkit-box-shadow: 0 1px 0 0 #69F0AE; + box-shadow: 0 1px 0 0 #69F0AE; +} +.mdui-theme-accent-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon { + color: #69F0AE; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-accent-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #69F0AE; + -webkit-box-shadow: 0 1px 0 0 #69F0AE; + box-shadow: 0 1px 0 0 #69F0AE; + } + .mdui-theme-accent-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon { + color: #69F0AE; + } +} +.mdui-theme-accent-indigo .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #304FFE; + -webkit-box-shadow: 0 1px 0 0 #304FFE; + box-shadow: 0 1px 0 0 #304FFE; +} +.mdui-theme-accent-indigo .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-indigo .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-indigo .mdui-textfield-focus .mdui-icon { + color: rgba(48, 79, 254, 0.87); +} +.mdui-theme-accent-indigo.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #536DFE; + -webkit-box-shadow: 0 1px 0 0 #536DFE; + box-shadow: 0 1px 0 0 #536DFE; +} +.mdui-theme-accent-indigo.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-indigo.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-indigo.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon { + color: #536DFE; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-accent-indigo.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #536DFE; + -webkit-box-shadow: 0 1px 0 0 #536DFE; + box-shadow: 0 1px 0 0 #536DFE; + } + .mdui-theme-accent-indigo.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-indigo.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-indigo.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon { + color: #536DFE; + } +} +.mdui-theme-accent-light-blue .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #0091EA; + -webkit-box-shadow: 0 1px 0 0 #0091EA; + box-shadow: 0 1px 0 0 #0091EA; +} +.mdui-theme-accent-light-blue .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-light-blue .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-light-blue .mdui-textfield-focus .mdui-icon { + color: rgba(0, 145, 234, 0.87); +} +.mdui-theme-accent-light-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #40C4FF; + -webkit-box-shadow: 0 1px 0 0 #40C4FF; + box-shadow: 0 1px 0 0 #40C4FF; +} +.mdui-theme-accent-light-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-light-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-light-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon { + color: #40C4FF; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-accent-light-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #40C4FF; + -webkit-box-shadow: 0 1px 0 0 #40C4FF; + box-shadow: 0 1px 0 0 #40C4FF; + } + .mdui-theme-accent-light-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-light-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-light-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon { + color: #40C4FF; + } +} +.mdui-theme-accent-light-green .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #64DD17; + -webkit-box-shadow: 0 1px 0 0 #64DD17; + box-shadow: 0 1px 0 0 #64DD17; +} +.mdui-theme-accent-light-green .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-light-green .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-light-green .mdui-textfield-focus .mdui-icon { + color: rgba(100, 221, 23, 0.87); +} +.mdui-theme-accent-light-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #B2FF59; + -webkit-box-shadow: 0 1px 0 0 #B2FF59; + box-shadow: 0 1px 0 0 #B2FF59; +} +.mdui-theme-accent-light-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-light-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-light-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon { + color: #B2FF59; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-accent-light-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #B2FF59; + -webkit-box-shadow: 0 1px 0 0 #B2FF59; + box-shadow: 0 1px 0 0 #B2FF59; + } + .mdui-theme-accent-light-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-light-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-light-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon { + color: #B2FF59; + } +} +.mdui-theme-accent-lime .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #AEEA00; + -webkit-box-shadow: 0 1px 0 0 #AEEA00; + box-shadow: 0 1px 0 0 #AEEA00; +} +.mdui-theme-accent-lime .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-lime .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-lime .mdui-textfield-focus .mdui-icon { + color: rgba(174, 234, 0, 0.87); +} +.mdui-theme-accent-lime.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #EEFF41; + -webkit-box-shadow: 0 1px 0 0 #EEFF41; + box-shadow: 0 1px 0 0 #EEFF41; +} +.mdui-theme-accent-lime.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-lime.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-lime.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon { + color: #EEFF41; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-accent-lime.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #EEFF41; + -webkit-box-shadow: 0 1px 0 0 #EEFF41; + box-shadow: 0 1px 0 0 #EEFF41; + } + .mdui-theme-accent-lime.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-lime.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-lime.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon { + color: #EEFF41; + } +} +.mdui-theme-accent-orange .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #FF6D00; + -webkit-box-shadow: 0 1px 0 0 #FF6D00; + box-shadow: 0 1px 0 0 #FF6D00; +} +.mdui-theme-accent-orange .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-orange .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-orange .mdui-textfield-focus .mdui-icon { + color: rgba(255, 109, 0, 0.87); +} +.mdui-theme-accent-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #FFAB40; + -webkit-box-shadow: 0 1px 0 0 #FFAB40; + box-shadow: 0 1px 0 0 #FFAB40; +} +.mdui-theme-accent-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon { + color: #FFAB40; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-accent-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #FFAB40; + -webkit-box-shadow: 0 1px 0 0 #FFAB40; + box-shadow: 0 1px 0 0 #FFAB40; + } + .mdui-theme-accent-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon { + color: #FFAB40; + } +} +.mdui-theme-accent-pink .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #C51162; + -webkit-box-shadow: 0 1px 0 0 #C51162; + box-shadow: 0 1px 0 0 #C51162; +} +.mdui-theme-accent-pink .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-pink .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-pink .mdui-textfield-focus .mdui-icon { + color: rgba(197, 17, 98, 0.87); +} +.mdui-theme-accent-pink.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #FF4081; + -webkit-box-shadow: 0 1px 0 0 #FF4081; + box-shadow: 0 1px 0 0 #FF4081; +} +.mdui-theme-accent-pink.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-pink.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-pink.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon { + color: #FF4081; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-accent-pink.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #FF4081; + -webkit-box-shadow: 0 1px 0 0 #FF4081; + box-shadow: 0 1px 0 0 #FF4081; + } + .mdui-theme-accent-pink.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-pink.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-pink.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon { + color: #FF4081; + } +} +.mdui-theme-accent-purple .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #AA00FF; + -webkit-box-shadow: 0 1px 0 0 #AA00FF; + box-shadow: 0 1px 0 0 #AA00FF; +} +.mdui-theme-accent-purple .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-purple .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-purple .mdui-textfield-focus .mdui-icon { + color: rgba(170, 0, 255, 0.87); +} +.mdui-theme-accent-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #E040FB; + -webkit-box-shadow: 0 1px 0 0 #E040FB; + box-shadow: 0 1px 0 0 #E040FB; +} +.mdui-theme-accent-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon { + color: #E040FB; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-accent-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #E040FB; + -webkit-box-shadow: 0 1px 0 0 #E040FB; + box-shadow: 0 1px 0 0 #E040FB; + } + .mdui-theme-accent-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon { + color: #E040FB; + } +} +.mdui-theme-accent-red .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #D50000; + -webkit-box-shadow: 0 1px 0 0 #D50000; + box-shadow: 0 1px 0 0 #D50000; +} +.mdui-theme-accent-red .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-red .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-red .mdui-textfield-focus .mdui-icon { + color: rgba(213, 0, 0, 0.87); +} +.mdui-theme-accent-red.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #FF5252; + -webkit-box-shadow: 0 1px 0 0 #FF5252; + box-shadow: 0 1px 0 0 #FF5252; +} +.mdui-theme-accent-red.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-red.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-red.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon { + color: #FF5252; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-accent-red.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #FF5252; + -webkit-box-shadow: 0 1px 0 0 #FF5252; + box-shadow: 0 1px 0 0 #FF5252; + } + .mdui-theme-accent-red.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-red.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-red.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon { + color: #FF5252; + } +} +.mdui-theme-accent-teal .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #00BFA5; + -webkit-box-shadow: 0 1px 0 0 #00BFA5; + box-shadow: 0 1px 0 0 #00BFA5; +} +.mdui-theme-accent-teal .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-teal .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-teal .mdui-textfield-focus .mdui-icon { + color: rgba(0, 191, 165, 0.87); +} +.mdui-theme-accent-teal.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #64FFDA; + -webkit-box-shadow: 0 1px 0 0 #64FFDA; + box-shadow: 0 1px 0 0 #64FFDA; +} +.mdui-theme-accent-teal.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-teal.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-teal.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon { + color: #64FFDA; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-accent-teal.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #64FFDA; + -webkit-box-shadow: 0 1px 0 0 #64FFDA; + box-shadow: 0 1px 0 0 #64FFDA; + } + .mdui-theme-accent-teal.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-teal.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-teal.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon { + color: #64FFDA; + } +} +.mdui-theme-accent-yellow .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #FFD600; + -webkit-box-shadow: 0 1px 0 0 #FFD600; + box-shadow: 0 1px 0 0 #FFD600; +} +.mdui-theme-accent-yellow .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-yellow .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-yellow .mdui-textfield-focus .mdui-icon { + color: rgba(255, 214, 0, 0.87); +} +.mdui-theme-accent-yellow.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #FFFF00; + -webkit-box-shadow: 0 1px 0 0 #FFFF00; + box-shadow: 0 1px 0 0 #FFFF00; +} +.mdui-theme-accent-yellow.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-yellow.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, +.mdui-theme-accent-yellow.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon { + color: #FFFF00; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-accent-yellow.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input { + border-bottom-color: #FFFF00; + -webkit-box-shadow: 0 1px 0 0 #FFFF00; + box-shadow: 0 1px 0 0 #FFFF00; + } + .mdui-theme-accent-yellow.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-yellow.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label, + .mdui-theme-accent-yellow.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon { + color: #FFFF00; + } +} +/** + * ============================================================================= + * ************ Checkbox 复选框 ************ + * ============================================================================= + */ +.mdui-checkbox { + position: relative; + display: inline-block; + height: 36px; + padding-left: 36px; + line-height: 36px; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.mdui-checkbox input[type="checkbox"] { + position: absolute; + width: 0; + height: 0; + overflow: hidden; + opacity: 0; +} +/* 透明的圆形,用于生成圆形阴影 */ +.mdui-checkbox-icon { + position: absolute; + top: 9px; + left: 0; + display: inline-block; + width: 18px; + height: 18px; + vertical-align: middle; + background-color: transparent; + border: none; + border-radius: 18px; + -webkit-transition: -webkit-box-shadow 0.14s cubic-bezier(0.4, 0, 0.2, 1); + transition: -webkit-box-shadow 0.14s cubic-bezier(0.4, 0, 0.2, 1); + transition: box-shadow 0.14s cubic-bezier(0.4, 0, 0.2, 1); + transition: box-shadow 0.14s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.14s cubic-bezier(0.4, 0, 0.2, 1); +} +.mdui-checkbox-icon::after { + position: absolute; + top: 0; + left: 0; + z-index: 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 18px; + height: 18px; + border: 2px solid rgba(0, 0, 0, 0.54); + border-radius: 2px; + -webkit-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + content: ' '; +} +.mdui-checkbox-icon::before { + position: absolute; + top: 2px; + left: 0; + z-index: 1; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 8px; + height: 13px; + border-right: 2px solid #fff; + border-bottom: 2px solid #fff; + -webkit-transform: rotateZ(37deg) scale(0); + transform: rotateZ(37deg) scale(0); + -webkit-transform-origin: 100% 100%; + transform-origin: 100% 100%; + opacity: 0; + -webkit-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + content: ' '; +} +/* 各种状态的图标 */ +.mdui-checkbox input[type="checkbox"]:checked + .mdui-checkbox-icon::after { + background-color: #FF4081; + border-color: #FF4081; +} +.mdui-checkbox input[type="checkbox"]:checked + .mdui-checkbox-icon::before { + -webkit-transform: rotateZ(37deg) scale(1); + transform: rotateZ(37deg) scale(1); + opacity: 1; +} +.mdui-checkbox input[type="checkbox"]:indeterminate + .mdui-checkbox-icon::after { + background-color: #FF4081; + border-color: #FF4081; +} +.mdui-checkbox input[type="checkbox"]:indeterminate + .mdui-checkbox-icon::before { + top: 8px; + left: 3px; + width: 12px; + height: 0; + border-right: none; + border-bottom: 2px solid #fff; + border-radius: 1px; + -webkit-transform: rotateZ(0) scale(1); + transform: rotateZ(0) scale(1); + opacity: 1; +} +.mdui-checkbox input[type="checkbox"]:disabled + .mdui-checkbox-icon::after { + border-color: rgba(0, 0, 0, 0.26); +} +.mdui-checkbox input[type="checkbox"]:disabled:checked + .mdui-checkbox-icon::after, +.mdui-checkbox input[type="checkbox"]:disabled:indeterminate + .mdui-checkbox-icon::after { + background-color: rgba(0, 0, 0, 0.26) !important; + border-color: transparent !important; +} +/* 阴影 */ +.mdui-checkbox:active input[type="checkbox"] + .mdui-checkbox-icon, +.mdui-checkbox input[type="checkbox"]:focus + .mdui-checkbox-icon { + -webkit-box-shadow: 0 0 0 15px rgba(0, 0, 0, 0.1); + box-shadow: 0 0 0 15px rgba(0, 0, 0, 0.1); +} +.mdui-checkbox:active input[type="checkbox"]:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-checkbox input[type="checkbox"]:focus:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-checkbox:active input[type="checkbox"]:not(:disabled):indeterminate + .mdui-checkbox-icon, +.mdui-checkbox input[type="checkbox"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon { + -webkit-box-shadow: 0 0 0 15px rgba(255, 64, 129, 0.16); + box-shadow: 0 0 0 15px rgba(255, 64, 129, 0.16); +} +/** + * ============================================================================= + * ************ Checkbox 强调色 ************ + * ============================================================================= + */ +.mdui-theme-accent-amber .mdui-checkbox input[type="checkbox"]:checked + .mdui-checkbox-icon::after, +.mdui-theme-accent-amber .mdui-checkbox input[type="checkbox"]:indeterminate + .mdui-checkbox-icon::after { + background-color: #FFD740; + border-color: #FFD740; +} +.mdui-theme-accent-amber .mdui-checkbox:active input[type="checkbox"]:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-amber .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-amber .mdui-checkbox:active input[type="checkbox"]:not(:disabled):indeterminate + .mdui-checkbox-icon, +.mdui-theme-accent-amber .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon { + -webkit-box-shadow: 0 0 0 15px rgba(255, 215, 64, 0.16); + box-shadow: 0 0 0 15px rgba(255, 215, 64, 0.16); +} +.mdui-theme-accent-blue .mdui-checkbox input[type="checkbox"]:checked + .mdui-checkbox-icon::after, +.mdui-theme-accent-blue .mdui-checkbox input[type="checkbox"]:indeterminate + .mdui-checkbox-icon::after { + background-color: #448AFF; + border-color: #448AFF; +} +.mdui-theme-accent-blue .mdui-checkbox:active input[type="checkbox"]:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-blue .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-blue .mdui-checkbox:active input[type="checkbox"]:not(:disabled):indeterminate + .mdui-checkbox-icon, +.mdui-theme-accent-blue .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon { + -webkit-box-shadow: 0 0 0 15px rgba(68, 138, 255, 0.16); + box-shadow: 0 0 0 15px rgba(68, 138, 255, 0.16); +} +.mdui-theme-accent-cyan .mdui-checkbox input[type="checkbox"]:checked + .mdui-checkbox-icon::after, +.mdui-theme-accent-cyan .mdui-checkbox input[type="checkbox"]:indeterminate + .mdui-checkbox-icon::after { + background-color: #18FFFF; + border-color: #18FFFF; +} +.mdui-theme-accent-cyan .mdui-checkbox:active input[type="checkbox"]:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-cyan .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-cyan .mdui-checkbox:active input[type="checkbox"]:not(:disabled):indeterminate + .mdui-checkbox-icon, +.mdui-theme-accent-cyan .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon { + -webkit-box-shadow: 0 0 0 15px rgba(24, 255, 255, 0.16); + box-shadow: 0 0 0 15px rgba(24, 255, 255, 0.16); +} +.mdui-theme-accent-deep-orange .mdui-checkbox input[type="checkbox"]:checked + .mdui-checkbox-icon::after, +.mdui-theme-accent-deep-orange .mdui-checkbox input[type="checkbox"]:indeterminate + .mdui-checkbox-icon::after { + background-color: #FF6E40; + border-color: #FF6E40; +} +.mdui-theme-accent-deep-orange .mdui-checkbox:active input[type="checkbox"]:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-deep-orange .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-deep-orange .mdui-checkbox:active input[type="checkbox"]:not(:disabled):indeterminate + .mdui-checkbox-icon, +.mdui-theme-accent-deep-orange .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon { + -webkit-box-shadow: 0 0 0 15px rgba(255, 110, 64, 0.16); + box-shadow: 0 0 0 15px rgba(255, 110, 64, 0.16); +} +.mdui-theme-accent-deep-purple .mdui-checkbox input[type="checkbox"]:checked + .mdui-checkbox-icon::after, +.mdui-theme-accent-deep-purple .mdui-checkbox input[type="checkbox"]:indeterminate + .mdui-checkbox-icon::after { + background-color: #7C4DFF; + border-color: #7C4DFF; +} +.mdui-theme-accent-deep-purple .mdui-checkbox:active input[type="checkbox"]:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-deep-purple .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-deep-purple .mdui-checkbox:active input[type="checkbox"]:not(:disabled):indeterminate + .mdui-checkbox-icon, +.mdui-theme-accent-deep-purple .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon { + -webkit-box-shadow: 0 0 0 15px rgba(124, 77, 255, 0.16); + box-shadow: 0 0 0 15px rgba(124, 77, 255, 0.16); +} +.mdui-theme-accent-green .mdui-checkbox input[type="checkbox"]:checked + .mdui-checkbox-icon::after, +.mdui-theme-accent-green .mdui-checkbox input[type="checkbox"]:indeterminate + .mdui-checkbox-icon::after { + background-color: #69F0AE; + border-color: #69F0AE; +} +.mdui-theme-accent-green .mdui-checkbox:active input[type="checkbox"]:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-green .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-green .mdui-checkbox:active input[type="checkbox"]:not(:disabled):indeterminate + .mdui-checkbox-icon, +.mdui-theme-accent-green .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon { + -webkit-box-shadow: 0 0 0 15px rgba(105, 240, 174, 0.16); + box-shadow: 0 0 0 15px rgba(105, 240, 174, 0.16); +} +.mdui-theme-accent-indigo .mdui-checkbox input[type="checkbox"]:checked + .mdui-checkbox-icon::after, +.mdui-theme-accent-indigo .mdui-checkbox input[type="checkbox"]:indeterminate + .mdui-checkbox-icon::after { + background-color: #536DFE; + border-color: #536DFE; +} +.mdui-theme-accent-indigo .mdui-checkbox:active input[type="checkbox"]:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-indigo .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-indigo .mdui-checkbox:active input[type="checkbox"]:not(:disabled):indeterminate + .mdui-checkbox-icon, +.mdui-theme-accent-indigo .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon { + -webkit-box-shadow: 0 0 0 15px rgba(83, 109, 254, 0.16); + box-shadow: 0 0 0 15px rgba(83, 109, 254, 0.16); +} +.mdui-theme-accent-light-blue .mdui-checkbox input[type="checkbox"]:checked + .mdui-checkbox-icon::after, +.mdui-theme-accent-light-blue .mdui-checkbox input[type="checkbox"]:indeterminate + .mdui-checkbox-icon::after { + background-color: #40C4FF; + border-color: #40C4FF; +} +.mdui-theme-accent-light-blue .mdui-checkbox:active input[type="checkbox"]:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-light-blue .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-light-blue .mdui-checkbox:active input[type="checkbox"]:not(:disabled):indeterminate + .mdui-checkbox-icon, +.mdui-theme-accent-light-blue .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon { + -webkit-box-shadow: 0 0 0 15px rgba(64, 196, 255, 0.16); + box-shadow: 0 0 0 15px rgba(64, 196, 255, 0.16); +} +.mdui-theme-accent-light-green .mdui-checkbox input[type="checkbox"]:checked + .mdui-checkbox-icon::after, +.mdui-theme-accent-light-green .mdui-checkbox input[type="checkbox"]:indeterminate + .mdui-checkbox-icon::after { + background-color: #B2FF59; + border-color: #B2FF59; +} +.mdui-theme-accent-light-green .mdui-checkbox:active input[type="checkbox"]:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-light-green .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-light-green .mdui-checkbox:active input[type="checkbox"]:not(:disabled):indeterminate + .mdui-checkbox-icon, +.mdui-theme-accent-light-green .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon { + -webkit-box-shadow: 0 0 0 15px rgba(178, 255, 89, 0.16); + box-shadow: 0 0 0 15px rgba(178, 255, 89, 0.16); +} +.mdui-theme-accent-lime .mdui-checkbox input[type="checkbox"]:checked + .mdui-checkbox-icon::after, +.mdui-theme-accent-lime .mdui-checkbox input[type="checkbox"]:indeterminate + .mdui-checkbox-icon::after { + background-color: #EEFF41; + border-color: #EEFF41; +} +.mdui-theme-accent-lime .mdui-checkbox:active input[type="checkbox"]:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-lime .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-lime .mdui-checkbox:active input[type="checkbox"]:not(:disabled):indeterminate + .mdui-checkbox-icon, +.mdui-theme-accent-lime .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon { + -webkit-box-shadow: 0 0 0 15px rgba(238, 255, 65, 0.16); + box-shadow: 0 0 0 15px rgba(238, 255, 65, 0.16); +} +.mdui-theme-accent-orange .mdui-checkbox input[type="checkbox"]:checked + .mdui-checkbox-icon::after, +.mdui-theme-accent-orange .mdui-checkbox input[type="checkbox"]:indeterminate + .mdui-checkbox-icon::after { + background-color: #FFAB40; + border-color: #FFAB40; +} +.mdui-theme-accent-orange .mdui-checkbox:active input[type="checkbox"]:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-orange .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-orange .mdui-checkbox:active input[type="checkbox"]:not(:disabled):indeterminate + .mdui-checkbox-icon, +.mdui-theme-accent-orange .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon { + -webkit-box-shadow: 0 0 0 15px rgba(255, 171, 64, 0.16); + box-shadow: 0 0 0 15px rgba(255, 171, 64, 0.16); +} +.mdui-theme-accent-pink .mdui-checkbox input[type="checkbox"]:checked + .mdui-checkbox-icon::after, +.mdui-theme-accent-pink .mdui-checkbox input[type="checkbox"]:indeterminate + .mdui-checkbox-icon::after { + background-color: #FF4081; + border-color: #FF4081; +} +.mdui-theme-accent-pink .mdui-checkbox:active input[type="checkbox"]:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-pink .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-pink .mdui-checkbox:active input[type="checkbox"]:not(:disabled):indeterminate + .mdui-checkbox-icon, +.mdui-theme-accent-pink .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon { + -webkit-box-shadow: 0 0 0 15px rgba(255, 64, 129, 0.16); + box-shadow: 0 0 0 15px rgba(255, 64, 129, 0.16); +} +.mdui-theme-accent-purple .mdui-checkbox input[type="checkbox"]:checked + .mdui-checkbox-icon::after, +.mdui-theme-accent-purple .mdui-checkbox input[type="checkbox"]:indeterminate + .mdui-checkbox-icon::after { + background-color: #E040FB; + border-color: #E040FB; +} +.mdui-theme-accent-purple .mdui-checkbox:active input[type="checkbox"]:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-purple .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-purple .mdui-checkbox:active input[type="checkbox"]:not(:disabled):indeterminate + .mdui-checkbox-icon, +.mdui-theme-accent-purple .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon { + -webkit-box-shadow: 0 0 0 15px rgba(224, 64, 251, 0.16); + box-shadow: 0 0 0 15px rgba(224, 64, 251, 0.16); +} +.mdui-theme-accent-red .mdui-checkbox input[type="checkbox"]:checked + .mdui-checkbox-icon::after, +.mdui-theme-accent-red .mdui-checkbox input[type="checkbox"]:indeterminate + .mdui-checkbox-icon::after { + background-color: #FF5252; + border-color: #FF5252; +} +.mdui-theme-accent-red .mdui-checkbox:active input[type="checkbox"]:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-red .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-red .mdui-checkbox:active input[type="checkbox"]:not(:disabled):indeterminate + .mdui-checkbox-icon, +.mdui-theme-accent-red .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon { + -webkit-box-shadow: 0 0 0 15px rgba(255, 82, 82, 0.16); + box-shadow: 0 0 0 15px rgba(255, 82, 82, 0.16); +} +.mdui-theme-accent-teal .mdui-checkbox input[type="checkbox"]:checked + .mdui-checkbox-icon::after, +.mdui-theme-accent-teal .mdui-checkbox input[type="checkbox"]:indeterminate + .mdui-checkbox-icon::after { + background-color: #64FFDA; + border-color: #64FFDA; +} +.mdui-theme-accent-teal .mdui-checkbox:active input[type="checkbox"]:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-teal .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-teal .mdui-checkbox:active input[type="checkbox"]:not(:disabled):indeterminate + .mdui-checkbox-icon, +.mdui-theme-accent-teal .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon { + -webkit-box-shadow: 0 0 0 15px rgba(100, 255, 218, 0.16); + box-shadow: 0 0 0 15px rgba(100, 255, 218, 0.16); +} +.mdui-theme-accent-yellow .mdui-checkbox input[type="checkbox"]:checked + .mdui-checkbox-icon::after, +.mdui-theme-accent-yellow .mdui-checkbox input[type="checkbox"]:indeterminate + .mdui-checkbox-icon::after { + background-color: #FFFF00; + border-color: #FFFF00; +} +.mdui-theme-accent-yellow .mdui-checkbox:active input[type="checkbox"]:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-yellow .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):checked + .mdui-checkbox-icon, +.mdui-theme-accent-yellow .mdui-checkbox:active input[type="checkbox"]:not(:disabled):indeterminate + .mdui-checkbox-icon, +.mdui-theme-accent-yellow .mdui-checkbox input[type="checkbox"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon { + -webkit-box-shadow: 0 0 0 15px rgba(255, 255, 0, 0.16); + box-shadow: 0 0 0 15px rgba(255, 255, 0, 0.16); +} +/** + * ============================================================================= + * ************ Checkbox dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark .mdui-checkbox-icon::after { + border-color: rgba(255, 255, 255, 0.7); +} +.mdui-theme-layout-dark .mdui-checkbox-icon::before { + border-right-color: #303030 !important; + border-bottom-color: #303030 !important; +} +.mdui-theme-layout-dark .mdui-checkbox input[type="checkbox"]:disabled + .mdui-checkbox-icon::after { + border-color: rgba(255, 255, 255, 0.3); +} +.mdui-theme-layout-dark .mdui-checkbox input[type="checkbox"]:disabled:checked + .mdui-checkbox-icon::after, +.mdui-theme-layout-dark .mdui-checkbox input[type="checkbox"]:disabled:indeterminate + .mdui-checkbox-icon::after { + background-color: rgba(255, 255, 255, 0.3) !important; + border-color: transparent !important; +} +.mdui-theme-layout-dark .mdui-checkbox:active input[type="checkbox"] + .mdui-checkbox-icon, +.mdui-theme-layout-dark .mdui-checkbox input[type="checkbox"]:focus + .mdui-checkbox-icon { + -webkit-box-shadow: 0 0 0 15px rgba(255, 255, 255, 0.1); + box-shadow: 0 0 0 15px rgba(255, 255, 255, 0.1); +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto .mdui-checkbox-icon::after { + border-color: rgba(255, 255, 255, 0.7); + } + .mdui-theme-layout-auto .mdui-checkbox-icon::before { + border-right-color: #303030 !important; + border-bottom-color: #303030 !important; + } + .mdui-theme-layout-auto .mdui-checkbox input[type="checkbox"]:disabled + .mdui-checkbox-icon::after { + border-color: rgba(255, 255, 255, 0.3); + } + .mdui-theme-layout-auto .mdui-checkbox input[type="checkbox"]:disabled:checked + .mdui-checkbox-icon::after, + .mdui-theme-layout-auto .mdui-checkbox input[type="checkbox"]:disabled:indeterminate + .mdui-checkbox-icon::after { + background-color: rgba(255, 255, 255, 0.3) !important; + border-color: transparent !important; + } + .mdui-theme-layout-auto .mdui-checkbox:active input[type="checkbox"] + .mdui-checkbox-icon, + .mdui-theme-layout-auto .mdui-checkbox input[type="checkbox"]:focus + .mdui-checkbox-icon { + -webkit-box-shadow: 0 0 0 15px rgba(255, 255, 255, 0.1); + box-shadow: 0 0 0 15px rgba(255, 255, 255, 0.1); + } +} +/** + * ============================================================================= + * ************ Radio 单选框 ************ + * ============================================================================= + */ +.mdui-radio { + position: relative; + display: inline-block; + height: 36px; + padding-left: 36px; + line-height: 36px; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.mdui-radio input { + position: absolute; + width: 0; + height: 0; + overflow: hidden; + opacity: 0; +} +/* 图标外圈 */ +.mdui-radio-icon { + position: absolute; + top: 9px; + left: 0; + display: inline-block; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 18px; + height: 18px; + vertical-align: middle; + border: 2px solid rgba(0, 0, 0, 0.54); + border-radius: 18px; + -webkit-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.14s cubic-bezier(0.4, 0, 0.2, 1); + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.14s cubic-bezier(0.4, 0, 0.2, 1); + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.14s cubic-bezier(0.4, 0, 0.2, 1); + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.14s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.14s cubic-bezier(0.4, 0, 0.2, 1); +} +.mdui-radio-icon::before { + position: absolute; + top: 0; + left: 0; + width: 14px; + height: 14px; + background-color: #FF4081; + border-radius: 14px; + -webkit-transform: scale(0); + transform: scale(0); + opacity: 0; + -webkit-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + content: ' '; +} +/* 选中状态的图标 */ +.mdui-radio input[type="radio"]:checked + .mdui-radio-icon { + border-color: #FF4081; +} +.mdui-radio input[type="radio"]:checked + .mdui-radio-icon::before { + -webkit-transform: scale(0.68); + transform: scale(0.68); + opacity: 1; +} +/* 禁用状态的图标 */ +.mdui-radio input[type="radio"]:disabled + .mdui-radio-icon { + border-color: rgba(0, 0, 0, 0.26) !important; +} +/* 禁用且选中状态的图标 */ +.mdui-radio input[type="radio"]:disabled:checked + .mdui-radio-icon::before { + background-color: rgba(0, 0, 0, 0.26) !important; +} +/* 未选中、禁用时 按下的阴影 */ +.mdui-radio:active input[type="radio"] + .mdui-radio-icon, +.mdui-radio input[type="radio"]:focus + .mdui-radio-icon { + -webkit-box-shadow: 0 0 0 15px rgba(0, 0, 0, 0.1); + box-shadow: 0 0 0 15px rgba(0, 0, 0, 0.1); +} +/* 已选中时按下的阴影 */ +.mdui-radio:active input[type="radio"]:checked:not(:disabled) + .mdui-radio-icon, +.mdui-radio input[type="radio"]:focus:checked:not(:disabled) + .mdui-radio-icon { + -webkit-box-shadow: 0 0 0 15px rgba(255, 64, 129, 0.16); + box-shadow: 0 0 0 15px rgba(255, 64, 129, 0.16); +} +/** + * ============================================================================= + * ************ Radio 强调色 ************ + * ============================================================================= + */ +.mdui-theme-accent-amber .mdui-radio input[type="radio"]:checked + .mdui-radio-icon { + border-color: #FFD740; +} +.mdui-theme-accent-amber .mdui-radio input[type="radio"]:checked + .mdui-radio-icon::before { + background-color: #FFD740; +} +.mdui-theme-accent-amber .mdui-radio:active input[type="radio"]:checked:not(:disabled) + .mdui-radio-icon, +.mdui-theme-accent-amber .mdui-radio input[type="radio"]:focus:checked:not(:disabled) + .mdui-radio-icon { + -webkit-box-shadow: 0 0 0 15px rgba(255, 215, 64, 0.16); + box-shadow: 0 0 0 15px rgba(255, 215, 64, 0.16); +} +.mdui-theme-accent-blue .mdui-radio input[type="radio"]:checked + .mdui-radio-icon { + border-color: #448AFF; +} +.mdui-theme-accent-blue .mdui-radio input[type="radio"]:checked + .mdui-radio-icon::before { + background-color: #448AFF; +} +.mdui-theme-accent-blue .mdui-radio:active input[type="radio"]:checked:not(:disabled) + .mdui-radio-icon, +.mdui-theme-accent-blue .mdui-radio input[type="radio"]:focus:checked:not(:disabled) + .mdui-radio-icon { + -webkit-box-shadow: 0 0 0 15px rgba(68, 138, 255, 0.16); + box-shadow: 0 0 0 15px rgba(68, 138, 255, 0.16); +} +.mdui-theme-accent-cyan .mdui-radio input[type="radio"]:checked + .mdui-radio-icon { + border-color: #18FFFF; +} +.mdui-theme-accent-cyan .mdui-radio input[type="radio"]:checked + .mdui-radio-icon::before { + background-color: #18FFFF; +} +.mdui-theme-accent-cyan .mdui-radio:active input[type="radio"]:checked:not(:disabled) + .mdui-radio-icon, +.mdui-theme-accent-cyan .mdui-radio input[type="radio"]:focus:checked:not(:disabled) + .mdui-radio-icon { + -webkit-box-shadow: 0 0 0 15px rgba(24, 255, 255, 0.16); + box-shadow: 0 0 0 15px rgba(24, 255, 255, 0.16); +} +.mdui-theme-accent-deep-orange .mdui-radio input[type="radio"]:checked + .mdui-radio-icon { + border-color: #FF6E40; +} +.mdui-theme-accent-deep-orange .mdui-radio input[type="radio"]:checked + .mdui-radio-icon::before { + background-color: #FF6E40; +} +.mdui-theme-accent-deep-orange .mdui-radio:active input[type="radio"]:checked:not(:disabled) + .mdui-radio-icon, +.mdui-theme-accent-deep-orange .mdui-radio input[type="radio"]:focus:checked:not(:disabled) + .mdui-radio-icon { + -webkit-box-shadow: 0 0 0 15px rgba(255, 110, 64, 0.16); + box-shadow: 0 0 0 15px rgba(255, 110, 64, 0.16); +} +.mdui-theme-accent-deep-purple .mdui-radio input[type="radio"]:checked + .mdui-radio-icon { + border-color: #7C4DFF; +} +.mdui-theme-accent-deep-purple .mdui-radio input[type="radio"]:checked + .mdui-radio-icon::before { + background-color: #7C4DFF; +} +.mdui-theme-accent-deep-purple .mdui-radio:active input[type="radio"]:checked:not(:disabled) + .mdui-radio-icon, +.mdui-theme-accent-deep-purple .mdui-radio input[type="radio"]:focus:checked:not(:disabled) + .mdui-radio-icon { + -webkit-box-shadow: 0 0 0 15px rgba(124, 77, 255, 0.16); + box-shadow: 0 0 0 15px rgba(124, 77, 255, 0.16); +} +.mdui-theme-accent-green .mdui-radio input[type="radio"]:checked + .mdui-radio-icon { + border-color: #69F0AE; +} +.mdui-theme-accent-green .mdui-radio input[type="radio"]:checked + .mdui-radio-icon::before { + background-color: #69F0AE; +} +.mdui-theme-accent-green .mdui-radio:active input[type="radio"]:checked:not(:disabled) + .mdui-radio-icon, +.mdui-theme-accent-green .mdui-radio input[type="radio"]:focus:checked:not(:disabled) + .mdui-radio-icon { + -webkit-box-shadow: 0 0 0 15px rgba(105, 240, 174, 0.16); + box-shadow: 0 0 0 15px rgba(105, 240, 174, 0.16); +} +.mdui-theme-accent-indigo .mdui-radio input[type="radio"]:checked + .mdui-radio-icon { + border-color: #536DFE; +} +.mdui-theme-accent-indigo .mdui-radio input[type="radio"]:checked + .mdui-radio-icon::before { + background-color: #536DFE; +} +.mdui-theme-accent-indigo .mdui-radio:active input[type="radio"]:checked:not(:disabled) + .mdui-radio-icon, +.mdui-theme-accent-indigo .mdui-radio input[type="radio"]:focus:checked:not(:disabled) + .mdui-radio-icon { + -webkit-box-shadow: 0 0 0 15px rgba(83, 109, 254, 0.16); + box-shadow: 0 0 0 15px rgba(83, 109, 254, 0.16); +} +.mdui-theme-accent-light-blue .mdui-radio input[type="radio"]:checked + .mdui-radio-icon { + border-color: #40C4FF; +} +.mdui-theme-accent-light-blue .mdui-radio input[type="radio"]:checked + .mdui-radio-icon::before { + background-color: #40C4FF; +} +.mdui-theme-accent-light-blue .mdui-radio:active input[type="radio"]:checked:not(:disabled) + .mdui-radio-icon, +.mdui-theme-accent-light-blue .mdui-radio input[type="radio"]:focus:checked:not(:disabled) + .mdui-radio-icon { + -webkit-box-shadow: 0 0 0 15px rgba(64, 196, 255, 0.16); + box-shadow: 0 0 0 15px rgba(64, 196, 255, 0.16); +} +.mdui-theme-accent-light-green .mdui-radio input[type="radio"]:checked + .mdui-radio-icon { + border-color: #B2FF59; +} +.mdui-theme-accent-light-green .mdui-radio input[type="radio"]:checked + .mdui-radio-icon::before { + background-color: #B2FF59; +} +.mdui-theme-accent-light-green .mdui-radio:active input[type="radio"]:checked:not(:disabled) + .mdui-radio-icon, +.mdui-theme-accent-light-green .mdui-radio input[type="radio"]:focus:checked:not(:disabled) + .mdui-radio-icon { + -webkit-box-shadow: 0 0 0 15px rgba(178, 255, 89, 0.16); + box-shadow: 0 0 0 15px rgba(178, 255, 89, 0.16); +} +.mdui-theme-accent-lime .mdui-radio input[type="radio"]:checked + .mdui-radio-icon { + border-color: #EEFF41; +} +.mdui-theme-accent-lime .mdui-radio input[type="radio"]:checked + .mdui-radio-icon::before { + background-color: #EEFF41; +} +.mdui-theme-accent-lime .mdui-radio:active input[type="radio"]:checked:not(:disabled) + .mdui-radio-icon, +.mdui-theme-accent-lime .mdui-radio input[type="radio"]:focus:checked:not(:disabled) + .mdui-radio-icon { + -webkit-box-shadow: 0 0 0 15px rgba(238, 255, 65, 0.16); + box-shadow: 0 0 0 15px rgba(238, 255, 65, 0.16); +} +.mdui-theme-accent-orange .mdui-radio input[type="radio"]:checked + .mdui-radio-icon { + border-color: #FFAB40; +} +.mdui-theme-accent-orange .mdui-radio input[type="radio"]:checked + .mdui-radio-icon::before { + background-color: #FFAB40; +} +.mdui-theme-accent-orange .mdui-radio:active input[type="radio"]:checked:not(:disabled) + .mdui-radio-icon, +.mdui-theme-accent-orange .mdui-radio input[type="radio"]:focus:checked:not(:disabled) + .mdui-radio-icon { + -webkit-box-shadow: 0 0 0 15px rgba(255, 171, 64, 0.16); + box-shadow: 0 0 0 15px rgba(255, 171, 64, 0.16); +} +.mdui-theme-accent-pink .mdui-radio input[type="radio"]:checked + .mdui-radio-icon { + border-color: #FF4081; +} +.mdui-theme-accent-pink .mdui-radio input[type="radio"]:checked + .mdui-radio-icon::before { + background-color: #FF4081; +} +.mdui-theme-accent-pink .mdui-radio:active input[type="radio"]:checked:not(:disabled) + .mdui-radio-icon, +.mdui-theme-accent-pink .mdui-radio input[type="radio"]:focus:checked:not(:disabled) + .mdui-radio-icon { + -webkit-box-shadow: 0 0 0 15px rgba(255, 64, 129, 0.16); + box-shadow: 0 0 0 15px rgba(255, 64, 129, 0.16); +} +.mdui-theme-accent-purple .mdui-radio input[type="radio"]:checked + .mdui-radio-icon { + border-color: #E040FB; +} +.mdui-theme-accent-purple .mdui-radio input[type="radio"]:checked + .mdui-radio-icon::before { + background-color: #E040FB; +} +.mdui-theme-accent-purple .mdui-radio:active input[type="radio"]:checked:not(:disabled) + .mdui-radio-icon, +.mdui-theme-accent-purple .mdui-radio input[type="radio"]:focus:checked:not(:disabled) + .mdui-radio-icon { + -webkit-box-shadow: 0 0 0 15px rgba(224, 64, 251, 0.16); + box-shadow: 0 0 0 15px rgba(224, 64, 251, 0.16); +} +.mdui-theme-accent-red .mdui-radio input[type="radio"]:checked + .mdui-radio-icon { + border-color: #FF5252; +} +.mdui-theme-accent-red .mdui-radio input[type="radio"]:checked + .mdui-radio-icon::before { + background-color: #FF5252; +} +.mdui-theme-accent-red .mdui-radio:active input[type="radio"]:checked:not(:disabled) + .mdui-radio-icon, +.mdui-theme-accent-red .mdui-radio input[type="radio"]:focus:checked:not(:disabled) + .mdui-radio-icon { + -webkit-box-shadow: 0 0 0 15px rgba(255, 82, 82, 0.16); + box-shadow: 0 0 0 15px rgba(255, 82, 82, 0.16); +} +.mdui-theme-accent-teal .mdui-radio input[type="radio"]:checked + .mdui-radio-icon { + border-color: #64FFDA; +} +.mdui-theme-accent-teal .mdui-radio input[type="radio"]:checked + .mdui-radio-icon::before { + background-color: #64FFDA; +} +.mdui-theme-accent-teal .mdui-radio:active input[type="radio"]:checked:not(:disabled) + .mdui-radio-icon, +.mdui-theme-accent-teal .mdui-radio input[type="radio"]:focus:checked:not(:disabled) + .mdui-radio-icon { + -webkit-box-shadow: 0 0 0 15px rgba(100, 255, 218, 0.16); + box-shadow: 0 0 0 15px rgba(100, 255, 218, 0.16); +} +.mdui-theme-accent-yellow .mdui-radio input[type="radio"]:checked + .mdui-radio-icon { + border-color: #FFFF00; +} +.mdui-theme-accent-yellow .mdui-radio input[type="radio"]:checked + .mdui-radio-icon::before { + background-color: #FFFF00; +} +.mdui-theme-accent-yellow .mdui-radio:active input[type="radio"]:checked:not(:disabled) + .mdui-radio-icon, +.mdui-theme-accent-yellow .mdui-radio input[type="radio"]:focus:checked:not(:disabled) + .mdui-radio-icon { + -webkit-box-shadow: 0 0 0 15px rgba(255, 255, 0, 0.16); + box-shadow: 0 0 0 15px rgba(255, 255, 0, 0.16); +} +/** + * ============================================================================= + * ************ Radio dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark .mdui-radio-icon { + border-color: rgba(255, 255, 255, 0.7); +} +.mdui-theme-layout-dark .mdui-radio input[type="radio"]:disabled + .mdui-radio-icon { + border-color: rgba(255, 255, 255, 0.3) !important; +} +.mdui-theme-layout-dark .mdui-radio input[type="radio"]:disabled:checked + .mdui-radio-icon::before { + background-color: rgba(255, 255, 255, 0.3) !important; +} +.mdui-theme-layout-dark .mdui-radio:active input[type="radio"] + .mdui-radio-icon, +.mdui-theme-layout-dark .mdui-radio input[type="radio"]:focus + .mdui-radio-icon { + -webkit-box-shadow: 0 0 0 15px rgba(255, 255, 255, 0.1); + box-shadow: 0 0 0 15px rgba(255, 255, 255, 0.1); +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto .mdui-radio-icon { + border-color: rgba(255, 255, 255, 0.7); + } + .mdui-theme-layout-auto .mdui-radio input[type="radio"]:disabled + .mdui-radio-icon { + border-color: rgba(255, 255, 255, 0.3) !important; + } + .mdui-theme-layout-auto .mdui-radio input[type="radio"]:disabled:checked + .mdui-radio-icon::before { + background-color: rgba(255, 255, 255, 0.3) !important; + } + .mdui-theme-layout-auto .mdui-radio:active input[type="radio"] + .mdui-radio-icon, + .mdui-theme-layout-auto .mdui-radio input[type="radio"]:focus + .mdui-radio-icon { + -webkit-box-shadow: 0 0 0 15px rgba(255, 255, 255, 0.1); + box-shadow: 0 0 0 15px rgba(255, 255, 255, 0.1); + } +} +/** + * ============================================================================= + * ************ Switch 单选框 ************ + * ============================================================================= + */ +.mdui-switch { + display: inline-block; + height: 36px; + line-height: 36px; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.mdui-switch input { + position: absolute; + width: 0; + height: 0; + overflow: hidden; + opacity: 0; +} +/* 图标轨道 */ +.mdui-switch-icon { + position: relative; + display: inline-block; + width: 36px; + height: 14px; + vertical-align: middle; + background-color: rgba(0, 0, 0, 0.38); + border-radius: 14px; + -webkit-transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1); + transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1); +} +.mdui-switch-icon::before { + position: absolute; + top: -3px; + left: -3px; + display: inline-block; + width: 20px; + height: 20px; + background-color: #FAFAFA; + border-radius: 20px; + -webkit-transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1), left 0.3s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.14s cubic-bezier(0.4, 0, 0.2, 1); + transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1), left 0.3s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.14s cubic-bezier(0.4, 0, 0.2, 1); + transition: box-shadow 0.14s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1), left 0.3s cubic-bezier(0.4, 0, 0.2, 1); + transition: box-shadow 0.14s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1), left 0.3s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.14s cubic-bezier(0.4, 0, 0.2, 1); + content: ' '; + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12); +} +/* 选中状态的图标 */ +.mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(255, 64, 129, 0.5); +} +.mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + left: 20px; + background-color: #FF4081; +} +/* 未选中时或禁用时 按下的阴影 */ +.mdui-switch:active input[type="checkbox"] + .mdui-switch-icon::before, +.mdui-switch input[type="checkbox"]:focus + .mdui-switch-icon::before { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(0, 0, 0, 0.1); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(0, 0, 0, 0.1); +} +/* 已选中时按下的阴影 */ +.mdui-switch:active input[type="checkbox"]:checked:not(:disabled) + .mdui-switch-icon::before, +.mdui-switch input[type="checkbox"]:focus:checked:not(:disabled) + .mdui-switch-icon::before { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 64, 129, 0.16); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 64, 129, 0.16); +} +/* 禁用状态 */ +.mdui-switch input[type="checkbox"]:disabled + .mdui-switch-icon { + background-color: rgba(0, 0, 0, 0.12) !important; +} +.mdui-switch input[type="checkbox"]:disabled + .mdui-switch-icon::before { + background-color: #BDBDBD !important; +} +/** + * ============================================================================= + * ************ Switch 强调色 ************ + * ============================================================================= + */ +.mdui-theme-accent-amber .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(255, 215, 64, 0.5); +} +.mdui-theme-accent-amber .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #FFD740; +} +.mdui-theme-accent-amber .mdui-switch:active input[type="checkbox"]:checked:not(:disabled) + .mdui-switch-icon::before, +.mdui-theme-accent-amber .mdui-switch input[type="checkbox"]:focus:checked:not(:disabled) + .mdui-switch-icon::before { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 215, 64, 0.16); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 215, 64, 0.16); +} +.mdui-theme-accent-blue .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(68, 138, 255, 0.5); +} +.mdui-theme-accent-blue .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #448AFF; +} +.mdui-theme-accent-blue .mdui-switch:active input[type="checkbox"]:checked:not(:disabled) + .mdui-switch-icon::before, +.mdui-theme-accent-blue .mdui-switch input[type="checkbox"]:focus:checked:not(:disabled) + .mdui-switch-icon::before { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(68, 138, 255, 0.16); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(68, 138, 255, 0.16); +} +.mdui-theme-accent-cyan .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(24, 255, 255, 0.5); +} +.mdui-theme-accent-cyan .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #18FFFF; +} +.mdui-theme-accent-cyan .mdui-switch:active input[type="checkbox"]:checked:not(:disabled) + .mdui-switch-icon::before, +.mdui-theme-accent-cyan .mdui-switch input[type="checkbox"]:focus:checked:not(:disabled) + .mdui-switch-icon::before { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(24, 255, 255, 0.16); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(24, 255, 255, 0.16); +} +.mdui-theme-accent-deep-orange .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(255, 110, 64, 0.5); +} +.mdui-theme-accent-deep-orange .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #FF6E40; +} +.mdui-theme-accent-deep-orange .mdui-switch:active input[type="checkbox"]:checked:not(:disabled) + .mdui-switch-icon::before, +.mdui-theme-accent-deep-orange .mdui-switch input[type="checkbox"]:focus:checked:not(:disabled) + .mdui-switch-icon::before { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 110, 64, 0.16); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 110, 64, 0.16); +} +.mdui-theme-accent-deep-purple .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(124, 77, 255, 0.5); +} +.mdui-theme-accent-deep-purple .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #7C4DFF; +} +.mdui-theme-accent-deep-purple .mdui-switch:active input[type="checkbox"]:checked:not(:disabled) + .mdui-switch-icon::before, +.mdui-theme-accent-deep-purple .mdui-switch input[type="checkbox"]:focus:checked:not(:disabled) + .mdui-switch-icon::before { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(124, 77, 255, 0.16); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(124, 77, 255, 0.16); +} +.mdui-theme-accent-green .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(105, 240, 174, 0.5); +} +.mdui-theme-accent-green .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #69F0AE; +} +.mdui-theme-accent-green .mdui-switch:active input[type="checkbox"]:checked:not(:disabled) + .mdui-switch-icon::before, +.mdui-theme-accent-green .mdui-switch input[type="checkbox"]:focus:checked:not(:disabled) + .mdui-switch-icon::before { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(105, 240, 174, 0.16); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(105, 240, 174, 0.16); +} +.mdui-theme-accent-indigo .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(83, 109, 254, 0.5); +} +.mdui-theme-accent-indigo .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #536DFE; +} +.mdui-theme-accent-indigo .mdui-switch:active input[type="checkbox"]:checked:not(:disabled) + .mdui-switch-icon::before, +.mdui-theme-accent-indigo .mdui-switch input[type="checkbox"]:focus:checked:not(:disabled) + .mdui-switch-icon::before { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(83, 109, 254, 0.16); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(83, 109, 254, 0.16); +} +.mdui-theme-accent-light-blue .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(64, 196, 255, 0.5); +} +.mdui-theme-accent-light-blue .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #40C4FF; +} +.mdui-theme-accent-light-blue .mdui-switch:active input[type="checkbox"]:checked:not(:disabled) + .mdui-switch-icon::before, +.mdui-theme-accent-light-blue .mdui-switch input[type="checkbox"]:focus:checked:not(:disabled) + .mdui-switch-icon::before { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(64, 196, 255, 0.16); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(64, 196, 255, 0.16); +} +.mdui-theme-accent-light-green .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(178, 255, 89, 0.5); +} +.mdui-theme-accent-light-green .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #B2FF59; +} +.mdui-theme-accent-light-green .mdui-switch:active input[type="checkbox"]:checked:not(:disabled) + .mdui-switch-icon::before, +.mdui-theme-accent-light-green .mdui-switch input[type="checkbox"]:focus:checked:not(:disabled) + .mdui-switch-icon::before { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(178, 255, 89, 0.16); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(178, 255, 89, 0.16); +} +.mdui-theme-accent-lime .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(238, 255, 65, 0.5); +} +.mdui-theme-accent-lime .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #EEFF41; +} +.mdui-theme-accent-lime .mdui-switch:active input[type="checkbox"]:checked:not(:disabled) + .mdui-switch-icon::before, +.mdui-theme-accent-lime .mdui-switch input[type="checkbox"]:focus:checked:not(:disabled) + .mdui-switch-icon::before { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(238, 255, 65, 0.16); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(238, 255, 65, 0.16); +} +.mdui-theme-accent-orange .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(255, 171, 64, 0.5); +} +.mdui-theme-accent-orange .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #FFAB40; +} +.mdui-theme-accent-orange .mdui-switch:active input[type="checkbox"]:checked:not(:disabled) + .mdui-switch-icon::before, +.mdui-theme-accent-orange .mdui-switch input[type="checkbox"]:focus:checked:not(:disabled) + .mdui-switch-icon::before { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 171, 64, 0.16); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 171, 64, 0.16); +} +.mdui-theme-accent-pink .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(255, 64, 129, 0.5); +} +.mdui-theme-accent-pink .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #FF4081; +} +.mdui-theme-accent-pink .mdui-switch:active input[type="checkbox"]:checked:not(:disabled) + .mdui-switch-icon::before, +.mdui-theme-accent-pink .mdui-switch input[type="checkbox"]:focus:checked:not(:disabled) + .mdui-switch-icon::before { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 64, 129, 0.16); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 64, 129, 0.16); +} +.mdui-theme-accent-purple .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(224, 64, 251, 0.5); +} +.mdui-theme-accent-purple .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #E040FB; +} +.mdui-theme-accent-purple .mdui-switch:active input[type="checkbox"]:checked:not(:disabled) + .mdui-switch-icon::before, +.mdui-theme-accent-purple .mdui-switch input[type="checkbox"]:focus:checked:not(:disabled) + .mdui-switch-icon::before { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(224, 64, 251, 0.16); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(224, 64, 251, 0.16); +} +.mdui-theme-accent-red .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(255, 82, 82, 0.5); +} +.mdui-theme-accent-red .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #FF5252; +} +.mdui-theme-accent-red .mdui-switch:active input[type="checkbox"]:checked:not(:disabled) + .mdui-switch-icon::before, +.mdui-theme-accent-red .mdui-switch input[type="checkbox"]:focus:checked:not(:disabled) + .mdui-switch-icon::before { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 82, 82, 0.16); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 82, 82, 0.16); +} +.mdui-theme-accent-teal .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(100, 255, 218, 0.5); +} +.mdui-theme-accent-teal .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #64FFDA; +} +.mdui-theme-accent-teal .mdui-switch:active input[type="checkbox"]:checked:not(:disabled) + .mdui-switch-icon::before, +.mdui-theme-accent-teal .mdui-switch input[type="checkbox"]:focus:checked:not(:disabled) + .mdui-switch-icon::before { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(100, 255, 218, 0.16); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(100, 255, 218, 0.16); +} +.mdui-theme-accent-yellow .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(255, 255, 0, 0.5); +} +.mdui-theme-accent-yellow .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #FFFF00; +} +.mdui-theme-accent-yellow .mdui-switch:active input[type="checkbox"]:checked:not(:disabled) + .mdui-switch-icon::before, +.mdui-theme-accent-yellow .mdui-switch input[type="checkbox"]:focus:checked:not(:disabled) + .mdui-switch-icon::before { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 255, 0, 0.16); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 255, 0, 0.16); +} +/** + * ============================================================================= + * ************ Radio dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark .mdui-switch-icon { + background-color: rgba(255, 255, 255, 0.3); +} +.mdui-theme-layout-dark .mdui-switch-icon::before { + background-color: #BDBDBD; +} +.mdui-theme-layout-dark.mdui-theme-accent-amber .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(255, 229, 127, 0.5); +} +.mdui-theme-layout-dark.mdui-theme-accent-amber .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #FFE57F; +} +.mdui-theme-layout-dark.mdui-theme-accent-blue .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(130, 177, 255, 0.5); +} +.mdui-theme-layout-dark.mdui-theme-accent-blue .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #82B1FF; +} +.mdui-theme-layout-dark.mdui-theme-accent-cyan .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(132, 255, 255, 0.5); +} +.mdui-theme-layout-dark.mdui-theme-accent-cyan .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #84FFFF; +} +.mdui-theme-layout-dark.mdui-theme-accent-deep-orange .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(255, 158, 128, 0.5); +} +.mdui-theme-layout-dark.mdui-theme-accent-deep-orange .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #FF9E80; +} +.mdui-theme-layout-dark.mdui-theme-accent-deep-purple .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(179, 136, 255, 0.5); +} +.mdui-theme-layout-dark.mdui-theme-accent-deep-purple .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #B388FF; +} +.mdui-theme-layout-dark.mdui-theme-accent-green .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(185, 246, 202, 0.5); +} +.mdui-theme-layout-dark.mdui-theme-accent-green .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #B9F6CA; +} +.mdui-theme-layout-dark.mdui-theme-accent-indigo .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(140, 158, 255, 0.5); +} +.mdui-theme-layout-dark.mdui-theme-accent-indigo .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #8C9EFF; +} +.mdui-theme-layout-dark.mdui-theme-accent-light-blue .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(128, 216, 255, 0.5); +} +.mdui-theme-layout-dark.mdui-theme-accent-light-blue .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #80D8FF; +} +.mdui-theme-layout-dark.mdui-theme-accent-light-green .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(204, 255, 144, 0.5); +} +.mdui-theme-layout-dark.mdui-theme-accent-light-green .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #CCFF90; +} +.mdui-theme-layout-dark.mdui-theme-accent-lime .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(244, 255, 129, 0.5); +} +.mdui-theme-layout-dark.mdui-theme-accent-lime .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #F4FF81; +} +.mdui-theme-layout-dark.mdui-theme-accent-orange .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(255, 209, 128, 0.5); +} +.mdui-theme-layout-dark.mdui-theme-accent-orange .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #FFD180; +} +.mdui-theme-layout-dark.mdui-theme-accent-pink .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(255, 128, 171, 0.5); +} +.mdui-theme-layout-dark.mdui-theme-accent-pink .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #FF80AB; +} +.mdui-theme-layout-dark.mdui-theme-accent-purple .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(234, 128, 252, 0.5); +} +.mdui-theme-layout-dark.mdui-theme-accent-purple .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #EA80FC; +} +.mdui-theme-layout-dark.mdui-theme-accent-red .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(255, 138, 128, 0.5); +} +.mdui-theme-layout-dark.mdui-theme-accent-red .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #FF8A80; +} +.mdui-theme-layout-dark.mdui-theme-accent-teal .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(167, 255, 235, 0.5); +} +.mdui-theme-layout-dark.mdui-theme-accent-teal .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #A7FFEB; +} +.mdui-theme-layout-dark.mdui-theme-accent-yellow .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(255, 255, 141, 0.5); +} +.mdui-theme-layout-dark.mdui-theme-accent-yellow .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #FFFF8D; +} +.mdui-theme-layout-dark .mdui-switch:active input[type="checkbox"] + .mdui-switch-icon::before, +.mdui-theme-layout-dark .mdui-switch input[type="checkbox"]:focus + .mdui-switch-icon::before { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 255, 255, 0.1); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 255, 255, 0.1); +} +.mdui-theme-layout-dark .mdui-switch input[type="checkbox"]:disabled + .mdui-switch-icon { + background-color: rgba(255, 255, 255, 0.1) !important; +} +.mdui-theme-layout-dark .mdui-switch input[type="checkbox"]:disabled + .mdui-switch-icon::before { + background-color: #424242 !important; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto .mdui-switch-icon { + background-color: rgba(255, 255, 255, 0.3); + } + .mdui-theme-layout-auto .mdui-switch-icon::before { + background-color: #BDBDBD; + } + .mdui-theme-layout-auto.mdui-theme-accent-amber .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(255, 229, 127, 0.5); + } + .mdui-theme-layout-auto.mdui-theme-accent-amber .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #FFE57F; + } + .mdui-theme-layout-auto.mdui-theme-accent-blue .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(130, 177, 255, 0.5); + } + .mdui-theme-layout-auto.mdui-theme-accent-blue .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #82B1FF; + } + .mdui-theme-layout-auto.mdui-theme-accent-cyan .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(132, 255, 255, 0.5); + } + .mdui-theme-layout-auto.mdui-theme-accent-cyan .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #84FFFF; + } + .mdui-theme-layout-auto.mdui-theme-accent-deep-orange .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(255, 158, 128, 0.5); + } + .mdui-theme-layout-auto.mdui-theme-accent-deep-orange .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #FF9E80; + } + .mdui-theme-layout-auto.mdui-theme-accent-deep-purple .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(179, 136, 255, 0.5); + } + .mdui-theme-layout-auto.mdui-theme-accent-deep-purple .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #B388FF; + } + .mdui-theme-layout-auto.mdui-theme-accent-green .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(185, 246, 202, 0.5); + } + .mdui-theme-layout-auto.mdui-theme-accent-green .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #B9F6CA; + } + .mdui-theme-layout-auto.mdui-theme-accent-indigo .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(140, 158, 255, 0.5); + } + .mdui-theme-layout-auto.mdui-theme-accent-indigo .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #8C9EFF; + } + .mdui-theme-layout-auto.mdui-theme-accent-light-blue .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(128, 216, 255, 0.5); + } + .mdui-theme-layout-auto.mdui-theme-accent-light-blue .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #80D8FF; + } + .mdui-theme-layout-auto.mdui-theme-accent-light-green .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(204, 255, 144, 0.5); + } + .mdui-theme-layout-auto.mdui-theme-accent-light-green .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #CCFF90; + } + .mdui-theme-layout-auto.mdui-theme-accent-lime .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(244, 255, 129, 0.5); + } + .mdui-theme-layout-auto.mdui-theme-accent-lime .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #F4FF81; + } + .mdui-theme-layout-auto.mdui-theme-accent-orange .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(255, 209, 128, 0.5); + } + .mdui-theme-layout-auto.mdui-theme-accent-orange .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #FFD180; + } + .mdui-theme-layout-auto.mdui-theme-accent-pink .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(255, 128, 171, 0.5); + } + .mdui-theme-layout-auto.mdui-theme-accent-pink .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #FF80AB; + } + .mdui-theme-layout-auto.mdui-theme-accent-purple .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(234, 128, 252, 0.5); + } + .mdui-theme-layout-auto.mdui-theme-accent-purple .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #EA80FC; + } + .mdui-theme-layout-auto.mdui-theme-accent-red .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(255, 138, 128, 0.5); + } + .mdui-theme-layout-auto.mdui-theme-accent-red .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #FF8A80; + } + .mdui-theme-layout-auto.mdui-theme-accent-teal .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(167, 255, 235, 0.5); + } + .mdui-theme-layout-auto.mdui-theme-accent-teal .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #A7FFEB; + } + .mdui-theme-layout-auto.mdui-theme-accent-yellow .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon { + background-color: rgba(255, 255, 141, 0.5); + } + .mdui-theme-layout-auto.mdui-theme-accent-yellow .mdui-switch input[type="checkbox"]:checked + .mdui-switch-icon::before { + background-color: #FFFF8D; + } + .mdui-theme-layout-auto .mdui-switch:active input[type="checkbox"] + .mdui-switch-icon::before, + .mdui-theme-layout-auto .mdui-switch input[type="checkbox"]:focus + .mdui-switch-icon::before { + -webkit-box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 255, 255, 0.1); + box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 255, 255, 0.1); + } + .mdui-theme-layout-auto .mdui-switch input[type="checkbox"]:disabled + .mdui-switch-icon { + background-color: rgba(255, 255, 255, 0.1) !important; + } + .mdui-theme-layout-auto .mdui-switch input[type="checkbox"]:disabled + .mdui-switch-icon::before { + background-color: #424242 !important; + } +} +/** + * ============================================================================= + * ************ Slider 滑块 ************ + * ============================================================================= + */ +.mdui-slider { + position: relative; + display: block; + width: 100%; + height: 36px; +} +.mdui-slider input[type="range"] { + position: absolute; + top: 50%; + left: 0; + z-index: 2; + width: 100%; + height: 20px; + margin-top: -10px; + cursor: pointer; + opacity: 0; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} +.mdui-slider-track, +.mdui-slider-fill { + position: absolute; + top: 50%; + -webkit-box-sizing: border-box; + box-sizing: border-box; + height: 2px; + margin-top: -1px; +} +.mdui-slider-track::before, +.mdui-slider-fill::before { + display: block; + width: 100%; + height: 100%; + content: ' '; +} +/* 轨道 */ +.mdui-slider-track { + right: 0; +} +.mdui-slider-track::before { + background-color: #bdbdbd; + -webkit-transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1); + transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1); +} +/* 已滑动部分 */ +.mdui-slider-fill { + left: 0; +} +.mdui-slider-fill::before { + background-color: #FF4081; +} +/* 滑块 */ +.mdui-slider-thumb { + position: absolute; + top: 50%; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 12px; + height: 12px; + margin-top: -6px; + background-color: #FF4081; + border: 2px solid #FF4081; + border-radius: 50%; + -webkit-transform: translate(-50%); + transform: translate(-50%); + -webkit-transition: background 0.45s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.45s cubic-bezier(0.4, 0, 0.2, 1), border-radius 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.2s cubic-bezier(0.4, 0, 0.2, 1); + transition: background 0.45s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.45s cubic-bezier(0.4, 0, 0.2, 1), border-radius 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.2s cubic-bezier(0.4, 0, 0.2, 1); + transition: background 0.45s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.45s cubic-bezier(0.4, 0, 0.2, 1), transform 0.2s cubic-bezier(0.4, 0, 0.2, 1), border-radius 0.2s cubic-bezier(0.4, 0, 0.2, 1); + transition: background 0.45s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.45s cubic-bezier(0.4, 0, 0.2, 1), transform 0.2s cubic-bezier(0.4, 0, 0.2, 1), border-radius 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.2s cubic-bezier(0.4, 0, 0.2, 1); + will-change: background, border-color, transform, border-radius; +} +/** + * ============================================================================= + * ************ Slider 强调色 ************ + * ============================================================================= + */ +.mdui-theme-accent-amber .mdui-slider-fill::before { + background-color: #FFD740; +} +.mdui-theme-accent-amber .mdui-slider-thumb { + background-color: #FFD740; + border: 2px solid #FFD740; +} +.mdui-theme-accent-blue .mdui-slider-fill::before { + background-color: #448AFF; +} +.mdui-theme-accent-blue .mdui-slider-thumb { + background-color: #448AFF; + border: 2px solid #448AFF; +} +.mdui-theme-accent-cyan .mdui-slider-fill::before { + background-color: #18FFFF; +} +.mdui-theme-accent-cyan .mdui-slider-thumb { + background-color: #18FFFF; + border: 2px solid #18FFFF; +} +.mdui-theme-accent-deep-orange .mdui-slider-fill::before { + background-color: #FF6E40; +} +.mdui-theme-accent-deep-orange .mdui-slider-thumb { + background-color: #FF6E40; + border: 2px solid #FF6E40; +} +.mdui-theme-accent-deep-purple .mdui-slider-fill::before { + background-color: #7C4DFF; +} +.mdui-theme-accent-deep-purple .mdui-slider-thumb { + background-color: #7C4DFF; + border: 2px solid #7C4DFF; +} +.mdui-theme-accent-green .mdui-slider-fill::before { + background-color: #69F0AE; +} +.mdui-theme-accent-green .mdui-slider-thumb { + background-color: #69F0AE; + border: 2px solid #69F0AE; +} +.mdui-theme-accent-indigo .mdui-slider-fill::before { + background-color: #536DFE; +} +.mdui-theme-accent-indigo .mdui-slider-thumb { + background-color: #536DFE; + border: 2px solid #536DFE; +} +.mdui-theme-accent-light-blue .mdui-slider-fill::before { + background-color: #40C4FF; +} +.mdui-theme-accent-light-blue .mdui-slider-thumb { + background-color: #40C4FF; + border: 2px solid #40C4FF; +} +.mdui-theme-accent-light-green .mdui-slider-fill::before { + background-color: #B2FF59; +} +.mdui-theme-accent-light-green .mdui-slider-thumb { + background-color: #B2FF59; + border: 2px solid #B2FF59; +} +.mdui-theme-accent-lime .mdui-slider-fill::before { + background-color: #EEFF41; +} +.mdui-theme-accent-lime .mdui-slider-thumb { + background-color: #EEFF41; + border: 2px solid #EEFF41; +} +.mdui-theme-accent-orange .mdui-slider-fill::before { + background-color: #FFAB40; +} +.mdui-theme-accent-orange .mdui-slider-thumb { + background-color: #FFAB40; + border: 2px solid #FFAB40; +} +.mdui-theme-accent-pink .mdui-slider-fill::before { + background-color: #FF4081; +} +.mdui-theme-accent-pink .mdui-slider-thumb { + background-color: #FF4081; + border: 2px solid #FF4081; +} +.mdui-theme-accent-purple .mdui-slider-fill::before { + background-color: #E040FB; +} +.mdui-theme-accent-purple .mdui-slider-thumb { + background-color: #E040FB; + border: 2px solid #E040FB; +} +.mdui-theme-accent-red .mdui-slider-fill::before { + background-color: #FF5252; +} +.mdui-theme-accent-red .mdui-slider-thumb { + background-color: #FF5252; + border: 2px solid #FF5252; +} +.mdui-theme-accent-teal .mdui-slider-fill::before { + background-color: #64FFDA; +} +.mdui-theme-accent-teal .mdui-slider-thumb { + background-color: #64FFDA; + border: 2px solid #64FFDA; +} +.mdui-theme-accent-yellow .mdui-slider-fill::before { + background-color: #FFFF00; +} +.mdui-theme-accent-yellow .mdui-slider-thumb { + background-color: #FFFF00; + border: 2px solid #FFFF00; +} +/** + * ============================================================================= + * ============ Slider 的不同状态 ============ + * ============================================================================= + */ +/* 鼠标按下状态 */ +.mdui-slider-focus .mdui-slider-track::before { + background-color: #9e9e9e; +} +.mdui-slider-focus .mdui-slider-thumb { + -webkit-transform: translate(-50%) scale(1.6); + transform: translate(-50%) scale(1.6); +} +/* 滑块值为 0 */ +.mdui-slider-zero .mdui-slider-thumb { + background-color: #fff; + border-color: #bdbdbd; +} +/* 滑块值为 0,且鼠标按下 */ +.mdui-slider-zero.mdui-slider-focus .mdui-slider-thumb { + border-color: #9e9e9e; +} +/* 禁用状态 */ +.mdui-slider-disabled input[type="range"] { + cursor: default; +} +.mdui-slider-disabled .mdui-slider-track::before { + background-color: #bdbdbd; +} +.mdui-slider-disabled .mdui-slider-fill::before { + background-color: #bdbdbd; +} +.mdui-slider-disabled .mdui-slider-thumb { + background-color: #bdbdbd; + border-color: transparent !important; + -webkit-transform: translate(-50%) scale(0.72); + transform: translate(-50%) scale(0.72); +} +/** + * ============================================================================= + * ============ 间续型滑块 ============ + * ============================================================================= + */ +.mdui-slider-discrete .mdui-slider-thumb { + width: 30px; + height: 30px; + margin-top: -15px; + margin-left: -15px; + border: none; + -webkit-transform: rotate(-45deg) scale(0.4); + transform: rotate(-45deg) scale(0.4); +} +.mdui-slider-discrete .mdui-slider-thumb span { + position: absolute; + top: 9px; + left: -1px; + width: 100%; + color: #fff; + font-size: 12px; + text-align: center; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + opacity: 0; + -webkit-transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1); + transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1); +} +.mdui-slider-discrete.mdui-slider-focus .mdui-slider-thumb { + border-radius: 15px 15px 15px 0; + -webkit-transform: rotate(-45deg) scale(1) translate(22px, -22px); + transform: rotate(-45deg) scale(1) translate(22px, -22px); +} +.mdui-slider-discrete.mdui-slider-focus .mdui-slider-thumb span { + opacity: 1; +} +.mdui-slider-discrete.mdui-slider-zero .mdui-slider-thumb { + background-color: #323232; +} +.mdui-slider-discrete.mdui-slider-zero.mdui-slider-focus .mdui-slider-thumb { + background-color: #bdbdbd; +} +.mdui-slider-discrete.mdui-slider-disabled .mdui-slider-thumb { + -webkit-transform: rotate(-45deg) scale(0.288); + transform: rotate(-45deg) scale(0.288); +} +.mdui-slider-discrete.mdui-slider-zero.mdui-slider-disabled .mdui-slider-thumb { + background-color: #bdbdbd; +} +/** + * ============================================================================= + * ************ Slider dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark .mdui-slider-track::before { + background-color: #4c4c4c; +} +.mdui-theme-layout-dark .mdui-slider-focus .mdui-slider-track::before { + background-color: #4c4c4c; +} +.mdui-theme-layout-dark .mdui-slider-zero .mdui-slider-thumb { + background-color: #303030; + border-color: #4c4c4c; +} +.mdui-theme-layout-dark .mdui-slider-zero.mdui-slider-focus .mdui-slider-thumb { + border-color: #4c4c4c; +} +.mdui-theme-layout-dark .mdui-slider-disabled .mdui-slider-track::before { + background-color: #4c4c4c; +} +.mdui-theme-layout-dark .mdui-slider-disabled .mdui-slider-fill::before { + background-color: #4c4c4c; +} +.mdui-theme-layout-dark .mdui-slider-disabled .mdui-slider-thumb { + background-color: #4c4c4c; +} +.mdui-theme-layout-dark .mdui-slider-discrete.mdui-slider-zero .mdui-slider-thumb { + background-color: #fefefe; +} +.mdui-theme-layout-dark .mdui-slider-discrete.mdui-slider-zero.mdui-slider-focus .mdui-slider-thumb { + background-color: #5c5c5c; +} +.mdui-theme-layout-dark .mdui-slider-discrete.mdui-slider-zero.mdui-slider-disabled .mdui-slider-thumb { + background-color: #4c4c4c; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto .mdui-slider-track::before { + background-color: #4c4c4c; + } + .mdui-theme-layout-auto .mdui-slider-focus .mdui-slider-track::before { + background-color: #4c4c4c; + } + .mdui-theme-layout-auto .mdui-slider-zero .mdui-slider-thumb { + background-color: #303030; + border-color: #4c4c4c; + } + .mdui-theme-layout-auto .mdui-slider-zero.mdui-slider-focus .mdui-slider-thumb { + border-color: #4c4c4c; + } + .mdui-theme-layout-auto .mdui-slider-disabled .mdui-slider-track::before { + background-color: #4c4c4c; + } + .mdui-theme-layout-auto .mdui-slider-disabled .mdui-slider-fill::before { + background-color: #4c4c4c; + } + .mdui-theme-layout-auto .mdui-slider-disabled .mdui-slider-thumb { + background-color: #4c4c4c; + } + .mdui-theme-layout-auto .mdui-slider-discrete.mdui-slider-zero .mdui-slider-thumb { + background-color: #fefefe; + } + .mdui-theme-layout-auto .mdui-slider-discrete.mdui-slider-zero.mdui-slider-focus .mdui-slider-thumb { + background-color: #5c5c5c; + } + .mdui-theme-layout-auto .mdui-slider-discrete.mdui-slider-zero.mdui-slider-disabled .mdui-slider-thumb { + background-color: #4c4c4c; + } +} +/** + * ============================================================================= + * ************ Button 按钮 ************ + * ============================================================================= + */ +/* 默认为 Flat 扁平按钮 */ +.mdui-btn, +.mdui-fab { + position: relative; + display: inline-block; + -webkit-box-sizing: border-box; + box-sizing: border-box; + min-width: 88px; + height: 36px; + margin: 0; + padding: 0 16px; + overflow: hidden; + color: inherit; + font-weight: 500; + font-size: 14px; + line-height: 36px; + letter-spacing: 0.04em; + white-space: nowrap; + text-align: center; + text-transform: uppercase; + text-decoration: none; + vertical-align: middle; + background: transparent; + border: none; + border-radius: 2px; + outline: none; + cursor: pointer; + -webkit-transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1); + transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1); + transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1); + transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), -webkit-box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1); + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -ms-touch-action: manipulation; + touch-action: manipulation; + will-change: box-shadow; + zoom: 1; + -webkit-user-drag: none; +} +.mdui-btn:hover, +.mdui-fab:hover { + background-color: rgba(0, 0, 0, 0.1); +} +.mdui-btn:not(.mdui-ripple):active, +.mdui-fab:not(.mdui-ripple):active { + background-color: rgba(0, 0, 0, 0.165); +} +.mdui-btn[class*="mdui-color-"]:hover, +.mdui-fab[class*="mdui-color-"]:hover { + opacity: 0.87; +} +.mdui-btn:not(.mdui-ripple)[class*="mdui-color-"]:active, +.mdui-fab:not(.mdui-ripple)[class*="mdui-color-"]:active { + opacity: 0.76; +} +/* 按钮内的图标 */ +.mdui-btn .mdui-icon-left, +.mdui-btn .mdui-icon-right, +.mdui-btn .mdui-icon-left::before, +.mdui-btn .mdui-icon-right::before { + height: inherit; + font-size: 1.3em; + line-height: inherit; +} +.mdui-btn .mdui-icon-left { + float: left; + margin-right: 0.4em; +} +.mdui-btn .mdui-icon-right { + float: right; + margin-left: 0.4em; +} +input.mdui-btn[type="submit"] { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} +/* Raised button 浮动按钮 */ +.mdui-btn-raised { + -webkit-box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); + box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); +} +.mdui-btn-raised:hover { + -webkit-box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12); + box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12); +} +.mdui-btn-raised:active { + -webkit-box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12); + box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12); +} +/* 禁用按钮 */ +.mdui-btn[disabled], +.mdui-fab[disabled], +.mdui-btn[disabled]:hover, +.mdui-fab[disabled]:hover, +.mdui-btn[disabled]:active, +.mdui-fab[disabled]:active, +.mdui-btn[disabled]:focus, +.mdui-fab[disabled]:focus { + color: rgba(0, 0, 0, 0.26) !important; + background-color: transparent !important; + cursor: default !important; + opacity: 1 !important; + -webkit-box-shadow: none !important; + box-shadow: none !important; +} +.mdui-btn[disabled] .mdui-icon, +.mdui-fab[disabled] .mdui-icon, +.mdui-btn[disabled]:hover .mdui-icon, +.mdui-fab[disabled]:hover .mdui-icon, +.mdui-btn[disabled]:active .mdui-icon, +.mdui-fab[disabled]:active .mdui-icon, +.mdui-btn[disabled]:focus .mdui-icon, +.mdui-fab[disabled]:focus .mdui-icon { + color: rgba(0, 0, 0, 0.26) !important; +} +/* 禁用状态浮动按钮和浮动操作按钮 */ +.mdui-btn-raised[disabled], +.mdui-fab[disabled], +.mdui-btn-raised[disabled]:hover, +.mdui-fab[disabled]:hover, +.mdui-btn-raised[disabled]:active, +.mdui-fab[disabled]:active, +.mdui-btn-raised[disabled]:focus, +.mdui-fab[disabled]:focus { + background-color: rgba(0, 0, 0, 0.12) !important; + -webkit-box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12) !important; + box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12) !important; +} +/* 加粗按钮文本 */ +.mdui-btn-bold { + font-weight: bold; +} +/* 图标按钮 */ +.mdui-btn-icon { + width: 36px; + min-width: 36px; + height: 36px; + margin-right: 0; + margin-left: 0; + padding: 0; + overflow: hidden; + font-size: 24px; + line-height: normal; + border-radius: 50%; +} +.mdui-btn-icon .mdui-icon { + position: absolute; + top: 50%; + left: 50%; + width: 24px; + line-height: 24px; + -webkit-transform: translate(-12px, -12px); + transform: translate(-12px, -12px); +} +.mdui-btn-icon.mdui-ripple { + -webkit-transform: translateZ(0); + transform: translateZ(0); +} +/* 按钮 100% 宽度 */ +.mdui-btn-block { + display: block; + width: 100%; +} +/* 密集型按钮 */ +.mdui-btn-dense { + height: 32px; + font-size: 13px; + line-height: 32px; +} +.mdui-btn-dense.mdui-btn-icon { + width: 32px; + min-width: 32px; +} +/* 按钮组 */ +.mdui-btn-group { + position: relative; + display: inline-block; + vertical-align: middle; +} +.mdui-btn-group .mdui-btn { + float: left; + min-width: inherit; + padding: 0 12px; + color: rgba(0, 0, 0, 0.54); + border-radius: 0; +} +.mdui-btn-group .mdui-btn::before { + position: absolute; + top: 0; + bottom: 0; + left: 0; + border-left: 1px solid transparent; + content: ' '; +} +.mdui-btn-group .mdui-btn:first-child { + border-top-left-radius: 2px; + border-bottom-left-radius: 2px; +} +.mdui-btn-group .mdui-btn:first-child::before { + border-left: none; +} +.mdui-btn-group .mdui-btn:last-child { + border-top-right-radius: 2px; + border-bottom-right-radius: 2px; +} +.mdui-btn-group .mdui-btn.mdui-btn-active { + color: rgba(0, 0, 0, 0.87); + background-color: rgba(0, 0, 0, 0.215); +} +.mdui-btn-group .mdui-btn.mdui-btn-active + .mdui-btn-active::before { + border-left: 1px solid rgba(0, 0, 0, 0.145); +} +/** + * ============================================================================= + * ************ Button dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark .mdui-btn:hover, +.mdui-theme-layout-dark .mdui-fab:hover { + background-color: rgba(255, 255, 255, 0.1); +} +.mdui-theme-layout-dark .mdui-btn:not(.mdui-ripple):active, +.mdui-theme-layout-dark .mdui-fab:not(.mdui-ripple):active { + background-color: rgba(255, 255, 255, 0.165); +} +.mdui-theme-layout-dark .mdui-btn[class*="mdui-color-"]:hover, +.mdui-theme-layout-dark .mdui-fab[class*="mdui-color-"]:hover { + opacity: 0.87; +} +.mdui-theme-layout-dark .mdui-btn:not(.mdui-ripple)[class*="mdui-color-"]:active, +.mdui-theme-layout-dark .mdui-fab:not(.mdui-ripple)[class*="mdui-color-"]:active { + opacity: 0.76; +} +.mdui-theme-layout-dark .mdui-btn[disabled], +.mdui-theme-layout-dark .mdui-fab[disabled], +.mdui-theme-layout-dark .mdui-btn[disabled]:hover, +.mdui-theme-layout-dark .mdui-fab[disabled]:hover, +.mdui-theme-layout-dark .mdui-btn[disabled]:active, +.mdui-theme-layout-dark .mdui-fab[disabled]:active, +.mdui-theme-layout-dark .mdui-btn[disabled]:focus, +.mdui-theme-layout-dark .mdui-fab[disabled]:focus { + color: rgba(255, 255, 255, 0.3) !important; + background-color: transparent !important; +} +.mdui-theme-layout-dark .mdui-btn[disabled] .mdui-icon, +.mdui-theme-layout-dark .mdui-fab[disabled] .mdui-icon, +.mdui-theme-layout-dark .mdui-btn[disabled]:hover .mdui-icon, +.mdui-theme-layout-dark .mdui-fab[disabled]:hover .mdui-icon, +.mdui-theme-layout-dark .mdui-btn[disabled]:active .mdui-icon, +.mdui-theme-layout-dark .mdui-fab[disabled]:active .mdui-icon, +.mdui-theme-layout-dark .mdui-btn[disabled]:focus .mdui-icon, +.mdui-theme-layout-dark .mdui-fab[disabled]:focus .mdui-icon { + color: rgba(255, 255, 255, 0.3) !important; +} +.mdui-theme-layout-dark .mdui-btn-raised[disabled], +.mdui-theme-layout-dark .mdui-fab[disabled], +.mdui-theme-layout-dark .mdui-btn-raised[disabled]:hover, +.mdui-theme-layout-dark .mdui-fab[disabled]:hover, +.mdui-theme-layout-dark .mdui-btn-raised[disabled]:active, +.mdui-theme-layout-dark .mdui-fab[disabled]:active, +.mdui-theme-layout-dark .mdui-btn-raised[disabled]:focus, +.mdui-theme-layout-dark .mdui-fab[disabled]:focus { + background-color: rgba(255, 255, 255, 0.12) !important; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto .mdui-btn:hover, + .mdui-theme-layout-auto .mdui-fab:hover { + background-color: rgba(255, 255, 255, 0.1); + } + .mdui-theme-layout-auto .mdui-btn:not(.mdui-ripple):active, + .mdui-theme-layout-auto .mdui-fab:not(.mdui-ripple):active { + background-color: rgba(255, 255, 255, 0.165); + } + .mdui-theme-layout-auto .mdui-btn[class*="mdui-color-"]:hover, + .mdui-theme-layout-auto .mdui-fab[class*="mdui-color-"]:hover { + opacity: 0.87; + } + .mdui-theme-layout-auto .mdui-btn:not(.mdui-ripple)[class*="mdui-color-"]:active, + .mdui-theme-layout-auto .mdui-fab:not(.mdui-ripple)[class*="mdui-color-"]:active { + opacity: 0.76; + } + .mdui-theme-layout-auto .mdui-btn[disabled], + .mdui-theme-layout-auto .mdui-fab[disabled], + .mdui-theme-layout-auto .mdui-btn[disabled]:hover, + .mdui-theme-layout-auto .mdui-fab[disabled]:hover, + .mdui-theme-layout-auto .mdui-btn[disabled]:active, + .mdui-theme-layout-auto .mdui-fab[disabled]:active, + .mdui-theme-layout-auto .mdui-btn[disabled]:focus, + .mdui-theme-layout-auto .mdui-fab[disabled]:focus { + color: rgba(255, 255, 255, 0.3) !important; + background-color: transparent !important; + } + .mdui-theme-layout-auto .mdui-btn[disabled] .mdui-icon, + .mdui-theme-layout-auto .mdui-fab[disabled] .mdui-icon, + .mdui-theme-layout-auto .mdui-btn[disabled]:hover .mdui-icon, + .mdui-theme-layout-auto .mdui-fab[disabled]:hover .mdui-icon, + .mdui-theme-layout-auto .mdui-btn[disabled]:active .mdui-icon, + .mdui-theme-layout-auto .mdui-fab[disabled]:active .mdui-icon, + .mdui-theme-layout-auto .mdui-btn[disabled]:focus .mdui-icon, + .mdui-theme-layout-auto .mdui-fab[disabled]:focus .mdui-icon { + color: rgba(255, 255, 255, 0.3) !important; + } + .mdui-theme-layout-auto .mdui-btn-raised[disabled], + .mdui-theme-layout-auto .mdui-fab[disabled], + .mdui-theme-layout-auto .mdui-btn-raised[disabled]:hover, + .mdui-theme-layout-auto .mdui-fab[disabled]:hover, + .mdui-theme-layout-auto .mdui-btn-raised[disabled]:active, + .mdui-theme-layout-auto .mdui-fab[disabled]:active, + .mdui-theme-layout-auto .mdui-btn-raised[disabled]:focus, + .mdui-theme-layout-auto .mdui-fab[disabled]:focus { + background-color: rgba(255, 255, 255, 0.12) !important; + } +} +/** + * ============================================================================= + * ************ Fab 浮动操作按钮 ************ + * ============================================================================= + */ +/* 浮动操作按钮 */ +.mdui-fab { + width: 56px; + min-width: 56px; + height: 56px; + margin: auto; + padding: 0 !important; + overflow: hidden; + font-size: 24px; + line-height: normal !important; + border-radius: 50%; + -webkit-box-shadow: 0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12); + box-shadow: 0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12); +} +.mdui-fab:hover { + -webkit-box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12); + box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12); +} +.mdui-fab:active { + -webkit-box-shadow: 0 7px 8px -4px rgba(0, 0, 0, 0.2), 0 12px 17px 2px rgba(0, 0, 0, 0.14), 0 5px 22px 4px rgba(0, 0, 0, 0.12); + box-shadow: 0 7px 8px -4px rgba(0, 0, 0, 0.2), 0 12px 17px 2px rgba(0, 0, 0, 0.14), 0 5px 22px 4px rgba(0, 0, 0, 0.12); +} +.mdui-fab .mdui-icon { + position: absolute; + top: 0; + left: 0; + width: 24px; + margin-top: 16px; + margin-left: 16px; + line-height: 24px; +} +/* mini 型浮动操作按钮 */ +.mdui-fab-mini { + width: 40px; + min-width: 40px; + height: 40px; +} +.mdui-fab-mini .mdui-icon { + margin-top: 8px; + margin-left: 8px; +} +/* 固定到右下角的 FAB 按钮 */ +.mdui-fab-fixed, +.mdui-fab-wrapper { + position: fixed !important; + /* 手机平板上距离屏幕右下角 16px */ + right: 16px; + bottom: 16px; +} +@media (min-width: 1024px) { + .mdui-fab-fixed, + .mdui-fab-wrapper { + /* 电脑上距离屏幕右下角 24px */ + right: 24px; + bottom: 24px; + } +} +/* 含菜单的浮动操作按钮 */ +.mdui-fab-wrapper { + position: relative; + z-index: 4000; + width: 56px; + height: 56px; + padding-top: 8px; + text-align: center; +} +.mdui-fab-wrapper > .mdui-fab .mdui-icon:not(.mdui-fab-opened) { + opacity: 1; + -webkit-transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); + transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); + will-change: opacity, transform; +} +.mdui-fab-wrapper > .mdui-fab .mdui-icon.mdui-fab-opened { + -webkit-transform: rotate(225deg); + transform: rotate(225deg); + opacity: 0; + -webkit-transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); + transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); + will-change: opacity, transform; +} +.mdui-fab-wrapper > .mdui-fab.mdui-fab-opened .mdui-icon:not(.mdui-fab-opened) { + -webkit-transform: rotate(225deg); + transform: rotate(225deg); + opacity: 0; +} +.mdui-fab-wrapper > .mdui-fab.mdui-fab-opened .mdui-icon.mdui-fab-opened { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + opacity: 1; +} +.mdui-fab-wrapper > .mdui-fab-mini { + margin-top: 8px; +} +.mdui-fab-wrapper .mdui-fab-dial { + position: absolute; + right: 0; + bottom: 64px; + left: 0; + height: 0; + text-align: center; + visibility: visible; +} +.mdui-fab-wrapper .mdui-fab-dial .mdui-fab { + margin: 8px 0; + -webkit-transform: scale(0); + transform: scale(0); + opacity: 0; + -webkit-transition: color 0.2s cubic-bezier(0.4, 0, 0.2, 1), opacity 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1); + transition: color 0.2s cubic-bezier(0.4, 0, 0.2, 1), opacity 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1); + transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), opacity 150ms cubic-bezier(0.4, 0, 0.2, 1); + transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), opacity 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1); +} +.mdui-fab-wrapper .mdui-fab-dial.mdui-fab-dial-show .mdui-fab { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 1; +} +/* 添加类 .mdui-fab-hide 以动画的形式隐藏按钮 */ +.mdui-fab, +.mdui-fab-mini, +.mdui-fab-wrapper { + -webkit-transform: scale(1) translateZ(0); + transform: scale(1) translateZ(0); + -webkit-transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), -webkit-transform 0.2s; + transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), -webkit-transform 0.2s; + transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), transform 0.2s; + transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), transform 0.2s, -webkit-box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), -webkit-transform 0.2s; + will-change: transform; +} +.mdui-fab.mdui-fab-hide, +.mdui-fab-mini.mdui-fab-hide, +.mdui-fab-wrapper.mdui-fab-hide { + -webkit-transform: scale(0) translateZ(0); + transform: scale(0) translateZ(0); +} +/** + * ============================================================================= + * ************ Select 下拉选择 ************ + * ============================================================================= + */ +.mdui-select { + position: relative; + display: inline-block; + -webkit-box-sizing: border-box; + box-sizing: border-box; + max-width: 100%; + height: 36px; + padding-right: 24px; + padding-left: 0; + font-size: 16px; + font-family: Roboto, Noto, Helvetica, Arial, sans-serif; + vertical-align: middle; + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M-.003 2.5l5 5 5-5h-10z' opacity='.54'/%3E%3C/svg%3E"); + background-repeat: no-repeat; + background-position: right center; + border: none; + border-bottom: 1px solid rgba(0, 0, 0, 0.12); + outline: none; + cursor: pointer; + -webkit-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + -webkit-transition-duration: 0.2s; + transition-duration: 0.2s; + -webkit-transition-property: background-color, background-position-x, -webkit-box-shadow; + transition-property: background-color, background-position-x, -webkit-box-shadow; + transition-property: background-color, box-shadow, background-position-x; + transition-property: background-color, box-shadow, background-position-x, -webkit-box-shadow; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + will-change: background-color, box-shadow, background-position-x; +} +.mdui-select.mdui-select-open { + border-bottom: none; +} +.mdui-select-position-top { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M10.003 7.5l-5-5-5 5h10z' opacity='.54'/%3E%3C/svg%3E"); +} +/* 底部和顶部菜单的样式 */ +.mdui-select-open.mdui-select-position-top, +.mdui-select-open.mdui-select-position-bottom { + z-index: 99999; + background-color: #fff; + /* stylelint-disable-next-line */ + background-position-x: calc(100% - 12px); + border-radius: 2px; +} +.mdui-select-open.mdui-select-position-top { + border-top: 1px solid rgba(0, 0, 0, 0.12); + border-bottom: 2px solid transparent; + border-top-left-radius: 0; + border-top-right-radius: 0; + -webkit-box-shadow: 0 10px 10px -3px rgba(0, 0, 0, 0.2), 0 0 14px 1px rgba(0, 0, 0, 0.14), 0 -7px 24px 2px rgba(0, 0, 0, 0.12); + box-shadow: 0 10px 10px -3px rgba(0, 0, 0, 0.2), 0 0 14px 1px rgba(0, 0, 0, 0.14), 0 -7px 24px 2px rgba(0, 0, 0, 0.12); +} +.mdui-select-open.mdui-select-position-top .mdui-select-menu { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; + -webkit-box-shadow: 0 -4px 4px -2px rgba(0, 0, 0, 0.06), 8px 0 8px -4px rgba(0, 0, 0, 0.12), -8px 0 8px -4px rgba(0, 0, 0, 0.12); + box-shadow: 0 -4px 4px -2px rgba(0, 0, 0, 0.06), 8px 0 8px -4px rgba(0, 0, 0, 0.12), -8px 0 8px -4px rgba(0, 0, 0, 0.12); +} +.mdui-select-open.mdui-select-position-bottom { + border-bottom: 1px solid rgba(0, 0, 0, 0.12); + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; + -webkit-box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12); + box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12); +} +.mdui-select-open.mdui-select-position-bottom .mdui-select-menu { + border-top-left-radius: 0; + border-top-right-radius: 0; + -webkit-box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 9px 9px 1px rgba(0, 0, 0, 0.14), 0 8px 8px 2px rgba(0, 0, 0, 0.06); + box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 9px 9px 1px rgba(0, 0, 0, 0.14), 0 8px 8px 2px rgba(0, 0, 0, 0.06); +} +/* 当前选中项文本 */ +.mdui-select-selected { + position: absolute; + top: 50%; + right: 24px; + left: 0; + display: block; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + -webkit-transition: left 0.2s cubic-bezier(0, 0, 0.2, 1); + transition: left 0.2s cubic-bezier(0, 0, 0.2, 1); + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.mdui-select-open .mdui-select-selected { + right: 32px; + left: 16px; +} +.mdui-select-open.mdui-select-position-auto .mdui-select-selected { + visibility: hidden; +} +/* 菜单 */ +.mdui-select-menu { + position: relative; + z-index: 99999; + -webkit-box-sizing: border-box; + box-sizing: border-box; + height: 36px; + margin: 0 -24px 0 0; + overflow-y: scroll; + color: rgba(0, 0, 0, 0.87); + background-color: #fff; + border-radius: 2px; + -webkit-transform: scale(1, 0); + transform: scale(1, 0); + visibility: hidden; + cursor: default; + opacity: 0; + -webkit-transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + -webkit-transition-duration: 0.2s; + transition-duration: 0.2s; + -webkit-transition-property: opacity, visibility, -webkit-transform; + transition-property: opacity, visibility, -webkit-transform; + transition-property: transform, opacity, visibility; + transition-property: transform, opacity, visibility, -webkit-transform; + will-change: transform, opacity, visibility; + -webkit-overflow-scrolling: touch; + -webkit-box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12); + box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12); +} +.mdui-select-open .mdui-select-menu { + overflow-y: hidden; + -webkit-transform: scale(1, 1); + transform: scale(1, 1); + visibility: visible; + opacity: 1; +} +.mdui-select-closing .mdui-select-menu { + overflow-y: hidden; + -webkit-box-shadow: none; + box-shadow: none; + -webkit-transform: scale(1, 1); + transform: scale(1, 1); + visibility: visible; + opacity: 0; +} +/* 菜单项 */ +.mdui-select-menu-item { + height: 48px; + padding: 0 16px; + line-height: 48px; + cursor: pointer; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.mdui-select-menu-item:hover { + background-color: #EEEEEE; +} +.mdui-select-menu-item:first-child { + margin-top: 8px; +} +.mdui-select-menu-item:last-child { + margin-bottom: 8px; +} +.mdui-select-menu-item[disabled] { + color: rgba(0, 0, 0, 0.38) !important; + cursor: default; +} +.mdui-select-menu-item[disabled]:hover { + background-color: inherit !important; +} +.mdui-select-menu-item[selected] { + color: #FF4081; +} +/* 原生 select 组件 */ +select.mdui-select { + background-color: transparent; +} +select.mdui-select option { + color: rgba(0, 0, 0, 0.87); +} +select.mdui-select::-ms-expand { + display: none; +} +/* 原生多选 select 组件 */ +select.mdui-select[multiple] { + height: auto; + padding: 0; + font-size: 15px; + background-color: #FFF; + background-image: none; + border: 1px solid rgba(0, 0, 0, 0.38); + cursor: default; +} +select.mdui-select[multiple] optgroup { + margin: 8px 0 0 0; + padding: 0 0 0 16px; + color: rgba(0, 0, 0, 0.38); +} +select.mdui-select[multiple] optgroup:last-child { + margin-bottom: 8px; +} +select.mdui-select[multiple] optgroup:not(:first-child) { + padding-top: 8px; + border-top: 1px solid rgba(0, 0, 0, 0.12); +} +select.mdui-select[multiple] option { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + height: 32px; + margin: 0 0 0 -16px; + padding: 0 16px; + color: rgba(0, 0, 0, 0.87); +} +select.mdui-select[multiple] option:first-child { + margin-top: 8px; +} +select.mdui-select[multiple] option:last-child { + margin-bottom: 8px; +} +/** + * ============================================================================= + * ************ Select 强调色 ************ + * ============================================================================= + */ +.mdui-theme-accent-amber .mdui-select-menu-item[selected] { + color: #FFC107; +} +.mdui-theme-accent-blue .mdui-select-menu-item[selected] { + color: #2196F3; +} +.mdui-theme-accent-cyan .mdui-select-menu-item[selected] { + color: #00BCD4; +} +.mdui-theme-accent-deep-orange .mdui-select-menu-item[selected] { + color: #FF5722; +} +.mdui-theme-accent-deep-purple .mdui-select-menu-item[selected] { + color: #673AB7; +} +.mdui-theme-accent-green .mdui-select-menu-item[selected] { + color: #4CAF50; +} +.mdui-theme-accent-indigo .mdui-select-menu-item[selected] { + color: #3F51B5; +} +.mdui-theme-accent-light-blue .mdui-select-menu-item[selected] { + color: #03A9F4; +} +.mdui-theme-accent-light-green .mdui-select-menu-item[selected] { + color: #8BC34A; +} +.mdui-theme-accent-lime .mdui-select-menu-item[selected] { + color: #CDDC39; +} +.mdui-theme-accent-orange .mdui-select-menu-item[selected] { + color: #FF9800; +} +.mdui-theme-accent-pink .mdui-select-menu-item[selected] { + color: #E91E63; +} +.mdui-theme-accent-purple .mdui-select-menu-item[selected] { + color: #9C27B0; +} +.mdui-theme-accent-red .mdui-select-menu-item[selected] { + color: #F44336; +} +.mdui-theme-accent-teal .mdui-select-menu-item[selected] { + color: #009688; +} +.mdui-theme-accent-yellow .mdui-select-menu-item[selected] { + color: #FFEB3B; +} +/** + * ============================================================================= + * ************ Select dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark .mdui-select { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M-.003 2.5l5 5 5-5h-10z' fill='%23FFF'/%3E%3C/svg%3E"); + border-bottom: 1px solid rgba(255, 255, 255, 0.12); +} +.mdui-theme-layout-dark .mdui-select-position-top { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M10.003 7.5l-5-5-5 5h10z' fill='%23FFF'/%3E%3C/svg%3E"); +} +.mdui-theme-layout-dark .mdui-select-open.mdui-select-position-top, +.mdui-theme-layout-dark .mdui-select-open.mdui-select-position-bottom { + background-color: #424242; +} +.mdui-theme-layout-dark .mdui-select-open.mdui-select-position-top { + border-top: 1px solid rgba(255, 255, 255, 0.12); +} +.mdui-theme-layout-dark .mdui-select-open.mdui-select-position-bottom { + border-bottom: 1px solid rgba(255, 255, 255, 0.12); +} +.mdui-theme-layout-dark .mdui-select-menu { + color: #fff; + background-color: #424242; +} +.mdui-theme-layout-dark .mdui-select-menu-item:hover { + background-color: #616161; +} +.mdui-theme-layout-dark .mdui-select-menu-item[disabled] { + color: rgba(255, 255, 255, 0.5) !important; +} +.mdui-theme-layout-dark select.mdui-select { + color: #FFF; + background-color: #303030; +} +.mdui-theme-layout-dark select.mdui-select option { + color: #FFF; + background-color: #303030; +} +.mdui-theme-layout-dark select.mdui-select[multiple] { + border: 1px solid rgba(255, 255, 255, 0.5); +} +.mdui-theme-layout-dark select.mdui-select[multiple] optgroup { + color: rgba(255, 255, 255, 0.5); +} +.mdui-theme-layout-dark select.mdui-select[multiple] optgroup:not(:first-child) { + border-top: 1px solid rgba(255, 255, 255, 0.12); +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto .mdui-select { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M-.003 2.5l5 5 5-5h-10z' fill='%23FFF'/%3E%3C/svg%3E"); + border-bottom: 1px solid rgba(255, 255, 255, 0.12); + } + .mdui-theme-layout-auto .mdui-select-position-top { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M10.003 7.5l-5-5-5 5h10z' fill='%23FFF'/%3E%3C/svg%3E"); + } + .mdui-theme-layout-auto .mdui-select-open.mdui-select-position-top, + .mdui-theme-layout-auto .mdui-select-open.mdui-select-position-bottom { + background-color: #424242; + } + .mdui-theme-layout-auto .mdui-select-open.mdui-select-position-top { + border-top: 1px solid rgba(255, 255, 255, 0.12); + } + .mdui-theme-layout-auto .mdui-select-open.mdui-select-position-bottom { + border-bottom: 1px solid rgba(255, 255, 255, 0.12); + } + .mdui-theme-layout-auto .mdui-select-menu { + color: #fff; + background-color: #424242; + } + .mdui-theme-layout-auto .mdui-select-menu-item:hover { + background-color: #616161; + } + .mdui-theme-layout-auto .mdui-select-menu-item[disabled] { + color: rgba(255, 255, 255, 0.5) !important; + } + .mdui-theme-layout-auto select.mdui-select { + color: #FFF; + background-color: #303030; + } + .mdui-theme-layout-auto select.mdui-select option { + color: #FFF; + background-color: #303030; + } + .mdui-theme-layout-auto select.mdui-select[multiple] { + border: 1px solid rgba(255, 255, 255, 0.5); + } + .mdui-theme-layout-auto select.mdui-select[multiple] optgroup { + color: rgba(255, 255, 255, 0.5); + } + .mdui-theme-layout-auto select.mdui-select[multiple] optgroup:not(:first-child) { + border-top: 1px solid rgba(255, 255, 255, 0.12); + } +} +/** + * ============================================================================= + * ************ Toolbar 工具栏 ************ + * ============================================================================= + */ +.mdui-toolbar { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; +} +.mdui-toolbar > * { + margin: 0 16px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.mdui-toolbar[class*="mdui-color-"]:not(.mdui-color-transparent) .mdui-btn:hover { + background-color: rgba(255, 255, 255, 0.1); +} +.mdui-toolbar[class*="mdui-color-"]:not(.mdui-color-transparent) .mdui-btn:active { + background-color: rgba(255, 255, 255, 0.165); +} +.mdui-toolbar > a { + color: inherit; + text-decoration: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.mdui-toolbar > .mdui-btn-icon { + width: 48px; + min-width: 48px; + height: 48px; +} +@media (orientation: landscape) and (max-width: 959.9px) { + .mdui-toolbar > .mdui-btn-icon { + width: 40px; + min-width: 40px; + height: 40px; + } +} +.mdui-toolbar > .mdui-btn-icon .mdui-icon { + height: 24px; + line-height: 24px; +} +.mdui-toolbar .mdui-icon { + color: inherit; +} +.mdui-toolbar-spacer { + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + margin: 0; +} +/* 手机 */ +.mdui-toolbar { + height: 56px; + line-height: 56px; +} +.mdui-toolbar > .mdui-btn { + margin: 0 4px; +} +.mdui-toolbar > .mdui-btn + .mdui-btn { + margin-left: 0; +} +@media (min-width: 600px) { + .mdui-appbar .mdui-toolbar { + height: 64px; + line-height: 64px; + } + .mdui-appbar .mdui-toolbar > .mdui-btn { + margin: 0 8px; + } + .mdui-appbar .mdui-toolbar > .mdui-btn + .mdui-btn { + margin-left: 0; + } +} +@media (orientation: landscape) and (max-width: 959.9px) { + .mdui-appbar .mdui-toolbar { + height: 48px; + line-height: 48px; + } + .mdui-appbar .mdui-toolbar > .mdui-btn { + margin: 0 4px; + } + .mdui-appbar .mdui-toolbar > .mdui-btn + .mdui-btn { + margin-left: 0; + } +} +/** + * ============================================================================= + * ************ Appbar 应用栏 ************ + * ============================================================================= + */ +.mdui-appbar { + z-index: 1000; + -webkit-box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12); + box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12); +} +/* appbar 固定在顶部 */ +.mdui-appbar-fixed { + position: fixed; + top: 0; + right: 0; + left: 0; + -webkit-transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + -webkit-transition-duration: 0.3s; + transition-duration: 0.3s; + -webkit-transition-property: left, right; + transition-property: left, right; + will-change: left, right; +} +/* 左侧留出抽屉栏的距离 */ +@media (min-width: 1024px) { + .mdui-drawer-body-left .mdui-appbar-inset.mdui-appbar-fixed { + left: 240px; + } +} +@media (min-width: 1024px) { + .mdui-drawer-body-right .mdui-appbar-inset.mdui-appbar-fixed { + right: 240px; + } +} +/* 含工具栏 */ +.mdui-appbar-with-toolbar { + padding-top: 56px; +} +@media (min-width: 600px) { + .mdui-appbar-with-toolbar { + padding-top: 64px; + } +} +@media (orientation: landscape) and (max-width: 959.9px) { + .mdui-appbar-with-toolbar { + padding-top: 48px; + } +} +/* 含 Tab */ +.mdui-appbar-with-tab { + padding-top: 48px; +} +/* 含大 Tab */ +.mdui-appbar-with-tab-larger { + padding-top: 72px; +} +/* 含工具栏和 Tab */ +.mdui-appbar-with-toolbar.mdui-appbar-with-tab { + padding-top: 104px; +} +@media (min-width: 600px) { + .mdui-appbar-with-toolbar.mdui-appbar-with-tab { + padding-top: 112px; + } +} +@media (orientation: landscape) and (max-width: 959.9px) { + .mdui-appbar-with-toolbar.mdui-appbar-with-tab { + padding-top: 96px; + } +} +/* 含工具栏和大 Tab */ +.mdui-appbar-with-toolbar.mdui-appbar-with-tab-larger { + padding-top: 128px; +} +@media (min-width: 600px) { + .mdui-appbar-with-toolbar.mdui-appbar-with-tab-larger { + padding-top: 136px; + } +} +@media (orientation: landscape) and (max-width: 959.9px) { + .mdui-appbar-with-toolbar.mdui-appbar-with-tab-larger { + padding-top: 120px; + } +} +/** + * ============================================================================= + * ************ Appbar dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark .mdui-appbar > [class*="mdui-color-"]:not(.mdui-color-transparent) { + color: #fff !important; + background-color: #212121 !important; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto .mdui-appbar > [class*="mdui-color-"]:not(.mdui-color-transparent) { + color: #fff !important; + background-color: #212121 !important; + } +} +/** + * ============================================================================= + * ************ Card 卡片 ************ + * ============================================================================= + */ +/* 卡片 */ +.mdui-card { + position: relative; + -webkit-box-sizing: border-box; + box-sizing: border-box; + overflow: hidden; + color: #000; + background-color: #fff; + border-radius: 2px; + -webkit-box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); + box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); +} +/** + * ===================== 头部,包含头像、标题、副标题 + */ +.mdui-card-header { + position: relative; + -webkit-box-sizing: border-box; + box-sizing: border-box; + height: 72px; + padding: 16px; +} +/* 卡片头部头像 */ +.mdui-card-header-avatar { + float: left; + width: 40px; + height: 40px; + border-radius: 50%; +} +/* 卡片头部标题 */ +.mdui-card-header-title { + display: block; + margin-left: 52px; + font-weight: 500; + font-size: 16px; + line-height: 20px; + opacity: 0.87; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +/* 卡片头部副标题 */ +.mdui-card-header-subtitle { + display: block; + margin-left: 52px; + font-weight: 400; + font-size: 14px; + line-height: 20px; + opacity: 0.54; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +/** + * =========================== 主标题区域 + */ +.mdui-card-primary { + position: relative; + padding: 24px 16px 16px 16px; +} +/* 主标题区域标题 */ +.mdui-card-primary-title { + display: block; + font-size: 24px; + line-height: 36px; + opacity: 0.87; +} +/* 主标题区域副标题 */ +.mdui-card-primary-subtitle { + display: block; + font-size: 14px; + line-height: 24px; + opacity: 0.54; +} +/** + * ============================ 内容区域 + */ +.mdui-card-content { + position: relative; + padding: 16px; + font-size: 14px; + line-height: 24px; +} +/** + * ============================ 卡片菜单 + */ +.mdui-card-menu { + position: absolute; + top: 16px; + right: 16px; + z-index: 1; +} +.mdui-card-menu .mdui-btn { + margin-left: 8px; +} +/** + * =========================== 按钮区域 + */ +.mdui-card-actions { + position: relative; + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding: 8px; +} +.mdui-card-actions::before, +.mdui-card-actions::after { + display: table; + content: ' '; +} +.mdui-card-actions::after { + clear: both; +} +.mdui-card-actions::before, +.mdui-card-actions::after { + display: table; + content: ' '; +} +.mdui-card-actions::after { + clear: both; +} +.mdui-card-actions .mdui-btn { + max-width: 100%; + margin: 0 8px 0 0; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.mdui-card-actions .mdui-btn-icon { + width: 36px; + height: 36px; + margin: 0 8px; +} +/* 使按钮竖向排列 */ +.mdui-card-actions-stacked .mdui-btn { + display: block; + margin: 0 0 4px 0; +} +.mdui-card-actions-stacked .mdui-btn:last-child { + margin: 0; +} +/** + * ============================= 媒体元素区域 + */ +.mdui-card-media { + position: relative; +} +.mdui-card-media img, +.mdui-card-media video { + display: block; + width: 100%; +} +/* 覆盖在媒体元素上的内容 */ +.mdui-card-media-covered { + position: absolute; + right: 0; + bottom: 0; + left: 0; + color: #fff; + background: rgba(0, 0, 0, 0.2); + /* 覆盖在媒体元素上的标题 */ +} +.mdui-card-media-covered .mdui-card-primary-title { + opacity: 1; +} +.mdui-card-media-covered .mdui-card-primary-subtitle { + opacity: 0.7; +} +/* 覆盖在媒体元素顶部 */ +.mdui-card-media-covered-top { + top: 0; + bottom: auto; +} +/* 覆盖层透明 */ +.mdui-card-media-covered-transparent { + background: transparent; +} +/* 覆盖层渐变 */ +.mdui-card-media-covered-gradient { + background: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.26)), to(rgba(0, 0, 0, 0))); + background: linear-gradient(to top, rgba(0, 0, 0, 0.26), rgba(0, 0, 0, 0)); +} +.mdui-card-media-covered-gradient.mdui-card-media-covered-top { + background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.26)), to(rgba(0, 0, 0, 0))); + background: linear-gradient(to bottom, rgba(0, 0, 0, 0.26), rgba(0, 0, 0, 0)); +} +/** + * ============================================================================= + * ************ Card dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark .mdui-card { + color: #fff; + background-color: #424242; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto .mdui-card { + color: #fff; + background-color: #424242; + } +} +/** + * ============================================================================= + * ************ Tab ************ + * ============================================================================= + * + * 在手机上选项卡始终平分或可滚动,在平板以上的设备上默认左对齐,可以选择居中对齐,或全宽等分 + */ +/* 选项卡,默认的选项卡为全宽 */ +.mdui-tab { + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + min-height: 48px; + max-height: 72px; + margin: 0 auto; + padding: 0; + overflow-x: auto; + overflow-y: hidden; + white-space: nowrap; + -webkit-overflow-scrolling: touch; +} +.mdui-tab a { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-sizing: border-box; + box-sizing: border-box; + min-width: 72px; + min-height: 48px; + max-height: 72px; + padding: 12px; + overflow: hidden; + color: inherit; + font-size: 14px; + text-align: center; + text-transform: uppercase; + text-decoration: none; + text-overflow: ellipsis; + outline: none; + cursor: pointer; + opacity: 0.7; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.mdui-tab a .mdui-icon { + opacity: 0.7; +} +@media (min-width: 600px) { + .mdui-tab a { + -webkit-box-flex: 0; + -ms-flex: none; + flex: none; + min-width: 99px; + max-width: 264px; + padding: 12px 24px; + } +} +@media (min-width: 1024px) { + .mdui-tab a { + min-width: 112px; + } +} +@media (min-width: 1440px) { + .mdui-tab a { + min-width: 136px; + } +} +@media (min-width: 1920px) { + .mdui-tab a { + min-width: 160px; + } +} +.mdui-tab a label { + display: block; + width: 100%; + cursor: pointer; +} +.mdui-tab a .mdui-icon + label { + margin-top: 8px; +} +.mdui-tab a[disabled] { + cursor: default; + opacity: 0.38; +} +.mdui-tab a[disabled] label { + cursor: default; +} +.mdui-tab .mdui-tab-active { + color: #3F51B5; + opacity: 1; +} +.mdui-tab .mdui-tab-active .mdui-icon { + opacity: 1; +} +/* 选项卡居中 */ +@media (min-width: 600px) { + .mdui-tab-centered::before { + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + content: ' '; + } + .mdui-tab-centered::after { + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + content: ' '; + } + .mdui-tab-centered a { + -webkit-box-flex: 0; + -ms-flex: none; + flex: none; + } +} +/* 选项卡始终全宽等分 */ +.mdui-tab-full-width a { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + max-width: none; +} +/* 可横向滚动的选项卡 */ +.mdui-tab-scrollable { + padding-left: 56px; +} +.mdui-tab-scrollable a { + -webkit-box-flex: 0; + -ms-flex: none; + flex: none; +} +@media (max-width: 599.9px) { + .mdui-tab-scrollable { + padding-left: 60px; + } +} +/* 下划线指示器 */ +.mdui-tab-indicator { + position: absolute; + bottom: 0; + height: 2px; + background-color: #3F51B5; + -webkit-transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1); + transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1); + will-change: left, width; +} +/** + * ============================================================================= + * ************ Tab 主色 ************ + * ============================================================================= + */ +.mdui-theme-primary-amber .mdui-tab .mdui-tab-active { + color: #FFC107; +} +.mdui-theme-primary-amber .mdui-tab-indicator { + background-color: #FFC107; +} +.mdui-theme-primary-blue .mdui-tab .mdui-tab-active { + color: #2196F3; +} +.mdui-theme-primary-blue .mdui-tab-indicator { + background-color: #2196F3; +} +.mdui-theme-primary-blue-grey .mdui-tab .mdui-tab-active { + color: #607D8B; +} +.mdui-theme-primary-blue-grey .mdui-tab-indicator { + background-color: #607D8B; +} +.mdui-theme-primary-brown .mdui-tab .mdui-tab-active { + color: #795548; +} +.mdui-theme-primary-brown .mdui-tab-indicator { + background-color: #795548; +} +.mdui-theme-primary-cyan .mdui-tab .mdui-tab-active { + color: #00BCD4; +} +.mdui-theme-primary-cyan .mdui-tab-indicator { + background-color: #00BCD4; +} +.mdui-theme-primary-deep-orange .mdui-tab .mdui-tab-active { + color: #FF5722; +} +.mdui-theme-primary-deep-orange .mdui-tab-indicator { + background-color: #FF5722; +} +.mdui-theme-primary-deep-purple .mdui-tab .mdui-tab-active { + color: #673AB7; +} +.mdui-theme-primary-deep-purple .mdui-tab-indicator { + background-color: #673AB7; +} +.mdui-theme-primary-green .mdui-tab .mdui-tab-active { + color: #4CAF50; +} +.mdui-theme-primary-green .mdui-tab-indicator { + background-color: #4CAF50; +} +.mdui-theme-primary-grey .mdui-tab .mdui-tab-active { + color: #9E9E9E; +} +.mdui-theme-primary-grey .mdui-tab-indicator { + background-color: #9E9E9E; +} +.mdui-theme-primary-indigo .mdui-tab .mdui-tab-active { + color: #3F51B5; +} +.mdui-theme-primary-indigo .mdui-tab-indicator { + background-color: #3F51B5; +} +.mdui-theme-primary-light-blue .mdui-tab .mdui-tab-active { + color: #03A9F4; +} +.mdui-theme-primary-light-blue .mdui-tab-indicator { + background-color: #03A9F4; +} +.mdui-theme-primary-light-green .mdui-tab .mdui-tab-active { + color: #8BC34A; +} +.mdui-theme-primary-light-green .mdui-tab-indicator { + background-color: #8BC34A; +} +.mdui-theme-primary-lime .mdui-tab .mdui-tab-active { + color: #CDDC39; +} +.mdui-theme-primary-lime .mdui-tab-indicator { + background-color: #CDDC39; +} +.mdui-theme-primary-orange .mdui-tab .mdui-tab-active { + color: #FF9800; +} +.mdui-theme-primary-orange .mdui-tab-indicator { + background-color: #FF9800; +} +.mdui-theme-primary-pink .mdui-tab .mdui-tab-active { + color: #E91E63; +} +.mdui-theme-primary-pink .mdui-tab-indicator { + background-color: #E91E63; +} +.mdui-theme-primary-purple .mdui-tab .mdui-tab-active { + color: #9C27B0; +} +.mdui-theme-primary-purple .mdui-tab-indicator { + background-color: #9C27B0; +} +.mdui-theme-primary-red .mdui-tab .mdui-tab-active { + color: #F44336; +} +.mdui-theme-primary-red .mdui-tab-indicator { + background-color: #F44336; +} +.mdui-theme-primary-teal .mdui-tab .mdui-tab-active { + color: #009688; +} +.mdui-theme-primary-teal .mdui-tab-indicator { + background-color: #009688; +} +.mdui-theme-primary-yellow .mdui-tab .mdui-tab-active { + color: #FFEB3B; +} +.mdui-theme-primary-yellow .mdui-tab-indicator { + background-color: #FFEB3B; +} +/* 带背景色的选项卡 */ +.mdui-tab[class*="mdui-color-"]:not(.mdui-color-white) .mdui-tab-active { + color: inherit; +} +.mdui-tab[class*="mdui-color-"]:not(.mdui-color-white) .mdui-tab-indicator { + background-color: #FFFFFF; +} +.mdui-tab[class*="mdui-color-"]:not(.mdui-color-white)::-webkit-scrollbar { + width: 5px; + height: 5px; + background: transparent; +} +@media (min-width: 1024px) { + .mdui-tab[class*="mdui-color-"]:not(.mdui-color-white)::-webkit-scrollbar { + width: 8px; + height: 8px; + } +} +.mdui-tab[class*="mdui-color-"]:not(.mdui-color-white)::-webkit-scrollbar-thumb { + background: rgba(255, 255, 255, 0.3); +} +/** + * ============================================================================= + * ************ Subheader 副标题 ************ + * ============================================================================= + * + * 用于 List 和 Grid list 组件 + */ +.mdui-subheader, +.mdui-subheader-inset { + position: relative; + -webkit-box-sizing: border-box; + box-sizing: border-box; + height: 48px; + padding-right: 16px; + padding-left: 16px; + color: rgba(0, 0, 0, 0.54); + font-weight: 500; + font-size: 14px; + line-height: 48px; + cursor: default; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.mdui-subheader-inset { + padding-left: 72px; +} +/** + * ============================================================================= + * ************ Subheader dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark .mdui-subheader, +.mdui-theme-layout-dark .mdui-subheader-inset { + color: rgba(255, 255, 255, 0.7); +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto .mdui-subheader, + .mdui-theme-layout-auto .mdui-subheader-inset { + color: rgba(255, 255, 255, 0.7); + } +} +/** + * ============================================================================= + * ************ Grid List 网格列表 ************ + * ============================================================================= + */ +/* 调整网格边距 */ +.mdui-grid-list { + margin: 0 -2px; +} +.mdui-grid-list .mdui-col, +.mdui-grid-list [class*="mdui-col-xs-"], +.mdui-grid-list [class*="mdui-col-sm-"], +.mdui-grid-list [class*="mdui-col-md-"], +.mdui-grid-list [class*="mdui-col-lg-"], +.mdui-grid-list [class*="mdui-col-xl-"] { + padding-right: 2px; + padding-left: 2px; +} +/* 单元格 */ +.mdui-grid-tile { + position: relative; + -webkit-box-sizing: border-box; + box-sizing: border-box; + margin-bottom: 4px; + overflow: hidden; +} +.mdui-grid-tile img { + display: block; + width: 100%; +} +/* 操作栏 */ +.mdui-grid-tile-actions { + position: absolute; + right: 0; + bottom: 0; + left: 0; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-sizing: border-box; + box-sizing: border-box; + min-height: 48px; + max-height: 68px; + padding: 16px; + color: #fff; + background: rgba(0, 0, 0, 0.2); +} +.mdui-grid-tile-actions .mdui-icon { + color: #fff; +} +/* 操作栏内的文本 */ +.mdui-grid-tile-text { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + overflow: hidden; +} +/* 标题 */ +.mdui-grid-tile-title { + height: 16px; + font-size: 16px; + line-height: 16px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.mdui-grid-tile-title .mdui-icon { + margin-right: 8px; +} +/* 副标题 */ +.mdui-grid-tile-subtitle { + height: 18px; + margin-top: 4px; + font-size: 12px; + line-height: 18px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.mdui-grid-tile-subtitle .mdui-icon { + margin-right: 8px; + font-size: 18px; +} +/* 操作栏内的按钮 */ +.mdui-grid-tile-buttons { + -webkit-box-flex: 0; + -ms-flex: none; + flex: none; + margin: -8px; + white-space: nowrap; +} +.mdui-grid-tile-buttons .mdui-btn { + margin-left: 8px; +} +.mdui-grid-tile-buttons .mdui-btn:first-child { + margin-left: 0; +} +.mdui-grid-tile-text + .mdui-grid-tile-buttons { + margin-left: 8px; +} +.mdui-grid-tile-buttons + .mdui-grid-tile-text { + margin-left: 16px; +} +/* 操作栏位于顶部 */ +.mdui-grid-tile-actions-top { + top: 0; + bottom: auto; +} +/* 操作栏背景透明 */ +.mdui-grid-tile-actions-transparent { + background: transparent; +} +/* 操作栏背景渐变 */ +.mdui-grid-tile-actions-gradient { + background: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.26)), to(rgba(0, 0, 0, 0))); + background: linear-gradient(to top, rgba(0, 0, 0, 0.26), rgba(0, 0, 0, 0)); +} +.mdui-grid-tile-actions-gradient.mdui-grid-tile-actions-top { + background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.26)), to(rgba(0, 0, 0, 0))); + background: linear-gradient(to bottom, rgba(0, 0, 0, 0.26), rgba(0, 0, 0, 0)); +} +/** + * ============================================================================= + * ************ List 列表 ************ + * ============================================================================= + */ +/* 列表 */ +.mdui-list { + margin: 0; + padding: 8px 0; + list-style: none; + background-color: transparent; +} +.mdui-list .mdui-list { + padding: 0; +} +.mdui-list > .mdui-divider, +.mdui-list > .mdui-divider-light, +.mdui-list > .mdui-divider-dark, +.mdui-list > .mdui-divider-inset, +.mdui-list > .mdui-divider-inset-light, +.mdui-list > .mdui-divider-inset-dark { + margin-top: 8px; + margin-bottom: 8px; +} +.mdui-list a { + color: inherit; + text-decoration: none; +} +.mdui-list .mdui-subheader, +.mdui-list .mdui-subheader-inset { + margin-top: 8px; +} +.mdui-list .mdui-subheader::before, +.mdui-list .mdui-subheader-inset::before { + position: absolute; + right: 0; + left: 0; + display: block; + height: 1px; + background-color: rgba(0, 0, 0, 0.12); + content: ' '; +} +.mdui-list .mdui-subheader:first-child, +.mdui-list .mdui-subheader-inset:first-child { + margin-top: -8px; +} +.mdui-list .mdui-subheader:first-child::before, +.mdui-list .mdui-subheader-inset:first-child::before { + background-color: transparent; +} +.mdui-list .mdui-subheader-inset::before { + left: 72px; +} +/* 列表项 */ +.mdui-list-item { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-sizing: border-box; + box-sizing: border-box; + min-height: 48px; + padding: 0 16px; + text-decoration: none; + cursor: pointer; + -webkit-transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1); + transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1); +} +.mdui-list-item:hover { + background-color: rgba(0, 0, 0, 0.08); +} +.mdui-list-item::after { + height: 48px; + visibility: hidden; + content: ' '; +} +/* 列表项图标 */ +.mdui-list-item-icon { + width: 24px; + min-width: 24px; + height: 24px; + color: rgba(0, 0, 0, 0.54); +} +/* 列表项头像 */ +.mdui-list-item-avatar { + min-width: 40px; + max-width: 40px; + height: 40px; + margin-top: 8px; + margin-bottom: 8px; + color: #FFFFFF; + line-height: 40px; + text-align: center; + background-color: #BDBDBD; + border-radius: 50%; +} +.mdui-list-item-avatar img { + width: 100%; + height: 100%; + border-radius: 50%; +} +/* 列表项内容 */ +.mdui-list-item-content { + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + padding-top: 14px; + padding-bottom: 14px; + font-weight: 400; + font-size: 16px; + line-height: 20px; +} +/* 列表项内容的副内容 */ +.mdui-list-item-text { + font-size: 14px; + opacity: 0.54; +} +.mdui-list-item-title ~ .mdui-list-item-text { + margin-top: 4px; +} +/* 激活状态的列表项 */ +.mdui-list-item-active { + font-weight: 700; + background-color: rgba(0, 0, 0, 0.08); +} +.mdui-list-item-active .mdui-list-item-content { + font-weight: 700; +} +.mdui-list-item-active .mdui-list-item-text { + font-weight: 400; +} +/* 限制文本高度 */ +.mdui-list-item-one-line, +.mdui-list-item-two-line, +.mdui-list-item-three-line { + display: -webkit-box; + overflow: hidden; + text-overflow: ellipsis; + -webkit-box-orient: vertical; +} +.mdui-list-item-one-line { + -webkit-line-clamp: 1; + height: 20px; +} +.mdui-list-item-two-line { + -webkit-line-clamp: 2; + height: 40px; +} +.mdui-list-item-three-line { + -webkit-line-clamp: 3; + height: 60px; +} +/* 列表项内的元素间添加间距 */ +.mdui-list-item-icon ~ .mdui-list-item-content { + margin-left: 32px; +} +.mdui-checkbox ~ .mdui-list-item-content, +.mdui-radio ~ .mdui-list-item-content, +.mdui-switch ~ .mdui-list-item-content { + margin-left: 20px; +} +.mdui-list-item-avatar ~ .mdui-list-item-content { + margin-left: 16px; +} +.mdui-list-item-content ~ .mdui-list-item-icon, +.mdui-list-item-content ~ .mdui-list-item-avatar, +.mdui-list-item-content ~ .mdui-checkbox, +.mdui-list-item-content ~ .mdui-radio, +.mdui-list-item-content ~ .mdui-switch { + margin-left: 16px; +} +.mdui-list-item-content ~ .mdui-checkbox, +.mdui-list-item-content ~ .mdui-radio { + padding-left: 24px; +} +/* 密集型列表 */ +.mdui-list-dense { + padding: 4px 0; + font-size: 13px; +} +.mdui-list-dense > .mdui-divider, +.mdui-list-dense > .mdui-divider-light, +.mdui-list-dense > .mdui-divider-dark, +.mdui-list-dense > .mdui-divider-inset, +.mdui-list-dense > .mdui-divider-inset-light, +.mdui-list-dense > .mdui-divider-inset-dark { + margin-top: 4px; + margin-bottom: 4px; +} +.mdui-list-dense .mdui-subheader, +.mdui-list-dense .mdui-subheader-inset { + height: 40px; + margin-top: 4px; + font-size: 12px; + line-height: 40px; +} +.mdui-list-dense .mdui-subheader:first-child, +.mdui-list-dense .mdui-subheader-inset:first-child { + margin-top: -4px; +} +.mdui-list-dense .mdui-list-item { + min-height: 40px; +} +.mdui-list-dense .mdui-list-item::after { + height: 40px; +} +.mdui-list-dense .mdui-list-item-icon { + width: 20px; + height: 20px; + font-size: 20px; +} +.mdui-list-dense .mdui-list-item-avatar { + width: 36px; + min-width: 36px; + height: 36px; + min-height: 36px; +} +.mdui-list-dense .mdui-list-item-content { + padding-top: 11px; + padding-bottom: 11px; + font-size: 13px; + line-height: 18px; +} +.mdui-list-dense .mdui-list-item-text { + font-size: 13px; +} +.mdui-list-dense .mdui-list-item-title ~ .mdui-list-item-text { + margin-top: 2px; +} +.mdui-list-dense .mdui-list-item-one-line { + height: 18px; +} +.mdui-list-dense .mdui-list-item-two-line { + height: 36px; +} +.mdui-list-dense .mdui-list-item-three-line { + height: 54px; +} +/** + * ============================================================================= + * ************ List dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark .mdui-list .mdui-subheader::before, +.mdui-theme-layout-dark .mdui-list .mdui-subheader-inset::before { + background-color: rgba(255, 255, 255, 0.12); +} +.mdui-theme-layout-dark .mdui-list .mdui-subheader:first-child::before, +.mdui-theme-layout-dark .mdui-list .mdui-subheader-inset:first-child::before { + background-color: transparent; +} +.mdui-theme-layout-dark .mdui-list-item { + color: #ffffff; +} +.mdui-theme-layout-dark .mdui-list-item:hover { + background-color: rgba(255, 255, 255, 0.08); +} +.mdui-theme-layout-dark .mdui-list-item-icon { + color: #ffffff; +} +.mdui-theme-layout-dark .mdui-list-item-text { + opacity: 0.7; +} +.mdui-theme-layout-dark .mdui-list-item-active { + background-color: rgba(255, 255, 255, 0.08); +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto .mdui-list .mdui-subheader::before, + .mdui-theme-layout-auto .mdui-list .mdui-subheader-inset::before { + background-color: rgba(255, 255, 255, 0.12); + } + .mdui-theme-layout-auto .mdui-list .mdui-subheader:first-child::before, + .mdui-theme-layout-auto .mdui-list .mdui-subheader-inset:first-child::before { + background-color: transparent; + } + .mdui-theme-layout-auto .mdui-list-item { + color: #ffffff; + } + .mdui-theme-layout-auto .mdui-list-item:hover { + background-color: rgba(255, 255, 255, 0.08); + } + .mdui-theme-layout-auto .mdui-list-item-icon { + color: #ffffff; + } + .mdui-theme-layout-auto .mdui-list-item-text { + opacity: 0.7; + } + .mdui-theme-layout-auto .mdui-list-item-active { + background-color: rgba(255, 255, 255, 0.08); + } +} +/** + * ============================================================================== + * ************ List inner theme ************ + * ============================================================================== + */ +[class*="mdui-color-"] .mdui-list-item { + color: inherit; +} +[class*="mdui-color-"] .mdui-list-item-icon { + color: inherit; +} +/** + * ============================================================================= + * ************ Drawer 抽屉栏导航 ************ + * ============================================================================= + */ +/* DOM 加载完后再添加 transition */ +body.mdui-loaded { + -webkit-transition: padding 0.3s cubic-bezier(0, 0, 0.2, 1); + transition: padding 0.3s cubic-bezier(0, 0, 0.2, 1); +} +body.mdui-loaded .mdui-drawer { + -webkit-transition: all 0.3s cubic-bezier(0, 0, 0.2, 1); + transition: all 0.3s cubic-bezier(0, 0, 0.2, 1); +} +/* 抽屉栏外层,默认出现在左侧且隐藏 */ +.mdui-drawer { + position: fixed; + top: 0; + bottom: 0; + left: 0; + z-index: 5000; + -webkit-box-sizing: border-box; + box-sizing: border-box; + /* stylelint-disable-next-line */ + width: calc(100% - 56px); + max-width: 280px; + margin: 0; + overflow-x: hidden; + overflow-y: auto; + white-space: nowrap; + will-change: transform; + -webkit-overflow-scrolling: touch; +} +@media (max-width: 1023.9px) { + .mdui-drawer:not(.mdui-drawer-open) { + -webkit-box-shadow: none !important; + box-shadow: none !important; + } +} +@media (min-width: 600px) { + .mdui-drawer { + /* stylelint-disable-next-line */ + width: calc(100% - 64px); + max-width: 320px; + } +} +@media (min-width: 1024px) { + .mdui-drawer { + width: 240px; + max-width: none; + } + .mdui-drawer.mdui-drawer-close { + -webkit-box-shadow: none !important; + box-shadow: none !important; + } +} +/* 出现在右侧的抽屉栏 */ +.mdui-drawer-right { + right: 0; + left: auto; +} +/* 平板上的样式 */ +@media (max-width: 1023.9px) { + .mdui-drawer { + /* 始终有背景和阴影 */ + background-color: #fff; + /* 默认隐藏 */ + -webkit-transform: translateX(-330px); + transform: translateX(-330px); + -webkit-box-shadow: 0 8px 10px -5px rgba(0, 0, 0, 0.2), 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12); + box-shadow: 0 8px 10px -5px rgba(0, 0, 0, 0.2), 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12); + } + .mdui-drawer-right { + /* 右侧 drawer 也默认隐藏 */ + -webkit-transform: translateX(330px); + transform: translateX(330px); + } +} +/* 手机上的样式 */ +@media (max-width: 599.9px) { + .mdui-drawer { + -webkit-transform: translateX(-290px); + transform: translateX(-290px); + } + .mdui-drawer-right { + -webkit-transform: translateX(290px); + transform: translateX(290px); + } +} +/* 强制隐藏抽屉栏 */ +.mdui-drawer-close { + -webkit-transform: translateX(-290px); + transform: translateX(-290px); +} +.mdui-drawer-close.mdui-drawer-right { + -webkit-transform: translateX(290px); + transform: translateX(290px); +} +@media (min-width: 600px) { + .mdui-drawer-close { + -webkit-transform: translateX(-330px); + transform: translateX(-330px); + } + .mdui-drawer-close.mdui-drawer-right { + -webkit-transform: translateX(330px); + transform: translateX(330px); + } +} +@media (min-width: 1024px) { + .mdui-drawer-close { + -webkit-transform: translateX(-250px); + transform: translateX(-250px); + } + .mdui-drawer-close.mdui-drawer-right { + -webkit-transform: translateX(250px); + transform: translateX(250px); + } +} +/* 强制显示抽屉栏 */ +.mdui-drawer-open { + -webkit-transform: translateX(0) !important; + transform: translateX(0) !important; +} +/* PC 上的样式 */ +@media (min-width: 1024px) { + /* 使该类所在元素获得 padding-left 或 padding-right,避免被抽屉栏覆盖住页面 */ + .mdui-drawer-body-left { + padding-left: 240px; + } + .mdui-drawer-body-right { + padding-right: 240px; + } + /* PC 上默认有上边距 */ + .mdui-appbar-with-toolbar .mdui-drawer { + top: 64px; + } + .mdui-appbar-with-tab .mdui-drawer { + top: 48px; + } + .mdui-appbar-with-tab-larger .mdui-drawer { + top: 72px; + } + .mdui-appbar-with-toolbar.mdui-appbar-with-tab .mdui-drawer { + top: 112px; + } + .mdui-appbar-with-toolbar.mdui-appbar-with-tab-larger .mdui-drawer { + top: 136px; + } +} +/* 抽屉栏不是透明时添加阴影 */ +.mdui-drawer[class*="mdui-color-"]:not(.mdui-color-transparent) { + -webkit-box-shadow: 0 8px 10px -5px rgba(0, 0, 0, 0.2), 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12); + box-shadow: 0 8px 10px -5px rgba(0, 0, 0, 0.2), 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12); +} +/* 抽屉栏 100% 高度,覆盖在导航栏上面 */ +.mdui-drawer-full-height { + top: 0 !important; +} +/** + * ============================================================================= + * ************ Drawer dark ************ + * ============================================================================= + */ +@media (max-width: 1023.9px) { + .mdui-theme-layout-dark .mdui-drawer { + background-color: #424242; + } +} +@media (prefers-color-scheme: dark) and (max-width: 1023.9px) { + .mdui-theme-layout-auto .mdui-drawer { + background-color: #424242; + } +} +/** + * ============================================================================= + * ************ Dialog 提示框 ************ + * ============================================================================= + */ +.mdui-dialog { + position: fixed; + right: 0; + left: 0; + z-index: 6000; + display: none; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 92%; + min-width: 180px; + max-width: 728px; + max-height: 90%; + margin: auto; + overflow: hidden; + color: #000; + background-color: #fff; + border-radius: 2px; + -webkit-transform: scale(0.95); + transform: scale(0.95); + opacity: 0; + -webkit-transition-duration: 0.3s; + transition-duration: 0.3s; + -webkit-transition-property: opacity, visibility, -webkit-transform; + transition-property: opacity, visibility, -webkit-transform; + transition-property: transform, opacity, visibility; + transition-property: transform, opacity, visibility, -webkit-transform; + will-change: top, opacity, transform; + -webkit-box-shadow: 0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12); + box-shadow: 0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12); +} +@media (min-width: 600px) { + .mdui-dialog { + width: 85%; + max-height: 85%; + } +} +@media (min-width: 1024px) { + .mdui-dialog { + width: 80%; + max-height: 80%; + } +} +/* 打开提示框 */ +.mdui-dialog-open { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 1; +} +/* 提示框标题 */ +.mdui-dialog-title { + -webkit-box-sizing: border-box; + box-sizing: border-box; + font-weight: 500; + font-size: 20px; + line-height: 24px; + text-align: left; +} +/* 标题固定在顶部 */ +.mdui-dialog > .mdui-dialog-title { + padding: 24px 24px 20px 24px; +} +/* 提示框内容 */ +.mdui-dialog-content { + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding: 24px; + overflow-y: auto; + color: rgba(0, 0, 0, 0.7); + font-size: 15px; + line-height: 1.5; + -webkit-overflow-scrolling: touch; +} +/* 标题随内容滚动 */ +.mdui-dialog-content > .mdui-dialog-title { + padding-bottom: 20px; +} +.mdui-dialog-title + .mdui-dialog-content { + padding-top: 0; +} +/* 提示框底部按钮 */ +.mdui-dialog-actions { + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding: 8px; + text-align: right; +} +.mdui-dialog-actions .mdui-btn { + min-width: 64px; + margin-left: 8px; + color: #E91E63; +} +.mdui-dialog-actions .mdui-btn:first-child { + margin-left: 0; +} +/* 底部按钮滚随内容动 */ +.mdui-dialog-content > .mdui-dialog-actions { + margin: 0 -24px -24px -24px; + padding-top: 32px; +} +/* 使提示框底部按钮竖排 */ +.mdui-dialog-actions-stacked { + padding: 8px 0 8px 0; +} +.mdui-dialog-actions-stacked .mdui-btn { + width: 100%; + height: 48px; + margin: 0; + line-height: 48px !important; + text-align: right; + border-radius: 0; +} +/** + * ============================================================================= + * ************ Dialog 强调色 ************ + * ============================================================================= + */ +.mdui-theme-accent-amber .mdui-dialog-actions .mdui-btn { + color: #FFC107; +} +.mdui-theme-accent-blue .mdui-dialog-actions .mdui-btn { + color: #2196F3; +} +.mdui-theme-accent-cyan .mdui-dialog-actions .mdui-btn { + color: #00BCD4; +} +.mdui-theme-accent-deep-orange .mdui-dialog-actions .mdui-btn { + color: #FF5722; +} +.mdui-theme-accent-deep-purple .mdui-dialog-actions .mdui-btn { + color: #673AB7; +} +.mdui-theme-accent-green .mdui-dialog-actions .mdui-btn { + color: #4CAF50; +} +.mdui-theme-accent-indigo .mdui-dialog-actions .mdui-btn { + color: #3F51B5; +} +.mdui-theme-accent-light-blue .mdui-dialog-actions .mdui-btn { + color: #03A9F4; +} +.mdui-theme-accent-light-green .mdui-dialog-actions .mdui-btn { + color: #8BC34A; +} +.mdui-theme-accent-lime .mdui-dialog-actions .mdui-btn { + color: #CDDC39; +} +.mdui-theme-accent-orange .mdui-dialog-actions .mdui-btn { + color: #FF9800; +} +.mdui-theme-accent-pink .mdui-dialog-actions .mdui-btn { + color: #E91E63; +} +.mdui-theme-accent-purple .mdui-dialog-actions .mdui-btn { + color: #9C27B0; +} +.mdui-theme-accent-red .mdui-dialog-actions .mdui-btn { + color: #F44336; +} +.mdui-theme-accent-teal .mdui-dialog-actions .mdui-btn { + color: #009688; +} +.mdui-theme-accent-yellow .mdui-dialog-actions .mdui-btn { + color: #FFEB3B; +} +/** + * ============================================================================= + * ************ Dialog dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark .mdui-dialog { + color: #fff; + background-color: #424242; +} +.mdui-theme-layout-dark .mdui-dialog-content { + color: rgba(255, 255, 255, 0.7); +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto .mdui-dialog { + color: #fff; + background-color: #424242; + } + .mdui-theme-layout-auto .mdui-dialog-content { + color: rgba(255, 255, 255, 0.7); + } +} +/** + * ============================================================================= + * ************ Dialog alert ************ + * ============================================================================= + */ +.mdui-dialog-alert { + max-width: 448px; +} +/** + * ============================================================================= + * ************ Dialog confirm ************ + * ============================================================================= + */ +.mdui-dialog-confirm { + max-width: 448px; +} +/** + * ============================================================================= + * ************ Dialog prompt ************ + * ============================================================================= + */ +.mdui-dialog-prompt { + max-width: 448px; +} +.mdui-dialog-prompt .mdui-textfield { + padding-top: 0; +} +/** + * ============================================================================= + * ************ Tooltip 工具提示 ************ + * ============================================================================= + */ +.mdui-tooltip { + position: absolute; + z-index: 9000; + display: inline-block; + -webkit-box-sizing: border-box; + box-sizing: border-box; + max-width: 180px; + min-height: 32px; + padding: 8px 16px; + color: #fff; + font-weight: 500; + font-size: 14px; + line-height: 22px; + text-align: left; + background-color: rgba(97, 97, 97, 0.9); + border-radius: 2px; + -webkit-transform: scale(0); + transform: scale(0); + opacity: 0; + -webkit-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + -webkit-transition-duration: 0.15s; + transition-duration: 0.15s; + -webkit-transition-property: opacity, -webkit-transform; + transition-property: opacity, -webkit-transform; + transition-property: opacity, transform; + transition-property: opacity, transform, -webkit-transform; + will-change: opacity, transform; +} +@media (min-width: 1024px) { + .mdui-tooltip { + max-width: 200px; + min-height: 24px; + padding: 4px 8px; + font-size: 12px; + line-height: 18px; + } +} +/* 显示工具提示 */ +.mdui-tooltip-open { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 1; +} +/** + * ============================================================================= + * ************ Snackbar ************ + * ============================================================================= + */ +.mdui-snackbar { + position: fixed; + z-index: 7000; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 100%; + min-height: 48px; + padding: 0 24px 0 24px; + color: #fff; + font-size: 14px; + line-height: 20px; + background-color: #323232; + will-change: transform; +} +@media (min-width: 600px) { + .mdui-snackbar { + width: auto; + min-width: 288px; + max-width: 568px; + border-radius: 2px; + } +} +.mdui-snackbar-bottom, +.mdui-snackbar-top, +.mdui-snackbar-left-top, +.mdui-snackbar-left-bottom, +.mdui-snackbar-right-top, +.mdui-snackbar-right-bottom { + -webkit-transition: -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); + transition: -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); + transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); + transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.3s cubic-bezier(0.4, 0, 0.2, 1); +} +/* 位置 */ +.mdui-snackbar-bottom, +.mdui-snackbar-left-bottom, +.mdui-snackbar-right-bottom { + bottom: 0; +} +.mdui-snackbar-top, +.mdui-snackbar-left-top, +.mdui-snackbar-right-top { + top: 0; +} +.mdui-snackbar-top, +.mdui-snackbar-bottom { + left: 50%; +} +@media (min-width: 600px) { + .mdui-snackbar-left-top { + top: 24px; + left: 24px; + } + .mdui-snackbar-left-bottom { + bottom: 24px; + left: 24px; + } + .mdui-snackbar-right-top { + top: 24px; + right: 24px; + } + .mdui-snackbar-right-bottom { + right: 24px; + bottom: 24px; + } +} +/* 文本 */ +.mdui-snackbar-text { + position: relative; + max-width: 100%; + padding: 14px 0 14px 0; + overflow: hidden; + text-overflow: ellipsis; +} +/* 按钮 */ +.mdui-snackbar-action { + margin-right: -16px; + white-space: nowrap; + color: #FF80AB; +} +/** + * ============================================================================= + * ************ Snackbar 强调色 ************ + * ============================================================================= + */ +.mdui-theme-accent-amber .mdui-snackbar-action { + color: #FFE57F; +} +.mdui-theme-accent-blue .mdui-snackbar-action { + color: #82B1FF; +} +.mdui-theme-accent-cyan .mdui-snackbar-action { + color: #84FFFF; +} +.mdui-theme-accent-deep-orange .mdui-snackbar-action { + color: #FF9E80; +} +.mdui-theme-accent-deep-purple .mdui-snackbar-action { + color: #B388FF; +} +.mdui-theme-accent-green .mdui-snackbar-action { + color: #B9F6CA; +} +.mdui-theme-accent-indigo .mdui-snackbar-action { + color: #8C9EFF; +} +.mdui-theme-accent-light-blue .mdui-snackbar-action { + color: #80D8FF; +} +.mdui-theme-accent-light-green .mdui-snackbar-action { + color: #CCFF90; +} +.mdui-theme-accent-lime .mdui-snackbar-action { + color: #F4FF81; +} +.mdui-theme-accent-orange .mdui-snackbar-action { + color: #FFD180; +} +.mdui-theme-accent-pink .mdui-snackbar-action { + color: #FF80AB; +} +.mdui-theme-accent-purple .mdui-snackbar-action { + color: #EA80FC; +} +.mdui-theme-accent-red .mdui-snackbar-action { + color: #FF8A80; +} +.mdui-theme-accent-teal .mdui-snackbar-action { + color: #A7FFEB; +} +.mdui-theme-accent-yellow .mdui-snackbar-action { + color: #FFFF8D; +} +/** + * ============================================================================= + * ************ Snackbar dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark .mdui-snackbar { + background-color: #5d5d5d; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto .mdui-snackbar { + background-color: #5d5d5d; + } +} +/** + * ============================================================================= + * ************ Chip 纸片 ************ + * ============================================================================= + */ +.mdui-chip { + display: inline-block; + -webkit-box-sizing: border-box; + box-sizing: border-box; + height: 32px; + margin: 2px 0; + color: inherit; + white-space: nowrap; + background-color: #e0e0e0; + border-radius: 16px; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-transition: -webkit-box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1); + transition: -webkit-box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1); + transition: box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1); + transition: box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1), -webkit-box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1); + will-change: box-shadow; +} +.mdui-chip:hover, +.mdui-chip:focus { + -webkit-box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); + box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12); +} +.mdui-chip:active { + background-color: #d6d6d6; +} +/* 左侧的图标 */ +.mdui-chip-icon { + position: relative; + display: inline-block; + width: 32px; + height: 32px; + margin-right: -4px; + overflow: hidden; + color: #fff; + font-size: 18px; + line-height: 32px; + text-align: center; + vertical-align: middle; + background-color: #989898; + border-radius: 50%; +} +.mdui-chip-icon .mdui-icon { + position: absolute; + top: 4px; + left: 4px; + color: #fff; +} +/* 文本 */ +.mdui-chip-title { + display: inline-block; + height: 32px; + padding-right: 12px; + padding-left: 12px; + font-size: 14px; + line-height: 32px; + vertical-align: middle; +} +/* 删除按钮 */ +.mdui-chip-delete { + display: inline-block; + width: 24px; + height: 24px; + margin-right: 4px; + margin-left: -8px; + overflow: hidden; + text-align: center; + text-decoration: none; + vertical-align: middle; + border-radius: 50%; + cursor: pointer; + opacity: 0.54; + -webkit-transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1); + transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1); + will-change: opacity; +} +.mdui-chip-delete:hover, +.mdui-chip-delete:focus { + opacity: 0.87; +} +/** + * ============================================================================= + * ************ Chip dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark .mdui-chip { + background-color: #484848; +} +.mdui-theme-layout-dark .mdui-chip:active { + background-color: #5d5d5d; +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto .mdui-chip { + background-color: #484848; + } + .mdui-theme-layout-auto .mdui-chip:active { + background-color: #5d5d5d; + } +} +/** + * ============================================================================= + * ************ Bottom navigation 底部导航栏 ************ + * ============================================================================= + */ +.mdui-bottom-nav { + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + height: 56px; + margin: 0 auto; + padding: 0; + overflow: hidden; + white-space: nowrap; +} +@media (min-width: 600px) { + .mdui-bottom-nav::before { + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + content: ' '; + } + .mdui-bottom-nav::after { + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + content: ' '; + } +} +.mdui-bottom-nav a { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + min-width: 32px; + max-width: none; + padding: 8px 12px 10px 12px; + overflow: hidden; + color: inherit; + font-size: 12px; + text-align: center; + text-decoration: none; + text-overflow: ellipsis; + cursor: pointer; + opacity: 0.7; + -webkit-transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); + transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + will-change: padding; +} +@media (min-width: 600px) { + .mdui-bottom-nav a { + max-width: 144px; + } +} +.mdui-bottom-nav a .mdui-icon { + opacity: 0.7; +} +.mdui-bottom-nav a label { + display: block; + width: 100%; + cursor: pointer; + -webkit-transition: -webkit-transform 0.2s cubic-bezier(0.4, 0, 0.2, 1); + transition: -webkit-transform 0.2s cubic-bezier(0.4, 0, 0.2, 1); + transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1); + transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.2s cubic-bezier(0.4, 0, 0.2, 1); + will-change: font-size; +} +.mdui-bottom-nav a .mdui-icon + label { + margin-top: 6px; +} +.mdui-bottom-nav a.mdui-bottom-nav-active { + color: #3F51B5; + font-size: 14px; + opacity: 1; +} +.mdui-bottom-nav a.mdui-bottom-nav-active .mdui-icon { + opacity: 1; +} +/* 只在激活时显示文本 */ +.mdui-bottom-nav-text-auto a { + min-width: 32px; + padding-right: 0; + padding-left: 0; +} +@media (min-width: 600px) { + .mdui-bottom-nav-text-auto a { + max-width: 156px; + } +} +.mdui-bottom-nav-text-auto a .mdui-icon { + padding-top: 16px; + -webkit-transition: padding-top 0.2s cubic-bezier(0.4, 0, 0.2, 1); + transition: padding-top 0.2s cubic-bezier(0.4, 0, 0.2, 1); + will-change: padding-top; +} +.mdui-bottom-nav-text-auto a label { + -webkit-transform: scale(0); + transform: scale(0); +} +.mdui-bottom-nav-text-auto a.mdui-bottom-nav-active { + padding-right: 18px; + padding-left: 18px; +} +.mdui-bottom-nav-text-auto a.mdui-bottom-nav-active .mdui-icon { + padding-top: 0; +} +.mdui-bottom-nav-text-auto a.mdui-bottom-nav-active label { + -webkit-transform: scale(1); + transform: scale(1); +} +/* 固定到页面底部 */ +.mdui-bottom-nav-fixed { + padding-bottom: 56px; +} +.mdui-bottom-nav-fixed .mdui-bottom-nav { + position: fixed; + right: 0; + bottom: 0; + left: 0; +} +/** + * ============================================================================= + * ************ Bottom Nav 主色 ************ + * ============================================================================= + */ +.mdui-theme-primary-amber .mdui-bottom-nav a.mdui-bottom-nav-active { + color: #FFC107; +} +.mdui-theme-primary-blue .mdui-bottom-nav a.mdui-bottom-nav-active { + color: #2196F3; +} +.mdui-theme-primary-blue-grey .mdui-bottom-nav a.mdui-bottom-nav-active { + color: #607D8B; +} +.mdui-theme-primary-brown .mdui-bottom-nav a.mdui-bottom-nav-active { + color: #795548; +} +.mdui-theme-primary-cyan .mdui-bottom-nav a.mdui-bottom-nav-active { + color: #00BCD4; +} +.mdui-theme-primary-deep-orange .mdui-bottom-nav a.mdui-bottom-nav-active { + color: #FF5722; +} +.mdui-theme-primary-deep-purple .mdui-bottom-nav a.mdui-bottom-nav-active { + color: #673AB7; +} +.mdui-theme-primary-green .mdui-bottom-nav a.mdui-bottom-nav-active { + color: #4CAF50; +} +.mdui-theme-primary-grey .mdui-bottom-nav a.mdui-bottom-nav-active { + color: #9E9E9E; +} +.mdui-theme-primary-indigo .mdui-bottom-nav a.mdui-bottom-nav-active { + color: #3F51B5; +} +.mdui-theme-primary-light-blue .mdui-bottom-nav a.mdui-bottom-nav-active { + color: #03A9F4; +} +.mdui-theme-primary-light-green .mdui-bottom-nav a.mdui-bottom-nav-active { + color: #8BC34A; +} +.mdui-theme-primary-lime .mdui-bottom-nav a.mdui-bottom-nav-active { + color: #CDDC39; +} +.mdui-theme-primary-orange .mdui-bottom-nav a.mdui-bottom-nav-active { + color: #FF9800; +} +.mdui-theme-primary-pink .mdui-bottom-nav a.mdui-bottom-nav-active { + color: #E91E63; +} +.mdui-theme-primary-purple .mdui-bottom-nav a.mdui-bottom-nav-active { + color: #9C27B0; +} +.mdui-theme-primary-red .mdui-bottom-nav a.mdui-bottom-nav-active { + color: #F44336; +} +.mdui-theme-primary-teal .mdui-bottom-nav a.mdui-bottom-nav-active { + color: #009688; +} +.mdui-theme-primary-yellow .mdui-bottom-nav a.mdui-bottom-nav-active { + color: #FFEB3B; +} +/* 带背景色的底部导航栏 */ +.mdui-bottom-nav[class*="mdui-color-"] .mdui-bottom-nav-active { + color: inherit !important; +} +/** + * ============================================================================= + * ************ Progress Linear 线性进度条 ************ + * ============================================================================= + */ +/* 线性进度条 */ +.mdui-progress { + position: relative; + display: block; + width: 100%; + height: 4px; + overflow: hidden; + background-color: rgba(63, 81, 181, 0.2); + border-radius: 2px; +} +/* 确定进度的线性进度条 */ +.mdui-progress-determinate { + position: absolute; + top: 0; + bottom: 0; + left: 0; + background-color: #3F51B5; + -webkit-transition: width 0.3s linear; + transition: width 0.3s linear; +} +/* 不确定进度的线性进度条 */ +.mdui-progress-indeterminate { + background-color: #3F51B5; +} +.mdui-progress-indeterminate::before { + position: absolute; + top: 0; + bottom: 0; + left: 0; + background-color: inherit; + -webkit-animation: mdui-progress-indeterminate 2s linear infinite; + animation: mdui-progress-indeterminate 2s linear infinite; + content: ' '; + will-change: left, width; +} +.mdui-progress-indeterminate::after { + position: absolute; + top: 0; + bottom: 0; + left: 0; + background-color: inherit; + -webkit-animation: mdui-progress-indeterminate-short 2s linear infinite; + animation: mdui-progress-indeterminate-short 2s linear infinite; + content: ' '; + will-change: left, width; +} +@-webkit-keyframes mdui-progress-indeterminate { + 0% { + left: 0; + width: 0; + } + 50% { + left: 30%; + width: 70%; + } + 75% { + left: 100%; + width: 0; + } +} +@keyframes mdui-progress-indeterminate { + 0% { + left: 0; + width: 0; + } + 50% { + left: 30%; + width: 70%; + } + 75% { + left: 100%; + width: 0; + } +} +@-webkit-keyframes mdui-progress-indeterminate-short { + 0% { + left: 0; + width: 0; + } + 50% { + left: 0; + width: 0; + } + 75% { + left: 0; + width: 25%; + } + 100% { + left: 100%; + width: 0; + } +} +@keyframes mdui-progress-indeterminate-short { + 0% { + left: 0; + width: 0; + } + 50% { + left: 0; + width: 0; + } + 75% { + left: 0; + width: 25%; + } + 100% { + left: 100%; + width: 0; + } +} +/** + * ============================================================================= + * ************ Progress linear 主色 ************ + * ============================================================================= + */ +.mdui-theme-primary-amber .mdui-progress { + background-color: rgba(255, 193, 7, 0.2); +} +.mdui-theme-primary-amber .mdui-progress-determinate, +.mdui-theme-primary-amber .mdui-progress-indeterminate { + background-color: #FFC107; +} +.mdui-theme-primary-blue .mdui-progress { + background-color: rgba(33, 150, 243, 0.2); +} +.mdui-theme-primary-blue .mdui-progress-determinate, +.mdui-theme-primary-blue .mdui-progress-indeterminate { + background-color: #2196F3; +} +.mdui-theme-primary-blue-grey .mdui-progress { + background-color: rgba(96, 125, 139, 0.2); +} +.mdui-theme-primary-blue-grey .mdui-progress-determinate, +.mdui-theme-primary-blue-grey .mdui-progress-indeterminate { + background-color: #607D8B; +} +.mdui-theme-primary-brown .mdui-progress { + background-color: rgba(121, 85, 72, 0.2); +} +.mdui-theme-primary-brown .mdui-progress-determinate, +.mdui-theme-primary-brown .mdui-progress-indeterminate { + background-color: #795548; +} +.mdui-theme-primary-cyan .mdui-progress { + background-color: rgba(0, 188, 212, 0.2); +} +.mdui-theme-primary-cyan .mdui-progress-determinate, +.mdui-theme-primary-cyan .mdui-progress-indeterminate { + background-color: #00BCD4; +} +.mdui-theme-primary-deep-orange .mdui-progress { + background-color: rgba(255, 87, 34, 0.2); +} +.mdui-theme-primary-deep-orange .mdui-progress-determinate, +.mdui-theme-primary-deep-orange .mdui-progress-indeterminate { + background-color: #FF5722; +} +.mdui-theme-primary-deep-purple .mdui-progress { + background-color: rgba(103, 58, 183, 0.2); +} +.mdui-theme-primary-deep-purple .mdui-progress-determinate, +.mdui-theme-primary-deep-purple .mdui-progress-indeterminate { + background-color: #673AB7; +} +.mdui-theme-primary-green .mdui-progress { + background-color: rgba(76, 175, 80, 0.2); +} +.mdui-theme-primary-green .mdui-progress-determinate, +.mdui-theme-primary-green .mdui-progress-indeterminate { + background-color: #4CAF50; +} +.mdui-theme-primary-grey .mdui-progress { + background-color: rgba(158, 158, 158, 0.2); +} +.mdui-theme-primary-grey .mdui-progress-determinate, +.mdui-theme-primary-grey .mdui-progress-indeterminate { + background-color: #9E9E9E; +} +.mdui-theme-primary-indigo .mdui-progress { + background-color: rgba(63, 81, 181, 0.2); +} +.mdui-theme-primary-indigo .mdui-progress-determinate, +.mdui-theme-primary-indigo .mdui-progress-indeterminate { + background-color: #3F51B5; +} +.mdui-theme-primary-light-blue .mdui-progress { + background-color: rgba(3, 169, 244, 0.2); +} +.mdui-theme-primary-light-blue .mdui-progress-determinate, +.mdui-theme-primary-light-blue .mdui-progress-indeterminate { + background-color: #03A9F4; +} +.mdui-theme-primary-light-green .mdui-progress { + background-color: rgba(139, 195, 74, 0.2); +} +.mdui-theme-primary-light-green .mdui-progress-determinate, +.mdui-theme-primary-light-green .mdui-progress-indeterminate { + background-color: #8BC34A; +} +.mdui-theme-primary-lime .mdui-progress { + background-color: rgba(205, 220, 57, 0.2); +} +.mdui-theme-primary-lime .mdui-progress-determinate, +.mdui-theme-primary-lime .mdui-progress-indeterminate { + background-color: #CDDC39; +} +.mdui-theme-primary-orange .mdui-progress { + background-color: rgba(255, 152, 0, 0.2); +} +.mdui-theme-primary-orange .mdui-progress-determinate, +.mdui-theme-primary-orange .mdui-progress-indeterminate { + background-color: #FF9800; +} +.mdui-theme-primary-pink .mdui-progress { + background-color: rgba(233, 30, 99, 0.2); +} +.mdui-theme-primary-pink .mdui-progress-determinate, +.mdui-theme-primary-pink .mdui-progress-indeterminate { + background-color: #E91E63; +} +.mdui-theme-primary-purple .mdui-progress { + background-color: rgba(156, 39, 176, 0.2); +} +.mdui-theme-primary-purple .mdui-progress-determinate, +.mdui-theme-primary-purple .mdui-progress-indeterminate { + background-color: #9C27B0; +} +.mdui-theme-primary-red .mdui-progress { + background-color: rgba(244, 67, 54, 0.2); +} +.mdui-theme-primary-red .mdui-progress-determinate, +.mdui-theme-primary-red .mdui-progress-indeterminate { + background-color: #F44336; +} +.mdui-theme-primary-teal .mdui-progress { + background-color: rgba(0, 150, 136, 0.2); +} +.mdui-theme-primary-teal .mdui-progress-determinate, +.mdui-theme-primary-teal .mdui-progress-indeterminate { + background-color: #009688; +} +.mdui-theme-primary-yellow .mdui-progress { + background-color: rgba(255, 235, 59, 0.2); +} +.mdui-theme-primary-yellow .mdui-progress-determinate, +.mdui-theme-primary-yellow .mdui-progress-indeterminate { + background-color: #FFEB3B; +} +/** + * ============================================================================= + * ************ Progress Circular 圆形进度条 ************ + * ============================================================================= + */ +.mdui-spinner { + position: relative; + display: inline-block; + width: 28px; + height: 28px; + -webkit-animation: mdui-spinner 1568ms linear infinite; + animation: mdui-spinner 1568ms linear infinite; +} +@-webkit-keyframes mdui-spinner { + to { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} +@keyframes mdui-spinner { + to { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); + } +} +.mdui-spinner-layer { + position: absolute; + width: 100%; + height: 100%; + border-color: #3F51B5; + opacity: 0; + opacity: 1; + -webkit-animation: mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; + animation: mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; +} +.mdui-spinner-layer-1 { + border-color: #42A5F5 !important; + -webkit-animation: mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdui-spinner-layer-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; + animation: mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdui-spinner-layer-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; +} +.mdui-spinner-layer-2 { + border-color: #F44336 !important; + -webkit-animation: mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdui-spinner-layer-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; + animation: mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdui-spinner-layer-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; +} +.mdui-spinner-layer-3 { + border-color: #FDD835 !important; + -webkit-animation: mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdui-spinner-layer-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; + animation: mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdui-spinner-layer-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; +} +.mdui-spinner-layer-4 { + border-color: #4CAF50 !important; + -webkit-animation: mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdui-spinner-layer-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; + animation: mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdui-spinner-layer-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; +} +@-webkit-keyframes mdui-spinner-layer-fill-unfill-rotate { + 12.5% { + -webkit-transform: rotate(135deg); + transform: rotate(135deg); + } + 25% { + -webkit-transform: rotate(270deg); + transform: rotate(270deg); + } + 37.5% { + -webkit-transform: rotate(405deg); + transform: rotate(405deg); + } + 50% { + -webkit-transform: rotate(540deg); + transform: rotate(540deg); + } + 62.5% { + -webkit-transform: rotate(675deg); + transform: rotate(675deg); + } + 75% { + -webkit-transform: rotate(810deg); + transform: rotate(810deg); + } + 87.5% { + -webkit-transform: rotate(945deg); + transform: rotate(945deg); + } + to { + -webkit-transform: rotate(1080deg); + transform: rotate(1080deg); + } +} +@keyframes mdui-spinner-layer-fill-unfill-rotate { + 12.5% { + -webkit-transform: rotate(135deg); + transform: rotate(135deg); + } + 25% { + -webkit-transform: rotate(270deg); + transform: rotate(270deg); + } + 37.5% { + -webkit-transform: rotate(405deg); + transform: rotate(405deg); + } + 50% { + -webkit-transform: rotate(540deg); + transform: rotate(540deg); + } + 62.5% { + -webkit-transform: rotate(675deg); + transform: rotate(675deg); + } + 75% { + -webkit-transform: rotate(810deg); + transform: rotate(810deg); + } + 87.5% { + -webkit-transform: rotate(945deg); + transform: rotate(945deg); + } + to { + -webkit-transform: rotate(1080deg); + transform: rotate(1080deg); + } +} +@-webkit-keyframes mdui-spinner-layer-1-fade-in-out { + from { + opacity: 1; + } + 25% { + opacity: 1; + } + 26% { + opacity: 0; + } + 89% { + opacity: 0; + } + 90% { + opacity: 1; + } + 100% { + opacity: 1; + } +} +@keyframes mdui-spinner-layer-1-fade-in-out { + from { + opacity: 1; + } + 25% { + opacity: 1; + } + 26% { + opacity: 0; + } + 89% { + opacity: 0; + } + 90% { + opacity: 1; + } + 100% { + opacity: 1; + } +} +@-webkit-keyframes mdui-spinner-layer-2-fade-in-out { + from { + opacity: 0; + } + 15% { + opacity: 0; + } + 25% { + opacity: 1; + } + 50% { + opacity: 1; + } + 51% { + opacity: 0; + } +} +@keyframes mdui-spinner-layer-2-fade-in-out { + from { + opacity: 0; + } + 15% { + opacity: 0; + } + 25% { + opacity: 1; + } + 50% { + opacity: 1; + } + 51% { + opacity: 0; + } +} +@-webkit-keyframes mdui-spinner-layer-3-fade-in-out { + from { + opacity: 0; + } + 40% { + opacity: 0; + } + 50% { + opacity: 1; + } + 75% { + opacity: 1; + } + 76% { + opacity: 0; + } +} +@keyframes mdui-spinner-layer-3-fade-in-out { + from { + opacity: 0; + } + 40% { + opacity: 0; + } + 50% { + opacity: 1; + } + 75% { + opacity: 1; + } + 76% { + opacity: 0; + } +} +@-webkit-keyframes mdui-spinner-layer-4-fade-in-out { + from { + opacity: 0; + } + 65% { + opacity: 0; + } + 75% { + opacity: 1; + } + 90% { + opacity: 1; + } + 100% { + opacity: 0; + } +} +@keyframes mdui-spinner-layer-4-fade-in-out { + from { + opacity: 0; + } + 65% { + opacity: 0; + } + 75% { + opacity: 1; + } + 90% { + opacity: 1; + } + 100% { + opacity: 0; + } +} +.mdui-spinner-gap-patch { + position: absolute; + top: 0; + left: 45%; + width: 10%; + height: 100%; + overflow: hidden; + border-color: inherit; +} +.mdui-spinner-gap-patch .mdui-spinner-circle { + left: -450%; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 1000%; +} +.mdui-spinner-circle-clipper { + position: relative; + display: inline-block; + width: 50%; + height: 100%; + overflow: hidden; + border-color: inherit; +} +.mdui-spinner-circle-clipper .mdui-spinner-circle { + position: absolute; + top: 0; + right: 0; + bottom: 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 200%; + height: 100%; + border-color: inherit; + border-style: solid; + border-width: 3px; + border-bottom-color: transparent !important; + border-radius: 50%; + -webkit-animation: none; + animation: none; +} +.mdui-spinner-circle-clipper.mdui-spinner-left { + float: left; +} +.mdui-spinner-circle-clipper.mdui-spinner-left .mdui-spinner-circle { + left: 0; + border-right-color: transparent !important; + -webkit-transform: rotate(129deg); + transform: rotate(129deg); + -webkit-animation: mdui-spinner-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; + animation: mdui-spinner-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; +} +.mdui-spinner-circle-clipper.mdui-spinner-right { + float: right; +} +.mdui-spinner-circle-clipper.mdui-spinner-right .mdui-spinner-circle { + left: -100%; + border-left-color: transparent !important; + -webkit-transform: rotate(-129deg); + transform: rotate(-129deg); + -webkit-animation: mdui-spinner-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; + animation: mdui-spinner-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both; +} +@-webkit-keyframes mdui-spinner-left-spin { + from { + -webkit-transform: rotate(130deg); + transform: rotate(130deg); + } + 50% { + -webkit-transform: rotate(-5deg); + transform: rotate(-5deg); + } + to { + -webkit-transform: rotate(130deg); + transform: rotate(130deg); + } +} +@keyframes mdui-spinner-left-spin { + from { + -webkit-transform: rotate(130deg); + transform: rotate(130deg); + } + 50% { + -webkit-transform: rotate(-5deg); + transform: rotate(-5deg); + } + to { + -webkit-transform: rotate(130deg); + transform: rotate(130deg); + } +} +@-webkit-keyframes mdui-spinner-right-spin { + from { + -webkit-transform: rotate(-130deg); + transform: rotate(-130deg); + } + 50% { + -webkit-transform: rotate(5deg); + transform: rotate(5deg); + } + to { + -webkit-transform: rotate(-130deg); + transform: rotate(-130deg); + } +} +@keyframes mdui-spinner-right-spin { + from { + -webkit-transform: rotate(-130deg); + transform: rotate(-130deg); + } + 50% { + -webkit-transform: rotate(5deg); + transform: rotate(5deg); + } + to { + -webkit-transform: rotate(-130deg); + transform: rotate(-130deg); + } +} +/** + * ============================================================================= + * ************ Spinner linear 主色 ************ + * ============================================================================= + */ +.mdui-theme-primary-amber .mdui-spinner-layer { + border-color: #FFC107; +} +.mdui-theme-primary-blue .mdui-spinner-layer { + border-color: #2196F3; +} +.mdui-theme-primary-blue-grey .mdui-spinner-layer { + border-color: #607D8B; +} +.mdui-theme-primary-brown .mdui-spinner-layer { + border-color: #795548; +} +.mdui-theme-primary-cyan .mdui-spinner-layer { + border-color: #00BCD4; +} +.mdui-theme-primary-deep-orange .mdui-spinner-layer { + border-color: #FF5722; +} +.mdui-theme-primary-deep-purple .mdui-spinner-layer { + border-color: #673AB7; +} +.mdui-theme-primary-green .mdui-spinner-layer { + border-color: #4CAF50; +} +.mdui-theme-primary-grey .mdui-spinner-layer { + border-color: #9E9E9E; +} +.mdui-theme-primary-indigo .mdui-spinner-layer { + border-color: #3F51B5; +} +.mdui-theme-primary-light-blue .mdui-spinner-layer { + border-color: #03A9F4; +} +.mdui-theme-primary-light-green .mdui-spinner-layer { + border-color: #8BC34A; +} +.mdui-theme-primary-lime .mdui-spinner-layer { + border-color: #CDDC39; +} +.mdui-theme-primary-orange .mdui-spinner-layer { + border-color: #FF9800; +} +.mdui-theme-primary-pink .mdui-spinner-layer { + border-color: #E91E63; +} +.mdui-theme-primary-purple .mdui-spinner-layer { + border-color: #9C27B0; +} +.mdui-theme-primary-red .mdui-spinner-layer { + border-color: #F44336; +} +.mdui-theme-primary-teal .mdui-spinner-layer { + border-color: #009688; +} +.mdui-theme-primary-yellow .mdui-spinner-layer { + border-color: #FFEB3B; +} +/** + * ============================================================================= + * ************ Menu 菜单 ************ + * ============================================================================= + */ +/* 菜单 */ +.mdui-menu { + position: fixed; + z-index: 99999; + display: block; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 168px; + margin: 0; + padding: 8px 0; + overflow-y: auto; + color: rgba(0, 0, 0, 0.87); + font-size: 16px; + list-style: none; + background-color: #fff; + border-radius: 2px; + -webkit-transform: scale(0); + transform: scale(0); + visibility: hidden; + opacity: 0; + -webkit-transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + transition-timing-function: cubic-bezier(0, 0, 0.2, 1); + -webkit-transition-duration: 0.3s; + transition-duration: 0.3s; + -webkit-transition-property: opacity, visibility, -webkit-transform; + transition-property: opacity, visibility, -webkit-transform; + transition-property: transform, opacity, visibility; + transition-property: transform, opacity, visibility, -webkit-transform; + will-change: transform, opacity, visibility; + -webkit-overflow-scrolling: touch; + -webkit-box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12); + box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12); +} +.mdui-menu .mdui-divider { + margin-top: 8px; + margin-bottom: 8px; +} +/* 打开状态的菜单 */ +.mdui-menu-open { + -webkit-transform: scale(1); + transform: scale(1); + visibility: visible; + opacity: 1; +} +/* 关闭中的菜单 */ +.mdui-menu-closing { + -webkit-transform: scale(1); + transform: scale(1); + visibility: visible; + opacity: 0; +} +/* 菜单项 */ +.mdui-menu-item { + position: relative; +} +.mdui-menu-item > a { + position: relative; + display: block; + height: 48px; + padding: 0 16px; + color: inherit; + line-height: 48px; + text-decoration: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.mdui-menu-item > a:hover { + background-color: #EEEEEE; +} +.mdui-menu-item > .mdui-menu { + position: absolute; + -webkit-box-shadow: 0 5px 6px -3px rgba(0, 0, 0, 0.2), 0 9px 12px 1px rgba(0, 0, 0, 0.14), 0 3px 16px 2px rgba(0, 0, 0, 0.12); + box-shadow: 0 5px 6px -3px rgba(0, 0, 0, 0.2), 0 9px 12px 1px rgba(0, 0, 0, 0.14), 0 3px 16px 2px rgba(0, 0, 0, 0.12); +} +.mdui-menu-item[disabled] > a { + color: rgba(0, 0, 0, 0.38) !important; + cursor: default; +} +.mdui-menu-item[disabled] > a:hover { + background-color: inherit !important; +} +.mdui-menu-item[disabled] > a .mdui-icon { + color: rgba(0, 0, 0, 0.26); +} +/* 激活状态的菜单项 */ +.mdui-menu-item-active { + background-color: #EEEEEE; +} +/* 菜单中的图标 */ +.mdui-menu-item-icon { + display: inline-block; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 40px; + padding-right: 16px; + color: rgba(0, 0, 0, 0.54); +} +/* 菜单中的辅助文本或图标 */ +.mdui-menu-item-helper { + float: right; +} +/* 有子菜单的条目的图标 */ +.mdui-menu-item-more { + float: right; + width: 24px; + height: 24px; + margin: 4px 0; + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M9.5 17.5l5-5-5-5z' opacity='.54'/%3E%3C/svg%3E"); +} +/* 级联菜单 */ +.mdui-menu-cascade { + width: 320px; + padding: 16px 0; + overflow: visible; + font-size: 15px; +} +.mdui-menu-cascade > .mdui-menu-item > a { + height: 32px; + padding: 0 24px; + line-height: 32px; +} +/** + * ============================================================================= + * ************ Menu dark ************ + * ============================================================================= + */ +.mdui-theme-layout-dark .mdui-menu { + color: #fff; + background-color: #424242; +} +.mdui-theme-layout-dark .mdui-menu-item > a:hover { + background-color: #616161; +} +.mdui-theme-layout-dark .mdui-menu-item[disabled] > a { + color: rgba(255, 255, 255, 0.5) !important; +} +.mdui-theme-layout-dark .mdui-menu-item[disabled] > a .mdui-icon { + color: rgba(255, 255, 255, 0.3); +} +.mdui-theme-layout-dark .mdui-menu-item-active { + background-color: #616161; +} +.mdui-theme-layout-dark .mdui-menu-item-icon { + color: #ffffff; +} +.mdui-theme-layout-dark .mdui-menu-item-more { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M9.5 17.5l5-5-5-5z' fill='%23FFF'/%3E%3C/svg%3E"); +} +@media (prefers-color-scheme: dark) { + .mdui-theme-layout-auto .mdui-menu { + color: #fff; + background-color: #424242; + } + .mdui-theme-layout-auto .mdui-menu-item > a:hover { + background-color: #616161; + } + .mdui-theme-layout-auto .mdui-menu-item[disabled] > a { + color: rgba(255, 255, 255, 0.5) !important; + } + .mdui-theme-layout-auto .mdui-menu-item[disabled] > a .mdui-icon { + color: rgba(255, 255, 255, 0.3); + } + .mdui-theme-layout-auto .mdui-menu-item-active { + background-color: #616161; + } + .mdui-theme-layout-auto .mdui-menu-item-icon { + color: #ffffff; + } + .mdui-theme-layout-auto .mdui-menu-item-more { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M9.5 17.5l5-5-5-5z' fill='%23FFF'/%3E%3C/svg%3E"); + } +} + +/*# sourceMappingURL=mdui.css.map */ diff --git a/static/mdui/css/mdui.css.map b/static/mdui/css/mdui.css.map new file mode 100644 index 0000000..62f2cad --- /dev/null +++ b/static/mdui/css/mdui.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["index.css","../node_modules/normalize.css/normalize.css","styles/global.less","styles/mixin/helper.less","styles/mixin/layout-theme.less","styles/variable/shadow.less","styles/mixin/color.less","styles/color.less","styles/helper.less","styles/icon.less","styles/material-icons.less","styles/media.less","styles/mixin/media.less","styles/roboto.less","styles/typo-styles.less","styles/mixin/typo.less","styles/typo.less","styles/grid.less","styles/mixin/shadow.less","styles/shadow.less","components/headroom/index.less","components/collapse/index.less","components/panel/index.less","styles/mixin/divider.less","components/table/index.less","components/divider/index.less","components/ripple/index.less","components/textfield/index.less","components/selection_control/checkbox.less","components/selection_control/radio.less","components/selection_control/switch.less","components/slider/index.less","components/button/index.less","components/fab/index.less","components/select/index.less","components/toolbar/index.less","components/appbar/index.less","components/card/index.less","components/tab/index.less","components/subheader/index.less","components/grid_list/index.less","components/list/index.less","components/drawer/index.less","components/dialog/index.less","components/dialog/alert.less","components/dialog/confirm.less","components/dialog/prompt.less","components/tooltip/index.less","components/snackbar/index.less","components/chip/index.less","components/bottom_nav/index.less","components/progress/progress.less","components/progress/spinner.less","components/menu/index.less"],"names":[],"mappings":"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AAA;EAzCE,yBAAA;ANijBJ;AKpjBC;EC4CC,oCAAA;EAtCE,qCAAA;ANkjBJ;AKxjBC;EC4CC,oCAAA;EAtCE,qCAAA;ANsjBJ;AK5jBC;EC4CC,oCAAA;EAtCE,qCAAA;AN0jBJ;AKhkBC;EC4CC,oCAAA;EAtCE,qCAAA;AN8jBJ;AKpkBC;EC4CC,oCAAA;EAzCE,yBAAA;ANqkBJ;AKxkBC;EC4CC,oCAAA;EAzCE,yBAAA;ANykBJ;AK5kBC;EC4CC,oCAAA;EAzCE,yBAAA;AN6kBJ;AKhlBC;EC4CC,oCAAA;EAzCE,yBAAA;ANilBJ;AKplBC;EC4CC,oCAAA;EAzCE,yBAAA;ANqlBJ;AKxlBC;EC4CC,oCAAA;EAzCE,yBAAA;ANylBJ;AK5lBC;EC4CC,oCAAA;EAzCE,yBAAA;AN6lBJ;AKhmBC;EC4CC,oCAAA;EAtCE,qCAAA;AN8lBJ;AKpmBC;EC4CC,oCAAA;EAtCE,qCAAA;ANkmBJ;AKxmBC;EC4CC,oCAAA;EAtCE,qCAAA;ANsmBJ;AK5mBC;EC4CC,oCAAA;EAzCE,yBAAA;AN6mBJ;AKhnBC;EC4CC,oCAAA;EAzCE,yBAAA;ANinBJ;AKpnBC;EC4CC,oCAAA;EAzCE,yBAAA;ANqnBJ;AKxnBC;EC4CC,oCAAA;EAzCE,yBAAA;ANynBJ;AK5nBC;EC4CC,oCAAA;EAzCE,yBAAA;AN6nBJ;AKhoBC;EC4CC,oCAAA;EAzCE,yBAAA;ANioBJ;AKpoBC;EC4CC,oCAAA;EAzCE,yBAAA;ANqoBJ;AKxoBC;EC4CC,oCAAA;EAtCE,qCAAA;ANsoBJ;AK5oBC;EC4CC,oCAAA;EAtCE,qCAAA;AN0oBJ;AKhpBC;EC4CC,oCAAA;EAtCE,qCAAA;AN8oBJ;AKppBC;EC4CC,oCAAA;EAtCE,qCAAA;ANkpBJ;AKxpBC;EC4CC,oCAAA;EAtCE,qCAAA;ANspBJ;AK5pBC;EC4CC,oCAAA;EAtCE,qCAAA;AN0pBJ;AKhqBC;EC4CC,oCAAA;EAtCE,qCAAA;AN8pBJ;AKpqBC;EC4CC,oCAAA;EAtCE,qCAAA;ANkqBJ;AKxqBC;EC4CC,oCAAA;EAzCE,yBAAA;ANyqBJ;AK5qBC;EC4CC,oCAAA;EAzCE,yBAAA;AN6qBJ;AKhrBC;EC4CC,oCAAA;EAzCE,yBAAA;ANirBJ;AKprBC;EC4CC,oCAAA;EAtCE,qCAAA;ANkrBJ;AKxrBC;EC4CC,oCAAA;EAtCE,qCAAA;ANsrBJ;AK5rBC;EC4CC,oCAAA;EAtCE,qCAAA;AN0rBJ;AKhsBC;EC4CC,oCAAA;EAtCE,qCAAA;AN8rBJ;AKpsBC;EC4CC,oCAAA;EAtCE,qCAAA;ANksBJ;AKxsBC;EC4CC,oCAAA;EAtCE,qCAAA;ANssBJ;AK5sBC;EC4CC,oCAAA;EAtCE,qCAAA;AN0sBJ;AKhtBC;EC4CC,oCAAA;EAzCE,yBAAA;ANitBJ;AKptBC;EC4CC,oCAAA;EAzCE,yBAAA;ANqtBJ;AKxtBC;EC4CC,oCAAA;EAzCE,yBAAA;ANytBJ;AK5tBC;EC4CC,oCAAA;EAzCE,yBAAA;AN6tBJ;AKhuBC;EC4CC,oCAAA;EAzCE,yBAAA;ANiuBJ;AKpuBC;EC4CC,oCAAA;EAtCE,qCAAA;ANkuBJ;AKxuBC;EC4CC,oCAAA;EAtCE,qCAAA;ANsuBJ;AK5uBC;EC4CC,oCAAA;EAtCE,qCAAA;AN0uBJ;AKhvBC;EC4CC,oCAAA;EAzCE,yBAAA;ANivBJ;AKpvBC;EC4CC,oCAAA;EAzCE,yBAAA;ANqvBJ;AKxvBC;EC4CC,oCAAA;EAzCE,yBAAA;ANyvBJ;AK5vBC;EC4CC,oCAAA;EAzCE,yBAAA;AN6vBJ;AKhwBC;EC4CC,oCAAA;EAzCE,yBAAA;ANiwBJ;AKpwBC;EC4CC,oCAAA;EAzCE,yBAAA;ANqwBJ;AKxwBC;EC4CC,oCAAA;EAzCE,yBAAA;ANywBJ;AK5wBC;EC4CC,oCAAA;EAtCE,qCAAA;AN0wBJ;AKhxBC;EC4CC,oCAAA;EAtCE,qCAAA;AN8wBJ;AKpxBC;EC4CC,oCAAA;EAtCE,qCAAA;ANkxBJ;AKxxBC;EC4CC,oCAAA;EAtCE,qCAAA;ANsxBJ;AK5xBC;EC4CC,oCAAA;EAtCE,qCAAA;AN0xBJ;AKhyBC;EC4CC,oCAAA;EAtCE,qCAAA;AN8xBJ;AKpyBC;EC4CC,oCAAA;EAtCE,qCAAA;ANkyBJ;AKxyBC;EC4CC,oCAAA;EAzCE,yBAAA;ANyyBJ;AK5yBC;EC4CC,oCAAA;EAzCE,yBAAA;AN6yBJ;AKhzBC;EC4CC,oCAAA;EAzCE,yBAAA;ANizBJ;AKpzBC;EC4CC,oCAAA;EAzCE,yBAAA;ANqzBJ;AKxzBC;EC4CC,oCAAA;EAtCE,qCAAA;ANszBJ;AK5zBC;EC4CC,oCAAA;EAtCE,qCAAA;AN0zBJ;AKh0BC;EC4CC,oCAAA;EAtCE,qCAAA;AN8zBJ;AKp0BC;EC4CC,oCAAA;EAtCE,qCAAA;ANk0BJ;AKx0BC;EC4CC,oCAAA;EAtCE,qCAAA;ANs0BJ;AK50BC;EC4CC,oCAAA;EAtCE,qCAAA;AN00BJ;AKh1BC;EC4CC,oCAAA;EAtCE,qCAAA;AN80BJ;AKp1BC;EC4CC,oCAAA;EAzCE,yBAAA;ANq1BJ;AKx1BC;EC4CC,oCAAA;EAzCE,yBAAA;ANy1BJ;AK51BC;EC4CC,oCAAA;EAzCE,yBAAA;AN61BJ;AKh2BC;EC4CC,oCAAA;EAzCE,yBAAA;ANi2BJ;AKp2BC;EC4CC,oCAAA;EAzCE,yBAAA;ANq2BJ;AKx2BC;EC4CC,oCAAA;EAtCE,qCAAA;ANs2BJ;AK52BC;EC4CC,oCAAA;EAtCE,qCAAA;AN02BJ;AKh3BC;EC4CC,oCAAA;EAtCE,qCAAA;AN82BJ;AKp3BC;EC4CC,oCAAA;EAzCE,yBAAA;ANq3BJ;AKx3BC;EC4CC,oCAAA;EAzCE,yBAAA;ANy3BJ;AK53BC;EC4CC,oCAAA;EAzCE,yBAAA;AN63BJ;AKh4BC;EC4CC,oCAAA;EAzCE,yBAAA;ANi4BJ;AKp4BC;EC4CC,oCAAA;EAzCE,yBAAA;ANq4BJ;AKx4BC;EC4CC,oCAAA;EAzCE,yBAAA;ANy4BJ;AK54BC;EC4CC,oCAAA;EAzCE,yBAAA;AN64BJ;AKh5BC;EC4CC,oCAAA;EAtCE,qCAAA;AN84BJ;AKp5BC;EC4CC,oCAAA;EAtCE,qCAAA;ANk5BJ;AKx5BC;EC4CC,oCAAA;EAtCE,qCAAA;ANs5BJ;AK55BC;EC4CC,oCAAA;EAtCE,qCAAA;AN05BJ;AKh6BC;EC4CC,oCAAA;EAtCE,qCAAA;AN85BJ;AKp6BC;EC4CC,oCAAA;EAtCE,qCAAA;ANk6BJ;AKx6BC;EC4CC,oCAAA;EAtCE,qCAAA;ANs6BJ;AK56BC;EC4CC,oCAAA;EAtCE,qCAAA;AN06BJ;AKh7BC;EC4CC,oCAAA;EAzCE,yBAAA;ANi7BJ;AKp7BC;EC4CC,oCAAA;EAzCE,yBAAA;ANq7BJ;AKx7BC;EC4CC,oCAAA;EAzCE,yBAAA;ANy7BJ;AK57BC;EC4CC,oCAAA;EAtCE,qCAAA;AN07BJ;AKh8BC;EC4CC,oCAAA;EAtCE,qCAAA;AN87BJ;AKp8BC;EC4CC,oCAAA;EAtCE,qCAAA;ANk8BJ;AKx8BC;EC4CC,oCAAA;EAtCE,qCAAA;ANs8BJ;AK58BC;EC4CC,oCAAA;EAtCE,qCAAA;AN08BJ;AKh9BC;EC4CC,oCAAA;EAtCE,qCAAA;AN88BJ;AKp9BC;EC4CC,oCAAA;EAtCE,qCAAA;ANk9BJ;AKx9BC;EC4CC,oCAAA;EAtCE,qCAAA;ANs9BJ;AK59BC;EC4CC,oCAAA;EAtCE,qCAAA;AN09BJ;AKh+BC;EC4CC,oCAAA;EAzCE,yBAAA;ANi+BJ;AKp+BC;EC4CC,oCAAA;EAzCE,yBAAA;ANq+BJ;AKx+BC;EC4CC,oCAAA;EAtCE,qCAAA;ANs+BJ;AK5+BC;EC4CC,oCAAA;EAtCE,qCAAA;AN0+BJ;AKh/BC;EC4CC,oCAAA;EAtCE,qCAAA;AN8+BJ;AKp/BC;EC4CC,oCAAA;EAtCE,qCAAA;ANk/BJ;AKx/BC;EC4CC,oCAAA;EAtCE,qCAAA;ANs/BJ;AK5/BC;EC4CC,oCAAA;EAtCE,qCAAA;AN0/BJ;AKhgCC;EC4CC,oCAAA;EAtCE,qCAAA;AN8/BJ;AKpgCC;EC4CC,oCAAA;EAtCE,qCAAA;ANkgCJ;AKxgCC;EC4CC,oCAAA;EAtCE,qCAAA;ANsgCJ;AK5gCC;EC4CC,oCAAA;EAtCE,qCAAA;AN0gCJ;AKhhCC;EC4CC,oCAAA;EAzCE,yBAAA;ANihCJ;AKphCC;EC4CC,oCAAA;EAtCE,qCAAA;ANkhCJ;AKxhCC;EC4CC,oCAAA;EAtCE,qCAAA;ANshCJ;AK5hCC;EC4CC,oCAAA;EAtCE,qCAAA;AN0hCJ;AKhiCC;EC4CC,oCAAA;EAtCE,qCAAA;AN8hCJ;AKpiCC;EC4CC,oCAAA;EAtCE,qCAAA;ANkiCJ;AKxiCC;EC4CC,oCAAA;EAtCE,qCAAA;ANsiCJ;AK5iCC;EC4CC,oCAAA;EAtCE,qCAAA;AN0iCJ;AKhjCC;EC4CC,oCAAA;EAtCE,qCAAA;AN8iCJ;AKpjCC;EC4CC,oCAAA;EAtCE,qCAAA;ANkjCJ;AKxjCC;EC4CC,oCAAA;EAtCE,qCAAA;ANsjCJ;AK5jCC;EC4CC,oCAAA;EAzCE,yBAAA;AN6jCJ;AKhkCC;EC4CC,oCAAA;EAzCE,yBAAA;ANikCJ;AKpkCC;EC4CC,oCAAA;EAtCE,qCAAA;ANkkCJ;AKxkCC;EC4CC,oCAAA;EAtCE,qCAAA;ANskCJ;AK5kCC;EC4CC,oCAAA;EAtCE,qCAAA;AN0kCJ;AKhlCC;EC4CC,oCAAA;EAtCE,qCAAA;AN8kCJ;AKplCC;EC4CC,oCAAA;EAzCE,yBAAA;ANqlCJ;AKxlCC;EC4CC,oCAAA;EAzCE,yBAAA;ANylCJ;AK5lCC;EC4CC,oCAAA;EAzCE,yBAAA;AN6lCJ;AKhmCC;EC4CC,oCAAA;EAzCE,yBAAA;ANimCJ;AKpmCC;EC4CC,oCAAA;EAzCE,yBAAA;ANqmCJ;AKxmCC;EC4CC,oCAAA;EAzCE,yBAAA;ANymCJ;AK5mCC;EC4CC,oCAAA;EAzCE,yBAAA;AN6mCJ;AKhnCC;EC4CC,oCAAA;EAtCE,qCAAA;AN8mCJ;AKpnCC;EC4CC,oCAAA;EAtCE,qCAAA;ANknCJ;AKxnCC;EC4CC,oCAAA;EAtCE,qCAAA;ANsnCJ;AK5nCC;EC4CC,oCAAA;EAzCE,yBAAA;AN6nCJ;AKhoCC;EC4CC,oCAAA;EAzCE,yBAAA;ANioCJ;AKpoCC;EC4CC,oCAAA;EAzCE,yBAAA;ANqoCJ;AKxoCC;EC4CC,oCAAA;EAzCE,yBAAA;ANyoCJ;AK5oCC;EC4CC,oCAAA;EAzCE,yBAAA;AN6oCJ;AKhpCC;EC4CC,oCAAA;EAzCE,yBAAA;ANipCJ;AKppCC;EC4CC,oCAAA;EAzCE,yBAAA;ANqpCJ;AKxpCC;EC4CC,oCAAA;EAzCE,yBAAA;ANypCJ;AK5pCC;EC4CC,oCAAA;EAtCE,qCAAA;AN0pCJ;AKhqCC;EC4CC,oCAAA;EAtCE,qCAAA;AN8pCJ;AKpqCC;EC4CC,oCAAA;EAtCE,qCAAA;ANkqCJ;AKxqCC;EC4CC,oCAAA;EAtCE,qCAAA;ANsqCJ;AK5qCC;EC4CC,oCAAA;EAzCE,yBAAA;AN6qCJ;AKhrCC;EC4CC,oCAAA;EAzCE,yBAAA;ANirCJ;AKprCC;EC4CC,oCAAA;EAzCE,yBAAA;ANqrCJ;AKxrCC;EC4CC,oCAAA;EAzCE,yBAAA;ANyrCJ;AK5rCC;EC4CC,oCAAA;EAzCE,yBAAA;AN6rCJ;AKhsCC;EC4CC,oCAAA;EAzCE,yBAAA;ANisCJ;AKpsCC;EC4CC,oCAAA;EAzCE,yBAAA;ANqsCJ;AKxsCC;EC4CC,oCAAA;EAtCE,qCAAA;ANssCJ;AK5sCC;EC4CC,oCAAA;EAtCE,qCAAA;AN0sCJ;AKhtCC;EC4CC,oCAAA;EAtCE,qCAAA;AN8sCJ;AKptCC;EC4CC,oCAAA;EAtCE,qCAAA;ANktCJ;AKxtCC;EC4CC,oCAAA;EAtCE,qCAAA;ANstCJ;AK5tCC;EC4CC,oCAAA;EAzCE,yBAAA;AN6tCJ;AKhuCC;EC4CC,oCAAA;EAzCE,yBAAA;ANiuCJ;AKpuCC;EC4CC,oCAAA;EAzCE,yBAAA;ANquCJ;AKxuCC;EC4CC,oCAAA;EAzCE,yBAAA;ANyuCJ;AK5uCC;EC4CC,oCAAA;EAzCE,yBAAA;AN6uCJ;AKhvCC;EC4CC,oCAAA;EAtCE,qCAAA;AN8uCJ;AKpvCC;EC4CC,oCAAA;EAtCE,qCAAA;ANkvCJ;AKxvCC;EC4CC,oCAAA;EAtCE,qCAAA;ANsvCJ;AK5vCC;EC4CC,oCAAA;EAtCE,qCAAA;AN0vCJ;AKhwCC;EC4CC,oCAAA;EAtCE,qCAAA;AN8vCJ;AKpwCC;EC4CC,oCAAA;EAtCE,qCAAA;ANkwCJ;AKxwCC;EC4CC,oCAAA;EAtCE,qCAAA;ANswCJ;AK5wCC;EC4CC,oCAAA;EAtCE,qCAAA;AN0wCJ;AKhxCC;EC4CC,oCAAA;EAtCE,qCAAA;AN8wCJ;AKpxCC;EC4CC,oCAAA;EAtCE,qCAAA;ANkxCJ;AKxxCC;EC4CC,oCAAA;EAtCE,qCAAA;ANsxCJ;AACA;;;EAGE;AKhyCD;EC4CC,oCAAA;EAtCE,qCAAA;AN8xCJ;AKpyCC;EC4CC,oCAAA;EAtCE,qCAAA;ANkyCJ;AKxyCC;EC4CC,oCAAA;EAtCE,qCAAA;ANsyCJ;AK5yCC;EC4CC,oCAAA;EAtCE,qCAAA;AN0yCJ;AKhzCC;EC4CC,oCAAA;EAtCE,qCAAA;AN8yCJ;AKpzCC;EC4CC,oCAAA;EAzCE,yBAAA;ANqzCJ;AKxzCC;EC4CC,oCAAA;EAtCE,qCAAA;ANszCJ;AK5zCC;EC4CC,oCAAA;EAzCE,yBAAA;AN6zCJ;AKh0CC;EC4CC,oCAAA;EAzCE,yBAAA;ANi0CJ;AKp0CC;EC4CC,oCAAA;EAzCE,yBAAA;ANq0CJ;AKx0CC;EC4CC,oCAAA;EAtCE,qCAAA;ANs0CJ;AK50CC;EC4CC,oCAAA;EAtCE,qCAAA;AN00CJ;AKh1CC;EC4CC,oCAAA;EAtCE,qCAAA;AN80CJ;AKp1CC;EC4CC,oCAAA;EAtCE,qCAAA;ANk1CJ;AKx1CC;EC4CC,oCAAA;EAtCE,qCAAA;ANs1CJ;AK51CC;EC4CC,oCAAA;EAtCE,qCAAA;AN01CJ;AKh2CC;EC4CC,oCAAA;EAtCE,qCAAA;AN81CJ;AKp2CC;EC4CC,oCAAA;EAtCE,qCAAA;ANk2CJ;AKx2CC;EC4CC,oCAAA;EAzCE,yBAAA;ANy2CJ;AK52CC;EC4CC,oCAAA;EAzCE,yBAAA;AN62CJ;AKh3CC;EC4CC,oCAAA;EAzCE,yBAAA;ANi3CJ;AKp3CC;EC4CC,oCAAA;EAtCE,qCAAA;ANk3CJ;AKx3CC;EC4CC,oCAAA;EAzCE,yBAAA;ANy3CJ;AK53CC;EC4CC,oCAAA;EAzCE,yBAAA;AN63CJ;AKh4CC;EC4CC,oCAAA;EAzCE,yBAAA;ANi4CJ;AKp4CC;EC4CC,oCAAA;EAtCE,qCAAA;ANk4CJ;AKx4CC;EC4CC,oCAAA;EAtCE,qCAAA;ANs4CJ;AK54CC;EC4CC,oCAAA;EAtCE,qCAAA;AN04CJ;AKh5CC;EC4CC,oCAAA;EAtCE,qCAAA;AN84CJ;AKp5CC;EC4CC,oCAAA;EAtCE,qCAAA;ANk5CJ;AKx5CC;EC4CC,oCAAA;EAzCE,yBAAA;ANy5CJ;AK55CC;EC4CC,oCAAA;EAtCE,qCAAA;AN05CJ;AKh6CC;EC4CC,oCAAA;EAzCE,yBAAA;ANi6CJ;AKp6CC;EC4CC,oCAAA;EAzCE,yBAAA;ANq6CJ;AKx6CC;EC4CC,oCAAA;EAzCE,yBAAA;ANy6CJ;AK56CC;EC4CC,oCAAA;EAtCE,qCAAA;AN06CJ;AKh7CC;EC4CC,oCAAA;EAtCE,qCAAA;AN86CJ;AKp7CC;EC4CC,oCAAA;EAtCE,qCAAA;ANk7CJ;AKx7CC;EC4CC,oCAAA;EAtCE,qCAAA;ANs7CJ;AK57CC;EC4CC,oCAAA;EAzCE,yBAAA;AN67CJ;AKh8CC;EC4CC,oCAAA;EAtCE,qCAAA;AN87CJ;AKp8CC;EC4CC,oCAAA;EAtCE,qCAAA;ANk8CJ;AKx8CC;EC4CC,oCAAA;EAtCE,qCAAA;ANs8CJ;AK58CC;EC4CC,oCAAA;EAtCE,qCAAA;AN08CJ;AKh9CC;EC4CC,oCAAA;EAtCE,qCAAA;AN88CJ;AKp9CC;EC4CC,oCAAA;EAtCE,qCAAA;ANk9CJ;AKx9CC;EC4CC,oCAAA;EAtCE,qCAAA;ANs9CJ;AK59CC;EC4CC,oCAAA;EAtCE,qCAAA;AN09CJ;AKh+CC;EC4CC,oCAAA;EAtCE,qCAAA;AN89CJ;AKp+CC;EC4CC,oCAAA;EAtCE,qCAAA;ANk+CJ;AKx+CC;EC4CC,oCAAA;EAtCE,qCAAA;ANs+CJ;AK5+CC;EC4CC,oCAAA;EAtCE,qCAAA;AN0+CJ;AKh/CC;EC4CC,oCAAA;EAtCE,qCAAA;AN8+CJ;AKp/CC;EC4CC,oCAAA;EAtCE,qCAAA;ANk/CJ;AKx/CC;EC4CC,oCAAA;EAtCE,qCAAA;ANs/CJ;AK5/CC;EC4CC,oCAAA;EAzCE,yBAAA;AN6/CJ;AKhgDC;EC4CC,oCAAA;EAtCE,qCAAA;AN8/CJ;AKpgDC;EC4CC,oCAAA;EAzCE,yBAAA;ANqgDJ;AKxgDC;EC4CC,oCAAA;EAzCE,yBAAA;ANygDJ;AK5gDC;EC4CC,oCAAA;EAzCE,yBAAA;AN6gDJ;AKhhDC;EC4CC,oCAAA;EAzCE,yBAAA;ANihDJ;AKphDC;EC4CC,oCAAA;EAtCE,qCAAA;ANkhDJ;AKxhDC;EC4CC,oCAAA;EAzCE,yBAAA;ANyhDJ;AK5hDC;EC4CC,oCAAA;EAzCE,yBAAA;AN6hDJ;AKhiDC;EC4CC,oCAAA;EAzCE,yBAAA;ANiiDJ;AKpiDC;EC4CC,oCAAA;EAzCE,yBAAA;ANqiDJ;AKxiDC;EC4CC,oCAAA;EAtCE,qCAAA;ANsiDJ;AK5iDC;EC4CC,oCAAA;EAzCE,yBAAA;AN6iDJ;AKhjDC;EC4CC,oCAAA;EAzCE,yBAAA;ANijDJ;AKpjDC;EC4CC,oCAAA;EAzCE,yBAAA;ANqjDJ;AKxjDC;EC4CC,oCAAA;EAtCE,qCAAA;ANsjDJ;AK5jDC;EC4CC,oCAAA;EAtCE,qCAAA;AN0jDJ;AKhkDC;EC4CC,oCAAA;EAtCE,qCAAA;AN8jDJ;AKpkDC;EC4CC,oCAAA;EAtCE,qCAAA;ANkkDJ;AKxkDC;EC4CC,oCAAA;EAtCE,qCAAA;ANskDJ;AK5kDC;EC4CC,oCAAA;EAtCE,qCAAA;AN0kDJ;AKhlDC;EC4CC,oCAAA;EAtCE,qCAAA;AN8kDJ;AKplDC;EC4CC,oCAAA;EAtCE,qCAAA;ANklDJ;AKxlDC;EC4CC,oCAAA;EAtCE,qCAAA;ANslDJ;AK5lDC;EC4CC,oCAAA;EAtCE,qCAAA;AN0lDJ;AACA;;;EAGE;AKpmDD;EC4CC,oCAAA;EAtCE,qCAAA;ANkmDJ;AKxmDC;EC4CC,oCAAA;EAtCE,qCAAA;ANsmDJ;AK5mDC;EC4CC,oCAAA;EAtCE,qCAAA;AN0mDJ;AKhnDC;EC4CC,oCAAA;EAtCE,qCAAA;AN8mDJ;AKpnDC;EC4CC,oCAAA;EAtCE,qCAAA;ANknDJ;AKxnDC;EC4CC,oCAAA;EAtCE,qCAAA;ANsnDJ;AK5nDC;EC4CC,oCAAA;EAtCE,qCAAA;AN0nDJ;AKhoDC;EC4CC,oCAAA;EAtCE,qCAAA;AN8nDJ;AKpoDC;EC4CC,oCAAA;EAtCE,qCAAA;ANkoDJ;AKxoDC;EC4CC,oCAAA;EAtCE,qCAAA;ANsoDJ;AK5oDC;EC4CC,oCAAA;EAtCE,qCAAA;AN0oDJ;AKhpDC;EC4CC,oCAAA;EAtCE,qCAAA;AN8oDJ;AKppDC;EC4CC,oCAAA;EAtCE,qCAAA;ANkpDJ;AKxpDC;EC4CC,oCAAA;EAtCE,qCAAA;ANspDJ;AK5pDC;EC4CC,oCAAA;EAtCE,qCAAA;AN0pDJ;AKhqDC;EC4CC,oCAAA;EAtCE,qCAAA;AN8pDJ;AKpqDC;EC4CC,oCAAA;EAtCE,qCAAA;ANkqDJ;AKxqDC;EC4CC,oCAAA;EAtCE,qCAAA;ANsqDJ;AK5qDC;EC4CC,oCAAA;EAzCE,yBAAA;AN6qDJ;AKhrDC;EC4CC,oCAAA;EAzCE,yBAAA;ANirDJ;AKprDC;EC4CC,oCAAA;EAzCE,yBAAA;ANqrDJ;AKxrDC;EC4CC,oCAAA;EAzCE,yBAAA;ANyrDJ;AK5rDC;EC4CC,oCAAA;EAzCE,yBAAA;AN6rDJ;AKhsDC;EC4CC,oCAAA;EAtCE,qCAAA;AN8rDJ;AKpsDC;EC4CC,oCAAA;EAtCE,qCAAA;ANksDJ;AKxsDC;EC4CC,oCAAA;EAtCE,qCAAA;ANssDJ;AK5sDC;EC4CC,oCAAA;EAtCE,qCAAA;AN0sDJ;AKhtDC;EC4CC,oCAAA;EAzCE,yBAAA;ANitDJ;AKptDC;EC4CC,oCAAA;EAzCE,yBAAA;ANqtDJ;AKxtDC;EC4CC,oCAAA;EAzCE,yBAAA;ANytDJ;AK5tDC;EC4CC,oCAAA;EAzCE,yBAAA;AN6tDJ;AKhuDC;EC4CC,oCAAA;EAzCE,yBAAA;ANiuDJ;AKpuDC;EC4CC,oCAAA;EAzCE,yBAAA;ANquDJ;AKxuDC;EC4CC,oCAAA;EAzCE,yBAAA;ANyuDJ;AK5uDC;EC4CC,oCAAA;EAtCE,qCAAA;AN0uDJ;AKhvDC;EC4CC,oCAAA;EAtCE,qCAAA;AN8uDJ;AKpvDC;EC4CC,oCAAA;EAtCE,qCAAA;ANkvDJ;AKxvDC;EC4CC,oCAAA;EAzCE,yBAAA;ANyvDJ;AK5vDC;EC4CC,oCAAA;EAzCE,yBAAA;AN6vDJ;AKhwDC;EC4CC,oCAAA;EAzCE,yBAAA;ANiwDJ;AKpwDC;EC4CC,oCAAA;EAzCE,yBAAA;ANqwDJ;AKxwDC;EC4CC,oCAAA;EAzCE,yBAAA;ANywDJ;AK5wDC;EC4CC,oCAAA;EAzCE,yBAAA;AN6wDJ;AKhxDC;EC4CC,oCAAA;EAzCE,yBAAA;ANixDJ;AKpxDC;EC4CC,oCAAA;EAtCE,qCAAA;ANkxDJ;AKxxDC;EC4CC,oCAAA;EAtCE,qCAAA;ANsxDJ;AK5xDC;EC4CC,oCAAA;EAtCE,qCAAA;AN0xDJ;AKhyDC;EC4CC,oCAAA;EAtCE,qCAAA;AN8xDJ;AKpyDC;EC4CC,oCAAA;EAtCE,qCAAA;ANkyDJ;AKxyDC;EC4CC,oCAAA;EAtCE,qCAAA;ANsyDJ;AK5yDC;EC4CC,oCAAA;EAtCE,qCAAA;AN0yDJ;AKhzDC;EC4CC,oCAAA;EAtCE,qCAAA;AN8yDJ;AKpzDC;EC4CC,oCAAA;EAzCE,yBAAA;ANqzDJ;AKxzDC;EC4CC,oCAAA;EAzCE,yBAAA;ANyzDJ;AK5zDC;EC4CC,oCAAA;EAzCE,yBAAA;AN6zDJ;AKh0DC;EC4CC,oCAAA;EAtCE,qCAAA;AN8zDJ;AKp0DC;EC4CC,oCAAA;EAtCE,qCAAA;ANk0DJ;AKx0DC;EC4CC,oCAAA;EAtCE,qCAAA;ANs0DJ;AK50DC;EC4CC,oCAAA;EAtCE,qCAAA;AN00DJ;AKh1DC;EC4CC,oCAAA;EAtCE,qCAAA;AN80DJ;AKp1DC;EC4CC,oCAAA;EAtCE,qCAAA;ANk1DJ;AKx1DC;EC4CC,oCAAA;EAtCE,qCAAA;ANs1DJ;AK51DC;EC4CC,oCAAA;EAzCE,yBAAA;AN61DJ;AKh2DC;EC4CC,oCAAA;EAzCE,yBAAA;ANi2DJ;AKp2DC;EC4CC,oCAAA;EAzCE,yBAAA;ANq2DJ;AKx2DC;EC4CC,oCAAA;EAzCE,yBAAA;ANy2DJ;AK52DC;EC4CC,oCAAA;EAzCE,yBAAA;AN62DJ;AKh3DC;EC4CC,oCAAA;EAtCE,qCAAA;AN82DJ;AKp3DC;EC4CC,oCAAA;EAtCE,qCAAA;ANk3DJ;AKx3DC;EC4CC,oCAAA;EAtCE,qCAAA;ANs3DJ;AK53DC;EC4CC,oCAAA;EAzCE,yBAAA;AN63DJ;AKh4DC;EC4CC,oCAAA;EAzCE,yBAAA;ANi4DJ;AKp4DC;EC4CC,oCAAA;EAzCE,yBAAA;ANq4DJ;AKx4DC;EC4CC,oCAAA;EAzCE,yBAAA;ANy4DJ;AK54DC;EC4CC,oCAAA;EAzCE,yBAAA;AN64DJ;AKh5DC;EC4CC,oCAAA;EAzCE,yBAAA;ANi5DJ;AKp5DC;EC4CC,oCAAA;EAzCE,yBAAA;ANq5DJ;AKx5DC;EC4CC,oCAAA;EAtCE,qCAAA;ANs5DJ;AK55DC;EC4CC,oCAAA;EAtCE,qCAAA;AN05DJ;AKh6DC;EC4CC,oCAAA;EAtCE,qCAAA;AN85DJ;AKp6DC;EC4CC,oCAAA;EAtCE,qCAAA;ANk6DJ;AKx6DC;EC4CC,oCAAA;EAtCE,qCAAA;ANs6DJ;AK56DC;EC4CC,oCAAA;EAtCE,qCAAA;AN06DJ;AKh7DC;EC4CC,oCAAA;EAtCE,qCAAA;AN86DJ;AKp7DC;EC4CC,oCAAA;EAzCE,yBAAA;ANq7DJ;AKx7DC;EC4CC,oCAAA;EAzCE,yBAAA;ANy7DJ;AK57DC;EC4CC,oCAAA;EAzCE,yBAAA;AN67DJ;AKh8DC;EC4CC,oCAAA;EAzCE,yBAAA;ANi8DJ;AKp8DC;EC4CC,oCAAA;EAtCE,qCAAA;ANk8DJ;AKx8DC;EC4CC,oCAAA;EAtCE,qCAAA;ANs8DJ;AK58DC;EC4CC,oCAAA;EAtCE,qCAAA;AN08DJ;AKh9DC;EC4CC,oCAAA;EAtCE,qCAAA;AN88DJ;AKp9DC;EC4CC,oCAAA;EAtCE,qCAAA;ANk9DJ;AKx9DC;EC4CC,oCAAA;EAtCE,qCAAA;ANs9DJ;AK59DC;EC4CC,oCAAA;EAtCE,qCAAA;AN09DJ;AKh+DC;EC4CC,oCAAA;EAzCE,yBAAA;ANi+DJ;AKp+DC;EC4CC,oCAAA;EAzCE,yBAAA;ANq+DJ;AKx+DC;EC4CC,oCAAA;EAzCE,yBAAA;ANy+DJ;AK5+DC;EC4CC,oCAAA;EAzCE,yBAAA;AN6+DJ;AKh/DC;EC4CC,oCAAA;EAzCE,yBAAA;ANi/DJ;AKp/DC;EC4CC,oCAAA;EAtCE,qCAAA;ANk/DJ;AKx/DC;EC4CC,oCAAA;EAtCE,qCAAA;ANs/DJ;AK5/DC;EC4CC,oCAAA;EAtCE,qCAAA;AN0/DJ;AKhgEC;EC4CC,oCAAA;EAzCE,yBAAA;ANigEJ;AKpgEC;EC4CC,oCAAA;EAzCE,yBAAA;ANqgEJ;AKxgEC;EC4CC,oCAAA;EAzCE,yBAAA;ANygEJ;AK5gEC;EC4CC,oCAAA;EAzCE,yBAAA;AN6gEJ;AKhhEC;EC4CC,oCAAA;EAzCE,yBAAA;ANihEJ;AKphEC;EC4CC,oCAAA;EAzCE,yBAAA;ANqhEJ;AKxhEC;EC4CC,oCAAA;EAzCE,yBAAA;ANyhEJ;AK5hEC;EC4CC,oCAAA;EAtCE,qCAAA;AN0hEJ;AKhiEC;EC4CC,oCAAA;EAtCE,qCAAA;AN8hEJ;AKpiEC;EC4CC,oCAAA;EAtCE,qCAAA;ANkiEJ;AKxiEC;EC4CC,oCAAA;EAtCE,qCAAA;ANsiEJ;AK5iEC;EC4CC,oCAAA;EAtCE,qCAAA;AN0iEJ;AKhjEC;EC4CC,oCAAA;EAtCE,qCAAA;AN8iEJ;AKpjEC;EC4CC,oCAAA;EAtCE,qCAAA;ANkjEJ;AKxjEC;EC4CC,oCAAA;EAtCE,qCAAA;ANsjEJ;AK5jEC;EC4CC,oCAAA;EAzCE,yBAAA;AN6jEJ;AKhkEC;EC4CC,oCAAA;EAzCE,yBAAA;ANikEJ;AKpkEC;EC4CC,oCAAA;EAzCE,yBAAA;ANqkEJ;AKxkEC;EC4CC,oCAAA;EAtCE,qCAAA;ANskEJ;AK5kEC;EC4CC,oCAAA;EAtCE,qCAAA;AN0kEJ;AKhlEC;EC4CC,oCAAA;EAtCE,qCAAA;AN8kEJ;AKplEC;EC4CC,oCAAA;EAtCE,qCAAA;ANklEJ;AKxlEC;EC4CC,oCAAA;EAtCE,qCAAA;ANslEJ;AK5lEC;EC4CC,oCAAA;EAtCE,qCAAA;AN0lEJ;AKhmEC;EC4CC,oCAAA;EAtCE,qCAAA;AN8lEJ;AKpmEC;EC4CC,oCAAA;EAtCE,qCAAA;ANkmEJ;AKxmEC;EC4CC,oCAAA;EAtCE,qCAAA;ANsmEJ;AK5mEC;EC4CC,oCAAA;EAzCE,yBAAA;AN6mEJ;AKhnEC;EC4CC,oCAAA;EAzCE,yBAAA;ANinEJ;AKpnEC;EC4CC,oCAAA;EAtCE,qCAAA;ANknEJ;AKxnEC;EC4CC,oCAAA;EAtCE,qCAAA;ANsnEJ;AK5nEC;EC4CC,oCAAA;EAtCE,qCAAA;AN0nEJ;AKhoEC;EC4CC,oCAAA;EAtCE,qCAAA;AN8nEJ;AKpoEC;EC4CC,oCAAA;EAtCE,qCAAA;ANkoEJ;AKxoEC;EC4CC,oCAAA;EAtCE,qCAAA;ANsoEJ;AK5oEC;EC4CC,oCAAA;EAtCE,qCAAA;AN0oEJ;AKhpEC;EC4CC,oCAAA;EAtCE,qCAAA;AN8oEJ;AKppEC;EC4CC,oCAAA;EAtCE,qCAAA;ANkpEJ;AKxpEC;EC4CC,oCAAA;EAtCE,qCAAA;ANspEJ;AK5pEC;EC4CC,oCAAA;EAzCE,yBAAA;AN6pEJ;AKhqEC;EC4CC,oCAAA;EAtCE,qCAAA;AN8pEJ;AKpqEC;EC4CC,oCAAA;EAtCE,qCAAA;ANkqEJ;AKxqEC;EC4CC,oCAAA;EAtCE,qCAAA;ANsqEJ;AK5qEC;EC4CC,oCAAA;EAtCE,qCAAA;AN0qEJ;AKhrEC;EC4CC,oCAAA;EAtCE,qCAAA;AN8qEJ;AKprEC;EC4CC,oCAAA;EAtCE,qCAAA;ANkrEJ;AKxrEC;EC4CC,oCAAA;EAtCE,qCAAA;ANsrEJ;AK5rEC;EC4CC,oCAAA;EAtCE,qCAAA;AN0rEJ;AKhsEC;EC4CC,oCAAA;EAtCE,qCAAA;AN8rEJ;AKpsEC;EC4CC,oCAAA;EAtCE,qCAAA;ANksEJ;AKxsEC;EC4CC,oCAAA;EAzCE,yBAAA;ANysEJ;AK5sEC;EC4CC,oCAAA;EAzCE,yBAAA;AN6sEJ;AKhtEC;EC4CC,oCAAA;EAtCE,qCAAA;AN8sEJ;AKptEC;EC4CC,oCAAA;EAtCE,qCAAA;ANktEJ;AKxtEC;EC4CC,oCAAA;EAtCE,qCAAA;ANstEJ;AK5tEC;EC4CC,oCAAA;EAtCE,qCAAA;AN0tEJ;AKhuEC;EC4CC,oCAAA;EAzCE,yBAAA;ANiuEJ;AKpuEC;EC4CC,oCAAA;EAzCE,yBAAA;ANquEJ;AKxuEC;EC4CC,oCAAA;EAzCE,yBAAA;ANyuEJ;AK5uEC;EC4CC,oCAAA;EAzCE,yBAAA;AN6uEJ;AKhvEC;EC4CC,oCAAA;EAzCE,yBAAA;ANivEJ;AKpvEC;EC4CC,oCAAA;EAzCE,yBAAA;ANqvEJ;AKxvEC;EC4CC,oCAAA;EAzCE,yBAAA;ANyvEJ;AK5vEC;EC4CC,oCAAA;EAtCE,qCAAA;AN0vEJ;AKhwEC;EC4CC,oCAAA;EAtCE,qCAAA;AN8vEJ;AKpwEC;EC4CC,oCAAA;EAtCE,qCAAA;ANkwEJ;AKxwEC;EC4CC,oCAAA;EAzCE,yBAAA;ANywEJ;AK5wEC;EC4CC,oCAAA;EAzCE,yBAAA;AN6wEJ;AKhxEC;EC4CC,oCAAA;EAzCE,yBAAA;ANixEJ;AKpxEC;EC4CC,oCAAA;EAzCE,yBAAA;ANqxEJ;AKxxEC;EC4CC,oCAAA;EAzCE,yBAAA;ANyxEJ;AK5xEC;EC4CC,oCAAA;EAzCE,yBAAA;AN6xEJ;AKhyEC;EC4CC,oCAAA;EAzCE,yBAAA;ANiyEJ;AKpyEC;EC4CC,oCAAA;EAzCE,yBAAA;ANqyEJ;AKxyEC;EC4CC,oCAAA;EAtCE,qCAAA;ANsyEJ;AK5yEC;EC4CC,oCAAA;EAtCE,qCAAA;AN0yEJ;AKhzEC;EC4CC,oCAAA;EAtCE,qCAAA;AN8yEJ;AKpzEC;EC4CC,oCAAA;EAtCE,qCAAA;ANkzEJ;AKxzEC;EC4CC,oCAAA;EAzCE,yBAAA;ANyzEJ;AK5zEC;EC4CC,oCAAA;EAzCE,yBAAA;AN6zEJ;AKh0EC;EC4CC,oCAAA;EAzCE,yBAAA;ANi0EJ;AKp0EC;EC4CC,oCAAA;EAzCE,yBAAA;ANq0EJ;AKx0EC;EC4CC,oCAAA;EAzCE,yBAAA;ANy0EJ;AK50EC;EC4CC,oCAAA;EAzCE,yBAAA;AN60EJ;AKh1EC;EC4CC,oCAAA;EAzCE,yBAAA;ANi1EJ;AKp1EC;EC4CC,oCAAA;EAtCE,qCAAA;ANk1EJ;AKx1EC;EC4CC,oCAAA;EAtCE,qCAAA;ANs1EJ;AK51EC;EC4CC,oCAAA;EAtCE,qCAAA;AN01EJ;AKh2EC;EC4CC,oCAAA;EAtCE,qCAAA;AN81EJ;AKp2EC;EC4CC,oCAAA;EAtCE,qCAAA;ANk2EJ;AKx2EC;EC4CC,oCAAA;EAzCE,yBAAA;ANy2EJ;AK52EC;EC4CC,oCAAA;EAzCE,yBAAA;AN62EJ;AKh3EC;EC4CC,oCAAA;EAzCE,yBAAA;ANi3EJ;AKp3EC;EC4CC,oCAAA;EAzCE,yBAAA;ANq3EJ;AKx3EC;EC4CC,oCAAA;EAzCE,yBAAA;ANy3EJ;AK53EC;EC4CC,oCAAA;EAtCE,qCAAA;AN03EJ;AKh4EC;EC4CC,oCAAA;EAtCE,qCAAA;AN83EJ;AKp4EC;EC4CC,oCAAA;EAtCE,qCAAA;ANk4EJ;AKx4EC;EC4CC,oCAAA;EAtCE,qCAAA;ANs4EJ;AK54EC;EC4CC,oCAAA;EAtCE,qCAAA;AN04EJ;AKh5EC;EC4CC,oCAAA;EAtCE,qCAAA;AN84EJ;AKp5EC;EC4CC,oCAAA;EAtCE,qCAAA;ANk5EJ;AKx5EC;EC4CC,oCAAA;EAtCE,qCAAA;ANs5EJ;AK55EC;EC4CC,oCAAA;EAtCE,qCAAA;AN05EJ;AKh6EC;EC4CC,oCAAA;EAtCE,qCAAA;AN85EJ;AKp6EC;EC4CC,oCAAA;EAtCE,qCAAA;ANk6EJ;AACA;;;EAGE;AK56ED;EC4CC,oCAAA;EAtCE,qCAAA;AN06EJ;AKh7EC;EC4CC,oCAAA;EAtCE,qCAAA;AN86EJ;AKp7EC;EC4CC,oCAAA;EAtCE,qCAAA;ANk7EJ;AKx7EC;EC4CC,oCAAA;EAtCE,qCAAA;ANs7EJ;AK57EC;EC4CC,oCAAA;EAtCE,qCAAA;AN07EJ;AKh8EC;EC4CC,oCAAA;EAzCE,yBAAA;ANi8EJ;AKp8EC;EC4CC,oCAAA;EAtCE,qCAAA;ANk8EJ;AKx8EC;EC4CC,oCAAA;EAzCE,yBAAA;ANy8EJ;AK58EC;EC4CC,oCAAA;EAzCE,yBAAA;AN68EJ;AKh9EC;EC4CC,oCAAA;EAzCE,yBAAA;ANi9EJ;AKp9EC;EC4CC,oCAAA;EAtCE,qCAAA;ANk9EJ;AKx9EC;EC4CC,oCAAA;EAtCE,qCAAA;ANs9EJ;AK59EC;EC4CC,oCAAA;EAtCE,qCAAA;AN09EJ;AKh+EC;EC4CC,oCAAA;EAtCE,qCAAA;AN89EJ;AKp+EC;EC4CC,oCAAA;EAtCE,qCAAA;ANk+EJ;AKx+EC;EC4CC,oCAAA;EAtCE,qCAAA;ANs+EJ;AK5+EC;EC4CC,oCAAA;EAtCE,qCAAA;AN0+EJ;AKh/EC;EC4CC,oCAAA;EAtCE,qCAAA;AN8+EJ;AKp/EC;EC4CC,oCAAA;EAzCE,yBAAA;ANq/EJ;AKx/EC;EC4CC,oCAAA;EAzCE,yBAAA;ANy/EJ;AK5/EC;EC4CC,oCAAA;EAzCE,yBAAA;AN6/EJ;AKhgFC;EC4CC,oCAAA;EAtCE,qCAAA;AN8/EJ;AKpgFC;EC4CC,oCAAA;EAzCE,yBAAA;ANqgFJ;AKxgFC;EC4CC,oCAAA;EAzCE,yBAAA;ANygFJ;AK5gFC;EC4CC,oCAAA;EAzCE,yBAAA;AN6gFJ;AKhhFC;EC4CC,oCAAA;EAtCE,qCAAA;AN8gFJ;AKphFC;EC4CC,oCAAA;EAtCE,qCAAA;ANkhFJ;AKxhFC;EC4CC,oCAAA;EAtCE,qCAAA;ANshFJ;AK5hFC;EC4CC,oCAAA;EAtCE,qCAAA;AN0hFJ;AKhiFC;EC4CC,oCAAA;EAtCE,qCAAA;AN8hFJ;AKpiFC;EC4CC,oCAAA;EAzCE,yBAAA;ANqiFJ;AKxiFC;EC4CC,oCAAA;EAtCE,qCAAA;ANsiFJ;AK5iFC;EC4CC,oCAAA;EAzCE,yBAAA;AN6iFJ;AKhjFC;EC4CC,oCAAA;EAzCE,yBAAA;ANijFJ;AKpjFC;EC4CC,oCAAA;EAzCE,yBAAA;ANqjFJ;AKxjFC;EC4CC,oCAAA;EAtCE,qCAAA;ANsjFJ;AK5jFC;EC4CC,oCAAA;EAtCE,qCAAA;AN0jFJ;AKhkFC;EC4CC,oCAAA;EAtCE,qCAAA;AN8jFJ;AKpkFC;EC4CC,oCAAA;EAtCE,qCAAA;ANkkFJ;AKxkFC;EC4CC,oCAAA;EAzCE,yBAAA;ANykFJ;AK5kFC;EC4CC,oCAAA;EAtCE,qCAAA;AN0kFJ;AKhlFC;EC4CC,oCAAA;EAtCE,qCAAA;AN8kFJ;AKplFC;EC4CC,oCAAA;EAtCE,qCAAA;ANklFJ;AKxlFC;EC4CC,oCAAA;EAtCE,qCAAA;ANslFJ;AK5lFC;EC4CC,oCAAA;EAtCE,qCAAA;AN0lFJ;AKhmFC;EC4CC,oCAAA;EAtCE,qCAAA;AN8lFJ;AKpmFC;EC4CC,oCAAA;EAtCE,qCAAA;ANkmFJ;AKxmFC;EC4CC,oCAAA;EAtCE,qCAAA;ANsmFJ;AK5mFC;EC4CC,oCAAA;EAtCE,qCAAA;AN0mFJ;AKhnFC;EC4CC,oCAAA;EAtCE,qCAAA;AN8mFJ;AKpnFC;EC4CC,oCAAA;EAtCE,qCAAA;ANknFJ;AKxnFC;EC4CC,oCAAA;EAtCE,qCAAA;ANsnFJ;AK5nFC;EC4CC,oCAAA;EAtCE,qCAAA;AN0nFJ;AKhoFC;EC4CC,oCAAA;EAtCE,qCAAA;AN8nFJ;AKpoFC;EC4CC,oCAAA;EAtCE,qCAAA;ANkoFJ;AKxoFC;EC4CC,oCAAA;EAzCE,yBAAA;ANyoFJ;AK5oFC;EC4CC,oCAAA;EAtCE,qCAAA;AN0oFJ;AKhpFC;EC4CC,oCAAA;EAzCE,yBAAA;ANipFJ;AKppFC;EC4CC,oCAAA;EAzCE,yBAAA;ANqpFJ;AKxpFC;EC4CC,oCAAA;EAzCE,yBAAA;ANypFJ;AK5pFC;EC4CC,oCAAA;EAzCE,yBAAA;AN6pFJ;AKhqFC;EC4CC,oCAAA;EAtCE,qCAAA;AN8pFJ;AKpqFC;EC4CC,oCAAA;EAzCE,yBAAA;ANqqFJ;AKxqFC;EC4CC,oCAAA;EAzCE,yBAAA;ANyqFJ;AK5qFC;EC4CC,oCAAA;EAzCE,yBAAA;AN6qFJ;AKhrFC;EC4CC,oCAAA;EAzCE,yBAAA;ANirFJ;AKprFC;EC4CC,oCAAA;EAtCE,qCAAA;ANkrFJ;AKxrFC;EC4CC,oCAAA;EAzCE,yBAAA;ANyrFJ;AK5rFC;EC4CC,oCAAA;EAzCE,yBAAA;AN6rFJ;AKhsFC;EC4CC,oCAAA;EAzCE,yBAAA;ANisFJ;AKpsFC;EC4CC,oCAAA;EAtCE,qCAAA;ANksFJ;AKxsFC;EC4CC,oCAAA;EAtCE,qCAAA;ANssFJ;AK5sFC;EC4CC,oCAAA;EAtCE,qCAAA;AN0sFJ;AKhtFC;EC4CC,oCAAA;EAtCE,qCAAA;AN8sFJ;AKptFC;EC4CC,oCAAA;EAtCE,qCAAA;ANktFJ;AKxtFC;EC4CC,oCAAA;EAtCE,qCAAA;ANstFJ;AK5tFC;EC4CC,oCAAA;EAtCE,qCAAA;AN0tFJ;AKhuFC;EC4CC,oCAAA;EAtCE,qCAAA;AN8tFJ;AKpuFC;EC4CC,oCAAA;EAtCE,qCAAA;ANkuFJ;AKxuFC;EC4CC,oCAAA;EAtCE,qCAAA;ANsuFJ;AACA;;;;EAIE;AOrlFF;EACE,yBAAA;EACA,oCAAA;APulFF;AOplFA;EACE,qCAAA;EACA,oCAAA;APslFF;AOnlFA;EACE,wCAAA;APqlFF;AACA;;;EAGE;AKhwFD;EC4DG,yBAAA;ANusFJ;AKnwFC;EC4DG,yBAAA;AN0sFJ;AKtwFC;EC4DG,yBAAA;AN6sFJ;AKzwFC;EC4DG,yBAAA;ANgtFJ;AK5wFC;EC4DG,yBAAA;ANmtFJ;AK/wFC;EC4DG,yBAAA;ANstFJ;AKlxFC;EC4DG,yBAAA;ANytFJ;AKrxFC;EC4DG,yBAAA;AN4tFJ;AKxxFC;EC4DG,yBAAA;AN+tFJ;AK3xFC;EC4DG,yBAAA;ANkuFJ;AK9xFC;EC4DG,yBAAA;ANquFJ;AKjyFC;EC4DG,yBAAA;ANwuFJ;AKpyFC;EC4DG,yBAAA;AN2uFJ;AKvyFC;EC4DG,yBAAA;AN8uFJ;AK1yFC;EC4DG,yBAAA;ANivFJ;AK7yFC;EC4DG,yBAAA;ANovFJ;AKhzFC;EC4DG,yBAAA;ANuvFJ;AKnzFC;EC4DG,yBAAA;AN0vFJ;AKtzFC;EC4DG,yBAAA;AN6vFJ;AKzzFC;EC4DG,yBAAA;ANgwFJ;AK5zFC;EC4DG,yBAAA;ANmwFJ;AK/zFC;EC4DG,yBAAA;ANswFJ;AKl0FC;EC4DG,yBAAA;ANywFJ;AKr0FC;EC4DG,yBAAA;AN4wFJ;AKx0FC;EC4DG,yBAAA;AN+wFJ;AK30FC;EC4DG,yBAAA;ANkxFJ;AK90FC;EC4DG,yBAAA;ANqxFJ;AKj1FC;EC4DG,yBAAA;ANwxFJ;AKp1FC;EC4DG,yBAAA;AN2xFJ;AKv1FC;EC4DG,yBAAA;AN8xFJ;AK11FC;EC4DG,yBAAA;ANiyFJ;AK71FC;EC4DG,yBAAA;ANoyFJ;AKh2FC;EC4DG,yBAAA;ANuyFJ;AKn2FC;EC4DG,yBAAA;AN0yFJ;AKt2FC;EC4DG,yBAAA;AN6yFJ;AKz2FC;EC4DG,yBAAA;ANgzFJ;AK52FC;EC4DG,yBAAA;ANmzFJ;AK/2FC;EC4DG,yBAAA;ANszFJ;AKl3FC;EC4DG,yBAAA;ANyzFJ;AKr3FC;EC4DG,yBAAA;AN4zFJ;AKx3FC;EC4DG,yBAAA;AN+zFJ;AK33FC;EC4DG,yBAAA;ANk0FJ;AK93FC;EC4DG,yBAAA;ANq0FJ;AKj4FC;EC4DG,yBAAA;ANw0FJ;AKp4FC;EC4DG,yBAAA;AN20FJ;AKv4FC;EC4DG,yBAAA;AN80FJ;AK14FC;EC4DG,yBAAA;ANi1FJ;AK74FC;EC4DG,yBAAA;ANo1FJ;AKh5FC;EC4DG,yBAAA;ANu1FJ;AKn5FC;EC4DG,yBAAA;AN01FJ;AKt5FC;EC4DG,yBAAA;AN61FJ;AKz5FC;EC4DG,yBAAA;ANg2FJ;AK55FC;EC4DG,yBAAA;ANm2FJ;AK/5FC;EC4DG,yBAAA;ANs2FJ;AKl6FC;EC4DG,yBAAA;ANy2FJ;AKr6FC;EC4DG,yBAAA;AN42FJ;AKx6FC;EC4DG,yBAAA;AN+2FJ;AK36FC;EC4DG,yBAAA;ANk3FJ;AK96FC;EC4DG,yBAAA;ANq3FJ;AKj7FC;EC4DG,yBAAA;ANw3FJ;AKp7FC;EC4DG,yBAAA;AN23FJ;AKv7FC;EC4DG,yBAAA;AN83FJ;AK17FC;EC4DG,yBAAA;ANi4FJ;AK77FC;EC4DG,yBAAA;ANo4FJ;AKh8FC;EC4DG,yBAAA;ANu4FJ;AKn8FC;EC4DG,yBAAA;AN04FJ;AKt8FC;EC4DG,yBAAA;AN64FJ;AKz8FC;EC4DG,yBAAA;ANg5FJ;AK58FC;EC4DG,yBAAA;ANm5FJ;AK/8FC;EC4DG,yBAAA;ANs5FJ;AKl9FC;EC4DG,yBAAA;ANy5FJ;AKr9FC;EC4DG,yBAAA;AN45FJ;AKx9FC;EC4DG,yBAAA;AN+5FJ;AK39FC;EC4DG,yBAAA;ANk6FJ;AK99FC;EC4DG,yBAAA;ANq6FJ;AKj+FC;EC4DG,yBAAA;ANw6FJ;AKp+FC;EC4DG,yBAAA;AN26FJ;AKv+FC;EC4DG,yBAAA;AN86FJ;AK1+FC;EC4DG,yBAAA;ANi7FJ;AK7+FC;EC4DG,yBAAA;ANo7FJ;AKh/FC;EC4DG,yBAAA;ANu7FJ;AKn/FC;EC4DG,yBAAA;AN07FJ;AKt/FC;EC4DG,yBAAA;AN67FJ;AKz/FC;EC4DG,yBAAA;ANg8FJ;AK5/FC;EC4DG,yBAAA;ANm8FJ;AK//FC;EC4DG,yBAAA;ANs8FJ;AKlgGC;EC4DG,yBAAA;ANy8FJ;AKrgGC;EC4DG,yBAAA;AN48FJ;AKxgGC;EC4DG,yBAAA;AN+8FJ;AK3gGC;EC4DG,yBAAA;ANk9FJ;AK9gGC;EC4DG,yBAAA;ANq9FJ;AKjhGC;EC4DG,yBAAA;ANw9FJ;AKphGC;EC4DG,yBAAA;AN29FJ;AKvhGC;EC4DG,yBAAA;AN89FJ;AK1hGC;EC4DG,yBAAA;ANi+FJ;AK7hGC;EC4DG,yBAAA;ANo+FJ;AKhiGC;EC4DG,yBAAA;ANu+FJ;AKniGC;EC4DG,yBAAA;AN0+FJ;AKtiGC;EC4DG,yBAAA;AN6+FJ;AKziGC;EC4DG,yBAAA;ANg/FJ;AK5iGC;EC4DG,yBAAA;ANm/FJ;AK/iGC;EC4DG,yBAAA;ANs/FJ;AKljGC;EC4DG,yBAAA;ANy/FJ;AKrjGC;EC4DG,yBAAA;AN4/FJ;AKxjGC;EC4DG,yBAAA;AN+/FJ;AK3jGC;EC4DG,yBAAA;ANkgGJ;AK9jGC;EC4DG,yBAAA;ANqgGJ;AKjkGC;EC4DG,yBAAA;ANwgGJ;AKpkGC;EC4DG,yBAAA;AN2gGJ;AKvkGC;EC4DG,yBAAA;AN8gGJ;AK1kGC;EC4DG,yBAAA;ANihGJ;AK7kGC;EC4DG,yBAAA;ANohGJ;AKhlGC;EC4DG,yBAAA;ANuhGJ;AKnlGC;EC4DG,yBAAA;AN0hGJ;AKtlGC;EC4DG,yBAAA;AN6hGJ;AKzlGC;EC4DG,yBAAA;ANgiGJ;AK5lGC;EC4DG,yBAAA;ANmiGJ;AK/lGC;EC4DG,yBAAA;ANsiGJ;AKlmGC;EC4DG,yBAAA;ANyiGJ;AKrmGC;EC4DG,yBAAA;AN4iGJ;AKxmGC;EC4DG,yBAAA;AN+iGJ;AK3mGC;EC4DG,yBAAA;ANkjGJ;AK9mGC;EC4DG,yBAAA;ANqjGJ;AKjnGC;EC4DG,yBAAA;ANwjGJ;AKpnGC;EC4DG,yBAAA;AN2jGJ;AKvnGC;EC4DG,yBAAA;AN8jGJ;AK1nGC;EC4DG,yBAAA;ANikGJ;AK7nGC;EC4DG,yBAAA;ANokGJ;AKhoGC;EC4DG,yBAAA;ANukGJ;AKnoGC;EC4DG,yBAAA;AN0kGJ;AKtoGC;EC4DG,yBAAA;AN6kGJ;AKzoGC;EC4DG,yBAAA;ANglGJ;AK5oGC;EC4DG,yBAAA;ANmlGJ;AK/oGC;EC4DG,yBAAA;ANslGJ;AKlpGC;EC4DG,yBAAA;ANylGJ;AKrpGC;EC4DG,yBAAA;AN4lGJ;AKxpGC;EC4DG,yBAAA;AN+lGJ;AK3pGC;EC4DG,yBAAA;ANkmGJ;AK9pGC;EC4DG,yBAAA;ANqmGJ;AKjqGC;EC4DG,yBAAA;ANwmGJ;AKpqGC;EC4DG,yBAAA;AN2mGJ;AKvqGC;EC4DG,yBAAA;AN8mGJ;AK1qGC;EC4DG,yBAAA;ANinGJ;AK7qGC;EC4DG,yBAAA;ANonGJ;AKhrGC;EC4DG,yBAAA;ANunGJ;AKnrGC;EC4DG,yBAAA;AN0nGJ;AKtrGC;EC4DG,yBAAA;AN6nGJ;AKzrGC;EC4DG,yBAAA;ANgoGJ;AK5rGC;EC4DG,yBAAA;ANmoGJ;AK/rGC;EC4DG,yBAAA;ANsoGJ;AKlsGC;EC4DG,yBAAA;ANyoGJ;AKrsGC;EC4DG,yBAAA;AN4oGJ;AKxsGC;EC4DG,yBAAA;AN+oGJ;AK3sGC;EC4DG,yBAAA;ANkpGJ;AK9sGC;EC4DG,yBAAA;ANqpGJ;AKjtGC;EC4DG,yBAAA;ANwpGJ;AKptGC;EC4DG,yBAAA;AN2pGJ;AKvtGC;EC4DG,yBAAA;AN8pGJ;AK1tGC;EC4DG,yBAAA;ANiqGJ;AK7tGC;EC4DG,yBAAA;ANoqGJ;AKhuGC;EC4DG,yBAAA;ANuqGJ;AKnuGC;EC4DG,yBAAA;AN0qGJ;AKtuGC;EC4DG,yBAAA;AN6qGJ;AKzuGC;EC4DG,yBAAA;ANgrGJ;AK5uGC;EC4DG,yBAAA;ANmrGJ;AK/uGC;EC4DG,yBAAA;ANsrGJ;AKlvGC;EC4DG,yBAAA;ANyrGJ;AKrvGC;EC4DG,yBAAA;AN4rGJ;AKxvGC;EC4DG,yBAAA;AN+rGJ;AK3vGC;EC4DG,yBAAA;ANksGJ;AK9vGC;EC4DG,yBAAA;ANqsGJ;AKjwGC;EC4DG,yBAAA;ANwsGJ;AKpwGC;EC4DG,yBAAA;AN2sGJ;AKvwGC;EC4DG,yBAAA;AN8sGJ;AK1wGC;EC4DG,yBAAA;ANitGJ;AK7wGC;EC4DG,yBAAA;ANotGJ;AKhxGC;EC4DG,yBAAA;ANutGJ;AKnxGC;EC4DG,yBAAA;AN0tGJ;AKtxGC;EC4DG,yBAAA;AN6tGJ;AKzxGC;EC4DG,yBAAA;ANguGJ;AK5xGC;EC4DG,yBAAA;ANmuGJ;AK/xGC;EC4DG,yBAAA;ANsuGJ;AKlyGC;EC4DG,yBAAA;ANyuGJ;AKryGC;EC4DG,yBAAA;AN4uGJ;AKxyGC;EC4DG,yBAAA;AN+uGJ;AK3yGC;EC4DG,yBAAA;ANkvGJ;AK9yGC;EC4DG,yBAAA;ANqvGJ;AKjzGC;EC4DG,yBAAA;ANwvGJ;AKpzGC;EC4DG,yBAAA;AN2vGJ;AKvzGC;EC4DG,yBAAA;AN8vGJ;AK1zGC;EC4DG,yBAAA;ANiwGJ;AK7zGC;EC4DG,yBAAA;ANowGJ;AKh0GC;EC4DG,yBAAA;ANuwGJ;AKn0GC;EC4DG,yBAAA;AN0wGJ;AKt0GC;EC4DG,yBAAA;AN6wGJ;AKz0GC;EC4DG,yBAAA;ANgxGJ;AK50GC;EC4DG,yBAAA;ANmxGJ;AK/0GC;EC4DG,yBAAA;ANsxGJ;AKl1GC;EC4DG,yBAAA;ANyxGJ;AKr1GC;EC4DG,yBAAA;AN4xGJ;AKx1GC;EC4DG,yBAAA;AN+xGJ;AK31GC;EC4DG,yBAAA;ANkyGJ;AK91GC;EC4DG,yBAAA;ANqyGJ;AKj2GC;EC4DG,yBAAA;ANwyGJ;AKp2GC;EC4DG,yBAAA;AN2yGJ;AKv2GC;EC4DG,yBAAA;AN8yGJ;AK12GC;EC4DG,yBAAA;ANizGJ;AK72GC;EC4DG,yBAAA;ANozGJ;AKh3GC;EC4DG,yBAAA;ANuzGJ;AACA;;;EAGE;AKv3GD;EC4DG,yBAAA;AN8zGJ;AK13GC;EC4DG,yBAAA;ANi0GJ;AK73GC;EC4DG,yBAAA;ANo0GJ;AKh4GC;EC4DG,yBAAA;ANu0GJ;AKn4GC;EC4DG,yBAAA;AN00GJ;AKt4GC;EC4DG,yBAAA;AN60GJ;AKz4GC;EC4DG,yBAAA;ANg1GJ;AK54GC;EC4DG,yBAAA;ANm1GJ;AK/4GC;EC4DG,yBAAA;ANs1GJ;AKl5GC;EC4DG,yBAAA;ANy1GJ;AKr5GC;EC4DG,yBAAA;AN41GJ;AKx5GC;EC4DG,yBAAA;AN+1GJ;AK35GC;EC4DG,yBAAA;ANk2GJ;AK95GC;EC4DG,yBAAA;ANq2GJ;AKj6GC;EC4DG,yBAAA;ANw2GJ;AKp6GC;EC4DG,yBAAA;AN22GJ;AKv6GC;EC4DG,yBAAA;AN82GJ;AK16GC;EC4DG,yBAAA;ANi3GJ;AK76GC;EC4DG,yBAAA;ANo3GJ;AKh7GC;EC4DG,yBAAA;ANu3GJ;AKn7GC;EC4DG,yBAAA;AN03GJ;AKt7GC;EC4DG,yBAAA;AN63GJ;AKz7GC;EC4DG,yBAAA;ANg4GJ;AK57GC;EC4DG,yBAAA;ANm4GJ;AK/7GC;EC4DG,yBAAA;ANs4GJ;AKl8GC;EC4DG,yBAAA;ANy4GJ;AKr8GC;EC4DG,yBAAA;AN44GJ;AKx8GC;EC4DG,yBAAA;AN+4GJ;AK38GC;EC4DG,yBAAA;ANk5GJ;AK98GC;EC4DG,yBAAA;ANq5GJ;AKj9GC;EC4DG,yBAAA;ANw5GJ;AKp9GC;EC4DG,yBAAA;AN25GJ;AKv9GC;EC4DG,yBAAA;AN85GJ;AK19GC;EC4DG,yBAAA;ANi6GJ;AK79GC;EC4DG,yBAAA;ANo6GJ;AKh+GC;EC4DG,yBAAA;ANu6GJ;AKn+GC;EC4DG,yBAAA;AN06GJ;AKt+GC;EC4DG,yBAAA;AN66GJ;AKz+GC;EC4DG,yBAAA;ANg7GJ;AK5+GC;EC4DG,yBAAA;ANm7GJ;AK/+GC;EC4DG,yBAAA;ANs7GJ;AKl/GC;EC4DG,yBAAA;ANy7GJ;AKr/GC;EC4DG,yBAAA;AN47GJ;AKx/GC;EC4DG,yBAAA;AN+7GJ;AK3/GC;EC4DG,yBAAA;ANk8GJ;AK9/GC;EC4DG,yBAAA;ANq8GJ;AKjgHC;EC4DG,yBAAA;ANw8GJ;AKpgHC;EC4DG,yBAAA;AN28GJ;AKvgHC;EC4DG,yBAAA;AN88GJ;AK1gHC;EC4DG,yBAAA;ANi9GJ;AK7gHC;EC4DG,yBAAA;ANo9GJ;AKhhHC;EC4DG,yBAAA;ANu9GJ;AKnhHC;EC4DG,yBAAA;AN09GJ;AKthHC;EC4DG,yBAAA;AN69GJ;AKzhHC;EC4DG,yBAAA;ANg+GJ;AK5hHC;EC4DG,yBAAA;ANm+GJ;AK/hHC;EC4DG,yBAAA;ANs+GJ;AKliHC;EC4DG,yBAAA;ANy+GJ;AKriHC;EC4DG,yBAAA;AN4+GJ;AKxiHC;EC4DG,yBAAA;AN++GJ;AK3iHC;EC4DG,yBAAA;ANk/GJ;AK9iHC;EC4DG,yBAAA;ANq/GJ;AKjjHC;EC4DG,yBAAA;ANw/GJ;AKpjHC;EC4DG,yBAAA;AN2/GJ;AKvjHC;EC4DG,yBAAA;AN8/GJ;AK1jHC;EC4DG,yBAAA;ANigHJ;AK7jHC;EC4DG,yBAAA;ANogHJ;AKhkHC;EC4DG,yBAAA;ANugHJ;AKnkHC;EC4DG,yBAAA;AN0gHJ;AKtkHC;EC4DG,yBAAA;AN6gHJ;AKzkHC;EC4DG,yBAAA;ANghHJ;AK5kHC;EC4DG,yBAAA;ANmhHJ;AK/kHC;EC4DG,yBAAA;ANshHJ;AKllHC;EC4DG,yBAAA;ANyhHJ;AKrlHC;EC4DG,yBAAA;AN4hHJ;AKxlHC;EC4DG,yBAAA;AN+hHJ;AK3lHC;EC4DG,yBAAA;ANkiHJ;AK9lHC;EC4DG,yBAAA;ANqiHJ;AKjmHC;EC4DG,yBAAA;ANwiHJ;AKpmHC;EC4DG,yBAAA;AN2iHJ;AACA;;;EAGE;AK3mHD;EC4DG,yBAAA;ANkjHJ;AK9mHC;EC4DG,yBAAA;ANqjHJ;AKjnHC;EC4DG,yBAAA;ANwjHJ;AKpnHC;EC4DG,yBAAA;AN2jHJ;AKvnHC;EC4DG,yBAAA;AN8jHJ;AK1nHC;EC4DG,yBAAA;ANikHJ;AK7nHC;EC4DG,yBAAA;ANokHJ;AKhoHC;EC4DG,yBAAA;ANukHJ;AKnoHC;EC4DG,yBAAA;AN0kHJ;AKtoHC;EC4DG,yBAAA;AN6kHJ;AKzoHC;EC4DG,yBAAA;ANglHJ;AK5oHC;EC4DG,yBAAA;ANmlHJ;AK/oHC;EC4DG,yBAAA;ANslHJ;AKlpHC;EC4DG,yBAAA;ANylHJ;AKrpHC;EC4DG,yBAAA;AN4lHJ;AKxpHC;EC4DG,yBAAA;AN+lHJ;AK3pHC;EC4DG,yBAAA;ANkmHJ;AK9pHC;EC4DG,yBAAA;ANqmHJ;AKjqHC;EC4DG,yBAAA;ANwmHJ;AKpqHC;EC4DG,yBAAA;AN2mHJ;AKvqHC;EC4DG,yBAAA;AN8mHJ;AK1qHC;EC4DG,yBAAA;ANinHJ;AK7qHC;EC4DG,yBAAA;ANonHJ;AKhrHC;EC4DG,yBAAA;ANunHJ;AKnrHC;EC4DG,yBAAA;AN0nHJ;AKtrHC;EC4DG,yBAAA;AN6nHJ;AKzrHC;EC4DG,yBAAA;ANgoHJ;AK5rHC;EC4DG,yBAAA;ANmoHJ;AK/rHC;EC4DG,yBAAA;ANsoHJ;AKlsHC;EC4DG,yBAAA;ANyoHJ;AKrsHC;EC4DG,yBAAA;AN4oHJ;AKxsHC;EC4DG,yBAAA;AN+oHJ;AK3sHC;EC4DG,yBAAA;ANkpHJ;AK9sHC;EC4DG,yBAAA;ANqpHJ;AKjtHC;EC4DG,yBAAA;ANwpHJ;AKptHC;EC4DG,yBAAA;AN2pHJ;AKvtHC;EC4DG,yBAAA;AN8pHJ;AK1tHC;EC4DG,yBAAA;ANiqHJ;AK7tHC;EC4DG,yBAAA;ANoqHJ;AKhuHC;EC4DG,yBAAA;ANuqHJ;AKnuHC;EC4DG,yBAAA;AN0qHJ;AKtuHC;EC4DG,yBAAA;AN6qHJ;AKzuHC;EC4DG,yBAAA;ANgrHJ;AK5uHC;EC4DG,yBAAA;ANmrHJ;AK/uHC;EC4DG,yBAAA;ANsrHJ;AKlvHC;EC4DG,yBAAA;ANyrHJ;AKrvHC;EC4DG,yBAAA;AN4rHJ;AKxvHC;EC4DG,yBAAA;AN+rHJ;AK3vHC;EC4DG,yBAAA;ANksHJ;AK9vHC;EC4DG,yBAAA;ANqsHJ;AKjwHC;EC4DG,yBAAA;ANwsHJ;AKpwHC;EC4DG,yBAAA;AN2sHJ;AKvwHC;EC4DG,yBAAA;AN8sHJ;AK1wHC;EC4DG,yBAAA;ANitHJ;AK7wHC;EC4DG,yBAAA;ANotHJ;AKhxHC;EC4DG,yBAAA;ANutHJ;AKnxHC;EC4DG,yBAAA;AN0tHJ;AKtxHC;EC4DG,yBAAA;AN6tHJ;AKzxHC;EC4DG,yBAAA;ANguHJ;AK5xHC;EC4DG,yBAAA;ANmuHJ;AK/xHC;EC4DG,yBAAA;ANsuHJ;AKlyHC;EC4DG,yBAAA;ANyuHJ;AKryHC;EC4DG,yBAAA;AN4uHJ;AKxyHC;EC4DG,yBAAA;AN+uHJ;AK3yHC;EC4DG,yBAAA;ANkvHJ;AK9yHC;EC4DG,yBAAA;ANqvHJ;AKjzHC;EC4DG,yBAAA;ANwvHJ;AKpzHC;EC4DG,yBAAA;AN2vHJ;AKvzHC;EC4DG,yBAAA;AN8vHJ;AK1zHC;EC4DG,yBAAA;ANiwHJ;AK7zHC;EC4DG,yBAAA;ANowHJ;AKh0HC;EC4DG,yBAAA;ANuwHJ;AKn0HC;EC4DG,yBAAA;AN0wHJ;AKt0HC;EC4DG,yBAAA;AN6wHJ;AKz0HC;EC4DG,yBAAA;ANgxHJ;AK50HC;EC4DG,yBAAA;ANmxHJ;AK/0HC;EC4DG,yBAAA;ANsxHJ;AKl1HC;EC4DG,yBAAA;ANyxHJ;AKr1HC;EC4DG,yBAAA;AN4xHJ;AKx1HC;EC4DG,yBAAA;AN+xHJ;AK31HC;EC4DG,yBAAA;ANkyHJ;AK91HC;EC4DG,yBAAA;ANqyHJ;AKj2HC;EC4DG,yBAAA;ANwyHJ;AKp2HC;EC4DG,yBAAA;AN2yHJ;AKv2HC;EC4DG,yBAAA;AN8yHJ;AK12HC;EC4DG,yBAAA;ANizHJ;AK72HC;EC4DG,yBAAA;ANozHJ;AKh3HC;EC4DG,yBAAA;ANuzHJ;AKn3HC;EC4DG,yBAAA;AN0zHJ;AKt3HC;EC4DG,yBAAA;AN6zHJ;AKz3HC;EC4DG,yBAAA;ANg0HJ;AK53HC;EC4DG,yBAAA;ANm0HJ;AK/3HC;EC4DG,yBAAA;ANs0HJ;AKl4HC;EC4DG,yBAAA;ANy0HJ;AKr4HC;EC4DG,yBAAA;AN40HJ;AKx4HC;EC4DG,yBAAA;AN+0HJ;AK34HC;EC4DG,yBAAA;ANk1HJ;AK94HC;EC4DG,yBAAA;ANq1HJ;AKj5HC;EC4DG,yBAAA;ANw1HJ;AKp5HC;EC4DG,yBAAA;AN21HJ;AKv5HC;EC4DG,yBAAA;AN81HJ;AK15HC;EC4DG,yBAAA;ANi2HJ;AK75HC;EC4DG,yBAAA;ANo2HJ;AKh6HC;EC4DG,yBAAA;ANu2HJ;AKn6HC;EC4DG,yBAAA;AN02HJ;AKt6HC;EC4DG,yBAAA;AN62HJ;AKz6HC;EC4DG,yBAAA;ANg3HJ;AK56HC;EC4DG,yBAAA;ANm3HJ;AK/6HC;EC4DG,yBAAA;ANs3HJ;AKl7HC;EC4DG,yBAAA;ANy3HJ;AKr7HC;EC4DG,yBAAA;AN43HJ;AKx7HC;EC4DG,yBAAA;AN+3HJ;AK37HC;EC4DG,yBAAA;ANk4HJ;AK97HC;EC4DG,yBAAA;ANq4HJ;AKj8HC;EC4DG,yBAAA;ANw4HJ;AKp8HC;EC4DG,yBAAA;AN24HJ;AKv8HC;EC4DG,yBAAA;AN84HJ;AK18HC;EC4DG,yBAAA;ANi5HJ;AK78HC;EC4DG,yBAAA;ANo5HJ;AKh9HC;EC4DG,yBAAA;ANu5HJ;AKn9HC;EC4DG,yBAAA;AN05HJ;AKt9HC;EC4DG,yBAAA;AN65HJ;AKz9HC;EC4DG,yBAAA;ANg6HJ;AK59HC;EC4DG,yBAAA;ANm6HJ;AK/9HC;EC4DG,yBAAA;ANs6HJ;AKl+HC;EC4DG,yBAAA;ANy6HJ;AKr+HC;EC4DG,yBAAA;AN46HJ;AKx+HC;EC4DG,yBAAA;AN+6HJ;AK3+HC;EC4DG,yBAAA;ANk7HJ;AK9+HC;EC4DG,yBAAA;ANq7HJ;AKj/HC;EC4DG,yBAAA;ANw7HJ;AKp/HC;EC4DG,yBAAA;AN27HJ;AKv/HC;EC4DG,yBAAA;AN87HJ;AK1/HC;EC4DG,yBAAA;ANi8HJ;AK7/HC;EC4DG,yBAAA;ANo8HJ;AKhgIC;EC4DG,yBAAA;ANu8HJ;AKngIC;EC4DG,yBAAA;AN08HJ;AKtgIC;EC4DG,yBAAA;AN68HJ;AKzgIC;EC4DG,yBAAA;ANg9HJ;AK5gIC;EC4DG,yBAAA;ANm9HJ;AK/gIC;EC4DG,yBAAA;ANs9HJ;AKlhIC;EC4DG,yBAAA;ANy9HJ;AKrhIC;EC4DG,yBAAA;AN49HJ;AKxhIC;EC4DG,yBAAA;AN+9HJ;AK3hIC;EC4DG,yBAAA;ANk+HJ;AK9hIC;EC4DG,yBAAA;ANq+HJ;AKjiIC;EC4DG,yBAAA;ANw+HJ;AKpiIC;EC4DG,yBAAA;AN2+HJ;AKviIC;EC4DG,yBAAA;AN8+HJ;AK1iIC;EC4DG,yBAAA;ANi/HJ;AK7iIC;EC4DG,yBAAA;ANo/HJ;AKhjIC;EC4DG,yBAAA;ANu/HJ;AKnjIC;EC4DG,yBAAA;AN0/HJ;AKtjIC;EC4DG,yBAAA;AN6/HJ;AKzjIC;EC4DG,yBAAA;ANggIJ;AK5jIC;EC4DG,yBAAA;ANmgIJ;AK/jIC;EC4DG,yBAAA;ANsgIJ;AKlkIC;EC4DG,yBAAA;ANygIJ;AKrkIC;EC4DG,yBAAA;AN4gIJ;AKxkIC;EC4DG,yBAAA;AN+gIJ;AK3kIC;EC4DG,yBAAA;ANkhIJ;AK9kIC;EC4DG,yBAAA;ANqhIJ;AKjlIC;EC4DG,yBAAA;ANwhIJ;AKplIC;EC4DG,yBAAA;AN2hIJ;AKvlIC;EC4DG,yBAAA;AN8hIJ;AK1lIC;EC4DG,yBAAA;ANiiIJ;AK7lIC;EC4DG,yBAAA;ANoiIJ;AKhmIC;EC4DG,yBAAA;ANuiIJ;AKnmIC;EC4DG,yBAAA;AN0iIJ;AKtmIC;EC4DG,yBAAA;AN6iIJ;AKzmIC;EC4DG,yBAAA;ANgjIJ;AK5mIC;EC4DG,yBAAA;ANmjIJ;AK/mIC;EC4DG,yBAAA;ANsjIJ;AKlnIC;EC4DG,yBAAA;ANyjIJ;AKrnIC;EC4DG,yBAAA;AN4jIJ;AKxnIC;EC4DG,yBAAA;AN+jIJ;AK3nIC;EC4DG,yBAAA;ANkkIJ;AK9nIC;EC4DG,yBAAA;ANqkIJ;AKjoIC;EC4DG,yBAAA;ANwkIJ;AKpoIC;EC4DG,yBAAA;AN2kIJ;AKvoIC;EC4DG,yBAAA;AN8kIJ;AK1oIC;EC4DG,yBAAA;ANilIJ;AK7oIC;EC4DG,yBAAA;ANolIJ;AKhpIC;EC4DG,yBAAA;ANulIJ;AKnpIC;EC4DG,yBAAA;AN0lIJ;AKtpIC;EC4DG,yBAAA;AN6lIJ;AKzpIC;EC4DG,yBAAA;ANgmIJ;AK5pIC;EC4DG,yBAAA;ANmmIJ;AK/pIC;EC4DG,yBAAA;ANsmIJ;AKlqIC;EC4DG,yBAAA;ANymIJ;AKrqIC;EC4DG,yBAAA;AN4mIJ;AKxqIC;EC4DG,yBAAA;AN+mIJ;AK3qIC;EC4DG,yBAAA;ANknIJ;AK9qIC;EC4DG,yBAAA;ANqnIJ;AKjrIC;EC4DG,yBAAA;ANwnIJ;AKprIC;EC4DG,yBAAA;AN2nIJ;AKvrIC;EC4DG,yBAAA;AN8nIJ;AK1rIC;EC4DG,yBAAA;ANioIJ;AK7rIC;EC4DG,yBAAA;ANooIJ;AKhsIC;EC4DG,yBAAA;ANuoIJ;AKnsIC;EC4DG,yBAAA;AN0oIJ;AKtsIC;EC4DG,yBAAA;AN6oIJ;AKzsIC;EC4DG,yBAAA;ANgpIJ;AK5sIC;EC4DG,yBAAA;ANmpIJ;AK/sIC;EC4DG,yBAAA;ANspIJ;AKltIC;EC4DG,yBAAA;ANypIJ;AKrtIC;EC4DG,yBAAA;AN4pIJ;AKxtIC;EC4DG,yBAAA;AN+pIJ;AK3tIC;EC4DG,yBAAA;ANkqIJ;AACA;;;EAGE;AKluID;EC4DG,yBAAA;ANyqIJ;AKruIC;EC4DG,yBAAA;AN4qIJ;AKxuIC;EC4DG,yBAAA;AN+qIJ;AK3uIC;EC4DG,yBAAA;ANkrIJ;AK9uIC;EC4DG,yBAAA;ANqrIJ;AKjvIC;EC4DG,yBAAA;ANwrIJ;AKpvIC;EC4DG,yBAAA;AN2rIJ;AKvvIC;EC4DG,yBAAA;AN8rIJ;AK1vIC;EC4DG,yBAAA;ANisIJ;AK7vIC;EC4DG,yBAAA;ANosIJ;AKhwIC;EC4DG,yBAAA;ANusIJ;AKnwIC;EC4DG,yBAAA;AN0sIJ;AKtwIC;EC4DG,yBAAA;AN6sIJ;AKzwIC;EC4DG,yBAAA;ANgtIJ;AK5wIC;EC4DG,yBAAA;ANmtIJ;AK/wIC;EC4DG,yBAAA;ANstIJ;AKlxIC;EC4DG,yBAAA;ANytIJ;AKrxIC;EC4DG,yBAAA;AN4tIJ;AKxxIC;EC4DG,yBAAA;AN+tIJ;AK3xIC;EC4DG,yBAAA;ANkuIJ;AK9xIC;EC4DG,yBAAA;ANquIJ;AKjyIC;EC4DG,yBAAA;ANwuIJ;AKpyIC;EC4DG,yBAAA;AN2uIJ;AKvyIC;EC4DG,yBAAA;AN8uIJ;AK1yIC;EC4DG,yBAAA;ANivIJ;AK7yIC;EC4DG,yBAAA;ANovIJ;AKhzIC;EC4DG,yBAAA;ANuvIJ;AKnzIC;EC4DG,yBAAA;AN0vIJ;AKtzIC;EC4DG,yBAAA;AN6vIJ;AKzzIC;EC4DG,yBAAA;ANgwIJ;AK5zIC;EC4DG,yBAAA;ANmwIJ;AK/zIC;EC4DG,yBAAA;ANswIJ;AKl0IC;EC4DG,yBAAA;ANywIJ;AKr0IC;EC4DG,yBAAA;AN4wIJ;AKx0IC;EC4DG,yBAAA;AN+wIJ;AK30IC;EC4DG,yBAAA;ANkxIJ;AK90IC;EC4DG,yBAAA;ANqxIJ;AKj1IC;EC4DG,yBAAA;ANwxIJ;AKp1IC;EC4DG,yBAAA;AN2xIJ;AKv1IC;EC4DG,yBAAA;AN8xIJ;AK11IC;EC4DG,yBAAA;ANiyIJ;AK71IC;EC4DG,yBAAA;ANoyIJ;AKh2IC;EC4DG,yBAAA;ANuyIJ;AKn2IC;EC4DG,yBAAA;AN0yIJ;AKt2IC;EC4DG,yBAAA;AN6yIJ;AKz2IC;EC4DG,yBAAA;ANgzIJ;AK52IC;EC4DG,yBAAA;ANmzIJ;AK/2IC;EC4DG,yBAAA;ANszIJ;AKl3IC;EC4DG,yBAAA;ANyzIJ;AKr3IC;EC4DG,yBAAA;AN4zIJ;AKx3IC;EC4DG,yBAAA;AN+zIJ;AK33IC;EC4DG,yBAAA;ANk0IJ;AK93IC;EC4DG,yBAAA;ANq0IJ;AKj4IC;EC4DG,yBAAA;ANw0IJ;AKp4IC;EC4DG,yBAAA;AN20IJ;AKv4IC;EC4DG,yBAAA;AN80IJ;AK14IC;EC4DG,yBAAA;ANi1IJ;AK74IC;EC4DG,yBAAA;ANo1IJ;AKh5IC;EC4DG,yBAAA;ANu1IJ;AKn5IC;EC4DG,yBAAA;AN01IJ;AKt5IC;EC4DG,yBAAA;AN61IJ;AKz5IC;EC4DG,yBAAA;ANg2IJ;AK55IC;EC4DG,yBAAA;ANm2IJ;AK/5IC;EC4DG,yBAAA;ANs2IJ;AKl6IC;EC4DG,yBAAA;ANy2IJ;AKr6IC;EC4DG,yBAAA;AN42IJ;AKx6IC;EC4DG,yBAAA;AN+2IJ;AK36IC;EC4DG,yBAAA;ANk3IJ;AK96IC;EC4DG,yBAAA;ANq3IJ;AKj7IC;EC4DG,yBAAA;ANw3IJ;AKp7IC;EC4DG,yBAAA;AN23IJ;AKv7IC;EC4DG,yBAAA;AN83IJ;AK17IC;EC4DG,yBAAA;ANi4IJ;AK77IC;EC4DG,yBAAA;ANo4IJ;AKh8IC;EC4DG,yBAAA;ANu4IJ;AKn8IC;EC4DG,yBAAA;AN04IJ;AKt8IC;EC4DG,yBAAA;AN64IJ;AKz8IC;EC4DG,yBAAA;ANg5IJ;AK58IC;EC4DG,yBAAA;ANm5IJ;AK/8IC;EC4DG,yBAAA;ANs5IJ;AACA;;;;EAIE;AO5pIF;EACE,yBAAA;AP8pIF;AO5pIA;;EAEE,qCAAA;AP8pIF;AO5pIA;;EAEE,qCAAA;AP8pIF;AO5pIA;;EAEE,qCAAA;AP8pIF;AO5pIA;;EAEE,qCAAA;AP8pIF;AO5pIA;;EAEE,qCAAA;AP8pIF;AO5pIA;;EAEE,qCAAA;AP8pIF;AACA;;;EAGE;AO3pIF;EACE,yBAAA;AP6pIF;AO3pIA;EACE,yBAAA;AP6pIF;AO3pIA;EACE,0CAAA;AP6pIF;AO3pIA;EACE,0CAAA;AP6pIF;AO3pIA;EACE,2CAAA;AP6pIF;AO3pIA;EACE,yBAAA;AP6pIF;AO3pIA;EACE,0CAAA;AP6pIF;AACA;;EAEE;AI5gJE;EGoXA,yBAAA;AP2pIJ;AI/gJI;EGuXA,0CAAA;AP2pIJ;AIlhJI;EG0XA,0CAAA;AP2pIJ;AIrhJI;EG6XA,2CAAA;AP2pIJ;AIxhJI;EGgYA,yBAAA;AP2pIJ;AI3hJI;EGmYA,0CAAA;AP2pIJ;AIzhJI;EACE;IG8WF,yBAAA;EP8qIF;EI5hJI;IGiXF,0CAAA;EP8qIF;EI/hJI;IGoXF,0CAAA;EP8qIF;EIliJI;IGuXF,2CAAA;EP8qIF;EIriJI;IG0XF,yBAAA;EP8qIF;EIxiJI;IG6XF,0CAAA;EP8qIF;AACF;AACA;;;;EAIE;AACF;;EAEE;AK5jJD;EFEC,sBAAA;AH6jJF;AK/jJC;EFKC,0BAAA;AH6jJF;AKlkJC;EFQC,4BAAA;AH6jJF;AKrkJC;EFWC,6BAAA;AH6jJF;AKxkJC;EFcC,2BAAA;AH6jJF;AK3kJC;EFiBC,4BAAA;EACA,2BAAA;AH6jJF;AK/kJC;EFqBC,0BAAA;EACA,6BAAA;AH6jJF;AKnlJC;EF0BC,uBAAA;AH4jJF;AKtlJC;EF6BC,2BAAA;AH4jJF;AKzlJC;EFgCC,6BAAA;AH4jJF;AK5lJC;EFmCC,8BAAA;AH4jJF;AK/lJC;EFsCC,4BAAA;AH4jJF;AKlmJC;EFyCC,6BAAA;EACA,4BAAA;AH4jJF;AKtmJC;EF6CC,2BAAA;EACA,8BAAA;AH4jJF;AK1mJC;EFEC,sBAAA;AH2mJF;AK7mJC;EFKC,0BAAA;AH2mJF;AKhnJC;EFQC,4BAAA;AH2mJF;AKnnJC;EFWC,6BAAA;AH2mJF;AKtnJC;EFcC,2BAAA;AH2mJF;AKznJC;EFiBC,4BAAA;EACA,2BAAA;AH2mJF;AK7nJC;EFqBC,0BAAA;EACA,6BAAA;AH2mJF;AKjoJC;EF0BC,uBAAA;AH0mJF;AKpoJC;EF6BC,2BAAA;AH0mJF;AKvoJC;EFgCC,6BAAA;AH0mJF;AK1oJC;EFmCC,8BAAA;AH0mJF;AK7oJC;EFsCC,4BAAA;AH0mJF;AKhpJC;EFyCC,6BAAA;EACA,4BAAA;AH0mJF;AKppJC;EF6CC,2BAAA;EACA,8BAAA;AH0mJF;AKxpJC;EFEC,uBAAA;AHypJF;AK3pJC;EFKC,2BAAA;AHypJF;AK9pJC;EFQC,6BAAA;AHypJF;AKjqJC;EFWC,8BAAA;AHypJF;AKpqJC;EFcC,4BAAA;AHypJF;AKvqJC;EFiBC,6BAAA;EACA,4BAAA;AHypJF;AK3qJC;EFqBC,2BAAA;EACA,8BAAA;AHypJF;AK/qJC;EF0BC,wBAAA;AHwpJF;AKlrJC;EF6BC,4BAAA;AHwpJF;AKrrJC;EFgCC,8BAAA;AHwpJF;AKxrJC;EFmCC,+BAAA;AHwpJF;AK3rJC;EFsCC,6BAAA;AHwpJF;AK9rJC;EFyCC,8BAAA;EACA,6BAAA;AHwpJF;AKlsJC;EF6CC,4BAAA;EACA,+BAAA;AHwpJF;AKtsJC;EFEC,uBAAA;AHusJF;AKzsJC;EFKC,2BAAA;AHusJF;AK5sJC;EFQC,6BAAA;AHusJF;AK/sJC;EFWC,8BAAA;AHusJF;AKltJC;EFcC,4BAAA;AHusJF;AKrtJC;EFiBC,6BAAA;EACA,4BAAA;AHusJF;AKztJC;EFqBC,2BAAA;EACA,8BAAA;AHusJF;AK7tJC;EF0BC,wBAAA;AHssJF;AKhuJC;EF6BC,4BAAA;AHssJF;AKnuJC;EFgCC,8BAAA;AHssJF;AKtuJC;EFmCC,+BAAA;AHssJF;AKzuJC;EFsCC,6BAAA;AHssJF;AK5uJC;EFyCC,8BAAA;EACA,6BAAA;AHssJF;AKhvJC;EF6CC,4BAAA;EACA,+BAAA;AHssJF;AKpvJC;EFEC,uBAAA;AHqvJF;AKvvJC;EFKC,2BAAA;AHqvJF;AK1vJC;EFQC,6BAAA;AHqvJF;AK7vJC;EFWC,8BAAA;AHqvJF;AKhwJC;EFcC,4BAAA;AHqvJF;AKnwJC;EFiBC,6BAAA;EACA,4BAAA;AHqvJF;AKvwJC;EFqBC,2BAAA;EACA,8BAAA;AHqvJF;AK3wJC;EF0BC,wBAAA;AHovJF;AK9wJC;EF6BC,4BAAA;AHovJF;AKjxJC;EFgCC,8BAAA;AHovJF;AKpxJC;EFmCC,+BAAA;AHovJF;AKvxJC;EFsCC,6BAAA;AHovJF;AK1xJC;EFyCC,8BAAA;EACA,6BAAA;AHovJF;AK9xJC;EF6CC,4BAAA;EACA,+BAAA;AHovJF;AKlyJC;EFEC,uBAAA;AHmyJF;AKryJC;EFKC,2BAAA;AHmyJF;AKxyJC;EFQC,6BAAA;AHmyJF;AK3yJC;EFWC,8BAAA;AHmyJF;AK9yJC;EFcC,4BAAA;AHmyJF;AKjzJC;EFiBC,6BAAA;EACA,4BAAA;AHmyJF;AKrzJC;EFqBC,2BAAA;EACA,8BAAA;AHmyJF;AKzzJC;EF0BC,wBAAA;AHkyJF;AK5zJC;EF6BC,4BAAA;AHkyJF;AK/zJC;EFgCC,8BAAA;AHkyJF;AKl0JC;EFmCC,+BAAA;AHkyJF;AKr0JC;EFsCC,6BAAA;AHkyJF;AKx0JC;EFyCC,8BAAA;EACA,6BAAA;AHkyJF;AK50JC;EF6CC,4BAAA;EACA,+BAAA;AHkyJF;AACA;;EAEE;AACF,SAAS;AQnxJT;EACE,sBAAA;ARqxJF;AACA,SAAS;AQlxJT;EACE,uBAAA;ARoxJF;AACA;;EAEE;AACF,SAAS;AQhxJT;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LJ;AgB3yKU;EVxOR,yBAAA;ANshLF;AKlkLC;EC4DG,cAAA;ANygLJ;AgBjzKU;EVxOR,yBAAA;AN4hLF;AKxkLC;EC4DG,cAAA;AN+gLJ;AgBvzKU;EVxOR,yBAAA;ANkiLF;AK9kLC;EC4DG,cAAA;ANqhLJ;AgB7zKU;EVxOR,yBAAA;ANwiLF;AKplLC;EC4DG,cAAA;AN2hLJ;AgBn0KU;EVxOR,yBAAA;AN8iLF;AK1lLC;EC4DG,cAAA;ANiiLJ;AgBz0KU;EVxOR,yBAAA;ANojLF;AKhmLC;EC4DG,cAAA;ANuiLJ;AgB/0KU;EVxOR,yBAAA;AN0jLF;AKtmLC;EC4DG,cAAA;AN6iLJ;AgBr1KU;EVxOR,yBAAA;ANgkLF;AK5mLC;EC4DG,cAAA;ANmjLJ;AgB31KU;EVxOR,yBAAA;ANskLF;AKlnLC;EC4DG,cAAA;ANyjLJ;AgBj2KU;EVxOR,yBAAA;AN4kLF;AKxnLC;EC4DG,cAAA;AN+jLJ;AgBv2KU;EVxOR,yBAAA;ANklLF;AK9nLC;EC4DG,cAAA;ANqkLJ;AgB72KU;EVxOR,yBAAA;ANwlLF;AACA;;;;EAIE;AIvoLE;EYuSE,4CAAA;AhBm2KN;AI1oLI;EY0SI,+BAAA;AhBm2KR;AI7oLI;EY+SE,+BAAA;AhBi2KN;AIhpLI;EYmTE,gBAAA;EACA,yBAAA;AhBg2KN;AIppLI;;;;;;EYyTI,+BAAA;AhBm2KR;AI5pLI;EY8TE,cAAA;EACA,yBAAA;AhBi2KN;AIhqLI;EYmUE,mBAAA;EACA,uCAAA;AhBg2KN;AIpqLI;EYwUE,mBAAA;AhB+1KN;AIvqLI;EY4UE,uCAAA;AhB81KN;AIrqLI;EACE;IYiSA,4CAAA;EhBu4KJ;EIxqLI;IYoSE,+BAAA;EhBu4KN;EI3qLI;IYySA,+BAAA;EhBq4KJ;EI9qLI;IY6SA,gBAAA;IACA,yBAAA;EhBo4KJ;EIlrLI;;;;;;IYmTE,+BAAA;EhBu4KN;EI1rLI;IYwTA,cAAA;IACA,yBAAA;EhBq4KJ;EI9rLI;IY6TA,mBAAA;IACA,uCAAA;EhBo4KJ;EIlsLI;IYkUA,mBAAA;EhBm4KJ;EIrsLI;IYsUA,uCAAA;EhBk4KJ;AACF;AACA;;;;EAIE;AiBtpLF;;EAEE,8BAAA;UAAA,sBAAA;EACA,kBAAA;EACA,iBAAA;EACA,kBAAA;EACA,iBAAA;AjBwpLF;AiBvpLE;;EACE,cAAA;EACA,WAAA;EACA,WAAA;AjB0pLJ;AiBtpLA;EACE,UAAA;EACA,iBAAA;AjBwpLF;AiBvpLE;EAAA;IACE,UAAA;EjB0pLF;AACF;AiBzpLE;EAAA;IACE,UAAA;EjB4pLF;AACF;AiBzpLA;;EAEE,kBAAA;EACA,iBAAA;AjB2pLF;AiB1pLE;;EACE,cAAA;EACA,WAAA;EACA,WAAA;AjB6pLJ;AiBzpLA;;;;;;EAME,kBAAA;EACA,8BAAA;UAAA,sBAAA;EACA,eAAA;EACA,kBAAA;EACA,iBAAA;AjB2pLF;AACA,UAAU;AiBxpLV;;;;;;EAOI,gBAAA;EACA,eAAA;AjBypLJ;AiBjqLA;;EAcI,eAAA;EACA,cAAA;AjBupLJ;AKxxLC;EY+CG,WAAA;EACA,gBAAA;AjB4uLJ;AK5xLC;EYqDG,sBAAA;AjB0uLJ;AK/xLC;EY2DG,WAAA;EACA,WAAA;AjBuuLJ;AKnyLC;EY+CG,WAAA;EACA,iBAAA;AjBuvLJ;AKvyLC;EYqDG,uBAAA;AjBqvLJ;AK1yLC;EY2DG,WAAA;EACA,UAAA;AjBkvLJ;AK9yLC;EY+CG,WAAA;EACA,UAAA;AjBkwLJ;AKlzLC;EYqDG,gBAAA;AjBgwLJ;AKrzLC;EY2DG,WAAA;EACA,iBAAA;AjB6vLJ;AKzzLC;EY+CG,WAAA;EACA,iBAAA;AjB6wLJ;AK7zLC;EYqDG,uBAAA;AjB2wLJ;AKh0LC;EY2DG,WAAA;EACA,UAAA;AjBwwLJ;AKp0LC;EY+CG,WAAA;EACA,iBAAA;AjBwxLJ;AKx0LC;EYqDG,uBAAA;AjBsxLJ;AK30LC;EY2DG,WAAA;EACA,UAAA;AjBmxLJ;AK/0LC;EY+CG,WAAA;EACA,UAAA;AjBmyLJ;AKn1LC;EYqDG,gBAAA;AjBiyLJ;AKt1LC;EY2DG,WAAA;EACA,iBAAA;AjB8xLJ;AK11LC;EY+CG,WAAA;EACA,iBAAA;AjB8yLJ;AK91LC;EYqDG,uBAAA;AjB4yLJ;AKj2LC;EY2DG,WAAA;EACA,iBAAA;AjByyLJ;AKr2LC;EY+CG,WAAA;EACA,iBAAA;AjByzLJ;AKz2LC;EYqDG,uBAAA;AjBuzLJ;AK52LC;EY2DG,WAAA;EACA,YAAA;AjBozLJ;AKh3LC;EY+CG,WAAA;EACA,UAAA;AjBo0LJ;AKp3LC;EYqDG,gBAAA;AjBk0LJ;AKv3LC;EY2DG,WAAA;EACA,iBAAA;AjB+zLJ;AK33LC;EY+CG,WAAA;EACA,iBAAA;AjB+0LJ;AK/3LC;EYqDG,uBAAA;AjB60LJ;AKl4LC;EY2DG,WAAA;EACA,UAAA;AjB00LJ;AKt4LC;EY+CG,WAAA;EACA,iBAAA;AjB01LJ;AK14LC;EYqDG,uBAAA;AjBw1LJ;AK74LC;EY2DG,WAAA;EACA,gBAAA;AjBq1LJ;AKj5LC;EY+CG,WAAA;EACA,WAAA;AjBq2LJ;AKr5LC;EYqDG,iBAAA;AjBm2LJ;AKx5LC;EY2DG,WAAA;EACA,gBAAA;AjBg2LJ;AiBrxLA;EZvIC;IY+CG,WAAA;IACA,gBAAA;EjBi3LF;EKj6LD;IYqDG,sBAAA;EjB+2LF;EKp6LD;IY2DG,WAAA;IACA,WAAA;EjB42LF;EKx6LD;IY+CG,WAAA;IACA,iBAAA;EjB43LF;EK56LD;IYqDG,uBAAA;EjB03LF;EK/6LD;IY2DG,WAAA;IACA,UAAA;EjBu3LF;EKn7LD;IY+CG,WAAA;IACA,UAAA;EjBu4LF;EKv7LD;IYqDG,gBAAA;EjBq4LF;EK17LD;IY2DG,WAAA;IACA,iBAAA;EjBk4LF;EK97LD;IY+CG,WAAA;IACA,iBAAA;EjBk5LF;EKl8LD;IYqDG,uBAAA;EjBg5LF;EKr8LD;IY2DG,WAAA;IACA,UAAA;EjB64LF;EKz8LD;IY+CG,WAAA;IACA,iBAAA;EjB65LF;EK78LD;IYqDG,uBAAA;EjB25LF;EKh9LD;IY2DG,WAAA;IACA,UAAA;EjBw5LF;EKp9LD;IY+CG,WAAA;IACA,UAAA;EjBw6LF;EKx9LD;IYqDG,gBAAA;EjBs6LF;EK39LD;IY2DG,WAAA;IACA,iBAAA;EjBm6LF;EK/9LD;IY+CG,WAAA;IACA,iBAAA;EjBm7LF;EKn+LD;IYqDG,uBAAA;EjBi7LF;EKt+LD;IY2DG,WAAA;IACA,iBAAA;EjB86LF;EK1+LD;IY+CG,WAAA;IACA,iBAAA;EjB87LF;EK9+LD;IYqDG,uBAAA;EjB47LF;EKj/LD;IY2DG,WAAA;IACA,YAAA;EjBy7LF;EKr/LD;IY+CG,WAAA;IACA,UAAA;EjBy8LF;EKz/LD;IYqDG,gBAAA;EjBu8LF;EK5/LD;IY2DG,WAAA;IACA,iBAAA;EjBo8LF;EKhgMD;IY+CG,WAAA;IACA,iBAAA;EjBo9LF;EKpgMD;IYqDG,uBAAA;EjBk9LF;EKvgMD;IY2DG,WAAA;IACA,UAAA;EjB+8LF;EK3gMD;IY+CG,WAAA;IACA,iBAAA;EjB+9LF;EK/gMD;IYqDG,uBAAA;EjB69LF;EKlhMD;IY2DG,WAAA;IACA,gBAAA;EjB09LF;EKthMD;IY+CG,WAAA;IACA,WAAA;EjB0+LF;EK1hMD;IYqDG,iBAAA;EjBw+LF;EK7hMD;IY2DG,WAAA;IACA,gBAAA;EjBq+LF;AACF;AiBv5LA;EZ3IC;IY+CG,WAAA;IACA,gBAAA;EjBu/LF;EKviMD;IYqDG,sBAAA;EjBq/LF;EK1iMD;IY2DG,WAAA;IACA,WAAA;EjBk/LF;EK9iMD;IY+CG,WAAA;IACA,iBAAA;EjBkgMF;EKljMD;IYqDG,uBAAA;EjBggMF;EKrjMD;IY2DG,WAAA;IACA,UAAA;EjB6/LF;EKzjMD;IY+CG,WAAA;IACA,UAAA;EjB6gMF;EK7jMD;IYqDG,gBAAA;EjB2gMF;EKhkMD;IY2DG,WAAA;IACA,iBAAA;EjBwgMF;EKpkMD;IY+CG,WAAA;IACA,iBAAA;EjBwhMF;EKxkMD;IYqDG,uBAAA;EjBshMF;EK3kMD;IY2DG,WAAA;IACA,UAAA;EjBmhMF;EK/kMD;IY+CG,WAAA;IACA,iBAAA;EjBmiMF;EKnlMD;IYqDG,uBAAA;EjBiiMF;EKtlMD;IY2DG,WAAA;IACA,UAAA;EjB8hMF;EK1lMD;IY+CG,WAAA;IACA,UAAA;EjB8iMF;EK9lMD;IYqDG,gBAAA;EjB4iMF;EKjmMD;IY2DG,WAAA;IACA,iBAAA;EjByiMF;EKrmMD;IY+CG,WAAA;IACA,iBAAA;EjByjMF;EKzmMD;IYqDG,uBAAA;EjBujMF;EK5mMD;IY2DG,WAAA;IACA,iBAAA;EjBojMF;EKhnMD;IY+CG,WAAA;IACA,iBAAA;EjBokMF;EKpnMD;IYqDG,uBAAA;EjBkkMF;EKvnMD;IY2DG,WAAA;IACA,YAAA;EjB+jMF;EK3nMD;IY+CG,WAAA;IACA,UAAA;EjB+kMF;EK/nMD;IYqDG,gBAAA;EjB6kMF;EKloMD;IY2DG,WAAA;IACA,iBAAA;EjB0kMF;EKtoMD;IY+CG,WAAA;IACA,iBAAA;EjB0lMF;EK1oMD;IYqDG,uBAAA;EjBwlMF;EK7oMD;IY2DG,WAAA;IACA,UAAA;EjBqlMF;EKjpMD;IY+CG,WAAA;IACA,iBAAA;EjBqmMF;EKrpMD;IYqDG,uBAAA;EjBmmMF;EKxpMD;IY2DG,WAAA;IACA,gBAAA;EjBgmMF;EK5pMD;IY+CG,WAAA;IACA,WAAA;EjBgnMF;EKhqMD;IYqDG,iBAAA;EjB8mMF;EKnqMD;IY2DG,WAAA;IACA,gBAAA;EjB2mMF;AACF;AiBzhMA;EZ/IC;IY+CG,WAAA;IACA,gBAAA;EjB6nMF;EK7qMD;IYqDG,sBAAA;EjB2nMF;EKhrMD;IY2DG,WAAA;IACA,WAAA;EjBwnMF;EKprMD;IY+CG,WAAA;IACA,iBAAA;EjBwoMF;EKxrMD;IYqDG,uBAAA;EjBsoMF;EK3rMD;IY2DG,WAAA;IACA,UAAA;EjBmoMF;EK/rMD;IY+CG,WAAA;IACA,UAAA;EjBmpMF;EKnsMD;IYqDG,gBAAA;EjBipMF;EKtsMD;IY2DG,WAAA;IACA,iBAAA;EjB8oMF;EK1sMD;IY+CG,WAAA;IACA,iBAAA;EjB8pMF;EK9sMD;IYqDG,uBAAA;EjB4pMF;EKjtMD;IY2DG,WAAA;IACA,UAAA;EjBypMF;EKrtMD;IY+CG,WAAA;IACA,iBAAA;EjByqMF;EKztMD;IYqDG,uBAAA;EjBuqMF;EK5tMD;IY2DG,WAAA;IACA,UAAA;EjBoqMF;EKhuMD;IY+CG,WAAA;IACA,UAAA;EjBorMF;EKpuMD;IYqDG,gBAAA;EjBkrMF;EKvuMD;IY2DG,WAAA;IACA,iBAAA;EjB+qMF;EK3uMD;IY+CG,WAAA;IACA,iBAAA;EjB+rMF;EK/uMD;IYqDG,uBAAA;EjB6rMF;EKlvMD;IY2DG,WAAA;IACA,iBAAA;EjB0rMF;EKtvMD;IY+CG,WAAA;IACA,iBAAA;EjB0sMF;EK1vMD;IYqDG,uBAAA;EjBwsMF;EK7vMD;IY2DG,WAAA;IACA,YAAA;EjBqsMF;EKjwMD;IY+CG,WAAA;IACA,UAAA;EjBqtMF;EKrwMD;IYqDG,gBAAA;EjBmtMF;EKxwMD;IY2DG,WAAA;IACA,iBAAA;EjBgtMF;EK5wMD;IY+CG,WAAA;IACA,iBAAA;EjBguMF;EKhxMD;IYqDG,uBAAA;EjB8tMF;EKnxMD;IY2DG,WAAA;IACA,UAAA;EjB2tMF;EKvxMD;IY+CG,WAAA;IACA,iBAAA;EjB2uMF;EK3xMD;IYqDG,uBAAA;EjByuMF;EK9xMD;IY2DG,WAAA;IACA,gBAAA;EjBsuMF;EKlyMD;IY+CG,WAAA;IACA,WAAA;EjBsvMF;EKtyMD;IYqDG,iBAAA;EjBovMF;EKzyMD;IY2DG,WAAA;IACA,gBAAA;EjBivMF;AACF;AiB3pMA;EZnJC;IY+CG,WAAA;IACA,gBAAA;EjBmwMF;EKnzMD;IYqDG,sBAAA;EjBiwMF;EKtzMD;IY2DG,WAAA;IACA,WAAA;EjB8vMF;EK1zMD;IY+CG,WAAA;IACA,iBAAA;EjB8wMF;EK9zMD;IYqDG,uBAAA;EjB4wMF;EKj0MD;IY2DG,WAAA;IACA,UAAA;EjBywMF;EKr0MD;IY+CG,WAAA;IACA,UAAA;EjByxMF;EKz0MD;IYqDG,gBAAA;EjBuxMF;EK50MD;IY2DG,WAAA;IACA,iBAAA;EjBoxMF;EKh1MD;IY+CG,WAAA;IACA,iBAAA;EjBoyMF;EKp1MD;IYqDG,uBAAA;EjBkyMF;EKv1MD;IY2DG,WAAA;IACA,UAAA;EjB+xMF;EK31MD;IY+CG,WAAA;IACA,iBAAA;EjB+yMF;EK/1MD;IYqDG,uBAAA;EjB6yMF;EKl2MD;IY2DG,WAAA;IACA,UAAA;EjB0yMF;EKt2MD;IY+CG,WAAA;IACA,UAAA;EjB0zMF;EK12MD;IYqDG,gBAAA;EjBwzMF;EK72MD;IY2DG,WAAA;IACA,iBAAA;EjBqzMF;EKj3MD;IY+CG,WAAA;IACA,iBAAA;EjBq0MF;EKr3MD;IYqDG,uBAAA;EjBm0MF;EKx3MD;IY2DG,WAAA;IACA,iBAAA;EjBg0MF;EK53MD;IY+CG,WAAA;IACA,iBAAA;EjBg1MF;EKh4MD;IYqDG,uBAAA;EjB80MF;EKn4MD;IY2DG,WAAA;IACA,YAAA;EjB20MF;EKv4MD;IY+CG,WAAA;IACA,UAAA;EjB21MF;EK34MD;IYqDG,gBAAA;EjBy1MF;EK94MD;IY2DG,WAAA;IACA,iBAAA;EjBs1MF;EKl5MD;IY+CG,WAAA;IACA,iBAAA;EjBs2MF;EKt5MD;IYqDG,uBAAA;EjBo2MF;EKz5MD;IY2DG,WAAA;IACA,UAAA;EjBi2MF;EK75MD;IY+CG,WAAA;IACA,iBAAA;EjBi3MF;EKj6MD;IYqDG,uBAAA;EjB+2MF;EKp6MD;IY2DG,WAAA;IACA,gBAAA;EjB42MF;EKx6MD;IY+CG,WAAA;IACA,WAAA;EjB43MF;EK56MD;IYqDG,iBAAA;EjB03MF;EK/6MD;IY2DG,WAAA;IACA,gBAAA;EjBu3MF;AACF;AACA;;;;EAIE;AKz7MD;EaIC,mCAAA;UAAA,2BAAA;AlBw7MF;AK57MC;EaIC,kIAAA;UAAA,0HAAA;AlB27MF;AK/7MC;EaIC,kIAAA;UAAA,0HAAA;AlB87MF;AKl8MC;EaIC,kIAAA;UAAA,0HAAA;AlBi8MF;AKr8MC;EaIC,mIAAA;UAAA,2HAAA;AlBo8MF;AKx8MC;EaIC,mIAAA;UAAA,2HAAA;AlBu8MF;AK38MC;EaIC,oIAAA;UAAA,4HAAA;AlB08MF;AK98MC;EaIC,wIAAA;UAAA,gIAAA;AlB68MF;AKj9MC;EaIC,wIAAA;UAAA,gIAAA;AlBg9MF;AKp9MC;EaIC,wIAAA;UAAA,gIAAA;AlBm9MF;AKv9MC;EaIC,yIAAA;UAAA,iIAAA;AlBs9MF;AK19MC;EaIC,yIAAA;UAAA,iIAAA;AlBy9MF;AK79MC;EaIC,yIAAA;UAAA,iIAAA;AlB49MF;AKh+MC;EaIC,yIAAA;UAAA,iIAAA;AlB+9MF;AKn+MC;EaIC,yIAAA;UAAA,iIAAA;AlBk+MF;AKt+MC;EaIC,yIAAA;UAAA,iIAAA;AlBq+MF;AKz+MC;EaIC,0IAAA;UAAA,kIAAA;AlBw+MF;AK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,4BAAA;EACA,qCAAA;UAAA,6BAAA;A3B2jON;AI51OI;EuBwSE,+BAAA;A3BujON;AI/1OI;EuB8SA,+BAAA;A3BojOJ;AIl2OI;EuBmTE,gCAAA;A3BkjON;AIr2OI;EuByTA,cAAA;A3B+iOJ;AIx2OI;EuB8TA,+BAAA;A3B6iOJ;AI32OI;EuBmUA,+BAAA;A3B2iOJ;AI92OI;;EuB2UE,4BAAA;EACA,qCAAA;UAAA,6BAAA;A3BuiON;AIn3OI;EuBgVE,cAAA;A3BsiON;AIt3OI;;EuBwVE,+BAAA;A3BkiON;AI13OI;EuB4VE,+BAAA;A3BiiON;AI73OI;EuBgWE,6CAAA;A3BgiON;AI33OI;EACE;IuBkRF,WAAA;IACA,6CAAA;E3B4mOF;E2B1mOE;IACE,+BAAA;E3B4mOJ;E2BzmOE;IACE,4BAAA;IACA,qCAAA;YAAA,6BAAA;E3B2mOJ;EIt4OI;IuBkSA,+BAAA;E3BumOJ;EIz4OI;IuBwSF,+BAAA;E3BomOF;EI54OI;IuB6SA,gCAAA;E3BkmOJ;EI/4OI;IuBmTF,cAAA;E3B+lOF;EIl5OI;IuBwTF,+BAAA;E3B6lOF;EIr5OI;IuB6TF,+BAAA;E3B2lOF;EIx5OI;;IuBqUA,4BAAA;IACA,qCAAA;YAAA,6BAAA;E3BulOJ;EI75OI;IuB0UA,cAAA;E3BslOJ;EIh6OI;;IuBkVA,+BAAA;E3BklOJ;EIp6OI;IuBsVA,+BAAA;E3BilOJ;EIv6OI;IuB0VA,6CAAA;E3BglOJ;AACF;AACA;;;;EAIE;AKx7OD;EsB0XS,4BAAA;EACA,qCAAA;UAAA,6BAAA;A3BikOV;AK57OC;;;EsBiYS,8BAAA;A3BgkOV;A2BziOU;EAbI,4BAAA;EACA,qCAAA;UAAA,6BAAA;A3ByjOd;A2B7iOU;;;EANI,cAAA;A3BwjOd;A2B5iOU;EACE;IApBE,4BAAA;IACA,qCAAA;YAAA,6BAAA;E3BmkOZ;E2BhjOU;;;IAbE,cAAA;E3BkkOZ;AACF;AKr9OC;EsB0XS,4BAAA;EACA,qCAAA;UAAA,6BAAA;A3B8lOV;AKz9OC;;;EsBiYS,8BAAA;A3B6lOV;A2BtkOU;EAbI,4BAAA;EACA,qCAAA;UAAA,6BAAA;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AA;A7BwrQR;A6BtrQQ;EACE,yBAAA;A7BwrQV;A6BjrQQ;;EACE,uDAAA;UAAA,+CAAA;A7BorQV;AK9yQC;EwB+GO,qBAAA;A7BksQR;A6BhsQQ;EACE,yBAAA;A7BksQV;A6B3rQQ;;EACE,uDAAA;UAAA,+CAAA;A7B8rQV;AKxzQC;EwB+GO,qBAAA;A7B4sQR;A6B1sQQ;EACE,yBAAA;A7B4sQV;A6BrsQQ;;EACE,uDAAA;UAAA,+CAAA;A7BwsQV;AKl0QC;EwB+GO,qBAAA;A7BstQR;A6BptQQ;EACE,yBAAA;A7BstQV;A6B/sQQ;;EACE,uDAAA;UAAA,+CAAA;A7BktQV;AK50QC;EwB+GO,qBAAA;A7BguQR;A6B9tQQ;EACE,yBAAA;A7BguQV;A6BztQQ;;EACE,uDAAA;UAAA,+CAAA;A7B4tQV;AKt1QC;EwB+GO,qBAAA;A7B0uQR;A6BxuQQ;EACE,yBAAA;A7B0uQV;A6BnuQQ;;EACE,wDAAA;UAAA,gDAAA;A7BsuQV;AKh2QC;EwB+GO,qBAAA;A7BovQR;A6BlvQQ;EACE,yBAAA;A7BovQV;A6B7uQQ;;EACE,uDAAA;UAAA,+CAAA;A7BgvQV;AK12QC;EwB+GO,qBAAA;A7B8vQR;A6B5vQQ;EACE,yBAAA;A7B8vQV;A6BvvQQ;;EACE,uDAAA;UAAA,+CAAA;A7B0vQV;AKp3QC;EwB+GO,qBAAA;A7BwwQR;A6BtwQQ;EACE,yBAAA;A7BwwQV;A6BjwQQ;;EACE,uDAAA;UAAA,+CAAA;A7BowQV;AK93QC;EwB+GO,qBAAA;A7BkxQR;A6BhxQQ;EACE,yBAAA;A7BkxQV;A6B3wQQ;;EACE,uDAAA;UAAA,+CAAA;A7B8wQV;AKx4QC;EwB+GO,qBAAA;A7B4xQR;A6B1xQQ;EACE,yBAAA;A7B4xQV;A6BrxQQ;;EACE,uDAAA;UAAA,+CAAA;A7BwxQV;AKl5QC;EwB+GO,qBAAA;A7BsyQR;A6BpyQQ;EACE,yBAAA;A7BsyQV;A6B/xQQ;;EACE,uDAAA;UAAA,+CAAA;A7BkyQV;AK55QC;EwB+GO,qBAAA;A7BgzQR;A6B9yQQ;EACE,yBAAA;A7BgzQV;A6BzyQQ;;EACE,uDAAA;UAAA,+CAAA;A7B4yQV;AKt6QC;EwB+GO,qBAAA;A7B0zQR;A6BxzQQ;EACE,yBAAA;A7B0zQV;A6BnzQQ;;EACE,sDAAA;UAAA,8CAAA;A7BszQV;AKh7QC;EwB+GO,qBAAA;A7Bo0QR;A6Bl0QQ;EACE,yBAAA;A7Bo0QV;A6B7zQQ;;EACE,wDAAA;UAAA,gDAAA;A7Bg0QV;AK17QC;EwB+GO,qBAAA;A7B80QR;A6B50QQ;EACE,yBAAA;A7B80QV;A6Bv0QQ;;EACE,sDAAA;UAAA,8CAAA;A7B00QV;AACA;;;;EAIE;AIv8QE;EyB0IA,sCAAA;A7Bg0QJ;AI18QI;EyB+IA,iDAAA;A7B8zQJ;A6BzzQI;EACE,qDAAA;A7B2zQN;A6BpzQI;;EACE,uDAAA;UAAA,+CAAA;A7BuzQN;AI/8QI;EACE;IyBoIF,sCAAA;E7B80QF;EIl9QI;IyByIF,iDAAA;E7B40QF;E6Bv0QE;IACE,qDAAA;E7By0QJ;E6Bl0QE;;IACE,uDAAA;YAAA,+CAAA;E7Bq0QJ;AACF;AACA;;;;EAIE;A8Bp+QF;EACE,qBAAA;EACA,YAAA;EACA,iBAAA;EACA,eAAA;EACA,yBAAA;KAAA,sBAAA;MAAA,qBAAA;UAAA,iBAAA;A9Bs+QF;A8B3+QA;EASI,kBAAA;EACA,QAAA;EACA,SAAA;EACA,gBAAA;EACA,UAAA;A9Bq+QJ;AACA,SAAS;A8Bj+QT;EACE,kBAAA;EACA,qBAAA;EACA,WAAA;EACA,YAAA;EACA,sBAAA;EACA,qCAAA;EACA,mBAAA;EACA,sEAAA;EAAA,8DAAA;A9Bm+QF;A8Bh+QE;EACE,kBAAA;EACA,SAAA;EACA,UAAA;EACA,qBAAA;EACA,WAAA;EACA,YAAA;EACA,yBAAA;EACA,mBAAA;EACA,qKAAA;EAAA,6JAAA;EAAA,qJAAA;EAAA,4MAAA;EAGA,YAAA;EZ3CF,uHAAA;UAAA,+GAAA;AlB4gRF;AACA,YAAY;A8B59QZ;EACE,yCAAA;A9B89QF;A8B59QE;EACE,UAAA;EACA,yBAAA;A9B89QJ;AACA,mBAAmB;A8Bx9QjB;;EACE,sJAAA;UAAA,8IAAA;A9B29QJ;AACA,cAAc;A8B98QZ;;EACE,4JAAA;UAAA,oJAAA;A9Bi9QJ;AACA,SAAS;A8Bt8QT;EACE,gDAAA;A9Bw8QF;A8Bt8QE;EACE,oCAAA;A9Bw8QJ;AACA;;;;EAIE;AK9iRD;EyBuHO,yCAAA;A9B07QR;A8Bx7QQ;EACE,yBAAA;A9B07QV;A8Bn7QQ;;EACE,4JAAA;UAAA,oJAAA;A9Bs7QV;AKxjRC;EyBuHO,yCAAA;A9Bo8QR;A8Bl8QQ;EACE,yBAAA;A9Bo8QV;A8B77QQ;;EACE,4JAAA;UAAA,oJAAA;A9Bg8QV;AKlkRC;EyBuHO,yCAAA;A9B88QR;A8B58QQ;EACE,yBAAA;A9B88QV;A8Bv8QQ;;EACE,4JAAA;UAAA,oJAAA;A9B08QV;AK5kRC;EyBuHO,yCAAA;A9Bw9QR;A8Bt9QQ;EACE,yBAAA;A9Bw9QV;A8Bj9QQ;;EACE,4JAAA;UAAA,oJAAA;A9Bo9QV;AKtlRC;EyBuHO,yCAAA;A9Bk+QR;A8Bh+QQ;EACE,yBAAA;A9Bk+QV;A8B39QQ;;EACE,4JAAA;UAAA,oJAAA;A9B89QV;AKhmRC;EyBuHO,0CAAA;A9B4+QR;A8B1+QQ;EACE,yBAAA;A9B4+QV;A8Br+QQ;;EACE,6JAAA;UAAA,qJAAA;A9Bw+QV;AK1mRC;EyBuHO,yCAAA;A9Bs/QR;A8Bp/QQ;EACE,yBAAA;A9Bs/QV;A8B/+QQ;;EACE,4JAAA;UAAA,oJAAA;A9Bk/QV;AKpnRC;EyBuHO,yCAAA;A9BggRR;A8B9/QQ;EACE,yBAAA;A9BggRV;A8Bz/QQ;;EACE,4JAAA;UAAA,oJAAA;A9B4/QV;AK9nRC;EyBuHO,yCAAA;A9B0gRR;A8BxgRQ;EACE,yBAAA;A9B0gRV;A8BngRQ;;EACE,4JAAA;UAAA,oJAAA;A9BsgRV;AKxoRC;EyBuHO,yCAAA;A9BohRR;A8BlhRQ;EACE,yBAAA;A9BohRV;A8B7gRQ;;EACE,4JAAA;UAAA,oJAAA;A9BghRV;AKlpRC;EyBuHO,yCAAA;A9B8hRR;A8B5hRQ;EACE,yBAAA;A9B8hRV;A8BvhRQ;;EACE,4JAAA;UAAA,oJAAA;A9B0hRV;AK5pRC;EyBuHO,yCAAA;A9BwiRR;A8BtiRQ;EACE,yBAAA;A9BwiRV;A8BjiRQ;;EACE,4JAAA;UAAA,oJAAA;A9BoiRV;AKtqRC;EyBuHO,yCAAA;A9BkjRR;A8BhjRQ;EACE,yBAAA;A9BkjRV;A8B3iRQ;;EACE,4JAAA;UAAA,oJAAA;A9B8iRV;AKhrRC;EyBuHO,wCAAA;A9B4jRR;A8B1jRQ;EACE,yBAAA;A9B4jRV;A8BrjRQ;;EACE,2JAAA;UAAA,mJAAA;A9BwjRV;AK1rRC;EyBuHO,0CAAA;A9BskRR;A8BpkRQ;EACE,yBAAA;A9BskRV;A8B/jRQ;;EACE,6JAAA;UAAA,qJAAA;A9BkkRV;AKpsRC;EyBuHO,wCAAA;A9BglRR;A8B9kRQ;EACE,yBAAA;A9BglRV;A8BzkRQ;;EACE,2JAAA;UAAA,mJAAA;A9B4kRV;AACA;;;;EAIE;AIjtRE;E0ByJA,0CAAA;A9B2jRJ;A8BzjRI;EACE,yBAAA;A9B2jRN;AKztRC;EyB8KS,0CAAA;A9B8iRV;A8B5iRU;EACE,yBAAA;A9B8iRZ;AK/tRC;EyB8KS,0CAAA;A9BojRV;A8BljRU;EACE,yBAAA;A9BojRZ;AKruRC;EyB8KS,0CAAA;A9B0jRV;A8BxjRU;EACE,yBAAA;A9B0jRZ;AK3uRC;EyB8KS,0CAAA;A9BgkRV;A8B9jRU;EACE,yBAAA;A9BgkRZ;AKjvRC;EyB8KS,0CAAA;A9BskRV;A8BpkRU;EACE,yBAAA;A9BskRZ;AKvvRC;EyB8KS,0CAAA;A9B4kRV;A8B1kRU;EACE,yBAAA;A9B4kRZ;AK7vRC;EyB8KS,0CAAA;A9BklRV;A8BhlRU;EACE,yBAAA;A9BklRZ;AKnwRC;EyB8KS,0CAAA;A9BwlRV;A8BtlRU;EACE,yBAAA;A9BwlRZ;AKzwRC;EyB8KS,0CAAA;A9B8lRV;A8B5lRU;EACE,yBAAA;A9B8lRZ;AK/wRC;EyB8KS,0CAAA;A9BomRV;A8BlmRU;EACE,yBAAA;A9BomRZ;AKrxRC;EyB8KS,0CAAA;A9B0mRV;A8BxmRU;EACE,yBAAA;A9B0mRZ;AK3xRC;EyB8KS,0CAAA;A9BgnRV;A8B9mRU;EACE,yBAAA;A9BgnRZ;AKjyRC;EyB8KS,0CAAA;A9BsnRV;A8BpnRU;EACE,yBAAA;A9BsnRZ;AKvyRC;EyB8KS,0CAAA;A9B4nRV;A8B1nRU;EACE,yBAAA;A9B4nRZ;AK7yRC;EyB8KS,0CAAA;A9BkoRV;A8BhoRU;EACE,yBAAA;A9BkoRZ;AKnzRC;EyB8KS,0CAAA;A9BwoRV;A8BtoRU;EACE,yBAAA;A9BwoRZ;A8B5nRI;;EACE,4JAAA;UAAA,oJAAA;A9B+nRN;AI3zRI;E0ByMA,qDAAA;A9BqnRJ;A8BnnRI;EACE,oCAAA;A9BqnRN;AI5zRI;EACE;I0BmJF,0CAAA;E9B4qRF;E8B1qRE;IACE,yBAAA;E9B4qRJ;EK10RD;IyB8KS,0CAAA;E9B+pRR;E8B7pRQ;IACE,yBAAA;E9B+pRV;EKh1RD;IyB8KS,0CAAA;E9BqqRR;E8BnqRQ;IACE,yBAAA;E9BqqRV;EKt1RD;IyB8KS,0CAAA;E9B2qRR;E8BzqRQ;IACE,yBAAA;E9B2qRV;EK51RD;IyB8KS,0CAAA;E9BirRR;E8B/qRQ;IACE,yBAAA;E9BirRV;EKl2RD;IyB8KS,0CAAA;E9BurRR;E8BrrRQ;IACE,yBAAA;E9BurRV;EKx2RD;IyB8KS,0CAAA;E9B6rRR;E8B3rRQ;IACE,yBAAA;E9B6rRV;EK92RD;IyB8KS,0CAAA;E9BmsRR;E8BjsRQ;IACE,yBAAA;E9BmsRV;EKp3RD;IyB8KS,0CAAA;E9BysRR;E8BvsRQ;IACE,yBAAA;E9BysRV;EK13RD;IyB8KS,0CAAA;E9B+sRR;E8B7sRQ;IACE,yBAAA;E9B+sRV;EKh4RD;IyB8KS,0CAAA;E9BqtRR;E8BntRQ;IACE,yBAAA;E9BqtRV;EKt4RD;IyB8KS,0CAAA;E9B2tRR;E8BztRQ;IACE,yBAAA;E9B2tRV;EK54RD;IyB8KS,0CAAA;E9BiuRR;E8B/tRQ;IACE,yBAAA;E9BiuRV;EKl5RD;IyB8KS,0CAAA;E9BuuRR;E8BruRQ;IACE,yBAAA;E9BuuRV;EKx5RD;IyB8KS,0CAAA;E9B6uRR;E8B3uRQ;IACE,yBAAA;E9B6uRV;EK95RD;IyB8KS,0CAAA;E9BmvRR;E8BjvRQ;IACE,yBAAA;E9BmvRV;EKp6RD;IyB8KS,0CAAA;E9ByvRR;E8BvvRQ;IACE,yBAAA;E9ByvRV;E8B7uRE;;IACE,4JAAA;YAAA,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AAA;AtCs4UR;AKnjVC;EiCyKO,cAAA;AtC64UR;AKtjVC;EiC6KO,yBAAA;AtC44UR;AKzjVC;EiCyKO,cAAA;AtCm5UR;AK5jVC;EiC6KO,yBAAA;AtCk5UR;AK/jVC;EiCyKO,cAAA;AtCy5UR;AKlkVC;EiC6KO,yBAAA;AtCw5UR;AKrkVC;EiCyKO,cAAA;AtC+5UR;AKxkVC;EiC6KO,yBAAA;AtC85UR;AK3kVC;EiCyKO,cAAA;AtCq6UR;AK9kVC;EiC6KO,yBAAA;AtCo6UR;AKjlVC;EiCyKO,cAAA;AtC26UR;AKplVC;EiC6KO,yBAAA;AtC06UR;AKvlVC;EiCyKO,cAAA;AtCi7UR;AK1lVC;EiC6KO,yBAAA;AtCg7UR;AK7lVC;EiCyKO,cAAA;AtCu7UR;AKhmVC;EiC6KO,yBAAA;AtCs7UR;AKnmVC;EiCyKO,cAAA;AtC67UR;AKtmVC;EiC6KO,yBAAA;AtC47UR;AKzmVC;EiCyKO,cAAA;AtCm8UR;AK5mVC;EiC6KO,yBAAA;AtCk8UR;AK/mVC;EiCyKO,cAAA;AtCy8UR;AKlnVC;EiC6KO,yBAAA;AtCw8UR;AKrnVC;EiCyKO,cAAA;AtC+8UR;AKxnVC;EiC6KO,yBAAA;AtC88UR;AK3nVC;EiCyKO,cAAA;AtCq9UR;AK9nVC;EiC6KO,yBAAA;AtCo9UR;AACA,aAAa;AsC58Ub;EAEI,cAAA;AtC68UJ;AsC/8UA;EAKI,yBAAA;AtC68UJ;AG1hVI;EACE,UAAA;EACA,WAAA;EACA,uBAAA;AH4hVN;AG1hVM;EAAA;IACE,UAAA;IACA,WAAA;EH6hVN;AACF;AG1hVI;EACE,oCAAA;AH4hVN;AACA;;;;;;EAME;AuCrpVF;;EAEE,kBAAA;EACA,8BAAA;UAAA,sBAAA;EACA,YAAA;EACA,mBAAA;EACA,kBAAA;EACA,0BAAA;EACA,gBAAA;EACA,eAAA;EACA,iBAAA;EACA,eAAA;EpC6CA,gBAAA;EACA,mBAAA;EACA,uBAAA;AH2mVF;AuCtpVA;EACE,kBAAA;AvCwpVF;AACA;;;;EAIE;AInrVE;;EmCiCA,+BAAA;AvCspVJ;AIlrVI;EACE;;ImC2BF,+BAAA;EvC2pVF;AACF;AACA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4XA;EACE;IACE,OAAA;IACA,QAAA;EnD64XF;EmD34XA;IACE,SAAA;IACA,UAAA;EnD64XF;EmD34XA;IACE,UAAA;IACA,QAAA;EnD64XF;AACF;AmDz5XA;EACE;IACE,OAAA;IACA,QAAA;EnD64XF;EmD34XA;IACE,SAAA;IACA,UAAA;EnD64XF;EmD34XA;IACE,UAAA;IACA,QAAA;EnD64XF;AACF;AmD14XA;EACE;IACE,OAAA;IACA,QAAA;EnD44XF;EmD14XA;IACE,OAAA;IACA,QAAA;EnD44XF;EmD14XA;IACE,OAAA;IACA,UAAA;EnD44XF;EmD14XA;IACE,UAAA;IACA,QAAA;EnD44XF;AACF;AmD55XA;EACE;IACE,OAAA;IACA,QAAA;EnD44XF;EmD14XA;IACE,OAAA;IACA,QAAA;EnD44XF;EmD14XA;IACE,OAAA;IACA,UAAA;EnD44XF;EmD14XA;IACE,UAAA;IACA,QAAA;EnD44XF;AACF;AACA;;;;EAIE;AKt+XD;E8CsGO,wCAAA;AnDm4XR;AKz+XC;;EC4CC,yBAAA;ANi8XF;AK7+XC;E8CsGO,yCAAA;AnD04XR;AKh/XC;;EC4CC,yBAAA;ANw8XF;AKp/XC;E8CsGO,yCAAA;AnDi5XR;AKv/XC;;EC4CC,yBAAA;AN+8XF;AK3/XC;E8CsGO,wCAAA;AnDw5XR;AK9/XC;;EC4CC,yBAAA;ANs9XF;AKlgYC;E8CsGO,wCAAA;AnD+5XR;AKrgYC;;EC4CC,yBAAA;AN69XF;AKzgYC;E8CsGO,wCAAA;AnDs6XR;AK5gYC;;EC4CC,yBAAA;ANo+XF;AKhhYC;E8CsGO,yCAAA;AnD66XR;AKnhYC;;EC4CC,yBAAA;AN2+XF;AKvhYC;E8CsGO,wCAAA;AnDo7XR;AK1hYC;;EC4CC,yBAAA;ANk/XF;AK9hYC;E8CsGO,0CAAA;AnD27XR;AKjiYC;;EC4CC,yBAAA;ANy/XF;AKriYC;E8CsGO,wCAAA;AnDk8XR;AKxiYC;;EC4CC,yBAAA;ANggYF;AK5iYC;E8CsGO,wCAAA;AnDy8XR;AK/iYC;;EC4CC,yBAAA;ANugYF;AKnjYC;E8CsGO,yCAAA;AnDg9XR;AKtjYC;;EC4CC,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","file":"mdui.css","sourcesContent":["/*!\n * mdui 1.0.1 (https://mdui.org)\n * Copyright 2016-2020 zdhxiong\n * Licensed under MIT\n *//*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n\n/**\n * =============================================================================\n * ************ 公共样式 ************\n * =============================================================================\n */\n* {\n -webkit-tap-highlight-color: transparent;\n}\nbody {\n color: rgba(0, 0, 0, 0.87);\n font-size: 14px;\n font-family: Roboto, Noto, Helvetica, Arial, sans-serif;\n background-color: #fff;\n}\n@media (min-width: 600px) {\n body {\n font-size: 14.5px;\n }\n}\n@media (min-width: 1024px) {\n body {\n font-size: 15px;\n }\n}\nbody *::-webkit-scrollbar {\n width: 5px;\n height: 5px;\n background: transparent;\n}\n@media (min-width: 1024px) {\n body *::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n }\n}\nbody *::-webkit-scrollbar-thumb {\n background: rgba(0, 0, 0, 0.2);\n}\n/* 锁定屏幕 */\nbody.mdui-locked {\n overflow: hidden;\n}\n/* 遮罩层 */\n.mdui-overlay {\n position: fixed;\n top: -5000px;\n right: -5000px;\n bottom: -5000px;\n left: -5000px;\n z-index: 2000;\n background: rgba(0, 0, 0, 0.4);\n backface-visibility: hidden;\n visibility: hidden;\n opacity: 0;\n transition-duration: 0.3s;\n transition-property: opacity, visibility;\n will-change: opacity;\n}\n/* 显示遮罩层 */\n.mdui-overlay-show {\n visibility: visible;\n opacity: 1;\n}\n/* 取消 transition 过渡效果 */\n.mdui-no-transition {\n transition-property: none !important;\n}\n/**\n * =============================================================================\n * ************ Global dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark {\n color: #fff;\n background-color: #303030;\n}\n.mdui-theme-layout-dark *::-webkit-scrollbar {\n width: 5px;\n height: 5px;\n background: transparent;\n}\n@media (min-width: 1024px) {\n .mdui-theme-layout-dark *::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n }\n}\n.mdui-theme-layout-dark *::-webkit-scrollbar-thumb {\n background: rgba(255, 255, 255, 0.3);\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto {\n color: #fff;\n background-color: #303030;\n }\n .mdui-theme-layout-auto *::-webkit-scrollbar {\n width: 5px;\n height: 5px;\n background: transparent;\n }\n .mdui-theme-layout-auto *::-webkit-scrollbar-thumb {\n background: rgba(255, 255, 255, 0.3);\n }\n}\n@media (prefers-color-scheme: dark) and (min-width: 1024px) {\n .mdui-theme-layout-auto *::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n }\n}\n/**\n * =============================================================================\n * ************ Color 颜色 ************\n * =============================================================================\n */\n/**\n * .mdui-theme-primary-[color] .mdui-color-theme\n * .mdui-theme-primary-[color] .mdui-color-theme-[degree]\n */\n.mdui-theme-primary-amber .mdui-color-theme {\n background-color: #FFC107 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-amber .mdui-color-theme-50 {\n background-color: #FFF8E1 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-amber .mdui-color-theme-100 {\n background-color: #FFECB3 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-amber .mdui-color-theme-200 {\n background-color: #FFE082 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-amber .mdui-color-theme-300 {\n background-color: #FFD54F !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-amber .mdui-color-theme-400 {\n background-color: #FFCA28 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-amber .mdui-color-theme-500 {\n background-color: #FFC107 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-amber .mdui-color-theme-600 {\n background-color: #FFB300 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-amber .mdui-color-theme-700 {\n background-color: #FFA000 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-amber .mdui-color-theme-800 {\n background-color: #FF8F00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-amber .mdui-color-theme-900 {\n background-color: #FF6F00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-blue .mdui-color-theme {\n background-color: #2196F3 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-blue .mdui-color-theme-50 {\n background-color: #E3F2FD !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-blue .mdui-color-theme-100 {\n background-color: #BBDEFB !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-blue .mdui-color-theme-200 {\n background-color: #90CAF9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-blue .mdui-color-theme-300 {\n background-color: #64B5F6 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-blue .mdui-color-theme-400 {\n background-color: #42A5F5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-blue .mdui-color-theme-500 {\n background-color: #2196F3 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-blue .mdui-color-theme-600 {\n background-color: #1E88E5 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-blue .mdui-color-theme-700 {\n background-color: #1976D2 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-blue .mdui-color-theme-800 {\n background-color: #1565C0 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-blue .mdui-color-theme-900 {\n background-color: #0D47A1 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-blue-grey .mdui-color-theme {\n background-color: #607D8B !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-blue-grey .mdui-color-theme-50 {\n background-color: #ECEFF1 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-blue-grey .mdui-color-theme-100 {\n background-color: #CFD8DC !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-blue-grey .mdui-color-theme-200 {\n background-color: #B0BEC5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-blue-grey .mdui-color-theme-300 {\n background-color: #90A4AE !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-blue-grey .mdui-color-theme-400 {\n background-color: #78909C !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-blue-grey .mdui-color-theme-500 {\n background-color: #607D8B !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-blue-grey .mdui-color-theme-600 {\n background-color: #546E7A !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-blue-grey .mdui-color-theme-700 {\n background-color: #455A64 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-blue-grey .mdui-color-theme-800 {\n background-color: #37474F !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-blue-grey .mdui-color-theme-900 {\n background-color: #263238 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-brown .mdui-color-theme {\n background-color: #795548 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-brown .mdui-color-theme-50 {\n background-color: #EFEBE9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-brown .mdui-color-theme-100 {\n background-color: #D7CCC8 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-brown .mdui-color-theme-200 {\n background-color: #BCAAA4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-brown .mdui-color-theme-300 {\n background-color: #A1887F !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-brown .mdui-color-theme-400 {\n background-color: #8D6E63 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-brown .mdui-color-theme-500 {\n background-color: #795548 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-brown .mdui-color-theme-600 {\n background-color: #6D4C41 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-brown .mdui-color-theme-700 {\n background-color: #5D4037 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-brown .mdui-color-theme-800 {\n background-color: #4E342E !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-brown .mdui-color-theme-900 {\n background-color: #3E2723 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-cyan .mdui-color-theme {\n background-color: #00BCD4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-cyan .mdui-color-theme-50 {\n background-color: #E0F7FA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-cyan .mdui-color-theme-100 {\n background-color: #B2EBF2 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-cyan .mdui-color-theme-200 {\n background-color: #80DEEA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-cyan .mdui-color-theme-300 {\n background-color: #4DD0E1 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-cyan .mdui-color-theme-400 {\n background-color: #26C6DA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-cyan .mdui-color-theme-500 {\n background-color: #00BCD4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-cyan .mdui-color-theme-600 {\n background-color: #00ACC1 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-cyan .mdui-color-theme-700 {\n background-color: #0097A7 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-cyan .mdui-color-theme-800 {\n background-color: #00838F !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-cyan .mdui-color-theme-900 {\n background-color: #006064 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-deep-orange .mdui-color-theme {\n background-color: #FF5722 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-deep-orange .mdui-color-theme-50 {\n background-color: #FBE9E7 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-deep-orange .mdui-color-theme-100 {\n background-color: #FFCCBC !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-deep-orange .mdui-color-theme-200 {\n background-color: #FFAB91 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-deep-orange .mdui-color-theme-300 {\n background-color: #FF8A65 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-deep-orange .mdui-color-theme-400 {\n background-color: #FF7043 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-deep-orange .mdui-color-theme-500 {\n background-color: #FF5722 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-deep-orange .mdui-color-theme-600 {\n background-color: #F4511E !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-deep-orange .mdui-color-theme-700 {\n background-color: #E64A19 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-deep-orange .mdui-color-theme-800 {\n background-color: #D84315 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-deep-orange .mdui-color-theme-900 {\n background-color: #BF360C !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-deep-purple .mdui-color-theme {\n background-color: #673AB7 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-deep-purple .mdui-color-theme-50 {\n background-color: #EDE7F6 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-deep-purple .mdui-color-theme-100 {\n background-color: #D1C4E9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-deep-purple .mdui-color-theme-200 {\n background-color: #B39DDB !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-deep-purple .mdui-color-theme-300 {\n background-color: #9575CD !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-deep-purple .mdui-color-theme-400 {\n background-color: #7E57C2 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-deep-purple .mdui-color-theme-500 {\n background-color: #673AB7 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-deep-purple .mdui-color-theme-600 {\n background-color: #5E35B1 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-deep-purple .mdui-color-theme-700 {\n background-color: #512DA8 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-deep-purple .mdui-color-theme-800 {\n background-color: #4527A0 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-deep-purple .mdui-color-theme-900 {\n background-color: #311B92 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-green .mdui-color-theme {\n background-color: #4CAF50 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-green .mdui-color-theme-50 {\n background-color: #E8F5E9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-green .mdui-color-theme-100 {\n background-color: #C8E6C9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-green .mdui-color-theme-200 {\n background-color: #A5D6A7 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-green .mdui-color-theme-300 {\n background-color: #81C784 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-green .mdui-color-theme-400 {\n background-color: #66BB6A !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-green .mdui-color-theme-500 {\n background-color: #4CAF50 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-green .mdui-color-theme-600 {\n background-color: #43A047 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-green .mdui-color-theme-700 {\n background-color: #388E3C !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-green .mdui-color-theme-800 {\n background-color: #2E7D32 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-green .mdui-color-theme-900 {\n background-color: #1B5E20 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-grey .mdui-color-theme {\n background-color: #9E9E9E !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-grey .mdui-color-theme-50 {\n background-color: #FAFAFA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-grey .mdui-color-theme-100 {\n background-color: #F5F5F5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-grey .mdui-color-theme-200 {\n background-color: #EEEEEE !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-grey .mdui-color-theme-300 {\n background-color: #E0E0E0 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-grey .mdui-color-theme-400 {\n background-color: #BDBDBD !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-grey .mdui-color-theme-500 {\n background-color: #9E9E9E !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-grey .mdui-color-theme-600 {\n background-color: #757575 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-grey .mdui-color-theme-700 {\n background-color: #616161 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-grey .mdui-color-theme-800 {\n background-color: #424242 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-grey .mdui-color-theme-900 {\n background-color: #212121 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-indigo .mdui-color-theme {\n background-color: #3F51B5 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-indigo .mdui-color-theme-50 {\n background-color: #E8EAF6 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-indigo .mdui-color-theme-100 {\n background-color: #C5CAE9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-indigo .mdui-color-theme-200 {\n background-color: #9FA8DA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-indigo .mdui-color-theme-300 {\n background-color: #7986CB !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-indigo .mdui-color-theme-400 {\n background-color: #5C6BC0 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-indigo .mdui-color-theme-500 {\n background-color: #3F51B5 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-indigo .mdui-color-theme-600 {\n background-color: #3949AB !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-indigo .mdui-color-theme-700 {\n background-color: #303F9F !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-indigo .mdui-color-theme-800 {\n background-color: #283593 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-indigo .mdui-color-theme-900 {\n background-color: #1A237E !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-light-blue .mdui-color-theme {\n background-color: #03A9F4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-blue .mdui-color-theme-50 {\n background-color: #E1F5FE !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-blue .mdui-color-theme-100 {\n background-color: #B3E5FC !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-blue .mdui-color-theme-200 {\n background-color: #81D4FA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-blue .mdui-color-theme-300 {\n background-color: #4FC3F7 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-blue .mdui-color-theme-400 {\n background-color: #29B6F6 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-blue .mdui-color-theme-500 {\n background-color: #03A9F4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-blue .mdui-color-theme-600 {\n background-color: #039BE5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-blue .mdui-color-theme-700 {\n background-color: #0288D1 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-light-blue .mdui-color-theme-800 {\n background-color: #0277BD !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-light-blue .mdui-color-theme-900 {\n background-color: #01579B !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-light-green .mdui-color-theme {\n background-color: #8BC34A !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-green .mdui-color-theme-50 {\n background-color: #F1F8E9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-green .mdui-color-theme-100 {\n background-color: #DCEDC8 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-green .mdui-color-theme-200 {\n background-color: #C5E1A5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-green .mdui-color-theme-300 {\n background-color: #AED581 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-green .mdui-color-theme-400 {\n background-color: #9CCC65 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-green .mdui-color-theme-500 {\n background-color: #8BC34A !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-green .mdui-color-theme-600 {\n background-color: #7CB342 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-green .mdui-color-theme-700 {\n background-color: #689F38 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-green .mdui-color-theme-800 {\n background-color: #558B2F !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-light-green .mdui-color-theme-900 {\n background-color: #33691E !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-lime .mdui-color-theme {\n background-color: #CDDC39 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-lime .mdui-color-theme-50 {\n background-color: #F9FBE7 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-lime .mdui-color-theme-100 {\n background-color: #F0F4C3 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-lime .mdui-color-theme-200 {\n background-color: #E6EE9C !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-lime .mdui-color-theme-300 {\n background-color: #DCE775 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-lime .mdui-color-theme-400 {\n background-color: #D4E157 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-lime .mdui-color-theme-500 {\n background-color: #CDDC39 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-lime .mdui-color-theme-600 {\n background-color: #C0CA33 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-lime .mdui-color-theme-700 {\n background-color: #AFB42B !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-lime .mdui-color-theme-800 {\n background-color: #9E9D24 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-lime .mdui-color-theme-900 {\n background-color: #827717 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-orange .mdui-color-theme {\n background-color: #FF9800 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-orange .mdui-color-theme-50 {\n background-color: #FFF3E0 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-orange .mdui-color-theme-100 {\n background-color: #FFE0B2 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-orange .mdui-color-theme-200 {\n background-color: #FFCC80 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-orange .mdui-color-theme-300 {\n background-color: #FFB74D !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-orange .mdui-color-theme-400 {\n background-color: #FFA726 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-orange .mdui-color-theme-500 {\n background-color: #FF9800 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-orange .mdui-color-theme-600 {\n background-color: #FB8C00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-orange .mdui-color-theme-700 {\n background-color: #F57C00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-orange .mdui-color-theme-800 {\n background-color: #EF6C00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-orange .mdui-color-theme-900 {\n background-color: #E65100 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-pink .mdui-color-theme {\n background-color: #E91E63 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-pink .mdui-color-theme-50 {\n background-color: #FCE4EC !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-pink .mdui-color-theme-100 {\n background-color: #F8BBD0 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-pink .mdui-color-theme-200 {\n background-color: #F48FB1 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-pink .mdui-color-theme-300 {\n background-color: #F06292 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-pink .mdui-color-theme-400 {\n background-color: #EC407A !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-pink .mdui-color-theme-500 {\n background-color: #E91E63 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-pink .mdui-color-theme-600 {\n background-color: #D81B60 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-pink .mdui-color-theme-700 {\n background-color: #C2185B !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-pink .mdui-color-theme-800 {\n background-color: #AD1457 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-pink .mdui-color-theme-900 {\n background-color: #880E4F !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-purple .mdui-color-theme {\n background-color: #9C27B0 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-purple .mdui-color-theme-50 {\n background-color: #F3E5F5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-purple .mdui-color-theme-100 {\n background-color: #E1BEE7 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-purple .mdui-color-theme-200 {\n background-color: #CE93D8 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-purple .mdui-color-theme-300 {\n background-color: #BA68C8 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-purple .mdui-color-theme-400 {\n background-color: #AB47BC !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-purple .mdui-color-theme-500 {\n background-color: #9C27B0 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-purple .mdui-color-theme-600 {\n background-color: #8E24AA !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-purple .mdui-color-theme-700 {\n background-color: #7B1FA2 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-purple .mdui-color-theme-800 {\n background-color: #6A1B9A !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-purple .mdui-color-theme-900 {\n background-color: #4A148C !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-red .mdui-color-theme {\n background-color: #F44336 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-red .mdui-color-theme-50 {\n background-color: #FFEBEE !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-red .mdui-color-theme-100 {\n background-color: #FFCDD2 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-red .mdui-color-theme-200 {\n background-color: #EF9A9A !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-red .mdui-color-theme-300 {\n background-color: #E57373 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-red .mdui-color-theme-400 {\n background-color: #EF5350 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-red .mdui-color-theme-500 {\n background-color: #F44336 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-red .mdui-color-theme-600 {\n background-color: #E53935 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-red .mdui-color-theme-700 {\n background-color: #D32F2F !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-red .mdui-color-theme-800 {\n background-color: #C62828 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-red .mdui-color-theme-900 {\n background-color: #B71C1C !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-teal .mdui-color-theme {\n background-color: #009688 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-teal .mdui-color-theme-50 {\n background-color: #E0F2F1 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-teal .mdui-color-theme-100 {\n background-color: #B2DFDB !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-teal .mdui-color-theme-200 {\n background-color: #80CBC4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-teal .mdui-color-theme-300 {\n background-color: #4DB6AC !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-teal .mdui-color-theme-400 {\n background-color: #26A69A !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-teal .mdui-color-theme-500 {\n background-color: #009688 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-teal .mdui-color-theme-600 {\n background-color: #00897B !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-teal .mdui-color-theme-700 {\n background-color: #00796B !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-teal .mdui-color-theme-800 {\n background-color: #00695C !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-teal .mdui-color-theme-900 {\n background-color: #004D40 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-yellow .mdui-color-theme {\n background-color: #FFEB3B !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-yellow .mdui-color-theme-50 {\n background-color: #FFFDE7 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-yellow .mdui-color-theme-100 {\n background-color: #FFF9C4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-yellow .mdui-color-theme-200 {\n background-color: #FFF59D !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-yellow .mdui-color-theme-300 {\n background-color: #FFF176 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-yellow .mdui-color-theme-400 {\n background-color: #FFEE58 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-yellow .mdui-color-theme-500 {\n background-color: #FFEB3B !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-yellow .mdui-color-theme-600 {\n background-color: #FDD835 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-yellow .mdui-color-theme-700 {\n background-color: #FBC02D !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-yellow .mdui-color-theme-800 {\n background-color: #F9A825 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-yellow .mdui-color-theme-900 {\n background-color: #F57F17 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n/**\n * .mdui-theme-accent-[color] .mdui-color-theme-accent\n * .mdui-theme-accent-[color] .mdui-color-theme-[degree]\n */\n.mdui-theme-accent-amber .mdui-color-theme-accent {\n background-color: #FFD740 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-amber .mdui-color-theme-a100 {\n background-color: #FFE57F !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-amber .mdui-color-theme-a200 {\n background-color: #FFD740 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-amber .mdui-color-theme-a400 {\n background-color: #FFC400 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-amber .mdui-color-theme-a700 {\n background-color: #FFAB00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-blue .mdui-color-theme-accent {\n background-color: #448AFF !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-blue .mdui-color-theme-a100 {\n background-color: #82B1FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-blue .mdui-color-theme-a200 {\n background-color: #448AFF !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-blue .mdui-color-theme-a400 {\n background-color: #2979FF !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-blue .mdui-color-theme-a700 {\n background-color: #2962FF !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-cyan .mdui-color-theme-accent {\n background-color: #18FFFF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-cyan .mdui-color-theme-a100 {\n background-color: #84FFFF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-cyan .mdui-color-theme-a200 {\n background-color: #18FFFF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-cyan .mdui-color-theme-a400 {\n background-color: #00E5FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-cyan .mdui-color-theme-a700 {\n background-color: #00B8D4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-deep-orange .mdui-color-theme-accent {\n background-color: #FF6E40 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-deep-orange .mdui-color-theme-a100 {\n background-color: #FF9E80 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-deep-orange .mdui-color-theme-a200 {\n background-color: #FF6E40 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-deep-orange .mdui-color-theme-a400 {\n background-color: #FF3D00 !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-deep-orange .mdui-color-theme-a700 {\n background-color: #DD2C00 !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-deep-purple .mdui-color-theme-accent {\n background-color: #7C4DFF !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-deep-purple .mdui-color-theme-a100 {\n background-color: #B388FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-deep-purple .mdui-color-theme-a200 {\n background-color: #7C4DFF !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-deep-purple .mdui-color-theme-a400 {\n background-color: #651FFF !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-deep-purple .mdui-color-theme-a700 {\n background-color: #6200EA !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-green .mdui-color-theme-accent {\n background-color: #69F0AE !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-green .mdui-color-theme-a100 {\n background-color: #B9F6CA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-green .mdui-color-theme-a200 {\n background-color: #69F0AE !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-green .mdui-color-theme-a400 {\n background-color: #00E676 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-green .mdui-color-theme-a700 {\n background-color: #00C853 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-indigo .mdui-color-theme-accent {\n background-color: #536DFE !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-indigo .mdui-color-theme-a100 {\n background-color: #8C9EFF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-indigo .mdui-color-theme-a200 {\n background-color: #536DFE !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-indigo .mdui-color-theme-a400 {\n background-color: #3D5AFE !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-indigo .mdui-color-theme-a700 {\n background-color: #304FFE !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-light-blue .mdui-color-theme-accent {\n background-color: #40C4FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-light-blue .mdui-color-theme-a100 {\n background-color: #80D8FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-light-blue .mdui-color-theme-a200 {\n background-color: #40C4FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-light-blue .mdui-color-theme-a400 {\n background-color: #00B0FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-light-blue .mdui-color-theme-a700 {\n background-color: #0091EA !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-light-green .mdui-color-theme-accent {\n background-color: #B2FF59 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-light-green .mdui-color-theme-a100 {\n background-color: #CCFF90 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-light-green .mdui-color-theme-a200 {\n background-color: #B2FF59 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-light-green .mdui-color-theme-a400 {\n background-color: #76FF03 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-light-green .mdui-color-theme-a700 {\n background-color: #64DD17 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-lime .mdui-color-theme-accent {\n background-color: #EEFF41 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-lime .mdui-color-theme-a100 {\n background-color: #F4FF81 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-lime .mdui-color-theme-a200 {\n background-color: #EEFF41 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-lime .mdui-color-theme-a400 {\n background-color: #C6FF00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-lime .mdui-color-theme-a700 {\n background-color: #AEEA00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-orange .mdui-color-theme-accent {\n background-color: #FFAB40 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-orange .mdui-color-theme-a100 {\n background-color: #FFD180 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-orange .mdui-color-theme-a200 {\n background-color: #FFAB40 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-orange .mdui-color-theme-a400 {\n background-color: #FF9100 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-orange .mdui-color-theme-a700 {\n background-color: #FF6D00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-pink .mdui-color-theme-accent {\n background-color: #FF4081 !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-pink .mdui-color-theme-a100 {\n background-color: #FF80AB !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-pink .mdui-color-theme-a200 {\n background-color: #FF4081 !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-pink .mdui-color-theme-a400 {\n background-color: #F50057 !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-pink .mdui-color-theme-a700 {\n background-color: #C51162 !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-purple .mdui-color-theme-accent {\n background-color: #E040FB !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-purple .mdui-color-theme-a100 {\n background-color: #EA80FC !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-purple .mdui-color-theme-a200 {\n background-color: #E040FB !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-purple .mdui-color-theme-a400 {\n background-color: #D500F9 !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-purple .mdui-color-theme-a700 {\n background-color: #AA00FF !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-red .mdui-color-theme-accent {\n background-color: #FF5252 !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-red .mdui-color-theme-a100 {\n background-color: #FF8A80 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-red .mdui-color-theme-a200 {\n background-color: #FF5252 !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-red .mdui-color-theme-a400 {\n background-color: #FF1744 !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-red .mdui-color-theme-a700 {\n background-color: #D50000 !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-teal .mdui-color-theme-accent {\n background-color: #64FFDA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-teal .mdui-color-theme-a100 {\n background-color: #A7FFEB !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-teal .mdui-color-theme-a200 {\n background-color: #64FFDA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-teal .mdui-color-theme-a400 {\n background-color: #1DE9B6 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-teal .mdui-color-theme-a700 {\n background-color: #00BFA5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-yellow .mdui-color-theme-accent {\n background-color: #FFFF00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-yellow .mdui-color-theme-a100 {\n background-color: #FFFF8D !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-yellow .mdui-color-theme-a200 {\n background-color: #FFFF00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-yellow .mdui-color-theme-a400 {\n background-color: #FFEA00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-yellow .mdui-color-theme-a700 {\n background-color: #FFD600 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n/**\n * .mdui-color-[color]\n * .mdui-color-[color]-[degree]\n */\n.mdui-color-amber {\n background-color: #FFC107 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-50 {\n background-color: #FFF8E1 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-100 {\n background-color: #FFECB3 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-200 {\n background-color: #FFE082 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-300 {\n background-color: #FFD54F !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-400 {\n background-color: #FFCA28 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-500 {\n background-color: #FFC107 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-600 {\n background-color: #FFB300 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-700 {\n background-color: #FFA000 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-800 {\n background-color: #FF8F00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-900 {\n background-color: #FF6F00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue {\n background-color: #2196F3 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue-50 {\n background-color: #E3F2FD !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue-100 {\n background-color: #BBDEFB !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue-200 {\n background-color: #90CAF9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue-300 {\n background-color: #64B5F6 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue-400 {\n background-color: #42A5F5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue-500 {\n background-color: #2196F3 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue-600 {\n background-color: #1E88E5 !important;\n color: #ffffff !important;\n}\n.mdui-color-blue-700 {\n background-color: #1976D2 !important;\n color: #ffffff !important;\n}\n.mdui-color-blue-800 {\n background-color: #1565C0 !important;\n color: #ffffff !important;\n}\n.mdui-color-blue-900 {\n background-color: #0D47A1 !important;\n color: #ffffff !important;\n}\n.mdui-color-blue-grey {\n background-color: #607D8B !important;\n color: #ffffff !important;\n}\n.mdui-color-blue-grey-50 {\n background-color: #ECEFF1 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue-grey-100 {\n background-color: #CFD8DC !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue-grey-200 {\n background-color: #B0BEC5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue-grey-300 {\n background-color: #90A4AE !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue-grey-400 {\n background-color: #78909C !important;\n color: #ffffff !important;\n}\n.mdui-color-blue-grey-500 {\n background-color: #607D8B !important;\n color: #ffffff !important;\n}\n.mdui-color-blue-grey-600 {\n background-color: #546E7A !important;\n color: #ffffff !important;\n}\n.mdui-color-blue-grey-700 {\n background-color: #455A64 !important;\n color: #ffffff !important;\n}\n.mdui-color-blue-grey-800 {\n background-color: #37474F !important;\n color: #ffffff !important;\n}\n.mdui-color-blue-grey-900 {\n background-color: #263238 !important;\n color: #ffffff !important;\n}\n.mdui-color-brown {\n background-color: #795548 !important;\n color: #ffffff !important;\n}\n.mdui-color-brown-50 {\n background-color: #EFEBE9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-brown-100 {\n background-color: #D7CCC8 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-brown-200 {\n background-color: #BCAAA4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-brown-300 {\n background-color: #A1887F !important;\n color: #ffffff !important;\n}\n.mdui-color-brown-400 {\n background-color: #8D6E63 !important;\n color: #ffffff !important;\n}\n.mdui-color-brown-500 {\n background-color: #795548 !important;\n color: #ffffff !important;\n}\n.mdui-color-brown-600 {\n background-color: #6D4C41 !important;\n color: #ffffff !important;\n}\n.mdui-color-brown-700 {\n background-color: #5D4037 !important;\n color: #ffffff !important;\n}\n.mdui-color-brown-800 {\n background-color: #4E342E !important;\n color: #ffffff !important;\n}\n.mdui-color-brown-900 {\n background-color: #3E2723 !important;\n color: #ffffff !important;\n}\n.mdui-color-cyan {\n background-color: #00BCD4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-cyan-50 {\n background-color: #E0F7FA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-cyan-100 {\n background-color: #B2EBF2 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-cyan-200 {\n background-color: #80DEEA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-cyan-300 {\n background-color: #4DD0E1 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-cyan-400 {\n background-color: #26C6DA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-cyan-500 {\n background-color: #00BCD4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-cyan-600 {\n background-color: #00ACC1 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-cyan-700 {\n background-color: #0097A7 !important;\n color: #ffffff !important;\n}\n.mdui-color-cyan-800 {\n background-color: #00838F !important;\n color: #ffffff !important;\n}\n.mdui-color-cyan-900 {\n background-color: #006064 !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-orange {\n background-color: #FF5722 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-orange-50 {\n background-color: #FBE9E7 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-orange-100 {\n background-color: #FFCCBC !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-orange-200 {\n background-color: #FFAB91 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-orange-300 {\n background-color: #FF8A65 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-orange-400 {\n background-color: #FF7043 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-orange-500 {\n background-color: #FF5722 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-orange-600 {\n background-color: #F4511E !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-orange-700 {\n background-color: #E64A19 !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-orange-800 {\n background-color: #D84315 !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-orange-900 {\n background-color: #BF360C !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-purple {\n background-color: #673AB7 !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-purple-50 {\n background-color: #EDE7F6 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-purple-100 {\n background-color: #D1C4E9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-purple-200 {\n background-color: #B39DDB !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-purple-300 {\n background-color: #9575CD !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-purple-400 {\n background-color: #7E57C2 !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-purple-500 {\n background-color: #673AB7 !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-purple-600 {\n background-color: #5E35B1 !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-purple-700 {\n background-color: #512DA8 !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-purple-800 {\n background-color: #4527A0 !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-purple-900 {\n background-color: #311B92 !important;\n color: #ffffff !important;\n}\n.mdui-color-green {\n background-color: #4CAF50 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-green-50 {\n background-color: #E8F5E9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-green-100 {\n background-color: #C8E6C9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-green-200 {\n background-color: #A5D6A7 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-green-300 {\n background-color: #81C784 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-green-400 {\n background-color: #66BB6A !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-green-500 {\n background-color: #4CAF50 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-green-600 {\n background-color: #43A047 !important;\n color: #ffffff !important;\n}\n.mdui-color-green-700 {\n background-color: #388E3C !important;\n color: #ffffff !important;\n}\n.mdui-color-green-800 {\n background-color: #2E7D32 !important;\n color: #ffffff !important;\n}\n.mdui-color-green-900 {\n background-color: #1B5E20 !important;\n color: #ffffff !important;\n}\n.mdui-color-grey {\n background-color: #9E9E9E !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-grey-50 {\n background-color: #FAFAFA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-grey-100 {\n background-color: #F5F5F5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-grey-200 {\n background-color: #EEEEEE !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-grey-300 {\n background-color: #E0E0E0 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-grey-400 {\n background-color: #BDBDBD !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-grey-500 {\n background-color: #9E9E9E !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-grey-600 {\n background-color: #757575 !important;\n color: #ffffff !important;\n}\n.mdui-color-grey-700 {\n background-color: #616161 !important;\n color: #ffffff !important;\n}\n.mdui-color-grey-800 {\n background-color: #424242 !important;\n color: #ffffff !important;\n}\n.mdui-color-grey-900 {\n background-color: #212121 !important;\n color: #ffffff !important;\n}\n.mdui-color-indigo {\n background-color: #3F51B5 !important;\n color: #ffffff !important;\n}\n.mdui-color-indigo-50 {\n background-color: #E8EAF6 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-indigo-100 {\n background-color: #C5CAE9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-indigo-200 {\n background-color: #9FA8DA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-indigo-300 {\n background-color: #7986CB !important;\n color: #ffffff !important;\n}\n.mdui-color-indigo-400 {\n background-color: #5C6BC0 !important;\n color: #ffffff !important;\n}\n.mdui-color-indigo-500 {\n background-color: #3F51B5 !important;\n color: #ffffff !important;\n}\n.mdui-color-indigo-600 {\n background-color: #3949AB !important;\n color: #ffffff !important;\n}\n.mdui-color-indigo-700 {\n background-color: #303F9F !important;\n color: #ffffff !important;\n}\n.mdui-color-indigo-800 {\n background-color: #283593 !important;\n color: #ffffff !important;\n}\n.mdui-color-indigo-900 {\n background-color: #1A237E !important;\n color: #ffffff !important;\n}\n.mdui-color-light-blue {\n background-color: #03A9F4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-blue-50 {\n background-color: #E1F5FE !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-blue-100 {\n background-color: #B3E5FC !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-blue-200 {\n background-color: #81D4FA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-blue-300 {\n background-color: #4FC3F7 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-blue-400 {\n background-color: #29B6F6 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-blue-500 {\n background-color: #03A9F4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-blue-600 {\n background-color: #039BE5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-blue-700 {\n background-color: #0288D1 !important;\n color: #ffffff !important;\n}\n.mdui-color-light-blue-800 {\n background-color: #0277BD !important;\n color: #ffffff !important;\n}\n.mdui-color-light-blue-900 {\n background-color: #01579B !important;\n color: #ffffff !important;\n}\n.mdui-color-light-green {\n background-color: #8BC34A !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-green-50 {\n background-color: #F1F8E9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-green-100 {\n background-color: #DCEDC8 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-green-200 {\n background-color: #C5E1A5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-green-300 {\n background-color: #AED581 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-green-400 {\n background-color: #9CCC65 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-green-500 {\n background-color: #8BC34A !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-green-600 {\n background-color: #7CB342 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-green-700 {\n background-color: #689F38 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-green-800 {\n background-color: #558B2F !important;\n color: #ffffff !important;\n}\n.mdui-color-light-green-900 {\n background-color: #33691E !important;\n color: #ffffff !important;\n}\n.mdui-color-lime {\n background-color: #CDDC39 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-50 {\n background-color: #F9FBE7 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-100 {\n background-color: #F0F4C3 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-200 {\n background-color: #E6EE9C !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-300 {\n background-color: #DCE775 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-400 {\n background-color: #D4E157 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-500 {\n background-color: #CDDC39 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-600 {\n background-color: #C0CA33 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-700 {\n background-color: #AFB42B !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-800 {\n background-color: #9E9D24 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-900 {\n background-color: #827717 !important;\n color: #ffffff !important;\n}\n.mdui-color-orange {\n background-color: #FF9800 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-50 {\n background-color: #FFF3E0 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-100 {\n background-color: #FFE0B2 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-200 {\n background-color: #FFCC80 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-300 {\n background-color: #FFB74D !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-400 {\n background-color: #FFA726 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-500 {\n background-color: #FF9800 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-600 {\n background-color: #FB8C00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-700 {\n background-color: #F57C00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-800 {\n background-color: #EF6C00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-900 {\n background-color: #E65100 !important;\n color: #ffffff !important;\n}\n.mdui-color-pink {\n background-color: #E91E63 !important;\n color: #ffffff !important;\n}\n.mdui-color-pink-50 {\n background-color: #FCE4EC !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-pink-100 {\n background-color: #F8BBD0 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-pink-200 {\n background-color: #F48FB1 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-pink-300 {\n background-color: #F06292 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-pink-400 {\n background-color: #EC407A !important;\n color: #ffffff !important;\n}\n.mdui-color-pink-500 {\n background-color: #E91E63 !important;\n color: #ffffff !important;\n}\n.mdui-color-pink-600 {\n background-color: #D81B60 !important;\n color: #ffffff !important;\n}\n.mdui-color-pink-700 {\n background-color: #C2185B !important;\n color: #ffffff !important;\n}\n.mdui-color-pink-800 {\n background-color: #AD1457 !important;\n color: #ffffff !important;\n}\n.mdui-color-pink-900 {\n background-color: #880E4F !important;\n color: #ffffff !important;\n}\n.mdui-color-purple {\n background-color: #9C27B0 !important;\n color: #ffffff !important;\n}\n.mdui-color-purple-50 {\n background-color: #F3E5F5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-purple-100 {\n background-color: #E1BEE7 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-purple-200 {\n background-color: #CE93D8 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-purple-300 {\n background-color: #BA68C8 !important;\n color: #ffffff !important;\n}\n.mdui-color-purple-400 {\n background-color: #AB47BC !important;\n color: #ffffff !important;\n}\n.mdui-color-purple-500 {\n background-color: #9C27B0 !important;\n color: #ffffff !important;\n}\n.mdui-color-purple-600 {\n background-color: #8E24AA !important;\n color: #ffffff !important;\n}\n.mdui-color-purple-700 {\n background-color: #7B1FA2 !important;\n color: #ffffff !important;\n}\n.mdui-color-purple-800 {\n background-color: #6A1B9A !important;\n color: #ffffff !important;\n}\n.mdui-color-purple-900 {\n background-color: #4A148C !important;\n color: #ffffff !important;\n}\n.mdui-color-red {\n background-color: #F44336 !important;\n color: #ffffff !important;\n}\n.mdui-color-red-50 {\n background-color: #FFEBEE !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-red-100 {\n background-color: #FFCDD2 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-red-200 {\n background-color: #EF9A9A !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-red-300 {\n background-color: #E57373 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-red-400 {\n background-color: #EF5350 !important;\n color: #ffffff !important;\n}\n.mdui-color-red-500 {\n background-color: #F44336 !important;\n color: #ffffff !important;\n}\n.mdui-color-red-600 {\n background-color: #E53935 !important;\n color: #ffffff !important;\n}\n.mdui-color-red-700 {\n background-color: #D32F2F !important;\n color: #ffffff !important;\n}\n.mdui-color-red-800 {\n background-color: #C62828 !important;\n color: #ffffff !important;\n}\n.mdui-color-red-900 {\n background-color: #B71C1C !important;\n color: #ffffff !important;\n}\n.mdui-color-teal {\n background-color: #009688 !important;\n color: #ffffff !important;\n}\n.mdui-color-teal-50 {\n background-color: #E0F2F1 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-teal-100 {\n background-color: #B2DFDB !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-teal-200 {\n background-color: #80CBC4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-teal-300 {\n background-color: #4DB6AC !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-teal-400 {\n background-color: #26A69A !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-teal-500 {\n background-color: #009688 !important;\n color: #ffffff !important;\n}\n.mdui-color-teal-600 {\n background-color: #00897B !important;\n color: #ffffff !important;\n}\n.mdui-color-teal-700 {\n background-color: #00796B !important;\n color: #ffffff !important;\n}\n.mdui-color-teal-800 {\n background-color: #00695C !important;\n color: #ffffff !important;\n}\n.mdui-color-teal-900 {\n background-color: #004D40 !important;\n color: #ffffff !important;\n}\n.mdui-color-yellow {\n background-color: #FFEB3B !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-50 {\n background-color: #FFFDE7 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-100 {\n background-color: #FFF9C4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-200 {\n background-color: #FFF59D !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-300 {\n background-color: #FFF176 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-400 {\n background-color: #FFEE58 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-500 {\n background-color: #FFEB3B !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-600 {\n background-color: #FDD835 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-700 {\n background-color: #FBC02D !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-800 {\n background-color: #F9A825 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-900 {\n background-color: #F57F17 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n/**\n * .mdui-color-[color]-accent\n * .mdui-color-[color]-[degree]\n */\n.mdui-color-amber-accent {\n background-color: #FFD740 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-a100 {\n background-color: #FFE57F !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-a200 {\n background-color: #FFD740 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-a400 {\n background-color: #FFC400 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-a700 {\n background-color: #FFAB00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue-accent {\n background-color: #448AFF !important;\n color: #ffffff !important;\n}\n.mdui-color-blue-a100 {\n background-color: #82B1FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue-a200 {\n background-color: #448AFF !important;\n color: #ffffff !important;\n}\n.mdui-color-blue-a400 {\n background-color: #2979FF !important;\n color: #ffffff !important;\n}\n.mdui-color-blue-a700 {\n background-color: #2962FF !important;\n color: #ffffff !important;\n}\n.mdui-color-cyan-accent {\n background-color: #18FFFF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-cyan-a100 {\n background-color: #84FFFF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-cyan-a200 {\n background-color: #18FFFF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-cyan-a400 {\n background-color: #00E5FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-cyan-a700 {\n background-color: #00B8D4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-orange-accent {\n background-color: #FF6E40 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-orange-a100 {\n background-color: #FF9E80 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-orange-a200 {\n background-color: #FF6E40 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-orange-a400 {\n background-color: #FF3D00 !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-orange-a700 {\n background-color: #DD2C00 !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-purple-accent {\n background-color: #7C4DFF !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-purple-a100 {\n background-color: #B388FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-purple-a200 {\n background-color: #7C4DFF !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-purple-a400 {\n background-color: #651FFF !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-purple-a700 {\n background-color: #6200EA !important;\n color: #ffffff !important;\n}\n.mdui-color-green-accent {\n background-color: #69F0AE !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-green-a100 {\n background-color: #B9F6CA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-green-a200 {\n background-color: #69F0AE !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-green-a400 {\n background-color: #00E676 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-green-a700 {\n background-color: #00C853 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-indigo-accent {\n background-color: #536DFE !important;\n color: #ffffff !important;\n}\n.mdui-color-indigo-a100 {\n background-color: #8C9EFF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-indigo-a200 {\n background-color: #536DFE !important;\n color: #ffffff !important;\n}\n.mdui-color-indigo-a400 {\n background-color: #3D5AFE !important;\n color: #ffffff !important;\n}\n.mdui-color-indigo-a700 {\n background-color: #304FFE !important;\n color: #ffffff !important;\n}\n.mdui-color-light-blue-accent {\n background-color: #40C4FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-blue-a100 {\n background-color: #80D8FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-blue-a200 {\n background-color: #40C4FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-blue-a400 {\n background-color: #00B0FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-blue-a700 {\n background-color: #0091EA !important;\n color: #ffffff !important;\n}\n.mdui-color-light-green-accent {\n background-color: #B2FF59 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-green-a100 {\n background-color: #CCFF90 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-green-a200 {\n background-color: #B2FF59 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-green-a400 {\n background-color: #76FF03 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-green-a700 {\n background-color: #64DD17 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-accent {\n background-color: #EEFF41 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-a100 {\n background-color: #F4FF81 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-a200 {\n background-color: #EEFF41 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-a400 {\n background-color: #C6FF00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-a700 {\n background-color: #AEEA00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-accent {\n background-color: #FFAB40 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-a100 {\n background-color: #FFD180 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-a200 {\n background-color: #FFAB40 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-a400 {\n background-color: #FF9100 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-a700 {\n background-color: #FF6D00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-pink-accent {\n background-color: #FF4081 !important;\n color: #ffffff !important;\n}\n.mdui-color-pink-a100 {\n background-color: #FF80AB !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-pink-a200 {\n background-color: #FF4081 !important;\n color: #ffffff !important;\n}\n.mdui-color-pink-a400 {\n background-color: #F50057 !important;\n color: #ffffff !important;\n}\n.mdui-color-pink-a700 {\n background-color: #C51162 !important;\n color: #ffffff !important;\n}\n.mdui-color-purple-accent {\n background-color: #E040FB !important;\n color: #ffffff !important;\n}\n.mdui-color-purple-a100 {\n background-color: #EA80FC !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-purple-a200 {\n background-color: #E040FB !important;\n color: #ffffff !important;\n}\n.mdui-color-purple-a400 {\n background-color: #D500F9 !important;\n color: #ffffff !important;\n}\n.mdui-color-purple-a700 {\n background-color: #AA00FF !important;\n color: #ffffff !important;\n}\n.mdui-color-red-accent {\n background-color: #FF5252 !important;\n color: #ffffff !important;\n}\n.mdui-color-red-a100 {\n background-color: #FF8A80 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-red-a200 {\n background-color: #FF5252 !important;\n color: #ffffff !important;\n}\n.mdui-color-red-a400 {\n background-color: #FF1744 !important;\n color: #ffffff !important;\n}\n.mdui-color-red-a700 {\n background-color: #D50000 !important;\n color: #ffffff !important;\n}\n.mdui-color-teal-accent {\n background-color: #64FFDA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-teal-a100 {\n background-color: #A7FFEB !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-teal-a200 {\n background-color: #64FFDA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-teal-a400 {\n background-color: #1DE9B6 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-teal-a700 {\n background-color: #00BFA5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-accent {\n background-color: #FFFF00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-a100 {\n background-color: #FFFF8D !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-a200 {\n background-color: #FFFF00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-a400 {\n background-color: #FFEA00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-a700 {\n background-color: #FFD600 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n/**\n * .mdui-color-black\n * .mdui-color-white\n * .mdui-color-transparent\n */\n.mdui-color-black {\n color: #ffffff !important;\n background-color: #000000 !important;\n}\n.mdui-color-white {\n color: rgba(0, 0, 0, 0.87) !important;\n background-color: #FFFFFF !important;\n}\n.mdui-color-transparent {\n background-color: transparent !important;\n}\n/**\n * .mdui-theme-primary-[color] .mdui-text-color-theme\n * .mdui-theme-primary-[color] .mdui-text-color-theme-[degree]\n */\n.mdui-theme-primary-amber .mdui-text-color-theme {\n color: #FFC107 !important;\n}\n.mdui-theme-primary-amber .mdui-text-color-theme-50 {\n color: #FFF8E1 !important;\n}\n.mdui-theme-primary-amber .mdui-text-color-theme-100 {\n color: #FFECB3 !important;\n}\n.mdui-theme-primary-amber .mdui-text-color-theme-200 {\n color: #FFE082 !important;\n}\n.mdui-theme-primary-amber .mdui-text-color-theme-300 {\n color: #FFD54F !important;\n}\n.mdui-theme-primary-amber .mdui-text-color-theme-400 {\n color: #FFCA28 !important;\n}\n.mdui-theme-primary-amber .mdui-text-color-theme-500 {\n color: #FFC107 !important;\n}\n.mdui-theme-primary-amber .mdui-text-color-theme-600 {\n color: #FFB300 !important;\n}\n.mdui-theme-primary-amber .mdui-text-color-theme-700 {\n color: #FFA000 !important;\n}\n.mdui-theme-primary-amber .mdui-text-color-theme-800 {\n color: #FF8F00 !important;\n}\n.mdui-theme-primary-amber .mdui-text-color-theme-900 {\n color: #FF6F00 !important;\n}\n.mdui-theme-primary-blue .mdui-text-color-theme {\n color: #2196F3 !important;\n}\n.mdui-theme-primary-blue .mdui-text-color-theme-50 {\n color: #E3F2FD !important;\n}\n.mdui-theme-primary-blue .mdui-text-color-theme-100 {\n color: #BBDEFB !important;\n}\n.mdui-theme-primary-blue .mdui-text-color-theme-200 {\n color: #90CAF9 !important;\n}\n.mdui-theme-primary-blue .mdui-text-color-theme-300 {\n color: #64B5F6 !important;\n}\n.mdui-theme-primary-blue .mdui-text-color-theme-400 {\n color: #42A5F5 !important;\n}\n.mdui-theme-primary-blue .mdui-text-color-theme-500 {\n color: #2196F3 !important;\n}\n.mdui-theme-primary-blue .mdui-text-color-theme-600 {\n color: #1E88E5 !important;\n}\n.mdui-theme-primary-blue .mdui-text-color-theme-700 {\n color: #1976D2 !important;\n}\n.mdui-theme-primary-blue .mdui-text-color-theme-800 {\n color: #1565C0 !important;\n}\n.mdui-theme-primary-blue .mdui-text-color-theme-900 {\n color: #0D47A1 !important;\n}\n.mdui-theme-primary-blue-grey .mdui-text-color-theme {\n color: #607D8B !important;\n}\n.mdui-theme-primary-blue-grey .mdui-text-color-theme-50 {\n color: #ECEFF1 !important;\n}\n.mdui-theme-primary-blue-grey .mdui-text-color-theme-100 {\n color: #CFD8DC !important;\n}\n.mdui-theme-primary-blue-grey .mdui-text-color-theme-200 {\n color: #B0BEC5 !important;\n}\n.mdui-theme-primary-blue-grey .mdui-text-color-theme-300 {\n color: #90A4AE !important;\n}\n.mdui-theme-primary-blue-grey .mdui-text-color-theme-400 {\n color: #78909C !important;\n}\n.mdui-theme-primary-blue-grey .mdui-text-color-theme-500 {\n color: #607D8B !important;\n}\n.mdui-theme-primary-blue-grey .mdui-text-color-theme-600 {\n color: #546E7A !important;\n}\n.mdui-theme-primary-blue-grey .mdui-text-color-theme-700 {\n color: #455A64 !important;\n}\n.mdui-theme-primary-blue-grey .mdui-text-color-theme-800 {\n color: #37474F !important;\n}\n.mdui-theme-primary-blue-grey .mdui-text-color-theme-900 {\n color: #263238 !important;\n}\n.mdui-theme-primary-brown .mdui-text-color-theme {\n color: #795548 !important;\n}\n.mdui-theme-primary-brown .mdui-text-color-theme-50 {\n color: #EFEBE9 !important;\n}\n.mdui-theme-primary-brown .mdui-text-color-theme-100 {\n color: #D7CCC8 !important;\n}\n.mdui-theme-primary-brown .mdui-text-color-theme-200 {\n color: #BCAAA4 !important;\n}\n.mdui-theme-primary-brown .mdui-text-color-theme-300 {\n color: #A1887F !important;\n}\n.mdui-theme-primary-brown .mdui-text-color-theme-400 {\n color: #8D6E63 !important;\n}\n.mdui-theme-primary-brown .mdui-text-color-theme-500 {\n color: #795548 !important;\n}\n.mdui-theme-primary-brown .mdui-text-color-theme-600 {\n color: #6D4C41 !important;\n}\n.mdui-theme-primary-brown .mdui-text-color-theme-700 {\n color: #5D4037 !important;\n}\n.mdui-theme-primary-brown .mdui-text-color-theme-800 {\n color: #4E342E !important;\n}\n.mdui-theme-primary-brown .mdui-text-color-theme-900 {\n color: #3E2723 !important;\n}\n.mdui-theme-primary-cyan .mdui-text-color-theme {\n color: #00BCD4 !important;\n}\n.mdui-theme-primary-cyan .mdui-text-color-theme-50 {\n color: #E0F7FA !important;\n}\n.mdui-theme-primary-cyan .mdui-text-color-theme-100 {\n color: #B2EBF2 !important;\n}\n.mdui-theme-primary-cyan .mdui-text-color-theme-200 {\n color: #80DEEA !important;\n}\n.mdui-theme-primary-cyan .mdui-text-color-theme-300 {\n color: #4DD0E1 !important;\n}\n.mdui-theme-primary-cyan .mdui-text-color-theme-400 {\n color: #26C6DA !important;\n}\n.mdui-theme-primary-cyan .mdui-text-color-theme-500 {\n color: #00BCD4 !important;\n}\n.mdui-theme-primary-cyan .mdui-text-color-theme-600 {\n color: #00ACC1 !important;\n}\n.mdui-theme-primary-cyan .mdui-text-color-theme-700 {\n color: #0097A7 !important;\n}\n.mdui-theme-primary-cyan .mdui-text-color-theme-800 {\n color: #00838F !important;\n}\n.mdui-theme-primary-cyan .mdui-text-color-theme-900 {\n color: #006064 !important;\n}\n.mdui-theme-primary-deep-orange .mdui-text-color-theme {\n color: #FF5722 !important;\n}\n.mdui-theme-primary-deep-orange .mdui-text-color-theme-50 {\n color: #FBE9E7 !important;\n}\n.mdui-theme-primary-deep-orange .mdui-text-color-theme-100 {\n color: #FFCCBC !important;\n}\n.mdui-theme-primary-deep-orange .mdui-text-color-theme-200 {\n color: #FFAB91 !important;\n}\n.mdui-theme-primary-deep-orange .mdui-text-color-theme-300 {\n color: #FF8A65 !important;\n}\n.mdui-theme-primary-deep-orange .mdui-text-color-theme-400 {\n color: #FF7043 !important;\n}\n.mdui-theme-primary-deep-orange .mdui-text-color-theme-500 {\n color: #FF5722 !important;\n}\n.mdui-theme-primary-deep-orange .mdui-text-color-theme-600 {\n color: #F4511E !important;\n}\n.mdui-theme-primary-deep-orange .mdui-text-color-theme-700 {\n color: #E64A19 !important;\n}\n.mdui-theme-primary-deep-orange .mdui-text-color-theme-800 {\n color: #D84315 !important;\n}\n.mdui-theme-primary-deep-orange .mdui-text-color-theme-900 {\n color: #BF360C !important;\n}\n.mdui-theme-primary-deep-purple .mdui-text-color-theme {\n color: #673AB7 !important;\n}\n.mdui-theme-primary-deep-purple .mdui-text-color-theme-50 {\n color: #EDE7F6 !important;\n}\n.mdui-theme-primary-deep-purple .mdui-text-color-theme-100 {\n color: #D1C4E9 !important;\n}\n.mdui-theme-primary-deep-purple .mdui-text-color-theme-200 {\n color: #B39DDB !important;\n}\n.mdui-theme-primary-deep-purple .mdui-text-color-theme-300 {\n color: #9575CD !important;\n}\n.mdui-theme-primary-deep-purple .mdui-text-color-theme-400 {\n color: #7E57C2 !important;\n}\n.mdui-theme-primary-deep-purple .mdui-text-color-theme-500 {\n color: #673AB7 !important;\n}\n.mdui-theme-primary-deep-purple .mdui-text-color-theme-600 {\n color: #5E35B1 !important;\n}\n.mdui-theme-primary-deep-purple .mdui-text-color-theme-700 {\n color: #512DA8 !important;\n}\n.mdui-theme-primary-deep-purple .mdui-text-color-theme-800 {\n color: #4527A0 !important;\n}\n.mdui-theme-primary-deep-purple .mdui-text-color-theme-900 {\n color: #311B92 !important;\n}\n.mdui-theme-primary-green .mdui-text-color-theme {\n color: #4CAF50 !important;\n}\n.mdui-theme-primary-green .mdui-text-color-theme-50 {\n color: #E8F5E9 !important;\n}\n.mdui-theme-primary-green .mdui-text-color-theme-100 {\n color: #C8E6C9 !important;\n}\n.mdui-theme-primary-green .mdui-text-color-theme-200 {\n color: #A5D6A7 !important;\n}\n.mdui-theme-primary-green .mdui-text-color-theme-300 {\n color: #81C784 !important;\n}\n.mdui-theme-primary-green .mdui-text-color-theme-400 {\n color: #66BB6A !important;\n}\n.mdui-theme-primary-green .mdui-text-color-theme-500 {\n color: #4CAF50 !important;\n}\n.mdui-theme-primary-green .mdui-text-color-theme-600 {\n color: #43A047 !important;\n}\n.mdui-theme-primary-green .mdui-text-color-theme-700 {\n color: #388E3C !important;\n}\n.mdui-theme-primary-green .mdui-text-color-theme-800 {\n color: #2E7D32 !important;\n}\n.mdui-theme-primary-green .mdui-text-color-theme-900 {\n color: #1B5E20 !important;\n}\n.mdui-theme-primary-grey .mdui-text-color-theme {\n color: #9E9E9E !important;\n}\n.mdui-theme-primary-grey .mdui-text-color-theme-50 {\n color: #FAFAFA !important;\n}\n.mdui-theme-primary-grey .mdui-text-color-theme-100 {\n color: #F5F5F5 !important;\n}\n.mdui-theme-primary-grey .mdui-text-color-theme-200 {\n color: #EEEEEE !important;\n}\n.mdui-theme-primary-grey .mdui-text-color-theme-300 {\n color: #E0E0E0 !important;\n}\n.mdui-theme-primary-grey .mdui-text-color-theme-400 {\n color: #BDBDBD !important;\n}\n.mdui-theme-primary-grey .mdui-text-color-theme-500 {\n color: #9E9E9E !important;\n}\n.mdui-theme-primary-grey .mdui-text-color-theme-600 {\n color: #757575 !important;\n}\n.mdui-theme-primary-grey .mdui-text-color-theme-700 {\n color: #616161 !important;\n}\n.mdui-theme-primary-grey .mdui-text-color-theme-800 {\n color: #424242 !important;\n}\n.mdui-theme-primary-grey .mdui-text-color-theme-900 {\n color: #212121 !important;\n}\n.mdui-theme-primary-indigo .mdui-text-color-theme {\n color: #3F51B5 !important;\n}\n.mdui-theme-primary-indigo .mdui-text-color-theme-50 {\n color: #E8EAF6 !important;\n}\n.mdui-theme-primary-indigo .mdui-text-color-theme-100 {\n color: #C5CAE9 !important;\n}\n.mdui-theme-primary-indigo .mdui-text-color-theme-200 {\n color: #9FA8DA !important;\n}\n.mdui-theme-primary-indigo .mdui-text-color-theme-300 {\n color: #7986CB !important;\n}\n.mdui-theme-primary-indigo .mdui-text-color-theme-400 {\n color: #5C6BC0 !important;\n}\n.mdui-theme-primary-indigo .mdui-text-color-theme-500 {\n color: #3F51B5 !important;\n}\n.mdui-theme-primary-indigo .mdui-text-color-theme-600 {\n color: #3949AB !important;\n}\n.mdui-theme-primary-indigo .mdui-text-color-theme-700 {\n color: #303F9F !important;\n}\n.mdui-theme-primary-indigo .mdui-text-color-theme-800 {\n color: #283593 !important;\n}\n.mdui-theme-primary-indigo .mdui-text-color-theme-900 {\n color: #1A237E !important;\n}\n.mdui-theme-primary-light-blue .mdui-text-color-theme {\n color: #03A9F4 !important;\n}\n.mdui-theme-primary-light-blue .mdui-text-color-theme-50 {\n color: #E1F5FE !important;\n}\n.mdui-theme-primary-light-blue .mdui-text-color-theme-100 {\n color: #B3E5FC !important;\n}\n.mdui-theme-primary-light-blue .mdui-text-color-theme-200 {\n color: #81D4FA !important;\n}\n.mdui-theme-primary-light-blue .mdui-text-color-theme-300 {\n color: #4FC3F7 !important;\n}\n.mdui-theme-primary-light-blue .mdui-text-color-theme-400 {\n color: #29B6F6 !important;\n}\n.mdui-theme-primary-light-blue .mdui-text-color-theme-500 {\n color: #03A9F4 !important;\n}\n.mdui-theme-primary-light-blue .mdui-text-color-theme-600 {\n color: #039BE5 !important;\n}\n.mdui-theme-primary-light-blue .mdui-text-color-theme-700 {\n color: #0288D1 !important;\n}\n.mdui-theme-primary-light-blue .mdui-text-color-theme-800 {\n color: #0277BD !important;\n}\n.mdui-theme-primary-light-blue .mdui-text-color-theme-900 {\n color: #01579B !important;\n}\n.mdui-theme-primary-light-green .mdui-text-color-theme {\n color: #8BC34A !important;\n}\n.mdui-theme-primary-light-green .mdui-text-color-theme-50 {\n color: #F1F8E9 !important;\n}\n.mdui-theme-primary-light-green .mdui-text-color-theme-100 {\n color: #DCEDC8 !important;\n}\n.mdui-theme-primary-light-green .mdui-text-color-theme-200 {\n color: #C5E1A5 !important;\n}\n.mdui-theme-primary-light-green .mdui-text-color-theme-300 {\n color: #AED581 !important;\n}\n.mdui-theme-primary-light-green .mdui-text-color-theme-400 {\n color: #9CCC65 !important;\n}\n.mdui-theme-primary-light-green .mdui-text-color-theme-500 {\n color: #8BC34A !important;\n}\n.mdui-theme-primary-light-green .mdui-text-color-theme-600 {\n color: #7CB342 !important;\n}\n.mdui-theme-primary-light-green .mdui-text-color-theme-700 {\n color: #689F38 !important;\n}\n.mdui-theme-primary-light-green .mdui-text-color-theme-800 {\n color: #558B2F !important;\n}\n.mdui-theme-primary-light-green .mdui-text-color-theme-900 {\n color: #33691E !important;\n}\n.mdui-theme-primary-lime .mdui-text-color-theme {\n color: #CDDC39 !important;\n}\n.mdui-theme-primary-lime .mdui-text-color-theme-50 {\n color: #F9FBE7 !important;\n}\n.mdui-theme-primary-lime .mdui-text-color-theme-100 {\n color: #F0F4C3 !important;\n}\n.mdui-theme-primary-lime .mdui-text-color-theme-200 {\n color: #E6EE9C !important;\n}\n.mdui-theme-primary-lime .mdui-text-color-theme-300 {\n color: #DCE775 !important;\n}\n.mdui-theme-primary-lime .mdui-text-color-theme-400 {\n color: #D4E157 !important;\n}\n.mdui-theme-primary-lime .mdui-text-color-theme-500 {\n color: #CDDC39 !important;\n}\n.mdui-theme-primary-lime .mdui-text-color-theme-600 {\n color: #C0CA33 !important;\n}\n.mdui-theme-primary-lime .mdui-text-color-theme-700 {\n color: #AFB42B !important;\n}\n.mdui-theme-primary-lime .mdui-text-color-theme-800 {\n color: #9E9D24 !important;\n}\n.mdui-theme-primary-lime .mdui-text-color-theme-900 {\n color: #827717 !important;\n}\n.mdui-theme-primary-orange .mdui-text-color-theme {\n color: #FF9800 !important;\n}\n.mdui-theme-primary-orange .mdui-text-color-theme-50 {\n color: #FFF3E0 !important;\n}\n.mdui-theme-primary-orange .mdui-text-color-theme-100 {\n color: #FFE0B2 !important;\n}\n.mdui-theme-primary-orange .mdui-text-color-theme-200 {\n color: #FFCC80 !important;\n}\n.mdui-theme-primary-orange .mdui-text-color-theme-300 {\n color: #FFB74D !important;\n}\n.mdui-theme-primary-orange .mdui-text-color-theme-400 {\n color: #FFA726 !important;\n}\n.mdui-theme-primary-orange .mdui-text-color-theme-500 {\n color: #FF9800 !important;\n}\n.mdui-theme-primary-orange .mdui-text-color-theme-600 {\n color: #FB8C00 !important;\n}\n.mdui-theme-primary-orange .mdui-text-color-theme-700 {\n color: #F57C00 !important;\n}\n.mdui-theme-primary-orange .mdui-text-color-theme-800 {\n color: #EF6C00 !important;\n}\n.mdui-theme-primary-orange .mdui-text-color-theme-900 {\n color: #E65100 !important;\n}\n.mdui-theme-primary-pink .mdui-text-color-theme {\n color: #E91E63 !important;\n}\n.mdui-theme-primary-pink .mdui-text-color-theme-50 {\n color: #FCE4EC !important;\n}\n.mdui-theme-primary-pink .mdui-text-color-theme-100 {\n color: #F8BBD0 !important;\n}\n.mdui-theme-primary-pink .mdui-text-color-theme-200 {\n color: #F48FB1 !important;\n}\n.mdui-theme-primary-pink .mdui-text-color-theme-300 {\n color: #F06292 !important;\n}\n.mdui-theme-primary-pink .mdui-text-color-theme-400 {\n color: #EC407A !important;\n}\n.mdui-theme-primary-pink .mdui-text-color-theme-500 {\n color: #E91E63 !important;\n}\n.mdui-theme-primary-pink .mdui-text-color-theme-600 {\n color: #D81B60 !important;\n}\n.mdui-theme-primary-pink .mdui-text-color-theme-700 {\n color: #C2185B !important;\n}\n.mdui-theme-primary-pink .mdui-text-color-theme-800 {\n color: #AD1457 !important;\n}\n.mdui-theme-primary-pink .mdui-text-color-theme-900 {\n color: #880E4F !important;\n}\n.mdui-theme-primary-purple .mdui-text-color-theme {\n color: #9C27B0 !important;\n}\n.mdui-theme-primary-purple .mdui-text-color-theme-50 {\n color: #F3E5F5 !important;\n}\n.mdui-theme-primary-purple .mdui-text-color-theme-100 {\n color: #E1BEE7 !important;\n}\n.mdui-theme-primary-purple .mdui-text-color-theme-200 {\n color: #CE93D8 !important;\n}\n.mdui-theme-primary-purple .mdui-text-color-theme-300 {\n color: #BA68C8 !important;\n}\n.mdui-theme-primary-purple .mdui-text-color-theme-400 {\n color: #AB47BC !important;\n}\n.mdui-theme-primary-purple .mdui-text-color-theme-500 {\n color: #9C27B0 !important;\n}\n.mdui-theme-primary-purple .mdui-text-color-theme-600 {\n color: #8E24AA !important;\n}\n.mdui-theme-primary-purple .mdui-text-color-theme-700 {\n color: #7B1FA2 !important;\n}\n.mdui-theme-primary-purple .mdui-text-color-theme-800 {\n color: #6A1B9A !important;\n}\n.mdui-theme-primary-purple .mdui-text-color-theme-900 {\n color: #4A148C !important;\n}\n.mdui-theme-primary-red .mdui-text-color-theme {\n color: #F44336 !important;\n}\n.mdui-theme-primary-red .mdui-text-color-theme-50 {\n color: #FFEBEE !important;\n}\n.mdui-theme-primary-red .mdui-text-color-theme-100 {\n color: #FFCDD2 !important;\n}\n.mdui-theme-primary-red .mdui-text-color-theme-200 {\n color: #EF9A9A !important;\n}\n.mdui-theme-primary-red .mdui-text-color-theme-300 {\n color: #E57373 !important;\n}\n.mdui-theme-primary-red .mdui-text-color-theme-400 {\n color: #EF5350 !important;\n}\n.mdui-theme-primary-red .mdui-text-color-theme-500 {\n color: #F44336 !important;\n}\n.mdui-theme-primary-red .mdui-text-color-theme-600 {\n color: #E53935 !important;\n}\n.mdui-theme-primary-red .mdui-text-color-theme-700 {\n color: #D32F2F !important;\n}\n.mdui-theme-primary-red .mdui-text-color-theme-800 {\n color: #C62828 !important;\n}\n.mdui-theme-primary-red .mdui-text-color-theme-900 {\n color: #B71C1C !important;\n}\n.mdui-theme-primary-teal .mdui-text-color-theme {\n color: #009688 !important;\n}\n.mdui-theme-primary-teal .mdui-text-color-theme-50 {\n color: #E0F2F1 !important;\n}\n.mdui-theme-primary-teal .mdui-text-color-theme-100 {\n color: #B2DFDB !important;\n}\n.mdui-theme-primary-teal .mdui-text-color-theme-200 {\n color: #80CBC4 !important;\n}\n.mdui-theme-primary-teal .mdui-text-color-theme-300 {\n color: #4DB6AC !important;\n}\n.mdui-theme-primary-teal .mdui-text-color-theme-400 {\n color: #26A69A !important;\n}\n.mdui-theme-primary-teal .mdui-text-color-theme-500 {\n color: #009688 !important;\n}\n.mdui-theme-primary-teal .mdui-text-color-theme-600 {\n color: #00897B !important;\n}\n.mdui-theme-primary-teal .mdui-text-color-theme-700 {\n color: #00796B !important;\n}\n.mdui-theme-primary-teal .mdui-text-color-theme-800 {\n color: #00695C !important;\n}\n.mdui-theme-primary-teal .mdui-text-color-theme-900 {\n color: #004D40 !important;\n}\n.mdui-theme-primary-yellow .mdui-text-color-theme {\n color: #FFEB3B !important;\n}\n.mdui-theme-primary-yellow .mdui-text-color-theme-50 {\n color: #FFFDE7 !important;\n}\n.mdui-theme-primary-yellow .mdui-text-color-theme-100 {\n color: #FFF9C4 !important;\n}\n.mdui-theme-primary-yellow .mdui-text-color-theme-200 {\n color: #FFF59D !important;\n}\n.mdui-theme-primary-yellow .mdui-text-color-theme-300 {\n color: #FFF176 !important;\n}\n.mdui-theme-primary-yellow .mdui-text-color-theme-400 {\n color: #FFEE58 !important;\n}\n.mdui-theme-primary-yellow .mdui-text-color-theme-500 {\n color: #FFEB3B !important;\n}\n.mdui-theme-primary-yellow .mdui-text-color-theme-600 {\n color: #FDD835 !important;\n}\n.mdui-theme-primary-yellow .mdui-text-color-theme-700 {\n color: #FBC02D !important;\n}\n.mdui-theme-primary-yellow .mdui-text-color-theme-800 {\n color: #F9A825 !important;\n}\n.mdui-theme-primary-yellow .mdui-text-color-theme-900 {\n color: #F57F17 !important;\n}\n/**\n * .mdui-theme-accent-[color] .mdui-text-color-theme-accent\n * .mdui-theme-accent-[color] .mdui-text-color-theme-[degree]\n */\n.mdui-theme-accent-amber .mdui-text-color-theme-accent {\n color: #FFD740 !important;\n}\n.mdui-theme-accent-amber .mdui-text-color-theme-a100 {\n color: #FFE57F !important;\n}\n.mdui-theme-accent-amber .mdui-text-color-theme-a200 {\n color: #FFD740 !important;\n}\n.mdui-theme-accent-amber .mdui-text-color-theme-a400 {\n color: #FFC400 !important;\n}\n.mdui-theme-accent-amber .mdui-text-color-theme-a700 {\n color: #FFAB00 !important;\n}\n.mdui-theme-accent-blue .mdui-text-color-theme-accent {\n color: #448AFF !important;\n}\n.mdui-theme-accent-blue .mdui-text-color-theme-a100 {\n color: #82B1FF !important;\n}\n.mdui-theme-accent-blue .mdui-text-color-theme-a200 {\n color: #448AFF !important;\n}\n.mdui-theme-accent-blue .mdui-text-color-theme-a400 {\n color: #2979FF !important;\n}\n.mdui-theme-accent-blue .mdui-text-color-theme-a700 {\n color: #2962FF !important;\n}\n.mdui-theme-accent-cyan .mdui-text-color-theme-accent {\n color: #18FFFF !important;\n}\n.mdui-theme-accent-cyan .mdui-text-color-theme-a100 {\n color: #84FFFF !important;\n}\n.mdui-theme-accent-cyan .mdui-text-color-theme-a200 {\n color: #18FFFF !important;\n}\n.mdui-theme-accent-cyan .mdui-text-color-theme-a400 {\n color: #00E5FF !important;\n}\n.mdui-theme-accent-cyan .mdui-text-color-theme-a700 {\n color: #00B8D4 !important;\n}\n.mdui-theme-accent-deep-orange .mdui-text-color-theme-accent {\n color: #FF6E40 !important;\n}\n.mdui-theme-accent-deep-orange .mdui-text-color-theme-a100 {\n color: #FF9E80 !important;\n}\n.mdui-theme-accent-deep-orange .mdui-text-color-theme-a200 {\n color: #FF6E40 !important;\n}\n.mdui-theme-accent-deep-orange .mdui-text-color-theme-a400 {\n color: #FF3D00 !important;\n}\n.mdui-theme-accent-deep-orange .mdui-text-color-theme-a700 {\n color: #DD2C00 !important;\n}\n.mdui-theme-accent-deep-purple .mdui-text-color-theme-accent {\n color: #7C4DFF !important;\n}\n.mdui-theme-accent-deep-purple .mdui-text-color-theme-a100 {\n color: #B388FF !important;\n}\n.mdui-theme-accent-deep-purple .mdui-text-color-theme-a200 {\n color: #7C4DFF !important;\n}\n.mdui-theme-accent-deep-purple .mdui-text-color-theme-a400 {\n color: #651FFF !important;\n}\n.mdui-theme-accent-deep-purple .mdui-text-color-theme-a700 {\n color: #6200EA !important;\n}\n.mdui-theme-accent-green .mdui-text-color-theme-accent {\n color: #69F0AE !important;\n}\n.mdui-theme-accent-green .mdui-text-color-theme-a100 {\n color: #B9F6CA !important;\n}\n.mdui-theme-accent-green .mdui-text-color-theme-a200 {\n color: #69F0AE !important;\n}\n.mdui-theme-accent-green .mdui-text-color-theme-a400 {\n color: #00E676 !important;\n}\n.mdui-theme-accent-green .mdui-text-color-theme-a700 {\n color: #00C853 !important;\n}\n.mdui-theme-accent-indigo .mdui-text-color-theme-accent {\n color: #536DFE !important;\n}\n.mdui-theme-accent-indigo .mdui-text-color-theme-a100 {\n color: #8C9EFF !important;\n}\n.mdui-theme-accent-indigo .mdui-text-color-theme-a200 {\n color: #536DFE !important;\n}\n.mdui-theme-accent-indigo .mdui-text-color-theme-a400 {\n color: #3D5AFE !important;\n}\n.mdui-theme-accent-indigo .mdui-text-color-theme-a700 {\n color: #304FFE !important;\n}\n.mdui-theme-accent-light-blue .mdui-text-color-theme-accent {\n color: #40C4FF !important;\n}\n.mdui-theme-accent-light-blue .mdui-text-color-theme-a100 {\n color: #80D8FF !important;\n}\n.mdui-theme-accent-light-blue .mdui-text-color-theme-a200 {\n color: #40C4FF !important;\n}\n.mdui-theme-accent-light-blue .mdui-text-color-theme-a400 {\n color: #00B0FF !important;\n}\n.mdui-theme-accent-light-blue .mdui-text-color-theme-a700 {\n color: #0091EA !important;\n}\n.mdui-theme-accent-light-green .mdui-text-color-theme-accent {\n color: #B2FF59 !important;\n}\n.mdui-theme-accent-light-green .mdui-text-color-theme-a100 {\n color: #CCFF90 !important;\n}\n.mdui-theme-accent-light-green .mdui-text-color-theme-a200 {\n color: #B2FF59 !important;\n}\n.mdui-theme-accent-light-green .mdui-text-color-theme-a400 {\n color: #76FF03 !important;\n}\n.mdui-theme-accent-light-green .mdui-text-color-theme-a700 {\n color: #64DD17 !important;\n}\n.mdui-theme-accent-lime .mdui-text-color-theme-accent {\n color: #EEFF41 !important;\n}\n.mdui-theme-accent-lime .mdui-text-color-theme-a100 {\n color: #F4FF81 !important;\n}\n.mdui-theme-accent-lime .mdui-text-color-theme-a200 {\n color: #EEFF41 !important;\n}\n.mdui-theme-accent-lime .mdui-text-color-theme-a400 {\n color: #C6FF00 !important;\n}\n.mdui-theme-accent-lime .mdui-text-color-theme-a700 {\n color: #AEEA00 !important;\n}\n.mdui-theme-accent-orange .mdui-text-color-theme-accent {\n color: #FFAB40 !important;\n}\n.mdui-theme-accent-orange .mdui-text-color-theme-a100 {\n color: #FFD180 !important;\n}\n.mdui-theme-accent-orange .mdui-text-color-theme-a200 {\n color: #FFAB40 !important;\n}\n.mdui-theme-accent-orange .mdui-text-color-theme-a400 {\n color: #FF9100 !important;\n}\n.mdui-theme-accent-orange .mdui-text-color-theme-a700 {\n color: #FF6D00 !important;\n}\n.mdui-theme-accent-pink .mdui-text-color-theme-accent {\n color: #FF4081 !important;\n}\n.mdui-theme-accent-pink .mdui-text-color-theme-a100 {\n color: #FF80AB !important;\n}\n.mdui-theme-accent-pink .mdui-text-color-theme-a200 {\n color: #FF4081 !important;\n}\n.mdui-theme-accent-pink .mdui-text-color-theme-a400 {\n color: #F50057 !important;\n}\n.mdui-theme-accent-pink .mdui-text-color-theme-a700 {\n color: #C51162 !important;\n}\n.mdui-theme-accent-purple .mdui-text-color-theme-accent {\n color: #E040FB !important;\n}\n.mdui-theme-accent-purple .mdui-text-color-theme-a100 {\n color: #EA80FC !important;\n}\n.mdui-theme-accent-purple .mdui-text-color-theme-a200 {\n color: #E040FB !important;\n}\n.mdui-theme-accent-purple .mdui-text-color-theme-a400 {\n color: #D500F9 !important;\n}\n.mdui-theme-accent-purple .mdui-text-color-theme-a700 {\n color: #AA00FF !important;\n}\n.mdui-theme-accent-red .mdui-text-color-theme-accent {\n color: #FF5252 !important;\n}\n.mdui-theme-accent-red .mdui-text-color-theme-a100 {\n color: #FF8A80 !important;\n}\n.mdui-theme-accent-red .mdui-text-color-theme-a200 {\n color: #FF5252 !important;\n}\n.mdui-theme-accent-red .mdui-text-color-theme-a400 {\n color: #FF1744 !important;\n}\n.mdui-theme-accent-red .mdui-text-color-theme-a700 {\n color: #D50000 !important;\n}\n.mdui-theme-accent-teal .mdui-text-color-theme-accent {\n color: #64FFDA !important;\n}\n.mdui-theme-accent-teal .mdui-text-color-theme-a100 {\n color: #A7FFEB !important;\n}\n.mdui-theme-accent-teal .mdui-text-color-theme-a200 {\n color: #64FFDA !important;\n}\n.mdui-theme-accent-teal .mdui-text-color-theme-a400 {\n color: #1DE9B6 !important;\n}\n.mdui-theme-accent-teal .mdui-text-color-theme-a700 {\n color: #00BFA5 !important;\n}\n.mdui-theme-accent-yellow .mdui-text-color-theme-accent {\n color: #FFFF00 !important;\n}\n.mdui-theme-accent-yellow .mdui-text-color-theme-a100 {\n color: #FFFF8D !important;\n}\n.mdui-theme-accent-yellow .mdui-text-color-theme-a200 {\n color: #FFFF00 !important;\n}\n.mdui-theme-accent-yellow .mdui-text-color-theme-a400 {\n color: #FFEA00 !important;\n}\n.mdui-theme-accent-yellow .mdui-text-color-theme-a700 {\n color: #FFD600 !important;\n}\n/**\n * .mdui-text-color-[color]\n * .mdui-text-color-[color]-[degree]\n */\n.mdui-text-color-amber {\n color: #FFC107 !important;\n}\n.mdui-text-color-amber-50 {\n color: #FFF8E1 !important;\n}\n.mdui-text-color-amber-100 {\n color: #FFECB3 !important;\n}\n.mdui-text-color-amber-200 {\n color: #FFE082 !important;\n}\n.mdui-text-color-amber-300 {\n color: #FFD54F !important;\n}\n.mdui-text-color-amber-400 {\n color: #FFCA28 !important;\n}\n.mdui-text-color-amber-500 {\n color: #FFC107 !important;\n}\n.mdui-text-color-amber-600 {\n color: #FFB300 !important;\n}\n.mdui-text-color-amber-700 {\n color: #FFA000 !important;\n}\n.mdui-text-color-amber-800 {\n color: #FF8F00 !important;\n}\n.mdui-text-color-amber-900 {\n color: #FF6F00 !important;\n}\n.mdui-text-color-blue {\n color: #2196F3 !important;\n}\n.mdui-text-color-blue-50 {\n color: #E3F2FD !important;\n}\n.mdui-text-color-blue-100 {\n color: #BBDEFB !important;\n}\n.mdui-text-color-blue-200 {\n color: #90CAF9 !important;\n}\n.mdui-text-color-blue-300 {\n color: #64B5F6 !important;\n}\n.mdui-text-color-blue-400 {\n color: #42A5F5 !important;\n}\n.mdui-text-color-blue-500 {\n color: #2196F3 !important;\n}\n.mdui-text-color-blue-600 {\n color: #1E88E5 !important;\n}\n.mdui-text-color-blue-700 {\n color: #1976D2 !important;\n}\n.mdui-text-color-blue-800 {\n color: #1565C0 !important;\n}\n.mdui-text-color-blue-900 {\n color: #0D47A1 !important;\n}\n.mdui-text-color-blue-grey {\n color: #607D8B !important;\n}\n.mdui-text-color-blue-grey-50 {\n color: #ECEFF1 !important;\n}\n.mdui-text-color-blue-grey-100 {\n color: #CFD8DC !important;\n}\n.mdui-text-color-blue-grey-200 {\n color: #B0BEC5 !important;\n}\n.mdui-text-color-blue-grey-300 {\n color: #90A4AE !important;\n}\n.mdui-text-color-blue-grey-400 {\n color: #78909C !important;\n}\n.mdui-text-color-blue-grey-500 {\n color: #607D8B !important;\n}\n.mdui-text-color-blue-grey-600 {\n color: #546E7A !important;\n}\n.mdui-text-color-blue-grey-700 {\n color: #455A64 !important;\n}\n.mdui-text-color-blue-grey-800 {\n color: #37474F !important;\n}\n.mdui-text-color-blue-grey-900 {\n color: #263238 !important;\n}\n.mdui-text-color-brown {\n color: #795548 !important;\n}\n.mdui-text-color-brown-50 {\n color: #EFEBE9 !important;\n}\n.mdui-text-color-brown-100 {\n color: #D7CCC8 !important;\n}\n.mdui-text-color-brown-200 {\n color: #BCAAA4 !important;\n}\n.mdui-text-color-brown-300 {\n color: #A1887F !important;\n}\n.mdui-text-color-brown-400 {\n color: #8D6E63 !important;\n}\n.mdui-text-color-brown-500 {\n color: #795548 !important;\n}\n.mdui-text-color-brown-600 {\n color: #6D4C41 !important;\n}\n.mdui-text-color-brown-700 {\n color: #5D4037 !important;\n}\n.mdui-text-color-brown-800 {\n color: #4E342E !important;\n}\n.mdui-text-color-brown-900 {\n color: #3E2723 !important;\n}\n.mdui-text-color-cyan {\n color: #00BCD4 !important;\n}\n.mdui-text-color-cyan-50 {\n color: #E0F7FA !important;\n}\n.mdui-text-color-cyan-100 {\n color: #B2EBF2 !important;\n}\n.mdui-text-color-cyan-200 {\n color: #80DEEA !important;\n}\n.mdui-text-color-cyan-300 {\n color: #4DD0E1 !important;\n}\n.mdui-text-color-cyan-400 {\n color: #26C6DA !important;\n}\n.mdui-text-color-cyan-500 {\n color: #00BCD4 !important;\n}\n.mdui-text-color-cyan-600 {\n color: #00ACC1 !important;\n}\n.mdui-text-color-cyan-700 {\n color: #0097A7 !important;\n}\n.mdui-text-color-cyan-800 {\n color: #00838F !important;\n}\n.mdui-text-color-cyan-900 {\n color: #006064 !important;\n}\n.mdui-text-color-deep-orange {\n color: #FF5722 !important;\n}\n.mdui-text-color-deep-orange-50 {\n color: #FBE9E7 !important;\n}\n.mdui-text-color-deep-orange-100 {\n color: #FFCCBC !important;\n}\n.mdui-text-color-deep-orange-200 {\n color: #FFAB91 !important;\n}\n.mdui-text-color-deep-orange-300 {\n color: #FF8A65 !important;\n}\n.mdui-text-color-deep-orange-400 {\n color: #FF7043 !important;\n}\n.mdui-text-color-deep-orange-500 {\n color: #FF5722 !important;\n}\n.mdui-text-color-deep-orange-600 {\n color: #F4511E !important;\n}\n.mdui-text-color-deep-orange-700 {\n color: #E64A19 !important;\n}\n.mdui-text-color-deep-orange-800 {\n color: #D84315 !important;\n}\n.mdui-text-color-deep-orange-900 {\n color: #BF360C !important;\n}\n.mdui-text-color-deep-purple {\n color: #673AB7 !important;\n}\n.mdui-text-color-deep-purple-50 {\n color: #EDE7F6 !important;\n}\n.mdui-text-color-deep-purple-100 {\n color: #D1C4E9 !important;\n}\n.mdui-text-color-deep-purple-200 {\n color: #B39DDB !important;\n}\n.mdui-text-color-deep-purple-300 {\n color: #9575CD !important;\n}\n.mdui-text-color-deep-purple-400 {\n color: #7E57C2 !important;\n}\n.mdui-text-color-deep-purple-500 {\n color: #673AB7 !important;\n}\n.mdui-text-color-deep-purple-600 {\n color: #5E35B1 !important;\n}\n.mdui-text-color-deep-purple-700 {\n color: #512DA8 !important;\n}\n.mdui-text-color-deep-purple-800 {\n color: #4527A0 !important;\n}\n.mdui-text-color-deep-purple-900 {\n color: #311B92 !important;\n}\n.mdui-text-color-green {\n color: #4CAF50 !important;\n}\n.mdui-text-color-green-50 {\n color: #E8F5E9 !important;\n}\n.mdui-text-color-green-100 {\n color: #C8E6C9 !important;\n}\n.mdui-text-color-green-200 {\n color: #A5D6A7 !important;\n}\n.mdui-text-color-green-300 {\n color: #81C784 !important;\n}\n.mdui-text-color-green-400 {\n color: #66BB6A !important;\n}\n.mdui-text-color-green-500 {\n color: #4CAF50 !important;\n}\n.mdui-text-color-green-600 {\n color: #43A047 !important;\n}\n.mdui-text-color-green-700 {\n color: #388E3C !important;\n}\n.mdui-text-color-green-800 {\n color: #2E7D32 !important;\n}\n.mdui-text-color-green-900 {\n color: #1B5E20 !important;\n}\n.mdui-text-color-grey {\n color: #9E9E9E !important;\n}\n.mdui-text-color-grey-50 {\n color: #FAFAFA !important;\n}\n.mdui-text-color-grey-100 {\n color: #F5F5F5 !important;\n}\n.mdui-text-color-grey-200 {\n color: #EEEEEE !important;\n}\n.mdui-text-color-grey-300 {\n color: #E0E0E0 !important;\n}\n.mdui-text-color-grey-400 {\n color: #BDBDBD !important;\n}\n.mdui-text-color-grey-500 {\n color: #9E9E9E !important;\n}\n.mdui-text-color-grey-600 {\n color: #757575 !important;\n}\n.mdui-text-color-grey-700 {\n color: #616161 !important;\n}\n.mdui-text-color-grey-800 {\n color: #424242 !important;\n}\n.mdui-text-color-grey-900 {\n color: #212121 !important;\n}\n.mdui-text-color-indigo {\n color: #3F51B5 !important;\n}\n.mdui-text-color-indigo-50 {\n color: #E8EAF6 !important;\n}\n.mdui-text-color-indigo-100 {\n color: #C5CAE9 !important;\n}\n.mdui-text-color-indigo-200 {\n color: #9FA8DA !important;\n}\n.mdui-text-color-indigo-300 {\n color: #7986CB !important;\n}\n.mdui-text-color-indigo-400 {\n color: #5C6BC0 !important;\n}\n.mdui-text-color-indigo-500 {\n color: #3F51B5 !important;\n}\n.mdui-text-color-indigo-600 {\n color: #3949AB !important;\n}\n.mdui-text-color-indigo-700 {\n color: #303F9F !important;\n}\n.mdui-text-color-indigo-800 {\n color: #283593 !important;\n}\n.mdui-text-color-indigo-900 {\n color: #1A237E !important;\n}\n.mdui-text-color-light-blue {\n color: #03A9F4 !important;\n}\n.mdui-text-color-light-blue-50 {\n color: #E1F5FE !important;\n}\n.mdui-text-color-light-blue-100 {\n color: #B3E5FC !important;\n}\n.mdui-text-color-light-blue-200 {\n color: #81D4FA !important;\n}\n.mdui-text-color-light-blue-300 {\n color: #4FC3F7 !important;\n}\n.mdui-text-color-light-blue-400 {\n color: #29B6F6 !important;\n}\n.mdui-text-color-light-blue-500 {\n color: #03A9F4 !important;\n}\n.mdui-text-color-light-blue-600 {\n color: #039BE5 !important;\n}\n.mdui-text-color-light-blue-700 {\n color: #0288D1 !important;\n}\n.mdui-text-color-light-blue-800 {\n color: #0277BD !important;\n}\n.mdui-text-color-light-blue-900 {\n color: #01579B !important;\n}\n.mdui-text-color-light-green {\n color: #8BC34A !important;\n}\n.mdui-text-color-light-green-50 {\n color: #F1F8E9 !important;\n}\n.mdui-text-color-light-green-100 {\n color: #DCEDC8 !important;\n}\n.mdui-text-color-light-green-200 {\n color: #C5E1A5 !important;\n}\n.mdui-text-color-light-green-300 {\n color: #AED581 !important;\n}\n.mdui-text-color-light-green-400 {\n color: #9CCC65 !important;\n}\n.mdui-text-color-light-green-500 {\n color: #8BC34A !important;\n}\n.mdui-text-color-light-green-600 {\n color: #7CB342 !important;\n}\n.mdui-text-color-light-green-700 {\n color: #689F38 !important;\n}\n.mdui-text-color-light-green-800 {\n color: #558B2F !important;\n}\n.mdui-text-color-light-green-900 {\n color: #33691E !important;\n}\n.mdui-text-color-lime {\n color: #CDDC39 !important;\n}\n.mdui-text-color-lime-50 {\n color: #F9FBE7 !important;\n}\n.mdui-text-color-lime-100 {\n color: #F0F4C3 !important;\n}\n.mdui-text-color-lime-200 {\n color: #E6EE9C !important;\n}\n.mdui-text-color-lime-300 {\n color: #DCE775 !important;\n}\n.mdui-text-color-lime-400 {\n color: #D4E157 !important;\n}\n.mdui-text-color-lime-500 {\n color: #CDDC39 !important;\n}\n.mdui-text-color-lime-600 {\n color: #C0CA33 !important;\n}\n.mdui-text-color-lime-700 {\n color: #AFB42B !important;\n}\n.mdui-text-color-lime-800 {\n color: #9E9D24 !important;\n}\n.mdui-text-color-lime-900 {\n color: #827717 !important;\n}\n.mdui-text-color-orange {\n color: #FF9800 !important;\n}\n.mdui-text-color-orange-50 {\n color: #FFF3E0 !important;\n}\n.mdui-text-color-orange-100 {\n color: #FFE0B2 !important;\n}\n.mdui-text-color-orange-200 {\n color: #FFCC80 !important;\n}\n.mdui-text-color-orange-300 {\n color: #FFB74D !important;\n}\n.mdui-text-color-orange-400 {\n color: #FFA726 !important;\n}\n.mdui-text-color-orange-500 {\n color: #FF9800 !important;\n}\n.mdui-text-color-orange-600 {\n color: #FB8C00 !important;\n}\n.mdui-text-color-orange-700 {\n color: #F57C00 !important;\n}\n.mdui-text-color-orange-800 {\n color: #EF6C00 !important;\n}\n.mdui-text-color-orange-900 {\n color: #E65100 !important;\n}\n.mdui-text-color-pink {\n color: #E91E63 !important;\n}\n.mdui-text-color-pink-50 {\n color: #FCE4EC !important;\n}\n.mdui-text-color-pink-100 {\n color: #F8BBD0 !important;\n}\n.mdui-text-color-pink-200 {\n color: #F48FB1 !important;\n}\n.mdui-text-color-pink-300 {\n color: #F06292 !important;\n}\n.mdui-text-color-pink-400 {\n color: #EC407A !important;\n}\n.mdui-text-color-pink-500 {\n color: #E91E63 !important;\n}\n.mdui-text-color-pink-600 {\n color: #D81B60 !important;\n}\n.mdui-text-color-pink-700 {\n color: #C2185B !important;\n}\n.mdui-text-color-pink-800 {\n color: #AD1457 !important;\n}\n.mdui-text-color-pink-900 {\n color: #880E4F !important;\n}\n.mdui-text-color-purple {\n color: #9C27B0 !important;\n}\n.mdui-text-color-purple-50 {\n color: #F3E5F5 !important;\n}\n.mdui-text-color-purple-100 {\n color: #E1BEE7 !important;\n}\n.mdui-text-color-purple-200 {\n color: #CE93D8 !important;\n}\n.mdui-text-color-purple-300 {\n color: #BA68C8 !important;\n}\n.mdui-text-color-purple-400 {\n color: #AB47BC !important;\n}\n.mdui-text-color-purple-500 {\n color: #9C27B0 !important;\n}\n.mdui-text-color-purple-600 {\n color: #8E24AA !important;\n}\n.mdui-text-color-purple-700 {\n color: #7B1FA2 !important;\n}\n.mdui-text-color-purple-800 {\n color: #6A1B9A !important;\n}\n.mdui-text-color-purple-900 {\n color: #4A148C !important;\n}\n.mdui-text-color-red {\n color: #F44336 !important;\n}\n.mdui-text-color-red-50 {\n color: #FFEBEE !important;\n}\n.mdui-text-color-red-100 {\n color: #FFCDD2 !important;\n}\n.mdui-text-color-red-200 {\n color: #EF9A9A !important;\n}\n.mdui-text-color-red-300 {\n color: #E57373 !important;\n}\n.mdui-text-color-red-400 {\n color: #EF5350 !important;\n}\n.mdui-text-color-red-500 {\n color: #F44336 !important;\n}\n.mdui-text-color-red-600 {\n color: #E53935 !important;\n}\n.mdui-text-color-red-700 {\n color: #D32F2F !important;\n}\n.mdui-text-color-red-800 {\n color: #C62828 !important;\n}\n.mdui-text-color-red-900 {\n color: #B71C1C !important;\n}\n.mdui-text-color-teal {\n color: #009688 !important;\n}\n.mdui-text-color-teal-50 {\n color: #E0F2F1 !important;\n}\n.mdui-text-color-teal-100 {\n color: #B2DFDB !important;\n}\n.mdui-text-color-teal-200 {\n color: #80CBC4 !important;\n}\n.mdui-text-color-teal-300 {\n color: #4DB6AC !important;\n}\n.mdui-text-color-teal-400 {\n color: #26A69A !important;\n}\n.mdui-text-color-teal-500 {\n color: #009688 !important;\n}\n.mdui-text-color-teal-600 {\n color: #00897B !important;\n}\n.mdui-text-color-teal-700 {\n color: #00796B !important;\n}\n.mdui-text-color-teal-800 {\n color: #00695C !important;\n}\n.mdui-text-color-teal-900 {\n color: #004D40 !important;\n}\n.mdui-text-color-yellow {\n color: #FFEB3B !important;\n}\n.mdui-text-color-yellow-50 {\n color: #FFFDE7 !important;\n}\n.mdui-text-color-yellow-100 {\n color: #FFF9C4 !important;\n}\n.mdui-text-color-yellow-200 {\n color: #FFF59D !important;\n}\n.mdui-text-color-yellow-300 {\n color: #FFF176 !important;\n}\n.mdui-text-color-yellow-400 {\n color: #FFEE58 !important;\n}\n.mdui-text-color-yellow-500 {\n color: #FFEB3B !important;\n}\n.mdui-text-color-yellow-600 {\n color: #FDD835 !important;\n}\n.mdui-text-color-yellow-700 {\n color: #FBC02D !important;\n}\n.mdui-text-color-yellow-800 {\n color: #F9A825 !important;\n}\n.mdui-text-color-yellow-900 {\n color: #F57F17 !important;\n}\n/**\n * .mdui-text-color-[color]-accent\n * .mdui-text-color-[color]-[degree]\n */\n.mdui-text-color-amber-accent {\n color: #FFD740 !important;\n}\n.mdui-text-color-amber-a100 {\n color: #FFE57F !important;\n}\n.mdui-text-color-amber-a200 {\n color: #FFD740 !important;\n}\n.mdui-text-color-amber-a400 {\n color: #FFC400 !important;\n}\n.mdui-text-color-amber-a700 {\n color: #FFAB00 !important;\n}\n.mdui-text-color-blue-accent {\n color: #448AFF !important;\n}\n.mdui-text-color-blue-a100 {\n color: #82B1FF !important;\n}\n.mdui-text-color-blue-a200 {\n color: #448AFF !important;\n}\n.mdui-text-color-blue-a400 {\n color: #2979FF !important;\n}\n.mdui-text-color-blue-a700 {\n color: #2962FF !important;\n}\n.mdui-text-color-cyan-accent {\n color: #18FFFF !important;\n}\n.mdui-text-color-cyan-a100 {\n color: #84FFFF !important;\n}\n.mdui-text-color-cyan-a200 {\n color: #18FFFF !important;\n}\n.mdui-text-color-cyan-a400 {\n color: #00E5FF !important;\n}\n.mdui-text-color-cyan-a700 {\n color: #00B8D4 !important;\n}\n.mdui-text-color-deep-orange-accent {\n color: #FF6E40 !important;\n}\n.mdui-text-color-deep-orange-a100 {\n color: #FF9E80 !important;\n}\n.mdui-text-color-deep-orange-a200 {\n color: #FF6E40 !important;\n}\n.mdui-text-color-deep-orange-a400 {\n color: #FF3D00 !important;\n}\n.mdui-text-color-deep-orange-a700 {\n color: #DD2C00 !important;\n}\n.mdui-text-color-deep-purple-accent {\n color: #7C4DFF !important;\n}\n.mdui-text-color-deep-purple-a100 {\n color: #B388FF !important;\n}\n.mdui-text-color-deep-purple-a200 {\n color: #7C4DFF !important;\n}\n.mdui-text-color-deep-purple-a400 {\n color: #651FFF !important;\n}\n.mdui-text-color-deep-purple-a700 {\n color: #6200EA !important;\n}\n.mdui-text-color-green-accent {\n color: #69F0AE !important;\n}\n.mdui-text-color-green-a100 {\n color: #B9F6CA !important;\n}\n.mdui-text-color-green-a200 {\n color: #69F0AE !important;\n}\n.mdui-text-color-green-a400 {\n color: #00E676 !important;\n}\n.mdui-text-color-green-a700 {\n color: #00C853 !important;\n}\n.mdui-text-color-indigo-accent {\n color: #536DFE !important;\n}\n.mdui-text-color-indigo-a100 {\n color: #8C9EFF !important;\n}\n.mdui-text-color-indigo-a200 {\n color: #536DFE !important;\n}\n.mdui-text-color-indigo-a400 {\n color: #3D5AFE !important;\n}\n.mdui-text-color-indigo-a700 {\n color: #304FFE !important;\n}\n.mdui-text-color-light-blue-accent {\n color: #40C4FF !important;\n}\n.mdui-text-color-light-blue-a100 {\n color: #80D8FF !important;\n}\n.mdui-text-color-light-blue-a200 {\n color: #40C4FF !important;\n}\n.mdui-text-color-light-blue-a400 {\n color: #00B0FF !important;\n}\n.mdui-text-color-light-blue-a700 {\n color: #0091EA !important;\n}\n.mdui-text-color-light-green-accent {\n color: #B2FF59 !important;\n}\n.mdui-text-color-light-green-a100 {\n color: #CCFF90 !important;\n}\n.mdui-text-color-light-green-a200 {\n color: #B2FF59 !important;\n}\n.mdui-text-color-light-green-a400 {\n color: #76FF03 !important;\n}\n.mdui-text-color-light-green-a700 {\n color: #64DD17 !important;\n}\n.mdui-text-color-lime-accent {\n color: #EEFF41 !important;\n}\n.mdui-text-color-lime-a100 {\n color: #F4FF81 !important;\n}\n.mdui-text-color-lime-a200 {\n color: #EEFF41 !important;\n}\n.mdui-text-color-lime-a400 {\n color: #C6FF00 !important;\n}\n.mdui-text-color-lime-a700 {\n color: #AEEA00 !important;\n}\n.mdui-text-color-orange-accent {\n color: #FFAB40 !important;\n}\n.mdui-text-color-orange-a100 {\n color: #FFD180 !important;\n}\n.mdui-text-color-orange-a200 {\n color: #FFAB40 !important;\n}\n.mdui-text-color-orange-a400 {\n color: #FF9100 !important;\n}\n.mdui-text-color-orange-a700 {\n color: #FF6D00 !important;\n}\n.mdui-text-color-pink-accent {\n color: #FF4081 !important;\n}\n.mdui-text-color-pink-a100 {\n color: #FF80AB !important;\n}\n.mdui-text-color-pink-a200 {\n color: #FF4081 !important;\n}\n.mdui-text-color-pink-a400 {\n color: #F50057 !important;\n}\n.mdui-text-color-pink-a700 {\n color: #C51162 !important;\n}\n.mdui-text-color-purple-accent {\n color: #E040FB !important;\n}\n.mdui-text-color-purple-a100 {\n color: #EA80FC !important;\n}\n.mdui-text-color-purple-a200 {\n color: #E040FB !important;\n}\n.mdui-text-color-purple-a400 {\n color: #D500F9 !important;\n}\n.mdui-text-color-purple-a700 {\n color: #AA00FF !important;\n}\n.mdui-text-color-red-accent {\n color: #FF5252 !important;\n}\n.mdui-text-color-red-a100 {\n color: #FF8A80 !important;\n}\n.mdui-text-color-red-a200 {\n color: #FF5252 !important;\n}\n.mdui-text-color-red-a400 {\n color: #FF1744 !important;\n}\n.mdui-text-color-red-a700 {\n color: #D50000 !important;\n}\n.mdui-text-color-teal-accent {\n color: #64FFDA !important;\n}\n.mdui-text-color-teal-a100 {\n color: #A7FFEB !important;\n}\n.mdui-text-color-teal-a200 {\n color: #64FFDA !important;\n}\n.mdui-text-color-teal-a400 {\n color: #1DE9B6 !important;\n}\n.mdui-text-color-teal-a700 {\n color: #00BFA5 !important;\n}\n.mdui-text-color-yellow-accent {\n color: #FFFF00 !important;\n}\n.mdui-text-color-yellow-a100 {\n color: #FFFF8D !important;\n}\n.mdui-text-color-yellow-a200 {\n color: #FFFF00 !important;\n}\n.mdui-text-color-yellow-a400 {\n color: #FFEA00 !important;\n}\n.mdui-text-color-yellow-a700 {\n color: #FFD600 !important;\n}\n/**\n * .mdui-text-color-black\n * .mdui-text-color-black-[]\n * .mdui-text-color-theme-[]\n */\n.mdui-text-color-black {\n color: #000000 !important;\n}\n.mdui-text-color-black-text,\n.mdui-text-color-theme-text {\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-text-color-black-secondary,\n.mdui-text-color-theme-secondary {\n color: rgba(0, 0, 0, 0.54) !important;\n}\n.mdui-text-color-black-disabled,\n.mdui-text-color-theme-disabled {\n color: rgba(0, 0, 0, 0.38) !important;\n}\n.mdui-text-color-black-divider,\n.mdui-text-color-theme-divider {\n color: rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-text-color-black-icon,\n.mdui-text-color-theme-icon {\n color: rgba(0, 0, 0, 0.54) !important;\n}\n.mdui-text-color-black-icon-disabled,\n.mdui-text-color-theme-icon-disabled {\n color: rgba(0, 0, 0, 0.26) !important;\n}\n/**\n * .mdui-text-color-white\n * .mdui-text-color-white-[]\n */\n.mdui-text-color-white {\n color: #FFFFFF !important;\n}\n.mdui-text-color-white-text {\n color: #ffffff !important;\n}\n.mdui-text-color-white-secondary {\n color: rgba(255, 255, 255, 0.7) !important;\n}\n.mdui-text-color-white-disabled {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n.mdui-text-color-white-divider {\n color: rgba(255, 255, 255, 0.12) !important;\n}\n.mdui-text-color-white-icon {\n color: #ffffff !important;\n}\n.mdui-text-color-white-icon-disabled {\n color: rgba(255, 255, 255, 0.3) !important;\n}\n/**\n * .mdui-text-color-theme-[] 深色主题\n */\n.mdui-theme-layout-dark .mdui-text-color-theme-text {\n color: #ffffff !important;\n}\n.mdui-theme-layout-dark .mdui-text-color-theme-secondary {\n color: rgba(255, 255, 255, 0.7) !important;\n}\n.mdui-theme-layout-dark .mdui-text-color-theme-disabled {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n.mdui-theme-layout-dark .mdui-text-color-theme-divider {\n color: rgba(255, 255, 255, 0.12) !important;\n}\n.mdui-theme-layout-dark .mdui-text-color-theme-icon {\n color: #ffffff !important;\n}\n.mdui-theme-layout-dark .mdui-text-color-theme-icon-disabled {\n color: rgba(255, 255, 255, 0.3) !important;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-text-color-theme-text {\n color: #ffffff !important;\n }\n .mdui-theme-layout-auto .mdui-text-color-theme-secondary {\n color: rgba(255, 255, 255, 0.7) !important;\n }\n .mdui-theme-layout-auto .mdui-text-color-theme-disabled {\n color: rgba(255, 255, 255, 0.5) !important;\n }\n .mdui-theme-layout-auto .mdui-text-color-theme-divider {\n color: rgba(255, 255, 255, 0.12) !important;\n }\n .mdui-theme-layout-auto .mdui-text-color-theme-icon {\n color: #ffffff !important;\n }\n .mdui-theme-layout-auto .mdui-text-color-theme-icon-disabled {\n color: rgba(255, 255, 255, 0.3) !important;\n }\n}\n/**\n * =============================================================================\n * ************ Helper 辅助类 ************\n * =============================================================================\n */\n/**\n * =================== 边距\n */\n.mdui-m-a-0 {\n margin: 0px !important;\n}\n.mdui-m-t-0 {\n margin-top: 0px !important;\n}\n.mdui-m-r-0 {\n margin-right: 0px !important;\n}\n.mdui-m-b-0 {\n margin-bottom: 0px !important;\n}\n.mdui-m-l-0 {\n margin-left: 0px !important;\n}\n.mdui-m-x-0 {\n margin-right: 0px !important;\n margin-left: 0px !important;\n}\n.mdui-m-y-0 {\n margin-top: 0px !important;\n margin-bottom: 0px !important;\n}\n.mdui-p-a-0 {\n padding: 0px !important;\n}\n.mdui-p-t-0 {\n padding-top: 0px !important;\n}\n.mdui-p-r-0 {\n padding-right: 0px !important;\n}\n.mdui-p-b-0 {\n padding-bottom: 0px !important;\n}\n.mdui-p-l-0 {\n padding-left: 0px !important;\n}\n.mdui-p-x-0 {\n padding-right: 0px !important;\n padding-left: 0px !important;\n}\n.mdui-p-y-0 {\n padding-top: 0px !important;\n padding-bottom: 0px !important;\n}\n.mdui-m-a-1 {\n margin: 8px !important;\n}\n.mdui-m-t-1 {\n margin-top: 8px !important;\n}\n.mdui-m-r-1 {\n margin-right: 8px !important;\n}\n.mdui-m-b-1 {\n margin-bottom: 8px !important;\n}\n.mdui-m-l-1 {\n margin-left: 8px !important;\n}\n.mdui-m-x-1 {\n margin-right: 8px !important;\n margin-left: 8px !important;\n}\n.mdui-m-y-1 {\n margin-top: 8px !important;\n margin-bottom: 8px !important;\n}\n.mdui-p-a-1 {\n padding: 8px !important;\n}\n.mdui-p-t-1 {\n padding-top: 8px !important;\n}\n.mdui-p-r-1 {\n padding-right: 8px !important;\n}\n.mdui-p-b-1 {\n padding-bottom: 8px !important;\n}\n.mdui-p-l-1 {\n padding-left: 8px !important;\n}\n.mdui-p-x-1 {\n padding-right: 8px !important;\n padding-left: 8px !important;\n}\n.mdui-p-y-1 {\n padding-top: 8px !important;\n padding-bottom: 8px !important;\n}\n.mdui-m-a-2 {\n margin: 16px !important;\n}\n.mdui-m-t-2 {\n margin-top: 16px !important;\n}\n.mdui-m-r-2 {\n margin-right: 16px !important;\n}\n.mdui-m-b-2 {\n margin-bottom: 16px !important;\n}\n.mdui-m-l-2 {\n margin-left: 16px !important;\n}\n.mdui-m-x-2 {\n margin-right: 16px !important;\n margin-left: 16px !important;\n}\n.mdui-m-y-2 {\n margin-top: 16px !important;\n margin-bottom: 16px !important;\n}\n.mdui-p-a-2 {\n padding: 16px !important;\n}\n.mdui-p-t-2 {\n padding-top: 16px !important;\n}\n.mdui-p-r-2 {\n padding-right: 16px !important;\n}\n.mdui-p-b-2 {\n padding-bottom: 16px !important;\n}\n.mdui-p-l-2 {\n padding-left: 16px !important;\n}\n.mdui-p-x-2 {\n padding-right: 16px !important;\n padding-left: 16px !important;\n}\n.mdui-p-y-2 {\n padding-top: 16px !important;\n padding-bottom: 16px !important;\n}\n.mdui-m-a-3 {\n margin: 24px !important;\n}\n.mdui-m-t-3 {\n margin-top: 24px !important;\n}\n.mdui-m-r-3 {\n margin-right: 24px !important;\n}\n.mdui-m-b-3 {\n margin-bottom: 24px !important;\n}\n.mdui-m-l-3 {\n margin-left: 24px !important;\n}\n.mdui-m-x-3 {\n margin-right: 24px !important;\n margin-left: 24px !important;\n}\n.mdui-m-y-3 {\n margin-top: 24px !important;\n margin-bottom: 24px !important;\n}\n.mdui-p-a-3 {\n padding: 24px !important;\n}\n.mdui-p-t-3 {\n padding-top: 24px !important;\n}\n.mdui-p-r-3 {\n padding-right: 24px !important;\n}\n.mdui-p-b-3 {\n padding-bottom: 24px !important;\n}\n.mdui-p-l-3 {\n padding-left: 24px !important;\n}\n.mdui-p-x-3 {\n padding-right: 24px !important;\n padding-left: 24px !important;\n}\n.mdui-p-y-3 {\n padding-top: 24px !important;\n padding-bottom: 24px !important;\n}\n.mdui-m-a-4 {\n margin: 32px !important;\n}\n.mdui-m-t-4 {\n margin-top: 32px !important;\n}\n.mdui-m-r-4 {\n margin-right: 32px !important;\n}\n.mdui-m-b-4 {\n margin-bottom: 32px !important;\n}\n.mdui-m-l-4 {\n margin-left: 32px !important;\n}\n.mdui-m-x-4 {\n margin-right: 32px !important;\n margin-left: 32px !important;\n}\n.mdui-m-y-4 {\n margin-top: 32px !important;\n margin-bottom: 32px !important;\n}\n.mdui-p-a-4 {\n padding: 32px !important;\n}\n.mdui-p-t-4 {\n padding-top: 32px !important;\n}\n.mdui-p-r-4 {\n padding-right: 32px !important;\n}\n.mdui-p-b-4 {\n padding-bottom: 32px !important;\n}\n.mdui-p-l-4 {\n padding-left: 32px !important;\n}\n.mdui-p-x-4 {\n padding-right: 32px !important;\n padding-left: 32px !important;\n}\n.mdui-p-y-4 {\n padding-top: 32px !important;\n padding-bottom: 32px !important;\n}\n.mdui-m-a-5 {\n margin: 40px !important;\n}\n.mdui-m-t-5 {\n margin-top: 40px !important;\n}\n.mdui-m-r-5 {\n margin-right: 40px !important;\n}\n.mdui-m-b-5 {\n margin-bottom: 40px !important;\n}\n.mdui-m-l-5 {\n margin-left: 40px !important;\n}\n.mdui-m-x-5 {\n margin-right: 40px !important;\n margin-left: 40px !important;\n}\n.mdui-m-y-5 {\n margin-top: 40px !important;\n margin-bottom: 40px !important;\n}\n.mdui-p-a-5 {\n padding: 40px !important;\n}\n.mdui-p-t-5 {\n padding-top: 40px !important;\n}\n.mdui-p-r-5 {\n padding-right: 40px !important;\n}\n.mdui-p-b-5 {\n padding-bottom: 40px !important;\n}\n.mdui-p-l-5 {\n padding-left: 40px !important;\n}\n.mdui-p-x-5 {\n padding-right: 40px !important;\n padding-left: 40px !important;\n}\n.mdui-p-y-5 {\n padding-top: 40px !important;\n padding-bottom: 40px !important;\n}\n/**\n * ======================== 快速浮动\n */\n/* 向左浮动 */\n.mdui-float-left {\n float: left !important;\n}\n/* 向右浮动 */\n.mdui-float-right {\n float: right !important;\n}\n/**\n * ========================= 水平居中\n */\n/* 水平居中 */\n.mdui-center {\n display: block !important;\n margin-right: auto !important;\n margin-left: auto !important;\n}\n/**\n * ========================= 垂直居中\n */\n/* 垂直居中 */\n.mdui-valign {\n display: flex !important;\n align-items: center !important;\n}\n/**\n * ========================= 文本对齐方式\n */\n/* 文本左对齐 */\n.mdui-text-left {\n text-align: left !important;\n}\n/* 文本居中对齐 */\n.mdui-text-center {\n text-align: center !important;\n}\n/* 文本向右对齐 */\n.mdui-text-right {\n text-align: right !important;\n}\n/**\n * ========================= 文本大小写转换\n */\n/* 文本转为小写 */\n.mdui-text-lowercase {\n text-transform: lowercase !important;\n}\n/* 文本转为大写 */\n.mdui-text-uppercase {\n text-transform: uppercase !important;\n}\n/* 文本转为单词的首字母大写 */\n.mdui-text-capitalize {\n text-transform: capitalize !important;\n}\n/**\n * ======================== 文本截断\n */\n/* 文本截断 */\n.mdui-text-truncate {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n/**\n * ========================= 清除浮动\n */\n/* 清除浮动 */\n.mdui-clearfix::before,\n.mdui-clearfix::after {\n display: table;\n content: ' ';\n}\n.mdui-clearfix::after {\n clear: both;\n}\n/**\n * ========================= 隐藏内容\n */\n/* 隐藏元素 */\n.mdui-hidden,\n[hidden] {\n display: none !important;\n}\n/* 使元素不可见 */\n.mdui-invisible {\n visibility: hidden;\n}\n/* Responsive utilities 响应式工具\n ========================================================================== */\n/* 在特定屏幕的特备上隐藏 */\n@media (max-width: 599.9px) {\n .mdui-hidden-xs {\n display: none !important;\n }\n}\n@media (min-width: 600px) and (max-width: 1023.9px) {\n .mdui-hidden-sm {\n display: none !important;\n }\n}\n@media (min-width: 1024px) and (max-width: 1439.9px) {\n .mdui-hidden-md {\n display: none !important;\n }\n}\n@media (min-width: 1440px) and (max-width: 1919.9px) {\n .mdui-hidden-lg {\n display: none !important;\n }\n}\n@media (min-width: 1920px) {\n .mdui-hidden-xl {\n display: none !important;\n }\n}\n/* 在比特定屏幕小的设备上隐藏 */\n@media (max-width: 599.9px) {\n .mdui-hidden-xs-down {\n display: none !important;\n }\n}\n@media (max-width: 1023.9px) {\n .mdui-hidden-sm-down {\n display: none !important;\n }\n}\n@media (max-width: 1439.9px) {\n .mdui-hidden-md-down {\n display: none !important;\n }\n}\n@media (max-width: 1919.9px) {\n .mdui-hidden-lg-down {\n display: none !important;\n }\n}\n.mdui-hidden-xl-down {\n display: none !important;\n}\n/* 在比特定屏幕大的设备上隐藏 */\n.mdui-hidden-xs-up {\n display: none !important;\n}\n@media (min-width: 600px) {\n .mdui-hidden-sm-up {\n display: none !important;\n }\n}\n@media (min-width: 1024px) {\n .mdui-hidden-md-up {\n display: none !important;\n }\n}\n@media (min-width: 1440px) {\n .mdui-hidden-lg-up {\n display: none !important;\n }\n}\n@media (min-width: 1920px) {\n .mdui-hidden-xl-up {\n display: none !important;\n }\n}\n/**\n * =============================================================================\n * ************ Icon 图标 ************\n * =============================================================================\n */\n.mdui-icon,\n.mdui-icon::before {\n color: inherit;\n font-weight: normal;\n font-size: 24px;\n /* Preferred icon size */\n font-style: normal;\n line-height: 1;\n direction: ltr;\n letter-spacing: normal;\n white-space: nowrap;\n text-transform: none;\n vertical-align: middle;\n word-wrap: normal;\n}\n.mdui-icon {\n display: inline-block;\n text-align: center;\n}\n.mdui-icon::before {\n display: block !important;\n width: 24px;\n height: 24px;\n}\n/**\n * =============================================================================\n * ************ Material Icons ************\n * =============================================================================\n *\n * https://github.com/google/material-design-icons/\n * v3.0.1\n */\n@font-face {\n font-weight: 400;\n font-family: 'Material Icons';\n font-style: normal;\n src: local('Material Icons'), local('MaterialIcons-Regular'), url(../icons/material-icons/MaterialIcons-Regular.woff2) format('woff2'), url(../icons/material-icons/MaterialIcons-Regular.woff) format('woff');\n}\n.material-icons {\n /* stylelint-disable-next-line */\n font-family: 'Material Icons';\n /* Support for all WebKit browsers. */\n -webkit-font-smoothing: antialiased;\n /* Support for Safari and Chrome. */\n text-rendering: optimizeLegibility;\n /* Support for Firefox. */\n -moz-osx-font-smoothing: grayscale;\n /* Support for IE. */\n font-feature-settings: 'liga';\n}\n/**\n * =============================================================================\n * ************ Media 媒体工具 ************\n * =============================================================================\n */\n/* 响应式图片和视频 */\n.mdui-img-fluid,\n.mdui-video-fluid {\n display: block;\n max-width: 100%;\n height: auto;\n}\n/* 圆角图片 */\n.mdui-img-rounded {\n border-radius: 2px;\n}\n/* 圆形图片 */\n.mdui-img-circle {\n border-radius: 50%;\n}\n.mdui-video-container {\n position: relative;\n height: 0;\n padding-bottom: 56.25%;\n overflow: hidden;\n}\n.mdui-video-container iframe,\n.mdui-video-container object,\n.mdui-video-container embed {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n/**\n * =============================================================================\n * ************ Roboto 字体 ************\n * =============================================================================\n */\n@font-face {\n font-weight: 100;\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n src: local('Roboto Thin'), local('Roboto-Thin'), url('../fonts/roboto/Roboto-Thin.woff2') format('woff2'), url('../fonts/roboto/Roboto-Thin.woff') format('woff');\n}\n@font-face {\n font-weight: 100;\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n src: local('Roboto ThinItalic'), local('Roboto-ThinItalic'), url('../fonts/roboto/Roboto-ThinItalic.woff2') format('woff2'), url('../fonts/roboto/Roboto-ThinItalic.woff') format('woff');\n}\n@font-face {\n font-weight: 300;\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n src: local('Roboto Light'), local('Roboto-Light'), url('../fonts/roboto/Roboto-Light.woff2') format('woff2'), url('../fonts/roboto/Roboto-Light.woff') format('woff');\n}\n@font-face {\n font-weight: 300;\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n src: local('Roboto LightItalic'), local('Roboto-LightItalic'), url('../fonts/roboto/Roboto-LightItalic.woff2') format('woff2'), url('../fonts/roboto/Roboto-LightItalic.woff') format('woff');\n}\n@font-face {\n font-weight: 400;\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n src: local('Roboto Regular'), local('Roboto-Regular'), url('../fonts/roboto/Roboto-Regular.woff2') format('woff2'), url('../fonts/roboto/Roboto-Regular.woff') format('woff');\n}\n@font-face {\n font-weight: 400;\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n src: local('Roboto RegularItalic'), local('Roboto-RegularItalic'), url('../fonts/roboto/Roboto-RegularItalic.woff2') format('woff2'), url('../fonts/roboto/Roboto-RegularItalic.woff') format('woff');\n}\n@font-face {\n font-weight: 500;\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n src: local('Roboto Medium'), local('Roboto-Medium'), url('../fonts/roboto/Roboto-Medium.woff2') format('woff2'), url('../fonts/roboto/Roboto-Medium.woff') format('woff');\n}\n@font-face {\n font-weight: 500;\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n src: local('Roboto MediumItalic'), local('Roboto-MediumItalic'), url('../fonts/roboto/Roboto-MediumItalic.woff2') format('woff2'), url('../fonts/roboto/Roboto-MediumItalic.woff') format('woff');\n}\n@font-face {\n font-weight: 700;\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n src: local('Roboto Bold'), local('Roboto-Bold'), url('../fonts/roboto/Roboto-Bold.woff2') format('woff2'), url('../fonts/roboto/Roboto-Bold.woff') format('woff');\n}\n@font-face {\n font-weight: 700;\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n src: local('Roboto BoldItalic'), local('Roboto-BoldItalic'), url('../fonts/roboto/Roboto-BoldItalic.woff2') format('woff2'), url('../fonts/roboto/Roboto-BoldItalic.woff') format('woff');\n}\n@font-face {\n font-weight: 900;\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n src: local('Roboto Black'), local('Roboto-Black'), url('../fonts/roboto/Roboto-Black.woff2') format('woff2'), url('../fonts/roboto/Roboto-Black.woff') format('woff');\n}\n@font-face {\n font-weight: 900;\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n src: local('Roboto BlackItalic'), local('Roboto-BlackItalic'), url('../fonts/roboto/Roboto-BlackItalic.woff2') format('woff2'), url('../fonts/roboto/Roboto-BlackItalic.woff') format('woff');\n}\n/**\n * =============================================================================\n * ************ Typography 样式排版 ************\n * =============================================================================\n */\n/* .mdui-typo-display-4 */\n.mdui-typo-display-4,\n.mdui-typo-display-4-opacity {\n font-weight: 300;\n font-size: 112px;\n letter-spacing: -0.04em;\n}\n.mdui-typo-display-4-opacity {\n opacity: 0.54;\n}\n/* .mdui-typo-display-3 */\n.mdui-typo-display-3,\n.mdui-typo-display-3-opacity {\n font-weight: 400;\n font-size: 56px;\n letter-spacing: -0.02em;\n}\n.mdui-typo-display-3-opacity {\n opacity: 0.54;\n}\n/* .mdui-typo-display-2 */\n.mdui-typo-display-2,\n.mdui-typo-display-2-opacity {\n font-weight: 400;\n font-size: 45px;\n letter-spacing: 0;\n}\n.mdui-typo-display-2-opacity {\n opacity: 0.54;\n}\n/* .mdui-typo-display-1 */\n.mdui-typo-display-1,\n.mdui-typo-display-1-opacity {\n font-weight: 400;\n font-size: 34px;\n letter-spacing: 0;\n}\n.mdui-typo-display-1-opacity {\n opacity: 0.54;\n}\n/* .mdui-typo-headline */\n.mdui-typo-headline,\n.mdui-typo-headline-opacity {\n font-weight: 400;\n font-size: 24px;\n -moz-osx-font-smoothing: grayscale;\n}\n.mdui-typo-headline-opacity {\n opacity: 0.87;\n}\n/* .mdui-typo-title */\n.mdui-typo-title,\n.mdui-typo-title-opacity {\n font-weight: 500;\n font-size: 20px;\n letter-spacing: 0.02em;\n}\n.mdui-typo-title-opacity {\n opacity: 0.87;\n}\n.mdui-typo-subheading,\n.mdui-typo-subheading-opacity {\n font-weight: 400;\n font-size: 16px;\n letter-spacing: 0.04em;\n}\n.mdui-typo-subheading-opacity {\n opacity: 0.87;\n}\n.mdui-typo-body-2,\n.mdui-typo-body-2-opacity {\n font-weight: 500;\n font-size: 14px;\n letter-spacing: 0.04em;\n}\n.mdui-typo-body-2-opacity {\n opacity: 0.87;\n}\n.mdui-typo-body-1,\n.mdui-typo-body-1-opacity {\n font-weight: 400;\n font-size: 14px;\n letter-spacing: 0.04em;\n}\n.mdui-typo-body-1-opacity {\n opacity: 0.87;\n}\n.mdui-typo-caption,\n.mdui-typo-caption-opacity {\n font-weight: 400;\n font-size: 12px;\n letter-spacing: 0.08em;\n}\n.mdui-typo-caption-opacity {\n opacity: 0.54;\n}\n/**\n * =============================================================================\n * ************ Typography 文章排版 ************\n * =============================================================================\n */\n.mdui-typo {\n line-height: 1.8;\n word-wrap: break-word;\n /* a */\n /* small */\n /* blockquote */\n /* mark */\n /* h1 - h6 */\n /* code */\n /* pre code */\n /* abbr */\n /* ins */\n /* u */\n /* del */\n /* hr */\n /* pre */\n /* kbd */\n /* ul / ol */\n /* img, video */\n}\n.mdui-typo address,\n.mdui-typo caption,\n.mdui-typo cite,\n.mdui-typo code,\n.mdui-typo dfn,\n.mdui-typo th {\n font-weight: 400;\n font-style: normal;\n}\n.mdui-typo caption,\n.mdui-typo th {\n text-align: left;\n}\n.mdui-typo q::before,\n.mdui-typo q::after {\n content: '';\n}\n.mdui-typo pre,\n.mdui-typo code,\n.mdui-typo kbd,\n.mdui-typo samp,\n.mdui-typo pre tt {\n font-family: Consolas, Courier, 'Courier New', monospace;\n}\n.mdui-typo figcaption {\n color: rgba(0, 0, 0, 0.54);\n font-size: 80%;\n}\n.mdui-typo [draggable],\n.mdui-typo [draggable=\"true\"] {\n cursor: move;\n}\n.mdui-typo [draggable=\"false\"] {\n cursor: inherit;\n}\n.mdui-typo p,\n.mdui-typo pre,\n.mdui-typo ul,\n.mdui-typo ol,\n.mdui-typo dl,\n.mdui-typo form,\n.mdui-typo hr,\n.mdui-typo figure,\n.mdui-typo table,\n.mdui-typo .mdui-table,\n.mdui-typo .mdui-table-fluid {\n margin: 0 0 1.2em 0;\n}\n.mdui-typo p:last-child,\n.mdui-typo pre:last-child,\n.mdui-typo ul:last-child,\n.mdui-typo ol:last-child,\n.mdui-typo dl:last-child,\n.mdui-typo form:last-child,\n.mdui-typo hr:last-child,\n.mdui-typo figure:last-child,\n.mdui-typo table:last-child,\n.mdui-typo .mdui-table:last-child,\n.mdui-typo .mdui-table-fluid:last-child {\n margin-bottom: 0;\n}\n.mdui-typo a {\n color: #FF4081;\n position: relative;\n display: inline-block;\n overflow: hidden;\n text-decoration: none;\n vertical-align: top;\n outline: none;\n}\n.mdui-typo a::before {\n position: absolute;\n top: auto;\n bottom: 1px;\n left: 0;\n width: 100%;\n height: 1px;\n background-color: #FF4081;\n transform: scaleX(0);\n backface-visibility: hidden;\n transition: all 0.2s;\n content: ' ';\n}\n.mdui-typo a:hover::before,\n.mdui-typo a:focus::before {\n transform: scaleX(1);\n}\n.mdui-typo small {\n font-size: 80%;\n}\n.mdui-typo blockquote {\n margin: 1em 3em 1em 2em;\n padding-left: 1em;\n font-weight: 400;\n border-left: 4px solid rgba(0, 0, 0, 0.12);\n}\n@media only screen and (max-width: 599.9px) {\n .mdui-typo blockquote {\n margin: 1em 0;\n }\n}\n.mdui-typo blockquote:last-child {\n margin-bottom: 0;\n}\n.mdui-typo blockquote footer {\n color: rgba(0, 0, 0, 0.54);\n font-size: 86%;\n}\n.mdui-typo mark {\n margin: 0 5px;\n padding: 2px;\n background: #fffdd1;\n border-bottom: 1px solid #ffedce;\n}\n.mdui-typo h1,\n.mdui-typo h2,\n.mdui-typo h3,\n.mdui-typo h4,\n.mdui-typo h5,\n.mdui-typo h6 {\n margin-top: 1.2em;\n margin-bottom: 0.6em;\n color: inherit;\n font-weight: 400;\n font-family: inherit;\n line-height: 1.35;\n}\n.mdui-typo h1:last-child,\n.mdui-typo h2:last-child,\n.mdui-typo h3:last-child,\n.mdui-typo h4:last-child,\n.mdui-typo h5:last-child,\n.mdui-typo h6:last-child {\n margin-bottom: 0;\n}\n.mdui-typo h1 small,\n.mdui-typo h2 small,\n.mdui-typo h3 small,\n.mdui-typo h4 small,\n.mdui-typo h5 small,\n.mdui-typo h6 small {\n color: rgba(0, 0, 0, 0.54);\n font-weight: 400;\n font-size: 65%;\n line-height: 1;\n}\n.mdui-typo h1 {\n font-size: 2em;\n}\n.mdui-typo h2 {\n font-size: 1.8em;\n}\n.mdui-typo h3 {\n font-size: 1.6em;\n}\n.mdui-typo h4 {\n font-size: 1.4em;\n}\n.mdui-typo h5 {\n font-size: 1.2em;\n}\n.mdui-typo h6 {\n font-size: 1.1em;\n}\n.mdui-typo code {\n padding: 2px 6px;\n color: #c7254e;\n background-color: #f7f7f9;\n border-radius: 2px;\n}\n.mdui-typo pre code {\n padding: 0;\n color: inherit;\n font-size: inherit;\n line-height: 1.7;\n background-color: transparent;\n border-radius: 0;\n}\n.mdui-typo abbr[title] {\n text-decoration: none;\n border-bottom: 1px dotted;\n cursor: help;\n}\n.mdui-typo ins {\n text-decoration: none;\n border-bottom: 1px solid ;\n}\n.mdui-typo u {\n text-decoration: none;\n border-bottom: 1px solid;\n}\n.mdui-typo del {\n text-decoration: line-through;\n}\n.mdui-typo hr {\n height: 10px;\n margin-bottom: 0.8em;\n border: none;\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n}\n.mdui-typo pre {\n padding: 12px 16px;\n overflow-x: auto;\n border: 1px solid rgba(0, 0, 0, 0.12);\n border-radius: 2px;\n -webkit-overflow-scrolling: touch;\n}\n.mdui-typo kbd {\n padding: 2px 6px;\n color: #fff;\n font-size: 90%;\n background-color: #333;\n border-radius: 2px;\n}\n.mdui-typo ul {\n padding-left: 2em;\n list-style: disc;\n}\n.mdui-typo ol {\n padding-left: 2em;\n list-style: decimal;\n}\n.mdui-typo li ul,\n.mdui-typo li ol {\n margin: 0.8em 0;\n}\n.mdui-typo li ul {\n list-style: circle;\n}\n.mdui-typo img,\n.mdui-typo video {\n max-width: 100%;\n}\n.mdui-typo figure {\n text-align: center;\n}\n.mdui-typo figure figcaption {\n margin-top: 8px;\n color: #999;\n font-size: 14px;\n}\n.mdui-typo figure figcaption:empty::before {\n z-index: -1;\n color: #bfbfbf;\n cursor: text;\n content: attr(placeholder);\n}\n/**\n * =============================================================================\n * ************ Typo 强调色 ************\n * =============================================================================\n */\n.mdui-theme-accent-amber .mdui-typo a {\n color: #FFD740;\n}\n.mdui-theme-accent-amber .mdui-typo a::before {\n background-color: #FFD740;\n}\n.mdui-theme-accent-blue .mdui-typo a {\n color: #448AFF;\n}\n.mdui-theme-accent-blue .mdui-typo a::before {\n background-color: #448AFF;\n}\n.mdui-theme-accent-cyan .mdui-typo a {\n color: #18FFFF;\n}\n.mdui-theme-accent-cyan .mdui-typo a::before {\n background-color: #18FFFF;\n}\n.mdui-theme-accent-deep-orange .mdui-typo a {\n color: #FF6E40;\n}\n.mdui-theme-accent-deep-orange .mdui-typo a::before {\n background-color: #FF6E40;\n}\n.mdui-theme-accent-deep-purple .mdui-typo a {\n color: #7C4DFF;\n}\n.mdui-theme-accent-deep-purple .mdui-typo a::before {\n background-color: #7C4DFF;\n}\n.mdui-theme-accent-green .mdui-typo a {\n color: #69F0AE;\n}\n.mdui-theme-accent-green .mdui-typo a::before {\n background-color: #69F0AE;\n}\n.mdui-theme-accent-indigo .mdui-typo a {\n color: #536DFE;\n}\n.mdui-theme-accent-indigo .mdui-typo a::before {\n background-color: #536DFE;\n}\n.mdui-theme-accent-light-blue .mdui-typo a {\n color: #40C4FF;\n}\n.mdui-theme-accent-light-blue .mdui-typo a::before {\n background-color: #40C4FF;\n}\n.mdui-theme-accent-light-green .mdui-typo a {\n color: #B2FF59;\n}\n.mdui-theme-accent-light-green .mdui-typo a::before {\n background-color: #B2FF59;\n}\n.mdui-theme-accent-lime .mdui-typo a {\n color: #EEFF41;\n}\n.mdui-theme-accent-lime .mdui-typo a::before {\n background-color: #EEFF41;\n}\n.mdui-theme-accent-orange .mdui-typo a {\n color: #FFAB40;\n}\n.mdui-theme-accent-orange .mdui-typo a::before {\n background-color: #FFAB40;\n}\n.mdui-theme-accent-pink .mdui-typo a {\n color: #FF4081;\n}\n.mdui-theme-accent-pink .mdui-typo a::before {\n background-color: #FF4081;\n}\n.mdui-theme-accent-purple .mdui-typo a {\n color: #E040FB;\n}\n.mdui-theme-accent-purple .mdui-typo a::before {\n background-color: #E040FB;\n}\n.mdui-theme-accent-red .mdui-typo a {\n color: #FF5252;\n}\n.mdui-theme-accent-red .mdui-typo a::before {\n background-color: #FF5252;\n}\n.mdui-theme-accent-teal .mdui-typo a {\n color: #64FFDA;\n}\n.mdui-theme-accent-teal .mdui-typo a::before {\n background-color: #64FFDA;\n}\n.mdui-theme-accent-yellow .mdui-typo a {\n color: #FFFF00;\n}\n.mdui-theme-accent-yellow .mdui-typo a::before {\n background-color: #FFFF00;\n}\n/**\n * =============================================================================\n * ************ Typo dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-typo blockquote {\n border-left-color: rgba(255, 255, 255, 0.12);\n}\n.mdui-theme-layout-dark .mdui-typo blockquote footer {\n color: rgba(255, 255, 255, 0.7);\n}\n.mdui-theme-layout-dark .mdui-typo figcaption {\n color: rgba(255, 255, 255, 0.7);\n}\n.mdui-theme-layout-dark .mdui-typo mark {\n background: #aaa;\n border-bottom-color: #bbb;\n}\n.mdui-theme-layout-dark .mdui-typo h1 small,\n.mdui-theme-layout-dark .mdui-typo h2 small,\n.mdui-theme-layout-dark .mdui-typo h3 small,\n.mdui-theme-layout-dark .mdui-typo h4 small,\n.mdui-theme-layout-dark .mdui-typo h5 small,\n.mdui-theme-layout-dark .mdui-typo h6 small {\n color: rgba(255, 255, 255, 0.7);\n}\n.mdui-theme-layout-dark .mdui-typo code {\n color: #FFCDD2;\n background-color: #424242;\n}\n.mdui-theme-layout-dark .mdui-typo pre {\n background: #424242;\n border-color: rgba(255, 255, 255, 0.12);\n}\n.mdui-theme-layout-dark .mdui-typo kbd {\n background: #424242;\n}\n.mdui-theme-layout-dark .mdui-typo hr {\n border-color: rgba(255, 255, 255, 0.12);\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-typo blockquote {\n border-left-color: rgba(255, 255, 255, 0.12);\n }\n .mdui-theme-layout-auto .mdui-typo blockquote footer {\n color: rgba(255, 255, 255, 0.7);\n }\n .mdui-theme-layout-auto .mdui-typo figcaption {\n color: rgba(255, 255, 255, 0.7);\n }\n .mdui-theme-layout-auto .mdui-typo mark {\n background: #aaa;\n border-bottom-color: #bbb;\n }\n .mdui-theme-layout-auto .mdui-typo h1 small,\n .mdui-theme-layout-auto .mdui-typo h2 small,\n .mdui-theme-layout-auto .mdui-typo h3 small,\n .mdui-theme-layout-auto .mdui-typo h4 small,\n .mdui-theme-layout-auto .mdui-typo h5 small,\n .mdui-theme-layout-auto .mdui-typo h6 small {\n color: rgba(255, 255, 255, 0.7);\n }\n .mdui-theme-layout-auto .mdui-typo code {\n color: #FFCDD2;\n background-color: #424242;\n }\n .mdui-theme-layout-auto .mdui-typo pre {\n background: #424242;\n border-color: rgba(255, 255, 255, 0.12);\n }\n .mdui-theme-layout-auto .mdui-typo kbd {\n background: #424242;\n }\n .mdui-theme-layout-auto .mdui-typo hr {\n border-color: rgba(255, 255, 255, 0.12);\n }\n}\n/**\n * =============================================================================\n * ************ Grid 网格系统 ************\n * =============================================================================\n */\n.mdui-container,\n.mdui-container-fluid {\n box-sizing: border-box;\n margin-right: auto;\n margin-left: auto;\n padding-right: 8px;\n padding-left: 8px;\n}\n.mdui-container::after,\n.mdui-container-fluid::after {\n display: table;\n clear: both;\n content: '';\n}\n.mdui-container {\n width: 96%;\n max-width: 1280px;\n}\n@media (min-width: 600px) {\n .mdui-container {\n width: 94%;\n }\n}\n@media (min-width: 1024px) {\n .mdui-container {\n width: 92%;\n }\n}\n.mdui-row,\n[class*=\"mdui-row-\"] {\n margin-right: -8px;\n margin-left: -8px;\n}\n.mdui-row::after,\n[class*=\"mdui-row-\"]::after {\n display: table;\n clear: both;\n content: '';\n}\n[class*=\"mdui-col-xs-\"],\n[class*=\"mdui-col-sm-\"],\n[class*=\"mdui-col-md-\"],\n[class*=\"mdui-col-lg-\"],\n[class*=\"mdui-col-xl-\"],\n.mdui-col {\n position: relative;\n box-sizing: border-box;\n min-height: 1px;\n padding-right: 8px;\n padding-left: 8px;\n}\n/* 取消列间距 */\n.mdui-row-gapless .mdui-col,\n.mdui-row-gapless [class*=\"mdui-col-xs-\"],\n.mdui-row-gapless [class*=\"mdui-col-sm-\"],\n.mdui-row-gapless [class*=\"mdui-col-md-\"],\n.mdui-row-gapless [class*=\"mdui-col-lg-\"],\n.mdui-row-gapless [class*=\"mdui-col-xl-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n.mdui-row-gapless .mdui-row,\n.mdui-row-gapless [class*=\"mdui-row-\"] {\n margin-right: 0;\n margin-left: 0;\n}\n.mdui-col-xs-1 {\n float: left;\n width: 8.333333%;\n}\n.mdui-col-offset-xs-1 {\n margin-left: 8.333333%;\n}\n.mdui-row-xs-1 .mdui-col {\n float: left;\n width: 100%;\n}\n.mdui-col-xs-2 {\n float: left;\n width: 16.666667%;\n}\n.mdui-col-offset-xs-2 {\n margin-left: 16.666667%;\n}\n.mdui-row-xs-2 .mdui-col {\n float: left;\n width: 50%;\n}\n.mdui-col-xs-3 {\n float: left;\n width: 25%;\n}\n.mdui-col-offset-xs-3 {\n margin-left: 25%;\n}\n.mdui-row-xs-3 .mdui-col {\n float: left;\n width: 33.333333%;\n}\n.mdui-col-xs-4 {\n float: left;\n width: 33.333333%;\n}\n.mdui-col-offset-xs-4 {\n margin-left: 33.333333%;\n}\n.mdui-row-xs-4 .mdui-col {\n float: left;\n width: 25%;\n}\n.mdui-col-xs-5 {\n float: left;\n width: 41.666667%;\n}\n.mdui-col-offset-xs-5 {\n margin-left: 41.666667%;\n}\n.mdui-row-xs-5 .mdui-col {\n float: left;\n width: 20%;\n}\n.mdui-col-xs-6 {\n float: left;\n width: 50%;\n}\n.mdui-col-offset-xs-6 {\n margin-left: 50%;\n}\n.mdui-row-xs-6 .mdui-col {\n float: left;\n width: 16.666667%;\n}\n.mdui-col-xs-7 {\n float: left;\n width: 58.333333%;\n}\n.mdui-col-offset-xs-7 {\n margin-left: 58.333333%;\n}\n.mdui-row-xs-7 .mdui-col {\n float: left;\n width: 14.285714%;\n}\n.mdui-col-xs-8 {\n float: left;\n width: 66.666667%;\n}\n.mdui-col-offset-xs-8 {\n margin-left: 66.666667%;\n}\n.mdui-row-xs-8 .mdui-col {\n float: left;\n width: 12.5%;\n}\n.mdui-col-xs-9 {\n float: left;\n width: 75%;\n}\n.mdui-col-offset-xs-9 {\n margin-left: 75%;\n}\n.mdui-row-xs-9 .mdui-col {\n float: left;\n width: 11.111111%;\n}\n.mdui-col-xs-10 {\n float: left;\n width: 83.333333%;\n}\n.mdui-col-offset-xs-10 {\n margin-left: 83.333333%;\n}\n.mdui-row-xs-10 .mdui-col {\n float: left;\n width: 10%;\n}\n.mdui-col-xs-11 {\n float: left;\n width: 91.666667%;\n}\n.mdui-col-offset-xs-11 {\n margin-left: 91.666667%;\n}\n.mdui-row-xs-11 .mdui-col {\n float: left;\n width: 9.090909%;\n}\n.mdui-col-xs-12 {\n float: left;\n width: 100%;\n}\n.mdui-col-offset-xs-12 {\n margin-left: 100%;\n}\n.mdui-row-xs-12 .mdui-col {\n float: left;\n width: 8.333333%;\n}\n@media (min-width: 600px) {\n .mdui-col-sm-1 {\n float: left;\n width: 8.333333%;\n }\n .mdui-col-offset-sm-1 {\n margin-left: 8.333333%;\n }\n .mdui-row-sm-1 .mdui-col {\n float: left;\n width: 100%;\n }\n .mdui-col-sm-2 {\n float: left;\n width: 16.666667%;\n }\n .mdui-col-offset-sm-2 {\n margin-left: 16.666667%;\n }\n .mdui-row-sm-2 .mdui-col {\n float: left;\n width: 50%;\n }\n .mdui-col-sm-3 {\n float: left;\n width: 25%;\n }\n .mdui-col-offset-sm-3 {\n margin-left: 25%;\n }\n .mdui-row-sm-3 .mdui-col {\n float: left;\n width: 33.333333%;\n }\n .mdui-col-sm-4 {\n float: left;\n width: 33.333333%;\n }\n .mdui-col-offset-sm-4 {\n margin-left: 33.333333%;\n }\n .mdui-row-sm-4 .mdui-col {\n float: left;\n width: 25%;\n }\n .mdui-col-sm-5 {\n float: left;\n width: 41.666667%;\n }\n .mdui-col-offset-sm-5 {\n margin-left: 41.666667%;\n }\n .mdui-row-sm-5 .mdui-col {\n float: left;\n width: 20%;\n }\n .mdui-col-sm-6 {\n float: left;\n width: 50%;\n }\n .mdui-col-offset-sm-6 {\n margin-left: 50%;\n }\n .mdui-row-sm-6 .mdui-col {\n float: left;\n width: 16.666667%;\n }\n .mdui-col-sm-7 {\n float: left;\n width: 58.333333%;\n }\n .mdui-col-offset-sm-7 {\n margin-left: 58.333333%;\n }\n .mdui-row-sm-7 .mdui-col {\n float: left;\n width: 14.285714%;\n }\n .mdui-col-sm-8 {\n float: left;\n width: 66.666667%;\n }\n .mdui-col-offset-sm-8 {\n margin-left: 66.666667%;\n }\n .mdui-row-sm-8 .mdui-col {\n float: left;\n width: 12.5%;\n }\n .mdui-col-sm-9 {\n float: left;\n width: 75%;\n }\n .mdui-col-offset-sm-9 {\n margin-left: 75%;\n }\n .mdui-row-sm-9 .mdui-col {\n float: left;\n width: 11.111111%;\n }\n .mdui-col-sm-10 {\n float: left;\n width: 83.333333%;\n }\n .mdui-col-offset-sm-10 {\n margin-left: 83.333333%;\n }\n .mdui-row-sm-10 .mdui-col {\n float: left;\n width: 10%;\n }\n .mdui-col-sm-11 {\n float: left;\n width: 91.666667%;\n }\n .mdui-col-offset-sm-11 {\n margin-left: 91.666667%;\n }\n .mdui-row-sm-11 .mdui-col {\n float: left;\n width: 9.090909%;\n }\n .mdui-col-sm-12 {\n float: left;\n width: 100%;\n }\n .mdui-col-offset-sm-12 {\n margin-left: 100%;\n }\n .mdui-row-sm-12 .mdui-col {\n float: left;\n width: 8.333333%;\n }\n}\n@media (min-width: 1024px) {\n .mdui-col-md-1 {\n float: left;\n width: 8.333333%;\n }\n .mdui-col-offset-md-1 {\n margin-left: 8.333333%;\n }\n .mdui-row-md-1 .mdui-col {\n float: left;\n width: 100%;\n }\n .mdui-col-md-2 {\n float: left;\n width: 16.666667%;\n }\n .mdui-col-offset-md-2 {\n margin-left: 16.666667%;\n }\n .mdui-row-md-2 .mdui-col {\n float: left;\n width: 50%;\n }\n .mdui-col-md-3 {\n float: left;\n width: 25%;\n }\n .mdui-col-offset-md-3 {\n margin-left: 25%;\n }\n .mdui-row-md-3 .mdui-col {\n float: left;\n width: 33.333333%;\n }\n .mdui-col-md-4 {\n float: left;\n width: 33.333333%;\n }\n .mdui-col-offset-md-4 {\n margin-left: 33.333333%;\n }\n .mdui-row-md-4 .mdui-col {\n float: left;\n width: 25%;\n }\n .mdui-col-md-5 {\n float: left;\n width: 41.666667%;\n }\n .mdui-col-offset-md-5 {\n margin-left: 41.666667%;\n }\n .mdui-row-md-5 .mdui-col {\n float: left;\n width: 20%;\n }\n .mdui-col-md-6 {\n float: left;\n width: 50%;\n }\n .mdui-col-offset-md-6 {\n margin-left: 50%;\n }\n .mdui-row-md-6 .mdui-col {\n float: left;\n width: 16.666667%;\n }\n .mdui-col-md-7 {\n float: left;\n width: 58.333333%;\n }\n .mdui-col-offset-md-7 {\n margin-left: 58.333333%;\n }\n .mdui-row-md-7 .mdui-col {\n float: left;\n width: 14.285714%;\n }\n .mdui-col-md-8 {\n float: left;\n width: 66.666667%;\n }\n .mdui-col-offset-md-8 {\n margin-left: 66.666667%;\n }\n .mdui-row-md-8 .mdui-col {\n float: left;\n width: 12.5%;\n }\n .mdui-col-md-9 {\n float: left;\n width: 75%;\n }\n .mdui-col-offset-md-9 {\n margin-left: 75%;\n }\n .mdui-row-md-9 .mdui-col {\n float: left;\n width: 11.111111%;\n }\n .mdui-col-md-10 {\n float: left;\n width: 83.333333%;\n }\n .mdui-col-offset-md-10 {\n margin-left: 83.333333%;\n }\n .mdui-row-md-10 .mdui-col {\n float: left;\n width: 10%;\n }\n .mdui-col-md-11 {\n float: left;\n width: 91.666667%;\n }\n .mdui-col-offset-md-11 {\n margin-left: 91.666667%;\n }\n .mdui-row-md-11 .mdui-col {\n float: left;\n width: 9.090909%;\n }\n .mdui-col-md-12 {\n float: left;\n width: 100%;\n }\n .mdui-col-offset-md-12 {\n margin-left: 100%;\n }\n .mdui-row-md-12 .mdui-col {\n float: left;\n width: 8.333333%;\n }\n}\n@media (min-width: 1440px) {\n .mdui-col-lg-1 {\n float: left;\n width: 8.333333%;\n }\n .mdui-col-offset-lg-1 {\n margin-left: 8.333333%;\n }\n .mdui-row-lg-1 .mdui-col {\n float: left;\n width: 100%;\n }\n .mdui-col-lg-2 {\n float: left;\n width: 16.666667%;\n }\n .mdui-col-offset-lg-2 {\n margin-left: 16.666667%;\n }\n .mdui-row-lg-2 .mdui-col {\n float: left;\n width: 50%;\n }\n .mdui-col-lg-3 {\n float: left;\n width: 25%;\n }\n .mdui-col-offset-lg-3 {\n margin-left: 25%;\n }\n .mdui-row-lg-3 .mdui-col {\n float: left;\n width: 33.333333%;\n }\n .mdui-col-lg-4 {\n float: left;\n width: 33.333333%;\n }\n .mdui-col-offset-lg-4 {\n margin-left: 33.333333%;\n }\n .mdui-row-lg-4 .mdui-col {\n float: left;\n width: 25%;\n }\n .mdui-col-lg-5 {\n float: left;\n width: 41.666667%;\n }\n .mdui-col-offset-lg-5 {\n margin-left: 41.666667%;\n }\n .mdui-row-lg-5 .mdui-col {\n float: left;\n width: 20%;\n }\n .mdui-col-lg-6 {\n float: left;\n width: 50%;\n }\n .mdui-col-offset-lg-6 {\n margin-left: 50%;\n }\n .mdui-row-lg-6 .mdui-col {\n float: left;\n width: 16.666667%;\n }\n .mdui-col-lg-7 {\n float: left;\n width: 58.333333%;\n }\n .mdui-col-offset-lg-7 {\n margin-left: 58.333333%;\n }\n .mdui-row-lg-7 .mdui-col {\n float: left;\n width: 14.285714%;\n }\n .mdui-col-lg-8 {\n float: left;\n width: 66.666667%;\n }\n .mdui-col-offset-lg-8 {\n margin-left: 66.666667%;\n }\n .mdui-row-lg-8 .mdui-col {\n float: left;\n width: 12.5%;\n }\n .mdui-col-lg-9 {\n float: left;\n width: 75%;\n }\n .mdui-col-offset-lg-9 {\n margin-left: 75%;\n }\n .mdui-row-lg-9 .mdui-col {\n float: left;\n width: 11.111111%;\n }\n .mdui-col-lg-10 {\n float: left;\n width: 83.333333%;\n }\n .mdui-col-offset-lg-10 {\n margin-left: 83.333333%;\n }\n .mdui-row-lg-10 .mdui-col {\n float: left;\n width: 10%;\n }\n .mdui-col-lg-11 {\n float: left;\n width: 91.666667%;\n }\n .mdui-col-offset-lg-11 {\n margin-left: 91.666667%;\n }\n .mdui-row-lg-11 .mdui-col {\n float: left;\n width: 9.090909%;\n }\n .mdui-col-lg-12 {\n float: left;\n width: 100%;\n }\n .mdui-col-offset-lg-12 {\n margin-left: 100%;\n }\n .mdui-row-lg-12 .mdui-col {\n float: left;\n width: 8.333333%;\n }\n}\n@media (min-width: 1920px) {\n .mdui-col-xl-1 {\n float: left;\n width: 8.333333%;\n }\n .mdui-col-offset-xl-1 {\n margin-left: 8.333333%;\n }\n .mdui-row-xl-1 .mdui-col {\n float: left;\n width: 100%;\n }\n .mdui-col-xl-2 {\n float: left;\n width: 16.666667%;\n }\n .mdui-col-offset-xl-2 {\n margin-left: 16.666667%;\n }\n .mdui-row-xl-2 .mdui-col {\n float: left;\n width: 50%;\n }\n .mdui-col-xl-3 {\n float: left;\n width: 25%;\n }\n .mdui-col-offset-xl-3 {\n margin-left: 25%;\n }\n .mdui-row-xl-3 .mdui-col {\n float: left;\n width: 33.333333%;\n }\n .mdui-col-xl-4 {\n float: left;\n width: 33.333333%;\n }\n .mdui-col-offset-xl-4 {\n margin-left: 33.333333%;\n }\n .mdui-row-xl-4 .mdui-col {\n float: left;\n width: 25%;\n }\n .mdui-col-xl-5 {\n float: left;\n width: 41.666667%;\n }\n .mdui-col-offset-xl-5 {\n margin-left: 41.666667%;\n }\n .mdui-row-xl-5 .mdui-col {\n float: left;\n width: 20%;\n }\n .mdui-col-xl-6 {\n float: left;\n width: 50%;\n }\n .mdui-col-offset-xl-6 {\n margin-left: 50%;\n }\n .mdui-row-xl-6 .mdui-col {\n float: left;\n width: 16.666667%;\n }\n .mdui-col-xl-7 {\n float: left;\n width: 58.333333%;\n }\n .mdui-col-offset-xl-7 {\n margin-left: 58.333333%;\n }\n .mdui-row-xl-7 .mdui-col {\n float: left;\n width: 14.285714%;\n }\n .mdui-col-xl-8 {\n float: left;\n width: 66.666667%;\n }\n .mdui-col-offset-xl-8 {\n margin-left: 66.666667%;\n }\n .mdui-row-xl-8 .mdui-col {\n float: left;\n width: 12.5%;\n }\n .mdui-col-xl-9 {\n float: left;\n width: 75%;\n }\n .mdui-col-offset-xl-9 {\n margin-left: 75%;\n }\n .mdui-row-xl-9 .mdui-col {\n float: left;\n width: 11.111111%;\n }\n .mdui-col-xl-10 {\n float: left;\n width: 83.333333%;\n }\n .mdui-col-offset-xl-10 {\n margin-left: 83.333333%;\n }\n .mdui-row-xl-10 .mdui-col {\n float: left;\n width: 10%;\n }\n .mdui-col-xl-11 {\n float: left;\n width: 91.666667%;\n }\n .mdui-col-offset-xl-11 {\n margin-left: 91.666667%;\n }\n .mdui-row-xl-11 .mdui-col {\n float: left;\n width: 9.090909%;\n }\n .mdui-col-xl-12 {\n float: left;\n width: 100%;\n }\n .mdui-col-offset-xl-12 {\n margin-left: 100%;\n }\n .mdui-row-xl-12 .mdui-col {\n float: left;\n width: 8.333333%;\n }\n}\n/**\n * =============================================================================\n * ************ Shadow 阴影 ************\n * =============================================================================\n */\n.mdui-shadow-0 {\n box-shadow: none !important;\n}\n.mdui-shadow-1 {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-2 {\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-3 {\n box-shadow: 0 3px 3px -2px rgba(0, 0, 0, 0.2), 0 3px 4px 0 rgba(0, 0, 0, 0.14), 0 1px 8px 0 rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-4 {\n box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-5 {\n box-shadow: 0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 5px 8px 0 rgba(0, 0, 0, 0.14), 0 1px 14px 0 rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-6 {\n box-shadow: 0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-7 {\n box-shadow: 0 4px 5px -2px rgba(0, 0, 0, 0.2), 0 7px 10px 1px rgba(0, 0, 0, 0.14), 0 2px 16px 1px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-8 {\n box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-9 {\n box-shadow: 0 5px 6px -3px rgba(0, 0, 0, 0.2), 0 9px 12px 1px rgba(0, 0, 0, 0.14), 0 3px 16px 2px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-10 {\n box-shadow: 0 6px 6px -3px rgba(0, 0, 0, 0.2), 0 10px 14px 1px rgba(0, 0, 0, 0.14), 0 4px 18px 3px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-11 {\n box-shadow: 0 6px 7px -4px rgba(0, 0, 0, 0.2), 0 11px 15px 1px rgba(0, 0, 0, 0.14), 0 4px 20px 3px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-12 {\n box-shadow: 0 7px 8px -4px rgba(0, 0, 0, 0.2), 0 12px 17px 2px rgba(0, 0, 0, 0.14), 0 5px 22px 4px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-13 {\n box-shadow: 0 7px 8px -4px rgba(0, 0, 0, 0.2), 0 13px 19px 2px rgba(0, 0, 0, 0.14), 0 5px 24px 4px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-14 {\n box-shadow: 0 7px 9px -4px rgba(0, 0, 0, 0.2), 0 14px 21px 2px rgba(0, 0, 0, 0.14), 0 5px 26px 4px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-15 {\n box-shadow: 0 8px 9px -5px rgba(0, 0, 0, 0.2), 0 15px 22px 2px rgba(0, 0, 0, 0.14), 0 6px 28px 5px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-16 {\n box-shadow: 0 8px 10px -5px rgba(0, 0, 0, 0.2), 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-17 {\n box-shadow: 0 8px 11px -5px rgba(0, 0, 0, 0.2), 0 17px 26px 2px rgba(0, 0, 0, 0.14), 0 6px 32px 5px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-18 {\n box-shadow: 0 9px 11px -5px rgba(0, 0, 0, 0.2), 0 18px 28px 2px rgba(0, 0, 0, 0.14), 0 7px 34px 6px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-19 {\n box-shadow: 0 9px 12px -6px rgba(0, 0, 0, 0.2), 0 19px 29px 2px rgba(0, 0, 0, 0.14), 0 7px 36px 6px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-20 {\n box-shadow: 0 10px 13px -6px rgba(0, 0, 0, 0.2), 0 20px 31px 3px rgba(0, 0, 0, 0.14), 0 8px 38px 7px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-21 {\n box-shadow: 0 10px 13px -6px rgba(0, 0, 0, 0.2), 0 21px 33px 3px rgba(0, 0, 0, 0.14), 0 8px 40px 7px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-22 {\n box-shadow: 0 10px 14px -6px rgba(0, 0, 0, 0.2), 0 22px 35px 3px rgba(0, 0, 0, 0.14), 0 8px 42px 7px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-23 {\n box-shadow: 0 11px 14px -7px rgba(0, 0, 0, 0.2), 0 23px 36px 3px rgba(0, 0, 0, 0.14), 0 9px 44px 8px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-24 {\n box-shadow: 0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12) !important;\n}\n/* 鼠标悬浮时加深阴影 */\n.mdui-hoverable {\n transition: box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: box-shadow;\n}\n.mdui-hoverable:hover,\n.mdui-hoverable:focus {\n box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);\n}\n/**\n * =============================================================================\n * ************ Headroom ************\n * =============================================================================\n */\n.mdui-headroom {\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;\n}\n/* 固定在顶部时 */\n.mdui-headroom-pinned-top {\n transform: translate3d(0, 0, 0) !important;\n}\n/* 在顶部隐藏时 */\n.mdui-headroom-unpinned-top {\n transform: translate3d(0, -100%, 0) !important;\n box-shadow: none !important;\n}\n/* 固定在底部时 */\n.mdui-headroom-pinned-down {\n transform: translate3d(0, 0, 0) !important;\n}\n/* 在底部隐藏时 */\n.mdui-headroom-unpinned-down {\n transform: translate3d(0, 100%, 0) !important;\n box-shadow: none !important;\n}\n/* 固定应用栏中的工具栏 */\n.mdui-headroom-pinned-toolbar {\n transform: translate3d(0, 0, 0) !important;\n}\n/* 隐藏应用栏中的工具栏 */\n.mdui-headroom-unpinned-toolbar {\n transform: translate3d(0, -56px, 0) !important;\n}\n@media (min-width: 600px) {\n .mdui-headroom-unpinned-toolbar {\n transform: translate3d(0, -64px, 0) !important;\n }\n}\n@media (orientation: landscape) and (max-width: 959.9px) {\n .mdui-headroom-unpinned-toolbar {\n transform: translate3d(0, -48px, 0) !important;\n }\n}\n/**\n * =============================================================================\n * ************ Collapse 折叠插件 ************\n * =============================================================================\n */\n.mdui-collapse-item-header .mdui-collapse-item-arrow,\n.mdui-collapse-item-header.mdui-collapse-item-arrow {\n transform: rotate(0);\n transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: transform;\n}\n.mdui-collapse-item-body {\n height: 0;\n margin-top: 0;\n margin-bottom: 0;\n padding-top: 0;\n padding-bottom: 0;\n overflow: hidden;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: height;\n}\n.mdui-collapse-item-body .mdui-list-item {\n padding-left: 72px;\n}\n.mdui-collapse-item-open > .mdui-collapse-item-header .mdui-collapse-item-arrow,\n.mdui-collapse-item-open > .mdui-collapse-item-header.mdui-collapse-item-arrow {\n transform: rotate(180deg);\n}\n.mdui-collapse-item-open > .mdui-collapse-item-body {\n height: auto;\n}\n/**\n * =============================================================================\n * ************ Expansion panel 可扩展面板 ************\n * =============================================================================\n */\n/* 可扩展面板 */\n.mdui-panel {\n box-sizing: border-box;\n width: 100%;\n}\n/* 面板项 */\n.mdui-panel-item {\n color: rgba(0, 0, 0, 0.87);\n background-color: #fff;\n transition: margin 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: margin;\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n}\n.mdui-panel-item:last-child {\n border-bottom: none;\n}\n/* 面板头部 */\n.mdui-panel-item-header {\n position: relative;\n display: flex;\n align-items: center;\n box-sizing: border-box;\n width: 100%;\n height: 48px;\n padding: 0 24px;\n font-size: 15px;\n cursor: pointer;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: height, background-color;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.mdui-panel-item-header:active {\n background-color: #EEEEEE;\n}\n/* 面板项标题 */\n.mdui-panel-item-title {\n box-sizing: border-box;\n width: 36%;\n min-width: 36%;\n padding-right: 16px;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n/* 面板项内容 */\n.mdui-panel-item-summary {\n flex-grow: 1;\n box-sizing: border-box;\n padding-right: 16px;\n color: rgba(0, 0, 0, 0.54);\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n/* 展开收起的图标 */\n.mdui-panel-item-arrow {\n position: absolute;\n top: 12px;\n right: 24px;\n color: rgba(0, 0, 0, 0.54);\n transform: rotate(0);\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n user-select: none;\n will-change: transform, top;\n}\n.mdui-panel-item-summary + .mdui-panel-item-arrow {\n position: relative;\n top: 0 !important;\n right: 0;\n}\n/* 面板项内容 */\n.mdui-panel-item-body {\n height: 0;\n padding: 0 24px;\n overflow: hidden;\n transition: height 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: height;\n}\n.mdui-panel-item-body::before,\n.mdui-panel-item-body::after {\n display: table;\n content: ' ';\n}\n.mdui-panel-item-body::after {\n clear: both;\n}\n.mdui-panel-item-body::before,\n.mdui-panel-item-body::after {\n display: table;\n content: ' ';\n}\n.mdui-panel-item-body::after {\n clear: both;\n}\n.mdui-panel-item-body::after {\n height: 16px;\n}\n/* 面板项操作栏 */\n.mdui-panel-item-actions {\n display: block;\n width: 100%;\n margin: 16px -24px 0 -24px;\n padding: 16px 24px 0 24px;\n text-align: right;\n border-top: 1px solid rgba(0, 0, 0, 0.12);\n}\n.mdui-panel-item-actions .mdui-btn {\n margin-left: 8px;\n}\n.mdui-panel-item-actions .mdui-btn:first-child {\n margin-left: 0;\n}\n/* 打开状态的面板项 */\n.mdui-panel-item-open {\n height: auto;\n margin-top: 16px;\n margin-bottom: 16px;\n}\n.mdui-panel-item-open > .mdui-panel-item-header {\n height: 64px;\n}\n.mdui-panel-item-open > .mdui-panel-item-header .mdui-panel-item-arrow {\n top: 20px;\n transform: rotate(180deg);\n}\n.mdui-panel-item-open > .mdui-panel-item-body {\n height: auto;\n}\n/* 使打开项上下没有边距 */\n.mdui-panel-gapless {\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n}\n.mdui-panel-gapless .mdui-panel-item {\n box-shadow: none;\n}\n.mdui-panel-gapless .mdui-panel-item-open {\n margin-top: 0;\n margin-bottom: 0;\n}\n/* 弹出面板 */\n.mdui-panel-popout .mdui-panel-item-open {\n margin-right: -16px;\n margin-left: -16px;\n}\n/**\n * =============================================================================\n * ************ Expansion panel dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark {\n /* stylelint-disable-next-line */\n}\n.mdui-theme-layout-dark .mdui-panel-item {\n color: #fff;\n background-color: #303030;\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n}\n.mdui-theme-layout-dark .mdui-panel-item:last-child {\n border-bottom: none;\n}\n.mdui-theme-layout-dark .mdui-panel-item-header:active {\n background-color: #424242;\n}\n.mdui-theme-layout-dark .mdui-panel-item-summary {\n color: rgba(255, 255, 255, 0.7);\n}\n.mdui-theme-layout-dark .mdui-panel-item-arrow {\n color: #ffffff;\n}\n.mdui-theme-layout-dark .mdui-panel-item-actions {\n border-top: 1px solid rgba(255, 255, 255, 0.12);\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto {\n /* stylelint-disable-next-line */\n }\n .mdui-theme-layout-auto .mdui-panel-item {\n color: #fff;\n background-color: #303030;\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n }\n .mdui-theme-layout-auto .mdui-panel-item:last-child {\n border-bottom: none;\n }\n .mdui-theme-layout-auto .mdui-panel-item-header:active {\n background-color: #424242;\n }\n .mdui-theme-layout-auto .mdui-panel-item-summary {\n color: rgba(255, 255, 255, 0.7);\n }\n .mdui-theme-layout-auto .mdui-panel-item-arrow {\n color: #ffffff;\n }\n .mdui-theme-layout-auto .mdui-panel-item-actions {\n border-top: 1px solid rgba(255, 255, 255, 0.12);\n }\n}\n/**\n * =============================================================================\n * ************ Table 表格 ************\n * =============================================================================\n */\n.mdui-table {\n position: relative;\n width: 100%;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.12);\n border-bottom: none;\n border-collapse: separate;\n border-spacing: 0;\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n}\n.mdui-table tbody tr {\n position: relative;\n transition: background-color 0.28s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.mdui-table th,\n.mdui-table td {\n position: relative;\n box-sizing: border-box;\n padding: 12px 28px;\n text-align: left;\n vertical-align: middle;\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n}\n.mdui-table th {\n color: rgba(0, 0, 0, 0.54);\n font-weight: 700;\n font-size: 13px;\n line-height: 32px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.mdui-table td {\n color: rgba(0, 0, 0, 0.87);\n font-size: 14px;\n line-height: 24px;\n}\n/* 每一行前面的复选框 */\n.mdui-table-cell-checkbox {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n padding-left: 24px !important;\n}\n.mdui-table-cell-checkbox .mdui-checkbox {\n margin-top: 7px;\n}\n.mdui-table-cell-checkbox + td,\n.mdui-table-cell-checkbox + th {\n padding-left: 6px !important;\n}\nth.mdui-table-cell-checkbox .mdui-checkbox {\n margin-top: 11px;\n}\n.mdui-table th:last-child,\n.mdui-table td:last-child {\n padding-right: 24px;\n}\n.mdui-table th:first-child,\n.mdui-table td:first-child {\n padding-right: 0;\n padding-left: 24px;\n}\n.mdui-table th:nth-child(2),\n.mdui-table td:nth-child(2) {\n padding-left: 24px;\n}\n/* 鼠标悬浮时行背景加深 */\n.mdui-table-hoverable tbody tr:hover {\n background-color: #EEEEEE;\n}\n/* 表格放到该元素内,使表格产生滚动条时只在该元素内滚动 */\n.mdui-table-fluid {\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n border: 1px solid rgba(0, 0, 0, 0.12);\n border-bottom: none;\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n}\n.mdui-table-fluid .mdui-table {\n box-shadow: none;\n margin: 0;\n border: none;\n}\n/* 数字列,右对齐 */\n.mdui-table-col-numeric {\n text-align: right !important;\n}\n/* 行处于选中状态 */\n.mdui-table-row-selected {\n background-color: #F5F5F5;\n}\n/**\n * =============================================================================\n * ************ Table dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-table {\n background-color: #303030;\n border: 1px solid rgba(255, 255, 255, 0.12);\n border-bottom: none;\n}\n.mdui-theme-layout-dark .mdui-table th,\n.mdui-theme-layout-dark .mdui-table td {\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n}\n.mdui-theme-layout-dark .mdui-table th {\n color: rgba(255, 255, 255, 0.7);\n}\n.mdui-theme-layout-dark .mdui-table td {\n color: #ffffff;\n}\n.mdui-theme-layout-dark .mdui-table-hoverable tbody tr:hover {\n background-color: #616161;\n}\n.mdui-theme-layout-dark .mdui-table-fluid {\n border: 1px solid rgba(255, 255, 255, 0.12);\n border-bottom: none;\n}\n.mdui-theme-layout-dark .mdui-table-fluid .mdui-table {\n box-shadow: none;\n border: none;\n}\n.mdui-theme-layout-dark .mdui-table-row-selected {\n background-color: #424242;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-table {\n background-color: #303030;\n border: 1px solid rgba(255, 255, 255, 0.12);\n border-bottom: none;\n }\n .mdui-theme-layout-auto .mdui-table th,\n .mdui-theme-layout-auto .mdui-table td {\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n }\n .mdui-theme-layout-auto .mdui-table th {\n color: rgba(255, 255, 255, 0.7);\n }\n .mdui-theme-layout-auto .mdui-table td {\n color: #ffffff;\n }\n .mdui-theme-layout-auto .mdui-table-hoverable tbody tr:hover {\n background-color: #616161;\n }\n .mdui-theme-layout-auto .mdui-table-fluid {\n border: 1px solid rgba(255, 255, 255, 0.12);\n border-bottom: none;\n }\n .mdui-theme-layout-auto .mdui-table-fluid .mdui-table {\n box-shadow: none;\n border: none;\n }\n .mdui-theme-layout-auto .mdui-table-row-selected {\n background-color: #424242;\n }\n}\n/**\n * =============================================================================\n * ************ Divider 分割线 ************\n * =============================================================================\n */\n.mdui-divider,\n.mdui-divider-light,\n.mdui-divider-dark,\n.mdui-divider-inset,\n.mdui-divider-inset-light,\n.mdui-divider-inset-dark {\n height: 1px;\n margin: -1px 0 0 0;\n border: none;\n}\n.mdui-divider-inset,\n.mdui-divider-inset-light,\n.mdui-divider-inset-dark {\n margin-left: 72px;\n}\n.mdui-divider,\n.mdui-divider-inset {\n background-color: rgba(0, 0, 0, 0.12);\n}\n.mdui-divider-light,\n.mdui-divider-inset-light {\n background-color: rgba(255, 255, 255, 0.12);\n}\n.mdui-divider-dark,\n.mdui-divider-inset-dark {\n background-color: rgba(0, 0, 0, 0.12);\n}\n/**\n * =============================================================================\n * ************ Divider dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-divider,\n.mdui-theme-layout-dark .mdui-divider-inset {\n background-color: rgba(255, 255, 255, 0.12);\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-divider,\n .mdui-theme-layout-auto .mdui-divider-inset {\n background-color: rgba(255, 255, 255, 0.12);\n }\n}\n/**\n * =============================================================================\n * ************ 涟漪动画 ************\n * =============================================================================\n */\n.mdui-ripple {\n position: relative;\n overflow: hidden;\n cursor: pointer;\n user-select: none;\n}\n/* Ripple */\n.mdui-ripple-wave {\n position: absolute !important;\n top: 0;\n left: 0;\n z-index: 1;\n margin: 0;\n padding: 0;\n font-size: 0;\n background-color: rgba(0, 0, 0, 0.1);\n border-radius: 50%;\n transform: translate3d(0, 0, 0) scale(0);\n transition-duration: 1400ms;\n pointer-events: none;\n}\n/* 有背景色的默认使用白色涟漪 */\n.mdui-ripple[class*=\"mdui-color-\"] .mdui-ripple-wave {\n background-color: rgba(255, 255, 255, 0.3);\n}\n/* 白色涟漪 */\n.mdui-ripple-white .mdui-ripple-wave {\n background-color: rgba(255, 255, 255, 0.3) !important;\n}\n/* 黑色涟漪 */\n.mdui-ripple-black .mdui-ripple-wave {\n background-color: rgba(0, 0, 0, 0.1) !important;\n}\n.mdui-ripple-wave-fill {\n opacity: 0.35;\n transition-duration: 300ms;\n}\n.mdui-ripple-wave-out {\n opacity: 0;\n transition-duration: 600ms;\n}\n/**\n * =============================================================================\n * ************ Ripple 颜色 ************\n * =============================================================================\n */\n.mdui-ripple-amber .mdui-ripple-wave {\n background-color: rgba(255, 193, 7, 0.3) !important;\n}\n.mdui-ripple-blue .mdui-ripple-wave {\n background-color: rgba(33, 150, 243, 0.3) !important;\n}\n.mdui-ripple-blue-grey .mdui-ripple-wave {\n background-color: rgba(96, 125, 139, 0.3) !important;\n}\n.mdui-ripple-brown .mdui-ripple-wave {\n background-color: rgba(121, 85, 72, 0.3) !important;\n}\n.mdui-ripple-cyan .mdui-ripple-wave {\n background-color: rgba(0, 188, 212, 0.3) !important;\n}\n.mdui-ripple-deep-orange .mdui-ripple-wave {\n background-color: rgba(255, 87, 34, 0.3) !important;\n}\n.mdui-ripple-deep-purple .mdui-ripple-wave {\n background-color: rgba(103, 58, 183, 0.3) !important;\n}\n.mdui-ripple-green .mdui-ripple-wave {\n background-color: rgba(76, 175, 80, 0.3) !important;\n}\n.mdui-ripple-grey .mdui-ripple-wave {\n background-color: rgba(158, 158, 158, 0.3) !important;\n}\n.mdui-ripple-indigo .mdui-ripple-wave {\n background-color: rgba(63, 81, 181, 0.3) !important;\n}\n.mdui-ripple-light-blue .mdui-ripple-wave {\n background-color: rgba(3, 169, 244, 0.3) !important;\n}\n.mdui-ripple-light-green .mdui-ripple-wave {\n background-color: rgba(139, 195, 74, 0.3) !important;\n}\n.mdui-ripple-lime .mdui-ripple-wave {\n background-color: rgba(205, 220, 57, 0.3) !important;\n}\n.mdui-ripple-orange .mdui-ripple-wave {\n background-color: rgba(255, 152, 0, 0.3) !important;\n}\n.mdui-ripple-pink .mdui-ripple-wave {\n background-color: rgba(233, 30, 99, 0.3) !important;\n}\n.mdui-ripple-purple .mdui-ripple-wave {\n background-color: rgba(156, 39, 176, 0.3) !important;\n}\n.mdui-ripple-red .mdui-ripple-wave {\n background-color: rgba(244, 67, 54, 0.3) !important;\n}\n.mdui-ripple-teal .mdui-ripple-wave {\n background-color: rgba(0, 150, 136, 0.3) !important;\n}\n.mdui-ripple-yellow .mdui-ripple-wave {\n background-color: rgba(255, 235, 59, 0.3) !important;\n}\n/**\n * =============================================================================\n * ************ Ripple dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-ripple-wave {\n background-color: rgba(255, 255, 255, 0.3);\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-ripple-wave {\n background-color: rgba(255, 255, 255, 0.3);\n }\n}\n/**\n * =============================================================================\n * ************ Text Field 文本框 ************\n * =============================================================================\n */\n/* 文本框外层 */\n.mdui-textfield {\n position: relative;\n padding-top: 16px;\n padding-bottom: 8px;\n overflow: hidden;\n}\n.mdui-textfield-has-bottom {\n padding-bottom: 28px;\n}\n/* 输入框 */\n.mdui-textfield-input {\n display: block;\n box-sizing: border-box;\n width: 100%;\n height: 36px;\n margin: 0;\n padding: 8px 0;\n overflow: hidden;\n color: rgba(0, 0, 0, 0.87);\n font-size: 16px;\n font-family: inherit;\n line-height: 20px;\n background: none;\n border: none;\n border-bottom: 1px solid rgba(0, 0, 0, 0.42);\n border-radius: 0;\n outline: none;\n box-shadow: none;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 0.2s;\n transition-property: border-bottom-color, padding-right, box-shadow;\n appearance: none;\n resize: none;\n}\n.mdui-textfield-input::-webkit-input-placeholder {\n color: inherit;\n opacity: 0.42;\n}\n.mdui-textfield-input:not([disabled]):hover {\n border-bottom: 1px solid rgba(0, 0, 0, 0.87);\n box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.87);\n cursor: pointer;\n}\n.mdui-textfield-input[rows] {\n height: auto !important;\n overflow: auto;\n -webkit-overflow-scrolling: touch;\n}\n/* 文本框 label */\n.mdui-textfield-label {\n display: block;\n width: 100%;\n color: rgba(0, 0, 0, 0.54);\n font-size: 16px;\n transform: scale(0.75) translateY(0);\n transform-origin: left;\n transition: all 0.2s;\n pointer-events: none;\n}\n/* 表单验证错误提示、帮助文本提示 */\n.mdui-textfield-error,\n.mdui-textfield-helper {\n position: absolute;\n bottom: 8px;\n height: 12px;\n font-size: 12px;\n line-height: 12px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.mdui-textfield-error {\n color: rgba(255, 23, 68, 0.87);\n visibility: hidden;\n}\n.mdui-textfield-helper {\n color: rgba(0, 0, 0, 0.54);\n}\n/* 表单中的图标\n ========== */\n.mdui-textfield .mdui-icon {\n position: absolute;\n bottom: 8px;\n padding: 6px;\n color: rgba(0, 0, 0, 0.54);\n}\n.mdui-textfield .mdui-icon ~ .mdui-textfield-label,\n.mdui-textfield .mdui-icon ~ .mdui-textfield-input,\n.mdui-textfield .mdui-icon ~ .mdui-textfield-error,\n.mdui-textfield .mdui-icon ~ .mdui-textfield-helper,\n.mdui-textfield .mdui-icon ~ .mdui-textfield-flex-wrap {\n /* stylelint-disable-next-line */\n width: calc(100% - 56px);\n margin-left: 56px;\n}\n.mdui-textfield-has-bottom .mdui-icon {\n bottom: 28px;\n}\n/* 聚焦状态的文本框\n ============= */\n.mdui-textfield-focus .mdui-textfield-input,\n.mdui-textfield-focus .mdui-textfield-input:hover {\n border-bottom-color: #C51162;\n box-shadow: 0 1px 0 0 #C51162;\n}\n.mdui-textfield-focus .mdui-textfield-label,\n.mdui-textfield-focus .mdui-icon {\n color: rgba(197, 17, 98, 0.87);\n}\n/* 含有浮动标签的文本框\n ================ */\n.mdui-textfield-floating-label .mdui-textfield-label {\n color: rgba(0, 0, 0, 0.35);\n transform: scale(1) translateY(27px);\n}\n.mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-textfield-floating-label.mdui-textfield-not-empty .mdui-textfield-label {\n color: rgba(0, 0, 0, 0.65);\n transform: scale(0.75) translateY(0);\n}\n.mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label {\n color: #E91E63;\n}\n/* 可展开文本框,默认向右展开\n ========== */\n.mdui-textfield-expandable {\n width: 36px;\n min-height: 36px;\n padding: 1px 0;\n transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.mdui-textfield-expandable .mdui-icon {\n bottom: 0;\n padding: 0;\n}\n.mdui-textfield-expandable .mdui-textfield-input {\n /* stylelint-disable-next-line */\n width: calc(100% - 36px);\n margin-left: 36px;\n padding-right: 0;\n}\n.mdui-textfield-expandable .mdui-textfield-icon {\n position: absolute;\n top: 0;\n left: 0;\n}\n.mdui-textfield-expandable .mdui-textfield-close {\n position: absolute;\n top: 0;\n right: 0;\n transform: scale(0);\n}\n.mdui-textfield-expandable.mdui-textfield-expanded {\n width: 100%;\n}\n.mdui-textfield-expandable.mdui-textfield-expanded .mdui-textfield-input {\n padding-right: 36px;\n}\n.mdui-textfield-expandable.mdui-textfield-expanded .mdui-textfield-close {\n transform: scale(1);\n}\n/* 表单验证不通过\n =========== */\n.mdui-textfield-invalid .mdui-textfield-input,\n.mdui-textfield-invalid-html5 .mdui-textfield-input,\n.mdui-textfield-invalid.mdui-textfield-focus .mdui-textfield-input,\n.mdui-textfield-invalid-html5.mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FF1744 !important;\n box-shadow: 0 1px 0 0 #FF1744 !important;\n}\n.mdui-textfield-invalid .mdui-textfield-label,\n.mdui-textfield-invalid-html5 .mdui-textfield-label {\n color: #FF1744 !important;\n}\n.mdui-textfield-invalid.mdui-textfield-floating-label .mdui-textfield-label,\n.mdui-textfield-invalid-html5.mdui-textfield-floating-label .mdui-textfield-label {\n color: rgba(255, 23, 68, 0.35) !important;\n}\n.mdui-textfield-invalid.mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-textfield-invalid-html5.mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-textfield-invalid.mdui-textfield-floating-label.mdui-textfield-not-empty .mdui-textfield-label,\n.mdui-textfield-invalid-html5.mdui-textfield-floating-label.mdui-textfield-not-empty .mdui-textfield-label {\n color: #FF1744 !important;\n}\n.mdui-textfield-invalid .mdui-textfield-error,\n.mdui-textfield-invalid-html5 .mdui-textfield-error {\n visibility: visible;\n}\n.mdui-textfield-invalid .mdui-textfield-error + .mdui-textfield-helper,\n.mdui-textfield-invalid-html5 .mdui-textfield-error + .mdui-textfield-helper {\n visibility: hidden;\n}\n/* 禁用表单\n ====== */\n.mdui-textfield-disabled .mdui-textfield-label,\n.mdui-textfield-disabled .mdui-textfield-input::-webkit-input-placeholder {\n color: rgba(0, 0, 0, 0.38);\n}\n.mdui-textfield-disabled .mdui-textfield-input {\n color: rgba(0, 0, 0, 0.42);\n cursor: default;\n}\n.mdui-textfield-disabled .mdui-textfield-input {\n border-bottom: 1px dashed rgba(0, 0, 0, 0.42);\n}\n/* 字数统计\n ====== */\n.mdui-textfield-counter {\n position: absolute;\n right: 8px;\n bottom: 8px;\n height: 12px;\n color: rgba(0, 0, 0, 0.54);\n font-size: 12px;\n line-height: 12px;\n}\n/**\n * =============================================================================\n * ************ Textfield dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-textfield-input {\n color: #fff;\n border-bottom-color: rgba(255, 255, 255, 0.7);\n}\n.mdui-theme-layout-dark .mdui-textfield-input::-webkit-input-placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\n.mdui-theme-layout-dark .mdui-textfield-input:not([disabled]):hover {\n border-bottom-color: #ffffff;\n box-shadow: 0 1px 0 0 #ffffff;\n}\n.mdui-theme-layout-dark .mdui-textfield .mdui-icon {\n color: rgba(255, 255, 255, 0.7);\n}\n.mdui-theme-layout-dark .mdui-textfield-label {\n color: rgba(255, 255, 255, 0.7);\n}\n.mdui-theme-layout-dark .mdui-textfield-floating-label .mdui-textfield-label {\n color: rgba(255, 255, 255, 0.35);\n}\n.mdui-theme-layout-dark .mdui-textfield-error {\n color: #FF1744;\n}\n.mdui-theme-layout-dark .mdui-textfield-helper {\n color: rgba(255, 255, 255, 0.7);\n}\n.mdui-theme-layout-dark .mdui-textfield-counter {\n color: rgba(255, 255, 255, 0.7);\n}\n.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input,\n.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input:hover {\n border-bottom-color: #FF4081;\n box-shadow: 0 1px 0 0 #FF4081;\n}\n.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label {\n color: #FF4081;\n}\n.mdui-theme-layout-dark .mdui-textfield-disabled .mdui-textfield-label,\n.mdui-theme-layout-dark .mdui-textfield-disabled .mdui-textfield-input::-webkit-input-placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\n.mdui-theme-layout-dark .mdui-textfield-disabled .mdui-textfield-input {\n color: rgba(255, 255, 255, 0.5);\n}\n.mdui-theme-layout-dark .mdui-textfield-disabled .mdui-textfield-input {\n border-bottom-color: rgba(255, 255, 255, 0.7);\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-textfield-input {\n color: #fff;\n border-bottom-color: rgba(255, 255, 255, 0.7);\n }\n .mdui-theme-layout-auto .mdui-textfield-input::-webkit-input-placeholder {\n color: rgba(255, 255, 255, 0.5);\n }\n .mdui-theme-layout-auto .mdui-textfield-input:not([disabled]):hover {\n border-bottom-color: #ffffff;\n box-shadow: 0 1px 0 0 #ffffff;\n }\n .mdui-theme-layout-auto .mdui-textfield .mdui-icon {\n color: rgba(255, 255, 255, 0.7);\n }\n .mdui-theme-layout-auto .mdui-textfield-label {\n color: rgba(255, 255, 255, 0.7);\n }\n .mdui-theme-layout-auto .mdui-textfield-floating-label .mdui-textfield-label {\n color: rgba(255, 255, 255, 0.35);\n }\n .mdui-theme-layout-auto .mdui-textfield-error {\n color: #FF1744;\n }\n .mdui-theme-layout-auto .mdui-textfield-helper {\n color: rgba(255, 255, 255, 0.7);\n }\n .mdui-theme-layout-auto .mdui-textfield-counter {\n color: rgba(255, 255, 255, 0.7);\n }\n .mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input,\n .mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input:hover {\n border-bottom-color: #FF4081;\n box-shadow: 0 1px 0 0 #FF4081;\n }\n .mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label {\n color: #FF4081;\n }\n .mdui-theme-layout-auto .mdui-textfield-disabled .mdui-textfield-label,\n .mdui-theme-layout-auto .mdui-textfield-disabled .mdui-textfield-input::-webkit-input-placeholder {\n color: rgba(255, 255, 255, 0.5);\n }\n .mdui-theme-layout-auto .mdui-textfield-disabled .mdui-textfield-input {\n color: rgba(255, 255, 255, 0.5);\n }\n .mdui-theme-layout-auto .mdui-textfield-disabled .mdui-textfield-input {\n border-bottom-color: rgba(255, 255, 255, 0.7);\n }\n}\n/**\n * =============================================================================\n * ************ Textfield 强调色 ************\n * =============================================================================\n */\n.mdui-theme-accent-amber .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FFAB00;\n box-shadow: 0 1px 0 0 #FFAB00;\n}\n.mdui-theme-accent-amber .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-amber .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-amber .mdui-textfield-focus .mdui-icon {\n color: rgba(255, 171, 0, 0.87);\n}\n.mdui-theme-accent-amber.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FFD740;\n box-shadow: 0 1px 0 0 #FFD740;\n}\n.mdui-theme-accent-amber.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-amber.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-amber.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #FFD740;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-amber.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FFD740;\n box-shadow: 0 1px 0 0 #FFD740;\n }\n .mdui-theme-accent-amber.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-amber.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-amber.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #FFD740;\n }\n}\n.mdui-theme-accent-blue .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #2962FF;\n box-shadow: 0 1px 0 0 #2962FF;\n}\n.mdui-theme-accent-blue .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-blue .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-blue .mdui-textfield-focus .mdui-icon {\n color: rgba(41, 98, 255, 0.87);\n}\n.mdui-theme-accent-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #448AFF;\n box-shadow: 0 1px 0 0 #448AFF;\n}\n.mdui-theme-accent-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #448AFF;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #448AFF;\n box-shadow: 0 1px 0 0 #448AFF;\n }\n .mdui-theme-accent-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #448AFF;\n }\n}\n.mdui-theme-accent-cyan .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #00B8D4;\n box-shadow: 0 1px 0 0 #00B8D4;\n}\n.mdui-theme-accent-cyan .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-cyan .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-cyan .mdui-textfield-focus .mdui-icon {\n color: rgba(0, 184, 212, 0.87);\n}\n.mdui-theme-accent-cyan.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #18FFFF;\n box-shadow: 0 1px 0 0 #18FFFF;\n}\n.mdui-theme-accent-cyan.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-cyan.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-cyan.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #18FFFF;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-cyan.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #18FFFF;\n box-shadow: 0 1px 0 0 #18FFFF;\n }\n .mdui-theme-accent-cyan.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-cyan.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-cyan.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #18FFFF;\n }\n}\n.mdui-theme-accent-deep-orange .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #DD2C00;\n box-shadow: 0 1px 0 0 #DD2C00;\n}\n.mdui-theme-accent-deep-orange .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-deep-orange .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-deep-orange .mdui-textfield-focus .mdui-icon {\n color: rgba(221, 44, 0, 0.87);\n}\n.mdui-theme-accent-deep-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FF6E40;\n box-shadow: 0 1px 0 0 #FF6E40;\n}\n.mdui-theme-accent-deep-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-deep-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-deep-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #FF6E40;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-deep-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FF6E40;\n box-shadow: 0 1px 0 0 #FF6E40;\n }\n .mdui-theme-accent-deep-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-deep-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-deep-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #FF6E40;\n }\n}\n.mdui-theme-accent-deep-purple .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #6200EA;\n box-shadow: 0 1px 0 0 #6200EA;\n}\n.mdui-theme-accent-deep-purple .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-deep-purple .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-deep-purple .mdui-textfield-focus .mdui-icon {\n color: rgba(98, 0, 234, 0.87);\n}\n.mdui-theme-accent-deep-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #7C4DFF;\n box-shadow: 0 1px 0 0 #7C4DFF;\n}\n.mdui-theme-accent-deep-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-deep-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-deep-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #7C4DFF;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-deep-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #7C4DFF;\n box-shadow: 0 1px 0 0 #7C4DFF;\n }\n .mdui-theme-accent-deep-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-deep-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-deep-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #7C4DFF;\n }\n}\n.mdui-theme-accent-green .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #00C853;\n box-shadow: 0 1px 0 0 #00C853;\n}\n.mdui-theme-accent-green .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-green .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-green .mdui-textfield-focus .mdui-icon {\n color: rgba(0, 200, 83, 0.87);\n}\n.mdui-theme-accent-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #69F0AE;\n box-shadow: 0 1px 0 0 #69F0AE;\n}\n.mdui-theme-accent-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #69F0AE;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #69F0AE;\n box-shadow: 0 1px 0 0 #69F0AE;\n }\n .mdui-theme-accent-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #69F0AE;\n }\n}\n.mdui-theme-accent-indigo .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #304FFE;\n box-shadow: 0 1px 0 0 #304FFE;\n}\n.mdui-theme-accent-indigo .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-indigo .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-indigo .mdui-textfield-focus .mdui-icon {\n color: rgba(48, 79, 254, 0.87);\n}\n.mdui-theme-accent-indigo.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #536DFE;\n box-shadow: 0 1px 0 0 #536DFE;\n}\n.mdui-theme-accent-indigo.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-indigo.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-indigo.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #536DFE;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-indigo.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #536DFE;\n box-shadow: 0 1px 0 0 #536DFE;\n }\n .mdui-theme-accent-indigo.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-indigo.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-indigo.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #536DFE;\n }\n}\n.mdui-theme-accent-light-blue .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #0091EA;\n box-shadow: 0 1px 0 0 #0091EA;\n}\n.mdui-theme-accent-light-blue .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-light-blue .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-light-blue .mdui-textfield-focus .mdui-icon {\n color: rgba(0, 145, 234, 0.87);\n}\n.mdui-theme-accent-light-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #40C4FF;\n box-shadow: 0 1px 0 0 #40C4FF;\n}\n.mdui-theme-accent-light-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-light-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-light-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #40C4FF;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-light-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #40C4FF;\n box-shadow: 0 1px 0 0 #40C4FF;\n }\n .mdui-theme-accent-light-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-light-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-light-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #40C4FF;\n }\n}\n.mdui-theme-accent-light-green .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #64DD17;\n box-shadow: 0 1px 0 0 #64DD17;\n}\n.mdui-theme-accent-light-green .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-light-green .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-light-green .mdui-textfield-focus .mdui-icon {\n color: rgba(100, 221, 23, 0.87);\n}\n.mdui-theme-accent-light-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #B2FF59;\n box-shadow: 0 1px 0 0 #B2FF59;\n}\n.mdui-theme-accent-light-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-light-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-light-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #B2FF59;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-light-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #B2FF59;\n box-shadow: 0 1px 0 0 #B2FF59;\n }\n .mdui-theme-accent-light-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-light-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-light-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #B2FF59;\n }\n}\n.mdui-theme-accent-lime .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #AEEA00;\n box-shadow: 0 1px 0 0 #AEEA00;\n}\n.mdui-theme-accent-lime .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-lime .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-lime .mdui-textfield-focus .mdui-icon {\n color: rgba(174, 234, 0, 0.87);\n}\n.mdui-theme-accent-lime.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #EEFF41;\n box-shadow: 0 1px 0 0 #EEFF41;\n}\n.mdui-theme-accent-lime.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-lime.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-lime.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #EEFF41;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-lime.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #EEFF41;\n box-shadow: 0 1px 0 0 #EEFF41;\n }\n .mdui-theme-accent-lime.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-lime.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-lime.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #EEFF41;\n }\n}\n.mdui-theme-accent-orange .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FF6D00;\n box-shadow: 0 1px 0 0 #FF6D00;\n}\n.mdui-theme-accent-orange .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-orange .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-orange .mdui-textfield-focus .mdui-icon {\n color: rgba(255, 109, 0, 0.87);\n}\n.mdui-theme-accent-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FFAB40;\n box-shadow: 0 1px 0 0 #FFAB40;\n}\n.mdui-theme-accent-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #FFAB40;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FFAB40;\n box-shadow: 0 1px 0 0 #FFAB40;\n }\n .mdui-theme-accent-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #FFAB40;\n }\n}\n.mdui-theme-accent-pink .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #C51162;\n box-shadow: 0 1px 0 0 #C51162;\n}\n.mdui-theme-accent-pink .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-pink .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-pink .mdui-textfield-focus .mdui-icon {\n color: rgba(197, 17, 98, 0.87);\n}\n.mdui-theme-accent-pink.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FF4081;\n box-shadow: 0 1px 0 0 #FF4081;\n}\n.mdui-theme-accent-pink.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-pink.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-pink.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #FF4081;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-pink.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FF4081;\n box-shadow: 0 1px 0 0 #FF4081;\n }\n .mdui-theme-accent-pink.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-pink.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-pink.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #FF4081;\n }\n}\n.mdui-theme-accent-purple .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #AA00FF;\n box-shadow: 0 1px 0 0 #AA00FF;\n}\n.mdui-theme-accent-purple .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-purple .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-purple .mdui-textfield-focus .mdui-icon {\n color: rgba(170, 0, 255, 0.87);\n}\n.mdui-theme-accent-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #E040FB;\n box-shadow: 0 1px 0 0 #E040FB;\n}\n.mdui-theme-accent-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #E040FB;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #E040FB;\n box-shadow: 0 1px 0 0 #E040FB;\n }\n .mdui-theme-accent-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #E040FB;\n }\n}\n.mdui-theme-accent-red .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #D50000;\n box-shadow: 0 1px 0 0 #D50000;\n}\n.mdui-theme-accent-red .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-red .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-red .mdui-textfield-focus .mdui-icon {\n color: rgba(213, 0, 0, 0.87);\n}\n.mdui-theme-accent-red.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FF5252;\n box-shadow: 0 1px 0 0 #FF5252;\n}\n.mdui-theme-accent-red.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-red.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-red.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #FF5252;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-red.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FF5252;\n box-shadow: 0 1px 0 0 #FF5252;\n }\n .mdui-theme-accent-red.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-red.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-red.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #FF5252;\n }\n}\n.mdui-theme-accent-teal .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #00BFA5;\n box-shadow: 0 1px 0 0 #00BFA5;\n}\n.mdui-theme-accent-teal .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-teal .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-teal .mdui-textfield-focus .mdui-icon {\n color: rgba(0, 191, 165, 0.87);\n}\n.mdui-theme-accent-teal.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #64FFDA;\n box-shadow: 0 1px 0 0 #64FFDA;\n}\n.mdui-theme-accent-teal.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-teal.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-teal.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #64FFDA;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-teal.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #64FFDA;\n box-shadow: 0 1px 0 0 #64FFDA;\n }\n .mdui-theme-accent-teal.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-teal.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-teal.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #64FFDA;\n }\n}\n.mdui-theme-accent-yellow .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FFD600;\n box-shadow: 0 1px 0 0 #FFD600;\n}\n.mdui-theme-accent-yellow .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-yellow .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-yellow .mdui-textfield-focus .mdui-icon {\n color: rgba(255, 214, 0, 0.87);\n}\n.mdui-theme-accent-yellow.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FFFF00;\n box-shadow: 0 1px 0 0 #FFFF00;\n}\n.mdui-theme-accent-yellow.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-yellow.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-yellow.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #FFFF00;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-yellow.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FFFF00;\n box-shadow: 0 1px 0 0 #FFFF00;\n }\n .mdui-theme-accent-yellow.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-yellow.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-yellow.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #FFFF00;\n }\n}\n/**\n * =============================================================================\n * ************ Checkbox 复选框 ************\n * =============================================================================\n */\n.mdui-checkbox {\n position: relative;\n display: inline-block;\n height: 36px;\n padding-left: 36px;\n line-height: 36px;\n cursor: pointer;\n user-select: none;\n}\n.mdui-checkbox input[type=\"checkbox\"] {\n position: absolute;\n width: 0;\n height: 0;\n overflow: hidden;\n opacity: 0;\n}\n/* 透明的圆形,用于生成圆形阴影 */\n.mdui-checkbox-icon {\n position: absolute;\n top: 9px;\n left: 0;\n display: inline-block;\n width: 18px;\n height: 18px;\n vertical-align: middle;\n background-color: transparent;\n border: none;\n border-radius: 18px;\n transition: box-shadow 0.14s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.mdui-checkbox-icon::after {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 0;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n border: 2px solid rgba(0, 0, 0, 0.54);\n border-radius: 2px;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n content: ' ';\n}\n.mdui-checkbox-icon::before {\n position: absolute;\n top: 2px;\n left: 0;\n z-index: 1;\n box-sizing: border-box;\n width: 8px;\n height: 13px;\n border-right: 2px solid #fff;\n border-bottom: 2px solid #fff;\n transform: rotateZ(37deg) scale(0);\n transform-origin: 100% 100%;\n opacity: 0;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n content: ' ';\n}\n/* 各种状态的图标 */\n.mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after {\n background-color: #FF4081;\n border-color: #FF4081;\n}\n.mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::before {\n transform: rotateZ(37deg) scale(1);\n opacity: 1;\n}\n.mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #FF4081;\n border-color: #FF4081;\n}\n.mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::before {\n top: 8px;\n left: 3px;\n width: 12px;\n height: 0;\n border-right: none;\n border-bottom: 2px solid #fff;\n border-radius: 1px;\n transform: rotateZ(0) scale(1);\n opacity: 1;\n}\n.mdui-checkbox input[type=\"checkbox\"]:disabled + .mdui-checkbox-icon::after {\n border-color: rgba(0, 0, 0, 0.26);\n}\n.mdui-checkbox input[type=\"checkbox\"]:disabled:checked + .mdui-checkbox-icon::after,\n.mdui-checkbox input[type=\"checkbox\"]:disabled:indeterminate + .mdui-checkbox-icon::after {\n background-color: rgba(0, 0, 0, 0.26) !important;\n border-color: transparent !important;\n}\n/* 阴影 */\n.mdui-checkbox:active input[type=\"checkbox\"] + .mdui-checkbox-icon,\n.mdui-checkbox input[type=\"checkbox\"]:focus + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(0, 0, 0, 0.1);\n}\n.mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(255, 64, 129, 0.16);\n}\n/**\n * =============================================================================\n * ************ Checkbox 强调色 ************\n * =============================================================================\n */\n.mdui-theme-accent-amber .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-amber .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #FFD740;\n border-color: #FFD740;\n}\n.mdui-theme-accent-amber .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-amber .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-amber .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-amber .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(255, 215, 64, 0.16);\n}\n.mdui-theme-accent-blue .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-blue .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #448AFF;\n border-color: #448AFF;\n}\n.mdui-theme-accent-blue .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-blue .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-blue .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-blue .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(68, 138, 255, 0.16);\n}\n.mdui-theme-accent-cyan .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-cyan .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #18FFFF;\n border-color: #18FFFF;\n}\n.mdui-theme-accent-cyan .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-cyan .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-cyan .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-cyan .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(24, 255, 255, 0.16);\n}\n.mdui-theme-accent-deep-orange .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-deep-orange .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #FF6E40;\n border-color: #FF6E40;\n}\n.mdui-theme-accent-deep-orange .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-deep-orange .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-deep-orange .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-deep-orange .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(255, 110, 64, 0.16);\n}\n.mdui-theme-accent-deep-purple .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-deep-purple .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #7C4DFF;\n border-color: #7C4DFF;\n}\n.mdui-theme-accent-deep-purple .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-deep-purple .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-deep-purple .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-deep-purple .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(124, 77, 255, 0.16);\n}\n.mdui-theme-accent-green .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-green .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #69F0AE;\n border-color: #69F0AE;\n}\n.mdui-theme-accent-green .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-green .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-green .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-green .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(105, 240, 174, 0.16);\n}\n.mdui-theme-accent-indigo .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-indigo .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #536DFE;\n border-color: #536DFE;\n}\n.mdui-theme-accent-indigo .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-indigo .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-indigo .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-indigo .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(83, 109, 254, 0.16);\n}\n.mdui-theme-accent-light-blue .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-light-blue .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #40C4FF;\n border-color: #40C4FF;\n}\n.mdui-theme-accent-light-blue .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-light-blue .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-light-blue .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-light-blue .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(64, 196, 255, 0.16);\n}\n.mdui-theme-accent-light-green .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-light-green .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #B2FF59;\n border-color: #B2FF59;\n}\n.mdui-theme-accent-light-green .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-light-green .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-light-green .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-light-green .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(178, 255, 89, 0.16);\n}\n.mdui-theme-accent-lime .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-lime .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #EEFF41;\n border-color: #EEFF41;\n}\n.mdui-theme-accent-lime .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-lime .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-lime .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-lime .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(238, 255, 65, 0.16);\n}\n.mdui-theme-accent-orange .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-orange .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #FFAB40;\n border-color: #FFAB40;\n}\n.mdui-theme-accent-orange .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-orange .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-orange .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-orange .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(255, 171, 64, 0.16);\n}\n.mdui-theme-accent-pink .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-pink .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #FF4081;\n border-color: #FF4081;\n}\n.mdui-theme-accent-pink .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-pink .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-pink .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-pink .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(255, 64, 129, 0.16);\n}\n.mdui-theme-accent-purple .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-purple .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #E040FB;\n border-color: #E040FB;\n}\n.mdui-theme-accent-purple .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-purple .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-purple .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-purple .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(224, 64, 251, 0.16);\n}\n.mdui-theme-accent-red .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-red .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #FF5252;\n border-color: #FF5252;\n}\n.mdui-theme-accent-red .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-red .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-red .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-red .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(255, 82, 82, 0.16);\n}\n.mdui-theme-accent-teal .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-teal .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #64FFDA;\n border-color: #64FFDA;\n}\n.mdui-theme-accent-teal .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-teal .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-teal .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-teal .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(100, 255, 218, 0.16);\n}\n.mdui-theme-accent-yellow .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-yellow .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #FFFF00;\n border-color: #FFFF00;\n}\n.mdui-theme-accent-yellow .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-yellow .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-yellow .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-yellow .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(255, 255, 0, 0.16);\n}\n/**\n * =============================================================================\n * ************ Checkbox dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-checkbox-icon::after {\n border-color: rgba(255, 255, 255, 0.7);\n}\n.mdui-theme-layout-dark .mdui-checkbox-icon::before {\n border-right-color: #303030 !important;\n border-bottom-color: #303030 !important;\n}\n.mdui-theme-layout-dark .mdui-checkbox input[type=\"checkbox\"]:disabled + .mdui-checkbox-icon::after {\n border-color: rgba(255, 255, 255, 0.3);\n}\n.mdui-theme-layout-dark .mdui-checkbox input[type=\"checkbox\"]:disabled:checked + .mdui-checkbox-icon::after,\n.mdui-theme-layout-dark .mdui-checkbox input[type=\"checkbox\"]:disabled:indeterminate + .mdui-checkbox-icon::after {\n background-color: rgba(255, 255, 255, 0.3) !important;\n border-color: transparent !important;\n}\n.mdui-theme-layout-dark .mdui-checkbox:active input[type=\"checkbox\"] + .mdui-checkbox-icon,\n.mdui-theme-layout-dark .mdui-checkbox input[type=\"checkbox\"]:focus + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(255, 255, 255, 0.1);\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-checkbox-icon::after {\n border-color: rgba(255, 255, 255, 0.7);\n }\n .mdui-theme-layout-auto .mdui-checkbox-icon::before {\n border-right-color: #303030 !important;\n border-bottom-color: #303030 !important;\n }\n .mdui-theme-layout-auto .mdui-checkbox input[type=\"checkbox\"]:disabled + .mdui-checkbox-icon::after {\n border-color: rgba(255, 255, 255, 0.3);\n }\n .mdui-theme-layout-auto .mdui-checkbox input[type=\"checkbox\"]:disabled:checked + .mdui-checkbox-icon::after,\n .mdui-theme-layout-auto .mdui-checkbox input[type=\"checkbox\"]:disabled:indeterminate + .mdui-checkbox-icon::after {\n background-color: rgba(255, 255, 255, 0.3) !important;\n border-color: transparent !important;\n }\n .mdui-theme-layout-auto .mdui-checkbox:active input[type=\"checkbox\"] + .mdui-checkbox-icon,\n .mdui-theme-layout-auto .mdui-checkbox input[type=\"checkbox\"]:focus + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(255, 255, 255, 0.1);\n }\n}\n/**\n * =============================================================================\n * ************ Radio 单选框 ************\n * =============================================================================\n */\n.mdui-radio {\n position: relative;\n display: inline-block;\n height: 36px;\n padding-left: 36px;\n line-height: 36px;\n cursor: pointer;\n user-select: none;\n}\n.mdui-radio input {\n position: absolute;\n width: 0;\n height: 0;\n overflow: hidden;\n opacity: 0;\n}\n/* 图标外圈 */\n.mdui-radio-icon {\n position: absolute;\n top: 9px;\n left: 0;\n display: inline-block;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n vertical-align: middle;\n border: 2px solid rgba(0, 0, 0, 0.54);\n border-radius: 18px;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.14s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.mdui-radio-icon::before {\n position: absolute;\n top: 0;\n left: 0;\n width: 14px;\n height: 14px;\n background-color: #FF4081;\n border-radius: 14px;\n transform: scale(0);\n opacity: 0;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n content: ' ';\n}\n/* 选中状态的图标 */\n.mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #FF4081;\n}\n.mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n transform: scale(0.68);\n opacity: 1;\n}\n/* 禁用状态的图标 */\n.mdui-radio input[type=\"radio\"]:disabled + .mdui-radio-icon {\n border-color: rgba(0, 0, 0, 0.26) !important;\n}\n/* 禁用且选中状态的图标 */\n.mdui-radio input[type=\"radio\"]:disabled:checked + .mdui-radio-icon::before {\n background-color: rgba(0, 0, 0, 0.26) !important;\n}\n/* 未选中、禁用时 按下的阴影 */\n.mdui-radio:active input[type=\"radio\"] + .mdui-radio-icon,\n.mdui-radio input[type=\"radio\"]:focus + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(0, 0, 0, 0.1);\n}\n/* 已选中时按下的阴影 */\n.mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(255, 64, 129, 0.16);\n}\n/**\n * =============================================================================\n * ************ Radio 强调色 ************\n * =============================================================================\n */\n.mdui-theme-accent-amber .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #FFD740;\n}\n.mdui-theme-accent-amber .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #FFD740;\n}\n.mdui-theme-accent-amber .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-amber .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(255, 215, 64, 0.16);\n}\n.mdui-theme-accent-blue .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #448AFF;\n}\n.mdui-theme-accent-blue .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #448AFF;\n}\n.mdui-theme-accent-blue .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-blue .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(68, 138, 255, 0.16);\n}\n.mdui-theme-accent-cyan .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #18FFFF;\n}\n.mdui-theme-accent-cyan .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #18FFFF;\n}\n.mdui-theme-accent-cyan .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-cyan .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(24, 255, 255, 0.16);\n}\n.mdui-theme-accent-deep-orange .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #FF6E40;\n}\n.mdui-theme-accent-deep-orange .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #FF6E40;\n}\n.mdui-theme-accent-deep-orange .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-deep-orange .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(255, 110, 64, 0.16);\n}\n.mdui-theme-accent-deep-purple .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #7C4DFF;\n}\n.mdui-theme-accent-deep-purple .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #7C4DFF;\n}\n.mdui-theme-accent-deep-purple .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-deep-purple .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(124, 77, 255, 0.16);\n}\n.mdui-theme-accent-green .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #69F0AE;\n}\n.mdui-theme-accent-green .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #69F0AE;\n}\n.mdui-theme-accent-green .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-green .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(105, 240, 174, 0.16);\n}\n.mdui-theme-accent-indigo .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #536DFE;\n}\n.mdui-theme-accent-indigo .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #536DFE;\n}\n.mdui-theme-accent-indigo .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-indigo .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(83, 109, 254, 0.16);\n}\n.mdui-theme-accent-light-blue .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #40C4FF;\n}\n.mdui-theme-accent-light-blue .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #40C4FF;\n}\n.mdui-theme-accent-light-blue .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-light-blue .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(64, 196, 255, 0.16);\n}\n.mdui-theme-accent-light-green .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #B2FF59;\n}\n.mdui-theme-accent-light-green .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #B2FF59;\n}\n.mdui-theme-accent-light-green .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-light-green .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(178, 255, 89, 0.16);\n}\n.mdui-theme-accent-lime .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #EEFF41;\n}\n.mdui-theme-accent-lime .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #EEFF41;\n}\n.mdui-theme-accent-lime .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-lime .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(238, 255, 65, 0.16);\n}\n.mdui-theme-accent-orange .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #FFAB40;\n}\n.mdui-theme-accent-orange .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #FFAB40;\n}\n.mdui-theme-accent-orange .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-orange .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(255, 171, 64, 0.16);\n}\n.mdui-theme-accent-pink .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #FF4081;\n}\n.mdui-theme-accent-pink .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #FF4081;\n}\n.mdui-theme-accent-pink .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-pink .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(255, 64, 129, 0.16);\n}\n.mdui-theme-accent-purple .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #E040FB;\n}\n.mdui-theme-accent-purple .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #E040FB;\n}\n.mdui-theme-accent-purple .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-purple .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(224, 64, 251, 0.16);\n}\n.mdui-theme-accent-red .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #FF5252;\n}\n.mdui-theme-accent-red .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #FF5252;\n}\n.mdui-theme-accent-red .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-red .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(255, 82, 82, 0.16);\n}\n.mdui-theme-accent-teal .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #64FFDA;\n}\n.mdui-theme-accent-teal .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #64FFDA;\n}\n.mdui-theme-accent-teal .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-teal .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(100, 255, 218, 0.16);\n}\n.mdui-theme-accent-yellow .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #FFFF00;\n}\n.mdui-theme-accent-yellow .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #FFFF00;\n}\n.mdui-theme-accent-yellow .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-yellow .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(255, 255, 0, 0.16);\n}\n/**\n * =============================================================================\n * ************ Radio dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-radio-icon {\n border-color: rgba(255, 255, 255, 0.7);\n}\n.mdui-theme-layout-dark .mdui-radio input[type=\"radio\"]:disabled + .mdui-radio-icon {\n border-color: rgba(255, 255, 255, 0.3) !important;\n}\n.mdui-theme-layout-dark .mdui-radio input[type=\"radio\"]:disabled:checked + .mdui-radio-icon::before {\n background-color: rgba(255, 255, 255, 0.3) !important;\n}\n.mdui-theme-layout-dark .mdui-radio:active input[type=\"radio\"] + .mdui-radio-icon,\n.mdui-theme-layout-dark .mdui-radio input[type=\"radio\"]:focus + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(255, 255, 255, 0.1);\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-radio-icon {\n border-color: rgba(255, 255, 255, 0.7);\n }\n .mdui-theme-layout-auto .mdui-radio input[type=\"radio\"]:disabled + .mdui-radio-icon {\n border-color: rgba(255, 255, 255, 0.3) !important;\n }\n .mdui-theme-layout-auto .mdui-radio input[type=\"radio\"]:disabled:checked + .mdui-radio-icon::before {\n background-color: rgba(255, 255, 255, 0.3) !important;\n }\n .mdui-theme-layout-auto .mdui-radio:active input[type=\"radio\"] + .mdui-radio-icon,\n .mdui-theme-layout-auto .mdui-radio input[type=\"radio\"]:focus + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(255, 255, 255, 0.1);\n }\n}\n/**\n * =============================================================================\n * ************ Switch 单选框 ************\n * =============================================================================\n */\n.mdui-switch {\n display: inline-block;\n height: 36px;\n line-height: 36px;\n cursor: pointer;\n user-select: none;\n}\n.mdui-switch input {\n position: absolute;\n width: 0;\n height: 0;\n overflow: hidden;\n opacity: 0;\n}\n/* 图标轨道 */\n.mdui-switch-icon {\n position: relative;\n display: inline-block;\n width: 36px;\n height: 14px;\n vertical-align: middle;\n background-color: rgba(0, 0, 0, 0.38);\n border-radius: 14px;\n transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.mdui-switch-icon::before {\n position: absolute;\n top: -3px;\n left: -3px;\n display: inline-block;\n width: 20px;\n height: 20px;\n background-color: #FAFAFA;\n border-radius: 20px;\n transition: box-shadow 0.14s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1), left 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n content: ' ';\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12);\n}\n/* 选中状态的图标 */\n.mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 64, 129, 0.5);\n}\n.mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n left: 20px;\n background-color: #FF4081;\n}\n/* 未选中时或禁用时 按下的阴影 */\n.mdui-switch:active input[type=\"checkbox\"] + .mdui-switch-icon::before,\n.mdui-switch input[type=\"checkbox\"]:focus + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(0, 0, 0, 0.1);\n}\n/* 已选中时按下的阴影 */\n.mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 64, 129, 0.16);\n}\n/* 禁用状态 */\n.mdui-switch input[type=\"checkbox\"]:disabled + .mdui-switch-icon {\n background-color: rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-switch input[type=\"checkbox\"]:disabled + .mdui-switch-icon::before {\n background-color: #BDBDBD !important;\n}\n/**\n * =============================================================================\n * ************ Switch 强调色 ************\n * =============================================================================\n */\n.mdui-theme-accent-amber .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 215, 64, 0.5);\n}\n.mdui-theme-accent-amber .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FFD740;\n}\n.mdui-theme-accent-amber .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-amber .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 215, 64, 0.16);\n}\n.mdui-theme-accent-blue .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(68, 138, 255, 0.5);\n}\n.mdui-theme-accent-blue .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #448AFF;\n}\n.mdui-theme-accent-blue .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-blue .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(68, 138, 255, 0.16);\n}\n.mdui-theme-accent-cyan .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(24, 255, 255, 0.5);\n}\n.mdui-theme-accent-cyan .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #18FFFF;\n}\n.mdui-theme-accent-cyan .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-cyan .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(24, 255, 255, 0.16);\n}\n.mdui-theme-accent-deep-orange .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 110, 64, 0.5);\n}\n.mdui-theme-accent-deep-orange .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FF6E40;\n}\n.mdui-theme-accent-deep-orange .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-deep-orange .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 110, 64, 0.16);\n}\n.mdui-theme-accent-deep-purple .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(124, 77, 255, 0.5);\n}\n.mdui-theme-accent-deep-purple .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #7C4DFF;\n}\n.mdui-theme-accent-deep-purple .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-deep-purple .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(124, 77, 255, 0.16);\n}\n.mdui-theme-accent-green .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(105, 240, 174, 0.5);\n}\n.mdui-theme-accent-green .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #69F0AE;\n}\n.mdui-theme-accent-green .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-green .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(105, 240, 174, 0.16);\n}\n.mdui-theme-accent-indigo .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(83, 109, 254, 0.5);\n}\n.mdui-theme-accent-indigo .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #536DFE;\n}\n.mdui-theme-accent-indigo .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-indigo .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(83, 109, 254, 0.16);\n}\n.mdui-theme-accent-light-blue .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(64, 196, 255, 0.5);\n}\n.mdui-theme-accent-light-blue .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #40C4FF;\n}\n.mdui-theme-accent-light-blue .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-light-blue .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(64, 196, 255, 0.16);\n}\n.mdui-theme-accent-light-green .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(178, 255, 89, 0.5);\n}\n.mdui-theme-accent-light-green .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #B2FF59;\n}\n.mdui-theme-accent-light-green .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-light-green .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(178, 255, 89, 0.16);\n}\n.mdui-theme-accent-lime .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(238, 255, 65, 0.5);\n}\n.mdui-theme-accent-lime .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #EEFF41;\n}\n.mdui-theme-accent-lime .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-lime .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(238, 255, 65, 0.16);\n}\n.mdui-theme-accent-orange .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 171, 64, 0.5);\n}\n.mdui-theme-accent-orange .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FFAB40;\n}\n.mdui-theme-accent-orange .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-orange .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 171, 64, 0.16);\n}\n.mdui-theme-accent-pink .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 64, 129, 0.5);\n}\n.mdui-theme-accent-pink .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FF4081;\n}\n.mdui-theme-accent-pink .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-pink .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 64, 129, 0.16);\n}\n.mdui-theme-accent-purple .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(224, 64, 251, 0.5);\n}\n.mdui-theme-accent-purple .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #E040FB;\n}\n.mdui-theme-accent-purple .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-purple .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(224, 64, 251, 0.16);\n}\n.mdui-theme-accent-red .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 82, 82, 0.5);\n}\n.mdui-theme-accent-red .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FF5252;\n}\n.mdui-theme-accent-red .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-red .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 82, 82, 0.16);\n}\n.mdui-theme-accent-teal .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(100, 255, 218, 0.5);\n}\n.mdui-theme-accent-teal .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #64FFDA;\n}\n.mdui-theme-accent-teal .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-teal .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(100, 255, 218, 0.16);\n}\n.mdui-theme-accent-yellow .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 255, 0, 0.5);\n}\n.mdui-theme-accent-yellow .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FFFF00;\n}\n.mdui-theme-accent-yellow .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-yellow .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 255, 0, 0.16);\n}\n/**\n * =============================================================================\n * ************ Radio dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-switch-icon {\n background-color: rgba(255, 255, 255, 0.3);\n}\n.mdui-theme-layout-dark .mdui-switch-icon::before {\n background-color: #BDBDBD;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-amber .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 229, 127, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-amber .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FFE57F;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-blue .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(130, 177, 255, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-blue .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #82B1FF;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-cyan .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(132, 255, 255, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-cyan .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #84FFFF;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-deep-orange .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 158, 128, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-deep-orange .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FF9E80;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-deep-purple .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(179, 136, 255, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-deep-purple .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #B388FF;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-green .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(185, 246, 202, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-green .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #B9F6CA;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-indigo .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(140, 158, 255, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-indigo .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #8C9EFF;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-light-blue .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(128, 216, 255, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-light-blue .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #80D8FF;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-light-green .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(204, 255, 144, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-light-green .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #CCFF90;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-lime .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(244, 255, 129, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-lime .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #F4FF81;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-orange .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 209, 128, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-orange .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FFD180;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-pink .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 128, 171, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-pink .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FF80AB;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-purple .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(234, 128, 252, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-purple .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #EA80FC;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-red .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 138, 128, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-red .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FF8A80;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-teal .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(167, 255, 235, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-teal .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #A7FFEB;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-yellow .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 255, 141, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-yellow .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FFFF8D;\n}\n.mdui-theme-layout-dark .mdui-switch:active input[type=\"checkbox\"] + .mdui-switch-icon::before,\n.mdui-theme-layout-dark .mdui-switch input[type=\"checkbox\"]:focus + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 255, 255, 0.1);\n}\n.mdui-theme-layout-dark .mdui-switch input[type=\"checkbox\"]:disabled + .mdui-switch-icon {\n background-color: rgba(255, 255, 255, 0.1) !important;\n}\n.mdui-theme-layout-dark .mdui-switch input[type=\"checkbox\"]:disabled + .mdui-switch-icon::before {\n background-color: #424242 !important;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-switch-icon {\n background-color: rgba(255, 255, 255, 0.3);\n }\n .mdui-theme-layout-auto .mdui-switch-icon::before {\n background-color: #BDBDBD;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-amber .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 229, 127, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-amber .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FFE57F;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-blue .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(130, 177, 255, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-blue .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #82B1FF;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-cyan .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(132, 255, 255, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-cyan .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #84FFFF;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-deep-orange .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 158, 128, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-deep-orange .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FF9E80;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-deep-purple .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(179, 136, 255, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-deep-purple .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #B388FF;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-green .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(185, 246, 202, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-green .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #B9F6CA;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-indigo .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(140, 158, 255, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-indigo .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #8C9EFF;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-light-blue .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(128, 216, 255, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-light-blue .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #80D8FF;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-light-green .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(204, 255, 144, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-light-green .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #CCFF90;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-lime .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(244, 255, 129, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-lime .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #F4FF81;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-orange .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 209, 128, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-orange .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FFD180;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-pink .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 128, 171, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-pink .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FF80AB;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-purple .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(234, 128, 252, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-purple .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #EA80FC;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-red .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 138, 128, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-red .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FF8A80;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-teal .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(167, 255, 235, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-teal .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #A7FFEB;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-yellow .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 255, 141, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-yellow .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FFFF8D;\n }\n .mdui-theme-layout-auto .mdui-switch:active input[type=\"checkbox\"] + .mdui-switch-icon::before,\n .mdui-theme-layout-auto .mdui-switch input[type=\"checkbox\"]:focus + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 255, 255, 0.1);\n }\n .mdui-theme-layout-auto .mdui-switch input[type=\"checkbox\"]:disabled + .mdui-switch-icon {\n background-color: rgba(255, 255, 255, 0.1) !important;\n }\n .mdui-theme-layout-auto .mdui-switch input[type=\"checkbox\"]:disabled + .mdui-switch-icon::before {\n background-color: #424242 !important;\n }\n}\n/**\n * =============================================================================\n * ************ Slider 滑块 ************\n * =============================================================================\n */\n.mdui-slider {\n position: relative;\n display: block;\n width: 100%;\n height: 36px;\n}\n.mdui-slider input[type=\"range\"] {\n position: absolute;\n top: 50%;\n left: 0;\n z-index: 2;\n width: 100%;\n height: 20px;\n margin-top: -10px;\n cursor: pointer;\n opacity: 0;\n appearance: none;\n}\n.mdui-slider-track,\n.mdui-slider-fill {\n position: absolute;\n top: 50%;\n box-sizing: border-box;\n height: 2px;\n margin-top: -1px;\n}\n.mdui-slider-track::before,\n.mdui-slider-fill::before {\n display: block;\n width: 100%;\n height: 100%;\n content: ' ';\n}\n/* 轨道 */\n.mdui-slider-track {\n right: 0;\n}\n.mdui-slider-track::before {\n background-color: #bdbdbd;\n transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n/* 已滑动部分 */\n.mdui-slider-fill {\n left: 0;\n}\n.mdui-slider-fill::before {\n background-color: #FF4081;\n}\n/* 滑块 */\n.mdui-slider-thumb {\n position: absolute;\n top: 50%;\n box-sizing: border-box;\n width: 12px;\n height: 12px;\n margin-top: -6px;\n background-color: #FF4081;\n border: 2px solid #FF4081;\n border-radius: 50%;\n transform: translate(-50%);\n transition: background 0.45s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.45s cubic-bezier(0.4, 0, 0.2, 1), transform 0.2s cubic-bezier(0.4, 0, 0.2, 1), border-radius 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: background, border-color, transform, border-radius;\n}\n/**\n * =============================================================================\n * ************ Slider 强调色 ************\n * =============================================================================\n */\n.mdui-theme-accent-amber .mdui-slider-fill::before {\n background-color: #FFD740;\n}\n.mdui-theme-accent-amber .mdui-slider-thumb {\n background-color: #FFD740;\n border: 2px solid #FFD740;\n}\n.mdui-theme-accent-blue .mdui-slider-fill::before {\n background-color: #448AFF;\n}\n.mdui-theme-accent-blue .mdui-slider-thumb {\n background-color: #448AFF;\n border: 2px solid #448AFF;\n}\n.mdui-theme-accent-cyan .mdui-slider-fill::before {\n background-color: #18FFFF;\n}\n.mdui-theme-accent-cyan .mdui-slider-thumb {\n background-color: #18FFFF;\n border: 2px solid #18FFFF;\n}\n.mdui-theme-accent-deep-orange .mdui-slider-fill::before {\n background-color: #FF6E40;\n}\n.mdui-theme-accent-deep-orange .mdui-slider-thumb {\n background-color: #FF6E40;\n border: 2px solid #FF6E40;\n}\n.mdui-theme-accent-deep-purple .mdui-slider-fill::before {\n background-color: #7C4DFF;\n}\n.mdui-theme-accent-deep-purple .mdui-slider-thumb {\n background-color: #7C4DFF;\n border: 2px solid #7C4DFF;\n}\n.mdui-theme-accent-green .mdui-slider-fill::before {\n background-color: #69F0AE;\n}\n.mdui-theme-accent-green .mdui-slider-thumb {\n background-color: #69F0AE;\n border: 2px solid #69F0AE;\n}\n.mdui-theme-accent-indigo .mdui-slider-fill::before {\n background-color: #536DFE;\n}\n.mdui-theme-accent-indigo .mdui-slider-thumb {\n background-color: #536DFE;\n border: 2px solid #536DFE;\n}\n.mdui-theme-accent-light-blue .mdui-slider-fill::before {\n background-color: #40C4FF;\n}\n.mdui-theme-accent-light-blue .mdui-slider-thumb {\n background-color: #40C4FF;\n border: 2px solid #40C4FF;\n}\n.mdui-theme-accent-light-green .mdui-slider-fill::before {\n background-color: #B2FF59;\n}\n.mdui-theme-accent-light-green .mdui-slider-thumb {\n background-color: #B2FF59;\n border: 2px solid #B2FF59;\n}\n.mdui-theme-accent-lime .mdui-slider-fill::before {\n background-color: #EEFF41;\n}\n.mdui-theme-accent-lime .mdui-slider-thumb {\n background-color: #EEFF41;\n border: 2px solid #EEFF41;\n}\n.mdui-theme-accent-orange .mdui-slider-fill::before {\n background-color: #FFAB40;\n}\n.mdui-theme-accent-orange .mdui-slider-thumb {\n background-color: #FFAB40;\n border: 2px solid #FFAB40;\n}\n.mdui-theme-accent-pink .mdui-slider-fill::before {\n background-color: #FF4081;\n}\n.mdui-theme-accent-pink .mdui-slider-thumb {\n background-color: #FF4081;\n border: 2px solid #FF4081;\n}\n.mdui-theme-accent-purple .mdui-slider-fill::before {\n background-color: #E040FB;\n}\n.mdui-theme-accent-purple .mdui-slider-thumb {\n background-color: #E040FB;\n border: 2px solid #E040FB;\n}\n.mdui-theme-accent-red .mdui-slider-fill::before {\n background-color: #FF5252;\n}\n.mdui-theme-accent-red .mdui-slider-thumb {\n background-color: #FF5252;\n border: 2px solid #FF5252;\n}\n.mdui-theme-accent-teal .mdui-slider-fill::before {\n background-color: #64FFDA;\n}\n.mdui-theme-accent-teal .mdui-slider-thumb {\n background-color: #64FFDA;\n border: 2px solid #64FFDA;\n}\n.mdui-theme-accent-yellow .mdui-slider-fill::before {\n background-color: #FFFF00;\n}\n.mdui-theme-accent-yellow .mdui-slider-thumb {\n background-color: #FFFF00;\n border: 2px solid #FFFF00;\n}\n/**\n * =============================================================================\n * ============ Slider 的不同状态 ============\n * =============================================================================\n */\n/* 鼠标按下状态 */\n.mdui-slider-focus .mdui-slider-track::before {\n background-color: #9e9e9e;\n}\n.mdui-slider-focus .mdui-slider-thumb {\n transform: translate(-50%) scale(1.6);\n}\n/* 滑块值为 0 */\n.mdui-slider-zero .mdui-slider-thumb {\n background-color: #fff;\n border-color: #bdbdbd;\n}\n/* 滑块值为 0,且鼠标按下 */\n.mdui-slider-zero.mdui-slider-focus .mdui-slider-thumb {\n border-color: #9e9e9e;\n}\n/* 禁用状态 */\n.mdui-slider-disabled input[type=\"range\"] {\n cursor: default;\n}\n.mdui-slider-disabled .mdui-slider-track::before {\n background-color: #bdbdbd;\n}\n.mdui-slider-disabled .mdui-slider-fill::before {\n background-color: #bdbdbd;\n}\n.mdui-slider-disabled .mdui-slider-thumb {\n background-color: #bdbdbd;\n border-color: transparent !important;\n transform: translate(-50%) scale(0.72);\n}\n/**\n * =============================================================================\n * ============ 间续型滑块 ============\n * =============================================================================\n */\n.mdui-slider-discrete .mdui-slider-thumb {\n width: 30px;\n height: 30px;\n margin-top: -15px;\n margin-left: -15px;\n border: none;\n transform: rotate(-45deg) scale(0.4);\n}\n.mdui-slider-discrete .mdui-slider-thumb span {\n position: absolute;\n top: 9px;\n left: -1px;\n width: 100%;\n color: #fff;\n font-size: 12px;\n text-align: center;\n transform: rotate(45deg);\n opacity: 0;\n transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.mdui-slider-discrete.mdui-slider-focus .mdui-slider-thumb {\n border-radius: 15px 15px 15px 0;\n transform: rotate(-45deg) scale(1) translate(22px, -22px);\n}\n.mdui-slider-discrete.mdui-slider-focus .mdui-slider-thumb span {\n opacity: 1;\n}\n.mdui-slider-discrete.mdui-slider-zero .mdui-slider-thumb {\n background-color: #323232;\n}\n.mdui-slider-discrete.mdui-slider-zero.mdui-slider-focus .mdui-slider-thumb {\n background-color: #bdbdbd;\n}\n.mdui-slider-discrete.mdui-slider-disabled .mdui-slider-thumb {\n transform: rotate(-45deg) scale(0.288);\n}\n.mdui-slider-discrete.mdui-slider-zero.mdui-slider-disabled .mdui-slider-thumb {\n background-color: #bdbdbd;\n}\n/**\n * =============================================================================\n * ************ Slider dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-slider-track::before {\n background-color: #4c4c4c;\n}\n.mdui-theme-layout-dark .mdui-slider-focus .mdui-slider-track::before {\n background-color: #4c4c4c;\n}\n.mdui-theme-layout-dark .mdui-slider-zero .mdui-slider-thumb {\n background-color: #303030;\n border-color: #4c4c4c;\n}\n.mdui-theme-layout-dark .mdui-slider-zero.mdui-slider-focus .mdui-slider-thumb {\n border-color: #4c4c4c;\n}\n.mdui-theme-layout-dark .mdui-slider-disabled .mdui-slider-track::before {\n background-color: #4c4c4c;\n}\n.mdui-theme-layout-dark .mdui-slider-disabled .mdui-slider-fill::before {\n background-color: #4c4c4c;\n}\n.mdui-theme-layout-dark .mdui-slider-disabled .mdui-slider-thumb {\n background-color: #4c4c4c;\n}\n.mdui-theme-layout-dark .mdui-slider-discrete.mdui-slider-zero .mdui-slider-thumb {\n background-color: #fefefe;\n}\n.mdui-theme-layout-dark .mdui-slider-discrete.mdui-slider-zero.mdui-slider-focus .mdui-slider-thumb {\n background-color: #5c5c5c;\n}\n.mdui-theme-layout-dark .mdui-slider-discrete.mdui-slider-zero.mdui-slider-disabled .mdui-slider-thumb {\n background-color: #4c4c4c;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-slider-track::before {\n background-color: #4c4c4c;\n }\n .mdui-theme-layout-auto .mdui-slider-focus .mdui-slider-track::before {\n background-color: #4c4c4c;\n }\n .mdui-theme-layout-auto .mdui-slider-zero .mdui-slider-thumb {\n background-color: #303030;\n border-color: #4c4c4c;\n }\n .mdui-theme-layout-auto .mdui-slider-zero.mdui-slider-focus .mdui-slider-thumb {\n border-color: #4c4c4c;\n }\n .mdui-theme-layout-auto .mdui-slider-disabled .mdui-slider-track::before {\n background-color: #4c4c4c;\n }\n .mdui-theme-layout-auto .mdui-slider-disabled .mdui-slider-fill::before {\n background-color: #4c4c4c;\n }\n .mdui-theme-layout-auto .mdui-slider-disabled .mdui-slider-thumb {\n background-color: #4c4c4c;\n }\n .mdui-theme-layout-auto .mdui-slider-discrete.mdui-slider-zero .mdui-slider-thumb {\n background-color: #fefefe;\n }\n .mdui-theme-layout-auto .mdui-slider-discrete.mdui-slider-zero.mdui-slider-focus .mdui-slider-thumb {\n background-color: #5c5c5c;\n }\n .mdui-theme-layout-auto .mdui-slider-discrete.mdui-slider-zero.mdui-slider-disabled .mdui-slider-thumb {\n background-color: #4c4c4c;\n }\n}\n/**\n * =============================================================================\n * ************ Button 按钮 ************\n * =============================================================================\n */\n/* 默认为 Flat 扁平按钮 */\n.mdui-btn,\n.mdui-fab {\n position: relative;\n display: inline-block;\n box-sizing: border-box;\n min-width: 88px;\n height: 36px;\n margin: 0;\n padding: 0 16px;\n overflow: hidden;\n color: inherit;\n font-weight: 500;\n font-size: 14px;\n line-height: 36px;\n letter-spacing: 0.04em;\n white-space: nowrap;\n text-align: center;\n text-transform: uppercase;\n text-decoration: none;\n vertical-align: middle;\n background: transparent;\n border: none;\n border-radius: 2px;\n outline: none;\n cursor: pointer;\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1);\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n touch-action: manipulation;\n will-change: box-shadow;\n zoom: 1;\n -webkit-user-drag: none;\n}\n.mdui-btn:hover,\n.mdui-fab:hover {\n background-color: rgba(0, 0, 0, 0.1);\n}\n.mdui-btn:not(.mdui-ripple):active,\n.mdui-fab:not(.mdui-ripple):active {\n background-color: rgba(0, 0, 0, 0.165);\n}\n.mdui-btn[class*=\"mdui-color-\"]:hover,\n.mdui-fab[class*=\"mdui-color-\"]:hover {\n opacity: 0.87;\n}\n.mdui-btn:not(.mdui-ripple)[class*=\"mdui-color-\"]:active,\n.mdui-fab:not(.mdui-ripple)[class*=\"mdui-color-\"]:active {\n opacity: 0.76;\n}\n/* 按钮内的图标 */\n.mdui-btn .mdui-icon-left,\n.mdui-btn .mdui-icon-right,\n.mdui-btn .mdui-icon-left::before,\n.mdui-btn .mdui-icon-right::before {\n height: inherit;\n font-size: 1.3em;\n line-height: inherit;\n}\n.mdui-btn .mdui-icon-left {\n float: left;\n margin-right: 0.4em;\n}\n.mdui-btn .mdui-icon-right {\n float: right;\n margin-left: 0.4em;\n}\ninput.mdui-btn[type=\"submit\"] {\n appearance: none;\n}\n/* Raised button 浮动按钮 */\n.mdui-btn-raised {\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n}\n.mdui-btn-raised:hover {\n box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);\n}\n.mdui-btn-raised:active {\n box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);\n}\n/* 禁用按钮 */\n.mdui-btn[disabled],\n.mdui-fab[disabled],\n.mdui-btn[disabled]:hover,\n.mdui-fab[disabled]:hover,\n.mdui-btn[disabled]:active,\n.mdui-fab[disabled]:active,\n.mdui-btn[disabled]:focus,\n.mdui-fab[disabled]:focus {\n color: rgba(0, 0, 0, 0.26) !important;\n background-color: transparent !important;\n cursor: default !important;\n opacity: 1 !important;\n box-shadow: none !important;\n}\n.mdui-btn[disabled] .mdui-icon,\n.mdui-fab[disabled] .mdui-icon,\n.mdui-btn[disabled]:hover .mdui-icon,\n.mdui-fab[disabled]:hover .mdui-icon,\n.mdui-btn[disabled]:active .mdui-icon,\n.mdui-fab[disabled]:active .mdui-icon,\n.mdui-btn[disabled]:focus .mdui-icon,\n.mdui-fab[disabled]:focus .mdui-icon {\n color: rgba(0, 0, 0, 0.26) !important;\n}\n/* 禁用状态浮动按钮和浮动操作按钮 */\n.mdui-btn-raised[disabled],\n.mdui-fab[disabled],\n.mdui-btn-raised[disabled]:hover,\n.mdui-fab[disabled]:hover,\n.mdui-btn-raised[disabled]:active,\n.mdui-fab[disabled]:active,\n.mdui-btn-raised[disabled]:focus,\n.mdui-fab[disabled]:focus {\n background-color: rgba(0, 0, 0, 0.12) !important;\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12) !important;\n}\n/* 加粗按钮文本 */\n.mdui-btn-bold {\n font-weight: bold;\n}\n/* 图标按钮 */\n.mdui-btn-icon {\n width: 36px;\n min-width: 36px;\n height: 36px;\n margin-right: 0;\n margin-left: 0;\n padding: 0;\n overflow: hidden;\n font-size: 24px;\n line-height: normal;\n border-radius: 50%;\n}\n.mdui-btn-icon .mdui-icon {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 24px;\n line-height: 24px;\n transform: translate(-12px, -12px);\n}\n.mdui-btn-icon.mdui-ripple {\n transform: translateZ(0);\n}\n/* 按钮 100% 宽度 */\n.mdui-btn-block {\n display: block;\n width: 100%;\n}\n/* 密集型按钮 */\n.mdui-btn-dense {\n height: 32px;\n font-size: 13px;\n line-height: 32px;\n}\n.mdui-btn-dense.mdui-btn-icon {\n width: 32px;\n min-width: 32px;\n}\n/* 按钮组 */\n.mdui-btn-group {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n}\n.mdui-btn-group .mdui-btn {\n float: left;\n min-width: inherit;\n padding: 0 12px;\n color: rgba(0, 0, 0, 0.54);\n border-radius: 0;\n}\n.mdui-btn-group .mdui-btn::before {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n border-left: 1px solid transparent;\n content: ' ';\n}\n.mdui-btn-group .mdui-btn:first-child {\n border-top-left-radius: 2px;\n border-bottom-left-radius: 2px;\n}\n.mdui-btn-group .mdui-btn:first-child::before {\n border-left: none;\n}\n.mdui-btn-group .mdui-btn:last-child {\n border-top-right-radius: 2px;\n border-bottom-right-radius: 2px;\n}\n.mdui-btn-group .mdui-btn.mdui-btn-active {\n color: rgba(0, 0, 0, 0.87);\n background-color: rgba(0, 0, 0, 0.215);\n}\n.mdui-btn-group .mdui-btn.mdui-btn-active + .mdui-btn-active::before {\n border-left: 1px solid rgba(0, 0, 0, 0.145);\n}\n/**\n * =============================================================================\n * ************ Button dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-btn:hover,\n.mdui-theme-layout-dark .mdui-fab:hover {\n background-color: rgba(255, 255, 255, 0.1);\n}\n.mdui-theme-layout-dark .mdui-btn:not(.mdui-ripple):active,\n.mdui-theme-layout-dark .mdui-fab:not(.mdui-ripple):active {\n background-color: rgba(255, 255, 255, 0.165);\n}\n.mdui-theme-layout-dark .mdui-btn[class*=\"mdui-color-\"]:hover,\n.mdui-theme-layout-dark .mdui-fab[class*=\"mdui-color-\"]:hover {\n opacity: 0.87;\n}\n.mdui-theme-layout-dark .mdui-btn:not(.mdui-ripple)[class*=\"mdui-color-\"]:active,\n.mdui-theme-layout-dark .mdui-fab:not(.mdui-ripple)[class*=\"mdui-color-\"]:active {\n opacity: 0.76;\n}\n.mdui-theme-layout-dark .mdui-btn[disabled],\n.mdui-theme-layout-dark .mdui-fab[disabled],\n.mdui-theme-layout-dark .mdui-btn[disabled]:hover,\n.mdui-theme-layout-dark .mdui-fab[disabled]:hover,\n.mdui-theme-layout-dark .mdui-btn[disabled]:active,\n.mdui-theme-layout-dark .mdui-fab[disabled]:active,\n.mdui-theme-layout-dark .mdui-btn[disabled]:focus,\n.mdui-theme-layout-dark .mdui-fab[disabled]:focus {\n color: rgba(255, 255, 255, 0.3) !important;\n background-color: transparent !important;\n}\n.mdui-theme-layout-dark .mdui-btn[disabled] .mdui-icon,\n.mdui-theme-layout-dark .mdui-fab[disabled] .mdui-icon,\n.mdui-theme-layout-dark .mdui-btn[disabled]:hover .mdui-icon,\n.mdui-theme-layout-dark .mdui-fab[disabled]:hover .mdui-icon,\n.mdui-theme-layout-dark .mdui-btn[disabled]:active .mdui-icon,\n.mdui-theme-layout-dark .mdui-fab[disabled]:active .mdui-icon,\n.mdui-theme-layout-dark .mdui-btn[disabled]:focus .mdui-icon,\n.mdui-theme-layout-dark .mdui-fab[disabled]:focus .mdui-icon {\n color: rgba(255, 255, 255, 0.3) !important;\n}\n.mdui-theme-layout-dark .mdui-btn-raised[disabled],\n.mdui-theme-layout-dark .mdui-fab[disabled],\n.mdui-theme-layout-dark .mdui-btn-raised[disabled]:hover,\n.mdui-theme-layout-dark .mdui-fab[disabled]:hover,\n.mdui-theme-layout-dark .mdui-btn-raised[disabled]:active,\n.mdui-theme-layout-dark .mdui-fab[disabled]:active,\n.mdui-theme-layout-dark .mdui-btn-raised[disabled]:focus,\n.mdui-theme-layout-dark .mdui-fab[disabled]:focus {\n background-color: rgba(255, 255, 255, 0.12) !important;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-btn:hover,\n .mdui-theme-layout-auto .mdui-fab:hover {\n background-color: rgba(255, 255, 255, 0.1);\n }\n .mdui-theme-layout-auto .mdui-btn:not(.mdui-ripple):active,\n .mdui-theme-layout-auto .mdui-fab:not(.mdui-ripple):active {\n background-color: rgba(255, 255, 255, 0.165);\n }\n .mdui-theme-layout-auto .mdui-btn[class*=\"mdui-color-\"]:hover,\n .mdui-theme-layout-auto .mdui-fab[class*=\"mdui-color-\"]:hover {\n opacity: 0.87;\n }\n .mdui-theme-layout-auto .mdui-btn:not(.mdui-ripple)[class*=\"mdui-color-\"]:active,\n .mdui-theme-layout-auto .mdui-fab:not(.mdui-ripple)[class*=\"mdui-color-\"]:active {\n opacity: 0.76;\n }\n .mdui-theme-layout-auto .mdui-btn[disabled],\n .mdui-theme-layout-auto .mdui-fab[disabled],\n .mdui-theme-layout-auto .mdui-btn[disabled]:hover,\n .mdui-theme-layout-auto .mdui-fab[disabled]:hover,\n .mdui-theme-layout-auto .mdui-btn[disabled]:active,\n .mdui-theme-layout-auto .mdui-fab[disabled]:active,\n .mdui-theme-layout-auto .mdui-btn[disabled]:focus,\n .mdui-theme-layout-auto .mdui-fab[disabled]:focus {\n color: rgba(255, 255, 255, 0.3) !important;\n background-color: transparent !important;\n }\n .mdui-theme-layout-auto .mdui-btn[disabled] .mdui-icon,\n .mdui-theme-layout-auto .mdui-fab[disabled] .mdui-icon,\n .mdui-theme-layout-auto .mdui-btn[disabled]:hover .mdui-icon,\n .mdui-theme-layout-auto .mdui-fab[disabled]:hover .mdui-icon,\n .mdui-theme-layout-auto .mdui-btn[disabled]:active .mdui-icon,\n .mdui-theme-layout-auto .mdui-fab[disabled]:active .mdui-icon,\n .mdui-theme-layout-auto .mdui-btn[disabled]:focus .mdui-icon,\n .mdui-theme-layout-auto .mdui-fab[disabled]:focus .mdui-icon {\n color: rgba(255, 255, 255, 0.3) !important;\n }\n .mdui-theme-layout-auto .mdui-btn-raised[disabled],\n .mdui-theme-layout-auto .mdui-fab[disabled],\n .mdui-theme-layout-auto .mdui-btn-raised[disabled]:hover,\n .mdui-theme-layout-auto .mdui-fab[disabled]:hover,\n .mdui-theme-layout-auto .mdui-btn-raised[disabled]:active,\n .mdui-theme-layout-auto .mdui-fab[disabled]:active,\n .mdui-theme-layout-auto .mdui-btn-raised[disabled]:focus,\n .mdui-theme-layout-auto .mdui-fab[disabled]:focus {\n background-color: rgba(255, 255, 255, 0.12) !important;\n }\n}\n/**\n * =============================================================================\n * ************ Fab 浮动操作按钮 ************\n * =============================================================================\n */\n/* 浮动操作按钮 */\n.mdui-fab {\n width: 56px;\n min-width: 56px;\n height: 56px;\n margin: auto;\n padding: 0 !important;\n overflow: hidden;\n font-size: 24px;\n line-height: normal !important;\n border-radius: 50%;\n box-shadow: 0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12);\n}\n.mdui-fab:hover {\n box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);\n}\n.mdui-fab:active {\n box-shadow: 0 7px 8px -4px rgba(0, 0, 0, 0.2), 0 12px 17px 2px rgba(0, 0, 0, 0.14), 0 5px 22px 4px rgba(0, 0, 0, 0.12);\n}\n.mdui-fab .mdui-icon {\n position: absolute;\n top: 0;\n left: 0;\n width: 24px;\n margin-top: 16px;\n margin-left: 16px;\n line-height: 24px;\n}\n/* mini 型浮动操作按钮 */\n.mdui-fab-mini {\n width: 40px;\n min-width: 40px;\n height: 40px;\n}\n.mdui-fab-mini .mdui-icon {\n margin-top: 8px;\n margin-left: 8px;\n}\n/* 固定到右下角的 FAB 按钮 */\n.mdui-fab-fixed,\n.mdui-fab-wrapper {\n position: fixed !important;\n /* 手机平板上距离屏幕右下角 16px */\n right: 16px;\n bottom: 16px;\n}\n@media (min-width: 1024px) {\n .mdui-fab-fixed,\n .mdui-fab-wrapper {\n /* 电脑上距离屏幕右下角 24px */\n right: 24px;\n bottom: 24px;\n }\n}\n/* 含菜单的浮动操作按钮 */\n.mdui-fab-wrapper {\n position: relative;\n z-index: 4000;\n width: 56px;\n height: 56px;\n padding-top: 8px;\n text-align: center;\n}\n.mdui-fab-wrapper > .mdui-fab .mdui-icon:not(.mdui-fab-opened) {\n opacity: 1;\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: opacity, transform;\n}\n.mdui-fab-wrapper > .mdui-fab .mdui-icon.mdui-fab-opened {\n transform: rotate(225deg);\n opacity: 0;\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: opacity, transform;\n}\n.mdui-fab-wrapper > .mdui-fab.mdui-fab-opened .mdui-icon:not(.mdui-fab-opened) {\n transform: rotate(225deg);\n opacity: 0;\n}\n.mdui-fab-wrapper > .mdui-fab.mdui-fab-opened .mdui-icon.mdui-fab-opened {\n transform: rotate(360deg);\n opacity: 1;\n}\n.mdui-fab-wrapper > .mdui-fab-mini {\n margin-top: 8px;\n}\n.mdui-fab-wrapper .mdui-fab-dial {\n position: absolute;\n right: 0;\n bottom: 64px;\n left: 0;\n height: 0;\n text-align: center;\n visibility: visible;\n}\n.mdui-fab-wrapper .mdui-fab-dial .mdui-fab {\n margin: 8px 0;\n transform: scale(0);\n opacity: 0;\n transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.mdui-fab-wrapper .mdui-fab-dial.mdui-fab-dial-show .mdui-fab {\n transform: scale(1);\n opacity: 1;\n}\n/* 添加类 .mdui-fab-hide 以动画的形式隐藏按钮 */\n.mdui-fab,\n.mdui-fab-mini,\n.mdui-fab-wrapper {\n transform: scale(1) translateZ(0);\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), transform 0.2s;\n will-change: transform;\n}\n.mdui-fab.mdui-fab-hide,\n.mdui-fab-mini.mdui-fab-hide,\n.mdui-fab-wrapper.mdui-fab-hide {\n transform: scale(0) translateZ(0);\n}\n/**\n * =============================================================================\n * ************ Select 下拉选择 ************\n * =============================================================================\n */\n.mdui-select {\n position: relative;\n display: inline-block;\n box-sizing: border-box;\n max-width: 100%;\n height: 36px;\n padding-right: 24px;\n padding-left: 0;\n font-size: 16px;\n font-family: Roboto, Noto, Helvetica, Arial, sans-serif;\n vertical-align: middle;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M-.003 2.5l5 5 5-5h-10z' opacity='.54'/%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n background-position: right center;\n border: none;\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n outline: none;\n cursor: pointer;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 0.2s;\n transition-property: background-color, box-shadow, background-position-x;\n appearance: none;\n user-select: none;\n will-change: background-color, box-shadow, background-position-x;\n}\n.mdui-select.mdui-select-open {\n border-bottom: none;\n}\n.mdui-select-position-top {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M10.003 7.5l-5-5-5 5h10z' opacity='.54'/%3E%3C/svg%3E\");\n}\n/* 底部和顶部菜单的样式 */\n.mdui-select-open.mdui-select-position-top,\n.mdui-select-open.mdui-select-position-bottom {\n z-index: 99999;\n background-color: #fff;\n /* stylelint-disable-next-line */\n background-position-x: calc(100% - 12px);\n border-radius: 2px;\n}\n.mdui-select-open.mdui-select-position-top {\n border-top: 1px solid rgba(0, 0, 0, 0.12);\n border-bottom: 2px solid transparent;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n box-shadow: 0 10px 10px -3px rgba(0, 0, 0, 0.2), 0 0 14px 1px rgba(0, 0, 0, 0.14), 0 -7px 24px 2px rgba(0, 0, 0, 0.12);\n}\n.mdui-select-open.mdui-select-position-top .mdui-select-menu {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n box-shadow: 0 -4px 4px -2px rgba(0, 0, 0, 0.06), 8px 0 8px -4px rgba(0, 0, 0, 0.12), -8px 0 8px -4px rgba(0, 0, 0, 0.12);\n}\n.mdui-select-open.mdui-select-position-bottom {\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);\n}\n.mdui-select-open.mdui-select-position-bottom .mdui-select-menu {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 9px 9px 1px rgba(0, 0, 0, 0.14), 0 8px 8px 2px rgba(0, 0, 0, 0.06);\n}\n/* 当前选中项文本 */\n.mdui-select-selected {\n position: absolute;\n top: 50%;\n right: 24px;\n left: 0;\n display: block;\n transform: translateY(-50%);\n transition: left 0.2s cubic-bezier(0, 0, 0.2, 1);\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.mdui-select-open .mdui-select-selected {\n right: 32px;\n left: 16px;\n}\n.mdui-select-open.mdui-select-position-auto .mdui-select-selected {\n visibility: hidden;\n}\n/* 菜单 */\n.mdui-select-menu {\n position: relative;\n z-index: 99999;\n box-sizing: border-box;\n height: 36px;\n margin: 0 -24px 0 0;\n overflow-y: scroll;\n color: rgba(0, 0, 0, 0.87);\n background-color: #fff;\n border-radius: 2px;\n transform: scale(1, 0);\n visibility: hidden;\n cursor: default;\n opacity: 0;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n transition-duration: 0.2s;\n transition-property: transform, opacity, visibility;\n will-change: transform, opacity, visibility;\n -webkit-overflow-scrolling: touch;\n box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);\n}\n.mdui-select-open .mdui-select-menu {\n overflow-y: hidden;\n transform: scale(1, 1);\n visibility: visible;\n opacity: 1;\n}\n.mdui-select-closing .mdui-select-menu {\n overflow-y: hidden;\n box-shadow: none;\n transform: scale(1, 1);\n visibility: visible;\n opacity: 0;\n}\n/* 菜单项 */\n.mdui-select-menu-item {\n height: 48px;\n padding: 0 16px;\n line-height: 48px;\n cursor: pointer;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.mdui-select-menu-item:hover {\n background-color: #EEEEEE;\n}\n.mdui-select-menu-item:first-child {\n margin-top: 8px;\n}\n.mdui-select-menu-item:last-child {\n margin-bottom: 8px;\n}\n.mdui-select-menu-item[disabled] {\n color: rgba(0, 0, 0, 0.38) !important;\n cursor: default;\n}\n.mdui-select-menu-item[disabled]:hover {\n background-color: inherit !important;\n}\n.mdui-select-menu-item[selected] {\n color: #FF4081;\n}\n/* 原生 select 组件 */\nselect.mdui-select {\n background-color: transparent;\n}\nselect.mdui-select option {\n color: rgba(0, 0, 0, 0.87);\n}\nselect.mdui-select::-ms-expand {\n display: none;\n}\n/* 原生多选 select 组件 */\nselect.mdui-select[multiple] {\n height: auto;\n padding: 0;\n font-size: 15px;\n background-color: #FFF;\n background-image: none;\n border: 1px solid rgba(0, 0, 0, 0.38);\n cursor: default;\n}\nselect.mdui-select[multiple] optgroup {\n margin: 8px 0 0 0;\n padding: 0 0 0 16px;\n color: rgba(0, 0, 0, 0.38);\n}\nselect.mdui-select[multiple] optgroup:last-child {\n margin-bottom: 8px;\n}\nselect.mdui-select[multiple] optgroup:not(:first-child) {\n padding-top: 8px;\n border-top: 1px solid rgba(0, 0, 0, 0.12);\n}\nselect.mdui-select[multiple] option {\n display: flex;\n align-items: center;\n height: 32px;\n margin: 0 0 0 -16px;\n padding: 0 16px;\n color: rgba(0, 0, 0, 0.87);\n}\nselect.mdui-select[multiple] option:first-child {\n margin-top: 8px;\n}\nselect.mdui-select[multiple] option:last-child {\n margin-bottom: 8px;\n}\n/**\n * =============================================================================\n * ************ Select 强调色 ************\n * =============================================================================\n */\n.mdui-theme-accent-amber .mdui-select-menu-item[selected] {\n color: #FFC107;\n}\n.mdui-theme-accent-blue .mdui-select-menu-item[selected] {\n color: #2196F3;\n}\n.mdui-theme-accent-cyan .mdui-select-menu-item[selected] {\n color: #00BCD4;\n}\n.mdui-theme-accent-deep-orange .mdui-select-menu-item[selected] {\n color: #FF5722;\n}\n.mdui-theme-accent-deep-purple .mdui-select-menu-item[selected] {\n color: #673AB7;\n}\n.mdui-theme-accent-green .mdui-select-menu-item[selected] {\n color: #4CAF50;\n}\n.mdui-theme-accent-indigo .mdui-select-menu-item[selected] {\n color: #3F51B5;\n}\n.mdui-theme-accent-light-blue .mdui-select-menu-item[selected] {\n color: #03A9F4;\n}\n.mdui-theme-accent-light-green .mdui-select-menu-item[selected] {\n color: #8BC34A;\n}\n.mdui-theme-accent-lime .mdui-select-menu-item[selected] {\n color: #CDDC39;\n}\n.mdui-theme-accent-orange .mdui-select-menu-item[selected] {\n color: #FF9800;\n}\n.mdui-theme-accent-pink .mdui-select-menu-item[selected] {\n color: #E91E63;\n}\n.mdui-theme-accent-purple .mdui-select-menu-item[selected] {\n color: #9C27B0;\n}\n.mdui-theme-accent-red .mdui-select-menu-item[selected] {\n color: #F44336;\n}\n.mdui-theme-accent-teal .mdui-select-menu-item[selected] {\n color: #009688;\n}\n.mdui-theme-accent-yellow .mdui-select-menu-item[selected] {\n color: #FFEB3B;\n}\n/**\n * =============================================================================\n * ************ Select dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-select {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M-.003 2.5l5 5 5-5h-10z' fill='%23FFF'/%3E%3C/svg%3E\");\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n}\n.mdui-theme-layout-dark .mdui-select-position-top {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M10.003 7.5l-5-5-5 5h10z' fill='%23FFF'/%3E%3C/svg%3E\");\n}\n.mdui-theme-layout-dark .mdui-select-open.mdui-select-position-top,\n.mdui-theme-layout-dark .mdui-select-open.mdui-select-position-bottom {\n background-color: #424242;\n}\n.mdui-theme-layout-dark .mdui-select-open.mdui-select-position-top {\n border-top: 1px solid rgba(255, 255, 255, 0.12);\n}\n.mdui-theme-layout-dark .mdui-select-open.mdui-select-position-bottom {\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n}\n.mdui-theme-layout-dark .mdui-select-menu {\n color: #fff;\n background-color: #424242;\n}\n.mdui-theme-layout-dark .mdui-select-menu-item:hover {\n background-color: #616161;\n}\n.mdui-theme-layout-dark .mdui-select-menu-item[disabled] {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n.mdui-theme-layout-dark select.mdui-select {\n color: #FFF;\n background-color: #303030;\n}\n.mdui-theme-layout-dark select.mdui-select option {\n color: #FFF;\n background-color: #303030;\n}\n.mdui-theme-layout-dark select.mdui-select[multiple] {\n border: 1px solid rgba(255, 255, 255, 0.5);\n}\n.mdui-theme-layout-dark select.mdui-select[multiple] optgroup {\n color: rgba(255, 255, 255, 0.5);\n}\n.mdui-theme-layout-dark select.mdui-select[multiple] optgroup:not(:first-child) {\n border-top: 1px solid rgba(255, 255, 255, 0.12);\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-select {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M-.003 2.5l5 5 5-5h-10z' fill='%23FFF'/%3E%3C/svg%3E\");\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n }\n .mdui-theme-layout-auto .mdui-select-position-top {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M10.003 7.5l-5-5-5 5h10z' fill='%23FFF'/%3E%3C/svg%3E\");\n }\n .mdui-theme-layout-auto .mdui-select-open.mdui-select-position-top,\n .mdui-theme-layout-auto .mdui-select-open.mdui-select-position-bottom {\n background-color: #424242;\n }\n .mdui-theme-layout-auto .mdui-select-open.mdui-select-position-top {\n border-top: 1px solid rgba(255, 255, 255, 0.12);\n }\n .mdui-theme-layout-auto .mdui-select-open.mdui-select-position-bottom {\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n }\n .mdui-theme-layout-auto .mdui-select-menu {\n color: #fff;\n background-color: #424242;\n }\n .mdui-theme-layout-auto .mdui-select-menu-item:hover {\n background-color: #616161;\n }\n .mdui-theme-layout-auto .mdui-select-menu-item[disabled] {\n color: rgba(255, 255, 255, 0.5) !important;\n }\n .mdui-theme-layout-auto select.mdui-select {\n color: #FFF;\n background-color: #303030;\n }\n .mdui-theme-layout-auto select.mdui-select option {\n color: #FFF;\n background-color: #303030;\n }\n .mdui-theme-layout-auto select.mdui-select[multiple] {\n border: 1px solid rgba(255, 255, 255, 0.5);\n }\n .mdui-theme-layout-auto select.mdui-select[multiple] optgroup {\n color: rgba(255, 255, 255, 0.5);\n }\n .mdui-theme-layout-auto select.mdui-select[multiple] optgroup:not(:first-child) {\n border-top: 1px solid rgba(255, 255, 255, 0.12);\n }\n}\n/**\n * =============================================================================\n * ************ Toolbar 工具栏 ************\n * =============================================================================\n */\n.mdui-toolbar {\n display: flex;\n align-items: center;\n box-sizing: border-box;\n width: 100%;\n}\n.mdui-toolbar > * {\n margin: 0 16px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.mdui-toolbar[class*=\"mdui-color-\"]:not(.mdui-color-transparent) .mdui-btn:hover {\n background-color: rgba(255, 255, 255, 0.1);\n}\n.mdui-toolbar[class*=\"mdui-color-\"]:not(.mdui-color-transparent) .mdui-btn:active {\n background-color: rgba(255, 255, 255, 0.165);\n}\n.mdui-toolbar > a {\n color: inherit;\n text-decoration: none;\n user-select: none;\n}\n.mdui-toolbar > .mdui-btn-icon {\n width: 48px;\n min-width: 48px;\n height: 48px;\n}\n@media (orientation: landscape) and (max-width: 959.9px) {\n .mdui-toolbar > .mdui-btn-icon {\n width: 40px;\n min-width: 40px;\n height: 40px;\n }\n}\n.mdui-toolbar > .mdui-btn-icon .mdui-icon {\n height: 24px;\n line-height: 24px;\n}\n.mdui-toolbar .mdui-icon {\n color: inherit;\n}\n.mdui-toolbar-spacer {\n flex-grow: 1;\n margin: 0;\n}\n/* 手机 */\n.mdui-toolbar {\n height: 56px;\n line-height: 56px;\n}\n.mdui-toolbar > .mdui-btn {\n margin: 0 4px;\n}\n.mdui-toolbar > .mdui-btn + .mdui-btn {\n margin-left: 0;\n}\n@media (min-width: 600px) {\n .mdui-appbar .mdui-toolbar {\n height: 64px;\n line-height: 64px;\n }\n .mdui-appbar .mdui-toolbar > .mdui-btn {\n margin: 0 8px;\n }\n .mdui-appbar .mdui-toolbar > .mdui-btn + .mdui-btn {\n margin-left: 0;\n }\n}\n@media (orientation: landscape) and (max-width: 959.9px) {\n .mdui-appbar .mdui-toolbar {\n height: 48px;\n line-height: 48px;\n }\n .mdui-appbar .mdui-toolbar > .mdui-btn {\n margin: 0 4px;\n }\n .mdui-appbar .mdui-toolbar > .mdui-btn + .mdui-btn {\n margin-left: 0;\n }\n}\n/**\n * =============================================================================\n * ************ Appbar 应用栏 ************\n * =============================================================================\n */\n.mdui-appbar {\n z-index: 1000;\n box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);\n}\n/* appbar 固定在顶部 */\n.mdui-appbar-fixed {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n transition-duration: 0.3s;\n transition-property: left, right;\n will-change: left, right;\n}\n/* 左侧留出抽屉栏的距离 */\n@media (min-width: 1024px) {\n .mdui-drawer-body-left .mdui-appbar-inset.mdui-appbar-fixed {\n left: 240px;\n }\n}\n@media (min-width: 1024px) {\n .mdui-drawer-body-right .mdui-appbar-inset.mdui-appbar-fixed {\n right: 240px;\n }\n}\n/* 含工具栏 */\n.mdui-appbar-with-toolbar {\n padding-top: 56px;\n}\n@media (min-width: 600px) {\n .mdui-appbar-with-toolbar {\n padding-top: 64px;\n }\n}\n@media (orientation: landscape) and (max-width: 959.9px) {\n .mdui-appbar-with-toolbar {\n padding-top: 48px;\n }\n}\n/* 含 Tab */\n.mdui-appbar-with-tab {\n padding-top: 48px;\n}\n/* 含大 Tab */\n.mdui-appbar-with-tab-larger {\n padding-top: 72px;\n}\n/* 含工具栏和 Tab */\n.mdui-appbar-with-toolbar.mdui-appbar-with-tab {\n padding-top: 104px;\n}\n@media (min-width: 600px) {\n .mdui-appbar-with-toolbar.mdui-appbar-with-tab {\n padding-top: 112px;\n }\n}\n@media (orientation: landscape) and (max-width: 959.9px) {\n .mdui-appbar-with-toolbar.mdui-appbar-with-tab {\n padding-top: 96px;\n }\n}\n/* 含工具栏和大 Tab */\n.mdui-appbar-with-toolbar.mdui-appbar-with-tab-larger {\n padding-top: 128px;\n}\n@media (min-width: 600px) {\n .mdui-appbar-with-toolbar.mdui-appbar-with-tab-larger {\n padding-top: 136px;\n }\n}\n@media (orientation: landscape) and (max-width: 959.9px) {\n .mdui-appbar-with-toolbar.mdui-appbar-with-tab-larger {\n padding-top: 120px;\n }\n}\n/**\n * =============================================================================\n * ************ Appbar dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-appbar > [class*=\"mdui-color-\"]:not(.mdui-color-transparent) {\n color: #fff !important;\n background-color: #212121 !important;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-appbar > [class*=\"mdui-color-\"]:not(.mdui-color-transparent) {\n color: #fff !important;\n background-color: #212121 !important;\n }\n}\n/**\n * =============================================================================\n * ************ Card 卡片 ************\n * =============================================================================\n */\n/* 卡片 */\n.mdui-card {\n position: relative;\n box-sizing: border-box;\n overflow: hidden;\n color: #000;\n background-color: #fff;\n border-radius: 2px;\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n}\n/**\n * ===================== 头部,包含头像、标题、副标题\n */\n.mdui-card-header {\n position: relative;\n box-sizing: border-box;\n height: 72px;\n padding: 16px;\n}\n/* 卡片头部头像 */\n.mdui-card-header-avatar {\n float: left;\n width: 40px;\n height: 40px;\n border-radius: 50%;\n}\n/* 卡片头部标题 */\n.mdui-card-header-title {\n display: block;\n margin-left: 52px;\n font-weight: 500;\n font-size: 16px;\n line-height: 20px;\n opacity: 0.87;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n/* 卡片头部副标题 */\n.mdui-card-header-subtitle {\n display: block;\n margin-left: 52px;\n font-weight: 400;\n font-size: 14px;\n line-height: 20px;\n opacity: 0.54;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n/**\n * =========================== 主标题区域\n */\n.mdui-card-primary {\n position: relative;\n padding: 24px 16px 16px 16px;\n}\n/* 主标题区域标题 */\n.mdui-card-primary-title {\n display: block;\n font-size: 24px;\n line-height: 36px;\n opacity: 0.87;\n}\n/* 主标题区域副标题 */\n.mdui-card-primary-subtitle {\n display: block;\n font-size: 14px;\n line-height: 24px;\n opacity: 0.54;\n}\n/**\n * ============================ 内容区域\n */\n.mdui-card-content {\n position: relative;\n padding: 16px;\n font-size: 14px;\n line-height: 24px;\n}\n/**\n * ============================ 卡片菜单\n */\n.mdui-card-menu {\n position: absolute;\n top: 16px;\n right: 16px;\n z-index: 1;\n}\n.mdui-card-menu .mdui-btn {\n margin-left: 8px;\n}\n/**\n * =========================== 按钮区域\n */\n.mdui-card-actions {\n position: relative;\n box-sizing: border-box;\n padding: 8px;\n}\n.mdui-card-actions::before,\n.mdui-card-actions::after {\n display: table;\n content: ' ';\n}\n.mdui-card-actions::after {\n clear: both;\n}\n.mdui-card-actions::before,\n.mdui-card-actions::after {\n display: table;\n content: ' ';\n}\n.mdui-card-actions::after {\n clear: both;\n}\n.mdui-card-actions .mdui-btn {\n max-width: 100%;\n margin: 0 8px 0 0;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.mdui-card-actions .mdui-btn-icon {\n width: 36px;\n height: 36px;\n margin: 0 8px;\n}\n/* 使按钮竖向排列 */\n.mdui-card-actions-stacked .mdui-btn {\n display: block;\n margin: 0 0 4px 0;\n}\n.mdui-card-actions-stacked .mdui-btn:last-child {\n margin: 0;\n}\n/**\n * ============================= 媒体元素区域\n */\n.mdui-card-media {\n position: relative;\n}\n.mdui-card-media img,\n.mdui-card-media video {\n display: block;\n width: 100%;\n}\n/* 覆盖在媒体元素上的内容 */\n.mdui-card-media-covered {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n color: #fff;\n background: rgba(0, 0, 0, 0.2);\n /* 覆盖在媒体元素上的标题 */\n}\n.mdui-card-media-covered .mdui-card-primary-title {\n opacity: 1;\n}\n.mdui-card-media-covered .mdui-card-primary-subtitle {\n opacity: 0.7;\n}\n/* 覆盖在媒体元素顶部 */\n.mdui-card-media-covered-top {\n top: 0;\n bottom: auto;\n}\n/* 覆盖层透明 */\n.mdui-card-media-covered-transparent {\n background: transparent;\n}\n/* 覆盖层渐变 */\n.mdui-card-media-covered-gradient {\n background: linear-gradient(to top, rgba(0, 0, 0, 0.26), rgba(0, 0, 0, 0));\n}\n.mdui-card-media-covered-gradient.mdui-card-media-covered-top {\n background: linear-gradient(to bottom, rgba(0, 0, 0, 0.26), rgba(0, 0, 0, 0));\n}\n/**\n * =============================================================================\n * ************ Card dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-card {\n color: #fff;\n background-color: #424242;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-card {\n color: #fff;\n background-color: #424242;\n }\n}\n/**\n * =============================================================================\n * ************ Tab ************\n * =============================================================================\n *\n * 在手机上选项卡始终平分或可滚动,在平板以上的设备上默认左对齐,可以选择居中对齐,或全宽等分\n */\n/* 选项卡,默认的选项卡为全宽 */\n.mdui-tab {\n position: relative;\n display: flex;\n min-height: 48px;\n max-height: 72px;\n margin: 0 auto;\n padding: 0;\n overflow-x: auto;\n overflow-y: hidden;\n white-space: nowrap;\n -webkit-overflow-scrolling: touch;\n}\n.mdui-tab a {\n display: flex;\n flex: 1;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n min-width: 72px;\n min-height: 48px;\n max-height: 72px;\n padding: 12px;\n overflow: hidden;\n color: inherit;\n font-size: 14px;\n text-align: center;\n text-transform: uppercase;\n text-decoration: none;\n text-overflow: ellipsis;\n outline: none;\n cursor: pointer;\n opacity: 0.7;\n user-select: none;\n}\n.mdui-tab a .mdui-icon {\n opacity: 0.7;\n}\n@media (min-width: 600px) {\n .mdui-tab a {\n flex: none;\n min-width: 99px;\n max-width: 264px;\n padding: 12px 24px;\n }\n}\n@media (min-width: 1024px) {\n .mdui-tab a {\n min-width: 112px;\n }\n}\n@media (min-width: 1440px) {\n .mdui-tab a {\n min-width: 136px;\n }\n}\n@media (min-width: 1920px) {\n .mdui-tab a {\n min-width: 160px;\n }\n}\n.mdui-tab a label {\n display: block;\n width: 100%;\n cursor: pointer;\n}\n.mdui-tab a .mdui-icon + label {\n margin-top: 8px;\n}\n.mdui-tab a[disabled] {\n cursor: default;\n opacity: 0.38;\n}\n.mdui-tab a[disabled] label {\n cursor: default;\n}\n.mdui-tab .mdui-tab-active {\n color: #3F51B5;\n opacity: 1;\n}\n.mdui-tab .mdui-tab-active .mdui-icon {\n opacity: 1;\n}\n/* 选项卡居中 */\n@media (min-width: 600px) {\n .mdui-tab-centered::before {\n flex-grow: 1;\n content: ' ';\n }\n .mdui-tab-centered::after {\n flex-grow: 1;\n content: ' ';\n }\n .mdui-tab-centered a {\n flex: none;\n }\n}\n/* 选项卡始终全宽等分 */\n.mdui-tab-full-width a {\n flex: 1;\n max-width: none;\n}\n/* 可横向滚动的选项卡 */\n.mdui-tab-scrollable {\n padding-left: 56px;\n}\n.mdui-tab-scrollable a {\n flex: none;\n}\n@media (max-width: 599.9px) {\n .mdui-tab-scrollable {\n padding-left: 60px;\n }\n}\n/* 下划线指示器 */\n.mdui-tab-indicator {\n position: absolute;\n bottom: 0;\n height: 2px;\n background-color: #3F51B5;\n transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: left, width;\n}\n/**\n * =============================================================================\n * ************ Tab 主色 ************\n * =============================================================================\n */\n.mdui-theme-primary-amber .mdui-tab .mdui-tab-active {\n color: #FFC107;\n}\n.mdui-theme-primary-amber .mdui-tab-indicator {\n background-color: #FFC107;\n}\n.mdui-theme-primary-blue .mdui-tab .mdui-tab-active {\n color: #2196F3;\n}\n.mdui-theme-primary-blue .mdui-tab-indicator {\n background-color: #2196F3;\n}\n.mdui-theme-primary-blue-grey .mdui-tab .mdui-tab-active {\n color: #607D8B;\n}\n.mdui-theme-primary-blue-grey .mdui-tab-indicator {\n background-color: #607D8B;\n}\n.mdui-theme-primary-brown .mdui-tab .mdui-tab-active {\n color: #795548;\n}\n.mdui-theme-primary-brown .mdui-tab-indicator {\n background-color: #795548;\n}\n.mdui-theme-primary-cyan .mdui-tab .mdui-tab-active {\n color: #00BCD4;\n}\n.mdui-theme-primary-cyan .mdui-tab-indicator {\n background-color: #00BCD4;\n}\n.mdui-theme-primary-deep-orange .mdui-tab .mdui-tab-active {\n color: #FF5722;\n}\n.mdui-theme-primary-deep-orange .mdui-tab-indicator {\n background-color: #FF5722;\n}\n.mdui-theme-primary-deep-purple .mdui-tab .mdui-tab-active {\n color: #673AB7;\n}\n.mdui-theme-primary-deep-purple .mdui-tab-indicator {\n background-color: #673AB7;\n}\n.mdui-theme-primary-green .mdui-tab .mdui-tab-active {\n color: #4CAF50;\n}\n.mdui-theme-primary-green .mdui-tab-indicator {\n background-color: #4CAF50;\n}\n.mdui-theme-primary-grey .mdui-tab .mdui-tab-active {\n color: #9E9E9E;\n}\n.mdui-theme-primary-grey .mdui-tab-indicator {\n background-color: #9E9E9E;\n}\n.mdui-theme-primary-indigo .mdui-tab .mdui-tab-active {\n color: #3F51B5;\n}\n.mdui-theme-primary-indigo .mdui-tab-indicator {\n background-color: #3F51B5;\n}\n.mdui-theme-primary-light-blue .mdui-tab .mdui-tab-active {\n color: #03A9F4;\n}\n.mdui-theme-primary-light-blue .mdui-tab-indicator {\n background-color: #03A9F4;\n}\n.mdui-theme-primary-light-green .mdui-tab .mdui-tab-active {\n color: #8BC34A;\n}\n.mdui-theme-primary-light-green .mdui-tab-indicator {\n background-color: #8BC34A;\n}\n.mdui-theme-primary-lime .mdui-tab .mdui-tab-active {\n color: #CDDC39;\n}\n.mdui-theme-primary-lime .mdui-tab-indicator {\n background-color: #CDDC39;\n}\n.mdui-theme-primary-orange .mdui-tab .mdui-tab-active {\n color: #FF9800;\n}\n.mdui-theme-primary-orange .mdui-tab-indicator {\n background-color: #FF9800;\n}\n.mdui-theme-primary-pink .mdui-tab .mdui-tab-active {\n color: #E91E63;\n}\n.mdui-theme-primary-pink .mdui-tab-indicator {\n background-color: #E91E63;\n}\n.mdui-theme-primary-purple .mdui-tab .mdui-tab-active {\n color: #9C27B0;\n}\n.mdui-theme-primary-purple .mdui-tab-indicator {\n background-color: #9C27B0;\n}\n.mdui-theme-primary-red .mdui-tab .mdui-tab-active {\n color: #F44336;\n}\n.mdui-theme-primary-red .mdui-tab-indicator {\n background-color: #F44336;\n}\n.mdui-theme-primary-teal .mdui-tab .mdui-tab-active {\n color: #009688;\n}\n.mdui-theme-primary-teal .mdui-tab-indicator {\n background-color: #009688;\n}\n.mdui-theme-primary-yellow .mdui-tab .mdui-tab-active {\n color: #FFEB3B;\n}\n.mdui-theme-primary-yellow .mdui-tab-indicator {\n background-color: #FFEB3B;\n}\n/* 带背景色的选项卡 */\n.mdui-tab[class*=\"mdui-color-\"]:not(.mdui-color-white) .mdui-tab-active {\n color: inherit;\n}\n.mdui-tab[class*=\"mdui-color-\"]:not(.mdui-color-white) .mdui-tab-indicator {\n background-color: #FFFFFF;\n}\n.mdui-tab[class*=\"mdui-color-\"]:not(.mdui-color-white)::-webkit-scrollbar {\n width: 5px;\n height: 5px;\n background: transparent;\n}\n@media (min-width: 1024px) {\n .mdui-tab[class*=\"mdui-color-\"]:not(.mdui-color-white)::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n }\n}\n.mdui-tab[class*=\"mdui-color-\"]:not(.mdui-color-white)::-webkit-scrollbar-thumb {\n background: rgba(255, 255, 255, 0.3);\n}\n/**\n * =============================================================================\n * ************ Subheader 副标题 ************\n * =============================================================================\n *\n * 用于 List 和 Grid list 组件\n */\n.mdui-subheader,\n.mdui-subheader-inset {\n position: relative;\n box-sizing: border-box;\n height: 48px;\n padding-right: 16px;\n padding-left: 16px;\n color: rgba(0, 0, 0, 0.54);\n font-weight: 500;\n font-size: 14px;\n line-height: 48px;\n cursor: default;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.mdui-subheader-inset {\n padding-left: 72px;\n}\n/**\n * =============================================================================\n * ************ Subheader dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-subheader,\n.mdui-theme-layout-dark .mdui-subheader-inset {\n color: rgba(255, 255, 255, 0.7);\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-subheader,\n .mdui-theme-layout-auto .mdui-subheader-inset {\n color: rgba(255, 255, 255, 0.7);\n }\n}\n/**\n * =============================================================================\n * ************ Grid List 网格列表 ************\n * =============================================================================\n */\n/* 调整网格边距 */\n.mdui-grid-list {\n margin: 0 -2px;\n}\n.mdui-grid-list .mdui-col,\n.mdui-grid-list [class*=\"mdui-col-xs-\"],\n.mdui-grid-list [class*=\"mdui-col-sm-\"],\n.mdui-grid-list [class*=\"mdui-col-md-\"],\n.mdui-grid-list [class*=\"mdui-col-lg-\"],\n.mdui-grid-list [class*=\"mdui-col-xl-\"] {\n padding-right: 2px;\n padding-left: 2px;\n}\n/* 单元格 */\n.mdui-grid-tile {\n position: relative;\n box-sizing: border-box;\n margin-bottom: 4px;\n overflow: hidden;\n}\n.mdui-grid-tile img {\n display: block;\n width: 100%;\n}\n/* 操作栏 */\n.mdui-grid-tile-actions {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n display: flex;\n align-items: center;\n box-sizing: border-box;\n min-height: 48px;\n max-height: 68px;\n padding: 16px;\n color: #fff;\n background: rgba(0, 0, 0, 0.2);\n}\n.mdui-grid-tile-actions .mdui-icon {\n color: #fff;\n}\n/* 操作栏内的文本 */\n.mdui-grid-tile-text {\n flex: 1;\n overflow: hidden;\n}\n/* 标题 */\n.mdui-grid-tile-title {\n height: 16px;\n font-size: 16px;\n line-height: 16px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.mdui-grid-tile-title .mdui-icon {\n margin-right: 8px;\n}\n/* 副标题 */\n.mdui-grid-tile-subtitle {\n height: 18px;\n margin-top: 4px;\n font-size: 12px;\n line-height: 18px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.mdui-grid-tile-subtitle .mdui-icon {\n margin-right: 8px;\n font-size: 18px;\n}\n/* 操作栏内的按钮 */\n.mdui-grid-tile-buttons {\n flex: none;\n margin: -8px;\n white-space: nowrap;\n}\n.mdui-grid-tile-buttons .mdui-btn {\n margin-left: 8px;\n}\n.mdui-grid-tile-buttons .mdui-btn:first-child {\n margin-left: 0;\n}\n.mdui-grid-tile-text + .mdui-grid-tile-buttons {\n margin-left: 8px;\n}\n.mdui-grid-tile-buttons + .mdui-grid-tile-text {\n margin-left: 16px;\n}\n/* 操作栏位于顶部 */\n.mdui-grid-tile-actions-top {\n top: 0;\n bottom: auto;\n}\n/* 操作栏背景透明 */\n.mdui-grid-tile-actions-transparent {\n background: transparent;\n}\n/* 操作栏背景渐变 */\n.mdui-grid-tile-actions-gradient {\n background: linear-gradient(to top, rgba(0, 0, 0, 0.26), rgba(0, 0, 0, 0));\n}\n.mdui-grid-tile-actions-gradient.mdui-grid-tile-actions-top {\n background: linear-gradient(to bottom, rgba(0, 0, 0, 0.26), rgba(0, 0, 0, 0));\n}\n/**\n * =============================================================================\n * ************ List 列表 ************\n * =============================================================================\n */\n/* 列表 */\n.mdui-list {\n margin: 0;\n padding: 8px 0;\n list-style: none;\n background-color: transparent;\n}\n.mdui-list .mdui-list {\n padding: 0;\n}\n.mdui-list > .mdui-divider,\n.mdui-list > .mdui-divider-light,\n.mdui-list > .mdui-divider-dark,\n.mdui-list > .mdui-divider-inset,\n.mdui-list > .mdui-divider-inset-light,\n.mdui-list > .mdui-divider-inset-dark {\n margin-top: 8px;\n margin-bottom: 8px;\n}\n.mdui-list a {\n color: inherit;\n text-decoration: none;\n}\n.mdui-list .mdui-subheader,\n.mdui-list .mdui-subheader-inset {\n margin-top: 8px;\n}\n.mdui-list .mdui-subheader::before,\n.mdui-list .mdui-subheader-inset::before {\n position: absolute;\n right: 0;\n left: 0;\n display: block;\n height: 1px;\n background-color: rgba(0, 0, 0, 0.12);\n content: ' ';\n}\n.mdui-list .mdui-subheader:first-child,\n.mdui-list .mdui-subheader-inset:first-child {\n margin-top: -8px;\n}\n.mdui-list .mdui-subheader:first-child::before,\n.mdui-list .mdui-subheader-inset:first-child::before {\n background-color: transparent;\n}\n.mdui-list .mdui-subheader-inset::before {\n left: 72px;\n}\n/* 列表项 */\n.mdui-list-item {\n display: flex;\n align-items: center;\n box-sizing: border-box;\n min-height: 48px;\n padding: 0 16px;\n text-decoration: none;\n cursor: pointer;\n transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.mdui-list-item:hover {\n background-color: rgba(0, 0, 0, 0.08);\n}\n.mdui-list-item::after {\n height: 48px;\n visibility: hidden;\n content: ' ';\n}\n/* 列表项图标 */\n.mdui-list-item-icon {\n width: 24px;\n min-width: 24px;\n height: 24px;\n color: rgba(0, 0, 0, 0.54);\n}\n/* 列表项头像 */\n.mdui-list-item-avatar {\n min-width: 40px;\n max-width: 40px;\n height: 40px;\n margin-top: 8px;\n margin-bottom: 8px;\n color: #FFFFFF;\n line-height: 40px;\n text-align: center;\n background-color: #BDBDBD;\n border-radius: 50%;\n}\n.mdui-list-item-avatar img {\n width: 100%;\n height: 100%;\n border-radius: 50%;\n}\n/* 列表项内容 */\n.mdui-list-item-content {\n flex-grow: 1;\n padding-top: 14px;\n padding-bottom: 14px;\n font-weight: 400;\n font-size: 16px;\n line-height: 20px;\n}\n/* 列表项内容的副内容 */\n.mdui-list-item-text {\n font-size: 14px;\n opacity: 0.54;\n}\n.mdui-list-item-title ~ .mdui-list-item-text {\n margin-top: 4px;\n}\n/* 激活状态的列表项 */\n.mdui-list-item-active {\n font-weight: 700;\n background-color: rgba(0, 0, 0, 0.08);\n}\n.mdui-list-item-active .mdui-list-item-content {\n font-weight: 700;\n}\n.mdui-list-item-active .mdui-list-item-text {\n font-weight: 400;\n}\n/* 限制文本高度 */\n.mdui-list-item-one-line,\n.mdui-list-item-two-line,\n.mdui-list-item-three-line {\n display: -webkit-box;\n overflow: hidden;\n text-overflow: ellipsis;\n -webkit-box-orient: vertical;\n}\n.mdui-list-item-one-line {\n -webkit-line-clamp: 1;\n height: 20px;\n}\n.mdui-list-item-two-line {\n -webkit-line-clamp: 2;\n height: 40px;\n}\n.mdui-list-item-three-line {\n -webkit-line-clamp: 3;\n height: 60px;\n}\n/* 列表项内的元素间添加间距 */\n.mdui-list-item-icon ~ .mdui-list-item-content {\n margin-left: 32px;\n}\n.mdui-checkbox ~ .mdui-list-item-content,\n.mdui-radio ~ .mdui-list-item-content,\n.mdui-switch ~ .mdui-list-item-content {\n margin-left: 20px;\n}\n.mdui-list-item-avatar ~ .mdui-list-item-content {\n margin-left: 16px;\n}\n.mdui-list-item-content ~ .mdui-list-item-icon,\n.mdui-list-item-content ~ .mdui-list-item-avatar,\n.mdui-list-item-content ~ .mdui-checkbox,\n.mdui-list-item-content ~ .mdui-radio,\n.mdui-list-item-content ~ .mdui-switch {\n margin-left: 16px;\n}\n.mdui-list-item-content ~ .mdui-checkbox,\n.mdui-list-item-content ~ .mdui-radio {\n padding-left: 24px;\n}\n/* 密集型列表 */\n.mdui-list-dense {\n padding: 4px 0;\n font-size: 13px;\n}\n.mdui-list-dense > .mdui-divider,\n.mdui-list-dense > .mdui-divider-light,\n.mdui-list-dense > .mdui-divider-dark,\n.mdui-list-dense > .mdui-divider-inset,\n.mdui-list-dense > .mdui-divider-inset-light,\n.mdui-list-dense > .mdui-divider-inset-dark {\n margin-top: 4px;\n margin-bottom: 4px;\n}\n.mdui-list-dense .mdui-subheader,\n.mdui-list-dense .mdui-subheader-inset {\n height: 40px;\n margin-top: 4px;\n font-size: 12px;\n line-height: 40px;\n}\n.mdui-list-dense .mdui-subheader:first-child,\n.mdui-list-dense .mdui-subheader-inset:first-child {\n margin-top: -4px;\n}\n.mdui-list-dense .mdui-list-item {\n min-height: 40px;\n}\n.mdui-list-dense .mdui-list-item::after {\n height: 40px;\n}\n.mdui-list-dense .mdui-list-item-icon {\n width: 20px;\n height: 20px;\n font-size: 20px;\n}\n.mdui-list-dense .mdui-list-item-avatar {\n width: 36px;\n min-width: 36px;\n height: 36px;\n min-height: 36px;\n}\n.mdui-list-dense .mdui-list-item-content {\n padding-top: 11px;\n padding-bottom: 11px;\n font-size: 13px;\n line-height: 18px;\n}\n.mdui-list-dense .mdui-list-item-text {\n font-size: 13px;\n}\n.mdui-list-dense .mdui-list-item-title ~ .mdui-list-item-text {\n margin-top: 2px;\n}\n.mdui-list-dense .mdui-list-item-one-line {\n height: 18px;\n}\n.mdui-list-dense .mdui-list-item-two-line {\n height: 36px;\n}\n.mdui-list-dense .mdui-list-item-three-line {\n height: 54px;\n}\n/**\n * =============================================================================\n * ************ List dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-list .mdui-subheader::before,\n.mdui-theme-layout-dark .mdui-list .mdui-subheader-inset::before {\n background-color: rgba(255, 255, 255, 0.12);\n}\n.mdui-theme-layout-dark .mdui-list .mdui-subheader:first-child::before,\n.mdui-theme-layout-dark .mdui-list .mdui-subheader-inset:first-child::before {\n background-color: transparent;\n}\n.mdui-theme-layout-dark .mdui-list-item {\n color: #ffffff;\n}\n.mdui-theme-layout-dark .mdui-list-item:hover {\n background-color: rgba(255, 255, 255, 0.08);\n}\n.mdui-theme-layout-dark .mdui-list-item-icon {\n color: #ffffff;\n}\n.mdui-theme-layout-dark .mdui-list-item-text {\n opacity: 0.7;\n}\n.mdui-theme-layout-dark .mdui-list-item-active {\n background-color: rgba(255, 255, 255, 0.08);\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-list .mdui-subheader::before,\n .mdui-theme-layout-auto .mdui-list .mdui-subheader-inset::before {\n background-color: rgba(255, 255, 255, 0.12);\n }\n .mdui-theme-layout-auto .mdui-list .mdui-subheader:first-child::before,\n .mdui-theme-layout-auto .mdui-list .mdui-subheader-inset:first-child::before {\n background-color: transparent;\n }\n .mdui-theme-layout-auto .mdui-list-item {\n color: #ffffff;\n }\n .mdui-theme-layout-auto .mdui-list-item:hover {\n background-color: rgba(255, 255, 255, 0.08);\n }\n .mdui-theme-layout-auto .mdui-list-item-icon {\n color: #ffffff;\n }\n .mdui-theme-layout-auto .mdui-list-item-text {\n opacity: 0.7;\n }\n .mdui-theme-layout-auto .mdui-list-item-active {\n background-color: rgba(255, 255, 255, 0.08);\n }\n}\n/**\n * ==============================================================================\n * ************ List inner theme ************\n * ==============================================================================\n */\n[class*=\"mdui-color-\"] .mdui-list-item {\n color: inherit;\n}\n[class*=\"mdui-color-\"] .mdui-list-item-icon {\n color: inherit;\n}\n/**\n * =============================================================================\n * ************ Drawer 抽屉栏导航 ************\n * =============================================================================\n */\n/* DOM 加载完后再添加 transition */\nbody.mdui-loaded {\n transition: padding 0.3s cubic-bezier(0, 0, 0.2, 1);\n}\nbody.mdui-loaded .mdui-drawer {\n transition: all 0.3s cubic-bezier(0, 0, 0.2, 1);\n}\n/* 抽屉栏外层,默认出现在左侧且隐藏 */\n.mdui-drawer {\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n z-index: 5000;\n box-sizing: border-box;\n /* stylelint-disable-next-line */\n width: calc(100% - 56px);\n max-width: 280px;\n margin: 0;\n overflow-x: hidden;\n overflow-y: auto;\n white-space: nowrap;\n will-change: transform;\n -webkit-overflow-scrolling: touch;\n}\n@media (max-width: 1023.9px) {\n .mdui-drawer:not(.mdui-drawer-open) {\n box-shadow: none !important;\n }\n}\n@media (min-width: 600px) {\n .mdui-drawer {\n /* stylelint-disable-next-line */\n width: calc(100% - 64px);\n max-width: 320px;\n }\n}\n@media (min-width: 1024px) {\n .mdui-drawer {\n width: 240px;\n max-width: none;\n }\n .mdui-drawer.mdui-drawer-close {\n box-shadow: none !important;\n }\n}\n/* 出现在右侧的抽屉栏 */\n.mdui-drawer-right {\n right: 0;\n left: auto;\n}\n/* 平板上的样式 */\n@media (max-width: 1023.9px) {\n .mdui-drawer {\n /* 始终有背景和阴影 */\n background-color: #fff;\n /* 默认隐藏 */\n transform: translateX(-330px);\n box-shadow: 0 8px 10px -5px rgba(0, 0, 0, 0.2), 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12);\n }\n .mdui-drawer-right {\n /* 右侧 drawer 也默认隐藏 */\n transform: translateX(330px);\n }\n}\n/* 手机上的样式 */\n@media (max-width: 599.9px) {\n .mdui-drawer {\n transform: translateX(-290px);\n }\n .mdui-drawer-right {\n transform: translateX(290px);\n }\n}\n/* 强制隐藏抽屉栏 */\n.mdui-drawer-close {\n transform: translateX(-290px);\n}\n.mdui-drawer-close.mdui-drawer-right {\n transform: translateX(290px);\n}\n@media (min-width: 600px) {\n .mdui-drawer-close {\n transform: translateX(-330px);\n }\n .mdui-drawer-close.mdui-drawer-right {\n transform: translateX(330px);\n }\n}\n@media (min-width: 1024px) {\n .mdui-drawer-close {\n transform: translateX(-250px);\n }\n .mdui-drawer-close.mdui-drawer-right {\n transform: translateX(250px);\n }\n}\n/* 强制显示抽屉栏 */\n.mdui-drawer-open {\n transform: translateX(0) !important;\n}\n/* PC 上的样式 */\n@media (min-width: 1024px) {\n /* 使该类所在元素获得 padding-left 或 padding-right,避免被抽屉栏覆盖住页面 */\n .mdui-drawer-body-left {\n padding-left: 240px;\n }\n .mdui-drawer-body-right {\n padding-right: 240px;\n }\n /* PC 上默认有上边距 */\n .mdui-appbar-with-toolbar .mdui-drawer {\n top: 64px;\n }\n .mdui-appbar-with-tab .mdui-drawer {\n top: 48px;\n }\n .mdui-appbar-with-tab-larger .mdui-drawer {\n top: 72px;\n }\n .mdui-appbar-with-toolbar.mdui-appbar-with-tab .mdui-drawer {\n top: 112px;\n }\n .mdui-appbar-with-toolbar.mdui-appbar-with-tab-larger .mdui-drawer {\n top: 136px;\n }\n}\n/* 抽屉栏不是透明时添加阴影 */\n.mdui-drawer[class*=\"mdui-color-\"]:not(.mdui-color-transparent) {\n box-shadow: 0 8px 10px -5px rgba(0, 0, 0, 0.2), 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12);\n}\n/* 抽屉栏 100% 高度,覆盖在导航栏上面 */\n.mdui-drawer-full-height {\n top: 0 !important;\n}\n/**\n * =============================================================================\n * ************ Drawer dark ************\n * =============================================================================\n */\n@media (max-width: 1023.9px) {\n .mdui-theme-layout-dark .mdui-drawer {\n background-color: #424242;\n }\n}\n@media (prefers-color-scheme: dark) and (max-width: 1023.9px) {\n .mdui-theme-layout-auto .mdui-drawer {\n background-color: #424242;\n }\n}\n/**\n * =============================================================================\n * ************ Dialog 提示框 ************\n * =============================================================================\n */\n.mdui-dialog {\n position: fixed;\n right: 0;\n left: 0;\n z-index: 6000;\n display: none;\n box-sizing: border-box;\n width: 92%;\n min-width: 180px;\n max-width: 728px;\n max-height: 90%;\n margin: auto;\n overflow: hidden;\n color: #000;\n background-color: #fff;\n border-radius: 2px;\n transform: scale(0.95);\n opacity: 0;\n transition-duration: 0.3s;\n transition-property: transform, opacity, visibility;\n will-change: top, opacity, transform;\n box-shadow: 0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12);\n}\n@media (min-width: 600px) {\n .mdui-dialog {\n width: 85%;\n max-height: 85%;\n }\n}\n@media (min-width: 1024px) {\n .mdui-dialog {\n width: 80%;\n max-height: 80%;\n }\n}\n/* 打开提示框 */\n.mdui-dialog-open {\n transform: scale(1);\n opacity: 1;\n}\n/* 提示框标题 */\n.mdui-dialog-title {\n box-sizing: border-box;\n font-weight: 500;\n font-size: 20px;\n line-height: 24px;\n text-align: left;\n}\n/* 标题固定在顶部 */\n.mdui-dialog > .mdui-dialog-title {\n padding: 24px 24px 20px 24px;\n}\n/* 提示框内容 */\n.mdui-dialog-content {\n box-sizing: border-box;\n padding: 24px;\n overflow-y: auto;\n color: rgba(0, 0, 0, 0.7);\n font-size: 15px;\n line-height: 1.5;\n -webkit-overflow-scrolling: touch;\n}\n/* 标题随内容滚动 */\n.mdui-dialog-content > .mdui-dialog-title {\n padding-bottom: 20px;\n}\n.mdui-dialog-title + .mdui-dialog-content {\n padding-top: 0;\n}\n/* 提示框底部按钮 */\n.mdui-dialog-actions {\n box-sizing: border-box;\n padding: 8px;\n text-align: right;\n}\n.mdui-dialog-actions .mdui-btn {\n min-width: 64px;\n margin-left: 8px;\n color: #E91E63;\n}\n.mdui-dialog-actions .mdui-btn:first-child {\n margin-left: 0;\n}\n/* 底部按钮滚随内容动 */\n.mdui-dialog-content > .mdui-dialog-actions {\n margin: 0 -24px -24px -24px;\n padding-top: 32px;\n}\n/* 使提示框底部按钮竖排 */\n.mdui-dialog-actions-stacked {\n padding: 8px 0 8px 0;\n}\n.mdui-dialog-actions-stacked .mdui-btn {\n width: 100%;\n height: 48px;\n margin: 0;\n line-height: 48px !important;\n text-align: right;\n border-radius: 0;\n}\n/**\n * =============================================================================\n * ************ Dialog 强调色 ************\n * =============================================================================\n */\n.mdui-theme-accent-amber .mdui-dialog-actions .mdui-btn {\n color: #FFC107;\n}\n.mdui-theme-accent-blue .mdui-dialog-actions .mdui-btn {\n color: #2196F3;\n}\n.mdui-theme-accent-cyan .mdui-dialog-actions .mdui-btn {\n color: #00BCD4;\n}\n.mdui-theme-accent-deep-orange .mdui-dialog-actions .mdui-btn {\n color: #FF5722;\n}\n.mdui-theme-accent-deep-purple .mdui-dialog-actions .mdui-btn {\n color: #673AB7;\n}\n.mdui-theme-accent-green .mdui-dialog-actions .mdui-btn {\n color: #4CAF50;\n}\n.mdui-theme-accent-indigo .mdui-dialog-actions .mdui-btn {\n color: #3F51B5;\n}\n.mdui-theme-accent-light-blue .mdui-dialog-actions .mdui-btn {\n color: #03A9F4;\n}\n.mdui-theme-accent-light-green .mdui-dialog-actions .mdui-btn {\n color: #8BC34A;\n}\n.mdui-theme-accent-lime .mdui-dialog-actions .mdui-btn {\n color: #CDDC39;\n}\n.mdui-theme-accent-orange .mdui-dialog-actions .mdui-btn {\n color: #FF9800;\n}\n.mdui-theme-accent-pink .mdui-dialog-actions .mdui-btn {\n color: #E91E63;\n}\n.mdui-theme-accent-purple .mdui-dialog-actions .mdui-btn {\n color: #9C27B0;\n}\n.mdui-theme-accent-red .mdui-dialog-actions .mdui-btn {\n color: #F44336;\n}\n.mdui-theme-accent-teal .mdui-dialog-actions .mdui-btn {\n color: #009688;\n}\n.mdui-theme-accent-yellow .mdui-dialog-actions .mdui-btn {\n color: #FFEB3B;\n}\n/**\n * =============================================================================\n * ************ Dialog dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-dialog {\n color: #fff;\n background-color: #424242;\n}\n.mdui-theme-layout-dark .mdui-dialog-content {\n color: rgba(255, 255, 255, 0.7);\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-dialog {\n color: #fff;\n background-color: #424242;\n }\n .mdui-theme-layout-auto .mdui-dialog-content {\n color: rgba(255, 255, 255, 0.7);\n }\n}\n/**\n * =============================================================================\n * ************ Dialog alert ************\n * =============================================================================\n */\n.mdui-dialog-alert {\n max-width: 448px;\n}\n/**\n * =============================================================================\n * ************ Dialog confirm ************\n * =============================================================================\n */\n.mdui-dialog-confirm {\n max-width: 448px;\n}\n/**\n * =============================================================================\n * ************ Dialog prompt ************\n * =============================================================================\n */\n.mdui-dialog-prompt {\n max-width: 448px;\n}\n.mdui-dialog-prompt .mdui-textfield {\n padding-top: 0;\n}\n/**\n * =============================================================================\n * ************ Tooltip 工具提示 ************\n * =============================================================================\n */\n.mdui-tooltip {\n position: absolute;\n z-index: 9000;\n display: inline-block;\n box-sizing: border-box;\n max-width: 180px;\n min-height: 32px;\n padding: 8px 16px;\n color: #fff;\n font-weight: 500;\n font-size: 14px;\n line-height: 22px;\n text-align: left;\n background-color: rgba(97, 97, 97, 0.9);\n border-radius: 2px;\n transform: scale(0);\n opacity: 0;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 0.15s;\n transition-property: opacity, transform;\n will-change: opacity, transform;\n}\n@media (min-width: 1024px) {\n .mdui-tooltip {\n max-width: 200px;\n min-height: 24px;\n padding: 4px 8px;\n font-size: 12px;\n line-height: 18px;\n }\n}\n/* 显示工具提示 */\n.mdui-tooltip-open {\n transform: scale(1);\n opacity: 1;\n}\n/**\n * =============================================================================\n * ************ Snackbar ************\n * =============================================================================\n */\n.mdui-snackbar {\n position: fixed;\n z-index: 7000;\n display: flex;\n align-items: center;\n justify-content: space-between;\n box-sizing: border-box;\n width: 100%;\n min-height: 48px;\n padding: 0 24px 0 24px;\n color: #fff;\n font-size: 14px;\n line-height: 20px;\n background-color: #323232;\n will-change: transform;\n}\n@media (min-width: 600px) {\n .mdui-snackbar {\n width: auto;\n min-width: 288px;\n max-width: 568px;\n border-radius: 2px;\n }\n}\n.mdui-snackbar-bottom,\n.mdui-snackbar-top,\n.mdui-snackbar-left-top,\n.mdui-snackbar-left-bottom,\n.mdui-snackbar-right-top,\n.mdui-snackbar-right-bottom {\n transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n/* 位置 */\n.mdui-snackbar-bottom,\n.mdui-snackbar-left-bottom,\n.mdui-snackbar-right-bottom {\n bottom: 0;\n}\n.mdui-snackbar-top,\n.mdui-snackbar-left-top,\n.mdui-snackbar-right-top {\n top: 0;\n}\n.mdui-snackbar-top,\n.mdui-snackbar-bottom {\n left: 50%;\n}\n@media (min-width: 600px) {\n .mdui-snackbar-left-top {\n top: 24px;\n left: 24px;\n }\n .mdui-snackbar-left-bottom {\n bottom: 24px;\n left: 24px;\n }\n .mdui-snackbar-right-top {\n top: 24px;\n right: 24px;\n }\n .mdui-snackbar-right-bottom {\n right: 24px;\n bottom: 24px;\n }\n}\n/* 文本 */\n.mdui-snackbar-text {\n position: relative;\n max-width: 100%;\n padding: 14px 0 14px 0;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n/* 按钮 */\n.mdui-snackbar-action {\n margin-right: -16px;\n white-space: nowrap;\n color: #FF80AB;\n}\n/**\n * =============================================================================\n * ************ Snackbar 强调色 ************\n * =============================================================================\n */\n.mdui-theme-accent-amber .mdui-snackbar-action {\n color: #FFE57F;\n}\n.mdui-theme-accent-blue .mdui-snackbar-action {\n color: #82B1FF;\n}\n.mdui-theme-accent-cyan .mdui-snackbar-action {\n color: #84FFFF;\n}\n.mdui-theme-accent-deep-orange .mdui-snackbar-action {\n color: #FF9E80;\n}\n.mdui-theme-accent-deep-purple .mdui-snackbar-action {\n color: #B388FF;\n}\n.mdui-theme-accent-green .mdui-snackbar-action {\n color: #B9F6CA;\n}\n.mdui-theme-accent-indigo .mdui-snackbar-action {\n color: #8C9EFF;\n}\n.mdui-theme-accent-light-blue .mdui-snackbar-action {\n color: #80D8FF;\n}\n.mdui-theme-accent-light-green .mdui-snackbar-action {\n color: #CCFF90;\n}\n.mdui-theme-accent-lime .mdui-snackbar-action {\n color: #F4FF81;\n}\n.mdui-theme-accent-orange .mdui-snackbar-action {\n color: #FFD180;\n}\n.mdui-theme-accent-pink .mdui-snackbar-action {\n color: #FF80AB;\n}\n.mdui-theme-accent-purple .mdui-snackbar-action {\n color: #EA80FC;\n}\n.mdui-theme-accent-red .mdui-snackbar-action {\n color: #FF8A80;\n}\n.mdui-theme-accent-teal .mdui-snackbar-action {\n color: #A7FFEB;\n}\n.mdui-theme-accent-yellow .mdui-snackbar-action {\n color: #FFFF8D;\n}\n/**\n * =============================================================================\n * ************ Snackbar dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-snackbar {\n background-color: #5d5d5d;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-snackbar {\n background-color: #5d5d5d;\n }\n}\n/**\n * =============================================================================\n * ************ Chip 纸片 ************\n * =============================================================================\n */\n.mdui-chip {\n display: inline-block;\n box-sizing: border-box;\n height: 32px;\n margin: 2px 0;\n color: inherit;\n white-space: nowrap;\n background-color: #e0e0e0;\n border-radius: 16px;\n cursor: pointer;\n user-select: none;\n transition: box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: box-shadow;\n}\n.mdui-chip:hover,\n.mdui-chip:focus {\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n}\n.mdui-chip:active {\n background-color: #d6d6d6;\n}\n/* 左侧的图标 */\n.mdui-chip-icon {\n position: relative;\n display: inline-block;\n width: 32px;\n height: 32px;\n margin-right: -4px;\n overflow: hidden;\n color: #fff;\n font-size: 18px;\n line-height: 32px;\n text-align: center;\n vertical-align: middle;\n background-color: #989898;\n border-radius: 50%;\n}\n.mdui-chip-icon .mdui-icon {\n position: absolute;\n top: 4px;\n left: 4px;\n color: #fff;\n}\n/* 文本 */\n.mdui-chip-title {\n display: inline-block;\n height: 32px;\n padding-right: 12px;\n padding-left: 12px;\n font-size: 14px;\n line-height: 32px;\n vertical-align: middle;\n}\n/* 删除按钮 */\n.mdui-chip-delete {\n display: inline-block;\n width: 24px;\n height: 24px;\n margin-right: 4px;\n margin-left: -8px;\n overflow: hidden;\n text-align: center;\n text-decoration: none;\n vertical-align: middle;\n border-radius: 50%;\n cursor: pointer;\n opacity: 0.54;\n transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: opacity;\n}\n.mdui-chip-delete:hover,\n.mdui-chip-delete:focus {\n opacity: 0.87;\n}\n/**\n * =============================================================================\n * ************ Chip dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-chip {\n background-color: #484848;\n}\n.mdui-theme-layout-dark .mdui-chip:active {\n background-color: #5d5d5d;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-chip {\n background-color: #484848;\n }\n .mdui-theme-layout-auto .mdui-chip:active {\n background-color: #5d5d5d;\n }\n}\n/**\n * =============================================================================\n * ************ Bottom navigation 底部导航栏 ************\n * =============================================================================\n */\n.mdui-bottom-nav {\n position: relative;\n display: flex;\n height: 56px;\n margin: 0 auto;\n padding: 0;\n overflow: hidden;\n white-space: nowrap;\n}\n@media (min-width: 600px) {\n .mdui-bottom-nav::before {\n flex-grow: 1;\n content: ' ';\n }\n .mdui-bottom-nav::after {\n flex-grow: 1;\n content: ' ';\n }\n}\n.mdui-bottom-nav a {\n display: flex;\n flex: 1;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n min-width: 32px;\n max-width: none;\n padding: 8px 12px 10px 12px;\n overflow: hidden;\n color: inherit;\n font-size: 12px;\n text-align: center;\n text-decoration: none;\n text-overflow: ellipsis;\n cursor: pointer;\n opacity: 0.7;\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n user-select: none;\n will-change: padding;\n}\n@media (min-width: 600px) {\n .mdui-bottom-nav a {\n max-width: 144px;\n }\n}\n.mdui-bottom-nav a .mdui-icon {\n opacity: 0.7;\n}\n.mdui-bottom-nav a label {\n display: block;\n width: 100%;\n cursor: pointer;\n transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: font-size;\n}\n.mdui-bottom-nav a .mdui-icon + label {\n margin-top: 6px;\n}\n.mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #3F51B5;\n font-size: 14px;\n opacity: 1;\n}\n.mdui-bottom-nav a.mdui-bottom-nav-active .mdui-icon {\n opacity: 1;\n}\n/* 只在激活时显示文本 */\n.mdui-bottom-nav-text-auto a {\n min-width: 32px;\n padding-right: 0;\n padding-left: 0;\n}\n@media (min-width: 600px) {\n .mdui-bottom-nav-text-auto a {\n max-width: 156px;\n }\n}\n.mdui-bottom-nav-text-auto a .mdui-icon {\n padding-top: 16px;\n transition: padding-top 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: padding-top;\n}\n.mdui-bottom-nav-text-auto a label {\n transform: scale(0);\n}\n.mdui-bottom-nav-text-auto a.mdui-bottom-nav-active {\n padding-right: 18px;\n padding-left: 18px;\n}\n.mdui-bottom-nav-text-auto a.mdui-bottom-nav-active .mdui-icon {\n padding-top: 0;\n}\n.mdui-bottom-nav-text-auto a.mdui-bottom-nav-active label {\n transform: scale(1);\n}\n/* 固定到页面底部 */\n.mdui-bottom-nav-fixed {\n padding-bottom: 56px;\n}\n.mdui-bottom-nav-fixed .mdui-bottom-nav {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n}\n/**\n * =============================================================================\n * ************ Bottom Nav 主色 ************\n * =============================================================================\n */\n.mdui-theme-primary-amber .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #FFC107;\n}\n.mdui-theme-primary-blue .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #2196F3;\n}\n.mdui-theme-primary-blue-grey .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #607D8B;\n}\n.mdui-theme-primary-brown .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #795548;\n}\n.mdui-theme-primary-cyan .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #00BCD4;\n}\n.mdui-theme-primary-deep-orange .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #FF5722;\n}\n.mdui-theme-primary-deep-purple .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #673AB7;\n}\n.mdui-theme-primary-green .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #4CAF50;\n}\n.mdui-theme-primary-grey .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #9E9E9E;\n}\n.mdui-theme-primary-indigo .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #3F51B5;\n}\n.mdui-theme-primary-light-blue .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #03A9F4;\n}\n.mdui-theme-primary-light-green .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #8BC34A;\n}\n.mdui-theme-primary-lime .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #CDDC39;\n}\n.mdui-theme-primary-orange .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #FF9800;\n}\n.mdui-theme-primary-pink .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #E91E63;\n}\n.mdui-theme-primary-purple .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #9C27B0;\n}\n.mdui-theme-primary-red .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #F44336;\n}\n.mdui-theme-primary-teal .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #009688;\n}\n.mdui-theme-primary-yellow .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #FFEB3B;\n}\n/* 带背景色的底部导航栏 */\n.mdui-bottom-nav[class*=\"mdui-color-\"] .mdui-bottom-nav-active {\n color: inherit !important;\n}\n/**\n * =============================================================================\n * ************ Progress Linear 线性进度条 ************\n * =============================================================================\n */\n/* 线性进度条 */\n.mdui-progress {\n position: relative;\n display: block;\n width: 100%;\n height: 4px;\n overflow: hidden;\n background-color: rgba(63, 81, 181, 0.2);\n border-radius: 2px;\n}\n/* 确定进度的线性进度条 */\n.mdui-progress-determinate {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n background-color: #3F51B5;\n transition: width 0.3s linear;\n}\n/* 不确定进度的线性进度条 */\n.mdui-progress-indeterminate {\n background-color: #3F51B5;\n}\n.mdui-progress-indeterminate::before {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n background-color: inherit;\n animation: mdui-progress-indeterminate 2s linear infinite;\n content: ' ';\n will-change: left, width;\n}\n.mdui-progress-indeterminate::after {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n background-color: inherit;\n animation: mdui-progress-indeterminate-short 2s linear infinite;\n content: ' ';\n will-change: left, width;\n}\n@keyframes mdui-progress-indeterminate {\n 0% {\n left: 0;\n width: 0;\n }\n 50% {\n left: 30%;\n width: 70%;\n }\n 75% {\n left: 100%;\n width: 0;\n }\n}\n@keyframes mdui-progress-indeterminate-short {\n 0% {\n left: 0;\n width: 0;\n }\n 50% {\n left: 0;\n width: 0;\n }\n 75% {\n left: 0;\n width: 25%;\n }\n 100% {\n left: 100%;\n width: 0;\n }\n}\n/**\n * =============================================================================\n * ************ Progress linear 主色 ************\n * =============================================================================\n */\n.mdui-theme-primary-amber .mdui-progress {\n background-color: rgba(255, 193, 7, 0.2);\n}\n.mdui-theme-primary-amber .mdui-progress-determinate,\n.mdui-theme-primary-amber .mdui-progress-indeterminate {\n background-color: #FFC107;\n}\n.mdui-theme-primary-blue .mdui-progress {\n background-color: rgba(33, 150, 243, 0.2);\n}\n.mdui-theme-primary-blue .mdui-progress-determinate,\n.mdui-theme-primary-blue .mdui-progress-indeterminate {\n background-color: #2196F3;\n}\n.mdui-theme-primary-blue-grey .mdui-progress {\n background-color: rgba(96, 125, 139, 0.2);\n}\n.mdui-theme-primary-blue-grey .mdui-progress-determinate,\n.mdui-theme-primary-blue-grey .mdui-progress-indeterminate {\n background-color: #607D8B;\n}\n.mdui-theme-primary-brown .mdui-progress {\n background-color: rgba(121, 85, 72, 0.2);\n}\n.mdui-theme-primary-brown .mdui-progress-determinate,\n.mdui-theme-primary-brown .mdui-progress-indeterminate {\n background-color: #795548;\n}\n.mdui-theme-primary-cyan .mdui-progress {\n background-color: rgba(0, 188, 212, 0.2);\n}\n.mdui-theme-primary-cyan .mdui-progress-determinate,\n.mdui-theme-primary-cyan .mdui-progress-indeterminate {\n background-color: #00BCD4;\n}\n.mdui-theme-primary-deep-orange .mdui-progress {\n background-color: rgba(255, 87, 34, 0.2);\n}\n.mdui-theme-primary-deep-orange .mdui-progress-determinate,\n.mdui-theme-primary-deep-orange .mdui-progress-indeterminate {\n background-color: #FF5722;\n}\n.mdui-theme-primary-deep-purple .mdui-progress {\n background-color: rgba(103, 58, 183, 0.2);\n}\n.mdui-theme-primary-deep-purple .mdui-progress-determinate,\n.mdui-theme-primary-deep-purple .mdui-progress-indeterminate {\n background-color: #673AB7;\n}\n.mdui-theme-primary-green .mdui-progress {\n background-color: rgba(76, 175, 80, 0.2);\n}\n.mdui-theme-primary-green .mdui-progress-determinate,\n.mdui-theme-primary-green .mdui-progress-indeterminate {\n background-color: #4CAF50;\n}\n.mdui-theme-primary-grey .mdui-progress {\n background-color: rgba(158, 158, 158, 0.2);\n}\n.mdui-theme-primary-grey .mdui-progress-determinate,\n.mdui-theme-primary-grey .mdui-progress-indeterminate {\n background-color: #9E9E9E;\n}\n.mdui-theme-primary-indigo .mdui-progress {\n background-color: rgba(63, 81, 181, 0.2);\n}\n.mdui-theme-primary-indigo .mdui-progress-determinate,\n.mdui-theme-primary-indigo .mdui-progress-indeterminate {\n background-color: #3F51B5;\n}\n.mdui-theme-primary-light-blue .mdui-progress {\n background-color: rgba(3, 169, 244, 0.2);\n}\n.mdui-theme-primary-light-blue .mdui-progress-determinate,\n.mdui-theme-primary-light-blue .mdui-progress-indeterminate {\n background-color: #03A9F4;\n}\n.mdui-theme-primary-light-green .mdui-progress {\n background-color: rgba(139, 195, 74, 0.2);\n}\n.mdui-theme-primary-light-green .mdui-progress-determinate,\n.mdui-theme-primary-light-green .mdui-progress-indeterminate {\n background-color: #8BC34A;\n}\n.mdui-theme-primary-lime .mdui-progress {\n background-color: rgba(205, 220, 57, 0.2);\n}\n.mdui-theme-primary-lime .mdui-progress-determinate,\n.mdui-theme-primary-lime .mdui-progress-indeterminate {\n background-color: #CDDC39;\n}\n.mdui-theme-primary-orange .mdui-progress {\n background-color: rgba(255, 152, 0, 0.2);\n}\n.mdui-theme-primary-orange .mdui-progress-determinate,\n.mdui-theme-primary-orange .mdui-progress-indeterminate {\n background-color: #FF9800;\n}\n.mdui-theme-primary-pink .mdui-progress {\n background-color: rgba(233, 30, 99, 0.2);\n}\n.mdui-theme-primary-pink .mdui-progress-determinate,\n.mdui-theme-primary-pink .mdui-progress-indeterminate {\n background-color: #E91E63;\n}\n.mdui-theme-primary-purple .mdui-progress {\n background-color: rgba(156, 39, 176, 0.2);\n}\n.mdui-theme-primary-purple .mdui-progress-determinate,\n.mdui-theme-primary-purple .mdui-progress-indeterminate {\n background-color: #9C27B0;\n}\n.mdui-theme-primary-red .mdui-progress {\n background-color: rgba(244, 67, 54, 0.2);\n}\n.mdui-theme-primary-red .mdui-progress-determinate,\n.mdui-theme-primary-red .mdui-progress-indeterminate {\n background-color: #F44336;\n}\n.mdui-theme-primary-teal .mdui-progress {\n background-color: rgba(0, 150, 136, 0.2);\n}\n.mdui-theme-primary-teal .mdui-progress-determinate,\n.mdui-theme-primary-teal .mdui-progress-indeterminate {\n background-color: #009688;\n}\n.mdui-theme-primary-yellow .mdui-progress {\n background-color: rgba(255, 235, 59, 0.2);\n}\n.mdui-theme-primary-yellow .mdui-progress-determinate,\n.mdui-theme-primary-yellow .mdui-progress-indeterminate {\n background-color: #FFEB3B;\n}\n/**\n * =============================================================================\n * ************ Progress Circular 圆形进度条 ************\n * =============================================================================\n */\n.mdui-spinner {\n position: relative;\n display: inline-block;\n width: 28px;\n height: 28px;\n animation: mdui-spinner 1568ms linear infinite;\n}\n@keyframes mdui-spinner {\n to {\n transform: rotate(360deg);\n }\n}\n.mdui-spinner-layer {\n position: absolute;\n width: 100%;\n height: 100%;\n border-color: #3F51B5;\n opacity: 0;\n opacity: 1;\n animation: mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n.mdui-spinner-layer-1 {\n border-color: #42A5F5 !important;\n animation: mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdui-spinner-layer-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n.mdui-spinner-layer-2 {\n border-color: #F44336 !important;\n animation: mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdui-spinner-layer-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n.mdui-spinner-layer-3 {\n border-color: #FDD835 !important;\n animation: mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdui-spinner-layer-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n.mdui-spinner-layer-4 {\n border-color: #4CAF50 !important;\n animation: mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdui-spinner-layer-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n@keyframes mdui-spinner-layer-fill-unfill-rotate {\n 12.5% {\n transform: rotate(135deg);\n }\n 25% {\n transform: rotate(270deg);\n }\n 37.5% {\n transform: rotate(405deg);\n }\n 50% {\n transform: rotate(540deg);\n }\n 62.5% {\n transform: rotate(675deg);\n }\n 75% {\n transform: rotate(810deg);\n }\n 87.5% {\n transform: rotate(945deg);\n }\n to {\n transform: rotate(1080deg);\n }\n}\n@keyframes mdui-spinner-layer-1-fade-in-out {\n from {\n opacity: 1;\n }\n 25% {\n opacity: 1;\n }\n 26% {\n opacity: 0;\n }\n 89% {\n opacity: 0;\n }\n 90% {\n opacity: 1;\n }\n 100% {\n opacity: 1;\n }\n}\n@keyframes mdui-spinner-layer-2-fade-in-out {\n from {\n opacity: 0;\n }\n 15% {\n opacity: 0;\n }\n 25% {\n opacity: 1;\n }\n 50% {\n opacity: 1;\n }\n 51% {\n opacity: 0;\n }\n}\n@keyframes mdui-spinner-layer-3-fade-in-out {\n from {\n opacity: 0;\n }\n 40% {\n opacity: 0;\n }\n 50% {\n opacity: 1;\n }\n 75% {\n opacity: 1;\n }\n 76% {\n opacity: 0;\n }\n}\n@keyframes mdui-spinner-layer-4-fade-in-out {\n from {\n opacity: 0;\n }\n 65% {\n opacity: 0;\n }\n 75% {\n opacity: 1;\n }\n 90% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n}\n.mdui-spinner-gap-patch {\n position: absolute;\n top: 0;\n left: 45%;\n width: 10%;\n height: 100%;\n overflow: hidden;\n border-color: inherit;\n}\n.mdui-spinner-gap-patch .mdui-spinner-circle {\n left: -450%;\n box-sizing: border-box;\n width: 1000%;\n}\n.mdui-spinner-circle-clipper {\n position: relative;\n display: inline-block;\n width: 50%;\n height: 100%;\n overflow: hidden;\n border-color: inherit;\n}\n.mdui-spinner-circle-clipper .mdui-spinner-circle {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n box-sizing: border-box;\n width: 200%;\n height: 100%;\n border-color: inherit;\n border-style: solid;\n border-width: 3px;\n border-bottom-color: transparent !important;\n border-radius: 50%;\n animation: none;\n}\n.mdui-spinner-circle-clipper.mdui-spinner-left {\n float: left;\n}\n.mdui-spinner-circle-clipper.mdui-spinner-left .mdui-spinner-circle {\n left: 0;\n border-right-color: transparent !important;\n transform: rotate(129deg);\n animation: mdui-spinner-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n.mdui-spinner-circle-clipper.mdui-spinner-right {\n float: right;\n}\n.mdui-spinner-circle-clipper.mdui-spinner-right .mdui-spinner-circle {\n left: -100%;\n border-left-color: transparent !important;\n transform: rotate(-129deg);\n animation: mdui-spinner-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n@keyframes mdui-spinner-left-spin {\n from {\n transform: rotate(130deg);\n }\n 50% {\n transform: rotate(-5deg);\n }\n to {\n transform: rotate(130deg);\n }\n}\n@keyframes mdui-spinner-right-spin {\n from {\n transform: rotate(-130deg);\n }\n 50% {\n transform: rotate(5deg);\n }\n to {\n transform: rotate(-130deg);\n }\n}\n/**\n * =============================================================================\n * ************ Spinner linear 主色 ************\n * =============================================================================\n */\n.mdui-theme-primary-amber .mdui-spinner-layer {\n border-color: #FFC107;\n}\n.mdui-theme-primary-blue .mdui-spinner-layer {\n border-color: #2196F3;\n}\n.mdui-theme-primary-blue-grey .mdui-spinner-layer {\n border-color: #607D8B;\n}\n.mdui-theme-primary-brown .mdui-spinner-layer {\n border-color: #795548;\n}\n.mdui-theme-primary-cyan .mdui-spinner-layer {\n border-color: #00BCD4;\n}\n.mdui-theme-primary-deep-orange .mdui-spinner-layer {\n border-color: #FF5722;\n}\n.mdui-theme-primary-deep-purple .mdui-spinner-layer {\n border-color: #673AB7;\n}\n.mdui-theme-primary-green .mdui-spinner-layer {\n border-color: #4CAF50;\n}\n.mdui-theme-primary-grey .mdui-spinner-layer {\n border-color: #9E9E9E;\n}\n.mdui-theme-primary-indigo .mdui-spinner-layer {\n border-color: #3F51B5;\n}\n.mdui-theme-primary-light-blue .mdui-spinner-layer {\n border-color: #03A9F4;\n}\n.mdui-theme-primary-light-green .mdui-spinner-layer {\n border-color: #8BC34A;\n}\n.mdui-theme-primary-lime .mdui-spinner-layer {\n border-color: #CDDC39;\n}\n.mdui-theme-primary-orange .mdui-spinner-layer {\n border-color: #FF9800;\n}\n.mdui-theme-primary-pink .mdui-spinner-layer {\n border-color: #E91E63;\n}\n.mdui-theme-primary-purple .mdui-spinner-layer {\n border-color: #9C27B0;\n}\n.mdui-theme-primary-red .mdui-spinner-layer {\n border-color: #F44336;\n}\n.mdui-theme-primary-teal .mdui-spinner-layer {\n border-color: #009688;\n}\n.mdui-theme-primary-yellow .mdui-spinner-layer {\n border-color: #FFEB3B;\n}\n/**\n * =============================================================================\n * ************ Menu 菜单 ************\n * =============================================================================\n */\n/* 菜单 */\n.mdui-menu {\n position: fixed;\n z-index: 99999;\n display: block;\n box-sizing: border-box;\n width: 168px;\n margin: 0;\n padding: 8px 0;\n overflow-y: auto;\n color: rgba(0, 0, 0, 0.87);\n font-size: 16px;\n list-style: none;\n background-color: #fff;\n border-radius: 2px;\n transform: scale(0);\n visibility: hidden;\n opacity: 0;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n transition-duration: 0.3s;\n transition-property: transform, opacity, visibility;\n will-change: transform, opacity, visibility;\n -webkit-overflow-scrolling: touch;\n box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);\n}\n.mdui-menu .mdui-divider {\n margin-top: 8px;\n margin-bottom: 8px;\n}\n/* 打开状态的菜单 */\n.mdui-menu-open {\n transform: scale(1);\n visibility: visible;\n opacity: 1;\n}\n/* 关闭中的菜单 */\n.mdui-menu-closing {\n transform: scale(1);\n visibility: visible;\n opacity: 0;\n}\n/* 菜单项 */\n.mdui-menu-item {\n position: relative;\n}\n.mdui-menu-item > a {\n position: relative;\n display: block;\n height: 48px;\n padding: 0 16px;\n color: inherit;\n line-height: 48px;\n text-decoration: none;\n user-select: none;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.mdui-menu-item > a:hover {\n background-color: #EEEEEE;\n}\n.mdui-menu-item > .mdui-menu {\n position: absolute;\n box-shadow: 0 5px 6px -3px rgba(0, 0, 0, 0.2), 0 9px 12px 1px rgba(0, 0, 0, 0.14), 0 3px 16px 2px rgba(0, 0, 0, 0.12);\n}\n.mdui-menu-item[disabled] > a {\n color: rgba(0, 0, 0, 0.38) !important;\n cursor: default;\n}\n.mdui-menu-item[disabled] > a:hover {\n background-color: inherit !important;\n}\n.mdui-menu-item[disabled] > a .mdui-icon {\n color: rgba(0, 0, 0, 0.26);\n}\n/* 激活状态的菜单项 */\n.mdui-menu-item-active {\n background-color: #EEEEEE;\n}\n/* 菜单中的图标 */\n.mdui-menu-item-icon {\n display: inline-block;\n box-sizing: border-box;\n width: 40px;\n padding-right: 16px;\n color: rgba(0, 0, 0, 0.54);\n}\n/* 菜单中的辅助文本或图标 */\n.mdui-menu-item-helper {\n float: right;\n}\n/* 有子菜单的条目的图标 */\n.mdui-menu-item-more {\n float: right;\n width: 24px;\n height: 24px;\n margin: 4px 0;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M9.5 17.5l5-5-5-5z' opacity='.54'/%3E%3C/svg%3E\");\n}\n/* 级联菜单 */\n.mdui-menu-cascade {\n width: 320px;\n padding: 16px 0;\n overflow: visible;\n font-size: 15px;\n}\n.mdui-menu-cascade > .mdui-menu-item > a {\n height: 32px;\n padding: 0 24px;\n line-height: 32px;\n}\n/**\n * =============================================================================\n * ************ Menu dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-menu {\n color: #fff;\n background-color: #424242;\n}\n.mdui-theme-layout-dark .mdui-menu-item > a:hover {\n background-color: #616161;\n}\n.mdui-theme-layout-dark .mdui-menu-item[disabled] > a {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n.mdui-theme-layout-dark .mdui-menu-item[disabled] > a .mdui-icon {\n color: rgba(255, 255, 255, 0.3);\n}\n.mdui-theme-layout-dark .mdui-menu-item-active {\n background-color: #616161;\n}\n.mdui-theme-layout-dark .mdui-menu-item-icon {\n color: #ffffff;\n}\n.mdui-theme-layout-dark .mdui-menu-item-more {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M9.5 17.5l5-5-5-5z' fill='%23FFF'/%3E%3C/svg%3E\");\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-menu {\n color: #fff;\n background-color: #424242;\n }\n .mdui-theme-layout-auto .mdui-menu-item > a:hover {\n background-color: #616161;\n }\n .mdui-theme-layout-auto .mdui-menu-item[disabled] > a {\n color: rgba(255, 255, 255, 0.5) !important;\n }\n .mdui-theme-layout-auto .mdui-menu-item[disabled] > a .mdui-icon {\n color: rgba(255, 255, 255, 0.3);\n }\n .mdui-theme-layout-auto .mdui-menu-item-active {\n background-color: #616161;\n }\n .mdui-theme-layout-auto .mdui-menu-item-icon {\n color: #ffffff;\n }\n .mdui-theme-layout-auto .mdui-menu-item-more {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M9.5 17.5l5-5-5-5z' fill='%23FFF'/%3E%3C/svg%3E\");\n }\n}\n","/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","/**\n * =============================================================================\n * ************ 公共样式 ************\n * =============================================================================\n */\n* {\n -webkit-tap-highlight-color: transparent;\n}\n\nbody {\n color: @body-text-color;\n font-size: @screen-xs-font-size;\n font-family: @font-family-base;\n background-color: @body-background-color;\n @media (min-width: @screen-sm-min) {\n font-size: @screen-sm-font-size;\n }\n @media (min-width: @screen-md-min) {\n font-size: @screen-md-font-size;\n }\n\n // 滚动条样式\n * {\n .mdui-scrollbar-beautify(light);\n }\n}\n\n/* 锁定屏幕 */\nbody.mdui-locked {\n overflow: hidden;\n}\n\n/* 遮罩层 */\n.mdui-overlay {\n position: fixed;\n top: -5000px;\n right: -5000px;\n bottom: -5000px;\n left: -5000px;\n z-index: @z-index-overlay;\n background: rgba(0, 0, 0, .4);\n backface-visibility: hidden;\n visibility: hidden;\n opacity: 0;\n transition-duration: .3s;\n transition-property: opacity, visibility;\n will-change: opacity;\n}\n\n/* 显示遮罩层 */\n.mdui-overlay-show {\n visibility: visible;\n opacity: 1;\n}\n\n/* 取消 transition 过渡效果 */\n.mdui-no-transition {\n transition-property: none !important;\n}\n\n\n/**\n * =============================================================================\n * ************ Global dark ************\n * =============================================================================\n */\n.layout-theme({\n color: #fff;\n background-color: @layout-dark-color-3;\n\n // 夜间模式滚动条样式\n * {\n .mdui-scrollbar-beautify(dark);\n }\n});\n","// ======================== 边距\n.mdui-m-a(@spacing) {\n margin: @spacing * @spacing-base;\n}\n.mdui-m-t(@spacing) {\n margin-top: @spacing * @spacing-base;\n}\n.mdui-m-r(@spacing) {\n margin-right: @spacing * @spacing-base;\n}\n.mdui-m-b(@spacing) {\n margin-bottom: @spacing * @spacing-base;\n}\n.mdui-m-l(@spacing) {\n margin-left: @spacing * @spacing-base;\n}\n.mdui-m-x(@spacing) {\n margin-right: @spacing * @spacing-base;\n margin-left: @spacing * @spacing-base;\n}\n.mdui-m-y(@spacing) {\n margin-top: @spacing * @spacing-base;\n margin-bottom: @spacing * @spacing-base;\n}\n\n.mdui-p-a(@spacing) {\n padding: @spacing * @spacing-base;\n}\n.mdui-p-t(@spacing) {\n padding-top: @spacing * @spacing-base;\n}\n.mdui-p-r(@spacing) {\n padding-right: @spacing * @spacing-base;\n}\n.mdui-p-b(@spacing) {\n padding-bottom: @spacing * @spacing-base;\n}\n.mdui-p-l(@spacing) {\n padding-left: @spacing * @spacing-base;\n}\n.mdui-p-x(@spacing) {\n padding-right: @spacing * @spacing-base;\n padding-left: @spacing * @spacing-base;\n}\n.mdui-p-y(@spacing) {\n padding-top: @spacing * @spacing-base;\n padding-bottom: @spacing * @spacing-base;\n}\n\n//=========================== 清除浮动\n// 清除浮动\n.mdui-clearfix() {\n &::before,\n &::after {\n display: table;\n content: ' ';\n }\n &::after {\n clear: both;\n }\n}\n\n// 用省略号代替被截断的文本\n.mdui-text-truncate() {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n// 文本强制换行\n.mdui-textwrap() {\n word-wrap: break-word;\n word-break: break-all;\n}\n\n// 使子元素垂直居中\n.mdui-valign() {\n display: flex;\n align-items: center;\n}\n\n// 使元素水平居中\n.mdui-center() {\n display: block;\n margin-right: auto;\n margin-left: auto;\n}\n\n// 美化滚动条样式\n.mdui-scrollbar-beautify(@layout: light) {\n // 亮色主题\n & when (@layout = light) {\n &::-webkit-scrollbar {\n width: 5px;\n height: 5px;\n background: transparent;\n // 桌面端\n @media (min-width: @screen-md-min) {\n width: 8px;\n height: 8px;\n }\n }\n\n &::-webkit-scrollbar-thumb {\n background: rgba(0, 0, 0, 0.2);\n }\n }\n\n // 暗色主题\n & when (@layout = dark) {\n &::-webkit-scrollbar {\n width: 5px;\n height: 5px;\n background: transparent;\n // 桌面端\n @media (min-width: @screen-md-min) {\n width: 8px;\n height: 8px;\n }\n }\n\n &::-webkit-scrollbar-thumb {\n background: rgba(255, 255, 255, 0.3);\n }\n }\n}\n",".layout-theme(@rules) {\n & when (@globalLayoutDark = true) {\n .mdui-theme-layout-dark {\n @rules();\n }\n }\n & when (@globalLayoutAuto = true) {\n @media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto {\n @rules();\n }\n }\n }\n}\n","// 阴影\n@shadow-key-umbra-opacity: 0.2;\n@shadow-key-penumbra-opacity: 0.14;\n@shadow-ambient-shadow-opacity: 0.12;\n\n\n@shadow-depth-0: none;\n\n@shadow-depth-1: 0 2px 1px -1px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 1px 1px 0 rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 1px 3px 0 rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-2: 0 3px 1px -2px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 2px 2px 0 rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 1px 5px 0 rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-3: 0 3px 3px -2px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 3px 4px 0 rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 1px 8px 0 rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-4: 0 2px 4px -1px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 4px 5px 0 rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 1px 10px 0 rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-5: 0 3px 5px -1px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 5px 8px 0 rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 1px 14px 0 rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-6: 0 3px 5px -1px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 6px 10px 0 rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 1px 18px 0 rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-7: 0 4px 5px -2px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 7px 10px 1px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 2px 16px 1px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-8: 0 5px 5px -3px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 8px 10px 1px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 3px 14px 2px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-9: 0 5px 6px -3px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 9px 12px 1px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 3px 16px 2px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-10: 0 6px 6px -3px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 10px 14px 1px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 4px 18px 3px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-11: 0 6px 7px -4px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 11px 15px 1px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 4px 20px 3px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-12: 0 7px 8px -4px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 12px 17px 2px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 5px 22px 4px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-13: 0 7px 8px -4px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 13px 19px 2px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 5px 24px 4px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-14: 0 7px 9px -4px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 14px 21px 2px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 5px 26px 4px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-15: 0 8px 9px -5px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 15px 22px 2px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 6px 28px 5px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-16: 0 8px 10px -5px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 16px 24px 2px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 6px 30px 5px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-17: 0 8px 11px -5px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 17px 26px 2px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 6px 32px 5px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-18: 0 9px 11px -5px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 18px 28px 2px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 7px 34px 6px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-19: 0 9px 12px -6px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 19px 29px 2px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 7px 36px 6px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-20: 0 10px 13px -6px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 20px 31px 3px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 8px 38px 7px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-21: 0 10px 13px -6px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 21px 33px 3px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 8px 40px 7px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-22: 0 10px 14px -6px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 22px 35px 3px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 8px 42px 7px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-23: 0 11px 14px -7px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 23px 36px 3px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 9px 44px 8px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-24: 0 11px 15px -7px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 24px 38px 3px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 9px 46px 8px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n","// 根据背景色设置文本色\n._mdui-color-text-color(@color-is-dark) {\n & when (@color-is-dark = true) {\n color: @color-white-text;\n }\n & when (@color-is-dark = false) {\n color: @color-black-text;\n }\n}\n\n// hover 状态背景色\n._mdui-background-color-hover(@colorName) {\n @color-is-dark: 'color-@{colorName}-500-is-dark';\n & when (@@color-is-dark = true) {\n @color: 'color-@{colorName}-400';\n\n background-color: @@color;\n }\n & when (@@color-is-dark = false) {\n @color: 'color-@{colorName}-600';\n\n background-color: @@color;\n }\n}\n\n// active 状态背景色\n._mdui-background-color-active(@colorName) {\n @color-is-dark: 'color-@{colorName}-500-is-dark';\n & when (@@color-is-dark = true) {\n @color: 'color-@{colorName}-300';\n\n background-color: @@color;\n }\n & when (@@color-is-dark = false) {\n @color: 'color-@{colorName}-700';\n\n background-color: @@color;\n }\n}\n\n// 仅设置背景色\n.mdui-background-color(@colorName, @degree: 500) {\n @color: 'color-@{colorName}-@{degree}';\n\n background-color: @@color;\n}\n\n// 背景色和文本色\n.mdui-color(@colorName, @degree: 500) {\n .mdui-background-color(@colorName, @degree);\n\n @color-is-dark: 'color-@{colorName}-@{degree}-is-dark';\n ._mdui-color-text-color(@@color-is-dark);\n}\n\n// 文本色\n.mdui-text-color(@colorName, @degree: 500, @opacity: 1) {\n @color: 'color-@{colorName}-@{degree}';\n\n & when (@opacity = 1) {\n color: @@color;\n }\n & when (@opacity < 1) {\n color: rgba(red(@@color), green(@@color), blue(@@color), @opacity);\n }\n}\n","/**\n * =============================================================================\n * ************ Color 颜色 ************\n * =============================================================================\n */\n\n@global-primary-color-degrees-length: length(@globalPrimaryColorDegrees);\n@global-primary-colors-length: length(@globalPrimaryColors);\n@global-accent-color-degrees-length: length(@globalAccentColorDegrees);\n@global-accent-colors-length: length(@globalAccentColors);\n\n\n/**\n * .mdui-theme-primary-[color] .mdui-color-theme\n * .mdui-theme-primary-[color] .mdui-color-theme-[degree]\n */\n\n& {\n .loop-primary-theme(@counter-color) when (@counter-color > 0) {\n .loop-primary-theme((@counter-color - 1));\n\n @colorName: extract(@globalPrimaryColors, @counter-color);\n\n .mdui-theme-primary-@{colorName} when not (@colorName = null) {\n\n // .mdui-theme-primary-[color] .mdui-color-theme\n .mdui-color-theme {\n .mdui-color(@colorName) !important;\n }\n\n .loop-primary-degree-theme(@counter-degree) when (@counter-degree > 0) {\n .loop-primary-degree-theme((@counter-degree - 1));\n\n @degree: extract(@globalPrimaryColorDegrees, @counter-degree);\n\n // .mdui-theme-primary-[color] .mdui-color-theme-[degree]\n .mdui-color-theme-@{degree} when not (@degree = null) {\n .mdui-color(@colorName, @degree) !important;\n }\n }\n .loop-primary-degree-theme(@global-primary-color-degrees-length);\n }\n }\n .loop-primary-theme(@global-primary-colors-length);\n}\n\n\n/**\n * .mdui-theme-accent-[color] .mdui-color-theme-accent\n * .mdui-theme-accent-[color] .mdui-color-theme-[degree]\n */\n\n& {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n\n @colorName: extract(@globalAccentColors, @counter-color);\n\n .mdui-theme-accent-@{colorName} when not (@colorName = null) {\n\n // .mdui-theme-accent-[color] .mdui-color-theme-accent\n .mdui-color-theme-accent {\n .mdui-color(@colorName, a200) !important;\n }\n\n .loop-accent-degree-theme(@counter-degree) when (@counter-degree > 0) {\n .loop-accent-degree-theme((@counter-degree - 1));\n\n @degree: extract(@globalAccentColorDegrees, @counter-degree);\n\n // .mdui-theme-accent-[color] .mdui-color-theme-[degree]\n .mdui-color-theme-@{degree} when not (@degree = null) {\n .mdui-color(@colorName, @degree) !important;\n }\n }\n .loop-accent-degree-theme(@global-accent-color-degrees-length);\n }\n }\n .loop-accent-theme(@global-accent-colors-length);\n}\n\n\n/**\n * .mdui-color-[color]\n * .mdui-color-[color]-[degree]\n */\n\n& {\n .loop-primary-theme(@counter-color) when (@counter-color > 0) {\n .loop-primary-theme((@counter-color - 1));\n\n @colorName: extract(@globalPrimaryColors, @counter-color);\n\n & {\n // .mdui-color-[color]\n .mdui-color-@{colorName} when not (@colorName = null) {\n .mdui-color(@colorName) !important;\n }\n\n .loop-primary-degree-theme(@counter-degree) when (@counter-degree > 0) {\n .loop-primary-degree-theme((@counter-degree - 1));\n\n @degree: extract(@globalPrimaryColorDegrees, @counter-degree);\n\n // .mdui-color-[color]-[degree]\n .mdui-color-@{colorName}-@{degree} when not (@degree = null) {\n .mdui-color(@colorName, @degree) !important;\n }\n }\n .loop-primary-degree-theme(@global-primary-color-degrees-length);\n }\n }\n .loop-primary-theme(@global-primary-colors-length);\n}\n\n\n/**\n * .mdui-color-[color]-accent\n * .mdui-color-[color]-[degree]\n */\n\n& {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n\n @colorName: extract(@globalAccentColors, @counter-color);\n\n &{\n // .mdui-color-[color]-accent\n .mdui-color-@{colorName}-accent when not (@colorName = null) {\n .mdui-color(@colorName, a200) !important;\n }\n\n .loop-accent-degree-theme(@counter-degree) when (@counter-degree > 0) {\n .loop-accent-degree-theme((@counter-degree - 1));\n\n @degree: extract(@globalAccentColorDegrees, @counter-degree);\n\n // .mdui-color-[color]-[degree]\n .mdui-color-@{colorName}-@{degree} when not (@degree = null) {\n .mdui-color(@colorName, @degree) !important;\n }\n }\n .loop-accent-degree-theme(@global-accent-color-degrees-length);\n }\n }\n .loop-accent-theme(@global-accent-colors-length);\n}\n\n\n/**\n * .mdui-color-black\n * .mdui-color-white\n * .mdui-color-transparent\n */\n\n.mdui-color-black {\n color: @color-white-text !important;\n background-color: @color-black !important;\n}\n\n.mdui-color-white {\n color: @color-black-text !important;\n background-color: @color-white !important;\n}\n\n.mdui-color-transparent {\n background-color: @color-transparent !important;\n}\n\n\n/**\n * .mdui-theme-primary-[color] .mdui-text-color-theme\n * .mdui-theme-primary-[color] .mdui-text-color-theme-[degree]\n */\n\n& {\n .loop-primary-theme(@counter-color) when (@counter-color > 0) {\n .loop-primary-theme((@counter-color - 1));\n\n @colorName: extract(@globalPrimaryColors, @counter-color);\n\n .mdui-theme-primary-@{colorName} when not (@colorName = null) {\n\n // .mdui-theme-primary-[color] .mdui-text-color-theme\n .mdui-text-color-theme {\n .mdui-text-color(@colorName) !important;\n }\n\n .loop-primary-degree-theme(@counter-degree) when (@counter-degree > 0) {\n .loop-primary-degree-theme((@counter-degree - 1));\n\n @degree: extract(@globalPrimaryColorDegrees, @counter-degree);\n\n // .mdui-theme-primary-[color] .mdui-text-color-theme-[degree]\n .mdui-text-color-theme-@{degree} when not (@degree = null) {\n .mdui-text-color(@colorName, @degree) !important;\n }\n }\n .loop-primary-degree-theme(@global-primary-color-degrees-length);\n }\n }\n .loop-primary-theme(@global-primary-colors-length);\n}\n\n\n/**\n * .mdui-theme-accent-[color] .mdui-text-color-theme-accent\n * .mdui-theme-accent-[color] .mdui-text-color-theme-[degree]\n */\n\n& {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n\n @colorName: extract(@globalAccentColors, @counter-color);\n\n .mdui-theme-accent-@{colorName} when not (@colorName = null) {\n\n // .mdui-theme-accent-[color] .mdui-text-color-theme-accent\n .mdui-text-color-theme-accent {\n .mdui-text-color(@colorName, a200) !important;\n }\n\n .loop-accent-degree-theme(@counter-degree) when (@counter-degree > 0) {\n .loop-accent-degree-theme((@counter-degree - 1));\n\n @degree: extract(@globalAccentColorDegrees, @counter-degree);\n\n // .mdui-theme-accent-[color] .mdui-text-color-theme-[degree]\n .mdui-text-color-theme-@{degree} when not (@degree = null) {\n .mdui-text-color(@colorName, @degree) !important;\n }\n }\n .loop-accent-degree-theme(@global-accent-color-degrees-length);\n }\n }\n .loop-accent-theme(@global-accent-colors-length);\n}\n\n\n/**\n * .mdui-text-color-[color]\n * .mdui-text-color-[color]-[degree]\n */\n\n& {\n .loop-primary-theme(@counter-color) when (@counter-color > 0) {\n .loop-primary-theme((@counter-color - 1));\n\n @colorName: extract(@globalPrimaryColors, @counter-color);\n\n &{\n // .mdui-text-color-[color]\n .mdui-text-color-@{colorName} when not (@colorName = null) {\n .mdui-text-color(@colorName) !important;\n }\n\n .loop-primary-degree-theme(@counter-degree) when (@counter-degree > 0) {\n .loop-primary-degree-theme((@counter-degree - 1));\n\n @degree: extract(@globalPrimaryColorDegrees, @counter-degree);\n\n // .mdui-text-color-[color]-[degree]\n .mdui-text-color-@{colorName}-@{degree} when not (@degree = null) {\n .mdui-text-color(@colorName, @degree) !important;\n }\n }\n .loop-primary-degree-theme(@global-primary-color-degrees-length);\n }\n }\n .loop-primary-theme(@global-primary-colors-length);\n}\n\n\n/**\n * .mdui-text-color-[color]-accent\n * .mdui-text-color-[color]-[degree]\n */\n\n& {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n\n @colorName: extract(@globalAccentColors, @counter-color);\n\n &{\n // .mdui-text-color-[color]-accent\n .mdui-text-color-@{colorName}-accent when not (@colorName = null) {\n .mdui-text-color(@colorName, a200) !important;\n }\n\n .loop-accent-degree-theme(@counter-degree) when (@counter-degree > 0) {\n .loop-accent-degree-theme((@counter-degree - 1));\n\n @degree: extract(@globalAccentColorDegrees, @counter-degree);\n\n // .mdui-text-color-[color]-[degree]\n .mdui-text-color-@{colorName}-@{degree} when not (@degree = null) {\n .mdui-text-color(@colorName, @degree) !important;\n }\n }\n .loop-accent-degree-theme(@global-accent-color-degrees-length);\n }\n }\n .loop-accent-theme(@global-accent-colors-length);\n}\n\n\n/**\n * .mdui-text-color-black\n * .mdui-text-color-black-[]\n * .mdui-text-color-theme-[]\n */\n\n.mdui-text-color-black {\n color: @color-black !important;\n}\n.mdui-text-color-black-text,\n.mdui-text-color-theme-text {\n color: @color-black-text !important;\n}\n.mdui-text-color-black-secondary,\n.mdui-text-color-theme-secondary {\n color: @color-black-secondary !important;\n}\n.mdui-text-color-black-disabled,\n.mdui-text-color-theme-disabled {\n color: @color-black-disabled !important;\n}\n.mdui-text-color-black-divider,\n.mdui-text-color-theme-divider {\n color: @color-black-divider !important;\n}\n.mdui-text-color-black-icon,\n.mdui-text-color-theme-icon {\n color: @color-black-icon !important;\n}\n.mdui-text-color-black-icon-disabled,\n.mdui-text-color-theme-icon-disabled {\n color: @color-black-icon-disabled !important;\n}\n\n/**\n * .mdui-text-color-white\n * .mdui-text-color-white-[]\n */\n.mdui-text-color-white {\n color: @color-white !important;\n}\n.mdui-text-color-white-text {\n color: @color-white-text !important;\n}\n.mdui-text-color-white-secondary {\n color: @color-white-secondary !important;\n}\n.mdui-text-color-white-disabled {\n color: @color-white-disabled !important;\n}\n.mdui-text-color-white-divider {\n color: @color-white-divider !important;\n}\n.mdui-text-color-white-icon {\n color: @color-white-icon !important;\n}\n.mdui-text-color-white-icon-disabled {\n color: @color-white-icon-disabled !important;\n}\n\n/**\n * .mdui-text-color-theme-[] 深色主题\n */\n.layout-theme({\n .mdui-text-color-theme-text {\n color: @color-white-text !important;\n }\n .mdui-text-color-theme-secondary {\n color: @color-white-secondary !important;\n }\n .mdui-text-color-theme-disabled {\n color: @color-white-disabled !important;\n }\n .mdui-text-color-theme-divider {\n color: @color-white-divider !important;\n }\n .mdui-text-color-theme-icon {\n color: @color-white-icon !important;\n }\n .mdui-text-color-theme-icon-disabled {\n color: @color-white-icon-disabled !important;\n }\n});\n","/**\n * =============================================================================\n * ************ Helper 辅助类 ************\n * =============================================================================\n */\n\n/**\n * =================== 边距\n */\n._spacing_margin_mixin(@spacing) when (@spacing > -1) {\n ._spacing_margin_mixin(@spacing - 1);\n\n .mdui-m-a-@{spacing} {\n .mdui-m-a(@spacing) !important;\n }\n .mdui-m-t-@{spacing} {\n .mdui-m-t(@spacing) !important;\n }\n .mdui-m-r-@{spacing} {\n .mdui-m-r(@spacing) !important;\n }\n .mdui-m-b-@{spacing} {\n .mdui-m-b(@spacing) !important;\n }\n .mdui-m-l-@{spacing} {\n .mdui-m-l(@spacing) !important;\n }\n .mdui-m-x-@{spacing} {\n .mdui-m-x(@spacing) !important;\n }\n .mdui-m-y-@{spacing} {\n .mdui-m-y(@spacing) !important;\n }\n\n .mdui-p-a-@{spacing} {\n .mdui-p-a(@spacing) !important;\n }\n .mdui-p-t-@{spacing} {\n .mdui-p-t(@spacing) !important;\n }\n .mdui-p-r-@{spacing} {\n .mdui-p-r(@spacing) !important;\n }\n .mdui-p-b-@{spacing} {\n .mdui-p-b(@spacing) !important;\n }\n .mdui-p-l-@{spacing} {\n .mdui-p-l(@spacing) !important;\n }\n .mdui-p-x-@{spacing} {\n .mdui-p-x(@spacing) !important;\n }\n .mdui-p-y-@{spacing} {\n .mdui-p-y(@spacing) !important;\n }\n}\n\n._spacing_margin_mixin(5);\n\n\n/**\n * ======================== 快速浮动\n */\n\n/* 向左浮动 */\n.mdui-float-left {\n float: left !important;\n}\n\n/* 向右浮动 */\n.mdui-float-right {\n float: right !important;\n}\n\n/**\n * ========================= 水平居中\n */\n\n/* 水平居中 */\n.mdui-center {\n .mdui-center() !important;\n}\n\n/**\n * ========================= 垂直居中\n */\n\n/* 垂直居中 */\n.mdui-valign {\n .mdui-valign() !important;\n}\n\n/**\n * ========================= 文本对齐方式\n */\n\n/* 文本左对齐 */\n.mdui-text-left {\n text-align: left !important;\n}\n\n/* 文本居中对齐 */\n.mdui-text-center {\n text-align: center !important;\n}\n\n/* 文本向右对齐 */\n.mdui-text-right {\n text-align: right !important;\n}\n\n/**\n * ========================= 文本大小写转换\n */\n\n/* 文本转为小写 */\n.mdui-text-lowercase {\n text-transform: lowercase !important;\n}\n\n/* 文本转为大写 */\n.mdui-text-uppercase {\n text-transform: uppercase !important;\n}\n\n/* 文本转为单词的首字母大写 */\n.mdui-text-capitalize {\n text-transform: capitalize !important;\n}\n\n/**\n * ======================== 文本截断\n */\n\n/* 文本截断 */\n.mdui-text-truncate {\n .mdui-text-truncate();\n}\n\n/**\n * ========================= 清除浮动\n */\n\n/* 清除浮动 */\n.mdui-clearfix {\n .mdui-clearfix();\n}\n\n/**\n * ========================= 隐藏内容\n */\n\n/* 隐藏元素 */\n.mdui-hidden,\n[hidden] {\n display: none !important;\n}\n\n/* 使元素不可见 */\n.mdui-invisible {\n visibility: hidden;\n}\n\n/* Responsive utilities 响应式工具\n ========================================================================== */\n\n/* 在特定屏幕的特备上隐藏 */\n@media (max-width: @screen-xs-max) {\n .mdui-hidden-xs {\n display: none !important;\n }\n}\n@media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n .mdui-hidden-sm {\n display: none !important;\n }\n}\n@media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n .mdui-hidden-md {\n display: none !important;\n }\n}\n@media (min-width: @screen-lg-min) and (max-width: @screen-lg-max) {\n .mdui-hidden-lg {\n display: none !important;\n }\n}\n@media (min-width: @screen-xl-min) {\n .mdui-hidden-xl {\n display: none !important;\n }\n}\n\n/* 在比特定屏幕小的设备上隐藏 */\n@media (max-width: @screen-xs-max) {\n .mdui-hidden-xs-down {\n display: none !important;\n }\n}\n@media (max-width: @screen-sm-max) {\n .mdui-hidden-sm-down {\n display: none !important;\n }\n}\n@media (max-width: @screen-md-max) {\n .mdui-hidden-md-down {\n display: none !important;\n }\n}\n@media (max-width: @screen-lg-max) {\n .mdui-hidden-lg-down {\n display: none !important;\n }\n}\n.mdui-hidden-xl-down {\n display: none !important;\n}\n\n/* 在比特定屏幕大的设备上隐藏 */\n.mdui-hidden-xs-up {\n display: none !important;\n}\n@media (min-width: @screen-sm-min) {\n .mdui-hidden-sm-up {\n display: none !important;\n }\n}\n@media (min-width: @screen-md-min) {\n .mdui-hidden-md-up {\n display: none !important;\n }\n}\n@media (min-width: @screen-lg-min) {\n .mdui-hidden-lg-up {\n display: none !important;\n }\n}\n@media (min-width: @screen-xl-min) {\n .mdui-hidden-xl-up {\n display: none !important;\n }\n}\n","/**\n * =============================================================================\n * ************ Icon 图标 ************\n * =============================================================================\n */\n\n.mdui-icon,\n.mdui-icon::before {\n color: inherit;\n font-weight: normal;\n font-size: 24px; /* Preferred icon size */\n font-style: normal;\n line-height: 1;\n direction: ltr;\n letter-spacing: normal;\n white-space: nowrap;\n text-transform: none;\n vertical-align: middle;\n word-wrap: normal;\n}\n\n.mdui-icon {\n display: inline-block;\n text-align: center;\n}\n\n.mdui-icon::before {\n display: block !important;\n width: 24px;\n height: 24px;\n}\n","/**\n * =============================================================================\n * ************ Material Icons ************\n * =============================================================================\n *\n * https://github.com/google/material-design-icons/\n * v3.0.1\n */\n\n@import './icon';\n\n@font-face {\n font-weight: 400;\n font-family: 'Material Icons';\n font-style: normal;\n src: local('Material Icons'), local('MaterialIcons-Regular'),\n url(../icons/material-icons/MaterialIcons-Regular.woff2) format('woff2'),\n url(../icons/material-icons/MaterialIcons-Regular.woff) format('woff');\n}\n\n.material-icons {\n /* stylelint-disable-next-line */\n font-family: 'Material Icons';\n\n /* Support for all WebKit browsers. */\n -webkit-font-smoothing: antialiased;\n\n /* Support for Safari and Chrome. */\n text-rendering: optimizeLegibility;\n\n /* Support for Firefox. */\n -moz-osx-font-smoothing: grayscale;\n\n /* Support for IE. */\n font-feature-settings: 'liga';\n}\n","/**\n * =============================================================================\n * ************ Media 媒体工具 ************\n * =============================================================================\n */\n\n/* 响应式图片和视频 */\n.mdui-img-fluid,\n.mdui-video-fluid {\n .mdui-img-fluid();\n}\n\n/* 圆角图片 */\n.mdui-img-rounded {\n border-radius: 2px;\n}\n\n/* 圆形图片 */\n.mdui-img-circle {\n border-radius: 50%;\n}\n\n// embed\n.mdui-video-container {\n position: relative;\n height: 0;\n padding-bottom: 56.25%;\n overflow: hidden;\n\n iframe,\n object,\n embed {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%\n }\n}\n",".mdui-img-fluid() {\n display: block;\n max-width: 100%;\n height: auto;\n}\n\n.mdui-video-fluid() {\n display: block;\n max-width: 100%;\n height: auto;\n}\n","/**\n * =============================================================================\n * ************ Roboto 字体 ************\n * =============================================================================\n */\n\n@font-face {\n font-weight: 100;\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n src: local('Roboto Thin'), local('Roboto-Thin'),\n url('../fonts/roboto/Roboto-Thin.woff2') format('woff2'),\n url('../fonts/roboto/Roboto-Thin.woff') format('woff');\n}\n\n@font-face {\n font-weight: 100;\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n src: local('Roboto ThinItalic'), local('Roboto-ThinItalic'),\n url('../fonts/roboto/Roboto-ThinItalic.woff2') format('woff2'),\n url('../fonts/roboto/Roboto-ThinItalic.woff') format('woff');\n}\n\n@font-face {\n font-weight: 300;\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n src: local('Roboto Light'), local('Roboto-Light'),\n url('../fonts/roboto/Roboto-Light.woff2') format('woff2'),\n url('../fonts/roboto/Roboto-Light.woff') format('woff');\n}\n\n@font-face {\n font-weight: 300;\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n src: local('Roboto LightItalic'), local('Roboto-LightItalic'),\n url('../fonts/roboto/Roboto-LightItalic.woff2') format('woff2'),\n url('../fonts/roboto/Roboto-LightItalic.woff') format('woff');\n}\n\n@font-face {\n font-weight: 400;\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n src: local('Roboto Regular'), local('Roboto-Regular'),\n url('../fonts/roboto/Roboto-Regular.woff2') format('woff2'),\n url('../fonts/roboto/Roboto-Regular.woff') format('woff');\n}\n\n@font-face {\n font-weight: 400;\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n src: local('Roboto RegularItalic'), local('Roboto-RegularItalic'),\n url('../fonts/roboto/Roboto-RegularItalic.woff2') format('woff2'),\n url('../fonts/roboto/Roboto-RegularItalic.woff') format('woff');\n}\n\n@font-face {\n font-weight: 500;\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n src: local('Roboto Medium'), local('Roboto-Medium'),\n url('../fonts/roboto/Roboto-Medium.woff2') format('woff2'),\n url('../fonts/roboto/Roboto-Medium.woff') format('woff');\n}\n\n@font-face {\n font-weight: 500;\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n src: local('Roboto MediumItalic'), local('Roboto-MediumItalic'),\n url('../fonts/roboto/Roboto-MediumItalic.woff2') format('woff2'),\n url('../fonts/roboto/Roboto-MediumItalic.woff') format('woff');\n}\n\n@font-face {\n font-weight: 700;\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n src: local('Roboto Bold'), local('Roboto-Bold'),\n url('../fonts/roboto/Roboto-Bold.woff2') format('woff2'),\n url('../fonts/roboto/Roboto-Bold.woff') format('woff');\n}\n\n@font-face {\n font-weight: 700;\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n src: local('Roboto BoldItalic'), local('Roboto-BoldItalic'),\n url('../fonts/roboto/Roboto-BoldItalic.woff2') format('woff2'),\n url('../fonts/roboto/Roboto-BoldItalic.woff') format('woff');\n}\n\n@font-face {\n font-weight: 900;\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n src: local('Roboto Black'), local('Roboto-Black'),\n url('../fonts/roboto/Roboto-Black.woff2') format('woff2'),\n url('../fonts/roboto/Roboto-Black.woff') format('woff');\n}\n\n@font-face {\n font-weight: 900;\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n src: local('Roboto BlackItalic'), local('Roboto-BlackItalic'),\n url('../fonts/roboto/Roboto-BlackItalic.woff2') format('woff2'),\n url('../fonts/roboto/Roboto-BlackItalic.woff') format('woff');\n}\n","/**\n * =============================================================================\n * ************ Typography 样式排版 ************\n * =============================================================================\n */\n\n/* .mdui-typo-display-4 */\n.mdui-typo-display-4,\n.mdui-typo-display-4-opacity {\n .mdui-typo-display-4();\n}\n.mdui-typo-display-4-opacity {\n ._mdui-typo-display-4-opacity();\n}\n\n/* .mdui-typo-display-3 */\n.mdui-typo-display-3,\n.mdui-typo-display-3-opacity {\n .mdui-typo-display-3();\n}\n.mdui-typo-display-3-opacity {\n ._mdui-typo-display-3-opacity();\n}\n\n/* .mdui-typo-display-2 */\n.mdui-typo-display-2,\n.mdui-typo-display-2-opacity {\n .mdui-typo-display-2();\n}\n.mdui-typo-display-2-opacity {\n ._mdui-typo-display-2-opacity();\n}\n\n/* .mdui-typo-display-1 */\n.mdui-typo-display-1,\n.mdui-typo-display-1-opacity {\n .mdui-typo-display-1();\n}\n.mdui-typo-display-1-opacity {\n ._mdui-typo-display-1-opacity();\n}\n\n/* .mdui-typo-headline */\n.mdui-typo-headline,\n.mdui-typo-headline-opacity {\n .mdui-typo-headline();\n}\n.mdui-typo-headline-opacity {\n ._mdui-typo-headline-opacity();\n}\n\n/* .mdui-typo-title */\n.mdui-typo-title,\n.mdui-typo-title-opacity {\n .mdui-typo-title();\n}\n.mdui-typo-title-opacity {\n ._mdui-typo-title-opacity();\n}\n\n.mdui-typo-subheading,\n.mdui-typo-subheading-opacity {\n .mdui-typo-subheading();\n}\n.mdui-typo-subheading-opacity {\n ._mdui-typo-subheading-opacity();\n}\n\n.mdui-typo-body-2,\n.mdui-typo-body-2-opacity {\n .mdui-typo-body-2();\n}\n.mdui-typo-body-2-opacity {\n ._mdui-typo-body-2-opacity();\n}\n\n.mdui-typo-body-1,\n.mdui-typo-body-1-opacity {\n .mdui-typo-body-1();\n}\n.mdui-typo-body-1-opacity {\n ._mdui-typo-body-1-opacity();\n}\n\n.mdui-typo-caption,\n.mdui-typo-caption-opacity {\n .mdui-typo-caption();\n}\n.mdui-typo-caption-opacity {\n ._mdui-typo-caption-opacity();\n}\n","._mdui-typo-display-4-opacity() {\n opacity: 0.54;\n}\n.mdui-typo-display-4(@opacity: false) {\n font-weight: 300;\n font-size: 112px;\n letter-spacing: -0.04em;\n & when (@opacity = true) {\n ._mdui-typo-display-4-opacity();\n }\n & when (isnumber(@opacity)) {\n opacity: @opacity;\n }\n}\n\n._mdui-typo-display-3-opacity() {\n opacity: 0.54;\n}\n.mdui-typo-display-3(@opacity: false) {\n font-weight: 400;\n font-size: 56px;\n letter-spacing: -0.02em;\n & when (@opacity = true) {\n ._mdui-typo-display-3-opacity();\n }\n & when (isnumber(@opacity)) {\n opacity: @opacity;\n }\n}\n\n._mdui-typo-display-2-opacity() {\n opacity: 0.54;\n}\n.mdui-typo-display-2(@opacity: false) {\n font-weight: 400;\n font-size: 45px;\n letter-spacing: 0;\n & when (@opacity = true) {\n ._mdui-typo-display-2-opacity();\n }\n & when (isnumber(@opacity)) {\n opacity: @opacity;\n }\n}\n\n._mdui-typo-display-1-opacity() {\n opacity: 0.54;\n}\n.mdui-typo-display-1(@opacity: false) {\n font-weight: 400;\n font-size: 34px;\n letter-spacing: 0;\n & when (@opacity = true) {\n ._mdui-typo-display-1-opacity();\n }\n & when (isnumber(@opacity)) {\n opacity: @opacity;\n }\n}\n\n._mdui-typo-headline-opacity() {\n opacity: 0.87;\n}\n.mdui-typo-headline(@opacity: false) {\n font-weight: 400;\n font-size: 24px;\n -moz-osx-font-smoothing: grayscale;\n & when (@opacity = true) {\n ._mdui-typo-headline-opacity();\n }\n & when (isnumber(@opacity)) {\n opacity: @opacity;\n }\n}\n\n._mdui-typo-title-opacity() {\n opacity: 0.87;\n}\n.mdui-typo-title(@opacity: false) {\n font-weight: 500;\n font-size: 20px;\n letter-spacing: 0.02em;\n & when (@opacity = true) {\n ._mdui-typo-title-opacity();\n }\n & when (isnumber(@opacity)) {\n opacity: @opacity;\n }\n}\n\n._mdui-typo-subheading-opacity() {\n opacity: 0.87;\n}\n.mdui-typo-subheading(@opacity: false) {\n font-weight: 400;\n font-size: 16px;\n letter-spacing: 0.04em;\n & when (@opacity = true) {\n ._mdui-typo-subheading-opacity();\n }\n & when (isnumber(@opacity)) {\n opacity: @opacity;\n }\n}\n\n._mdui-typo-body-2-opacity() {\n opacity: 0.87;\n}\n.mdui-typo-body-2(@opacity: false) {\n font-weight: 500;\n font-size: 14px;\n letter-spacing: 0.04em;\n & when (@opacity = true) {\n ._mdui-typo-body-2-opacity();\n }\n & when (isnumber(@opacity)) {\n opacity: @opacity;\n }\n}\n\n._mdui-typo-body-1-opacity() {\n opacity: 0.87;\n}\n.mdui-typo-body-1(@opacity: false) {\n font-weight: 400;\n font-size: 14px;\n letter-spacing: 0.04em;\n & when (@opacity = true) {\n ._mdui-typo-body-1-opacity();\n }\n & when (isnumber(@opacity)) {\n opacity: @opacity;\n }\n}\n\n._mdui-typo-caption-opacity() {\n opacity: 0.54;\n}\n.mdui-typo-caption(@opacity: false) {\n font-weight: 400;\n font-size: 12px;\n letter-spacing: 0.08em;\n & when (@opacity = true) {\n ._mdui-typo-caption-opacity();\n }\n & when (isnumber(@opacity)) {\n opacity: @opacity;\n }\n}\n","/**\n * =============================================================================\n * ************ Typography 文章排版 ************\n * =============================================================================\n */\n\n.mdui-typo {\n line-height: 1.8;\n word-wrap: break-word;\n\n address, caption, cite, code, dfn, th {\n font-weight: 400;\n font-style: normal;\n }\n\n caption, th {\n text-align: left;\n }\n\n q::before, q::after {\n content: '';\n }\n\n pre, code, kbd, samp, pre tt {\n font-family: Consolas, Courier, 'Courier New', monospace;\n }\n\n figcaption {\n color: @color-black-secondary;\n font-size: 80%;\n }\n\n [draggable],\n [draggable=\"true\"] {\n cursor: move;\n }\n\n [draggable=\"false\"] {\n cursor: inherit;\n }\n\n p, pre, ul, ol, dl, form, hr, figure, table, .mdui-table, .mdui-table-fluid {\n margin: 0 0 1.2em 0;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n /* a */\n a {\n .mdui-text-color(@color-accent-default-name, a200);\n\n position: relative;\n display: inline-block;\n overflow: hidden;\n text-decoration: none;\n vertical-align: top;\n outline: none;\n\n &::before {\n position: absolute;\n top: auto;\n bottom: 1px;\n left: 0;\n width: 100%;\n height: 1px;\n background-color: @color-default-a200;\n transform: scaleX(0);\n backface-visibility: hidden;\n transition: all 0.2s;\n content: ' ';\n }\n\n &:hover::before,\n &:focus::before {\n transform: scaleX(1);\n }\n }\n\n /* small */\n small {\n font-size: 80%;\n }\n\n /* blockquote */\n blockquote {\n margin: 1em 3em 1em 2em;\n padding-left: 1em;\n font-weight: 400;\n border-left: 4px solid @color-black-divider;\n @media only screen and (max-width: @screen-xs-max) {\n margin: 1em 0;\n }\n\n &:last-child {\n margin-bottom: 0;\n }\n\n footer {\n color: @color-black-secondary;\n font-size: 86%;\n }\n }\n\n /* mark */\n mark {\n margin: 0 5px;\n padding: 2px;\n background: #fffdd1;\n border-bottom: 1px solid #ffedce;\n }\n\n /* h1 - h6 */\n h1, h2, h3, h4, h5, h6 {\n margin-top: 1.2em;\n margin-bottom: 0.6em;\n color: inherit;\n font-weight: 400;\n font-family: inherit;\n line-height: 1.35;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n small {\n color: @color-black-secondary;\n font-weight: 400;\n font-size: 65%;\n line-height: 1;\n }\n }\n h1 {\n font-size: 2em;\n }\n h2 {\n font-size: 1.8em;\n }\n h3 {\n font-size: 1.6em;\n }\n h4 {\n font-size: 1.4em;\n }\n h5 {\n font-size: 1.2em;\n }\n h6 {\n font-size: 1.1em;\n }\n\n /* code */\n code {\n padding: 2px 6px;\n color: #c7254e;\n background-color: #f7f7f9;\n border-radius: 2px;\n }\n\n /* pre code */\n pre code {\n padding: 0;\n color: inherit;\n font-size: inherit;\n line-height: 1.7;\n background-color: transparent;\n border-radius: 0;\n }\n\n /* abbr */\n abbr[title] {\n text-decoration: none;\n border-bottom: 1px dotted;\n cursor: help;\n }\n\n /* ins */\n ins {\n text-decoration: none;\n border-bottom: 1px solid ;\n }\n\n /* u */\n u {\n text-decoration: none;\n border-bottom: 1px solid;\n }\n\n /* del */\n del {\n text-decoration: line-through;\n }\n\n /* hr */\n hr {\n height: 10px;\n margin-bottom: 0.8em;\n border: none;\n border-bottom: 1px solid @color-black-divider;\n }\n\n /* pre */\n pre {\n padding: 12px 16px;\n overflow-x: auto;\n border: 1px solid @color-black-divider;\n border-radius: 2px;\n -webkit-overflow-scrolling: touch;\n }\n\n /* kbd */\n kbd {\n padding: 2px 6px;\n color: #fff;\n font-size: 90%;\n background-color: #333;\n border-radius: 2px;\n }\n\n /* ul / ol */\n ul {\n padding-left: 2em;\n list-style: disc;\n }\n ol {\n padding-left: 2em;\n list-style: decimal;\n }\n li ul,\n li ol {\n margin: 0.8em 0;\n }\n li ul {\n list-style: circle;\n }\n\n /* img, video */\n img, video {\n max-width: 100%;\n }\n\n figure {\n text-align: center;\n\n figcaption {\n margin-top: 8px;\n color: #999;\n font-size: 14px;\n }\n\n figcaption:empty::before {\n z-index: -1;\n color: #bfbfbf;\n cursor: text;\n content: attr(placeholder);\n }\n }\n}\n\n\n/**\n * =============================================================================\n * ************ Typo 强调色 ************\n * =============================================================================\n */\n& {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n @colorName: extract(@globalAccentColors, @counter-color);\n\n .mdui-theme-accent-@{colorName} when not (@colorName = null) {\n .mdui-typo {\n a {\n .mdui-text-color(@colorName, a200);\n\n &::before {\n .mdui-background-color(@colorName, a200);\n }\n }\n }\n }\n\n }\n .loop-accent-theme(length(@globalAccentColors));\n}\n\n\n/**\n * =============================================================================\n * ************ Typo dark ************\n * =============================================================================\n */\n.layout-theme({\n .mdui-typo {\n\n blockquote {\n border-left-color: @color-white-divider;\n\n footer {\n color: @color-white-secondary;\n }\n }\n\n figcaption {\n color: @color-white-secondary;\n }\n\n mark {\n background: #aaa;\n border-bottom-color: #bbb;\n }\n\n h1, h2, h3, h4, h5, h6 {\n small {\n color: @color-white-secondary;\n }\n }\n\n code {\n color: @color-red-100;\n background-color: #424242;\n }\n\n pre {\n background: #424242;\n border-color: @color-white-divider;\n }\n\n kbd {\n background: #424242;\n }\n\n hr {\n border-color: @color-white-divider;\n }\n }\n});\n","/**\n * =============================================================================\n * ************ Grid 网格系统 ************\n * =============================================================================\n */\n\n@_screen-col-1: 8.333333%;\n@_screen-col-2: 16.666667%;\n@_screen-col-3: 25%;\n@_screen-col-4: 33.333333%;\n@_screen-col-5: 41.666667%;\n@_screen-col-6: 50%;\n@_screen-col-7: 58.333333%;\n@_screen-col-8: 66.666667%;\n@_screen-col-9: 75%;\n@_screen-col-10: 83.333333%;\n@_screen-col-11: 91.666667%;\n@_screen-col-12: 100%;\n\n// 等分列\n@_screen-average-1: 100%;\n@_screen-average-2: 50%;\n@_screen-average-3: 33.333333%;\n@_screen-average-4: 25%;\n@_screen-average-5: 20%;\n@_screen-average-6: 16.666667%;\n@_screen-average-7: 14.285714%;\n@_screen-average-8: 12.5%;\n@_screen-average-9: 11.111111%;\n@_screen-average-10: 10%;\n@_screen-average-11: 9.090909%;\n@_screen-average-12: 8.333333%;\n\n//间隔\n@grid-gap-8: 8px;\n@grid-gap-16: 16px;\n@grid-gap-24: 24px;\n@grid-gap-40: 40px;\n\n// 生成列、列偏移\n._grid_col_loop(@cols, @screen) when (@cols > 0) {\n ._grid_col_loop((@cols - 1), @screen);\n\n @widthName: '_screen-col-@{cols}';\n\n // 列宽度\n .mdui-col-@{screen}-@{cols} {\n float: left;\n width: @@widthName;\n }\n\n // 列偏移\n .mdui-col-offset-@{screen}-@{cols} {\n margin-left: @@widthName;\n }\n\n // 等分列\n @averageName: '_screen-average-@{cols}';\n .mdui-row-@{screen}-@{cols} .mdui-col {\n float: left;\n width: @@averageName;\n }\n}\n\n.mdui-container,\n.mdui-container-fluid {\n box-sizing: border-box;\n margin-right: auto;\n margin-left: auto;\n padding-right: @grid-gap-16 / 2;\n padding-left: @grid-gap-16 / 2;\n &::after{\n display: table;\n clear: both;\n content: '';\n }\n}\n\n.mdui-container {\n width: 96%;\n max-width: 1280px;\n @media (min-width: @screen-sm-min) {\n width: 94%;\n }\n @media (min-width: @screen-md-min) {\n width: 92%;\n }\n}\n\n.mdui-row,\n[class*=\"mdui-row-\"] {\n margin-right: -@grid-gap-16 / 2;\n margin-left: -@grid-gap-16 / 2;\n &::after {\n display: table;\n clear: both;\n content: '';\n }\n}\n\n[class*=\"mdui-col-xs-\"],\n[class*=\"mdui-col-sm-\"],\n[class*=\"mdui-col-md-\"],\n[class*=\"mdui-col-lg-\"],\n[class*=\"mdui-col-xl-\"],\n.mdui-col {\n position: relative;\n box-sizing: border-box;\n min-height: 1px;\n padding-right: @grid-gap-16 / 2;\n padding-left: @grid-gap-16 / 2;\n}\n\n/* 取消列间距 */\n.mdui-row-gapless {\n .mdui-col,\n [class*=\"mdui-col-xs-\"],\n [class*=\"mdui-col-sm-\"],\n [class*=\"mdui-col-md-\"],\n [class*=\"mdui-col-lg-\"],\n [class*=\"mdui-col-xl-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n\n // 嵌套元素的内补\n .mdui-row,\n [class*=\"mdui-row-\"] {\n margin-right: 0;\n margin-left: 0;\n }\n}\n\n._grid_col_loop(12, ~\"xs\");\n\n@media (min-width: @screen-sm-min) {\n ._grid_col_loop(12, ~\"sm\");\n}\n\n@media (min-width: @screen-md-min) {\n ._grid_col_loop(12, ~\"md\");\n}\n\n@media (min-width: @screen-lg-min) {\n ._grid_col_loop(12, ~\"lg\");\n}\n\n@media (min-width: @screen-xl-min) {\n ._grid_col_loop(12, ~\"xl\");\n}","// 阴影\n.mdui-shadow(@depth) {\n @shadow: 'shadow-depth-@{depth}';\n\n box-shadow: @@shadow;\n}\n\n// hover 时添加阴影\n.mdui-hoverable(@depth: 8) {\n transition: box-shadow 0.25s @animation-curve-default;\n will-change: box-shadow;\n\n &:hover,\n &:focus {\n .mdui-shadow(@depth);\n }\n}\n","/**\n * =============================================================================\n * ************ Shadow 阴影 ************\n * =============================================================================\n */\n\n._md_shadow(@shadow) when (@shadow > -1) {\n ._md_shadow(@shadow - 1);\n\n .mdui-shadow-@{shadow} {\n .mdui-shadow(@shadow) !important;\n }\n}\n\n._md_shadow(24);\n\n/* 鼠标悬浮时加深阴影 */\n.mdui-hoverable {\n .mdui-hoverable(8);\n}\n","/**\n * =============================================================================\n * ************ Headroom ************\n * =============================================================================\n */\n\n .mdui-headroom {\n transition: all .3s @animation-curve-default !important;\n}\n\n/* 固定在顶部时 */\n.mdui-headroom-pinned-top {\n transform: translate3d(0, 0, 0) !important;\n}\n\n/* 在顶部隐藏时 */\n.mdui-headroom-unpinned-top {\n transform: translate3d(0, -100%, 0) !important;\n .mdui-shadow(0) !important;\n}\n\n/* 固定在底部时 */\n.mdui-headroom-pinned-down {\n transform: translate3d(0, 0, 0) !important;\n}\n\n/* 在底部隐藏时 */\n.mdui-headroom-unpinned-down {\n transform: translate3d(0, 100%, 0) !important;\n .mdui-shadow(0) !important;\n}\n\n/* 固定应用栏中的工具栏 */\n.mdui-headroom-pinned-toolbar {\n transform: translate3d(0, 0, 0) !important;\n}\n\n/* 隐藏应用栏中的工具栏 */\n.mdui-headroom-unpinned-toolbar {\n transform: translate3d(0, -@appbar-height-xs-portrait, 0) !important;\n\n // 平板和桌面\n @media (min-width: @screen-sm-min) {\n transform: translate3d(0, -@appbar-height-sm, 0) !important;\n }\n\n // 手机横屏\n @media (orientation: landscape) and (max-width: @screen-xs-max-landscape) {\n transform: translate3d(0, -@appbar-height-xs-landscape, 0) !important;\n }\n}\n","/**\n * =============================================================================\n * ************ Collapse 折叠插件 ************\n * =============================================================================\n */\n\n .mdui-collapse-item-header {\n // 图标,打开时翻转 180 度\n .mdui-collapse-item-arrow,\n &.mdui-collapse-item-arrow {\n transform: rotate(0);\n transition: transform .3s @animation-curve-default;\n will-change: transform;\n }\n}\n\n.mdui-collapse-item-body {\n height: 0;\n margin-top: 0;\n margin-bottom: 0;\n padding-top: 0;\n padding-bottom: 0;\n overflow: hidden;\n transition: all .3s @animation-curve-default;\n will-change: height;\n\n // 使子列表缩进\n .mdui-list-item {\n padding-left: 72px;\n }\n}\n\n.mdui-collapse-item-open {\n &>.mdui-collapse-item-header {\n .mdui-collapse-item-arrow,\n &.mdui-collapse-item-arrow {\n transform: rotate(180deg);\n }\n }\n\n &>.mdui-collapse-item-body {\n height: auto;\n }\n}\n","/**\n * =============================================================================\n * ************ Expansion panel 可扩展面板 ************\n * =============================================================================\n */\n\n/* 可扩展面板 */\n.mdui-panel {\n box-sizing: border-box;\n width: 100%;\n}\n\n/* 面板项 */\n.mdui-panel-item {\n color: @color-black-text;\n background-color: #fff;\n transition: margin .3s @animation-curve-default;\n will-change: margin;\n .mdui-divider-bottom-dark();\n .mdui-shadow(2);\n\n &:last-child {\n border-bottom: none;\n }\n}\n\n/* 面板头部 */\n.mdui-panel-item-header {\n position: relative;\n display: flex;\n align-items: center;\n box-sizing: border-box;\n width: 100%;\n height: 48px;\n padding: 0 24px;\n font-size: 15px;\n cursor: pointer;\n transition: all .3s @animation-curve-default;\n will-change: height, background-color;\n .mdui-text-truncate();\n\n &:active {\n background-color: @color-grey-200;\n }\n}\n\n/* 面板项标题 */\n.mdui-panel-item-title {\n box-sizing: border-box;\n width: 36%;\n min-width: 36%;\n padding-right: 16px;\n font-weight: 500;\n .mdui-text-truncate();\n}\n\n/* 面板项内容 */\n.mdui-panel-item-summary {\n flex-grow: 1;\n box-sizing: border-box;\n padding-right: 16px;\n color: @color-black-secondary;\n .mdui-text-truncate();\n}\n\n/* 展开收起的图标 */\n.mdui-panel-item-arrow {\n position: absolute;\n top: 12px;\n right: 24px;\n color: @color-black-icon;\n transform: rotate(0);\n transition: all .3s @animation-curve-default;\n user-select: none;\n will-change: transform, top;\n}\n\n.mdui-panel-item-summary + .mdui-panel-item-arrow {\n position: relative;\n top: 0 !important;\n right: 0;\n}\n\n/* 面板项内容 */\n.mdui-panel-item-body {\n height: 0;\n padding: 0 24px;\n overflow: hidden;\n transition: height .3s @animation-curve-default;\n will-change: height;\n .mdui-clearfix();\n\n &::after {\n height: 16px;\n }\n}\n\n/* 面板项操作栏 */\n.mdui-panel-item-actions {\n display: block;\n width: 100%;\n margin: 16px -24px 0 -24px;\n padding: 16px 24px 0 24px;\n text-align: right;\n .mdui-divider-top-dark();\n\n .mdui-btn {\n margin-left: 8px;\n\n &:first-child {\n margin-left: 0;\n }\n }\n}\n\n/* 打开状态的面板项 */\n.mdui-panel-item-open {\n height: auto;\n margin-top: 16px;\n margin-bottom: 16px;\n\n // 打开状态的面板头部更高\n &>.mdui-panel-item-header {\n height: 64px;\n\n .mdui-panel-item-arrow {\n top: 20px;\n transform: rotate(180deg);\n }\n }\n\n &>.mdui-panel-item-body {\n height: auto;\n }\n}\n\n/* 使打开项上下没有边距 */\n.mdui-panel-gapless {\n .mdui-shadow(2);\n\n .mdui-panel-item {\n .mdui-shadow(0);\n }\n\n .mdui-panel-item-open {\n margin-top: 0;\n margin-bottom: 0;\n }\n}\n\n/* 弹出面板 */\n.mdui-panel-popout {\n .mdui-panel-item-open {\n margin-right: -16px;\n margin-left: -16px;\n }\n}\n\n\n/**\n * =============================================================================\n * ************ Expansion panel dark ************\n * =============================================================================\n */\n.layout-theme({\n .mdui-panel-item {\n color: #fff;\n background-color: @layout-dark-color-3;\n .mdui-divider-bottom-light();\n\n &:last-child {\n border-bottom: none;\n }\n }\n .mdui-panel-item-header {\n &:active {\n background-color: @color-grey-800;\n }\n }\n .mdui-panel-item-summary {\n color: @color-white-secondary;\n }\n\n /* stylelint-disable-next-line */\n .mdui-panel-item-arrow {\n color: @color-white-icon;\n }\n .mdui-panel-item-actions {\n .mdui-divider-top-light();\n }\n});\n","// 分割线\n// =============================================================================\n\n// 添加边框作为分割线,亮色的分割线,用于深色背景\n.mdui-divider-top-light() {\n border-top: 1px solid @color-white-divider;\n}\n.mdui-divider-bottom-light() {\n border-bottom: 1px solid @color-white-divider;\n}\n.mdui-divider-left-light() {\n border-left: 1px solid @color-white-divider;\n}\n.mdui-divider-right-light() {\n border-right: 1px solid @color-white-divider;\n}\n\n// 添加边框作为分割线,深色的分割线,用于浅色背景\n.mdui-divider-top-dark() {\n border-top: 1px solid @color-black-divider;\n}\n.mdui-divider-bottom-dark() {\n border-bottom: 1px solid @color-black-divider;\n}\n.mdui-divider-left-dark() {\n border-left: 1px solid @color-black-divider;\n}\n.mdui-divider-right-dark() {\n border-right: 1px solid @color-black-divider;\n}\n","/**\n * =============================================================================\n * ************ Table 表格 ************\n * =============================================================================\n */\n\n@import '../selection_control/checkbox';\n\n.mdui-table {\n position: relative;\n width: 100%;\n background-color: #fff;\n border: 1px solid @color-black-divider;\n border-bottom: none;\n border-collapse: separate;\n border-spacing: 0;\n .mdui-shadow(2);\n\n tbody {\n tr {\n position: relative;\n transition: background-color 0.28s @animation-curve-default;\n }\n }\n\n th, td {\n position: relative;\n box-sizing: border-box;\n padding: 12px 28px;\n text-align: left;\n vertical-align: middle;\n .mdui-divider-bottom-dark();\n }\n\n th {\n color: @color-black-secondary;\n font-weight: 700;\n font-size: 13px;\n line-height: 32px;\n .mdui-text-truncate();\n }\n\n td {\n color: @color-black-text;\n font-size: 14px;\n line-height: 24px;\n }\n}\n\n/* 每一行前面的复选框 */\n.mdui-table-cell-checkbox {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n padding-left: 24px !important;\n\n .mdui-checkbox {\n margin-top: 7px;\n }\n\n & + td,\n & + th {\n padding-left: 6px !important;\n }\n}\nth.mdui-table-cell-checkbox {\n .mdui-checkbox {\n margin-top: 11px;\n }\n}\n\n.mdui-table {\n th, td {\n &:last-child {\n padding-right: 24px;\n }\n &:first-child {\n padding-right: 0;\n padding-left: 24px\n }\n &:nth-child(2) {\n padding-left: 24px;\n }\n }\n}\n\n/* 鼠标悬浮时行背景加深 */\n.mdui-table-hoverable {\n tbody tr {\n &:hover {\n background-color: @color-grey-200;\n }\n }\n}\n\n/* 表格放到该元素内,使表格产生滚动条时只在该元素内滚动 */\n.mdui-table-fluid {\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n border: 1px solid @color-black-divider;\n border-bottom: none;\n .mdui-shadow(2);\n\n .mdui-table {\n .mdui-shadow(0);\n\n margin: 0;\n border: none;\n }\n}\n\n/* 数字列,右对齐 */\n.mdui-table-col-numeric {\n text-align: right !important;\n}\n\n/* 行处于选中状态 */\n.mdui-table-row-selected {\n background-color: @color-grey-100;\n}\n\n\n/**\n * =============================================================================\n * ************ Table dark ************\n * =============================================================================\n */\n.layout-theme({\n .mdui-table {\n background-color: @layout-dark-color-3;\n border: 1px solid @color-white-divider;\n border-bottom: none;\n\n th, td {\n .mdui-divider-bottom-light();\n }\n\n th {\n color: @color-white-secondary;\n }\n\n td {\n color: @color-white-text;\n }\n }\n\n .mdui-table-hoverable {\n tbody tr {\n &:hover {\n background-color: @color-grey-700;\n }\n }\n }\n\n .mdui-table-fluid {\n border: 1px solid @color-white-divider;\n border-bottom: none;\n\n .mdui-table {\n .mdui-shadow(0);\n\n border: none;\n }\n }\n\n .mdui-table-row-selected {\n background-color: @color-grey-800;\n }\n});\n","/**\n * =============================================================================\n * ************ Divider 分割线 ************\n * =============================================================================\n */\n\n.mdui-divider,\n.mdui-divider-light,\n.mdui-divider-dark,\n.mdui-divider-inset,\n.mdui-divider-inset-light,\n.mdui-divider-inset-dark {\n height: 1px;\n margin: -1px 0 0 0;\n border: none;\n}\n\n.mdui-divider-inset,\n.mdui-divider-inset-light,\n.mdui-divider-inset-dark {\n margin-left: 72px;\n}\n\n.mdui-divider,\n.mdui-divider-inset {\n background-color: @color-black-divider;\n}\n\n.mdui-divider-light,\n.mdui-divider-inset-light {\n background-color: @color-white-divider;\n}\n\n.mdui-divider-dark,\n.mdui-divider-inset-dark {\n background-color: @color-black-divider;\n}\n\n/**\n * =============================================================================\n * ************ Divider dark ************\n * =============================================================================\n */\n.layout-theme({\n .mdui-divider,\n .mdui-divider-inset {\n background-color: @color-white-divider;\n }\n});\n","/**\n * =============================================================================\n * ************ 涟漪动画 ************\n * =============================================================================\n */\n\n.mdui-ripple {\n position: relative;\n overflow: hidden;\n cursor: pointer;\n user-select: none;\n}\n\n/* Ripple */\n.mdui-ripple-wave {\n position: absolute !important;\n top: 0;\n left: 0;\n z-index: 1;\n margin: 0;\n padding: 0;\n font-size: 0;\n background-color: rgba(0, 0, 0, 0.1);\n border-radius: 50%;\n transform: translate3d(0, 0, 0) scale(0);\n transition-duration: 1400ms;\n pointer-events: none;\n}\n\n/* 有背景色的默认使用白色涟漪 */\n.mdui-ripple[class*=\"mdui-color-\"] {\n .mdui-ripple-wave {\n background-color: rgba(255, 255, 255, 0.3);\n }\n}\n\n/* 白色涟漪 */\n.mdui-ripple-white .mdui-ripple-wave {\n background-color: rgba(255, 255, 255, 0.3) !important;\n}\n\n/* 黑色涟漪 */\n.mdui-ripple-black .mdui-ripple-wave {\n background-color: rgba(0, 0, 0, 0.1) !important;\n}\n\n.mdui-ripple-wave-fill {\n opacity: 0.35;\n transition-duration: 300ms;\n}\n\n.mdui-ripple-wave-out {\n opacity: 0;\n transition-duration: 600ms;\n}\n\n\n/**\n * =============================================================================\n * ************ Ripple 颜色 ************\n * =============================================================================\n */\n& {\n .loop-primary-theme(@counter-color) when (@counter-color > 0) {\n .loop-primary-theme((@counter-color - 1));\n @colorName: extract(@globalPrimaryColors, @counter-color);\n\n // 指定涟漪颜色\n .mdui-ripple-@{colorName} when not (@colorName = null) {\n .mdui-ripple-wave {\n @color: 'color-@{colorName}-500';\n\n background-color: rgba(red(@@color), green(@@color), blue(@@color), 0.3) !important;\n }\n }\n\n }\n .loop-primary-theme(length(@globalPrimaryColors));\n}\n\n\n/**\n * =============================================================================\n * ************ Ripple dark ************\n * =============================================================================\n */\n.layout-theme({\n // 深色主题下使用白色涟漪\n .mdui-ripple-wave {\n background-color: rgba(255, 255, 255, 0.3);\n }\n});\n","/**\n * =============================================================================\n * ************ Text Field 文本框 ************\n * =============================================================================\n */\n\n/* 文本框外层 */\n.mdui-textfield {\n position: relative;\n padding-top: 16px;\n padding-bottom: 8px;\n overflow: hidden;\n}\n\n.mdui-textfield-has-bottom {\n padding-bottom: 28px;\n}\n\n/* 输入框 */\n.mdui-textfield-input {\n display: block;\n box-sizing: border-box;\n width: 100%;\n height: 36px;\n margin: 0;\n padding: 8px 0;\n overflow: hidden;\n color: rgba(0, 0, 0, 0.87);\n font-size: 16px;\n font-family: inherit;\n line-height: 20px;\n background: none;\n border: none;\n border-bottom: 1px solid rgba(0, 0, 0, .42);\n border-radius: 0;\n outline: none;\n box-shadow: none;\n transition-timing-function: @animation-curve-default;\n transition-duration: .2s;\n transition-property: border-bottom-color, padding-right, box-shadow;\n appearance: none;\n resize: none;\n\n &::-webkit-input-placeholder {\n color: inherit;\n opacity: 0.42;\n }\n\n &:not([disabled]):hover {\n border-bottom: 1px solid rgba(0, 0, 0, .87);\n box-shadow: 0 1px 0 0 rgba(0, 0, 0, .87);\n cursor: pointer;\n }\n\n &[rows] {\n height: auto !important;\n overflow: auto;\n -webkit-overflow-scrolling: touch;\n }\n}\n\n/* 文本框 label */\n.mdui-textfield-label {\n display: block;\n width: 100%;\n color: rgba(0, 0, 0, 0.54);\n font-size: 16px;\n transform: scale(0.75) translateY(0);\n transform-origin: left;\n transition: all .2s;\n pointer-events: none;\n}\n\n/* 表单验证错误提示、帮助文本提示 */\n.mdui-textfield-error,\n.mdui-textfield-helper {\n position: absolute;\n bottom: 8px;\n height: 12px;\n font-size: 12px;\n line-height: 12px;\n .mdui-text-truncate();\n}\n\n.mdui-textfield-error {\n color: rgba(red(@color-red-a400), green(@color-red-a400), blue(@color-red-a400), .87);\n visibility: hidden;\n}\n\n.mdui-textfield-helper {\n color: rgba(0, 0, 0, 0.54);\n}\n\n\n/* 表单中的图标\n ========== */\n.mdui-textfield {\n .mdui-icon {\n position: absolute;\n bottom: 8px;\n padding: 6px;\n color: @color-black-icon;\n\n ~ .mdui-textfield-label,\n ~ .mdui-textfield-input,\n ~ .mdui-textfield-error,\n ~ .mdui-textfield-helper,\n ~ .mdui-textfield-flex-wrap {\n /* stylelint-disable-next-line */\n width: calc(~\"100% - 56px\");\n margin-left: 56px;\n }\n }\n}\n\n.mdui-textfield-has-bottom {\n .mdui-icon {\n bottom: 28px;\n }\n}\n\n/* 聚焦状态的文本框\n ============= */\n.mdui-textfield-focus {\n\n .mdui-textfield-input,\n .mdui-textfield-input:hover {\n border-bottom-color: @color-default-a700;\n box-shadow: 0 1px 0 0 @color-default-a700;\n }\n\n .mdui-textfield-label,\n .mdui-icon {\n color: rgba(red(@color-default-a700), green(@color-default-a700), blue(@color-default-a700), .87);\n }\n}\n\n/* 含有浮动标签的文本框\n ================ */\n.mdui-textfield-floating-label {\n\n .mdui-textfield-label {\n color: rgba(0, 0, 0, 0.35);\n transform: scale(1) translateY(27px);\n }\n\n &.mdui-textfield-focus,\n &.mdui-textfield-not-empty {\n .mdui-textfield-label {\n color: rgba(0, 0, 0, 0.65);\n transform: scale(0.75) translateY(0);\n }\n }\n &.mdui-textfield-focus {\n .mdui-textfield-label {\n .mdui-text-color(@color-accent-default-name);\n }\n }\n}\n\n/* 可展开文本框,默认向右展开\n ========== */\n.mdui-textfield-expandable {\n width: 36px;\n min-height: 36px;\n padding: 1px 0;\n transition: width .3s @animation-curve-default;\n\n .mdui-icon {\n bottom: 0;\n padding: 0;\n }\n\n .mdui-textfield-input {\n /* stylelint-disable-next-line */\n width: calc(~\"100% - 36px\");\n margin-left: 36px;\n padding-right: 0;\n }\n\n .mdui-textfield-icon {\n position: absolute;\n top: 0;\n left: 0;\n }\n\n .mdui-textfield-close {\n position: absolute;\n top: 0;\n right: 0;\n transform: scale(0);\n }\n\n &.mdui-textfield-expanded {\n width: 100%;\n\n .mdui-textfield-input {\n padding-right: 36px;\n }\n\n .mdui-textfield-close {\n transform: scale(1);\n }\n }\n}\n\n/* 表单验证不通过\n =========== */\n.mdui-textfield-invalid,\n.mdui-textfield-invalid-html5 {\n\n .mdui-textfield-input,\n &.mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: @color-red-a400 !important;\n box-shadow: 0 1px 0 0 @color-red-a400 !important;\n }\n\n .mdui-textfield-label {\n color: @color-red-a400 !important;\n }\n\n &.mdui-textfield-floating-label {\n .mdui-textfield-label {\n color: rgba(red(@color-red-a400), green(@color-red-a400), blue(@color-red-a400), 0.35) !important;\n }\n\n &.mdui-textfield-focus,\n &.mdui-textfield-not-empty {\n .mdui-textfield-label {\n color: @color-red-a400 !important;\n }\n }\n }\n\n .mdui-textfield-error {\n visibility: visible;\n\n &+.mdui-textfield-helper {\n visibility: hidden;\n }\n }\n}\n\n/* 禁用表单\n ====== */\n.mdui-textfield-disabled {\n .mdui-textfield-label,\n .mdui-textfield-input::-webkit-input-placeholder {\n color: @color-black-disabled;\n }\n\n .mdui-textfield-input {\n color: rgba(0, 0, 0, .42);\n cursor: default;\n }\n\n .mdui-textfield-input {\n border-bottom: 1px dashed rgba(0, 0, 0, .42);\n }\n}\n\n/* 字数统计\n ====== */\n.mdui-textfield-counter {\n position: absolute;\n right: 8px;\n bottom: 8px;\n height: 12px;\n color: @color-black-secondary;\n font-size: 12px;\n line-height: 12px;\n}\n\n\n/**\n * =============================================================================\n * ************ Textfield dark ************\n * =============================================================================\n */\n.layout-theme({\n // 输入框颜色\n .mdui-textfield-input {\n color: #fff;\n border-bottom-color: rgba(255, 255, 255, .7);\n\n &::-webkit-input-placeholder {\n color: rgba(255, 255, 255, .5);\n }\n\n &:not([disabled]):hover {\n border-bottom-color: rgba(255, 255, 255, 1);\n box-shadow: 0 1px 0 0 rgba(255, 255, 255, 1);\n }\n }\n\n // 图标颜色\n .mdui-textfield {\n .mdui-icon {\n color: rgba(255, 255, 255, 0.7);\n }\n }\n\n // 标签颜色\n .mdui-textfield-label {\n color: rgba(255, 255, 255, 0.7);\n }\n\n .mdui-textfield-floating-label {\n .mdui-textfield-label {\n color: rgba(255, 255, 255, 0.35);\n }\n }\n\n // 错误文本颜色\n .mdui-textfield-error {\n color: @color-red-a400;\n }\n\n // 帮助文本颜色\n .mdui-textfield-helper {\n color: rgba(255, 255, 255, 0.7);\n }\n\n // 字数统计颜色\n .mdui-textfield-counter {\n color: @color-white-secondary;\n }\n\n // 聚焦状态\n .mdui-textfield-focus {\n\n .mdui-textfield-input,\n .mdui-textfield-input:hover {\n border-bottom-color: @color-default-a200;\n box-shadow: 0 1px 0 0 @color-default-a200;\n }\n\n .mdui-textfield-label {\n color: @color-default-a200;\n }\n }\n\n // 禁用状态\n .mdui-textfield-disabled {\n .mdui-textfield-label,\n .mdui-textfield-input::-webkit-input-placeholder {\n color: @color-white-disabled;\n }\n\n .mdui-textfield-input {\n color: @color-white-disabled;\n }\n\n .mdui-textfield-input {\n border-bottom-color: rgba(255, 255, 255, .7);\n }\n }\n});\n\n\n/**\n * =============================================================================\n * ************ Textfield 强调色 ************\n * =============================================================================\n */\n& {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n @colorName: extract(@globalAccentColors, @counter-color);\n\n .mdui-theme-accent-@{colorName} when not (@colorName = null) {\n\n @colorA700: 'color-@{colorName}-a700';\n @colorA200: 'color-@{colorName}-a200';\n\n .mdui-textfield-focus {\n\n .mdui-textfield-input {\n border-bottom-color: @@colorA700;\n box-shadow: 0 1px 0 0 @@colorA700;\n }\n\n .mdui-textfield-label,\n .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-icon {\n color: rgba(red(@@colorA700), green(@@colorA700), blue(@@colorA700), .87);\n }\n }\n\n // 暗色主题\n & {\n .dark-mode() {\n .mdui-textfield-focus {\n\n .mdui-textfield-input {\n border-bottom-color: @@colorA200;\n box-shadow: 0 1px 0 0 @@colorA200;\n }\n\n .mdui-textfield-label,\n .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-icon {\n color: @@colorA200;\n }\n }\n }\n\n & when (@globalLayoutDark = true) {\n &.mdui-theme-layout-dark {\n .dark-mode();\n }\n }\n\n & when (@globalLayoutAuto = true) {\n @media (prefers-color-scheme: dark) {\n &.mdui-theme-layout-auto {\n .dark-mode();\n }\n }\n }\n }\n }\n }\n .loop-accent-theme(length(@globalAccentColors));\n}\n","/**\n * =============================================================================\n * ************ Checkbox 复选框 ************\n * =============================================================================\n */\n\n.mdui-checkbox {\n position: relative;\n display: inline-block;\n height: 36px;\n padding-left: 36px;\n line-height: 36px;\n cursor: pointer;\n user-select: none;\n\n // 隐藏系统 input 标签,用自定义的图标代替\n input[type=\"checkbox\"] {\n position: absolute;\n width: 0;\n height: 0;\n overflow: hidden;\n opacity: 0;\n }\n}\n\n/* 透明的圆形,用于生成圆形阴影 */\n.mdui-checkbox-icon {\n position: absolute;\n top: 9px;\n left: 0;\n display: inline-block;\n width: 18px;\n height: 18px;\n vertical-align: middle;\n background-color: transparent;\n border: none;\n border-radius: 18px;\n transition: box-shadow .14s @animation-curve-default;\n\n // 图标的边框和背景\n &::after {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 0;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n border: 2px solid @color-black-icon;\n border-radius: 2px;\n transition: all .3s @animation-curve-default;\n content: ' ';\n }\n\n // 选中状态图标内部的勾\n &::before {\n position: absolute;\n top: 2px;\n left: 0;\n z-index: 1;\n box-sizing: border-box;\n width: 8px;\n height: 13px;\n border-right: 2px solid #fff;\n border-bottom: 2px solid #fff;\n transform: rotateZ(37deg) scale(0);\n transform-origin: 100% 100%;\n opacity: 0;\n transition: all .3s @animation-curve-default;\n content: ' ';\n }\n}\n\n/* 各种状态的图标 */\n.mdui-checkbox input[type=\"checkbox\"] {\n\n // 选中状态的图标\n &:checked + .mdui-checkbox-icon {\n &::after {\n background-color: @color-default-a200;\n border-color: @color-default-a200;\n }\n\n &::before {\n transform: rotateZ(37deg) scale(1);\n opacity: 1;\n }\n }\n\n // 不确定状态的图标\n &:indeterminate + .mdui-checkbox-icon {\n &::after {\n background-color: @color-default-a200;\n border-color: @color-default-a200;\n }\n\n &::before {\n top: 8px;\n left: 3px;\n width: 12px;\n height: 0;\n border-right: none;\n border-bottom: 2px solid #fff;\n border-radius: 1px;\n transform: rotateZ(0) scale(1);\n opacity: 1;\n }\n }\n\n // 禁用状态的图标\n &:disabled + .mdui-checkbox-icon {\n &::after {\n border-color: @color-black-icon-disabled;\n }\n }\n\n // 禁用且选中状态\n &:disabled:checked + .mdui-checkbox-icon,\n &:disabled:indeterminate + .mdui-checkbox-icon {\n &::after {\n background-color: @color-black-icon-disabled !important;\n border-color: transparent !important;\n }\n }\n}\n\n/* 阴影 */\n.mdui-checkbox:active input[type=\"checkbox\"],\n.mdui-checkbox input[type=\"checkbox\"]:focus {\n // 未选中、禁用时 按下的阴影\n & + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(0, 0, 0, 0.1);\n }\n\n // 已选中时按下的阴影\n &:not(:disabled):checked,\n &:not(:disabled):indeterminate {\n & + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(red(@color-default-a200), green(@color-default-a200), blue(@color-default-a200), 0.16);\n }\n }\n}\n\n\n/**\n * =============================================================================\n * ************ Checkbox 强调色 ************\n * =============================================================================\n */\n\n& {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n @colorName: extract(@globalAccentColors, @counter-color);\n\n @color: 'color-@{colorName}-a200';\n\n .mdui-theme-accent-@{colorName} when not (@colorName = null) {\n\n // 选中状态的图标\n .mdui-checkbox input[type=\"checkbox\"]:checked,\n .mdui-checkbox input[type=\"checkbox\"]:indeterminate {\n & + .mdui-checkbox-icon::after {\n background-color: @@color;\n border-color: @@color;\n }\n }\n\n // 已选中时按下的阴影\n .mdui-checkbox:active input[type=\"checkbox\"],\n .mdui-checkbox input[type=\"checkbox\"]:focus {\n &:not(:disabled):checked + .mdui-checkbox-icon,\n &:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(red(@@color), green(@@color), blue(@@color), 0.16);\n }\n }\n }\n }\n .loop-accent-theme(length(@globalAccentColors));\n}\n\n\n/**\n * =============================================================================\n * ************ Checkbox dark ************\n * =============================================================================\n */\n.layout-theme({\n // 未选中的图标\n .mdui-checkbox-icon {\n &::after {\n border-color: rgba(255, 255, 255, 0.7);\n }\n\n &::before {\n border-right-color: @layout-dark-color-3 !important;\n border-bottom-color: @layout-dark-color-3 !important;\n }\n }\n\n // 禁用状态\n .mdui-checkbox input[type=\"checkbox\"]:disabled + .mdui-checkbox-icon {\n &::after {\n border-color: @color-white-icon-disabled;\n }\n }\n\n // 禁用且选中状态\n .mdui-checkbox input[type=\"checkbox\"] {\n &:disabled:checked + .mdui-checkbox-icon,\n &:disabled:indeterminate + .mdui-checkbox-icon {\n &::after {\n background-color: @color-white-icon-disabled !important;\n border-color: transparent !important;\n }\n }\n }\n\n // 未选中或禁用时 按下的阴影\n .mdui-checkbox:active input[type=\"checkbox\"],\n .mdui-checkbox input[type=\"checkbox\"]:focus {\n & + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(255, 255, 255, 0.1);\n }\n }\n});\n","/**\n * =============================================================================\n * ************ Radio 单选框 ************\n * =============================================================================\n */\n\n.mdui-radio {\n position: relative;\n display: inline-block;\n height: 36px;\n padding-left: 36px;\n line-height: 36px;\n cursor: pointer;\n user-select: none;\n\n // 隐藏系统 input 标签,用自定义的图标代替\n input {\n position: absolute;\n width: 0;\n height: 0;\n overflow: hidden;\n opacity: 0;\n }\n}\n\n/* 图标外圈 */\n.mdui-radio-icon {\n position: absolute;\n top: 9px;\n left: 0;\n display: inline-block;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n vertical-align: middle;\n border: 2px solid @color-black-icon;\n border-radius: 18px;\n transition: all .3s @animation-curve-default,\n box-shadow .14s @animation-curve-default;\n\n // 图标内部圆圈\n &::before {\n position: absolute;\n top: 0;\n left: 0;\n width: 14px;\n height: 14px;\n background-color: @color-default-a200;\n border-radius: 14px;\n transform: scale(0);\n opacity: 0;\n transition: all .3s @animation-curve-default;\n content: ' ';\n }\n}\n\n/* 选中状态的图标 */\n.mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: @color-default-a200;\n\n &::before {\n transform: scale(0.68);\n opacity: 1;\n }\n}\n\n/* 禁用状态的图标 */\n.mdui-radio input[type=\"radio\"]:disabled + .mdui-radio-icon {\n border-color: @color-black-icon-disabled !important;\n}\n\n/* 禁用且选中状态的图标 */\n.mdui-radio input[type=\"radio\"]:disabled:checked + .mdui-radio-icon {\n &::before {\n background-color: @color-black-icon-disabled !important;\n }\n}\n\n/* 未选中、禁用时 按下的阴影 */\n.mdui-radio:active input[type=\"radio\"],\n.mdui-radio input[type=\"radio\"]:focus {\n & + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(0, 0, 0, 0.1);\n }\n}\n\n/* 已选中时按下的阴影 */\n.mdui-radio:active input[type=\"radio\"],\n.mdui-radio input[type=\"radio\"]:focus {\n &:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(red(@color-default-a200), green(@color-default-a200), blue(@color-default-a200), 0.16);\n }\n}\n\n/**\n * =============================================================================\n * ************ Radio 强调色 ************\n * =============================================================================\n */\n\n& {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n @colorName: extract(@globalAccentColors, @counter-color);\n\n @color: 'color-@{colorName}-a200';\n\n .mdui-theme-accent-@{colorName} when not (@colorName = null) {\n\n // 选中状态的图标\n .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: @@color;\n\n &::before {\n background-color: @@color;\n }\n }\n\n // 已选中时按下的阴影\n .mdui-radio:active input[type=\"radio\"],\n .mdui-radio input[type=\"radio\"]:focus {\n &:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(red(@@color), green(@@color), blue(@@color), 0.16);\n }\n }\n\n }\n }\n .loop-accent-theme(length(@globalAccentColors));\n}\n\n\n/**\n * =============================================================================\n * ************ Radio dark ************\n * =============================================================================\n */\n.layout-theme({\n // 图标外圈\n .mdui-radio-icon {\n border-color: rgba(255, 255, 255, 0.7);\n }\n\n // 禁用状态\n .mdui-radio input[type=\"radio\"]:disabled + .mdui-radio-icon {\n border-color: @color-white-icon-disabled !important;\n }\n\n // 禁用且选中状态\n .mdui-radio input[type=\"radio\"]:disabled:checked + .mdui-radio-icon {\n &::before {\n background-color: @color-white-icon-disabled !important;\n }\n }\n\n // 未选中或禁用时 按下的阴影\n .mdui-radio:active input[type=\"radio\"],\n .mdui-radio input[type=\"radio\"]:focus {\n & + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(255, 255, 255, 0.1);\n }\n }\n});\n","/**\n * =============================================================================\n * ************ Switch 单选框 ************\n * =============================================================================\n */\n\n.mdui-switch {\n display: inline-block;\n height: 36px;\n line-height: 36px;\n cursor: pointer;\n user-select: none;\n\n // 隐藏系统 input 标签,用自定义的图标代替\n input {\n position: absolute;\n width: 0;\n height: 0;\n overflow: hidden;\n opacity: 0;\n }\n}\n\n/* 图标轨道 */\n.mdui-switch-icon {\n position: relative;\n display: inline-block;\n width: 36px;\n height: 14px;\n vertical-align: middle;\n background-color: rgba(0, 0, 0, 0.38);\n border-radius: 14px;\n transition: background-color .3s @animation-curve-default;\n\n // 圆形图标\n &::before {\n position: absolute;\n top: -3px;\n left: -3px;\n display: inline-block;\n width: 20px;\n height: 20px;\n background-color: @color-grey-50;\n border-radius: 20px;\n transition: box-shadow .14s @animation-curve-default,\n background-color .3s @animation-curve-default,\n left .3s @animation-curve-default;\n content: ' ';\n .mdui-shadow(1);\n }\n}\n\n/* 选中状态的图标 */\n.mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(red(@color-default-a200), green(@color-default-a200), blue(@color-default-a200), 0.5);\n\n &::before {\n left: 20px;\n background-color: @color-default-a200;\n }\n}\n\n/* 未选中时或禁用时 按下的阴影 */\n.mdui-switch:active input[type=\"checkbox\"],\n.mdui-switch input[type=\"checkbox\"]:focus {\n & + .mdui-switch-icon::before {\n box-shadow:\n // box-shadow(1)\n 0 2px 1px -1px rgba(0, 0, 0, .2),\n 0 1px 1px 0 rgba(0, 0, 0, .14),\n 0 1px 3px 0 rgba(0, 0, 0, .12),\n\n // 颜色阴影\n 0 0 0 15px rgba(0, 0, 0, 0.1);\n }\n}\n\n/* 已选中时按下的阴影 */\n.mdui-switch:active input[type=\"checkbox\"],\n.mdui-switch input[type=\"checkbox\"]:focus {\n &:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow:\n // box-shadow(1)\n 0 2px 1px -1px rgba(0, 0, 0, .2),\n 0 1px 1px 0 rgba(0, 0, 0, .14),\n 0 1px 3px 0 rgba(0, 0, 0, .12),\n\n // 颜色阴影\n 0 0 0 15px rgba(red(@color-default-a200), green(@color-default-a200), blue(@color-default-a200), 0.16);\n }\n}\n\n/* 禁用状态 */\n.mdui-switch input[type=\"checkbox\"]:disabled + .mdui-switch-icon {\n background-color: rgba(0, 0, 0, 0.12) !important;\n\n &::before {\n background-color: @color-grey-400 !important;\n }\n}\n\n\n/**\n * =============================================================================\n * ************ Switch 强调色 ************\n * =============================================================================\n */\n\n& {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n @colorName: extract(@globalAccentColors, @counter-color);\n\n @color: 'color-@{colorName}-a200';\n\n .mdui-theme-accent-@{colorName} when not (@colorName = null) {\n\n // 选中状态的图标\n .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(red(@@color), green(@@color), blue(@@color), 0.5);\n\n &::before {\n background-color: @@color;\n }\n }\n\n // 已选中时按下的阴影\n .mdui-switch:active input[type=\"checkbox\"],\n .mdui-switch input[type=\"checkbox\"]:focus {\n &:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow:\n // box-shadow(1)\n 0 2px 1px -1px rgba(0, 0, 0, .2),\n 0 1px 1px 0 rgba(0, 0, 0, .14),\n 0 1px 3px 0 rgba(0, 0, 0, .12),\n\n // 颜色阴影\n 0 0 0 15px rgba(red(@@color), green(@@color), blue(@@color), 0.16);\n }\n }\n\n }\n }\n .loop-accent-theme(length(@globalAccentColors));\n}\n\n\n/**\n * =============================================================================\n * ************ Radio dark ************\n * =============================================================================\n */\n.layout-theme({\n // 默认状态\n .mdui-switch-icon {\n background-color: rgba(255, 255, 255, 0.3);\n\n &::before {\n background-color: @color-grey-400;\n }\n }\n\n // 选中状态\n & {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n @colorName: extract(@globalAccentColors, @counter-color);\n\n @color: 'color-@{colorName}-a200';\n @color-a100: 'color-@{colorName}-a100';\n\n &.mdui-theme-accent-@{colorName} when not (@colorName = null) {\n\n .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(red(@@color-a100), green(@@color-a100), blue(@@color-a100), 0.5);\n\n &::before {\n background-color: @@color-a100;\n }\n }\n\n }\n }\n .loop-accent-theme(length(@globalAccentColors));\n }\n\n // 未选中或禁用时 按下的阴影\n .mdui-switch:active input[type=\"checkbox\"],\n .mdui-switch input[type=\"checkbox\"]:focus {\n & + .mdui-switch-icon::before {\n box-shadow:\n // box-shadow(1)\n 0 2px 1px -1px rgba(0, 0, 0, .2),\n 0 1px 1px 0 rgba(0, 0, 0, .14),\n 0 1px 3px 0 rgba(0, 0, 0, .12),\n\n // 颜色阴影\n 0 0 0 15px rgba(255, 255, 255, 0.1);\n }\n }\n\n // 禁用状态\n .mdui-switch input[type=\"checkbox\"]:disabled + .mdui-switch-icon {\n background-color: rgba(255, 255, 255, 0.1) !important;\n\n &::before {\n background-color: @color-grey-800 !important;\n }\n }\n});\n","/**\n * =============================================================================\n * ************ Slider 滑块 ************\n * =============================================================================\n */\n\n@slider-light-color: #bdbdbd; // rgba(0, 0, 0, .26)\n@slider-light-color-focus: #9e9e9e; // rgba(0, 0, 0, .38)\n@slider-light-color-disabled: #bdbdbd; // rgba(0, 0, 0, .26)\n\n@slider-dark-color: #4c4c4c; // rgba(255, 255, 255, .3)\n@slider-dark-color-focus: #4c4c4c; // rgba(255, 255, 255, .3)\n@slider-dark-color-disabled: #4c4c4c; // rgba(255, 255, 255, .3)\n\n.mdui-slider {\n position: relative;\n display: block;\n width: 100%;\n height: 36px;\n\n input[type=\"range\"] {\n position: absolute;\n top: 50%;\n left: 0;\n z-index: 2;\n width: 100%;\n height: 20px;\n margin-top: -10px;\n cursor: pointer;\n opacity: 0;\n appearance: none;\n }\n}\n\n.mdui-slider-track,\n.mdui-slider-fill {\n position: absolute;\n top: 50%;\n box-sizing: border-box;\n height: 2px;\n margin-top: -1px;\n\n &::before {\n display: block;\n width: 100%;\n height: 100%;\n content: ' ';\n }\n}\n\n/* 轨道 */\n.mdui-slider-track {\n right: 0;\n\n &::before {\n background-color: @slider-light-color;\n transition: background-color .3s @animation-curve-default;\n }\n}\n\n/* 已滑动部分 */\n.mdui-slider-fill {\n left: 0;\n\n &::before {\n background-color: @color-default-a200;\n }\n}\n\n/* 滑块 */\n.mdui-slider-thumb {\n position: absolute;\n top: 50%;\n box-sizing: border-box;\n width: 12px;\n height: 12px;\n margin-top: -6px;\n background-color: @color-default-a200;\n border: 2px solid @color-default-a200;\n border-radius: 50%;\n transform: translate(-50%);\n transition:\n background .45s @animation-curve-default,\n border-color .45s @animation-curve-default,\n transform .2s @animation-curve-default,\n border-radius .2s @animation-curve-default;\n will-change: background, border-color, transform, border-radius;\n}\n\n\n/**\n * =============================================================================\n * ************ Slider 强调色 ************\n * =============================================================================\n */\n\n& {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n @colorName: extract(@globalAccentColors, @counter-color);\n\n @color: 'color-@{colorName}-a200';\n\n .mdui-theme-accent-@{colorName} when not (@colorName = null) {\n\n .mdui-slider-fill {\n\n &::before {\n background-color: @@color;\n }\n }\n\n .mdui-slider-thumb {\n background-color: @@color;\n border: 2px solid @@color;\n }\n }\n }\n .loop-accent-theme(length(@globalAccentColors));\n}\n\n\n/**\n * =============================================================================\n * ============ Slider 的不同状态 ============\n * =============================================================================\n */\n\n/* 鼠标按下状态 */\n.mdui-slider-focus {\n .mdui-slider-track {\n\n &::before {\n background-color: @slider-light-color-focus;\n }\n }\n\n .mdui-slider-thumb {\n transform: translate(-50%) scale(1.6);\n }\n}\n\n/* 滑块值为 0 */\n.mdui-slider-zero {\n .mdui-slider-thumb {\n background-color: #fff;\n border-color: @slider-light-color;\n }\n}\n\n/* 滑块值为 0,且鼠标按下 */\n.mdui-slider-zero.mdui-slider-focus {\n .mdui-slider-thumb {\n border-color: @slider-light-color-focus;\n }\n}\n\n/* 禁用状态 */\n.mdui-slider-disabled {\n input[type=\"range\"] {\n cursor: default;\n }\n\n .mdui-slider-track {\n\n &::before {\n background-color: @slider-light-color-disabled;\n }\n }\n\n .mdui-slider-fill {\n\n &::before {\n background-color: @slider-light-color-disabled;\n }\n }\n\n .mdui-slider-thumb {\n background-color: @slider-light-color-disabled;\n border-color: transparent !important;\n transform: translate(-50%) scale(.72);\n }\n}\n\n/**\n * =============================================================================\n * ============ 间续型滑块 ============\n * =============================================================================\n */\n.mdui-slider-discrete {\n\n .mdui-slider-thumb {\n width: 30px;\n height: 30px;\n margin-top: -15px;\n margin-left: -15px;\n border: none;\n transform: rotate(-45deg) scale(.4);\n\n // 间续型滑块的值显示\n span {\n position: absolute;\n top: 9px;\n left: -1px;\n width: 100%;\n color: #fff;\n font-size: 12px;\n text-align: center;\n transform: rotate(45deg);\n opacity: 0;\n transition: opacity .25s @animation-curve-default;\n }\n }\n\n // 鼠标按下状态\n &.mdui-slider-focus {\n .mdui-slider-thumb {\n border-radius: 15px 15px 15px 0;\n transform: rotate(-45deg) scale(1) translate(22px, -22px);\n\n span {\n opacity: 1;\n }\n }\n }\n\n // 滑块值为 0\n &.mdui-slider-zero {\n .mdui-slider-thumb {\n background-color: #323232;\n }\n }\n\n // 滑块值为 0,且鼠标按下\n &.mdui-slider-zero.mdui-slider-focus {\n .mdui-slider-thumb {\n background-color: @slider-light-color;\n }\n }\n\n // 禁用状态\n &.mdui-slider-disabled {\n .mdui-slider-thumb {\n transform: rotate(-45deg) scale(.288);\n }\n }\n\n // 滑块值为 0,且禁用\n &.mdui-slider-zero.mdui-slider-disabled {\n .mdui-slider-thumb {\n background-color: @slider-light-color;\n }\n }\n}\n\n/**\n * =============================================================================\n * ************ Slider dark ************\n * =============================================================================\n */\n.layout-theme({\n // 轨道\n .mdui-slider-track {\n\n &::before {\n background-color: @slider-dark-color;\n }\n }\n\n // 鼠标按下状态\n .mdui-slider-focus {\n .mdui-slider-track {\n\n &::before {\n background-color: @slider-dark-color-focus;\n }\n }\n }\n\n // 滑块值为 0\n .mdui-slider-zero {\n .mdui-slider-thumb {\n background-color: @layout-dark-color-3;\n border-color: @slider-dark-color;\n }\n }\n\n // 滑块值为 0,且鼠标按下\n .mdui-slider-zero.mdui-slider-focus {\n .mdui-slider-thumb {\n border-color: @slider-dark-color-focus;\n }\n }\n\n // 禁用状态\n .mdui-slider-disabled {\n .mdui-slider-track {\n\n &::before {\n background-color: @slider-dark-color-disabled;\n }\n }\n\n .mdui-slider-fill {\n\n &::before {\n background-color: @slider-dark-color-disabled;\n }\n }\n\n .mdui-slider-thumb {\n background-color: @slider-dark-color-disabled;\n }\n }\n\n // 间续型滑块\n .mdui-slider-discrete {\n\n // 滑块值为 0\n &.mdui-slider-zero {\n .mdui-slider-thumb {\n background-color: #fefefe;\n }\n }\n\n // 滑块值为 0,且鼠标按下\n &.mdui-slider-zero.mdui-slider-focus {\n .mdui-slider-thumb {\n background-color: #5c5c5c;\n }\n }\n\n // 滑块值为 0,且禁用\n &.mdui-slider-zero.mdui-slider-disabled {\n .mdui-slider-thumb {\n background-color: @slider-dark-color-disabled;\n }\n }\n }\n});\n","/**\n * =============================================================================\n * ************ Button 按钮 ************\n * =============================================================================\n */\n\n/* 默认为 Flat 扁平按钮 */\n.mdui-btn,\n.mdui-fab {\n position: relative;\n display: inline-block;\n box-sizing: border-box;\n min-width: 88px;\n height: @button-height;\n margin: 0;\n padding: 0 16px;\n overflow: hidden;\n color: inherit;\n font-weight: 500;\n font-size: 14px;\n line-height: @button-height;\n letter-spacing: 0.04em;\n white-space: nowrap;\n text-align: center;\n text-transform: uppercase;\n text-decoration: none;\n vertical-align: middle;\n background: transparent;\n border: none;\n border-radius: 2px;\n outline: none;\n cursor: pointer;\n transition: all .2s @animation-curve-default,\n box-shadow .2s @animation-curve-fast-out-linear-in;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n // 移除点击延迟触发\n touch-action: manipulation;\n will-change: box-shadow;\n zoom: 1;\n -webkit-user-drag: none;\n\n // 透明按钮 hover、active 时颜色加深\n &:hover {\n background-color: rgba(0, 0, 0, 0.1);\n }\n &:not(.mdui-ripple):active {\n background-color: rgba(0, 0, 0, 0.165);\n }\n\n // 带背景色的按钮 hover、active 时增加透明度\n &[class*=\"mdui-color-\"]:hover {\n opacity: 0.87;\n }\n &:not(.mdui-ripple)[class*=\"mdui-color-\"]:active {\n opacity: 0.76;\n }\n}\n\n/* 按钮内的图标 */\n.mdui-btn {\n .mdui-icon-left,\n .mdui-icon-right {\n &,\n &::before {\n height: inherit;\n font-size: 1.3em;\n line-height: inherit;\n }\n }\n .mdui-icon-left {\n float: left;\n margin-right: 0.4em;\n }\n .mdui-icon-right {\n float: right;\n margin-left: 0.4em;\n }\n}\n\ninput.mdui-btn[type=\"submit\"] {\n appearance: none;\n}\n\n/* Raised button 浮动按钮 */\n.mdui-btn-raised {\n .mdui-shadow(2);\n\n &:hover {\n .mdui-shadow(4);\n }\n\n &:active {\n .mdui-shadow(8);\n }\n}\n\n/* 禁用按钮 */\n.mdui-btn,\n.mdui-fab {\n &[disabled] {\n &,\n &:hover,\n &:active,\n &:focus {\n color: rgba(0, 0, 0, .26) !important;\n background-color: transparent !important;\n cursor: default !important;\n opacity: 1 !important;\n .mdui-shadow(0) !important;\n .mdui-icon {\n color: rgba(0, 0, 0, .26) !important;\n }\n }\n }\n}\n\n/* 禁用状态浮动按钮和浮动操作按钮 */\n.mdui-btn-raised,\n.mdui-fab {\n &[disabled] {\n &,\n &:hover,\n &:active,\n &:focus {\n background-color: rgba(0, 0, 0, .12) !important;\n .mdui-shadow(2) !important;\n }\n }\n}\n\n/* 加粗按钮文本 */\n.mdui-btn-bold {\n font-weight: bold;\n}\n\n/* 图标按钮 */\n.mdui-btn-icon {\n width: 36px;\n min-width: 36px;\n height: 36px;\n margin-right: 0;\n margin-left: 0;\n padding: 0;\n overflow: hidden;\n font-size: 24px;\n line-height: normal;\n border-radius: 50%;\n\n .mdui-icon {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 24px;\n line-height: 24px;\n transform: translate(-12px, -12px);\n }\n\n &.mdui-ripple {\n transform: translateZ(0);\n }\n}\n\n/* 按钮 100% 宽度 */\n.mdui-btn-block {\n display: block;\n width: 100%;\n}\n\n/* 密集型按钮 */\n.mdui-btn-dense {\n height: 32px;\n font-size: 13px;\n line-height: 32px;\n\n &.mdui-btn-icon {\n width: 32px;\n min-width: 32px;\n }\n}\n\n/* 按钮组 */\n.mdui-btn-group {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n\n .mdui-btn {\n float: left;\n min-width: inherit;\n padding: 0 12px;\n color: rgba(0, 0, 0, 0.54);\n border-radius: 0;\n\n &::before {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n border-left: 1px solid transparent;\n content: ' ';\n }\n\n &:first-child {\n border-top-left-radius: 2px;\n border-bottom-left-radius: 2px;\n\n &::before {\n border-left: none;\n }\n }\n\n &:last-child {\n border-top-right-radius: 2px;\n border-bottom-right-radius: 2px;\n }\n\n // 激活状态\n &.mdui-btn-active {\n color: rgba(0, 0, 0, 0.87);\n background-color: rgba(0, 0, 0, 0.215);\n\n &+.mdui-btn-active {\n &::before {\n border-left: 1px solid rgba(0, 0, 0, 0.145);\n }\n }\n }\n }\n}\n\n\n/**\n * =============================================================================\n * ************ Button dark ************\n * =============================================================================\n */\n.layout-theme({\n // 透明按钮 hover、active 时颜色变浅\n .mdui-btn,\n .mdui-fab {\n // 透明按钮 hover、active 时颜色变浅\n &:hover {\n background-color: rgba(255, 255, 255, 0.1);\n }\n &:not(.mdui-ripple):active {\n background-color: rgba(255, 255, 255, 0.165);\n }\n\n // 带背景的按钮 hover、active 时增加透明度\n &[class*=\"mdui-color-\"]:hover {\n opacity: 0.87;\n }\n &:not(.mdui-ripple)[class*=\"mdui-color-\"]:active {\n opacity: 0.76;\n }\n }\n\n // 禁用按钮\n .mdui-btn,\n .mdui-fab {\n &[disabled] {\n &,\n &:hover,\n &:active,\n &:focus {\n color: @color-white-icon-disabled !important;\n background-color: transparent !important;\n .mdui-icon {\n color: @color-white-icon-disabled !important;\n }\n }\n }\n }\n\n // 禁用状态浮动按钮和浮动操作按钮\n .mdui-btn-raised,\n .mdui-fab {\n &[disabled] {\n &,\n &:hover,\n &:active,\n &:focus {\n background-color: rgba(255, 255, 255, .12) !important;\n }\n }\n }\n});\n","/**\n * =============================================================================\n * ************ Fab 浮动操作按钮 ************\n * =============================================================================\n */\n\n@import '../button/index';\n\n@fab-size: 56px;\n@fab-size-mini: 40px;\n\n/* 浮动操作按钮 */\n.mdui-fab {\n width: @fab-size;\n min-width: @fab-size;\n height: @fab-size;\n margin: auto;\n padding: 0 !important;\n overflow: hidden;\n font-size: 24px;\n line-height: normal !important;\n border-radius: 50%;\n .mdui-shadow(6);\n\n &:hover{\n .mdui-shadow(8);\n }\n\n &:active {\n .mdui-shadow(12);\n }\n\n // 浮动操作按钮中的图标\n .mdui-icon {\n position: absolute;\n top: 0;\n left: 0;\n width: 24px;\n margin-top: 16px;\n margin-left: 16px;\n line-height: 24px;\n }\n}\n\n/* mini 型浮动操作按钮 */\n.mdui-fab-mini {\n width: @fab-size-mini;\n min-width: @fab-size-mini;\n height: @fab-size-mini;\n\n // mini 型浮动操作按钮中的图标\n .mdui-icon {\n margin-top: 8px;\n margin-left: 8px;\n }\n}\n\n/* 固定到右下角的 FAB 按钮 */\n.mdui-fab-fixed,\n.mdui-fab-wrapper {\n position: fixed !important;\n\n /* 手机平板上距离屏幕右下角 16px */\n right: 16px;\n bottom: 16px;\n\n @media (min-width: @screen-md-min) {\n /* 电脑上距离屏幕右下角 24px */\n right: 24px;\n bottom: 24px;\n }\n}\n\n/* 含菜单的浮动操作按钮 */\n.mdui-fab-wrapper {\n position: relative;\n z-index: @z-index-fab;\n width: @fab-size;\n height: @fab-size;\n padding-top: 8px;\n text-align: center;\n\n // 菜单打开前\n &>.mdui-fab {\n .mdui-icon:not(.mdui-fab-opened) {\n opacity: 1;\n transition: all .2s @animation-curve-default;\n will-change: opacity, transform;\n }\n .mdui-icon.mdui-fab-opened {\n transform: rotate(225deg);\n opacity: 0;\n transition: all .2s @animation-curve-default;\n will-change: opacity, transform;\n }\n }\n\n // 菜单打开后\n &>.mdui-fab.mdui-fab-opened {\n .mdui-icon:not(.mdui-fab-opened) {\n transform: rotate(225deg);\n opacity: 0;\n }\n .mdui-icon.mdui-fab-opened {\n transform: rotate(360deg);\n opacity: 1;\n }\n }\n\n // mini 按钮需要垂直居中\n &>.mdui-fab-mini {\n margin-top: (@fab-size - @fab-size-mini) / 2;\n }\n\n .mdui-fab-dial {\n position: absolute;\n right: 0;\n bottom: @fab-size + 8px;\n left: 0;\n height: 0;\n text-align: center;\n visibility: visible;\n\n .mdui-fab {\n margin: 8px 0;\n transform: scale(0);\n opacity: 0;\n transition: box-shadow .2s @animation-curve-fast-out-linear-in,\n color .2s @animation-curve-default,\n // fab\n transform 150ms @animation-curve-default,\n opacity 150ms @animation-curve-default;\n }\n\n &.mdui-fab-dial-show {\n .mdui-fab {\n transform: scale(1);\n opacity: 1;\n }\n }\n }\n}\n\n/* 添加类 .mdui-fab-hide 以动画的形式隐藏按钮 */\n.mdui-fab,\n.mdui-fab-mini,\n.mdui-fab-wrapper {\n transform: scale(1) translateZ(0);\n transition: all .2s @animation-curve-default,\n box-shadow .2s @animation-curve-fast-out-linear-in,\n // fab\n transform .2s;\n will-change: transform;\n\n &.mdui-fab-hide {\n transform: scale(0) translateZ(0);\n }\n}\n","/**\n * =============================================================================\n * ************ Select 下拉选择 ************\n * =============================================================================\n */\n\n.mdui-select {\n position: relative;\n display: inline-block;\n box-sizing: border-box;\n max-width: 100%;\n height: 36px;\n padding-right: 24px;\n padding-left: 0;\n font-size: 16px;\n font-family: @font-family-base;\n vertical-align: middle;\n //background-image: data-uri('image/svg+xml', './components/select/svg/arrow_down_dark.svg');\n // https://www.zhangxinxu.com/sp/svgo/ CSS 转义\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M-.003 2.5l5 5 5-5h-10z' opacity='.54'/%3E%3C/svg%3E\");\n\n // 箭头\n background-repeat: no-repeat;\n background-position: right center;\n border: none;\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n outline: none;\n cursor: pointer;\n transition-timing-function: @animation-curve-default;\n transition-duration: .2s;\n transition-property: background-color, box-shadow, background-position-x;\n appearance: none;\n user-select: none;\n will-change: background-color, box-shadow, background-position-x;\n\n &.mdui-select-open {\n border-bottom: none;\n }\n}\n\n.mdui-select-position-top {\n //background-image: data-uri('image/svg+xml', './components/select/svg/arrow_up_dark.svg');\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M10.003 7.5l-5-5-5 5h10z' opacity='.54'/%3E%3C/svg%3E\");\n}\n\n/* 底部和顶部菜单的样式 */\n.mdui-select-open {\n &.mdui-select-position-top,\n &.mdui-select-position-bottom {\n z-index: 99999;\n background-color: #fff;\n /* stylelint-disable-next-line */\n background-position-x: calc(~'100% - 12px');\n border-radius: 2px;\n }\n\n &.mdui-select-position-top {\n border-top: 1px solid rgba(0, 0, 0, 0.12);\n border-bottom: 2px solid transparent;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n box-shadow: 0 10px 10px -3px rgba(0,0,0,.2), 0 0 14px 1px rgba(0,0,0,.14), 0 -7px 24px 2px rgba(0,0,0,.12);\n\n .mdui-select-menu {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n\n // 隐藏下方的阴影\n box-shadow: 0 -4px 4px -2px rgba(0,0,0,.06), 8px 0 8px -4px rgba(0,0,0,.12), -8px 0 8px -4px rgba(0,0,0,.12)\n }\n }\n\n &.mdui-select-position-bottom {\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n .mdui-shadow(8);\n\n .mdui-select-menu {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n\n // 隐藏上方阴影\n box-shadow: 0 5px 5px -3px rgba(0,0,0,.2), 0 9px 9px 1px rgba(0,0,0,.14), 0 8px 8px 2px rgba(0,0,0,.06);\n }\n }\n}\n\n/* 当前选中项文本 */\n.mdui-select-selected {\n position: absolute;\n top: 50%;\n right: 24px;\n left: 0;\n display: block;\n transform: translateY(-50%);\n transition: left .2s @animation-curve-linear-out-slow-in;\n .mdui-text-truncate();\n\n .mdui-select-open & {\n right: 32px;\n left: 16px;\n }\n\n .mdui-select-open.mdui-select-position-auto & {\n visibility: hidden;\n }\n}\n\n/* 菜单 */\n.mdui-select-menu {\n position: relative;\n z-index: 99999;\n box-sizing: border-box;\n height: 36px;\n margin: 0 -24px 0 0;\n\n // 在计算宽度时,把滚动条计算进去\n overflow-y: scroll;\n color: @color-black-text;\n background-color: #fff;\n border-radius: 2px;\n transform: scale(1, 0);\n visibility: hidden;\n cursor: default;\n opacity: 0;\n transition-timing-function: @animation-curve-linear-out-slow-in;\n transition-duration: .2s;\n transition-property: transform, opacity, visibility;\n will-change: transform, opacity, visibility;\n -webkit-overflow-scrolling: touch;\n .mdui-shadow(8);\n\n // 打开状态的菜单\n .mdui-select-open & {\n overflow-y: hidden;\n transform: scale(1, 1);\n visibility: visible;\n opacity: 1;\n }\n\n // 关闭状态的菜单\n .mdui-select-closing & {\n overflow-y: hidden;\n box-shadow: none;\n transform: scale(1, 1);\n visibility: visible;\n opacity: 0;\n }\n}\n\n/* 菜单项 */\n.mdui-select-menu-item {\n height: 48px;\n padding: 0 16px;\n line-height: 48px;\n cursor: pointer;\n .mdui-text-truncate();\n\n &:hover {\n background-color: @color-grey-200;\n }\n\n &:first-child {\n margin-top: 8px;\n }\n\n &:last-child {\n margin-bottom: 8px;\n }\n\n // 禁用项\n &[disabled] {\n color: @color-black-disabled !important;\n cursor: default;\n\n &:hover {\n background-color: inherit !important;\n }\n }\n\n // 已选中项\n &[selected] {\n color: @color-default-a200;\n }\n}\n\n\n/* 原生 select 组件 */\nselect.mdui-select {\n background-color: transparent;\n\n option {\n color: rgba(0, 0, 0, 0.87);\n }\n\n // 移除 IE 的下拉按钮\n &::-ms-expand {\n display: none;\n }\n}\n\n/* 原生多选 select 组件 */\nselect.mdui-select[multiple] {\n height: auto;\n padding: 0;\n font-size: 15px;\n background-color: #FFF;\n background-image: none;\n border: 1px solid rgba(0, 0, 0, 0.38);\n cursor: default;\n\n optgroup {\n margin: 8px 0 0 0;\n padding: 0 0 0 16px;\n color: rgba(0, 0, 0, 0.38);\n\n &:last-child {\n margin-bottom: 8px;\n }\n\n &:not(:first-child) {\n padding-top: 8px;\n border-top: 1px solid rgba(0, 0, 0, 0.12);\n }\n }\n\n option {\n display: flex;\n align-items: center;\n height: 32px;\n margin: 0 0 0 -16px;\n padding: 0 16px;\n color: rgba(0, 0, 0, 0.87);\n\n &:first-child {\n margin-top: 8px;\n }\n\n &:last-child {\n margin-bottom: 8px;\n }\n }\n}\n\n/**\n * =============================================================================\n * ************ Select 强调色 ************\n * =============================================================================\n */\n\n& {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n @colorName: extract(@globalAccentColors, @counter-color);\n\n .mdui-theme-accent-@{colorName} when not (@colorName = null) {\n\n .mdui-select-menu-item {\n // 菜单中已选中项\n &[selected] {\n .mdui-text-color(@colorName);\n }\n }\n\n }\n }\n .loop-accent-theme(length(@globalAccentColors));\n}\n\n\n/**\n * =============================================================================\n * ************ Select dark ************\n * =============================================================================\n */\n.layout-theme({\n .mdui-select {\n //background-image: data-uri('image/svg+xml', './components/select/svg/arrow_down_light.svg');\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M-.003 2.5l5 5 5-5h-10z' fill='%23FFF'/%3E%3C/svg%3E\");\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n }\n\n .mdui-select-position-top {\n //background-image: data-uri('image/svg+xml', './components/select/svg/arrow_up_light.svg');\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M10.003 7.5l-5-5-5 5h10z' fill='%23FFF'/%3E%3C/svg%3E\");\n }\n\n .mdui-select-open {\n &.mdui-select-position-top,\n &.mdui-select-position-bottom {\n background-color: @layout-dark-color-4;\n }\n\n &.mdui-select-position-top {\n border-top: 1px solid rgba(255, 255, 255, 0.12);\n }\n\n &.mdui-select-position-bottom {\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n }\n }\n\n .mdui-select-menu {\n color: #fff;\n background-color: @layout-dark-color-4;\n }\n\n .mdui-select-menu-item {\n &:hover {\n background-color: @color-grey-700;\n }\n\n &[disabled] {\n color: @color-white-disabled !important;\n }\n }\n\n // 原生 select 组件\n select.mdui-select {\n color: #FFF;\n background-color: @layout-dark-color-3;\n\n option {\n color: #FFF;\n background-color: @layout-dark-color-3;\n }\n }\n\n // 原生多选 select 组件\n select.mdui-select[multiple] {\n border: 1px solid rgba(255, 255, 255, 0.5);\n\n optgroup {\n color: rgba(255, 255, 255, 0.5);\n\n &:not(:first-child) {\n border-top: 1px solid rgba(255, 255, 255, 0.12);\n }\n }\n }\n});\n","/**\n * =============================================================================\n * ************ Toolbar 工具栏 ************\n * =============================================================================\n */\n\n.mdui-toolbar {\n display: flex;\n align-items: center;\n box-sizing: border-box;\n width: 100%;\n &>* {\n margin: 0 16px;\n .mdui-text-truncate();\n }\n\n // 工具栏默认有背景色时,工具栏中的按钮,hover 和 active 时颜色变浅\n &[class*=\"mdui-color-\"]:not(.mdui-color-transparent) {\n .mdui-btn {\n &:hover {\n background-color: rgba(255, 255, 255, 0.1);\n }\n &:active {\n background-color: rgba(255, 255, 255, 0.165);\n }\n }\n }\n\n &>a {\n color: inherit;\n text-decoration: none;\n user-select: none;\n }\n\n &>.mdui-btn-icon {\n width: @appbar-icon-width;\n min-width: @appbar-icon-width;\n height: @appbar-icon-width;\n\n // 手机横屏时\n @media (orientation: landscape) and (max-width: @screen-xs-max-landscape) {\n width: @appbar-icon-width-xs-landscape;\n min-width: @appbar-icon-width-xs-landscape;\n height: @appbar-icon-width-xs-landscape;\n }\n\n .mdui-icon {\n height: 24px;\n line-height: 24px;\n }\n }\n\n .mdui-icon {\n color: inherit;\n }\n}\n\n.mdui-toolbar-spacer {\n flex-grow: 1;\n margin: 0;\n}\n\n// 响应式。只有在应用栏中的工具栏,才具有响应式特性,不在应用栏中,则使用手机样式\n._toolbar_responsive_mixed(@toolbar-height, @icon-width) {\n .mdui-toolbar {\n height: @toolbar-height;\n line-height: @toolbar-height;\n\n &>.mdui-btn {\n margin: 0 (@toolbar-height - @icon-width) / 2;\n\n & + .mdui-btn {\n margin-left: 0;\n }\n }\n }\n}\n\n/* 手机 */\n._toolbar_responsive_mixed(@appbar-height-xs-portrait, @appbar-icon-width);\n\n.mdui-appbar {\n // 平板和桌面\n @media (min-width: @screen-sm-min) {\n ._toolbar_responsive_mixed(@appbar-height-sm, @appbar-icon-width);\n }\n\n // 手机横屏\n @media (orientation: landscape) and (max-width: @screen-xs-max-landscape) {\n ._toolbar_responsive_mixed(@appbar-height-xs-landscape, @appbar-icon-width-xs-landscape);\n }\n}\n","/**\n * =============================================================================\n * ************ Appbar 应用栏 ************\n * =============================================================================\n */\n\n@import '../toolbar/index';\n@import '../headroom/index';\n\n.mdui-appbar {\n z-index: @z-index-appbar;\n .mdui-shadow(4);\n}\n\n/* appbar 固定在顶部 */\n.mdui-appbar-fixed {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n transition-timing-function: @animation-curve-linear-out-slow-in;\n transition-duration: 0.3s;\n transition-property: left, right;\n will-change: left, right;\n}\n\n/* 左侧留出抽屉栏的距离 */\n.mdui-appbar-inset.mdui-appbar-fixed {\n .mdui-drawer-body-left & {\n @media (min-width: @screen-md-min) {\n left: @drawer-width-md;\n }\n }\n\n .mdui-drawer-body-right & {\n @media (min-width: @screen-md-min) {\n right: @drawer-width-md;\n }\n }\n}\n\n/* 含工具栏 */\n.mdui-appbar-with-toolbar {\n padding-top: @appbar-height-xs-portrait;\n\n // 平板和桌面\n @media (min-width: @screen-sm-min) {\n padding-top: @appbar-height-sm;\n }\n\n // 手机横屏\n @media (orientation: landscape) and (max-width: @screen-xs-max-landscape) {\n padding-top: @appbar-height-xs-landscape;\n }\n}\n\n/* 含 Tab */\n.mdui-appbar-with-tab {\n padding-top: 48px;\n}\n\n/* 含大 Tab */\n.mdui-appbar-with-tab-larger {\n padding-top: 72px;\n}\n\n/* 含工具栏和 Tab */\n.mdui-appbar-with-toolbar.mdui-appbar-with-tab {\n padding-top: @appbar-height-xs-portrait + 48px;\n\n // 平板和桌面\n @media (min-width: @screen-sm-min) {\n padding-top: @appbar-height-sm + 48px;\n }\n\n // 手机横屏\n @media (orientation: landscape) and (max-width: @screen-xs-max-landscape) {\n padding-top: @appbar-height-xs-landscape + 48px;\n }\n}\n\n/* 含工具栏和大 Tab */\n.mdui-appbar-with-toolbar.mdui-appbar-with-tab-larger {\n padding-top: @appbar-height-xs-portrait + 72px;\n\n // 平板和桌面\n @media (min-width: @screen-sm-min) {\n padding-top: @appbar-height-sm + 72px;\n }\n\n // 手机横屏\n @media (orientation: landscape) and (max-width: @screen-xs-max-landscape) {\n padding-top: @appbar-height-xs-landscape + 72px;\n }\n}\n\n\n/**\n * =============================================================================\n * ************ Appbar dark ************\n * =============================================================================\n */\n.layout-theme({\n .mdui-appbar {\n &>[class*=\"mdui-color-\"]:not(.mdui-color-transparent) {\n color: #fff !important;\n background-color: @layout-dark-color-2 !important;\n }\n }\n});\n","/**\n * =============================================================================\n * ************ Card 卡片 ************\n * =============================================================================\n */\n\n/* 卡片 */\n.mdui-card {\n position: relative;\n box-sizing: border-box;\n overflow: hidden;\n color: #000;\n background-color: #fff;\n border-radius: 2px;\n .mdui-shadow(2);\n}\n\n/**\n * ===================== 头部,包含头像、标题、副标题\n */\n.mdui-card-header {\n position: relative;\n box-sizing: border-box;\n height: 72px;\n padding: 16px;\n}\n\n/* 卡片头部头像 */\n.mdui-card-header-avatar {\n float: left;\n width: 40px;\n height: 40px;\n border-radius: 50%;\n}\n\n/* 卡片头部标题 */\n.mdui-card-header-title {\n display: block;\n margin-left: 52px;\n font-weight: 500;\n font-size: 16px;\n line-height: 20px;\n opacity: @opacity-black-text;\n .mdui-text-truncate();\n}\n\n/* 卡片头部副标题 */\n.mdui-card-header-subtitle {\n display: block;\n margin-left: 52px;\n font-weight: 400;\n font-size: 14px;\n line-height: 20px;\n opacity: @opacity-black-secondary;\n .mdui-text-truncate();\n}\n\n/**\n * =========================== 主标题区域\n */\n.mdui-card-primary {\n position: relative;\n padding: 24px 16px 16px 16px;\n}\n\n/* 主标题区域标题 */\n.mdui-card-primary-title {\n display: block;\n font-size: 24px;\n line-height: 36px;\n opacity: @opacity-black-text;\n}\n\n/* 主标题区域副标题 */\n.mdui-card-primary-subtitle {\n display: block;\n font-size: 14px;\n line-height: 24px;\n opacity: @opacity-black-secondary;\n}\n\n/**\n * ============================ 内容区域\n */\n.mdui-card-content {\n position: relative;\n padding: 16px;\n font-size: 14px;\n line-height: 24px;\n}\n\n/**\n * ============================ 卡片菜单\n */\n.mdui-card-menu {\n position: absolute;\n top: 16px;\n right: 16px;\n z-index: 1;\n\n .mdui-btn {\n margin-left: 8px;\n }\n}\n\n/**\n * =========================== 按钮区域\n */\n.mdui-card-actions {\n .mdui-clearfix();\n\n position: relative;\n box-sizing: border-box;\n padding: 8px;\n\n .mdui-btn {\n max-width: 100%;\n margin: 0 8px 0 0;\n .mdui-text-truncate();\n }\n\n .mdui-btn-icon {\n width: @button-height;\n height: @button-height;\n margin: 0 8px;\n }\n}\n\n/* 使按钮竖向排列 */\n.mdui-card-actions-stacked {\n .mdui-btn {\n display: block;\n margin: 0 0 4px 0;\n &:last-child {\n margin: 0;\n }\n }\n}\n\n/**\n * ============================= 媒体元素区域\n */\n.mdui-card-media {\n position: relative;\n img, video {\n display: block;\n width: 100%;\n }\n}\n\n/* 覆盖在媒体元素上的内容 */\n.mdui-card-media-covered {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n color: #fff;\n background: rgba(0, 0, 0, 0.2);\n\n /* 覆盖在媒体元素上的标题 */\n .mdui-card-primary-title {\n opacity: @opacity-white-text;\n }\n .mdui-card-primary-subtitle {\n opacity: @opacity-white-secondary;\n }\n}\n\n/* 覆盖在媒体元素顶部 */\n.mdui-card-media-covered-top {\n top: 0;\n bottom: auto;\n}\n\n/* 覆盖层透明 */\n.mdui-card-media-covered-transparent {\n background: transparent;\n}\n\n/* 覆盖层渐变 */\n.mdui-card-media-covered-gradient {\n background: linear-gradient(to top, rgba(0, 0, 0, 0.26), rgba(0, 0, 0, 0));\n\n &.mdui-card-media-covered-top {\n background: linear-gradient(to bottom, rgba(0, 0, 0, 0.26), rgba(0, 0, 0, 0));\n }\n}\n\n\n/**\n * =============================================================================\n * ************ Card dark ************\n * =============================================================================\n */\n.layout-theme({\n .mdui-card {\n color: #fff;\n background-color: @layout-dark-color-4;\n }\n});\n","/**\n * =============================================================================\n * ************ Tab ************\n * =============================================================================\n *\n * 在手机上选项卡始终平分或可滚动,在平板以上的设备上默认左对齐,可以选择居中对齐,或全宽等分\n */\n\n/* 选项卡,默认的选项卡为全宽 */\n.mdui-tab {\n position: relative;\n display: flex;\n min-height: 48px;\n max-height: 72px;\n margin: 0 auto;\n padding: 0;\n overflow-x: auto;\n overflow-y: hidden;\n white-space: nowrap;\n -webkit-overflow-scrolling: touch;\n\n a {\n display: flex;\n // 手机上始终等分选项卡\n flex: 1;\n\n // 使图标和文本垂直排列\n flex-direction: column;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n min-width: 72px;\n min-height: 48px;\n max-height: 72px;\n padding: 12px;\n overflow: hidden;\n color: inherit;\n font-size: 14px;\n text-align: center;\n text-transform: uppercase;\n text-decoration: none;\n text-overflow: ellipsis;\n outline: none;\n cursor: pointer;\n opacity: 0.7;\n user-select: none;\n\n .mdui-icon {\n opacity: 0.7;\n }\n\n // 平板或以上设备\n @media (min-width: @screen-sm-min) {\n\n // 平板/pc上选项卡左对齐\n flex: none;\n min-width: 99px;\n max-width: 264px;\n\n // 手机上 padding 12px,平板/pc上 padding 24px\n padding: 12px 24px;\n }\n\n @media (min-width: @screen-md-min) {\n min-width: 112px;\n }\n\n @media (min-width: @screen-lg-min) {\n min-width: 136px;\n }\n\n @media (min-width: @screen-xl-min) {\n min-width: 160px;\n }\n\n label {\n display: block;\n width: 100%;\n cursor: pointer;\n }\n\n .mdui-icon + label {\n margin-top: 8px;\n }\n\n &[disabled] {\n cursor: default;\n opacity: 0.38;\n\n label {\n cursor: default;\n }\n }\n }\n\n // 激活状态的选项\n .mdui-tab-active {\n color: @color-default-500;\n opacity: 1;\n .mdui-icon {\n opacity: 1;\n }\n }\n}\n\n/* 选项卡居中 */\n.mdui-tab-centered {\n @media (min-width: @screen-sm-min) {\n &::before {\n flex-grow: 1;\n content: ' ';\n }\n &::after {\n flex-grow: 1;\n content: ' ';\n }\n a {\n flex: none;\n }\n }\n}\n\n/* 选项卡始终全宽等分 */\n.mdui-tab-full-width {\n a {\n flex: 1;\n max-width: none;\n }\n}\n\n\n/* 可横向滚动的选项卡 */\n.mdui-tab-scrollable {\n padding-left: 56px;\n\n a {\n flex: none;\n }\n\n @media (max-width: @screen-xs-max) {\n padding-left: 60px;\n }\n\n}\n\n/* 下划线指示器 */\n.mdui-tab-indicator {\n position: absolute;\n bottom: 0;\n height: 2px;\n background-color: @color-default-500;\n transition: all .35s @animation-curve-default;\n will-change: left, width;\n}\n\n/**\n * =============================================================================\n * ************ Tab 主色 ************\n * =============================================================================\n */\n\n& {\n .loop-primary-theme(@counter-color) when (@counter-color > 0) {\n .loop-primary-theme((@counter-color - 1));\n @colorName: extract(@globalPrimaryColors, @counter-color);\n @color: 'color-@{colorName}-500';\n\n .mdui-theme-primary-@{colorName} when not (@colorName = null) {\n .mdui-tab .mdui-tab-active {\n color: @@color;\n }\n\n .mdui-tab-indicator {\n background-color: @@color;\n }\n }\n\n }\n .loop-primary-theme(length(@globalPrimaryColors));\n}\n\n/* 带背景色的选项卡 */\n.mdui-tab[class*=\"mdui-color-\"]:not(.mdui-color-white) {\n .mdui-tab-active {\n color: inherit;\n }\n .mdui-tab-indicator {\n background-color: @color-white-500;\n }\n\n // 带背景色的选项卡中使用浅色滚动条\n & {\n .mdui-scrollbar-beautify(dark);\n }\n}\n","/**\n * =============================================================================\n * ************ Subheader 副标题 ************\n * =============================================================================\n *\n * 用于 List 和 Grid list 组件\n */\n\n.mdui-subheader,\n.mdui-subheader-inset {\n position: relative;\n box-sizing: border-box;\n height: 48px;\n padding-right: 16px;\n padding-left: 16px;\n color: @color-black-secondary;\n font-weight: 500;\n font-size: 14px;\n line-height: 48px;\n cursor: default;\n .mdui-text-truncate();\n}\n\n.mdui-subheader-inset {\n padding-left: 72px;\n}\n\n/**\n * =============================================================================\n * ************ Subheader dark ************\n * =============================================================================\n */\n.layout-theme({\n .mdui-subheader,\n .mdui-subheader-inset {\n color: @color-white-secondary;\n }\n});\n","/**\n * =============================================================================\n * ************ Grid List 网格列表 ************\n * =============================================================================\n */\n\n/* 调整网格边距 */\n.mdui-grid-list {\n margin: 0 -@grid-list-gutter / 2;\n\n .mdui-col,\n [class*=\"mdui-col-xs-\"],\n [class*=\"mdui-col-sm-\"],\n [class*=\"mdui-col-md-\"],\n [class*=\"mdui-col-lg-\"],\n [class*=\"mdui-col-xl-\"] {\n padding-right: @grid-list-gutter / 2;\n padding-left: @grid-list-gutter / 2;\n }\n}\n\n/* 单元格 */\n.mdui-grid-tile {\n position: relative;\n box-sizing: border-box;\n margin-bottom: @grid-list-gutter;\n overflow: hidden;\n\n img {\n display: block;\n width: 100%;\n }\n}\n\n/* 操作栏 */\n.mdui-grid-tile-actions {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n display: flex;\n align-items: center;\n box-sizing: border-box;\n min-height: 48px;\n max-height: 68px;\n padding: 16px;\n color: #fff;\n background: rgba(0, 0, 0, 0.2);\n\n .mdui-icon {\n color: #fff;\n }\n}\n\n/* 操作栏内的文本 */\n.mdui-grid-tile-text {\n flex: 1;\n overflow: hidden;\n}\n\n/* 标题 */\n.mdui-grid-tile-title {\n height: 16px;\n font-size: 16px;\n line-height: 16px;\n .mdui-text-truncate();\n\n .mdui-icon {\n margin-right: 8px;\n }\n}\n\n/* 副标题 */\n.mdui-grid-tile-subtitle {\n height: 18px;\n margin-top: 4px;\n font-size: 12px;\n line-height: 18px;\n .mdui-text-truncate();\n\n .mdui-icon {\n margin-right: 8px;\n font-size: 18px;\n }\n}\n\n/* 操作栏内的按钮 */\n.mdui-grid-tile-buttons {\n flex: none;\n margin: -8px;\n white-space: nowrap;\n\n .mdui-btn {\n margin-left: 8px;\n &:first-child {\n margin-left: 0;\n }\n }\n}\n\n.mdui-grid-tile-text + .mdui-grid-tile-buttons {\n margin-left: 8px;\n}\n.mdui-grid-tile-buttons + .mdui-grid-tile-text {\n margin-left: 16px;\n}\n\n/* 操作栏位于顶部 */\n.mdui-grid-tile-actions-top {\n top: 0;\n bottom: auto;\n}\n\n/* 操作栏背景透明 */\n.mdui-grid-tile-actions-transparent {\n background: transparent;\n}\n\n/* 操作栏背景渐变 */\n.mdui-grid-tile-actions-gradient {\n background: linear-gradient(to top, rgba(0, 0, 0, 0.26), rgba(0, 0, 0, 0));\n\n &.mdui-grid-tile-actions-top {\n background: linear-gradient(to bottom, rgba(0, 0, 0, 0.26), rgba(0, 0, 0, 0));\n }\n}","/**\n * =============================================================================\n * ************ List 列表 ************\n * =============================================================================\n */\n\n/* 列表 */\n.mdui-list {\n margin: 0;\n padding: 8px 0;\n list-style: none;\n background-color: transparent;\n\n // 子列表没有上下间距\n .mdui-list {\n padding: 0;\n }\n\n // 分割线上下边距\n &>.mdui-divider,\n &>.mdui-divider-light,\n &>.mdui-divider-dark,\n &>.mdui-divider-inset,\n &>.mdui-divider-inset-light,\n &>.mdui-divider-inset-dark {\n margin-top: 8px;\n margin-bottom: 8px;\n }\n\n a {\n color: inherit;\n text-decoration: none;\n }\n\n // 使用副标题时自动添加分割线\n .mdui-subheader,\n .mdui-subheader-inset {\n &::before {\n position: absolute;\n right: 0;\n left: 0;\n display: block;\n height: 1px;\n background-color: @color-black-divider;\n content: ' ';\n }\n\n margin-top: 8px;\n\n &:first-child {\n &::before {\n background-color: transparent;\n }\n\n // 第一个副标题把列表的 padding-top 抵消掉\n margin-top: -8px;\n }\n }\n .mdui-subheader-inset {\n &::before {\n left: 72px;\n }\n }\n}\n\n/* 列表项 */\n.mdui-list-item {\n display: flex;\n align-items: center;\n box-sizing: border-box;\n min-height: 48px;\n padding: 0 16px;\n text-decoration: none;\n cursor: pointer;\n transition: background-color .3s @animation-curve-default;\n\n &:hover {\n background-color: @color-hover-black;\n }\n\n // http://stackoverflow.com/a/31915203\n &::after {\n height: 48px;\n visibility: hidden;\n content: ' ';\n }\n}\n\n/* 列表项图标 */\n.mdui-list-item-icon {\n width: 24px;\n min-width: 24px;\n height: 24px;\n color: @color-black-icon;\n}\n\n/* 列表项头像 */\n.mdui-list-item-avatar {\n min-width: 40px;\n max-width: 40px;\n height: 40px;\n margin-top: 8px;\n margin-bottom: 8px;\n color: @color-white;\n line-height: 40px;\n text-align: center;\n background-color: @color-grey-400;\n border-radius: 50%;\n img {\n width: 100%;\n height: 100%;\n border-radius: 50%;\n }\n}\n\n/* 列表项内容 */\n.mdui-list-item-content {\n flex-grow: 1;\n padding-top: 14px;\n padding-bottom: 14px;\n font-weight: 400;\n font-size: 16px;\n line-height: 20px;\n}\n\n/* 列表项内容的副内容 */\n.mdui-list-item-text {\n font-size: 14px;\n opacity: @opacity-black-secondary;\n}\n.mdui-list-item-title {\n ~ .mdui-list-item-text {\n margin-top: 4px;\n }\n}\n\n/* 激活状态的列表项 */\n.mdui-list-item-active {\n font-weight: 700;\n background-color: @color-hover-black;\n\n .mdui-list-item-content {\n font-weight: 700;\n }\n .mdui-list-item-text {\n font-weight: 400;\n }\n}\n\n/* 限制文本高度 */\n.mdui-list-item-one-line,\n.mdui-list-item-two-line,\n.mdui-list-item-three-line {\n display: -webkit-box;\n overflow: hidden;\n text-overflow: ellipsis;\n -webkit-box-orient: vertical;\n}\n.mdui-list-item-one-line {\n -webkit-line-clamp: 1;\n height: 20px;\n}\n.mdui-list-item-two-line {\n -webkit-line-clamp: 2;\n height: 40px;\n}\n.mdui-list-item-three-line {\n -webkit-line-clamp: 3;\n height: 60px;\n}\n\n/* 列表项内的元素间添加间距 */\n.mdui-list-item-icon {\n ~ .mdui-list-item-content {\n margin-left: 32px;\n }\n}\n.mdui-checkbox,\n.mdui-radio,\n.mdui-switch {\n ~ .mdui-list-item-content {\n margin-left: 20px;\n }\n}\n\n\n.mdui-list-item-avatar {\n ~ .mdui-list-item-content {\n margin-left: 16px;\n }\n}\n.mdui-list-item-content {\n ~ .mdui-list-item-icon,\n ~ .mdui-list-item-avatar,\n ~ .mdui-checkbox,\n ~ .mdui-radio,\n ~ .mdui-switch {\n margin-left: 16px;\n }\n\n ~ .mdui-checkbox,\n ~ .mdui-radio {\n padding-left: 24px;\n }\n}\n\n/* 密集型列表 */\n.mdui-list-dense {\n padding: 4px 0;\n font-size: 13px;\n\n &>.mdui-divider,\n &>.mdui-divider-light,\n &>.mdui-divider-dark,\n &>.mdui-divider-inset,\n &>.mdui-divider-inset-light,\n &>.mdui-divider-inset-dark {\n margin-top: 4px;\n margin-bottom: 4px;\n }\n\n // 副标题\n .mdui-subheader,\n .mdui-subheader-inset {\n height: 40px;\n margin-top: 4px;\n font-size: 12px;\n line-height: 40px;\n\n &:first-child {\n margin-top: -4px;\n }\n }\n\n // 密集型列表项\n .mdui-list-item {\n min-height: 40px;\n\n &::after {\n height: 40px;\n }\n }\n\n // 图标\n .mdui-list-item-icon {\n width: 20px;\n height: 20px;\n font-size: 20px;\n }\n\n // 头像\n .mdui-list-item-avatar {\n width: 36px;\n min-width: 36px;\n height: 36px;\n min-height: 36px;\n }\n\n // 列表项内容\n .mdui-list-item-content {\n padding-top: 11px;\n padding-bottom: 11px;\n font-size: 13px;\n line-height: 18px;\n }\n .mdui-list-item-text {\n font-size: 13px;\n }\n .mdui-list-item-title {\n ~ .mdui-list-item-text {\n margin-top: 2px;\n }\n }\n\n // 限制文本高度\n .mdui-list-item-one-line {\n height: 18px;\n }\n .mdui-list-item-two-line {\n height: 36px;\n }\n .mdui-list-item-three-line {\n height: 54px;\n }\n}\n\n\n/**\n * =============================================================================\n * ************ List dark ************\n * =============================================================================\n */\n.layout-theme({\n .mdui-list {\n // 副标题的分割线\n .mdui-subheader,\n .mdui-subheader-inset {\n &::before {\n background-color: @color-white-divider;\n }\n\n &:first-child {\n &::before {\n background-color: transparent;\n }\n }\n }\n }\n\n // 列表项\n .mdui-list-item {\n color: @color-white-text;\n\n &:hover {\n background-color: @color-hover-white;\n }\n }\n\n // 列表项图标\n .mdui-list-item-icon {\n color: @color-white-icon;\n }\n\n // 列表内容副内容\n .mdui-list-item-text {\n opacity: @opacity-white-secondary;\n }\n\n // 激活状态的列表项\n .mdui-list-item-active {\n background-color: @color-hover-white;\n }\n});\n\n/**\n * ==============================================================================\n * ************ List inner theme ************\n * ==============================================================================\n */\n[class*=\"mdui-color-\"] {\n .mdui-list-item {\n color: inherit;\n }\n .mdui-list-item-icon {\n color: inherit;\n }\n}\n","/**\n * =============================================================================\n * ************ Drawer 抽屉栏导航 ************\n * =============================================================================\n */\n\n/* DOM 加载完后再添加 transition */\nbody.mdui-loaded {\n transition: padding .3s @animation-curve-linear-out-slow-in;\n}\nbody.mdui-loaded .mdui-drawer {\n transition: all .3s @animation-curve-linear-out-slow-in;\n}\n\n/* 抽屉栏外层,默认出现在左侧且隐藏 */\n.mdui-drawer {\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n z-index: @z-index-drawer;\n box-sizing: border-box;\n\n // 手机端宽度为 100% - 56px,最大为 280px\n /* stylelint-disable-next-line */\n width: calc(~\"100% - 56px\");\n max-width: @drawer-width-xs;\n margin: 0;\n overflow-x: hidden;\n overflow-y: auto;\n white-space: nowrap;\n will-change: transform;\n -webkit-overflow-scrolling: touch;\n\n // 隐藏时不显示阴影\n @media (max-width: @screen-sm-max) {\n &:not(.mdui-drawer-open) {\n box-shadow: none !important;\n }\n }\n\n // 平板端宽度为 100% - 64px,最大为 320px\n @media (min-width: @screen-sm-min) {\n /* stylelint-disable-next-line */\n width: calc(~\"100% - 64px\");\n max-width: @drawer-width-sm;\n }\n\n // 桌面端宽度\n @media (min-width: @screen-md-min) {\n width: @drawer-width-md;\n max-width: none;\n\n // 隐藏时不显示阴影\n &.mdui-drawer-close {\n box-shadow: none !important;\n }\n }\n}\n\n/* 出现在右侧的抽屉栏 */\n.mdui-drawer-right {\n right: 0;\n left: auto;\n}\n\n/* 平板上的样式 */\n@media (max-width: @screen-sm-max) {\n .mdui-drawer {\n /* 始终有背景和阴影 */\n background-color: #fff;\n\n /* 默认隐藏 */\n transform: translateX(-@drawer-width-sm - 10);\n .mdui-shadow(16);\n }\n\n .mdui-drawer-right {\n /* 右侧 drawer 也默认隐藏 */\n transform: translateX(@drawer-width-sm + 10);\n }\n}\n\n/* 手机上的样式 */\n@media (max-width: @screen-xs-max) {\n .mdui-drawer {\n transform: translateX(-@drawer-width-xs - 10);\n }\n\n .mdui-drawer-right {\n transform: translateX(@drawer-width-xs + 10);\n }\n}\n\n/* 强制隐藏抽屉栏 */\n._drawer_close(@drawer-width) {\n .mdui-drawer-close {\n transform: translateX(-@drawer-width - 10);\n &.mdui-drawer-right {\n transform: translateX(@drawer-width + 10);\n }\n }\n}\n\n._drawer_close(@drawer-width-xs);\n\n@media (min-width: @screen-sm-min) {\n ._drawer_close(@drawer-width-sm);\n}\n\n@media (min-width: @screen-md-min) {\n ._drawer_close(@drawer-width-md);\n}\n\n/* 强制显示抽屉栏 */\n.mdui-drawer-open {\n transform: translateX(0) !important;\n}\n\n/* PC 上的样式 */\n@media (min-width: @screen-md-min) {\n /* 使该类所在元素获得 padding-left 或 padding-right,避免被抽屉栏覆盖住页面 */\n .mdui-drawer-body-left {\n padding-left: @drawer-width-md;\n }\n .mdui-drawer-body-right {\n padding-right: @drawer-width-md;\n }\n\n /* PC 上默认有上边距 */\n .mdui-drawer {\n .mdui-appbar-with-toolbar & {\n top: @appbar-height-sm;\n }\n\n .mdui-appbar-with-tab & {\n top: 48px;\n }\n\n .mdui-appbar-with-tab-larger & {\n top: 72px;\n }\n\n .mdui-appbar-with-toolbar.mdui-appbar-with-tab & {\n top: @appbar-height-sm + 48px;\n }\n\n .mdui-appbar-with-toolbar.mdui-appbar-with-tab-larger & {\n top: @appbar-height-sm + 72px;\n }\n }\n}\n\n/* 抽屉栏不是透明时添加阴影 */\n.mdui-drawer[class*=\"mdui-color-\"]:not(.mdui-color-transparent) {\n .mdui-shadow(16);\n}\n\n/* 抽屉栏 100% 高度,覆盖在导航栏上面 */\n.mdui-drawer-full-height {\n top: 0 !important;\n}\n\n\n/**\n * =============================================================================\n * ************ Drawer dark ************\n * =============================================================================\n */\n.layout-theme({\n // 手机平板上的样式\n @media (max-width: @screen-sm-max) {\n .mdui-drawer {\n background-color: @layout-dark-color-4;\n }\n }\n});\n","/**\n * =============================================================================\n * ************ Dialog 提示框 ************\n * =============================================================================\n */\n\n@import '../button/index';\n\n.mdui-dialog {\n position: fixed;\n right: 0;\n left: 0;\n z-index: @z-index-dialog;\n display: none;\n box-sizing: border-box;\n width: 92%;\n min-width: 180px;\n max-width: 728px;\n max-height: 90%;\n margin: auto;\n overflow: hidden;\n color: #000;\n background-color: #fff;\n border-radius: 2px;\n transform: scale(0.95);\n opacity: 0;\n transition-duration: .3s;\n transition-property: transform, opacity, visibility;\n will-change: top, opacity, transform;\n\n @media (min-width: @screen-sm-min) {\n width: 85%;\n max-height: 85%;\n }\n @media (min-width: @screen-md-min) {\n width: 80%;\n max-height: 80%;\n }\n\n .mdui-shadow(24);\n}\n\n/* 打开提示框 */\n.mdui-dialog-open {\n transform: scale(1);\n opacity: 1;\n}\n\n/* 提示框标题 */\n.mdui-dialog-title {\n box-sizing: border-box;\n font-weight: 500;\n font-size: 20px;\n line-height: 24px;\n text-align: left;\n}\n\n/* 标题固定在顶部 */\n.mdui-dialog>.mdui-dialog-title {\n padding: 24px 24px 20px 24px;\n}\n\n/* 提示框内容 */\n.mdui-dialog-content {\n box-sizing: border-box;\n padding: 24px;\n overflow-y: auto;\n color: rgba(0, 0, 0, 0.7);\n font-size: 15px;\n line-height: 1.5;\n -webkit-overflow-scrolling: touch;\n}\n\n/* 标题随内容滚动 */\n.mdui-dialog-content>.mdui-dialog-title {\n padding-bottom: 20px;\n}\n\n.mdui-dialog-title + .mdui-dialog-content {\n padding-top: 0;\n}\n\n/* 提示框底部按钮 */\n.mdui-dialog-actions {\n box-sizing: border-box;\n padding: 8px;\n text-align: right;\n .mdui-btn {\n min-width: 64px;\n margin-left: 8px;\n .mdui-text-color(@color-accent-default-name);\n &:first-child {\n margin-left: 0;\n }\n }\n}\n\n/* 底部按钮滚随内容动 */\n.mdui-dialog-content>.mdui-dialog-actions {\n margin: 0 -24px -24px -24px;\n padding-top: 32px;\n}\n\n/* 使提示框底部按钮竖排 */\n.mdui-dialog-actions-stacked {\n padding: 8px 0 8px 0;\n .mdui-btn {\n width: 100%;\n height: 48px;\n margin: 0;\n line-height: 48px !important;\n text-align: right;\n border-radius: 0;\n }\n}\n\n\n/**\n * =============================================================================\n * ************ Dialog 强调色 ************\n * =============================================================================\n */\n& {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n @colorName: extract(@globalAccentColors, @counter-color);\n\n .mdui-theme-accent-@{colorName} when not (@colorName = null) {\n .mdui-dialog-actions {\n .mdui-btn {\n .mdui-text-color(@colorName);\n }\n }\n }\n\n }\n .loop-accent-theme(length(@globalAccentColors));\n}\n\n\n/**\n * =============================================================================\n * ************ Dialog dark ************\n * =============================================================================\n */\n.layout-theme({\n .mdui-dialog {\n color: #fff;\n background-color: @layout-dark-color-4;\n }\n .mdui-dialog-content {\n color: rgba(255, 255, 255, 0.7);\n }\n});\n","/**\n * =============================================================================\n * ************ Dialog alert ************\n * =============================================================================\n */\n\n @import './index';\n\n.mdui-dialog-alert {\n max-width: 448px;\n}\n","/**\n * =============================================================================\n * ************ Dialog confirm ************\n * =============================================================================\n */\n\n @import './index';\n\n.mdui-dialog-confirm {\n max-width: 448px;\n}\n","/**\n * =============================================================================\n * ************ Dialog prompt ************\n * =============================================================================\n */\n\n@import '../textfield/index';\n@import './index';\n\n.mdui-dialog-prompt {\n max-width: 448px;\n\n .mdui-textfield {\n padding-top: 0;\n }\n}\n","/**\n * =============================================================================\n * ************ Tooltip 工具提示 ************\n * =============================================================================\n */\n\n.mdui-tooltip {\n position: absolute;\n z-index: @z-index-tooltip;\n display: inline-block;\n box-sizing: border-box;\n max-width: 180px;\n min-height: 32px;\n padding: 8px 16px;\n color: #fff;\n font-weight: 500;\n\n // 移动端样式\n font-size: 14px;\n line-height: 22px;\n text-align: left;\n background-color: rgba(red(@color-grey-700), green(@color-grey-700), blue(@color-grey-700), 0.9);\n border-radius: 2px;\n transform: scale(0);\n opacity: 0;\n transition-timing-function: @animation-curve-default;\n transition-duration: 0.15s;\n transition-property: opacity, transform;\n will-change: opacity, transform;\n\n // 桌面端样式\n @media (min-width: @screen-md-min) {\n max-width: 200px;\n min-height: 24px;\n padding: 4px 8px;\n font-size: 12px;\n line-height: 18px;\n }\n}\n\n/* 显示工具提示 */\n.mdui-tooltip-open {\n transform: scale(1);\n opacity: 1;\n}","/**\n * =============================================================================\n * ************ Snackbar ************\n * =============================================================================\n */\n\n@import '../button/index';\n\n.mdui-snackbar {\n position: fixed;\n z-index: @z-index-snackbar;\n display: flex;\n align-items: center;\n justify-content: space-between;\n box-sizing: border-box;\n\n // 手机端的样式\n width: 100%;\n min-height: 48px;\n padding: 0 24px 0 24px;\n color: #fff;\n font-size: 14px;\n line-height: 20px;\n background-color: #323232;\n will-change: transform;\n\n // 平板、桌面端样式\n @media (min-width: @screen-sm-min) {\n width: auto;\n min-width: 288px;\n max-width: 568px;\n border-radius: 2px;\n }\n}\n\n.mdui-snackbar-bottom,\n.mdui-snackbar-top,\n.mdui-snackbar-left-top,\n.mdui-snackbar-left-bottom,\n.mdui-snackbar-right-top,\n.mdui-snackbar-right-bottom {\n transition: transform .3s @animation-curve-default;\n}\n\n/* 位置 */\n.mdui-snackbar-bottom,\n.mdui-snackbar-left-bottom,\n.mdui-snackbar-right-bottom {\n bottom: 0;\n}\n\n.mdui-snackbar-top,\n.mdui-snackbar-left-top,\n.mdui-snackbar-right-top {\n top: 0;\n}\n\n.mdui-snackbar-top,\n.mdui-snackbar-bottom {\n left: 50%;\n}\n\n// 平板、桌面端位置\n@media (min-width: @screen-sm-min) {\n .mdui-snackbar-left-top {\n top: 24px;\n left: 24px;\n }\n\n .mdui-snackbar-left-bottom {\n bottom: 24px;\n left: 24px;\n }\n\n .mdui-snackbar-right-top {\n top: 24px;\n right: 24px;\n }\n\n .mdui-snackbar-right-bottom {\n right: 24px;\n bottom: 24px;\n }\n}\n\n/* 文本 */\n.mdui-snackbar-text {\n position: relative;\n max-width: 100%;\n padding: 14px 0 14px 0;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* 按钮 */\n.mdui-snackbar-action {\n margin-right: -16px;\n white-space: nowrap;\n .mdui-text-color(@color-accent-default-name, a100);\n}\n\n\n/**\n * =============================================================================\n * ************ Snackbar 强调色 ************\n * =============================================================================\n */\n& {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n @colorName: extract(@globalAccentColors, @counter-color);\n\n .mdui-theme-accent-@{colorName} when not (@colorName = null) {\n .mdui-snackbar-action {\n .mdui-text-color(@colorName, a100);\n }\n }\n\n }\n .loop-accent-theme(length(@globalAccentColors));\n}\n\n\n/**\n * =============================================================================\n * ************ Snackbar dark ************\n * =============================================================================\n */\n.layout-theme({\n .mdui-snackbar {\n background-color: #5d5d5d;\n }\n});\n","/**\n * =============================================================================\n * ************ Chip 纸片 ************\n * =============================================================================\n */\n\n@chip-height: 32px;\n\n.mdui-chip {\n display: inline-block;\n box-sizing: border-box;\n height: @chip-height;\n margin: 2px 0;\n color: inherit;\n white-space: nowrap;\n background-color: #e0e0e0;\n border-radius: @chip-height / 2;\n cursor: pointer;\n user-select: none;\n .mdui-hoverable(2);\n\n &:active {\n background-color: #d6d6d6;\n }\n}\n\n/* 左侧的图标 */\n.mdui-chip-icon {\n position: relative;\n display: inline-block;\n width: @chip-height;\n height: @chip-height;\n margin-right: -4px;\n overflow: hidden;\n color: #fff;\n font-size: 18px;\n line-height: @chip-height;\n text-align: center;\n vertical-align: middle;\n background-color: #989898;\n border-radius: 50%;\n\n .mdui-icon {\n position: absolute;\n top: 4px;\n left: 4px;\n color: #fff;\n }\n}\n\n/* 文本 */\n.mdui-chip-title {\n display: inline-block;\n height: @chip-height;\n padding-right: 12px;\n padding-left: 12px;\n font-size: 14px;\n line-height: @chip-height;\n vertical-align: middle;\n}\n\n/* 删除按钮 */\n.mdui-chip-delete {\n display: inline-block;\n width: 24px;\n height: 24px;\n margin-right: 4px;\n margin-left: -8px;\n overflow: hidden;\n text-align: center;\n text-decoration: none;\n vertical-align: middle;\n border-radius: 50%;\n cursor: pointer;\n opacity: .54;\n transition: opacity .25s @animation-curve-default;\n will-change: opacity;\n &:hover,\n &:focus {\n opacity: .87;\n }\n}\n\n\n/**\n * =============================================================================\n * ************ Chip dark ************\n * =============================================================================\n */\n.layout-theme({\n .mdui-chip {\n background-color: #484848;\n &:active {\n background-color: #5d5d5d;\n }\n }\n});\n","/**\n * =============================================================================\n * ************ Bottom navigation 底部导航栏 ************\n * =============================================================================\n */\n\n@import '../headroom/index';\n\n.mdui-bottom-nav {\n position: relative;\n display: flex;\n height: 56px;\n margin: 0 auto;\n padding: 0;\n overflow: hidden;\n white-space: nowrap;\n\n @media (min-width: @screen-sm-min) {\n &::before {\n flex-grow: 1;\n content: ' ';\n }\n &::after {\n flex-grow: 1;\n content: ' ';\n }\n }\n\n a {\n display: flex;\n flex: 1;\n\n // 使图标和文本垂直排列\n flex-direction: column;\n align-items: center;\n justify-content: center;\n min-width: 32px;\n max-width: none;\n padding: 8px 12px 10px 12px;\n overflow: hidden;\n color: inherit;\n font-size: 12px;\n text-align: center;\n text-decoration: none;\n text-overflow: ellipsis;\n cursor: pointer;\n opacity: 0.7;\n transition: all .2s @animation-curve-default ;\n user-select: none;\n will-change: padding;\n\n @media (min-width: @screen-sm-min) {\n max-width: 144px;\n }\n\n .mdui-icon {\n opacity: 0.7;\n }\n\n label {;\n display: block;\n width: 100%;\n cursor: pointer;\n transition: transform .2s @animation-curve-default ;\n will-change: font-size;\n }\n\n .mdui-icon + label {\n margin-top: 6px;\n }\n\n // 激活状态的导航项\n &.mdui-bottom-nav-active {\n color: @color-default-500;\n font-size: 14px;\n opacity: 1;\n\n .mdui-icon {\n opacity: 1;\n }\n }\n }\n}\n\n/* 只在激活时显示文本 */\n&.mdui-bottom-nav-text-auto {\n a {\n min-width: 32px;\n padding-right: 0;\n padding-left: 0;\n @media (min-width: @screen-sm-min) {\n max-width: 156px;\n }\n .mdui-icon {\n padding-top: 16px;\n transition: padding-top .2s @animation-curve-default;\n will-change: padding-top;\n }\n label {\n transform: scale(0);\n }\n\n &.mdui-bottom-nav-active {\n padding-right: 18px;\n padding-left: 18px;\n .mdui-icon {\n padding-top: 0;\n }\n label {\n transform: scale(1);\n }\n }\n }\n}\n\n/* 固定到页面底部 */\n.mdui-bottom-nav-fixed {\n .mdui-bottom-nav {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n }\n\n padding-bottom: 56px;\n}\n\n/**\n * =============================================================================\n * ************ Bottom Nav 主色 ************\n * =============================================================================\n */\n\n& {\n .loop-primary-theme(@counter-color) when (@counter-color > 0) {\n .loop-primary-theme((@counter-color - 1));\n @colorName: extract(@globalPrimaryColors, @counter-color);\n @color: 'color-@{colorName}-500';\n\n .mdui-theme-primary-@{colorName} when not (@colorName = null) {\n .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: @@color;\n }\n }\n\n }\n .loop-primary-theme(length(@globalPrimaryColors));\n}\n\n/* 带背景色的底部导航栏 */\n.mdui-bottom-nav[class*=\"mdui-color-\"] {\n .mdui-bottom-nav-active {\n color: inherit !important;\n }\n}\n","/**\n * =============================================================================\n * ************ Progress Linear 线性进度条 ************\n * =============================================================================\n */\n\n/* 线性进度条 */\n.mdui-progress {\n position: relative;\n display: block;\n width: 100%;\n height: 4px;\n overflow: hidden;\n background-color: rgba(red(@color-default-500), green(@color-default-500), blue(@color-default-500), .2);\n border-radius: 2px;\n}\n\n/* 确定进度的线性进度条 */\n.mdui-progress-determinate {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n background-color: @color-default-500;\n transition: width .3s linear;\n}\n\n/* 不确定进度的线性进度条 */\n.mdui-progress-indeterminate {\n background-color: @color-default-500;\n\n &::before {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n background-color: inherit;\n animation: mdui-progress-indeterminate 2s linear infinite;\n content: ' ';\n will-change: left, width;\n }\n\n &::after {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n background-color: inherit;\n animation: mdui-progress-indeterminate-short 2s linear infinite;\n content: ' ';\n will-change: left, width;\n }\n}\n\n@keyframes mdui-progress-indeterminate {\n 0% {\n left: 0;\n width: 0;\n }\n 50% {\n left: 30%;\n width: 70%;\n }\n 75% {\n left: 100%;\n width: 0;\n }\n}\n\n@keyframes mdui-progress-indeterminate-short {\n 0% {\n left: 0;\n width: 0;\n }\n 50% {\n left: 0;\n width: 0;\n }\n 75% {\n left: 0;\n width: 25%;\n }\n 100% {\n left: 100%;\n width: 0;\n }\n}\n\n\n/**\n * =============================================================================\n * ************ Progress linear 主色 ************\n * =============================================================================\n */\n& {\n .loop-primary-theme(@counter-color) when (@counter-color > 0) {\n .loop-primary-theme((@counter-color - 1));\n @colorName: extract(@globalPrimaryColors, @counter-color);\n @color: 'color-@{colorName}-500';\n\n .mdui-theme-primary-@{colorName} when not (@colorName = null) {\n .mdui-progress {\n background-color: rgba(red(@@color), green(@@color), blue(@@color), .2);\n }\n .mdui-progress-determinate,\n .mdui-progress-indeterminate {\n .mdui-background-color(@colorName);\n }\n }\n\n }\n .loop-primary-theme(length(@globalPrimaryColors));\n}\n","/**\n * =============================================================================\n * ************ Progress Circular 圆形进度条 ************\n * =============================================================================\n */\n\n.mdui-spinner {\n position: relative;\n display: inline-block;\n width: 28px;\n height: 28px;\n animation: mdui-spinner 1568ms linear infinite;\n}\n\n@keyframes mdui-spinner {\n to {\n transform: rotate(360deg);\n }\n}\n\n.mdui-spinner-layer {\n position: absolute;\n width: 100%;\n height: 100%;\n border-color: @color-default-500;\n opacity: 0;\n opacity: 1;\n animation: mdui-spinner-layer-fill-unfill-rotate 5332ms @animation-curve-default infinite both;\n}\n\n.mdui-spinner-layer-1 {\n border-color: @color-blue-400 !important;\n animation:\n mdui-spinner-layer-fill-unfill-rotate 5332ms @animation-curve-default infinite both,\n mdui-spinner-layer-1-fade-in-out 5332ms @animation-curve-default infinite both;\n}\n\n.mdui-spinner-layer-2 {\n border-color: @color-red-500 !important;\n animation:\n mdui-spinner-layer-fill-unfill-rotate 5332ms @animation-curve-default infinite both,\n mdui-spinner-layer-2-fade-in-out 5332ms @animation-curve-default infinite both;\n}\n\n.mdui-spinner-layer-3 {\n border-color: @color-yellow-600 !important;\n animation:\n mdui-spinner-layer-fill-unfill-rotate 5332ms @animation-curve-default infinite both,\n mdui-spinner-layer-3-fade-in-out 5332ms @animation-curve-default infinite both;\n}\n\n.mdui-spinner-layer-4 {\n border-color: @color-green-500 !important;\n animation:\n mdui-spinner-layer-fill-unfill-rotate 5332ms @animation-curve-default infinite both,\n mdui-spinner-layer-4-fade-in-out 5332ms @animation-curve-default infinite both;\n}\n\n@keyframes mdui-spinner-layer-fill-unfill-rotate {\n 12.5% { transform: rotate(135deg); }\n 25% { transform: rotate(270deg); }\n 37.5% { transform: rotate(405deg); }\n 50% { transform: rotate(540deg); }\n 62.5% { transform: rotate(675deg); }\n 75% { transform: rotate(810deg); }\n 87.5% { transform: rotate(945deg); }\n to { transform: rotate(1080deg); }\n}\n\n@keyframes mdui-spinner-layer-1-fade-in-out {\n from { opacity: 1; }\n 25% { opacity: 1; }\n 26% { opacity: 0; }\n 89% { opacity: 0; }\n 90% { opacity: 1; }\n 100% { opacity: 1; }\n}\n\n@keyframes mdui-spinner-layer-2-fade-in-out {\n from { opacity: 0; }\n 15% { opacity: 0; }\n 25% { opacity: 1; }\n 50% { opacity: 1; }\n 51% { opacity: 0; }\n}\n\n@keyframes mdui-spinner-layer-3-fade-in-out {\n from { opacity: 0; }\n 40% { opacity: 0; }\n 50% { opacity: 1; }\n 75% { opacity: 1; }\n 76% { opacity: 0; }\n}\n\n@keyframes mdui-spinner-layer-4-fade-in-out {\n from { opacity: 0; }\n 65% { opacity: 0; }\n 75% { opacity: 1; }\n 90% { opacity: 1; }\n 100% { opacity: 0; }\n}\n\n.mdui-spinner-gap-patch {\n position: absolute;\n top: 0;\n left: 45%;\n width: 10%;\n height: 100%;\n overflow: hidden;\n border-color: inherit;\n\n .mdui-spinner-circle {\n left: -450%;\n box-sizing: border-box;\n width: 1000%;\n }\n}\n\n.mdui-spinner-circle-clipper {\n position: relative;\n display: inline-block;\n width: 50%;\n height: 100%;\n overflow: hidden;\n border-color: inherit;\n\n .mdui-spinner-circle {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n box-sizing: border-box;\n width: 200%;\n height: 100%;\n border-color: inherit;\n border-style: solid;\n border-width: 3px;\n border-bottom-color: transparent !important;\n border-radius: 50%;\n animation: none;\n }\n\n &.mdui-spinner-left {\n float: left;\n\n .mdui-spinner-circle {\n left: 0;\n border-right-color: transparent !important;\n transform: rotate(129deg);\n animation: mdui-spinner-left-spin 1333ms @animation-curve-default infinite both;\n }\n }\n\n &.mdui-spinner-right {\n float: right;\n\n .mdui-spinner-circle {\n left: -100%;\n border-left-color: transparent !important;\n transform: rotate(-129deg);\n animation: mdui-spinner-right-spin 1333ms @animation-curve-default infinite both;\n }\n }\n}\n\n@keyframes mdui-spinner-left-spin {\n from { transform: rotate(130deg); }\n 50% { transform: rotate(-5deg); }\n to { transform: rotate(130deg); }\n}\n\n@keyframes mdui-spinner-right-spin {\n from { transform: rotate(-130deg); }\n 50% { transform: rotate(5deg); }\n to { transform: rotate(-130deg); }\n}\n\n\n/**\n * =============================================================================\n * ************ Spinner linear 主色 ************\n * =============================================================================\n */\n& {\n .loop-primary-theme(@counter-color) when (@counter-color > 0) {\n .loop-primary-theme((@counter-color - 1));\n @colorName: extract(@globalPrimaryColors, @counter-color);\n @color: 'color-@{colorName}-500';\n\n .mdui-theme-primary-@{colorName} when not (@colorName = null) {\n .mdui-spinner-layer {\n border-color: @@color;\n }\n }\n\n }\n .loop-primary-theme(length(@globalPrimaryColors));\n}\n","/**\n * =============================================================================\n * ************ Menu 菜单 ************\n * =============================================================================\n */\n\n// 普通菜单宽度基数\n@menu-simple-x: 56px;\n\n// 级联菜单宽度基数\n@menu-cascade-x: 64px;\n\n/* 菜单 */\n.mdui-menu {\n position: fixed;\n z-index: 99999;\n display: block;\n box-sizing: border-box;\n width: @menu-simple-x * 3;\n margin: 0;\n padding: 8px 0;\n\n // 简单菜单高度超出窗口高度时,使菜单边框和窗口保持一定距离,菜单内出现滚动条\n overflow-y: auto;\n color: @color-black-text;\n font-size: 16px;\n list-style: none;\n background-color: #fff;\n border-radius: 2px;\n transform: scale(0);\n visibility: hidden;\n opacity: 0;\n transition-timing-function: @animation-curve-linear-out-slow-in;\n transition-duration: .3s;\n transition-property: transform, opacity, visibility;\n will-change: transform, opacity, visibility;\n -webkit-overflow-scrolling: touch;\n .mdui-shadow(8);\n\n // 菜单中的分隔线,默认上下有 8px 的外边距\n .mdui-divider {\n margin-top: 8px;\n margin-bottom: 8px;\n }\n}\n\n/* 打开状态的菜单 */\n.mdui-menu-open {\n transform: scale(1);\n visibility: visible;\n opacity: 1;\n}\n\n/* 关闭中的菜单 */\n.mdui-menu-closing {\n transform: scale(1);\n visibility: visible;\n opacity: 0;\n}\n\n/* 菜单项 */\n.mdui-menu-item {\n position: relative;\n\n &>a {\n position: relative;\n display: block;\n height: 48px;\n padding: 0 16px;\n color: inherit;\n line-height: 48px;\n text-decoration: none;\n user-select: none;\n .mdui-text-truncate();\n\n &:hover {\n background-color: @color-grey-200;\n }\n }\n\n // 子菜单默认隐藏,阴影更深\n &>.mdui-menu {\n position: absolute;\n .mdui-shadow(9);\n }\n\n // 禁用的菜单条目\n &[disabled] {\n &>a {\n color: @color-black-disabled !important;\n cursor: default;\n\n &:hover {\n background-color: inherit !important;\n }\n\n .mdui-icon {\n color: @color-black-icon-disabled;\n }\n }\n }\n}\n\n/* 激活状态的菜单项 */\n.mdui-menu-item-active {\n background-color: @color-grey-200;\n}\n\n/* 菜单中的图标 */\n.mdui-menu-item-icon {\n display: inline-block;\n box-sizing: border-box;\n width: 40px;\n padding-right: 16px;\n color: @color-black-icon;\n}\n\n/* 菜单中的辅助文本或图标 */\n.mdui-menu-item-helper {\n float: right;\n}\n\n/* 有子菜单的条目的图标 */\n.mdui-menu-item-more {\n float: right;\n width: 24px;\n height: 24px;\n margin: 4px 0;\n //background-image: data-uri('image/svg+xml', './components/menu/svg/arrow_right_dark.svg');\n // https://www.zhangxinxu.com/sp/svgo/ CSS 转义\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M9.5 17.5l5-5-5-5z' opacity='.54'/%3E%3C/svg%3E\");\n}\n\n\n/* 级联菜单 */\n.mdui-menu-cascade {\n width: @menu-cascade-x * 5;\n padding: 16px 0;\n\n // 级联菜单内部不出现滚动条\n overflow: visible;\n font-size: 15px;\n\n &>.mdui-menu-item {\n &>a {\n height: 32px;\n padding: 0 24px;\n line-height: 32px;\n }\n }\n}\n\n\n/**\n * =============================================================================\n * ************ Menu dark ************\n * =============================================================================\n */\n.layout-theme({\n .mdui-menu {\n color: #fff;\n background-color: @layout-dark-color-4;\n }\n\n .mdui-menu-item {\n &>a {\n &:hover {\n background-color: @color-grey-700;\n }\n }\n\n &[disabled] {\n &>a {\n color: @color-white-disabled !important;\n\n .mdui-icon {\n color: @color-white-icon-disabled;\n }\n }\n }\n }\n\n .mdui-menu-item-active {\n background-color: @color-grey-700;\n }\n\n .mdui-menu-item-icon {\n color: @color-white-icon;\n }\n\n .mdui-menu-item-more {\n //background-image: data-uri('image/svg+xml', './components/menu/svg/arrow_right_light.svg');\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M9.5 17.5l5-5-5-5z' fill='%23FFF'/%3E%3C/svg%3E\");\n }\n});\n"]} \ No newline at end of file diff --git a/static/mdui/css/mdui.min.css b/static/mdui/css/mdui.min.css new file mode 100644 index 0000000..b845c4c --- /dev/null +++ b/static/mdui/css/mdui.min.css @@ -0,0 +1,6 @@ +/*! + * mdui 1.0.1 (https://mdui.org) + * Copyright 2016-2020 zdhxiong + * Licensed under MIT + *//*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{-webkit-box-sizing:border-box;box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}*{-webkit-tap-highlight-color:transparent}body{color:rgba(0,0,0,.87);font-size:14px;font-family:Roboto,Noto,Helvetica,Arial,sans-serif;background-color:#fff}@media (min-width:600px){body{font-size:14.5px}}@media (min-width:1024px){body{font-size:15px}}body ::-webkit-scrollbar{width:5px;height:5px;background:0 0}@media (min-width:1024px){body ::-webkit-scrollbar{width:8px;height:8px}}body ::-webkit-scrollbar-thumb{background:rgba(0,0,0,.2)}body.mdui-locked{overflow:hidden}.mdui-overlay{position:fixed;top:-5000px;right:-5000px;bottom:-5000px;left:-5000px;z-index:2000;background:rgba(0,0,0,.4);-webkit-backface-visibility:hidden;backface-visibility:hidden;visibility:hidden;opacity:0;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:opacity,visibility;transition-property:opacity,visibility;will-change:opacity}.mdui-overlay-show{visibility:visible;opacity:1}.mdui-no-transition{-webkit-transition-property:none!important;transition-property:none!important}.mdui-theme-layout-dark{color:#fff;background-color:#303030}.mdui-theme-layout-dark ::-webkit-scrollbar{width:5px;height:5px;background:0 0}@media (min-width:1024px){.mdui-theme-layout-dark ::-webkit-scrollbar{width:8px;height:8px}}.mdui-theme-layout-dark ::-webkit-scrollbar-thumb{background:rgba(255,255,255,.3)}@media (prefers-color-scheme:dark){.mdui-theme-layout-auto{color:#fff;background-color:#303030}.mdui-theme-layout-auto ::-webkit-scrollbar{width:5px;height:5px;background:0 0}.mdui-theme-layout-auto ::-webkit-scrollbar-thumb{background:rgba(255,255,255,.3)}}@media (prefers-color-scheme:dark) and (min-width:1024px){.mdui-theme-layout-auto ::-webkit-scrollbar{width:8px;height:8px}}.mdui-theme-primary-amber .mdui-color-theme{background-color:#ffc107!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-amber .mdui-color-theme-50{background-color:#fff8e1!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-amber .mdui-color-theme-100{background-color:#ffecb3!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-amber .mdui-color-theme-200{background-color:#ffe082!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-amber .mdui-color-theme-300{background-color:#ffd54f!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-amber .mdui-color-theme-400{background-color:#ffca28!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-amber .mdui-color-theme-500{background-color:#ffc107!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-amber .mdui-color-theme-600{background-color:#ffb300!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-amber .mdui-color-theme-700{background-color:#ffa000!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-amber .mdui-color-theme-800{background-color:#ff8f00!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-amber .mdui-color-theme-900{background-color:#ff6f00!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-blue .mdui-color-theme{background-color:#2196f3!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-blue .mdui-color-theme-50{background-color:#e3f2fd!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-blue .mdui-color-theme-100{background-color:#bbdefb!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-blue .mdui-color-theme-200{background-color:#90caf9!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-blue .mdui-color-theme-300{background-color:#64b5f6!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-blue .mdui-color-theme-400{background-color:#42a5f5!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-blue .mdui-color-theme-500{background-color:#2196f3!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-blue .mdui-color-theme-600{background-color:#1e88e5!important;color:#fff!important}.mdui-theme-primary-blue .mdui-color-theme-700{background-color:#1976d2!important;color:#fff!important}.mdui-theme-primary-blue .mdui-color-theme-800{background-color:#1565c0!important;color:#fff!important}.mdui-theme-primary-blue .mdui-color-theme-900{background-color:#0d47a1!important;color:#fff!important}.mdui-theme-primary-blue-grey .mdui-color-theme{background-color:#607d8b!important;color:#fff!important}.mdui-theme-primary-blue-grey .mdui-color-theme-50{background-color:#eceff1!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-blue-grey .mdui-color-theme-100{background-color:#cfd8dc!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-blue-grey .mdui-color-theme-200{background-color:#b0bec5!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-blue-grey .mdui-color-theme-300{background-color:#90a4ae!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-blue-grey .mdui-color-theme-400{background-color:#78909c!important;color:#fff!important}.mdui-theme-primary-blue-grey .mdui-color-theme-500{background-color:#607d8b!important;color:#fff!important}.mdui-theme-primary-blue-grey .mdui-color-theme-600{background-color:#546e7a!important;color:#fff!important}.mdui-theme-primary-blue-grey .mdui-color-theme-700{background-color:#455a64!important;color:#fff!important}.mdui-theme-primary-blue-grey .mdui-color-theme-800{background-color:#37474f!important;color:#fff!important}.mdui-theme-primary-blue-grey .mdui-color-theme-900{background-color:#263238!important;color:#fff!important}.mdui-theme-primary-brown .mdui-color-theme{background-color:#795548!important;color:#fff!important}.mdui-theme-primary-brown .mdui-color-theme-50{background-color:#efebe9!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-brown .mdui-color-theme-100{background-color:#d7ccc8!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-brown .mdui-color-theme-200{background-color:#bcaaa4!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-brown .mdui-color-theme-300{background-color:#a1887f!important;color:#fff!important}.mdui-theme-primary-brown .mdui-color-theme-400{background-color:#8d6e63!important;color:#fff!important}.mdui-theme-primary-brown .mdui-color-theme-500{background-color:#795548!important;color:#fff!important}.mdui-theme-primary-brown .mdui-color-theme-600{background-color:#6d4c41!important;color:#fff!important}.mdui-theme-primary-brown .mdui-color-theme-700{background-color:#5d4037!important;color:#fff!important}.mdui-theme-primary-brown .mdui-color-theme-800{background-color:#4e342e!important;color:#fff!important}.mdui-theme-primary-brown .mdui-color-theme-900{background-color:#3e2723!important;color:#fff!important}.mdui-theme-primary-cyan .mdui-color-theme{background-color:#00bcd4!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-cyan .mdui-color-theme-50{background-color:#e0f7fa!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-cyan .mdui-color-theme-100{background-color:#b2ebf2!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-cyan .mdui-color-theme-200{background-color:#80deea!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-cyan .mdui-color-theme-300{background-color:#4dd0e1!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-cyan .mdui-color-theme-400{background-color:#26c6da!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-cyan .mdui-color-theme-500{background-color:#00bcd4!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-cyan .mdui-color-theme-600{background-color:#00acc1!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-cyan .mdui-color-theme-700{background-color:#0097a7!important;color:#fff!important}.mdui-theme-primary-cyan .mdui-color-theme-800{background-color:#00838f!important;color:#fff!important}.mdui-theme-primary-cyan .mdui-color-theme-900{background-color:#006064!important;color:#fff!important}.mdui-theme-primary-deep-orange .mdui-color-theme{background-color:#ff5722!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-deep-orange .mdui-color-theme-50{background-color:#fbe9e7!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-deep-orange .mdui-color-theme-100{background-color:#ffccbc!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-deep-orange .mdui-color-theme-200{background-color:#ffab91!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-deep-orange .mdui-color-theme-300{background-color:#ff8a65!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-deep-orange .mdui-color-theme-400{background-color:#ff7043!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-deep-orange .mdui-color-theme-500{background-color:#ff5722!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-deep-orange .mdui-color-theme-600{background-color:#f4511e!important;color:#fff!important}.mdui-theme-primary-deep-orange .mdui-color-theme-700{background-color:#e64a19!important;color:#fff!important}.mdui-theme-primary-deep-orange .mdui-color-theme-800{background-color:#d84315!important;color:#fff!important}.mdui-theme-primary-deep-orange .mdui-color-theme-900{background-color:#bf360c!important;color:#fff!important}.mdui-theme-primary-deep-purple .mdui-color-theme{background-color:#673ab7!important;color:#fff!important}.mdui-theme-primary-deep-purple .mdui-color-theme-50{background-color:#ede7f6!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-deep-purple .mdui-color-theme-100{background-color:#d1c4e9!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-deep-purple .mdui-color-theme-200{background-color:#b39ddb!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-deep-purple .mdui-color-theme-300{background-color:#9575cd!important;color:#fff!important}.mdui-theme-primary-deep-purple .mdui-color-theme-400{background-color:#7e57c2!important;color:#fff!important}.mdui-theme-primary-deep-purple .mdui-color-theme-500{background-color:#673ab7!important;color:#fff!important}.mdui-theme-primary-deep-purple .mdui-color-theme-600{background-color:#5e35b1!important;color:#fff!important}.mdui-theme-primary-deep-purple .mdui-color-theme-700{background-color:#512da8!important;color:#fff!important}.mdui-theme-primary-deep-purple .mdui-color-theme-800{background-color:#4527a0!important;color:#fff!important}.mdui-theme-primary-deep-purple .mdui-color-theme-900{background-color:#311b92!important;color:#fff!important}.mdui-theme-primary-green .mdui-color-theme{background-color:#4caf50!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-green .mdui-color-theme-50{background-color:#e8f5e9!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-green .mdui-color-theme-100{background-color:#c8e6c9!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-green .mdui-color-theme-200{background-color:#a5d6a7!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-green .mdui-color-theme-300{background-color:#81c784!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-green .mdui-color-theme-400{background-color:#66bb6a!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-green .mdui-color-theme-500{background-color:#4caf50!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-green .mdui-color-theme-600{background-color:#43a047!important;color:#fff!important}.mdui-theme-primary-green .mdui-color-theme-700{background-color:#388e3c!important;color:#fff!important}.mdui-theme-primary-green .mdui-color-theme-800{background-color:#2e7d32!important;color:#fff!important}.mdui-theme-primary-green .mdui-color-theme-900{background-color:#1b5e20!important;color:#fff!important}.mdui-theme-primary-grey .mdui-color-theme{background-color:#9e9e9e!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-grey .mdui-color-theme-50{background-color:#fafafa!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-grey .mdui-color-theme-100{background-color:#f5f5f5!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-grey .mdui-color-theme-200{background-color:#eee!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-grey .mdui-color-theme-300{background-color:#e0e0e0!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-grey .mdui-color-theme-400{background-color:#bdbdbd!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-grey .mdui-color-theme-500{background-color:#9e9e9e!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-grey .mdui-color-theme-600{background-color:#757575!important;color:#fff!important}.mdui-theme-primary-grey .mdui-color-theme-700{background-color:#616161!important;color:#fff!important}.mdui-theme-primary-grey .mdui-color-theme-800{background-color:#424242!important;color:#fff!important}.mdui-theme-primary-grey .mdui-color-theme-900{background-color:#212121!important;color:#fff!important}.mdui-theme-primary-indigo .mdui-color-theme{background-color:#3f51b5!important;color:#fff!important}.mdui-theme-primary-indigo .mdui-color-theme-50{background-color:#e8eaf6!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-indigo .mdui-color-theme-100{background-color:#c5cae9!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-indigo .mdui-color-theme-200{background-color:#9fa8da!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-indigo .mdui-color-theme-300{background-color:#7986cb!important;color:#fff!important}.mdui-theme-primary-indigo .mdui-color-theme-400{background-color:#5c6bc0!important;color:#fff!important}.mdui-theme-primary-indigo .mdui-color-theme-500{background-color:#3f51b5!important;color:#fff!important}.mdui-theme-primary-indigo .mdui-color-theme-600{background-color:#3949ab!important;color:#fff!important}.mdui-theme-primary-indigo .mdui-color-theme-700{background-color:#303f9f!important;color:#fff!important}.mdui-theme-primary-indigo .mdui-color-theme-800{background-color:#283593!important;color:#fff!important}.mdui-theme-primary-indigo .mdui-color-theme-900{background-color:#1a237e!important;color:#fff!important}.mdui-theme-primary-light-blue .mdui-color-theme{background-color:#03a9f4!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-light-blue .mdui-color-theme-50{background-color:#e1f5fe!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-light-blue .mdui-color-theme-100{background-color:#b3e5fc!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-light-blue .mdui-color-theme-200{background-color:#81d4fa!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-light-blue .mdui-color-theme-300{background-color:#4fc3f7!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-light-blue .mdui-color-theme-400{background-color:#29b6f6!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-light-blue .mdui-color-theme-500{background-color:#03a9f4!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-light-blue .mdui-color-theme-600{background-color:#039be5!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-light-blue .mdui-color-theme-700{background-color:#0288d1!important;color:#fff!important}.mdui-theme-primary-light-blue .mdui-color-theme-800{background-color:#0277bd!important;color:#fff!important}.mdui-theme-primary-light-blue .mdui-color-theme-900{background-color:#01579b!important;color:#fff!important}.mdui-theme-primary-light-green .mdui-color-theme{background-color:#8bc34a!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-light-green .mdui-color-theme-50{background-color:#f1f8e9!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-light-green .mdui-color-theme-100{background-color:#dcedc8!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-light-green .mdui-color-theme-200{background-color:#c5e1a5!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-light-green .mdui-color-theme-300{background-color:#aed581!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-light-green .mdui-color-theme-400{background-color:#9ccc65!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-light-green .mdui-color-theme-500{background-color:#8bc34a!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-light-green .mdui-color-theme-600{background-color:#7cb342!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-light-green .mdui-color-theme-700{background-color:#689f38!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-light-green .mdui-color-theme-800{background-color:#558b2f!important;color:#fff!important}.mdui-theme-primary-light-green .mdui-color-theme-900{background-color:#33691e!important;color:#fff!important}.mdui-theme-primary-lime .mdui-color-theme{background-color:#cddc39!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-lime .mdui-color-theme-50{background-color:#f9fbe7!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-lime .mdui-color-theme-100{background-color:#f0f4c3!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-lime .mdui-color-theme-200{background-color:#e6ee9c!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-lime .mdui-color-theme-300{background-color:#dce775!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-lime .mdui-color-theme-400{background-color:#d4e157!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-lime .mdui-color-theme-500{background-color:#cddc39!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-lime .mdui-color-theme-600{background-color:#c0ca33!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-lime .mdui-color-theme-700{background-color:#afb42b!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-lime .mdui-color-theme-800{background-color:#9e9d24!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-lime .mdui-color-theme-900{background-color:#827717!important;color:#fff!important}.mdui-theme-primary-orange .mdui-color-theme{background-color:#ff9800!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-orange .mdui-color-theme-50{background-color:#fff3e0!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-orange .mdui-color-theme-100{background-color:#ffe0b2!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-orange .mdui-color-theme-200{background-color:#ffcc80!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-orange .mdui-color-theme-300{background-color:#ffb74d!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-orange .mdui-color-theme-400{background-color:#ffa726!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-orange .mdui-color-theme-500{background-color:#ff9800!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-orange .mdui-color-theme-600{background-color:#fb8c00!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-orange .mdui-color-theme-700{background-color:#f57c00!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-orange .mdui-color-theme-800{background-color:#ef6c00!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-orange .mdui-color-theme-900{background-color:#e65100!important;color:#fff!important}.mdui-theme-primary-pink .mdui-color-theme{background-color:#e91e63!important;color:#fff!important}.mdui-theme-primary-pink .mdui-color-theme-50{background-color:#fce4ec!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-pink .mdui-color-theme-100{background-color:#f8bbd0!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-pink .mdui-color-theme-200{background-color:#f48fb1!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-pink .mdui-color-theme-300{background-color:#f06292!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-pink .mdui-color-theme-400{background-color:#ec407a!important;color:#fff!important}.mdui-theme-primary-pink .mdui-color-theme-500{background-color:#e91e63!important;color:#fff!important}.mdui-theme-primary-pink .mdui-color-theme-600{background-color:#d81b60!important;color:#fff!important}.mdui-theme-primary-pink .mdui-color-theme-700{background-color:#c2185b!important;color:#fff!important}.mdui-theme-primary-pink .mdui-color-theme-800{background-color:#ad1457!important;color:#fff!important}.mdui-theme-primary-pink .mdui-color-theme-900{background-color:#880e4f!important;color:#fff!important}.mdui-theme-primary-purple .mdui-color-theme{background-color:#9c27b0!important;color:#fff!important}.mdui-theme-primary-purple .mdui-color-theme-50{background-color:#f3e5f5!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-purple .mdui-color-theme-100{background-color:#e1bee7!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-purple .mdui-color-theme-200{background-color:#ce93d8!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-purple .mdui-color-theme-300{background-color:#ba68c8!important;color:#fff!important}.mdui-theme-primary-purple .mdui-color-theme-400{background-color:#ab47bc!important;color:#fff!important}.mdui-theme-primary-purple .mdui-color-theme-500{background-color:#9c27b0!important;color:#fff!important}.mdui-theme-primary-purple .mdui-color-theme-600{background-color:#8e24aa!important;color:#fff!important}.mdui-theme-primary-purple .mdui-color-theme-700{background-color:#7b1fa2!important;color:#fff!important}.mdui-theme-primary-purple .mdui-color-theme-800{background-color:#6a1b9a!important;color:#fff!important}.mdui-theme-primary-purple .mdui-color-theme-900{background-color:#4a148c!important;color:#fff!important}.mdui-theme-primary-red .mdui-color-theme{background-color:#f44336!important;color:#fff!important}.mdui-theme-primary-red .mdui-color-theme-50{background-color:#ffebee!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-red .mdui-color-theme-100{background-color:#ffcdd2!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-red .mdui-color-theme-200{background-color:#ef9a9a!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-red .mdui-color-theme-300{background-color:#e57373!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-red .mdui-color-theme-400{background-color:#ef5350!important;color:#fff!important}.mdui-theme-primary-red .mdui-color-theme-500{background-color:#f44336!important;color:#fff!important}.mdui-theme-primary-red .mdui-color-theme-600{background-color:#e53935!important;color:#fff!important}.mdui-theme-primary-red .mdui-color-theme-700{background-color:#d32f2f!important;color:#fff!important}.mdui-theme-primary-red .mdui-color-theme-800{background-color:#c62828!important;color:#fff!important}.mdui-theme-primary-red .mdui-color-theme-900{background-color:#b71c1c!important;color:#fff!important}.mdui-theme-primary-teal .mdui-color-theme{background-color:#009688!important;color:#fff!important}.mdui-theme-primary-teal .mdui-color-theme-50{background-color:#e0f2f1!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-teal .mdui-color-theme-100{background-color:#b2dfdb!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-teal .mdui-color-theme-200{background-color:#80cbc4!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-teal .mdui-color-theme-300{background-color:#4db6ac!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-teal .mdui-color-theme-400{background-color:#26a69a!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-teal .mdui-color-theme-500{background-color:#009688!important;color:#fff!important}.mdui-theme-primary-teal .mdui-color-theme-600{background-color:#00897b!important;color:#fff!important}.mdui-theme-primary-teal .mdui-color-theme-700{background-color:#00796b!important;color:#fff!important}.mdui-theme-primary-teal .mdui-color-theme-800{background-color:#00695c!important;color:#fff!important}.mdui-theme-primary-teal .mdui-color-theme-900{background-color:#004d40!important;color:#fff!important}.mdui-theme-primary-yellow .mdui-color-theme{background-color:#ffeb3b!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-yellow .mdui-color-theme-50{background-color:#fffde7!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-yellow .mdui-color-theme-100{background-color:#fff9c4!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-yellow .mdui-color-theme-200{background-color:#fff59d!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-yellow .mdui-color-theme-300{background-color:#fff176!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-yellow .mdui-color-theme-400{background-color:#ffee58!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-yellow .mdui-color-theme-500{background-color:#ffeb3b!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-yellow .mdui-color-theme-600{background-color:#fdd835!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-yellow .mdui-color-theme-700{background-color:#fbc02d!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-yellow .mdui-color-theme-800{background-color:#f9a825!important;color:rgba(0,0,0,.87)!important}.mdui-theme-primary-yellow .mdui-color-theme-900{background-color:#f57f17!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-amber .mdui-color-theme-accent{background-color:#ffd740!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-amber .mdui-color-theme-a100{background-color:#ffe57f!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-amber .mdui-color-theme-a200{background-color:#ffd740!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-amber .mdui-color-theme-a400{background-color:#ffc400!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-amber .mdui-color-theme-a700{background-color:#ffab00!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-blue .mdui-color-theme-accent{background-color:#448aff!important;color:#fff!important}.mdui-theme-accent-blue .mdui-color-theme-a100{background-color:#82b1ff!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-blue .mdui-color-theme-a200{background-color:#448aff!important;color:#fff!important}.mdui-theme-accent-blue .mdui-color-theme-a400{background-color:#2979ff!important;color:#fff!important}.mdui-theme-accent-blue .mdui-color-theme-a700{background-color:#2962ff!important;color:#fff!important}.mdui-theme-accent-cyan .mdui-color-theme-accent{background-color:#18ffff!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-cyan .mdui-color-theme-a100{background-color:#84ffff!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-cyan .mdui-color-theme-a200{background-color:#18ffff!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-cyan .mdui-color-theme-a400{background-color:#00e5ff!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-cyan .mdui-color-theme-a700{background-color:#00b8d4!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-deep-orange .mdui-color-theme-accent{background-color:#ff6e40!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-deep-orange .mdui-color-theme-a100{background-color:#ff9e80!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-deep-orange .mdui-color-theme-a200{background-color:#ff6e40!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-deep-orange .mdui-color-theme-a400{background-color:#ff3d00!important;color:#fff!important}.mdui-theme-accent-deep-orange .mdui-color-theme-a700{background-color:#dd2c00!important;color:#fff!important}.mdui-theme-accent-deep-purple .mdui-color-theme-accent{background-color:#7c4dff!important;color:#fff!important}.mdui-theme-accent-deep-purple .mdui-color-theme-a100{background-color:#b388ff!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-deep-purple .mdui-color-theme-a200{background-color:#7c4dff!important;color:#fff!important}.mdui-theme-accent-deep-purple .mdui-color-theme-a400{background-color:#651fff!important;color:#fff!important}.mdui-theme-accent-deep-purple .mdui-color-theme-a700{background-color:#6200ea!important;color:#fff!important}.mdui-theme-accent-green .mdui-color-theme-accent{background-color:#69f0ae!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-green .mdui-color-theme-a100{background-color:#b9f6ca!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-green .mdui-color-theme-a200{background-color:#69f0ae!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-green .mdui-color-theme-a400{background-color:#00e676!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-green .mdui-color-theme-a700{background-color:#00c853!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-indigo .mdui-color-theme-accent{background-color:#536dfe!important;color:#fff!important}.mdui-theme-accent-indigo .mdui-color-theme-a100{background-color:#8c9eff!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-indigo .mdui-color-theme-a200{background-color:#536dfe!important;color:#fff!important}.mdui-theme-accent-indigo .mdui-color-theme-a400{background-color:#3d5afe!important;color:#fff!important}.mdui-theme-accent-indigo .mdui-color-theme-a700{background-color:#304ffe!important;color:#fff!important}.mdui-theme-accent-light-blue .mdui-color-theme-accent{background-color:#40c4ff!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-light-blue .mdui-color-theme-a100{background-color:#80d8ff!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-light-blue .mdui-color-theme-a200{background-color:#40c4ff!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-light-blue .mdui-color-theme-a400{background-color:#00b0ff!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-light-blue .mdui-color-theme-a700{background-color:#0091ea!important;color:#fff!important}.mdui-theme-accent-light-green .mdui-color-theme-accent{background-color:#b2ff59!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-light-green .mdui-color-theme-a100{background-color:#ccff90!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-light-green .mdui-color-theme-a200{background-color:#b2ff59!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-light-green .mdui-color-theme-a400{background-color:#76ff03!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-light-green .mdui-color-theme-a700{background-color:#64dd17!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-lime .mdui-color-theme-accent{background-color:#eeff41!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-lime .mdui-color-theme-a100{background-color:#f4ff81!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-lime .mdui-color-theme-a200{background-color:#eeff41!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-lime .mdui-color-theme-a400{background-color:#c6ff00!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-lime .mdui-color-theme-a700{background-color:#aeea00!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-orange .mdui-color-theme-accent{background-color:#ffab40!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-orange .mdui-color-theme-a100{background-color:#ffd180!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-orange .mdui-color-theme-a200{background-color:#ffab40!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-orange .mdui-color-theme-a400{background-color:#ff9100!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-orange .mdui-color-theme-a700{background-color:#ff6d00!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-pink .mdui-color-theme-accent{background-color:#ff4081!important;color:#fff!important}.mdui-theme-accent-pink .mdui-color-theme-a100{background-color:#ff80ab!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-pink .mdui-color-theme-a200{background-color:#ff4081!important;color:#fff!important}.mdui-theme-accent-pink .mdui-color-theme-a400{background-color:#f50057!important;color:#fff!important}.mdui-theme-accent-pink .mdui-color-theme-a700{background-color:#c51162!important;color:#fff!important}.mdui-theme-accent-purple .mdui-color-theme-accent{background-color:#e040fb!important;color:#fff!important}.mdui-theme-accent-purple .mdui-color-theme-a100{background-color:#ea80fc!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-purple .mdui-color-theme-a200{background-color:#e040fb!important;color:#fff!important}.mdui-theme-accent-purple .mdui-color-theme-a400{background-color:#d500f9!important;color:#fff!important}.mdui-theme-accent-purple .mdui-color-theme-a700{background-color:#a0f!important;color:#fff!important}.mdui-theme-accent-red .mdui-color-theme-accent{background-color:#ff5252!important;color:#fff!important}.mdui-theme-accent-red .mdui-color-theme-a100{background-color:#ff8a80!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-red .mdui-color-theme-a200{background-color:#ff5252!important;color:#fff!important}.mdui-theme-accent-red .mdui-color-theme-a400{background-color:#ff1744!important;color:#fff!important}.mdui-theme-accent-red .mdui-color-theme-a700{background-color:#d50000!important;color:#fff!important}.mdui-theme-accent-teal .mdui-color-theme-accent{background-color:#64ffda!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-teal .mdui-color-theme-a100{background-color:#a7ffeb!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-teal .mdui-color-theme-a200{background-color:#64ffda!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-teal .mdui-color-theme-a400{background-color:#1de9b6!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-teal .mdui-color-theme-a700{background-color:#00bfa5!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-yellow .mdui-color-theme-accent{background-color:#ff0!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-yellow .mdui-color-theme-a100{background-color:#ffff8d!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-yellow .mdui-color-theme-a200{background-color:#ff0!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-yellow .mdui-color-theme-a400{background-color:#ffea00!important;color:rgba(0,0,0,.87)!important}.mdui-theme-accent-yellow .mdui-color-theme-a700{background-color:#ffd600!important;color:rgba(0,0,0,.87)!important}.mdui-color-amber{background-color:#ffc107!important;color:rgba(0,0,0,.87)!important}.mdui-color-amber-50{background-color:#fff8e1!important;color:rgba(0,0,0,.87)!important}.mdui-color-amber-100{background-color:#ffecb3!important;color:rgba(0,0,0,.87)!important}.mdui-color-amber-200{background-color:#ffe082!important;color:rgba(0,0,0,.87)!important}.mdui-color-amber-300{background-color:#ffd54f!important;color:rgba(0,0,0,.87)!important}.mdui-color-amber-400{background-color:#ffca28!important;color:rgba(0,0,0,.87)!important}.mdui-color-amber-500{background-color:#ffc107!important;color:rgba(0,0,0,.87)!important}.mdui-color-amber-600{background-color:#ffb300!important;color:rgba(0,0,0,.87)!important}.mdui-color-amber-700{background-color:#ffa000!important;color:rgba(0,0,0,.87)!important}.mdui-color-amber-800{background-color:#ff8f00!important;color:rgba(0,0,0,.87)!important}.mdui-color-amber-900{background-color:#ff6f00!important;color:rgba(0,0,0,.87)!important}.mdui-color-blue{background-color:#2196f3!important;color:rgba(0,0,0,.87)!important}.mdui-color-blue-50{background-color:#e3f2fd!important;color:rgba(0,0,0,.87)!important}.mdui-color-blue-100{background-color:#bbdefb!important;color:rgba(0,0,0,.87)!important}.mdui-color-blue-200{background-color:#90caf9!important;color:rgba(0,0,0,.87)!important}.mdui-color-blue-300{background-color:#64b5f6!important;color:rgba(0,0,0,.87)!important}.mdui-color-blue-400{background-color:#42a5f5!important;color:rgba(0,0,0,.87)!important}.mdui-color-blue-500{background-color:#2196f3!important;color:rgba(0,0,0,.87)!important}.mdui-color-blue-600{background-color:#1e88e5!important;color:#fff!important}.mdui-color-blue-700{background-color:#1976d2!important;color:#fff!important}.mdui-color-blue-800{background-color:#1565c0!important;color:#fff!important}.mdui-color-blue-900{background-color:#0d47a1!important;color:#fff!important}.mdui-color-blue-grey{background-color:#607d8b!important;color:#fff!important}.mdui-color-blue-grey-50{background-color:#eceff1!important;color:rgba(0,0,0,.87)!important}.mdui-color-blue-grey-100{background-color:#cfd8dc!important;color:rgba(0,0,0,.87)!important}.mdui-color-blue-grey-200{background-color:#b0bec5!important;color:rgba(0,0,0,.87)!important}.mdui-color-blue-grey-300{background-color:#90a4ae!important;color:rgba(0,0,0,.87)!important}.mdui-color-blue-grey-400{background-color:#78909c!important;color:#fff!important}.mdui-color-blue-grey-500{background-color:#607d8b!important;color:#fff!important}.mdui-color-blue-grey-600{background-color:#546e7a!important;color:#fff!important}.mdui-color-blue-grey-700{background-color:#455a64!important;color:#fff!important}.mdui-color-blue-grey-800{background-color:#37474f!important;color:#fff!important}.mdui-color-blue-grey-900{background-color:#263238!important;color:#fff!important}.mdui-color-brown{background-color:#795548!important;color:#fff!important}.mdui-color-brown-50{background-color:#efebe9!important;color:rgba(0,0,0,.87)!important}.mdui-color-brown-100{background-color:#d7ccc8!important;color:rgba(0,0,0,.87)!important}.mdui-color-brown-200{background-color:#bcaaa4!important;color:rgba(0,0,0,.87)!important}.mdui-color-brown-300{background-color:#a1887f!important;color:#fff!important}.mdui-color-brown-400{background-color:#8d6e63!important;color:#fff!important}.mdui-color-brown-500{background-color:#795548!important;color:#fff!important}.mdui-color-brown-600{background-color:#6d4c41!important;color:#fff!important}.mdui-color-brown-700{background-color:#5d4037!important;color:#fff!important}.mdui-color-brown-800{background-color:#4e342e!important;color:#fff!important}.mdui-color-brown-900{background-color:#3e2723!important;color:#fff!important}.mdui-color-cyan{background-color:#00bcd4!important;color:rgba(0,0,0,.87)!important}.mdui-color-cyan-50{background-color:#e0f7fa!important;color:rgba(0,0,0,.87)!important}.mdui-color-cyan-100{background-color:#b2ebf2!important;color:rgba(0,0,0,.87)!important}.mdui-color-cyan-200{background-color:#80deea!important;color:rgba(0,0,0,.87)!important}.mdui-color-cyan-300{background-color:#4dd0e1!important;color:rgba(0,0,0,.87)!important}.mdui-color-cyan-400{background-color:#26c6da!important;color:rgba(0,0,0,.87)!important}.mdui-color-cyan-500{background-color:#00bcd4!important;color:rgba(0,0,0,.87)!important}.mdui-color-cyan-600{background-color:#00acc1!important;color:rgba(0,0,0,.87)!important}.mdui-color-cyan-700{background-color:#0097a7!important;color:#fff!important}.mdui-color-cyan-800{background-color:#00838f!important;color:#fff!important}.mdui-color-cyan-900{background-color:#006064!important;color:#fff!important}.mdui-color-deep-orange{background-color:#ff5722!important;color:rgba(0,0,0,.87)!important}.mdui-color-deep-orange-50{background-color:#fbe9e7!important;color:rgba(0,0,0,.87)!important}.mdui-color-deep-orange-100{background-color:#ffccbc!important;color:rgba(0,0,0,.87)!important}.mdui-color-deep-orange-200{background-color:#ffab91!important;color:rgba(0,0,0,.87)!important}.mdui-color-deep-orange-300{background-color:#ff8a65!important;color:rgba(0,0,0,.87)!important}.mdui-color-deep-orange-400{background-color:#ff7043!important;color:rgba(0,0,0,.87)!important}.mdui-color-deep-orange-500{background-color:#ff5722!important;color:rgba(0,0,0,.87)!important}.mdui-color-deep-orange-600{background-color:#f4511e!important;color:#fff!important}.mdui-color-deep-orange-700{background-color:#e64a19!important;color:#fff!important}.mdui-color-deep-orange-800{background-color:#d84315!important;color:#fff!important}.mdui-color-deep-orange-900{background-color:#bf360c!important;color:#fff!important}.mdui-color-deep-purple{background-color:#673ab7!important;color:#fff!important}.mdui-color-deep-purple-50{background-color:#ede7f6!important;color:rgba(0,0,0,.87)!important}.mdui-color-deep-purple-100{background-color:#d1c4e9!important;color:rgba(0,0,0,.87)!important}.mdui-color-deep-purple-200{background-color:#b39ddb!important;color:rgba(0,0,0,.87)!important}.mdui-color-deep-purple-300{background-color:#9575cd!important;color:#fff!important}.mdui-color-deep-purple-400{background-color:#7e57c2!important;color:#fff!important}.mdui-color-deep-purple-500{background-color:#673ab7!important;color:#fff!important}.mdui-color-deep-purple-600{background-color:#5e35b1!important;color:#fff!important}.mdui-color-deep-purple-700{background-color:#512da8!important;color:#fff!important}.mdui-color-deep-purple-800{background-color:#4527a0!important;color:#fff!important}.mdui-color-deep-purple-900{background-color:#311b92!important;color:#fff!important}.mdui-color-green{background-color:#4caf50!important;color:rgba(0,0,0,.87)!important}.mdui-color-green-50{background-color:#e8f5e9!important;color:rgba(0,0,0,.87)!important}.mdui-color-green-100{background-color:#c8e6c9!important;color:rgba(0,0,0,.87)!important}.mdui-color-green-200{background-color:#a5d6a7!important;color:rgba(0,0,0,.87)!important}.mdui-color-green-300{background-color:#81c784!important;color:rgba(0,0,0,.87)!important}.mdui-color-green-400{background-color:#66bb6a!important;color:rgba(0,0,0,.87)!important}.mdui-color-green-500{background-color:#4caf50!important;color:rgba(0,0,0,.87)!important}.mdui-color-green-600{background-color:#43a047!important;color:#fff!important}.mdui-color-green-700{background-color:#388e3c!important;color:#fff!important}.mdui-color-green-800{background-color:#2e7d32!important;color:#fff!important}.mdui-color-green-900{background-color:#1b5e20!important;color:#fff!important}.mdui-color-grey{background-color:#9e9e9e!important;color:rgba(0,0,0,.87)!important}.mdui-color-grey-50{background-color:#fafafa!important;color:rgba(0,0,0,.87)!important}.mdui-color-grey-100{background-color:#f5f5f5!important;color:rgba(0,0,0,.87)!important}.mdui-color-grey-200{background-color:#eee!important;color:rgba(0,0,0,.87)!important}.mdui-color-grey-300{background-color:#e0e0e0!important;color:rgba(0,0,0,.87)!important}.mdui-color-grey-400{background-color:#bdbdbd!important;color:rgba(0,0,0,.87)!important}.mdui-color-grey-500{background-color:#9e9e9e!important;color:rgba(0,0,0,.87)!important}.mdui-color-grey-600{background-color:#757575!important;color:#fff!important}.mdui-color-grey-700{background-color:#616161!important;color:#fff!important}.mdui-color-grey-800{background-color:#424242!important;color:#fff!important}.mdui-color-grey-900{background-color:#212121!important;color:#fff!important}.mdui-color-indigo{background-color:#3f51b5!important;color:#fff!important}.mdui-color-indigo-50{background-color:#e8eaf6!important;color:rgba(0,0,0,.87)!important}.mdui-color-indigo-100{background-color:#c5cae9!important;color:rgba(0,0,0,.87)!important}.mdui-color-indigo-200{background-color:#9fa8da!important;color:rgba(0,0,0,.87)!important}.mdui-color-indigo-300{background-color:#7986cb!important;color:#fff!important}.mdui-color-indigo-400{background-color:#5c6bc0!important;color:#fff!important}.mdui-color-indigo-500{background-color:#3f51b5!important;color:#fff!important}.mdui-color-indigo-600{background-color:#3949ab!important;color:#fff!important}.mdui-color-indigo-700{background-color:#303f9f!important;color:#fff!important}.mdui-color-indigo-800{background-color:#283593!important;color:#fff!important}.mdui-color-indigo-900{background-color:#1a237e!important;color:#fff!important}.mdui-color-light-blue{background-color:#03a9f4!important;color:rgba(0,0,0,.87)!important}.mdui-color-light-blue-50{background-color:#e1f5fe!important;color:rgba(0,0,0,.87)!important}.mdui-color-light-blue-100{background-color:#b3e5fc!important;color:rgba(0,0,0,.87)!important}.mdui-color-light-blue-200{background-color:#81d4fa!important;color:rgba(0,0,0,.87)!important}.mdui-color-light-blue-300{background-color:#4fc3f7!important;color:rgba(0,0,0,.87)!important}.mdui-color-light-blue-400{background-color:#29b6f6!important;color:rgba(0,0,0,.87)!important}.mdui-color-light-blue-500{background-color:#03a9f4!important;color:rgba(0,0,0,.87)!important}.mdui-color-light-blue-600{background-color:#039be5!important;color:rgba(0,0,0,.87)!important}.mdui-color-light-blue-700{background-color:#0288d1!important;color:#fff!important}.mdui-color-light-blue-800{background-color:#0277bd!important;color:#fff!important}.mdui-color-light-blue-900{background-color:#01579b!important;color:#fff!important}.mdui-color-light-green{background-color:#8bc34a!important;color:rgba(0,0,0,.87)!important}.mdui-color-light-green-50{background-color:#f1f8e9!important;color:rgba(0,0,0,.87)!important}.mdui-color-light-green-100{background-color:#dcedc8!important;color:rgba(0,0,0,.87)!important}.mdui-color-light-green-200{background-color:#c5e1a5!important;color:rgba(0,0,0,.87)!important}.mdui-color-light-green-300{background-color:#aed581!important;color:rgba(0,0,0,.87)!important}.mdui-color-light-green-400{background-color:#9ccc65!important;color:rgba(0,0,0,.87)!important}.mdui-color-light-green-500{background-color:#8bc34a!important;color:rgba(0,0,0,.87)!important}.mdui-color-light-green-600{background-color:#7cb342!important;color:rgba(0,0,0,.87)!important}.mdui-color-light-green-700{background-color:#689f38!important;color:rgba(0,0,0,.87)!important}.mdui-color-light-green-800{background-color:#558b2f!important;color:#fff!important}.mdui-color-light-green-900{background-color:#33691e!important;color:#fff!important}.mdui-color-lime{background-color:#cddc39!important;color:rgba(0,0,0,.87)!important}.mdui-color-lime-50{background-color:#f9fbe7!important;color:rgba(0,0,0,.87)!important}.mdui-color-lime-100{background-color:#f0f4c3!important;color:rgba(0,0,0,.87)!important}.mdui-color-lime-200{background-color:#e6ee9c!important;color:rgba(0,0,0,.87)!important}.mdui-color-lime-300{background-color:#dce775!important;color:rgba(0,0,0,.87)!important}.mdui-color-lime-400{background-color:#d4e157!important;color:rgba(0,0,0,.87)!important}.mdui-color-lime-500{background-color:#cddc39!important;color:rgba(0,0,0,.87)!important}.mdui-color-lime-600{background-color:#c0ca33!important;color:rgba(0,0,0,.87)!important}.mdui-color-lime-700{background-color:#afb42b!important;color:rgba(0,0,0,.87)!important}.mdui-color-lime-800{background-color:#9e9d24!important;color:rgba(0,0,0,.87)!important}.mdui-color-lime-900{background-color:#827717!important;color:#fff!important}.mdui-color-orange{background-color:#ff9800!important;color:rgba(0,0,0,.87)!important}.mdui-color-orange-50{background-color:#fff3e0!important;color:rgba(0,0,0,.87)!important}.mdui-color-orange-100{background-color:#ffe0b2!important;color:rgba(0,0,0,.87)!important}.mdui-color-orange-200{background-color:#ffcc80!important;color:rgba(0,0,0,.87)!important}.mdui-color-orange-300{background-color:#ffb74d!important;color:rgba(0,0,0,.87)!important}.mdui-color-orange-400{background-color:#ffa726!important;color:rgba(0,0,0,.87)!important}.mdui-color-orange-500{background-color:#ff9800!important;color:rgba(0,0,0,.87)!important}.mdui-color-orange-600{background-color:#fb8c00!important;color:rgba(0,0,0,.87)!important}.mdui-color-orange-700{background-color:#f57c00!important;color:rgba(0,0,0,.87)!important}.mdui-color-orange-800{background-color:#ef6c00!important;color:rgba(0,0,0,.87)!important}.mdui-color-orange-900{background-color:#e65100!important;color:#fff!important}.mdui-color-pink{background-color:#e91e63!important;color:#fff!important}.mdui-color-pink-50{background-color:#fce4ec!important;color:rgba(0,0,0,.87)!important}.mdui-color-pink-100{background-color:#f8bbd0!important;color:rgba(0,0,0,.87)!important}.mdui-color-pink-200{background-color:#f48fb1!important;color:rgba(0,0,0,.87)!important}.mdui-color-pink-300{background-color:#f06292!important;color:rgba(0,0,0,.87)!important}.mdui-color-pink-400{background-color:#ec407a!important;color:#fff!important}.mdui-color-pink-500{background-color:#e91e63!important;color:#fff!important}.mdui-color-pink-600{background-color:#d81b60!important;color:#fff!important}.mdui-color-pink-700{background-color:#c2185b!important;color:#fff!important}.mdui-color-pink-800{background-color:#ad1457!important;color:#fff!important}.mdui-color-pink-900{background-color:#880e4f!important;color:#fff!important}.mdui-color-purple{background-color:#9c27b0!important;color:#fff!important}.mdui-color-purple-50{background-color:#f3e5f5!important;color:rgba(0,0,0,.87)!important}.mdui-color-purple-100{background-color:#e1bee7!important;color:rgba(0,0,0,.87)!important}.mdui-color-purple-200{background-color:#ce93d8!important;color:rgba(0,0,0,.87)!important}.mdui-color-purple-300{background-color:#ba68c8!important;color:#fff!important}.mdui-color-purple-400{background-color:#ab47bc!important;color:#fff!important}.mdui-color-purple-500{background-color:#9c27b0!important;color:#fff!important}.mdui-color-purple-600{background-color:#8e24aa!important;color:#fff!important}.mdui-color-purple-700{background-color:#7b1fa2!important;color:#fff!important}.mdui-color-purple-800{background-color:#6a1b9a!important;color:#fff!important}.mdui-color-purple-900{background-color:#4a148c!important;color:#fff!important}.mdui-color-red{background-color:#f44336!important;color:#fff!important}.mdui-color-red-50{background-color:#ffebee!important;color:rgba(0,0,0,.87)!important}.mdui-color-red-100{background-color:#ffcdd2!important;color:rgba(0,0,0,.87)!important}.mdui-color-red-200{background-color:#ef9a9a!important;color:rgba(0,0,0,.87)!important}.mdui-color-red-300{background-color:#e57373!important;color:rgba(0,0,0,.87)!important}.mdui-color-red-400{background-color:#ef5350!important;color:#fff!important}.mdui-color-red-500{background-color:#f44336!important;color:#fff!important}.mdui-color-red-600{background-color:#e53935!important;color:#fff!important}.mdui-color-red-700{background-color:#d32f2f!important;color:#fff!important}.mdui-color-red-800{background-color:#c62828!important;color:#fff!important}.mdui-color-red-900{background-color:#b71c1c!important;color:#fff!important}.mdui-color-teal{background-color:#009688!important;color:#fff!important}.mdui-color-teal-50{background-color:#e0f2f1!important;color:rgba(0,0,0,.87)!important}.mdui-color-teal-100{background-color:#b2dfdb!important;color:rgba(0,0,0,.87)!important}.mdui-color-teal-200{background-color:#80cbc4!important;color:rgba(0,0,0,.87)!important}.mdui-color-teal-300{background-color:#4db6ac!important;color:rgba(0,0,0,.87)!important}.mdui-color-teal-400{background-color:#26a69a!important;color:rgba(0,0,0,.87)!important}.mdui-color-teal-500{background-color:#009688!important;color:#fff!important}.mdui-color-teal-600{background-color:#00897b!important;color:#fff!important}.mdui-color-teal-700{background-color:#00796b!important;color:#fff!important}.mdui-color-teal-800{background-color:#00695c!important;color:#fff!important}.mdui-color-teal-900{background-color:#004d40!important;color:#fff!important}.mdui-color-yellow{background-color:#ffeb3b!important;color:rgba(0,0,0,.87)!important}.mdui-color-yellow-50{background-color:#fffde7!important;color:rgba(0,0,0,.87)!important}.mdui-color-yellow-100{background-color:#fff9c4!important;color:rgba(0,0,0,.87)!important}.mdui-color-yellow-200{background-color:#fff59d!important;color:rgba(0,0,0,.87)!important}.mdui-color-yellow-300{background-color:#fff176!important;color:rgba(0,0,0,.87)!important}.mdui-color-yellow-400{background-color:#ffee58!important;color:rgba(0,0,0,.87)!important}.mdui-color-yellow-500{background-color:#ffeb3b!important;color:rgba(0,0,0,.87)!important}.mdui-color-yellow-600{background-color:#fdd835!important;color:rgba(0,0,0,.87)!important}.mdui-color-yellow-700{background-color:#fbc02d!important;color:rgba(0,0,0,.87)!important}.mdui-color-yellow-800{background-color:#f9a825!important;color:rgba(0,0,0,.87)!important}.mdui-color-yellow-900{background-color:#f57f17!important;color:rgba(0,0,0,.87)!important}.mdui-color-amber-accent{background-color:#ffd740!important;color:rgba(0,0,0,.87)!important}.mdui-color-amber-a100{background-color:#ffe57f!important;color:rgba(0,0,0,.87)!important}.mdui-color-amber-a200{background-color:#ffd740!important;color:rgba(0,0,0,.87)!important}.mdui-color-amber-a400{background-color:#ffc400!important;color:rgba(0,0,0,.87)!important}.mdui-color-amber-a700{background-color:#ffab00!important;color:rgba(0,0,0,.87)!important}.mdui-color-blue-accent{background-color:#448aff!important;color:#fff!important}.mdui-color-blue-a100{background-color:#82b1ff!important;color:rgba(0,0,0,.87)!important}.mdui-color-blue-a200{background-color:#448aff!important;color:#fff!important}.mdui-color-blue-a400{background-color:#2979ff!important;color:#fff!important}.mdui-color-blue-a700{background-color:#2962ff!important;color:#fff!important}.mdui-color-cyan-accent{background-color:#18ffff!important;color:rgba(0,0,0,.87)!important}.mdui-color-cyan-a100{background-color:#84ffff!important;color:rgba(0,0,0,.87)!important}.mdui-color-cyan-a200{background-color:#18ffff!important;color:rgba(0,0,0,.87)!important}.mdui-color-cyan-a400{background-color:#00e5ff!important;color:rgba(0,0,0,.87)!important}.mdui-color-cyan-a700{background-color:#00b8d4!important;color:rgba(0,0,0,.87)!important}.mdui-color-deep-orange-accent{background-color:#ff6e40!important;color:rgba(0,0,0,.87)!important}.mdui-color-deep-orange-a100{background-color:#ff9e80!important;color:rgba(0,0,0,.87)!important}.mdui-color-deep-orange-a200{background-color:#ff6e40!important;color:rgba(0,0,0,.87)!important}.mdui-color-deep-orange-a400{background-color:#ff3d00!important;color:#fff!important}.mdui-color-deep-orange-a700{background-color:#dd2c00!important;color:#fff!important}.mdui-color-deep-purple-accent{background-color:#7c4dff!important;color:#fff!important}.mdui-color-deep-purple-a100{background-color:#b388ff!important;color:rgba(0,0,0,.87)!important}.mdui-color-deep-purple-a200{background-color:#7c4dff!important;color:#fff!important}.mdui-color-deep-purple-a400{background-color:#651fff!important;color:#fff!important}.mdui-color-deep-purple-a700{background-color:#6200ea!important;color:#fff!important}.mdui-color-green-accent{background-color:#69f0ae!important;color:rgba(0,0,0,.87)!important}.mdui-color-green-a100{background-color:#b9f6ca!important;color:rgba(0,0,0,.87)!important}.mdui-color-green-a200{background-color:#69f0ae!important;color:rgba(0,0,0,.87)!important}.mdui-color-green-a400{background-color:#00e676!important;color:rgba(0,0,0,.87)!important}.mdui-color-green-a700{background-color:#00c853!important;color:rgba(0,0,0,.87)!important}.mdui-color-indigo-accent{background-color:#536dfe!important;color:#fff!important}.mdui-color-indigo-a100{background-color:#8c9eff!important;color:rgba(0,0,0,.87)!important}.mdui-color-indigo-a200{background-color:#536dfe!important;color:#fff!important}.mdui-color-indigo-a400{background-color:#3d5afe!important;color:#fff!important}.mdui-color-indigo-a700{background-color:#304ffe!important;color:#fff!important}.mdui-color-light-blue-accent{background-color:#40c4ff!important;color:rgba(0,0,0,.87)!important}.mdui-color-light-blue-a100{background-color:#80d8ff!important;color:rgba(0,0,0,.87)!important}.mdui-color-light-blue-a200{background-color:#40c4ff!important;color:rgba(0,0,0,.87)!important}.mdui-color-light-blue-a400{background-color:#00b0ff!important;color:rgba(0,0,0,.87)!important}.mdui-color-light-blue-a700{background-color:#0091ea!important;color:#fff!important}.mdui-color-light-green-accent{background-color:#b2ff59!important;color:rgba(0,0,0,.87)!important}.mdui-color-light-green-a100{background-color:#ccff90!important;color:rgba(0,0,0,.87)!important}.mdui-color-light-green-a200{background-color:#b2ff59!important;color:rgba(0,0,0,.87)!important}.mdui-color-light-green-a400{background-color:#76ff03!important;color:rgba(0,0,0,.87)!important}.mdui-color-light-green-a700{background-color:#64dd17!important;color:rgba(0,0,0,.87)!important}.mdui-color-lime-accent{background-color:#eeff41!important;color:rgba(0,0,0,.87)!important}.mdui-color-lime-a100{background-color:#f4ff81!important;color:rgba(0,0,0,.87)!important}.mdui-color-lime-a200{background-color:#eeff41!important;color:rgba(0,0,0,.87)!important}.mdui-color-lime-a400{background-color:#c6ff00!important;color:rgba(0,0,0,.87)!important}.mdui-color-lime-a700{background-color:#aeea00!important;color:rgba(0,0,0,.87)!important}.mdui-color-orange-accent{background-color:#ffab40!important;color:rgba(0,0,0,.87)!important}.mdui-color-orange-a100{background-color:#ffd180!important;color:rgba(0,0,0,.87)!important}.mdui-color-orange-a200{background-color:#ffab40!important;color:rgba(0,0,0,.87)!important}.mdui-color-orange-a400{background-color:#ff9100!important;color:rgba(0,0,0,.87)!important}.mdui-color-orange-a700{background-color:#ff6d00!important;color:rgba(0,0,0,.87)!important}.mdui-color-pink-accent{background-color:#ff4081!important;color:#fff!important}.mdui-color-pink-a100{background-color:#ff80ab!important;color:rgba(0,0,0,.87)!important}.mdui-color-pink-a200{background-color:#ff4081!important;color:#fff!important}.mdui-color-pink-a400{background-color:#f50057!important;color:#fff!important}.mdui-color-pink-a700{background-color:#c51162!important;color:#fff!important}.mdui-color-purple-accent{background-color:#e040fb!important;color:#fff!important}.mdui-color-purple-a100{background-color:#ea80fc!important;color:rgba(0,0,0,.87)!important}.mdui-color-purple-a200{background-color:#e040fb!important;color:#fff!important}.mdui-color-purple-a400{background-color:#d500f9!important;color:#fff!important}.mdui-color-purple-a700{background-color:#a0f!important;color:#fff!important}.mdui-color-red-accent{background-color:#ff5252!important;color:#fff!important}.mdui-color-red-a100{background-color:#ff8a80!important;color:rgba(0,0,0,.87)!important}.mdui-color-red-a200{background-color:#ff5252!important;color:#fff!important}.mdui-color-red-a400{background-color:#ff1744!important;color:#fff!important}.mdui-color-red-a700{background-color:#d50000!important;color:#fff!important}.mdui-color-teal-accent{background-color:#64ffda!important;color:rgba(0,0,0,.87)!important}.mdui-color-teal-a100{background-color:#a7ffeb!important;color:rgba(0,0,0,.87)!important}.mdui-color-teal-a200{background-color:#64ffda!important;color:rgba(0,0,0,.87)!important}.mdui-color-teal-a400{background-color:#1de9b6!important;color:rgba(0,0,0,.87)!important}.mdui-color-teal-a700{background-color:#00bfa5!important;color:rgba(0,0,0,.87)!important}.mdui-color-yellow-accent{background-color:#ff0!important;color:rgba(0,0,0,.87)!important}.mdui-color-yellow-a100{background-color:#ffff8d!important;color:rgba(0,0,0,.87)!important}.mdui-color-yellow-a200{background-color:#ff0!important;color:rgba(0,0,0,.87)!important}.mdui-color-yellow-a400{background-color:#ffea00!important;color:rgba(0,0,0,.87)!important}.mdui-color-yellow-a700{background-color:#ffd600!important;color:rgba(0,0,0,.87)!important}.mdui-color-black{color:#fff!important;background-color:#000!important}.mdui-color-white{color:rgba(0,0,0,.87)!important;background-color:#fff!important}.mdui-color-transparent{background-color:transparent!important}.mdui-theme-primary-amber .mdui-text-color-theme{color:#ffc107!important}.mdui-theme-primary-amber .mdui-text-color-theme-50{color:#fff8e1!important}.mdui-theme-primary-amber .mdui-text-color-theme-100{color:#ffecb3!important}.mdui-theme-primary-amber .mdui-text-color-theme-200{color:#ffe082!important}.mdui-theme-primary-amber .mdui-text-color-theme-300{color:#ffd54f!important}.mdui-theme-primary-amber .mdui-text-color-theme-400{color:#ffca28!important}.mdui-theme-primary-amber .mdui-text-color-theme-500{color:#ffc107!important}.mdui-theme-primary-amber .mdui-text-color-theme-600{color:#ffb300!important}.mdui-theme-primary-amber .mdui-text-color-theme-700{color:#ffa000!important}.mdui-theme-primary-amber .mdui-text-color-theme-800{color:#ff8f00!important}.mdui-theme-primary-amber .mdui-text-color-theme-900{color:#ff6f00!important}.mdui-theme-primary-blue .mdui-text-color-theme{color:#2196f3!important}.mdui-theme-primary-blue .mdui-text-color-theme-50{color:#e3f2fd!important}.mdui-theme-primary-blue .mdui-text-color-theme-100{color:#bbdefb!important}.mdui-theme-primary-blue .mdui-text-color-theme-200{color:#90caf9!important}.mdui-theme-primary-blue .mdui-text-color-theme-300{color:#64b5f6!important}.mdui-theme-primary-blue .mdui-text-color-theme-400{color:#42a5f5!important}.mdui-theme-primary-blue .mdui-text-color-theme-500{color:#2196f3!important}.mdui-theme-primary-blue .mdui-text-color-theme-600{color:#1e88e5!important}.mdui-theme-primary-blue .mdui-text-color-theme-700{color:#1976d2!important}.mdui-theme-primary-blue .mdui-text-color-theme-800{color:#1565c0!important}.mdui-theme-primary-blue .mdui-text-color-theme-900{color:#0d47a1!important}.mdui-theme-primary-blue-grey .mdui-text-color-theme{color:#607d8b!important}.mdui-theme-primary-blue-grey .mdui-text-color-theme-50{color:#eceff1!important}.mdui-theme-primary-blue-grey .mdui-text-color-theme-100{color:#cfd8dc!important}.mdui-theme-primary-blue-grey .mdui-text-color-theme-200{color:#b0bec5!important}.mdui-theme-primary-blue-grey .mdui-text-color-theme-300{color:#90a4ae!important}.mdui-theme-primary-blue-grey .mdui-text-color-theme-400{color:#78909c!important}.mdui-theme-primary-blue-grey .mdui-text-color-theme-500{color:#607d8b!important}.mdui-theme-primary-blue-grey .mdui-text-color-theme-600{color:#546e7a!important}.mdui-theme-primary-blue-grey .mdui-text-color-theme-700{color:#455a64!important}.mdui-theme-primary-blue-grey .mdui-text-color-theme-800{color:#37474f!important}.mdui-theme-primary-blue-grey .mdui-text-color-theme-900{color:#263238!important}.mdui-theme-primary-brown .mdui-text-color-theme{color:#795548!important}.mdui-theme-primary-brown .mdui-text-color-theme-50{color:#efebe9!important}.mdui-theme-primary-brown .mdui-text-color-theme-100{color:#d7ccc8!important}.mdui-theme-primary-brown .mdui-text-color-theme-200{color:#bcaaa4!important}.mdui-theme-primary-brown .mdui-text-color-theme-300{color:#a1887f!important}.mdui-theme-primary-brown .mdui-text-color-theme-400{color:#8d6e63!important}.mdui-theme-primary-brown .mdui-text-color-theme-500{color:#795548!important}.mdui-theme-primary-brown .mdui-text-color-theme-600{color:#6d4c41!important}.mdui-theme-primary-brown .mdui-text-color-theme-700{color:#5d4037!important}.mdui-theme-primary-brown .mdui-text-color-theme-800{color:#4e342e!important}.mdui-theme-primary-brown .mdui-text-color-theme-900{color:#3e2723!important}.mdui-theme-primary-cyan .mdui-text-color-theme{color:#00bcd4!important}.mdui-theme-primary-cyan .mdui-text-color-theme-50{color:#e0f7fa!important}.mdui-theme-primary-cyan .mdui-text-color-theme-100{color:#b2ebf2!important}.mdui-theme-primary-cyan .mdui-text-color-theme-200{color:#80deea!important}.mdui-theme-primary-cyan .mdui-text-color-theme-300{color:#4dd0e1!important}.mdui-theme-primary-cyan .mdui-text-color-theme-400{color:#26c6da!important}.mdui-theme-primary-cyan .mdui-text-color-theme-500{color:#00bcd4!important}.mdui-theme-primary-cyan .mdui-text-color-theme-600{color:#00acc1!important}.mdui-theme-primary-cyan .mdui-text-color-theme-700{color:#0097a7!important}.mdui-theme-primary-cyan .mdui-text-color-theme-800{color:#00838f!important}.mdui-theme-primary-cyan .mdui-text-color-theme-900{color:#006064!important}.mdui-theme-primary-deep-orange .mdui-text-color-theme{color:#ff5722!important}.mdui-theme-primary-deep-orange .mdui-text-color-theme-50{color:#fbe9e7!important}.mdui-theme-primary-deep-orange .mdui-text-color-theme-100{color:#ffccbc!important}.mdui-theme-primary-deep-orange .mdui-text-color-theme-200{color:#ffab91!important}.mdui-theme-primary-deep-orange .mdui-text-color-theme-300{color:#ff8a65!important}.mdui-theme-primary-deep-orange .mdui-text-color-theme-400{color:#ff7043!important}.mdui-theme-primary-deep-orange .mdui-text-color-theme-500{color:#ff5722!important}.mdui-theme-primary-deep-orange .mdui-text-color-theme-600{color:#f4511e!important}.mdui-theme-primary-deep-orange .mdui-text-color-theme-700{color:#e64a19!important}.mdui-theme-primary-deep-orange .mdui-text-color-theme-800{color:#d84315!important}.mdui-theme-primary-deep-orange .mdui-text-color-theme-900{color:#bf360c!important}.mdui-theme-primary-deep-purple .mdui-text-color-theme{color:#673ab7!important}.mdui-theme-primary-deep-purple .mdui-text-color-theme-50{color:#ede7f6!important}.mdui-theme-primary-deep-purple .mdui-text-color-theme-100{color:#d1c4e9!important}.mdui-theme-primary-deep-purple .mdui-text-color-theme-200{color:#b39ddb!important}.mdui-theme-primary-deep-purple .mdui-text-color-theme-300{color:#9575cd!important}.mdui-theme-primary-deep-purple .mdui-text-color-theme-400{color:#7e57c2!important}.mdui-theme-primary-deep-purple .mdui-text-color-theme-500{color:#673ab7!important}.mdui-theme-primary-deep-purple .mdui-text-color-theme-600{color:#5e35b1!important}.mdui-theme-primary-deep-purple .mdui-text-color-theme-700{color:#512da8!important}.mdui-theme-primary-deep-purple .mdui-text-color-theme-800{color:#4527a0!important}.mdui-theme-primary-deep-purple .mdui-text-color-theme-900{color:#311b92!important}.mdui-theme-primary-green .mdui-text-color-theme{color:#4caf50!important}.mdui-theme-primary-green .mdui-text-color-theme-50{color:#e8f5e9!important}.mdui-theme-primary-green .mdui-text-color-theme-100{color:#c8e6c9!important}.mdui-theme-primary-green .mdui-text-color-theme-200{color:#a5d6a7!important}.mdui-theme-primary-green .mdui-text-color-theme-300{color:#81c784!important}.mdui-theme-primary-green .mdui-text-color-theme-400{color:#66bb6a!important}.mdui-theme-primary-green .mdui-text-color-theme-500{color:#4caf50!important}.mdui-theme-primary-green .mdui-text-color-theme-600{color:#43a047!important}.mdui-theme-primary-green .mdui-text-color-theme-700{color:#388e3c!important}.mdui-theme-primary-green .mdui-text-color-theme-800{color:#2e7d32!important}.mdui-theme-primary-green .mdui-text-color-theme-900{color:#1b5e20!important}.mdui-theme-primary-grey .mdui-text-color-theme{color:#9e9e9e!important}.mdui-theme-primary-grey .mdui-text-color-theme-50{color:#fafafa!important}.mdui-theme-primary-grey .mdui-text-color-theme-100{color:#f5f5f5!important}.mdui-theme-primary-grey .mdui-text-color-theme-200{color:#eee!important}.mdui-theme-primary-grey .mdui-text-color-theme-300{color:#e0e0e0!important}.mdui-theme-primary-grey .mdui-text-color-theme-400{color:#bdbdbd!important}.mdui-theme-primary-grey .mdui-text-color-theme-500{color:#9e9e9e!important}.mdui-theme-primary-grey .mdui-text-color-theme-600{color:#757575!important}.mdui-theme-primary-grey .mdui-text-color-theme-700{color:#616161!important}.mdui-theme-primary-grey .mdui-text-color-theme-800{color:#424242!important}.mdui-theme-primary-grey .mdui-text-color-theme-900{color:#212121!important}.mdui-theme-primary-indigo .mdui-text-color-theme{color:#3f51b5!important}.mdui-theme-primary-indigo .mdui-text-color-theme-50{color:#e8eaf6!important}.mdui-theme-primary-indigo .mdui-text-color-theme-100{color:#c5cae9!important}.mdui-theme-primary-indigo .mdui-text-color-theme-200{color:#9fa8da!important}.mdui-theme-primary-indigo .mdui-text-color-theme-300{color:#7986cb!important}.mdui-theme-primary-indigo .mdui-text-color-theme-400{color:#5c6bc0!important}.mdui-theme-primary-indigo .mdui-text-color-theme-500{color:#3f51b5!important}.mdui-theme-primary-indigo .mdui-text-color-theme-600{color:#3949ab!important}.mdui-theme-primary-indigo .mdui-text-color-theme-700{color:#303f9f!important}.mdui-theme-primary-indigo .mdui-text-color-theme-800{color:#283593!important}.mdui-theme-primary-indigo .mdui-text-color-theme-900{color:#1a237e!important}.mdui-theme-primary-light-blue .mdui-text-color-theme{color:#03a9f4!important}.mdui-theme-primary-light-blue .mdui-text-color-theme-50{color:#e1f5fe!important}.mdui-theme-primary-light-blue .mdui-text-color-theme-100{color:#b3e5fc!important}.mdui-theme-primary-light-blue .mdui-text-color-theme-200{color:#81d4fa!important}.mdui-theme-primary-light-blue .mdui-text-color-theme-300{color:#4fc3f7!important}.mdui-theme-primary-light-blue .mdui-text-color-theme-400{color:#29b6f6!important}.mdui-theme-primary-light-blue .mdui-text-color-theme-500{color:#03a9f4!important}.mdui-theme-primary-light-blue .mdui-text-color-theme-600{color:#039be5!important}.mdui-theme-primary-light-blue .mdui-text-color-theme-700{color:#0288d1!important}.mdui-theme-primary-light-blue .mdui-text-color-theme-800{color:#0277bd!important}.mdui-theme-primary-light-blue .mdui-text-color-theme-900{color:#01579b!important}.mdui-theme-primary-light-green .mdui-text-color-theme{color:#8bc34a!important}.mdui-theme-primary-light-green .mdui-text-color-theme-50{color:#f1f8e9!important}.mdui-theme-primary-light-green .mdui-text-color-theme-100{color:#dcedc8!important}.mdui-theme-primary-light-green .mdui-text-color-theme-200{color:#c5e1a5!important}.mdui-theme-primary-light-green .mdui-text-color-theme-300{color:#aed581!important}.mdui-theme-primary-light-green .mdui-text-color-theme-400{color:#9ccc65!important}.mdui-theme-primary-light-green .mdui-text-color-theme-500{color:#8bc34a!important}.mdui-theme-primary-light-green .mdui-text-color-theme-600{color:#7cb342!important}.mdui-theme-primary-light-green .mdui-text-color-theme-700{color:#689f38!important}.mdui-theme-primary-light-green .mdui-text-color-theme-800{color:#558b2f!important}.mdui-theme-primary-light-green .mdui-text-color-theme-900{color:#33691e!important}.mdui-theme-primary-lime .mdui-text-color-theme{color:#cddc39!important}.mdui-theme-primary-lime .mdui-text-color-theme-50{color:#f9fbe7!important}.mdui-theme-primary-lime .mdui-text-color-theme-100{color:#f0f4c3!important}.mdui-theme-primary-lime .mdui-text-color-theme-200{color:#e6ee9c!important}.mdui-theme-primary-lime .mdui-text-color-theme-300{color:#dce775!important}.mdui-theme-primary-lime .mdui-text-color-theme-400{color:#d4e157!important}.mdui-theme-primary-lime .mdui-text-color-theme-500{color:#cddc39!important}.mdui-theme-primary-lime .mdui-text-color-theme-600{color:#c0ca33!important}.mdui-theme-primary-lime .mdui-text-color-theme-700{color:#afb42b!important}.mdui-theme-primary-lime .mdui-text-color-theme-800{color:#9e9d24!important}.mdui-theme-primary-lime .mdui-text-color-theme-900{color:#827717!important}.mdui-theme-primary-orange .mdui-text-color-theme{color:#ff9800!important}.mdui-theme-primary-orange .mdui-text-color-theme-50{color:#fff3e0!important}.mdui-theme-primary-orange .mdui-text-color-theme-100{color:#ffe0b2!important}.mdui-theme-primary-orange .mdui-text-color-theme-200{color:#ffcc80!important}.mdui-theme-primary-orange .mdui-text-color-theme-300{color:#ffb74d!important}.mdui-theme-primary-orange .mdui-text-color-theme-400{color:#ffa726!important}.mdui-theme-primary-orange .mdui-text-color-theme-500{color:#ff9800!important}.mdui-theme-primary-orange .mdui-text-color-theme-600{color:#fb8c00!important}.mdui-theme-primary-orange .mdui-text-color-theme-700{color:#f57c00!important}.mdui-theme-primary-orange .mdui-text-color-theme-800{color:#ef6c00!important}.mdui-theme-primary-orange .mdui-text-color-theme-900{color:#e65100!important}.mdui-theme-primary-pink .mdui-text-color-theme{color:#e91e63!important}.mdui-theme-primary-pink .mdui-text-color-theme-50{color:#fce4ec!important}.mdui-theme-primary-pink .mdui-text-color-theme-100{color:#f8bbd0!important}.mdui-theme-primary-pink .mdui-text-color-theme-200{color:#f48fb1!important}.mdui-theme-primary-pink .mdui-text-color-theme-300{color:#f06292!important}.mdui-theme-primary-pink .mdui-text-color-theme-400{color:#ec407a!important}.mdui-theme-primary-pink .mdui-text-color-theme-500{color:#e91e63!important}.mdui-theme-primary-pink .mdui-text-color-theme-600{color:#d81b60!important}.mdui-theme-primary-pink .mdui-text-color-theme-700{color:#c2185b!important}.mdui-theme-primary-pink .mdui-text-color-theme-800{color:#ad1457!important}.mdui-theme-primary-pink .mdui-text-color-theme-900{color:#880e4f!important}.mdui-theme-primary-purple .mdui-text-color-theme{color:#9c27b0!important}.mdui-theme-primary-purple .mdui-text-color-theme-50{color:#f3e5f5!important}.mdui-theme-primary-purple .mdui-text-color-theme-100{color:#e1bee7!important}.mdui-theme-primary-purple .mdui-text-color-theme-200{color:#ce93d8!important}.mdui-theme-primary-purple .mdui-text-color-theme-300{color:#ba68c8!important}.mdui-theme-primary-purple .mdui-text-color-theme-400{color:#ab47bc!important}.mdui-theme-primary-purple .mdui-text-color-theme-500{color:#9c27b0!important}.mdui-theme-primary-purple .mdui-text-color-theme-600{color:#8e24aa!important}.mdui-theme-primary-purple .mdui-text-color-theme-700{color:#7b1fa2!important}.mdui-theme-primary-purple .mdui-text-color-theme-800{color:#6a1b9a!important}.mdui-theme-primary-purple .mdui-text-color-theme-900{color:#4a148c!important}.mdui-theme-primary-red .mdui-text-color-theme{color:#f44336!important}.mdui-theme-primary-red .mdui-text-color-theme-50{color:#ffebee!important}.mdui-theme-primary-red .mdui-text-color-theme-100{color:#ffcdd2!important}.mdui-theme-primary-red .mdui-text-color-theme-200{color:#ef9a9a!important}.mdui-theme-primary-red .mdui-text-color-theme-300{color:#e57373!important}.mdui-theme-primary-red .mdui-text-color-theme-400{color:#ef5350!important}.mdui-theme-primary-red .mdui-text-color-theme-500{color:#f44336!important}.mdui-theme-primary-red .mdui-text-color-theme-600{color:#e53935!important}.mdui-theme-primary-red .mdui-text-color-theme-700{color:#d32f2f!important}.mdui-theme-primary-red .mdui-text-color-theme-800{color:#c62828!important}.mdui-theme-primary-red .mdui-text-color-theme-900{color:#b71c1c!important}.mdui-theme-primary-teal .mdui-text-color-theme{color:#009688!important}.mdui-theme-primary-teal .mdui-text-color-theme-50{color:#e0f2f1!important}.mdui-theme-primary-teal .mdui-text-color-theme-100{color:#b2dfdb!important}.mdui-theme-primary-teal .mdui-text-color-theme-200{color:#80cbc4!important}.mdui-theme-primary-teal .mdui-text-color-theme-300{color:#4db6ac!important}.mdui-theme-primary-teal .mdui-text-color-theme-400{color:#26a69a!important}.mdui-theme-primary-teal .mdui-text-color-theme-500{color:#009688!important}.mdui-theme-primary-teal .mdui-text-color-theme-600{color:#00897b!important}.mdui-theme-primary-teal .mdui-text-color-theme-700{color:#00796b!important}.mdui-theme-primary-teal .mdui-text-color-theme-800{color:#00695c!important}.mdui-theme-primary-teal .mdui-text-color-theme-900{color:#004d40!important}.mdui-theme-primary-yellow .mdui-text-color-theme{color:#ffeb3b!important}.mdui-theme-primary-yellow .mdui-text-color-theme-50{color:#fffde7!important}.mdui-theme-primary-yellow .mdui-text-color-theme-100{color:#fff9c4!important}.mdui-theme-primary-yellow .mdui-text-color-theme-200{color:#fff59d!important}.mdui-theme-primary-yellow .mdui-text-color-theme-300{color:#fff176!important}.mdui-theme-primary-yellow .mdui-text-color-theme-400{color:#ffee58!important}.mdui-theme-primary-yellow .mdui-text-color-theme-500{color:#ffeb3b!important}.mdui-theme-primary-yellow .mdui-text-color-theme-600{color:#fdd835!important}.mdui-theme-primary-yellow .mdui-text-color-theme-700{color:#fbc02d!important}.mdui-theme-primary-yellow .mdui-text-color-theme-800{color:#f9a825!important}.mdui-theme-primary-yellow .mdui-text-color-theme-900{color:#f57f17!important}.mdui-theme-accent-amber .mdui-text-color-theme-accent{color:#ffd740!important}.mdui-theme-accent-amber .mdui-text-color-theme-a100{color:#ffe57f!important}.mdui-theme-accent-amber .mdui-text-color-theme-a200{color:#ffd740!important}.mdui-theme-accent-amber .mdui-text-color-theme-a400{color:#ffc400!important}.mdui-theme-accent-amber .mdui-text-color-theme-a700{color:#ffab00!important}.mdui-theme-accent-blue .mdui-text-color-theme-accent{color:#448aff!important}.mdui-theme-accent-blue .mdui-text-color-theme-a100{color:#82b1ff!important}.mdui-theme-accent-blue .mdui-text-color-theme-a200{color:#448aff!important}.mdui-theme-accent-blue .mdui-text-color-theme-a400{color:#2979ff!important}.mdui-theme-accent-blue .mdui-text-color-theme-a700{color:#2962ff!important}.mdui-theme-accent-cyan .mdui-text-color-theme-accent{color:#18ffff!important}.mdui-theme-accent-cyan .mdui-text-color-theme-a100{color:#84ffff!important}.mdui-theme-accent-cyan .mdui-text-color-theme-a200{color:#18ffff!important}.mdui-theme-accent-cyan .mdui-text-color-theme-a400{color:#00e5ff!important}.mdui-theme-accent-cyan .mdui-text-color-theme-a700{color:#00b8d4!important}.mdui-theme-accent-deep-orange .mdui-text-color-theme-accent{color:#ff6e40!important}.mdui-theme-accent-deep-orange .mdui-text-color-theme-a100{color:#ff9e80!important}.mdui-theme-accent-deep-orange .mdui-text-color-theme-a200{color:#ff6e40!important}.mdui-theme-accent-deep-orange .mdui-text-color-theme-a400{color:#ff3d00!important}.mdui-theme-accent-deep-orange .mdui-text-color-theme-a700{color:#dd2c00!important}.mdui-theme-accent-deep-purple .mdui-text-color-theme-accent{color:#7c4dff!important}.mdui-theme-accent-deep-purple .mdui-text-color-theme-a100{color:#b388ff!important}.mdui-theme-accent-deep-purple .mdui-text-color-theme-a200{color:#7c4dff!important}.mdui-theme-accent-deep-purple .mdui-text-color-theme-a400{color:#651fff!important}.mdui-theme-accent-deep-purple .mdui-text-color-theme-a700{color:#6200ea!important}.mdui-theme-accent-green .mdui-text-color-theme-accent{color:#69f0ae!important}.mdui-theme-accent-green .mdui-text-color-theme-a100{color:#b9f6ca!important}.mdui-theme-accent-green .mdui-text-color-theme-a200{color:#69f0ae!important}.mdui-theme-accent-green .mdui-text-color-theme-a400{color:#00e676!important}.mdui-theme-accent-green .mdui-text-color-theme-a700{color:#00c853!important}.mdui-theme-accent-indigo .mdui-text-color-theme-accent{color:#536dfe!important}.mdui-theme-accent-indigo .mdui-text-color-theme-a100{color:#8c9eff!important}.mdui-theme-accent-indigo .mdui-text-color-theme-a200{color:#536dfe!important}.mdui-theme-accent-indigo .mdui-text-color-theme-a400{color:#3d5afe!important}.mdui-theme-accent-indigo .mdui-text-color-theme-a700{color:#304ffe!important}.mdui-theme-accent-light-blue .mdui-text-color-theme-accent{color:#40c4ff!important}.mdui-theme-accent-light-blue .mdui-text-color-theme-a100{color:#80d8ff!important}.mdui-theme-accent-light-blue .mdui-text-color-theme-a200{color:#40c4ff!important}.mdui-theme-accent-light-blue .mdui-text-color-theme-a400{color:#00b0ff!important}.mdui-theme-accent-light-blue .mdui-text-color-theme-a700{color:#0091ea!important}.mdui-theme-accent-light-green .mdui-text-color-theme-accent{color:#b2ff59!important}.mdui-theme-accent-light-green .mdui-text-color-theme-a100{color:#ccff90!important}.mdui-theme-accent-light-green .mdui-text-color-theme-a200{color:#b2ff59!important}.mdui-theme-accent-light-green .mdui-text-color-theme-a400{color:#76ff03!important}.mdui-theme-accent-light-green .mdui-text-color-theme-a700{color:#64dd17!important}.mdui-theme-accent-lime .mdui-text-color-theme-accent{color:#eeff41!important}.mdui-theme-accent-lime .mdui-text-color-theme-a100{color:#f4ff81!important}.mdui-theme-accent-lime .mdui-text-color-theme-a200{color:#eeff41!important}.mdui-theme-accent-lime .mdui-text-color-theme-a400{color:#c6ff00!important}.mdui-theme-accent-lime .mdui-text-color-theme-a700{color:#aeea00!important}.mdui-theme-accent-orange .mdui-text-color-theme-accent{color:#ffab40!important}.mdui-theme-accent-orange .mdui-text-color-theme-a100{color:#ffd180!important}.mdui-theme-accent-orange .mdui-text-color-theme-a200{color:#ffab40!important}.mdui-theme-accent-orange .mdui-text-color-theme-a400{color:#ff9100!important}.mdui-theme-accent-orange .mdui-text-color-theme-a700{color:#ff6d00!important}.mdui-theme-accent-pink .mdui-text-color-theme-accent{color:#ff4081!important}.mdui-theme-accent-pink .mdui-text-color-theme-a100{color:#ff80ab!important}.mdui-theme-accent-pink .mdui-text-color-theme-a200{color:#ff4081!important}.mdui-theme-accent-pink .mdui-text-color-theme-a400{color:#f50057!important}.mdui-theme-accent-pink .mdui-text-color-theme-a700{color:#c51162!important}.mdui-theme-accent-purple .mdui-text-color-theme-accent{color:#e040fb!important}.mdui-theme-accent-purple .mdui-text-color-theme-a100{color:#ea80fc!important}.mdui-theme-accent-purple .mdui-text-color-theme-a200{color:#e040fb!important}.mdui-theme-accent-purple .mdui-text-color-theme-a400{color:#d500f9!important}.mdui-theme-accent-purple .mdui-text-color-theme-a700{color:#a0f!important}.mdui-theme-accent-red .mdui-text-color-theme-accent{color:#ff5252!important}.mdui-theme-accent-red .mdui-text-color-theme-a100{color:#ff8a80!important}.mdui-theme-accent-red .mdui-text-color-theme-a200{color:#ff5252!important}.mdui-theme-accent-red .mdui-text-color-theme-a400{color:#ff1744!important}.mdui-theme-accent-red .mdui-text-color-theme-a700{color:#d50000!important}.mdui-theme-accent-teal .mdui-text-color-theme-accent{color:#64ffda!important}.mdui-theme-accent-teal .mdui-text-color-theme-a100{color:#a7ffeb!important}.mdui-theme-accent-teal .mdui-text-color-theme-a200{color:#64ffda!important}.mdui-theme-accent-teal .mdui-text-color-theme-a400{color:#1de9b6!important}.mdui-theme-accent-teal .mdui-text-color-theme-a700{color:#00bfa5!important}.mdui-theme-accent-yellow .mdui-text-color-theme-accent{color:#ff0!important}.mdui-theme-accent-yellow .mdui-text-color-theme-a100{color:#ffff8d!important}.mdui-theme-accent-yellow .mdui-text-color-theme-a200{color:#ff0!important}.mdui-theme-accent-yellow .mdui-text-color-theme-a400{color:#ffea00!important}.mdui-theme-accent-yellow .mdui-text-color-theme-a700{color:#ffd600!important}.mdui-text-color-amber{color:#ffc107!important}.mdui-text-color-amber-50{color:#fff8e1!important}.mdui-text-color-amber-100{color:#ffecb3!important}.mdui-text-color-amber-200{color:#ffe082!important}.mdui-text-color-amber-300{color:#ffd54f!important}.mdui-text-color-amber-400{color:#ffca28!important}.mdui-text-color-amber-500{color:#ffc107!important}.mdui-text-color-amber-600{color:#ffb300!important}.mdui-text-color-amber-700{color:#ffa000!important}.mdui-text-color-amber-800{color:#ff8f00!important}.mdui-text-color-amber-900{color:#ff6f00!important}.mdui-text-color-blue{color:#2196f3!important}.mdui-text-color-blue-50{color:#e3f2fd!important}.mdui-text-color-blue-100{color:#bbdefb!important}.mdui-text-color-blue-200{color:#90caf9!important}.mdui-text-color-blue-300{color:#64b5f6!important}.mdui-text-color-blue-400{color:#42a5f5!important}.mdui-text-color-blue-500{color:#2196f3!important}.mdui-text-color-blue-600{color:#1e88e5!important}.mdui-text-color-blue-700{color:#1976d2!important}.mdui-text-color-blue-800{color:#1565c0!important}.mdui-text-color-blue-900{color:#0d47a1!important}.mdui-text-color-blue-grey{color:#607d8b!important}.mdui-text-color-blue-grey-50{color:#eceff1!important}.mdui-text-color-blue-grey-100{color:#cfd8dc!important}.mdui-text-color-blue-grey-200{color:#b0bec5!important}.mdui-text-color-blue-grey-300{color:#90a4ae!important}.mdui-text-color-blue-grey-400{color:#78909c!important}.mdui-text-color-blue-grey-500{color:#607d8b!important}.mdui-text-color-blue-grey-600{color:#546e7a!important}.mdui-text-color-blue-grey-700{color:#455a64!important}.mdui-text-color-blue-grey-800{color:#37474f!important}.mdui-text-color-blue-grey-900{color:#263238!important}.mdui-text-color-brown{color:#795548!important}.mdui-text-color-brown-50{color:#efebe9!important}.mdui-text-color-brown-100{color:#d7ccc8!important}.mdui-text-color-brown-200{color:#bcaaa4!important}.mdui-text-color-brown-300{color:#a1887f!important}.mdui-text-color-brown-400{color:#8d6e63!important}.mdui-text-color-brown-500{color:#795548!important}.mdui-text-color-brown-600{color:#6d4c41!important}.mdui-text-color-brown-700{color:#5d4037!important}.mdui-text-color-brown-800{color:#4e342e!important}.mdui-text-color-brown-900{color:#3e2723!important}.mdui-text-color-cyan{color:#00bcd4!important}.mdui-text-color-cyan-50{color:#e0f7fa!important}.mdui-text-color-cyan-100{color:#b2ebf2!important}.mdui-text-color-cyan-200{color:#80deea!important}.mdui-text-color-cyan-300{color:#4dd0e1!important}.mdui-text-color-cyan-400{color:#26c6da!important}.mdui-text-color-cyan-500{color:#00bcd4!important}.mdui-text-color-cyan-600{color:#00acc1!important}.mdui-text-color-cyan-700{color:#0097a7!important}.mdui-text-color-cyan-800{color:#00838f!important}.mdui-text-color-cyan-900{color:#006064!important}.mdui-text-color-deep-orange{color:#ff5722!important}.mdui-text-color-deep-orange-50{color:#fbe9e7!important}.mdui-text-color-deep-orange-100{color:#ffccbc!important}.mdui-text-color-deep-orange-200{color:#ffab91!important}.mdui-text-color-deep-orange-300{color:#ff8a65!important}.mdui-text-color-deep-orange-400{color:#ff7043!important}.mdui-text-color-deep-orange-500{color:#ff5722!important}.mdui-text-color-deep-orange-600{color:#f4511e!important}.mdui-text-color-deep-orange-700{color:#e64a19!important}.mdui-text-color-deep-orange-800{color:#d84315!important}.mdui-text-color-deep-orange-900{color:#bf360c!important}.mdui-text-color-deep-purple{color:#673ab7!important}.mdui-text-color-deep-purple-50{color:#ede7f6!important}.mdui-text-color-deep-purple-100{color:#d1c4e9!important}.mdui-text-color-deep-purple-200{color:#b39ddb!important}.mdui-text-color-deep-purple-300{color:#9575cd!important}.mdui-text-color-deep-purple-400{color:#7e57c2!important}.mdui-text-color-deep-purple-500{color:#673ab7!important}.mdui-text-color-deep-purple-600{color:#5e35b1!important}.mdui-text-color-deep-purple-700{color:#512da8!important}.mdui-text-color-deep-purple-800{color:#4527a0!important}.mdui-text-color-deep-purple-900{color:#311b92!important}.mdui-text-color-green{color:#4caf50!important}.mdui-text-color-green-50{color:#e8f5e9!important}.mdui-text-color-green-100{color:#c8e6c9!important}.mdui-text-color-green-200{color:#a5d6a7!important}.mdui-text-color-green-300{color:#81c784!important}.mdui-text-color-green-400{color:#66bb6a!important}.mdui-text-color-green-500{color:#4caf50!important}.mdui-text-color-green-600{color:#43a047!important}.mdui-text-color-green-700{color:#388e3c!important}.mdui-text-color-green-800{color:#2e7d32!important}.mdui-text-color-green-900{color:#1b5e20!important}.mdui-text-color-grey{color:#9e9e9e!important}.mdui-text-color-grey-50{color:#fafafa!important}.mdui-text-color-grey-100{color:#f5f5f5!important}.mdui-text-color-grey-200{color:#eee!important}.mdui-text-color-grey-300{color:#e0e0e0!important}.mdui-text-color-grey-400{color:#bdbdbd!important}.mdui-text-color-grey-500{color:#9e9e9e!important}.mdui-text-color-grey-600{color:#757575!important}.mdui-text-color-grey-700{color:#616161!important}.mdui-text-color-grey-800{color:#424242!important}.mdui-text-color-grey-900{color:#212121!important}.mdui-text-color-indigo{color:#3f51b5!important}.mdui-text-color-indigo-50{color:#e8eaf6!important}.mdui-text-color-indigo-100{color:#c5cae9!important}.mdui-text-color-indigo-200{color:#9fa8da!important}.mdui-text-color-indigo-300{color:#7986cb!important}.mdui-text-color-indigo-400{color:#5c6bc0!important}.mdui-text-color-indigo-500{color:#3f51b5!important}.mdui-text-color-indigo-600{color:#3949ab!important}.mdui-text-color-indigo-700{color:#303f9f!important}.mdui-text-color-indigo-800{color:#283593!important}.mdui-text-color-indigo-900{color:#1a237e!important}.mdui-text-color-light-blue{color:#03a9f4!important}.mdui-text-color-light-blue-50{color:#e1f5fe!important}.mdui-text-color-light-blue-100{color:#b3e5fc!important}.mdui-text-color-light-blue-200{color:#81d4fa!important}.mdui-text-color-light-blue-300{color:#4fc3f7!important}.mdui-text-color-light-blue-400{color:#29b6f6!important}.mdui-text-color-light-blue-500{color:#03a9f4!important}.mdui-text-color-light-blue-600{color:#039be5!important}.mdui-text-color-light-blue-700{color:#0288d1!important}.mdui-text-color-light-blue-800{color:#0277bd!important}.mdui-text-color-light-blue-900{color:#01579b!important}.mdui-text-color-light-green{color:#8bc34a!important}.mdui-text-color-light-green-50{color:#f1f8e9!important}.mdui-text-color-light-green-100{color:#dcedc8!important}.mdui-text-color-light-green-200{color:#c5e1a5!important}.mdui-text-color-light-green-300{color:#aed581!important}.mdui-text-color-light-green-400{color:#9ccc65!important}.mdui-text-color-light-green-500{color:#8bc34a!important}.mdui-text-color-light-green-600{color:#7cb342!important}.mdui-text-color-light-green-700{color:#689f38!important}.mdui-text-color-light-green-800{color:#558b2f!important}.mdui-text-color-light-green-900{color:#33691e!important}.mdui-text-color-lime{color:#cddc39!important}.mdui-text-color-lime-50{color:#f9fbe7!important}.mdui-text-color-lime-100{color:#f0f4c3!important}.mdui-text-color-lime-200{color:#e6ee9c!important}.mdui-text-color-lime-300{color:#dce775!important}.mdui-text-color-lime-400{color:#d4e157!important}.mdui-text-color-lime-500{color:#cddc39!important}.mdui-text-color-lime-600{color:#c0ca33!important}.mdui-text-color-lime-700{color:#afb42b!important}.mdui-text-color-lime-800{color:#9e9d24!important}.mdui-text-color-lime-900{color:#827717!important}.mdui-text-color-orange{color:#ff9800!important}.mdui-text-color-orange-50{color:#fff3e0!important}.mdui-text-color-orange-100{color:#ffe0b2!important}.mdui-text-color-orange-200{color:#ffcc80!important}.mdui-text-color-orange-300{color:#ffb74d!important}.mdui-text-color-orange-400{color:#ffa726!important}.mdui-text-color-orange-500{color:#ff9800!important}.mdui-text-color-orange-600{color:#fb8c00!important}.mdui-text-color-orange-700{color:#f57c00!important}.mdui-text-color-orange-800{color:#ef6c00!important}.mdui-text-color-orange-900{color:#e65100!important}.mdui-text-color-pink{color:#e91e63!important}.mdui-text-color-pink-50{color:#fce4ec!important}.mdui-text-color-pink-100{color:#f8bbd0!important}.mdui-text-color-pink-200{color:#f48fb1!important}.mdui-text-color-pink-300{color:#f06292!important}.mdui-text-color-pink-400{color:#ec407a!important}.mdui-text-color-pink-500{color:#e91e63!important}.mdui-text-color-pink-600{color:#d81b60!important}.mdui-text-color-pink-700{color:#c2185b!important}.mdui-text-color-pink-800{color:#ad1457!important}.mdui-text-color-pink-900{color:#880e4f!important}.mdui-text-color-purple{color:#9c27b0!important}.mdui-text-color-purple-50{color:#f3e5f5!important}.mdui-text-color-purple-100{color:#e1bee7!important}.mdui-text-color-purple-200{color:#ce93d8!important}.mdui-text-color-purple-300{color:#ba68c8!important}.mdui-text-color-purple-400{color:#ab47bc!important}.mdui-text-color-purple-500{color:#9c27b0!important}.mdui-text-color-purple-600{color:#8e24aa!important}.mdui-text-color-purple-700{color:#7b1fa2!important}.mdui-text-color-purple-800{color:#6a1b9a!important}.mdui-text-color-purple-900{color:#4a148c!important}.mdui-text-color-red{color:#f44336!important}.mdui-text-color-red-50{color:#ffebee!important}.mdui-text-color-red-100{color:#ffcdd2!important}.mdui-text-color-red-200{color:#ef9a9a!important}.mdui-text-color-red-300{color:#e57373!important}.mdui-text-color-red-400{color:#ef5350!important}.mdui-text-color-red-500{color:#f44336!important}.mdui-text-color-red-600{color:#e53935!important}.mdui-text-color-red-700{color:#d32f2f!important}.mdui-text-color-red-800{color:#c62828!important}.mdui-text-color-red-900{color:#b71c1c!important}.mdui-text-color-teal{color:#009688!important}.mdui-text-color-teal-50{color:#e0f2f1!important}.mdui-text-color-teal-100{color:#b2dfdb!important}.mdui-text-color-teal-200{color:#80cbc4!important}.mdui-text-color-teal-300{color:#4db6ac!important}.mdui-text-color-teal-400{color:#26a69a!important}.mdui-text-color-teal-500{color:#009688!important}.mdui-text-color-teal-600{color:#00897b!important}.mdui-text-color-teal-700{color:#00796b!important}.mdui-text-color-teal-800{color:#00695c!important}.mdui-text-color-teal-900{color:#004d40!important}.mdui-text-color-yellow{color:#ffeb3b!important}.mdui-text-color-yellow-50{color:#fffde7!important}.mdui-text-color-yellow-100{color:#fff9c4!important}.mdui-text-color-yellow-200{color:#fff59d!important}.mdui-text-color-yellow-300{color:#fff176!important}.mdui-text-color-yellow-400{color:#ffee58!important}.mdui-text-color-yellow-500{color:#ffeb3b!important}.mdui-text-color-yellow-600{color:#fdd835!important}.mdui-text-color-yellow-700{color:#fbc02d!important}.mdui-text-color-yellow-800{color:#f9a825!important}.mdui-text-color-yellow-900{color:#f57f17!important}.mdui-text-color-amber-accent{color:#ffd740!important}.mdui-text-color-amber-a100{color:#ffe57f!important}.mdui-text-color-amber-a200{color:#ffd740!important}.mdui-text-color-amber-a400{color:#ffc400!important}.mdui-text-color-amber-a700{color:#ffab00!important}.mdui-text-color-blue-accent{color:#448aff!important}.mdui-text-color-blue-a100{color:#82b1ff!important}.mdui-text-color-blue-a200{color:#448aff!important}.mdui-text-color-blue-a400{color:#2979ff!important}.mdui-text-color-blue-a700{color:#2962ff!important}.mdui-text-color-cyan-accent{color:#18ffff!important}.mdui-text-color-cyan-a100{color:#84ffff!important}.mdui-text-color-cyan-a200{color:#18ffff!important}.mdui-text-color-cyan-a400{color:#00e5ff!important}.mdui-text-color-cyan-a700{color:#00b8d4!important}.mdui-text-color-deep-orange-accent{color:#ff6e40!important}.mdui-text-color-deep-orange-a100{color:#ff9e80!important}.mdui-text-color-deep-orange-a200{color:#ff6e40!important}.mdui-text-color-deep-orange-a400{color:#ff3d00!important}.mdui-text-color-deep-orange-a700{color:#dd2c00!important}.mdui-text-color-deep-purple-accent{color:#7c4dff!important}.mdui-text-color-deep-purple-a100{color:#b388ff!important}.mdui-text-color-deep-purple-a200{color:#7c4dff!important}.mdui-text-color-deep-purple-a400{color:#651fff!important}.mdui-text-color-deep-purple-a700{color:#6200ea!important}.mdui-text-color-green-accent{color:#69f0ae!important}.mdui-text-color-green-a100{color:#b9f6ca!important}.mdui-text-color-green-a200{color:#69f0ae!important}.mdui-text-color-green-a400{color:#00e676!important}.mdui-text-color-green-a700{color:#00c853!important}.mdui-text-color-indigo-accent{color:#536dfe!important}.mdui-text-color-indigo-a100{color:#8c9eff!important}.mdui-text-color-indigo-a200{color:#536dfe!important}.mdui-text-color-indigo-a400{color:#3d5afe!important}.mdui-text-color-indigo-a700{color:#304ffe!important}.mdui-text-color-light-blue-accent{color:#40c4ff!important}.mdui-text-color-light-blue-a100{color:#80d8ff!important}.mdui-text-color-light-blue-a200{color:#40c4ff!important}.mdui-text-color-light-blue-a400{color:#00b0ff!important}.mdui-text-color-light-blue-a700{color:#0091ea!important}.mdui-text-color-light-green-accent{color:#b2ff59!important}.mdui-text-color-light-green-a100{color:#ccff90!important}.mdui-text-color-light-green-a200{color:#b2ff59!important}.mdui-text-color-light-green-a400{color:#76ff03!important}.mdui-text-color-light-green-a700{color:#64dd17!important}.mdui-text-color-lime-accent{color:#eeff41!important}.mdui-text-color-lime-a100{color:#f4ff81!important}.mdui-text-color-lime-a200{color:#eeff41!important}.mdui-text-color-lime-a400{color:#c6ff00!important}.mdui-text-color-lime-a700{color:#aeea00!important}.mdui-text-color-orange-accent{color:#ffab40!important}.mdui-text-color-orange-a100{color:#ffd180!important}.mdui-text-color-orange-a200{color:#ffab40!important}.mdui-text-color-orange-a400{color:#ff9100!important}.mdui-text-color-orange-a700{color:#ff6d00!important}.mdui-text-color-pink-accent{color:#ff4081!important}.mdui-text-color-pink-a100{color:#ff80ab!important}.mdui-text-color-pink-a200{color:#ff4081!important}.mdui-text-color-pink-a400{color:#f50057!important}.mdui-text-color-pink-a700{color:#c51162!important}.mdui-text-color-purple-accent{color:#e040fb!important}.mdui-text-color-purple-a100{color:#ea80fc!important}.mdui-text-color-purple-a200{color:#e040fb!important}.mdui-text-color-purple-a400{color:#d500f9!important}.mdui-text-color-purple-a700{color:#a0f!important}.mdui-text-color-red-accent{color:#ff5252!important}.mdui-text-color-red-a100{color:#ff8a80!important}.mdui-text-color-red-a200{color:#ff5252!important}.mdui-text-color-red-a400{color:#ff1744!important}.mdui-text-color-red-a700{color:#d50000!important}.mdui-text-color-teal-accent{color:#64ffda!important}.mdui-text-color-teal-a100{color:#a7ffeb!important}.mdui-text-color-teal-a200{color:#64ffda!important}.mdui-text-color-teal-a400{color:#1de9b6!important}.mdui-text-color-teal-a700{color:#00bfa5!important}.mdui-text-color-yellow-accent{color:#ff0!important}.mdui-text-color-yellow-a100{color:#ffff8d!important}.mdui-text-color-yellow-a200{color:#ff0!important}.mdui-text-color-yellow-a400{color:#ffea00!important}.mdui-text-color-yellow-a700{color:#ffd600!important}.mdui-text-color-black{color:#000!important}.mdui-text-color-black-text,.mdui-text-color-theme-text{color:rgba(0,0,0,.87)!important}.mdui-text-color-black-secondary,.mdui-text-color-theme-secondary{color:rgba(0,0,0,.54)!important}.mdui-text-color-black-disabled,.mdui-text-color-theme-disabled{color:rgba(0,0,0,.38)!important}.mdui-text-color-black-divider,.mdui-text-color-theme-divider{color:rgba(0,0,0,.12)!important}.mdui-text-color-black-icon,.mdui-text-color-theme-icon{color:rgba(0,0,0,.54)!important}.mdui-text-color-black-icon-disabled,.mdui-text-color-theme-icon-disabled{color:rgba(0,0,0,.26)!important}.mdui-text-color-white{color:#fff!important}.mdui-text-color-white-text{color:#fff!important}.mdui-text-color-white-secondary{color:rgba(255,255,255,.7)!important}.mdui-text-color-white-disabled{color:rgba(255,255,255,.5)!important}.mdui-text-color-white-divider{color:rgba(255,255,255,.12)!important}.mdui-text-color-white-icon{color:#fff!important}.mdui-text-color-white-icon-disabled{color:rgba(255,255,255,.3)!important}.mdui-theme-layout-dark .mdui-text-color-theme-text{color:#fff!important}.mdui-theme-layout-dark .mdui-text-color-theme-secondary{color:rgba(255,255,255,.7)!important}.mdui-theme-layout-dark .mdui-text-color-theme-disabled{color:rgba(255,255,255,.5)!important}.mdui-theme-layout-dark .mdui-text-color-theme-divider{color:rgba(255,255,255,.12)!important}.mdui-theme-layout-dark .mdui-text-color-theme-icon{color:#fff!important}.mdui-theme-layout-dark .mdui-text-color-theme-icon-disabled{color:rgba(255,255,255,.3)!important}@media (prefers-color-scheme:dark){.mdui-theme-layout-auto .mdui-text-color-theme-text{color:#fff!important}.mdui-theme-layout-auto .mdui-text-color-theme-secondary{color:rgba(255,255,255,.7)!important}.mdui-theme-layout-auto .mdui-text-color-theme-disabled{color:rgba(255,255,255,.5)!important}.mdui-theme-layout-auto .mdui-text-color-theme-divider{color:rgba(255,255,255,.12)!important}.mdui-theme-layout-auto .mdui-text-color-theme-icon{color:#fff!important}.mdui-theme-layout-auto .mdui-text-color-theme-icon-disabled{color:rgba(255,255,255,.3)!important}}.mdui-m-a-0{margin:0!important}.mdui-m-t-0{margin-top:0!important}.mdui-m-r-0{margin-right:0!important}.mdui-m-b-0{margin-bottom:0!important}.mdui-m-l-0{margin-left:0!important}.mdui-m-x-0{margin-right:0!important;margin-left:0!important}.mdui-m-y-0{margin-top:0!important;margin-bottom:0!important}.mdui-p-a-0{padding:0!important}.mdui-p-t-0{padding-top:0!important}.mdui-p-r-0{padding-right:0!important}.mdui-p-b-0{padding-bottom:0!important}.mdui-p-l-0{padding-left:0!important}.mdui-p-x-0{padding-right:0!important;padding-left:0!important}.mdui-p-y-0{padding-top:0!important;padding-bottom:0!important}.mdui-m-a-1{margin:8px!important}.mdui-m-t-1{margin-top:8px!important}.mdui-m-r-1{margin-right:8px!important}.mdui-m-b-1{margin-bottom:8px!important}.mdui-m-l-1{margin-left:8px!important}.mdui-m-x-1{margin-right:8px!important;margin-left:8px!important}.mdui-m-y-1{margin-top:8px!important;margin-bottom:8px!important}.mdui-p-a-1{padding:8px!important}.mdui-p-t-1{padding-top:8px!important}.mdui-p-r-1{padding-right:8px!important}.mdui-p-b-1{padding-bottom:8px!important}.mdui-p-l-1{padding-left:8px!important}.mdui-p-x-1{padding-right:8px!important;padding-left:8px!important}.mdui-p-y-1{padding-top:8px!important;padding-bottom:8px!important}.mdui-m-a-2{margin:16px!important}.mdui-m-t-2{margin-top:16px!important}.mdui-m-r-2{margin-right:16px!important}.mdui-m-b-2{margin-bottom:16px!important}.mdui-m-l-2{margin-left:16px!important}.mdui-m-x-2{margin-right:16px!important;margin-left:16px!important}.mdui-m-y-2{margin-top:16px!important;margin-bottom:16px!important}.mdui-p-a-2{padding:16px!important}.mdui-p-t-2{padding-top:16px!important}.mdui-p-r-2{padding-right:16px!important}.mdui-p-b-2{padding-bottom:16px!important}.mdui-p-l-2{padding-left:16px!important}.mdui-p-x-2{padding-right:16px!important;padding-left:16px!important}.mdui-p-y-2{padding-top:16px!important;padding-bottom:16px!important}.mdui-m-a-3{margin:24px!important}.mdui-m-t-3{margin-top:24px!important}.mdui-m-r-3{margin-right:24px!important}.mdui-m-b-3{margin-bottom:24px!important}.mdui-m-l-3{margin-left:24px!important}.mdui-m-x-3{margin-right:24px!important;margin-left:24px!important}.mdui-m-y-3{margin-top:24px!important;margin-bottom:24px!important}.mdui-p-a-3{padding:24px!important}.mdui-p-t-3{padding-top:24px!important}.mdui-p-r-3{padding-right:24px!important}.mdui-p-b-3{padding-bottom:24px!important}.mdui-p-l-3{padding-left:24px!important}.mdui-p-x-3{padding-right:24px!important;padding-left:24px!important}.mdui-p-y-3{padding-top:24px!important;padding-bottom:24px!important}.mdui-m-a-4{margin:32px!important}.mdui-m-t-4{margin-top:32px!important}.mdui-m-r-4{margin-right:32px!important}.mdui-m-b-4{margin-bottom:32px!important}.mdui-m-l-4{margin-left:32px!important}.mdui-m-x-4{margin-right:32px!important;margin-left:32px!important}.mdui-m-y-4{margin-top:32px!important;margin-bottom:32px!important}.mdui-p-a-4{padding:32px!important}.mdui-p-t-4{padding-top:32px!important}.mdui-p-r-4{padding-right:32px!important}.mdui-p-b-4{padding-bottom:32px!important}.mdui-p-l-4{padding-left:32px!important}.mdui-p-x-4{padding-right:32px!important;padding-left:32px!important}.mdui-p-y-4{padding-top:32px!important;padding-bottom:32px!important}.mdui-m-a-5{margin:40px!important}.mdui-m-t-5{margin-top:40px!important}.mdui-m-r-5{margin-right:40px!important}.mdui-m-b-5{margin-bottom:40px!important}.mdui-m-l-5{margin-left:40px!important}.mdui-m-x-5{margin-right:40px!important;margin-left:40px!important}.mdui-m-y-5{margin-top:40px!important;margin-bottom:40px!important}.mdui-p-a-5{padding:40px!important}.mdui-p-t-5{padding-top:40px!important}.mdui-p-r-5{padding-right:40px!important}.mdui-p-b-5{padding-bottom:40px!important}.mdui-p-l-5{padding-left:40px!important}.mdui-p-x-5{padding-right:40px!important;padding-left:40px!important}.mdui-p-y-5{padding-top:40px!important;padding-bottom:40px!important}.mdui-float-left{float:left!important}.mdui-float-right{float:right!important}.mdui-center{display:block!important;margin-right:auto!important;margin-left:auto!important}.mdui-valign{display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-webkit-box-align:center!important;-ms-flex-align:center!important;align-items:center!important}.mdui-text-left{text-align:left!important}.mdui-text-center{text-align:center!important}.mdui-text-right{text-align:right!important}.mdui-text-lowercase{text-transform:lowercase!important}.mdui-text-uppercase{text-transform:uppercase!important}.mdui-text-capitalize{text-transform:capitalize!important}.mdui-text-truncate{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mdui-clearfix::after,.mdui-clearfix::before{display:table;content:' '}.mdui-clearfix::after{clear:both}.mdui-hidden,[hidden]{display:none!important}.mdui-invisible{visibility:hidden}@media (max-width:599.9px){.mdui-hidden-xs{display:none!important}}@media (min-width:600px) and (max-width:1023.9px){.mdui-hidden-sm{display:none!important}}@media (min-width:1024px) and (max-width:1439.9px){.mdui-hidden-md{display:none!important}}@media (min-width:1440px) and (max-width:1919.9px){.mdui-hidden-lg{display:none!important}}@media (min-width:1920px){.mdui-hidden-xl{display:none!important}}@media (max-width:599.9px){.mdui-hidden-xs-down{display:none!important}}@media (max-width:1023.9px){.mdui-hidden-sm-down{display:none!important}}@media (max-width:1439.9px){.mdui-hidden-md-down{display:none!important}}@media (max-width:1919.9px){.mdui-hidden-lg-down{display:none!important}}.mdui-hidden-xl-down{display:none!important}.mdui-hidden-xs-up{display:none!important}@media (min-width:600px){.mdui-hidden-sm-up{display:none!important}}@media (min-width:1024px){.mdui-hidden-md-up{display:none!important}}@media (min-width:1440px){.mdui-hidden-lg-up{display:none!important}}@media (min-width:1920px){.mdui-hidden-xl-up{display:none!important}}.mdui-icon,.mdui-icon::before{color:inherit;font-weight:400;font-size:24px;font-style:normal;line-height:1;direction:ltr;letter-spacing:normal;white-space:nowrap;text-transform:none;vertical-align:middle;word-wrap:normal}.mdui-icon{display:inline-block;text-align:center}.mdui-icon::before{display:block!important;width:24px;height:24px}@font-face{font-weight:400;font-family:'Material Icons';font-style:normal;src:local('Material Icons'),local('MaterialIcons-Regular'),url(../icons/material-icons/MaterialIcons-Regular.woff2) format('woff2'),url(../icons/material-icons/MaterialIcons-Regular.woff) format('woff')}.material-icons{font-family:'Material Icons';-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;-webkit-font-feature-settings:'liga';font-feature-settings:'liga'}.mdui-img-fluid,.mdui-video-fluid{display:block;max-width:100%;height:auto}.mdui-img-rounded{border-radius:2px}.mdui-img-circle{border-radius:50%}.mdui-video-container{position:relative;height:0;padding-bottom:56.25%;overflow:hidden}.mdui-video-container embed,.mdui-video-container iframe,.mdui-video-container object{position:absolute;top:0;left:0;width:100%;height:100%}@font-face{font-weight:100;font-family:Roboto;font-style:normal;font-display:swap;src:local('Roboto Thin'),local('Roboto-Thin'),url(../fonts/roboto/Roboto-Thin.woff2) format('woff2'),url(../fonts/roboto/Roboto-Thin.woff) format('woff')}@font-face{font-weight:100;font-family:Roboto;font-style:italic;font-display:swap;src:local('Roboto ThinItalic'),local('Roboto-ThinItalic'),url(../fonts/roboto/Roboto-ThinItalic.woff2) format('woff2'),url(../fonts/roboto/Roboto-ThinItalic.woff) format('woff')}@font-face{font-weight:300;font-family:Roboto;font-style:normal;font-display:swap;src:local('Roboto Light'),local('Roboto-Light'),url(../fonts/roboto/Roboto-Light.woff2) format('woff2'),url(../fonts/roboto/Roboto-Light.woff) format('woff')}@font-face{font-weight:300;font-family:Roboto;font-style:italic;font-display:swap;src:local('Roboto LightItalic'),local('Roboto-LightItalic'),url(../fonts/roboto/Roboto-LightItalic.woff2) format('woff2'),url(../fonts/roboto/Roboto-LightItalic.woff) format('woff')}@font-face{font-weight:400;font-family:Roboto;font-style:normal;font-display:swap;src:local('Roboto Regular'),local('Roboto-Regular'),url(../fonts/roboto/Roboto-Regular.woff2) format('woff2'),url(../fonts/roboto/Roboto-Regular.woff) format('woff')}@font-face{font-weight:400;font-family:Roboto;font-style:italic;font-display:swap;src:local('Roboto RegularItalic'),local('Roboto-RegularItalic'),url(../fonts/roboto/Roboto-RegularItalic.woff2) format('woff2'),url(../fonts/roboto/Roboto-RegularItalic.woff) format('woff')}@font-face{font-weight:500;font-family:Roboto;font-style:normal;font-display:swap;src:local('Roboto Medium'),local('Roboto-Medium'),url(../fonts/roboto/Roboto-Medium.woff2) format('woff2'),url(../fonts/roboto/Roboto-Medium.woff) format('woff')}@font-face{font-weight:500;font-family:Roboto;font-style:italic;font-display:swap;src:local('Roboto MediumItalic'),local('Roboto-MediumItalic'),url(../fonts/roboto/Roboto-MediumItalic.woff2) format('woff2'),url(../fonts/roboto/Roboto-MediumItalic.woff) format('woff')}@font-face{font-weight:700;font-family:Roboto;font-style:normal;font-display:swap;src:local('Roboto Bold'),local('Roboto-Bold'),url(../fonts/roboto/Roboto-Bold.woff2) format('woff2'),url(../fonts/roboto/Roboto-Bold.woff) format('woff')}@font-face{font-weight:700;font-family:Roboto;font-style:italic;font-display:swap;src:local('Roboto BoldItalic'),local('Roboto-BoldItalic'),url(../fonts/roboto/Roboto-BoldItalic.woff2) format('woff2'),url(../fonts/roboto/Roboto-BoldItalic.woff) format('woff')}@font-face{font-weight:900;font-family:Roboto;font-style:normal;font-display:swap;src:local('Roboto Black'),local('Roboto-Black'),url(../fonts/roboto/Roboto-Black.woff2) format('woff2'),url(../fonts/roboto/Roboto-Black.woff) format('woff')}@font-face{font-weight:900;font-family:Roboto;font-style:italic;font-display:swap;src:local('Roboto BlackItalic'),local('Roboto-BlackItalic'),url(../fonts/roboto/Roboto-BlackItalic.woff2) format('woff2'),url(../fonts/roboto/Roboto-BlackItalic.woff) format('woff')}.mdui-typo-display-4,.mdui-typo-display-4-opacity{font-weight:300;font-size:112px;letter-spacing:-.04em}.mdui-typo-display-4-opacity{opacity:.54}.mdui-typo-display-3,.mdui-typo-display-3-opacity{font-weight:400;font-size:56px;letter-spacing:-.02em}.mdui-typo-display-3-opacity{opacity:.54}.mdui-typo-display-2,.mdui-typo-display-2-opacity{font-weight:400;font-size:45px;letter-spacing:0}.mdui-typo-display-2-opacity{opacity:.54}.mdui-typo-display-1,.mdui-typo-display-1-opacity{font-weight:400;font-size:34px;letter-spacing:0}.mdui-typo-display-1-opacity{opacity:.54}.mdui-typo-headline,.mdui-typo-headline-opacity{font-weight:400;font-size:24px;-moz-osx-font-smoothing:grayscale}.mdui-typo-headline-opacity{opacity:.87}.mdui-typo-title,.mdui-typo-title-opacity{font-weight:500;font-size:20px;letter-spacing:.02em}.mdui-typo-title-opacity{opacity:.87}.mdui-typo-subheading,.mdui-typo-subheading-opacity{font-weight:400;font-size:16px;letter-spacing:.04em}.mdui-typo-subheading-opacity{opacity:.87}.mdui-typo-body-2,.mdui-typo-body-2-opacity{font-weight:500;font-size:14px;letter-spacing:.04em}.mdui-typo-body-2-opacity{opacity:.87}.mdui-typo-body-1,.mdui-typo-body-1-opacity{font-weight:400;font-size:14px;letter-spacing:.04em}.mdui-typo-body-1-opacity{opacity:.87}.mdui-typo-caption,.mdui-typo-caption-opacity{font-weight:400;font-size:12px;letter-spacing:.08em}.mdui-typo-caption-opacity{opacity:.54}.mdui-typo{line-height:1.8;word-wrap:break-word}.mdui-typo address,.mdui-typo caption,.mdui-typo cite,.mdui-typo code,.mdui-typo dfn,.mdui-typo th{font-weight:400;font-style:normal}.mdui-typo caption,.mdui-typo th{text-align:left}.mdui-typo q::after,.mdui-typo q::before{content:''}.mdui-typo code,.mdui-typo kbd,.mdui-typo pre,.mdui-typo pre tt,.mdui-typo samp{font-family:Consolas,Courier,'Courier New',monospace}.mdui-typo figcaption{color:rgba(0,0,0,.54);font-size:80%}.mdui-typo [draggable=true],.mdui-typo [draggable]{cursor:move}.mdui-typo [draggable=false]{cursor:inherit}.mdui-typo .mdui-table,.mdui-typo .mdui-table-fluid,.mdui-typo dl,.mdui-typo figure,.mdui-typo form,.mdui-typo hr,.mdui-typo ol,.mdui-typo p,.mdui-typo pre,.mdui-typo table,.mdui-typo ul{margin:0 0 1.2em 0}.mdui-typo .mdui-table-fluid:last-child,.mdui-typo .mdui-table:last-child,.mdui-typo dl:last-child,.mdui-typo figure:last-child,.mdui-typo form:last-child,.mdui-typo hr:last-child,.mdui-typo ol:last-child,.mdui-typo p:last-child,.mdui-typo pre:last-child,.mdui-typo table:last-child,.mdui-typo ul:last-child{margin-bottom:0}.mdui-typo a{color:#ff4081;position:relative;display:inline-block;overflow:hidden;text-decoration:none;vertical-align:top;outline:0}.mdui-typo a::before{position:absolute;top:auto;bottom:1px;left:0;width:100%;height:1px;background-color:#ff4081;-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transition:all .2s;transition:all .2s;content:' '}.mdui-typo a:focus::before,.mdui-typo a:hover::before{-webkit-transform:scaleX(1);transform:scaleX(1)}.mdui-typo small{font-size:80%}.mdui-typo blockquote{margin:1em 3em 1em 2em;padding-left:1em;font-weight:400;border-left:4px solid rgba(0,0,0,.12)}@media only screen and (max-width:599.9px){.mdui-typo blockquote{margin:1em 0}}.mdui-typo blockquote:last-child{margin-bottom:0}.mdui-typo blockquote footer{color:rgba(0,0,0,.54);font-size:86%}.mdui-typo mark{margin:0 5px;padding:2px;background:#fffdd1;border-bottom:1px solid #ffedce}.mdui-typo h1,.mdui-typo h2,.mdui-typo h3,.mdui-typo h4,.mdui-typo h5,.mdui-typo h6{margin-top:1.2em;margin-bottom:.6em;color:inherit;font-weight:400;font-family:inherit;line-height:1.35}.mdui-typo h1:last-child,.mdui-typo h2:last-child,.mdui-typo h3:last-child,.mdui-typo h4:last-child,.mdui-typo h5:last-child,.mdui-typo h6:last-child{margin-bottom:0}.mdui-typo h1 small,.mdui-typo h2 small,.mdui-typo h3 small,.mdui-typo h4 small,.mdui-typo h5 small,.mdui-typo h6 small{color:rgba(0,0,0,.54);font-weight:400;font-size:65%;line-height:1}.mdui-typo h1{font-size:2em}.mdui-typo h2{font-size:1.8em}.mdui-typo h3{font-size:1.6em}.mdui-typo h4{font-size:1.4em}.mdui-typo h5{font-size:1.2em}.mdui-typo h6{font-size:1.1em}.mdui-typo code{padding:2px 6px;color:#c7254e;background-color:#f7f7f9;border-radius:2px}.mdui-typo pre code{padding:0;color:inherit;font-size:inherit;line-height:1.7;background-color:transparent;border-radius:0}.mdui-typo abbr[title]{text-decoration:none;border-bottom:1px dotted;cursor:help}.mdui-typo ins{text-decoration:none;border-bottom:1px solid}.mdui-typo u{text-decoration:none;border-bottom:1px solid}.mdui-typo del{text-decoration:line-through}.mdui-typo hr{height:10px;margin-bottom:.8em;border:none;border-bottom:1px solid rgba(0,0,0,.12)}.mdui-typo pre{padding:12px 16px;overflow-x:auto;border:1px solid rgba(0,0,0,.12);border-radius:2px;-webkit-overflow-scrolling:touch}.mdui-typo kbd{padding:2px 6px;color:#fff;font-size:90%;background-color:#333;border-radius:2px}.mdui-typo ul{padding-left:2em;list-style:disc}.mdui-typo ol{padding-left:2em;list-style:decimal}.mdui-typo li ol,.mdui-typo li ul{margin:.8em 0}.mdui-typo li ul{list-style:circle}.mdui-typo img,.mdui-typo video{max-width:100%}.mdui-typo figure{text-align:center}.mdui-typo figure figcaption{margin-top:8px;color:#999;font-size:14px}.mdui-typo figure figcaption:empty::before{z-index:-1;color:#bfbfbf;cursor:text;content:attr(placeholder)}.mdui-theme-accent-amber .mdui-typo a{color:#ffd740}.mdui-theme-accent-amber .mdui-typo a::before{background-color:#ffd740}.mdui-theme-accent-blue .mdui-typo a{color:#448aff}.mdui-theme-accent-blue .mdui-typo a::before{background-color:#448aff}.mdui-theme-accent-cyan .mdui-typo a{color:#18ffff}.mdui-theme-accent-cyan .mdui-typo a::before{background-color:#18ffff}.mdui-theme-accent-deep-orange .mdui-typo a{color:#ff6e40}.mdui-theme-accent-deep-orange .mdui-typo a::before{background-color:#ff6e40}.mdui-theme-accent-deep-purple .mdui-typo a{color:#7c4dff}.mdui-theme-accent-deep-purple .mdui-typo a::before{background-color:#7c4dff}.mdui-theme-accent-green .mdui-typo a{color:#69f0ae}.mdui-theme-accent-green .mdui-typo a::before{background-color:#69f0ae}.mdui-theme-accent-indigo .mdui-typo a{color:#536dfe}.mdui-theme-accent-indigo .mdui-typo a::before{background-color:#536dfe}.mdui-theme-accent-light-blue .mdui-typo a{color:#40c4ff}.mdui-theme-accent-light-blue .mdui-typo a::before{background-color:#40c4ff}.mdui-theme-accent-light-green .mdui-typo a{color:#b2ff59}.mdui-theme-accent-light-green .mdui-typo a::before{background-color:#b2ff59}.mdui-theme-accent-lime .mdui-typo a{color:#eeff41}.mdui-theme-accent-lime .mdui-typo a::before{background-color:#eeff41}.mdui-theme-accent-orange .mdui-typo a{color:#ffab40}.mdui-theme-accent-orange .mdui-typo a::before{background-color:#ffab40}.mdui-theme-accent-pink .mdui-typo a{color:#ff4081}.mdui-theme-accent-pink .mdui-typo a::before{background-color:#ff4081}.mdui-theme-accent-purple .mdui-typo a{color:#e040fb}.mdui-theme-accent-purple .mdui-typo a::before{background-color:#e040fb}.mdui-theme-accent-red .mdui-typo a{color:#ff5252}.mdui-theme-accent-red .mdui-typo a::before{background-color:#ff5252}.mdui-theme-accent-teal .mdui-typo a{color:#64ffda}.mdui-theme-accent-teal .mdui-typo a::before{background-color:#64ffda}.mdui-theme-accent-yellow .mdui-typo a{color:#ff0}.mdui-theme-accent-yellow .mdui-typo a::before{background-color:#ff0}.mdui-theme-layout-dark .mdui-typo blockquote{border-left-color:rgba(255,255,255,.12)}.mdui-theme-layout-dark .mdui-typo blockquote footer{color:rgba(255,255,255,.7)}.mdui-theme-layout-dark .mdui-typo figcaption{color:rgba(255,255,255,.7)}.mdui-theme-layout-dark .mdui-typo mark{background:#aaa;border-bottom-color:#bbb}.mdui-theme-layout-dark .mdui-typo h1 small,.mdui-theme-layout-dark .mdui-typo h2 small,.mdui-theme-layout-dark .mdui-typo h3 small,.mdui-theme-layout-dark .mdui-typo h4 small,.mdui-theme-layout-dark .mdui-typo h5 small,.mdui-theme-layout-dark .mdui-typo h6 small{color:rgba(255,255,255,.7)}.mdui-theme-layout-dark .mdui-typo code{color:#ffcdd2;background-color:#424242}.mdui-theme-layout-dark .mdui-typo pre{background:#424242;border-color:rgba(255,255,255,.12)}.mdui-theme-layout-dark .mdui-typo kbd{background:#424242}.mdui-theme-layout-dark .mdui-typo hr{border-color:rgba(255,255,255,.12)}@media (prefers-color-scheme:dark){.mdui-theme-layout-auto .mdui-typo blockquote{border-left-color:rgba(255,255,255,.12)}.mdui-theme-layout-auto .mdui-typo blockquote footer{color:rgba(255,255,255,.7)}.mdui-theme-layout-auto .mdui-typo figcaption{color:rgba(255,255,255,.7)}.mdui-theme-layout-auto .mdui-typo mark{background:#aaa;border-bottom-color:#bbb}.mdui-theme-layout-auto .mdui-typo h1 small,.mdui-theme-layout-auto .mdui-typo h2 small,.mdui-theme-layout-auto .mdui-typo h3 small,.mdui-theme-layout-auto .mdui-typo h4 small,.mdui-theme-layout-auto .mdui-typo h5 small,.mdui-theme-layout-auto .mdui-typo h6 small{color:rgba(255,255,255,.7)}.mdui-theme-layout-auto .mdui-typo code{color:#ffcdd2;background-color:#424242}.mdui-theme-layout-auto .mdui-typo pre{background:#424242;border-color:rgba(255,255,255,.12)}.mdui-theme-layout-auto .mdui-typo kbd{background:#424242}.mdui-theme-layout-auto .mdui-typo hr{border-color:rgba(255,255,255,.12)}}.mdui-container,.mdui-container-fluid{-webkit-box-sizing:border-box;box-sizing:border-box;margin-right:auto;margin-left:auto;padding-right:8px;padding-left:8px}.mdui-container-fluid::after,.mdui-container::after{display:table;clear:both;content:''}.mdui-container{width:96%;max-width:1280px}@media (min-width:600px){.mdui-container{width:94%}}@media (min-width:1024px){.mdui-container{width:92%}}.mdui-row,[class*=mdui-row-]{margin-right:-8px;margin-left:-8px}.mdui-row::after,[class*=mdui-row-]::after{display:table;clear:both;content:''}.mdui-col,[class*=mdui-col-lg-],[class*=mdui-col-md-],[class*=mdui-col-sm-],[class*=mdui-col-xl-],[class*=mdui-col-xs-]{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;min-height:1px;padding-right:8px;padding-left:8px}.mdui-row-gapless .mdui-col,.mdui-row-gapless [class*=mdui-col-lg-],.mdui-row-gapless [class*=mdui-col-md-],.mdui-row-gapless [class*=mdui-col-sm-],.mdui-row-gapless [class*=mdui-col-xl-],.mdui-row-gapless [class*=mdui-col-xs-]{padding-right:0;padding-left:0}.mdui-row-gapless .mdui-row,.mdui-row-gapless [class*=mdui-row-]{margin-right:0;margin-left:0}.mdui-col-xs-1{float:left;width:8.333333%}.mdui-col-offset-xs-1{margin-left:8.333333%}.mdui-row-xs-1 .mdui-col{float:left;width:100%}.mdui-col-xs-2{float:left;width:16.666667%}.mdui-col-offset-xs-2{margin-left:16.666667%}.mdui-row-xs-2 .mdui-col{float:left;width:50%}.mdui-col-xs-3{float:left;width:25%}.mdui-col-offset-xs-3{margin-left:25%}.mdui-row-xs-3 .mdui-col{float:left;width:33.333333%}.mdui-col-xs-4{float:left;width:33.333333%}.mdui-col-offset-xs-4{margin-left:33.333333%}.mdui-row-xs-4 .mdui-col{float:left;width:25%}.mdui-col-xs-5{float:left;width:41.666667%}.mdui-col-offset-xs-5{margin-left:41.666667%}.mdui-row-xs-5 .mdui-col{float:left;width:20%}.mdui-col-xs-6{float:left;width:50%}.mdui-col-offset-xs-6{margin-left:50%}.mdui-row-xs-6 .mdui-col{float:left;width:16.666667%}.mdui-col-xs-7{float:left;width:58.333333%}.mdui-col-offset-xs-7{margin-left:58.333333%}.mdui-row-xs-7 .mdui-col{float:left;width:14.285714%}.mdui-col-xs-8{float:left;width:66.666667%}.mdui-col-offset-xs-8{margin-left:66.666667%}.mdui-row-xs-8 .mdui-col{float:left;width:12.5%}.mdui-col-xs-9{float:left;width:75%}.mdui-col-offset-xs-9{margin-left:75%}.mdui-row-xs-9 .mdui-col{float:left;width:11.111111%}.mdui-col-xs-10{float:left;width:83.333333%}.mdui-col-offset-xs-10{margin-left:83.333333%}.mdui-row-xs-10 .mdui-col{float:left;width:10%}.mdui-col-xs-11{float:left;width:91.666667%}.mdui-col-offset-xs-11{margin-left:91.666667%}.mdui-row-xs-11 .mdui-col{float:left;width:9.090909%}.mdui-col-xs-12{float:left;width:100%}.mdui-col-offset-xs-12{margin-left:100%}.mdui-row-xs-12 .mdui-col{float:left;width:8.333333%}@media (min-width:600px){.mdui-col-sm-1{float:left;width:8.333333%}.mdui-col-offset-sm-1{margin-left:8.333333%}.mdui-row-sm-1 .mdui-col{float:left;width:100%}.mdui-col-sm-2{float:left;width:16.666667%}.mdui-col-offset-sm-2{margin-left:16.666667%}.mdui-row-sm-2 .mdui-col{float:left;width:50%}.mdui-col-sm-3{float:left;width:25%}.mdui-col-offset-sm-3{margin-left:25%}.mdui-row-sm-3 .mdui-col{float:left;width:33.333333%}.mdui-col-sm-4{float:left;width:33.333333%}.mdui-col-offset-sm-4{margin-left:33.333333%}.mdui-row-sm-4 .mdui-col{float:left;width:25%}.mdui-col-sm-5{float:left;width:41.666667%}.mdui-col-offset-sm-5{margin-left:41.666667%}.mdui-row-sm-5 .mdui-col{float:left;width:20%}.mdui-col-sm-6{float:left;width:50%}.mdui-col-offset-sm-6{margin-left:50%}.mdui-row-sm-6 .mdui-col{float:left;width:16.666667%}.mdui-col-sm-7{float:left;width:58.333333%}.mdui-col-offset-sm-7{margin-left:58.333333%}.mdui-row-sm-7 .mdui-col{float:left;width:14.285714%}.mdui-col-sm-8{float:left;width:66.666667%}.mdui-col-offset-sm-8{margin-left:66.666667%}.mdui-row-sm-8 .mdui-col{float:left;width:12.5%}.mdui-col-sm-9{float:left;width:75%}.mdui-col-offset-sm-9{margin-left:75%}.mdui-row-sm-9 .mdui-col{float:left;width:11.111111%}.mdui-col-sm-10{float:left;width:83.333333%}.mdui-col-offset-sm-10{margin-left:83.333333%}.mdui-row-sm-10 .mdui-col{float:left;width:10%}.mdui-col-sm-11{float:left;width:91.666667%}.mdui-col-offset-sm-11{margin-left:91.666667%}.mdui-row-sm-11 .mdui-col{float:left;width:9.090909%}.mdui-col-sm-12{float:left;width:100%}.mdui-col-offset-sm-12{margin-left:100%}.mdui-row-sm-12 .mdui-col{float:left;width:8.333333%}}@media (min-width:1024px){.mdui-col-md-1{float:left;width:8.333333%}.mdui-col-offset-md-1{margin-left:8.333333%}.mdui-row-md-1 .mdui-col{float:left;width:100%}.mdui-col-md-2{float:left;width:16.666667%}.mdui-col-offset-md-2{margin-left:16.666667%}.mdui-row-md-2 .mdui-col{float:left;width:50%}.mdui-col-md-3{float:left;width:25%}.mdui-col-offset-md-3{margin-left:25%}.mdui-row-md-3 .mdui-col{float:left;width:33.333333%}.mdui-col-md-4{float:left;width:33.333333%}.mdui-col-offset-md-4{margin-left:33.333333%}.mdui-row-md-4 .mdui-col{float:left;width:25%}.mdui-col-md-5{float:left;width:41.666667%}.mdui-col-offset-md-5{margin-left:41.666667%}.mdui-row-md-5 .mdui-col{float:left;width:20%}.mdui-col-md-6{float:left;width:50%}.mdui-col-offset-md-6{margin-left:50%}.mdui-row-md-6 .mdui-col{float:left;width:16.666667%}.mdui-col-md-7{float:left;width:58.333333%}.mdui-col-offset-md-7{margin-left:58.333333%}.mdui-row-md-7 .mdui-col{float:left;width:14.285714%}.mdui-col-md-8{float:left;width:66.666667%}.mdui-col-offset-md-8{margin-left:66.666667%}.mdui-row-md-8 .mdui-col{float:left;width:12.5%}.mdui-col-md-9{float:left;width:75%}.mdui-col-offset-md-9{margin-left:75%}.mdui-row-md-9 .mdui-col{float:left;width:11.111111%}.mdui-col-md-10{float:left;width:83.333333%}.mdui-col-offset-md-10{margin-left:83.333333%}.mdui-row-md-10 .mdui-col{float:left;width:10%}.mdui-col-md-11{float:left;width:91.666667%}.mdui-col-offset-md-11{margin-left:91.666667%}.mdui-row-md-11 .mdui-col{float:left;width:9.090909%}.mdui-col-md-12{float:left;width:100%}.mdui-col-offset-md-12{margin-left:100%}.mdui-row-md-12 .mdui-col{float:left;width:8.333333%}}@media (min-width:1440px){.mdui-col-lg-1{float:left;width:8.333333%}.mdui-col-offset-lg-1{margin-left:8.333333%}.mdui-row-lg-1 .mdui-col{float:left;width:100%}.mdui-col-lg-2{float:left;width:16.666667%}.mdui-col-offset-lg-2{margin-left:16.666667%}.mdui-row-lg-2 .mdui-col{float:left;width:50%}.mdui-col-lg-3{float:left;width:25%}.mdui-col-offset-lg-3{margin-left:25%}.mdui-row-lg-3 .mdui-col{float:left;width:33.333333%}.mdui-col-lg-4{float:left;width:33.333333%}.mdui-col-offset-lg-4{margin-left:33.333333%}.mdui-row-lg-4 .mdui-col{float:left;width:25%}.mdui-col-lg-5{float:left;width:41.666667%}.mdui-col-offset-lg-5{margin-left:41.666667%}.mdui-row-lg-5 .mdui-col{float:left;width:20%}.mdui-col-lg-6{float:left;width:50%}.mdui-col-offset-lg-6{margin-left:50%}.mdui-row-lg-6 .mdui-col{float:left;width:16.666667%}.mdui-col-lg-7{float:left;width:58.333333%}.mdui-col-offset-lg-7{margin-left:58.333333%}.mdui-row-lg-7 .mdui-col{float:left;width:14.285714%}.mdui-col-lg-8{float:left;width:66.666667%}.mdui-col-offset-lg-8{margin-left:66.666667%}.mdui-row-lg-8 .mdui-col{float:left;width:12.5%}.mdui-col-lg-9{float:left;width:75%}.mdui-col-offset-lg-9{margin-left:75%}.mdui-row-lg-9 .mdui-col{float:left;width:11.111111%}.mdui-col-lg-10{float:left;width:83.333333%}.mdui-col-offset-lg-10{margin-left:83.333333%}.mdui-row-lg-10 .mdui-col{float:left;width:10%}.mdui-col-lg-11{float:left;width:91.666667%}.mdui-col-offset-lg-11{margin-left:91.666667%}.mdui-row-lg-11 .mdui-col{float:left;width:9.090909%}.mdui-col-lg-12{float:left;width:100%}.mdui-col-offset-lg-12{margin-left:100%}.mdui-row-lg-12 .mdui-col{float:left;width:8.333333%}}@media (min-width:1920px){.mdui-col-xl-1{float:left;width:8.333333%}.mdui-col-offset-xl-1{margin-left:8.333333%}.mdui-row-xl-1 .mdui-col{float:left;width:100%}.mdui-col-xl-2{float:left;width:16.666667%}.mdui-col-offset-xl-2{margin-left:16.666667%}.mdui-row-xl-2 .mdui-col{float:left;width:50%}.mdui-col-xl-3{float:left;width:25%}.mdui-col-offset-xl-3{margin-left:25%}.mdui-row-xl-3 .mdui-col{float:left;width:33.333333%}.mdui-col-xl-4{float:left;width:33.333333%}.mdui-col-offset-xl-4{margin-left:33.333333%}.mdui-row-xl-4 .mdui-col{float:left;width:25%}.mdui-col-xl-5{float:left;width:41.666667%}.mdui-col-offset-xl-5{margin-left:41.666667%}.mdui-row-xl-5 .mdui-col{float:left;width:20%}.mdui-col-xl-6{float:left;width:50%}.mdui-col-offset-xl-6{margin-left:50%}.mdui-row-xl-6 .mdui-col{float:left;width:16.666667%}.mdui-col-xl-7{float:left;width:58.333333%}.mdui-col-offset-xl-7{margin-left:58.333333%}.mdui-row-xl-7 .mdui-col{float:left;width:14.285714%}.mdui-col-xl-8{float:left;width:66.666667%}.mdui-col-offset-xl-8{margin-left:66.666667%}.mdui-row-xl-8 .mdui-col{float:left;width:12.5%}.mdui-col-xl-9{float:left;width:75%}.mdui-col-offset-xl-9{margin-left:75%}.mdui-row-xl-9 .mdui-col{float:left;width:11.111111%}.mdui-col-xl-10{float:left;width:83.333333%}.mdui-col-offset-xl-10{margin-left:83.333333%}.mdui-row-xl-10 .mdui-col{float:left;width:10%}.mdui-col-xl-11{float:left;width:91.666667%}.mdui-col-offset-xl-11{margin-left:91.666667%}.mdui-row-xl-11 .mdui-col{float:left;width:9.090909%}.mdui-col-xl-12{float:left;width:100%}.mdui-col-offset-xl-12{margin-left:100%}.mdui-row-xl-12 .mdui-col{float:left;width:8.333333%}}.mdui-shadow-0{-webkit-box-shadow:none!important;box-shadow:none!important}.mdui-shadow-1{-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12)!important;box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12)!important}.mdui-shadow-2{-webkit-box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)!important;box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)!important}.mdui-shadow-3{-webkit-box-shadow:0 3px 3px -2px rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 1px 8px 0 rgba(0,0,0,.12)!important;box-shadow:0 3px 3px -2px rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 1px 8px 0 rgba(0,0,0,.12)!important}.mdui-shadow-4{-webkit-box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)!important;box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)!important}.mdui-shadow-5{-webkit-box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 5px 8px 0 rgba(0,0,0,.14),0 1px 14px 0 rgba(0,0,0,.12)!important;box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 5px 8px 0 rgba(0,0,0,.14),0 1px 14px 0 rgba(0,0,0,.12)!important}.mdui-shadow-6{-webkit-box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)!important;box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)!important}.mdui-shadow-7{-webkit-box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)!important;box-shadow:0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12)!important}.mdui-shadow-8{-webkit-box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)!important;box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)!important}.mdui-shadow-9{-webkit-box-shadow:0 5px 6px -3px rgba(0,0,0,.2),0 9px 12px 1px rgba(0,0,0,.14),0 3px 16px 2px rgba(0,0,0,.12)!important;box-shadow:0 5px 6px -3px rgba(0,0,0,.2),0 9px 12px 1px rgba(0,0,0,.14),0 3px 16px 2px rgba(0,0,0,.12)!important}.mdui-shadow-10{-webkit-box-shadow:0 6px 6px -3px rgba(0,0,0,.2),0 10px 14px 1px rgba(0,0,0,.14),0 4px 18px 3px rgba(0,0,0,.12)!important;box-shadow:0 6px 6px -3px rgba(0,0,0,.2),0 10px 14px 1px rgba(0,0,0,.14),0 4px 18px 3px rgba(0,0,0,.12)!important}.mdui-shadow-11{-webkit-box-shadow:0 6px 7px -4px rgba(0,0,0,.2),0 11px 15px 1px rgba(0,0,0,.14),0 4px 20px 3px rgba(0,0,0,.12)!important;box-shadow:0 6px 7px -4px rgba(0,0,0,.2),0 11px 15px 1px rgba(0,0,0,.14),0 4px 20px 3px rgba(0,0,0,.12)!important}.mdui-shadow-12{-webkit-box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)!important;box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)!important}.mdui-shadow-13{-webkit-box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 13px 19px 2px rgba(0,0,0,.14),0 5px 24px 4px rgba(0,0,0,.12)!important;box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 13px 19px 2px rgba(0,0,0,.14),0 5px 24px 4px rgba(0,0,0,.12)!important}.mdui-shadow-14{-webkit-box-shadow:0 7px 9px -4px rgba(0,0,0,.2),0 14px 21px 2px rgba(0,0,0,.14),0 5px 26px 4px rgba(0,0,0,.12)!important;box-shadow:0 7px 9px -4px rgba(0,0,0,.2),0 14px 21px 2px rgba(0,0,0,.14),0 5px 26px 4px rgba(0,0,0,.12)!important}.mdui-shadow-15{-webkit-box-shadow:0 8px 9px -5px rgba(0,0,0,.2),0 15px 22px 2px rgba(0,0,0,.14),0 6px 28px 5px rgba(0,0,0,.12)!important;box-shadow:0 8px 9px -5px rgba(0,0,0,.2),0 15px 22px 2px rgba(0,0,0,.14),0 6px 28px 5px rgba(0,0,0,.12)!important}.mdui-shadow-16{-webkit-box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12)!important;box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12)!important}.mdui-shadow-17{-webkit-box-shadow:0 8px 11px -5px rgba(0,0,0,.2),0 17px 26px 2px rgba(0,0,0,.14),0 6px 32px 5px rgba(0,0,0,.12)!important;box-shadow:0 8px 11px -5px rgba(0,0,0,.2),0 17px 26px 2px rgba(0,0,0,.14),0 6px 32px 5px rgba(0,0,0,.12)!important}.mdui-shadow-18{-webkit-box-shadow:0 9px 11px -5px rgba(0,0,0,.2),0 18px 28px 2px rgba(0,0,0,.14),0 7px 34px 6px rgba(0,0,0,.12)!important;box-shadow:0 9px 11px -5px rgba(0,0,0,.2),0 18px 28px 2px rgba(0,0,0,.14),0 7px 34px 6px rgba(0,0,0,.12)!important}.mdui-shadow-19{-webkit-box-shadow:0 9px 12px -6px rgba(0,0,0,.2),0 19px 29px 2px rgba(0,0,0,.14),0 7px 36px 6px rgba(0,0,0,.12)!important;box-shadow:0 9px 12px -6px rgba(0,0,0,.2),0 19px 29px 2px rgba(0,0,0,.14),0 7px 36px 6px rgba(0,0,0,.12)!important}.mdui-shadow-20{-webkit-box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 20px 31px 3px rgba(0,0,0,.14),0 8px 38px 7px rgba(0,0,0,.12)!important;box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 20px 31px 3px rgba(0,0,0,.14),0 8px 38px 7px rgba(0,0,0,.12)!important}.mdui-shadow-21{-webkit-box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 21px 33px 3px rgba(0,0,0,.14),0 8px 40px 7px rgba(0,0,0,.12)!important;box-shadow:0 10px 13px -6px rgba(0,0,0,.2),0 21px 33px 3px rgba(0,0,0,.14),0 8px 40px 7px rgba(0,0,0,.12)!important}.mdui-shadow-22{-webkit-box-shadow:0 10px 14px -6px rgba(0,0,0,.2),0 22px 35px 3px rgba(0,0,0,.14),0 8px 42px 7px rgba(0,0,0,.12)!important;box-shadow:0 10px 14px -6px rgba(0,0,0,.2),0 22px 35px 3px rgba(0,0,0,.14),0 8px 42px 7px rgba(0,0,0,.12)!important}.mdui-shadow-23{-webkit-box-shadow:0 11px 14px -7px rgba(0,0,0,.2),0 23px 36px 3px rgba(0,0,0,.14),0 9px 44px 8px rgba(0,0,0,.12)!important;box-shadow:0 11px 14px -7px rgba(0,0,0,.2),0 23px 36px 3px rgba(0,0,0,.14),0 9px 44px 8px rgba(0,0,0,.12)!important}.mdui-shadow-24{-webkit-box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12)!important;box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12)!important}.mdui-hoverable{-webkit-transition:-webkit-box-shadow .25s cubic-bezier(.4,0,.2,1);transition:-webkit-box-shadow .25s cubic-bezier(.4,0,.2,1);transition:box-shadow .25s cubic-bezier(.4,0,.2,1);transition:box-shadow .25s cubic-bezier(.4,0,.2,1),-webkit-box-shadow .25s cubic-bezier(.4,0,.2,1);will-change:box-shadow}.mdui-hoverable:focus,.mdui-hoverable:hover{-webkit-box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12);box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.mdui-headroom{-webkit-transition:all .3s cubic-bezier(.4,0,.2,1)!important;transition:all .3s cubic-bezier(.4,0,.2,1)!important}.mdui-headroom-pinned-top{-webkit-transform:translate3d(0,0,0)!important;transform:translate3d(0,0,0)!important}.mdui-headroom-unpinned-top{-webkit-transform:translate3d(0,-100%,0)!important;transform:translate3d(0,-100%,0)!important;-webkit-box-shadow:none!important;box-shadow:none!important}.mdui-headroom-pinned-down{-webkit-transform:translate3d(0,0,0)!important;transform:translate3d(0,0,0)!important}.mdui-headroom-unpinned-down{-webkit-transform:translate3d(0,100%,0)!important;transform:translate3d(0,100%,0)!important;-webkit-box-shadow:none!important;box-shadow:none!important}.mdui-headroom-pinned-toolbar{-webkit-transform:translate3d(0,0,0)!important;transform:translate3d(0,0,0)!important}.mdui-headroom-unpinned-toolbar{-webkit-transform:translate3d(0,-56px,0)!important;transform:translate3d(0,-56px,0)!important}@media (min-width:600px){.mdui-headroom-unpinned-toolbar{-webkit-transform:translate3d(0,-64px,0)!important;transform:translate3d(0,-64px,0)!important}}@media (orientation:landscape) and (max-width:959.9px){.mdui-headroom-unpinned-toolbar{-webkit-transform:translate3d(0,-48px,0)!important;transform:translate3d(0,-48px,0)!important}}.mdui-collapse-item-header .mdui-collapse-item-arrow,.mdui-collapse-item-header.mdui-collapse-item-arrow{-webkit-transform:rotate(0);transform:rotate(0);-webkit-transition:-webkit-transform .3s cubic-bezier(.4,0,.2,1);transition:-webkit-transform .3s cubic-bezier(.4,0,.2,1);transition:transform .3s cubic-bezier(.4,0,.2,1);transition:transform .3s cubic-bezier(.4,0,.2,1),-webkit-transform .3s cubic-bezier(.4,0,.2,1);will-change:transform}.mdui-collapse-item-body{height:0;margin-top:0;margin-bottom:0;padding-top:0;padding-bottom:0;overflow:hidden;-webkit-transition:all .3s cubic-bezier(.4,0,.2,1);transition:all .3s cubic-bezier(.4,0,.2,1);will-change:height}.mdui-collapse-item-body .mdui-list-item{padding-left:72px}.mdui-collapse-item-open>.mdui-collapse-item-header .mdui-collapse-item-arrow,.mdui-collapse-item-open>.mdui-collapse-item-header.mdui-collapse-item-arrow{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.mdui-collapse-item-open>.mdui-collapse-item-body{height:auto}.mdui-panel{-webkit-box-sizing:border-box;box-sizing:border-box;width:100%}.mdui-panel-item{color:rgba(0,0,0,.87);background-color:#fff;-webkit-transition:margin .3s cubic-bezier(.4,0,.2,1);transition:margin .3s cubic-bezier(.4,0,.2,1);will-change:margin;border-bottom:1px solid rgba(0,0,0,.12);-webkit-box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.mdui-panel-item:last-child{border-bottom:none}.mdui-panel-item-header{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:48px;padding:0 24px;font-size:15px;cursor:pointer;-webkit-transition:all .3s cubic-bezier(.4,0,.2,1);transition:all .3s cubic-bezier(.4,0,.2,1);will-change:height,background-color;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mdui-panel-item-header:active{background-color:#eee}.mdui-panel-item-title{-webkit-box-sizing:border-box;box-sizing:border-box;width:36%;min-width:36%;padding-right:16px;font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mdui-panel-item-summary{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-sizing:border-box;box-sizing:border-box;padding-right:16px;color:rgba(0,0,0,.54);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mdui-panel-item-arrow{position:absolute;top:12px;right:24px;color:rgba(0,0,0,.54);-webkit-transform:rotate(0);transform:rotate(0);-webkit-transition:all .3s cubic-bezier(.4,0,.2,1);transition:all .3s cubic-bezier(.4,0,.2,1);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;will-change:transform,top}.mdui-panel-item-summary+.mdui-panel-item-arrow{position:relative;top:0!important;right:0}.mdui-panel-item-body{height:0;padding:0 24px;overflow:hidden;-webkit-transition:height .3s cubic-bezier(.4,0,.2,1);transition:height .3s cubic-bezier(.4,0,.2,1);will-change:height}.mdui-panel-item-body::after,.mdui-panel-item-body::before{display:table;content:' '}.mdui-panel-item-body::after{clear:both}.mdui-panel-item-body::after,.mdui-panel-item-body::before{display:table;content:' '}.mdui-panel-item-body::after{clear:both}.mdui-panel-item-body::after{height:16px}.mdui-panel-item-actions{display:block;width:100%;margin:16px -24px 0 -24px;padding:16px 24px 0 24px;text-align:right;border-top:1px solid rgba(0,0,0,.12)}.mdui-panel-item-actions .mdui-btn{margin-left:8px}.mdui-panel-item-actions .mdui-btn:first-child{margin-left:0}.mdui-panel-item-open{height:auto;margin-top:16px;margin-bottom:16px}.mdui-panel-item-open>.mdui-panel-item-header{height:64px}.mdui-panel-item-open>.mdui-panel-item-header .mdui-panel-item-arrow{top:20px;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.mdui-panel-item-open>.mdui-panel-item-body{height:auto}.mdui-panel-gapless{-webkit-box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.mdui-panel-gapless .mdui-panel-item{-webkit-box-shadow:none;box-shadow:none}.mdui-panel-gapless .mdui-panel-item-open{margin-top:0;margin-bottom:0}.mdui-panel-popout .mdui-panel-item-open{margin-right:-16px;margin-left:-16px}.mdui-theme-layout-dark .mdui-panel-item{color:#fff;background-color:#303030;border-bottom:1px solid rgba(255,255,255,.12)}.mdui-theme-layout-dark .mdui-panel-item:last-child{border-bottom:none}.mdui-theme-layout-dark .mdui-panel-item-header:active{background-color:#424242}.mdui-theme-layout-dark .mdui-panel-item-summary{color:rgba(255,255,255,.7)}.mdui-theme-layout-dark .mdui-panel-item-arrow{color:#fff}.mdui-theme-layout-dark .mdui-panel-item-actions{border-top:1px solid rgba(255,255,255,.12)}@media (prefers-color-scheme:dark){.mdui-theme-layout-auto .mdui-panel-item{color:#fff;background-color:#303030;border-bottom:1px solid rgba(255,255,255,.12)}.mdui-theme-layout-auto .mdui-panel-item:last-child{border-bottom:none}.mdui-theme-layout-auto .mdui-panel-item-header:active{background-color:#424242}.mdui-theme-layout-auto .mdui-panel-item-summary{color:rgba(255,255,255,.7)}.mdui-theme-layout-auto .mdui-panel-item-arrow{color:#fff}.mdui-theme-layout-auto .mdui-panel-item-actions{border-top:1px solid rgba(255,255,255,.12)}}.mdui-table{position:relative;width:100%;background-color:#fff;border:1px solid rgba(0,0,0,.12);border-bottom:none;border-collapse:separate;border-spacing:0;-webkit-box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.mdui-table tbody tr{position:relative;-webkit-transition:background-color .28s cubic-bezier(.4,0,.2,1);transition:background-color .28s cubic-bezier(.4,0,.2,1)}.mdui-table td,.mdui-table th{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;padding:12px 28px;text-align:left;vertical-align:middle;border-bottom:1px solid rgba(0,0,0,.12)}.mdui-table th{color:rgba(0,0,0,.54);font-weight:700;font-size:13px;line-height:32px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mdui-table td{color:rgba(0,0,0,.87);font-size:14px;line-height:24px}.mdui-table-cell-checkbox{padding-top:0!important;padding-bottom:0!important;padding-left:24px!important}.mdui-table-cell-checkbox .mdui-checkbox{margin-top:7px}.mdui-table-cell-checkbox+td,.mdui-table-cell-checkbox+th{padding-left:6px!important}th.mdui-table-cell-checkbox .mdui-checkbox{margin-top:11px}.mdui-table td:last-child,.mdui-table th:last-child{padding-right:24px}.mdui-table td:first-child,.mdui-table th:first-child{padding-right:0;padding-left:24px}.mdui-table td:nth-child(2),.mdui-table th:nth-child(2){padding-left:24px}.mdui-table-hoverable tbody tr:hover{background-color:#eee}.mdui-table-fluid{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid rgba(0,0,0,.12);border-bottom:none;-webkit-box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.mdui-table-fluid .mdui-table{-webkit-box-shadow:none;box-shadow:none;margin:0;border:none}.mdui-table-col-numeric{text-align:right!important}.mdui-table-row-selected{background-color:#f5f5f5}.mdui-theme-layout-dark .mdui-table{background-color:#303030;border:1px solid rgba(255,255,255,.12);border-bottom:none}.mdui-theme-layout-dark .mdui-table td,.mdui-theme-layout-dark .mdui-table th{border-bottom:1px solid rgba(255,255,255,.12)}.mdui-theme-layout-dark .mdui-table th{color:rgba(255,255,255,.7)}.mdui-theme-layout-dark .mdui-table td{color:#fff}.mdui-theme-layout-dark .mdui-table-hoverable tbody tr:hover{background-color:#616161}.mdui-theme-layout-dark .mdui-table-fluid{border:1px solid rgba(255,255,255,.12);border-bottom:none}.mdui-theme-layout-dark .mdui-table-fluid .mdui-table{-webkit-box-shadow:none;box-shadow:none;border:none}.mdui-theme-layout-dark .mdui-table-row-selected{background-color:#424242}@media (prefers-color-scheme:dark){.mdui-theme-layout-auto .mdui-table{background-color:#303030;border:1px solid rgba(255,255,255,.12);border-bottom:none}.mdui-theme-layout-auto .mdui-table td,.mdui-theme-layout-auto .mdui-table th{border-bottom:1px solid rgba(255,255,255,.12)}.mdui-theme-layout-auto .mdui-table th{color:rgba(255,255,255,.7)}.mdui-theme-layout-auto .mdui-table td{color:#fff}.mdui-theme-layout-auto .mdui-table-hoverable tbody tr:hover{background-color:#616161}.mdui-theme-layout-auto .mdui-table-fluid{border:1px solid rgba(255,255,255,.12);border-bottom:none}.mdui-theme-layout-auto .mdui-table-fluid .mdui-table{-webkit-box-shadow:none;box-shadow:none;border:none}.mdui-theme-layout-auto .mdui-table-row-selected{background-color:#424242}}.mdui-divider,.mdui-divider-dark,.mdui-divider-inset,.mdui-divider-inset-dark,.mdui-divider-inset-light,.mdui-divider-light{height:1px;margin:-1px 0 0 0;border:none}.mdui-divider-inset,.mdui-divider-inset-dark,.mdui-divider-inset-light{margin-left:72px}.mdui-divider,.mdui-divider-inset{background-color:rgba(0,0,0,.12)}.mdui-divider-inset-light,.mdui-divider-light{background-color:rgba(255,255,255,.12)}.mdui-divider-dark,.mdui-divider-inset-dark{background-color:rgba(0,0,0,.12)}.mdui-theme-layout-dark .mdui-divider,.mdui-theme-layout-dark .mdui-divider-inset{background-color:rgba(255,255,255,.12)}@media (prefers-color-scheme:dark){.mdui-theme-layout-auto .mdui-divider,.mdui-theme-layout-auto .mdui-divider-inset{background-color:rgba(255,255,255,.12)}}.mdui-ripple{position:relative;overflow:hidden;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mdui-ripple-wave{position:absolute!important;top:0;left:0;z-index:1;margin:0;padding:0;font-size:0;background-color:rgba(0,0,0,.1);border-radius:50%;-webkit-transform:translate3d(0,0,0) scale(0);transform:translate3d(0,0,0) scale(0);-webkit-transition-duration:1.4s;transition-duration:1.4s;pointer-events:none}.mdui-ripple[class*=mdui-color-] .mdui-ripple-wave{background-color:rgba(255,255,255,.3)}.mdui-ripple-white .mdui-ripple-wave{background-color:rgba(255,255,255,.3)!important}.mdui-ripple-black .mdui-ripple-wave{background-color:rgba(0,0,0,.1)!important}.mdui-ripple-wave-fill{opacity:.35;-webkit-transition-duration:.3s;transition-duration:.3s}.mdui-ripple-wave-out{opacity:0;-webkit-transition-duration:.6s;transition-duration:.6s}.mdui-ripple-amber .mdui-ripple-wave{background-color:rgba(255,193,7,.3)!important}.mdui-ripple-blue .mdui-ripple-wave{background-color:rgba(33,150,243,.3)!important}.mdui-ripple-blue-grey .mdui-ripple-wave{background-color:rgba(96,125,139,.3)!important}.mdui-ripple-brown .mdui-ripple-wave{background-color:rgba(121,85,72,.3)!important}.mdui-ripple-cyan .mdui-ripple-wave{background-color:rgba(0,188,212,.3)!important}.mdui-ripple-deep-orange .mdui-ripple-wave{background-color:rgba(255,87,34,.3)!important}.mdui-ripple-deep-purple .mdui-ripple-wave{background-color:rgba(103,58,183,.3)!important}.mdui-ripple-green .mdui-ripple-wave{background-color:rgba(76,175,80,.3)!important}.mdui-ripple-grey .mdui-ripple-wave{background-color:rgba(158,158,158,.3)!important}.mdui-ripple-indigo .mdui-ripple-wave{background-color:rgba(63,81,181,.3)!important}.mdui-ripple-light-blue .mdui-ripple-wave{background-color:rgba(3,169,244,.3)!important}.mdui-ripple-light-green .mdui-ripple-wave{background-color:rgba(139,195,74,.3)!important}.mdui-ripple-lime .mdui-ripple-wave{background-color:rgba(205,220,57,.3)!important}.mdui-ripple-orange .mdui-ripple-wave{background-color:rgba(255,152,0,.3)!important}.mdui-ripple-pink .mdui-ripple-wave{background-color:rgba(233,30,99,.3)!important}.mdui-ripple-purple .mdui-ripple-wave{background-color:rgba(156,39,176,.3)!important}.mdui-ripple-red .mdui-ripple-wave{background-color:rgba(244,67,54,.3)!important}.mdui-ripple-teal .mdui-ripple-wave{background-color:rgba(0,150,136,.3)!important}.mdui-ripple-yellow .mdui-ripple-wave{background-color:rgba(255,235,59,.3)!important}.mdui-theme-layout-dark .mdui-ripple-wave{background-color:rgba(255,255,255,.3)}@media (prefers-color-scheme:dark){.mdui-theme-layout-auto .mdui-ripple-wave{background-color:rgba(255,255,255,.3)}}.mdui-textfield{position:relative;padding-top:16px;padding-bottom:8px;overflow:hidden}.mdui-textfield-has-bottom{padding-bottom:28px}.mdui-textfield-input{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:36px;margin:0;padding:8px 0;overflow:hidden;color:rgba(0,0,0,.87);font-size:16px;font-family:inherit;line-height:20px;background:0 0;border:none;border-bottom:1px solid rgba(0,0,0,.42);border-radius:0;outline:0;-webkit-box-shadow:none;box-shadow:none;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-property:border-bottom-color,padding-right,-webkit-box-shadow;transition-property:border-bottom-color,padding-right,-webkit-box-shadow;transition-property:border-bottom-color,padding-right,box-shadow;transition-property:border-bottom-color,padding-right,box-shadow,-webkit-box-shadow;-webkit-appearance:none;-moz-appearance:none;appearance:none;resize:none}.mdui-textfield-input::-webkit-input-placeholder{color:inherit;opacity:.42}.mdui-textfield-input:not([disabled]):hover{border-bottom:1px solid rgba(0,0,0,.87);-webkit-box-shadow:0 1px 0 0 rgba(0,0,0,.87);box-shadow:0 1px 0 0 rgba(0,0,0,.87);cursor:pointer}.mdui-textfield-input[rows]{height:auto!important;overflow:auto;-webkit-overflow-scrolling:touch}.mdui-textfield-label{display:block;width:100%;color:rgba(0,0,0,.54);font-size:16px;-webkit-transform:scale(.75) translateY(0);transform:scale(.75) translateY(0);-webkit-transform-origin:left;transform-origin:left;-webkit-transition:all .2s;transition:all .2s;pointer-events:none}.mdui-textfield-error,.mdui-textfield-helper{position:absolute;bottom:8px;height:12px;font-size:12px;line-height:12px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mdui-textfield-error{color:rgba(255,23,68,.87);visibility:hidden}.mdui-textfield-helper{color:rgba(0,0,0,.54)}.mdui-textfield .mdui-icon{position:absolute;bottom:8px;padding:6px;color:rgba(0,0,0,.54)}.mdui-textfield .mdui-icon~.mdui-textfield-error,.mdui-textfield .mdui-icon~.mdui-textfield-flex-wrap,.mdui-textfield .mdui-icon~.mdui-textfield-helper,.mdui-textfield .mdui-icon~.mdui-textfield-input,.mdui-textfield .mdui-icon~.mdui-textfield-label{width:calc(100% - 56px);margin-left:56px}.mdui-textfield-has-bottom .mdui-icon{bottom:28px}.mdui-textfield-focus .mdui-textfield-input,.mdui-textfield-focus .mdui-textfield-input:hover{border-bottom-color:#c51162;-webkit-box-shadow:0 1px 0 0 #c51162;box-shadow:0 1px 0 0 #c51162}.mdui-textfield-focus .mdui-icon,.mdui-textfield-focus .mdui-textfield-label{color:rgba(197,17,98,.87)}.mdui-textfield-floating-label .mdui-textfield-label{color:rgba(0,0,0,.35);-webkit-transform:scale(1) translateY(27px);transform:scale(1) translateY(27px)}.mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-textfield-floating-label.mdui-textfield-not-empty .mdui-textfield-label{color:rgba(0,0,0,.65);-webkit-transform:scale(.75) translateY(0);transform:scale(.75) translateY(0)}.mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label{color:#e91e63}.mdui-textfield-expandable{width:36px;min-height:36px;padding:1px 0;-webkit-transition:width .3s cubic-bezier(.4,0,.2,1);transition:width .3s cubic-bezier(.4,0,.2,1)}.mdui-textfield-expandable .mdui-icon{bottom:0;padding:0}.mdui-textfield-expandable .mdui-textfield-input{width:calc(100% - 36px);margin-left:36px;padding-right:0}.mdui-textfield-expandable .mdui-textfield-icon{position:absolute;top:0;left:0}.mdui-textfield-expandable .mdui-textfield-close{position:absolute;top:0;right:0;-webkit-transform:scale(0);transform:scale(0)}.mdui-textfield-expandable.mdui-textfield-expanded{width:100%}.mdui-textfield-expandable.mdui-textfield-expanded .mdui-textfield-input{padding-right:36px}.mdui-textfield-expandable.mdui-textfield-expanded .mdui-textfield-close{-webkit-transform:scale(1);transform:scale(1)}.mdui-textfield-invalid .mdui-textfield-input,.mdui-textfield-invalid-html5 .mdui-textfield-input,.mdui-textfield-invalid-html5.mdui-textfield-focus .mdui-textfield-input,.mdui-textfield-invalid.mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#ff1744!important;-webkit-box-shadow:0 1px 0 0 #ff1744!important;box-shadow:0 1px 0 0 #ff1744!important}.mdui-textfield-invalid .mdui-textfield-label,.mdui-textfield-invalid-html5 .mdui-textfield-label{color:#ff1744!important}.mdui-textfield-invalid-html5.mdui-textfield-floating-label .mdui-textfield-label,.mdui-textfield-invalid.mdui-textfield-floating-label .mdui-textfield-label{color:rgba(255,23,68,.35)!important}.mdui-textfield-invalid-html5.mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-textfield-invalid-html5.mdui-textfield-floating-label.mdui-textfield-not-empty .mdui-textfield-label,.mdui-textfield-invalid.mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-textfield-invalid.mdui-textfield-floating-label.mdui-textfield-not-empty .mdui-textfield-label{color:#ff1744!important}.mdui-textfield-invalid .mdui-textfield-error,.mdui-textfield-invalid-html5 .mdui-textfield-error{visibility:visible}.mdui-textfield-invalid .mdui-textfield-error+.mdui-textfield-helper,.mdui-textfield-invalid-html5 .mdui-textfield-error+.mdui-textfield-helper{visibility:hidden}.mdui-textfield-disabled .mdui-textfield-input::-webkit-input-placeholder,.mdui-textfield-disabled .mdui-textfield-label{color:rgba(0,0,0,.38)}.mdui-textfield-disabled .mdui-textfield-input{color:rgba(0,0,0,.42);cursor:default}.mdui-textfield-disabled .mdui-textfield-input{border-bottom:1px dashed rgba(0,0,0,.42)}.mdui-textfield-counter{position:absolute;right:8px;bottom:8px;height:12px;color:rgba(0,0,0,.54);font-size:12px;line-height:12px}.mdui-theme-layout-dark .mdui-textfield-input{color:#fff;border-bottom-color:rgba(255,255,255,.7)}.mdui-theme-layout-dark .mdui-textfield-input::-webkit-input-placeholder{color:rgba(255,255,255,.5)}.mdui-theme-layout-dark .mdui-textfield-input:not([disabled]):hover{border-bottom-color:#fff;-webkit-box-shadow:0 1px 0 0 #fff;box-shadow:0 1px 0 0 #fff}.mdui-theme-layout-dark .mdui-textfield .mdui-icon{color:rgba(255,255,255,.7)}.mdui-theme-layout-dark .mdui-textfield-label{color:rgba(255,255,255,.7)}.mdui-theme-layout-dark .mdui-textfield-floating-label .mdui-textfield-label{color:rgba(255,255,255,.35)}.mdui-theme-layout-dark .mdui-textfield-error{color:#ff1744}.mdui-theme-layout-dark .mdui-textfield-helper{color:rgba(255,255,255,.7)}.mdui-theme-layout-dark .mdui-textfield-counter{color:rgba(255,255,255,.7)}.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input,.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input:hover{border-bottom-color:#ff4081;-webkit-box-shadow:0 1px 0 0 #ff4081;box-shadow:0 1px 0 0 #ff4081}.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label{color:#ff4081}.mdui-theme-layout-dark .mdui-textfield-disabled .mdui-textfield-input::-webkit-input-placeholder,.mdui-theme-layout-dark .mdui-textfield-disabled .mdui-textfield-label{color:rgba(255,255,255,.5)}.mdui-theme-layout-dark .mdui-textfield-disabled .mdui-textfield-input{color:rgba(255,255,255,.5)}.mdui-theme-layout-dark .mdui-textfield-disabled .mdui-textfield-input{border-bottom-color:rgba(255,255,255,.7)}@media (prefers-color-scheme:dark){.mdui-theme-layout-auto .mdui-textfield-input{color:#fff;border-bottom-color:rgba(255,255,255,.7)}.mdui-theme-layout-auto .mdui-textfield-input::-webkit-input-placeholder{color:rgba(255,255,255,.5)}.mdui-theme-layout-auto .mdui-textfield-input:not([disabled]):hover{border-bottom-color:#fff;-webkit-box-shadow:0 1px 0 0 #fff;box-shadow:0 1px 0 0 #fff}.mdui-theme-layout-auto .mdui-textfield .mdui-icon{color:rgba(255,255,255,.7)}.mdui-theme-layout-auto .mdui-textfield-label{color:rgba(255,255,255,.7)}.mdui-theme-layout-auto .mdui-textfield-floating-label .mdui-textfield-label{color:rgba(255,255,255,.35)}.mdui-theme-layout-auto .mdui-textfield-error{color:#ff1744}.mdui-theme-layout-auto .mdui-textfield-helper{color:rgba(255,255,255,.7)}.mdui-theme-layout-auto .mdui-textfield-counter{color:rgba(255,255,255,.7)}.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input,.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input:hover{border-bottom-color:#ff4081;-webkit-box-shadow:0 1px 0 0 #ff4081;box-shadow:0 1px 0 0 #ff4081}.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label{color:#ff4081}.mdui-theme-layout-auto .mdui-textfield-disabled .mdui-textfield-input::-webkit-input-placeholder,.mdui-theme-layout-auto .mdui-textfield-disabled .mdui-textfield-label{color:rgba(255,255,255,.5)}.mdui-theme-layout-auto .mdui-textfield-disabled .mdui-textfield-input{color:rgba(255,255,255,.5)}.mdui-theme-layout-auto .mdui-textfield-disabled .mdui-textfield-input{border-bottom-color:rgba(255,255,255,.7)}}.mdui-theme-accent-amber .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#ffab00;-webkit-box-shadow:0 1px 0 0 #ffab00;box-shadow:0 1px 0 0 #ffab00}.mdui-theme-accent-amber .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-amber .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-amber .mdui-textfield-focus .mdui-textfield-label{color:rgba(255,171,0,.87)}.mdui-theme-accent-amber.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#ffd740;-webkit-box-shadow:0 1px 0 0 #ffd740;box-shadow:0 1px 0 0 #ffd740}.mdui-theme-accent-amber.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-amber.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-amber.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label{color:#ffd740}@media (prefers-color-scheme:dark){.mdui-theme-accent-amber.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#ffd740;-webkit-box-shadow:0 1px 0 0 #ffd740;box-shadow:0 1px 0 0 #ffd740}.mdui-theme-accent-amber.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-amber.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-amber.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label{color:#ffd740}}.mdui-theme-accent-blue .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#2962ff;-webkit-box-shadow:0 1px 0 0 #2962ff;box-shadow:0 1px 0 0 #2962ff}.mdui-theme-accent-blue .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-blue .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-blue .mdui-textfield-focus .mdui-textfield-label{color:rgba(41,98,255,.87)}.mdui-theme-accent-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#448aff;-webkit-box-shadow:0 1px 0 0 #448aff;box-shadow:0 1px 0 0 #448aff}.mdui-theme-accent-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label{color:#448aff}@media (prefers-color-scheme:dark){.mdui-theme-accent-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#448aff;-webkit-box-shadow:0 1px 0 0 #448aff;box-shadow:0 1px 0 0 #448aff}.mdui-theme-accent-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label{color:#448aff}}.mdui-theme-accent-cyan .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#00b8d4;-webkit-box-shadow:0 1px 0 0 #00b8d4;box-shadow:0 1px 0 0 #00b8d4}.mdui-theme-accent-cyan .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-cyan .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-cyan .mdui-textfield-focus .mdui-textfield-label{color:rgba(0,184,212,.87)}.mdui-theme-accent-cyan.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#18ffff;-webkit-box-shadow:0 1px 0 0 #18ffff;box-shadow:0 1px 0 0 #18ffff}.mdui-theme-accent-cyan.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-cyan.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-cyan.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label{color:#18ffff}@media (prefers-color-scheme:dark){.mdui-theme-accent-cyan.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#18ffff;-webkit-box-shadow:0 1px 0 0 #18ffff;box-shadow:0 1px 0 0 #18ffff}.mdui-theme-accent-cyan.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-cyan.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-cyan.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label{color:#18ffff}}.mdui-theme-accent-deep-orange .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#dd2c00;-webkit-box-shadow:0 1px 0 0 #dd2c00;box-shadow:0 1px 0 0 #dd2c00}.mdui-theme-accent-deep-orange .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-deep-orange .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-deep-orange .mdui-textfield-focus .mdui-textfield-label{color:rgba(221,44,0,.87)}.mdui-theme-accent-deep-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#ff6e40;-webkit-box-shadow:0 1px 0 0 #ff6e40;box-shadow:0 1px 0 0 #ff6e40}.mdui-theme-accent-deep-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-deep-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-deep-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label{color:#ff6e40}@media (prefers-color-scheme:dark){.mdui-theme-accent-deep-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#ff6e40;-webkit-box-shadow:0 1px 0 0 #ff6e40;box-shadow:0 1px 0 0 #ff6e40}.mdui-theme-accent-deep-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-deep-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-deep-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label{color:#ff6e40}}.mdui-theme-accent-deep-purple .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#6200ea;-webkit-box-shadow:0 1px 0 0 #6200ea;box-shadow:0 1px 0 0 #6200ea}.mdui-theme-accent-deep-purple .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-deep-purple .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-deep-purple .mdui-textfield-focus .mdui-textfield-label{color:rgba(98,0,234,.87)}.mdui-theme-accent-deep-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#7c4dff;-webkit-box-shadow:0 1px 0 0 #7c4dff;box-shadow:0 1px 0 0 #7c4dff}.mdui-theme-accent-deep-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-deep-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-deep-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label{color:#7c4dff}@media (prefers-color-scheme:dark){.mdui-theme-accent-deep-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#7c4dff;-webkit-box-shadow:0 1px 0 0 #7c4dff;box-shadow:0 1px 0 0 #7c4dff}.mdui-theme-accent-deep-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-deep-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-deep-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label{color:#7c4dff}}.mdui-theme-accent-green .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#00c853;-webkit-box-shadow:0 1px 0 0 #00c853;box-shadow:0 1px 0 0 #00c853}.mdui-theme-accent-green .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-green .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-green .mdui-textfield-focus .mdui-textfield-label{color:rgba(0,200,83,.87)}.mdui-theme-accent-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#69f0ae;-webkit-box-shadow:0 1px 0 0 #69f0ae;box-shadow:0 1px 0 0 #69f0ae}.mdui-theme-accent-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label{color:#69f0ae}@media (prefers-color-scheme:dark){.mdui-theme-accent-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#69f0ae;-webkit-box-shadow:0 1px 0 0 #69f0ae;box-shadow:0 1px 0 0 #69f0ae}.mdui-theme-accent-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label{color:#69f0ae}}.mdui-theme-accent-indigo .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#304ffe;-webkit-box-shadow:0 1px 0 0 #304ffe;box-shadow:0 1px 0 0 #304ffe}.mdui-theme-accent-indigo .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-indigo .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-indigo .mdui-textfield-focus .mdui-textfield-label{color:rgba(48,79,254,.87)}.mdui-theme-accent-indigo.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#536dfe;-webkit-box-shadow:0 1px 0 0 #536dfe;box-shadow:0 1px 0 0 #536dfe}.mdui-theme-accent-indigo.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-indigo.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-indigo.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label{color:#536dfe}@media (prefers-color-scheme:dark){.mdui-theme-accent-indigo.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#536dfe;-webkit-box-shadow:0 1px 0 0 #536dfe;box-shadow:0 1px 0 0 #536dfe}.mdui-theme-accent-indigo.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-indigo.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-indigo.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label{color:#536dfe}}.mdui-theme-accent-light-blue .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#0091ea;-webkit-box-shadow:0 1px 0 0 #0091ea;box-shadow:0 1px 0 0 #0091ea}.mdui-theme-accent-light-blue .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-light-blue .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-light-blue .mdui-textfield-focus .mdui-textfield-label{color:rgba(0,145,234,.87)}.mdui-theme-accent-light-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#40c4ff;-webkit-box-shadow:0 1px 0 0 #40c4ff;box-shadow:0 1px 0 0 #40c4ff}.mdui-theme-accent-light-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-light-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-light-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label{color:#40c4ff}@media (prefers-color-scheme:dark){.mdui-theme-accent-light-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#40c4ff;-webkit-box-shadow:0 1px 0 0 #40c4ff;box-shadow:0 1px 0 0 #40c4ff}.mdui-theme-accent-light-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-light-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-light-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label{color:#40c4ff}}.mdui-theme-accent-light-green .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#64dd17;-webkit-box-shadow:0 1px 0 0 #64dd17;box-shadow:0 1px 0 0 #64dd17}.mdui-theme-accent-light-green .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-light-green .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-light-green .mdui-textfield-focus .mdui-textfield-label{color:rgba(100,221,23,.87)}.mdui-theme-accent-light-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#b2ff59;-webkit-box-shadow:0 1px 0 0 #b2ff59;box-shadow:0 1px 0 0 #b2ff59}.mdui-theme-accent-light-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-light-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-light-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label{color:#b2ff59}@media (prefers-color-scheme:dark){.mdui-theme-accent-light-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#b2ff59;-webkit-box-shadow:0 1px 0 0 #b2ff59;box-shadow:0 1px 0 0 #b2ff59}.mdui-theme-accent-light-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-light-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-light-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label{color:#b2ff59}}.mdui-theme-accent-lime .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#aeea00;-webkit-box-shadow:0 1px 0 0 #aeea00;box-shadow:0 1px 0 0 #aeea00}.mdui-theme-accent-lime .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-lime .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-lime .mdui-textfield-focus .mdui-textfield-label{color:rgba(174,234,0,.87)}.mdui-theme-accent-lime.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#eeff41;-webkit-box-shadow:0 1px 0 0 #eeff41;box-shadow:0 1px 0 0 #eeff41}.mdui-theme-accent-lime.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-lime.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-lime.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label{color:#eeff41}@media (prefers-color-scheme:dark){.mdui-theme-accent-lime.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#eeff41;-webkit-box-shadow:0 1px 0 0 #eeff41;box-shadow:0 1px 0 0 #eeff41}.mdui-theme-accent-lime.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-lime.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-lime.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label{color:#eeff41}}.mdui-theme-accent-orange .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#ff6d00;-webkit-box-shadow:0 1px 0 0 #ff6d00;box-shadow:0 1px 0 0 #ff6d00}.mdui-theme-accent-orange .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-orange .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-orange .mdui-textfield-focus .mdui-textfield-label{color:rgba(255,109,0,.87)}.mdui-theme-accent-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#ffab40;-webkit-box-shadow:0 1px 0 0 #ffab40;box-shadow:0 1px 0 0 #ffab40}.mdui-theme-accent-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label{color:#ffab40}@media (prefers-color-scheme:dark){.mdui-theme-accent-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#ffab40;-webkit-box-shadow:0 1px 0 0 #ffab40;box-shadow:0 1px 0 0 #ffab40}.mdui-theme-accent-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label{color:#ffab40}}.mdui-theme-accent-pink .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#c51162;-webkit-box-shadow:0 1px 0 0 #c51162;box-shadow:0 1px 0 0 #c51162}.mdui-theme-accent-pink .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-pink .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-pink .mdui-textfield-focus .mdui-textfield-label{color:rgba(197,17,98,.87)}.mdui-theme-accent-pink.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#ff4081;-webkit-box-shadow:0 1px 0 0 #ff4081;box-shadow:0 1px 0 0 #ff4081}.mdui-theme-accent-pink.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-pink.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-pink.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label{color:#ff4081}@media (prefers-color-scheme:dark){.mdui-theme-accent-pink.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#ff4081;-webkit-box-shadow:0 1px 0 0 #ff4081;box-shadow:0 1px 0 0 #ff4081}.mdui-theme-accent-pink.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-pink.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-pink.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label{color:#ff4081}}.mdui-theme-accent-purple .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#a0f;-webkit-box-shadow:0 1px 0 0 #a0f;box-shadow:0 1px 0 0 #a0f}.mdui-theme-accent-purple .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-purple .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-purple .mdui-textfield-focus .mdui-textfield-label{color:rgba(170,0,255,.87)}.mdui-theme-accent-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#e040fb;-webkit-box-shadow:0 1px 0 0 #e040fb;box-shadow:0 1px 0 0 #e040fb}.mdui-theme-accent-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label{color:#e040fb}@media (prefers-color-scheme:dark){.mdui-theme-accent-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#e040fb;-webkit-box-shadow:0 1px 0 0 #e040fb;box-shadow:0 1px 0 0 #e040fb}.mdui-theme-accent-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label{color:#e040fb}}.mdui-theme-accent-red .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#d50000;-webkit-box-shadow:0 1px 0 0 #d50000;box-shadow:0 1px 0 0 #d50000}.mdui-theme-accent-red .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-red .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-red .mdui-textfield-focus .mdui-textfield-label{color:rgba(213,0,0,.87)}.mdui-theme-accent-red.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#ff5252;-webkit-box-shadow:0 1px 0 0 #ff5252;box-shadow:0 1px 0 0 #ff5252}.mdui-theme-accent-red.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-red.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-red.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label{color:#ff5252}@media (prefers-color-scheme:dark){.mdui-theme-accent-red.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#ff5252;-webkit-box-shadow:0 1px 0 0 #ff5252;box-shadow:0 1px 0 0 #ff5252}.mdui-theme-accent-red.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-red.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-red.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label{color:#ff5252}}.mdui-theme-accent-teal .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#00bfa5;-webkit-box-shadow:0 1px 0 0 #00bfa5;box-shadow:0 1px 0 0 #00bfa5}.mdui-theme-accent-teal .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-teal .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-teal .mdui-textfield-focus .mdui-textfield-label{color:rgba(0,191,165,.87)}.mdui-theme-accent-teal.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#64ffda;-webkit-box-shadow:0 1px 0 0 #64ffda;box-shadow:0 1px 0 0 #64ffda}.mdui-theme-accent-teal.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-teal.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-teal.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label{color:#64ffda}@media (prefers-color-scheme:dark){.mdui-theme-accent-teal.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#64ffda;-webkit-box-shadow:0 1px 0 0 #64ffda;box-shadow:0 1px 0 0 #64ffda}.mdui-theme-accent-teal.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-teal.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-teal.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label{color:#64ffda}}.mdui-theme-accent-yellow .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#ffd600;-webkit-box-shadow:0 1px 0 0 #ffd600;box-shadow:0 1px 0 0 #ffd600}.mdui-theme-accent-yellow .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-yellow .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-yellow .mdui-textfield-focus .mdui-textfield-label{color:rgba(255,214,0,.87)}.mdui-theme-accent-yellow.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#ff0;-webkit-box-shadow:0 1px 0 0 #ff0;box-shadow:0 1px 0 0 #ff0}.mdui-theme-accent-yellow.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-yellow.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-yellow.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label{color:#ff0}@media (prefers-color-scheme:dark){.mdui-theme-accent-yellow.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input{border-bottom-color:#ff0;-webkit-box-shadow:0 1px 0 0 #ff0;box-shadow:0 1px 0 0 #ff0}.mdui-theme-accent-yellow.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon,.mdui-theme-accent-yellow.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,.mdui-theme-accent-yellow.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label{color:#ff0}}.mdui-checkbox{position:relative;display:inline-block;height:36px;padding-left:36px;line-height:36px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mdui-checkbox input[type=checkbox]{position:absolute;width:0;height:0;overflow:hidden;opacity:0}.mdui-checkbox-icon{position:absolute;top:9px;left:0;display:inline-block;width:18px;height:18px;vertical-align:middle;background-color:transparent;border:none;border-radius:18px;-webkit-transition:-webkit-box-shadow .14s cubic-bezier(.4,0,.2,1);transition:-webkit-box-shadow .14s cubic-bezier(.4,0,.2,1);transition:box-shadow .14s cubic-bezier(.4,0,.2,1);transition:box-shadow .14s cubic-bezier(.4,0,.2,1),-webkit-box-shadow .14s cubic-bezier(.4,0,.2,1)}.mdui-checkbox-icon::after{position:absolute;top:0;left:0;z-index:0;-webkit-box-sizing:border-box;box-sizing:border-box;width:18px;height:18px;border:2px solid rgba(0,0,0,.54);border-radius:2px;-webkit-transition:all .3s cubic-bezier(.4,0,.2,1);transition:all .3s cubic-bezier(.4,0,.2,1);content:' '}.mdui-checkbox-icon::before{position:absolute;top:2px;left:0;z-index:1;-webkit-box-sizing:border-box;box-sizing:border-box;width:8px;height:13px;border-right:2px solid #fff;border-bottom:2px solid #fff;-webkit-transform:rotateZ(37deg) scale(0);transform:rotateZ(37deg) scale(0);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0;-webkit-transition:all .3s cubic-bezier(.4,0,.2,1);transition:all .3s cubic-bezier(.4,0,.2,1);content:' '}.mdui-checkbox input[type=checkbox]:checked+.mdui-checkbox-icon::after{background-color:#ff4081;border-color:#ff4081}.mdui-checkbox input[type=checkbox]:checked+.mdui-checkbox-icon::before{-webkit-transform:rotateZ(37deg) scale(1);transform:rotateZ(37deg) scale(1);opacity:1}.mdui-checkbox input[type=checkbox]:indeterminate+.mdui-checkbox-icon::after{background-color:#ff4081;border-color:#ff4081}.mdui-checkbox input[type=checkbox]:indeterminate+.mdui-checkbox-icon::before{top:8px;left:3px;width:12px;height:0;border-right:none;border-bottom:2px solid #fff;border-radius:1px;-webkit-transform:rotateZ(0) scale(1);transform:rotateZ(0) scale(1);opacity:1}.mdui-checkbox input[type=checkbox]:disabled+.mdui-checkbox-icon::after{border-color:rgba(0,0,0,.26)}.mdui-checkbox input[type=checkbox]:disabled:checked+.mdui-checkbox-icon::after,.mdui-checkbox input[type=checkbox]:disabled:indeterminate+.mdui-checkbox-icon::after{background-color:rgba(0,0,0,.26)!important;border-color:transparent!important}.mdui-checkbox input[type=checkbox]:focus+.mdui-checkbox-icon,.mdui-checkbox:active input[type=checkbox]+.mdui-checkbox-icon{-webkit-box-shadow:0 0 0 15px rgba(0,0,0,.1);box-shadow:0 0 0 15px rgba(0,0,0,.1)}.mdui-checkbox input[type=checkbox]:focus:not(:disabled):checked+.mdui-checkbox-icon,.mdui-checkbox input[type=checkbox]:focus:not(:disabled):indeterminate+.mdui-checkbox-icon,.mdui-checkbox:active input[type=checkbox]:not(:disabled):checked+.mdui-checkbox-icon,.mdui-checkbox:active input[type=checkbox]:not(:disabled):indeterminate+.mdui-checkbox-icon{-webkit-box-shadow:0 0 0 15px rgba(255,64,129,.16);box-shadow:0 0 0 15px rgba(255,64,129,.16)}.mdui-theme-accent-amber .mdui-checkbox input[type=checkbox]:checked+.mdui-checkbox-icon::after,.mdui-theme-accent-amber .mdui-checkbox input[type=checkbox]:indeterminate+.mdui-checkbox-icon::after{background-color:#ffd740;border-color:#ffd740}.mdui-theme-accent-amber .mdui-checkbox input[type=checkbox]:focus:not(:disabled):checked+.mdui-checkbox-icon,.mdui-theme-accent-amber .mdui-checkbox input[type=checkbox]:focus:not(:disabled):indeterminate+.mdui-checkbox-icon,.mdui-theme-accent-amber .mdui-checkbox:active input[type=checkbox]:not(:disabled):checked+.mdui-checkbox-icon,.mdui-theme-accent-amber .mdui-checkbox:active input[type=checkbox]:not(:disabled):indeterminate+.mdui-checkbox-icon{-webkit-box-shadow:0 0 0 15px rgba(255,215,64,.16);box-shadow:0 0 0 15px rgba(255,215,64,.16)}.mdui-theme-accent-blue .mdui-checkbox input[type=checkbox]:checked+.mdui-checkbox-icon::after,.mdui-theme-accent-blue .mdui-checkbox input[type=checkbox]:indeterminate+.mdui-checkbox-icon::after{background-color:#448aff;border-color:#448aff}.mdui-theme-accent-blue .mdui-checkbox input[type=checkbox]:focus:not(:disabled):checked+.mdui-checkbox-icon,.mdui-theme-accent-blue .mdui-checkbox input[type=checkbox]:focus:not(:disabled):indeterminate+.mdui-checkbox-icon,.mdui-theme-accent-blue .mdui-checkbox:active input[type=checkbox]:not(:disabled):checked+.mdui-checkbox-icon,.mdui-theme-accent-blue .mdui-checkbox:active input[type=checkbox]:not(:disabled):indeterminate+.mdui-checkbox-icon{-webkit-box-shadow:0 0 0 15px rgba(68,138,255,.16);box-shadow:0 0 0 15px rgba(68,138,255,.16)}.mdui-theme-accent-cyan .mdui-checkbox input[type=checkbox]:checked+.mdui-checkbox-icon::after,.mdui-theme-accent-cyan .mdui-checkbox input[type=checkbox]:indeterminate+.mdui-checkbox-icon::after{background-color:#18ffff;border-color:#18ffff}.mdui-theme-accent-cyan .mdui-checkbox input[type=checkbox]:focus:not(:disabled):checked+.mdui-checkbox-icon,.mdui-theme-accent-cyan .mdui-checkbox input[type=checkbox]:focus:not(:disabled):indeterminate+.mdui-checkbox-icon,.mdui-theme-accent-cyan .mdui-checkbox:active input[type=checkbox]:not(:disabled):checked+.mdui-checkbox-icon,.mdui-theme-accent-cyan .mdui-checkbox:active input[type=checkbox]:not(:disabled):indeterminate+.mdui-checkbox-icon{-webkit-box-shadow:0 0 0 15px rgba(24,255,255,.16);box-shadow:0 0 0 15px rgba(24,255,255,.16)}.mdui-theme-accent-deep-orange .mdui-checkbox input[type=checkbox]:checked+.mdui-checkbox-icon::after,.mdui-theme-accent-deep-orange .mdui-checkbox input[type=checkbox]:indeterminate+.mdui-checkbox-icon::after{background-color:#ff6e40;border-color:#ff6e40}.mdui-theme-accent-deep-orange .mdui-checkbox input[type=checkbox]:focus:not(:disabled):checked+.mdui-checkbox-icon,.mdui-theme-accent-deep-orange .mdui-checkbox input[type=checkbox]:focus:not(:disabled):indeterminate+.mdui-checkbox-icon,.mdui-theme-accent-deep-orange .mdui-checkbox:active input[type=checkbox]:not(:disabled):checked+.mdui-checkbox-icon,.mdui-theme-accent-deep-orange .mdui-checkbox:active input[type=checkbox]:not(:disabled):indeterminate+.mdui-checkbox-icon{-webkit-box-shadow:0 0 0 15px rgba(255,110,64,.16);box-shadow:0 0 0 15px rgba(255,110,64,.16)}.mdui-theme-accent-deep-purple .mdui-checkbox input[type=checkbox]:checked+.mdui-checkbox-icon::after,.mdui-theme-accent-deep-purple .mdui-checkbox input[type=checkbox]:indeterminate+.mdui-checkbox-icon::after{background-color:#7c4dff;border-color:#7c4dff}.mdui-theme-accent-deep-purple .mdui-checkbox input[type=checkbox]:focus:not(:disabled):checked+.mdui-checkbox-icon,.mdui-theme-accent-deep-purple .mdui-checkbox input[type=checkbox]:focus:not(:disabled):indeterminate+.mdui-checkbox-icon,.mdui-theme-accent-deep-purple .mdui-checkbox:active input[type=checkbox]:not(:disabled):checked+.mdui-checkbox-icon,.mdui-theme-accent-deep-purple .mdui-checkbox:active input[type=checkbox]:not(:disabled):indeterminate+.mdui-checkbox-icon{-webkit-box-shadow:0 0 0 15px rgba(124,77,255,.16);box-shadow:0 0 0 15px rgba(124,77,255,.16)}.mdui-theme-accent-green .mdui-checkbox input[type=checkbox]:checked+.mdui-checkbox-icon::after,.mdui-theme-accent-green .mdui-checkbox input[type=checkbox]:indeterminate+.mdui-checkbox-icon::after{background-color:#69f0ae;border-color:#69f0ae}.mdui-theme-accent-green .mdui-checkbox input[type=checkbox]:focus:not(:disabled):checked+.mdui-checkbox-icon,.mdui-theme-accent-green .mdui-checkbox input[type=checkbox]:focus:not(:disabled):indeterminate+.mdui-checkbox-icon,.mdui-theme-accent-green .mdui-checkbox:active input[type=checkbox]:not(:disabled):checked+.mdui-checkbox-icon,.mdui-theme-accent-green .mdui-checkbox:active input[type=checkbox]:not(:disabled):indeterminate+.mdui-checkbox-icon{-webkit-box-shadow:0 0 0 15px rgba(105,240,174,.16);box-shadow:0 0 0 15px rgba(105,240,174,.16)}.mdui-theme-accent-indigo .mdui-checkbox input[type=checkbox]:checked+.mdui-checkbox-icon::after,.mdui-theme-accent-indigo .mdui-checkbox input[type=checkbox]:indeterminate+.mdui-checkbox-icon::after{background-color:#536dfe;border-color:#536dfe}.mdui-theme-accent-indigo .mdui-checkbox input[type=checkbox]:focus:not(:disabled):checked+.mdui-checkbox-icon,.mdui-theme-accent-indigo .mdui-checkbox input[type=checkbox]:focus:not(:disabled):indeterminate+.mdui-checkbox-icon,.mdui-theme-accent-indigo .mdui-checkbox:active input[type=checkbox]:not(:disabled):checked+.mdui-checkbox-icon,.mdui-theme-accent-indigo .mdui-checkbox:active input[type=checkbox]:not(:disabled):indeterminate+.mdui-checkbox-icon{-webkit-box-shadow:0 0 0 15px rgba(83,109,254,.16);box-shadow:0 0 0 15px rgba(83,109,254,.16)}.mdui-theme-accent-light-blue .mdui-checkbox input[type=checkbox]:checked+.mdui-checkbox-icon::after,.mdui-theme-accent-light-blue .mdui-checkbox input[type=checkbox]:indeterminate+.mdui-checkbox-icon::after{background-color:#40c4ff;border-color:#40c4ff}.mdui-theme-accent-light-blue .mdui-checkbox input[type=checkbox]:focus:not(:disabled):checked+.mdui-checkbox-icon,.mdui-theme-accent-light-blue .mdui-checkbox input[type=checkbox]:focus:not(:disabled):indeterminate+.mdui-checkbox-icon,.mdui-theme-accent-light-blue .mdui-checkbox:active input[type=checkbox]:not(:disabled):checked+.mdui-checkbox-icon,.mdui-theme-accent-light-blue .mdui-checkbox:active input[type=checkbox]:not(:disabled):indeterminate+.mdui-checkbox-icon{-webkit-box-shadow:0 0 0 15px rgba(64,196,255,.16);box-shadow:0 0 0 15px rgba(64,196,255,.16)}.mdui-theme-accent-light-green .mdui-checkbox input[type=checkbox]:checked+.mdui-checkbox-icon::after,.mdui-theme-accent-light-green .mdui-checkbox input[type=checkbox]:indeterminate+.mdui-checkbox-icon::after{background-color:#b2ff59;border-color:#b2ff59}.mdui-theme-accent-light-green .mdui-checkbox input[type=checkbox]:focus:not(:disabled):checked+.mdui-checkbox-icon,.mdui-theme-accent-light-green .mdui-checkbox input[type=checkbox]:focus:not(:disabled):indeterminate+.mdui-checkbox-icon,.mdui-theme-accent-light-green .mdui-checkbox:active input[type=checkbox]:not(:disabled):checked+.mdui-checkbox-icon,.mdui-theme-accent-light-green .mdui-checkbox:active input[type=checkbox]:not(:disabled):indeterminate+.mdui-checkbox-icon{-webkit-box-shadow:0 0 0 15px rgba(178,255,89,.16);box-shadow:0 0 0 15px rgba(178,255,89,.16)}.mdui-theme-accent-lime .mdui-checkbox input[type=checkbox]:checked+.mdui-checkbox-icon::after,.mdui-theme-accent-lime .mdui-checkbox input[type=checkbox]:indeterminate+.mdui-checkbox-icon::after{background-color:#eeff41;border-color:#eeff41}.mdui-theme-accent-lime .mdui-checkbox input[type=checkbox]:focus:not(:disabled):checked+.mdui-checkbox-icon,.mdui-theme-accent-lime .mdui-checkbox input[type=checkbox]:focus:not(:disabled):indeterminate+.mdui-checkbox-icon,.mdui-theme-accent-lime .mdui-checkbox:active input[type=checkbox]:not(:disabled):checked+.mdui-checkbox-icon,.mdui-theme-accent-lime .mdui-checkbox:active input[type=checkbox]:not(:disabled):indeterminate+.mdui-checkbox-icon{-webkit-box-shadow:0 0 0 15px rgba(238,255,65,.16);box-shadow:0 0 0 15px rgba(238,255,65,.16)}.mdui-theme-accent-orange .mdui-checkbox input[type=checkbox]:checked+.mdui-checkbox-icon::after,.mdui-theme-accent-orange .mdui-checkbox input[type=checkbox]:indeterminate+.mdui-checkbox-icon::after{background-color:#ffab40;border-color:#ffab40}.mdui-theme-accent-orange .mdui-checkbox input[type=checkbox]:focus:not(:disabled):checked+.mdui-checkbox-icon,.mdui-theme-accent-orange .mdui-checkbox input[type=checkbox]:focus:not(:disabled):indeterminate+.mdui-checkbox-icon,.mdui-theme-accent-orange .mdui-checkbox:active input[type=checkbox]:not(:disabled):checked+.mdui-checkbox-icon,.mdui-theme-accent-orange .mdui-checkbox:active input[type=checkbox]:not(:disabled):indeterminate+.mdui-checkbox-icon{-webkit-box-shadow:0 0 0 15px rgba(255,171,64,.16);box-shadow:0 0 0 15px rgba(255,171,64,.16)}.mdui-theme-accent-pink .mdui-checkbox input[type=checkbox]:checked+.mdui-checkbox-icon::after,.mdui-theme-accent-pink .mdui-checkbox input[type=checkbox]:indeterminate+.mdui-checkbox-icon::after{background-color:#ff4081;border-color:#ff4081}.mdui-theme-accent-pink .mdui-checkbox input[type=checkbox]:focus:not(:disabled):checked+.mdui-checkbox-icon,.mdui-theme-accent-pink .mdui-checkbox input[type=checkbox]:focus:not(:disabled):indeterminate+.mdui-checkbox-icon,.mdui-theme-accent-pink .mdui-checkbox:active input[type=checkbox]:not(:disabled):checked+.mdui-checkbox-icon,.mdui-theme-accent-pink .mdui-checkbox:active input[type=checkbox]:not(:disabled):indeterminate+.mdui-checkbox-icon{-webkit-box-shadow:0 0 0 15px rgba(255,64,129,.16);box-shadow:0 0 0 15px rgba(255,64,129,.16)}.mdui-theme-accent-purple .mdui-checkbox input[type=checkbox]:checked+.mdui-checkbox-icon::after,.mdui-theme-accent-purple .mdui-checkbox input[type=checkbox]:indeterminate+.mdui-checkbox-icon::after{background-color:#e040fb;border-color:#e040fb}.mdui-theme-accent-purple .mdui-checkbox input[type=checkbox]:focus:not(:disabled):checked+.mdui-checkbox-icon,.mdui-theme-accent-purple .mdui-checkbox input[type=checkbox]:focus:not(:disabled):indeterminate+.mdui-checkbox-icon,.mdui-theme-accent-purple .mdui-checkbox:active input[type=checkbox]:not(:disabled):checked+.mdui-checkbox-icon,.mdui-theme-accent-purple .mdui-checkbox:active input[type=checkbox]:not(:disabled):indeterminate+.mdui-checkbox-icon{-webkit-box-shadow:0 0 0 15px rgba(224,64,251,.16);box-shadow:0 0 0 15px rgba(224,64,251,.16)}.mdui-theme-accent-red .mdui-checkbox input[type=checkbox]:checked+.mdui-checkbox-icon::after,.mdui-theme-accent-red .mdui-checkbox input[type=checkbox]:indeterminate+.mdui-checkbox-icon::after{background-color:#ff5252;border-color:#ff5252}.mdui-theme-accent-red .mdui-checkbox input[type=checkbox]:focus:not(:disabled):checked+.mdui-checkbox-icon,.mdui-theme-accent-red .mdui-checkbox input[type=checkbox]:focus:not(:disabled):indeterminate+.mdui-checkbox-icon,.mdui-theme-accent-red .mdui-checkbox:active input[type=checkbox]:not(:disabled):checked+.mdui-checkbox-icon,.mdui-theme-accent-red .mdui-checkbox:active input[type=checkbox]:not(:disabled):indeterminate+.mdui-checkbox-icon{-webkit-box-shadow:0 0 0 15px rgba(255,82,82,.16);box-shadow:0 0 0 15px rgba(255,82,82,.16)}.mdui-theme-accent-teal .mdui-checkbox input[type=checkbox]:checked+.mdui-checkbox-icon::after,.mdui-theme-accent-teal .mdui-checkbox input[type=checkbox]:indeterminate+.mdui-checkbox-icon::after{background-color:#64ffda;border-color:#64ffda}.mdui-theme-accent-teal .mdui-checkbox input[type=checkbox]:focus:not(:disabled):checked+.mdui-checkbox-icon,.mdui-theme-accent-teal .mdui-checkbox input[type=checkbox]:focus:not(:disabled):indeterminate+.mdui-checkbox-icon,.mdui-theme-accent-teal .mdui-checkbox:active input[type=checkbox]:not(:disabled):checked+.mdui-checkbox-icon,.mdui-theme-accent-teal .mdui-checkbox:active input[type=checkbox]:not(:disabled):indeterminate+.mdui-checkbox-icon{-webkit-box-shadow:0 0 0 15px rgba(100,255,218,.16);box-shadow:0 0 0 15px rgba(100,255,218,.16)}.mdui-theme-accent-yellow .mdui-checkbox input[type=checkbox]:checked+.mdui-checkbox-icon::after,.mdui-theme-accent-yellow .mdui-checkbox input[type=checkbox]:indeterminate+.mdui-checkbox-icon::after{background-color:#ff0;border-color:#ff0}.mdui-theme-accent-yellow .mdui-checkbox input[type=checkbox]:focus:not(:disabled):checked+.mdui-checkbox-icon,.mdui-theme-accent-yellow .mdui-checkbox input[type=checkbox]:focus:not(:disabled):indeterminate+.mdui-checkbox-icon,.mdui-theme-accent-yellow .mdui-checkbox:active input[type=checkbox]:not(:disabled):checked+.mdui-checkbox-icon,.mdui-theme-accent-yellow .mdui-checkbox:active input[type=checkbox]:not(:disabled):indeterminate+.mdui-checkbox-icon{-webkit-box-shadow:0 0 0 15px rgba(255,255,0,.16);box-shadow:0 0 0 15px rgba(255,255,0,.16)}.mdui-theme-layout-dark .mdui-checkbox-icon::after{border-color:rgba(255,255,255,.7)}.mdui-theme-layout-dark .mdui-checkbox-icon::before{border-right-color:#303030!important;border-bottom-color:#303030!important}.mdui-theme-layout-dark .mdui-checkbox input[type=checkbox]:disabled+.mdui-checkbox-icon::after{border-color:rgba(255,255,255,.3)}.mdui-theme-layout-dark .mdui-checkbox input[type=checkbox]:disabled:checked+.mdui-checkbox-icon::after,.mdui-theme-layout-dark .mdui-checkbox input[type=checkbox]:disabled:indeterminate+.mdui-checkbox-icon::after{background-color:rgba(255,255,255,.3)!important;border-color:transparent!important}.mdui-theme-layout-dark .mdui-checkbox input[type=checkbox]:focus+.mdui-checkbox-icon,.mdui-theme-layout-dark .mdui-checkbox:active input[type=checkbox]+.mdui-checkbox-icon{-webkit-box-shadow:0 0 0 15px rgba(255,255,255,.1);box-shadow:0 0 0 15px rgba(255,255,255,.1)}@media (prefers-color-scheme:dark){.mdui-theme-layout-auto .mdui-checkbox-icon::after{border-color:rgba(255,255,255,.7)}.mdui-theme-layout-auto .mdui-checkbox-icon::before{border-right-color:#303030!important;border-bottom-color:#303030!important}.mdui-theme-layout-auto .mdui-checkbox input[type=checkbox]:disabled+.mdui-checkbox-icon::after{border-color:rgba(255,255,255,.3)}.mdui-theme-layout-auto .mdui-checkbox input[type=checkbox]:disabled:checked+.mdui-checkbox-icon::after,.mdui-theme-layout-auto .mdui-checkbox input[type=checkbox]:disabled:indeterminate+.mdui-checkbox-icon::after{background-color:rgba(255,255,255,.3)!important;border-color:transparent!important}.mdui-theme-layout-auto .mdui-checkbox input[type=checkbox]:focus+.mdui-checkbox-icon,.mdui-theme-layout-auto .mdui-checkbox:active input[type=checkbox]+.mdui-checkbox-icon{-webkit-box-shadow:0 0 0 15px rgba(255,255,255,.1);box-shadow:0 0 0 15px rgba(255,255,255,.1)}}.mdui-radio{position:relative;display:inline-block;height:36px;padding-left:36px;line-height:36px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mdui-radio input{position:absolute;width:0;height:0;overflow:hidden;opacity:0}.mdui-radio-icon{position:absolute;top:9px;left:0;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;width:18px;height:18px;vertical-align:middle;border:2px solid rgba(0,0,0,.54);border-radius:18px;-webkit-transition:all .3s cubic-bezier(.4,0,.2,1),-webkit-box-shadow .14s cubic-bezier(.4,0,.2,1);transition:all .3s cubic-bezier(.4,0,.2,1),-webkit-box-shadow .14s cubic-bezier(.4,0,.2,1);transition:all .3s cubic-bezier(.4,0,.2,1),box-shadow .14s cubic-bezier(.4,0,.2,1);transition:all .3s cubic-bezier(.4,0,.2,1),box-shadow .14s cubic-bezier(.4,0,.2,1),-webkit-box-shadow .14s cubic-bezier(.4,0,.2,1)}.mdui-radio-icon::before{position:absolute;top:0;left:0;width:14px;height:14px;background-color:#ff4081;border-radius:14px;-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-transition:all .3s cubic-bezier(.4,0,.2,1);transition:all .3s cubic-bezier(.4,0,.2,1);content:' '}.mdui-radio input[type=radio]:checked+.mdui-radio-icon{border-color:#ff4081}.mdui-radio input[type=radio]:checked+.mdui-radio-icon::before{-webkit-transform:scale(.68);transform:scale(.68);opacity:1}.mdui-radio input[type=radio]:disabled+.mdui-radio-icon{border-color:rgba(0,0,0,.26)!important}.mdui-radio input[type=radio]:disabled:checked+.mdui-radio-icon::before{background-color:rgba(0,0,0,.26)!important}.mdui-radio input[type=radio]:focus+.mdui-radio-icon,.mdui-radio:active input[type=radio]+.mdui-radio-icon{-webkit-box-shadow:0 0 0 15px rgba(0,0,0,.1);box-shadow:0 0 0 15px rgba(0,0,0,.1)}.mdui-radio input[type=radio]:focus:checked:not(:disabled)+.mdui-radio-icon,.mdui-radio:active input[type=radio]:checked:not(:disabled)+.mdui-radio-icon{-webkit-box-shadow:0 0 0 15px rgba(255,64,129,.16);box-shadow:0 0 0 15px rgba(255,64,129,.16)}.mdui-theme-accent-amber .mdui-radio input[type=radio]:checked+.mdui-radio-icon{border-color:#ffd740}.mdui-theme-accent-amber .mdui-radio input[type=radio]:checked+.mdui-radio-icon::before{background-color:#ffd740}.mdui-theme-accent-amber .mdui-radio input[type=radio]:focus:checked:not(:disabled)+.mdui-radio-icon,.mdui-theme-accent-amber .mdui-radio:active input[type=radio]:checked:not(:disabled)+.mdui-radio-icon{-webkit-box-shadow:0 0 0 15px rgba(255,215,64,.16);box-shadow:0 0 0 15px rgba(255,215,64,.16)}.mdui-theme-accent-blue .mdui-radio input[type=radio]:checked+.mdui-radio-icon{border-color:#448aff}.mdui-theme-accent-blue .mdui-radio input[type=radio]:checked+.mdui-radio-icon::before{background-color:#448aff}.mdui-theme-accent-blue .mdui-radio input[type=radio]:focus:checked:not(:disabled)+.mdui-radio-icon,.mdui-theme-accent-blue .mdui-radio:active input[type=radio]:checked:not(:disabled)+.mdui-radio-icon{-webkit-box-shadow:0 0 0 15px rgba(68,138,255,.16);box-shadow:0 0 0 15px rgba(68,138,255,.16)}.mdui-theme-accent-cyan .mdui-radio input[type=radio]:checked+.mdui-radio-icon{border-color:#18ffff}.mdui-theme-accent-cyan .mdui-radio input[type=radio]:checked+.mdui-radio-icon::before{background-color:#18ffff}.mdui-theme-accent-cyan .mdui-radio input[type=radio]:focus:checked:not(:disabled)+.mdui-radio-icon,.mdui-theme-accent-cyan .mdui-radio:active input[type=radio]:checked:not(:disabled)+.mdui-radio-icon{-webkit-box-shadow:0 0 0 15px rgba(24,255,255,.16);box-shadow:0 0 0 15px rgba(24,255,255,.16)}.mdui-theme-accent-deep-orange .mdui-radio input[type=radio]:checked+.mdui-radio-icon{border-color:#ff6e40}.mdui-theme-accent-deep-orange .mdui-radio input[type=radio]:checked+.mdui-radio-icon::before{background-color:#ff6e40}.mdui-theme-accent-deep-orange .mdui-radio input[type=radio]:focus:checked:not(:disabled)+.mdui-radio-icon,.mdui-theme-accent-deep-orange .mdui-radio:active input[type=radio]:checked:not(:disabled)+.mdui-radio-icon{-webkit-box-shadow:0 0 0 15px rgba(255,110,64,.16);box-shadow:0 0 0 15px rgba(255,110,64,.16)}.mdui-theme-accent-deep-purple .mdui-radio input[type=radio]:checked+.mdui-radio-icon{border-color:#7c4dff}.mdui-theme-accent-deep-purple .mdui-radio input[type=radio]:checked+.mdui-radio-icon::before{background-color:#7c4dff}.mdui-theme-accent-deep-purple .mdui-radio input[type=radio]:focus:checked:not(:disabled)+.mdui-radio-icon,.mdui-theme-accent-deep-purple .mdui-radio:active input[type=radio]:checked:not(:disabled)+.mdui-radio-icon{-webkit-box-shadow:0 0 0 15px rgba(124,77,255,.16);box-shadow:0 0 0 15px rgba(124,77,255,.16)}.mdui-theme-accent-green .mdui-radio input[type=radio]:checked+.mdui-radio-icon{border-color:#69f0ae}.mdui-theme-accent-green .mdui-radio input[type=radio]:checked+.mdui-radio-icon::before{background-color:#69f0ae}.mdui-theme-accent-green .mdui-radio input[type=radio]:focus:checked:not(:disabled)+.mdui-radio-icon,.mdui-theme-accent-green .mdui-radio:active input[type=radio]:checked:not(:disabled)+.mdui-radio-icon{-webkit-box-shadow:0 0 0 15px rgba(105,240,174,.16);box-shadow:0 0 0 15px rgba(105,240,174,.16)}.mdui-theme-accent-indigo .mdui-radio input[type=radio]:checked+.mdui-radio-icon{border-color:#536dfe}.mdui-theme-accent-indigo .mdui-radio input[type=radio]:checked+.mdui-radio-icon::before{background-color:#536dfe}.mdui-theme-accent-indigo .mdui-radio input[type=radio]:focus:checked:not(:disabled)+.mdui-radio-icon,.mdui-theme-accent-indigo .mdui-radio:active input[type=radio]:checked:not(:disabled)+.mdui-radio-icon{-webkit-box-shadow:0 0 0 15px rgba(83,109,254,.16);box-shadow:0 0 0 15px rgba(83,109,254,.16)}.mdui-theme-accent-light-blue .mdui-radio input[type=radio]:checked+.mdui-radio-icon{border-color:#40c4ff}.mdui-theme-accent-light-blue .mdui-radio input[type=radio]:checked+.mdui-radio-icon::before{background-color:#40c4ff}.mdui-theme-accent-light-blue .mdui-radio input[type=radio]:focus:checked:not(:disabled)+.mdui-radio-icon,.mdui-theme-accent-light-blue .mdui-radio:active input[type=radio]:checked:not(:disabled)+.mdui-radio-icon{-webkit-box-shadow:0 0 0 15px rgba(64,196,255,.16);box-shadow:0 0 0 15px rgba(64,196,255,.16)}.mdui-theme-accent-light-green .mdui-radio input[type=radio]:checked+.mdui-radio-icon{border-color:#b2ff59}.mdui-theme-accent-light-green .mdui-radio input[type=radio]:checked+.mdui-radio-icon::before{background-color:#b2ff59}.mdui-theme-accent-light-green .mdui-radio input[type=radio]:focus:checked:not(:disabled)+.mdui-radio-icon,.mdui-theme-accent-light-green .mdui-radio:active input[type=radio]:checked:not(:disabled)+.mdui-radio-icon{-webkit-box-shadow:0 0 0 15px rgba(178,255,89,.16);box-shadow:0 0 0 15px rgba(178,255,89,.16)}.mdui-theme-accent-lime .mdui-radio input[type=radio]:checked+.mdui-radio-icon{border-color:#eeff41}.mdui-theme-accent-lime .mdui-radio input[type=radio]:checked+.mdui-radio-icon::before{background-color:#eeff41}.mdui-theme-accent-lime .mdui-radio input[type=radio]:focus:checked:not(:disabled)+.mdui-radio-icon,.mdui-theme-accent-lime .mdui-radio:active input[type=radio]:checked:not(:disabled)+.mdui-radio-icon{-webkit-box-shadow:0 0 0 15px rgba(238,255,65,.16);box-shadow:0 0 0 15px rgba(238,255,65,.16)}.mdui-theme-accent-orange .mdui-radio input[type=radio]:checked+.mdui-radio-icon{border-color:#ffab40}.mdui-theme-accent-orange .mdui-radio input[type=radio]:checked+.mdui-radio-icon::before{background-color:#ffab40}.mdui-theme-accent-orange .mdui-radio input[type=radio]:focus:checked:not(:disabled)+.mdui-radio-icon,.mdui-theme-accent-orange .mdui-radio:active input[type=radio]:checked:not(:disabled)+.mdui-radio-icon{-webkit-box-shadow:0 0 0 15px rgba(255,171,64,.16);box-shadow:0 0 0 15px rgba(255,171,64,.16)}.mdui-theme-accent-pink .mdui-radio input[type=radio]:checked+.mdui-radio-icon{border-color:#ff4081}.mdui-theme-accent-pink .mdui-radio input[type=radio]:checked+.mdui-radio-icon::before{background-color:#ff4081}.mdui-theme-accent-pink .mdui-radio input[type=radio]:focus:checked:not(:disabled)+.mdui-radio-icon,.mdui-theme-accent-pink .mdui-radio:active input[type=radio]:checked:not(:disabled)+.mdui-radio-icon{-webkit-box-shadow:0 0 0 15px rgba(255,64,129,.16);box-shadow:0 0 0 15px rgba(255,64,129,.16)}.mdui-theme-accent-purple .mdui-radio input[type=radio]:checked+.mdui-radio-icon{border-color:#e040fb}.mdui-theme-accent-purple .mdui-radio input[type=radio]:checked+.mdui-radio-icon::before{background-color:#e040fb}.mdui-theme-accent-purple .mdui-radio input[type=radio]:focus:checked:not(:disabled)+.mdui-radio-icon,.mdui-theme-accent-purple .mdui-radio:active input[type=radio]:checked:not(:disabled)+.mdui-radio-icon{-webkit-box-shadow:0 0 0 15px rgba(224,64,251,.16);box-shadow:0 0 0 15px rgba(224,64,251,.16)}.mdui-theme-accent-red .mdui-radio input[type=radio]:checked+.mdui-radio-icon{border-color:#ff5252}.mdui-theme-accent-red .mdui-radio input[type=radio]:checked+.mdui-radio-icon::before{background-color:#ff5252}.mdui-theme-accent-red .mdui-radio input[type=radio]:focus:checked:not(:disabled)+.mdui-radio-icon,.mdui-theme-accent-red .mdui-radio:active input[type=radio]:checked:not(:disabled)+.mdui-radio-icon{-webkit-box-shadow:0 0 0 15px rgba(255,82,82,.16);box-shadow:0 0 0 15px rgba(255,82,82,.16)}.mdui-theme-accent-teal .mdui-radio input[type=radio]:checked+.mdui-radio-icon{border-color:#64ffda}.mdui-theme-accent-teal .mdui-radio input[type=radio]:checked+.mdui-radio-icon::before{background-color:#64ffda}.mdui-theme-accent-teal .mdui-radio input[type=radio]:focus:checked:not(:disabled)+.mdui-radio-icon,.mdui-theme-accent-teal .mdui-radio:active input[type=radio]:checked:not(:disabled)+.mdui-radio-icon{-webkit-box-shadow:0 0 0 15px rgba(100,255,218,.16);box-shadow:0 0 0 15px rgba(100,255,218,.16)}.mdui-theme-accent-yellow .mdui-radio input[type=radio]:checked+.mdui-radio-icon{border-color:#ff0}.mdui-theme-accent-yellow .mdui-radio input[type=radio]:checked+.mdui-radio-icon::before{background-color:#ff0}.mdui-theme-accent-yellow .mdui-radio input[type=radio]:focus:checked:not(:disabled)+.mdui-radio-icon,.mdui-theme-accent-yellow .mdui-radio:active input[type=radio]:checked:not(:disabled)+.mdui-radio-icon{-webkit-box-shadow:0 0 0 15px rgba(255,255,0,.16);box-shadow:0 0 0 15px rgba(255,255,0,.16)}.mdui-theme-layout-dark .mdui-radio-icon{border-color:rgba(255,255,255,.7)}.mdui-theme-layout-dark .mdui-radio input[type=radio]:disabled+.mdui-radio-icon{border-color:rgba(255,255,255,.3)!important}.mdui-theme-layout-dark .mdui-radio input[type=radio]:disabled:checked+.mdui-radio-icon::before{background-color:rgba(255,255,255,.3)!important}.mdui-theme-layout-dark .mdui-radio input[type=radio]:focus+.mdui-radio-icon,.mdui-theme-layout-dark .mdui-radio:active input[type=radio]+.mdui-radio-icon{-webkit-box-shadow:0 0 0 15px rgba(255,255,255,.1);box-shadow:0 0 0 15px rgba(255,255,255,.1)}@media (prefers-color-scheme:dark){.mdui-theme-layout-auto .mdui-radio-icon{border-color:rgba(255,255,255,.7)}.mdui-theme-layout-auto .mdui-radio input[type=radio]:disabled+.mdui-radio-icon{border-color:rgba(255,255,255,.3)!important}.mdui-theme-layout-auto .mdui-radio input[type=radio]:disabled:checked+.mdui-radio-icon::before{background-color:rgba(255,255,255,.3)!important}.mdui-theme-layout-auto .mdui-radio input[type=radio]:focus+.mdui-radio-icon,.mdui-theme-layout-auto .mdui-radio:active input[type=radio]+.mdui-radio-icon{-webkit-box-shadow:0 0 0 15px rgba(255,255,255,.1);box-shadow:0 0 0 15px rgba(255,255,255,.1)}}.mdui-switch{display:inline-block;height:36px;line-height:36px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mdui-switch input{position:absolute;width:0;height:0;overflow:hidden;opacity:0}.mdui-switch-icon{position:relative;display:inline-block;width:36px;height:14px;vertical-align:middle;background-color:rgba(0,0,0,.38);border-radius:14px;-webkit-transition:background-color .3s cubic-bezier(.4,0,.2,1);transition:background-color .3s cubic-bezier(.4,0,.2,1)}.mdui-switch-icon::before{position:absolute;top:-3px;left:-3px;display:inline-block;width:20px;height:20px;background-color:#fafafa;border-radius:20px;-webkit-transition:background-color .3s cubic-bezier(.4,0,.2,1),left .3s cubic-bezier(.4,0,.2,1),-webkit-box-shadow .14s cubic-bezier(.4,0,.2,1);transition:background-color .3s cubic-bezier(.4,0,.2,1),left .3s cubic-bezier(.4,0,.2,1),-webkit-box-shadow .14s cubic-bezier(.4,0,.2,1);transition:box-shadow .14s cubic-bezier(.4,0,.2,1),background-color .3s cubic-bezier(.4,0,.2,1),left .3s cubic-bezier(.4,0,.2,1);transition:box-shadow .14s cubic-bezier(.4,0,.2,1),background-color .3s cubic-bezier(.4,0,.2,1),left .3s cubic-bezier(.4,0,.2,1),-webkit-box-shadow .14s cubic-bezier(.4,0,.2,1);content:' ';-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12);box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12)}.mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(255,64,129,.5)}.mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{left:20px;background-color:#ff4081}.mdui-switch input[type=checkbox]:focus+.mdui-switch-icon::before,.mdui-switch:active input[type=checkbox]+.mdui-switch-icon::before{-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(0,0,0,.1);box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(0,0,0,.1)}.mdui-switch input[type=checkbox]:focus:checked:not(:disabled)+.mdui-switch-icon::before,.mdui-switch:active input[type=checkbox]:checked:not(:disabled)+.mdui-switch-icon::before{-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(255,64,129,.16);box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(255,64,129,.16)}.mdui-switch input[type=checkbox]:disabled+.mdui-switch-icon{background-color:rgba(0,0,0,.12)!important}.mdui-switch input[type=checkbox]:disabled+.mdui-switch-icon::before{background-color:#bdbdbd!important}.mdui-theme-accent-amber .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(255,215,64,.5)}.mdui-theme-accent-amber .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#ffd740}.mdui-theme-accent-amber .mdui-switch input[type=checkbox]:focus:checked:not(:disabled)+.mdui-switch-icon::before,.mdui-theme-accent-amber .mdui-switch:active input[type=checkbox]:checked:not(:disabled)+.mdui-switch-icon::before{-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(255,215,64,.16);box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(255,215,64,.16)}.mdui-theme-accent-blue .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(68,138,255,.5)}.mdui-theme-accent-blue .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#448aff}.mdui-theme-accent-blue .mdui-switch input[type=checkbox]:focus:checked:not(:disabled)+.mdui-switch-icon::before,.mdui-theme-accent-blue .mdui-switch:active input[type=checkbox]:checked:not(:disabled)+.mdui-switch-icon::before{-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(68,138,255,.16);box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(68,138,255,.16)}.mdui-theme-accent-cyan .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(24,255,255,.5)}.mdui-theme-accent-cyan .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#18ffff}.mdui-theme-accent-cyan .mdui-switch input[type=checkbox]:focus:checked:not(:disabled)+.mdui-switch-icon::before,.mdui-theme-accent-cyan .mdui-switch:active input[type=checkbox]:checked:not(:disabled)+.mdui-switch-icon::before{-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(24,255,255,.16);box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(24,255,255,.16)}.mdui-theme-accent-deep-orange .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(255,110,64,.5)}.mdui-theme-accent-deep-orange .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#ff6e40}.mdui-theme-accent-deep-orange .mdui-switch input[type=checkbox]:focus:checked:not(:disabled)+.mdui-switch-icon::before,.mdui-theme-accent-deep-orange .mdui-switch:active input[type=checkbox]:checked:not(:disabled)+.mdui-switch-icon::before{-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(255,110,64,.16);box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(255,110,64,.16)}.mdui-theme-accent-deep-purple .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(124,77,255,.5)}.mdui-theme-accent-deep-purple .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#7c4dff}.mdui-theme-accent-deep-purple .mdui-switch input[type=checkbox]:focus:checked:not(:disabled)+.mdui-switch-icon::before,.mdui-theme-accent-deep-purple .mdui-switch:active input[type=checkbox]:checked:not(:disabled)+.mdui-switch-icon::before{-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(124,77,255,.16);box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(124,77,255,.16)}.mdui-theme-accent-green .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(105,240,174,.5)}.mdui-theme-accent-green .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#69f0ae}.mdui-theme-accent-green .mdui-switch input[type=checkbox]:focus:checked:not(:disabled)+.mdui-switch-icon::before,.mdui-theme-accent-green .mdui-switch:active input[type=checkbox]:checked:not(:disabled)+.mdui-switch-icon::before{-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(105,240,174,.16);box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(105,240,174,.16)}.mdui-theme-accent-indigo .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(83,109,254,.5)}.mdui-theme-accent-indigo .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#536dfe}.mdui-theme-accent-indigo .mdui-switch input[type=checkbox]:focus:checked:not(:disabled)+.mdui-switch-icon::before,.mdui-theme-accent-indigo .mdui-switch:active input[type=checkbox]:checked:not(:disabled)+.mdui-switch-icon::before{-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(83,109,254,.16);box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(83,109,254,.16)}.mdui-theme-accent-light-blue .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(64,196,255,.5)}.mdui-theme-accent-light-blue .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#40c4ff}.mdui-theme-accent-light-blue .mdui-switch input[type=checkbox]:focus:checked:not(:disabled)+.mdui-switch-icon::before,.mdui-theme-accent-light-blue .mdui-switch:active input[type=checkbox]:checked:not(:disabled)+.mdui-switch-icon::before{-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(64,196,255,.16);box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(64,196,255,.16)}.mdui-theme-accent-light-green .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(178,255,89,.5)}.mdui-theme-accent-light-green .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#b2ff59}.mdui-theme-accent-light-green .mdui-switch input[type=checkbox]:focus:checked:not(:disabled)+.mdui-switch-icon::before,.mdui-theme-accent-light-green .mdui-switch:active input[type=checkbox]:checked:not(:disabled)+.mdui-switch-icon::before{-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(178,255,89,.16);box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(178,255,89,.16)}.mdui-theme-accent-lime .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(238,255,65,.5)}.mdui-theme-accent-lime .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#eeff41}.mdui-theme-accent-lime .mdui-switch input[type=checkbox]:focus:checked:not(:disabled)+.mdui-switch-icon::before,.mdui-theme-accent-lime .mdui-switch:active input[type=checkbox]:checked:not(:disabled)+.mdui-switch-icon::before{-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(238,255,65,.16);box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(238,255,65,.16)}.mdui-theme-accent-orange .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(255,171,64,.5)}.mdui-theme-accent-orange .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#ffab40}.mdui-theme-accent-orange .mdui-switch input[type=checkbox]:focus:checked:not(:disabled)+.mdui-switch-icon::before,.mdui-theme-accent-orange .mdui-switch:active input[type=checkbox]:checked:not(:disabled)+.mdui-switch-icon::before{-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(255,171,64,.16);box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(255,171,64,.16)}.mdui-theme-accent-pink .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(255,64,129,.5)}.mdui-theme-accent-pink .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#ff4081}.mdui-theme-accent-pink .mdui-switch input[type=checkbox]:focus:checked:not(:disabled)+.mdui-switch-icon::before,.mdui-theme-accent-pink .mdui-switch:active input[type=checkbox]:checked:not(:disabled)+.mdui-switch-icon::before{-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(255,64,129,.16);box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(255,64,129,.16)}.mdui-theme-accent-purple .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(224,64,251,.5)}.mdui-theme-accent-purple .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#e040fb}.mdui-theme-accent-purple .mdui-switch input[type=checkbox]:focus:checked:not(:disabled)+.mdui-switch-icon::before,.mdui-theme-accent-purple .mdui-switch:active input[type=checkbox]:checked:not(:disabled)+.mdui-switch-icon::before{-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(224,64,251,.16);box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(224,64,251,.16)}.mdui-theme-accent-red .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(255,82,82,.5)}.mdui-theme-accent-red .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#ff5252}.mdui-theme-accent-red .mdui-switch input[type=checkbox]:focus:checked:not(:disabled)+.mdui-switch-icon::before,.mdui-theme-accent-red .mdui-switch:active input[type=checkbox]:checked:not(:disabled)+.mdui-switch-icon::before{-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(255,82,82,.16);box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(255,82,82,.16)}.mdui-theme-accent-teal .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(100,255,218,.5)}.mdui-theme-accent-teal .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#64ffda}.mdui-theme-accent-teal .mdui-switch input[type=checkbox]:focus:checked:not(:disabled)+.mdui-switch-icon::before,.mdui-theme-accent-teal .mdui-switch:active input[type=checkbox]:checked:not(:disabled)+.mdui-switch-icon::before{-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(100,255,218,.16);box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(100,255,218,.16)}.mdui-theme-accent-yellow .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(255,255,0,.5)}.mdui-theme-accent-yellow .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#ff0}.mdui-theme-accent-yellow .mdui-switch input[type=checkbox]:focus:checked:not(:disabled)+.mdui-switch-icon::before,.mdui-theme-accent-yellow .mdui-switch:active input[type=checkbox]:checked:not(:disabled)+.mdui-switch-icon::before{-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(255,255,0,.16);box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(255,255,0,.16)}.mdui-theme-layout-dark .mdui-switch-icon{background-color:rgba(255,255,255,.3)}.mdui-theme-layout-dark .mdui-switch-icon::before{background-color:#bdbdbd}.mdui-theme-layout-dark.mdui-theme-accent-amber .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(255,229,127,.5)}.mdui-theme-layout-dark.mdui-theme-accent-amber .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#ffe57f}.mdui-theme-layout-dark.mdui-theme-accent-blue .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(130,177,255,.5)}.mdui-theme-layout-dark.mdui-theme-accent-blue .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#82b1ff}.mdui-theme-layout-dark.mdui-theme-accent-cyan .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(132,255,255,.5)}.mdui-theme-layout-dark.mdui-theme-accent-cyan .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#84ffff}.mdui-theme-layout-dark.mdui-theme-accent-deep-orange .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(255,158,128,.5)}.mdui-theme-layout-dark.mdui-theme-accent-deep-orange .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#ff9e80}.mdui-theme-layout-dark.mdui-theme-accent-deep-purple .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(179,136,255,.5)}.mdui-theme-layout-dark.mdui-theme-accent-deep-purple .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#b388ff}.mdui-theme-layout-dark.mdui-theme-accent-green .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(185,246,202,.5)}.mdui-theme-layout-dark.mdui-theme-accent-green .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#b9f6ca}.mdui-theme-layout-dark.mdui-theme-accent-indigo .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(140,158,255,.5)}.mdui-theme-layout-dark.mdui-theme-accent-indigo .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#8c9eff}.mdui-theme-layout-dark.mdui-theme-accent-light-blue .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(128,216,255,.5)}.mdui-theme-layout-dark.mdui-theme-accent-light-blue .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#80d8ff}.mdui-theme-layout-dark.mdui-theme-accent-light-green .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(204,255,144,.5)}.mdui-theme-layout-dark.mdui-theme-accent-light-green .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#ccff90}.mdui-theme-layout-dark.mdui-theme-accent-lime .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(244,255,129,.5)}.mdui-theme-layout-dark.mdui-theme-accent-lime .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#f4ff81}.mdui-theme-layout-dark.mdui-theme-accent-orange .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(255,209,128,.5)}.mdui-theme-layout-dark.mdui-theme-accent-orange .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#ffd180}.mdui-theme-layout-dark.mdui-theme-accent-pink .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(255,128,171,.5)}.mdui-theme-layout-dark.mdui-theme-accent-pink .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#ff80ab}.mdui-theme-layout-dark.mdui-theme-accent-purple .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(234,128,252,.5)}.mdui-theme-layout-dark.mdui-theme-accent-purple .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#ea80fc}.mdui-theme-layout-dark.mdui-theme-accent-red .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(255,138,128,.5)}.mdui-theme-layout-dark.mdui-theme-accent-red .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#ff8a80}.mdui-theme-layout-dark.mdui-theme-accent-teal .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(167,255,235,.5)}.mdui-theme-layout-dark.mdui-theme-accent-teal .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#a7ffeb}.mdui-theme-layout-dark.mdui-theme-accent-yellow .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(255,255,141,.5)}.mdui-theme-layout-dark.mdui-theme-accent-yellow .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#ffff8d}.mdui-theme-layout-dark .mdui-switch input[type=checkbox]:focus+.mdui-switch-icon::before,.mdui-theme-layout-dark .mdui-switch:active input[type=checkbox]+.mdui-switch-icon::before{-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(255,255,255,.1);box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(255,255,255,.1)}.mdui-theme-layout-dark .mdui-switch input[type=checkbox]:disabled+.mdui-switch-icon{background-color:rgba(255,255,255,.1)!important}.mdui-theme-layout-dark .mdui-switch input[type=checkbox]:disabled+.mdui-switch-icon::before{background-color:#424242!important}@media (prefers-color-scheme:dark){.mdui-theme-layout-auto .mdui-switch-icon{background-color:rgba(255,255,255,.3)}.mdui-theme-layout-auto .mdui-switch-icon::before{background-color:#bdbdbd}.mdui-theme-layout-auto.mdui-theme-accent-amber .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(255,229,127,.5)}.mdui-theme-layout-auto.mdui-theme-accent-amber .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#ffe57f}.mdui-theme-layout-auto.mdui-theme-accent-blue .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(130,177,255,.5)}.mdui-theme-layout-auto.mdui-theme-accent-blue .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#82b1ff}.mdui-theme-layout-auto.mdui-theme-accent-cyan .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(132,255,255,.5)}.mdui-theme-layout-auto.mdui-theme-accent-cyan .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#84ffff}.mdui-theme-layout-auto.mdui-theme-accent-deep-orange .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(255,158,128,.5)}.mdui-theme-layout-auto.mdui-theme-accent-deep-orange .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#ff9e80}.mdui-theme-layout-auto.mdui-theme-accent-deep-purple .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(179,136,255,.5)}.mdui-theme-layout-auto.mdui-theme-accent-deep-purple .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#b388ff}.mdui-theme-layout-auto.mdui-theme-accent-green .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(185,246,202,.5)}.mdui-theme-layout-auto.mdui-theme-accent-green .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#b9f6ca}.mdui-theme-layout-auto.mdui-theme-accent-indigo .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(140,158,255,.5)}.mdui-theme-layout-auto.mdui-theme-accent-indigo .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#8c9eff}.mdui-theme-layout-auto.mdui-theme-accent-light-blue .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(128,216,255,.5)}.mdui-theme-layout-auto.mdui-theme-accent-light-blue .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#80d8ff}.mdui-theme-layout-auto.mdui-theme-accent-light-green .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(204,255,144,.5)}.mdui-theme-layout-auto.mdui-theme-accent-light-green .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#ccff90}.mdui-theme-layout-auto.mdui-theme-accent-lime .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(244,255,129,.5)}.mdui-theme-layout-auto.mdui-theme-accent-lime .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#f4ff81}.mdui-theme-layout-auto.mdui-theme-accent-orange .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(255,209,128,.5)}.mdui-theme-layout-auto.mdui-theme-accent-orange .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#ffd180}.mdui-theme-layout-auto.mdui-theme-accent-pink .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(255,128,171,.5)}.mdui-theme-layout-auto.mdui-theme-accent-pink .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#ff80ab}.mdui-theme-layout-auto.mdui-theme-accent-purple .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(234,128,252,.5)}.mdui-theme-layout-auto.mdui-theme-accent-purple .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#ea80fc}.mdui-theme-layout-auto.mdui-theme-accent-red .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(255,138,128,.5)}.mdui-theme-layout-auto.mdui-theme-accent-red .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#ff8a80}.mdui-theme-layout-auto.mdui-theme-accent-teal .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(167,255,235,.5)}.mdui-theme-layout-auto.mdui-theme-accent-teal .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#a7ffeb}.mdui-theme-layout-auto.mdui-theme-accent-yellow .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon{background-color:rgba(255,255,141,.5)}.mdui-theme-layout-auto.mdui-theme-accent-yellow .mdui-switch input[type=checkbox]:checked+.mdui-switch-icon::before{background-color:#ffff8d}.mdui-theme-layout-auto .mdui-switch input[type=checkbox]:focus+.mdui-switch-icon::before,.mdui-theme-layout-auto .mdui-switch:active input[type=checkbox]+.mdui-switch-icon::before{-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(255,255,255,.1);box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12),0 0 0 15px rgba(255,255,255,.1)}.mdui-theme-layout-auto .mdui-switch input[type=checkbox]:disabled+.mdui-switch-icon{background-color:rgba(255,255,255,.1)!important}.mdui-theme-layout-auto .mdui-switch input[type=checkbox]:disabled+.mdui-switch-icon::before{background-color:#424242!important}}.mdui-slider{position:relative;display:block;width:100%;height:36px}.mdui-slider input[type=range]{position:absolute;top:50%;left:0;z-index:2;width:100%;height:20px;margin-top:-10px;cursor:pointer;opacity:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.mdui-slider-fill,.mdui-slider-track{position:absolute;top:50%;-webkit-box-sizing:border-box;box-sizing:border-box;height:2px;margin-top:-1px}.mdui-slider-fill::before,.mdui-slider-track::before{display:block;width:100%;height:100%;content:' '}.mdui-slider-track{right:0}.mdui-slider-track::before{background-color:#bdbdbd;-webkit-transition:background-color .3s cubic-bezier(.4,0,.2,1);transition:background-color .3s cubic-bezier(.4,0,.2,1)}.mdui-slider-fill{left:0}.mdui-slider-fill::before{background-color:#ff4081}.mdui-slider-thumb{position:absolute;top:50%;-webkit-box-sizing:border-box;box-sizing:border-box;width:12px;height:12px;margin-top:-6px;background-color:#ff4081;border:2px solid #ff4081;border-radius:50%;-webkit-transform:translate(-50%);transform:translate(-50%);-webkit-transition:background .45s cubic-bezier(.4,0,.2,1),border-color .45s cubic-bezier(.4,0,.2,1),border-radius .2s cubic-bezier(.4,0,.2,1),-webkit-transform .2s cubic-bezier(.4,0,.2,1);transition:background .45s cubic-bezier(.4,0,.2,1),border-color .45s cubic-bezier(.4,0,.2,1),border-radius .2s cubic-bezier(.4,0,.2,1),-webkit-transform .2s cubic-bezier(.4,0,.2,1);transition:background .45s cubic-bezier(.4,0,.2,1),border-color .45s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1),border-radius .2s cubic-bezier(.4,0,.2,1);transition:background .45s cubic-bezier(.4,0,.2,1),border-color .45s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1),border-radius .2s cubic-bezier(.4,0,.2,1),-webkit-transform .2s cubic-bezier(.4,0,.2,1);will-change:background,border-color,transform,border-radius}.mdui-theme-accent-amber .mdui-slider-fill::before{background-color:#ffd740}.mdui-theme-accent-amber .mdui-slider-thumb{background-color:#ffd740;border:2px solid #ffd740}.mdui-theme-accent-blue .mdui-slider-fill::before{background-color:#448aff}.mdui-theme-accent-blue .mdui-slider-thumb{background-color:#448aff;border:2px solid #448aff}.mdui-theme-accent-cyan .mdui-slider-fill::before{background-color:#18ffff}.mdui-theme-accent-cyan .mdui-slider-thumb{background-color:#18ffff;border:2px solid #18ffff}.mdui-theme-accent-deep-orange .mdui-slider-fill::before{background-color:#ff6e40}.mdui-theme-accent-deep-orange .mdui-slider-thumb{background-color:#ff6e40;border:2px solid #ff6e40}.mdui-theme-accent-deep-purple .mdui-slider-fill::before{background-color:#7c4dff}.mdui-theme-accent-deep-purple .mdui-slider-thumb{background-color:#7c4dff;border:2px solid #7c4dff}.mdui-theme-accent-green .mdui-slider-fill::before{background-color:#69f0ae}.mdui-theme-accent-green .mdui-slider-thumb{background-color:#69f0ae;border:2px solid #69f0ae}.mdui-theme-accent-indigo .mdui-slider-fill::before{background-color:#536dfe}.mdui-theme-accent-indigo .mdui-slider-thumb{background-color:#536dfe;border:2px solid #536dfe}.mdui-theme-accent-light-blue .mdui-slider-fill::before{background-color:#40c4ff}.mdui-theme-accent-light-blue .mdui-slider-thumb{background-color:#40c4ff;border:2px solid #40c4ff}.mdui-theme-accent-light-green .mdui-slider-fill::before{background-color:#b2ff59}.mdui-theme-accent-light-green .mdui-slider-thumb{background-color:#b2ff59;border:2px solid #b2ff59}.mdui-theme-accent-lime .mdui-slider-fill::before{background-color:#eeff41}.mdui-theme-accent-lime .mdui-slider-thumb{background-color:#eeff41;border:2px solid #eeff41}.mdui-theme-accent-orange .mdui-slider-fill::before{background-color:#ffab40}.mdui-theme-accent-orange .mdui-slider-thumb{background-color:#ffab40;border:2px solid #ffab40}.mdui-theme-accent-pink .mdui-slider-fill::before{background-color:#ff4081}.mdui-theme-accent-pink .mdui-slider-thumb{background-color:#ff4081;border:2px solid #ff4081}.mdui-theme-accent-purple .mdui-slider-fill::before{background-color:#e040fb}.mdui-theme-accent-purple .mdui-slider-thumb{background-color:#e040fb;border:2px solid #e040fb}.mdui-theme-accent-red .mdui-slider-fill::before{background-color:#ff5252}.mdui-theme-accent-red .mdui-slider-thumb{background-color:#ff5252;border:2px solid #ff5252}.mdui-theme-accent-teal .mdui-slider-fill::before{background-color:#64ffda}.mdui-theme-accent-teal .mdui-slider-thumb{background-color:#64ffda;border:2px solid #64ffda}.mdui-theme-accent-yellow .mdui-slider-fill::before{background-color:#ff0}.mdui-theme-accent-yellow .mdui-slider-thumb{background-color:#ff0;border:2px solid #ff0}.mdui-slider-focus .mdui-slider-track::before{background-color:#9e9e9e}.mdui-slider-focus .mdui-slider-thumb{-webkit-transform:translate(-50%) scale(1.6);transform:translate(-50%) scale(1.6)}.mdui-slider-zero .mdui-slider-thumb{background-color:#fff;border-color:#bdbdbd}.mdui-slider-zero.mdui-slider-focus .mdui-slider-thumb{border-color:#9e9e9e}.mdui-slider-disabled input[type=range]{cursor:default}.mdui-slider-disabled .mdui-slider-track::before{background-color:#bdbdbd}.mdui-slider-disabled .mdui-slider-fill::before{background-color:#bdbdbd}.mdui-slider-disabled .mdui-slider-thumb{background-color:#bdbdbd;border-color:transparent!important;-webkit-transform:translate(-50%) scale(.72);transform:translate(-50%) scale(.72)}.mdui-slider-discrete .mdui-slider-thumb{width:30px;height:30px;margin-top:-15px;margin-left:-15px;border:none;-webkit-transform:rotate(-45deg) scale(.4);transform:rotate(-45deg) scale(.4)}.mdui-slider-discrete .mdui-slider-thumb span{position:absolute;top:9px;left:-1px;width:100%;color:#fff;font-size:12px;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0;-webkit-transition:opacity .25s cubic-bezier(.4,0,.2,1);transition:opacity .25s cubic-bezier(.4,0,.2,1)}.mdui-slider-discrete.mdui-slider-focus .mdui-slider-thumb{border-radius:15px 15px 15px 0;-webkit-transform:rotate(-45deg) scale(1) translate(22px,-22px);transform:rotate(-45deg) scale(1) translate(22px,-22px)}.mdui-slider-discrete.mdui-slider-focus .mdui-slider-thumb span{opacity:1}.mdui-slider-discrete.mdui-slider-zero .mdui-slider-thumb{background-color:#323232}.mdui-slider-discrete.mdui-slider-zero.mdui-slider-focus .mdui-slider-thumb{background-color:#bdbdbd}.mdui-slider-discrete.mdui-slider-disabled .mdui-slider-thumb{-webkit-transform:rotate(-45deg) scale(.288);transform:rotate(-45deg) scale(.288)}.mdui-slider-discrete.mdui-slider-zero.mdui-slider-disabled .mdui-slider-thumb{background-color:#bdbdbd}.mdui-theme-layout-dark .mdui-slider-track::before{background-color:#4c4c4c}.mdui-theme-layout-dark .mdui-slider-focus .mdui-slider-track::before{background-color:#4c4c4c}.mdui-theme-layout-dark .mdui-slider-zero .mdui-slider-thumb{background-color:#303030;border-color:#4c4c4c}.mdui-theme-layout-dark .mdui-slider-zero.mdui-slider-focus .mdui-slider-thumb{border-color:#4c4c4c}.mdui-theme-layout-dark .mdui-slider-disabled .mdui-slider-track::before{background-color:#4c4c4c}.mdui-theme-layout-dark .mdui-slider-disabled .mdui-slider-fill::before{background-color:#4c4c4c}.mdui-theme-layout-dark .mdui-slider-disabled .mdui-slider-thumb{background-color:#4c4c4c}.mdui-theme-layout-dark .mdui-slider-discrete.mdui-slider-zero .mdui-slider-thumb{background-color:#fefefe}.mdui-theme-layout-dark .mdui-slider-discrete.mdui-slider-zero.mdui-slider-focus .mdui-slider-thumb{background-color:#5c5c5c}.mdui-theme-layout-dark .mdui-slider-discrete.mdui-slider-zero.mdui-slider-disabled .mdui-slider-thumb{background-color:#4c4c4c}@media (prefers-color-scheme:dark){.mdui-theme-layout-auto .mdui-slider-track::before{background-color:#4c4c4c}.mdui-theme-layout-auto .mdui-slider-focus .mdui-slider-track::before{background-color:#4c4c4c}.mdui-theme-layout-auto .mdui-slider-zero .mdui-slider-thumb{background-color:#303030;border-color:#4c4c4c}.mdui-theme-layout-auto .mdui-slider-zero.mdui-slider-focus .mdui-slider-thumb{border-color:#4c4c4c}.mdui-theme-layout-auto .mdui-slider-disabled .mdui-slider-track::before{background-color:#4c4c4c}.mdui-theme-layout-auto .mdui-slider-disabled .mdui-slider-fill::before{background-color:#4c4c4c}.mdui-theme-layout-auto .mdui-slider-disabled .mdui-slider-thumb{background-color:#4c4c4c}.mdui-theme-layout-auto .mdui-slider-discrete.mdui-slider-zero .mdui-slider-thumb{background-color:#fefefe}.mdui-theme-layout-auto .mdui-slider-discrete.mdui-slider-zero.mdui-slider-focus .mdui-slider-thumb{background-color:#5c5c5c}.mdui-theme-layout-auto .mdui-slider-discrete.mdui-slider-zero.mdui-slider-disabled .mdui-slider-thumb{background-color:#4c4c4c}}.mdui-btn,.mdui-fab{position:relative;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;min-width:88px;height:36px;margin:0;padding:0 16px;overflow:hidden;color:inherit;font-weight:500;font-size:14px;line-height:36px;letter-spacing:.04em;white-space:nowrap;text-align:center;text-transform:uppercase;text-decoration:none;vertical-align:middle;background:0 0;border:none;border-radius:2px;outline:0;cursor:pointer;-webkit-transition:all .2s cubic-bezier(.4,0,.2,1),-webkit-box-shadow .2s cubic-bezier(.4,0,1,1);transition:all .2s cubic-bezier(.4,0,.2,1),-webkit-box-shadow .2s cubic-bezier(.4,0,1,1);transition:all .2s cubic-bezier(.4,0,.2,1),box-shadow .2s cubic-bezier(.4,0,1,1);transition:all .2s cubic-bezier(.4,0,.2,1),box-shadow .2s cubic-bezier(.4,0,1,1),-webkit-box-shadow .2s cubic-bezier(.4,0,1,1);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-touch-action:manipulation;touch-action:manipulation;will-change:box-shadow;zoom:1;-webkit-user-drag:none}.mdui-btn:hover,.mdui-fab:hover{background-color:rgba(0,0,0,.1)}.mdui-btn:not(.mdui-ripple):active,.mdui-fab:not(.mdui-ripple):active{background-color:rgba(0,0,0,.165)}.mdui-btn[class*=mdui-color-]:hover,.mdui-fab[class*=mdui-color-]:hover{opacity:.87}.mdui-btn:not(.mdui-ripple)[class*=mdui-color-]:active,.mdui-fab:not(.mdui-ripple)[class*=mdui-color-]:active{opacity:.76}.mdui-btn .mdui-icon-left,.mdui-btn .mdui-icon-left::before,.mdui-btn .mdui-icon-right,.mdui-btn .mdui-icon-right::before{height:inherit;font-size:1.3em;line-height:inherit}.mdui-btn .mdui-icon-left{float:left;margin-right:.4em}.mdui-btn .mdui-icon-right{float:right;margin-left:.4em}input.mdui-btn[type=submit]{-webkit-appearance:none;-moz-appearance:none;appearance:none}.mdui-btn-raised{-webkit-box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.mdui-btn-raised:hover{-webkit-box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12);box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.mdui-btn-raised:active{-webkit-box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12);box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.mdui-btn[disabled],.mdui-btn[disabled]:active,.mdui-btn[disabled]:focus,.mdui-btn[disabled]:hover,.mdui-fab[disabled],.mdui-fab[disabled]:active,.mdui-fab[disabled]:focus,.mdui-fab[disabled]:hover{color:rgba(0,0,0,.26)!important;background-color:transparent!important;cursor:default!important;opacity:1!important;-webkit-box-shadow:none!important;box-shadow:none!important}.mdui-btn[disabled] .mdui-icon,.mdui-btn[disabled]:active .mdui-icon,.mdui-btn[disabled]:focus .mdui-icon,.mdui-btn[disabled]:hover .mdui-icon,.mdui-fab[disabled] .mdui-icon,.mdui-fab[disabled]:active .mdui-icon,.mdui-fab[disabled]:focus .mdui-icon,.mdui-fab[disabled]:hover .mdui-icon{color:rgba(0,0,0,.26)!important}.mdui-btn-raised[disabled],.mdui-btn-raised[disabled]:active,.mdui-btn-raised[disabled]:focus,.mdui-btn-raised[disabled]:hover,.mdui-fab[disabled],.mdui-fab[disabled]:active,.mdui-fab[disabled]:focus,.mdui-fab[disabled]:hover{background-color:rgba(0,0,0,.12)!important;-webkit-box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)!important;box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)!important}.mdui-btn-bold{font-weight:700}.mdui-btn-icon{width:36px;min-width:36px;height:36px;margin-right:0;margin-left:0;padding:0;overflow:hidden;font-size:24px;line-height:normal;border-radius:50%}.mdui-btn-icon .mdui-icon{position:absolute;top:50%;left:50%;width:24px;line-height:24px;-webkit-transform:translate(-12px,-12px);transform:translate(-12px,-12px)}.mdui-btn-icon.mdui-ripple{-webkit-transform:translateZ(0);transform:translateZ(0)}.mdui-btn-block{display:block;width:100%}.mdui-btn-dense{height:32px;font-size:13px;line-height:32px}.mdui-btn-dense.mdui-btn-icon{width:32px;min-width:32px}.mdui-btn-group{position:relative;display:inline-block;vertical-align:middle}.mdui-btn-group .mdui-btn{float:left;min-width:inherit;padding:0 12px;color:rgba(0,0,0,.54);border-radius:0}.mdui-btn-group .mdui-btn::before{position:absolute;top:0;bottom:0;left:0;border-left:1px solid transparent;content:' '}.mdui-btn-group .mdui-btn:first-child{border-top-left-radius:2px;border-bottom-left-radius:2px}.mdui-btn-group .mdui-btn:first-child::before{border-left:none}.mdui-btn-group .mdui-btn:last-child{border-top-right-radius:2px;border-bottom-right-radius:2px}.mdui-btn-group .mdui-btn.mdui-btn-active{color:rgba(0,0,0,.87);background-color:rgba(0,0,0,.215)}.mdui-btn-group .mdui-btn.mdui-btn-active+.mdui-btn-active::before{border-left:1px solid rgba(0,0,0,.145)}.mdui-theme-layout-dark .mdui-btn:hover,.mdui-theme-layout-dark .mdui-fab:hover{background-color:rgba(255,255,255,.1)}.mdui-theme-layout-dark .mdui-btn:not(.mdui-ripple):active,.mdui-theme-layout-dark .mdui-fab:not(.mdui-ripple):active{background-color:rgba(255,255,255,.165)}.mdui-theme-layout-dark .mdui-btn[class*=mdui-color-]:hover,.mdui-theme-layout-dark .mdui-fab[class*=mdui-color-]:hover{opacity:.87}.mdui-theme-layout-dark .mdui-btn:not(.mdui-ripple)[class*=mdui-color-]:active,.mdui-theme-layout-dark .mdui-fab:not(.mdui-ripple)[class*=mdui-color-]:active{opacity:.76}.mdui-theme-layout-dark .mdui-btn[disabled],.mdui-theme-layout-dark .mdui-btn[disabled]:active,.mdui-theme-layout-dark .mdui-btn[disabled]:focus,.mdui-theme-layout-dark .mdui-btn[disabled]:hover,.mdui-theme-layout-dark .mdui-fab[disabled],.mdui-theme-layout-dark .mdui-fab[disabled]:active,.mdui-theme-layout-dark .mdui-fab[disabled]:focus,.mdui-theme-layout-dark .mdui-fab[disabled]:hover{color:rgba(255,255,255,.3)!important;background-color:transparent!important}.mdui-theme-layout-dark .mdui-btn[disabled] .mdui-icon,.mdui-theme-layout-dark .mdui-btn[disabled]:active .mdui-icon,.mdui-theme-layout-dark .mdui-btn[disabled]:focus .mdui-icon,.mdui-theme-layout-dark .mdui-btn[disabled]:hover .mdui-icon,.mdui-theme-layout-dark .mdui-fab[disabled] .mdui-icon,.mdui-theme-layout-dark .mdui-fab[disabled]:active .mdui-icon,.mdui-theme-layout-dark .mdui-fab[disabled]:focus .mdui-icon,.mdui-theme-layout-dark .mdui-fab[disabled]:hover .mdui-icon{color:rgba(255,255,255,.3)!important}.mdui-theme-layout-dark .mdui-btn-raised[disabled],.mdui-theme-layout-dark .mdui-btn-raised[disabled]:active,.mdui-theme-layout-dark .mdui-btn-raised[disabled]:focus,.mdui-theme-layout-dark .mdui-btn-raised[disabled]:hover,.mdui-theme-layout-dark .mdui-fab[disabled],.mdui-theme-layout-dark .mdui-fab[disabled]:active,.mdui-theme-layout-dark .mdui-fab[disabled]:focus,.mdui-theme-layout-dark .mdui-fab[disabled]:hover{background-color:rgba(255,255,255,.12)!important}@media (prefers-color-scheme:dark){.mdui-theme-layout-auto .mdui-btn:hover,.mdui-theme-layout-auto .mdui-fab:hover{background-color:rgba(255,255,255,.1)}.mdui-theme-layout-auto .mdui-btn:not(.mdui-ripple):active,.mdui-theme-layout-auto .mdui-fab:not(.mdui-ripple):active{background-color:rgba(255,255,255,.165)}.mdui-theme-layout-auto .mdui-btn[class*=mdui-color-]:hover,.mdui-theme-layout-auto .mdui-fab[class*=mdui-color-]:hover{opacity:.87}.mdui-theme-layout-auto .mdui-btn:not(.mdui-ripple)[class*=mdui-color-]:active,.mdui-theme-layout-auto .mdui-fab:not(.mdui-ripple)[class*=mdui-color-]:active{opacity:.76}.mdui-theme-layout-auto .mdui-btn[disabled],.mdui-theme-layout-auto .mdui-btn[disabled]:active,.mdui-theme-layout-auto .mdui-btn[disabled]:focus,.mdui-theme-layout-auto .mdui-btn[disabled]:hover,.mdui-theme-layout-auto .mdui-fab[disabled],.mdui-theme-layout-auto .mdui-fab[disabled]:active,.mdui-theme-layout-auto .mdui-fab[disabled]:focus,.mdui-theme-layout-auto .mdui-fab[disabled]:hover{color:rgba(255,255,255,.3)!important;background-color:transparent!important}.mdui-theme-layout-auto .mdui-btn[disabled] .mdui-icon,.mdui-theme-layout-auto .mdui-btn[disabled]:active .mdui-icon,.mdui-theme-layout-auto .mdui-btn[disabled]:focus .mdui-icon,.mdui-theme-layout-auto .mdui-btn[disabled]:hover .mdui-icon,.mdui-theme-layout-auto .mdui-fab[disabled] .mdui-icon,.mdui-theme-layout-auto .mdui-fab[disabled]:active .mdui-icon,.mdui-theme-layout-auto .mdui-fab[disabled]:focus .mdui-icon,.mdui-theme-layout-auto .mdui-fab[disabled]:hover .mdui-icon{color:rgba(255,255,255,.3)!important}.mdui-theme-layout-auto .mdui-btn-raised[disabled],.mdui-theme-layout-auto .mdui-btn-raised[disabled]:active,.mdui-theme-layout-auto .mdui-btn-raised[disabled]:focus,.mdui-theme-layout-auto .mdui-btn-raised[disabled]:hover,.mdui-theme-layout-auto .mdui-fab[disabled],.mdui-theme-layout-auto .mdui-fab[disabled]:active,.mdui-theme-layout-auto .mdui-fab[disabled]:focus,.mdui-theme-layout-auto .mdui-fab[disabled]:hover{background-color:rgba(255,255,255,.12)!important}}.mdui-fab{width:56px;min-width:56px;height:56px;margin:auto;padding:0!important;overflow:hidden;font-size:24px;line-height:normal!important;border-radius:50%;-webkit-box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12);box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12)}.mdui-fab:hover{-webkit-box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12);box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.mdui-fab:active{-webkit-box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12);box-shadow:0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12)}.mdui-fab .mdui-icon{position:absolute;top:0;left:0;width:24px;margin-top:16px;margin-left:16px;line-height:24px}.mdui-fab-mini{width:40px;min-width:40px;height:40px}.mdui-fab-mini .mdui-icon{margin-top:8px;margin-left:8px}.mdui-fab-fixed,.mdui-fab-wrapper{position:fixed!important;right:16px;bottom:16px}@media (min-width:1024px){.mdui-fab-fixed,.mdui-fab-wrapper{right:24px;bottom:24px}}.mdui-fab-wrapper{position:relative;z-index:4000;width:56px;height:56px;padding-top:8px;text-align:center}.mdui-fab-wrapper>.mdui-fab .mdui-icon:not(.mdui-fab-opened){opacity:1;-webkit-transition:all .2s cubic-bezier(.4,0,.2,1);transition:all .2s cubic-bezier(.4,0,.2,1);will-change:opacity,transform}.mdui-fab-wrapper>.mdui-fab .mdui-icon.mdui-fab-opened{-webkit-transform:rotate(225deg);transform:rotate(225deg);opacity:0;-webkit-transition:all .2s cubic-bezier(.4,0,.2,1);transition:all .2s cubic-bezier(.4,0,.2,1);will-change:opacity,transform}.mdui-fab-wrapper>.mdui-fab.mdui-fab-opened .mdui-icon:not(.mdui-fab-opened){-webkit-transform:rotate(225deg);transform:rotate(225deg);opacity:0}.mdui-fab-wrapper>.mdui-fab.mdui-fab-opened .mdui-icon.mdui-fab-opened{-webkit-transform:rotate(360deg);transform:rotate(360deg);opacity:1}.mdui-fab-wrapper>.mdui-fab-mini{margin-top:8px}.mdui-fab-wrapper .mdui-fab-dial{position:absolute;right:0;bottom:64px;left:0;height:0;text-align:center;visibility:visible}.mdui-fab-wrapper .mdui-fab-dial .mdui-fab{margin:8px 0;-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-transition:color .2s cubic-bezier(.4,0,.2,1),opacity 150ms cubic-bezier(.4,0,.2,1),-webkit-box-shadow .2s cubic-bezier(.4,0,1,1),-webkit-transform 150ms cubic-bezier(.4,0,.2,1);transition:color .2s cubic-bezier(.4,0,.2,1),opacity 150ms cubic-bezier(.4,0,.2,1),-webkit-box-shadow .2s cubic-bezier(.4,0,1,1),-webkit-transform 150ms cubic-bezier(.4,0,.2,1);transition:box-shadow .2s cubic-bezier(.4,0,1,1),color .2s cubic-bezier(.4,0,.2,1),transform 150ms cubic-bezier(.4,0,.2,1),opacity 150ms cubic-bezier(.4,0,.2,1);transition:box-shadow .2s cubic-bezier(.4,0,1,1),color .2s cubic-bezier(.4,0,.2,1),transform 150ms cubic-bezier(.4,0,.2,1),opacity 150ms cubic-bezier(.4,0,.2,1),-webkit-box-shadow .2s cubic-bezier(.4,0,1,1),-webkit-transform 150ms cubic-bezier(.4,0,.2,1)}.mdui-fab-wrapper .mdui-fab-dial.mdui-fab-dial-show .mdui-fab{-webkit-transform:scale(1);transform:scale(1);opacity:1}.mdui-fab,.mdui-fab-mini,.mdui-fab-wrapper{-webkit-transform:scale(1) translateZ(0);transform:scale(1) translateZ(0);-webkit-transition:all .2s cubic-bezier(.4,0,.2,1),-webkit-box-shadow .2s cubic-bezier(.4,0,1,1),-webkit-transform .2s;transition:all .2s cubic-bezier(.4,0,.2,1),-webkit-box-shadow .2s cubic-bezier(.4,0,1,1),-webkit-transform .2s;transition:all .2s cubic-bezier(.4,0,.2,1),box-shadow .2s cubic-bezier(.4,0,1,1),transform .2s;transition:all .2s cubic-bezier(.4,0,.2,1),box-shadow .2s cubic-bezier(.4,0,1,1),transform .2s,-webkit-box-shadow .2s cubic-bezier(.4,0,1,1),-webkit-transform .2s;will-change:transform}.mdui-fab-mini.mdui-fab-hide,.mdui-fab-wrapper.mdui-fab-hide,.mdui-fab.mdui-fab-hide{-webkit-transform:scale(0) translateZ(0);transform:scale(0) translateZ(0)}.mdui-select{position:relative;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;max-width:100%;height:36px;padding-right:24px;padding-left:0;font-size:16px;font-family:Roboto,Noto,Helvetica,Arial,sans-serif;vertical-align:middle;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M-.003 2.5l5 5 5-5h-10z' opacity='.54'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right center;border:none;border-bottom:1px solid rgba(0,0,0,.12);outline:0;cursor:pointer;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-property:background-color,background-position-x,-webkit-box-shadow;transition-property:background-color,background-position-x,-webkit-box-shadow;transition-property:background-color,box-shadow,background-position-x;transition-property:background-color,box-shadow,background-position-x,-webkit-box-shadow;-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;will-change:background-color,box-shadow,background-position-x}.mdui-select.mdui-select-open{border-bottom:none}.mdui-select-position-top{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M10.003 7.5l-5-5-5 5h10z' opacity='.54'/%3E%3C/svg%3E")}.mdui-select-open.mdui-select-position-bottom,.mdui-select-open.mdui-select-position-top{z-index:99999;background-color:#fff;background-position-x:calc(100% - 12px);border-radius:2px}.mdui-select-open.mdui-select-position-top{border-top:1px solid rgba(0,0,0,.12);border-bottom:2px solid transparent;border-top-left-radius:0;border-top-right-radius:0;-webkit-box-shadow:0 10px 10px -3px rgba(0,0,0,.2),0 0 14px 1px rgba(0,0,0,.14),0 -7px 24px 2px rgba(0,0,0,.12);box-shadow:0 10px 10px -3px rgba(0,0,0,.2),0 0 14px 1px rgba(0,0,0,.14),0 -7px 24px 2px rgba(0,0,0,.12)}.mdui-select-open.mdui-select-position-top .mdui-select-menu{border-bottom-right-radius:0;border-bottom-left-radius:0;-webkit-box-shadow:0 -4px 4px -2px rgba(0,0,0,.06),8px 0 8px -4px rgba(0,0,0,.12),-8px 0 8px -4px rgba(0,0,0,.12);box-shadow:0 -4px 4px -2px rgba(0,0,0,.06),8px 0 8px -4px rgba(0,0,0,.12),-8px 0 8px -4px rgba(0,0,0,.12)}.mdui-select-open.mdui-select-position-bottom{border-bottom:1px solid rgba(0,0,0,.12);border-bottom-right-radius:0;border-bottom-left-radius:0;-webkit-box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12);box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.mdui-select-open.mdui-select-position-bottom .mdui-select-menu{border-top-left-radius:0;border-top-right-radius:0;-webkit-box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 9px 9px 1px rgba(0,0,0,.14),0 8px 8px 2px rgba(0,0,0,.06);box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 9px 9px 1px rgba(0,0,0,.14),0 8px 8px 2px rgba(0,0,0,.06)}.mdui-select-selected{position:absolute;top:50%;right:24px;left:0;display:block;-webkit-transform:translateY(-50%);transform:translateY(-50%);-webkit-transition:left .2s cubic-bezier(0,0,.2,1);transition:left .2s cubic-bezier(0,0,.2,1);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mdui-select-open .mdui-select-selected{right:32px;left:16px}.mdui-select-open.mdui-select-position-auto .mdui-select-selected{visibility:hidden}.mdui-select-menu{position:relative;z-index:99999;-webkit-box-sizing:border-box;box-sizing:border-box;height:36px;margin:0 -24px 0 0;overflow-y:scroll;color:rgba(0,0,0,.87);background-color:#fff;border-radius:2px;-webkit-transform:scale(1,0);transform:scale(1,0);visibility:hidden;cursor:default;opacity:0;-webkit-transition-timing-function:cubic-bezier(0,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1);-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-property:opacity,visibility,-webkit-transform;transition-property:opacity,visibility,-webkit-transform;transition-property:transform,opacity,visibility;transition-property:transform,opacity,visibility,-webkit-transform;will-change:transform,opacity,visibility;-webkit-overflow-scrolling:touch;-webkit-box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12);box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.mdui-select-open .mdui-select-menu{overflow-y:hidden;-webkit-transform:scale(1,1);transform:scale(1,1);visibility:visible;opacity:1}.mdui-select-closing .mdui-select-menu{overflow-y:hidden;-webkit-box-shadow:none;box-shadow:none;-webkit-transform:scale(1,1);transform:scale(1,1);visibility:visible;opacity:0}.mdui-select-menu-item{height:48px;padding:0 16px;line-height:48px;cursor:pointer;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mdui-select-menu-item:hover{background-color:#eee}.mdui-select-menu-item:first-child{margin-top:8px}.mdui-select-menu-item:last-child{margin-bottom:8px}.mdui-select-menu-item[disabled]{color:rgba(0,0,0,.38)!important;cursor:default}.mdui-select-menu-item[disabled]:hover{background-color:inherit!important}.mdui-select-menu-item[selected]{color:#ff4081}select.mdui-select{background-color:transparent}select.mdui-select option{color:rgba(0,0,0,.87)}select.mdui-select::-ms-expand{display:none}select.mdui-select[multiple]{height:auto;padding:0;font-size:15px;background-color:#fff;background-image:none;border:1px solid rgba(0,0,0,.38);cursor:default}select.mdui-select[multiple] optgroup{margin:8px 0 0 0;padding:0 0 0 16px;color:rgba(0,0,0,.38)}select.mdui-select[multiple] optgroup:last-child{margin-bottom:8px}select.mdui-select[multiple] optgroup:not(:first-child){padding-top:8px;border-top:1px solid rgba(0,0,0,.12)}select.mdui-select[multiple] option{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:32px;margin:0 0 0 -16px;padding:0 16px;color:rgba(0,0,0,.87)}select.mdui-select[multiple] option:first-child{margin-top:8px}select.mdui-select[multiple] option:last-child{margin-bottom:8px}.mdui-theme-accent-amber .mdui-select-menu-item[selected]{color:#ffc107}.mdui-theme-accent-blue .mdui-select-menu-item[selected]{color:#2196f3}.mdui-theme-accent-cyan .mdui-select-menu-item[selected]{color:#00bcd4}.mdui-theme-accent-deep-orange .mdui-select-menu-item[selected]{color:#ff5722}.mdui-theme-accent-deep-purple .mdui-select-menu-item[selected]{color:#673ab7}.mdui-theme-accent-green .mdui-select-menu-item[selected]{color:#4caf50}.mdui-theme-accent-indigo .mdui-select-menu-item[selected]{color:#3f51b5}.mdui-theme-accent-light-blue .mdui-select-menu-item[selected]{color:#03a9f4}.mdui-theme-accent-light-green .mdui-select-menu-item[selected]{color:#8bc34a}.mdui-theme-accent-lime .mdui-select-menu-item[selected]{color:#cddc39}.mdui-theme-accent-orange .mdui-select-menu-item[selected]{color:#ff9800}.mdui-theme-accent-pink .mdui-select-menu-item[selected]{color:#e91e63}.mdui-theme-accent-purple .mdui-select-menu-item[selected]{color:#9c27b0}.mdui-theme-accent-red .mdui-select-menu-item[selected]{color:#f44336}.mdui-theme-accent-teal .mdui-select-menu-item[selected]{color:#009688}.mdui-theme-accent-yellow .mdui-select-menu-item[selected]{color:#ffeb3b}.mdui-theme-layout-dark .mdui-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M-.003 2.5l5 5 5-5h-10z' fill='%23FFF'/%3E%3C/svg%3E");border-bottom:1px solid rgba(255,255,255,.12)}.mdui-theme-layout-dark .mdui-select-position-top{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M10.003 7.5l-5-5-5 5h10z' fill='%23FFF'/%3E%3C/svg%3E")}.mdui-theme-layout-dark .mdui-select-open.mdui-select-position-bottom,.mdui-theme-layout-dark .mdui-select-open.mdui-select-position-top{background-color:#424242}.mdui-theme-layout-dark .mdui-select-open.mdui-select-position-top{border-top:1px solid rgba(255,255,255,.12)}.mdui-theme-layout-dark .mdui-select-open.mdui-select-position-bottom{border-bottom:1px solid rgba(255,255,255,.12)}.mdui-theme-layout-dark .mdui-select-menu{color:#fff;background-color:#424242}.mdui-theme-layout-dark .mdui-select-menu-item:hover{background-color:#616161}.mdui-theme-layout-dark .mdui-select-menu-item[disabled]{color:rgba(255,255,255,.5)!important}.mdui-theme-layout-dark select.mdui-select{color:#fff;background-color:#303030}.mdui-theme-layout-dark select.mdui-select option{color:#fff;background-color:#303030}.mdui-theme-layout-dark select.mdui-select[multiple]{border:1px solid rgba(255,255,255,.5)}.mdui-theme-layout-dark select.mdui-select[multiple] optgroup{color:rgba(255,255,255,.5)}.mdui-theme-layout-dark select.mdui-select[multiple] optgroup:not(:first-child){border-top:1px solid rgba(255,255,255,.12)}@media (prefers-color-scheme:dark){.mdui-theme-layout-auto .mdui-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M-.003 2.5l5 5 5-5h-10z' fill='%23FFF'/%3E%3C/svg%3E");border-bottom:1px solid rgba(255,255,255,.12)}.mdui-theme-layout-auto .mdui-select-position-top{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M10.003 7.5l-5-5-5 5h10z' fill='%23FFF'/%3E%3C/svg%3E")}.mdui-theme-layout-auto .mdui-select-open.mdui-select-position-bottom,.mdui-theme-layout-auto .mdui-select-open.mdui-select-position-top{background-color:#424242}.mdui-theme-layout-auto .mdui-select-open.mdui-select-position-top{border-top:1px solid rgba(255,255,255,.12)}.mdui-theme-layout-auto .mdui-select-open.mdui-select-position-bottom{border-bottom:1px solid rgba(255,255,255,.12)}.mdui-theme-layout-auto .mdui-select-menu{color:#fff;background-color:#424242}.mdui-theme-layout-auto .mdui-select-menu-item:hover{background-color:#616161}.mdui-theme-layout-auto .mdui-select-menu-item[disabled]{color:rgba(255,255,255,.5)!important}.mdui-theme-layout-auto select.mdui-select{color:#fff;background-color:#303030}.mdui-theme-layout-auto select.mdui-select option{color:#fff;background-color:#303030}.mdui-theme-layout-auto select.mdui-select[multiple]{border:1px solid rgba(255,255,255,.5)}.mdui-theme-layout-auto select.mdui-select[multiple] optgroup{color:rgba(255,255,255,.5)}.mdui-theme-layout-auto select.mdui-select[multiple] optgroup:not(:first-child){border-top:1px solid rgba(255,255,255,.12)}}.mdui-toolbar{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%}.mdui-toolbar>*{margin:0 16px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mdui-toolbar[class*=mdui-color-]:not(.mdui-color-transparent) .mdui-btn:hover{background-color:rgba(255,255,255,.1)}.mdui-toolbar[class*=mdui-color-]:not(.mdui-color-transparent) .mdui-btn:active{background-color:rgba(255,255,255,.165)}.mdui-toolbar>a{color:inherit;text-decoration:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mdui-toolbar>.mdui-btn-icon{width:48px;min-width:48px;height:48px}@media (orientation:landscape) and (max-width:959.9px){.mdui-toolbar>.mdui-btn-icon{width:40px;min-width:40px;height:40px}}.mdui-toolbar>.mdui-btn-icon .mdui-icon{height:24px;line-height:24px}.mdui-toolbar .mdui-icon{color:inherit}.mdui-toolbar-spacer{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;margin:0}.mdui-toolbar{height:56px;line-height:56px}.mdui-toolbar>.mdui-btn{margin:0 4px}.mdui-toolbar>.mdui-btn+.mdui-btn{margin-left:0}@media (min-width:600px){.mdui-appbar .mdui-toolbar{height:64px;line-height:64px}.mdui-appbar .mdui-toolbar>.mdui-btn{margin:0 8px}.mdui-appbar .mdui-toolbar>.mdui-btn+.mdui-btn{margin-left:0}}@media (orientation:landscape) and (max-width:959.9px){.mdui-appbar .mdui-toolbar{height:48px;line-height:48px}.mdui-appbar .mdui-toolbar>.mdui-btn{margin:0 4px}.mdui-appbar .mdui-toolbar>.mdui-btn+.mdui-btn{margin-left:0}}.mdui-appbar{z-index:1000;-webkit-box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12);box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.mdui-appbar-fixed{position:fixed;top:0;right:0;left:0;-webkit-transition-timing-function:cubic-bezier(0,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1);-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:left,right;transition-property:left,right;will-change:left,right}@media (min-width:1024px){.mdui-drawer-body-left .mdui-appbar-inset.mdui-appbar-fixed{left:240px}}@media (min-width:1024px){.mdui-drawer-body-right .mdui-appbar-inset.mdui-appbar-fixed{right:240px}}.mdui-appbar-with-toolbar{padding-top:56px}@media (min-width:600px){.mdui-appbar-with-toolbar{padding-top:64px}}@media (orientation:landscape) and (max-width:959.9px){.mdui-appbar-with-toolbar{padding-top:48px}}.mdui-appbar-with-tab{padding-top:48px}.mdui-appbar-with-tab-larger{padding-top:72px}.mdui-appbar-with-toolbar.mdui-appbar-with-tab{padding-top:104px}@media (min-width:600px){.mdui-appbar-with-toolbar.mdui-appbar-with-tab{padding-top:112px}}@media (orientation:landscape) and (max-width:959.9px){.mdui-appbar-with-toolbar.mdui-appbar-with-tab{padding-top:96px}}.mdui-appbar-with-toolbar.mdui-appbar-with-tab-larger{padding-top:128px}@media (min-width:600px){.mdui-appbar-with-toolbar.mdui-appbar-with-tab-larger{padding-top:136px}}@media (orientation:landscape) and (max-width:959.9px){.mdui-appbar-with-toolbar.mdui-appbar-with-tab-larger{padding-top:120px}}.mdui-theme-layout-dark .mdui-appbar>[class*=mdui-color-]:not(.mdui-color-transparent){color:#fff!important;background-color:#212121!important}@media (prefers-color-scheme:dark){.mdui-theme-layout-auto .mdui-appbar>[class*=mdui-color-]:not(.mdui-color-transparent){color:#fff!important;background-color:#212121!important}}.mdui-card{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;color:#000;background-color:#fff;border-radius:2px;-webkit-box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.mdui-card-header{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;height:72px;padding:16px}.mdui-card-header-avatar{float:left;width:40px;height:40px;border-radius:50%}.mdui-card-header-title{display:block;margin-left:52px;font-weight:500;font-size:16px;line-height:20px;opacity:.87;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mdui-card-header-subtitle{display:block;margin-left:52px;font-weight:400;font-size:14px;line-height:20px;opacity:.54;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mdui-card-primary{position:relative;padding:24px 16px 16px 16px}.mdui-card-primary-title{display:block;font-size:24px;line-height:36px;opacity:.87}.mdui-card-primary-subtitle{display:block;font-size:14px;line-height:24px;opacity:.54}.mdui-card-content{position:relative;padding:16px;font-size:14px;line-height:24px}.mdui-card-menu{position:absolute;top:16px;right:16px;z-index:1}.mdui-card-menu .mdui-btn{margin-left:8px}.mdui-card-actions{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;padding:8px}.mdui-card-actions::after,.mdui-card-actions::before{display:table;content:' '}.mdui-card-actions::after{clear:both}.mdui-card-actions::after,.mdui-card-actions::before{display:table;content:' '}.mdui-card-actions::after{clear:both}.mdui-card-actions .mdui-btn{max-width:100%;margin:0 8px 0 0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mdui-card-actions .mdui-btn-icon{width:36px;height:36px;margin:0 8px}.mdui-card-actions-stacked .mdui-btn{display:block;margin:0 0 4px 0}.mdui-card-actions-stacked .mdui-btn:last-child{margin:0}.mdui-card-media{position:relative}.mdui-card-media img,.mdui-card-media video{display:block;width:100%}.mdui-card-media-covered{position:absolute;right:0;bottom:0;left:0;color:#fff;background:rgba(0,0,0,.2)}.mdui-card-media-covered .mdui-card-primary-title{opacity:1}.mdui-card-media-covered .mdui-card-primary-subtitle{opacity:.7}.mdui-card-media-covered-top{top:0;bottom:auto}.mdui-card-media-covered-transparent{background:0 0}.mdui-card-media-covered-gradient{background:-webkit-gradient(linear,left bottom,left top,from(rgba(0,0,0,.26)),to(rgba(0,0,0,0)));background:linear-gradient(to top,rgba(0,0,0,.26),rgba(0,0,0,0))}.mdui-card-media-covered-gradient.mdui-card-media-covered-top{background:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,.26)),to(rgba(0,0,0,0)));background:linear-gradient(to bottom,rgba(0,0,0,.26),rgba(0,0,0,0))}.mdui-theme-layout-dark .mdui-card{color:#fff;background-color:#424242}@media (prefers-color-scheme:dark){.mdui-theme-layout-auto .mdui-card{color:#fff;background-color:#424242}}.mdui-tab{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;min-height:48px;max-height:72px;margin:0 auto;padding:0;overflow-x:auto;overflow-y:hidden;white-space:nowrap;-webkit-overflow-scrolling:touch}.mdui-tab a{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-sizing:border-box;box-sizing:border-box;min-width:72px;min-height:48px;max-height:72px;padding:12px;overflow:hidden;color:inherit;font-size:14px;text-align:center;text-transform:uppercase;text-decoration:none;text-overflow:ellipsis;outline:0;cursor:pointer;opacity:.7;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.mdui-tab a .mdui-icon{opacity:.7}@media (min-width:600px){.mdui-tab a{-webkit-box-flex:0;-ms-flex:none;flex:none;min-width:99px;max-width:264px;padding:12px 24px}}@media (min-width:1024px){.mdui-tab a{min-width:112px}}@media (min-width:1440px){.mdui-tab a{min-width:136px}}@media (min-width:1920px){.mdui-tab a{min-width:160px}}.mdui-tab a label{display:block;width:100%;cursor:pointer}.mdui-tab a .mdui-icon+label{margin-top:8px}.mdui-tab a[disabled]{cursor:default;opacity:.38}.mdui-tab a[disabled] label{cursor:default}.mdui-tab .mdui-tab-active{color:#3f51b5;opacity:1}.mdui-tab .mdui-tab-active .mdui-icon{opacity:1}@media (min-width:600px){.mdui-tab-centered::before{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;content:' '}.mdui-tab-centered::after{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;content:' '}.mdui-tab-centered a{-webkit-box-flex:0;-ms-flex:none;flex:none}}.mdui-tab-full-width a{-webkit-box-flex:1;-ms-flex:1;flex:1;max-width:none}.mdui-tab-scrollable{padding-left:56px}.mdui-tab-scrollable a{-webkit-box-flex:0;-ms-flex:none;flex:none}@media (max-width:599.9px){.mdui-tab-scrollable{padding-left:60px}}.mdui-tab-indicator{position:absolute;bottom:0;height:2px;background-color:#3f51b5;-webkit-transition:all .35s cubic-bezier(.4,0,.2,1);transition:all .35s cubic-bezier(.4,0,.2,1);will-change:left,width}.mdui-theme-primary-amber .mdui-tab .mdui-tab-active{color:#ffc107}.mdui-theme-primary-amber .mdui-tab-indicator{background-color:#ffc107}.mdui-theme-primary-blue .mdui-tab .mdui-tab-active{color:#2196f3}.mdui-theme-primary-blue .mdui-tab-indicator{background-color:#2196f3}.mdui-theme-primary-blue-grey .mdui-tab .mdui-tab-active{color:#607d8b}.mdui-theme-primary-blue-grey .mdui-tab-indicator{background-color:#607d8b}.mdui-theme-primary-brown .mdui-tab .mdui-tab-active{color:#795548}.mdui-theme-primary-brown .mdui-tab-indicator{background-color:#795548}.mdui-theme-primary-cyan .mdui-tab .mdui-tab-active{color:#00bcd4}.mdui-theme-primary-cyan .mdui-tab-indicator{background-color:#00bcd4}.mdui-theme-primary-deep-orange .mdui-tab .mdui-tab-active{color:#ff5722}.mdui-theme-primary-deep-orange .mdui-tab-indicator{background-color:#ff5722}.mdui-theme-primary-deep-purple .mdui-tab .mdui-tab-active{color:#673ab7}.mdui-theme-primary-deep-purple .mdui-tab-indicator{background-color:#673ab7}.mdui-theme-primary-green .mdui-tab .mdui-tab-active{color:#4caf50}.mdui-theme-primary-green .mdui-tab-indicator{background-color:#4caf50}.mdui-theme-primary-grey .mdui-tab .mdui-tab-active{color:#9e9e9e}.mdui-theme-primary-grey .mdui-tab-indicator{background-color:#9e9e9e}.mdui-theme-primary-indigo .mdui-tab .mdui-tab-active{color:#3f51b5}.mdui-theme-primary-indigo .mdui-tab-indicator{background-color:#3f51b5}.mdui-theme-primary-light-blue .mdui-tab .mdui-tab-active{color:#03a9f4}.mdui-theme-primary-light-blue .mdui-tab-indicator{background-color:#03a9f4}.mdui-theme-primary-light-green .mdui-tab .mdui-tab-active{color:#8bc34a}.mdui-theme-primary-light-green .mdui-tab-indicator{background-color:#8bc34a}.mdui-theme-primary-lime .mdui-tab .mdui-tab-active{color:#cddc39}.mdui-theme-primary-lime .mdui-tab-indicator{background-color:#cddc39}.mdui-theme-primary-orange .mdui-tab .mdui-tab-active{color:#ff9800}.mdui-theme-primary-orange .mdui-tab-indicator{background-color:#ff9800}.mdui-theme-primary-pink .mdui-tab .mdui-tab-active{color:#e91e63}.mdui-theme-primary-pink .mdui-tab-indicator{background-color:#e91e63}.mdui-theme-primary-purple .mdui-tab .mdui-tab-active{color:#9c27b0}.mdui-theme-primary-purple .mdui-tab-indicator{background-color:#9c27b0}.mdui-theme-primary-red .mdui-tab .mdui-tab-active{color:#f44336}.mdui-theme-primary-red .mdui-tab-indicator{background-color:#f44336}.mdui-theme-primary-teal .mdui-tab .mdui-tab-active{color:#009688}.mdui-theme-primary-teal .mdui-tab-indicator{background-color:#009688}.mdui-theme-primary-yellow .mdui-tab .mdui-tab-active{color:#ffeb3b}.mdui-theme-primary-yellow .mdui-tab-indicator{background-color:#ffeb3b}.mdui-tab[class*=mdui-color-]:not(.mdui-color-white) .mdui-tab-active{color:inherit}.mdui-tab[class*=mdui-color-]:not(.mdui-color-white) .mdui-tab-indicator{background-color:#fff}.mdui-tab[class*=mdui-color-]:not(.mdui-color-white)::-webkit-scrollbar{width:5px;height:5px;background:0 0}@media (min-width:1024px){.mdui-tab[class*=mdui-color-]:not(.mdui-color-white)::-webkit-scrollbar{width:8px;height:8px}}.mdui-tab[class*=mdui-color-]:not(.mdui-color-white)::-webkit-scrollbar-thumb{background:rgba(255,255,255,.3)}.mdui-subheader,.mdui-subheader-inset{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;height:48px;padding-right:16px;padding-left:16px;color:rgba(0,0,0,.54);font-weight:500;font-size:14px;line-height:48px;cursor:default;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mdui-subheader-inset{padding-left:72px}.mdui-theme-layout-dark .mdui-subheader,.mdui-theme-layout-dark .mdui-subheader-inset{color:rgba(255,255,255,.7)}@media (prefers-color-scheme:dark){.mdui-theme-layout-auto .mdui-subheader,.mdui-theme-layout-auto .mdui-subheader-inset{color:rgba(255,255,255,.7)}}.mdui-grid-list{margin:0 -2px}.mdui-grid-list .mdui-col,.mdui-grid-list [class*=mdui-col-lg-],.mdui-grid-list [class*=mdui-col-md-],.mdui-grid-list [class*=mdui-col-sm-],.mdui-grid-list [class*=mdui-col-xl-],.mdui-grid-list [class*=mdui-col-xs-]{padding-right:2px;padding-left:2px}.mdui-grid-tile{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;margin-bottom:4px;overflow:hidden}.mdui-grid-tile img{display:block;width:100%}.mdui-grid-tile-actions{position:absolute;right:0;bottom:0;left:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-sizing:border-box;box-sizing:border-box;min-height:48px;max-height:68px;padding:16px;color:#fff;background:rgba(0,0,0,.2)}.mdui-grid-tile-actions .mdui-icon{color:#fff}.mdui-grid-tile-text{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:hidden}.mdui-grid-tile-title{height:16px;font-size:16px;line-height:16px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mdui-grid-tile-title .mdui-icon{margin-right:8px}.mdui-grid-tile-subtitle{height:18px;margin-top:4px;font-size:12px;line-height:18px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mdui-grid-tile-subtitle .mdui-icon{margin-right:8px;font-size:18px}.mdui-grid-tile-buttons{-webkit-box-flex:0;-ms-flex:none;flex:none;margin:-8px;white-space:nowrap}.mdui-grid-tile-buttons .mdui-btn{margin-left:8px}.mdui-grid-tile-buttons .mdui-btn:first-child{margin-left:0}.mdui-grid-tile-text+.mdui-grid-tile-buttons{margin-left:8px}.mdui-grid-tile-buttons+.mdui-grid-tile-text{margin-left:16px}.mdui-grid-tile-actions-top{top:0;bottom:auto}.mdui-grid-tile-actions-transparent{background:0 0}.mdui-grid-tile-actions-gradient{background:-webkit-gradient(linear,left bottom,left top,from(rgba(0,0,0,.26)),to(rgba(0,0,0,0)));background:linear-gradient(to top,rgba(0,0,0,.26),rgba(0,0,0,0))}.mdui-grid-tile-actions-gradient.mdui-grid-tile-actions-top{background:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,.26)),to(rgba(0,0,0,0)));background:linear-gradient(to bottom,rgba(0,0,0,.26),rgba(0,0,0,0))}.mdui-list{margin:0;padding:8px 0;list-style:none;background-color:transparent}.mdui-list .mdui-list{padding:0}.mdui-list>.mdui-divider,.mdui-list>.mdui-divider-dark,.mdui-list>.mdui-divider-inset,.mdui-list>.mdui-divider-inset-dark,.mdui-list>.mdui-divider-inset-light,.mdui-list>.mdui-divider-light{margin-top:8px;margin-bottom:8px}.mdui-list a{color:inherit;text-decoration:none}.mdui-list .mdui-subheader,.mdui-list .mdui-subheader-inset{margin-top:8px}.mdui-list .mdui-subheader-inset::before,.mdui-list .mdui-subheader::before{position:absolute;right:0;left:0;display:block;height:1px;background-color:rgba(0,0,0,.12);content:' '}.mdui-list .mdui-subheader-inset:first-child,.mdui-list .mdui-subheader:first-child{margin-top:-8px}.mdui-list .mdui-subheader-inset:first-child::before,.mdui-list .mdui-subheader:first-child::before{background-color:transparent}.mdui-list .mdui-subheader-inset::before{left:72px}.mdui-list-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-sizing:border-box;box-sizing:border-box;min-height:48px;padding:0 16px;text-decoration:none;cursor:pointer;-webkit-transition:background-color .3s cubic-bezier(.4,0,.2,1);transition:background-color .3s cubic-bezier(.4,0,.2,1)}.mdui-list-item:hover{background-color:rgba(0,0,0,.08)}.mdui-list-item::after{height:48px;visibility:hidden;content:' '}.mdui-list-item-icon{width:24px;min-width:24px;height:24px;color:rgba(0,0,0,.54)}.mdui-list-item-avatar{min-width:40px;max-width:40px;height:40px;margin-top:8px;margin-bottom:8px;color:#fff;line-height:40px;text-align:center;background-color:#bdbdbd;border-radius:50%}.mdui-list-item-avatar img{width:100%;height:100%;border-radius:50%}.mdui-list-item-content{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;padding-top:14px;padding-bottom:14px;font-weight:400;font-size:16px;line-height:20px}.mdui-list-item-text{font-size:14px;opacity:.54}.mdui-list-item-title~.mdui-list-item-text{margin-top:4px}.mdui-list-item-active{font-weight:700;background-color:rgba(0,0,0,.08)}.mdui-list-item-active .mdui-list-item-content{font-weight:700}.mdui-list-item-active .mdui-list-item-text{font-weight:400}.mdui-list-item-one-line,.mdui-list-item-three-line,.mdui-list-item-two-line{display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-box-orient:vertical}.mdui-list-item-one-line{-webkit-line-clamp:1;height:20px}.mdui-list-item-two-line{-webkit-line-clamp:2;height:40px}.mdui-list-item-three-line{-webkit-line-clamp:3;height:60px}.mdui-list-item-icon~.mdui-list-item-content{margin-left:32px}.mdui-checkbox~.mdui-list-item-content,.mdui-radio~.mdui-list-item-content,.mdui-switch~.mdui-list-item-content{margin-left:20px}.mdui-list-item-avatar~.mdui-list-item-content{margin-left:16px}.mdui-list-item-content~.mdui-checkbox,.mdui-list-item-content~.mdui-list-item-avatar,.mdui-list-item-content~.mdui-list-item-icon,.mdui-list-item-content~.mdui-radio,.mdui-list-item-content~.mdui-switch{margin-left:16px}.mdui-list-item-content~.mdui-checkbox,.mdui-list-item-content~.mdui-radio{padding-left:24px}.mdui-list-dense{padding:4px 0;font-size:13px}.mdui-list-dense>.mdui-divider,.mdui-list-dense>.mdui-divider-dark,.mdui-list-dense>.mdui-divider-inset,.mdui-list-dense>.mdui-divider-inset-dark,.mdui-list-dense>.mdui-divider-inset-light,.mdui-list-dense>.mdui-divider-light{margin-top:4px;margin-bottom:4px}.mdui-list-dense .mdui-subheader,.mdui-list-dense .mdui-subheader-inset{height:40px;margin-top:4px;font-size:12px;line-height:40px}.mdui-list-dense .mdui-subheader-inset:first-child,.mdui-list-dense .mdui-subheader:first-child{margin-top:-4px}.mdui-list-dense .mdui-list-item{min-height:40px}.mdui-list-dense .mdui-list-item::after{height:40px}.mdui-list-dense .mdui-list-item-icon{width:20px;height:20px;font-size:20px}.mdui-list-dense .mdui-list-item-avatar{width:36px;min-width:36px;height:36px;min-height:36px}.mdui-list-dense .mdui-list-item-content{padding-top:11px;padding-bottom:11px;font-size:13px;line-height:18px}.mdui-list-dense .mdui-list-item-text{font-size:13px}.mdui-list-dense .mdui-list-item-title~.mdui-list-item-text{margin-top:2px}.mdui-list-dense .mdui-list-item-one-line{height:18px}.mdui-list-dense .mdui-list-item-two-line{height:36px}.mdui-list-dense .mdui-list-item-three-line{height:54px}.mdui-theme-layout-dark .mdui-list .mdui-subheader-inset::before,.mdui-theme-layout-dark .mdui-list .mdui-subheader::before{background-color:rgba(255,255,255,.12)}.mdui-theme-layout-dark .mdui-list .mdui-subheader-inset:first-child::before,.mdui-theme-layout-dark .mdui-list .mdui-subheader:first-child::before{background-color:transparent}.mdui-theme-layout-dark .mdui-list-item{color:#fff}.mdui-theme-layout-dark .mdui-list-item:hover{background-color:rgba(255,255,255,.08)}.mdui-theme-layout-dark .mdui-list-item-icon{color:#fff}.mdui-theme-layout-dark .mdui-list-item-text{opacity:.7}.mdui-theme-layout-dark .mdui-list-item-active{background-color:rgba(255,255,255,.08)}@media (prefers-color-scheme:dark){.mdui-theme-layout-auto .mdui-list .mdui-subheader-inset::before,.mdui-theme-layout-auto .mdui-list .mdui-subheader::before{background-color:rgba(255,255,255,.12)}.mdui-theme-layout-auto .mdui-list .mdui-subheader-inset:first-child::before,.mdui-theme-layout-auto .mdui-list .mdui-subheader:first-child::before{background-color:transparent}.mdui-theme-layout-auto .mdui-list-item{color:#fff}.mdui-theme-layout-auto .mdui-list-item:hover{background-color:rgba(255,255,255,.08)}.mdui-theme-layout-auto .mdui-list-item-icon{color:#fff}.mdui-theme-layout-auto .mdui-list-item-text{opacity:.7}.mdui-theme-layout-auto .mdui-list-item-active{background-color:rgba(255,255,255,.08)}}[class*=mdui-color-] .mdui-list-item{color:inherit}[class*=mdui-color-] .mdui-list-item-icon{color:inherit}body.mdui-loaded{-webkit-transition:padding .3s cubic-bezier(0,0,.2,1);transition:padding .3s cubic-bezier(0,0,.2,1)}body.mdui-loaded .mdui-drawer{-webkit-transition:all .3s cubic-bezier(0,0,.2,1);transition:all .3s cubic-bezier(0,0,.2,1)}.mdui-drawer{position:fixed;top:0;bottom:0;left:0;z-index:5000;-webkit-box-sizing:border-box;box-sizing:border-box;width:calc(100% - 56px);max-width:280px;margin:0;overflow-x:hidden;overflow-y:auto;white-space:nowrap;will-change:transform;-webkit-overflow-scrolling:touch}@media (max-width:1023.9px){.mdui-drawer:not(.mdui-drawer-open){-webkit-box-shadow:none!important;box-shadow:none!important}}@media (min-width:600px){.mdui-drawer{width:calc(100% - 64px);max-width:320px}}@media (min-width:1024px){.mdui-drawer{width:240px;max-width:none}.mdui-drawer.mdui-drawer-close{-webkit-box-shadow:none!important;box-shadow:none!important}}.mdui-drawer-right{right:0;left:auto}@media (max-width:1023.9px){.mdui-drawer{background-color:#fff;-webkit-transform:translateX(-330px);transform:translateX(-330px);-webkit-box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12);box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12)}.mdui-drawer-right{-webkit-transform:translateX(330px);transform:translateX(330px)}}@media (max-width:599.9px){.mdui-drawer{-webkit-transform:translateX(-290px);transform:translateX(-290px)}.mdui-drawer-right{-webkit-transform:translateX(290px);transform:translateX(290px)}}.mdui-drawer-close{-webkit-transform:translateX(-290px);transform:translateX(-290px)}.mdui-drawer-close.mdui-drawer-right{-webkit-transform:translateX(290px);transform:translateX(290px)}@media (min-width:600px){.mdui-drawer-close{-webkit-transform:translateX(-330px);transform:translateX(-330px)}.mdui-drawer-close.mdui-drawer-right{-webkit-transform:translateX(330px);transform:translateX(330px)}}@media (min-width:1024px){.mdui-drawer-close{-webkit-transform:translateX(-250px);transform:translateX(-250px)}.mdui-drawer-close.mdui-drawer-right{-webkit-transform:translateX(250px);transform:translateX(250px)}}.mdui-drawer-open{-webkit-transform:translateX(0)!important;transform:translateX(0)!important}@media (min-width:1024px){.mdui-drawer-body-left{padding-left:240px}.mdui-drawer-body-right{padding-right:240px}.mdui-appbar-with-toolbar .mdui-drawer{top:64px}.mdui-appbar-with-tab .mdui-drawer{top:48px}.mdui-appbar-with-tab-larger .mdui-drawer{top:72px}.mdui-appbar-with-toolbar.mdui-appbar-with-tab .mdui-drawer{top:112px}.mdui-appbar-with-toolbar.mdui-appbar-with-tab-larger .mdui-drawer{top:136px}}.mdui-drawer[class*=mdui-color-]:not(.mdui-color-transparent){-webkit-box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12);box-shadow:0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12)}.mdui-drawer-full-height{top:0!important}@media (max-width:1023.9px){.mdui-theme-layout-dark .mdui-drawer{background-color:#424242}}@media (prefers-color-scheme:dark) and (max-width:1023.9px){.mdui-theme-layout-auto .mdui-drawer{background-color:#424242}}.mdui-dialog{position:fixed;right:0;left:0;z-index:6000;display:none;-webkit-box-sizing:border-box;box-sizing:border-box;width:92%;min-width:180px;max-width:728px;max-height:90%;margin:auto;overflow:hidden;color:#000;background-color:#fff;border-radius:2px;-webkit-transform:scale(.95);transform:scale(.95);opacity:0;-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:opacity,visibility,-webkit-transform;transition-property:opacity,visibility,-webkit-transform;transition-property:transform,opacity,visibility;transition-property:transform,opacity,visibility,-webkit-transform;will-change:top,opacity,transform;-webkit-box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12);box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12)}@media (min-width:600px){.mdui-dialog{width:85%;max-height:85%}}@media (min-width:1024px){.mdui-dialog{width:80%;max-height:80%}}.mdui-dialog-open{-webkit-transform:scale(1);transform:scale(1);opacity:1}.mdui-dialog-title{-webkit-box-sizing:border-box;box-sizing:border-box;font-weight:500;font-size:20px;line-height:24px;text-align:left}.mdui-dialog>.mdui-dialog-title{padding:24px 24px 20px 24px}.mdui-dialog-content{-webkit-box-sizing:border-box;box-sizing:border-box;padding:24px;overflow-y:auto;color:rgba(0,0,0,.7);font-size:15px;line-height:1.5;-webkit-overflow-scrolling:touch}.mdui-dialog-content>.mdui-dialog-title{padding-bottom:20px}.mdui-dialog-title+.mdui-dialog-content{padding-top:0}.mdui-dialog-actions{-webkit-box-sizing:border-box;box-sizing:border-box;padding:8px;text-align:right}.mdui-dialog-actions .mdui-btn{min-width:64px;margin-left:8px;color:#e91e63}.mdui-dialog-actions .mdui-btn:first-child{margin-left:0}.mdui-dialog-content>.mdui-dialog-actions{margin:0 -24px -24px -24px;padding-top:32px}.mdui-dialog-actions-stacked{padding:8px 0 8px 0}.mdui-dialog-actions-stacked .mdui-btn{width:100%;height:48px;margin:0;line-height:48px!important;text-align:right;border-radius:0}.mdui-theme-accent-amber .mdui-dialog-actions .mdui-btn{color:#ffc107}.mdui-theme-accent-blue .mdui-dialog-actions .mdui-btn{color:#2196f3}.mdui-theme-accent-cyan .mdui-dialog-actions .mdui-btn{color:#00bcd4}.mdui-theme-accent-deep-orange .mdui-dialog-actions .mdui-btn{color:#ff5722}.mdui-theme-accent-deep-purple .mdui-dialog-actions .mdui-btn{color:#673ab7}.mdui-theme-accent-green .mdui-dialog-actions .mdui-btn{color:#4caf50}.mdui-theme-accent-indigo .mdui-dialog-actions .mdui-btn{color:#3f51b5}.mdui-theme-accent-light-blue .mdui-dialog-actions .mdui-btn{color:#03a9f4}.mdui-theme-accent-light-green .mdui-dialog-actions .mdui-btn{color:#8bc34a}.mdui-theme-accent-lime .mdui-dialog-actions .mdui-btn{color:#cddc39}.mdui-theme-accent-orange .mdui-dialog-actions .mdui-btn{color:#ff9800}.mdui-theme-accent-pink .mdui-dialog-actions .mdui-btn{color:#e91e63}.mdui-theme-accent-purple .mdui-dialog-actions .mdui-btn{color:#9c27b0}.mdui-theme-accent-red .mdui-dialog-actions .mdui-btn{color:#f44336}.mdui-theme-accent-teal .mdui-dialog-actions .mdui-btn{color:#009688}.mdui-theme-accent-yellow .mdui-dialog-actions .mdui-btn{color:#ffeb3b}.mdui-theme-layout-dark .mdui-dialog{color:#fff;background-color:#424242}.mdui-theme-layout-dark .mdui-dialog-content{color:rgba(255,255,255,.7)}@media (prefers-color-scheme:dark){.mdui-theme-layout-auto .mdui-dialog{color:#fff;background-color:#424242}.mdui-theme-layout-auto .mdui-dialog-content{color:rgba(255,255,255,.7)}}.mdui-dialog-alert{max-width:448px}.mdui-dialog-confirm{max-width:448px}.mdui-dialog-prompt{max-width:448px}.mdui-dialog-prompt .mdui-textfield{padding-top:0}.mdui-tooltip{position:absolute;z-index:9000;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;max-width:180px;min-height:32px;padding:8px 16px;color:#fff;font-weight:500;font-size:14px;line-height:22px;text-align:left;background-color:rgba(97,97,97,.9);border-radius:2px;-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1);transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-transition-duration:.15s;transition-duration:.15s;-webkit-transition-property:opacity,-webkit-transform;transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform;will-change:opacity,transform}@media (min-width:1024px){.mdui-tooltip{max-width:200px;min-height:24px;padding:4px 8px;font-size:12px;line-height:18px}}.mdui-tooltip-open{-webkit-transform:scale(1);transform:scale(1);opacity:1}.mdui-snackbar{position:fixed;z-index:7000;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;min-height:48px;padding:0 24px 0 24px;color:#fff;font-size:14px;line-height:20px;background-color:#323232;will-change:transform}@media (min-width:600px){.mdui-snackbar{width:auto;min-width:288px;max-width:568px;border-radius:2px}}.mdui-snackbar-bottom,.mdui-snackbar-left-bottom,.mdui-snackbar-left-top,.mdui-snackbar-right-bottom,.mdui-snackbar-right-top,.mdui-snackbar-top{-webkit-transition:-webkit-transform .3s cubic-bezier(.4,0,.2,1);transition:-webkit-transform .3s cubic-bezier(.4,0,.2,1);transition:transform .3s cubic-bezier(.4,0,.2,1);transition:transform .3s cubic-bezier(.4,0,.2,1),-webkit-transform .3s cubic-bezier(.4,0,.2,1)}.mdui-snackbar-bottom,.mdui-snackbar-left-bottom,.mdui-snackbar-right-bottom{bottom:0}.mdui-snackbar-left-top,.mdui-snackbar-right-top,.mdui-snackbar-top{top:0}.mdui-snackbar-bottom,.mdui-snackbar-top{left:50%}@media (min-width:600px){.mdui-snackbar-left-top{top:24px;left:24px}.mdui-snackbar-left-bottom{bottom:24px;left:24px}.mdui-snackbar-right-top{top:24px;right:24px}.mdui-snackbar-right-bottom{right:24px;bottom:24px}}.mdui-snackbar-text{position:relative;max-width:100%;padding:14px 0 14px 0;overflow:hidden;text-overflow:ellipsis}.mdui-snackbar-action{margin-right:-16px;white-space:nowrap;color:#ff80ab}.mdui-theme-accent-amber .mdui-snackbar-action{color:#ffe57f}.mdui-theme-accent-blue .mdui-snackbar-action{color:#82b1ff}.mdui-theme-accent-cyan .mdui-snackbar-action{color:#84ffff}.mdui-theme-accent-deep-orange .mdui-snackbar-action{color:#ff9e80}.mdui-theme-accent-deep-purple .mdui-snackbar-action{color:#b388ff}.mdui-theme-accent-green .mdui-snackbar-action{color:#b9f6ca}.mdui-theme-accent-indigo .mdui-snackbar-action{color:#8c9eff}.mdui-theme-accent-light-blue .mdui-snackbar-action{color:#80d8ff}.mdui-theme-accent-light-green .mdui-snackbar-action{color:#ccff90}.mdui-theme-accent-lime .mdui-snackbar-action{color:#f4ff81}.mdui-theme-accent-orange .mdui-snackbar-action{color:#ffd180}.mdui-theme-accent-pink .mdui-snackbar-action{color:#ff80ab}.mdui-theme-accent-purple .mdui-snackbar-action{color:#ea80fc}.mdui-theme-accent-red .mdui-snackbar-action{color:#ff8a80}.mdui-theme-accent-teal .mdui-snackbar-action{color:#a7ffeb}.mdui-theme-accent-yellow .mdui-snackbar-action{color:#ffff8d}.mdui-theme-layout-dark .mdui-snackbar{background-color:#5d5d5d}@media (prefers-color-scheme:dark){.mdui-theme-layout-auto .mdui-snackbar{background-color:#5d5d5d}}.mdui-chip{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;height:32px;margin:2px 0;color:inherit;white-space:nowrap;background-color:#e0e0e0;border-radius:16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:-webkit-box-shadow .25s cubic-bezier(.4,0,.2,1);transition:-webkit-box-shadow .25s cubic-bezier(.4,0,.2,1);transition:box-shadow .25s cubic-bezier(.4,0,.2,1);transition:box-shadow .25s cubic-bezier(.4,0,.2,1),-webkit-box-shadow .25s cubic-bezier(.4,0,.2,1);will-change:box-shadow}.mdui-chip:focus,.mdui-chip:hover{-webkit-box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12)}.mdui-chip:active{background-color:#d6d6d6}.mdui-chip-icon{position:relative;display:inline-block;width:32px;height:32px;margin-right:-4px;overflow:hidden;color:#fff;font-size:18px;line-height:32px;text-align:center;vertical-align:middle;background-color:#989898;border-radius:50%}.mdui-chip-icon .mdui-icon{position:absolute;top:4px;left:4px;color:#fff}.mdui-chip-title{display:inline-block;height:32px;padding-right:12px;padding-left:12px;font-size:14px;line-height:32px;vertical-align:middle}.mdui-chip-delete{display:inline-block;width:24px;height:24px;margin-right:4px;margin-left:-8px;overflow:hidden;text-align:center;text-decoration:none;vertical-align:middle;border-radius:50%;cursor:pointer;opacity:.54;-webkit-transition:opacity .25s cubic-bezier(.4,0,.2,1);transition:opacity .25s cubic-bezier(.4,0,.2,1);will-change:opacity}.mdui-chip-delete:focus,.mdui-chip-delete:hover{opacity:.87}.mdui-theme-layout-dark .mdui-chip{background-color:#484848}.mdui-theme-layout-dark .mdui-chip:active{background-color:#5d5d5d}@media (prefers-color-scheme:dark){.mdui-theme-layout-auto .mdui-chip{background-color:#484848}.mdui-theme-layout-auto .mdui-chip:active{background-color:#5d5d5d}}.mdui-bottom-nav{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;height:56px;margin:0 auto;padding:0;overflow:hidden;white-space:nowrap}@media (min-width:600px){.mdui-bottom-nav::before{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;content:' '}.mdui-bottom-nav::after{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;content:' '}}.mdui-bottom-nav a{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;min-width:32px;max-width:none;padding:8px 12px 10px 12px;overflow:hidden;color:inherit;font-size:12px;text-align:center;text-decoration:none;text-overflow:ellipsis;cursor:pointer;opacity:.7;-webkit-transition:all .2s cubic-bezier(.4,0,.2,1);transition:all .2s cubic-bezier(.4,0,.2,1);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;will-change:padding}@media (min-width:600px){.mdui-bottom-nav a{max-width:144px}}.mdui-bottom-nav a .mdui-icon{opacity:.7}.mdui-bottom-nav a label{display:block;width:100%;cursor:pointer;-webkit-transition:-webkit-transform .2s cubic-bezier(.4,0,.2,1);transition:-webkit-transform .2s cubic-bezier(.4,0,.2,1);transition:transform .2s cubic-bezier(.4,0,.2,1);transition:transform .2s cubic-bezier(.4,0,.2,1),-webkit-transform .2s cubic-bezier(.4,0,.2,1);will-change:font-size}.mdui-bottom-nav a .mdui-icon+label{margin-top:6px}.mdui-bottom-nav a.mdui-bottom-nav-active{color:#3f51b5;font-size:14px;opacity:1}.mdui-bottom-nav a.mdui-bottom-nav-active .mdui-icon{opacity:1}.mdui-bottom-nav-text-auto a{min-width:32px;padding-right:0;padding-left:0}@media (min-width:600px){.mdui-bottom-nav-text-auto a{max-width:156px}}.mdui-bottom-nav-text-auto a .mdui-icon{padding-top:16px;-webkit-transition:padding-top .2s cubic-bezier(.4,0,.2,1);transition:padding-top .2s cubic-bezier(.4,0,.2,1);will-change:padding-top}.mdui-bottom-nav-text-auto a label{-webkit-transform:scale(0);transform:scale(0)}.mdui-bottom-nav-text-auto a.mdui-bottom-nav-active{padding-right:18px;padding-left:18px}.mdui-bottom-nav-text-auto a.mdui-bottom-nav-active .mdui-icon{padding-top:0}.mdui-bottom-nav-text-auto a.mdui-bottom-nav-active label{-webkit-transform:scale(1);transform:scale(1)}.mdui-bottom-nav-fixed{padding-bottom:56px}.mdui-bottom-nav-fixed .mdui-bottom-nav{position:fixed;right:0;bottom:0;left:0}.mdui-theme-primary-amber .mdui-bottom-nav a.mdui-bottom-nav-active{color:#ffc107}.mdui-theme-primary-blue .mdui-bottom-nav a.mdui-bottom-nav-active{color:#2196f3}.mdui-theme-primary-blue-grey .mdui-bottom-nav a.mdui-bottom-nav-active{color:#607d8b}.mdui-theme-primary-brown .mdui-bottom-nav a.mdui-bottom-nav-active{color:#795548}.mdui-theme-primary-cyan .mdui-bottom-nav a.mdui-bottom-nav-active{color:#00bcd4}.mdui-theme-primary-deep-orange .mdui-bottom-nav a.mdui-bottom-nav-active{color:#ff5722}.mdui-theme-primary-deep-purple .mdui-bottom-nav a.mdui-bottom-nav-active{color:#673ab7}.mdui-theme-primary-green .mdui-bottom-nav a.mdui-bottom-nav-active{color:#4caf50}.mdui-theme-primary-grey .mdui-bottom-nav a.mdui-bottom-nav-active{color:#9e9e9e}.mdui-theme-primary-indigo .mdui-bottom-nav a.mdui-bottom-nav-active{color:#3f51b5}.mdui-theme-primary-light-blue .mdui-bottom-nav a.mdui-bottom-nav-active{color:#03a9f4}.mdui-theme-primary-light-green .mdui-bottom-nav a.mdui-bottom-nav-active{color:#8bc34a}.mdui-theme-primary-lime .mdui-bottom-nav a.mdui-bottom-nav-active{color:#cddc39}.mdui-theme-primary-orange .mdui-bottom-nav a.mdui-bottom-nav-active{color:#ff9800}.mdui-theme-primary-pink .mdui-bottom-nav a.mdui-bottom-nav-active{color:#e91e63}.mdui-theme-primary-purple .mdui-bottom-nav a.mdui-bottom-nav-active{color:#9c27b0}.mdui-theme-primary-red .mdui-bottom-nav a.mdui-bottom-nav-active{color:#f44336}.mdui-theme-primary-teal .mdui-bottom-nav a.mdui-bottom-nav-active{color:#009688}.mdui-theme-primary-yellow .mdui-bottom-nav a.mdui-bottom-nav-active{color:#ffeb3b}.mdui-bottom-nav[class*=mdui-color-] .mdui-bottom-nav-active{color:inherit!important}.mdui-progress{position:relative;display:block;width:100%;height:4px;overflow:hidden;background-color:rgba(63,81,181,.2);border-radius:2px}.mdui-progress-determinate{position:absolute;top:0;bottom:0;left:0;background-color:#3f51b5;-webkit-transition:width .3s linear;transition:width .3s linear}.mdui-progress-indeterminate{background-color:#3f51b5}.mdui-progress-indeterminate::before{position:absolute;top:0;bottom:0;left:0;background-color:inherit;-webkit-animation:mdui-progress-indeterminate 2s linear infinite;animation:mdui-progress-indeterminate 2s linear infinite;content:' ';will-change:left,width}.mdui-progress-indeterminate::after{position:absolute;top:0;bottom:0;left:0;background-color:inherit;-webkit-animation:mdui-progress-indeterminate-short 2s linear infinite;animation:mdui-progress-indeterminate-short 2s linear infinite;content:' ';will-change:left,width}@-webkit-keyframes mdui-progress-indeterminate{0%{left:0;width:0}50%{left:30%;width:70%}75%{left:100%;width:0}}@keyframes mdui-progress-indeterminate{0%{left:0;width:0}50%{left:30%;width:70%}75%{left:100%;width:0}}@-webkit-keyframes mdui-progress-indeterminate-short{0%{left:0;width:0}50%{left:0;width:0}75%{left:0;width:25%}100%{left:100%;width:0}}@keyframes mdui-progress-indeterminate-short{0%{left:0;width:0}50%{left:0;width:0}75%{left:0;width:25%}100%{left:100%;width:0}}.mdui-theme-primary-amber .mdui-progress{background-color:rgba(255,193,7,.2)}.mdui-theme-primary-amber .mdui-progress-determinate,.mdui-theme-primary-amber .mdui-progress-indeterminate{background-color:#ffc107}.mdui-theme-primary-blue .mdui-progress{background-color:rgba(33,150,243,.2)}.mdui-theme-primary-blue .mdui-progress-determinate,.mdui-theme-primary-blue .mdui-progress-indeterminate{background-color:#2196f3}.mdui-theme-primary-blue-grey .mdui-progress{background-color:rgba(96,125,139,.2)}.mdui-theme-primary-blue-grey .mdui-progress-determinate,.mdui-theme-primary-blue-grey .mdui-progress-indeterminate{background-color:#607d8b}.mdui-theme-primary-brown .mdui-progress{background-color:rgba(121,85,72,.2)}.mdui-theme-primary-brown .mdui-progress-determinate,.mdui-theme-primary-brown .mdui-progress-indeterminate{background-color:#795548}.mdui-theme-primary-cyan .mdui-progress{background-color:rgba(0,188,212,.2)}.mdui-theme-primary-cyan .mdui-progress-determinate,.mdui-theme-primary-cyan .mdui-progress-indeterminate{background-color:#00bcd4}.mdui-theme-primary-deep-orange .mdui-progress{background-color:rgba(255,87,34,.2)}.mdui-theme-primary-deep-orange .mdui-progress-determinate,.mdui-theme-primary-deep-orange .mdui-progress-indeterminate{background-color:#ff5722}.mdui-theme-primary-deep-purple .mdui-progress{background-color:rgba(103,58,183,.2)}.mdui-theme-primary-deep-purple .mdui-progress-determinate,.mdui-theme-primary-deep-purple .mdui-progress-indeterminate{background-color:#673ab7}.mdui-theme-primary-green .mdui-progress{background-color:rgba(76,175,80,.2)}.mdui-theme-primary-green .mdui-progress-determinate,.mdui-theme-primary-green .mdui-progress-indeterminate{background-color:#4caf50}.mdui-theme-primary-grey .mdui-progress{background-color:rgba(158,158,158,.2)}.mdui-theme-primary-grey .mdui-progress-determinate,.mdui-theme-primary-grey .mdui-progress-indeterminate{background-color:#9e9e9e}.mdui-theme-primary-indigo .mdui-progress{background-color:rgba(63,81,181,.2)}.mdui-theme-primary-indigo .mdui-progress-determinate,.mdui-theme-primary-indigo .mdui-progress-indeterminate{background-color:#3f51b5}.mdui-theme-primary-light-blue .mdui-progress{background-color:rgba(3,169,244,.2)}.mdui-theme-primary-light-blue .mdui-progress-determinate,.mdui-theme-primary-light-blue .mdui-progress-indeterminate{background-color:#03a9f4}.mdui-theme-primary-light-green .mdui-progress{background-color:rgba(139,195,74,.2)}.mdui-theme-primary-light-green .mdui-progress-determinate,.mdui-theme-primary-light-green .mdui-progress-indeterminate{background-color:#8bc34a}.mdui-theme-primary-lime .mdui-progress{background-color:rgba(205,220,57,.2)}.mdui-theme-primary-lime .mdui-progress-determinate,.mdui-theme-primary-lime .mdui-progress-indeterminate{background-color:#cddc39}.mdui-theme-primary-orange .mdui-progress{background-color:rgba(255,152,0,.2)}.mdui-theme-primary-orange .mdui-progress-determinate,.mdui-theme-primary-orange .mdui-progress-indeterminate{background-color:#ff9800}.mdui-theme-primary-pink .mdui-progress{background-color:rgba(233,30,99,.2)}.mdui-theme-primary-pink .mdui-progress-determinate,.mdui-theme-primary-pink .mdui-progress-indeterminate{background-color:#e91e63}.mdui-theme-primary-purple .mdui-progress{background-color:rgba(156,39,176,.2)}.mdui-theme-primary-purple .mdui-progress-determinate,.mdui-theme-primary-purple .mdui-progress-indeterminate{background-color:#9c27b0}.mdui-theme-primary-red .mdui-progress{background-color:rgba(244,67,54,.2)}.mdui-theme-primary-red .mdui-progress-determinate,.mdui-theme-primary-red .mdui-progress-indeterminate{background-color:#f44336}.mdui-theme-primary-teal .mdui-progress{background-color:rgba(0,150,136,.2)}.mdui-theme-primary-teal .mdui-progress-determinate,.mdui-theme-primary-teal .mdui-progress-indeterminate{background-color:#009688}.mdui-theme-primary-yellow .mdui-progress{background-color:rgba(255,235,59,.2)}.mdui-theme-primary-yellow .mdui-progress-determinate,.mdui-theme-primary-yellow .mdui-progress-indeterminate{background-color:#ffeb3b}.mdui-spinner{position:relative;display:inline-block;width:28px;height:28px;-webkit-animation:mdui-spinner 1568ms linear infinite;animation:mdui-spinner 1568ms linear infinite}@-webkit-keyframes mdui-spinner{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes mdui-spinner{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.mdui-spinner-layer{position:absolute;width:100%;height:100%;border-color:#3f51b5;opacity:0;opacity:1;-webkit-animation:mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both;animation:mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both}.mdui-spinner-layer-1{border-color:#42a5f5!important;-webkit-animation:mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,mdui-spinner-layer-1-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both;animation:mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,mdui-spinner-layer-1-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both}.mdui-spinner-layer-2{border-color:#f44336!important;-webkit-animation:mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,mdui-spinner-layer-2-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both;animation:mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,mdui-spinner-layer-2-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both}.mdui-spinner-layer-3{border-color:#fdd835!important;-webkit-animation:mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,mdui-spinner-layer-3-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both;animation:mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,mdui-spinner-layer-3-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both}.mdui-spinner-layer-4{border-color:#4caf50!important;-webkit-animation:mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,mdui-spinner-layer-4-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both;animation:mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(.4,0,.2,1) infinite both,mdui-spinner-layer-4-fade-in-out 5332ms cubic-bezier(.4,0,.2,1) infinite both}@-webkit-keyframes mdui-spinner-layer-fill-unfill-rotate{12.5%{-webkit-transform:rotate(135deg);transform:rotate(135deg)}25%{-webkit-transform:rotate(270deg);transform:rotate(270deg)}37.5%{-webkit-transform:rotate(405deg);transform:rotate(405deg)}50%{-webkit-transform:rotate(540deg);transform:rotate(540deg)}62.5%{-webkit-transform:rotate(675deg);transform:rotate(675deg)}75%{-webkit-transform:rotate(810deg);transform:rotate(810deg)}87.5%{-webkit-transform:rotate(945deg);transform:rotate(945deg)}to{-webkit-transform:rotate(1080deg);transform:rotate(1080deg)}}@keyframes mdui-spinner-layer-fill-unfill-rotate{12.5%{-webkit-transform:rotate(135deg);transform:rotate(135deg)}25%{-webkit-transform:rotate(270deg);transform:rotate(270deg)}37.5%{-webkit-transform:rotate(405deg);transform:rotate(405deg)}50%{-webkit-transform:rotate(540deg);transform:rotate(540deg)}62.5%{-webkit-transform:rotate(675deg);transform:rotate(675deg)}75%{-webkit-transform:rotate(810deg);transform:rotate(810deg)}87.5%{-webkit-transform:rotate(945deg);transform:rotate(945deg)}to{-webkit-transform:rotate(1080deg);transform:rotate(1080deg)}}@-webkit-keyframes mdui-spinner-layer-1-fade-in-out{from{opacity:1}25%{opacity:1}26%{opacity:0}89%{opacity:0}90%{opacity:1}100%{opacity:1}}@keyframes mdui-spinner-layer-1-fade-in-out{from{opacity:1}25%{opacity:1}26%{opacity:0}89%{opacity:0}90%{opacity:1}100%{opacity:1}}@-webkit-keyframes mdui-spinner-layer-2-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:1}50%{opacity:1}51%{opacity:0}}@keyframes mdui-spinner-layer-2-fade-in-out{from{opacity:0}15%{opacity:0}25%{opacity:1}50%{opacity:1}51%{opacity:0}}@-webkit-keyframes mdui-spinner-layer-3-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:1}75%{opacity:1}76%{opacity:0}}@keyframes mdui-spinner-layer-3-fade-in-out{from{opacity:0}40%{opacity:0}50%{opacity:1}75%{opacity:1}76%{opacity:0}}@-webkit-keyframes mdui-spinner-layer-4-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:1}90%{opacity:1}100%{opacity:0}}@keyframes mdui-spinner-layer-4-fade-in-out{from{opacity:0}65%{opacity:0}75%{opacity:1}90%{opacity:1}100%{opacity:0}}.mdui-spinner-gap-patch{position:absolute;top:0;left:45%;width:10%;height:100%;overflow:hidden;border-color:inherit}.mdui-spinner-gap-patch .mdui-spinner-circle{left:-450%;-webkit-box-sizing:border-box;box-sizing:border-box;width:1000%}.mdui-spinner-circle-clipper{position:relative;display:inline-block;width:50%;height:100%;overflow:hidden;border-color:inherit}.mdui-spinner-circle-clipper .mdui-spinner-circle{position:absolute;top:0;right:0;bottom:0;-webkit-box-sizing:border-box;box-sizing:border-box;width:200%;height:100%;border-color:inherit;border-style:solid;border-width:3px;border-bottom-color:transparent!important;border-radius:50%;-webkit-animation:none;animation:none}.mdui-spinner-circle-clipper.mdui-spinner-left{float:left}.mdui-spinner-circle-clipper.mdui-spinner-left .mdui-spinner-circle{left:0;border-right-color:transparent!important;-webkit-transform:rotate(129deg);transform:rotate(129deg);-webkit-animation:mdui-spinner-left-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both;animation:mdui-spinner-left-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both}.mdui-spinner-circle-clipper.mdui-spinner-right{float:right}.mdui-spinner-circle-clipper.mdui-spinner-right .mdui-spinner-circle{left:-100%;border-left-color:transparent!important;-webkit-transform:rotate(-129deg);transform:rotate(-129deg);-webkit-animation:mdui-spinner-right-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both;animation:mdui-spinner-right-spin 1333ms cubic-bezier(.4,0,.2,1) infinite both}@-webkit-keyframes mdui-spinner-left-spin{from{-webkit-transform:rotate(130deg);transform:rotate(130deg)}50%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(130deg);transform:rotate(130deg)}}@keyframes mdui-spinner-left-spin{from{-webkit-transform:rotate(130deg);transform:rotate(130deg)}50%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(130deg);transform:rotate(130deg)}}@-webkit-keyframes mdui-spinner-right-spin{from{-webkit-transform:rotate(-130deg);transform:rotate(-130deg)}50%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}to{-webkit-transform:rotate(-130deg);transform:rotate(-130deg)}}@keyframes mdui-spinner-right-spin{from{-webkit-transform:rotate(-130deg);transform:rotate(-130deg)}50%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}to{-webkit-transform:rotate(-130deg);transform:rotate(-130deg)}}.mdui-theme-primary-amber .mdui-spinner-layer{border-color:#ffc107}.mdui-theme-primary-blue .mdui-spinner-layer{border-color:#2196f3}.mdui-theme-primary-blue-grey .mdui-spinner-layer{border-color:#607d8b}.mdui-theme-primary-brown .mdui-spinner-layer{border-color:#795548}.mdui-theme-primary-cyan .mdui-spinner-layer{border-color:#00bcd4}.mdui-theme-primary-deep-orange .mdui-spinner-layer{border-color:#ff5722}.mdui-theme-primary-deep-purple .mdui-spinner-layer{border-color:#673ab7}.mdui-theme-primary-green .mdui-spinner-layer{border-color:#4caf50}.mdui-theme-primary-grey .mdui-spinner-layer{border-color:#9e9e9e}.mdui-theme-primary-indigo .mdui-spinner-layer{border-color:#3f51b5}.mdui-theme-primary-light-blue .mdui-spinner-layer{border-color:#03a9f4}.mdui-theme-primary-light-green .mdui-spinner-layer{border-color:#8bc34a}.mdui-theme-primary-lime .mdui-spinner-layer{border-color:#cddc39}.mdui-theme-primary-orange .mdui-spinner-layer{border-color:#ff9800}.mdui-theme-primary-pink .mdui-spinner-layer{border-color:#e91e63}.mdui-theme-primary-purple .mdui-spinner-layer{border-color:#9c27b0}.mdui-theme-primary-red .mdui-spinner-layer{border-color:#f44336}.mdui-theme-primary-teal .mdui-spinner-layer{border-color:#009688}.mdui-theme-primary-yellow .mdui-spinner-layer{border-color:#ffeb3b}.mdui-menu{position:fixed;z-index:99999;display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:168px;margin:0;padding:8px 0;overflow-y:auto;color:rgba(0,0,0,.87);font-size:16px;list-style:none;background-color:#fff;border-radius:2px;-webkit-transform:scale(0);transform:scale(0);visibility:hidden;opacity:0;-webkit-transition-timing-function:cubic-bezier(0,0,.2,1);transition-timing-function:cubic-bezier(0,0,.2,1);-webkit-transition-duration:.3s;transition-duration:.3s;-webkit-transition-property:opacity,visibility,-webkit-transform;transition-property:opacity,visibility,-webkit-transform;transition-property:transform,opacity,visibility;transition-property:transform,opacity,visibility,-webkit-transform;will-change:transform,opacity,visibility;-webkit-overflow-scrolling:touch;-webkit-box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12);box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.mdui-menu .mdui-divider{margin-top:8px;margin-bottom:8px}.mdui-menu-open{-webkit-transform:scale(1);transform:scale(1);visibility:visible;opacity:1}.mdui-menu-closing{-webkit-transform:scale(1);transform:scale(1);visibility:visible;opacity:0}.mdui-menu-item{position:relative}.mdui-menu-item>a{position:relative;display:block;height:48px;padding:0 16px;color:inherit;line-height:48px;text-decoration:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mdui-menu-item>a:hover{background-color:#eee}.mdui-menu-item>.mdui-menu{position:absolute;-webkit-box-shadow:0 5px 6px -3px rgba(0,0,0,.2),0 9px 12px 1px rgba(0,0,0,.14),0 3px 16px 2px rgba(0,0,0,.12);box-shadow:0 5px 6px -3px rgba(0,0,0,.2),0 9px 12px 1px rgba(0,0,0,.14),0 3px 16px 2px rgba(0,0,0,.12)}.mdui-menu-item[disabled]>a{color:rgba(0,0,0,.38)!important;cursor:default}.mdui-menu-item[disabled]>a:hover{background-color:inherit!important}.mdui-menu-item[disabled]>a .mdui-icon{color:rgba(0,0,0,.26)}.mdui-menu-item-active{background-color:#eee}.mdui-menu-item-icon{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;width:40px;padding-right:16px;color:rgba(0,0,0,.54)}.mdui-menu-item-helper{float:right}.mdui-menu-item-more{float:right;width:24px;height:24px;margin:4px 0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M9.5 17.5l5-5-5-5z' opacity='.54'/%3E%3C/svg%3E")}.mdui-menu-cascade{width:320px;padding:16px 0;overflow:visible;font-size:15px}.mdui-menu-cascade>.mdui-menu-item>a{height:32px;padding:0 24px;line-height:32px}.mdui-theme-layout-dark .mdui-menu{color:#fff;background-color:#424242}.mdui-theme-layout-dark .mdui-menu-item>a:hover{background-color:#616161}.mdui-theme-layout-dark .mdui-menu-item[disabled]>a{color:rgba(255,255,255,.5)!important}.mdui-theme-layout-dark .mdui-menu-item[disabled]>a .mdui-icon{color:rgba(255,255,255,.3)}.mdui-theme-layout-dark .mdui-menu-item-active{background-color:#616161}.mdui-theme-layout-dark .mdui-menu-item-icon{color:#fff}.mdui-theme-layout-dark .mdui-menu-item-more{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M9.5 17.5l5-5-5-5z' fill='%23FFF'/%3E%3C/svg%3E")}@media (prefers-color-scheme:dark){.mdui-theme-layout-auto .mdui-menu{color:#fff;background-color:#424242}.mdui-theme-layout-auto .mdui-menu-item>a:hover{background-color:#616161}.mdui-theme-layout-auto .mdui-menu-item[disabled]>a{color:rgba(255,255,255,.5)!important}.mdui-theme-layout-auto .mdui-menu-item[disabled]>a .mdui-icon{color:rgba(255,255,255,.3)}.mdui-theme-layout-auto .mdui-menu-item-active{background-color:#616161}.mdui-theme-layout-auto .mdui-menu-item-icon{color:#fff}.mdui-theme-layout-auto .mdui-menu-item-more{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M9.5 17.5l5-5-5-5z' fill='%23FFF'/%3E%3C/svg%3E")}} +/*# sourceMappingURL=mdui.min.css.map */ diff --git a/static/mdui/css/mdui.min.css.map b/static/mdui/css/mdui.min.css.map new file mode 100644 index 0000000..169ea77 --- /dev/null +++ b/static/mdui/css/mdui.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["index.css","../node_modules/normalize.css/normalize.css","styles/global.less","styles/mixin/helper.less","styles/mixin/layout-theme.less","styles/variable/shadow.less","styles/mixin/color.less","styles/color.less","styles/helper.less","styles/icon.less","styles/material-icons.less","styles/media.less","styles/mixin/media.less","styles/roboto.less","styles/typo-styles.less","styles/mixin/typo.less","styles/typo.less","styles/grid.less","styles/mixin/shadow.less","styles/shadow.less","components/headroom/index.less","components/collapse/index.less","components/panel/index.less","styles/mixin/divider.less","components/table/index.less","components/divider/index.less","components/ripple/index.less","components/textfield/index.less","components/selection_control/checkbox.less","components/selection_control/radio.less","components/selection_control/switch.less","components/slider/index.less","components/button/index.less","components/fab/index.less","components/select/index.less","components/toolbar/index.less","components/appbar/index.less","components/card/index.less","components/tab/index.less","components/subheader/index.less","components/grid_list/index.less","components/list/index.less","components/drawer/index.less","components/dialog/index.less","components/dialog/alert.less","components/dialog/confirm.less","components/dialog/prompt.less","components/tooltip/index.less","components/snackbar/index.less","components/chip/index.less","components/bottom_nav/index.less","components/progress/progress.less","components/progress/spinner.less","components/menu/index.less"],"names":[],"mappings":"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BAAA,kBAzCE,MAAA,eDHH,mDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,oDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,oDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,oDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,oDC4CC,iBAAA,kBAzCE,MAAA,eDHH,oDC4CC,iBAAA,kBAzCE,MAAA,eDHH,oDC4CC,iBAAA,kBAzCE,MAAA,eDHH,oDC4CC,iBAAA,kBAzCE,MAAA,eDHH,oDC4CC,iBAAA,kBAzCE,MAAA,eDHH,oDC4CC,iBAAA,kBAzCE,MAAA,eDHH,4CC4CC,iBAAA,kBAzCE,MAAA,eDHH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,gDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,gDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,gDC4CC,iBAAA,kBAzCE,MAAA,eDHH,gDC4CC,iBAAA,kBAzCE,MAAA,eDHH,gDC4CC,iBAAA,kBAzCE,MAAA,eDHH,gDC4CC,iBAAA,kBAzCE,MAAA,eDHH,gDC4CC,iBAAA,kBAzCE,MAAA,eDHH,gDC4CC,iBAAA,kBAzCE,MAAA,eDHH,gDC4CC,iBAAA,kBAzCE,MAAA,eDHH,2CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,8CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAzCE,MAAA,eDHH,+CC4CC,iBAAA,kBAzCE,MAAA,eDHH,+CC4CC,iBAAA,kBAzCE,MAAA,eDHH,kDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sDC4CC,iBAAA,kBAzCE,MAAA,eDHH,sDC4CC,iBAAA,kBAzCE,MAAA,eDHH,sDC4CC,iBAAA,kBAzCE,MAAA,eDHH,sDC4CC,iBAAA,kBAzCE,MAAA,eDHH,kDC4CC,iBAAA,kBAzCE,MAAA,eDHH,qDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sDC4CC,iBAAA,kBAzCE,MAAA,eDHH,sDC4CC,iBAAA,kBAzCE,MAAA,eDHH,sDC4CC,iBAAA,kBAzCE,MAAA,eDHH,sDC4CC,iBAAA,kBAzCE,MAAA,eDHH,sDC4CC,iBAAA,kBAzCE,MAAA,eDHH,sDC4CC,iBAAA,kBAzCE,MAAA,eDHH,sDC4CC,iBAAA,kBAzCE,MAAA,eDHH,4CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,gDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,gDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,gDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,gDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,gDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,gDC4CC,iBAAA,kBAzCE,MAAA,eDHH,gDC4CC,iBAAA,kBAzCE,MAAA,eDHH,gDC4CC,iBAAA,kBAzCE,MAAA,eDHH,gDC4CC,iBAAA,kBAzCE,MAAA,eDHH,2CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,8CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,eAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAzCE,MAAA,eDHH,+CC4CC,iBAAA,kBAzCE,MAAA,eDHH,+CC4CC,iBAAA,kBAzCE,MAAA,eDHH,+CC4CC,iBAAA,kBAzCE,MAAA,eDHH,6CC4CC,iBAAA,kBAzCE,MAAA,eDHH,gDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,iDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,iDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,iDC4CC,iBAAA,kBAzCE,MAAA,eDHH,iDC4CC,iBAAA,kBAzCE,MAAA,eDHH,iDC4CC,iBAAA,kBAzCE,MAAA,eDHH,iDC4CC,iBAAA,kBAzCE,MAAA,eDHH,iDC4CC,iBAAA,kBAzCE,MAAA,eDHH,iDC4CC,iBAAA,kBAzCE,MAAA,eDHH,iDC4CC,iBAAA,kBAzCE,MAAA,eDHH,iDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,oDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qDC4CC,iBAAA,kBAzCE,MAAA,eDHH,qDC4CC,iBAAA,kBAzCE,MAAA,eDHH,qDC4CC,iBAAA,kBAzCE,MAAA,eDHH,kDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sDC4CC,iBAAA,kBAzCE,MAAA,eDHH,sDC4CC,iBAAA,kBAzCE,MAAA,eDHH,2CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,8CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAzCE,MAAA,eDHH,6CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,gDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,iDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,iDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,iDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,iDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,iDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,iDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,iDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,iDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,iDC4CC,iBAAA,kBAzCE,MAAA,eDHH,2CC4CC,iBAAA,kBAzCE,MAAA,eDHH,8CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAzCE,MAAA,eDHH,+CC4CC,iBAAA,kBAzCE,MAAA,eDHH,+CC4CC,iBAAA,kBAzCE,MAAA,eDHH,+CC4CC,iBAAA,kBAzCE,MAAA,eDHH,+CC4CC,iBAAA,kBAzCE,MAAA,eDHH,+CC4CC,iBAAA,kBAzCE,MAAA,eDHH,6CC4CC,iBAAA,kBAzCE,MAAA,eDHH,gDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,iDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,iDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,iDC4CC,iBAAA,kBAzCE,MAAA,eDHH,iDC4CC,iBAAA,kBAzCE,MAAA,eDHH,iDC4CC,iBAAA,kBAzCE,MAAA,eDHH,iDC4CC,iBAAA,kBAzCE,MAAA,eDHH,iDC4CC,iBAAA,kBAzCE,MAAA,eDHH,iDC4CC,iBAAA,kBAzCE,MAAA,eDHH,iDC4CC,iBAAA,kBAzCE,MAAA,eDHH,0CC4CC,iBAAA,kBAzCE,MAAA,eDHH,6CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,8CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,8CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,8CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,8CC4CC,iBAAA,kBAzCE,MAAA,eDHH,8CC4CC,iBAAA,kBAzCE,MAAA,eDHH,8CC4CC,iBAAA,kBAzCE,MAAA,eDHH,8CC4CC,iBAAA,kBAzCE,MAAA,eDHH,8CC4CC,iBAAA,kBAzCE,MAAA,eDHH,8CC4CC,iBAAA,kBAzCE,MAAA,eDHH,2CC4CC,iBAAA,kBAzCE,MAAA,eDHH,8CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAzCE,MAAA,eDHH,+CC4CC,iBAAA,kBAzCE,MAAA,eDHH,+CC4CC,iBAAA,kBAzCE,MAAA,eDHH,+CC4CC,iBAAA,kBAzCE,MAAA,eDHH,+CC4CC,iBAAA,kBAzCE,MAAA,eDHH,6CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,gDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,iDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,iDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,iDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,iDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,iDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,iDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,iDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,iDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,iDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,kDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,gDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,gDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,gDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,gDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,iDC4CC,iBAAA,kBAzCE,MAAA,eDHH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAzCE,MAAA,eDHH,+CC4CC,iBAAA,kBAzCE,MAAA,eDHH,+CC4CC,iBAAA,kBAzCE,MAAA,eDHH,iDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,wDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sDC4CC,iBAAA,kBAzCE,MAAA,eDHH,sDC4CC,iBAAA,kBAzCE,MAAA,eDHH,wDC4CC,iBAAA,kBAzCE,MAAA,eDHH,sDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sDC4CC,iBAAA,kBAzCE,MAAA,eDHH,sDC4CC,iBAAA,kBAzCE,MAAA,eDHH,sDC4CC,iBAAA,kBAzCE,MAAA,eDHH,kDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,gDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,gDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,gDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,gDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,mDC4CC,iBAAA,kBAzCE,MAAA,eDHH,iDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,iDC4CC,iBAAA,kBAzCE,MAAA,eDHH,iDC4CC,iBAAA,kBAzCE,MAAA,eDHH,iDC4CC,iBAAA,kBAzCE,MAAA,eDHH,uDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qDC4CC,iBAAA,kBAzCE,MAAA,eDHH,wDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,iDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,mDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,iDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,iDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,iDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,iDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,iDC4CC,iBAAA,kBAzCE,MAAA,eDHH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAzCE,MAAA,eDHH,+CC4CC,iBAAA,kBAzCE,MAAA,eDHH,+CC4CC,iBAAA,kBAzCE,MAAA,eDHH,mDC4CC,iBAAA,kBAzCE,MAAA,eDHH,iDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,iDC4CC,iBAAA,kBAzCE,MAAA,eDHH,iDC4CC,iBAAA,kBAzCE,MAAA,eDHH,iDC4CC,iBAAA,eAzCE,MAAA,eDHH,gDC4CC,iBAAA,kBAzCE,MAAA,eDHH,8CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,8CC4CC,iBAAA,kBAzCE,MAAA,eDHH,8CC4CC,iBAAA,kBAzCE,MAAA,eDHH,8CC4CC,iBAAA,kBAzCE,MAAA,eDHH,iDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+CC4CC,iBAAA,kBAtCE,MAAA,0BDNH,mDC4CC,iBAAA,eAtCE,MAAA,0BDNH,iDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,iDC4CC,iBAAA,eAtCE,MAAA,0BDNH,iDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,iDC4CC,iBAAA,kBAtCE,MAAA,0BDNH,kBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,iBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,oBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qBC4CC,iBAAA,kBAzCE,MAAA,eDHH,qBC4CC,iBAAA,kBAzCE,MAAA,eDHH,qBC4CC,iBAAA,kBAzCE,MAAA,eDHH,qBC4CC,iBAAA,kBAzCE,MAAA,eDHH,sBC4CC,iBAAA,kBAzCE,MAAA,eDHH,yBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,0BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,0BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,0BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,0BC4CC,iBAAA,kBAzCE,MAAA,eDHH,0BC4CC,iBAAA,kBAzCE,MAAA,eDHH,0BC4CC,iBAAA,kBAzCE,MAAA,eDHH,0BC4CC,iBAAA,kBAzCE,MAAA,eDHH,0BC4CC,iBAAA,kBAzCE,MAAA,eDHH,0BC4CC,iBAAA,kBAzCE,MAAA,eDHH,kBC4CC,iBAAA,kBAzCE,MAAA,eDHH,qBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sBC4CC,iBAAA,kBAzCE,MAAA,eDHH,sBC4CC,iBAAA,kBAzCE,MAAA,eDHH,sBC4CC,iBAAA,kBAzCE,MAAA,eDHH,sBC4CC,iBAAA,kBAzCE,MAAA,eDHH,sBC4CC,iBAAA,kBAzCE,MAAA,eDHH,sBC4CC,iBAAA,kBAzCE,MAAA,eDHH,sBC4CC,iBAAA,kBAzCE,MAAA,eDHH,iBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,oBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qBC4CC,iBAAA,kBAzCE,MAAA,eDHH,qBC4CC,iBAAA,kBAzCE,MAAA,eDHH,qBC4CC,iBAAA,kBAzCE,MAAA,eDHH,wBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,2BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,4BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,4BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,4BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,4BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,4BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,4BC4CC,iBAAA,kBAzCE,MAAA,eDHH,4BC4CC,iBAAA,kBAzCE,MAAA,eDHH,4BC4CC,iBAAA,kBAzCE,MAAA,eDHH,4BC4CC,iBAAA,kBAzCE,MAAA,eDHH,wBC4CC,iBAAA,kBAzCE,MAAA,eDHH,2BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,4BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,4BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,4BC4CC,iBAAA,kBAzCE,MAAA,eDHH,4BC4CC,iBAAA,kBAzCE,MAAA,eDHH,4BC4CC,iBAAA,kBAzCE,MAAA,eDHH,4BC4CC,iBAAA,kBAzCE,MAAA,eDHH,4BC4CC,iBAAA,kBAzCE,MAAA,eDHH,4BC4CC,iBAAA,kBAzCE,MAAA,eDHH,4BC4CC,iBAAA,kBAzCE,MAAA,eDHH,kBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sBC4CC,iBAAA,kBAzCE,MAAA,eDHH,sBC4CC,iBAAA,kBAzCE,MAAA,eDHH,sBC4CC,iBAAA,kBAzCE,MAAA,eDHH,sBC4CC,iBAAA,kBAzCE,MAAA,eDHH,iBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,oBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qBC4CC,iBAAA,eAtCE,MAAA,0BDNH,qBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qBC4CC,iBAAA,kBAzCE,MAAA,eDHH,qBC4CC,iBAAA,kBAzCE,MAAA,eDHH,qBC4CC,iBAAA,kBAzCE,MAAA,eDHH,qBC4CC,iBAAA,kBAzCE,MAAA,eDHH,mBC4CC,iBAAA,kBAzCE,MAAA,eDHH,sBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,uBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,uBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,uBC4CC,iBAAA,kBAzCE,MAAA,eDHH,uBC4CC,iBAAA,kBAzCE,MAAA,eDHH,uBC4CC,iBAAA,kBAzCE,MAAA,eDHH,uBC4CC,iBAAA,kBAzCE,MAAA,eDHH,uBC4CC,iBAAA,kBAzCE,MAAA,eDHH,uBC4CC,iBAAA,kBAzCE,MAAA,eDHH,uBC4CC,iBAAA,kBAzCE,MAAA,eDHH,uBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,0BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,2BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,2BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,2BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,2BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,2BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,2BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,2BC4CC,iBAAA,kBAzCE,MAAA,eDHH,2BC4CC,iBAAA,kBAzCE,MAAA,eDHH,2BC4CC,iBAAA,kBAzCE,MAAA,eDHH,wBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,2BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,4BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,4BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,4BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,4BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,4BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,4BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,4BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,4BC4CC,iBAAA,kBAzCE,MAAA,eDHH,4BC4CC,iBAAA,kBAzCE,MAAA,eDHH,iBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,oBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qBC4CC,iBAAA,kBAzCE,MAAA,eDHH,mBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,uBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,uBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,uBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,uBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,uBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,uBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,uBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,uBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,uBC4CC,iBAAA,kBAzCE,MAAA,eDHH,iBC4CC,iBAAA,kBAzCE,MAAA,eDHH,oBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qBC4CC,iBAAA,kBAzCE,MAAA,eDHH,qBC4CC,iBAAA,kBAzCE,MAAA,eDHH,qBC4CC,iBAAA,kBAzCE,MAAA,eDHH,qBC4CC,iBAAA,kBAzCE,MAAA,eDHH,qBC4CC,iBAAA,kBAzCE,MAAA,eDHH,qBC4CC,iBAAA,kBAzCE,MAAA,eDHH,mBC4CC,iBAAA,kBAzCE,MAAA,eDHH,sBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,uBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,uBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,uBC4CC,iBAAA,kBAzCE,MAAA,eDHH,uBC4CC,iBAAA,kBAzCE,MAAA,eDHH,uBC4CC,iBAAA,kBAzCE,MAAA,eDHH,uBC4CC,iBAAA,kBAzCE,MAAA,eDHH,uBC4CC,iBAAA,kBAzCE,MAAA,eDHH,uBC4CC,iBAAA,kBAzCE,MAAA,eDHH,uBC4CC,iBAAA,kBAzCE,MAAA,eDHH,gBC4CC,iBAAA,kBAzCE,MAAA,eDHH,mBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,oBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,oBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,oBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,oBC4CC,iBAAA,kBAzCE,MAAA,eDHH,oBC4CC,iBAAA,kBAzCE,MAAA,eDHH,oBC4CC,iBAAA,kBAzCE,MAAA,eDHH,oBC4CC,iBAAA,kBAzCE,MAAA,eDHH,oBC4CC,iBAAA,kBAzCE,MAAA,eDHH,oBC4CC,iBAAA,kBAzCE,MAAA,eDHH,iBC4CC,iBAAA,kBAzCE,MAAA,eDHH,oBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qBC4CC,iBAAA,kBAzCE,MAAA,eDHH,qBC4CC,iBAAA,kBAzCE,MAAA,eDHH,qBC4CC,iBAAA,kBAzCE,MAAA,eDHH,qBC4CC,iBAAA,kBAzCE,MAAA,eDHH,qBC4CC,iBAAA,kBAzCE,MAAA,eDHH,mBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,uBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,uBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,uBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,uBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,uBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,uBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,uBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,uBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,uBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,yBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,uBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,uBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,uBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,uBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,wBC4CC,iBAAA,kBAzCE,MAAA,eDHH,sBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sBC4CC,iBAAA,kBAzCE,MAAA,eDHH,sBC4CC,iBAAA,kBAzCE,MAAA,eDHH,sBC4CC,iBAAA,kBAzCE,MAAA,eDHH,wBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,+BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,6BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,6BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,6BC4CC,iBAAA,kBAzCE,MAAA,eDHH,6BC4CC,iBAAA,kBAzCE,MAAA,eDHH,+BC4CC,iBAAA,kBAzCE,MAAA,eDHH,6BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,6BC4CC,iBAAA,kBAzCE,MAAA,eDHH,6BC4CC,iBAAA,kBAzCE,MAAA,eDHH,6BC4CC,iBAAA,kBAzCE,MAAA,eDHH,yBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,uBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,uBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,uBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,uBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,0BC4CC,iBAAA,kBAzCE,MAAA,eDHH,wBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,wBC4CC,iBAAA,kBAzCE,MAAA,eDHH,wBC4CC,iBAAA,kBAzCE,MAAA,eDHH,wBC4CC,iBAAA,kBAzCE,MAAA,eDHH,8BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,4BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,4BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,4BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,4BC4CC,iBAAA,kBAzCE,MAAA,eDHH,+BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,6BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,6BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,6BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,6BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,wBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,0BC4CC,iBAAA,kBAtCE,MAAA,0BDNH,wBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,wBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,wBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,wBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,wBC4CC,iBAAA,kBAzCE,MAAA,eDHH,sBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sBC4CC,iBAAA,kBAzCE,MAAA,eDHH,sBC4CC,iBAAA,kBAzCE,MAAA,eDHH,sBC4CC,iBAAA,kBAzCE,MAAA,eDHH,0BC4CC,iBAAA,kBAzCE,MAAA,eDHH,wBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,wBC4CC,iBAAA,kBAzCE,MAAA,eDHH,wBC4CC,iBAAA,kBAzCE,MAAA,eDHH,wBC4CC,iBAAA,eAzCE,MAAA,eDHH,uBC4CC,iBAAA,kBAzCE,MAAA,eDHH,qBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,qBC4CC,iBAAA,kBAzCE,MAAA,eDHH,qBC4CC,iBAAA,kBAzCE,MAAA,eDHH,qBC4CC,iBAAA,kBAzCE,MAAA,eDHH,wBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,sBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,0BC4CC,iBAAA,eAtCE,MAAA,0BDNH,wBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,wBC4CC,iBAAA,eAtCE,MAAA,0BDNH,wBC4CC,iBAAA,kBAtCE,MAAA,0BDNH,wBC4CC,iBAAA,kBAtCE,MAAA,0BCsJJ,kBACE,MAAA,eACA,iBAAA,eAGF,kBACE,MAAA,0BACA,iBAAA,eAGF,wBACE,iBAAA,sBFvKD,iDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,qDC4DG,MAAA,kBD5DH,qDC4DG,MAAA,kBD5DH,qDC4DG,MAAA,kBD5DH,qDC4DG,MAAA,kBD5DH,qDC4DG,MAAA,kBD5DH,qDC4DG,MAAA,kBD5DH,qDC4DG,MAAA,kBD5DH,qDC4DG,MAAA,kBD5DH,qDC4DG,MAAA,kBD5DH,gDC4DG,MAAA,kBD5DH,mDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,qDC4DG,MAAA,kBD5DH,wDC4DG,MAAA,kBD5DH,yDC4DG,MAAA,kBD5DH,yDC4DG,MAAA,kBD5DH,yDC4DG,MAAA,kBD5DH,yDC4DG,MAAA,kBD5DH,yDC4DG,MAAA,kBD5DH,yDC4DG,MAAA,kBD5DH,yDC4DG,MAAA,kBD5DH,yDC4DG,MAAA,kBD5DH,yDC4DG,MAAA,kBD5DH,iDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,qDC4DG,MAAA,kBD5DH,qDC4DG,MAAA,kBD5DH,qDC4DG,MAAA,kBD5DH,qDC4DG,MAAA,kBD5DH,qDC4DG,MAAA,kBD5DH,qDC4DG,MAAA,kBD5DH,qDC4DG,MAAA,kBD5DH,qDC4DG,MAAA,kBD5DH,qDC4DG,MAAA,kBD5DH,gDC4DG,MAAA,kBD5DH,mDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,uDC4DG,MAAA,kBD5DH,0DC4DG,MAAA,kBD5DH,2DC4DG,MAAA,kBD5DH,2DC4DG,MAAA,kBD5DH,2DC4DG,MAAA,kBD5DH,2DC4DG,MAAA,kBD5DH,2DC4DG,MAAA,kBD5DH,2DC4DG,MAAA,kBD5DH,2DC4DG,MAAA,kBD5DH,2DC4DG,MAAA,kBD5DH,2DC4DG,MAAA,kBD5DH,uDC4DG,MAAA,kBD5DH,0DC4DG,MAAA,kBD5DH,2DC4DG,MAAA,kBD5DH,2DC4DG,MAAA,kBD5DH,2DC4DG,MAAA,kBD5DH,2DC4DG,MAAA,kBD5DH,2DC4DG,MAAA,kBD5DH,2DC4DG,MAAA,kBD5DH,2DC4DG,MAAA,kBD5DH,2DC4DG,MAAA,kBD5DH,2DC4DG,MAAA,kBD5DH,iDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,qDC4DG,MAAA,kBD5DH,qDC4DG,MAAA,kBD5DH,qDC4DG,MAAA,kBD5DH,qDC4DG,MAAA,kBD5DH,qDC4DG,MAAA,kBD5DH,qDC4DG,MAAA,kBD5DH,qDC4DG,MAAA,kBD5DH,qDC4DG,MAAA,kBD5DH,qDC4DG,MAAA,kBD5DH,gDC4DG,MAAA,kBD5DH,mDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,eD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,kDC4DG,MAAA,kBD5DH,qDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,yDC4DG,MAAA,kBD5DH,0DC4DG,MAAA,kBD5DH,0DC4DG,MAAA,kBD5DH,0DC4DG,MAAA,kBD5DH,0DC4DG,MAAA,kBD5DH,0DC4DG,MAAA,kBD5DH,0DC4DG,MAAA,kBD5DH,0DC4DG,MAAA,kBD5DH,0DC4DG,MAAA,kBD5DH,0DC4DG,MAAA,kBD5DH,uDC4DG,MAAA,kBD5DH,0DC4DG,MAAA,kBD5DH,2DC4DG,MAAA,kBD5DH,2DC4DG,MAAA,kBD5DH,2DC4DG,MAAA,kBD5DH,2DC4DG,MAAA,kBD5DH,2DC4DG,MAAA,kBD5DH,2DC4DG,MAAA,kBD5DH,2DC4DG,MAAA,kBD5DH,2DC4DG,MAAA,kBD5DH,2DC4DG,MAAA,kBD5DH,gDC4DG,MAAA,kBD5DH,mDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,kDC4DG,MAAA,kBD5DH,qDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,gDC4DG,MAAA,kBD5DH,mDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,kDC4DG,MAAA,kBD5DH,qDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,+CC4DG,MAAA,kBD5DH,kDC4DG,MAAA,kBD5DH,mDC4DG,MAAA,kBD5DH,mDC4DG,MAAA,kBD5DH,mDC4DG,MAAA,kBD5DH,mDC4DG,MAAA,kBD5DH,mDC4DG,MAAA,kBD5DH,mDC4DG,MAAA,kBD5DH,mDC4DG,MAAA,kBD5DH,mDC4DG,MAAA,kBD5DH,mDC4DG,MAAA,kBD5DH,gDC4DG,MAAA,kBD5DH,mDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,kDC4DG,MAAA,kBD5DH,qDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,uDC4DG,MAAA,kBD5DH,qDC4DG,MAAA,kBD5DH,qDC4DG,MAAA,kBD5DH,qDC4DG,MAAA,kBD5DH,qDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,6DC4DG,MAAA,kBD5DH,2DC4DG,MAAA,kBD5DH,2DC4DG,MAAA,kBD5DH,2DC4DG,MAAA,kBD5DH,2DC4DG,MAAA,kBD5DH,6DC4DG,MAAA,kBD5DH,2DC4DG,MAAA,kBD5DH,2DC4DG,MAAA,kBD5DH,2DC4DG,MAAA,kBD5DH,2DC4DG,MAAA,kBD5DH,uDC4DG,MAAA,kBD5DH,qDC4DG,MAAA,kBD5DH,qDC4DG,MAAA,kBD5DH,qDC4DG,MAAA,kBD5DH,qDC4DG,MAAA,kBD5DH,wDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,4DC4DG,MAAA,kBD5DH,0DC4DG,MAAA,kBD5DH,0DC4DG,MAAA,kBD5DH,0DC4DG,MAAA,kBD5DH,0DC4DG,MAAA,kBD5DH,6DC4DG,MAAA,kBD5DH,2DC4DG,MAAA,kBD5DH,2DC4DG,MAAA,kBD5DH,2DC4DG,MAAA,kBD5DH,2DC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,wDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,wDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,eD5DH,qDC4DG,MAAA,kBD5DH,mDC4DG,MAAA,kBD5DH,mDC4DG,MAAA,kBD5DH,mDC4DG,MAAA,kBD5DH,mDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,oDC4DG,MAAA,kBD5DH,wDC4DG,MAAA,eD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,eD5DH,sDC4DG,MAAA,kBD5DH,sDC4DG,MAAA,kBD5DH,uBC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,sBC4DG,MAAA,kBD5DH,yBC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,8BC4DG,MAAA,kBD5DH,+BC4DG,MAAA,kBD5DH,+BC4DG,MAAA,kBD5DH,+BC4DG,MAAA,kBD5DH,+BC4DG,MAAA,kBD5DH,+BC4DG,MAAA,kBD5DH,+BC4DG,MAAA,kBD5DH,+BC4DG,MAAA,kBD5DH,+BC4DG,MAAA,kBD5DH,+BC4DG,MAAA,kBD5DH,uBC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,sBC4DG,MAAA,kBD5DH,yBC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,6BC4DG,MAAA,kBD5DH,gCC4DG,MAAA,kBD5DH,iCC4DG,MAAA,kBD5DH,iCC4DG,MAAA,kBD5DH,iCC4DG,MAAA,kBD5DH,iCC4DG,MAAA,kBD5DH,iCC4DG,MAAA,kBD5DH,iCC4DG,MAAA,kBD5DH,iCC4DG,MAAA,kBD5DH,iCC4DG,MAAA,kBD5DH,iCC4DG,MAAA,kBD5DH,6BC4DG,MAAA,kBD5DH,gCC4DG,MAAA,kBD5DH,iCC4DG,MAAA,kBD5DH,iCC4DG,MAAA,kBD5DH,iCC4DG,MAAA,kBD5DH,iCC4DG,MAAA,kBD5DH,iCC4DG,MAAA,kBD5DH,iCC4DG,MAAA,kBD5DH,iCC4DG,MAAA,kBD5DH,iCC4DG,MAAA,kBD5DH,iCC4DG,MAAA,kBD5DH,uBC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,sBC4DG,MAAA,kBD5DH,yBC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,eD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,wBC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,+BC4DG,MAAA,kBD5DH,gCC4DG,MAAA,kBD5DH,gCC4DG,MAAA,kBD5DH,gCC4DG,MAAA,kBD5DH,gCC4DG,MAAA,kBD5DH,gCC4DG,MAAA,kBD5DH,gCC4DG,MAAA,kBD5DH,gCC4DG,MAAA,kBD5DH,gCC4DG,MAAA,kBD5DH,gCC4DG,MAAA,kBD5DH,6BC4DG,MAAA,kBD5DH,gCC4DG,MAAA,kBD5DH,iCC4DG,MAAA,kBD5DH,iCC4DG,MAAA,kBD5DH,iCC4DG,MAAA,kBD5DH,iCC4DG,MAAA,kBD5DH,iCC4DG,MAAA,kBD5DH,iCC4DG,MAAA,kBD5DH,iCC4DG,MAAA,kBD5DH,iCC4DG,MAAA,kBD5DH,iCC4DG,MAAA,kBD5DH,sBC4DG,MAAA,kBD5DH,yBC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,wBC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,sBC4DG,MAAA,kBD5DH,yBC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,wBC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,qBC4DG,MAAA,kBD5DH,wBC4DG,MAAA,kBD5DH,yBC4DG,MAAA,kBD5DH,yBC4DG,MAAA,kBD5DH,yBC4DG,MAAA,kBD5DH,yBC4DG,MAAA,kBD5DH,yBC4DG,MAAA,kBD5DH,yBC4DG,MAAA,kBD5DH,yBC4DG,MAAA,kBD5DH,yBC4DG,MAAA,kBD5DH,yBC4DG,MAAA,kBD5DH,sBC4DG,MAAA,kBD5DH,yBC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,wBC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,8BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,6BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,6BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,oCC4DG,MAAA,kBD5DH,kCC4DG,MAAA,kBD5DH,kCC4DG,MAAA,kBD5DH,kCC4DG,MAAA,kBD5DH,kCC4DG,MAAA,kBD5DH,oCC4DG,MAAA,kBD5DH,kCC4DG,MAAA,kBD5DH,kCC4DG,MAAA,kBD5DH,kCC4DG,MAAA,kBD5DH,kCC4DG,MAAA,kBD5DH,8BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,4BC4DG,MAAA,kBD5DH,+BC4DG,MAAA,kBD5DH,6BC4DG,MAAA,kBD5DH,6BC4DG,MAAA,kBD5DH,6BC4DG,MAAA,kBD5DH,6BC4DG,MAAA,kBD5DH,mCC4DG,MAAA,kBD5DH,iCC4DG,MAAA,kBD5DH,iCC4DG,MAAA,kBD5DH,iCC4DG,MAAA,kBD5DH,iCC4DG,MAAA,kBD5DH,oCC4DG,MAAA,kBD5DH,kCC4DG,MAAA,kBD5DH,kCC4DG,MAAA,kBD5DH,kCC4DG,MAAA,kBD5DH,kCC4DG,MAAA,kBD5DH,6BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,+BC4DG,MAAA,kBD5DH,6BC4DG,MAAA,kBD5DH,6BC4DG,MAAA,kBD5DH,6BC4DG,MAAA,kBD5DH,6BC4DG,MAAA,kBD5DH,6BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,+BC4DG,MAAA,kBD5DH,6BC4DG,MAAA,kBD5DH,6BC4DG,MAAA,kBD5DH,6BC4DG,MAAA,kBD5DH,6BC4DG,MAAA,eD5DH,4BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,0BC4DG,MAAA,kBD5DH,6BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,2BC4DG,MAAA,kBD5DH,+BC4DG,MAAA,eD5DH,6BC4DG,MAAA,kBD5DH,6BC4DG,MAAA,eD5DH,6BC4DG,MAAA,kBD5DH,6BC4DG,MAAA,kBC+PJ,uBACE,MAAA,eAEF,4BPsqIA,4BOpqIE,MAAA,0BAEF,iCPsqIA,iCOpqIE,MAAA,0BAEF,gCPsqIA,gCOpqIE,MAAA,0BAEF,+BPsqIA,+BOpqIE,MAAA,0BAEF,4BPsqIA,4BOpqIE,MAAA,0BAEF,qCPsqIA,qCOpqIE,MAAA,0BAOF,uBACE,MAAA,eAEF,4BACE,MAAA,eAEF,iCACE,MAAA,+BAEF,gCACE,MAAA,+BAEF,+BACE,MAAA,gCAEF,4BACE,MAAA,eAEF,qCACE,MAAA,+BH5WE,oDGoXA,MAAA,eHpXA,yDGuXA,MAAA,+BHvXA,wDG0XA,MAAA,+BH1XA,uDG6XA,MAAA,gCH7XA,oDGgYA,MAAA,eHhYA,6DGmYA,MAAA,+BH9XA,mCACE,oDG8WF,MAAA,eH9WE,yDGiXF,MAAA,+BHjXE,wDGoXF,MAAA,+BHpXE,uDGuXF,MAAA,gCHvXE,oDG0XF,MAAA,eH1XE,6DG6XF,MAAA,gCFrYH,YFEC,OAAA,YEFD,YFKC,WAAA,YELD,YFQC,aAAA,YERD,YFWC,cAAA,YEXD,YFcC,YAAA,YEdD,YFiBC,aAAA,YACA,YAAA,YElBD,YFqBC,WAAA,YACA,cAAA,YEtBD,YF0BC,QAAA,YE1BD,YF6BC,YAAA,YE7BD,YFgCC,cAAA,YEhCD,YFmCC,eAAA,YEnCD,YFsCC,aAAA,YEtCD,YFyCC,cAAA,YACA,aAAA,YE1CD,YF6CC,YAAA,YACA,eAAA,YE9CD,YFEC,OAAA,cEFD,YFKC,WAAA,cELD,YFQC,aAAA,cERD,YFWC,cAAA,cEXD,YFcC,YAAA,cEdD,YFiBC,aAAA,cACA,YAAA,cElBD,YFqBC,WAAA,cACA,cAAA,cEtBD,YF0BC,QAAA,cE1BD,YF6BC,YAAA,cE7BD,YFgCC,cAAA,cEhCD,YFmCC,eAAA,cEnCD,YFsCC,aAAA,cEtCD,YFyCC,cAAA,cACA,aAAA,cE1CD,YF6CC,YAAA,cACA,eAAA,cE9CD,YFEC,OAAA,eEFD,YFKC,WAAA,eELD,YFQC,aAAA,eERD,YFWC,cAAA,eEXD,YFcC,YAAA,eEdD,YFiBC,aAAA,eACA,YAAA,eElBD,YFqBC,WAAA,eACA,cAAA,eEtBD,YF0BC,QAAA,eE1BD,YF6BC,YAAA,eE7BD,YFgCC,cAAA,eEhCD,YFmCC,eAAA,eEnCD,YFsCC,aAAA,eEtCD,YFyCC,cAAA,eACA,aAAA,eE1CD,YF6CC,YAAA,eACA,eAAA,eE9CD,YFEC,OAAA,eEFD,YFKC,WAAA,eELD,YFQC,aAAA,eERD,YFWC,cAAA,eEXD,YFcC,YAAA,eEdD,YFiBC,aAAA,eACA,YAAA,eElBD,YFqBC,WAAA,eACA,cAAA,eEtBD,YF0BC,QAAA,eE1BD,YF6BC,YAAA,eE7BD,YFgCC,cAAA,eEhCD,YFmCC,eAAA,eEnCD,YFsCC,aAAA,eEtCD,YFyCC,cAAA,eACA,aAAA,eE1CD,YF6CC,YAAA,eACA,eAAA,eE9CD,YFEC,OAAA,eEFD,YFKC,WAAA,eELD,YFQC,aAAA,eERD,YFWC,cAAA,eEXD,YFcC,YAAA,eEdD,YFiBC,aAAA,eACA,YAAA,eElBD,YFqBC,WAAA,eACA,cAAA,eEtBD,YF0BC,QAAA,eE1BD,YF6BC,YAAA,eE7BD,YFgCC,cAAA,eEhCD,YFmCC,eAAA,eEnCD,YFsCC,aAAA,eEtCD,YFyCC,cAAA,eACA,aAAA,eE1CD,YF6CC,YAAA,eACA,eAAA,eE9CD,YFEC,OAAA,eEFD,YFKC,WAAA,eELD,YFQC,aAAA,eERD,YFWC,cAAA,eEXD,YFcC,YAAA,eEdD,YFiBC,aAAA,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KACA,MAAA,IZhDH,sBYqDG,YAAA,IZrDH,yBY2DG,MAAA,KACA,MAAA,WZ5DH,eY+CG,MAAA,KACA,MAAA,WZhDH,sBYqDG,YAAA,WZrDH,yBY2DG,MAAA,KACA,MAAA,WZ5DH,eY+CG,MAAA,KACA,MAAA,WZhDH,sBYqDG,YAAA,WZrDH,yBY2DG,MAAA,KACA,MAAA,MZ5DH,eY+CG,MAAA,KACA,MAAA,IZhDH,sBYqDG,YAAA,IZrDH,yBY2DG,MAAA,KACA,MAAA,WZ5DH,gBY+CG,MAAA,KACA,MAAA,WZhDH,uBYqDG,YAAA,WZrDH,0BY2DG,MAAA,KACA,MAAA,IZ5DH,gBY+CG,MAAA,KACA,MAAA,WZhDH,uBYqDG,YAAA,WZrDH,0BY2DG,MAAA,KACA,MAAA,UZ5DH,gBY+CG,MAAA,KACA,MAAA,KZhDH,uBYqDG,YAAA,KZrDH,0BY2DG,MAAA,KACA,MAAA,UA2EJ,yBZvIC,eY+CG,MAAA,KACA,MAAA,UZhDH,sBYqDG,YAAA,UZrDH,yBY2DG,MAAA,KACA,MAAA,KZ5DH,eY+CG,MAAA,KACA,MAAA,WZhDH,sBYqDG,YAAA,WZrDH,yBY2DG,MAAA,KACA,MAAA,IZ5DH,eY+CG,MAAA,KACA,MAAA,IZhDH,sBYqDG,YAAA,IZrDH,yBY2DG,MAAA,KACA,MAAA,WZ5DH,eY+CG,MAAA,KACA,MAAA,WZhDH,sBYqDG,YAAA,WZrDH,yBY2DG,MAAA,KACA,MAAA,IZ5DH,eY+CG,MAAA,KACA,MAAA,WZhDH,sBYqDG,YAAA,WZrDH,yBY2DG,MAAA,KACA,MAAA,IZ5DH,eY+CG,MAAA,KACA,MAAA,IZhDH,sBYqDG,YAAA,IZrDH,yBY2DG,MAAA,KACA,MAAA,WZ5DH,eY+CG,MAAA,KACA,MAAA,WZhDH,sBYqDG,YAAA,WZrDH,yBY2DG,MAAA,KACA,MAAA,WZ5DH,eY+CG,MAAA,KACA,MAAA,WZhDH,sBYqDG,YAAA,WZrDH,yBY2DG,MAAA,KACA,MAAA,MZ5DH,eY+CG,MAAA,KACA,MAAA,IZhDH,sBYqDG,YAAA,IZrDH,yBY2DG,MAAA,KACA,MAAA,WZ5DH,gBY+CG,MAAA,KACA,MAAA,WZhDH,uBYqDG,YAAA,WZrDH,0BY2DG,MAAA,KACA,MAAA,IZ5DH,gBY+CG,MAAA,KACA,MAAA,WZhDH,uBYqDG,YAAA,WZrDH,0BY2DG,MAAA,KACA,MAAA,UZ5DH,gBY+CG,MAAA,KACA,MAAA,KZhDH,uBYqDG,YAAA,KZrDH,0BY2DG,MAAA,KACA,MAAA,WA+EJ,0BZ3IC,eY+CG,MAAA,KACA,MAAA,UZhDH,sBYqDG,YAAA,UZrDH,yBY2DG,MAAA,KACA,MAAA,KZ5DH,eY+CG,MAAA,KACA,MAAA,WZhDH,sBYqDG,YAAA,WZrDH,yBY2DG,MAAA,KACA,MAAA,IZ5DH,eY+CG,MAAA,KACA,MAAA,IZhDH,sBYqDG,YAAA,IZrDH,yBY2DG,MAAA,KACA,MAAA,WZ5DH,eY+CG,MAAA,KACA,MAAA,WZhDH,sBYqDG,YAAA,WZrDH,yBY2DG,MAAA,KACA,MAAA,IZ5DH,eY+CG,MAAA,KACA,MAAA,WZhDH,sBYqDG,YAAA,WZrDH,yBY2DG,MAAA,KACA,MAAA,IZ5DH,eY+CG,MAAA,KACA,MAAA,IZhDH,sBYqDG,YAAA,IZrDH,yBY2DG,MAAA,KACA,MAAA,WZ5DH,eY+CG,MAAA,KACA,MAAA,WZhDH,sBYqDG,YAAA,WZrDH,yBY2DG,MAAA,KACA,MAAA,WZ5DH,eY+CG,MAAA,KACA,MAAA,WZhDH,sBYqDG,YAAA,WZrDH,yBY2DG,MAAA,KACA,MAAA,MZ5DH,eY+CG,MAAA,KACA,MAAA,IZhDH,sBYqDG,YAAA,IZrDH,yBY2DG,MAAA,KACA,MAAA,WZ5DH,gBY+CG,MAAA,KACA,MAAA,WZhDH,uBYqDG,YAAA,WZrDH,0BY2DG,MAAA,KACA,MAAA,IZ5DH,gBY+CG,MAAA,KACA,MAAA,WZhDH,uBYqDG,YAAA,WZrDH,0BY2DG,MAAA,KACA,MAAA,UZ5DH,gBY+CG,MAAA,KACA,MAAA,KZhDH,uBYqDG,YAAA,KZrDH,0BY2DG,MAAA,KACA,MAAA,WAmFJ,0BZ/IC,eY+CG,MAAA,KACA,MAAA,UZhDH,sBYqDG,YAAA,UZrDH,yBY2DG,MAAA,KACA,MAAA,KZ5DH,eY+CG,MAAA,KACA,MAAA,WZhDH,sBYqDG,YAAA,WZrDH,yBY2DG,MAAA,KACA,MAAA,IZ5DH,eY+CG,MAAA,KACA,MAAA,IZhDH,sBYqDG,YAAA,IZrDH,yBY2DG,MAAA,KACA,MAAA,WZ5DH,eY+CG,MAAA,KACA,MAAA,WZhDH,sBYqDG,YAAA,WZrDH,yBY2DG,MAAA,KACA,MAAA,IZ5DH,eY+CG,MAAA,KACA,MAAA,WZhDH,sBYqDG,YAAA,WZrDH,yBY2DG,MAAA,KACA,MAAA,IZ5DH,eY+CG,MAAA,KACA,MAAA,IZhDH,sBYqDG,YAAA,IZrDH,yBY2DG,MAAA,KACA,MAAA,WZ5DH,eY+CG,MAAA,KACA,MAAA,WZhDH,sBYqDG,YAAA,WZrDH,yBY2DG,MAAA,KACA,MAAA,WZ5DH,eY+CG,MAAA,KACA,MAAA,WZhDH,sBYqDG,YAAA,WZrDH,yBY2DG,MAAA,KACA,MAAA,MZ5DH,eY+CG,MAAA,KACA,MAAA,IZhDH,sBYqDG,YAAA,IZrDH,yBY2DG,MAAA,KACA,MAAA,WZ5DH,gBY+CG,MAAA,KACA,MAAA,WZhDH,uBYqDG,YAAA,WZrDH,0BY2DG,MAAA,KACA,MAAA,IZ5DH,gBY+CG,MAAA,KACA,MAAA,WZhDH,uBYqDG,YAAA,WZrDH,0BY2DG,MAAA,KACA,MAAA,UZ5DH,gBY+CG,MAAA,KACA,MAAA,KZhDH,uBYqDG,YAAA,KZrDH,0BY2DG,MAAA,KACA,MAAA,WAuFJ,0BZnJC,eY+CG,MAAA,KACA,MAAA,UZhDH,sBYqDG,YAAA,UZrDH,yBY2DG,MAAA,KACA,MAAA,KZ5DH,eY+CG,MAAA,KACA,MAAA,WZhDH,sBYqDG,YAAA,WZrDH,yBY2DG,MAAA,KACA,MAAA,IZ5DH,eY+CG,MAAA,KACA,MAAA,IZhDH,sBYqDG,YAAA,IZrDH,yBY2DG,MAAA,KACA,MAAA,WZ5DH,eY+CG,MAAA,KACA,MAAA,WZhDH,sBYqDG,YAAA,WZrDH,yBY2DG,MAAA,KACA,MAAA,IZ5DH,eY+CG,MAAA,KACA,MAAA,WZhDH,sBYqDG,YAAA,WZrDH,yBY2DG,MAAA,KACA,MAAA,IZ5DH,eY+CG,MAAA,KACA,MAAA,IZhDH,sBYqDG,YAAA,IZrDH,yBY2DG,MAAA,KACA,MAAA,WZ5DH,eY+CG,MAAA,KACA,MAAA,WZhDH,sBYqDG,YAAA,WZrDH,yBY2DG,MAAA,KACA,MAAA,WZ5DH,eY+CG,MAAA,KACA,MAAA,WZhDH,sBYqDG,YAAA,WZrDH,yBY2DG,MAAA,KACA,MAAA,MZ5DH,eY+CG,MAAA,KACA,MAAA,IZhDH,sBYqDG,YAAA,IZrDH,yBY2DG,MAAA,KACA,MAAA,WZ5DH,gBY+CG,MAAA,KACA,MAAA,WZhDH,uBYqDG,YAAA,WZrDH,0BY2DG,MAAA,KACA,MAAA,IZ5DH,gBY+CG,MAAA,KACA,MAAA,WZhDH,uBYqDG,YAAA,WZrDH,0BY2DG,MAAA,KACA,MAAA,UZ5DH,gBY+CG,MAAA,KACA,MAAA,KZhDH,uBYqDG,YAAA,KZrDH,0BY2DG,MAAA,KACA,MAAA,WZ5DH,eaIC,mBAAA,eAAA,WAAA,ebJD,eaIC,mBAAA,EAAA,IAAA,IAAA,KAAA,cAAA,CAAA,EAAA,IAAA,IAAA,EAAA,eAAA,CAAA,EAAA,IAAA,IAAA,EAAA,0BAAA,WAAA,EAAA,IAAA,IAAA,KAAA,cAAA,CAAA,EAAA,IAAA,IAAA,EAAA,eAAA,CAAA,EAAA,IAAA,IAAA,EAAA,0BbJD,eaIC,mBAAA,EAAA,IAAA,IAAA,KAAA,cAAA,CAAA,EAAA,IAAA,IAAA,EAAA,eAAA,CAAA,EAAA,IAAA,IAAA,EAAA,0BAAA,WAAA,EAAA,IAAA,IAAA,KAAA,cAAA,CAAA,EAAA,IAAA,IAAA,EAAA,eAAA,CAAA,EAAA,IAAA,IAAA,EAAA,0BbJD,eaIC,mBAAA,EAAA,IAAA,IAAA,KAAA,cAAA,CAAA,EAAA,IAAA,IAAA,EAAA,eAAA,CAAA,EAAA,IAAA,IAAA,EAAA,0BAAA,WAAA,EAAA,IAAA,IAAA,KAAA,cAAA,CAAA,EAAA,IAAA,IAAA,EAAA,eAAA,CAAA,EAAA,IAAA,IAAA,EAAA,0BbJD,eaIC,mBAAA,EAAA,IAAA,IAAA,KAAA,cAAA,CAAA,EAAA,IAAA,IAAA,EAAA,eAAA,CAAA,EAAA,IAAA,KAAA,EAAA,0BAAA,WAAA,EAAA,IAAA,IAAA,KAAA,cAAA,CAAA,EAAA,IAAA,IAAA,EAAA,eAAA,CAAA,EAAA,IAAA,KAAA,EAAA,0BbJD,eaIC,mBAAA,EAAA,IAAA,IAAA,KAAA,cAAA,CAAA,EAAA,IAAA,IAAA,EAAA,eAAA,CAAA,EAAA,IAAA,KAAA,EAAA,0BAAA,WAAA,EAAA,IAAA,IAAA,KAAA,cAAA,CAAA,EAAA,IAAA,IAAA,EAAA,eAAA,CAAA,EAAA,IAAA,KAAA,EAAA,0BbJD,eaIC,mBAAA,EAAA,IAAA,IAAA,KAAA,cAAA,CAAA,EAAA,IAAA,KAAA,EAAA,eAAA,CAAA,EAAA,IAAA,KAAA,EAAA,0BAAA,WAAA,EAAA,IAAA,IAAA,KAAA,cAAA,CAAA,EAAA,IAAA,KAAA,EAAA,eAAA,CAAA,EAAA,IAAA,KAAA,EAAA,0BbJD,eaIC,mBAAA,EAAA,IAAA,IAAA,KAAA,cAAA,CAAA,EAAA,IAAA,KAAA,IAAA,eAAA,CAAA,EAAA,IAAA,KAAA,IAAA,0BAAA,WAAA,EAAA,IAAA,IAAA,KAAA,cAAA,CAAA,EAAA,IAAA,KAAA,IAAA,eAAA,CAAA,EAAA,IAAA,KAAA,IAAA,0BbJD,eaIC,mBAAA,EAAA,IAAA,IAAA,KAAA,cAAA,CAAA,EAAA,IAAA,KAAA,IAAA,eAAA,CAAA,EAAA,IAAA,KAAA,IAAA,0BAAA,WAAA,EAAA,IAAA,IAAA,KAAA,cAAA,CAAA,EAAA,IAAA,KAAA,IAAA,eAAA,CAAA,EAAA,IAAA,KAAA,IAAA,0BbJD,eaIC,mBAAA,EAAA,IAAA,IAAA,KAAA,cAAA,CAAA,EAAA,IAAA,KAAA,IAAA,eAAA,CAAA,EAAA,IAAA,KAAA,IAAA,0BAAA,WAAA,EAAA,IAAA,IAAA,KAAA,cAAA,CAAA,EAAA,IAAA,KAAA,IAAA,eAAA,CAAA,EAAA,IAAA,KAAA,IAAA,0BbJD,gBaIC,mBAAA,EAAA,IAAA,IAAA,KAAA,cAAA,CAAA,EAAA,KAAA,KAAA,IAAA,eAAA,CAAA,EAAA,IAAA,KAAA,IAAA,0BAAA,WAAA,EAAA,IAAA,IAAA,KAAA,cAAA,CAAA,EAAA,KAAA,KAAA,IAAA,eAAA,CAAA,EAAA,IAAA,KAAA,IAAA,0BbJD,gBaIC,mBAAA,EAAA,IAAA,IAAA,KAAA,cAAA,CAAA,EAAA,KAAA,KAAA,IAAA,eAAA,CAAA,EAAA,IAAA,KAAA,IAAA,0BAAA,WAAA,EAAA,IAAA,IAAA,KAAA,cAAA,CAAA,EAAA,KAAA,KAAA,IAAA,eAAA,CAAA,EAAA,IAAA,KAAA,IAAA,0BbJD,gBaIC,mBAAA,EAAA,IAAA,IAAA,KAAA,cAAA,CAAA,EAAA,KAAA,KAAA,IAAA,eAAA,CAAA,EAAA,IAAA,KAAA,IAAA,0BAAA,WAAA,EAAA,IAAA,IAAA,KAAA,cAAA,CAAA,EAAA,KAAA,KAAA,IAAA,eAAA,CAAA,EAAA,IAAA,KAAA,IAAA,0BbJD,gBaIC,mBAAA,EAAA,IAAA,IAAA,KAAA,cAAA,CAAA,EAAA,KAAA,KAAA,IAAA,eAAA,CAAA,EAAA,IAAA,KAAA,IAAA,0BAAA,WAAA,EAAA,IAAA,IAAA,KAAA,cAAA,CAAA,EAAA,KAAA,KAAA,IAAA,eAAA,CAAA,EAAA,IAAA,KAAA,IAAA,0BbJD,gBaIC,mBAAA,EAAA,IAAA,IAAA,KAAA,cAAA,CAAA,EAAA,KAAA,KAAA,IAAA,eAAA,CAAA,EAAA,IAAA,KAAA,IAAA,0BAAA,WAAA,EAAA,IAAA,IAAA,KAAA,cAAA,CAAA,EAAA,KAAA,KAAA,IAAA,eAAA,CAAA,EAAA,IAAA,KAAA,IAAA,0BbJD,gBaIC,mBAAA,EAAA,IAAA,IAAA,KAAA,cAAA,CAAA,EAAA,KAAA,KAAA,IAAA,eAAA,CAAA,EAAA,IAAA,KAAA,IAAA,0BAAA,WAAA,EAAA,IAAA,IAAA,KAAA,cAAA,CAAA,EAAA,KAAA,KAAA,IAAA,eAAA,CAAA,EAAA,IAAA,KAAA,IAAA,0BbJD,gBaIC,mBAAA,EAAA,IAAA,KAAA,KAAA,cAAA,CAAA,EAAA,KAAA,KAAA,IAAA,eAAA,CAAA,EAAA,IAAA,KAAA,IAAA,0BAAA,WAAA,EAAA,IAAA,KAAA,KAAA,cAAA,CAAA,EAAA,KAAA,KAAA,IAAA,eAAA,CAAA,EAAA,IAAA,KAAA,IAAA,0BbJD,gBaIC,mBAAA,EAAA,IAAA,KAAA,KAAA,cAAA,CAAA,EAAA,KAAA,KAAA,IAAA,eAAA,CAAA,EAAA,IAAA,KAAA,IAAA,0BAAA,WAAA,EAAA,IAAA,KAAA,KAAA,cAAA,CAAA,EAAA,KAAA,KAAA,IAAA,eAAA,CAAA,EAAA,IAAA,KAAA,IAAA,0BbJD,gBaIC,mBAAA,EAAA,IAAA,KAAA,KAAA,cAAA,CAAA,EAAA,KAAA,KAAA,IAAA,eAAA,CAAA,EAAA,IAAA,KAAA,IAAA,0BAAA,WAAA,EAAA,IAAA,KAAA,KAAA,cAAA,CAAA,EAAA,KAAA,KAAA,IAAA,eAAA,CAAA,EAAA,IAAA,KAAA,IAAA,0BbJD,gBaIC,mBAAA,EAAA,IAAA,KAAA,KAAA,cAAA,CAAA,EAAA,KAAA,KAAA,IAAA,eAAA,CAAA,EAAA,IAAA,KAAA,IAAA,0BAAA,WAAA,EAAA,IAAA,KAAA,KAAA,cAAA,CAAA,EAAA,KAAA,KAAA,IAAA,eAAA,CAAA,EAAA,IAAA,KAAA,IAAA,0BbJD,gBaIC,mBAAA,EAAA,KAAA,KAAA,KAAA,cAAA,CAAA,EAAA,KAAA,KAAA,IAAA,eAAA,CAAA,EAAA,IAAA,KAAA,IAAA,0BAAA,WAAA,EAAA,KAAA,KAAA,KAAA,cAAA,CAAA,EAAA,KAAA,KAAA,IAAA,eAAA,CAAA,EAAA,IAAA,KAAA,IAAA,0BbJD,gBaIC,mBAAA,EAAA,KAAA,KAAA,KAAA,cAAA,CAAA,EAAA,KAAA,KAAA,IAAA,eAAA,CAAA,EAAA,IAAA,KAAA,IAAA,0BAAA,WAAA,EAAA,KAAA,KAAA,KAAA,cAAA,CAAA,EAAA,KAAA,KAAA,IAAA,eAAA,CAAA,EAAA,IAAA,KAAA,IAAA,0BbJD,gBaIC,mBAAA,EAAA,KAAA,KAAA,KAAA,cAAA,CAAA,EAAA,KAAA,KAAA,IAAA,eAAA,CAAA,EAAA,IAAA,KAAA,IAAA,0BAAA,WAAA,EAAA,KAAA,KAAA,KAAA,cAAA,CAAA,EAAA,KAAA,KAAA,IAAA,eAAA,CAAA,EAAA,IAAA,KAAA,IAAA,0BbJD,gBaIC,mBAAA,EAAA,KAAA,KAAA,KAAA,cAAA,CAAA,EAAA,KAAA,KAAA,IAAA,eAAA,CAAA,EAAA,IAAA,KAAA,IAAA,0BAAA,WAAA,EAAA,KAAA,KAAA,KAAA,cAAA,CAAA,EAAA,KAAA,KAAA,IAAA,eAAA,CAAA,EAAA,IAAA,KAAA,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,qDACE,GACE,KAAA,EACA,MAAA,EAEF,IACE,KAAA,EACA,MAAA,EAEF,IACE,KAAA,EACA,MAAA,IAEF,KACE,KAAA,KACA,MAAA,GAfJ,6CACE,GACE,KAAA,EACA,MAAA,EAEF,IACE,KAAA,EACA,MAAA,EAEF,IACE,KAAA,EACA,MAAA,IAEF,KACE,KAAA,KACA,MAAA,G9CpFH,yC8CsGO,iBAAA,mB9CtGP,qDLigZD,uDMr9YE,iBAAA,QD5CD,wC8CsGO,iBAAA,oB9CtGP,oDLwgZD,sDM59YE,iBAAA,QD5CD,6C8CsGO,iBAAA,oB9CtGP,yDL+gZD,2DMn+YE,iBAAA,QD5CD,yC8CsGO,iBAAA,mB9CtGP,qDLshZD,uDM1+YE,iBAAA,QD5CD,wC8CsGO,iBAAA,mB9CtGP,oDL6hZD,sDMj/YE,iBAAA,QD5CD,+C8CsGO,iBAAA,mB9CtGP,2DLoiZD,6DMx/YE,iBAAA,QD5CD,+C8CsGO,iBAAA,oB9CtGP,2DL2iZD,6DM//YE,iBAAA,QD5CD,yC8CsGO,iBAAA,mB9CtGP,qDLkjZD,uDMtgZE,iBAAA,QD5CD,wC8CsGO,iBAAA,qB9CtGP,oDLyjZD,sDM7gZE,iBAAA,QD5CD,0C8CsGO,iBAAA,mB9CtGP,sDLgkZD,wDMphZE,iBAAA,QD5CD,8C8CsGO,iBAAA,mB9CtGP,0DLukZD,4DM3hZE,iBAAA,QD5CD,+C8CsGO,iBAAA,oB9CtGP,2DL8kZD,6DMliZE,iBAAA,QD5CD,wC8CsGO,iBAAA,oB9CtGP,oDLqlZD,sDMziZE,iBAAA,QD5CD,0C8CsGO,iBAAA,mB9CtGP,sDL4lZD,wDMhjZE,iBAAA,QD5CD,wC8CsGO,iBAAA,mB9CtGP,oDLmmZD,sDMvjZE,iBAAA,QD5CD,0C8CsGO,iBAAA,oB9CtGP,sDL0mZD,wDM9jZE,iBAAA,QD5CD,uC8CsGO,iBAAA,mB9CtGP,mDLinZD,qDMrkZE,iBAAA,QD5CD,wC8CsGO,iBAAA,mB9CtGP,oDLwnZD,sDM5kZE,iBAAA,QD5CD,0C8CsGO,iBAAA,oB9CtGP,sDL+nZD,wDMnlZE,iBAAA,Q8CtCF,cACE,SAAA,SACA,QAAA,aACA,MAAA,KACA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","file":"mdui.min.css","sourcesContent":["/*!\n * mdui 1.0.1 (https://mdui.org)\n * Copyright 2016-2020 zdhxiong\n * Licensed under MIT\n *//*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n\n/**\n * =============================================================================\n * ************ 公共样式 ************\n * =============================================================================\n */\n* {\n -webkit-tap-highlight-color: transparent;\n}\nbody {\n color: rgba(0, 0, 0, 0.87);\n font-size: 14px;\n font-family: Roboto, Noto, Helvetica, Arial, sans-serif;\n background-color: #fff;\n}\n@media (min-width: 600px) {\n body {\n font-size: 14.5px;\n }\n}\n@media (min-width: 1024px) {\n body {\n font-size: 15px;\n }\n}\nbody *::-webkit-scrollbar {\n width: 5px;\n height: 5px;\n background: transparent;\n}\n@media (min-width: 1024px) {\n body *::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n }\n}\nbody *::-webkit-scrollbar-thumb {\n background: rgba(0, 0, 0, 0.2);\n}\n/* 锁定屏幕 */\nbody.mdui-locked {\n overflow: hidden;\n}\n/* 遮罩层 */\n.mdui-overlay {\n position: fixed;\n top: -5000px;\n right: -5000px;\n bottom: -5000px;\n left: -5000px;\n z-index: 2000;\n background: rgba(0, 0, 0, 0.4);\n backface-visibility: hidden;\n visibility: hidden;\n opacity: 0;\n transition-duration: 0.3s;\n transition-property: opacity, visibility;\n will-change: opacity;\n}\n/* 显示遮罩层 */\n.mdui-overlay-show {\n visibility: visible;\n opacity: 1;\n}\n/* 取消 transition 过渡效果 */\n.mdui-no-transition {\n transition-property: none !important;\n}\n/**\n * =============================================================================\n * ************ Global dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark {\n color: #fff;\n background-color: #303030;\n}\n.mdui-theme-layout-dark *::-webkit-scrollbar {\n width: 5px;\n height: 5px;\n background: transparent;\n}\n@media (min-width: 1024px) {\n .mdui-theme-layout-dark *::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n }\n}\n.mdui-theme-layout-dark *::-webkit-scrollbar-thumb {\n background: rgba(255, 255, 255, 0.3);\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto {\n color: #fff;\n background-color: #303030;\n }\n .mdui-theme-layout-auto *::-webkit-scrollbar {\n width: 5px;\n height: 5px;\n background: transparent;\n }\n .mdui-theme-layout-auto *::-webkit-scrollbar-thumb {\n background: rgba(255, 255, 255, 0.3);\n }\n}\n@media (prefers-color-scheme: dark) and (min-width: 1024px) {\n .mdui-theme-layout-auto *::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n }\n}\n/**\n * =============================================================================\n * ************ Color 颜色 ************\n * =============================================================================\n */\n/**\n * .mdui-theme-primary-[color] .mdui-color-theme\n * .mdui-theme-primary-[color] .mdui-color-theme-[degree]\n */\n.mdui-theme-primary-amber .mdui-color-theme {\n background-color: #FFC107 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-amber .mdui-color-theme-50 {\n background-color: #FFF8E1 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-amber .mdui-color-theme-100 {\n background-color: #FFECB3 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-amber .mdui-color-theme-200 {\n background-color: #FFE082 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-amber .mdui-color-theme-300 {\n background-color: #FFD54F !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-amber .mdui-color-theme-400 {\n background-color: #FFCA28 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-amber .mdui-color-theme-500 {\n background-color: #FFC107 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-amber .mdui-color-theme-600 {\n background-color: #FFB300 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-amber .mdui-color-theme-700 {\n background-color: #FFA000 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-amber .mdui-color-theme-800 {\n background-color: #FF8F00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-amber .mdui-color-theme-900 {\n background-color: #FF6F00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-blue .mdui-color-theme {\n background-color: #2196F3 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-blue .mdui-color-theme-50 {\n background-color: #E3F2FD !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-blue .mdui-color-theme-100 {\n background-color: #BBDEFB !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-blue .mdui-color-theme-200 {\n background-color: #90CAF9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-blue .mdui-color-theme-300 {\n background-color: #64B5F6 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-blue .mdui-color-theme-400 {\n background-color: #42A5F5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-blue .mdui-color-theme-500 {\n background-color: #2196F3 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-blue .mdui-color-theme-600 {\n background-color: #1E88E5 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-blue .mdui-color-theme-700 {\n background-color: #1976D2 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-blue .mdui-color-theme-800 {\n background-color: #1565C0 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-blue .mdui-color-theme-900 {\n background-color: #0D47A1 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-blue-grey .mdui-color-theme {\n background-color: #607D8B !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-blue-grey .mdui-color-theme-50 {\n background-color: #ECEFF1 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-blue-grey .mdui-color-theme-100 {\n background-color: #CFD8DC !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-blue-grey .mdui-color-theme-200 {\n background-color: #B0BEC5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-blue-grey .mdui-color-theme-300 {\n background-color: #90A4AE !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-blue-grey .mdui-color-theme-400 {\n background-color: #78909C !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-blue-grey .mdui-color-theme-500 {\n background-color: #607D8B !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-blue-grey .mdui-color-theme-600 {\n background-color: #546E7A !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-blue-grey .mdui-color-theme-700 {\n background-color: #455A64 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-blue-grey .mdui-color-theme-800 {\n background-color: #37474F !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-blue-grey .mdui-color-theme-900 {\n background-color: #263238 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-brown .mdui-color-theme {\n background-color: #795548 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-brown .mdui-color-theme-50 {\n background-color: #EFEBE9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-brown .mdui-color-theme-100 {\n background-color: #D7CCC8 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-brown .mdui-color-theme-200 {\n background-color: #BCAAA4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-brown .mdui-color-theme-300 {\n background-color: #A1887F !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-brown .mdui-color-theme-400 {\n background-color: #8D6E63 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-brown .mdui-color-theme-500 {\n background-color: #795548 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-brown .mdui-color-theme-600 {\n background-color: #6D4C41 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-brown .mdui-color-theme-700 {\n background-color: #5D4037 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-brown .mdui-color-theme-800 {\n background-color: #4E342E !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-brown .mdui-color-theme-900 {\n background-color: #3E2723 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-cyan .mdui-color-theme {\n background-color: #00BCD4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-cyan .mdui-color-theme-50 {\n background-color: #E0F7FA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-cyan .mdui-color-theme-100 {\n background-color: #B2EBF2 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-cyan .mdui-color-theme-200 {\n background-color: #80DEEA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-cyan .mdui-color-theme-300 {\n background-color: #4DD0E1 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-cyan .mdui-color-theme-400 {\n background-color: #26C6DA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-cyan .mdui-color-theme-500 {\n background-color: #00BCD4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-cyan .mdui-color-theme-600 {\n background-color: #00ACC1 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-cyan .mdui-color-theme-700 {\n background-color: #0097A7 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-cyan .mdui-color-theme-800 {\n background-color: #00838F !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-cyan .mdui-color-theme-900 {\n background-color: #006064 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-deep-orange .mdui-color-theme {\n background-color: #FF5722 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-deep-orange .mdui-color-theme-50 {\n background-color: #FBE9E7 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-deep-orange .mdui-color-theme-100 {\n background-color: #FFCCBC !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-deep-orange .mdui-color-theme-200 {\n background-color: #FFAB91 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-deep-orange .mdui-color-theme-300 {\n background-color: #FF8A65 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-deep-orange .mdui-color-theme-400 {\n background-color: #FF7043 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-deep-orange .mdui-color-theme-500 {\n background-color: #FF5722 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-deep-orange .mdui-color-theme-600 {\n background-color: #F4511E !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-deep-orange .mdui-color-theme-700 {\n background-color: #E64A19 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-deep-orange .mdui-color-theme-800 {\n background-color: #D84315 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-deep-orange .mdui-color-theme-900 {\n background-color: #BF360C !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-deep-purple .mdui-color-theme {\n background-color: #673AB7 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-deep-purple .mdui-color-theme-50 {\n background-color: #EDE7F6 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-deep-purple .mdui-color-theme-100 {\n background-color: #D1C4E9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-deep-purple .mdui-color-theme-200 {\n background-color: #B39DDB !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-deep-purple .mdui-color-theme-300 {\n background-color: #9575CD !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-deep-purple .mdui-color-theme-400 {\n background-color: #7E57C2 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-deep-purple .mdui-color-theme-500 {\n background-color: #673AB7 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-deep-purple .mdui-color-theme-600 {\n background-color: #5E35B1 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-deep-purple .mdui-color-theme-700 {\n background-color: #512DA8 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-deep-purple .mdui-color-theme-800 {\n background-color: #4527A0 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-deep-purple .mdui-color-theme-900 {\n background-color: #311B92 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-green .mdui-color-theme {\n background-color: #4CAF50 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-green .mdui-color-theme-50 {\n background-color: #E8F5E9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-green .mdui-color-theme-100 {\n background-color: #C8E6C9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-green .mdui-color-theme-200 {\n background-color: #A5D6A7 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-green .mdui-color-theme-300 {\n background-color: #81C784 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-green .mdui-color-theme-400 {\n background-color: #66BB6A !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-green .mdui-color-theme-500 {\n background-color: #4CAF50 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-green .mdui-color-theme-600 {\n background-color: #43A047 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-green .mdui-color-theme-700 {\n background-color: #388E3C !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-green .mdui-color-theme-800 {\n background-color: #2E7D32 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-green .mdui-color-theme-900 {\n background-color: #1B5E20 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-grey .mdui-color-theme {\n background-color: #9E9E9E !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-grey .mdui-color-theme-50 {\n background-color: #FAFAFA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-grey .mdui-color-theme-100 {\n background-color: #F5F5F5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-grey .mdui-color-theme-200 {\n background-color: #EEEEEE !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-grey .mdui-color-theme-300 {\n background-color: #E0E0E0 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-grey .mdui-color-theme-400 {\n background-color: #BDBDBD !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-grey .mdui-color-theme-500 {\n background-color: #9E9E9E !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-grey .mdui-color-theme-600 {\n background-color: #757575 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-grey .mdui-color-theme-700 {\n background-color: #616161 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-grey .mdui-color-theme-800 {\n background-color: #424242 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-grey .mdui-color-theme-900 {\n background-color: #212121 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-indigo .mdui-color-theme {\n background-color: #3F51B5 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-indigo .mdui-color-theme-50 {\n background-color: #E8EAF6 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-indigo .mdui-color-theme-100 {\n background-color: #C5CAE9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-indigo .mdui-color-theme-200 {\n background-color: #9FA8DA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-indigo .mdui-color-theme-300 {\n background-color: #7986CB !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-indigo .mdui-color-theme-400 {\n background-color: #5C6BC0 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-indigo .mdui-color-theme-500 {\n background-color: #3F51B5 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-indigo .mdui-color-theme-600 {\n background-color: #3949AB !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-indigo .mdui-color-theme-700 {\n background-color: #303F9F !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-indigo .mdui-color-theme-800 {\n background-color: #283593 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-indigo .mdui-color-theme-900 {\n background-color: #1A237E !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-light-blue .mdui-color-theme {\n background-color: #03A9F4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-blue .mdui-color-theme-50 {\n background-color: #E1F5FE !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-blue .mdui-color-theme-100 {\n background-color: #B3E5FC !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-blue .mdui-color-theme-200 {\n background-color: #81D4FA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-blue .mdui-color-theme-300 {\n background-color: #4FC3F7 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-blue .mdui-color-theme-400 {\n background-color: #29B6F6 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-blue .mdui-color-theme-500 {\n background-color: #03A9F4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-blue .mdui-color-theme-600 {\n background-color: #039BE5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-blue .mdui-color-theme-700 {\n background-color: #0288D1 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-light-blue .mdui-color-theme-800 {\n background-color: #0277BD !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-light-blue .mdui-color-theme-900 {\n background-color: #01579B !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-light-green .mdui-color-theme {\n background-color: #8BC34A !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-green .mdui-color-theme-50 {\n background-color: #F1F8E9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-green .mdui-color-theme-100 {\n background-color: #DCEDC8 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-green .mdui-color-theme-200 {\n background-color: #C5E1A5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-green .mdui-color-theme-300 {\n background-color: #AED581 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-green .mdui-color-theme-400 {\n background-color: #9CCC65 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-green .mdui-color-theme-500 {\n background-color: #8BC34A !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-green .mdui-color-theme-600 {\n background-color: #7CB342 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-green .mdui-color-theme-700 {\n background-color: #689F38 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-light-green .mdui-color-theme-800 {\n background-color: #558B2F !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-light-green .mdui-color-theme-900 {\n background-color: #33691E !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-lime .mdui-color-theme {\n background-color: #CDDC39 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-lime .mdui-color-theme-50 {\n background-color: #F9FBE7 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-lime .mdui-color-theme-100 {\n background-color: #F0F4C3 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-lime .mdui-color-theme-200 {\n background-color: #E6EE9C !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-lime .mdui-color-theme-300 {\n background-color: #DCE775 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-lime .mdui-color-theme-400 {\n background-color: #D4E157 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-lime .mdui-color-theme-500 {\n background-color: #CDDC39 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-lime .mdui-color-theme-600 {\n background-color: #C0CA33 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-lime .mdui-color-theme-700 {\n background-color: #AFB42B !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-lime .mdui-color-theme-800 {\n background-color: #9E9D24 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-lime .mdui-color-theme-900 {\n background-color: #827717 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-orange .mdui-color-theme {\n background-color: #FF9800 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-orange .mdui-color-theme-50 {\n background-color: #FFF3E0 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-orange .mdui-color-theme-100 {\n background-color: #FFE0B2 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-orange .mdui-color-theme-200 {\n background-color: #FFCC80 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-orange .mdui-color-theme-300 {\n background-color: #FFB74D !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-orange .mdui-color-theme-400 {\n background-color: #FFA726 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-orange .mdui-color-theme-500 {\n background-color: #FF9800 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-orange .mdui-color-theme-600 {\n background-color: #FB8C00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-orange .mdui-color-theme-700 {\n background-color: #F57C00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-orange .mdui-color-theme-800 {\n background-color: #EF6C00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-orange .mdui-color-theme-900 {\n background-color: #E65100 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-pink .mdui-color-theme {\n background-color: #E91E63 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-pink .mdui-color-theme-50 {\n background-color: #FCE4EC !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-pink .mdui-color-theme-100 {\n background-color: #F8BBD0 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-pink .mdui-color-theme-200 {\n background-color: #F48FB1 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-pink .mdui-color-theme-300 {\n background-color: #F06292 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-pink .mdui-color-theme-400 {\n background-color: #EC407A !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-pink .mdui-color-theme-500 {\n background-color: #E91E63 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-pink .mdui-color-theme-600 {\n background-color: #D81B60 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-pink .mdui-color-theme-700 {\n background-color: #C2185B !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-pink .mdui-color-theme-800 {\n background-color: #AD1457 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-pink .mdui-color-theme-900 {\n background-color: #880E4F !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-purple .mdui-color-theme {\n background-color: #9C27B0 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-purple .mdui-color-theme-50 {\n background-color: #F3E5F5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-purple .mdui-color-theme-100 {\n background-color: #E1BEE7 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-purple .mdui-color-theme-200 {\n background-color: #CE93D8 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-purple .mdui-color-theme-300 {\n background-color: #BA68C8 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-purple .mdui-color-theme-400 {\n background-color: #AB47BC !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-purple .mdui-color-theme-500 {\n background-color: #9C27B0 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-purple .mdui-color-theme-600 {\n background-color: #8E24AA !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-purple .mdui-color-theme-700 {\n background-color: #7B1FA2 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-purple .mdui-color-theme-800 {\n background-color: #6A1B9A !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-purple .mdui-color-theme-900 {\n background-color: #4A148C !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-red .mdui-color-theme {\n background-color: #F44336 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-red .mdui-color-theme-50 {\n background-color: #FFEBEE !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-red .mdui-color-theme-100 {\n background-color: #FFCDD2 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-red .mdui-color-theme-200 {\n background-color: #EF9A9A !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-red .mdui-color-theme-300 {\n background-color: #E57373 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-red .mdui-color-theme-400 {\n background-color: #EF5350 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-red .mdui-color-theme-500 {\n background-color: #F44336 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-red .mdui-color-theme-600 {\n background-color: #E53935 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-red .mdui-color-theme-700 {\n background-color: #D32F2F !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-red .mdui-color-theme-800 {\n background-color: #C62828 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-red .mdui-color-theme-900 {\n background-color: #B71C1C !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-teal .mdui-color-theme {\n background-color: #009688 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-teal .mdui-color-theme-50 {\n background-color: #E0F2F1 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-teal .mdui-color-theme-100 {\n background-color: #B2DFDB !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-teal .mdui-color-theme-200 {\n background-color: #80CBC4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-teal .mdui-color-theme-300 {\n background-color: #4DB6AC !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-teal .mdui-color-theme-400 {\n background-color: #26A69A !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-teal .mdui-color-theme-500 {\n background-color: #009688 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-teal .mdui-color-theme-600 {\n background-color: #00897B !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-teal .mdui-color-theme-700 {\n background-color: #00796B !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-teal .mdui-color-theme-800 {\n background-color: #00695C !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-teal .mdui-color-theme-900 {\n background-color: #004D40 !important;\n color: #ffffff !important;\n}\n.mdui-theme-primary-yellow .mdui-color-theme {\n background-color: #FFEB3B !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-yellow .mdui-color-theme-50 {\n background-color: #FFFDE7 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-yellow .mdui-color-theme-100 {\n background-color: #FFF9C4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-yellow .mdui-color-theme-200 {\n background-color: #FFF59D !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-yellow .mdui-color-theme-300 {\n background-color: #FFF176 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-yellow .mdui-color-theme-400 {\n background-color: #FFEE58 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-yellow .mdui-color-theme-500 {\n background-color: #FFEB3B !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-yellow .mdui-color-theme-600 {\n background-color: #FDD835 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-yellow .mdui-color-theme-700 {\n background-color: #FBC02D !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-yellow .mdui-color-theme-800 {\n background-color: #F9A825 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-primary-yellow .mdui-color-theme-900 {\n background-color: #F57F17 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n/**\n * .mdui-theme-accent-[color] .mdui-color-theme-accent\n * .mdui-theme-accent-[color] .mdui-color-theme-[degree]\n */\n.mdui-theme-accent-amber .mdui-color-theme-accent {\n background-color: #FFD740 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-amber .mdui-color-theme-a100 {\n background-color: #FFE57F !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-amber .mdui-color-theme-a200 {\n background-color: #FFD740 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-amber .mdui-color-theme-a400 {\n background-color: #FFC400 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-amber .mdui-color-theme-a700 {\n background-color: #FFAB00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-blue .mdui-color-theme-accent {\n background-color: #448AFF !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-blue .mdui-color-theme-a100 {\n background-color: #82B1FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-blue .mdui-color-theme-a200 {\n background-color: #448AFF !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-blue .mdui-color-theme-a400 {\n background-color: #2979FF !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-blue .mdui-color-theme-a700 {\n background-color: #2962FF !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-cyan .mdui-color-theme-accent {\n background-color: #18FFFF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-cyan .mdui-color-theme-a100 {\n background-color: #84FFFF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-cyan .mdui-color-theme-a200 {\n background-color: #18FFFF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-cyan .mdui-color-theme-a400 {\n background-color: #00E5FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-cyan .mdui-color-theme-a700 {\n background-color: #00B8D4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-deep-orange .mdui-color-theme-accent {\n background-color: #FF6E40 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-deep-orange .mdui-color-theme-a100 {\n background-color: #FF9E80 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-deep-orange .mdui-color-theme-a200 {\n background-color: #FF6E40 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-deep-orange .mdui-color-theme-a400 {\n background-color: #FF3D00 !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-deep-orange .mdui-color-theme-a700 {\n background-color: #DD2C00 !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-deep-purple .mdui-color-theme-accent {\n background-color: #7C4DFF !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-deep-purple .mdui-color-theme-a100 {\n background-color: #B388FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-deep-purple .mdui-color-theme-a200 {\n background-color: #7C4DFF !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-deep-purple .mdui-color-theme-a400 {\n background-color: #651FFF !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-deep-purple .mdui-color-theme-a700 {\n background-color: #6200EA !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-green .mdui-color-theme-accent {\n background-color: #69F0AE !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-green .mdui-color-theme-a100 {\n background-color: #B9F6CA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-green .mdui-color-theme-a200 {\n background-color: #69F0AE !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-green .mdui-color-theme-a400 {\n background-color: #00E676 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-green .mdui-color-theme-a700 {\n background-color: #00C853 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-indigo .mdui-color-theme-accent {\n background-color: #536DFE !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-indigo .mdui-color-theme-a100 {\n background-color: #8C9EFF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-indigo .mdui-color-theme-a200 {\n background-color: #536DFE !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-indigo .mdui-color-theme-a400 {\n background-color: #3D5AFE !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-indigo .mdui-color-theme-a700 {\n background-color: #304FFE !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-light-blue .mdui-color-theme-accent {\n background-color: #40C4FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-light-blue .mdui-color-theme-a100 {\n background-color: #80D8FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-light-blue .mdui-color-theme-a200 {\n background-color: #40C4FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-light-blue .mdui-color-theme-a400 {\n background-color: #00B0FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-light-blue .mdui-color-theme-a700 {\n background-color: #0091EA !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-light-green .mdui-color-theme-accent {\n background-color: #B2FF59 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-light-green .mdui-color-theme-a100 {\n background-color: #CCFF90 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-light-green .mdui-color-theme-a200 {\n background-color: #B2FF59 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-light-green .mdui-color-theme-a400 {\n background-color: #76FF03 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-light-green .mdui-color-theme-a700 {\n background-color: #64DD17 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-lime .mdui-color-theme-accent {\n background-color: #EEFF41 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-lime .mdui-color-theme-a100 {\n background-color: #F4FF81 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-lime .mdui-color-theme-a200 {\n background-color: #EEFF41 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-lime .mdui-color-theme-a400 {\n background-color: #C6FF00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-lime .mdui-color-theme-a700 {\n background-color: #AEEA00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-orange .mdui-color-theme-accent {\n background-color: #FFAB40 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-orange .mdui-color-theme-a100 {\n background-color: #FFD180 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-orange .mdui-color-theme-a200 {\n background-color: #FFAB40 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-orange .mdui-color-theme-a400 {\n background-color: #FF9100 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-orange .mdui-color-theme-a700 {\n background-color: #FF6D00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-pink .mdui-color-theme-accent {\n background-color: #FF4081 !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-pink .mdui-color-theme-a100 {\n background-color: #FF80AB !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-pink .mdui-color-theme-a200 {\n background-color: #FF4081 !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-pink .mdui-color-theme-a400 {\n background-color: #F50057 !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-pink .mdui-color-theme-a700 {\n background-color: #C51162 !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-purple .mdui-color-theme-accent {\n background-color: #E040FB !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-purple .mdui-color-theme-a100 {\n background-color: #EA80FC !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-purple .mdui-color-theme-a200 {\n background-color: #E040FB !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-purple .mdui-color-theme-a400 {\n background-color: #D500F9 !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-purple .mdui-color-theme-a700 {\n background-color: #AA00FF !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-red .mdui-color-theme-accent {\n background-color: #FF5252 !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-red .mdui-color-theme-a100 {\n background-color: #FF8A80 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-red .mdui-color-theme-a200 {\n background-color: #FF5252 !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-red .mdui-color-theme-a400 {\n background-color: #FF1744 !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-red .mdui-color-theme-a700 {\n background-color: #D50000 !important;\n color: #ffffff !important;\n}\n.mdui-theme-accent-teal .mdui-color-theme-accent {\n background-color: #64FFDA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-teal .mdui-color-theme-a100 {\n background-color: #A7FFEB !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-teal .mdui-color-theme-a200 {\n background-color: #64FFDA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-teal .mdui-color-theme-a400 {\n background-color: #1DE9B6 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-teal .mdui-color-theme-a700 {\n background-color: #00BFA5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-yellow .mdui-color-theme-accent {\n background-color: #FFFF00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-yellow .mdui-color-theme-a100 {\n background-color: #FFFF8D !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-yellow .mdui-color-theme-a200 {\n background-color: #FFFF00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-yellow .mdui-color-theme-a400 {\n background-color: #FFEA00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-theme-accent-yellow .mdui-color-theme-a700 {\n background-color: #FFD600 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n/**\n * .mdui-color-[color]\n * .mdui-color-[color]-[degree]\n */\n.mdui-color-amber {\n background-color: #FFC107 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-50 {\n background-color: #FFF8E1 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-100 {\n background-color: #FFECB3 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-200 {\n background-color: #FFE082 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-300 {\n background-color: #FFD54F !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-400 {\n background-color: #FFCA28 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-500 {\n background-color: #FFC107 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-600 {\n background-color: #FFB300 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-700 {\n background-color: #FFA000 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-800 {\n background-color: #FF8F00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-900 {\n background-color: #FF6F00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue {\n background-color: #2196F3 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue-50 {\n background-color: #E3F2FD !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue-100 {\n background-color: #BBDEFB !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue-200 {\n background-color: #90CAF9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue-300 {\n background-color: #64B5F6 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue-400 {\n background-color: #42A5F5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue-500 {\n background-color: #2196F3 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue-600 {\n background-color: #1E88E5 !important;\n color: #ffffff !important;\n}\n.mdui-color-blue-700 {\n background-color: #1976D2 !important;\n color: #ffffff !important;\n}\n.mdui-color-blue-800 {\n background-color: #1565C0 !important;\n color: #ffffff !important;\n}\n.mdui-color-blue-900 {\n background-color: #0D47A1 !important;\n color: #ffffff !important;\n}\n.mdui-color-blue-grey {\n background-color: #607D8B !important;\n color: #ffffff !important;\n}\n.mdui-color-blue-grey-50 {\n background-color: #ECEFF1 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue-grey-100 {\n background-color: #CFD8DC !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue-grey-200 {\n background-color: #B0BEC5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue-grey-300 {\n background-color: #90A4AE !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue-grey-400 {\n background-color: #78909C !important;\n color: #ffffff !important;\n}\n.mdui-color-blue-grey-500 {\n background-color: #607D8B !important;\n color: #ffffff !important;\n}\n.mdui-color-blue-grey-600 {\n background-color: #546E7A !important;\n color: #ffffff !important;\n}\n.mdui-color-blue-grey-700 {\n background-color: #455A64 !important;\n color: #ffffff !important;\n}\n.mdui-color-blue-grey-800 {\n background-color: #37474F !important;\n color: #ffffff !important;\n}\n.mdui-color-blue-grey-900 {\n background-color: #263238 !important;\n color: #ffffff !important;\n}\n.mdui-color-brown {\n background-color: #795548 !important;\n color: #ffffff !important;\n}\n.mdui-color-brown-50 {\n background-color: #EFEBE9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-brown-100 {\n background-color: #D7CCC8 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-brown-200 {\n background-color: #BCAAA4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-brown-300 {\n background-color: #A1887F !important;\n color: #ffffff !important;\n}\n.mdui-color-brown-400 {\n background-color: #8D6E63 !important;\n color: #ffffff !important;\n}\n.mdui-color-brown-500 {\n background-color: #795548 !important;\n color: #ffffff !important;\n}\n.mdui-color-brown-600 {\n background-color: #6D4C41 !important;\n color: #ffffff !important;\n}\n.mdui-color-brown-700 {\n background-color: #5D4037 !important;\n color: #ffffff !important;\n}\n.mdui-color-brown-800 {\n background-color: #4E342E !important;\n color: #ffffff !important;\n}\n.mdui-color-brown-900 {\n background-color: #3E2723 !important;\n color: #ffffff !important;\n}\n.mdui-color-cyan {\n background-color: #00BCD4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-cyan-50 {\n background-color: #E0F7FA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-cyan-100 {\n background-color: #B2EBF2 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-cyan-200 {\n background-color: #80DEEA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-cyan-300 {\n background-color: #4DD0E1 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-cyan-400 {\n background-color: #26C6DA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-cyan-500 {\n background-color: #00BCD4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-cyan-600 {\n background-color: #00ACC1 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-cyan-700 {\n background-color: #0097A7 !important;\n color: #ffffff !important;\n}\n.mdui-color-cyan-800 {\n background-color: #00838F !important;\n color: #ffffff !important;\n}\n.mdui-color-cyan-900 {\n background-color: #006064 !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-orange {\n background-color: #FF5722 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-orange-50 {\n background-color: #FBE9E7 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-orange-100 {\n background-color: #FFCCBC !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-orange-200 {\n background-color: #FFAB91 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-orange-300 {\n background-color: #FF8A65 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-orange-400 {\n background-color: #FF7043 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-orange-500 {\n background-color: #FF5722 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-orange-600 {\n background-color: #F4511E !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-orange-700 {\n background-color: #E64A19 !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-orange-800 {\n background-color: #D84315 !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-orange-900 {\n background-color: #BF360C !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-purple {\n background-color: #673AB7 !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-purple-50 {\n background-color: #EDE7F6 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-purple-100 {\n background-color: #D1C4E9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-purple-200 {\n background-color: #B39DDB !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-purple-300 {\n background-color: #9575CD !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-purple-400 {\n background-color: #7E57C2 !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-purple-500 {\n background-color: #673AB7 !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-purple-600 {\n background-color: #5E35B1 !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-purple-700 {\n background-color: #512DA8 !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-purple-800 {\n background-color: #4527A0 !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-purple-900 {\n background-color: #311B92 !important;\n color: #ffffff !important;\n}\n.mdui-color-green {\n background-color: #4CAF50 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-green-50 {\n background-color: #E8F5E9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-green-100 {\n background-color: #C8E6C9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-green-200 {\n background-color: #A5D6A7 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-green-300 {\n background-color: #81C784 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-green-400 {\n background-color: #66BB6A !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-green-500 {\n background-color: #4CAF50 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-green-600 {\n background-color: #43A047 !important;\n color: #ffffff !important;\n}\n.mdui-color-green-700 {\n background-color: #388E3C !important;\n color: #ffffff !important;\n}\n.mdui-color-green-800 {\n background-color: #2E7D32 !important;\n color: #ffffff !important;\n}\n.mdui-color-green-900 {\n background-color: #1B5E20 !important;\n color: #ffffff !important;\n}\n.mdui-color-grey {\n background-color: #9E9E9E !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-grey-50 {\n background-color: #FAFAFA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-grey-100 {\n background-color: #F5F5F5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-grey-200 {\n background-color: #EEEEEE !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-grey-300 {\n background-color: #E0E0E0 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-grey-400 {\n background-color: #BDBDBD !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-grey-500 {\n background-color: #9E9E9E !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-grey-600 {\n background-color: #757575 !important;\n color: #ffffff !important;\n}\n.mdui-color-grey-700 {\n background-color: #616161 !important;\n color: #ffffff !important;\n}\n.mdui-color-grey-800 {\n background-color: #424242 !important;\n color: #ffffff !important;\n}\n.mdui-color-grey-900 {\n background-color: #212121 !important;\n color: #ffffff !important;\n}\n.mdui-color-indigo {\n background-color: #3F51B5 !important;\n color: #ffffff !important;\n}\n.mdui-color-indigo-50 {\n background-color: #E8EAF6 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-indigo-100 {\n background-color: #C5CAE9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-indigo-200 {\n background-color: #9FA8DA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-indigo-300 {\n background-color: #7986CB !important;\n color: #ffffff !important;\n}\n.mdui-color-indigo-400 {\n background-color: #5C6BC0 !important;\n color: #ffffff !important;\n}\n.mdui-color-indigo-500 {\n background-color: #3F51B5 !important;\n color: #ffffff !important;\n}\n.mdui-color-indigo-600 {\n background-color: #3949AB !important;\n color: #ffffff !important;\n}\n.mdui-color-indigo-700 {\n background-color: #303F9F !important;\n color: #ffffff !important;\n}\n.mdui-color-indigo-800 {\n background-color: #283593 !important;\n color: #ffffff !important;\n}\n.mdui-color-indigo-900 {\n background-color: #1A237E !important;\n color: #ffffff !important;\n}\n.mdui-color-light-blue {\n background-color: #03A9F4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-blue-50 {\n background-color: #E1F5FE !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-blue-100 {\n background-color: #B3E5FC !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-blue-200 {\n background-color: #81D4FA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-blue-300 {\n background-color: #4FC3F7 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-blue-400 {\n background-color: #29B6F6 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-blue-500 {\n background-color: #03A9F4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-blue-600 {\n background-color: #039BE5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-blue-700 {\n background-color: #0288D1 !important;\n color: #ffffff !important;\n}\n.mdui-color-light-blue-800 {\n background-color: #0277BD !important;\n color: #ffffff !important;\n}\n.mdui-color-light-blue-900 {\n background-color: #01579B !important;\n color: #ffffff !important;\n}\n.mdui-color-light-green {\n background-color: #8BC34A !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-green-50 {\n background-color: #F1F8E9 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-green-100 {\n background-color: #DCEDC8 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-green-200 {\n background-color: #C5E1A5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-green-300 {\n background-color: #AED581 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-green-400 {\n background-color: #9CCC65 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-green-500 {\n background-color: #8BC34A !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-green-600 {\n background-color: #7CB342 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-green-700 {\n background-color: #689F38 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-green-800 {\n background-color: #558B2F !important;\n color: #ffffff !important;\n}\n.mdui-color-light-green-900 {\n background-color: #33691E !important;\n color: #ffffff !important;\n}\n.mdui-color-lime {\n background-color: #CDDC39 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-50 {\n background-color: #F9FBE7 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-100 {\n background-color: #F0F4C3 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-200 {\n background-color: #E6EE9C !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-300 {\n background-color: #DCE775 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-400 {\n background-color: #D4E157 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-500 {\n background-color: #CDDC39 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-600 {\n background-color: #C0CA33 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-700 {\n background-color: #AFB42B !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-800 {\n background-color: #9E9D24 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-900 {\n background-color: #827717 !important;\n color: #ffffff !important;\n}\n.mdui-color-orange {\n background-color: #FF9800 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-50 {\n background-color: #FFF3E0 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-100 {\n background-color: #FFE0B2 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-200 {\n background-color: #FFCC80 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-300 {\n background-color: #FFB74D !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-400 {\n background-color: #FFA726 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-500 {\n background-color: #FF9800 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-600 {\n background-color: #FB8C00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-700 {\n background-color: #F57C00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-800 {\n background-color: #EF6C00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-900 {\n background-color: #E65100 !important;\n color: #ffffff !important;\n}\n.mdui-color-pink {\n background-color: #E91E63 !important;\n color: #ffffff !important;\n}\n.mdui-color-pink-50 {\n background-color: #FCE4EC !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-pink-100 {\n background-color: #F8BBD0 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-pink-200 {\n background-color: #F48FB1 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-pink-300 {\n background-color: #F06292 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-pink-400 {\n background-color: #EC407A !important;\n color: #ffffff !important;\n}\n.mdui-color-pink-500 {\n background-color: #E91E63 !important;\n color: #ffffff !important;\n}\n.mdui-color-pink-600 {\n background-color: #D81B60 !important;\n color: #ffffff !important;\n}\n.mdui-color-pink-700 {\n background-color: #C2185B !important;\n color: #ffffff !important;\n}\n.mdui-color-pink-800 {\n background-color: #AD1457 !important;\n color: #ffffff !important;\n}\n.mdui-color-pink-900 {\n background-color: #880E4F !important;\n color: #ffffff !important;\n}\n.mdui-color-purple {\n background-color: #9C27B0 !important;\n color: #ffffff !important;\n}\n.mdui-color-purple-50 {\n background-color: #F3E5F5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-purple-100 {\n background-color: #E1BEE7 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-purple-200 {\n background-color: #CE93D8 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-purple-300 {\n background-color: #BA68C8 !important;\n color: #ffffff !important;\n}\n.mdui-color-purple-400 {\n background-color: #AB47BC !important;\n color: #ffffff !important;\n}\n.mdui-color-purple-500 {\n background-color: #9C27B0 !important;\n color: #ffffff !important;\n}\n.mdui-color-purple-600 {\n background-color: #8E24AA !important;\n color: #ffffff !important;\n}\n.mdui-color-purple-700 {\n background-color: #7B1FA2 !important;\n color: #ffffff !important;\n}\n.mdui-color-purple-800 {\n background-color: #6A1B9A !important;\n color: #ffffff !important;\n}\n.mdui-color-purple-900 {\n background-color: #4A148C !important;\n color: #ffffff !important;\n}\n.mdui-color-red {\n background-color: #F44336 !important;\n color: #ffffff !important;\n}\n.mdui-color-red-50 {\n background-color: #FFEBEE !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-red-100 {\n background-color: #FFCDD2 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-red-200 {\n background-color: #EF9A9A !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-red-300 {\n background-color: #E57373 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-red-400 {\n background-color: #EF5350 !important;\n color: #ffffff !important;\n}\n.mdui-color-red-500 {\n background-color: #F44336 !important;\n color: #ffffff !important;\n}\n.mdui-color-red-600 {\n background-color: #E53935 !important;\n color: #ffffff !important;\n}\n.mdui-color-red-700 {\n background-color: #D32F2F !important;\n color: #ffffff !important;\n}\n.mdui-color-red-800 {\n background-color: #C62828 !important;\n color: #ffffff !important;\n}\n.mdui-color-red-900 {\n background-color: #B71C1C !important;\n color: #ffffff !important;\n}\n.mdui-color-teal {\n background-color: #009688 !important;\n color: #ffffff !important;\n}\n.mdui-color-teal-50 {\n background-color: #E0F2F1 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-teal-100 {\n background-color: #B2DFDB !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-teal-200 {\n background-color: #80CBC4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-teal-300 {\n background-color: #4DB6AC !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-teal-400 {\n background-color: #26A69A !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-teal-500 {\n background-color: #009688 !important;\n color: #ffffff !important;\n}\n.mdui-color-teal-600 {\n background-color: #00897B !important;\n color: #ffffff !important;\n}\n.mdui-color-teal-700 {\n background-color: #00796B !important;\n color: #ffffff !important;\n}\n.mdui-color-teal-800 {\n background-color: #00695C !important;\n color: #ffffff !important;\n}\n.mdui-color-teal-900 {\n background-color: #004D40 !important;\n color: #ffffff !important;\n}\n.mdui-color-yellow {\n background-color: #FFEB3B !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-50 {\n background-color: #FFFDE7 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-100 {\n background-color: #FFF9C4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-200 {\n background-color: #FFF59D !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-300 {\n background-color: #FFF176 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-400 {\n background-color: #FFEE58 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-500 {\n background-color: #FFEB3B !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-600 {\n background-color: #FDD835 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-700 {\n background-color: #FBC02D !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-800 {\n background-color: #F9A825 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-900 {\n background-color: #F57F17 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n/**\n * .mdui-color-[color]-accent\n * .mdui-color-[color]-[degree]\n */\n.mdui-color-amber-accent {\n background-color: #FFD740 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-a100 {\n background-color: #FFE57F !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-a200 {\n background-color: #FFD740 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-a400 {\n background-color: #FFC400 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-amber-a700 {\n background-color: #FFAB00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue-accent {\n background-color: #448AFF !important;\n color: #ffffff !important;\n}\n.mdui-color-blue-a100 {\n background-color: #82B1FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-blue-a200 {\n background-color: #448AFF !important;\n color: #ffffff !important;\n}\n.mdui-color-blue-a400 {\n background-color: #2979FF !important;\n color: #ffffff !important;\n}\n.mdui-color-blue-a700 {\n background-color: #2962FF !important;\n color: #ffffff !important;\n}\n.mdui-color-cyan-accent {\n background-color: #18FFFF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-cyan-a100 {\n background-color: #84FFFF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-cyan-a200 {\n background-color: #18FFFF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-cyan-a400 {\n background-color: #00E5FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-cyan-a700 {\n background-color: #00B8D4 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-orange-accent {\n background-color: #FF6E40 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-orange-a100 {\n background-color: #FF9E80 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-orange-a200 {\n background-color: #FF6E40 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-orange-a400 {\n background-color: #FF3D00 !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-orange-a700 {\n background-color: #DD2C00 !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-purple-accent {\n background-color: #7C4DFF !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-purple-a100 {\n background-color: #B388FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-deep-purple-a200 {\n background-color: #7C4DFF !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-purple-a400 {\n background-color: #651FFF !important;\n color: #ffffff !important;\n}\n.mdui-color-deep-purple-a700 {\n background-color: #6200EA !important;\n color: #ffffff !important;\n}\n.mdui-color-green-accent {\n background-color: #69F0AE !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-green-a100 {\n background-color: #B9F6CA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-green-a200 {\n background-color: #69F0AE !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-green-a400 {\n background-color: #00E676 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-green-a700 {\n background-color: #00C853 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-indigo-accent {\n background-color: #536DFE !important;\n color: #ffffff !important;\n}\n.mdui-color-indigo-a100 {\n background-color: #8C9EFF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-indigo-a200 {\n background-color: #536DFE !important;\n color: #ffffff !important;\n}\n.mdui-color-indigo-a400 {\n background-color: #3D5AFE !important;\n color: #ffffff !important;\n}\n.mdui-color-indigo-a700 {\n background-color: #304FFE !important;\n color: #ffffff !important;\n}\n.mdui-color-light-blue-accent {\n background-color: #40C4FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-blue-a100 {\n background-color: #80D8FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-blue-a200 {\n background-color: #40C4FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-blue-a400 {\n background-color: #00B0FF !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-blue-a700 {\n background-color: #0091EA !important;\n color: #ffffff !important;\n}\n.mdui-color-light-green-accent {\n background-color: #B2FF59 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-green-a100 {\n background-color: #CCFF90 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-green-a200 {\n background-color: #B2FF59 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-green-a400 {\n background-color: #76FF03 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-light-green-a700 {\n background-color: #64DD17 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-accent {\n background-color: #EEFF41 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-a100 {\n background-color: #F4FF81 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-a200 {\n background-color: #EEFF41 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-a400 {\n background-color: #C6FF00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-lime-a700 {\n background-color: #AEEA00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-accent {\n background-color: #FFAB40 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-a100 {\n background-color: #FFD180 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-a200 {\n background-color: #FFAB40 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-a400 {\n background-color: #FF9100 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-orange-a700 {\n background-color: #FF6D00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-pink-accent {\n background-color: #FF4081 !important;\n color: #ffffff !important;\n}\n.mdui-color-pink-a100 {\n background-color: #FF80AB !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-pink-a200 {\n background-color: #FF4081 !important;\n color: #ffffff !important;\n}\n.mdui-color-pink-a400 {\n background-color: #F50057 !important;\n color: #ffffff !important;\n}\n.mdui-color-pink-a700 {\n background-color: #C51162 !important;\n color: #ffffff !important;\n}\n.mdui-color-purple-accent {\n background-color: #E040FB !important;\n color: #ffffff !important;\n}\n.mdui-color-purple-a100 {\n background-color: #EA80FC !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-purple-a200 {\n background-color: #E040FB !important;\n color: #ffffff !important;\n}\n.mdui-color-purple-a400 {\n background-color: #D500F9 !important;\n color: #ffffff !important;\n}\n.mdui-color-purple-a700 {\n background-color: #AA00FF !important;\n color: #ffffff !important;\n}\n.mdui-color-red-accent {\n background-color: #FF5252 !important;\n color: #ffffff !important;\n}\n.mdui-color-red-a100 {\n background-color: #FF8A80 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-red-a200 {\n background-color: #FF5252 !important;\n color: #ffffff !important;\n}\n.mdui-color-red-a400 {\n background-color: #FF1744 !important;\n color: #ffffff !important;\n}\n.mdui-color-red-a700 {\n background-color: #D50000 !important;\n color: #ffffff !important;\n}\n.mdui-color-teal-accent {\n background-color: #64FFDA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-teal-a100 {\n background-color: #A7FFEB !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-teal-a200 {\n background-color: #64FFDA !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-teal-a400 {\n background-color: #1DE9B6 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-teal-a700 {\n background-color: #00BFA5 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-accent {\n background-color: #FFFF00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-a100 {\n background-color: #FFFF8D !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-a200 {\n background-color: #FFFF00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-a400 {\n background-color: #FFEA00 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-color-yellow-a700 {\n background-color: #FFD600 !important;\n color: rgba(0, 0, 0, 0.87) !important;\n}\n/**\n * .mdui-color-black\n * .mdui-color-white\n * .mdui-color-transparent\n */\n.mdui-color-black {\n color: #ffffff !important;\n background-color: #000000 !important;\n}\n.mdui-color-white {\n color: rgba(0, 0, 0, 0.87) !important;\n background-color: #FFFFFF !important;\n}\n.mdui-color-transparent {\n background-color: transparent !important;\n}\n/**\n * .mdui-theme-primary-[color] .mdui-text-color-theme\n * .mdui-theme-primary-[color] .mdui-text-color-theme-[degree]\n */\n.mdui-theme-primary-amber .mdui-text-color-theme {\n color: #FFC107 !important;\n}\n.mdui-theme-primary-amber .mdui-text-color-theme-50 {\n color: #FFF8E1 !important;\n}\n.mdui-theme-primary-amber .mdui-text-color-theme-100 {\n color: #FFECB3 !important;\n}\n.mdui-theme-primary-amber .mdui-text-color-theme-200 {\n color: #FFE082 !important;\n}\n.mdui-theme-primary-amber .mdui-text-color-theme-300 {\n color: #FFD54F !important;\n}\n.mdui-theme-primary-amber .mdui-text-color-theme-400 {\n color: #FFCA28 !important;\n}\n.mdui-theme-primary-amber .mdui-text-color-theme-500 {\n color: #FFC107 !important;\n}\n.mdui-theme-primary-amber .mdui-text-color-theme-600 {\n color: #FFB300 !important;\n}\n.mdui-theme-primary-amber .mdui-text-color-theme-700 {\n color: #FFA000 !important;\n}\n.mdui-theme-primary-amber .mdui-text-color-theme-800 {\n color: #FF8F00 !important;\n}\n.mdui-theme-primary-amber .mdui-text-color-theme-900 {\n color: #FF6F00 !important;\n}\n.mdui-theme-primary-blue .mdui-text-color-theme {\n color: #2196F3 !important;\n}\n.mdui-theme-primary-blue .mdui-text-color-theme-50 {\n color: #E3F2FD !important;\n}\n.mdui-theme-primary-blue .mdui-text-color-theme-100 {\n color: #BBDEFB !important;\n}\n.mdui-theme-primary-blue .mdui-text-color-theme-200 {\n color: #90CAF9 !important;\n}\n.mdui-theme-primary-blue .mdui-text-color-theme-300 {\n color: #64B5F6 !important;\n}\n.mdui-theme-primary-blue .mdui-text-color-theme-400 {\n color: #42A5F5 !important;\n}\n.mdui-theme-primary-blue .mdui-text-color-theme-500 {\n color: #2196F3 !important;\n}\n.mdui-theme-primary-blue .mdui-text-color-theme-600 {\n color: #1E88E5 !important;\n}\n.mdui-theme-primary-blue .mdui-text-color-theme-700 {\n color: #1976D2 !important;\n}\n.mdui-theme-primary-blue .mdui-text-color-theme-800 {\n color: #1565C0 !important;\n}\n.mdui-theme-primary-blue .mdui-text-color-theme-900 {\n color: #0D47A1 !important;\n}\n.mdui-theme-primary-blue-grey .mdui-text-color-theme {\n color: #607D8B !important;\n}\n.mdui-theme-primary-blue-grey .mdui-text-color-theme-50 {\n color: #ECEFF1 !important;\n}\n.mdui-theme-primary-blue-grey .mdui-text-color-theme-100 {\n color: #CFD8DC !important;\n}\n.mdui-theme-primary-blue-grey .mdui-text-color-theme-200 {\n color: #B0BEC5 !important;\n}\n.mdui-theme-primary-blue-grey .mdui-text-color-theme-300 {\n color: #90A4AE !important;\n}\n.mdui-theme-primary-blue-grey .mdui-text-color-theme-400 {\n color: #78909C !important;\n}\n.mdui-theme-primary-blue-grey .mdui-text-color-theme-500 {\n color: #607D8B !important;\n}\n.mdui-theme-primary-blue-grey .mdui-text-color-theme-600 {\n color: #546E7A !important;\n}\n.mdui-theme-primary-blue-grey .mdui-text-color-theme-700 {\n color: #455A64 !important;\n}\n.mdui-theme-primary-blue-grey .mdui-text-color-theme-800 {\n color: #37474F !important;\n}\n.mdui-theme-primary-blue-grey .mdui-text-color-theme-900 {\n color: #263238 !important;\n}\n.mdui-theme-primary-brown .mdui-text-color-theme {\n color: #795548 !important;\n}\n.mdui-theme-primary-brown .mdui-text-color-theme-50 {\n color: #EFEBE9 !important;\n}\n.mdui-theme-primary-brown .mdui-text-color-theme-100 {\n color: #D7CCC8 !important;\n}\n.mdui-theme-primary-brown .mdui-text-color-theme-200 {\n color: #BCAAA4 !important;\n}\n.mdui-theme-primary-brown .mdui-text-color-theme-300 {\n color: #A1887F !important;\n}\n.mdui-theme-primary-brown .mdui-text-color-theme-400 {\n color: #8D6E63 !important;\n}\n.mdui-theme-primary-brown .mdui-text-color-theme-500 {\n color: #795548 !important;\n}\n.mdui-theme-primary-brown .mdui-text-color-theme-600 {\n color: #6D4C41 !important;\n}\n.mdui-theme-primary-brown .mdui-text-color-theme-700 {\n color: #5D4037 !important;\n}\n.mdui-theme-primary-brown .mdui-text-color-theme-800 {\n color: #4E342E !important;\n}\n.mdui-theme-primary-brown .mdui-text-color-theme-900 {\n color: #3E2723 !important;\n}\n.mdui-theme-primary-cyan .mdui-text-color-theme {\n color: #00BCD4 !important;\n}\n.mdui-theme-primary-cyan .mdui-text-color-theme-50 {\n color: #E0F7FA !important;\n}\n.mdui-theme-primary-cyan .mdui-text-color-theme-100 {\n color: #B2EBF2 !important;\n}\n.mdui-theme-primary-cyan .mdui-text-color-theme-200 {\n color: #80DEEA !important;\n}\n.mdui-theme-primary-cyan .mdui-text-color-theme-300 {\n color: #4DD0E1 !important;\n}\n.mdui-theme-primary-cyan .mdui-text-color-theme-400 {\n color: #26C6DA !important;\n}\n.mdui-theme-primary-cyan .mdui-text-color-theme-500 {\n color: #00BCD4 !important;\n}\n.mdui-theme-primary-cyan .mdui-text-color-theme-600 {\n color: #00ACC1 !important;\n}\n.mdui-theme-primary-cyan .mdui-text-color-theme-700 {\n color: #0097A7 !important;\n}\n.mdui-theme-primary-cyan .mdui-text-color-theme-800 {\n color: #00838F !important;\n}\n.mdui-theme-primary-cyan .mdui-text-color-theme-900 {\n color: #006064 !important;\n}\n.mdui-theme-primary-deep-orange .mdui-text-color-theme {\n color: #FF5722 !important;\n}\n.mdui-theme-primary-deep-orange .mdui-text-color-theme-50 {\n color: #FBE9E7 !important;\n}\n.mdui-theme-primary-deep-orange .mdui-text-color-theme-100 {\n color: #FFCCBC !important;\n}\n.mdui-theme-primary-deep-orange .mdui-text-color-theme-200 {\n color: #FFAB91 !important;\n}\n.mdui-theme-primary-deep-orange .mdui-text-color-theme-300 {\n color: #FF8A65 !important;\n}\n.mdui-theme-primary-deep-orange .mdui-text-color-theme-400 {\n color: #FF7043 !important;\n}\n.mdui-theme-primary-deep-orange .mdui-text-color-theme-500 {\n color: #FF5722 !important;\n}\n.mdui-theme-primary-deep-orange .mdui-text-color-theme-600 {\n color: #F4511E !important;\n}\n.mdui-theme-primary-deep-orange .mdui-text-color-theme-700 {\n color: #E64A19 !important;\n}\n.mdui-theme-primary-deep-orange .mdui-text-color-theme-800 {\n color: #D84315 !important;\n}\n.mdui-theme-primary-deep-orange .mdui-text-color-theme-900 {\n color: #BF360C !important;\n}\n.mdui-theme-primary-deep-purple .mdui-text-color-theme {\n color: #673AB7 !important;\n}\n.mdui-theme-primary-deep-purple .mdui-text-color-theme-50 {\n color: #EDE7F6 !important;\n}\n.mdui-theme-primary-deep-purple .mdui-text-color-theme-100 {\n color: #D1C4E9 !important;\n}\n.mdui-theme-primary-deep-purple .mdui-text-color-theme-200 {\n color: #B39DDB !important;\n}\n.mdui-theme-primary-deep-purple .mdui-text-color-theme-300 {\n color: #9575CD !important;\n}\n.mdui-theme-primary-deep-purple .mdui-text-color-theme-400 {\n color: #7E57C2 !important;\n}\n.mdui-theme-primary-deep-purple .mdui-text-color-theme-500 {\n color: #673AB7 !important;\n}\n.mdui-theme-primary-deep-purple .mdui-text-color-theme-600 {\n color: #5E35B1 !important;\n}\n.mdui-theme-primary-deep-purple .mdui-text-color-theme-700 {\n color: #512DA8 !important;\n}\n.mdui-theme-primary-deep-purple .mdui-text-color-theme-800 {\n color: #4527A0 !important;\n}\n.mdui-theme-primary-deep-purple .mdui-text-color-theme-900 {\n color: #311B92 !important;\n}\n.mdui-theme-primary-green .mdui-text-color-theme {\n color: #4CAF50 !important;\n}\n.mdui-theme-primary-green .mdui-text-color-theme-50 {\n color: #E8F5E9 !important;\n}\n.mdui-theme-primary-green .mdui-text-color-theme-100 {\n color: #C8E6C9 !important;\n}\n.mdui-theme-primary-green .mdui-text-color-theme-200 {\n color: #A5D6A7 !important;\n}\n.mdui-theme-primary-green .mdui-text-color-theme-300 {\n color: #81C784 !important;\n}\n.mdui-theme-primary-green .mdui-text-color-theme-400 {\n color: #66BB6A !important;\n}\n.mdui-theme-primary-green .mdui-text-color-theme-500 {\n color: #4CAF50 !important;\n}\n.mdui-theme-primary-green .mdui-text-color-theme-600 {\n color: #43A047 !important;\n}\n.mdui-theme-primary-green .mdui-text-color-theme-700 {\n color: #388E3C !important;\n}\n.mdui-theme-primary-green .mdui-text-color-theme-800 {\n color: #2E7D32 !important;\n}\n.mdui-theme-primary-green .mdui-text-color-theme-900 {\n color: #1B5E20 !important;\n}\n.mdui-theme-primary-grey .mdui-text-color-theme {\n color: #9E9E9E !important;\n}\n.mdui-theme-primary-grey .mdui-text-color-theme-50 {\n color: #FAFAFA !important;\n}\n.mdui-theme-primary-grey .mdui-text-color-theme-100 {\n color: #F5F5F5 !important;\n}\n.mdui-theme-primary-grey .mdui-text-color-theme-200 {\n color: #EEEEEE !important;\n}\n.mdui-theme-primary-grey .mdui-text-color-theme-300 {\n color: #E0E0E0 !important;\n}\n.mdui-theme-primary-grey .mdui-text-color-theme-400 {\n color: #BDBDBD !important;\n}\n.mdui-theme-primary-grey .mdui-text-color-theme-500 {\n color: #9E9E9E !important;\n}\n.mdui-theme-primary-grey .mdui-text-color-theme-600 {\n color: #757575 !important;\n}\n.mdui-theme-primary-grey .mdui-text-color-theme-700 {\n color: #616161 !important;\n}\n.mdui-theme-primary-grey .mdui-text-color-theme-800 {\n color: #424242 !important;\n}\n.mdui-theme-primary-grey .mdui-text-color-theme-900 {\n color: #212121 !important;\n}\n.mdui-theme-primary-indigo .mdui-text-color-theme {\n color: #3F51B5 !important;\n}\n.mdui-theme-primary-indigo .mdui-text-color-theme-50 {\n color: #E8EAF6 !important;\n}\n.mdui-theme-primary-indigo .mdui-text-color-theme-100 {\n color: #C5CAE9 !important;\n}\n.mdui-theme-primary-indigo .mdui-text-color-theme-200 {\n color: #9FA8DA !important;\n}\n.mdui-theme-primary-indigo .mdui-text-color-theme-300 {\n color: #7986CB !important;\n}\n.mdui-theme-primary-indigo .mdui-text-color-theme-400 {\n color: #5C6BC0 !important;\n}\n.mdui-theme-primary-indigo .mdui-text-color-theme-500 {\n color: #3F51B5 !important;\n}\n.mdui-theme-primary-indigo .mdui-text-color-theme-600 {\n color: #3949AB !important;\n}\n.mdui-theme-primary-indigo .mdui-text-color-theme-700 {\n color: #303F9F !important;\n}\n.mdui-theme-primary-indigo .mdui-text-color-theme-800 {\n color: #283593 !important;\n}\n.mdui-theme-primary-indigo .mdui-text-color-theme-900 {\n color: #1A237E !important;\n}\n.mdui-theme-primary-light-blue .mdui-text-color-theme {\n color: #03A9F4 !important;\n}\n.mdui-theme-primary-light-blue .mdui-text-color-theme-50 {\n color: #E1F5FE !important;\n}\n.mdui-theme-primary-light-blue .mdui-text-color-theme-100 {\n color: #B3E5FC !important;\n}\n.mdui-theme-primary-light-blue .mdui-text-color-theme-200 {\n color: #81D4FA !important;\n}\n.mdui-theme-primary-light-blue .mdui-text-color-theme-300 {\n color: #4FC3F7 !important;\n}\n.mdui-theme-primary-light-blue .mdui-text-color-theme-400 {\n color: #29B6F6 !important;\n}\n.mdui-theme-primary-light-blue .mdui-text-color-theme-500 {\n color: #03A9F4 !important;\n}\n.mdui-theme-primary-light-blue .mdui-text-color-theme-600 {\n color: #039BE5 !important;\n}\n.mdui-theme-primary-light-blue .mdui-text-color-theme-700 {\n color: #0288D1 !important;\n}\n.mdui-theme-primary-light-blue .mdui-text-color-theme-800 {\n color: #0277BD !important;\n}\n.mdui-theme-primary-light-blue .mdui-text-color-theme-900 {\n color: #01579B !important;\n}\n.mdui-theme-primary-light-green .mdui-text-color-theme {\n color: #8BC34A !important;\n}\n.mdui-theme-primary-light-green .mdui-text-color-theme-50 {\n color: #F1F8E9 !important;\n}\n.mdui-theme-primary-light-green .mdui-text-color-theme-100 {\n color: #DCEDC8 !important;\n}\n.mdui-theme-primary-light-green .mdui-text-color-theme-200 {\n color: #C5E1A5 !important;\n}\n.mdui-theme-primary-light-green .mdui-text-color-theme-300 {\n color: #AED581 !important;\n}\n.mdui-theme-primary-light-green .mdui-text-color-theme-400 {\n color: #9CCC65 !important;\n}\n.mdui-theme-primary-light-green .mdui-text-color-theme-500 {\n color: #8BC34A !important;\n}\n.mdui-theme-primary-light-green .mdui-text-color-theme-600 {\n color: #7CB342 !important;\n}\n.mdui-theme-primary-light-green .mdui-text-color-theme-700 {\n color: #689F38 !important;\n}\n.mdui-theme-primary-light-green .mdui-text-color-theme-800 {\n color: #558B2F !important;\n}\n.mdui-theme-primary-light-green .mdui-text-color-theme-900 {\n color: #33691E !important;\n}\n.mdui-theme-primary-lime .mdui-text-color-theme {\n color: #CDDC39 !important;\n}\n.mdui-theme-primary-lime .mdui-text-color-theme-50 {\n color: #F9FBE7 !important;\n}\n.mdui-theme-primary-lime .mdui-text-color-theme-100 {\n color: #F0F4C3 !important;\n}\n.mdui-theme-primary-lime .mdui-text-color-theme-200 {\n color: #E6EE9C !important;\n}\n.mdui-theme-primary-lime .mdui-text-color-theme-300 {\n color: #DCE775 !important;\n}\n.mdui-theme-primary-lime .mdui-text-color-theme-400 {\n color: #D4E157 !important;\n}\n.mdui-theme-primary-lime .mdui-text-color-theme-500 {\n color: #CDDC39 !important;\n}\n.mdui-theme-primary-lime .mdui-text-color-theme-600 {\n color: #C0CA33 !important;\n}\n.mdui-theme-primary-lime .mdui-text-color-theme-700 {\n color: #AFB42B !important;\n}\n.mdui-theme-primary-lime .mdui-text-color-theme-800 {\n color: #9E9D24 !important;\n}\n.mdui-theme-primary-lime .mdui-text-color-theme-900 {\n color: #827717 !important;\n}\n.mdui-theme-primary-orange .mdui-text-color-theme {\n color: #FF9800 !important;\n}\n.mdui-theme-primary-orange .mdui-text-color-theme-50 {\n color: #FFF3E0 !important;\n}\n.mdui-theme-primary-orange .mdui-text-color-theme-100 {\n color: #FFE0B2 !important;\n}\n.mdui-theme-primary-orange .mdui-text-color-theme-200 {\n color: #FFCC80 !important;\n}\n.mdui-theme-primary-orange .mdui-text-color-theme-300 {\n color: #FFB74D !important;\n}\n.mdui-theme-primary-orange .mdui-text-color-theme-400 {\n color: #FFA726 !important;\n}\n.mdui-theme-primary-orange .mdui-text-color-theme-500 {\n color: #FF9800 !important;\n}\n.mdui-theme-primary-orange .mdui-text-color-theme-600 {\n color: #FB8C00 !important;\n}\n.mdui-theme-primary-orange .mdui-text-color-theme-700 {\n color: #F57C00 !important;\n}\n.mdui-theme-primary-orange .mdui-text-color-theme-800 {\n color: #EF6C00 !important;\n}\n.mdui-theme-primary-orange .mdui-text-color-theme-900 {\n color: #E65100 !important;\n}\n.mdui-theme-primary-pink .mdui-text-color-theme {\n color: #E91E63 !important;\n}\n.mdui-theme-primary-pink .mdui-text-color-theme-50 {\n color: #FCE4EC !important;\n}\n.mdui-theme-primary-pink .mdui-text-color-theme-100 {\n color: #F8BBD0 !important;\n}\n.mdui-theme-primary-pink .mdui-text-color-theme-200 {\n color: #F48FB1 !important;\n}\n.mdui-theme-primary-pink .mdui-text-color-theme-300 {\n color: #F06292 !important;\n}\n.mdui-theme-primary-pink .mdui-text-color-theme-400 {\n color: #EC407A !important;\n}\n.mdui-theme-primary-pink .mdui-text-color-theme-500 {\n color: #E91E63 !important;\n}\n.mdui-theme-primary-pink .mdui-text-color-theme-600 {\n color: #D81B60 !important;\n}\n.mdui-theme-primary-pink .mdui-text-color-theme-700 {\n color: #C2185B !important;\n}\n.mdui-theme-primary-pink .mdui-text-color-theme-800 {\n color: #AD1457 !important;\n}\n.mdui-theme-primary-pink .mdui-text-color-theme-900 {\n color: #880E4F !important;\n}\n.mdui-theme-primary-purple .mdui-text-color-theme {\n color: #9C27B0 !important;\n}\n.mdui-theme-primary-purple .mdui-text-color-theme-50 {\n color: #F3E5F5 !important;\n}\n.mdui-theme-primary-purple .mdui-text-color-theme-100 {\n color: #E1BEE7 !important;\n}\n.mdui-theme-primary-purple .mdui-text-color-theme-200 {\n color: #CE93D8 !important;\n}\n.mdui-theme-primary-purple .mdui-text-color-theme-300 {\n color: #BA68C8 !important;\n}\n.mdui-theme-primary-purple .mdui-text-color-theme-400 {\n color: #AB47BC !important;\n}\n.mdui-theme-primary-purple .mdui-text-color-theme-500 {\n color: #9C27B0 !important;\n}\n.mdui-theme-primary-purple .mdui-text-color-theme-600 {\n color: #8E24AA !important;\n}\n.mdui-theme-primary-purple .mdui-text-color-theme-700 {\n color: #7B1FA2 !important;\n}\n.mdui-theme-primary-purple .mdui-text-color-theme-800 {\n color: #6A1B9A !important;\n}\n.mdui-theme-primary-purple .mdui-text-color-theme-900 {\n color: #4A148C !important;\n}\n.mdui-theme-primary-red .mdui-text-color-theme {\n color: #F44336 !important;\n}\n.mdui-theme-primary-red .mdui-text-color-theme-50 {\n color: #FFEBEE !important;\n}\n.mdui-theme-primary-red .mdui-text-color-theme-100 {\n color: #FFCDD2 !important;\n}\n.mdui-theme-primary-red .mdui-text-color-theme-200 {\n color: #EF9A9A !important;\n}\n.mdui-theme-primary-red .mdui-text-color-theme-300 {\n color: #E57373 !important;\n}\n.mdui-theme-primary-red .mdui-text-color-theme-400 {\n color: #EF5350 !important;\n}\n.mdui-theme-primary-red .mdui-text-color-theme-500 {\n color: #F44336 !important;\n}\n.mdui-theme-primary-red .mdui-text-color-theme-600 {\n color: #E53935 !important;\n}\n.mdui-theme-primary-red .mdui-text-color-theme-700 {\n color: #D32F2F !important;\n}\n.mdui-theme-primary-red .mdui-text-color-theme-800 {\n color: #C62828 !important;\n}\n.mdui-theme-primary-red .mdui-text-color-theme-900 {\n color: #B71C1C !important;\n}\n.mdui-theme-primary-teal .mdui-text-color-theme {\n color: #009688 !important;\n}\n.mdui-theme-primary-teal .mdui-text-color-theme-50 {\n color: #E0F2F1 !important;\n}\n.mdui-theme-primary-teal .mdui-text-color-theme-100 {\n color: #B2DFDB !important;\n}\n.mdui-theme-primary-teal .mdui-text-color-theme-200 {\n color: #80CBC4 !important;\n}\n.mdui-theme-primary-teal .mdui-text-color-theme-300 {\n color: #4DB6AC !important;\n}\n.mdui-theme-primary-teal .mdui-text-color-theme-400 {\n color: #26A69A !important;\n}\n.mdui-theme-primary-teal .mdui-text-color-theme-500 {\n color: #009688 !important;\n}\n.mdui-theme-primary-teal .mdui-text-color-theme-600 {\n color: #00897B !important;\n}\n.mdui-theme-primary-teal .mdui-text-color-theme-700 {\n color: #00796B !important;\n}\n.mdui-theme-primary-teal .mdui-text-color-theme-800 {\n color: #00695C !important;\n}\n.mdui-theme-primary-teal .mdui-text-color-theme-900 {\n color: #004D40 !important;\n}\n.mdui-theme-primary-yellow .mdui-text-color-theme {\n color: #FFEB3B !important;\n}\n.mdui-theme-primary-yellow .mdui-text-color-theme-50 {\n color: #FFFDE7 !important;\n}\n.mdui-theme-primary-yellow .mdui-text-color-theme-100 {\n color: #FFF9C4 !important;\n}\n.mdui-theme-primary-yellow .mdui-text-color-theme-200 {\n color: #FFF59D !important;\n}\n.mdui-theme-primary-yellow .mdui-text-color-theme-300 {\n color: #FFF176 !important;\n}\n.mdui-theme-primary-yellow .mdui-text-color-theme-400 {\n color: #FFEE58 !important;\n}\n.mdui-theme-primary-yellow .mdui-text-color-theme-500 {\n color: #FFEB3B !important;\n}\n.mdui-theme-primary-yellow .mdui-text-color-theme-600 {\n color: #FDD835 !important;\n}\n.mdui-theme-primary-yellow .mdui-text-color-theme-700 {\n color: #FBC02D !important;\n}\n.mdui-theme-primary-yellow .mdui-text-color-theme-800 {\n color: #F9A825 !important;\n}\n.mdui-theme-primary-yellow .mdui-text-color-theme-900 {\n color: #F57F17 !important;\n}\n/**\n * .mdui-theme-accent-[color] .mdui-text-color-theme-accent\n * .mdui-theme-accent-[color] .mdui-text-color-theme-[degree]\n */\n.mdui-theme-accent-amber .mdui-text-color-theme-accent {\n color: #FFD740 !important;\n}\n.mdui-theme-accent-amber .mdui-text-color-theme-a100 {\n color: #FFE57F !important;\n}\n.mdui-theme-accent-amber .mdui-text-color-theme-a200 {\n color: #FFD740 !important;\n}\n.mdui-theme-accent-amber .mdui-text-color-theme-a400 {\n color: #FFC400 !important;\n}\n.mdui-theme-accent-amber .mdui-text-color-theme-a700 {\n color: #FFAB00 !important;\n}\n.mdui-theme-accent-blue .mdui-text-color-theme-accent {\n color: #448AFF !important;\n}\n.mdui-theme-accent-blue .mdui-text-color-theme-a100 {\n color: #82B1FF !important;\n}\n.mdui-theme-accent-blue .mdui-text-color-theme-a200 {\n color: #448AFF !important;\n}\n.mdui-theme-accent-blue .mdui-text-color-theme-a400 {\n color: #2979FF !important;\n}\n.mdui-theme-accent-blue .mdui-text-color-theme-a700 {\n color: #2962FF !important;\n}\n.mdui-theme-accent-cyan .mdui-text-color-theme-accent {\n color: #18FFFF !important;\n}\n.mdui-theme-accent-cyan .mdui-text-color-theme-a100 {\n color: #84FFFF !important;\n}\n.mdui-theme-accent-cyan .mdui-text-color-theme-a200 {\n color: #18FFFF !important;\n}\n.mdui-theme-accent-cyan .mdui-text-color-theme-a400 {\n color: #00E5FF !important;\n}\n.mdui-theme-accent-cyan .mdui-text-color-theme-a700 {\n color: #00B8D4 !important;\n}\n.mdui-theme-accent-deep-orange .mdui-text-color-theme-accent {\n color: #FF6E40 !important;\n}\n.mdui-theme-accent-deep-orange .mdui-text-color-theme-a100 {\n color: #FF9E80 !important;\n}\n.mdui-theme-accent-deep-orange .mdui-text-color-theme-a200 {\n color: #FF6E40 !important;\n}\n.mdui-theme-accent-deep-orange .mdui-text-color-theme-a400 {\n color: #FF3D00 !important;\n}\n.mdui-theme-accent-deep-orange .mdui-text-color-theme-a700 {\n color: #DD2C00 !important;\n}\n.mdui-theme-accent-deep-purple .mdui-text-color-theme-accent {\n color: #7C4DFF !important;\n}\n.mdui-theme-accent-deep-purple .mdui-text-color-theme-a100 {\n color: #B388FF !important;\n}\n.mdui-theme-accent-deep-purple .mdui-text-color-theme-a200 {\n color: #7C4DFF !important;\n}\n.mdui-theme-accent-deep-purple .mdui-text-color-theme-a400 {\n color: #651FFF !important;\n}\n.mdui-theme-accent-deep-purple .mdui-text-color-theme-a700 {\n color: #6200EA !important;\n}\n.mdui-theme-accent-green .mdui-text-color-theme-accent {\n color: #69F0AE !important;\n}\n.mdui-theme-accent-green .mdui-text-color-theme-a100 {\n color: #B9F6CA !important;\n}\n.mdui-theme-accent-green .mdui-text-color-theme-a200 {\n color: #69F0AE !important;\n}\n.mdui-theme-accent-green .mdui-text-color-theme-a400 {\n color: #00E676 !important;\n}\n.mdui-theme-accent-green .mdui-text-color-theme-a700 {\n color: #00C853 !important;\n}\n.mdui-theme-accent-indigo .mdui-text-color-theme-accent {\n color: #536DFE !important;\n}\n.mdui-theme-accent-indigo .mdui-text-color-theme-a100 {\n color: #8C9EFF !important;\n}\n.mdui-theme-accent-indigo .mdui-text-color-theme-a200 {\n color: #536DFE !important;\n}\n.mdui-theme-accent-indigo .mdui-text-color-theme-a400 {\n color: #3D5AFE !important;\n}\n.mdui-theme-accent-indigo .mdui-text-color-theme-a700 {\n color: #304FFE !important;\n}\n.mdui-theme-accent-light-blue .mdui-text-color-theme-accent {\n color: #40C4FF !important;\n}\n.mdui-theme-accent-light-blue .mdui-text-color-theme-a100 {\n color: #80D8FF !important;\n}\n.mdui-theme-accent-light-blue .mdui-text-color-theme-a200 {\n color: #40C4FF !important;\n}\n.mdui-theme-accent-light-blue .mdui-text-color-theme-a400 {\n color: #00B0FF !important;\n}\n.mdui-theme-accent-light-blue .mdui-text-color-theme-a700 {\n color: #0091EA !important;\n}\n.mdui-theme-accent-light-green .mdui-text-color-theme-accent {\n color: #B2FF59 !important;\n}\n.mdui-theme-accent-light-green .mdui-text-color-theme-a100 {\n color: #CCFF90 !important;\n}\n.mdui-theme-accent-light-green .mdui-text-color-theme-a200 {\n color: #B2FF59 !important;\n}\n.mdui-theme-accent-light-green .mdui-text-color-theme-a400 {\n color: #76FF03 !important;\n}\n.mdui-theme-accent-light-green .mdui-text-color-theme-a700 {\n color: #64DD17 !important;\n}\n.mdui-theme-accent-lime .mdui-text-color-theme-accent {\n color: #EEFF41 !important;\n}\n.mdui-theme-accent-lime .mdui-text-color-theme-a100 {\n color: #F4FF81 !important;\n}\n.mdui-theme-accent-lime .mdui-text-color-theme-a200 {\n color: #EEFF41 !important;\n}\n.mdui-theme-accent-lime .mdui-text-color-theme-a400 {\n color: #C6FF00 !important;\n}\n.mdui-theme-accent-lime .mdui-text-color-theme-a700 {\n color: #AEEA00 !important;\n}\n.mdui-theme-accent-orange .mdui-text-color-theme-accent {\n color: #FFAB40 !important;\n}\n.mdui-theme-accent-orange .mdui-text-color-theme-a100 {\n color: #FFD180 !important;\n}\n.mdui-theme-accent-orange .mdui-text-color-theme-a200 {\n color: #FFAB40 !important;\n}\n.mdui-theme-accent-orange .mdui-text-color-theme-a400 {\n color: #FF9100 !important;\n}\n.mdui-theme-accent-orange .mdui-text-color-theme-a700 {\n color: #FF6D00 !important;\n}\n.mdui-theme-accent-pink .mdui-text-color-theme-accent {\n color: #FF4081 !important;\n}\n.mdui-theme-accent-pink .mdui-text-color-theme-a100 {\n color: #FF80AB !important;\n}\n.mdui-theme-accent-pink .mdui-text-color-theme-a200 {\n color: #FF4081 !important;\n}\n.mdui-theme-accent-pink .mdui-text-color-theme-a400 {\n color: #F50057 !important;\n}\n.mdui-theme-accent-pink .mdui-text-color-theme-a700 {\n color: #C51162 !important;\n}\n.mdui-theme-accent-purple .mdui-text-color-theme-accent {\n color: #E040FB !important;\n}\n.mdui-theme-accent-purple .mdui-text-color-theme-a100 {\n color: #EA80FC !important;\n}\n.mdui-theme-accent-purple .mdui-text-color-theme-a200 {\n color: #E040FB !important;\n}\n.mdui-theme-accent-purple .mdui-text-color-theme-a400 {\n color: #D500F9 !important;\n}\n.mdui-theme-accent-purple .mdui-text-color-theme-a700 {\n color: #AA00FF !important;\n}\n.mdui-theme-accent-red .mdui-text-color-theme-accent {\n color: #FF5252 !important;\n}\n.mdui-theme-accent-red .mdui-text-color-theme-a100 {\n color: #FF8A80 !important;\n}\n.mdui-theme-accent-red .mdui-text-color-theme-a200 {\n color: #FF5252 !important;\n}\n.mdui-theme-accent-red .mdui-text-color-theme-a400 {\n color: #FF1744 !important;\n}\n.mdui-theme-accent-red .mdui-text-color-theme-a700 {\n color: #D50000 !important;\n}\n.mdui-theme-accent-teal .mdui-text-color-theme-accent {\n color: #64FFDA !important;\n}\n.mdui-theme-accent-teal .mdui-text-color-theme-a100 {\n color: #A7FFEB !important;\n}\n.mdui-theme-accent-teal .mdui-text-color-theme-a200 {\n color: #64FFDA !important;\n}\n.mdui-theme-accent-teal .mdui-text-color-theme-a400 {\n color: #1DE9B6 !important;\n}\n.mdui-theme-accent-teal .mdui-text-color-theme-a700 {\n color: #00BFA5 !important;\n}\n.mdui-theme-accent-yellow .mdui-text-color-theme-accent {\n color: #FFFF00 !important;\n}\n.mdui-theme-accent-yellow .mdui-text-color-theme-a100 {\n color: #FFFF8D !important;\n}\n.mdui-theme-accent-yellow .mdui-text-color-theme-a200 {\n color: #FFFF00 !important;\n}\n.mdui-theme-accent-yellow .mdui-text-color-theme-a400 {\n color: #FFEA00 !important;\n}\n.mdui-theme-accent-yellow .mdui-text-color-theme-a700 {\n color: #FFD600 !important;\n}\n/**\n * .mdui-text-color-[color]\n * .mdui-text-color-[color]-[degree]\n */\n.mdui-text-color-amber {\n color: #FFC107 !important;\n}\n.mdui-text-color-amber-50 {\n color: #FFF8E1 !important;\n}\n.mdui-text-color-amber-100 {\n color: #FFECB3 !important;\n}\n.mdui-text-color-amber-200 {\n color: #FFE082 !important;\n}\n.mdui-text-color-amber-300 {\n color: #FFD54F !important;\n}\n.mdui-text-color-amber-400 {\n color: #FFCA28 !important;\n}\n.mdui-text-color-amber-500 {\n color: #FFC107 !important;\n}\n.mdui-text-color-amber-600 {\n color: #FFB300 !important;\n}\n.mdui-text-color-amber-700 {\n color: #FFA000 !important;\n}\n.mdui-text-color-amber-800 {\n color: #FF8F00 !important;\n}\n.mdui-text-color-amber-900 {\n color: #FF6F00 !important;\n}\n.mdui-text-color-blue {\n color: #2196F3 !important;\n}\n.mdui-text-color-blue-50 {\n color: #E3F2FD !important;\n}\n.mdui-text-color-blue-100 {\n color: #BBDEFB !important;\n}\n.mdui-text-color-blue-200 {\n color: #90CAF9 !important;\n}\n.mdui-text-color-blue-300 {\n color: #64B5F6 !important;\n}\n.mdui-text-color-blue-400 {\n color: #42A5F5 !important;\n}\n.mdui-text-color-blue-500 {\n color: #2196F3 !important;\n}\n.mdui-text-color-blue-600 {\n color: #1E88E5 !important;\n}\n.mdui-text-color-blue-700 {\n color: #1976D2 !important;\n}\n.mdui-text-color-blue-800 {\n color: #1565C0 !important;\n}\n.mdui-text-color-blue-900 {\n color: #0D47A1 !important;\n}\n.mdui-text-color-blue-grey {\n color: #607D8B !important;\n}\n.mdui-text-color-blue-grey-50 {\n color: #ECEFF1 !important;\n}\n.mdui-text-color-blue-grey-100 {\n color: #CFD8DC !important;\n}\n.mdui-text-color-blue-grey-200 {\n color: #B0BEC5 !important;\n}\n.mdui-text-color-blue-grey-300 {\n color: #90A4AE !important;\n}\n.mdui-text-color-blue-grey-400 {\n color: #78909C !important;\n}\n.mdui-text-color-blue-grey-500 {\n color: #607D8B !important;\n}\n.mdui-text-color-blue-grey-600 {\n color: #546E7A !important;\n}\n.mdui-text-color-blue-grey-700 {\n color: #455A64 !important;\n}\n.mdui-text-color-blue-grey-800 {\n color: #37474F !important;\n}\n.mdui-text-color-blue-grey-900 {\n color: #263238 !important;\n}\n.mdui-text-color-brown {\n color: #795548 !important;\n}\n.mdui-text-color-brown-50 {\n color: #EFEBE9 !important;\n}\n.mdui-text-color-brown-100 {\n color: #D7CCC8 !important;\n}\n.mdui-text-color-brown-200 {\n color: #BCAAA4 !important;\n}\n.mdui-text-color-brown-300 {\n color: #A1887F !important;\n}\n.mdui-text-color-brown-400 {\n color: #8D6E63 !important;\n}\n.mdui-text-color-brown-500 {\n color: #795548 !important;\n}\n.mdui-text-color-brown-600 {\n color: #6D4C41 !important;\n}\n.mdui-text-color-brown-700 {\n color: #5D4037 !important;\n}\n.mdui-text-color-brown-800 {\n color: #4E342E !important;\n}\n.mdui-text-color-brown-900 {\n color: #3E2723 !important;\n}\n.mdui-text-color-cyan {\n color: #00BCD4 !important;\n}\n.mdui-text-color-cyan-50 {\n color: #E0F7FA !important;\n}\n.mdui-text-color-cyan-100 {\n color: #B2EBF2 !important;\n}\n.mdui-text-color-cyan-200 {\n color: #80DEEA !important;\n}\n.mdui-text-color-cyan-300 {\n color: #4DD0E1 !important;\n}\n.mdui-text-color-cyan-400 {\n color: #26C6DA !important;\n}\n.mdui-text-color-cyan-500 {\n color: #00BCD4 !important;\n}\n.mdui-text-color-cyan-600 {\n color: #00ACC1 !important;\n}\n.mdui-text-color-cyan-700 {\n color: #0097A7 !important;\n}\n.mdui-text-color-cyan-800 {\n color: #00838F !important;\n}\n.mdui-text-color-cyan-900 {\n color: #006064 !important;\n}\n.mdui-text-color-deep-orange {\n color: #FF5722 !important;\n}\n.mdui-text-color-deep-orange-50 {\n color: #FBE9E7 !important;\n}\n.mdui-text-color-deep-orange-100 {\n color: #FFCCBC !important;\n}\n.mdui-text-color-deep-orange-200 {\n color: #FFAB91 !important;\n}\n.mdui-text-color-deep-orange-300 {\n color: #FF8A65 !important;\n}\n.mdui-text-color-deep-orange-400 {\n color: #FF7043 !important;\n}\n.mdui-text-color-deep-orange-500 {\n color: #FF5722 !important;\n}\n.mdui-text-color-deep-orange-600 {\n color: #F4511E !important;\n}\n.mdui-text-color-deep-orange-700 {\n color: #E64A19 !important;\n}\n.mdui-text-color-deep-orange-800 {\n color: #D84315 !important;\n}\n.mdui-text-color-deep-orange-900 {\n color: #BF360C !important;\n}\n.mdui-text-color-deep-purple {\n color: #673AB7 !important;\n}\n.mdui-text-color-deep-purple-50 {\n color: #EDE7F6 !important;\n}\n.mdui-text-color-deep-purple-100 {\n color: #D1C4E9 !important;\n}\n.mdui-text-color-deep-purple-200 {\n color: #B39DDB !important;\n}\n.mdui-text-color-deep-purple-300 {\n color: #9575CD !important;\n}\n.mdui-text-color-deep-purple-400 {\n color: #7E57C2 !important;\n}\n.mdui-text-color-deep-purple-500 {\n color: #673AB7 !important;\n}\n.mdui-text-color-deep-purple-600 {\n color: #5E35B1 !important;\n}\n.mdui-text-color-deep-purple-700 {\n color: #512DA8 !important;\n}\n.mdui-text-color-deep-purple-800 {\n color: #4527A0 !important;\n}\n.mdui-text-color-deep-purple-900 {\n color: #311B92 !important;\n}\n.mdui-text-color-green {\n color: #4CAF50 !important;\n}\n.mdui-text-color-green-50 {\n color: #E8F5E9 !important;\n}\n.mdui-text-color-green-100 {\n color: #C8E6C9 !important;\n}\n.mdui-text-color-green-200 {\n color: #A5D6A7 !important;\n}\n.mdui-text-color-green-300 {\n color: #81C784 !important;\n}\n.mdui-text-color-green-400 {\n color: #66BB6A !important;\n}\n.mdui-text-color-green-500 {\n color: #4CAF50 !important;\n}\n.mdui-text-color-green-600 {\n color: #43A047 !important;\n}\n.mdui-text-color-green-700 {\n color: #388E3C !important;\n}\n.mdui-text-color-green-800 {\n color: #2E7D32 !important;\n}\n.mdui-text-color-green-900 {\n color: #1B5E20 !important;\n}\n.mdui-text-color-grey {\n color: #9E9E9E !important;\n}\n.mdui-text-color-grey-50 {\n color: #FAFAFA !important;\n}\n.mdui-text-color-grey-100 {\n color: #F5F5F5 !important;\n}\n.mdui-text-color-grey-200 {\n color: #EEEEEE !important;\n}\n.mdui-text-color-grey-300 {\n color: #E0E0E0 !important;\n}\n.mdui-text-color-grey-400 {\n color: #BDBDBD !important;\n}\n.mdui-text-color-grey-500 {\n color: #9E9E9E !important;\n}\n.mdui-text-color-grey-600 {\n color: #757575 !important;\n}\n.mdui-text-color-grey-700 {\n color: #616161 !important;\n}\n.mdui-text-color-grey-800 {\n color: #424242 !important;\n}\n.mdui-text-color-grey-900 {\n color: #212121 !important;\n}\n.mdui-text-color-indigo {\n color: #3F51B5 !important;\n}\n.mdui-text-color-indigo-50 {\n color: #E8EAF6 !important;\n}\n.mdui-text-color-indigo-100 {\n color: #C5CAE9 !important;\n}\n.mdui-text-color-indigo-200 {\n color: #9FA8DA !important;\n}\n.mdui-text-color-indigo-300 {\n color: #7986CB !important;\n}\n.mdui-text-color-indigo-400 {\n color: #5C6BC0 !important;\n}\n.mdui-text-color-indigo-500 {\n color: #3F51B5 !important;\n}\n.mdui-text-color-indigo-600 {\n color: #3949AB !important;\n}\n.mdui-text-color-indigo-700 {\n color: #303F9F !important;\n}\n.mdui-text-color-indigo-800 {\n color: #283593 !important;\n}\n.mdui-text-color-indigo-900 {\n color: #1A237E !important;\n}\n.mdui-text-color-light-blue {\n color: #03A9F4 !important;\n}\n.mdui-text-color-light-blue-50 {\n color: #E1F5FE !important;\n}\n.mdui-text-color-light-blue-100 {\n color: #B3E5FC !important;\n}\n.mdui-text-color-light-blue-200 {\n color: #81D4FA !important;\n}\n.mdui-text-color-light-blue-300 {\n color: #4FC3F7 !important;\n}\n.mdui-text-color-light-blue-400 {\n color: #29B6F6 !important;\n}\n.mdui-text-color-light-blue-500 {\n color: #03A9F4 !important;\n}\n.mdui-text-color-light-blue-600 {\n color: #039BE5 !important;\n}\n.mdui-text-color-light-blue-700 {\n color: #0288D1 !important;\n}\n.mdui-text-color-light-blue-800 {\n color: #0277BD !important;\n}\n.mdui-text-color-light-blue-900 {\n color: #01579B !important;\n}\n.mdui-text-color-light-green {\n color: #8BC34A !important;\n}\n.mdui-text-color-light-green-50 {\n color: #F1F8E9 !important;\n}\n.mdui-text-color-light-green-100 {\n color: #DCEDC8 !important;\n}\n.mdui-text-color-light-green-200 {\n color: #C5E1A5 !important;\n}\n.mdui-text-color-light-green-300 {\n color: #AED581 !important;\n}\n.mdui-text-color-light-green-400 {\n color: #9CCC65 !important;\n}\n.mdui-text-color-light-green-500 {\n color: #8BC34A !important;\n}\n.mdui-text-color-light-green-600 {\n color: #7CB342 !important;\n}\n.mdui-text-color-light-green-700 {\n color: #689F38 !important;\n}\n.mdui-text-color-light-green-800 {\n color: #558B2F !important;\n}\n.mdui-text-color-light-green-900 {\n color: #33691E !important;\n}\n.mdui-text-color-lime {\n color: #CDDC39 !important;\n}\n.mdui-text-color-lime-50 {\n color: #F9FBE7 !important;\n}\n.mdui-text-color-lime-100 {\n color: #F0F4C3 !important;\n}\n.mdui-text-color-lime-200 {\n color: #E6EE9C !important;\n}\n.mdui-text-color-lime-300 {\n color: #DCE775 !important;\n}\n.mdui-text-color-lime-400 {\n color: #D4E157 !important;\n}\n.mdui-text-color-lime-500 {\n color: #CDDC39 !important;\n}\n.mdui-text-color-lime-600 {\n color: #C0CA33 !important;\n}\n.mdui-text-color-lime-700 {\n color: #AFB42B !important;\n}\n.mdui-text-color-lime-800 {\n color: #9E9D24 !important;\n}\n.mdui-text-color-lime-900 {\n color: #827717 !important;\n}\n.mdui-text-color-orange {\n color: #FF9800 !important;\n}\n.mdui-text-color-orange-50 {\n color: #FFF3E0 !important;\n}\n.mdui-text-color-orange-100 {\n color: #FFE0B2 !important;\n}\n.mdui-text-color-orange-200 {\n color: #FFCC80 !important;\n}\n.mdui-text-color-orange-300 {\n color: #FFB74D !important;\n}\n.mdui-text-color-orange-400 {\n color: #FFA726 !important;\n}\n.mdui-text-color-orange-500 {\n color: #FF9800 !important;\n}\n.mdui-text-color-orange-600 {\n color: #FB8C00 !important;\n}\n.mdui-text-color-orange-700 {\n color: #F57C00 !important;\n}\n.mdui-text-color-orange-800 {\n color: #EF6C00 !important;\n}\n.mdui-text-color-orange-900 {\n color: #E65100 !important;\n}\n.mdui-text-color-pink {\n color: #E91E63 !important;\n}\n.mdui-text-color-pink-50 {\n color: #FCE4EC !important;\n}\n.mdui-text-color-pink-100 {\n color: #F8BBD0 !important;\n}\n.mdui-text-color-pink-200 {\n color: #F48FB1 !important;\n}\n.mdui-text-color-pink-300 {\n color: #F06292 !important;\n}\n.mdui-text-color-pink-400 {\n color: #EC407A !important;\n}\n.mdui-text-color-pink-500 {\n color: #E91E63 !important;\n}\n.mdui-text-color-pink-600 {\n color: #D81B60 !important;\n}\n.mdui-text-color-pink-700 {\n color: #C2185B !important;\n}\n.mdui-text-color-pink-800 {\n color: #AD1457 !important;\n}\n.mdui-text-color-pink-900 {\n color: #880E4F !important;\n}\n.mdui-text-color-purple {\n color: #9C27B0 !important;\n}\n.mdui-text-color-purple-50 {\n color: #F3E5F5 !important;\n}\n.mdui-text-color-purple-100 {\n color: #E1BEE7 !important;\n}\n.mdui-text-color-purple-200 {\n color: #CE93D8 !important;\n}\n.mdui-text-color-purple-300 {\n color: #BA68C8 !important;\n}\n.mdui-text-color-purple-400 {\n color: #AB47BC !important;\n}\n.mdui-text-color-purple-500 {\n color: #9C27B0 !important;\n}\n.mdui-text-color-purple-600 {\n color: #8E24AA !important;\n}\n.mdui-text-color-purple-700 {\n color: #7B1FA2 !important;\n}\n.mdui-text-color-purple-800 {\n color: #6A1B9A !important;\n}\n.mdui-text-color-purple-900 {\n color: #4A148C !important;\n}\n.mdui-text-color-red {\n color: #F44336 !important;\n}\n.mdui-text-color-red-50 {\n color: #FFEBEE !important;\n}\n.mdui-text-color-red-100 {\n color: #FFCDD2 !important;\n}\n.mdui-text-color-red-200 {\n color: #EF9A9A !important;\n}\n.mdui-text-color-red-300 {\n color: #E57373 !important;\n}\n.mdui-text-color-red-400 {\n color: #EF5350 !important;\n}\n.mdui-text-color-red-500 {\n color: #F44336 !important;\n}\n.mdui-text-color-red-600 {\n color: #E53935 !important;\n}\n.mdui-text-color-red-700 {\n color: #D32F2F !important;\n}\n.mdui-text-color-red-800 {\n color: #C62828 !important;\n}\n.mdui-text-color-red-900 {\n color: #B71C1C !important;\n}\n.mdui-text-color-teal {\n color: #009688 !important;\n}\n.mdui-text-color-teal-50 {\n color: #E0F2F1 !important;\n}\n.mdui-text-color-teal-100 {\n color: #B2DFDB !important;\n}\n.mdui-text-color-teal-200 {\n color: #80CBC4 !important;\n}\n.mdui-text-color-teal-300 {\n color: #4DB6AC !important;\n}\n.mdui-text-color-teal-400 {\n color: #26A69A !important;\n}\n.mdui-text-color-teal-500 {\n color: #009688 !important;\n}\n.mdui-text-color-teal-600 {\n color: #00897B !important;\n}\n.mdui-text-color-teal-700 {\n color: #00796B !important;\n}\n.mdui-text-color-teal-800 {\n color: #00695C !important;\n}\n.mdui-text-color-teal-900 {\n color: #004D40 !important;\n}\n.mdui-text-color-yellow {\n color: #FFEB3B !important;\n}\n.mdui-text-color-yellow-50 {\n color: #FFFDE7 !important;\n}\n.mdui-text-color-yellow-100 {\n color: #FFF9C4 !important;\n}\n.mdui-text-color-yellow-200 {\n color: #FFF59D !important;\n}\n.mdui-text-color-yellow-300 {\n color: #FFF176 !important;\n}\n.mdui-text-color-yellow-400 {\n color: #FFEE58 !important;\n}\n.mdui-text-color-yellow-500 {\n color: #FFEB3B !important;\n}\n.mdui-text-color-yellow-600 {\n color: #FDD835 !important;\n}\n.mdui-text-color-yellow-700 {\n color: #FBC02D !important;\n}\n.mdui-text-color-yellow-800 {\n color: #F9A825 !important;\n}\n.mdui-text-color-yellow-900 {\n color: #F57F17 !important;\n}\n/**\n * .mdui-text-color-[color]-accent\n * .mdui-text-color-[color]-[degree]\n */\n.mdui-text-color-amber-accent {\n color: #FFD740 !important;\n}\n.mdui-text-color-amber-a100 {\n color: #FFE57F !important;\n}\n.mdui-text-color-amber-a200 {\n color: #FFD740 !important;\n}\n.mdui-text-color-amber-a400 {\n color: #FFC400 !important;\n}\n.mdui-text-color-amber-a700 {\n color: #FFAB00 !important;\n}\n.mdui-text-color-blue-accent {\n color: #448AFF !important;\n}\n.mdui-text-color-blue-a100 {\n color: #82B1FF !important;\n}\n.mdui-text-color-blue-a200 {\n color: #448AFF !important;\n}\n.mdui-text-color-blue-a400 {\n color: #2979FF !important;\n}\n.mdui-text-color-blue-a700 {\n color: #2962FF !important;\n}\n.mdui-text-color-cyan-accent {\n color: #18FFFF !important;\n}\n.mdui-text-color-cyan-a100 {\n color: #84FFFF !important;\n}\n.mdui-text-color-cyan-a200 {\n color: #18FFFF !important;\n}\n.mdui-text-color-cyan-a400 {\n color: #00E5FF !important;\n}\n.mdui-text-color-cyan-a700 {\n color: #00B8D4 !important;\n}\n.mdui-text-color-deep-orange-accent {\n color: #FF6E40 !important;\n}\n.mdui-text-color-deep-orange-a100 {\n color: #FF9E80 !important;\n}\n.mdui-text-color-deep-orange-a200 {\n color: #FF6E40 !important;\n}\n.mdui-text-color-deep-orange-a400 {\n color: #FF3D00 !important;\n}\n.mdui-text-color-deep-orange-a700 {\n color: #DD2C00 !important;\n}\n.mdui-text-color-deep-purple-accent {\n color: #7C4DFF !important;\n}\n.mdui-text-color-deep-purple-a100 {\n color: #B388FF !important;\n}\n.mdui-text-color-deep-purple-a200 {\n color: #7C4DFF !important;\n}\n.mdui-text-color-deep-purple-a400 {\n color: #651FFF !important;\n}\n.mdui-text-color-deep-purple-a700 {\n color: #6200EA !important;\n}\n.mdui-text-color-green-accent {\n color: #69F0AE !important;\n}\n.mdui-text-color-green-a100 {\n color: #B9F6CA !important;\n}\n.mdui-text-color-green-a200 {\n color: #69F0AE !important;\n}\n.mdui-text-color-green-a400 {\n color: #00E676 !important;\n}\n.mdui-text-color-green-a700 {\n color: #00C853 !important;\n}\n.mdui-text-color-indigo-accent {\n color: #536DFE !important;\n}\n.mdui-text-color-indigo-a100 {\n color: #8C9EFF !important;\n}\n.mdui-text-color-indigo-a200 {\n color: #536DFE !important;\n}\n.mdui-text-color-indigo-a400 {\n color: #3D5AFE !important;\n}\n.mdui-text-color-indigo-a700 {\n color: #304FFE !important;\n}\n.mdui-text-color-light-blue-accent {\n color: #40C4FF !important;\n}\n.mdui-text-color-light-blue-a100 {\n color: #80D8FF !important;\n}\n.mdui-text-color-light-blue-a200 {\n color: #40C4FF !important;\n}\n.mdui-text-color-light-blue-a400 {\n color: #00B0FF !important;\n}\n.mdui-text-color-light-blue-a700 {\n color: #0091EA !important;\n}\n.mdui-text-color-light-green-accent {\n color: #B2FF59 !important;\n}\n.mdui-text-color-light-green-a100 {\n color: #CCFF90 !important;\n}\n.mdui-text-color-light-green-a200 {\n color: #B2FF59 !important;\n}\n.mdui-text-color-light-green-a400 {\n color: #76FF03 !important;\n}\n.mdui-text-color-light-green-a700 {\n color: #64DD17 !important;\n}\n.mdui-text-color-lime-accent {\n color: #EEFF41 !important;\n}\n.mdui-text-color-lime-a100 {\n color: #F4FF81 !important;\n}\n.mdui-text-color-lime-a200 {\n color: #EEFF41 !important;\n}\n.mdui-text-color-lime-a400 {\n color: #C6FF00 !important;\n}\n.mdui-text-color-lime-a700 {\n color: #AEEA00 !important;\n}\n.mdui-text-color-orange-accent {\n color: #FFAB40 !important;\n}\n.mdui-text-color-orange-a100 {\n color: #FFD180 !important;\n}\n.mdui-text-color-orange-a200 {\n color: #FFAB40 !important;\n}\n.mdui-text-color-orange-a400 {\n color: #FF9100 !important;\n}\n.mdui-text-color-orange-a700 {\n color: #FF6D00 !important;\n}\n.mdui-text-color-pink-accent {\n color: #FF4081 !important;\n}\n.mdui-text-color-pink-a100 {\n color: #FF80AB !important;\n}\n.mdui-text-color-pink-a200 {\n color: #FF4081 !important;\n}\n.mdui-text-color-pink-a400 {\n color: #F50057 !important;\n}\n.mdui-text-color-pink-a700 {\n color: #C51162 !important;\n}\n.mdui-text-color-purple-accent {\n color: #E040FB !important;\n}\n.mdui-text-color-purple-a100 {\n color: #EA80FC !important;\n}\n.mdui-text-color-purple-a200 {\n color: #E040FB !important;\n}\n.mdui-text-color-purple-a400 {\n color: #D500F9 !important;\n}\n.mdui-text-color-purple-a700 {\n color: #AA00FF !important;\n}\n.mdui-text-color-red-accent {\n color: #FF5252 !important;\n}\n.mdui-text-color-red-a100 {\n color: #FF8A80 !important;\n}\n.mdui-text-color-red-a200 {\n color: #FF5252 !important;\n}\n.mdui-text-color-red-a400 {\n color: #FF1744 !important;\n}\n.mdui-text-color-red-a700 {\n color: #D50000 !important;\n}\n.mdui-text-color-teal-accent {\n color: #64FFDA !important;\n}\n.mdui-text-color-teal-a100 {\n color: #A7FFEB !important;\n}\n.mdui-text-color-teal-a200 {\n color: #64FFDA !important;\n}\n.mdui-text-color-teal-a400 {\n color: #1DE9B6 !important;\n}\n.mdui-text-color-teal-a700 {\n color: #00BFA5 !important;\n}\n.mdui-text-color-yellow-accent {\n color: #FFFF00 !important;\n}\n.mdui-text-color-yellow-a100 {\n color: #FFFF8D !important;\n}\n.mdui-text-color-yellow-a200 {\n color: #FFFF00 !important;\n}\n.mdui-text-color-yellow-a400 {\n color: #FFEA00 !important;\n}\n.mdui-text-color-yellow-a700 {\n color: #FFD600 !important;\n}\n/**\n * .mdui-text-color-black\n * .mdui-text-color-black-[]\n * .mdui-text-color-theme-[]\n */\n.mdui-text-color-black {\n color: #000000 !important;\n}\n.mdui-text-color-black-text,\n.mdui-text-color-theme-text {\n color: rgba(0, 0, 0, 0.87) !important;\n}\n.mdui-text-color-black-secondary,\n.mdui-text-color-theme-secondary {\n color: rgba(0, 0, 0, 0.54) !important;\n}\n.mdui-text-color-black-disabled,\n.mdui-text-color-theme-disabled {\n color: rgba(0, 0, 0, 0.38) !important;\n}\n.mdui-text-color-black-divider,\n.mdui-text-color-theme-divider {\n color: rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-text-color-black-icon,\n.mdui-text-color-theme-icon {\n color: rgba(0, 0, 0, 0.54) !important;\n}\n.mdui-text-color-black-icon-disabled,\n.mdui-text-color-theme-icon-disabled {\n color: rgba(0, 0, 0, 0.26) !important;\n}\n/**\n * .mdui-text-color-white\n * .mdui-text-color-white-[]\n */\n.mdui-text-color-white {\n color: #FFFFFF !important;\n}\n.mdui-text-color-white-text {\n color: #ffffff !important;\n}\n.mdui-text-color-white-secondary {\n color: rgba(255, 255, 255, 0.7) !important;\n}\n.mdui-text-color-white-disabled {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n.mdui-text-color-white-divider {\n color: rgba(255, 255, 255, 0.12) !important;\n}\n.mdui-text-color-white-icon {\n color: #ffffff !important;\n}\n.mdui-text-color-white-icon-disabled {\n color: rgba(255, 255, 255, 0.3) !important;\n}\n/**\n * .mdui-text-color-theme-[] 深色主题\n */\n.mdui-theme-layout-dark .mdui-text-color-theme-text {\n color: #ffffff !important;\n}\n.mdui-theme-layout-dark .mdui-text-color-theme-secondary {\n color: rgba(255, 255, 255, 0.7) !important;\n}\n.mdui-theme-layout-dark .mdui-text-color-theme-disabled {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n.mdui-theme-layout-dark .mdui-text-color-theme-divider {\n color: rgba(255, 255, 255, 0.12) !important;\n}\n.mdui-theme-layout-dark .mdui-text-color-theme-icon {\n color: #ffffff !important;\n}\n.mdui-theme-layout-dark .mdui-text-color-theme-icon-disabled {\n color: rgba(255, 255, 255, 0.3) !important;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-text-color-theme-text {\n color: #ffffff !important;\n }\n .mdui-theme-layout-auto .mdui-text-color-theme-secondary {\n color: rgba(255, 255, 255, 0.7) !important;\n }\n .mdui-theme-layout-auto .mdui-text-color-theme-disabled {\n color: rgba(255, 255, 255, 0.5) !important;\n }\n .mdui-theme-layout-auto .mdui-text-color-theme-divider {\n color: rgba(255, 255, 255, 0.12) !important;\n }\n .mdui-theme-layout-auto .mdui-text-color-theme-icon {\n color: #ffffff !important;\n }\n .mdui-theme-layout-auto .mdui-text-color-theme-icon-disabled {\n color: rgba(255, 255, 255, 0.3) !important;\n }\n}\n/**\n * =============================================================================\n * ************ Helper 辅助类 ************\n * =============================================================================\n */\n/**\n * =================== 边距\n */\n.mdui-m-a-0 {\n margin: 0px !important;\n}\n.mdui-m-t-0 {\n margin-top: 0px !important;\n}\n.mdui-m-r-0 {\n margin-right: 0px !important;\n}\n.mdui-m-b-0 {\n margin-bottom: 0px !important;\n}\n.mdui-m-l-0 {\n margin-left: 0px !important;\n}\n.mdui-m-x-0 {\n margin-right: 0px !important;\n margin-left: 0px !important;\n}\n.mdui-m-y-0 {\n margin-top: 0px !important;\n margin-bottom: 0px !important;\n}\n.mdui-p-a-0 {\n padding: 0px !important;\n}\n.mdui-p-t-0 {\n padding-top: 0px !important;\n}\n.mdui-p-r-0 {\n padding-right: 0px !important;\n}\n.mdui-p-b-0 {\n padding-bottom: 0px !important;\n}\n.mdui-p-l-0 {\n padding-left: 0px !important;\n}\n.mdui-p-x-0 {\n padding-right: 0px !important;\n padding-left: 0px !important;\n}\n.mdui-p-y-0 {\n padding-top: 0px !important;\n padding-bottom: 0px !important;\n}\n.mdui-m-a-1 {\n margin: 8px !important;\n}\n.mdui-m-t-1 {\n margin-top: 8px !important;\n}\n.mdui-m-r-1 {\n margin-right: 8px !important;\n}\n.mdui-m-b-1 {\n margin-bottom: 8px !important;\n}\n.mdui-m-l-1 {\n margin-left: 8px !important;\n}\n.mdui-m-x-1 {\n margin-right: 8px !important;\n margin-left: 8px !important;\n}\n.mdui-m-y-1 {\n margin-top: 8px !important;\n margin-bottom: 8px !important;\n}\n.mdui-p-a-1 {\n padding: 8px !important;\n}\n.mdui-p-t-1 {\n padding-top: 8px !important;\n}\n.mdui-p-r-1 {\n padding-right: 8px !important;\n}\n.mdui-p-b-1 {\n padding-bottom: 8px !important;\n}\n.mdui-p-l-1 {\n padding-left: 8px !important;\n}\n.mdui-p-x-1 {\n padding-right: 8px !important;\n padding-left: 8px !important;\n}\n.mdui-p-y-1 {\n padding-top: 8px !important;\n padding-bottom: 8px !important;\n}\n.mdui-m-a-2 {\n margin: 16px !important;\n}\n.mdui-m-t-2 {\n margin-top: 16px !important;\n}\n.mdui-m-r-2 {\n margin-right: 16px !important;\n}\n.mdui-m-b-2 {\n margin-bottom: 16px !important;\n}\n.mdui-m-l-2 {\n margin-left: 16px !important;\n}\n.mdui-m-x-2 {\n margin-right: 16px !important;\n margin-left: 16px !important;\n}\n.mdui-m-y-2 {\n margin-top: 16px !important;\n margin-bottom: 16px !important;\n}\n.mdui-p-a-2 {\n padding: 16px !important;\n}\n.mdui-p-t-2 {\n padding-top: 16px !important;\n}\n.mdui-p-r-2 {\n padding-right: 16px !important;\n}\n.mdui-p-b-2 {\n padding-bottom: 16px !important;\n}\n.mdui-p-l-2 {\n padding-left: 16px !important;\n}\n.mdui-p-x-2 {\n padding-right: 16px !important;\n padding-left: 16px !important;\n}\n.mdui-p-y-2 {\n padding-top: 16px !important;\n padding-bottom: 16px !important;\n}\n.mdui-m-a-3 {\n margin: 24px !important;\n}\n.mdui-m-t-3 {\n margin-top: 24px !important;\n}\n.mdui-m-r-3 {\n margin-right: 24px !important;\n}\n.mdui-m-b-3 {\n margin-bottom: 24px !important;\n}\n.mdui-m-l-3 {\n margin-left: 24px !important;\n}\n.mdui-m-x-3 {\n margin-right: 24px !important;\n margin-left: 24px !important;\n}\n.mdui-m-y-3 {\n margin-top: 24px !important;\n margin-bottom: 24px !important;\n}\n.mdui-p-a-3 {\n padding: 24px !important;\n}\n.mdui-p-t-3 {\n padding-top: 24px !important;\n}\n.mdui-p-r-3 {\n padding-right: 24px !important;\n}\n.mdui-p-b-3 {\n padding-bottom: 24px !important;\n}\n.mdui-p-l-3 {\n padding-left: 24px !important;\n}\n.mdui-p-x-3 {\n padding-right: 24px !important;\n padding-left: 24px !important;\n}\n.mdui-p-y-3 {\n padding-top: 24px !important;\n padding-bottom: 24px !important;\n}\n.mdui-m-a-4 {\n margin: 32px !important;\n}\n.mdui-m-t-4 {\n margin-top: 32px !important;\n}\n.mdui-m-r-4 {\n margin-right: 32px !important;\n}\n.mdui-m-b-4 {\n margin-bottom: 32px !important;\n}\n.mdui-m-l-4 {\n margin-left: 32px !important;\n}\n.mdui-m-x-4 {\n margin-right: 32px !important;\n margin-left: 32px !important;\n}\n.mdui-m-y-4 {\n margin-top: 32px !important;\n margin-bottom: 32px !important;\n}\n.mdui-p-a-4 {\n padding: 32px !important;\n}\n.mdui-p-t-4 {\n padding-top: 32px !important;\n}\n.mdui-p-r-4 {\n padding-right: 32px !important;\n}\n.mdui-p-b-4 {\n padding-bottom: 32px !important;\n}\n.mdui-p-l-4 {\n padding-left: 32px !important;\n}\n.mdui-p-x-4 {\n padding-right: 32px !important;\n padding-left: 32px !important;\n}\n.mdui-p-y-4 {\n padding-top: 32px !important;\n padding-bottom: 32px !important;\n}\n.mdui-m-a-5 {\n margin: 40px !important;\n}\n.mdui-m-t-5 {\n margin-top: 40px !important;\n}\n.mdui-m-r-5 {\n margin-right: 40px !important;\n}\n.mdui-m-b-5 {\n margin-bottom: 40px !important;\n}\n.mdui-m-l-5 {\n margin-left: 40px !important;\n}\n.mdui-m-x-5 {\n margin-right: 40px !important;\n margin-left: 40px !important;\n}\n.mdui-m-y-5 {\n margin-top: 40px !important;\n margin-bottom: 40px !important;\n}\n.mdui-p-a-5 {\n padding: 40px !important;\n}\n.mdui-p-t-5 {\n padding-top: 40px !important;\n}\n.mdui-p-r-5 {\n padding-right: 40px !important;\n}\n.mdui-p-b-5 {\n padding-bottom: 40px !important;\n}\n.mdui-p-l-5 {\n padding-left: 40px !important;\n}\n.mdui-p-x-5 {\n padding-right: 40px !important;\n padding-left: 40px !important;\n}\n.mdui-p-y-5 {\n padding-top: 40px !important;\n padding-bottom: 40px !important;\n}\n/**\n * ======================== 快速浮动\n */\n/* 向左浮动 */\n.mdui-float-left {\n float: left !important;\n}\n/* 向右浮动 */\n.mdui-float-right {\n float: right !important;\n}\n/**\n * ========================= 水平居中\n */\n/* 水平居中 */\n.mdui-center {\n display: block !important;\n margin-right: auto !important;\n margin-left: auto !important;\n}\n/**\n * ========================= 垂直居中\n */\n/* 垂直居中 */\n.mdui-valign {\n display: flex !important;\n align-items: center !important;\n}\n/**\n * ========================= 文本对齐方式\n */\n/* 文本左对齐 */\n.mdui-text-left {\n text-align: left !important;\n}\n/* 文本居中对齐 */\n.mdui-text-center {\n text-align: center !important;\n}\n/* 文本向右对齐 */\n.mdui-text-right {\n text-align: right !important;\n}\n/**\n * ========================= 文本大小写转换\n */\n/* 文本转为小写 */\n.mdui-text-lowercase {\n text-transform: lowercase !important;\n}\n/* 文本转为大写 */\n.mdui-text-uppercase {\n text-transform: uppercase !important;\n}\n/* 文本转为单词的首字母大写 */\n.mdui-text-capitalize {\n text-transform: capitalize !important;\n}\n/**\n * ======================== 文本截断\n */\n/* 文本截断 */\n.mdui-text-truncate {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n/**\n * ========================= 清除浮动\n */\n/* 清除浮动 */\n.mdui-clearfix::before,\n.mdui-clearfix::after {\n display: table;\n content: ' ';\n}\n.mdui-clearfix::after {\n clear: both;\n}\n/**\n * ========================= 隐藏内容\n */\n/* 隐藏元素 */\n.mdui-hidden,\n[hidden] {\n display: none !important;\n}\n/* 使元素不可见 */\n.mdui-invisible {\n visibility: hidden;\n}\n/* Responsive utilities 响应式工具\n ========================================================================== */\n/* 在特定屏幕的特备上隐藏 */\n@media (max-width: 599.9px) {\n .mdui-hidden-xs {\n display: none !important;\n }\n}\n@media (min-width: 600px) and (max-width: 1023.9px) {\n .mdui-hidden-sm {\n display: none !important;\n }\n}\n@media (min-width: 1024px) and (max-width: 1439.9px) {\n .mdui-hidden-md {\n display: none !important;\n }\n}\n@media (min-width: 1440px) and (max-width: 1919.9px) {\n .mdui-hidden-lg {\n display: none !important;\n }\n}\n@media (min-width: 1920px) {\n .mdui-hidden-xl {\n display: none !important;\n }\n}\n/* 在比特定屏幕小的设备上隐藏 */\n@media (max-width: 599.9px) {\n .mdui-hidden-xs-down {\n display: none !important;\n }\n}\n@media (max-width: 1023.9px) {\n .mdui-hidden-sm-down {\n display: none !important;\n }\n}\n@media (max-width: 1439.9px) {\n .mdui-hidden-md-down {\n display: none !important;\n }\n}\n@media (max-width: 1919.9px) {\n .mdui-hidden-lg-down {\n display: none !important;\n }\n}\n.mdui-hidden-xl-down {\n display: none !important;\n}\n/* 在比特定屏幕大的设备上隐藏 */\n.mdui-hidden-xs-up {\n display: none !important;\n}\n@media (min-width: 600px) {\n .mdui-hidden-sm-up {\n display: none !important;\n }\n}\n@media (min-width: 1024px) {\n .mdui-hidden-md-up {\n display: none !important;\n }\n}\n@media (min-width: 1440px) {\n .mdui-hidden-lg-up {\n display: none !important;\n }\n}\n@media (min-width: 1920px) {\n .mdui-hidden-xl-up {\n display: none !important;\n }\n}\n/**\n * =============================================================================\n * ************ Icon 图标 ************\n * =============================================================================\n */\n.mdui-icon,\n.mdui-icon::before {\n color: inherit;\n font-weight: normal;\n font-size: 24px;\n /* Preferred icon size */\n font-style: normal;\n line-height: 1;\n direction: ltr;\n letter-spacing: normal;\n white-space: nowrap;\n text-transform: none;\n vertical-align: middle;\n word-wrap: normal;\n}\n.mdui-icon {\n display: inline-block;\n text-align: center;\n}\n.mdui-icon::before {\n display: block !important;\n width: 24px;\n height: 24px;\n}\n/**\n * =============================================================================\n * ************ Material Icons ************\n * =============================================================================\n *\n * https://github.com/google/material-design-icons/\n * v3.0.1\n */\n@font-face {\n font-weight: 400;\n font-family: 'Material Icons';\n font-style: normal;\n src: local('Material Icons'), local('MaterialIcons-Regular'), url(../icons/material-icons/MaterialIcons-Regular.woff2) format('woff2'), url(../icons/material-icons/MaterialIcons-Regular.woff) format('woff');\n}\n.material-icons {\n /* stylelint-disable-next-line */\n font-family: 'Material Icons';\n /* Support for all WebKit browsers. */\n -webkit-font-smoothing: antialiased;\n /* Support for Safari and Chrome. */\n text-rendering: optimizeLegibility;\n /* Support for Firefox. */\n -moz-osx-font-smoothing: grayscale;\n /* Support for IE. */\n font-feature-settings: 'liga';\n}\n/**\n * =============================================================================\n * ************ Media 媒体工具 ************\n * =============================================================================\n */\n/* 响应式图片和视频 */\n.mdui-img-fluid,\n.mdui-video-fluid {\n display: block;\n max-width: 100%;\n height: auto;\n}\n/* 圆角图片 */\n.mdui-img-rounded {\n border-radius: 2px;\n}\n/* 圆形图片 */\n.mdui-img-circle {\n border-radius: 50%;\n}\n.mdui-video-container {\n position: relative;\n height: 0;\n padding-bottom: 56.25%;\n overflow: hidden;\n}\n.mdui-video-container iframe,\n.mdui-video-container object,\n.mdui-video-container embed {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n}\n/**\n * =============================================================================\n * ************ Roboto 字体 ************\n * =============================================================================\n */\n@font-face {\n font-weight: 100;\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n src: local('Roboto Thin'), local('Roboto-Thin'), url('../fonts/roboto/Roboto-Thin.woff2') format('woff2'), url('../fonts/roboto/Roboto-Thin.woff') format('woff');\n}\n@font-face {\n font-weight: 100;\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n src: local('Roboto ThinItalic'), local('Roboto-ThinItalic'), url('../fonts/roboto/Roboto-ThinItalic.woff2') format('woff2'), url('../fonts/roboto/Roboto-ThinItalic.woff') format('woff');\n}\n@font-face {\n font-weight: 300;\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n src: local('Roboto Light'), local('Roboto-Light'), url('../fonts/roboto/Roboto-Light.woff2') format('woff2'), url('../fonts/roboto/Roboto-Light.woff') format('woff');\n}\n@font-face {\n font-weight: 300;\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n src: local('Roboto LightItalic'), local('Roboto-LightItalic'), url('../fonts/roboto/Roboto-LightItalic.woff2') format('woff2'), url('../fonts/roboto/Roboto-LightItalic.woff') format('woff');\n}\n@font-face {\n font-weight: 400;\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n src: local('Roboto Regular'), local('Roboto-Regular'), url('../fonts/roboto/Roboto-Regular.woff2') format('woff2'), url('../fonts/roboto/Roboto-Regular.woff') format('woff');\n}\n@font-face {\n font-weight: 400;\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n src: local('Roboto RegularItalic'), local('Roboto-RegularItalic'), url('../fonts/roboto/Roboto-RegularItalic.woff2') format('woff2'), url('../fonts/roboto/Roboto-RegularItalic.woff') format('woff');\n}\n@font-face {\n font-weight: 500;\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n src: local('Roboto Medium'), local('Roboto-Medium'), url('../fonts/roboto/Roboto-Medium.woff2') format('woff2'), url('../fonts/roboto/Roboto-Medium.woff') format('woff');\n}\n@font-face {\n font-weight: 500;\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n src: local('Roboto MediumItalic'), local('Roboto-MediumItalic'), url('../fonts/roboto/Roboto-MediumItalic.woff2') format('woff2'), url('../fonts/roboto/Roboto-MediumItalic.woff') format('woff');\n}\n@font-face {\n font-weight: 700;\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n src: local('Roboto Bold'), local('Roboto-Bold'), url('../fonts/roboto/Roboto-Bold.woff2') format('woff2'), url('../fonts/roboto/Roboto-Bold.woff') format('woff');\n}\n@font-face {\n font-weight: 700;\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n src: local('Roboto BoldItalic'), local('Roboto-BoldItalic'), url('../fonts/roboto/Roboto-BoldItalic.woff2') format('woff2'), url('../fonts/roboto/Roboto-BoldItalic.woff') format('woff');\n}\n@font-face {\n font-weight: 900;\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n src: local('Roboto Black'), local('Roboto-Black'), url('../fonts/roboto/Roboto-Black.woff2') format('woff2'), url('../fonts/roboto/Roboto-Black.woff') format('woff');\n}\n@font-face {\n font-weight: 900;\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n src: local('Roboto BlackItalic'), local('Roboto-BlackItalic'), url('../fonts/roboto/Roboto-BlackItalic.woff2') format('woff2'), url('../fonts/roboto/Roboto-BlackItalic.woff') format('woff');\n}\n/**\n * =============================================================================\n * ************ Typography 样式排版 ************\n * =============================================================================\n */\n/* .mdui-typo-display-4 */\n.mdui-typo-display-4,\n.mdui-typo-display-4-opacity {\n font-weight: 300;\n font-size: 112px;\n letter-spacing: -0.04em;\n}\n.mdui-typo-display-4-opacity {\n opacity: 0.54;\n}\n/* .mdui-typo-display-3 */\n.mdui-typo-display-3,\n.mdui-typo-display-3-opacity {\n font-weight: 400;\n font-size: 56px;\n letter-spacing: -0.02em;\n}\n.mdui-typo-display-3-opacity {\n opacity: 0.54;\n}\n/* .mdui-typo-display-2 */\n.mdui-typo-display-2,\n.mdui-typo-display-2-opacity {\n font-weight: 400;\n font-size: 45px;\n letter-spacing: 0;\n}\n.mdui-typo-display-2-opacity {\n opacity: 0.54;\n}\n/* .mdui-typo-display-1 */\n.mdui-typo-display-1,\n.mdui-typo-display-1-opacity {\n font-weight: 400;\n font-size: 34px;\n letter-spacing: 0;\n}\n.mdui-typo-display-1-opacity {\n opacity: 0.54;\n}\n/* .mdui-typo-headline */\n.mdui-typo-headline,\n.mdui-typo-headline-opacity {\n font-weight: 400;\n font-size: 24px;\n -moz-osx-font-smoothing: grayscale;\n}\n.mdui-typo-headline-opacity {\n opacity: 0.87;\n}\n/* .mdui-typo-title */\n.mdui-typo-title,\n.mdui-typo-title-opacity {\n font-weight: 500;\n font-size: 20px;\n letter-spacing: 0.02em;\n}\n.mdui-typo-title-opacity {\n opacity: 0.87;\n}\n.mdui-typo-subheading,\n.mdui-typo-subheading-opacity {\n font-weight: 400;\n font-size: 16px;\n letter-spacing: 0.04em;\n}\n.mdui-typo-subheading-opacity {\n opacity: 0.87;\n}\n.mdui-typo-body-2,\n.mdui-typo-body-2-opacity {\n font-weight: 500;\n font-size: 14px;\n letter-spacing: 0.04em;\n}\n.mdui-typo-body-2-opacity {\n opacity: 0.87;\n}\n.mdui-typo-body-1,\n.mdui-typo-body-1-opacity {\n font-weight: 400;\n font-size: 14px;\n letter-spacing: 0.04em;\n}\n.mdui-typo-body-1-opacity {\n opacity: 0.87;\n}\n.mdui-typo-caption,\n.mdui-typo-caption-opacity {\n font-weight: 400;\n font-size: 12px;\n letter-spacing: 0.08em;\n}\n.mdui-typo-caption-opacity {\n opacity: 0.54;\n}\n/**\n * =============================================================================\n * ************ Typography 文章排版 ************\n * =============================================================================\n */\n.mdui-typo {\n line-height: 1.8;\n word-wrap: break-word;\n /* a */\n /* small */\n /* blockquote */\n /* mark */\n /* h1 - h6 */\n /* code */\n /* pre code */\n /* abbr */\n /* ins */\n /* u */\n /* del */\n /* hr */\n /* pre */\n /* kbd */\n /* ul / ol */\n /* img, video */\n}\n.mdui-typo address,\n.mdui-typo caption,\n.mdui-typo cite,\n.mdui-typo code,\n.mdui-typo dfn,\n.mdui-typo th {\n font-weight: 400;\n font-style: normal;\n}\n.mdui-typo caption,\n.mdui-typo th {\n text-align: left;\n}\n.mdui-typo q::before,\n.mdui-typo q::after {\n content: '';\n}\n.mdui-typo pre,\n.mdui-typo code,\n.mdui-typo kbd,\n.mdui-typo samp,\n.mdui-typo pre tt {\n font-family: Consolas, Courier, 'Courier New', monospace;\n}\n.mdui-typo figcaption {\n color: rgba(0, 0, 0, 0.54);\n font-size: 80%;\n}\n.mdui-typo [draggable],\n.mdui-typo [draggable=\"true\"] {\n cursor: move;\n}\n.mdui-typo [draggable=\"false\"] {\n cursor: inherit;\n}\n.mdui-typo p,\n.mdui-typo pre,\n.mdui-typo ul,\n.mdui-typo ol,\n.mdui-typo dl,\n.mdui-typo form,\n.mdui-typo hr,\n.mdui-typo figure,\n.mdui-typo table,\n.mdui-typo .mdui-table,\n.mdui-typo .mdui-table-fluid {\n margin: 0 0 1.2em 0;\n}\n.mdui-typo p:last-child,\n.mdui-typo pre:last-child,\n.mdui-typo ul:last-child,\n.mdui-typo ol:last-child,\n.mdui-typo dl:last-child,\n.mdui-typo form:last-child,\n.mdui-typo hr:last-child,\n.mdui-typo figure:last-child,\n.mdui-typo table:last-child,\n.mdui-typo .mdui-table:last-child,\n.mdui-typo .mdui-table-fluid:last-child {\n margin-bottom: 0;\n}\n.mdui-typo a {\n color: #FF4081;\n position: relative;\n display: inline-block;\n overflow: hidden;\n text-decoration: none;\n vertical-align: top;\n outline: none;\n}\n.mdui-typo a::before {\n position: absolute;\n top: auto;\n bottom: 1px;\n left: 0;\n width: 100%;\n height: 1px;\n background-color: #FF4081;\n transform: scaleX(0);\n backface-visibility: hidden;\n transition: all 0.2s;\n content: ' ';\n}\n.mdui-typo a:hover::before,\n.mdui-typo a:focus::before {\n transform: scaleX(1);\n}\n.mdui-typo small {\n font-size: 80%;\n}\n.mdui-typo blockquote {\n margin: 1em 3em 1em 2em;\n padding-left: 1em;\n font-weight: 400;\n border-left: 4px solid rgba(0, 0, 0, 0.12);\n}\n@media only screen and (max-width: 599.9px) {\n .mdui-typo blockquote {\n margin: 1em 0;\n }\n}\n.mdui-typo blockquote:last-child {\n margin-bottom: 0;\n}\n.mdui-typo blockquote footer {\n color: rgba(0, 0, 0, 0.54);\n font-size: 86%;\n}\n.mdui-typo mark {\n margin: 0 5px;\n padding: 2px;\n background: #fffdd1;\n border-bottom: 1px solid #ffedce;\n}\n.mdui-typo h1,\n.mdui-typo h2,\n.mdui-typo h3,\n.mdui-typo h4,\n.mdui-typo h5,\n.mdui-typo h6 {\n margin-top: 1.2em;\n margin-bottom: 0.6em;\n color: inherit;\n font-weight: 400;\n font-family: inherit;\n line-height: 1.35;\n}\n.mdui-typo h1:last-child,\n.mdui-typo h2:last-child,\n.mdui-typo h3:last-child,\n.mdui-typo h4:last-child,\n.mdui-typo h5:last-child,\n.mdui-typo h6:last-child {\n margin-bottom: 0;\n}\n.mdui-typo h1 small,\n.mdui-typo h2 small,\n.mdui-typo h3 small,\n.mdui-typo h4 small,\n.mdui-typo h5 small,\n.mdui-typo h6 small {\n color: rgba(0, 0, 0, 0.54);\n font-weight: 400;\n font-size: 65%;\n line-height: 1;\n}\n.mdui-typo h1 {\n font-size: 2em;\n}\n.mdui-typo h2 {\n font-size: 1.8em;\n}\n.mdui-typo h3 {\n font-size: 1.6em;\n}\n.mdui-typo h4 {\n font-size: 1.4em;\n}\n.mdui-typo h5 {\n font-size: 1.2em;\n}\n.mdui-typo h6 {\n font-size: 1.1em;\n}\n.mdui-typo code {\n padding: 2px 6px;\n color: #c7254e;\n background-color: #f7f7f9;\n border-radius: 2px;\n}\n.mdui-typo pre code {\n padding: 0;\n color: inherit;\n font-size: inherit;\n line-height: 1.7;\n background-color: transparent;\n border-radius: 0;\n}\n.mdui-typo abbr[title] {\n text-decoration: none;\n border-bottom: 1px dotted;\n cursor: help;\n}\n.mdui-typo ins {\n text-decoration: none;\n border-bottom: 1px solid ;\n}\n.mdui-typo u {\n text-decoration: none;\n border-bottom: 1px solid;\n}\n.mdui-typo del {\n text-decoration: line-through;\n}\n.mdui-typo hr {\n height: 10px;\n margin-bottom: 0.8em;\n border: none;\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n}\n.mdui-typo pre {\n padding: 12px 16px;\n overflow-x: auto;\n border: 1px solid rgba(0, 0, 0, 0.12);\n border-radius: 2px;\n -webkit-overflow-scrolling: touch;\n}\n.mdui-typo kbd {\n padding: 2px 6px;\n color: #fff;\n font-size: 90%;\n background-color: #333;\n border-radius: 2px;\n}\n.mdui-typo ul {\n padding-left: 2em;\n list-style: disc;\n}\n.mdui-typo ol {\n padding-left: 2em;\n list-style: decimal;\n}\n.mdui-typo li ul,\n.mdui-typo li ol {\n margin: 0.8em 0;\n}\n.mdui-typo li ul {\n list-style: circle;\n}\n.mdui-typo img,\n.mdui-typo video {\n max-width: 100%;\n}\n.mdui-typo figure {\n text-align: center;\n}\n.mdui-typo figure figcaption {\n margin-top: 8px;\n color: #999;\n font-size: 14px;\n}\n.mdui-typo figure figcaption:empty::before {\n z-index: -1;\n color: #bfbfbf;\n cursor: text;\n content: attr(placeholder);\n}\n/**\n * =============================================================================\n * ************ Typo 强调色 ************\n * =============================================================================\n */\n.mdui-theme-accent-amber .mdui-typo a {\n color: #FFD740;\n}\n.mdui-theme-accent-amber .mdui-typo a::before {\n background-color: #FFD740;\n}\n.mdui-theme-accent-blue .mdui-typo a {\n color: #448AFF;\n}\n.mdui-theme-accent-blue .mdui-typo a::before {\n background-color: #448AFF;\n}\n.mdui-theme-accent-cyan .mdui-typo a {\n color: #18FFFF;\n}\n.mdui-theme-accent-cyan .mdui-typo a::before {\n background-color: #18FFFF;\n}\n.mdui-theme-accent-deep-orange .mdui-typo a {\n color: #FF6E40;\n}\n.mdui-theme-accent-deep-orange .mdui-typo a::before {\n background-color: #FF6E40;\n}\n.mdui-theme-accent-deep-purple .mdui-typo a {\n color: #7C4DFF;\n}\n.mdui-theme-accent-deep-purple .mdui-typo a::before {\n background-color: #7C4DFF;\n}\n.mdui-theme-accent-green .mdui-typo a {\n color: #69F0AE;\n}\n.mdui-theme-accent-green .mdui-typo a::before {\n background-color: #69F0AE;\n}\n.mdui-theme-accent-indigo .mdui-typo a {\n color: #536DFE;\n}\n.mdui-theme-accent-indigo .mdui-typo a::before {\n background-color: #536DFE;\n}\n.mdui-theme-accent-light-blue .mdui-typo a {\n color: #40C4FF;\n}\n.mdui-theme-accent-light-blue .mdui-typo a::before {\n background-color: #40C4FF;\n}\n.mdui-theme-accent-light-green .mdui-typo a {\n color: #B2FF59;\n}\n.mdui-theme-accent-light-green .mdui-typo a::before {\n background-color: #B2FF59;\n}\n.mdui-theme-accent-lime .mdui-typo a {\n color: #EEFF41;\n}\n.mdui-theme-accent-lime .mdui-typo a::before {\n background-color: #EEFF41;\n}\n.mdui-theme-accent-orange .mdui-typo a {\n color: #FFAB40;\n}\n.mdui-theme-accent-orange .mdui-typo a::before {\n background-color: #FFAB40;\n}\n.mdui-theme-accent-pink .mdui-typo a {\n color: #FF4081;\n}\n.mdui-theme-accent-pink .mdui-typo a::before {\n background-color: #FF4081;\n}\n.mdui-theme-accent-purple .mdui-typo a {\n color: #E040FB;\n}\n.mdui-theme-accent-purple .mdui-typo a::before {\n background-color: #E040FB;\n}\n.mdui-theme-accent-red .mdui-typo a {\n color: #FF5252;\n}\n.mdui-theme-accent-red .mdui-typo a::before {\n background-color: #FF5252;\n}\n.mdui-theme-accent-teal .mdui-typo a {\n color: #64FFDA;\n}\n.mdui-theme-accent-teal .mdui-typo a::before {\n background-color: #64FFDA;\n}\n.mdui-theme-accent-yellow .mdui-typo a {\n color: #FFFF00;\n}\n.mdui-theme-accent-yellow .mdui-typo a::before {\n background-color: #FFFF00;\n}\n/**\n * =============================================================================\n * ************ Typo dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-typo blockquote {\n border-left-color: rgba(255, 255, 255, 0.12);\n}\n.mdui-theme-layout-dark .mdui-typo blockquote footer {\n color: rgba(255, 255, 255, 0.7);\n}\n.mdui-theme-layout-dark .mdui-typo figcaption {\n color: rgba(255, 255, 255, 0.7);\n}\n.mdui-theme-layout-dark .mdui-typo mark {\n background: #aaa;\n border-bottom-color: #bbb;\n}\n.mdui-theme-layout-dark .mdui-typo h1 small,\n.mdui-theme-layout-dark .mdui-typo h2 small,\n.mdui-theme-layout-dark .mdui-typo h3 small,\n.mdui-theme-layout-dark .mdui-typo h4 small,\n.mdui-theme-layout-dark .mdui-typo h5 small,\n.mdui-theme-layout-dark .mdui-typo h6 small {\n color: rgba(255, 255, 255, 0.7);\n}\n.mdui-theme-layout-dark .mdui-typo code {\n color: #FFCDD2;\n background-color: #424242;\n}\n.mdui-theme-layout-dark .mdui-typo pre {\n background: #424242;\n border-color: rgba(255, 255, 255, 0.12);\n}\n.mdui-theme-layout-dark .mdui-typo kbd {\n background: #424242;\n}\n.mdui-theme-layout-dark .mdui-typo hr {\n border-color: rgba(255, 255, 255, 0.12);\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-typo blockquote {\n border-left-color: rgba(255, 255, 255, 0.12);\n }\n .mdui-theme-layout-auto .mdui-typo blockquote footer {\n color: rgba(255, 255, 255, 0.7);\n }\n .mdui-theme-layout-auto .mdui-typo figcaption {\n color: rgba(255, 255, 255, 0.7);\n }\n .mdui-theme-layout-auto .mdui-typo mark {\n background: #aaa;\n border-bottom-color: #bbb;\n }\n .mdui-theme-layout-auto .mdui-typo h1 small,\n .mdui-theme-layout-auto .mdui-typo h2 small,\n .mdui-theme-layout-auto .mdui-typo h3 small,\n .mdui-theme-layout-auto .mdui-typo h4 small,\n .mdui-theme-layout-auto .mdui-typo h5 small,\n .mdui-theme-layout-auto .mdui-typo h6 small {\n color: rgba(255, 255, 255, 0.7);\n }\n .mdui-theme-layout-auto .mdui-typo code {\n color: #FFCDD2;\n background-color: #424242;\n }\n .mdui-theme-layout-auto .mdui-typo pre {\n background: #424242;\n border-color: rgba(255, 255, 255, 0.12);\n }\n .mdui-theme-layout-auto .mdui-typo kbd {\n background: #424242;\n }\n .mdui-theme-layout-auto .mdui-typo hr {\n border-color: rgba(255, 255, 255, 0.12);\n }\n}\n/**\n * =============================================================================\n * ************ Grid 网格系统 ************\n * =============================================================================\n */\n.mdui-container,\n.mdui-container-fluid {\n box-sizing: border-box;\n margin-right: auto;\n margin-left: auto;\n padding-right: 8px;\n padding-left: 8px;\n}\n.mdui-container::after,\n.mdui-container-fluid::after {\n display: table;\n clear: both;\n content: '';\n}\n.mdui-container {\n width: 96%;\n max-width: 1280px;\n}\n@media (min-width: 600px) {\n .mdui-container {\n width: 94%;\n }\n}\n@media (min-width: 1024px) {\n .mdui-container {\n width: 92%;\n }\n}\n.mdui-row,\n[class*=\"mdui-row-\"] {\n margin-right: -8px;\n margin-left: -8px;\n}\n.mdui-row::after,\n[class*=\"mdui-row-\"]::after {\n display: table;\n clear: both;\n content: '';\n}\n[class*=\"mdui-col-xs-\"],\n[class*=\"mdui-col-sm-\"],\n[class*=\"mdui-col-md-\"],\n[class*=\"mdui-col-lg-\"],\n[class*=\"mdui-col-xl-\"],\n.mdui-col {\n position: relative;\n box-sizing: border-box;\n min-height: 1px;\n padding-right: 8px;\n padding-left: 8px;\n}\n/* 取消列间距 */\n.mdui-row-gapless .mdui-col,\n.mdui-row-gapless [class*=\"mdui-col-xs-\"],\n.mdui-row-gapless [class*=\"mdui-col-sm-\"],\n.mdui-row-gapless [class*=\"mdui-col-md-\"],\n.mdui-row-gapless [class*=\"mdui-col-lg-\"],\n.mdui-row-gapless [class*=\"mdui-col-xl-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n.mdui-row-gapless .mdui-row,\n.mdui-row-gapless [class*=\"mdui-row-\"] {\n margin-right: 0;\n margin-left: 0;\n}\n.mdui-col-xs-1 {\n float: left;\n width: 8.333333%;\n}\n.mdui-col-offset-xs-1 {\n margin-left: 8.333333%;\n}\n.mdui-row-xs-1 .mdui-col {\n float: left;\n width: 100%;\n}\n.mdui-col-xs-2 {\n float: left;\n width: 16.666667%;\n}\n.mdui-col-offset-xs-2 {\n margin-left: 16.666667%;\n}\n.mdui-row-xs-2 .mdui-col {\n float: left;\n width: 50%;\n}\n.mdui-col-xs-3 {\n float: left;\n width: 25%;\n}\n.mdui-col-offset-xs-3 {\n margin-left: 25%;\n}\n.mdui-row-xs-3 .mdui-col {\n float: left;\n width: 33.333333%;\n}\n.mdui-col-xs-4 {\n float: left;\n width: 33.333333%;\n}\n.mdui-col-offset-xs-4 {\n margin-left: 33.333333%;\n}\n.mdui-row-xs-4 .mdui-col {\n float: left;\n width: 25%;\n}\n.mdui-col-xs-5 {\n float: left;\n width: 41.666667%;\n}\n.mdui-col-offset-xs-5 {\n margin-left: 41.666667%;\n}\n.mdui-row-xs-5 .mdui-col {\n float: left;\n width: 20%;\n}\n.mdui-col-xs-6 {\n float: left;\n width: 50%;\n}\n.mdui-col-offset-xs-6 {\n margin-left: 50%;\n}\n.mdui-row-xs-6 .mdui-col {\n float: left;\n width: 16.666667%;\n}\n.mdui-col-xs-7 {\n float: left;\n width: 58.333333%;\n}\n.mdui-col-offset-xs-7 {\n margin-left: 58.333333%;\n}\n.mdui-row-xs-7 .mdui-col {\n float: left;\n width: 14.285714%;\n}\n.mdui-col-xs-8 {\n float: left;\n width: 66.666667%;\n}\n.mdui-col-offset-xs-8 {\n margin-left: 66.666667%;\n}\n.mdui-row-xs-8 .mdui-col {\n float: left;\n width: 12.5%;\n}\n.mdui-col-xs-9 {\n float: left;\n width: 75%;\n}\n.mdui-col-offset-xs-9 {\n margin-left: 75%;\n}\n.mdui-row-xs-9 .mdui-col {\n float: left;\n width: 11.111111%;\n}\n.mdui-col-xs-10 {\n float: left;\n width: 83.333333%;\n}\n.mdui-col-offset-xs-10 {\n margin-left: 83.333333%;\n}\n.mdui-row-xs-10 .mdui-col {\n float: left;\n width: 10%;\n}\n.mdui-col-xs-11 {\n float: left;\n width: 91.666667%;\n}\n.mdui-col-offset-xs-11 {\n margin-left: 91.666667%;\n}\n.mdui-row-xs-11 .mdui-col {\n float: left;\n width: 9.090909%;\n}\n.mdui-col-xs-12 {\n float: left;\n width: 100%;\n}\n.mdui-col-offset-xs-12 {\n margin-left: 100%;\n}\n.mdui-row-xs-12 .mdui-col {\n float: left;\n width: 8.333333%;\n}\n@media (min-width: 600px) {\n .mdui-col-sm-1 {\n float: left;\n width: 8.333333%;\n }\n .mdui-col-offset-sm-1 {\n margin-left: 8.333333%;\n }\n .mdui-row-sm-1 .mdui-col {\n float: left;\n width: 100%;\n }\n .mdui-col-sm-2 {\n float: left;\n width: 16.666667%;\n }\n .mdui-col-offset-sm-2 {\n margin-left: 16.666667%;\n }\n .mdui-row-sm-2 .mdui-col {\n float: left;\n width: 50%;\n }\n .mdui-col-sm-3 {\n float: left;\n width: 25%;\n }\n .mdui-col-offset-sm-3 {\n margin-left: 25%;\n }\n .mdui-row-sm-3 .mdui-col {\n float: left;\n width: 33.333333%;\n }\n .mdui-col-sm-4 {\n float: left;\n width: 33.333333%;\n }\n .mdui-col-offset-sm-4 {\n margin-left: 33.333333%;\n }\n .mdui-row-sm-4 .mdui-col {\n float: left;\n width: 25%;\n }\n .mdui-col-sm-5 {\n float: left;\n width: 41.666667%;\n }\n .mdui-col-offset-sm-5 {\n margin-left: 41.666667%;\n }\n .mdui-row-sm-5 .mdui-col {\n float: left;\n width: 20%;\n }\n .mdui-col-sm-6 {\n float: left;\n width: 50%;\n }\n .mdui-col-offset-sm-6 {\n margin-left: 50%;\n }\n .mdui-row-sm-6 .mdui-col {\n float: left;\n width: 16.666667%;\n }\n .mdui-col-sm-7 {\n float: left;\n width: 58.333333%;\n }\n .mdui-col-offset-sm-7 {\n margin-left: 58.333333%;\n }\n .mdui-row-sm-7 .mdui-col {\n float: left;\n width: 14.285714%;\n }\n .mdui-col-sm-8 {\n float: left;\n width: 66.666667%;\n }\n .mdui-col-offset-sm-8 {\n margin-left: 66.666667%;\n }\n .mdui-row-sm-8 .mdui-col {\n float: left;\n width: 12.5%;\n }\n .mdui-col-sm-9 {\n float: left;\n width: 75%;\n }\n .mdui-col-offset-sm-9 {\n margin-left: 75%;\n }\n .mdui-row-sm-9 .mdui-col {\n float: left;\n width: 11.111111%;\n }\n .mdui-col-sm-10 {\n float: left;\n width: 83.333333%;\n }\n .mdui-col-offset-sm-10 {\n margin-left: 83.333333%;\n }\n .mdui-row-sm-10 .mdui-col {\n float: left;\n width: 10%;\n }\n .mdui-col-sm-11 {\n float: left;\n width: 91.666667%;\n }\n .mdui-col-offset-sm-11 {\n margin-left: 91.666667%;\n }\n .mdui-row-sm-11 .mdui-col {\n float: left;\n width: 9.090909%;\n }\n .mdui-col-sm-12 {\n float: left;\n width: 100%;\n }\n .mdui-col-offset-sm-12 {\n margin-left: 100%;\n }\n .mdui-row-sm-12 .mdui-col {\n float: left;\n width: 8.333333%;\n }\n}\n@media (min-width: 1024px) {\n .mdui-col-md-1 {\n float: left;\n width: 8.333333%;\n }\n .mdui-col-offset-md-1 {\n margin-left: 8.333333%;\n }\n .mdui-row-md-1 .mdui-col {\n float: left;\n width: 100%;\n }\n .mdui-col-md-2 {\n float: left;\n width: 16.666667%;\n }\n .mdui-col-offset-md-2 {\n margin-left: 16.666667%;\n }\n .mdui-row-md-2 .mdui-col {\n float: left;\n width: 50%;\n }\n .mdui-col-md-3 {\n float: left;\n width: 25%;\n }\n .mdui-col-offset-md-3 {\n margin-left: 25%;\n }\n .mdui-row-md-3 .mdui-col {\n float: left;\n width: 33.333333%;\n }\n .mdui-col-md-4 {\n float: left;\n width: 33.333333%;\n }\n .mdui-col-offset-md-4 {\n margin-left: 33.333333%;\n }\n .mdui-row-md-4 .mdui-col {\n float: left;\n width: 25%;\n }\n .mdui-col-md-5 {\n float: left;\n width: 41.666667%;\n }\n .mdui-col-offset-md-5 {\n margin-left: 41.666667%;\n }\n .mdui-row-md-5 .mdui-col {\n float: left;\n width: 20%;\n }\n .mdui-col-md-6 {\n float: left;\n width: 50%;\n }\n .mdui-col-offset-md-6 {\n margin-left: 50%;\n }\n .mdui-row-md-6 .mdui-col {\n float: left;\n width: 16.666667%;\n }\n .mdui-col-md-7 {\n float: left;\n width: 58.333333%;\n }\n .mdui-col-offset-md-7 {\n margin-left: 58.333333%;\n }\n .mdui-row-md-7 .mdui-col {\n float: left;\n width: 14.285714%;\n }\n .mdui-col-md-8 {\n float: left;\n width: 66.666667%;\n }\n .mdui-col-offset-md-8 {\n margin-left: 66.666667%;\n }\n .mdui-row-md-8 .mdui-col {\n float: left;\n width: 12.5%;\n }\n .mdui-col-md-9 {\n float: left;\n width: 75%;\n }\n .mdui-col-offset-md-9 {\n margin-left: 75%;\n }\n .mdui-row-md-9 .mdui-col {\n float: left;\n width: 11.111111%;\n }\n .mdui-col-md-10 {\n float: left;\n width: 83.333333%;\n }\n .mdui-col-offset-md-10 {\n margin-left: 83.333333%;\n }\n .mdui-row-md-10 .mdui-col {\n float: left;\n width: 10%;\n }\n .mdui-col-md-11 {\n float: left;\n width: 91.666667%;\n }\n .mdui-col-offset-md-11 {\n margin-left: 91.666667%;\n }\n .mdui-row-md-11 .mdui-col {\n float: left;\n width: 9.090909%;\n }\n .mdui-col-md-12 {\n float: left;\n width: 100%;\n }\n .mdui-col-offset-md-12 {\n margin-left: 100%;\n }\n .mdui-row-md-12 .mdui-col {\n float: left;\n width: 8.333333%;\n }\n}\n@media (min-width: 1440px) {\n .mdui-col-lg-1 {\n float: left;\n width: 8.333333%;\n }\n .mdui-col-offset-lg-1 {\n margin-left: 8.333333%;\n }\n .mdui-row-lg-1 .mdui-col {\n float: left;\n width: 100%;\n }\n .mdui-col-lg-2 {\n float: left;\n width: 16.666667%;\n }\n .mdui-col-offset-lg-2 {\n margin-left: 16.666667%;\n }\n .mdui-row-lg-2 .mdui-col {\n float: left;\n width: 50%;\n }\n .mdui-col-lg-3 {\n float: left;\n width: 25%;\n }\n .mdui-col-offset-lg-3 {\n margin-left: 25%;\n }\n .mdui-row-lg-3 .mdui-col {\n float: left;\n width: 33.333333%;\n }\n .mdui-col-lg-4 {\n float: left;\n width: 33.333333%;\n }\n .mdui-col-offset-lg-4 {\n margin-left: 33.333333%;\n }\n .mdui-row-lg-4 .mdui-col {\n float: left;\n width: 25%;\n }\n .mdui-col-lg-5 {\n float: left;\n width: 41.666667%;\n }\n .mdui-col-offset-lg-5 {\n margin-left: 41.666667%;\n }\n .mdui-row-lg-5 .mdui-col {\n float: left;\n width: 20%;\n }\n .mdui-col-lg-6 {\n float: left;\n width: 50%;\n }\n .mdui-col-offset-lg-6 {\n margin-left: 50%;\n }\n .mdui-row-lg-6 .mdui-col {\n float: left;\n width: 16.666667%;\n }\n .mdui-col-lg-7 {\n float: left;\n width: 58.333333%;\n }\n .mdui-col-offset-lg-7 {\n margin-left: 58.333333%;\n }\n .mdui-row-lg-7 .mdui-col {\n float: left;\n width: 14.285714%;\n }\n .mdui-col-lg-8 {\n float: left;\n width: 66.666667%;\n }\n .mdui-col-offset-lg-8 {\n margin-left: 66.666667%;\n }\n .mdui-row-lg-8 .mdui-col {\n float: left;\n width: 12.5%;\n }\n .mdui-col-lg-9 {\n float: left;\n width: 75%;\n }\n .mdui-col-offset-lg-9 {\n margin-left: 75%;\n }\n .mdui-row-lg-9 .mdui-col {\n float: left;\n width: 11.111111%;\n }\n .mdui-col-lg-10 {\n float: left;\n width: 83.333333%;\n }\n .mdui-col-offset-lg-10 {\n margin-left: 83.333333%;\n }\n .mdui-row-lg-10 .mdui-col {\n float: left;\n width: 10%;\n }\n .mdui-col-lg-11 {\n float: left;\n width: 91.666667%;\n }\n .mdui-col-offset-lg-11 {\n margin-left: 91.666667%;\n }\n .mdui-row-lg-11 .mdui-col {\n float: left;\n width: 9.090909%;\n }\n .mdui-col-lg-12 {\n float: left;\n width: 100%;\n }\n .mdui-col-offset-lg-12 {\n margin-left: 100%;\n }\n .mdui-row-lg-12 .mdui-col {\n float: left;\n width: 8.333333%;\n }\n}\n@media (min-width: 1920px) {\n .mdui-col-xl-1 {\n float: left;\n width: 8.333333%;\n }\n .mdui-col-offset-xl-1 {\n margin-left: 8.333333%;\n }\n .mdui-row-xl-1 .mdui-col {\n float: left;\n width: 100%;\n }\n .mdui-col-xl-2 {\n float: left;\n width: 16.666667%;\n }\n .mdui-col-offset-xl-2 {\n margin-left: 16.666667%;\n }\n .mdui-row-xl-2 .mdui-col {\n float: left;\n width: 50%;\n }\n .mdui-col-xl-3 {\n float: left;\n width: 25%;\n }\n .mdui-col-offset-xl-3 {\n margin-left: 25%;\n }\n .mdui-row-xl-3 .mdui-col {\n float: left;\n width: 33.333333%;\n }\n .mdui-col-xl-4 {\n float: left;\n width: 33.333333%;\n }\n .mdui-col-offset-xl-4 {\n margin-left: 33.333333%;\n }\n .mdui-row-xl-4 .mdui-col {\n float: left;\n width: 25%;\n }\n .mdui-col-xl-5 {\n float: left;\n width: 41.666667%;\n }\n .mdui-col-offset-xl-5 {\n margin-left: 41.666667%;\n }\n .mdui-row-xl-5 .mdui-col {\n float: left;\n width: 20%;\n }\n .mdui-col-xl-6 {\n float: left;\n width: 50%;\n }\n .mdui-col-offset-xl-6 {\n margin-left: 50%;\n }\n .mdui-row-xl-6 .mdui-col {\n float: left;\n width: 16.666667%;\n }\n .mdui-col-xl-7 {\n float: left;\n width: 58.333333%;\n }\n .mdui-col-offset-xl-7 {\n margin-left: 58.333333%;\n }\n .mdui-row-xl-7 .mdui-col {\n float: left;\n width: 14.285714%;\n }\n .mdui-col-xl-8 {\n float: left;\n width: 66.666667%;\n }\n .mdui-col-offset-xl-8 {\n margin-left: 66.666667%;\n }\n .mdui-row-xl-8 .mdui-col {\n float: left;\n width: 12.5%;\n }\n .mdui-col-xl-9 {\n float: left;\n width: 75%;\n }\n .mdui-col-offset-xl-9 {\n margin-left: 75%;\n }\n .mdui-row-xl-9 .mdui-col {\n float: left;\n width: 11.111111%;\n }\n .mdui-col-xl-10 {\n float: left;\n width: 83.333333%;\n }\n .mdui-col-offset-xl-10 {\n margin-left: 83.333333%;\n }\n .mdui-row-xl-10 .mdui-col {\n float: left;\n width: 10%;\n }\n .mdui-col-xl-11 {\n float: left;\n width: 91.666667%;\n }\n .mdui-col-offset-xl-11 {\n margin-left: 91.666667%;\n }\n .mdui-row-xl-11 .mdui-col {\n float: left;\n width: 9.090909%;\n }\n .mdui-col-xl-12 {\n float: left;\n width: 100%;\n }\n .mdui-col-offset-xl-12 {\n margin-left: 100%;\n }\n .mdui-row-xl-12 .mdui-col {\n float: left;\n width: 8.333333%;\n }\n}\n/**\n * =============================================================================\n * ************ Shadow 阴影 ************\n * =============================================================================\n */\n.mdui-shadow-0 {\n box-shadow: none !important;\n}\n.mdui-shadow-1 {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-2 {\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-3 {\n box-shadow: 0 3px 3px -2px rgba(0, 0, 0, 0.2), 0 3px 4px 0 rgba(0, 0, 0, 0.14), 0 1px 8px 0 rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-4 {\n box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-5 {\n box-shadow: 0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 5px 8px 0 rgba(0, 0, 0, 0.14), 0 1px 14px 0 rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-6 {\n box-shadow: 0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-7 {\n box-shadow: 0 4px 5px -2px rgba(0, 0, 0, 0.2), 0 7px 10px 1px rgba(0, 0, 0, 0.14), 0 2px 16px 1px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-8 {\n box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-9 {\n box-shadow: 0 5px 6px -3px rgba(0, 0, 0, 0.2), 0 9px 12px 1px rgba(0, 0, 0, 0.14), 0 3px 16px 2px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-10 {\n box-shadow: 0 6px 6px -3px rgba(0, 0, 0, 0.2), 0 10px 14px 1px rgba(0, 0, 0, 0.14), 0 4px 18px 3px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-11 {\n box-shadow: 0 6px 7px -4px rgba(0, 0, 0, 0.2), 0 11px 15px 1px rgba(0, 0, 0, 0.14), 0 4px 20px 3px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-12 {\n box-shadow: 0 7px 8px -4px rgba(0, 0, 0, 0.2), 0 12px 17px 2px rgba(0, 0, 0, 0.14), 0 5px 22px 4px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-13 {\n box-shadow: 0 7px 8px -4px rgba(0, 0, 0, 0.2), 0 13px 19px 2px rgba(0, 0, 0, 0.14), 0 5px 24px 4px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-14 {\n box-shadow: 0 7px 9px -4px rgba(0, 0, 0, 0.2), 0 14px 21px 2px rgba(0, 0, 0, 0.14), 0 5px 26px 4px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-15 {\n box-shadow: 0 8px 9px -5px rgba(0, 0, 0, 0.2), 0 15px 22px 2px rgba(0, 0, 0, 0.14), 0 6px 28px 5px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-16 {\n box-shadow: 0 8px 10px -5px rgba(0, 0, 0, 0.2), 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-17 {\n box-shadow: 0 8px 11px -5px rgba(0, 0, 0, 0.2), 0 17px 26px 2px rgba(0, 0, 0, 0.14), 0 6px 32px 5px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-18 {\n box-shadow: 0 9px 11px -5px rgba(0, 0, 0, 0.2), 0 18px 28px 2px rgba(0, 0, 0, 0.14), 0 7px 34px 6px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-19 {\n box-shadow: 0 9px 12px -6px rgba(0, 0, 0, 0.2), 0 19px 29px 2px rgba(0, 0, 0, 0.14), 0 7px 36px 6px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-20 {\n box-shadow: 0 10px 13px -6px rgba(0, 0, 0, 0.2), 0 20px 31px 3px rgba(0, 0, 0, 0.14), 0 8px 38px 7px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-21 {\n box-shadow: 0 10px 13px -6px rgba(0, 0, 0, 0.2), 0 21px 33px 3px rgba(0, 0, 0, 0.14), 0 8px 40px 7px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-22 {\n box-shadow: 0 10px 14px -6px rgba(0, 0, 0, 0.2), 0 22px 35px 3px rgba(0, 0, 0, 0.14), 0 8px 42px 7px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-23 {\n box-shadow: 0 11px 14px -7px rgba(0, 0, 0, 0.2), 0 23px 36px 3px rgba(0, 0, 0, 0.14), 0 9px 44px 8px rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-shadow-24 {\n box-shadow: 0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12) !important;\n}\n/* 鼠标悬浮时加深阴影 */\n.mdui-hoverable {\n transition: box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: box-shadow;\n}\n.mdui-hoverable:hover,\n.mdui-hoverable:focus {\n box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);\n}\n/**\n * =============================================================================\n * ************ Headroom ************\n * =============================================================================\n */\n.mdui-headroom {\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;\n}\n/* 固定在顶部时 */\n.mdui-headroom-pinned-top {\n transform: translate3d(0, 0, 0) !important;\n}\n/* 在顶部隐藏时 */\n.mdui-headroom-unpinned-top {\n transform: translate3d(0, -100%, 0) !important;\n box-shadow: none !important;\n}\n/* 固定在底部时 */\n.mdui-headroom-pinned-down {\n transform: translate3d(0, 0, 0) !important;\n}\n/* 在底部隐藏时 */\n.mdui-headroom-unpinned-down {\n transform: translate3d(0, 100%, 0) !important;\n box-shadow: none !important;\n}\n/* 固定应用栏中的工具栏 */\n.mdui-headroom-pinned-toolbar {\n transform: translate3d(0, 0, 0) !important;\n}\n/* 隐藏应用栏中的工具栏 */\n.mdui-headroom-unpinned-toolbar {\n transform: translate3d(0, -56px, 0) !important;\n}\n@media (min-width: 600px) {\n .mdui-headroom-unpinned-toolbar {\n transform: translate3d(0, -64px, 0) !important;\n }\n}\n@media (orientation: landscape) and (max-width: 959.9px) {\n .mdui-headroom-unpinned-toolbar {\n transform: translate3d(0, -48px, 0) !important;\n }\n}\n/**\n * =============================================================================\n * ************ Collapse 折叠插件 ************\n * =============================================================================\n */\n.mdui-collapse-item-header .mdui-collapse-item-arrow,\n.mdui-collapse-item-header.mdui-collapse-item-arrow {\n transform: rotate(0);\n transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: transform;\n}\n.mdui-collapse-item-body {\n height: 0;\n margin-top: 0;\n margin-bottom: 0;\n padding-top: 0;\n padding-bottom: 0;\n overflow: hidden;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: height;\n}\n.mdui-collapse-item-body .mdui-list-item {\n padding-left: 72px;\n}\n.mdui-collapse-item-open > .mdui-collapse-item-header .mdui-collapse-item-arrow,\n.mdui-collapse-item-open > .mdui-collapse-item-header.mdui-collapse-item-arrow {\n transform: rotate(180deg);\n}\n.mdui-collapse-item-open > .mdui-collapse-item-body {\n height: auto;\n}\n/**\n * =============================================================================\n * ************ Expansion panel 可扩展面板 ************\n * =============================================================================\n */\n/* 可扩展面板 */\n.mdui-panel {\n box-sizing: border-box;\n width: 100%;\n}\n/* 面板项 */\n.mdui-panel-item {\n color: rgba(0, 0, 0, 0.87);\n background-color: #fff;\n transition: margin 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: margin;\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n}\n.mdui-panel-item:last-child {\n border-bottom: none;\n}\n/* 面板头部 */\n.mdui-panel-item-header {\n position: relative;\n display: flex;\n align-items: center;\n box-sizing: border-box;\n width: 100%;\n height: 48px;\n padding: 0 24px;\n font-size: 15px;\n cursor: pointer;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: height, background-color;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.mdui-panel-item-header:active {\n background-color: #EEEEEE;\n}\n/* 面板项标题 */\n.mdui-panel-item-title {\n box-sizing: border-box;\n width: 36%;\n min-width: 36%;\n padding-right: 16px;\n font-weight: 500;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n/* 面板项内容 */\n.mdui-panel-item-summary {\n flex-grow: 1;\n box-sizing: border-box;\n padding-right: 16px;\n color: rgba(0, 0, 0, 0.54);\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n/* 展开收起的图标 */\n.mdui-panel-item-arrow {\n position: absolute;\n top: 12px;\n right: 24px;\n color: rgba(0, 0, 0, 0.54);\n transform: rotate(0);\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n user-select: none;\n will-change: transform, top;\n}\n.mdui-panel-item-summary + .mdui-panel-item-arrow {\n position: relative;\n top: 0 !important;\n right: 0;\n}\n/* 面板项内容 */\n.mdui-panel-item-body {\n height: 0;\n padding: 0 24px;\n overflow: hidden;\n transition: height 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: height;\n}\n.mdui-panel-item-body::before,\n.mdui-panel-item-body::after {\n display: table;\n content: ' ';\n}\n.mdui-panel-item-body::after {\n clear: both;\n}\n.mdui-panel-item-body::before,\n.mdui-panel-item-body::after {\n display: table;\n content: ' ';\n}\n.mdui-panel-item-body::after {\n clear: both;\n}\n.mdui-panel-item-body::after {\n height: 16px;\n}\n/* 面板项操作栏 */\n.mdui-panel-item-actions {\n display: block;\n width: 100%;\n margin: 16px -24px 0 -24px;\n padding: 16px 24px 0 24px;\n text-align: right;\n border-top: 1px solid rgba(0, 0, 0, 0.12);\n}\n.mdui-panel-item-actions .mdui-btn {\n margin-left: 8px;\n}\n.mdui-panel-item-actions .mdui-btn:first-child {\n margin-left: 0;\n}\n/* 打开状态的面板项 */\n.mdui-panel-item-open {\n height: auto;\n margin-top: 16px;\n margin-bottom: 16px;\n}\n.mdui-panel-item-open > .mdui-panel-item-header {\n height: 64px;\n}\n.mdui-panel-item-open > .mdui-panel-item-header .mdui-panel-item-arrow {\n top: 20px;\n transform: rotate(180deg);\n}\n.mdui-panel-item-open > .mdui-panel-item-body {\n height: auto;\n}\n/* 使打开项上下没有边距 */\n.mdui-panel-gapless {\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n}\n.mdui-panel-gapless .mdui-panel-item {\n box-shadow: none;\n}\n.mdui-panel-gapless .mdui-panel-item-open {\n margin-top: 0;\n margin-bottom: 0;\n}\n/* 弹出面板 */\n.mdui-panel-popout .mdui-panel-item-open {\n margin-right: -16px;\n margin-left: -16px;\n}\n/**\n * =============================================================================\n * ************ Expansion panel dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark {\n /* stylelint-disable-next-line */\n}\n.mdui-theme-layout-dark .mdui-panel-item {\n color: #fff;\n background-color: #303030;\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n}\n.mdui-theme-layout-dark .mdui-panel-item:last-child {\n border-bottom: none;\n}\n.mdui-theme-layout-dark .mdui-panel-item-header:active {\n background-color: #424242;\n}\n.mdui-theme-layout-dark .mdui-panel-item-summary {\n color: rgba(255, 255, 255, 0.7);\n}\n.mdui-theme-layout-dark .mdui-panel-item-arrow {\n color: #ffffff;\n}\n.mdui-theme-layout-dark .mdui-panel-item-actions {\n border-top: 1px solid rgba(255, 255, 255, 0.12);\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto {\n /* stylelint-disable-next-line */\n }\n .mdui-theme-layout-auto .mdui-panel-item {\n color: #fff;\n background-color: #303030;\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n }\n .mdui-theme-layout-auto .mdui-panel-item:last-child {\n border-bottom: none;\n }\n .mdui-theme-layout-auto .mdui-panel-item-header:active {\n background-color: #424242;\n }\n .mdui-theme-layout-auto .mdui-panel-item-summary {\n color: rgba(255, 255, 255, 0.7);\n }\n .mdui-theme-layout-auto .mdui-panel-item-arrow {\n color: #ffffff;\n }\n .mdui-theme-layout-auto .mdui-panel-item-actions {\n border-top: 1px solid rgba(255, 255, 255, 0.12);\n }\n}\n/**\n * =============================================================================\n * ************ Table 表格 ************\n * =============================================================================\n */\n.mdui-table {\n position: relative;\n width: 100%;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.12);\n border-bottom: none;\n border-collapse: separate;\n border-spacing: 0;\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n}\n.mdui-table tbody tr {\n position: relative;\n transition: background-color 0.28s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.mdui-table th,\n.mdui-table td {\n position: relative;\n box-sizing: border-box;\n padding: 12px 28px;\n text-align: left;\n vertical-align: middle;\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n}\n.mdui-table th {\n color: rgba(0, 0, 0, 0.54);\n font-weight: 700;\n font-size: 13px;\n line-height: 32px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.mdui-table td {\n color: rgba(0, 0, 0, 0.87);\n font-size: 14px;\n line-height: 24px;\n}\n/* 每一行前面的复选框 */\n.mdui-table-cell-checkbox {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n padding-left: 24px !important;\n}\n.mdui-table-cell-checkbox .mdui-checkbox {\n margin-top: 7px;\n}\n.mdui-table-cell-checkbox + td,\n.mdui-table-cell-checkbox + th {\n padding-left: 6px !important;\n}\nth.mdui-table-cell-checkbox .mdui-checkbox {\n margin-top: 11px;\n}\n.mdui-table th:last-child,\n.mdui-table td:last-child {\n padding-right: 24px;\n}\n.mdui-table th:first-child,\n.mdui-table td:first-child {\n padding-right: 0;\n padding-left: 24px;\n}\n.mdui-table th:nth-child(2),\n.mdui-table td:nth-child(2) {\n padding-left: 24px;\n}\n/* 鼠标悬浮时行背景加深 */\n.mdui-table-hoverable tbody tr:hover {\n background-color: #EEEEEE;\n}\n/* 表格放到该元素内,使表格产生滚动条时只在该元素内滚动 */\n.mdui-table-fluid {\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n border: 1px solid rgba(0, 0, 0, 0.12);\n border-bottom: none;\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n}\n.mdui-table-fluid .mdui-table {\n box-shadow: none;\n margin: 0;\n border: none;\n}\n/* 数字列,右对齐 */\n.mdui-table-col-numeric {\n text-align: right !important;\n}\n/* 行处于选中状态 */\n.mdui-table-row-selected {\n background-color: #F5F5F5;\n}\n/**\n * =============================================================================\n * ************ Table dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-table {\n background-color: #303030;\n border: 1px solid rgba(255, 255, 255, 0.12);\n border-bottom: none;\n}\n.mdui-theme-layout-dark .mdui-table th,\n.mdui-theme-layout-dark .mdui-table td {\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n}\n.mdui-theme-layout-dark .mdui-table th {\n color: rgba(255, 255, 255, 0.7);\n}\n.mdui-theme-layout-dark .mdui-table td {\n color: #ffffff;\n}\n.mdui-theme-layout-dark .mdui-table-hoverable tbody tr:hover {\n background-color: #616161;\n}\n.mdui-theme-layout-dark .mdui-table-fluid {\n border: 1px solid rgba(255, 255, 255, 0.12);\n border-bottom: none;\n}\n.mdui-theme-layout-dark .mdui-table-fluid .mdui-table {\n box-shadow: none;\n border: none;\n}\n.mdui-theme-layout-dark .mdui-table-row-selected {\n background-color: #424242;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-table {\n background-color: #303030;\n border: 1px solid rgba(255, 255, 255, 0.12);\n border-bottom: none;\n }\n .mdui-theme-layout-auto .mdui-table th,\n .mdui-theme-layout-auto .mdui-table td {\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n }\n .mdui-theme-layout-auto .mdui-table th {\n color: rgba(255, 255, 255, 0.7);\n }\n .mdui-theme-layout-auto .mdui-table td {\n color: #ffffff;\n }\n .mdui-theme-layout-auto .mdui-table-hoverable tbody tr:hover {\n background-color: #616161;\n }\n .mdui-theme-layout-auto .mdui-table-fluid {\n border: 1px solid rgba(255, 255, 255, 0.12);\n border-bottom: none;\n }\n .mdui-theme-layout-auto .mdui-table-fluid .mdui-table {\n box-shadow: none;\n border: none;\n }\n .mdui-theme-layout-auto .mdui-table-row-selected {\n background-color: #424242;\n }\n}\n/**\n * =============================================================================\n * ************ Divider 分割线 ************\n * =============================================================================\n */\n.mdui-divider,\n.mdui-divider-light,\n.mdui-divider-dark,\n.mdui-divider-inset,\n.mdui-divider-inset-light,\n.mdui-divider-inset-dark {\n height: 1px;\n margin: -1px 0 0 0;\n border: none;\n}\n.mdui-divider-inset,\n.mdui-divider-inset-light,\n.mdui-divider-inset-dark {\n margin-left: 72px;\n}\n.mdui-divider,\n.mdui-divider-inset {\n background-color: rgba(0, 0, 0, 0.12);\n}\n.mdui-divider-light,\n.mdui-divider-inset-light {\n background-color: rgba(255, 255, 255, 0.12);\n}\n.mdui-divider-dark,\n.mdui-divider-inset-dark {\n background-color: rgba(0, 0, 0, 0.12);\n}\n/**\n * =============================================================================\n * ************ Divider dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-divider,\n.mdui-theme-layout-dark .mdui-divider-inset {\n background-color: rgba(255, 255, 255, 0.12);\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-divider,\n .mdui-theme-layout-auto .mdui-divider-inset {\n background-color: rgba(255, 255, 255, 0.12);\n }\n}\n/**\n * =============================================================================\n * ************ 涟漪动画 ************\n * =============================================================================\n */\n.mdui-ripple {\n position: relative;\n overflow: hidden;\n cursor: pointer;\n user-select: none;\n}\n/* Ripple */\n.mdui-ripple-wave {\n position: absolute !important;\n top: 0;\n left: 0;\n z-index: 1;\n margin: 0;\n padding: 0;\n font-size: 0;\n background-color: rgba(0, 0, 0, 0.1);\n border-radius: 50%;\n transform: translate3d(0, 0, 0) scale(0);\n transition-duration: 1400ms;\n pointer-events: none;\n}\n/* 有背景色的默认使用白色涟漪 */\n.mdui-ripple[class*=\"mdui-color-\"] .mdui-ripple-wave {\n background-color: rgba(255, 255, 255, 0.3);\n}\n/* 白色涟漪 */\n.mdui-ripple-white .mdui-ripple-wave {\n background-color: rgba(255, 255, 255, 0.3) !important;\n}\n/* 黑色涟漪 */\n.mdui-ripple-black .mdui-ripple-wave {\n background-color: rgba(0, 0, 0, 0.1) !important;\n}\n.mdui-ripple-wave-fill {\n opacity: 0.35;\n transition-duration: 300ms;\n}\n.mdui-ripple-wave-out {\n opacity: 0;\n transition-duration: 600ms;\n}\n/**\n * =============================================================================\n * ************ Ripple 颜色 ************\n * =============================================================================\n */\n.mdui-ripple-amber .mdui-ripple-wave {\n background-color: rgba(255, 193, 7, 0.3) !important;\n}\n.mdui-ripple-blue .mdui-ripple-wave {\n background-color: rgba(33, 150, 243, 0.3) !important;\n}\n.mdui-ripple-blue-grey .mdui-ripple-wave {\n background-color: rgba(96, 125, 139, 0.3) !important;\n}\n.mdui-ripple-brown .mdui-ripple-wave {\n background-color: rgba(121, 85, 72, 0.3) !important;\n}\n.mdui-ripple-cyan .mdui-ripple-wave {\n background-color: rgba(0, 188, 212, 0.3) !important;\n}\n.mdui-ripple-deep-orange .mdui-ripple-wave {\n background-color: rgba(255, 87, 34, 0.3) !important;\n}\n.mdui-ripple-deep-purple .mdui-ripple-wave {\n background-color: rgba(103, 58, 183, 0.3) !important;\n}\n.mdui-ripple-green .mdui-ripple-wave {\n background-color: rgba(76, 175, 80, 0.3) !important;\n}\n.mdui-ripple-grey .mdui-ripple-wave {\n background-color: rgba(158, 158, 158, 0.3) !important;\n}\n.mdui-ripple-indigo .mdui-ripple-wave {\n background-color: rgba(63, 81, 181, 0.3) !important;\n}\n.mdui-ripple-light-blue .mdui-ripple-wave {\n background-color: rgba(3, 169, 244, 0.3) !important;\n}\n.mdui-ripple-light-green .mdui-ripple-wave {\n background-color: rgba(139, 195, 74, 0.3) !important;\n}\n.mdui-ripple-lime .mdui-ripple-wave {\n background-color: rgba(205, 220, 57, 0.3) !important;\n}\n.mdui-ripple-orange .mdui-ripple-wave {\n background-color: rgba(255, 152, 0, 0.3) !important;\n}\n.mdui-ripple-pink .mdui-ripple-wave {\n background-color: rgba(233, 30, 99, 0.3) !important;\n}\n.mdui-ripple-purple .mdui-ripple-wave {\n background-color: rgba(156, 39, 176, 0.3) !important;\n}\n.mdui-ripple-red .mdui-ripple-wave {\n background-color: rgba(244, 67, 54, 0.3) !important;\n}\n.mdui-ripple-teal .mdui-ripple-wave {\n background-color: rgba(0, 150, 136, 0.3) !important;\n}\n.mdui-ripple-yellow .mdui-ripple-wave {\n background-color: rgba(255, 235, 59, 0.3) !important;\n}\n/**\n * =============================================================================\n * ************ Ripple dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-ripple-wave {\n background-color: rgba(255, 255, 255, 0.3);\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-ripple-wave {\n background-color: rgba(255, 255, 255, 0.3);\n }\n}\n/**\n * =============================================================================\n * ************ Text Field 文本框 ************\n * =============================================================================\n */\n/* 文本框外层 */\n.mdui-textfield {\n position: relative;\n padding-top: 16px;\n padding-bottom: 8px;\n overflow: hidden;\n}\n.mdui-textfield-has-bottom {\n padding-bottom: 28px;\n}\n/* 输入框 */\n.mdui-textfield-input {\n display: block;\n box-sizing: border-box;\n width: 100%;\n height: 36px;\n margin: 0;\n padding: 8px 0;\n overflow: hidden;\n color: rgba(0, 0, 0, 0.87);\n font-size: 16px;\n font-family: inherit;\n line-height: 20px;\n background: none;\n border: none;\n border-bottom: 1px solid rgba(0, 0, 0, 0.42);\n border-radius: 0;\n outline: none;\n box-shadow: none;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 0.2s;\n transition-property: border-bottom-color, padding-right, box-shadow;\n appearance: none;\n resize: none;\n}\n.mdui-textfield-input::-webkit-input-placeholder {\n color: inherit;\n opacity: 0.42;\n}\n.mdui-textfield-input:not([disabled]):hover {\n border-bottom: 1px solid rgba(0, 0, 0, 0.87);\n box-shadow: 0 1px 0 0 rgba(0, 0, 0, 0.87);\n cursor: pointer;\n}\n.mdui-textfield-input[rows] {\n height: auto !important;\n overflow: auto;\n -webkit-overflow-scrolling: touch;\n}\n/* 文本框 label */\n.mdui-textfield-label {\n display: block;\n width: 100%;\n color: rgba(0, 0, 0, 0.54);\n font-size: 16px;\n transform: scale(0.75) translateY(0);\n transform-origin: left;\n transition: all 0.2s;\n pointer-events: none;\n}\n/* 表单验证错误提示、帮助文本提示 */\n.mdui-textfield-error,\n.mdui-textfield-helper {\n position: absolute;\n bottom: 8px;\n height: 12px;\n font-size: 12px;\n line-height: 12px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.mdui-textfield-error {\n color: rgba(255, 23, 68, 0.87);\n visibility: hidden;\n}\n.mdui-textfield-helper {\n color: rgba(0, 0, 0, 0.54);\n}\n/* 表单中的图标\n ========== */\n.mdui-textfield .mdui-icon {\n position: absolute;\n bottom: 8px;\n padding: 6px;\n color: rgba(0, 0, 0, 0.54);\n}\n.mdui-textfield .mdui-icon ~ .mdui-textfield-label,\n.mdui-textfield .mdui-icon ~ .mdui-textfield-input,\n.mdui-textfield .mdui-icon ~ .mdui-textfield-error,\n.mdui-textfield .mdui-icon ~ .mdui-textfield-helper,\n.mdui-textfield .mdui-icon ~ .mdui-textfield-flex-wrap {\n /* stylelint-disable-next-line */\n width: calc(100% - 56px);\n margin-left: 56px;\n}\n.mdui-textfield-has-bottom .mdui-icon {\n bottom: 28px;\n}\n/* 聚焦状态的文本框\n ============= */\n.mdui-textfield-focus .mdui-textfield-input,\n.mdui-textfield-focus .mdui-textfield-input:hover {\n border-bottom-color: #C51162;\n box-shadow: 0 1px 0 0 #C51162;\n}\n.mdui-textfield-focus .mdui-textfield-label,\n.mdui-textfield-focus .mdui-icon {\n color: rgba(197, 17, 98, 0.87);\n}\n/* 含有浮动标签的文本框\n ================ */\n.mdui-textfield-floating-label .mdui-textfield-label {\n color: rgba(0, 0, 0, 0.35);\n transform: scale(1) translateY(27px);\n}\n.mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-textfield-floating-label.mdui-textfield-not-empty .mdui-textfield-label {\n color: rgba(0, 0, 0, 0.65);\n transform: scale(0.75) translateY(0);\n}\n.mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label {\n color: #E91E63;\n}\n/* 可展开文本框,默认向右展开\n ========== */\n.mdui-textfield-expandable {\n width: 36px;\n min-height: 36px;\n padding: 1px 0;\n transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.mdui-textfield-expandable .mdui-icon {\n bottom: 0;\n padding: 0;\n}\n.mdui-textfield-expandable .mdui-textfield-input {\n /* stylelint-disable-next-line */\n width: calc(100% - 36px);\n margin-left: 36px;\n padding-right: 0;\n}\n.mdui-textfield-expandable .mdui-textfield-icon {\n position: absolute;\n top: 0;\n left: 0;\n}\n.mdui-textfield-expandable .mdui-textfield-close {\n position: absolute;\n top: 0;\n right: 0;\n transform: scale(0);\n}\n.mdui-textfield-expandable.mdui-textfield-expanded {\n width: 100%;\n}\n.mdui-textfield-expandable.mdui-textfield-expanded .mdui-textfield-input {\n padding-right: 36px;\n}\n.mdui-textfield-expandable.mdui-textfield-expanded .mdui-textfield-close {\n transform: scale(1);\n}\n/* 表单验证不通过\n =========== */\n.mdui-textfield-invalid .mdui-textfield-input,\n.mdui-textfield-invalid-html5 .mdui-textfield-input,\n.mdui-textfield-invalid.mdui-textfield-focus .mdui-textfield-input,\n.mdui-textfield-invalid-html5.mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FF1744 !important;\n box-shadow: 0 1px 0 0 #FF1744 !important;\n}\n.mdui-textfield-invalid .mdui-textfield-label,\n.mdui-textfield-invalid-html5 .mdui-textfield-label {\n color: #FF1744 !important;\n}\n.mdui-textfield-invalid.mdui-textfield-floating-label .mdui-textfield-label,\n.mdui-textfield-invalid-html5.mdui-textfield-floating-label .mdui-textfield-label {\n color: rgba(255, 23, 68, 0.35) !important;\n}\n.mdui-textfield-invalid.mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-textfield-invalid-html5.mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-textfield-invalid.mdui-textfield-floating-label.mdui-textfield-not-empty .mdui-textfield-label,\n.mdui-textfield-invalid-html5.mdui-textfield-floating-label.mdui-textfield-not-empty .mdui-textfield-label {\n color: #FF1744 !important;\n}\n.mdui-textfield-invalid .mdui-textfield-error,\n.mdui-textfield-invalid-html5 .mdui-textfield-error {\n visibility: visible;\n}\n.mdui-textfield-invalid .mdui-textfield-error + .mdui-textfield-helper,\n.mdui-textfield-invalid-html5 .mdui-textfield-error + .mdui-textfield-helper {\n visibility: hidden;\n}\n/* 禁用表单\n ====== */\n.mdui-textfield-disabled .mdui-textfield-label,\n.mdui-textfield-disabled .mdui-textfield-input::-webkit-input-placeholder {\n color: rgba(0, 0, 0, 0.38);\n}\n.mdui-textfield-disabled .mdui-textfield-input {\n color: rgba(0, 0, 0, 0.42);\n cursor: default;\n}\n.mdui-textfield-disabled .mdui-textfield-input {\n border-bottom: 1px dashed rgba(0, 0, 0, 0.42);\n}\n/* 字数统计\n ====== */\n.mdui-textfield-counter {\n position: absolute;\n right: 8px;\n bottom: 8px;\n height: 12px;\n color: rgba(0, 0, 0, 0.54);\n font-size: 12px;\n line-height: 12px;\n}\n/**\n * =============================================================================\n * ************ Textfield dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-textfield-input {\n color: #fff;\n border-bottom-color: rgba(255, 255, 255, 0.7);\n}\n.mdui-theme-layout-dark .mdui-textfield-input::-webkit-input-placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\n.mdui-theme-layout-dark .mdui-textfield-input:not([disabled]):hover {\n border-bottom-color: #ffffff;\n box-shadow: 0 1px 0 0 #ffffff;\n}\n.mdui-theme-layout-dark .mdui-textfield .mdui-icon {\n color: rgba(255, 255, 255, 0.7);\n}\n.mdui-theme-layout-dark .mdui-textfield-label {\n color: rgba(255, 255, 255, 0.7);\n}\n.mdui-theme-layout-dark .mdui-textfield-floating-label .mdui-textfield-label {\n color: rgba(255, 255, 255, 0.35);\n}\n.mdui-theme-layout-dark .mdui-textfield-error {\n color: #FF1744;\n}\n.mdui-theme-layout-dark .mdui-textfield-helper {\n color: rgba(255, 255, 255, 0.7);\n}\n.mdui-theme-layout-dark .mdui-textfield-counter {\n color: rgba(255, 255, 255, 0.7);\n}\n.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input,\n.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input:hover {\n border-bottom-color: #FF4081;\n box-shadow: 0 1px 0 0 #FF4081;\n}\n.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label {\n color: #FF4081;\n}\n.mdui-theme-layout-dark .mdui-textfield-disabled .mdui-textfield-label,\n.mdui-theme-layout-dark .mdui-textfield-disabled .mdui-textfield-input::-webkit-input-placeholder {\n color: rgba(255, 255, 255, 0.5);\n}\n.mdui-theme-layout-dark .mdui-textfield-disabled .mdui-textfield-input {\n color: rgba(255, 255, 255, 0.5);\n}\n.mdui-theme-layout-dark .mdui-textfield-disabled .mdui-textfield-input {\n border-bottom-color: rgba(255, 255, 255, 0.7);\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-textfield-input {\n color: #fff;\n border-bottom-color: rgba(255, 255, 255, 0.7);\n }\n .mdui-theme-layout-auto .mdui-textfield-input::-webkit-input-placeholder {\n color: rgba(255, 255, 255, 0.5);\n }\n .mdui-theme-layout-auto .mdui-textfield-input:not([disabled]):hover {\n border-bottom-color: #ffffff;\n box-shadow: 0 1px 0 0 #ffffff;\n }\n .mdui-theme-layout-auto .mdui-textfield .mdui-icon {\n color: rgba(255, 255, 255, 0.7);\n }\n .mdui-theme-layout-auto .mdui-textfield-label {\n color: rgba(255, 255, 255, 0.7);\n }\n .mdui-theme-layout-auto .mdui-textfield-floating-label .mdui-textfield-label {\n color: rgba(255, 255, 255, 0.35);\n }\n .mdui-theme-layout-auto .mdui-textfield-error {\n color: #FF1744;\n }\n .mdui-theme-layout-auto .mdui-textfield-helper {\n color: rgba(255, 255, 255, 0.7);\n }\n .mdui-theme-layout-auto .mdui-textfield-counter {\n color: rgba(255, 255, 255, 0.7);\n }\n .mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input,\n .mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input:hover {\n border-bottom-color: #FF4081;\n box-shadow: 0 1px 0 0 #FF4081;\n }\n .mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label {\n color: #FF4081;\n }\n .mdui-theme-layout-auto .mdui-textfield-disabled .mdui-textfield-label,\n .mdui-theme-layout-auto .mdui-textfield-disabled .mdui-textfield-input::-webkit-input-placeholder {\n color: rgba(255, 255, 255, 0.5);\n }\n .mdui-theme-layout-auto .mdui-textfield-disabled .mdui-textfield-input {\n color: rgba(255, 255, 255, 0.5);\n }\n .mdui-theme-layout-auto .mdui-textfield-disabled .mdui-textfield-input {\n border-bottom-color: rgba(255, 255, 255, 0.7);\n }\n}\n/**\n * =============================================================================\n * ************ Textfield 强调色 ************\n * =============================================================================\n */\n.mdui-theme-accent-amber .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FFAB00;\n box-shadow: 0 1px 0 0 #FFAB00;\n}\n.mdui-theme-accent-amber .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-amber .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-amber .mdui-textfield-focus .mdui-icon {\n color: rgba(255, 171, 0, 0.87);\n}\n.mdui-theme-accent-amber.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FFD740;\n box-shadow: 0 1px 0 0 #FFD740;\n}\n.mdui-theme-accent-amber.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-amber.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-amber.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #FFD740;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-amber.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FFD740;\n box-shadow: 0 1px 0 0 #FFD740;\n }\n .mdui-theme-accent-amber.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-amber.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-amber.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #FFD740;\n }\n}\n.mdui-theme-accent-blue .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #2962FF;\n box-shadow: 0 1px 0 0 #2962FF;\n}\n.mdui-theme-accent-blue .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-blue .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-blue .mdui-textfield-focus .mdui-icon {\n color: rgba(41, 98, 255, 0.87);\n}\n.mdui-theme-accent-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #448AFF;\n box-shadow: 0 1px 0 0 #448AFF;\n}\n.mdui-theme-accent-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #448AFF;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #448AFF;\n box-shadow: 0 1px 0 0 #448AFF;\n }\n .mdui-theme-accent-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #448AFF;\n }\n}\n.mdui-theme-accent-cyan .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #00B8D4;\n box-shadow: 0 1px 0 0 #00B8D4;\n}\n.mdui-theme-accent-cyan .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-cyan .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-cyan .mdui-textfield-focus .mdui-icon {\n color: rgba(0, 184, 212, 0.87);\n}\n.mdui-theme-accent-cyan.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #18FFFF;\n box-shadow: 0 1px 0 0 #18FFFF;\n}\n.mdui-theme-accent-cyan.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-cyan.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-cyan.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #18FFFF;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-cyan.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #18FFFF;\n box-shadow: 0 1px 0 0 #18FFFF;\n }\n .mdui-theme-accent-cyan.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-cyan.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-cyan.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #18FFFF;\n }\n}\n.mdui-theme-accent-deep-orange .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #DD2C00;\n box-shadow: 0 1px 0 0 #DD2C00;\n}\n.mdui-theme-accent-deep-orange .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-deep-orange .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-deep-orange .mdui-textfield-focus .mdui-icon {\n color: rgba(221, 44, 0, 0.87);\n}\n.mdui-theme-accent-deep-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FF6E40;\n box-shadow: 0 1px 0 0 #FF6E40;\n}\n.mdui-theme-accent-deep-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-deep-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-deep-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #FF6E40;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-deep-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FF6E40;\n box-shadow: 0 1px 0 0 #FF6E40;\n }\n .mdui-theme-accent-deep-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-deep-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-deep-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #FF6E40;\n }\n}\n.mdui-theme-accent-deep-purple .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #6200EA;\n box-shadow: 0 1px 0 0 #6200EA;\n}\n.mdui-theme-accent-deep-purple .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-deep-purple .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-deep-purple .mdui-textfield-focus .mdui-icon {\n color: rgba(98, 0, 234, 0.87);\n}\n.mdui-theme-accent-deep-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #7C4DFF;\n box-shadow: 0 1px 0 0 #7C4DFF;\n}\n.mdui-theme-accent-deep-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-deep-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-deep-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #7C4DFF;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-deep-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #7C4DFF;\n box-shadow: 0 1px 0 0 #7C4DFF;\n }\n .mdui-theme-accent-deep-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-deep-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-deep-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #7C4DFF;\n }\n}\n.mdui-theme-accent-green .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #00C853;\n box-shadow: 0 1px 0 0 #00C853;\n}\n.mdui-theme-accent-green .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-green .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-green .mdui-textfield-focus .mdui-icon {\n color: rgba(0, 200, 83, 0.87);\n}\n.mdui-theme-accent-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #69F0AE;\n box-shadow: 0 1px 0 0 #69F0AE;\n}\n.mdui-theme-accent-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #69F0AE;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #69F0AE;\n box-shadow: 0 1px 0 0 #69F0AE;\n }\n .mdui-theme-accent-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #69F0AE;\n }\n}\n.mdui-theme-accent-indigo .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #304FFE;\n box-shadow: 0 1px 0 0 #304FFE;\n}\n.mdui-theme-accent-indigo .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-indigo .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-indigo .mdui-textfield-focus .mdui-icon {\n color: rgba(48, 79, 254, 0.87);\n}\n.mdui-theme-accent-indigo.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #536DFE;\n box-shadow: 0 1px 0 0 #536DFE;\n}\n.mdui-theme-accent-indigo.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-indigo.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-indigo.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #536DFE;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-indigo.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #536DFE;\n box-shadow: 0 1px 0 0 #536DFE;\n }\n .mdui-theme-accent-indigo.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-indigo.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-indigo.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #536DFE;\n }\n}\n.mdui-theme-accent-light-blue .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #0091EA;\n box-shadow: 0 1px 0 0 #0091EA;\n}\n.mdui-theme-accent-light-blue .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-light-blue .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-light-blue .mdui-textfield-focus .mdui-icon {\n color: rgba(0, 145, 234, 0.87);\n}\n.mdui-theme-accent-light-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #40C4FF;\n box-shadow: 0 1px 0 0 #40C4FF;\n}\n.mdui-theme-accent-light-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-light-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-light-blue.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #40C4FF;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-light-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #40C4FF;\n box-shadow: 0 1px 0 0 #40C4FF;\n }\n .mdui-theme-accent-light-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-light-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-light-blue.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #40C4FF;\n }\n}\n.mdui-theme-accent-light-green .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #64DD17;\n box-shadow: 0 1px 0 0 #64DD17;\n}\n.mdui-theme-accent-light-green .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-light-green .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-light-green .mdui-textfield-focus .mdui-icon {\n color: rgba(100, 221, 23, 0.87);\n}\n.mdui-theme-accent-light-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #B2FF59;\n box-shadow: 0 1px 0 0 #B2FF59;\n}\n.mdui-theme-accent-light-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-light-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-light-green.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #B2FF59;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-light-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #B2FF59;\n box-shadow: 0 1px 0 0 #B2FF59;\n }\n .mdui-theme-accent-light-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-light-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-light-green.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #B2FF59;\n }\n}\n.mdui-theme-accent-lime .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #AEEA00;\n box-shadow: 0 1px 0 0 #AEEA00;\n}\n.mdui-theme-accent-lime .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-lime .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-lime .mdui-textfield-focus .mdui-icon {\n color: rgba(174, 234, 0, 0.87);\n}\n.mdui-theme-accent-lime.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #EEFF41;\n box-shadow: 0 1px 0 0 #EEFF41;\n}\n.mdui-theme-accent-lime.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-lime.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-lime.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #EEFF41;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-lime.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #EEFF41;\n box-shadow: 0 1px 0 0 #EEFF41;\n }\n .mdui-theme-accent-lime.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-lime.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-lime.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #EEFF41;\n }\n}\n.mdui-theme-accent-orange .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FF6D00;\n box-shadow: 0 1px 0 0 #FF6D00;\n}\n.mdui-theme-accent-orange .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-orange .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-orange .mdui-textfield-focus .mdui-icon {\n color: rgba(255, 109, 0, 0.87);\n}\n.mdui-theme-accent-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FFAB40;\n box-shadow: 0 1px 0 0 #FFAB40;\n}\n.mdui-theme-accent-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-orange.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #FFAB40;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FFAB40;\n box-shadow: 0 1px 0 0 #FFAB40;\n }\n .mdui-theme-accent-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-orange.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #FFAB40;\n }\n}\n.mdui-theme-accent-pink .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #C51162;\n box-shadow: 0 1px 0 0 #C51162;\n}\n.mdui-theme-accent-pink .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-pink .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-pink .mdui-textfield-focus .mdui-icon {\n color: rgba(197, 17, 98, 0.87);\n}\n.mdui-theme-accent-pink.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FF4081;\n box-shadow: 0 1px 0 0 #FF4081;\n}\n.mdui-theme-accent-pink.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-pink.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-pink.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #FF4081;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-pink.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FF4081;\n box-shadow: 0 1px 0 0 #FF4081;\n }\n .mdui-theme-accent-pink.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-pink.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-pink.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #FF4081;\n }\n}\n.mdui-theme-accent-purple .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #AA00FF;\n box-shadow: 0 1px 0 0 #AA00FF;\n}\n.mdui-theme-accent-purple .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-purple .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-purple .mdui-textfield-focus .mdui-icon {\n color: rgba(170, 0, 255, 0.87);\n}\n.mdui-theme-accent-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #E040FB;\n box-shadow: 0 1px 0 0 #E040FB;\n}\n.mdui-theme-accent-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-purple.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #E040FB;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #E040FB;\n box-shadow: 0 1px 0 0 #E040FB;\n }\n .mdui-theme-accent-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-purple.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #E040FB;\n }\n}\n.mdui-theme-accent-red .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #D50000;\n box-shadow: 0 1px 0 0 #D50000;\n}\n.mdui-theme-accent-red .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-red .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-red .mdui-textfield-focus .mdui-icon {\n color: rgba(213, 0, 0, 0.87);\n}\n.mdui-theme-accent-red.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FF5252;\n box-shadow: 0 1px 0 0 #FF5252;\n}\n.mdui-theme-accent-red.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-red.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-red.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #FF5252;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-red.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FF5252;\n box-shadow: 0 1px 0 0 #FF5252;\n }\n .mdui-theme-accent-red.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-red.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-red.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #FF5252;\n }\n}\n.mdui-theme-accent-teal .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #00BFA5;\n box-shadow: 0 1px 0 0 #00BFA5;\n}\n.mdui-theme-accent-teal .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-teal .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-teal .mdui-textfield-focus .mdui-icon {\n color: rgba(0, 191, 165, 0.87);\n}\n.mdui-theme-accent-teal.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #64FFDA;\n box-shadow: 0 1px 0 0 #64FFDA;\n}\n.mdui-theme-accent-teal.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-teal.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-teal.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #64FFDA;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-teal.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #64FFDA;\n box-shadow: 0 1px 0 0 #64FFDA;\n }\n .mdui-theme-accent-teal.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-teal.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-teal.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #64FFDA;\n }\n}\n.mdui-theme-accent-yellow .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FFD600;\n box-shadow: 0 1px 0 0 #FFD600;\n}\n.mdui-theme-accent-yellow .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-yellow .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-yellow .mdui-textfield-focus .mdui-icon {\n color: rgba(255, 214, 0, 0.87);\n}\n.mdui-theme-accent-yellow.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FFFF00;\n box-shadow: 0 1px 0 0 #FFFF00;\n}\n.mdui-theme-accent-yellow.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-yellow.mdui-theme-layout-dark .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n.mdui-theme-accent-yellow.mdui-theme-layout-dark .mdui-textfield-focus .mdui-icon {\n color: #FFFF00;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-accent-yellow.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: #FFFF00;\n box-shadow: 0 1px 0 0 #FFFF00;\n }\n .mdui-theme-accent-yellow.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-yellow.mdui-theme-layout-auto .mdui-textfield-focus .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-theme-accent-yellow.mdui-theme-layout-auto .mdui-textfield-focus .mdui-icon {\n color: #FFFF00;\n }\n}\n/**\n * =============================================================================\n * ************ Checkbox 复选框 ************\n * =============================================================================\n */\n.mdui-checkbox {\n position: relative;\n display: inline-block;\n height: 36px;\n padding-left: 36px;\n line-height: 36px;\n cursor: pointer;\n user-select: none;\n}\n.mdui-checkbox input[type=\"checkbox\"] {\n position: absolute;\n width: 0;\n height: 0;\n overflow: hidden;\n opacity: 0;\n}\n/* 透明的圆形,用于生成圆形阴影 */\n.mdui-checkbox-icon {\n position: absolute;\n top: 9px;\n left: 0;\n display: inline-block;\n width: 18px;\n height: 18px;\n vertical-align: middle;\n background-color: transparent;\n border: none;\n border-radius: 18px;\n transition: box-shadow 0.14s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.mdui-checkbox-icon::after {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 0;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n border: 2px solid rgba(0, 0, 0, 0.54);\n border-radius: 2px;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n content: ' ';\n}\n.mdui-checkbox-icon::before {\n position: absolute;\n top: 2px;\n left: 0;\n z-index: 1;\n box-sizing: border-box;\n width: 8px;\n height: 13px;\n border-right: 2px solid #fff;\n border-bottom: 2px solid #fff;\n transform: rotateZ(37deg) scale(0);\n transform-origin: 100% 100%;\n opacity: 0;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n content: ' ';\n}\n/* 各种状态的图标 */\n.mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after {\n background-color: #FF4081;\n border-color: #FF4081;\n}\n.mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::before {\n transform: rotateZ(37deg) scale(1);\n opacity: 1;\n}\n.mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #FF4081;\n border-color: #FF4081;\n}\n.mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::before {\n top: 8px;\n left: 3px;\n width: 12px;\n height: 0;\n border-right: none;\n border-bottom: 2px solid #fff;\n border-radius: 1px;\n transform: rotateZ(0) scale(1);\n opacity: 1;\n}\n.mdui-checkbox input[type=\"checkbox\"]:disabled + .mdui-checkbox-icon::after {\n border-color: rgba(0, 0, 0, 0.26);\n}\n.mdui-checkbox input[type=\"checkbox\"]:disabled:checked + .mdui-checkbox-icon::after,\n.mdui-checkbox input[type=\"checkbox\"]:disabled:indeterminate + .mdui-checkbox-icon::after {\n background-color: rgba(0, 0, 0, 0.26) !important;\n border-color: transparent !important;\n}\n/* 阴影 */\n.mdui-checkbox:active input[type=\"checkbox\"] + .mdui-checkbox-icon,\n.mdui-checkbox input[type=\"checkbox\"]:focus + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(0, 0, 0, 0.1);\n}\n.mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(255, 64, 129, 0.16);\n}\n/**\n * =============================================================================\n * ************ Checkbox 强调色 ************\n * =============================================================================\n */\n.mdui-theme-accent-amber .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-amber .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #FFD740;\n border-color: #FFD740;\n}\n.mdui-theme-accent-amber .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-amber .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-amber .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-amber .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(255, 215, 64, 0.16);\n}\n.mdui-theme-accent-blue .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-blue .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #448AFF;\n border-color: #448AFF;\n}\n.mdui-theme-accent-blue .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-blue .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-blue .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-blue .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(68, 138, 255, 0.16);\n}\n.mdui-theme-accent-cyan .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-cyan .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #18FFFF;\n border-color: #18FFFF;\n}\n.mdui-theme-accent-cyan .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-cyan .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-cyan .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-cyan .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(24, 255, 255, 0.16);\n}\n.mdui-theme-accent-deep-orange .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-deep-orange .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #FF6E40;\n border-color: #FF6E40;\n}\n.mdui-theme-accent-deep-orange .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-deep-orange .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-deep-orange .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-deep-orange .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(255, 110, 64, 0.16);\n}\n.mdui-theme-accent-deep-purple .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-deep-purple .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #7C4DFF;\n border-color: #7C4DFF;\n}\n.mdui-theme-accent-deep-purple .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-deep-purple .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-deep-purple .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-deep-purple .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(124, 77, 255, 0.16);\n}\n.mdui-theme-accent-green .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-green .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #69F0AE;\n border-color: #69F0AE;\n}\n.mdui-theme-accent-green .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-green .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-green .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-green .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(105, 240, 174, 0.16);\n}\n.mdui-theme-accent-indigo .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-indigo .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #536DFE;\n border-color: #536DFE;\n}\n.mdui-theme-accent-indigo .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-indigo .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-indigo .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-indigo .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(83, 109, 254, 0.16);\n}\n.mdui-theme-accent-light-blue .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-light-blue .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #40C4FF;\n border-color: #40C4FF;\n}\n.mdui-theme-accent-light-blue .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-light-blue .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-light-blue .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-light-blue .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(64, 196, 255, 0.16);\n}\n.mdui-theme-accent-light-green .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-light-green .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #B2FF59;\n border-color: #B2FF59;\n}\n.mdui-theme-accent-light-green .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-light-green .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-light-green .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-light-green .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(178, 255, 89, 0.16);\n}\n.mdui-theme-accent-lime .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-lime .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #EEFF41;\n border-color: #EEFF41;\n}\n.mdui-theme-accent-lime .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-lime .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-lime .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-lime .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(238, 255, 65, 0.16);\n}\n.mdui-theme-accent-orange .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-orange .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #FFAB40;\n border-color: #FFAB40;\n}\n.mdui-theme-accent-orange .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-orange .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-orange .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-orange .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(255, 171, 64, 0.16);\n}\n.mdui-theme-accent-pink .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-pink .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #FF4081;\n border-color: #FF4081;\n}\n.mdui-theme-accent-pink .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-pink .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-pink .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-pink .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(255, 64, 129, 0.16);\n}\n.mdui-theme-accent-purple .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-purple .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #E040FB;\n border-color: #E040FB;\n}\n.mdui-theme-accent-purple .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-purple .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-purple .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-purple .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(224, 64, 251, 0.16);\n}\n.mdui-theme-accent-red .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-red .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #FF5252;\n border-color: #FF5252;\n}\n.mdui-theme-accent-red .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-red .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-red .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-red .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(255, 82, 82, 0.16);\n}\n.mdui-theme-accent-teal .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-teal .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #64FFDA;\n border-color: #64FFDA;\n}\n.mdui-theme-accent-teal .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-teal .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-teal .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-teal .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(100, 255, 218, 0.16);\n}\n.mdui-theme-accent-yellow .mdui-checkbox input[type=\"checkbox\"]:checked + .mdui-checkbox-icon::after,\n.mdui-theme-accent-yellow .mdui-checkbox input[type=\"checkbox\"]:indeterminate + .mdui-checkbox-icon::after {\n background-color: #FFFF00;\n border-color: #FFFF00;\n}\n.mdui-theme-accent-yellow .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-yellow .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):checked + .mdui-checkbox-icon,\n.mdui-theme-accent-yellow .mdui-checkbox:active input[type=\"checkbox\"]:not(:disabled):indeterminate + .mdui-checkbox-icon,\n.mdui-theme-accent-yellow .mdui-checkbox input[type=\"checkbox\"]:focus:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(255, 255, 0, 0.16);\n}\n/**\n * =============================================================================\n * ************ Checkbox dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-checkbox-icon::after {\n border-color: rgba(255, 255, 255, 0.7);\n}\n.mdui-theme-layout-dark .mdui-checkbox-icon::before {\n border-right-color: #303030 !important;\n border-bottom-color: #303030 !important;\n}\n.mdui-theme-layout-dark .mdui-checkbox input[type=\"checkbox\"]:disabled + .mdui-checkbox-icon::after {\n border-color: rgba(255, 255, 255, 0.3);\n}\n.mdui-theme-layout-dark .mdui-checkbox input[type=\"checkbox\"]:disabled:checked + .mdui-checkbox-icon::after,\n.mdui-theme-layout-dark .mdui-checkbox input[type=\"checkbox\"]:disabled:indeterminate + .mdui-checkbox-icon::after {\n background-color: rgba(255, 255, 255, 0.3) !important;\n border-color: transparent !important;\n}\n.mdui-theme-layout-dark .mdui-checkbox:active input[type=\"checkbox\"] + .mdui-checkbox-icon,\n.mdui-theme-layout-dark .mdui-checkbox input[type=\"checkbox\"]:focus + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(255, 255, 255, 0.1);\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-checkbox-icon::after {\n border-color: rgba(255, 255, 255, 0.7);\n }\n .mdui-theme-layout-auto .mdui-checkbox-icon::before {\n border-right-color: #303030 !important;\n border-bottom-color: #303030 !important;\n }\n .mdui-theme-layout-auto .mdui-checkbox input[type=\"checkbox\"]:disabled + .mdui-checkbox-icon::after {\n border-color: rgba(255, 255, 255, 0.3);\n }\n .mdui-theme-layout-auto .mdui-checkbox input[type=\"checkbox\"]:disabled:checked + .mdui-checkbox-icon::after,\n .mdui-theme-layout-auto .mdui-checkbox input[type=\"checkbox\"]:disabled:indeterminate + .mdui-checkbox-icon::after {\n background-color: rgba(255, 255, 255, 0.3) !important;\n border-color: transparent !important;\n }\n .mdui-theme-layout-auto .mdui-checkbox:active input[type=\"checkbox\"] + .mdui-checkbox-icon,\n .mdui-theme-layout-auto .mdui-checkbox input[type=\"checkbox\"]:focus + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(255, 255, 255, 0.1);\n }\n}\n/**\n * =============================================================================\n * ************ Radio 单选框 ************\n * =============================================================================\n */\n.mdui-radio {\n position: relative;\n display: inline-block;\n height: 36px;\n padding-left: 36px;\n line-height: 36px;\n cursor: pointer;\n user-select: none;\n}\n.mdui-radio input {\n position: absolute;\n width: 0;\n height: 0;\n overflow: hidden;\n opacity: 0;\n}\n/* 图标外圈 */\n.mdui-radio-icon {\n position: absolute;\n top: 9px;\n left: 0;\n display: inline-block;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n vertical-align: middle;\n border: 2px solid rgba(0, 0, 0, 0.54);\n border-radius: 18px;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.14s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.mdui-radio-icon::before {\n position: absolute;\n top: 0;\n left: 0;\n width: 14px;\n height: 14px;\n background-color: #FF4081;\n border-radius: 14px;\n transform: scale(0);\n opacity: 0;\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n content: ' ';\n}\n/* 选中状态的图标 */\n.mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #FF4081;\n}\n.mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n transform: scale(0.68);\n opacity: 1;\n}\n/* 禁用状态的图标 */\n.mdui-radio input[type=\"radio\"]:disabled + .mdui-radio-icon {\n border-color: rgba(0, 0, 0, 0.26) !important;\n}\n/* 禁用且选中状态的图标 */\n.mdui-radio input[type=\"radio\"]:disabled:checked + .mdui-radio-icon::before {\n background-color: rgba(0, 0, 0, 0.26) !important;\n}\n/* 未选中、禁用时 按下的阴影 */\n.mdui-radio:active input[type=\"radio\"] + .mdui-radio-icon,\n.mdui-radio input[type=\"radio\"]:focus + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(0, 0, 0, 0.1);\n}\n/* 已选中时按下的阴影 */\n.mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(255, 64, 129, 0.16);\n}\n/**\n * =============================================================================\n * ************ Radio 强调色 ************\n * =============================================================================\n */\n.mdui-theme-accent-amber .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #FFD740;\n}\n.mdui-theme-accent-amber .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #FFD740;\n}\n.mdui-theme-accent-amber .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-amber .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(255, 215, 64, 0.16);\n}\n.mdui-theme-accent-blue .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #448AFF;\n}\n.mdui-theme-accent-blue .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #448AFF;\n}\n.mdui-theme-accent-blue .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-blue .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(68, 138, 255, 0.16);\n}\n.mdui-theme-accent-cyan .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #18FFFF;\n}\n.mdui-theme-accent-cyan .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #18FFFF;\n}\n.mdui-theme-accent-cyan .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-cyan .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(24, 255, 255, 0.16);\n}\n.mdui-theme-accent-deep-orange .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #FF6E40;\n}\n.mdui-theme-accent-deep-orange .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #FF6E40;\n}\n.mdui-theme-accent-deep-orange .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-deep-orange .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(255, 110, 64, 0.16);\n}\n.mdui-theme-accent-deep-purple .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #7C4DFF;\n}\n.mdui-theme-accent-deep-purple .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #7C4DFF;\n}\n.mdui-theme-accent-deep-purple .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-deep-purple .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(124, 77, 255, 0.16);\n}\n.mdui-theme-accent-green .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #69F0AE;\n}\n.mdui-theme-accent-green .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #69F0AE;\n}\n.mdui-theme-accent-green .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-green .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(105, 240, 174, 0.16);\n}\n.mdui-theme-accent-indigo .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #536DFE;\n}\n.mdui-theme-accent-indigo .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #536DFE;\n}\n.mdui-theme-accent-indigo .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-indigo .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(83, 109, 254, 0.16);\n}\n.mdui-theme-accent-light-blue .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #40C4FF;\n}\n.mdui-theme-accent-light-blue .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #40C4FF;\n}\n.mdui-theme-accent-light-blue .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-light-blue .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(64, 196, 255, 0.16);\n}\n.mdui-theme-accent-light-green .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #B2FF59;\n}\n.mdui-theme-accent-light-green .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #B2FF59;\n}\n.mdui-theme-accent-light-green .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-light-green .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(178, 255, 89, 0.16);\n}\n.mdui-theme-accent-lime .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #EEFF41;\n}\n.mdui-theme-accent-lime .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #EEFF41;\n}\n.mdui-theme-accent-lime .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-lime .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(238, 255, 65, 0.16);\n}\n.mdui-theme-accent-orange .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #FFAB40;\n}\n.mdui-theme-accent-orange .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #FFAB40;\n}\n.mdui-theme-accent-orange .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-orange .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(255, 171, 64, 0.16);\n}\n.mdui-theme-accent-pink .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #FF4081;\n}\n.mdui-theme-accent-pink .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #FF4081;\n}\n.mdui-theme-accent-pink .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-pink .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(255, 64, 129, 0.16);\n}\n.mdui-theme-accent-purple .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #E040FB;\n}\n.mdui-theme-accent-purple .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #E040FB;\n}\n.mdui-theme-accent-purple .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-purple .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(224, 64, 251, 0.16);\n}\n.mdui-theme-accent-red .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #FF5252;\n}\n.mdui-theme-accent-red .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #FF5252;\n}\n.mdui-theme-accent-red .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-red .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(255, 82, 82, 0.16);\n}\n.mdui-theme-accent-teal .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #64FFDA;\n}\n.mdui-theme-accent-teal .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #64FFDA;\n}\n.mdui-theme-accent-teal .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-teal .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(100, 255, 218, 0.16);\n}\n.mdui-theme-accent-yellow .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: #FFFF00;\n}\n.mdui-theme-accent-yellow .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon::before {\n background-color: #FFFF00;\n}\n.mdui-theme-accent-yellow .mdui-radio:active input[type=\"radio\"]:checked:not(:disabled) + .mdui-radio-icon,\n.mdui-theme-accent-yellow .mdui-radio input[type=\"radio\"]:focus:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(255, 255, 0, 0.16);\n}\n/**\n * =============================================================================\n * ************ Radio dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-radio-icon {\n border-color: rgba(255, 255, 255, 0.7);\n}\n.mdui-theme-layout-dark .mdui-radio input[type=\"radio\"]:disabled + .mdui-radio-icon {\n border-color: rgba(255, 255, 255, 0.3) !important;\n}\n.mdui-theme-layout-dark .mdui-radio input[type=\"radio\"]:disabled:checked + .mdui-radio-icon::before {\n background-color: rgba(255, 255, 255, 0.3) !important;\n}\n.mdui-theme-layout-dark .mdui-radio:active input[type=\"radio\"] + .mdui-radio-icon,\n.mdui-theme-layout-dark .mdui-radio input[type=\"radio\"]:focus + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(255, 255, 255, 0.1);\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-radio-icon {\n border-color: rgba(255, 255, 255, 0.7);\n }\n .mdui-theme-layout-auto .mdui-radio input[type=\"radio\"]:disabled + .mdui-radio-icon {\n border-color: rgba(255, 255, 255, 0.3) !important;\n }\n .mdui-theme-layout-auto .mdui-radio input[type=\"radio\"]:disabled:checked + .mdui-radio-icon::before {\n background-color: rgba(255, 255, 255, 0.3) !important;\n }\n .mdui-theme-layout-auto .mdui-radio:active input[type=\"radio\"] + .mdui-radio-icon,\n .mdui-theme-layout-auto .mdui-radio input[type=\"radio\"]:focus + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(255, 255, 255, 0.1);\n }\n}\n/**\n * =============================================================================\n * ************ Switch 单选框 ************\n * =============================================================================\n */\n.mdui-switch {\n display: inline-block;\n height: 36px;\n line-height: 36px;\n cursor: pointer;\n user-select: none;\n}\n.mdui-switch input {\n position: absolute;\n width: 0;\n height: 0;\n overflow: hidden;\n opacity: 0;\n}\n/* 图标轨道 */\n.mdui-switch-icon {\n position: relative;\n display: inline-block;\n width: 36px;\n height: 14px;\n vertical-align: middle;\n background-color: rgba(0, 0, 0, 0.38);\n border-radius: 14px;\n transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.mdui-switch-icon::before {\n position: absolute;\n top: -3px;\n left: -3px;\n display: inline-block;\n width: 20px;\n height: 20px;\n background-color: #FAFAFA;\n border-radius: 20px;\n transition: box-shadow 0.14s cubic-bezier(0.4, 0, 0.2, 1), background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1), left 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n content: ' ';\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12);\n}\n/* 选中状态的图标 */\n.mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 64, 129, 0.5);\n}\n.mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n left: 20px;\n background-color: #FF4081;\n}\n/* 未选中时或禁用时 按下的阴影 */\n.mdui-switch:active input[type=\"checkbox\"] + .mdui-switch-icon::before,\n.mdui-switch input[type=\"checkbox\"]:focus + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(0, 0, 0, 0.1);\n}\n/* 已选中时按下的阴影 */\n.mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 64, 129, 0.16);\n}\n/* 禁用状态 */\n.mdui-switch input[type=\"checkbox\"]:disabled + .mdui-switch-icon {\n background-color: rgba(0, 0, 0, 0.12) !important;\n}\n.mdui-switch input[type=\"checkbox\"]:disabled + .mdui-switch-icon::before {\n background-color: #BDBDBD !important;\n}\n/**\n * =============================================================================\n * ************ Switch 强调色 ************\n * =============================================================================\n */\n.mdui-theme-accent-amber .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 215, 64, 0.5);\n}\n.mdui-theme-accent-amber .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FFD740;\n}\n.mdui-theme-accent-amber .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-amber .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 215, 64, 0.16);\n}\n.mdui-theme-accent-blue .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(68, 138, 255, 0.5);\n}\n.mdui-theme-accent-blue .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #448AFF;\n}\n.mdui-theme-accent-blue .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-blue .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(68, 138, 255, 0.16);\n}\n.mdui-theme-accent-cyan .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(24, 255, 255, 0.5);\n}\n.mdui-theme-accent-cyan .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #18FFFF;\n}\n.mdui-theme-accent-cyan .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-cyan .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(24, 255, 255, 0.16);\n}\n.mdui-theme-accent-deep-orange .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 110, 64, 0.5);\n}\n.mdui-theme-accent-deep-orange .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FF6E40;\n}\n.mdui-theme-accent-deep-orange .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-deep-orange .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 110, 64, 0.16);\n}\n.mdui-theme-accent-deep-purple .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(124, 77, 255, 0.5);\n}\n.mdui-theme-accent-deep-purple .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #7C4DFF;\n}\n.mdui-theme-accent-deep-purple .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-deep-purple .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(124, 77, 255, 0.16);\n}\n.mdui-theme-accent-green .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(105, 240, 174, 0.5);\n}\n.mdui-theme-accent-green .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #69F0AE;\n}\n.mdui-theme-accent-green .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-green .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(105, 240, 174, 0.16);\n}\n.mdui-theme-accent-indigo .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(83, 109, 254, 0.5);\n}\n.mdui-theme-accent-indigo .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #536DFE;\n}\n.mdui-theme-accent-indigo .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-indigo .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(83, 109, 254, 0.16);\n}\n.mdui-theme-accent-light-blue .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(64, 196, 255, 0.5);\n}\n.mdui-theme-accent-light-blue .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #40C4FF;\n}\n.mdui-theme-accent-light-blue .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-light-blue .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(64, 196, 255, 0.16);\n}\n.mdui-theme-accent-light-green .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(178, 255, 89, 0.5);\n}\n.mdui-theme-accent-light-green .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #B2FF59;\n}\n.mdui-theme-accent-light-green .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-light-green .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(178, 255, 89, 0.16);\n}\n.mdui-theme-accent-lime .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(238, 255, 65, 0.5);\n}\n.mdui-theme-accent-lime .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #EEFF41;\n}\n.mdui-theme-accent-lime .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-lime .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(238, 255, 65, 0.16);\n}\n.mdui-theme-accent-orange .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 171, 64, 0.5);\n}\n.mdui-theme-accent-orange .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FFAB40;\n}\n.mdui-theme-accent-orange .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-orange .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 171, 64, 0.16);\n}\n.mdui-theme-accent-pink .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 64, 129, 0.5);\n}\n.mdui-theme-accent-pink .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FF4081;\n}\n.mdui-theme-accent-pink .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-pink .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 64, 129, 0.16);\n}\n.mdui-theme-accent-purple .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(224, 64, 251, 0.5);\n}\n.mdui-theme-accent-purple .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #E040FB;\n}\n.mdui-theme-accent-purple .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-purple .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(224, 64, 251, 0.16);\n}\n.mdui-theme-accent-red .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 82, 82, 0.5);\n}\n.mdui-theme-accent-red .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FF5252;\n}\n.mdui-theme-accent-red .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-red .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 82, 82, 0.16);\n}\n.mdui-theme-accent-teal .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(100, 255, 218, 0.5);\n}\n.mdui-theme-accent-teal .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #64FFDA;\n}\n.mdui-theme-accent-teal .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-teal .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(100, 255, 218, 0.16);\n}\n.mdui-theme-accent-yellow .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 255, 0, 0.5);\n}\n.mdui-theme-accent-yellow .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FFFF00;\n}\n.mdui-theme-accent-yellow .mdui-switch:active input[type=\"checkbox\"]:checked:not(:disabled) + .mdui-switch-icon::before,\n.mdui-theme-accent-yellow .mdui-switch input[type=\"checkbox\"]:focus:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 255, 0, 0.16);\n}\n/**\n * =============================================================================\n * ************ Radio dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-switch-icon {\n background-color: rgba(255, 255, 255, 0.3);\n}\n.mdui-theme-layout-dark .mdui-switch-icon::before {\n background-color: #BDBDBD;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-amber .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 229, 127, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-amber .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FFE57F;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-blue .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(130, 177, 255, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-blue .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #82B1FF;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-cyan .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(132, 255, 255, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-cyan .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #84FFFF;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-deep-orange .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 158, 128, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-deep-orange .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FF9E80;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-deep-purple .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(179, 136, 255, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-deep-purple .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #B388FF;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-green .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(185, 246, 202, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-green .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #B9F6CA;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-indigo .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(140, 158, 255, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-indigo .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #8C9EFF;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-light-blue .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(128, 216, 255, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-light-blue .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #80D8FF;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-light-green .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(204, 255, 144, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-light-green .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #CCFF90;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-lime .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(244, 255, 129, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-lime .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #F4FF81;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-orange .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 209, 128, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-orange .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FFD180;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-pink .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 128, 171, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-pink .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FF80AB;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-purple .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(234, 128, 252, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-purple .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #EA80FC;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-red .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 138, 128, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-red .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FF8A80;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-teal .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(167, 255, 235, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-teal .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #A7FFEB;\n}\n.mdui-theme-layout-dark.mdui-theme-accent-yellow .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 255, 141, 0.5);\n}\n.mdui-theme-layout-dark.mdui-theme-accent-yellow .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FFFF8D;\n}\n.mdui-theme-layout-dark .mdui-switch:active input[type=\"checkbox\"] + .mdui-switch-icon::before,\n.mdui-theme-layout-dark .mdui-switch input[type=\"checkbox\"]:focus + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 255, 255, 0.1);\n}\n.mdui-theme-layout-dark .mdui-switch input[type=\"checkbox\"]:disabled + .mdui-switch-icon {\n background-color: rgba(255, 255, 255, 0.1) !important;\n}\n.mdui-theme-layout-dark .mdui-switch input[type=\"checkbox\"]:disabled + .mdui-switch-icon::before {\n background-color: #424242 !important;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-switch-icon {\n background-color: rgba(255, 255, 255, 0.3);\n }\n .mdui-theme-layout-auto .mdui-switch-icon::before {\n background-color: #BDBDBD;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-amber .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 229, 127, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-amber .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FFE57F;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-blue .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(130, 177, 255, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-blue .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #82B1FF;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-cyan .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(132, 255, 255, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-cyan .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #84FFFF;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-deep-orange .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 158, 128, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-deep-orange .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FF9E80;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-deep-purple .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(179, 136, 255, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-deep-purple .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #B388FF;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-green .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(185, 246, 202, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-green .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #B9F6CA;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-indigo .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(140, 158, 255, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-indigo .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #8C9EFF;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-light-blue .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(128, 216, 255, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-light-blue .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #80D8FF;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-light-green .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(204, 255, 144, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-light-green .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #CCFF90;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-lime .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(244, 255, 129, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-lime .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #F4FF81;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-orange .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 209, 128, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-orange .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FFD180;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-pink .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 128, 171, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-pink .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FF80AB;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-purple .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(234, 128, 252, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-purple .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #EA80FC;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-red .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 138, 128, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-red .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FF8A80;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-teal .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(167, 255, 235, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-teal .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #A7FFEB;\n }\n .mdui-theme-layout-auto.mdui-theme-accent-yellow .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(255, 255, 141, 0.5);\n }\n .mdui-theme-layout-auto.mdui-theme-accent-yellow .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon::before {\n background-color: #FFFF8D;\n }\n .mdui-theme-layout-auto .mdui-switch:active input[type=\"checkbox\"] + .mdui-switch-icon::before,\n .mdui-theme-layout-auto .mdui-switch input[type=\"checkbox\"]:focus + .mdui-switch-icon::before {\n box-shadow: 0 2px 1px -1px rgba(0, 0, 0, 0.2), 0 1px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 0 15px rgba(255, 255, 255, 0.1);\n }\n .mdui-theme-layout-auto .mdui-switch input[type=\"checkbox\"]:disabled + .mdui-switch-icon {\n background-color: rgba(255, 255, 255, 0.1) !important;\n }\n .mdui-theme-layout-auto .mdui-switch input[type=\"checkbox\"]:disabled + .mdui-switch-icon::before {\n background-color: #424242 !important;\n }\n}\n/**\n * =============================================================================\n * ************ Slider 滑块 ************\n * =============================================================================\n */\n.mdui-slider {\n position: relative;\n display: block;\n width: 100%;\n height: 36px;\n}\n.mdui-slider input[type=\"range\"] {\n position: absolute;\n top: 50%;\n left: 0;\n z-index: 2;\n width: 100%;\n height: 20px;\n margin-top: -10px;\n cursor: pointer;\n opacity: 0;\n appearance: none;\n}\n.mdui-slider-track,\n.mdui-slider-fill {\n position: absolute;\n top: 50%;\n box-sizing: border-box;\n height: 2px;\n margin-top: -1px;\n}\n.mdui-slider-track::before,\n.mdui-slider-fill::before {\n display: block;\n width: 100%;\n height: 100%;\n content: ' ';\n}\n/* 轨道 */\n.mdui-slider-track {\n right: 0;\n}\n.mdui-slider-track::before {\n background-color: #bdbdbd;\n transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n/* 已滑动部分 */\n.mdui-slider-fill {\n left: 0;\n}\n.mdui-slider-fill::before {\n background-color: #FF4081;\n}\n/* 滑块 */\n.mdui-slider-thumb {\n position: absolute;\n top: 50%;\n box-sizing: border-box;\n width: 12px;\n height: 12px;\n margin-top: -6px;\n background-color: #FF4081;\n border: 2px solid #FF4081;\n border-radius: 50%;\n transform: translate(-50%);\n transition: background 0.45s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.45s cubic-bezier(0.4, 0, 0.2, 1), transform 0.2s cubic-bezier(0.4, 0, 0.2, 1), border-radius 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: background, border-color, transform, border-radius;\n}\n/**\n * =============================================================================\n * ************ Slider 强调色 ************\n * =============================================================================\n */\n.mdui-theme-accent-amber .mdui-slider-fill::before {\n background-color: #FFD740;\n}\n.mdui-theme-accent-amber .mdui-slider-thumb {\n background-color: #FFD740;\n border: 2px solid #FFD740;\n}\n.mdui-theme-accent-blue .mdui-slider-fill::before {\n background-color: #448AFF;\n}\n.mdui-theme-accent-blue .mdui-slider-thumb {\n background-color: #448AFF;\n border: 2px solid #448AFF;\n}\n.mdui-theme-accent-cyan .mdui-slider-fill::before {\n background-color: #18FFFF;\n}\n.mdui-theme-accent-cyan .mdui-slider-thumb {\n background-color: #18FFFF;\n border: 2px solid #18FFFF;\n}\n.mdui-theme-accent-deep-orange .mdui-slider-fill::before {\n background-color: #FF6E40;\n}\n.mdui-theme-accent-deep-orange .mdui-slider-thumb {\n background-color: #FF6E40;\n border: 2px solid #FF6E40;\n}\n.mdui-theme-accent-deep-purple .mdui-slider-fill::before {\n background-color: #7C4DFF;\n}\n.mdui-theme-accent-deep-purple .mdui-slider-thumb {\n background-color: #7C4DFF;\n border: 2px solid #7C4DFF;\n}\n.mdui-theme-accent-green .mdui-slider-fill::before {\n background-color: #69F0AE;\n}\n.mdui-theme-accent-green .mdui-slider-thumb {\n background-color: #69F0AE;\n border: 2px solid #69F0AE;\n}\n.mdui-theme-accent-indigo .mdui-slider-fill::before {\n background-color: #536DFE;\n}\n.mdui-theme-accent-indigo .mdui-slider-thumb {\n background-color: #536DFE;\n border: 2px solid #536DFE;\n}\n.mdui-theme-accent-light-blue .mdui-slider-fill::before {\n background-color: #40C4FF;\n}\n.mdui-theme-accent-light-blue .mdui-slider-thumb {\n background-color: #40C4FF;\n border: 2px solid #40C4FF;\n}\n.mdui-theme-accent-light-green .mdui-slider-fill::before {\n background-color: #B2FF59;\n}\n.mdui-theme-accent-light-green .mdui-slider-thumb {\n background-color: #B2FF59;\n border: 2px solid #B2FF59;\n}\n.mdui-theme-accent-lime .mdui-slider-fill::before {\n background-color: #EEFF41;\n}\n.mdui-theme-accent-lime .mdui-slider-thumb {\n background-color: #EEFF41;\n border: 2px solid #EEFF41;\n}\n.mdui-theme-accent-orange .mdui-slider-fill::before {\n background-color: #FFAB40;\n}\n.mdui-theme-accent-orange .mdui-slider-thumb {\n background-color: #FFAB40;\n border: 2px solid #FFAB40;\n}\n.mdui-theme-accent-pink .mdui-slider-fill::before {\n background-color: #FF4081;\n}\n.mdui-theme-accent-pink .mdui-slider-thumb {\n background-color: #FF4081;\n border: 2px solid #FF4081;\n}\n.mdui-theme-accent-purple .mdui-slider-fill::before {\n background-color: #E040FB;\n}\n.mdui-theme-accent-purple .mdui-slider-thumb {\n background-color: #E040FB;\n border: 2px solid #E040FB;\n}\n.mdui-theme-accent-red .mdui-slider-fill::before {\n background-color: #FF5252;\n}\n.mdui-theme-accent-red .mdui-slider-thumb {\n background-color: #FF5252;\n border: 2px solid #FF5252;\n}\n.mdui-theme-accent-teal .mdui-slider-fill::before {\n background-color: #64FFDA;\n}\n.mdui-theme-accent-teal .mdui-slider-thumb {\n background-color: #64FFDA;\n border: 2px solid #64FFDA;\n}\n.mdui-theme-accent-yellow .mdui-slider-fill::before {\n background-color: #FFFF00;\n}\n.mdui-theme-accent-yellow .mdui-slider-thumb {\n background-color: #FFFF00;\n border: 2px solid #FFFF00;\n}\n/**\n * =============================================================================\n * ============ Slider 的不同状态 ============\n * =============================================================================\n */\n/* 鼠标按下状态 */\n.mdui-slider-focus .mdui-slider-track::before {\n background-color: #9e9e9e;\n}\n.mdui-slider-focus .mdui-slider-thumb {\n transform: translate(-50%) scale(1.6);\n}\n/* 滑块值为 0 */\n.mdui-slider-zero .mdui-slider-thumb {\n background-color: #fff;\n border-color: #bdbdbd;\n}\n/* 滑块值为 0,且鼠标按下 */\n.mdui-slider-zero.mdui-slider-focus .mdui-slider-thumb {\n border-color: #9e9e9e;\n}\n/* 禁用状态 */\n.mdui-slider-disabled input[type=\"range\"] {\n cursor: default;\n}\n.mdui-slider-disabled .mdui-slider-track::before {\n background-color: #bdbdbd;\n}\n.mdui-slider-disabled .mdui-slider-fill::before {\n background-color: #bdbdbd;\n}\n.mdui-slider-disabled .mdui-slider-thumb {\n background-color: #bdbdbd;\n border-color: transparent !important;\n transform: translate(-50%) scale(0.72);\n}\n/**\n * =============================================================================\n * ============ 间续型滑块 ============\n * =============================================================================\n */\n.mdui-slider-discrete .mdui-slider-thumb {\n width: 30px;\n height: 30px;\n margin-top: -15px;\n margin-left: -15px;\n border: none;\n transform: rotate(-45deg) scale(0.4);\n}\n.mdui-slider-discrete .mdui-slider-thumb span {\n position: absolute;\n top: 9px;\n left: -1px;\n width: 100%;\n color: #fff;\n font-size: 12px;\n text-align: center;\n transform: rotate(45deg);\n opacity: 0;\n transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.mdui-slider-discrete.mdui-slider-focus .mdui-slider-thumb {\n border-radius: 15px 15px 15px 0;\n transform: rotate(-45deg) scale(1) translate(22px, -22px);\n}\n.mdui-slider-discrete.mdui-slider-focus .mdui-slider-thumb span {\n opacity: 1;\n}\n.mdui-slider-discrete.mdui-slider-zero .mdui-slider-thumb {\n background-color: #323232;\n}\n.mdui-slider-discrete.mdui-slider-zero.mdui-slider-focus .mdui-slider-thumb {\n background-color: #bdbdbd;\n}\n.mdui-slider-discrete.mdui-slider-disabled .mdui-slider-thumb {\n transform: rotate(-45deg) scale(0.288);\n}\n.mdui-slider-discrete.mdui-slider-zero.mdui-slider-disabled .mdui-slider-thumb {\n background-color: #bdbdbd;\n}\n/**\n * =============================================================================\n * ************ Slider dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-slider-track::before {\n background-color: #4c4c4c;\n}\n.mdui-theme-layout-dark .mdui-slider-focus .mdui-slider-track::before {\n background-color: #4c4c4c;\n}\n.mdui-theme-layout-dark .mdui-slider-zero .mdui-slider-thumb {\n background-color: #303030;\n border-color: #4c4c4c;\n}\n.mdui-theme-layout-dark .mdui-slider-zero.mdui-slider-focus .mdui-slider-thumb {\n border-color: #4c4c4c;\n}\n.mdui-theme-layout-dark .mdui-slider-disabled .mdui-slider-track::before {\n background-color: #4c4c4c;\n}\n.mdui-theme-layout-dark .mdui-slider-disabled .mdui-slider-fill::before {\n background-color: #4c4c4c;\n}\n.mdui-theme-layout-dark .mdui-slider-disabled .mdui-slider-thumb {\n background-color: #4c4c4c;\n}\n.mdui-theme-layout-dark .mdui-slider-discrete.mdui-slider-zero .mdui-slider-thumb {\n background-color: #fefefe;\n}\n.mdui-theme-layout-dark .mdui-slider-discrete.mdui-slider-zero.mdui-slider-focus .mdui-slider-thumb {\n background-color: #5c5c5c;\n}\n.mdui-theme-layout-dark .mdui-slider-discrete.mdui-slider-zero.mdui-slider-disabled .mdui-slider-thumb {\n background-color: #4c4c4c;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-slider-track::before {\n background-color: #4c4c4c;\n }\n .mdui-theme-layout-auto .mdui-slider-focus .mdui-slider-track::before {\n background-color: #4c4c4c;\n }\n .mdui-theme-layout-auto .mdui-slider-zero .mdui-slider-thumb {\n background-color: #303030;\n border-color: #4c4c4c;\n }\n .mdui-theme-layout-auto .mdui-slider-zero.mdui-slider-focus .mdui-slider-thumb {\n border-color: #4c4c4c;\n }\n .mdui-theme-layout-auto .mdui-slider-disabled .mdui-slider-track::before {\n background-color: #4c4c4c;\n }\n .mdui-theme-layout-auto .mdui-slider-disabled .mdui-slider-fill::before {\n background-color: #4c4c4c;\n }\n .mdui-theme-layout-auto .mdui-slider-disabled .mdui-slider-thumb {\n background-color: #4c4c4c;\n }\n .mdui-theme-layout-auto .mdui-slider-discrete.mdui-slider-zero .mdui-slider-thumb {\n background-color: #fefefe;\n }\n .mdui-theme-layout-auto .mdui-slider-discrete.mdui-slider-zero.mdui-slider-focus .mdui-slider-thumb {\n background-color: #5c5c5c;\n }\n .mdui-theme-layout-auto .mdui-slider-discrete.mdui-slider-zero.mdui-slider-disabled .mdui-slider-thumb {\n background-color: #4c4c4c;\n }\n}\n/**\n * =============================================================================\n * ************ Button 按钮 ************\n * =============================================================================\n */\n/* 默认为 Flat 扁平按钮 */\n.mdui-btn,\n.mdui-fab {\n position: relative;\n display: inline-block;\n box-sizing: border-box;\n min-width: 88px;\n height: 36px;\n margin: 0;\n padding: 0 16px;\n overflow: hidden;\n color: inherit;\n font-weight: 500;\n font-size: 14px;\n line-height: 36px;\n letter-spacing: 0.04em;\n white-space: nowrap;\n text-align: center;\n text-transform: uppercase;\n text-decoration: none;\n vertical-align: middle;\n background: transparent;\n border: none;\n border-radius: 2px;\n outline: none;\n cursor: pointer;\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1);\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n touch-action: manipulation;\n will-change: box-shadow;\n zoom: 1;\n -webkit-user-drag: none;\n}\n.mdui-btn:hover,\n.mdui-fab:hover {\n background-color: rgba(0, 0, 0, 0.1);\n}\n.mdui-btn:not(.mdui-ripple):active,\n.mdui-fab:not(.mdui-ripple):active {\n background-color: rgba(0, 0, 0, 0.165);\n}\n.mdui-btn[class*=\"mdui-color-\"]:hover,\n.mdui-fab[class*=\"mdui-color-\"]:hover {\n opacity: 0.87;\n}\n.mdui-btn:not(.mdui-ripple)[class*=\"mdui-color-\"]:active,\n.mdui-fab:not(.mdui-ripple)[class*=\"mdui-color-\"]:active {\n opacity: 0.76;\n}\n/* 按钮内的图标 */\n.mdui-btn .mdui-icon-left,\n.mdui-btn .mdui-icon-right,\n.mdui-btn .mdui-icon-left::before,\n.mdui-btn .mdui-icon-right::before {\n height: inherit;\n font-size: 1.3em;\n line-height: inherit;\n}\n.mdui-btn .mdui-icon-left {\n float: left;\n margin-right: 0.4em;\n}\n.mdui-btn .mdui-icon-right {\n float: right;\n margin-left: 0.4em;\n}\ninput.mdui-btn[type=\"submit\"] {\n appearance: none;\n}\n/* Raised button 浮动按钮 */\n.mdui-btn-raised {\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n}\n.mdui-btn-raised:hover {\n box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);\n}\n.mdui-btn-raised:active {\n box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);\n}\n/* 禁用按钮 */\n.mdui-btn[disabled],\n.mdui-fab[disabled],\n.mdui-btn[disabled]:hover,\n.mdui-fab[disabled]:hover,\n.mdui-btn[disabled]:active,\n.mdui-fab[disabled]:active,\n.mdui-btn[disabled]:focus,\n.mdui-fab[disabled]:focus {\n color: rgba(0, 0, 0, 0.26) !important;\n background-color: transparent !important;\n cursor: default !important;\n opacity: 1 !important;\n box-shadow: none !important;\n}\n.mdui-btn[disabled] .mdui-icon,\n.mdui-fab[disabled] .mdui-icon,\n.mdui-btn[disabled]:hover .mdui-icon,\n.mdui-fab[disabled]:hover .mdui-icon,\n.mdui-btn[disabled]:active .mdui-icon,\n.mdui-fab[disabled]:active .mdui-icon,\n.mdui-btn[disabled]:focus .mdui-icon,\n.mdui-fab[disabled]:focus .mdui-icon {\n color: rgba(0, 0, 0, 0.26) !important;\n}\n/* 禁用状态浮动按钮和浮动操作按钮 */\n.mdui-btn-raised[disabled],\n.mdui-fab[disabled],\n.mdui-btn-raised[disabled]:hover,\n.mdui-fab[disabled]:hover,\n.mdui-btn-raised[disabled]:active,\n.mdui-fab[disabled]:active,\n.mdui-btn-raised[disabled]:focus,\n.mdui-fab[disabled]:focus {\n background-color: rgba(0, 0, 0, 0.12) !important;\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12) !important;\n}\n/* 加粗按钮文本 */\n.mdui-btn-bold {\n font-weight: bold;\n}\n/* 图标按钮 */\n.mdui-btn-icon {\n width: 36px;\n min-width: 36px;\n height: 36px;\n margin-right: 0;\n margin-left: 0;\n padding: 0;\n overflow: hidden;\n font-size: 24px;\n line-height: normal;\n border-radius: 50%;\n}\n.mdui-btn-icon .mdui-icon {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 24px;\n line-height: 24px;\n transform: translate(-12px, -12px);\n}\n.mdui-btn-icon.mdui-ripple {\n transform: translateZ(0);\n}\n/* 按钮 100% 宽度 */\n.mdui-btn-block {\n display: block;\n width: 100%;\n}\n/* 密集型按钮 */\n.mdui-btn-dense {\n height: 32px;\n font-size: 13px;\n line-height: 32px;\n}\n.mdui-btn-dense.mdui-btn-icon {\n width: 32px;\n min-width: 32px;\n}\n/* 按钮组 */\n.mdui-btn-group {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n}\n.mdui-btn-group .mdui-btn {\n float: left;\n min-width: inherit;\n padding: 0 12px;\n color: rgba(0, 0, 0, 0.54);\n border-radius: 0;\n}\n.mdui-btn-group .mdui-btn::before {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n border-left: 1px solid transparent;\n content: ' ';\n}\n.mdui-btn-group .mdui-btn:first-child {\n border-top-left-radius: 2px;\n border-bottom-left-radius: 2px;\n}\n.mdui-btn-group .mdui-btn:first-child::before {\n border-left: none;\n}\n.mdui-btn-group .mdui-btn:last-child {\n border-top-right-radius: 2px;\n border-bottom-right-radius: 2px;\n}\n.mdui-btn-group .mdui-btn.mdui-btn-active {\n color: rgba(0, 0, 0, 0.87);\n background-color: rgba(0, 0, 0, 0.215);\n}\n.mdui-btn-group .mdui-btn.mdui-btn-active + .mdui-btn-active::before {\n border-left: 1px solid rgba(0, 0, 0, 0.145);\n}\n/**\n * =============================================================================\n * ************ Button dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-btn:hover,\n.mdui-theme-layout-dark .mdui-fab:hover {\n background-color: rgba(255, 255, 255, 0.1);\n}\n.mdui-theme-layout-dark .mdui-btn:not(.mdui-ripple):active,\n.mdui-theme-layout-dark .mdui-fab:not(.mdui-ripple):active {\n background-color: rgba(255, 255, 255, 0.165);\n}\n.mdui-theme-layout-dark .mdui-btn[class*=\"mdui-color-\"]:hover,\n.mdui-theme-layout-dark .mdui-fab[class*=\"mdui-color-\"]:hover {\n opacity: 0.87;\n}\n.mdui-theme-layout-dark .mdui-btn:not(.mdui-ripple)[class*=\"mdui-color-\"]:active,\n.mdui-theme-layout-dark .mdui-fab:not(.mdui-ripple)[class*=\"mdui-color-\"]:active {\n opacity: 0.76;\n}\n.mdui-theme-layout-dark .mdui-btn[disabled],\n.mdui-theme-layout-dark .mdui-fab[disabled],\n.mdui-theme-layout-dark .mdui-btn[disabled]:hover,\n.mdui-theme-layout-dark .mdui-fab[disabled]:hover,\n.mdui-theme-layout-dark .mdui-btn[disabled]:active,\n.mdui-theme-layout-dark .mdui-fab[disabled]:active,\n.mdui-theme-layout-dark .mdui-btn[disabled]:focus,\n.mdui-theme-layout-dark .mdui-fab[disabled]:focus {\n color: rgba(255, 255, 255, 0.3) !important;\n background-color: transparent !important;\n}\n.mdui-theme-layout-dark .mdui-btn[disabled] .mdui-icon,\n.mdui-theme-layout-dark .mdui-fab[disabled] .mdui-icon,\n.mdui-theme-layout-dark .mdui-btn[disabled]:hover .mdui-icon,\n.mdui-theme-layout-dark .mdui-fab[disabled]:hover .mdui-icon,\n.mdui-theme-layout-dark .mdui-btn[disabled]:active .mdui-icon,\n.mdui-theme-layout-dark .mdui-fab[disabled]:active .mdui-icon,\n.mdui-theme-layout-dark .mdui-btn[disabled]:focus .mdui-icon,\n.mdui-theme-layout-dark .mdui-fab[disabled]:focus .mdui-icon {\n color: rgba(255, 255, 255, 0.3) !important;\n}\n.mdui-theme-layout-dark .mdui-btn-raised[disabled],\n.mdui-theme-layout-dark .mdui-fab[disabled],\n.mdui-theme-layout-dark .mdui-btn-raised[disabled]:hover,\n.mdui-theme-layout-dark .mdui-fab[disabled]:hover,\n.mdui-theme-layout-dark .mdui-btn-raised[disabled]:active,\n.mdui-theme-layout-dark .mdui-fab[disabled]:active,\n.mdui-theme-layout-dark .mdui-btn-raised[disabled]:focus,\n.mdui-theme-layout-dark .mdui-fab[disabled]:focus {\n background-color: rgba(255, 255, 255, 0.12) !important;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-btn:hover,\n .mdui-theme-layout-auto .mdui-fab:hover {\n background-color: rgba(255, 255, 255, 0.1);\n }\n .mdui-theme-layout-auto .mdui-btn:not(.mdui-ripple):active,\n .mdui-theme-layout-auto .mdui-fab:not(.mdui-ripple):active {\n background-color: rgba(255, 255, 255, 0.165);\n }\n .mdui-theme-layout-auto .mdui-btn[class*=\"mdui-color-\"]:hover,\n .mdui-theme-layout-auto .mdui-fab[class*=\"mdui-color-\"]:hover {\n opacity: 0.87;\n }\n .mdui-theme-layout-auto .mdui-btn:not(.mdui-ripple)[class*=\"mdui-color-\"]:active,\n .mdui-theme-layout-auto .mdui-fab:not(.mdui-ripple)[class*=\"mdui-color-\"]:active {\n opacity: 0.76;\n }\n .mdui-theme-layout-auto .mdui-btn[disabled],\n .mdui-theme-layout-auto .mdui-fab[disabled],\n .mdui-theme-layout-auto .mdui-btn[disabled]:hover,\n .mdui-theme-layout-auto .mdui-fab[disabled]:hover,\n .mdui-theme-layout-auto .mdui-btn[disabled]:active,\n .mdui-theme-layout-auto .mdui-fab[disabled]:active,\n .mdui-theme-layout-auto .mdui-btn[disabled]:focus,\n .mdui-theme-layout-auto .mdui-fab[disabled]:focus {\n color: rgba(255, 255, 255, 0.3) !important;\n background-color: transparent !important;\n }\n .mdui-theme-layout-auto .mdui-btn[disabled] .mdui-icon,\n .mdui-theme-layout-auto .mdui-fab[disabled] .mdui-icon,\n .mdui-theme-layout-auto .mdui-btn[disabled]:hover .mdui-icon,\n .mdui-theme-layout-auto .mdui-fab[disabled]:hover .mdui-icon,\n .mdui-theme-layout-auto .mdui-btn[disabled]:active .mdui-icon,\n .mdui-theme-layout-auto .mdui-fab[disabled]:active .mdui-icon,\n .mdui-theme-layout-auto .mdui-btn[disabled]:focus .mdui-icon,\n .mdui-theme-layout-auto .mdui-fab[disabled]:focus .mdui-icon {\n color: rgba(255, 255, 255, 0.3) !important;\n }\n .mdui-theme-layout-auto .mdui-btn-raised[disabled],\n .mdui-theme-layout-auto .mdui-fab[disabled],\n .mdui-theme-layout-auto .mdui-btn-raised[disabled]:hover,\n .mdui-theme-layout-auto .mdui-fab[disabled]:hover,\n .mdui-theme-layout-auto .mdui-btn-raised[disabled]:active,\n .mdui-theme-layout-auto .mdui-fab[disabled]:active,\n .mdui-theme-layout-auto .mdui-btn-raised[disabled]:focus,\n .mdui-theme-layout-auto .mdui-fab[disabled]:focus {\n background-color: rgba(255, 255, 255, 0.12) !important;\n }\n}\n/**\n * =============================================================================\n * ************ Fab 浮动操作按钮 ************\n * =============================================================================\n */\n/* 浮动操作按钮 */\n.mdui-fab {\n width: 56px;\n min-width: 56px;\n height: 56px;\n margin: auto;\n padding: 0 !important;\n overflow: hidden;\n font-size: 24px;\n line-height: normal !important;\n border-radius: 50%;\n box-shadow: 0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12);\n}\n.mdui-fab:hover {\n box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);\n}\n.mdui-fab:active {\n box-shadow: 0 7px 8px -4px rgba(0, 0, 0, 0.2), 0 12px 17px 2px rgba(0, 0, 0, 0.14), 0 5px 22px 4px rgba(0, 0, 0, 0.12);\n}\n.mdui-fab .mdui-icon {\n position: absolute;\n top: 0;\n left: 0;\n width: 24px;\n margin-top: 16px;\n margin-left: 16px;\n line-height: 24px;\n}\n/* mini 型浮动操作按钮 */\n.mdui-fab-mini {\n width: 40px;\n min-width: 40px;\n height: 40px;\n}\n.mdui-fab-mini .mdui-icon {\n margin-top: 8px;\n margin-left: 8px;\n}\n/* 固定到右下角的 FAB 按钮 */\n.mdui-fab-fixed,\n.mdui-fab-wrapper {\n position: fixed !important;\n /* 手机平板上距离屏幕右下角 16px */\n right: 16px;\n bottom: 16px;\n}\n@media (min-width: 1024px) {\n .mdui-fab-fixed,\n .mdui-fab-wrapper {\n /* 电脑上距离屏幕右下角 24px */\n right: 24px;\n bottom: 24px;\n }\n}\n/* 含菜单的浮动操作按钮 */\n.mdui-fab-wrapper {\n position: relative;\n z-index: 4000;\n width: 56px;\n height: 56px;\n padding-top: 8px;\n text-align: center;\n}\n.mdui-fab-wrapper > .mdui-fab .mdui-icon:not(.mdui-fab-opened) {\n opacity: 1;\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: opacity, transform;\n}\n.mdui-fab-wrapper > .mdui-fab .mdui-icon.mdui-fab-opened {\n transform: rotate(225deg);\n opacity: 0;\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: opacity, transform;\n}\n.mdui-fab-wrapper > .mdui-fab.mdui-fab-opened .mdui-icon:not(.mdui-fab-opened) {\n transform: rotate(225deg);\n opacity: 0;\n}\n.mdui-fab-wrapper > .mdui-fab.mdui-fab-opened .mdui-icon.mdui-fab-opened {\n transform: rotate(360deg);\n opacity: 1;\n}\n.mdui-fab-wrapper > .mdui-fab-mini {\n margin-top: 8px;\n}\n.mdui-fab-wrapper .mdui-fab-dial {\n position: absolute;\n right: 0;\n bottom: 64px;\n left: 0;\n height: 0;\n text-align: center;\n visibility: visible;\n}\n.mdui-fab-wrapper .mdui-fab-dial .mdui-fab {\n margin: 8px 0;\n transform: scale(0);\n opacity: 0;\n transition: box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), color 0.2s cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n.mdui-fab-wrapper .mdui-fab-dial.mdui-fab-dial-show .mdui-fab {\n transform: scale(1);\n opacity: 1;\n}\n/* 添加类 .mdui-fab-hide 以动画的形式隐藏按钮 */\n.mdui-fab,\n.mdui-fab-mini,\n.mdui-fab-wrapper {\n transform: scale(1) translateZ(0);\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s cubic-bezier(0.4, 0, 1, 1), transform 0.2s;\n will-change: transform;\n}\n.mdui-fab.mdui-fab-hide,\n.mdui-fab-mini.mdui-fab-hide,\n.mdui-fab-wrapper.mdui-fab-hide {\n transform: scale(0) translateZ(0);\n}\n/**\n * =============================================================================\n * ************ Select 下拉选择 ************\n * =============================================================================\n */\n.mdui-select {\n position: relative;\n display: inline-block;\n box-sizing: border-box;\n max-width: 100%;\n height: 36px;\n padding-right: 24px;\n padding-left: 0;\n font-size: 16px;\n font-family: Roboto, Noto, Helvetica, Arial, sans-serif;\n vertical-align: middle;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M-.003 2.5l5 5 5-5h-10z' opacity='.54'/%3E%3C/svg%3E\");\n background-repeat: no-repeat;\n background-position: right center;\n border: none;\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n outline: none;\n cursor: pointer;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 0.2s;\n transition-property: background-color, box-shadow, background-position-x;\n appearance: none;\n user-select: none;\n will-change: background-color, box-shadow, background-position-x;\n}\n.mdui-select.mdui-select-open {\n border-bottom: none;\n}\n.mdui-select-position-top {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M10.003 7.5l-5-5-5 5h10z' opacity='.54'/%3E%3C/svg%3E\");\n}\n/* 底部和顶部菜单的样式 */\n.mdui-select-open.mdui-select-position-top,\n.mdui-select-open.mdui-select-position-bottom {\n z-index: 99999;\n background-color: #fff;\n /* stylelint-disable-next-line */\n background-position-x: calc(100% - 12px);\n border-radius: 2px;\n}\n.mdui-select-open.mdui-select-position-top {\n border-top: 1px solid rgba(0, 0, 0, 0.12);\n border-bottom: 2px solid transparent;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n box-shadow: 0 10px 10px -3px rgba(0, 0, 0, 0.2), 0 0 14px 1px rgba(0, 0, 0, 0.14), 0 -7px 24px 2px rgba(0, 0, 0, 0.12);\n}\n.mdui-select-open.mdui-select-position-top .mdui-select-menu {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n box-shadow: 0 -4px 4px -2px rgba(0, 0, 0, 0.06), 8px 0 8px -4px rgba(0, 0, 0, 0.12), -8px 0 8px -4px rgba(0, 0, 0, 0.12);\n}\n.mdui-select-open.mdui-select-position-bottom {\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);\n}\n.mdui-select-open.mdui-select-position-bottom .mdui-select-menu {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 9px 9px 1px rgba(0, 0, 0, 0.14), 0 8px 8px 2px rgba(0, 0, 0, 0.06);\n}\n/* 当前选中项文本 */\n.mdui-select-selected {\n position: absolute;\n top: 50%;\n right: 24px;\n left: 0;\n display: block;\n transform: translateY(-50%);\n transition: left 0.2s cubic-bezier(0, 0, 0.2, 1);\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.mdui-select-open .mdui-select-selected {\n right: 32px;\n left: 16px;\n}\n.mdui-select-open.mdui-select-position-auto .mdui-select-selected {\n visibility: hidden;\n}\n/* 菜单 */\n.mdui-select-menu {\n position: relative;\n z-index: 99999;\n box-sizing: border-box;\n height: 36px;\n margin: 0 -24px 0 0;\n overflow-y: scroll;\n color: rgba(0, 0, 0, 0.87);\n background-color: #fff;\n border-radius: 2px;\n transform: scale(1, 0);\n visibility: hidden;\n cursor: default;\n opacity: 0;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n transition-duration: 0.2s;\n transition-property: transform, opacity, visibility;\n will-change: transform, opacity, visibility;\n -webkit-overflow-scrolling: touch;\n box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);\n}\n.mdui-select-open .mdui-select-menu {\n overflow-y: hidden;\n transform: scale(1, 1);\n visibility: visible;\n opacity: 1;\n}\n.mdui-select-closing .mdui-select-menu {\n overflow-y: hidden;\n box-shadow: none;\n transform: scale(1, 1);\n visibility: visible;\n opacity: 0;\n}\n/* 菜单项 */\n.mdui-select-menu-item {\n height: 48px;\n padding: 0 16px;\n line-height: 48px;\n cursor: pointer;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.mdui-select-menu-item:hover {\n background-color: #EEEEEE;\n}\n.mdui-select-menu-item:first-child {\n margin-top: 8px;\n}\n.mdui-select-menu-item:last-child {\n margin-bottom: 8px;\n}\n.mdui-select-menu-item[disabled] {\n color: rgba(0, 0, 0, 0.38) !important;\n cursor: default;\n}\n.mdui-select-menu-item[disabled]:hover {\n background-color: inherit !important;\n}\n.mdui-select-menu-item[selected] {\n color: #FF4081;\n}\n/* 原生 select 组件 */\nselect.mdui-select {\n background-color: transparent;\n}\nselect.mdui-select option {\n color: rgba(0, 0, 0, 0.87);\n}\nselect.mdui-select::-ms-expand {\n display: none;\n}\n/* 原生多选 select 组件 */\nselect.mdui-select[multiple] {\n height: auto;\n padding: 0;\n font-size: 15px;\n background-color: #FFF;\n background-image: none;\n border: 1px solid rgba(0, 0, 0, 0.38);\n cursor: default;\n}\nselect.mdui-select[multiple] optgroup {\n margin: 8px 0 0 0;\n padding: 0 0 0 16px;\n color: rgba(0, 0, 0, 0.38);\n}\nselect.mdui-select[multiple] optgroup:last-child {\n margin-bottom: 8px;\n}\nselect.mdui-select[multiple] optgroup:not(:first-child) {\n padding-top: 8px;\n border-top: 1px solid rgba(0, 0, 0, 0.12);\n}\nselect.mdui-select[multiple] option {\n display: flex;\n align-items: center;\n height: 32px;\n margin: 0 0 0 -16px;\n padding: 0 16px;\n color: rgba(0, 0, 0, 0.87);\n}\nselect.mdui-select[multiple] option:first-child {\n margin-top: 8px;\n}\nselect.mdui-select[multiple] option:last-child {\n margin-bottom: 8px;\n}\n/**\n * =============================================================================\n * ************ Select 强调色 ************\n * =============================================================================\n */\n.mdui-theme-accent-amber .mdui-select-menu-item[selected] {\n color: #FFC107;\n}\n.mdui-theme-accent-blue .mdui-select-menu-item[selected] {\n color: #2196F3;\n}\n.mdui-theme-accent-cyan .mdui-select-menu-item[selected] {\n color: #00BCD4;\n}\n.mdui-theme-accent-deep-orange .mdui-select-menu-item[selected] {\n color: #FF5722;\n}\n.mdui-theme-accent-deep-purple .mdui-select-menu-item[selected] {\n color: #673AB7;\n}\n.mdui-theme-accent-green .mdui-select-menu-item[selected] {\n color: #4CAF50;\n}\n.mdui-theme-accent-indigo .mdui-select-menu-item[selected] {\n color: #3F51B5;\n}\n.mdui-theme-accent-light-blue .mdui-select-menu-item[selected] {\n color: #03A9F4;\n}\n.mdui-theme-accent-light-green .mdui-select-menu-item[selected] {\n color: #8BC34A;\n}\n.mdui-theme-accent-lime .mdui-select-menu-item[selected] {\n color: #CDDC39;\n}\n.mdui-theme-accent-orange .mdui-select-menu-item[selected] {\n color: #FF9800;\n}\n.mdui-theme-accent-pink .mdui-select-menu-item[selected] {\n color: #E91E63;\n}\n.mdui-theme-accent-purple .mdui-select-menu-item[selected] {\n color: #9C27B0;\n}\n.mdui-theme-accent-red .mdui-select-menu-item[selected] {\n color: #F44336;\n}\n.mdui-theme-accent-teal .mdui-select-menu-item[selected] {\n color: #009688;\n}\n.mdui-theme-accent-yellow .mdui-select-menu-item[selected] {\n color: #FFEB3B;\n}\n/**\n * =============================================================================\n * ************ Select dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-select {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M-.003 2.5l5 5 5-5h-10z' fill='%23FFF'/%3E%3C/svg%3E\");\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n}\n.mdui-theme-layout-dark .mdui-select-position-top {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M10.003 7.5l-5-5-5 5h10z' fill='%23FFF'/%3E%3C/svg%3E\");\n}\n.mdui-theme-layout-dark .mdui-select-open.mdui-select-position-top,\n.mdui-theme-layout-dark .mdui-select-open.mdui-select-position-bottom {\n background-color: #424242;\n}\n.mdui-theme-layout-dark .mdui-select-open.mdui-select-position-top {\n border-top: 1px solid rgba(255, 255, 255, 0.12);\n}\n.mdui-theme-layout-dark .mdui-select-open.mdui-select-position-bottom {\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n}\n.mdui-theme-layout-dark .mdui-select-menu {\n color: #fff;\n background-color: #424242;\n}\n.mdui-theme-layout-dark .mdui-select-menu-item:hover {\n background-color: #616161;\n}\n.mdui-theme-layout-dark .mdui-select-menu-item[disabled] {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n.mdui-theme-layout-dark select.mdui-select {\n color: #FFF;\n background-color: #303030;\n}\n.mdui-theme-layout-dark select.mdui-select option {\n color: #FFF;\n background-color: #303030;\n}\n.mdui-theme-layout-dark select.mdui-select[multiple] {\n border: 1px solid rgba(255, 255, 255, 0.5);\n}\n.mdui-theme-layout-dark select.mdui-select[multiple] optgroup {\n color: rgba(255, 255, 255, 0.5);\n}\n.mdui-theme-layout-dark select.mdui-select[multiple] optgroup:not(:first-child) {\n border-top: 1px solid rgba(255, 255, 255, 0.12);\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-select {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M-.003 2.5l5 5 5-5h-10z' fill='%23FFF'/%3E%3C/svg%3E\");\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n }\n .mdui-theme-layout-auto .mdui-select-position-top {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M10.003 7.5l-5-5-5 5h10z' fill='%23FFF'/%3E%3C/svg%3E\");\n }\n .mdui-theme-layout-auto .mdui-select-open.mdui-select-position-top,\n .mdui-theme-layout-auto .mdui-select-open.mdui-select-position-bottom {\n background-color: #424242;\n }\n .mdui-theme-layout-auto .mdui-select-open.mdui-select-position-top {\n border-top: 1px solid rgba(255, 255, 255, 0.12);\n }\n .mdui-theme-layout-auto .mdui-select-open.mdui-select-position-bottom {\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n }\n .mdui-theme-layout-auto .mdui-select-menu {\n color: #fff;\n background-color: #424242;\n }\n .mdui-theme-layout-auto .mdui-select-menu-item:hover {\n background-color: #616161;\n }\n .mdui-theme-layout-auto .mdui-select-menu-item[disabled] {\n color: rgba(255, 255, 255, 0.5) !important;\n }\n .mdui-theme-layout-auto select.mdui-select {\n color: #FFF;\n background-color: #303030;\n }\n .mdui-theme-layout-auto select.mdui-select option {\n color: #FFF;\n background-color: #303030;\n }\n .mdui-theme-layout-auto select.mdui-select[multiple] {\n border: 1px solid rgba(255, 255, 255, 0.5);\n }\n .mdui-theme-layout-auto select.mdui-select[multiple] optgroup {\n color: rgba(255, 255, 255, 0.5);\n }\n .mdui-theme-layout-auto select.mdui-select[multiple] optgroup:not(:first-child) {\n border-top: 1px solid rgba(255, 255, 255, 0.12);\n }\n}\n/**\n * =============================================================================\n * ************ Toolbar 工具栏 ************\n * =============================================================================\n */\n.mdui-toolbar {\n display: flex;\n align-items: center;\n box-sizing: border-box;\n width: 100%;\n}\n.mdui-toolbar > * {\n margin: 0 16px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.mdui-toolbar[class*=\"mdui-color-\"]:not(.mdui-color-transparent) .mdui-btn:hover {\n background-color: rgba(255, 255, 255, 0.1);\n}\n.mdui-toolbar[class*=\"mdui-color-\"]:not(.mdui-color-transparent) .mdui-btn:active {\n background-color: rgba(255, 255, 255, 0.165);\n}\n.mdui-toolbar > a {\n color: inherit;\n text-decoration: none;\n user-select: none;\n}\n.mdui-toolbar > .mdui-btn-icon {\n width: 48px;\n min-width: 48px;\n height: 48px;\n}\n@media (orientation: landscape) and (max-width: 959.9px) {\n .mdui-toolbar > .mdui-btn-icon {\n width: 40px;\n min-width: 40px;\n height: 40px;\n }\n}\n.mdui-toolbar > .mdui-btn-icon .mdui-icon {\n height: 24px;\n line-height: 24px;\n}\n.mdui-toolbar .mdui-icon {\n color: inherit;\n}\n.mdui-toolbar-spacer {\n flex-grow: 1;\n margin: 0;\n}\n/* 手机 */\n.mdui-toolbar {\n height: 56px;\n line-height: 56px;\n}\n.mdui-toolbar > .mdui-btn {\n margin: 0 4px;\n}\n.mdui-toolbar > .mdui-btn + .mdui-btn {\n margin-left: 0;\n}\n@media (min-width: 600px) {\n .mdui-appbar .mdui-toolbar {\n height: 64px;\n line-height: 64px;\n }\n .mdui-appbar .mdui-toolbar > .mdui-btn {\n margin: 0 8px;\n }\n .mdui-appbar .mdui-toolbar > .mdui-btn + .mdui-btn {\n margin-left: 0;\n }\n}\n@media (orientation: landscape) and (max-width: 959.9px) {\n .mdui-appbar .mdui-toolbar {\n height: 48px;\n line-height: 48px;\n }\n .mdui-appbar .mdui-toolbar > .mdui-btn {\n margin: 0 4px;\n }\n .mdui-appbar .mdui-toolbar > .mdui-btn + .mdui-btn {\n margin-left: 0;\n }\n}\n/**\n * =============================================================================\n * ************ Appbar 应用栏 ************\n * =============================================================================\n */\n.mdui-appbar {\n z-index: 1000;\n box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);\n}\n/* appbar 固定在顶部 */\n.mdui-appbar-fixed {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n transition-duration: 0.3s;\n transition-property: left, right;\n will-change: left, right;\n}\n/* 左侧留出抽屉栏的距离 */\n@media (min-width: 1024px) {\n .mdui-drawer-body-left .mdui-appbar-inset.mdui-appbar-fixed {\n left: 240px;\n }\n}\n@media (min-width: 1024px) {\n .mdui-drawer-body-right .mdui-appbar-inset.mdui-appbar-fixed {\n right: 240px;\n }\n}\n/* 含工具栏 */\n.mdui-appbar-with-toolbar {\n padding-top: 56px;\n}\n@media (min-width: 600px) {\n .mdui-appbar-with-toolbar {\n padding-top: 64px;\n }\n}\n@media (orientation: landscape) and (max-width: 959.9px) {\n .mdui-appbar-with-toolbar {\n padding-top: 48px;\n }\n}\n/* 含 Tab */\n.mdui-appbar-with-tab {\n padding-top: 48px;\n}\n/* 含大 Tab */\n.mdui-appbar-with-tab-larger {\n padding-top: 72px;\n}\n/* 含工具栏和 Tab */\n.mdui-appbar-with-toolbar.mdui-appbar-with-tab {\n padding-top: 104px;\n}\n@media (min-width: 600px) {\n .mdui-appbar-with-toolbar.mdui-appbar-with-tab {\n padding-top: 112px;\n }\n}\n@media (orientation: landscape) and (max-width: 959.9px) {\n .mdui-appbar-with-toolbar.mdui-appbar-with-tab {\n padding-top: 96px;\n }\n}\n/* 含工具栏和大 Tab */\n.mdui-appbar-with-toolbar.mdui-appbar-with-tab-larger {\n padding-top: 128px;\n}\n@media (min-width: 600px) {\n .mdui-appbar-with-toolbar.mdui-appbar-with-tab-larger {\n padding-top: 136px;\n }\n}\n@media (orientation: landscape) and (max-width: 959.9px) {\n .mdui-appbar-with-toolbar.mdui-appbar-with-tab-larger {\n padding-top: 120px;\n }\n}\n/**\n * =============================================================================\n * ************ Appbar dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-appbar > [class*=\"mdui-color-\"]:not(.mdui-color-transparent) {\n color: #fff !important;\n background-color: #212121 !important;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-appbar > [class*=\"mdui-color-\"]:not(.mdui-color-transparent) {\n color: #fff !important;\n background-color: #212121 !important;\n }\n}\n/**\n * =============================================================================\n * ************ Card 卡片 ************\n * =============================================================================\n */\n/* 卡片 */\n.mdui-card {\n position: relative;\n box-sizing: border-box;\n overflow: hidden;\n color: #000;\n background-color: #fff;\n border-radius: 2px;\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n}\n/**\n * ===================== 头部,包含头像、标题、副标题\n */\n.mdui-card-header {\n position: relative;\n box-sizing: border-box;\n height: 72px;\n padding: 16px;\n}\n/* 卡片头部头像 */\n.mdui-card-header-avatar {\n float: left;\n width: 40px;\n height: 40px;\n border-radius: 50%;\n}\n/* 卡片头部标题 */\n.mdui-card-header-title {\n display: block;\n margin-left: 52px;\n font-weight: 500;\n font-size: 16px;\n line-height: 20px;\n opacity: 0.87;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n/* 卡片头部副标题 */\n.mdui-card-header-subtitle {\n display: block;\n margin-left: 52px;\n font-weight: 400;\n font-size: 14px;\n line-height: 20px;\n opacity: 0.54;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n/**\n * =========================== 主标题区域\n */\n.mdui-card-primary {\n position: relative;\n padding: 24px 16px 16px 16px;\n}\n/* 主标题区域标题 */\n.mdui-card-primary-title {\n display: block;\n font-size: 24px;\n line-height: 36px;\n opacity: 0.87;\n}\n/* 主标题区域副标题 */\n.mdui-card-primary-subtitle {\n display: block;\n font-size: 14px;\n line-height: 24px;\n opacity: 0.54;\n}\n/**\n * ============================ 内容区域\n */\n.mdui-card-content {\n position: relative;\n padding: 16px;\n font-size: 14px;\n line-height: 24px;\n}\n/**\n * ============================ 卡片菜单\n */\n.mdui-card-menu {\n position: absolute;\n top: 16px;\n right: 16px;\n z-index: 1;\n}\n.mdui-card-menu .mdui-btn {\n margin-left: 8px;\n}\n/**\n * =========================== 按钮区域\n */\n.mdui-card-actions {\n position: relative;\n box-sizing: border-box;\n padding: 8px;\n}\n.mdui-card-actions::before,\n.mdui-card-actions::after {\n display: table;\n content: ' ';\n}\n.mdui-card-actions::after {\n clear: both;\n}\n.mdui-card-actions::before,\n.mdui-card-actions::after {\n display: table;\n content: ' ';\n}\n.mdui-card-actions::after {\n clear: both;\n}\n.mdui-card-actions .mdui-btn {\n max-width: 100%;\n margin: 0 8px 0 0;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.mdui-card-actions .mdui-btn-icon {\n width: 36px;\n height: 36px;\n margin: 0 8px;\n}\n/* 使按钮竖向排列 */\n.mdui-card-actions-stacked .mdui-btn {\n display: block;\n margin: 0 0 4px 0;\n}\n.mdui-card-actions-stacked .mdui-btn:last-child {\n margin: 0;\n}\n/**\n * ============================= 媒体元素区域\n */\n.mdui-card-media {\n position: relative;\n}\n.mdui-card-media img,\n.mdui-card-media video {\n display: block;\n width: 100%;\n}\n/* 覆盖在媒体元素上的内容 */\n.mdui-card-media-covered {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n color: #fff;\n background: rgba(0, 0, 0, 0.2);\n /* 覆盖在媒体元素上的标题 */\n}\n.mdui-card-media-covered .mdui-card-primary-title {\n opacity: 1;\n}\n.mdui-card-media-covered .mdui-card-primary-subtitle {\n opacity: 0.7;\n}\n/* 覆盖在媒体元素顶部 */\n.mdui-card-media-covered-top {\n top: 0;\n bottom: auto;\n}\n/* 覆盖层透明 */\n.mdui-card-media-covered-transparent {\n background: transparent;\n}\n/* 覆盖层渐变 */\n.mdui-card-media-covered-gradient {\n background: linear-gradient(to top, rgba(0, 0, 0, 0.26), rgba(0, 0, 0, 0));\n}\n.mdui-card-media-covered-gradient.mdui-card-media-covered-top {\n background: linear-gradient(to bottom, rgba(0, 0, 0, 0.26), rgba(0, 0, 0, 0));\n}\n/**\n * =============================================================================\n * ************ Card dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-card {\n color: #fff;\n background-color: #424242;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-card {\n color: #fff;\n background-color: #424242;\n }\n}\n/**\n * =============================================================================\n * ************ Tab ************\n * =============================================================================\n *\n * 在手机上选项卡始终平分或可滚动,在平板以上的设备上默认左对齐,可以选择居中对齐,或全宽等分\n */\n/* 选项卡,默认的选项卡为全宽 */\n.mdui-tab {\n position: relative;\n display: flex;\n min-height: 48px;\n max-height: 72px;\n margin: 0 auto;\n padding: 0;\n overflow-x: auto;\n overflow-y: hidden;\n white-space: nowrap;\n -webkit-overflow-scrolling: touch;\n}\n.mdui-tab a {\n display: flex;\n flex: 1;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n min-width: 72px;\n min-height: 48px;\n max-height: 72px;\n padding: 12px;\n overflow: hidden;\n color: inherit;\n font-size: 14px;\n text-align: center;\n text-transform: uppercase;\n text-decoration: none;\n text-overflow: ellipsis;\n outline: none;\n cursor: pointer;\n opacity: 0.7;\n user-select: none;\n}\n.mdui-tab a .mdui-icon {\n opacity: 0.7;\n}\n@media (min-width: 600px) {\n .mdui-tab a {\n flex: none;\n min-width: 99px;\n max-width: 264px;\n padding: 12px 24px;\n }\n}\n@media (min-width: 1024px) {\n .mdui-tab a {\n min-width: 112px;\n }\n}\n@media (min-width: 1440px) {\n .mdui-tab a {\n min-width: 136px;\n }\n}\n@media (min-width: 1920px) {\n .mdui-tab a {\n min-width: 160px;\n }\n}\n.mdui-tab a label {\n display: block;\n width: 100%;\n cursor: pointer;\n}\n.mdui-tab a .mdui-icon + label {\n margin-top: 8px;\n}\n.mdui-tab a[disabled] {\n cursor: default;\n opacity: 0.38;\n}\n.mdui-tab a[disabled] label {\n cursor: default;\n}\n.mdui-tab .mdui-tab-active {\n color: #3F51B5;\n opacity: 1;\n}\n.mdui-tab .mdui-tab-active .mdui-icon {\n opacity: 1;\n}\n/* 选项卡居中 */\n@media (min-width: 600px) {\n .mdui-tab-centered::before {\n flex-grow: 1;\n content: ' ';\n }\n .mdui-tab-centered::after {\n flex-grow: 1;\n content: ' ';\n }\n .mdui-tab-centered a {\n flex: none;\n }\n}\n/* 选项卡始终全宽等分 */\n.mdui-tab-full-width a {\n flex: 1;\n max-width: none;\n}\n/* 可横向滚动的选项卡 */\n.mdui-tab-scrollable {\n padding-left: 56px;\n}\n.mdui-tab-scrollable a {\n flex: none;\n}\n@media (max-width: 599.9px) {\n .mdui-tab-scrollable {\n padding-left: 60px;\n }\n}\n/* 下划线指示器 */\n.mdui-tab-indicator {\n position: absolute;\n bottom: 0;\n height: 2px;\n background-color: #3F51B5;\n transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: left, width;\n}\n/**\n * =============================================================================\n * ************ Tab 主色 ************\n * =============================================================================\n */\n.mdui-theme-primary-amber .mdui-tab .mdui-tab-active {\n color: #FFC107;\n}\n.mdui-theme-primary-amber .mdui-tab-indicator {\n background-color: #FFC107;\n}\n.mdui-theme-primary-blue .mdui-tab .mdui-tab-active {\n color: #2196F3;\n}\n.mdui-theme-primary-blue .mdui-tab-indicator {\n background-color: #2196F3;\n}\n.mdui-theme-primary-blue-grey .mdui-tab .mdui-tab-active {\n color: #607D8B;\n}\n.mdui-theme-primary-blue-grey .mdui-tab-indicator {\n background-color: #607D8B;\n}\n.mdui-theme-primary-brown .mdui-tab .mdui-tab-active {\n color: #795548;\n}\n.mdui-theme-primary-brown .mdui-tab-indicator {\n background-color: #795548;\n}\n.mdui-theme-primary-cyan .mdui-tab .mdui-tab-active {\n color: #00BCD4;\n}\n.mdui-theme-primary-cyan .mdui-tab-indicator {\n background-color: #00BCD4;\n}\n.mdui-theme-primary-deep-orange .mdui-tab .mdui-tab-active {\n color: #FF5722;\n}\n.mdui-theme-primary-deep-orange .mdui-tab-indicator {\n background-color: #FF5722;\n}\n.mdui-theme-primary-deep-purple .mdui-tab .mdui-tab-active {\n color: #673AB7;\n}\n.mdui-theme-primary-deep-purple .mdui-tab-indicator {\n background-color: #673AB7;\n}\n.mdui-theme-primary-green .mdui-tab .mdui-tab-active {\n color: #4CAF50;\n}\n.mdui-theme-primary-green .mdui-tab-indicator {\n background-color: #4CAF50;\n}\n.mdui-theme-primary-grey .mdui-tab .mdui-tab-active {\n color: #9E9E9E;\n}\n.mdui-theme-primary-grey .mdui-tab-indicator {\n background-color: #9E9E9E;\n}\n.mdui-theme-primary-indigo .mdui-tab .mdui-tab-active {\n color: #3F51B5;\n}\n.mdui-theme-primary-indigo .mdui-tab-indicator {\n background-color: #3F51B5;\n}\n.mdui-theme-primary-light-blue .mdui-tab .mdui-tab-active {\n color: #03A9F4;\n}\n.mdui-theme-primary-light-blue .mdui-tab-indicator {\n background-color: #03A9F4;\n}\n.mdui-theme-primary-light-green .mdui-tab .mdui-tab-active {\n color: #8BC34A;\n}\n.mdui-theme-primary-light-green .mdui-tab-indicator {\n background-color: #8BC34A;\n}\n.mdui-theme-primary-lime .mdui-tab .mdui-tab-active {\n color: #CDDC39;\n}\n.mdui-theme-primary-lime .mdui-tab-indicator {\n background-color: #CDDC39;\n}\n.mdui-theme-primary-orange .mdui-tab .mdui-tab-active {\n color: #FF9800;\n}\n.mdui-theme-primary-orange .mdui-tab-indicator {\n background-color: #FF9800;\n}\n.mdui-theme-primary-pink .mdui-tab .mdui-tab-active {\n color: #E91E63;\n}\n.mdui-theme-primary-pink .mdui-tab-indicator {\n background-color: #E91E63;\n}\n.mdui-theme-primary-purple .mdui-tab .mdui-tab-active {\n color: #9C27B0;\n}\n.mdui-theme-primary-purple .mdui-tab-indicator {\n background-color: #9C27B0;\n}\n.mdui-theme-primary-red .mdui-tab .mdui-tab-active {\n color: #F44336;\n}\n.mdui-theme-primary-red .mdui-tab-indicator {\n background-color: #F44336;\n}\n.mdui-theme-primary-teal .mdui-tab .mdui-tab-active {\n color: #009688;\n}\n.mdui-theme-primary-teal .mdui-tab-indicator {\n background-color: #009688;\n}\n.mdui-theme-primary-yellow .mdui-tab .mdui-tab-active {\n color: #FFEB3B;\n}\n.mdui-theme-primary-yellow .mdui-tab-indicator {\n background-color: #FFEB3B;\n}\n/* 带背景色的选项卡 */\n.mdui-tab[class*=\"mdui-color-\"]:not(.mdui-color-white) .mdui-tab-active {\n color: inherit;\n}\n.mdui-tab[class*=\"mdui-color-\"]:not(.mdui-color-white) .mdui-tab-indicator {\n background-color: #FFFFFF;\n}\n.mdui-tab[class*=\"mdui-color-\"]:not(.mdui-color-white)::-webkit-scrollbar {\n width: 5px;\n height: 5px;\n background: transparent;\n}\n@media (min-width: 1024px) {\n .mdui-tab[class*=\"mdui-color-\"]:not(.mdui-color-white)::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n }\n}\n.mdui-tab[class*=\"mdui-color-\"]:not(.mdui-color-white)::-webkit-scrollbar-thumb {\n background: rgba(255, 255, 255, 0.3);\n}\n/**\n * =============================================================================\n * ************ Subheader 副标题 ************\n * =============================================================================\n *\n * 用于 List 和 Grid list 组件\n */\n.mdui-subheader,\n.mdui-subheader-inset {\n position: relative;\n box-sizing: border-box;\n height: 48px;\n padding-right: 16px;\n padding-left: 16px;\n color: rgba(0, 0, 0, 0.54);\n font-weight: 500;\n font-size: 14px;\n line-height: 48px;\n cursor: default;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.mdui-subheader-inset {\n padding-left: 72px;\n}\n/**\n * =============================================================================\n * ************ Subheader dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-subheader,\n.mdui-theme-layout-dark .mdui-subheader-inset {\n color: rgba(255, 255, 255, 0.7);\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-subheader,\n .mdui-theme-layout-auto .mdui-subheader-inset {\n color: rgba(255, 255, 255, 0.7);\n }\n}\n/**\n * =============================================================================\n * ************ Grid List 网格列表 ************\n * =============================================================================\n */\n/* 调整网格边距 */\n.mdui-grid-list {\n margin: 0 -2px;\n}\n.mdui-grid-list .mdui-col,\n.mdui-grid-list [class*=\"mdui-col-xs-\"],\n.mdui-grid-list [class*=\"mdui-col-sm-\"],\n.mdui-grid-list [class*=\"mdui-col-md-\"],\n.mdui-grid-list [class*=\"mdui-col-lg-\"],\n.mdui-grid-list [class*=\"mdui-col-xl-\"] {\n padding-right: 2px;\n padding-left: 2px;\n}\n/* 单元格 */\n.mdui-grid-tile {\n position: relative;\n box-sizing: border-box;\n margin-bottom: 4px;\n overflow: hidden;\n}\n.mdui-grid-tile img {\n display: block;\n width: 100%;\n}\n/* 操作栏 */\n.mdui-grid-tile-actions {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n display: flex;\n align-items: center;\n box-sizing: border-box;\n min-height: 48px;\n max-height: 68px;\n padding: 16px;\n color: #fff;\n background: rgba(0, 0, 0, 0.2);\n}\n.mdui-grid-tile-actions .mdui-icon {\n color: #fff;\n}\n/* 操作栏内的文本 */\n.mdui-grid-tile-text {\n flex: 1;\n overflow: hidden;\n}\n/* 标题 */\n.mdui-grid-tile-title {\n height: 16px;\n font-size: 16px;\n line-height: 16px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.mdui-grid-tile-title .mdui-icon {\n margin-right: 8px;\n}\n/* 副标题 */\n.mdui-grid-tile-subtitle {\n height: 18px;\n margin-top: 4px;\n font-size: 12px;\n line-height: 18px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.mdui-grid-tile-subtitle .mdui-icon {\n margin-right: 8px;\n font-size: 18px;\n}\n/* 操作栏内的按钮 */\n.mdui-grid-tile-buttons {\n flex: none;\n margin: -8px;\n white-space: nowrap;\n}\n.mdui-grid-tile-buttons .mdui-btn {\n margin-left: 8px;\n}\n.mdui-grid-tile-buttons .mdui-btn:first-child {\n margin-left: 0;\n}\n.mdui-grid-tile-text + .mdui-grid-tile-buttons {\n margin-left: 8px;\n}\n.mdui-grid-tile-buttons + .mdui-grid-tile-text {\n margin-left: 16px;\n}\n/* 操作栏位于顶部 */\n.mdui-grid-tile-actions-top {\n top: 0;\n bottom: auto;\n}\n/* 操作栏背景透明 */\n.mdui-grid-tile-actions-transparent {\n background: transparent;\n}\n/* 操作栏背景渐变 */\n.mdui-grid-tile-actions-gradient {\n background: linear-gradient(to top, rgba(0, 0, 0, 0.26), rgba(0, 0, 0, 0));\n}\n.mdui-grid-tile-actions-gradient.mdui-grid-tile-actions-top {\n background: linear-gradient(to bottom, rgba(0, 0, 0, 0.26), rgba(0, 0, 0, 0));\n}\n/**\n * =============================================================================\n * ************ List 列表 ************\n * =============================================================================\n */\n/* 列表 */\n.mdui-list {\n margin: 0;\n padding: 8px 0;\n list-style: none;\n background-color: transparent;\n}\n.mdui-list .mdui-list {\n padding: 0;\n}\n.mdui-list > .mdui-divider,\n.mdui-list > .mdui-divider-light,\n.mdui-list > .mdui-divider-dark,\n.mdui-list > .mdui-divider-inset,\n.mdui-list > .mdui-divider-inset-light,\n.mdui-list > .mdui-divider-inset-dark {\n margin-top: 8px;\n margin-bottom: 8px;\n}\n.mdui-list a {\n color: inherit;\n text-decoration: none;\n}\n.mdui-list .mdui-subheader,\n.mdui-list .mdui-subheader-inset {\n margin-top: 8px;\n}\n.mdui-list .mdui-subheader::before,\n.mdui-list .mdui-subheader-inset::before {\n position: absolute;\n right: 0;\n left: 0;\n display: block;\n height: 1px;\n background-color: rgba(0, 0, 0, 0.12);\n content: ' ';\n}\n.mdui-list .mdui-subheader:first-child,\n.mdui-list .mdui-subheader-inset:first-child {\n margin-top: -8px;\n}\n.mdui-list .mdui-subheader:first-child::before,\n.mdui-list .mdui-subheader-inset:first-child::before {\n background-color: transparent;\n}\n.mdui-list .mdui-subheader-inset::before {\n left: 72px;\n}\n/* 列表项 */\n.mdui-list-item {\n display: flex;\n align-items: center;\n box-sizing: border-box;\n min-height: 48px;\n padding: 0 16px;\n text-decoration: none;\n cursor: pointer;\n transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n.mdui-list-item:hover {\n background-color: rgba(0, 0, 0, 0.08);\n}\n.mdui-list-item::after {\n height: 48px;\n visibility: hidden;\n content: ' ';\n}\n/* 列表项图标 */\n.mdui-list-item-icon {\n width: 24px;\n min-width: 24px;\n height: 24px;\n color: rgba(0, 0, 0, 0.54);\n}\n/* 列表项头像 */\n.mdui-list-item-avatar {\n min-width: 40px;\n max-width: 40px;\n height: 40px;\n margin-top: 8px;\n margin-bottom: 8px;\n color: #FFFFFF;\n line-height: 40px;\n text-align: center;\n background-color: #BDBDBD;\n border-radius: 50%;\n}\n.mdui-list-item-avatar img {\n width: 100%;\n height: 100%;\n border-radius: 50%;\n}\n/* 列表项内容 */\n.mdui-list-item-content {\n flex-grow: 1;\n padding-top: 14px;\n padding-bottom: 14px;\n font-weight: 400;\n font-size: 16px;\n line-height: 20px;\n}\n/* 列表项内容的副内容 */\n.mdui-list-item-text {\n font-size: 14px;\n opacity: 0.54;\n}\n.mdui-list-item-title ~ .mdui-list-item-text {\n margin-top: 4px;\n}\n/* 激活状态的列表项 */\n.mdui-list-item-active {\n font-weight: 700;\n background-color: rgba(0, 0, 0, 0.08);\n}\n.mdui-list-item-active .mdui-list-item-content {\n font-weight: 700;\n}\n.mdui-list-item-active .mdui-list-item-text {\n font-weight: 400;\n}\n/* 限制文本高度 */\n.mdui-list-item-one-line,\n.mdui-list-item-two-line,\n.mdui-list-item-three-line {\n display: -webkit-box;\n overflow: hidden;\n text-overflow: ellipsis;\n -webkit-box-orient: vertical;\n}\n.mdui-list-item-one-line {\n -webkit-line-clamp: 1;\n height: 20px;\n}\n.mdui-list-item-two-line {\n -webkit-line-clamp: 2;\n height: 40px;\n}\n.mdui-list-item-three-line {\n -webkit-line-clamp: 3;\n height: 60px;\n}\n/* 列表项内的元素间添加间距 */\n.mdui-list-item-icon ~ .mdui-list-item-content {\n margin-left: 32px;\n}\n.mdui-checkbox ~ .mdui-list-item-content,\n.mdui-radio ~ .mdui-list-item-content,\n.mdui-switch ~ .mdui-list-item-content {\n margin-left: 20px;\n}\n.mdui-list-item-avatar ~ .mdui-list-item-content {\n margin-left: 16px;\n}\n.mdui-list-item-content ~ .mdui-list-item-icon,\n.mdui-list-item-content ~ .mdui-list-item-avatar,\n.mdui-list-item-content ~ .mdui-checkbox,\n.mdui-list-item-content ~ .mdui-radio,\n.mdui-list-item-content ~ .mdui-switch {\n margin-left: 16px;\n}\n.mdui-list-item-content ~ .mdui-checkbox,\n.mdui-list-item-content ~ .mdui-radio {\n padding-left: 24px;\n}\n/* 密集型列表 */\n.mdui-list-dense {\n padding: 4px 0;\n font-size: 13px;\n}\n.mdui-list-dense > .mdui-divider,\n.mdui-list-dense > .mdui-divider-light,\n.mdui-list-dense > .mdui-divider-dark,\n.mdui-list-dense > .mdui-divider-inset,\n.mdui-list-dense > .mdui-divider-inset-light,\n.mdui-list-dense > .mdui-divider-inset-dark {\n margin-top: 4px;\n margin-bottom: 4px;\n}\n.mdui-list-dense .mdui-subheader,\n.mdui-list-dense .mdui-subheader-inset {\n height: 40px;\n margin-top: 4px;\n font-size: 12px;\n line-height: 40px;\n}\n.mdui-list-dense .mdui-subheader:first-child,\n.mdui-list-dense .mdui-subheader-inset:first-child {\n margin-top: -4px;\n}\n.mdui-list-dense .mdui-list-item {\n min-height: 40px;\n}\n.mdui-list-dense .mdui-list-item::after {\n height: 40px;\n}\n.mdui-list-dense .mdui-list-item-icon {\n width: 20px;\n height: 20px;\n font-size: 20px;\n}\n.mdui-list-dense .mdui-list-item-avatar {\n width: 36px;\n min-width: 36px;\n height: 36px;\n min-height: 36px;\n}\n.mdui-list-dense .mdui-list-item-content {\n padding-top: 11px;\n padding-bottom: 11px;\n font-size: 13px;\n line-height: 18px;\n}\n.mdui-list-dense .mdui-list-item-text {\n font-size: 13px;\n}\n.mdui-list-dense .mdui-list-item-title ~ .mdui-list-item-text {\n margin-top: 2px;\n}\n.mdui-list-dense .mdui-list-item-one-line {\n height: 18px;\n}\n.mdui-list-dense .mdui-list-item-two-line {\n height: 36px;\n}\n.mdui-list-dense .mdui-list-item-three-line {\n height: 54px;\n}\n/**\n * =============================================================================\n * ************ List dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-list .mdui-subheader::before,\n.mdui-theme-layout-dark .mdui-list .mdui-subheader-inset::before {\n background-color: rgba(255, 255, 255, 0.12);\n}\n.mdui-theme-layout-dark .mdui-list .mdui-subheader:first-child::before,\n.mdui-theme-layout-dark .mdui-list .mdui-subheader-inset:first-child::before {\n background-color: transparent;\n}\n.mdui-theme-layout-dark .mdui-list-item {\n color: #ffffff;\n}\n.mdui-theme-layout-dark .mdui-list-item:hover {\n background-color: rgba(255, 255, 255, 0.08);\n}\n.mdui-theme-layout-dark .mdui-list-item-icon {\n color: #ffffff;\n}\n.mdui-theme-layout-dark .mdui-list-item-text {\n opacity: 0.7;\n}\n.mdui-theme-layout-dark .mdui-list-item-active {\n background-color: rgba(255, 255, 255, 0.08);\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-list .mdui-subheader::before,\n .mdui-theme-layout-auto .mdui-list .mdui-subheader-inset::before {\n background-color: rgba(255, 255, 255, 0.12);\n }\n .mdui-theme-layout-auto .mdui-list .mdui-subheader:first-child::before,\n .mdui-theme-layout-auto .mdui-list .mdui-subheader-inset:first-child::before {\n background-color: transparent;\n }\n .mdui-theme-layout-auto .mdui-list-item {\n color: #ffffff;\n }\n .mdui-theme-layout-auto .mdui-list-item:hover {\n background-color: rgba(255, 255, 255, 0.08);\n }\n .mdui-theme-layout-auto .mdui-list-item-icon {\n color: #ffffff;\n }\n .mdui-theme-layout-auto .mdui-list-item-text {\n opacity: 0.7;\n }\n .mdui-theme-layout-auto .mdui-list-item-active {\n background-color: rgba(255, 255, 255, 0.08);\n }\n}\n/**\n * ==============================================================================\n * ************ List inner theme ************\n * ==============================================================================\n */\n[class*=\"mdui-color-\"] .mdui-list-item {\n color: inherit;\n}\n[class*=\"mdui-color-\"] .mdui-list-item-icon {\n color: inherit;\n}\n/**\n * =============================================================================\n * ************ Drawer 抽屉栏导航 ************\n * =============================================================================\n */\n/* DOM 加载完后再添加 transition */\nbody.mdui-loaded {\n transition: padding 0.3s cubic-bezier(0, 0, 0.2, 1);\n}\nbody.mdui-loaded .mdui-drawer {\n transition: all 0.3s cubic-bezier(0, 0, 0.2, 1);\n}\n/* 抽屉栏外层,默认出现在左侧且隐藏 */\n.mdui-drawer {\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n z-index: 5000;\n box-sizing: border-box;\n /* stylelint-disable-next-line */\n width: calc(100% - 56px);\n max-width: 280px;\n margin: 0;\n overflow-x: hidden;\n overflow-y: auto;\n white-space: nowrap;\n will-change: transform;\n -webkit-overflow-scrolling: touch;\n}\n@media (max-width: 1023.9px) {\n .mdui-drawer:not(.mdui-drawer-open) {\n box-shadow: none !important;\n }\n}\n@media (min-width: 600px) {\n .mdui-drawer {\n /* stylelint-disable-next-line */\n width: calc(100% - 64px);\n max-width: 320px;\n }\n}\n@media (min-width: 1024px) {\n .mdui-drawer {\n width: 240px;\n max-width: none;\n }\n .mdui-drawer.mdui-drawer-close {\n box-shadow: none !important;\n }\n}\n/* 出现在右侧的抽屉栏 */\n.mdui-drawer-right {\n right: 0;\n left: auto;\n}\n/* 平板上的样式 */\n@media (max-width: 1023.9px) {\n .mdui-drawer {\n /* 始终有背景和阴影 */\n background-color: #fff;\n /* 默认隐藏 */\n transform: translateX(-330px);\n box-shadow: 0 8px 10px -5px rgba(0, 0, 0, 0.2), 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12);\n }\n .mdui-drawer-right {\n /* 右侧 drawer 也默认隐藏 */\n transform: translateX(330px);\n }\n}\n/* 手机上的样式 */\n@media (max-width: 599.9px) {\n .mdui-drawer {\n transform: translateX(-290px);\n }\n .mdui-drawer-right {\n transform: translateX(290px);\n }\n}\n/* 强制隐藏抽屉栏 */\n.mdui-drawer-close {\n transform: translateX(-290px);\n}\n.mdui-drawer-close.mdui-drawer-right {\n transform: translateX(290px);\n}\n@media (min-width: 600px) {\n .mdui-drawer-close {\n transform: translateX(-330px);\n }\n .mdui-drawer-close.mdui-drawer-right {\n transform: translateX(330px);\n }\n}\n@media (min-width: 1024px) {\n .mdui-drawer-close {\n transform: translateX(-250px);\n }\n .mdui-drawer-close.mdui-drawer-right {\n transform: translateX(250px);\n }\n}\n/* 强制显示抽屉栏 */\n.mdui-drawer-open {\n transform: translateX(0) !important;\n}\n/* PC 上的样式 */\n@media (min-width: 1024px) {\n /* 使该类所在元素获得 padding-left 或 padding-right,避免被抽屉栏覆盖住页面 */\n .mdui-drawer-body-left {\n padding-left: 240px;\n }\n .mdui-drawer-body-right {\n padding-right: 240px;\n }\n /* PC 上默认有上边距 */\n .mdui-appbar-with-toolbar .mdui-drawer {\n top: 64px;\n }\n .mdui-appbar-with-tab .mdui-drawer {\n top: 48px;\n }\n .mdui-appbar-with-tab-larger .mdui-drawer {\n top: 72px;\n }\n .mdui-appbar-with-toolbar.mdui-appbar-with-tab .mdui-drawer {\n top: 112px;\n }\n .mdui-appbar-with-toolbar.mdui-appbar-with-tab-larger .mdui-drawer {\n top: 136px;\n }\n}\n/* 抽屉栏不是透明时添加阴影 */\n.mdui-drawer[class*=\"mdui-color-\"]:not(.mdui-color-transparent) {\n box-shadow: 0 8px 10px -5px rgba(0, 0, 0, 0.2), 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12);\n}\n/* 抽屉栏 100% 高度,覆盖在导航栏上面 */\n.mdui-drawer-full-height {\n top: 0 !important;\n}\n/**\n * =============================================================================\n * ************ Drawer dark ************\n * =============================================================================\n */\n@media (max-width: 1023.9px) {\n .mdui-theme-layout-dark .mdui-drawer {\n background-color: #424242;\n }\n}\n@media (prefers-color-scheme: dark) and (max-width: 1023.9px) {\n .mdui-theme-layout-auto .mdui-drawer {\n background-color: #424242;\n }\n}\n/**\n * =============================================================================\n * ************ Dialog 提示框 ************\n * =============================================================================\n */\n.mdui-dialog {\n position: fixed;\n right: 0;\n left: 0;\n z-index: 6000;\n display: none;\n box-sizing: border-box;\n width: 92%;\n min-width: 180px;\n max-width: 728px;\n max-height: 90%;\n margin: auto;\n overflow: hidden;\n color: #000;\n background-color: #fff;\n border-radius: 2px;\n transform: scale(0.95);\n opacity: 0;\n transition-duration: 0.3s;\n transition-property: transform, opacity, visibility;\n will-change: top, opacity, transform;\n box-shadow: 0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12);\n}\n@media (min-width: 600px) {\n .mdui-dialog {\n width: 85%;\n max-height: 85%;\n }\n}\n@media (min-width: 1024px) {\n .mdui-dialog {\n width: 80%;\n max-height: 80%;\n }\n}\n/* 打开提示框 */\n.mdui-dialog-open {\n transform: scale(1);\n opacity: 1;\n}\n/* 提示框标题 */\n.mdui-dialog-title {\n box-sizing: border-box;\n font-weight: 500;\n font-size: 20px;\n line-height: 24px;\n text-align: left;\n}\n/* 标题固定在顶部 */\n.mdui-dialog > .mdui-dialog-title {\n padding: 24px 24px 20px 24px;\n}\n/* 提示框内容 */\n.mdui-dialog-content {\n box-sizing: border-box;\n padding: 24px;\n overflow-y: auto;\n color: rgba(0, 0, 0, 0.7);\n font-size: 15px;\n line-height: 1.5;\n -webkit-overflow-scrolling: touch;\n}\n/* 标题随内容滚动 */\n.mdui-dialog-content > .mdui-dialog-title {\n padding-bottom: 20px;\n}\n.mdui-dialog-title + .mdui-dialog-content {\n padding-top: 0;\n}\n/* 提示框底部按钮 */\n.mdui-dialog-actions {\n box-sizing: border-box;\n padding: 8px;\n text-align: right;\n}\n.mdui-dialog-actions .mdui-btn {\n min-width: 64px;\n margin-left: 8px;\n color: #E91E63;\n}\n.mdui-dialog-actions .mdui-btn:first-child {\n margin-left: 0;\n}\n/* 底部按钮滚随内容动 */\n.mdui-dialog-content > .mdui-dialog-actions {\n margin: 0 -24px -24px -24px;\n padding-top: 32px;\n}\n/* 使提示框底部按钮竖排 */\n.mdui-dialog-actions-stacked {\n padding: 8px 0 8px 0;\n}\n.mdui-dialog-actions-stacked .mdui-btn {\n width: 100%;\n height: 48px;\n margin: 0;\n line-height: 48px !important;\n text-align: right;\n border-radius: 0;\n}\n/**\n * =============================================================================\n * ************ Dialog 强调色 ************\n * =============================================================================\n */\n.mdui-theme-accent-amber .mdui-dialog-actions .mdui-btn {\n color: #FFC107;\n}\n.mdui-theme-accent-blue .mdui-dialog-actions .mdui-btn {\n color: #2196F3;\n}\n.mdui-theme-accent-cyan .mdui-dialog-actions .mdui-btn {\n color: #00BCD4;\n}\n.mdui-theme-accent-deep-orange .mdui-dialog-actions .mdui-btn {\n color: #FF5722;\n}\n.mdui-theme-accent-deep-purple .mdui-dialog-actions .mdui-btn {\n color: #673AB7;\n}\n.mdui-theme-accent-green .mdui-dialog-actions .mdui-btn {\n color: #4CAF50;\n}\n.mdui-theme-accent-indigo .mdui-dialog-actions .mdui-btn {\n color: #3F51B5;\n}\n.mdui-theme-accent-light-blue .mdui-dialog-actions .mdui-btn {\n color: #03A9F4;\n}\n.mdui-theme-accent-light-green .mdui-dialog-actions .mdui-btn {\n color: #8BC34A;\n}\n.mdui-theme-accent-lime .mdui-dialog-actions .mdui-btn {\n color: #CDDC39;\n}\n.mdui-theme-accent-orange .mdui-dialog-actions .mdui-btn {\n color: #FF9800;\n}\n.mdui-theme-accent-pink .mdui-dialog-actions .mdui-btn {\n color: #E91E63;\n}\n.mdui-theme-accent-purple .mdui-dialog-actions .mdui-btn {\n color: #9C27B0;\n}\n.mdui-theme-accent-red .mdui-dialog-actions .mdui-btn {\n color: #F44336;\n}\n.mdui-theme-accent-teal .mdui-dialog-actions .mdui-btn {\n color: #009688;\n}\n.mdui-theme-accent-yellow .mdui-dialog-actions .mdui-btn {\n color: #FFEB3B;\n}\n/**\n * =============================================================================\n * ************ Dialog dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-dialog {\n color: #fff;\n background-color: #424242;\n}\n.mdui-theme-layout-dark .mdui-dialog-content {\n color: rgba(255, 255, 255, 0.7);\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-dialog {\n color: #fff;\n background-color: #424242;\n }\n .mdui-theme-layout-auto .mdui-dialog-content {\n color: rgba(255, 255, 255, 0.7);\n }\n}\n/**\n * =============================================================================\n * ************ Dialog alert ************\n * =============================================================================\n */\n.mdui-dialog-alert {\n max-width: 448px;\n}\n/**\n * =============================================================================\n * ************ Dialog confirm ************\n * =============================================================================\n */\n.mdui-dialog-confirm {\n max-width: 448px;\n}\n/**\n * =============================================================================\n * ************ Dialog prompt ************\n * =============================================================================\n */\n.mdui-dialog-prompt {\n max-width: 448px;\n}\n.mdui-dialog-prompt .mdui-textfield {\n padding-top: 0;\n}\n/**\n * =============================================================================\n * ************ Tooltip 工具提示 ************\n * =============================================================================\n */\n.mdui-tooltip {\n position: absolute;\n z-index: 9000;\n display: inline-block;\n box-sizing: border-box;\n max-width: 180px;\n min-height: 32px;\n padding: 8px 16px;\n color: #fff;\n font-weight: 500;\n font-size: 14px;\n line-height: 22px;\n text-align: left;\n background-color: rgba(97, 97, 97, 0.9);\n border-radius: 2px;\n transform: scale(0);\n opacity: 0;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 0.15s;\n transition-property: opacity, transform;\n will-change: opacity, transform;\n}\n@media (min-width: 1024px) {\n .mdui-tooltip {\n max-width: 200px;\n min-height: 24px;\n padding: 4px 8px;\n font-size: 12px;\n line-height: 18px;\n }\n}\n/* 显示工具提示 */\n.mdui-tooltip-open {\n transform: scale(1);\n opacity: 1;\n}\n/**\n * =============================================================================\n * ************ Snackbar ************\n * =============================================================================\n */\n.mdui-snackbar {\n position: fixed;\n z-index: 7000;\n display: flex;\n align-items: center;\n justify-content: space-between;\n box-sizing: border-box;\n width: 100%;\n min-height: 48px;\n padding: 0 24px 0 24px;\n color: #fff;\n font-size: 14px;\n line-height: 20px;\n background-color: #323232;\n will-change: transform;\n}\n@media (min-width: 600px) {\n .mdui-snackbar {\n width: auto;\n min-width: 288px;\n max-width: 568px;\n border-radius: 2px;\n }\n}\n.mdui-snackbar-bottom,\n.mdui-snackbar-top,\n.mdui-snackbar-left-top,\n.mdui-snackbar-left-bottom,\n.mdui-snackbar-right-top,\n.mdui-snackbar-right-bottom {\n transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n}\n/* 位置 */\n.mdui-snackbar-bottom,\n.mdui-snackbar-left-bottom,\n.mdui-snackbar-right-bottom {\n bottom: 0;\n}\n.mdui-snackbar-top,\n.mdui-snackbar-left-top,\n.mdui-snackbar-right-top {\n top: 0;\n}\n.mdui-snackbar-top,\n.mdui-snackbar-bottom {\n left: 50%;\n}\n@media (min-width: 600px) {\n .mdui-snackbar-left-top {\n top: 24px;\n left: 24px;\n }\n .mdui-snackbar-left-bottom {\n bottom: 24px;\n left: 24px;\n }\n .mdui-snackbar-right-top {\n top: 24px;\n right: 24px;\n }\n .mdui-snackbar-right-bottom {\n right: 24px;\n bottom: 24px;\n }\n}\n/* 文本 */\n.mdui-snackbar-text {\n position: relative;\n max-width: 100%;\n padding: 14px 0 14px 0;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n/* 按钮 */\n.mdui-snackbar-action {\n margin-right: -16px;\n white-space: nowrap;\n color: #FF80AB;\n}\n/**\n * =============================================================================\n * ************ Snackbar 强调色 ************\n * =============================================================================\n */\n.mdui-theme-accent-amber .mdui-snackbar-action {\n color: #FFE57F;\n}\n.mdui-theme-accent-blue .mdui-snackbar-action {\n color: #82B1FF;\n}\n.mdui-theme-accent-cyan .mdui-snackbar-action {\n color: #84FFFF;\n}\n.mdui-theme-accent-deep-orange .mdui-snackbar-action {\n color: #FF9E80;\n}\n.mdui-theme-accent-deep-purple .mdui-snackbar-action {\n color: #B388FF;\n}\n.mdui-theme-accent-green .mdui-snackbar-action {\n color: #B9F6CA;\n}\n.mdui-theme-accent-indigo .mdui-snackbar-action {\n color: #8C9EFF;\n}\n.mdui-theme-accent-light-blue .mdui-snackbar-action {\n color: #80D8FF;\n}\n.mdui-theme-accent-light-green .mdui-snackbar-action {\n color: #CCFF90;\n}\n.mdui-theme-accent-lime .mdui-snackbar-action {\n color: #F4FF81;\n}\n.mdui-theme-accent-orange .mdui-snackbar-action {\n color: #FFD180;\n}\n.mdui-theme-accent-pink .mdui-snackbar-action {\n color: #FF80AB;\n}\n.mdui-theme-accent-purple .mdui-snackbar-action {\n color: #EA80FC;\n}\n.mdui-theme-accent-red .mdui-snackbar-action {\n color: #FF8A80;\n}\n.mdui-theme-accent-teal .mdui-snackbar-action {\n color: #A7FFEB;\n}\n.mdui-theme-accent-yellow .mdui-snackbar-action {\n color: #FFFF8D;\n}\n/**\n * =============================================================================\n * ************ Snackbar dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-snackbar {\n background-color: #5d5d5d;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-snackbar {\n background-color: #5d5d5d;\n }\n}\n/**\n * =============================================================================\n * ************ Chip 纸片 ************\n * =============================================================================\n */\n.mdui-chip {\n display: inline-block;\n box-sizing: border-box;\n height: 32px;\n margin: 2px 0;\n color: inherit;\n white-space: nowrap;\n background-color: #e0e0e0;\n border-radius: 16px;\n cursor: pointer;\n user-select: none;\n transition: box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: box-shadow;\n}\n.mdui-chip:hover,\n.mdui-chip:focus {\n box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);\n}\n.mdui-chip:active {\n background-color: #d6d6d6;\n}\n/* 左侧的图标 */\n.mdui-chip-icon {\n position: relative;\n display: inline-block;\n width: 32px;\n height: 32px;\n margin-right: -4px;\n overflow: hidden;\n color: #fff;\n font-size: 18px;\n line-height: 32px;\n text-align: center;\n vertical-align: middle;\n background-color: #989898;\n border-radius: 50%;\n}\n.mdui-chip-icon .mdui-icon {\n position: absolute;\n top: 4px;\n left: 4px;\n color: #fff;\n}\n/* 文本 */\n.mdui-chip-title {\n display: inline-block;\n height: 32px;\n padding-right: 12px;\n padding-left: 12px;\n font-size: 14px;\n line-height: 32px;\n vertical-align: middle;\n}\n/* 删除按钮 */\n.mdui-chip-delete {\n display: inline-block;\n width: 24px;\n height: 24px;\n margin-right: 4px;\n margin-left: -8px;\n overflow: hidden;\n text-align: center;\n text-decoration: none;\n vertical-align: middle;\n border-radius: 50%;\n cursor: pointer;\n opacity: 0.54;\n transition: opacity 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: opacity;\n}\n.mdui-chip-delete:hover,\n.mdui-chip-delete:focus {\n opacity: 0.87;\n}\n/**\n * =============================================================================\n * ************ Chip dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-chip {\n background-color: #484848;\n}\n.mdui-theme-layout-dark .mdui-chip:active {\n background-color: #5d5d5d;\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-chip {\n background-color: #484848;\n }\n .mdui-theme-layout-auto .mdui-chip:active {\n background-color: #5d5d5d;\n }\n}\n/**\n * =============================================================================\n * ************ Bottom navigation 底部导航栏 ************\n * =============================================================================\n */\n.mdui-bottom-nav {\n position: relative;\n display: flex;\n height: 56px;\n margin: 0 auto;\n padding: 0;\n overflow: hidden;\n white-space: nowrap;\n}\n@media (min-width: 600px) {\n .mdui-bottom-nav::before {\n flex-grow: 1;\n content: ' ';\n }\n .mdui-bottom-nav::after {\n flex-grow: 1;\n content: ' ';\n }\n}\n.mdui-bottom-nav a {\n display: flex;\n flex: 1;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n min-width: 32px;\n max-width: none;\n padding: 8px 12px 10px 12px;\n overflow: hidden;\n color: inherit;\n font-size: 12px;\n text-align: center;\n text-decoration: none;\n text-overflow: ellipsis;\n cursor: pointer;\n opacity: 0.7;\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n user-select: none;\n will-change: padding;\n}\n@media (min-width: 600px) {\n .mdui-bottom-nav a {\n max-width: 144px;\n }\n}\n.mdui-bottom-nav a .mdui-icon {\n opacity: 0.7;\n}\n.mdui-bottom-nav a label {\n display: block;\n width: 100%;\n cursor: pointer;\n transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: font-size;\n}\n.mdui-bottom-nav a .mdui-icon + label {\n margin-top: 6px;\n}\n.mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #3F51B5;\n font-size: 14px;\n opacity: 1;\n}\n.mdui-bottom-nav a.mdui-bottom-nav-active .mdui-icon {\n opacity: 1;\n}\n/* 只在激活时显示文本 */\n.mdui-bottom-nav-text-auto a {\n min-width: 32px;\n padding-right: 0;\n padding-left: 0;\n}\n@media (min-width: 600px) {\n .mdui-bottom-nav-text-auto a {\n max-width: 156px;\n }\n}\n.mdui-bottom-nav-text-auto a .mdui-icon {\n padding-top: 16px;\n transition: padding-top 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n will-change: padding-top;\n}\n.mdui-bottom-nav-text-auto a label {\n transform: scale(0);\n}\n.mdui-bottom-nav-text-auto a.mdui-bottom-nav-active {\n padding-right: 18px;\n padding-left: 18px;\n}\n.mdui-bottom-nav-text-auto a.mdui-bottom-nav-active .mdui-icon {\n padding-top: 0;\n}\n.mdui-bottom-nav-text-auto a.mdui-bottom-nav-active label {\n transform: scale(1);\n}\n/* 固定到页面底部 */\n.mdui-bottom-nav-fixed {\n padding-bottom: 56px;\n}\n.mdui-bottom-nav-fixed .mdui-bottom-nav {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n}\n/**\n * =============================================================================\n * ************ Bottom Nav 主色 ************\n * =============================================================================\n */\n.mdui-theme-primary-amber .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #FFC107;\n}\n.mdui-theme-primary-blue .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #2196F3;\n}\n.mdui-theme-primary-blue-grey .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #607D8B;\n}\n.mdui-theme-primary-brown .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #795548;\n}\n.mdui-theme-primary-cyan .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #00BCD4;\n}\n.mdui-theme-primary-deep-orange .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #FF5722;\n}\n.mdui-theme-primary-deep-purple .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #673AB7;\n}\n.mdui-theme-primary-green .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #4CAF50;\n}\n.mdui-theme-primary-grey .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #9E9E9E;\n}\n.mdui-theme-primary-indigo .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #3F51B5;\n}\n.mdui-theme-primary-light-blue .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #03A9F4;\n}\n.mdui-theme-primary-light-green .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #8BC34A;\n}\n.mdui-theme-primary-lime .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #CDDC39;\n}\n.mdui-theme-primary-orange .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #FF9800;\n}\n.mdui-theme-primary-pink .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #E91E63;\n}\n.mdui-theme-primary-purple .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #9C27B0;\n}\n.mdui-theme-primary-red .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #F44336;\n}\n.mdui-theme-primary-teal .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #009688;\n}\n.mdui-theme-primary-yellow .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: #FFEB3B;\n}\n/* 带背景色的底部导航栏 */\n.mdui-bottom-nav[class*=\"mdui-color-\"] .mdui-bottom-nav-active {\n color: inherit !important;\n}\n/**\n * =============================================================================\n * ************ Progress Linear 线性进度条 ************\n * =============================================================================\n */\n/* 线性进度条 */\n.mdui-progress {\n position: relative;\n display: block;\n width: 100%;\n height: 4px;\n overflow: hidden;\n background-color: rgba(63, 81, 181, 0.2);\n border-radius: 2px;\n}\n/* 确定进度的线性进度条 */\n.mdui-progress-determinate {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n background-color: #3F51B5;\n transition: width 0.3s linear;\n}\n/* 不确定进度的线性进度条 */\n.mdui-progress-indeterminate {\n background-color: #3F51B5;\n}\n.mdui-progress-indeterminate::before {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n background-color: inherit;\n animation: mdui-progress-indeterminate 2s linear infinite;\n content: ' ';\n will-change: left, width;\n}\n.mdui-progress-indeterminate::after {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n background-color: inherit;\n animation: mdui-progress-indeterminate-short 2s linear infinite;\n content: ' ';\n will-change: left, width;\n}\n@keyframes mdui-progress-indeterminate {\n 0% {\n left: 0;\n width: 0;\n }\n 50% {\n left: 30%;\n width: 70%;\n }\n 75% {\n left: 100%;\n width: 0;\n }\n}\n@keyframes mdui-progress-indeterminate-short {\n 0% {\n left: 0;\n width: 0;\n }\n 50% {\n left: 0;\n width: 0;\n }\n 75% {\n left: 0;\n width: 25%;\n }\n 100% {\n left: 100%;\n width: 0;\n }\n}\n/**\n * =============================================================================\n * ************ Progress linear 主色 ************\n * =============================================================================\n */\n.mdui-theme-primary-amber .mdui-progress {\n background-color: rgba(255, 193, 7, 0.2);\n}\n.mdui-theme-primary-amber .mdui-progress-determinate,\n.mdui-theme-primary-amber .mdui-progress-indeterminate {\n background-color: #FFC107;\n}\n.mdui-theme-primary-blue .mdui-progress {\n background-color: rgba(33, 150, 243, 0.2);\n}\n.mdui-theme-primary-blue .mdui-progress-determinate,\n.mdui-theme-primary-blue .mdui-progress-indeterminate {\n background-color: #2196F3;\n}\n.mdui-theme-primary-blue-grey .mdui-progress {\n background-color: rgba(96, 125, 139, 0.2);\n}\n.mdui-theme-primary-blue-grey .mdui-progress-determinate,\n.mdui-theme-primary-blue-grey .mdui-progress-indeterminate {\n background-color: #607D8B;\n}\n.mdui-theme-primary-brown .mdui-progress {\n background-color: rgba(121, 85, 72, 0.2);\n}\n.mdui-theme-primary-brown .mdui-progress-determinate,\n.mdui-theme-primary-brown .mdui-progress-indeterminate {\n background-color: #795548;\n}\n.mdui-theme-primary-cyan .mdui-progress {\n background-color: rgba(0, 188, 212, 0.2);\n}\n.mdui-theme-primary-cyan .mdui-progress-determinate,\n.mdui-theme-primary-cyan .mdui-progress-indeterminate {\n background-color: #00BCD4;\n}\n.mdui-theme-primary-deep-orange .mdui-progress {\n background-color: rgba(255, 87, 34, 0.2);\n}\n.mdui-theme-primary-deep-orange .mdui-progress-determinate,\n.mdui-theme-primary-deep-orange .mdui-progress-indeterminate {\n background-color: #FF5722;\n}\n.mdui-theme-primary-deep-purple .mdui-progress {\n background-color: rgba(103, 58, 183, 0.2);\n}\n.mdui-theme-primary-deep-purple .mdui-progress-determinate,\n.mdui-theme-primary-deep-purple .mdui-progress-indeterminate {\n background-color: #673AB7;\n}\n.mdui-theme-primary-green .mdui-progress {\n background-color: rgba(76, 175, 80, 0.2);\n}\n.mdui-theme-primary-green .mdui-progress-determinate,\n.mdui-theme-primary-green .mdui-progress-indeterminate {\n background-color: #4CAF50;\n}\n.mdui-theme-primary-grey .mdui-progress {\n background-color: rgba(158, 158, 158, 0.2);\n}\n.mdui-theme-primary-grey .mdui-progress-determinate,\n.mdui-theme-primary-grey .mdui-progress-indeterminate {\n background-color: #9E9E9E;\n}\n.mdui-theme-primary-indigo .mdui-progress {\n background-color: rgba(63, 81, 181, 0.2);\n}\n.mdui-theme-primary-indigo .mdui-progress-determinate,\n.mdui-theme-primary-indigo .mdui-progress-indeterminate {\n background-color: #3F51B5;\n}\n.mdui-theme-primary-light-blue .mdui-progress {\n background-color: rgba(3, 169, 244, 0.2);\n}\n.mdui-theme-primary-light-blue .mdui-progress-determinate,\n.mdui-theme-primary-light-blue .mdui-progress-indeterminate {\n background-color: #03A9F4;\n}\n.mdui-theme-primary-light-green .mdui-progress {\n background-color: rgba(139, 195, 74, 0.2);\n}\n.mdui-theme-primary-light-green .mdui-progress-determinate,\n.mdui-theme-primary-light-green .mdui-progress-indeterminate {\n background-color: #8BC34A;\n}\n.mdui-theme-primary-lime .mdui-progress {\n background-color: rgba(205, 220, 57, 0.2);\n}\n.mdui-theme-primary-lime .mdui-progress-determinate,\n.mdui-theme-primary-lime .mdui-progress-indeterminate {\n background-color: #CDDC39;\n}\n.mdui-theme-primary-orange .mdui-progress {\n background-color: rgba(255, 152, 0, 0.2);\n}\n.mdui-theme-primary-orange .mdui-progress-determinate,\n.mdui-theme-primary-orange .mdui-progress-indeterminate {\n background-color: #FF9800;\n}\n.mdui-theme-primary-pink .mdui-progress {\n background-color: rgba(233, 30, 99, 0.2);\n}\n.mdui-theme-primary-pink .mdui-progress-determinate,\n.mdui-theme-primary-pink .mdui-progress-indeterminate {\n background-color: #E91E63;\n}\n.mdui-theme-primary-purple .mdui-progress {\n background-color: rgba(156, 39, 176, 0.2);\n}\n.mdui-theme-primary-purple .mdui-progress-determinate,\n.mdui-theme-primary-purple .mdui-progress-indeterminate {\n background-color: #9C27B0;\n}\n.mdui-theme-primary-red .mdui-progress {\n background-color: rgba(244, 67, 54, 0.2);\n}\n.mdui-theme-primary-red .mdui-progress-determinate,\n.mdui-theme-primary-red .mdui-progress-indeterminate {\n background-color: #F44336;\n}\n.mdui-theme-primary-teal .mdui-progress {\n background-color: rgba(0, 150, 136, 0.2);\n}\n.mdui-theme-primary-teal .mdui-progress-determinate,\n.mdui-theme-primary-teal .mdui-progress-indeterminate {\n background-color: #009688;\n}\n.mdui-theme-primary-yellow .mdui-progress {\n background-color: rgba(255, 235, 59, 0.2);\n}\n.mdui-theme-primary-yellow .mdui-progress-determinate,\n.mdui-theme-primary-yellow .mdui-progress-indeterminate {\n background-color: #FFEB3B;\n}\n/**\n * =============================================================================\n * ************ Progress Circular 圆形进度条 ************\n * =============================================================================\n */\n.mdui-spinner {\n position: relative;\n display: inline-block;\n width: 28px;\n height: 28px;\n animation: mdui-spinner 1568ms linear infinite;\n}\n@keyframes mdui-spinner {\n to {\n transform: rotate(360deg);\n }\n}\n.mdui-spinner-layer {\n position: absolute;\n width: 100%;\n height: 100%;\n border-color: #3F51B5;\n opacity: 0;\n opacity: 1;\n animation: mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n.mdui-spinner-layer-1 {\n border-color: #42A5F5 !important;\n animation: mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdui-spinner-layer-1-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n.mdui-spinner-layer-2 {\n border-color: #F44336 !important;\n animation: mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdui-spinner-layer-2-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n.mdui-spinner-layer-3 {\n border-color: #FDD835 !important;\n animation: mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdui-spinner-layer-3-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n.mdui-spinner-layer-4 {\n border-color: #4CAF50 !important;\n animation: mdui-spinner-layer-fill-unfill-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both, mdui-spinner-layer-4-fade-in-out 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n@keyframes mdui-spinner-layer-fill-unfill-rotate {\n 12.5% {\n transform: rotate(135deg);\n }\n 25% {\n transform: rotate(270deg);\n }\n 37.5% {\n transform: rotate(405deg);\n }\n 50% {\n transform: rotate(540deg);\n }\n 62.5% {\n transform: rotate(675deg);\n }\n 75% {\n transform: rotate(810deg);\n }\n 87.5% {\n transform: rotate(945deg);\n }\n to {\n transform: rotate(1080deg);\n }\n}\n@keyframes mdui-spinner-layer-1-fade-in-out {\n from {\n opacity: 1;\n }\n 25% {\n opacity: 1;\n }\n 26% {\n opacity: 0;\n }\n 89% {\n opacity: 0;\n }\n 90% {\n opacity: 1;\n }\n 100% {\n opacity: 1;\n }\n}\n@keyframes mdui-spinner-layer-2-fade-in-out {\n from {\n opacity: 0;\n }\n 15% {\n opacity: 0;\n }\n 25% {\n opacity: 1;\n }\n 50% {\n opacity: 1;\n }\n 51% {\n opacity: 0;\n }\n}\n@keyframes mdui-spinner-layer-3-fade-in-out {\n from {\n opacity: 0;\n }\n 40% {\n opacity: 0;\n }\n 50% {\n opacity: 1;\n }\n 75% {\n opacity: 1;\n }\n 76% {\n opacity: 0;\n }\n}\n@keyframes mdui-spinner-layer-4-fade-in-out {\n from {\n opacity: 0;\n }\n 65% {\n opacity: 0;\n }\n 75% {\n opacity: 1;\n }\n 90% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n }\n}\n.mdui-spinner-gap-patch {\n position: absolute;\n top: 0;\n left: 45%;\n width: 10%;\n height: 100%;\n overflow: hidden;\n border-color: inherit;\n}\n.mdui-spinner-gap-patch .mdui-spinner-circle {\n left: -450%;\n box-sizing: border-box;\n width: 1000%;\n}\n.mdui-spinner-circle-clipper {\n position: relative;\n display: inline-block;\n width: 50%;\n height: 100%;\n overflow: hidden;\n border-color: inherit;\n}\n.mdui-spinner-circle-clipper .mdui-spinner-circle {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n box-sizing: border-box;\n width: 200%;\n height: 100%;\n border-color: inherit;\n border-style: solid;\n border-width: 3px;\n border-bottom-color: transparent !important;\n border-radius: 50%;\n animation: none;\n}\n.mdui-spinner-circle-clipper.mdui-spinner-left {\n float: left;\n}\n.mdui-spinner-circle-clipper.mdui-spinner-left .mdui-spinner-circle {\n left: 0;\n border-right-color: transparent !important;\n transform: rotate(129deg);\n animation: mdui-spinner-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n.mdui-spinner-circle-clipper.mdui-spinner-right {\n float: right;\n}\n.mdui-spinner-circle-clipper.mdui-spinner-right .mdui-spinner-circle {\n left: -100%;\n border-left-color: transparent !important;\n transform: rotate(-129deg);\n animation: mdui-spinner-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both;\n}\n@keyframes mdui-spinner-left-spin {\n from {\n transform: rotate(130deg);\n }\n 50% {\n transform: rotate(-5deg);\n }\n to {\n transform: rotate(130deg);\n }\n}\n@keyframes mdui-spinner-right-spin {\n from {\n transform: rotate(-130deg);\n }\n 50% {\n transform: rotate(5deg);\n }\n to {\n transform: rotate(-130deg);\n }\n}\n/**\n * =============================================================================\n * ************ Spinner linear 主色 ************\n * =============================================================================\n */\n.mdui-theme-primary-amber .mdui-spinner-layer {\n border-color: #FFC107;\n}\n.mdui-theme-primary-blue .mdui-spinner-layer {\n border-color: #2196F3;\n}\n.mdui-theme-primary-blue-grey .mdui-spinner-layer {\n border-color: #607D8B;\n}\n.mdui-theme-primary-brown .mdui-spinner-layer {\n border-color: #795548;\n}\n.mdui-theme-primary-cyan .mdui-spinner-layer {\n border-color: #00BCD4;\n}\n.mdui-theme-primary-deep-orange .mdui-spinner-layer {\n border-color: #FF5722;\n}\n.mdui-theme-primary-deep-purple .mdui-spinner-layer {\n border-color: #673AB7;\n}\n.mdui-theme-primary-green .mdui-spinner-layer {\n border-color: #4CAF50;\n}\n.mdui-theme-primary-grey .mdui-spinner-layer {\n border-color: #9E9E9E;\n}\n.mdui-theme-primary-indigo .mdui-spinner-layer {\n border-color: #3F51B5;\n}\n.mdui-theme-primary-light-blue .mdui-spinner-layer {\n border-color: #03A9F4;\n}\n.mdui-theme-primary-light-green .mdui-spinner-layer {\n border-color: #8BC34A;\n}\n.mdui-theme-primary-lime .mdui-spinner-layer {\n border-color: #CDDC39;\n}\n.mdui-theme-primary-orange .mdui-spinner-layer {\n border-color: #FF9800;\n}\n.mdui-theme-primary-pink .mdui-spinner-layer {\n border-color: #E91E63;\n}\n.mdui-theme-primary-purple .mdui-spinner-layer {\n border-color: #9C27B0;\n}\n.mdui-theme-primary-red .mdui-spinner-layer {\n border-color: #F44336;\n}\n.mdui-theme-primary-teal .mdui-spinner-layer {\n border-color: #009688;\n}\n.mdui-theme-primary-yellow .mdui-spinner-layer {\n border-color: #FFEB3B;\n}\n/**\n * =============================================================================\n * ************ Menu 菜单 ************\n * =============================================================================\n */\n/* 菜单 */\n.mdui-menu {\n position: fixed;\n z-index: 99999;\n display: block;\n box-sizing: border-box;\n width: 168px;\n margin: 0;\n padding: 8px 0;\n overflow-y: auto;\n color: rgba(0, 0, 0, 0.87);\n font-size: 16px;\n list-style: none;\n background-color: #fff;\n border-radius: 2px;\n transform: scale(0);\n visibility: hidden;\n opacity: 0;\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n transition-duration: 0.3s;\n transition-property: transform, opacity, visibility;\n will-change: transform, opacity, visibility;\n -webkit-overflow-scrolling: touch;\n box-shadow: 0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);\n}\n.mdui-menu .mdui-divider {\n margin-top: 8px;\n margin-bottom: 8px;\n}\n/* 打开状态的菜单 */\n.mdui-menu-open {\n transform: scale(1);\n visibility: visible;\n opacity: 1;\n}\n/* 关闭中的菜单 */\n.mdui-menu-closing {\n transform: scale(1);\n visibility: visible;\n opacity: 0;\n}\n/* 菜单项 */\n.mdui-menu-item {\n position: relative;\n}\n.mdui-menu-item > a {\n position: relative;\n display: block;\n height: 48px;\n padding: 0 16px;\n color: inherit;\n line-height: 48px;\n text-decoration: none;\n user-select: none;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.mdui-menu-item > a:hover {\n background-color: #EEEEEE;\n}\n.mdui-menu-item > .mdui-menu {\n position: absolute;\n box-shadow: 0 5px 6px -3px rgba(0, 0, 0, 0.2), 0 9px 12px 1px rgba(0, 0, 0, 0.14), 0 3px 16px 2px rgba(0, 0, 0, 0.12);\n}\n.mdui-menu-item[disabled] > a {\n color: rgba(0, 0, 0, 0.38) !important;\n cursor: default;\n}\n.mdui-menu-item[disabled] > a:hover {\n background-color: inherit !important;\n}\n.mdui-menu-item[disabled] > a .mdui-icon {\n color: rgba(0, 0, 0, 0.26);\n}\n/* 激活状态的菜单项 */\n.mdui-menu-item-active {\n background-color: #EEEEEE;\n}\n/* 菜单中的图标 */\n.mdui-menu-item-icon {\n display: inline-block;\n box-sizing: border-box;\n width: 40px;\n padding-right: 16px;\n color: rgba(0, 0, 0, 0.54);\n}\n/* 菜单中的辅助文本或图标 */\n.mdui-menu-item-helper {\n float: right;\n}\n/* 有子菜单的条目的图标 */\n.mdui-menu-item-more {\n float: right;\n width: 24px;\n height: 24px;\n margin: 4px 0;\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M9.5 17.5l5-5-5-5z' opacity='.54'/%3E%3C/svg%3E\");\n}\n/* 级联菜单 */\n.mdui-menu-cascade {\n width: 320px;\n padding: 16px 0;\n overflow: visible;\n font-size: 15px;\n}\n.mdui-menu-cascade > .mdui-menu-item > a {\n height: 32px;\n padding: 0 24px;\n line-height: 32px;\n}\n/**\n * =============================================================================\n * ************ Menu dark ************\n * =============================================================================\n */\n.mdui-theme-layout-dark .mdui-menu {\n color: #fff;\n background-color: #424242;\n}\n.mdui-theme-layout-dark .mdui-menu-item > a:hover {\n background-color: #616161;\n}\n.mdui-theme-layout-dark .mdui-menu-item[disabled] > a {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n.mdui-theme-layout-dark .mdui-menu-item[disabled] > a .mdui-icon {\n color: rgba(255, 255, 255, 0.3);\n}\n.mdui-theme-layout-dark .mdui-menu-item-active {\n background-color: #616161;\n}\n.mdui-theme-layout-dark .mdui-menu-item-icon {\n color: #ffffff;\n}\n.mdui-theme-layout-dark .mdui-menu-item-more {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M9.5 17.5l5-5-5-5z' fill='%23FFF'/%3E%3C/svg%3E\");\n}\n@media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto .mdui-menu {\n color: #fff;\n background-color: #424242;\n }\n .mdui-theme-layout-auto .mdui-menu-item > a:hover {\n background-color: #616161;\n }\n .mdui-theme-layout-auto .mdui-menu-item[disabled] > a {\n color: rgba(255, 255, 255, 0.5) !important;\n }\n .mdui-theme-layout-auto .mdui-menu-item[disabled] > a .mdui-icon {\n color: rgba(255, 255, 255, 0.3);\n }\n .mdui-theme-layout-auto .mdui-menu-item-active {\n background-color: #616161;\n }\n .mdui-theme-layout-auto .mdui-menu-item-icon {\n color: #ffffff;\n }\n .mdui-theme-layout-auto .mdui-menu-item-more {\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M9.5 17.5l5-5-5-5z' fill='%23FFF'/%3E%3C/svg%3E\");\n }\n}\n","/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n","/**\n * =============================================================================\n * ************ 公共样式 ************\n * =============================================================================\n */\n* {\n -webkit-tap-highlight-color: transparent;\n}\n\nbody {\n color: @body-text-color;\n font-size: @screen-xs-font-size;\n font-family: @font-family-base;\n background-color: @body-background-color;\n @media (min-width: @screen-sm-min) {\n font-size: @screen-sm-font-size;\n }\n @media (min-width: @screen-md-min) {\n font-size: @screen-md-font-size;\n }\n\n // 滚动条样式\n * {\n .mdui-scrollbar-beautify(light);\n }\n}\n\n/* 锁定屏幕 */\nbody.mdui-locked {\n overflow: hidden;\n}\n\n/* 遮罩层 */\n.mdui-overlay {\n position: fixed;\n top: -5000px;\n right: -5000px;\n bottom: -5000px;\n left: -5000px;\n z-index: @z-index-overlay;\n background: rgba(0, 0, 0, .4);\n backface-visibility: hidden;\n visibility: hidden;\n opacity: 0;\n transition-duration: .3s;\n transition-property: opacity, visibility;\n will-change: opacity;\n}\n\n/* 显示遮罩层 */\n.mdui-overlay-show {\n visibility: visible;\n opacity: 1;\n}\n\n/* 取消 transition 过渡效果 */\n.mdui-no-transition {\n transition-property: none !important;\n}\n\n\n/**\n * =============================================================================\n * ************ Global dark ************\n * =============================================================================\n */\n.layout-theme({\n color: #fff;\n background-color: @layout-dark-color-3;\n\n // 夜间模式滚动条样式\n * {\n .mdui-scrollbar-beautify(dark);\n }\n});\n","// ======================== 边距\n.mdui-m-a(@spacing) {\n margin: @spacing * @spacing-base;\n}\n.mdui-m-t(@spacing) {\n margin-top: @spacing * @spacing-base;\n}\n.mdui-m-r(@spacing) {\n margin-right: @spacing * @spacing-base;\n}\n.mdui-m-b(@spacing) {\n margin-bottom: @spacing * @spacing-base;\n}\n.mdui-m-l(@spacing) {\n margin-left: @spacing * @spacing-base;\n}\n.mdui-m-x(@spacing) {\n margin-right: @spacing * @spacing-base;\n margin-left: @spacing * @spacing-base;\n}\n.mdui-m-y(@spacing) {\n margin-top: @spacing * @spacing-base;\n margin-bottom: @spacing * @spacing-base;\n}\n\n.mdui-p-a(@spacing) {\n padding: @spacing * @spacing-base;\n}\n.mdui-p-t(@spacing) {\n padding-top: @spacing * @spacing-base;\n}\n.mdui-p-r(@spacing) {\n padding-right: @spacing * @spacing-base;\n}\n.mdui-p-b(@spacing) {\n padding-bottom: @spacing * @spacing-base;\n}\n.mdui-p-l(@spacing) {\n padding-left: @spacing * @spacing-base;\n}\n.mdui-p-x(@spacing) {\n padding-right: @spacing * @spacing-base;\n padding-left: @spacing * @spacing-base;\n}\n.mdui-p-y(@spacing) {\n padding-top: @spacing * @spacing-base;\n padding-bottom: @spacing * @spacing-base;\n}\n\n//=========================== 清除浮动\n// 清除浮动\n.mdui-clearfix() {\n &::before,\n &::after {\n display: table;\n content: ' ';\n }\n &::after {\n clear: both;\n }\n}\n\n// 用省略号代替被截断的文本\n.mdui-text-truncate() {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n// 文本强制换行\n.mdui-textwrap() {\n word-wrap: break-word;\n word-break: break-all;\n}\n\n// 使子元素垂直居中\n.mdui-valign() {\n display: flex;\n align-items: center;\n}\n\n// 使元素水平居中\n.mdui-center() {\n display: block;\n margin-right: auto;\n margin-left: auto;\n}\n\n// 美化滚动条样式\n.mdui-scrollbar-beautify(@layout: light) {\n // 亮色主题\n & when (@layout = light) {\n &::-webkit-scrollbar {\n width: 5px;\n height: 5px;\n background: transparent;\n // 桌面端\n @media (min-width: @screen-md-min) {\n width: 8px;\n height: 8px;\n }\n }\n\n &::-webkit-scrollbar-thumb {\n background: rgba(0, 0, 0, 0.2);\n }\n }\n\n // 暗色主题\n & when (@layout = dark) {\n &::-webkit-scrollbar {\n width: 5px;\n height: 5px;\n background: transparent;\n // 桌面端\n @media (min-width: @screen-md-min) {\n width: 8px;\n height: 8px;\n }\n }\n\n &::-webkit-scrollbar-thumb {\n background: rgba(255, 255, 255, 0.3);\n }\n }\n}\n",".layout-theme(@rules) {\n & when (@globalLayoutDark = true) {\n .mdui-theme-layout-dark {\n @rules();\n }\n }\n & when (@globalLayoutAuto = true) {\n @media (prefers-color-scheme: dark) {\n .mdui-theme-layout-auto {\n @rules();\n }\n }\n }\n}\n","// 阴影\n@shadow-key-umbra-opacity: 0.2;\n@shadow-key-penumbra-opacity: 0.14;\n@shadow-ambient-shadow-opacity: 0.12;\n\n\n@shadow-depth-0: none;\n\n@shadow-depth-1: 0 2px 1px -1px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 1px 1px 0 rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 1px 3px 0 rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-2: 0 3px 1px -2px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 2px 2px 0 rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 1px 5px 0 rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-3: 0 3px 3px -2px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 3px 4px 0 rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 1px 8px 0 rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-4: 0 2px 4px -1px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 4px 5px 0 rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 1px 10px 0 rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-5: 0 3px 5px -1px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 5px 8px 0 rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 1px 14px 0 rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-6: 0 3px 5px -1px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 6px 10px 0 rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 1px 18px 0 rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-7: 0 4px 5px -2px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 7px 10px 1px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 2px 16px 1px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-8: 0 5px 5px -3px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 8px 10px 1px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 3px 14px 2px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-9: 0 5px 6px -3px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 9px 12px 1px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 3px 16px 2px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-10: 0 6px 6px -3px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 10px 14px 1px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 4px 18px 3px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-11: 0 6px 7px -4px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 11px 15px 1px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 4px 20px 3px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-12: 0 7px 8px -4px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 12px 17px 2px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 5px 22px 4px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-13: 0 7px 8px -4px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 13px 19px 2px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 5px 24px 4px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-14: 0 7px 9px -4px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 14px 21px 2px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 5px 26px 4px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-15: 0 8px 9px -5px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 15px 22px 2px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 6px 28px 5px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-16: 0 8px 10px -5px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 16px 24px 2px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 6px 30px 5px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-17: 0 8px 11px -5px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 17px 26px 2px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 6px 32px 5px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-18: 0 9px 11px -5px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 18px 28px 2px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 7px 34px 6px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-19: 0 9px 12px -6px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 19px 29px 2px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 7px 36px 6px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-20: 0 10px 13px -6px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 20px 31px 3px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 8px 38px 7px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-21: 0 10px 13px -6px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 21px 33px 3px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 8px 40px 7px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-22: 0 10px 14px -6px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 22px 35px 3px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 8px 42px 7px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-23: 0 11px 14px -7px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 23px 36px 3px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 9px 44px 8px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n\n@shadow-depth-24: 0 11px 15px -7px rgba(0, 0, 0, @shadow-key-umbra-opacity),\n0 24px 38px 3px rgba(0, 0, 0, @shadow-key-penumbra-opacity),\n0 9px 46px 8px rgba(0, 0, 0, @shadow-ambient-shadow-opacity);\n","// 根据背景色设置文本色\n._mdui-color-text-color(@color-is-dark) {\n & when (@color-is-dark = true) {\n color: @color-white-text;\n }\n & when (@color-is-dark = false) {\n color: @color-black-text;\n }\n}\n\n// hover 状态背景色\n._mdui-background-color-hover(@colorName) {\n @color-is-dark: 'color-@{colorName}-500-is-dark';\n & when (@@color-is-dark = true) {\n @color: 'color-@{colorName}-400';\n\n background-color: @@color;\n }\n & when (@@color-is-dark = false) {\n @color: 'color-@{colorName}-600';\n\n background-color: @@color;\n }\n}\n\n// active 状态背景色\n._mdui-background-color-active(@colorName) {\n @color-is-dark: 'color-@{colorName}-500-is-dark';\n & when (@@color-is-dark = true) {\n @color: 'color-@{colorName}-300';\n\n background-color: @@color;\n }\n & when (@@color-is-dark = false) {\n @color: 'color-@{colorName}-700';\n\n background-color: @@color;\n }\n}\n\n// 仅设置背景色\n.mdui-background-color(@colorName, @degree: 500) {\n @color: 'color-@{colorName}-@{degree}';\n\n background-color: @@color;\n}\n\n// 背景色和文本色\n.mdui-color(@colorName, @degree: 500) {\n .mdui-background-color(@colorName, @degree);\n\n @color-is-dark: 'color-@{colorName}-@{degree}-is-dark';\n ._mdui-color-text-color(@@color-is-dark);\n}\n\n// 文本色\n.mdui-text-color(@colorName, @degree: 500, @opacity: 1) {\n @color: 'color-@{colorName}-@{degree}';\n\n & when (@opacity = 1) {\n color: @@color;\n }\n & when (@opacity < 1) {\n color: rgba(red(@@color), green(@@color), blue(@@color), @opacity);\n }\n}\n","/**\n * =============================================================================\n * ************ Color 颜色 ************\n * =============================================================================\n */\n\n@global-primary-color-degrees-length: length(@globalPrimaryColorDegrees);\n@global-primary-colors-length: length(@globalPrimaryColors);\n@global-accent-color-degrees-length: length(@globalAccentColorDegrees);\n@global-accent-colors-length: length(@globalAccentColors);\n\n\n/**\n * .mdui-theme-primary-[color] .mdui-color-theme\n * .mdui-theme-primary-[color] .mdui-color-theme-[degree]\n */\n\n& {\n .loop-primary-theme(@counter-color) when (@counter-color > 0) {\n .loop-primary-theme((@counter-color - 1));\n\n @colorName: extract(@globalPrimaryColors, @counter-color);\n\n .mdui-theme-primary-@{colorName} when not (@colorName = null) {\n\n // .mdui-theme-primary-[color] .mdui-color-theme\n .mdui-color-theme {\n .mdui-color(@colorName) !important;\n }\n\n .loop-primary-degree-theme(@counter-degree) when (@counter-degree > 0) {\n .loop-primary-degree-theme((@counter-degree - 1));\n\n @degree: extract(@globalPrimaryColorDegrees, @counter-degree);\n\n // .mdui-theme-primary-[color] .mdui-color-theme-[degree]\n .mdui-color-theme-@{degree} when not (@degree = null) {\n .mdui-color(@colorName, @degree) !important;\n }\n }\n .loop-primary-degree-theme(@global-primary-color-degrees-length);\n }\n }\n .loop-primary-theme(@global-primary-colors-length);\n}\n\n\n/**\n * .mdui-theme-accent-[color] .mdui-color-theme-accent\n * .mdui-theme-accent-[color] .mdui-color-theme-[degree]\n */\n\n& {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n\n @colorName: extract(@globalAccentColors, @counter-color);\n\n .mdui-theme-accent-@{colorName} when not (@colorName = null) {\n\n // .mdui-theme-accent-[color] .mdui-color-theme-accent\n .mdui-color-theme-accent {\n .mdui-color(@colorName, a200) !important;\n }\n\n .loop-accent-degree-theme(@counter-degree) when (@counter-degree > 0) {\n .loop-accent-degree-theme((@counter-degree - 1));\n\n @degree: extract(@globalAccentColorDegrees, @counter-degree);\n\n // .mdui-theme-accent-[color] .mdui-color-theme-[degree]\n .mdui-color-theme-@{degree} when not (@degree = null) {\n .mdui-color(@colorName, @degree) !important;\n }\n }\n .loop-accent-degree-theme(@global-accent-color-degrees-length);\n }\n }\n .loop-accent-theme(@global-accent-colors-length);\n}\n\n\n/**\n * .mdui-color-[color]\n * .mdui-color-[color]-[degree]\n */\n\n& {\n .loop-primary-theme(@counter-color) when (@counter-color > 0) {\n .loop-primary-theme((@counter-color - 1));\n\n @colorName: extract(@globalPrimaryColors, @counter-color);\n\n & {\n // .mdui-color-[color]\n .mdui-color-@{colorName} when not (@colorName = null) {\n .mdui-color(@colorName) !important;\n }\n\n .loop-primary-degree-theme(@counter-degree) when (@counter-degree > 0) {\n .loop-primary-degree-theme((@counter-degree - 1));\n\n @degree: extract(@globalPrimaryColorDegrees, @counter-degree);\n\n // .mdui-color-[color]-[degree]\n .mdui-color-@{colorName}-@{degree} when not (@degree = null) {\n .mdui-color(@colorName, @degree) !important;\n }\n }\n .loop-primary-degree-theme(@global-primary-color-degrees-length);\n }\n }\n .loop-primary-theme(@global-primary-colors-length);\n}\n\n\n/**\n * .mdui-color-[color]-accent\n * .mdui-color-[color]-[degree]\n */\n\n& {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n\n @colorName: extract(@globalAccentColors, @counter-color);\n\n &{\n // .mdui-color-[color]-accent\n .mdui-color-@{colorName}-accent when not (@colorName = null) {\n .mdui-color(@colorName, a200) !important;\n }\n\n .loop-accent-degree-theme(@counter-degree) when (@counter-degree > 0) {\n .loop-accent-degree-theme((@counter-degree - 1));\n\n @degree: extract(@globalAccentColorDegrees, @counter-degree);\n\n // .mdui-color-[color]-[degree]\n .mdui-color-@{colorName}-@{degree} when not (@degree = null) {\n .mdui-color(@colorName, @degree) !important;\n }\n }\n .loop-accent-degree-theme(@global-accent-color-degrees-length);\n }\n }\n .loop-accent-theme(@global-accent-colors-length);\n}\n\n\n/**\n * .mdui-color-black\n * .mdui-color-white\n * .mdui-color-transparent\n */\n\n.mdui-color-black {\n color: @color-white-text !important;\n background-color: @color-black !important;\n}\n\n.mdui-color-white {\n color: @color-black-text !important;\n background-color: @color-white !important;\n}\n\n.mdui-color-transparent {\n background-color: @color-transparent !important;\n}\n\n\n/**\n * .mdui-theme-primary-[color] .mdui-text-color-theme\n * .mdui-theme-primary-[color] .mdui-text-color-theme-[degree]\n */\n\n& {\n .loop-primary-theme(@counter-color) when (@counter-color > 0) {\n .loop-primary-theme((@counter-color - 1));\n\n @colorName: extract(@globalPrimaryColors, @counter-color);\n\n .mdui-theme-primary-@{colorName} when not (@colorName = null) {\n\n // .mdui-theme-primary-[color] .mdui-text-color-theme\n .mdui-text-color-theme {\n .mdui-text-color(@colorName) !important;\n }\n\n .loop-primary-degree-theme(@counter-degree) when (@counter-degree > 0) {\n .loop-primary-degree-theme((@counter-degree - 1));\n\n @degree: extract(@globalPrimaryColorDegrees, @counter-degree);\n\n // .mdui-theme-primary-[color] .mdui-text-color-theme-[degree]\n .mdui-text-color-theme-@{degree} when not (@degree = null) {\n .mdui-text-color(@colorName, @degree) !important;\n }\n }\n .loop-primary-degree-theme(@global-primary-color-degrees-length);\n }\n }\n .loop-primary-theme(@global-primary-colors-length);\n}\n\n\n/**\n * .mdui-theme-accent-[color] .mdui-text-color-theme-accent\n * .mdui-theme-accent-[color] .mdui-text-color-theme-[degree]\n */\n\n& {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n\n @colorName: extract(@globalAccentColors, @counter-color);\n\n .mdui-theme-accent-@{colorName} when not (@colorName = null) {\n\n // .mdui-theme-accent-[color] .mdui-text-color-theme-accent\n .mdui-text-color-theme-accent {\n .mdui-text-color(@colorName, a200) !important;\n }\n\n .loop-accent-degree-theme(@counter-degree) when (@counter-degree > 0) {\n .loop-accent-degree-theme((@counter-degree - 1));\n\n @degree: extract(@globalAccentColorDegrees, @counter-degree);\n\n // .mdui-theme-accent-[color] .mdui-text-color-theme-[degree]\n .mdui-text-color-theme-@{degree} when not (@degree = null) {\n .mdui-text-color(@colorName, @degree) !important;\n }\n }\n .loop-accent-degree-theme(@global-accent-color-degrees-length);\n }\n }\n .loop-accent-theme(@global-accent-colors-length);\n}\n\n\n/**\n * .mdui-text-color-[color]\n * .mdui-text-color-[color]-[degree]\n */\n\n& {\n .loop-primary-theme(@counter-color) when (@counter-color > 0) {\n .loop-primary-theme((@counter-color - 1));\n\n @colorName: extract(@globalPrimaryColors, @counter-color);\n\n &{\n // .mdui-text-color-[color]\n .mdui-text-color-@{colorName} when not (@colorName = null) {\n .mdui-text-color(@colorName) !important;\n }\n\n .loop-primary-degree-theme(@counter-degree) when (@counter-degree > 0) {\n .loop-primary-degree-theme((@counter-degree - 1));\n\n @degree: extract(@globalPrimaryColorDegrees, @counter-degree);\n\n // .mdui-text-color-[color]-[degree]\n .mdui-text-color-@{colorName}-@{degree} when not (@degree = null) {\n .mdui-text-color(@colorName, @degree) !important;\n }\n }\n .loop-primary-degree-theme(@global-primary-color-degrees-length);\n }\n }\n .loop-primary-theme(@global-primary-colors-length);\n}\n\n\n/**\n * .mdui-text-color-[color]-accent\n * .mdui-text-color-[color]-[degree]\n */\n\n& {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n\n @colorName: extract(@globalAccentColors, @counter-color);\n\n &{\n // .mdui-text-color-[color]-accent\n .mdui-text-color-@{colorName}-accent when not (@colorName = null) {\n .mdui-text-color(@colorName, a200) !important;\n }\n\n .loop-accent-degree-theme(@counter-degree) when (@counter-degree > 0) {\n .loop-accent-degree-theme((@counter-degree - 1));\n\n @degree: extract(@globalAccentColorDegrees, @counter-degree);\n\n // .mdui-text-color-[color]-[degree]\n .mdui-text-color-@{colorName}-@{degree} when not (@degree = null) {\n .mdui-text-color(@colorName, @degree) !important;\n }\n }\n .loop-accent-degree-theme(@global-accent-color-degrees-length);\n }\n }\n .loop-accent-theme(@global-accent-colors-length);\n}\n\n\n/**\n * .mdui-text-color-black\n * .mdui-text-color-black-[]\n * .mdui-text-color-theme-[]\n */\n\n.mdui-text-color-black {\n color: @color-black !important;\n}\n.mdui-text-color-black-text,\n.mdui-text-color-theme-text {\n color: @color-black-text !important;\n}\n.mdui-text-color-black-secondary,\n.mdui-text-color-theme-secondary {\n color: @color-black-secondary !important;\n}\n.mdui-text-color-black-disabled,\n.mdui-text-color-theme-disabled {\n color: @color-black-disabled !important;\n}\n.mdui-text-color-black-divider,\n.mdui-text-color-theme-divider {\n color: @color-black-divider !important;\n}\n.mdui-text-color-black-icon,\n.mdui-text-color-theme-icon {\n color: @color-black-icon !important;\n}\n.mdui-text-color-black-icon-disabled,\n.mdui-text-color-theme-icon-disabled {\n color: @color-black-icon-disabled !important;\n}\n\n/**\n * .mdui-text-color-white\n * .mdui-text-color-white-[]\n */\n.mdui-text-color-white {\n color: @color-white !important;\n}\n.mdui-text-color-white-text {\n color: @color-white-text !important;\n}\n.mdui-text-color-white-secondary {\n color: @color-white-secondary !important;\n}\n.mdui-text-color-white-disabled {\n color: @color-white-disabled !important;\n}\n.mdui-text-color-white-divider {\n color: @color-white-divider !important;\n}\n.mdui-text-color-white-icon {\n color: @color-white-icon !important;\n}\n.mdui-text-color-white-icon-disabled {\n color: @color-white-icon-disabled !important;\n}\n\n/**\n * .mdui-text-color-theme-[] 深色主题\n */\n.layout-theme({\n .mdui-text-color-theme-text {\n color: @color-white-text !important;\n }\n .mdui-text-color-theme-secondary {\n color: @color-white-secondary !important;\n }\n .mdui-text-color-theme-disabled {\n color: @color-white-disabled !important;\n }\n .mdui-text-color-theme-divider {\n color: @color-white-divider !important;\n }\n .mdui-text-color-theme-icon {\n color: @color-white-icon !important;\n }\n .mdui-text-color-theme-icon-disabled {\n color: @color-white-icon-disabled !important;\n }\n});\n","/**\n * =============================================================================\n * ************ Helper 辅助类 ************\n * =============================================================================\n */\n\n/**\n * =================== 边距\n */\n._spacing_margin_mixin(@spacing) when (@spacing > -1) {\n ._spacing_margin_mixin(@spacing - 1);\n\n .mdui-m-a-@{spacing} {\n .mdui-m-a(@spacing) !important;\n }\n .mdui-m-t-@{spacing} {\n .mdui-m-t(@spacing) !important;\n }\n .mdui-m-r-@{spacing} {\n .mdui-m-r(@spacing) !important;\n }\n .mdui-m-b-@{spacing} {\n .mdui-m-b(@spacing) !important;\n }\n .mdui-m-l-@{spacing} {\n .mdui-m-l(@spacing) !important;\n }\n .mdui-m-x-@{spacing} {\n .mdui-m-x(@spacing) !important;\n }\n .mdui-m-y-@{spacing} {\n .mdui-m-y(@spacing) !important;\n }\n\n .mdui-p-a-@{spacing} {\n .mdui-p-a(@spacing) !important;\n }\n .mdui-p-t-@{spacing} {\n .mdui-p-t(@spacing) !important;\n }\n .mdui-p-r-@{spacing} {\n .mdui-p-r(@spacing) !important;\n }\n .mdui-p-b-@{spacing} {\n .mdui-p-b(@spacing) !important;\n }\n .mdui-p-l-@{spacing} {\n .mdui-p-l(@spacing) !important;\n }\n .mdui-p-x-@{spacing} {\n .mdui-p-x(@spacing) !important;\n }\n .mdui-p-y-@{spacing} {\n .mdui-p-y(@spacing) !important;\n }\n}\n\n._spacing_margin_mixin(5);\n\n\n/**\n * ======================== 快速浮动\n */\n\n/* 向左浮动 */\n.mdui-float-left {\n float: left !important;\n}\n\n/* 向右浮动 */\n.mdui-float-right {\n float: right !important;\n}\n\n/**\n * ========================= 水平居中\n */\n\n/* 水平居中 */\n.mdui-center {\n .mdui-center() !important;\n}\n\n/**\n * ========================= 垂直居中\n */\n\n/* 垂直居中 */\n.mdui-valign {\n .mdui-valign() !important;\n}\n\n/**\n * ========================= 文本对齐方式\n */\n\n/* 文本左对齐 */\n.mdui-text-left {\n text-align: left !important;\n}\n\n/* 文本居中对齐 */\n.mdui-text-center {\n text-align: center !important;\n}\n\n/* 文本向右对齐 */\n.mdui-text-right {\n text-align: right !important;\n}\n\n/**\n * ========================= 文本大小写转换\n */\n\n/* 文本转为小写 */\n.mdui-text-lowercase {\n text-transform: lowercase !important;\n}\n\n/* 文本转为大写 */\n.mdui-text-uppercase {\n text-transform: uppercase !important;\n}\n\n/* 文本转为单词的首字母大写 */\n.mdui-text-capitalize {\n text-transform: capitalize !important;\n}\n\n/**\n * ======================== 文本截断\n */\n\n/* 文本截断 */\n.mdui-text-truncate {\n .mdui-text-truncate();\n}\n\n/**\n * ========================= 清除浮动\n */\n\n/* 清除浮动 */\n.mdui-clearfix {\n .mdui-clearfix();\n}\n\n/**\n * ========================= 隐藏内容\n */\n\n/* 隐藏元素 */\n.mdui-hidden,\n[hidden] {\n display: none !important;\n}\n\n/* 使元素不可见 */\n.mdui-invisible {\n visibility: hidden;\n}\n\n/* Responsive utilities 响应式工具\n ========================================================================== */\n\n/* 在特定屏幕的特备上隐藏 */\n@media (max-width: @screen-xs-max) {\n .mdui-hidden-xs {\n display: none !important;\n }\n}\n@media (min-width: @screen-sm-min) and (max-width: @screen-sm-max) {\n .mdui-hidden-sm {\n display: none !important;\n }\n}\n@media (min-width: @screen-md-min) and (max-width: @screen-md-max) {\n .mdui-hidden-md {\n display: none !important;\n }\n}\n@media (min-width: @screen-lg-min) and (max-width: @screen-lg-max) {\n .mdui-hidden-lg {\n display: none !important;\n }\n}\n@media (min-width: @screen-xl-min) {\n .mdui-hidden-xl {\n display: none !important;\n }\n}\n\n/* 在比特定屏幕小的设备上隐藏 */\n@media (max-width: @screen-xs-max) {\n .mdui-hidden-xs-down {\n display: none !important;\n }\n}\n@media (max-width: @screen-sm-max) {\n .mdui-hidden-sm-down {\n display: none !important;\n }\n}\n@media (max-width: @screen-md-max) {\n .mdui-hidden-md-down {\n display: none !important;\n }\n}\n@media (max-width: @screen-lg-max) {\n .mdui-hidden-lg-down {\n display: none !important;\n }\n}\n.mdui-hidden-xl-down {\n display: none !important;\n}\n\n/* 在比特定屏幕大的设备上隐藏 */\n.mdui-hidden-xs-up {\n display: none !important;\n}\n@media (min-width: @screen-sm-min) {\n .mdui-hidden-sm-up {\n display: none !important;\n }\n}\n@media (min-width: @screen-md-min) {\n .mdui-hidden-md-up {\n display: none !important;\n }\n}\n@media (min-width: @screen-lg-min) {\n .mdui-hidden-lg-up {\n display: none !important;\n }\n}\n@media (min-width: @screen-xl-min) {\n .mdui-hidden-xl-up {\n display: none !important;\n }\n}\n","/**\n * =============================================================================\n * ************ Icon 图标 ************\n * =============================================================================\n */\n\n.mdui-icon,\n.mdui-icon::before {\n color: inherit;\n font-weight: normal;\n font-size: 24px; /* Preferred icon size */\n font-style: normal;\n line-height: 1;\n direction: ltr;\n letter-spacing: normal;\n white-space: nowrap;\n text-transform: none;\n vertical-align: middle;\n word-wrap: normal;\n}\n\n.mdui-icon {\n display: inline-block;\n text-align: center;\n}\n\n.mdui-icon::before {\n display: block !important;\n width: 24px;\n height: 24px;\n}\n","/**\n * =============================================================================\n * ************ Material Icons ************\n * =============================================================================\n *\n * https://github.com/google/material-design-icons/\n * v3.0.1\n */\n\n@import './icon';\n\n@font-face {\n font-weight: 400;\n font-family: 'Material Icons';\n font-style: normal;\n src: local('Material Icons'), local('MaterialIcons-Regular'),\n url(../icons/material-icons/MaterialIcons-Regular.woff2) format('woff2'),\n url(../icons/material-icons/MaterialIcons-Regular.woff) format('woff');\n}\n\n.material-icons {\n /* stylelint-disable-next-line */\n font-family: 'Material Icons';\n\n /* Support for all WebKit browsers. */\n -webkit-font-smoothing: antialiased;\n\n /* Support for Safari and Chrome. */\n text-rendering: optimizeLegibility;\n\n /* Support for Firefox. */\n -moz-osx-font-smoothing: grayscale;\n\n /* Support for IE. */\n font-feature-settings: 'liga';\n}\n","/**\n * =============================================================================\n * ************ Media 媒体工具 ************\n * =============================================================================\n */\n\n/* 响应式图片和视频 */\n.mdui-img-fluid,\n.mdui-video-fluid {\n .mdui-img-fluid();\n}\n\n/* 圆角图片 */\n.mdui-img-rounded {\n border-radius: 2px;\n}\n\n/* 圆形图片 */\n.mdui-img-circle {\n border-radius: 50%;\n}\n\n// embed\n.mdui-video-container {\n position: relative;\n height: 0;\n padding-bottom: 56.25%;\n overflow: hidden;\n\n iframe,\n object,\n embed {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%\n }\n}\n",".mdui-img-fluid() {\n display: block;\n max-width: 100%;\n height: auto;\n}\n\n.mdui-video-fluid() {\n display: block;\n max-width: 100%;\n height: auto;\n}\n","/**\n * =============================================================================\n * ************ Roboto 字体 ************\n * =============================================================================\n */\n\n@font-face {\n font-weight: 100;\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n src: local('Roboto Thin'), local('Roboto-Thin'),\n url('../fonts/roboto/Roboto-Thin.woff2') format('woff2'),\n url('../fonts/roboto/Roboto-Thin.woff') format('woff');\n}\n\n@font-face {\n font-weight: 100;\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n src: local('Roboto ThinItalic'), local('Roboto-ThinItalic'),\n url('../fonts/roboto/Roboto-ThinItalic.woff2') format('woff2'),\n url('../fonts/roboto/Roboto-ThinItalic.woff') format('woff');\n}\n\n@font-face {\n font-weight: 300;\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n src: local('Roboto Light'), local('Roboto-Light'),\n url('../fonts/roboto/Roboto-Light.woff2') format('woff2'),\n url('../fonts/roboto/Roboto-Light.woff') format('woff');\n}\n\n@font-face {\n font-weight: 300;\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n src: local('Roboto LightItalic'), local('Roboto-LightItalic'),\n url('../fonts/roboto/Roboto-LightItalic.woff2') format('woff2'),\n url('../fonts/roboto/Roboto-LightItalic.woff') format('woff');\n}\n\n@font-face {\n font-weight: 400;\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n src: local('Roboto Regular'), local('Roboto-Regular'),\n url('../fonts/roboto/Roboto-Regular.woff2') format('woff2'),\n url('../fonts/roboto/Roboto-Regular.woff') format('woff');\n}\n\n@font-face {\n font-weight: 400;\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n src: local('Roboto RegularItalic'), local('Roboto-RegularItalic'),\n url('../fonts/roboto/Roboto-RegularItalic.woff2') format('woff2'),\n url('../fonts/roboto/Roboto-RegularItalic.woff') format('woff');\n}\n\n@font-face {\n font-weight: 500;\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n src: local('Roboto Medium'), local('Roboto-Medium'),\n url('../fonts/roboto/Roboto-Medium.woff2') format('woff2'),\n url('../fonts/roboto/Roboto-Medium.woff') format('woff');\n}\n\n@font-face {\n font-weight: 500;\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n src: local('Roboto MediumItalic'), local('Roboto-MediumItalic'),\n url('../fonts/roboto/Roboto-MediumItalic.woff2') format('woff2'),\n url('../fonts/roboto/Roboto-MediumItalic.woff') format('woff');\n}\n\n@font-face {\n font-weight: 700;\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n src: local('Roboto Bold'), local('Roboto-Bold'),\n url('../fonts/roboto/Roboto-Bold.woff2') format('woff2'),\n url('../fonts/roboto/Roboto-Bold.woff') format('woff');\n}\n\n@font-face {\n font-weight: 700;\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n src: local('Roboto BoldItalic'), local('Roboto-BoldItalic'),\n url('../fonts/roboto/Roboto-BoldItalic.woff2') format('woff2'),\n url('../fonts/roboto/Roboto-BoldItalic.woff') format('woff');\n}\n\n@font-face {\n font-weight: 900;\n font-family: 'Roboto';\n font-style: normal;\n font-display: swap;\n src: local('Roboto Black'), local('Roboto-Black'),\n url('../fonts/roboto/Roboto-Black.woff2') format('woff2'),\n url('../fonts/roboto/Roboto-Black.woff') format('woff');\n}\n\n@font-face {\n font-weight: 900;\n font-family: 'Roboto';\n font-style: italic;\n font-display: swap;\n src: local('Roboto BlackItalic'), local('Roboto-BlackItalic'),\n url('../fonts/roboto/Roboto-BlackItalic.woff2') format('woff2'),\n url('../fonts/roboto/Roboto-BlackItalic.woff') format('woff');\n}\n","/**\n * =============================================================================\n * ************ Typography 样式排版 ************\n * =============================================================================\n */\n\n/* .mdui-typo-display-4 */\n.mdui-typo-display-4,\n.mdui-typo-display-4-opacity {\n .mdui-typo-display-4();\n}\n.mdui-typo-display-4-opacity {\n ._mdui-typo-display-4-opacity();\n}\n\n/* .mdui-typo-display-3 */\n.mdui-typo-display-3,\n.mdui-typo-display-3-opacity {\n .mdui-typo-display-3();\n}\n.mdui-typo-display-3-opacity {\n ._mdui-typo-display-3-opacity();\n}\n\n/* .mdui-typo-display-2 */\n.mdui-typo-display-2,\n.mdui-typo-display-2-opacity {\n .mdui-typo-display-2();\n}\n.mdui-typo-display-2-opacity {\n ._mdui-typo-display-2-opacity();\n}\n\n/* .mdui-typo-display-1 */\n.mdui-typo-display-1,\n.mdui-typo-display-1-opacity {\n .mdui-typo-display-1();\n}\n.mdui-typo-display-1-opacity {\n ._mdui-typo-display-1-opacity();\n}\n\n/* .mdui-typo-headline */\n.mdui-typo-headline,\n.mdui-typo-headline-opacity {\n .mdui-typo-headline();\n}\n.mdui-typo-headline-opacity {\n ._mdui-typo-headline-opacity();\n}\n\n/* .mdui-typo-title */\n.mdui-typo-title,\n.mdui-typo-title-opacity {\n .mdui-typo-title();\n}\n.mdui-typo-title-opacity {\n ._mdui-typo-title-opacity();\n}\n\n.mdui-typo-subheading,\n.mdui-typo-subheading-opacity {\n .mdui-typo-subheading();\n}\n.mdui-typo-subheading-opacity {\n ._mdui-typo-subheading-opacity();\n}\n\n.mdui-typo-body-2,\n.mdui-typo-body-2-opacity {\n .mdui-typo-body-2();\n}\n.mdui-typo-body-2-opacity {\n ._mdui-typo-body-2-opacity();\n}\n\n.mdui-typo-body-1,\n.mdui-typo-body-1-opacity {\n .mdui-typo-body-1();\n}\n.mdui-typo-body-1-opacity {\n ._mdui-typo-body-1-opacity();\n}\n\n.mdui-typo-caption,\n.mdui-typo-caption-opacity {\n .mdui-typo-caption();\n}\n.mdui-typo-caption-opacity {\n ._mdui-typo-caption-opacity();\n}\n","._mdui-typo-display-4-opacity() {\n opacity: 0.54;\n}\n.mdui-typo-display-4(@opacity: false) {\n font-weight: 300;\n font-size: 112px;\n letter-spacing: -0.04em;\n & when (@opacity = true) {\n ._mdui-typo-display-4-opacity();\n }\n & when (isnumber(@opacity)) {\n opacity: @opacity;\n }\n}\n\n._mdui-typo-display-3-opacity() {\n opacity: 0.54;\n}\n.mdui-typo-display-3(@opacity: false) {\n font-weight: 400;\n font-size: 56px;\n letter-spacing: -0.02em;\n & when (@opacity = true) {\n ._mdui-typo-display-3-opacity();\n }\n & when (isnumber(@opacity)) {\n opacity: @opacity;\n }\n}\n\n._mdui-typo-display-2-opacity() {\n opacity: 0.54;\n}\n.mdui-typo-display-2(@opacity: false) {\n font-weight: 400;\n font-size: 45px;\n letter-spacing: 0;\n & when (@opacity = true) {\n ._mdui-typo-display-2-opacity();\n }\n & when (isnumber(@opacity)) {\n opacity: @opacity;\n }\n}\n\n._mdui-typo-display-1-opacity() {\n opacity: 0.54;\n}\n.mdui-typo-display-1(@opacity: false) {\n font-weight: 400;\n font-size: 34px;\n letter-spacing: 0;\n & when (@opacity = true) {\n ._mdui-typo-display-1-opacity();\n }\n & when (isnumber(@opacity)) {\n opacity: @opacity;\n }\n}\n\n._mdui-typo-headline-opacity() {\n opacity: 0.87;\n}\n.mdui-typo-headline(@opacity: false) {\n font-weight: 400;\n font-size: 24px;\n -moz-osx-font-smoothing: grayscale;\n & when (@opacity = true) {\n ._mdui-typo-headline-opacity();\n }\n & when (isnumber(@opacity)) {\n opacity: @opacity;\n }\n}\n\n._mdui-typo-title-opacity() {\n opacity: 0.87;\n}\n.mdui-typo-title(@opacity: false) {\n font-weight: 500;\n font-size: 20px;\n letter-spacing: 0.02em;\n & when (@opacity = true) {\n ._mdui-typo-title-opacity();\n }\n & when (isnumber(@opacity)) {\n opacity: @opacity;\n }\n}\n\n._mdui-typo-subheading-opacity() {\n opacity: 0.87;\n}\n.mdui-typo-subheading(@opacity: false) {\n font-weight: 400;\n font-size: 16px;\n letter-spacing: 0.04em;\n & when (@opacity = true) {\n ._mdui-typo-subheading-opacity();\n }\n & when (isnumber(@opacity)) {\n opacity: @opacity;\n }\n}\n\n._mdui-typo-body-2-opacity() {\n opacity: 0.87;\n}\n.mdui-typo-body-2(@opacity: false) {\n font-weight: 500;\n font-size: 14px;\n letter-spacing: 0.04em;\n & when (@opacity = true) {\n ._mdui-typo-body-2-opacity();\n }\n & when (isnumber(@opacity)) {\n opacity: @opacity;\n }\n}\n\n._mdui-typo-body-1-opacity() {\n opacity: 0.87;\n}\n.mdui-typo-body-1(@opacity: false) {\n font-weight: 400;\n font-size: 14px;\n letter-spacing: 0.04em;\n & when (@opacity = true) {\n ._mdui-typo-body-1-opacity();\n }\n & when (isnumber(@opacity)) {\n opacity: @opacity;\n }\n}\n\n._mdui-typo-caption-opacity() {\n opacity: 0.54;\n}\n.mdui-typo-caption(@opacity: false) {\n font-weight: 400;\n font-size: 12px;\n letter-spacing: 0.08em;\n & when (@opacity = true) {\n ._mdui-typo-caption-opacity();\n }\n & when (isnumber(@opacity)) {\n opacity: @opacity;\n }\n}\n","/**\n * =============================================================================\n * ************ Typography 文章排版 ************\n * =============================================================================\n */\n\n.mdui-typo {\n line-height: 1.8;\n word-wrap: break-word;\n\n address, caption, cite, code, dfn, th {\n font-weight: 400;\n font-style: normal;\n }\n\n caption, th {\n text-align: left;\n }\n\n q::before, q::after {\n content: '';\n }\n\n pre, code, kbd, samp, pre tt {\n font-family: Consolas, Courier, 'Courier New', monospace;\n }\n\n figcaption {\n color: @color-black-secondary;\n font-size: 80%;\n }\n\n [draggable],\n [draggable=\"true\"] {\n cursor: move;\n }\n\n [draggable=\"false\"] {\n cursor: inherit;\n }\n\n p, pre, ul, ol, dl, form, hr, figure, table, .mdui-table, .mdui-table-fluid {\n margin: 0 0 1.2em 0;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n /* a */\n a {\n .mdui-text-color(@color-accent-default-name, a200);\n\n position: relative;\n display: inline-block;\n overflow: hidden;\n text-decoration: none;\n vertical-align: top;\n outline: none;\n\n &::before {\n position: absolute;\n top: auto;\n bottom: 1px;\n left: 0;\n width: 100%;\n height: 1px;\n background-color: @color-default-a200;\n transform: scaleX(0);\n backface-visibility: hidden;\n transition: all 0.2s;\n content: ' ';\n }\n\n &:hover::before,\n &:focus::before {\n transform: scaleX(1);\n }\n }\n\n /* small */\n small {\n font-size: 80%;\n }\n\n /* blockquote */\n blockquote {\n margin: 1em 3em 1em 2em;\n padding-left: 1em;\n font-weight: 400;\n border-left: 4px solid @color-black-divider;\n @media only screen and (max-width: @screen-xs-max) {\n margin: 1em 0;\n }\n\n &:last-child {\n margin-bottom: 0;\n }\n\n footer {\n color: @color-black-secondary;\n font-size: 86%;\n }\n }\n\n /* mark */\n mark {\n margin: 0 5px;\n padding: 2px;\n background: #fffdd1;\n border-bottom: 1px solid #ffedce;\n }\n\n /* h1 - h6 */\n h1, h2, h3, h4, h5, h6 {\n margin-top: 1.2em;\n margin-bottom: 0.6em;\n color: inherit;\n font-weight: 400;\n font-family: inherit;\n line-height: 1.35;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n small {\n color: @color-black-secondary;\n font-weight: 400;\n font-size: 65%;\n line-height: 1;\n }\n }\n h1 {\n font-size: 2em;\n }\n h2 {\n font-size: 1.8em;\n }\n h3 {\n font-size: 1.6em;\n }\n h4 {\n font-size: 1.4em;\n }\n h5 {\n font-size: 1.2em;\n }\n h6 {\n font-size: 1.1em;\n }\n\n /* code */\n code {\n padding: 2px 6px;\n color: #c7254e;\n background-color: #f7f7f9;\n border-radius: 2px;\n }\n\n /* pre code */\n pre code {\n padding: 0;\n color: inherit;\n font-size: inherit;\n line-height: 1.7;\n background-color: transparent;\n border-radius: 0;\n }\n\n /* abbr */\n abbr[title] {\n text-decoration: none;\n border-bottom: 1px dotted;\n cursor: help;\n }\n\n /* ins */\n ins {\n text-decoration: none;\n border-bottom: 1px solid ;\n }\n\n /* u */\n u {\n text-decoration: none;\n border-bottom: 1px solid;\n }\n\n /* del */\n del {\n text-decoration: line-through;\n }\n\n /* hr */\n hr {\n height: 10px;\n margin-bottom: 0.8em;\n border: none;\n border-bottom: 1px solid @color-black-divider;\n }\n\n /* pre */\n pre {\n padding: 12px 16px;\n overflow-x: auto;\n border: 1px solid @color-black-divider;\n border-radius: 2px;\n -webkit-overflow-scrolling: touch;\n }\n\n /* kbd */\n kbd {\n padding: 2px 6px;\n color: #fff;\n font-size: 90%;\n background-color: #333;\n border-radius: 2px;\n }\n\n /* ul / ol */\n ul {\n padding-left: 2em;\n list-style: disc;\n }\n ol {\n padding-left: 2em;\n list-style: decimal;\n }\n li ul,\n li ol {\n margin: 0.8em 0;\n }\n li ul {\n list-style: circle;\n }\n\n /* img, video */\n img, video {\n max-width: 100%;\n }\n\n figure {\n text-align: center;\n\n figcaption {\n margin-top: 8px;\n color: #999;\n font-size: 14px;\n }\n\n figcaption:empty::before {\n z-index: -1;\n color: #bfbfbf;\n cursor: text;\n content: attr(placeholder);\n }\n }\n}\n\n\n/**\n * =============================================================================\n * ************ Typo 强调色 ************\n * =============================================================================\n */\n& {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n @colorName: extract(@globalAccentColors, @counter-color);\n\n .mdui-theme-accent-@{colorName} when not (@colorName = null) {\n .mdui-typo {\n a {\n .mdui-text-color(@colorName, a200);\n\n &::before {\n .mdui-background-color(@colorName, a200);\n }\n }\n }\n }\n\n }\n .loop-accent-theme(length(@globalAccentColors));\n}\n\n\n/**\n * =============================================================================\n * ************ Typo dark ************\n * =============================================================================\n */\n.layout-theme({\n .mdui-typo {\n\n blockquote {\n border-left-color: @color-white-divider;\n\n footer {\n color: @color-white-secondary;\n }\n }\n\n figcaption {\n color: @color-white-secondary;\n }\n\n mark {\n background: #aaa;\n border-bottom-color: #bbb;\n }\n\n h1, h2, h3, h4, h5, h6 {\n small {\n color: @color-white-secondary;\n }\n }\n\n code {\n color: @color-red-100;\n background-color: #424242;\n }\n\n pre {\n background: #424242;\n border-color: @color-white-divider;\n }\n\n kbd {\n background: #424242;\n }\n\n hr {\n border-color: @color-white-divider;\n }\n }\n});\n","/**\n * =============================================================================\n * ************ Grid 网格系统 ************\n * =============================================================================\n */\n\n@_screen-col-1: 8.333333%;\n@_screen-col-2: 16.666667%;\n@_screen-col-3: 25%;\n@_screen-col-4: 33.333333%;\n@_screen-col-5: 41.666667%;\n@_screen-col-6: 50%;\n@_screen-col-7: 58.333333%;\n@_screen-col-8: 66.666667%;\n@_screen-col-9: 75%;\n@_screen-col-10: 83.333333%;\n@_screen-col-11: 91.666667%;\n@_screen-col-12: 100%;\n\n// 等分列\n@_screen-average-1: 100%;\n@_screen-average-2: 50%;\n@_screen-average-3: 33.333333%;\n@_screen-average-4: 25%;\n@_screen-average-5: 20%;\n@_screen-average-6: 16.666667%;\n@_screen-average-7: 14.285714%;\n@_screen-average-8: 12.5%;\n@_screen-average-9: 11.111111%;\n@_screen-average-10: 10%;\n@_screen-average-11: 9.090909%;\n@_screen-average-12: 8.333333%;\n\n//间隔\n@grid-gap-8: 8px;\n@grid-gap-16: 16px;\n@grid-gap-24: 24px;\n@grid-gap-40: 40px;\n\n// 生成列、列偏移\n._grid_col_loop(@cols, @screen) when (@cols > 0) {\n ._grid_col_loop((@cols - 1), @screen);\n\n @widthName: '_screen-col-@{cols}';\n\n // 列宽度\n .mdui-col-@{screen}-@{cols} {\n float: left;\n width: @@widthName;\n }\n\n // 列偏移\n .mdui-col-offset-@{screen}-@{cols} {\n margin-left: @@widthName;\n }\n\n // 等分列\n @averageName: '_screen-average-@{cols}';\n .mdui-row-@{screen}-@{cols} .mdui-col {\n float: left;\n width: @@averageName;\n }\n}\n\n.mdui-container,\n.mdui-container-fluid {\n box-sizing: border-box;\n margin-right: auto;\n margin-left: auto;\n padding-right: @grid-gap-16 / 2;\n padding-left: @grid-gap-16 / 2;\n &::after{\n display: table;\n clear: both;\n content: '';\n }\n}\n\n.mdui-container {\n width: 96%;\n max-width: 1280px;\n @media (min-width: @screen-sm-min) {\n width: 94%;\n }\n @media (min-width: @screen-md-min) {\n width: 92%;\n }\n}\n\n.mdui-row,\n[class*=\"mdui-row-\"] {\n margin-right: -@grid-gap-16 / 2;\n margin-left: -@grid-gap-16 / 2;\n &::after {\n display: table;\n clear: both;\n content: '';\n }\n}\n\n[class*=\"mdui-col-xs-\"],\n[class*=\"mdui-col-sm-\"],\n[class*=\"mdui-col-md-\"],\n[class*=\"mdui-col-lg-\"],\n[class*=\"mdui-col-xl-\"],\n.mdui-col {\n position: relative;\n box-sizing: border-box;\n min-height: 1px;\n padding-right: @grid-gap-16 / 2;\n padding-left: @grid-gap-16 / 2;\n}\n\n/* 取消列间距 */\n.mdui-row-gapless {\n .mdui-col,\n [class*=\"mdui-col-xs-\"],\n [class*=\"mdui-col-sm-\"],\n [class*=\"mdui-col-md-\"],\n [class*=\"mdui-col-lg-\"],\n [class*=\"mdui-col-xl-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n\n // 嵌套元素的内补\n .mdui-row,\n [class*=\"mdui-row-\"] {\n margin-right: 0;\n margin-left: 0;\n }\n}\n\n._grid_col_loop(12, ~\"xs\");\n\n@media (min-width: @screen-sm-min) {\n ._grid_col_loop(12, ~\"sm\");\n}\n\n@media (min-width: @screen-md-min) {\n ._grid_col_loop(12, ~\"md\");\n}\n\n@media (min-width: @screen-lg-min) {\n ._grid_col_loop(12, ~\"lg\");\n}\n\n@media (min-width: @screen-xl-min) {\n ._grid_col_loop(12, ~\"xl\");\n}","// 阴影\n.mdui-shadow(@depth) {\n @shadow: 'shadow-depth-@{depth}';\n\n box-shadow: @@shadow;\n}\n\n// hover 时添加阴影\n.mdui-hoverable(@depth: 8) {\n transition: box-shadow 0.25s @animation-curve-default;\n will-change: box-shadow;\n\n &:hover,\n &:focus {\n .mdui-shadow(@depth);\n }\n}\n","/**\n * =============================================================================\n * ************ Shadow 阴影 ************\n * =============================================================================\n */\n\n._md_shadow(@shadow) when (@shadow > -1) {\n ._md_shadow(@shadow - 1);\n\n .mdui-shadow-@{shadow} {\n .mdui-shadow(@shadow) !important;\n }\n}\n\n._md_shadow(24);\n\n/* 鼠标悬浮时加深阴影 */\n.mdui-hoverable {\n .mdui-hoverable(8);\n}\n","/**\n * =============================================================================\n * ************ Headroom ************\n * =============================================================================\n */\n\n .mdui-headroom {\n transition: all .3s @animation-curve-default !important;\n}\n\n/* 固定在顶部时 */\n.mdui-headroom-pinned-top {\n transform: translate3d(0, 0, 0) !important;\n}\n\n/* 在顶部隐藏时 */\n.mdui-headroom-unpinned-top {\n transform: translate3d(0, -100%, 0) !important;\n .mdui-shadow(0) !important;\n}\n\n/* 固定在底部时 */\n.mdui-headroom-pinned-down {\n transform: translate3d(0, 0, 0) !important;\n}\n\n/* 在底部隐藏时 */\n.mdui-headroom-unpinned-down {\n transform: translate3d(0, 100%, 0) !important;\n .mdui-shadow(0) !important;\n}\n\n/* 固定应用栏中的工具栏 */\n.mdui-headroom-pinned-toolbar {\n transform: translate3d(0, 0, 0) !important;\n}\n\n/* 隐藏应用栏中的工具栏 */\n.mdui-headroom-unpinned-toolbar {\n transform: translate3d(0, -@appbar-height-xs-portrait, 0) !important;\n\n // 平板和桌面\n @media (min-width: @screen-sm-min) {\n transform: translate3d(0, -@appbar-height-sm, 0) !important;\n }\n\n // 手机横屏\n @media (orientation: landscape) and (max-width: @screen-xs-max-landscape) {\n transform: translate3d(0, -@appbar-height-xs-landscape, 0) !important;\n }\n}\n","/**\n * =============================================================================\n * ************ Collapse 折叠插件 ************\n * =============================================================================\n */\n\n .mdui-collapse-item-header {\n // 图标,打开时翻转 180 度\n .mdui-collapse-item-arrow,\n &.mdui-collapse-item-arrow {\n transform: rotate(0);\n transition: transform .3s @animation-curve-default;\n will-change: transform;\n }\n}\n\n.mdui-collapse-item-body {\n height: 0;\n margin-top: 0;\n margin-bottom: 0;\n padding-top: 0;\n padding-bottom: 0;\n overflow: hidden;\n transition: all .3s @animation-curve-default;\n will-change: height;\n\n // 使子列表缩进\n .mdui-list-item {\n padding-left: 72px;\n }\n}\n\n.mdui-collapse-item-open {\n &>.mdui-collapse-item-header {\n .mdui-collapse-item-arrow,\n &.mdui-collapse-item-arrow {\n transform: rotate(180deg);\n }\n }\n\n &>.mdui-collapse-item-body {\n height: auto;\n }\n}\n","/**\n * =============================================================================\n * ************ Expansion panel 可扩展面板 ************\n * =============================================================================\n */\n\n/* 可扩展面板 */\n.mdui-panel {\n box-sizing: border-box;\n width: 100%;\n}\n\n/* 面板项 */\n.mdui-panel-item {\n color: @color-black-text;\n background-color: #fff;\n transition: margin .3s @animation-curve-default;\n will-change: margin;\n .mdui-divider-bottom-dark();\n .mdui-shadow(2);\n\n &:last-child {\n border-bottom: none;\n }\n}\n\n/* 面板头部 */\n.mdui-panel-item-header {\n position: relative;\n display: flex;\n align-items: center;\n box-sizing: border-box;\n width: 100%;\n height: 48px;\n padding: 0 24px;\n font-size: 15px;\n cursor: pointer;\n transition: all .3s @animation-curve-default;\n will-change: height, background-color;\n .mdui-text-truncate();\n\n &:active {\n background-color: @color-grey-200;\n }\n}\n\n/* 面板项标题 */\n.mdui-panel-item-title {\n box-sizing: border-box;\n width: 36%;\n min-width: 36%;\n padding-right: 16px;\n font-weight: 500;\n .mdui-text-truncate();\n}\n\n/* 面板项内容 */\n.mdui-panel-item-summary {\n flex-grow: 1;\n box-sizing: border-box;\n padding-right: 16px;\n color: @color-black-secondary;\n .mdui-text-truncate();\n}\n\n/* 展开收起的图标 */\n.mdui-panel-item-arrow {\n position: absolute;\n top: 12px;\n right: 24px;\n color: @color-black-icon;\n transform: rotate(0);\n transition: all .3s @animation-curve-default;\n user-select: none;\n will-change: transform, top;\n}\n\n.mdui-panel-item-summary + .mdui-panel-item-arrow {\n position: relative;\n top: 0 !important;\n right: 0;\n}\n\n/* 面板项内容 */\n.mdui-panel-item-body {\n height: 0;\n padding: 0 24px;\n overflow: hidden;\n transition: height .3s @animation-curve-default;\n will-change: height;\n .mdui-clearfix();\n\n &::after {\n height: 16px;\n }\n}\n\n/* 面板项操作栏 */\n.mdui-panel-item-actions {\n display: block;\n width: 100%;\n margin: 16px -24px 0 -24px;\n padding: 16px 24px 0 24px;\n text-align: right;\n .mdui-divider-top-dark();\n\n .mdui-btn {\n margin-left: 8px;\n\n &:first-child {\n margin-left: 0;\n }\n }\n}\n\n/* 打开状态的面板项 */\n.mdui-panel-item-open {\n height: auto;\n margin-top: 16px;\n margin-bottom: 16px;\n\n // 打开状态的面板头部更高\n &>.mdui-panel-item-header {\n height: 64px;\n\n .mdui-panel-item-arrow {\n top: 20px;\n transform: rotate(180deg);\n }\n }\n\n &>.mdui-panel-item-body {\n height: auto;\n }\n}\n\n/* 使打开项上下没有边距 */\n.mdui-panel-gapless {\n .mdui-shadow(2);\n\n .mdui-panel-item {\n .mdui-shadow(0);\n }\n\n .mdui-panel-item-open {\n margin-top: 0;\n margin-bottom: 0;\n }\n}\n\n/* 弹出面板 */\n.mdui-panel-popout {\n .mdui-panel-item-open {\n margin-right: -16px;\n margin-left: -16px;\n }\n}\n\n\n/**\n * =============================================================================\n * ************ Expansion panel dark ************\n * =============================================================================\n */\n.layout-theme({\n .mdui-panel-item {\n color: #fff;\n background-color: @layout-dark-color-3;\n .mdui-divider-bottom-light();\n\n &:last-child {\n border-bottom: none;\n }\n }\n .mdui-panel-item-header {\n &:active {\n background-color: @color-grey-800;\n }\n }\n .mdui-panel-item-summary {\n color: @color-white-secondary;\n }\n\n /* stylelint-disable-next-line */\n .mdui-panel-item-arrow {\n color: @color-white-icon;\n }\n .mdui-panel-item-actions {\n .mdui-divider-top-light();\n }\n});\n","// 分割线\n// =============================================================================\n\n// 添加边框作为分割线,亮色的分割线,用于深色背景\n.mdui-divider-top-light() {\n border-top: 1px solid @color-white-divider;\n}\n.mdui-divider-bottom-light() {\n border-bottom: 1px solid @color-white-divider;\n}\n.mdui-divider-left-light() {\n border-left: 1px solid @color-white-divider;\n}\n.mdui-divider-right-light() {\n border-right: 1px solid @color-white-divider;\n}\n\n// 添加边框作为分割线,深色的分割线,用于浅色背景\n.mdui-divider-top-dark() {\n border-top: 1px solid @color-black-divider;\n}\n.mdui-divider-bottom-dark() {\n border-bottom: 1px solid @color-black-divider;\n}\n.mdui-divider-left-dark() {\n border-left: 1px solid @color-black-divider;\n}\n.mdui-divider-right-dark() {\n border-right: 1px solid @color-black-divider;\n}\n","/**\n * =============================================================================\n * ************ Table 表格 ************\n * =============================================================================\n */\n\n@import '../selection_control/checkbox';\n\n.mdui-table {\n position: relative;\n width: 100%;\n background-color: #fff;\n border: 1px solid @color-black-divider;\n border-bottom: none;\n border-collapse: separate;\n border-spacing: 0;\n .mdui-shadow(2);\n\n tbody {\n tr {\n position: relative;\n transition: background-color 0.28s @animation-curve-default;\n }\n }\n\n th, td {\n position: relative;\n box-sizing: border-box;\n padding: 12px 28px;\n text-align: left;\n vertical-align: middle;\n .mdui-divider-bottom-dark();\n }\n\n th {\n color: @color-black-secondary;\n font-weight: 700;\n font-size: 13px;\n line-height: 32px;\n .mdui-text-truncate();\n }\n\n td {\n color: @color-black-text;\n font-size: 14px;\n line-height: 24px;\n }\n}\n\n/* 每一行前面的复选框 */\n.mdui-table-cell-checkbox {\n padding-top: 0 !important;\n padding-bottom: 0 !important;\n padding-left: 24px !important;\n\n .mdui-checkbox {\n margin-top: 7px;\n }\n\n & + td,\n & + th {\n padding-left: 6px !important;\n }\n}\nth.mdui-table-cell-checkbox {\n .mdui-checkbox {\n margin-top: 11px;\n }\n}\n\n.mdui-table {\n th, td {\n &:last-child {\n padding-right: 24px;\n }\n &:first-child {\n padding-right: 0;\n padding-left: 24px\n }\n &:nth-child(2) {\n padding-left: 24px;\n }\n }\n}\n\n/* 鼠标悬浮时行背景加深 */\n.mdui-table-hoverable {\n tbody tr {\n &:hover {\n background-color: @color-grey-200;\n }\n }\n}\n\n/* 表格放到该元素内,使表格产生滚动条时只在该元素内滚动 */\n.mdui-table-fluid {\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n border: 1px solid @color-black-divider;\n border-bottom: none;\n .mdui-shadow(2);\n\n .mdui-table {\n .mdui-shadow(0);\n\n margin: 0;\n border: none;\n }\n}\n\n/* 数字列,右对齐 */\n.mdui-table-col-numeric {\n text-align: right !important;\n}\n\n/* 行处于选中状态 */\n.mdui-table-row-selected {\n background-color: @color-grey-100;\n}\n\n\n/**\n * =============================================================================\n * ************ Table dark ************\n * =============================================================================\n */\n.layout-theme({\n .mdui-table {\n background-color: @layout-dark-color-3;\n border: 1px solid @color-white-divider;\n border-bottom: none;\n\n th, td {\n .mdui-divider-bottom-light();\n }\n\n th {\n color: @color-white-secondary;\n }\n\n td {\n color: @color-white-text;\n }\n }\n\n .mdui-table-hoverable {\n tbody tr {\n &:hover {\n background-color: @color-grey-700;\n }\n }\n }\n\n .mdui-table-fluid {\n border: 1px solid @color-white-divider;\n border-bottom: none;\n\n .mdui-table {\n .mdui-shadow(0);\n\n border: none;\n }\n }\n\n .mdui-table-row-selected {\n background-color: @color-grey-800;\n }\n});\n","/**\n * =============================================================================\n * ************ Divider 分割线 ************\n * =============================================================================\n */\n\n.mdui-divider,\n.mdui-divider-light,\n.mdui-divider-dark,\n.mdui-divider-inset,\n.mdui-divider-inset-light,\n.mdui-divider-inset-dark {\n height: 1px;\n margin: -1px 0 0 0;\n border: none;\n}\n\n.mdui-divider-inset,\n.mdui-divider-inset-light,\n.mdui-divider-inset-dark {\n margin-left: 72px;\n}\n\n.mdui-divider,\n.mdui-divider-inset {\n background-color: @color-black-divider;\n}\n\n.mdui-divider-light,\n.mdui-divider-inset-light {\n background-color: @color-white-divider;\n}\n\n.mdui-divider-dark,\n.mdui-divider-inset-dark {\n background-color: @color-black-divider;\n}\n\n/**\n * =============================================================================\n * ************ Divider dark ************\n * =============================================================================\n */\n.layout-theme({\n .mdui-divider,\n .mdui-divider-inset {\n background-color: @color-white-divider;\n }\n});\n","/**\n * =============================================================================\n * ************ 涟漪动画 ************\n * =============================================================================\n */\n\n.mdui-ripple {\n position: relative;\n overflow: hidden;\n cursor: pointer;\n user-select: none;\n}\n\n/* Ripple */\n.mdui-ripple-wave {\n position: absolute !important;\n top: 0;\n left: 0;\n z-index: 1;\n margin: 0;\n padding: 0;\n font-size: 0;\n background-color: rgba(0, 0, 0, 0.1);\n border-radius: 50%;\n transform: translate3d(0, 0, 0) scale(0);\n transition-duration: 1400ms;\n pointer-events: none;\n}\n\n/* 有背景色的默认使用白色涟漪 */\n.mdui-ripple[class*=\"mdui-color-\"] {\n .mdui-ripple-wave {\n background-color: rgba(255, 255, 255, 0.3);\n }\n}\n\n/* 白色涟漪 */\n.mdui-ripple-white .mdui-ripple-wave {\n background-color: rgba(255, 255, 255, 0.3) !important;\n}\n\n/* 黑色涟漪 */\n.mdui-ripple-black .mdui-ripple-wave {\n background-color: rgba(0, 0, 0, 0.1) !important;\n}\n\n.mdui-ripple-wave-fill {\n opacity: 0.35;\n transition-duration: 300ms;\n}\n\n.mdui-ripple-wave-out {\n opacity: 0;\n transition-duration: 600ms;\n}\n\n\n/**\n * =============================================================================\n * ************ Ripple 颜色 ************\n * =============================================================================\n */\n& {\n .loop-primary-theme(@counter-color) when (@counter-color > 0) {\n .loop-primary-theme((@counter-color - 1));\n @colorName: extract(@globalPrimaryColors, @counter-color);\n\n // 指定涟漪颜色\n .mdui-ripple-@{colorName} when not (@colorName = null) {\n .mdui-ripple-wave {\n @color: 'color-@{colorName}-500';\n\n background-color: rgba(red(@@color), green(@@color), blue(@@color), 0.3) !important;\n }\n }\n\n }\n .loop-primary-theme(length(@globalPrimaryColors));\n}\n\n\n/**\n * =============================================================================\n * ************ Ripple dark ************\n * =============================================================================\n */\n.layout-theme({\n // 深色主题下使用白色涟漪\n .mdui-ripple-wave {\n background-color: rgba(255, 255, 255, 0.3);\n }\n});\n","/**\n * =============================================================================\n * ************ Text Field 文本框 ************\n * =============================================================================\n */\n\n/* 文本框外层 */\n.mdui-textfield {\n position: relative;\n padding-top: 16px;\n padding-bottom: 8px;\n overflow: hidden;\n}\n\n.mdui-textfield-has-bottom {\n padding-bottom: 28px;\n}\n\n/* 输入框 */\n.mdui-textfield-input {\n display: block;\n box-sizing: border-box;\n width: 100%;\n height: 36px;\n margin: 0;\n padding: 8px 0;\n overflow: hidden;\n color: rgba(0, 0, 0, 0.87);\n font-size: 16px;\n font-family: inherit;\n line-height: 20px;\n background: none;\n border: none;\n border-bottom: 1px solid rgba(0, 0, 0, .42);\n border-radius: 0;\n outline: none;\n box-shadow: none;\n transition-timing-function: @animation-curve-default;\n transition-duration: .2s;\n transition-property: border-bottom-color, padding-right, box-shadow;\n appearance: none;\n resize: none;\n\n &::-webkit-input-placeholder {\n color: inherit;\n opacity: 0.42;\n }\n\n &:not([disabled]):hover {\n border-bottom: 1px solid rgba(0, 0, 0, .87);\n box-shadow: 0 1px 0 0 rgba(0, 0, 0, .87);\n cursor: pointer;\n }\n\n &[rows] {\n height: auto !important;\n overflow: auto;\n -webkit-overflow-scrolling: touch;\n }\n}\n\n/* 文本框 label */\n.mdui-textfield-label {\n display: block;\n width: 100%;\n color: rgba(0, 0, 0, 0.54);\n font-size: 16px;\n transform: scale(0.75) translateY(0);\n transform-origin: left;\n transition: all .2s;\n pointer-events: none;\n}\n\n/* 表单验证错误提示、帮助文本提示 */\n.mdui-textfield-error,\n.mdui-textfield-helper {\n position: absolute;\n bottom: 8px;\n height: 12px;\n font-size: 12px;\n line-height: 12px;\n .mdui-text-truncate();\n}\n\n.mdui-textfield-error {\n color: rgba(red(@color-red-a400), green(@color-red-a400), blue(@color-red-a400), .87);\n visibility: hidden;\n}\n\n.mdui-textfield-helper {\n color: rgba(0, 0, 0, 0.54);\n}\n\n\n/* 表单中的图标\n ========== */\n.mdui-textfield {\n .mdui-icon {\n position: absolute;\n bottom: 8px;\n padding: 6px;\n color: @color-black-icon;\n\n ~ .mdui-textfield-label,\n ~ .mdui-textfield-input,\n ~ .mdui-textfield-error,\n ~ .mdui-textfield-helper,\n ~ .mdui-textfield-flex-wrap {\n /* stylelint-disable-next-line */\n width: calc(~\"100% - 56px\");\n margin-left: 56px;\n }\n }\n}\n\n.mdui-textfield-has-bottom {\n .mdui-icon {\n bottom: 28px;\n }\n}\n\n/* 聚焦状态的文本框\n ============= */\n.mdui-textfield-focus {\n\n .mdui-textfield-input,\n .mdui-textfield-input:hover {\n border-bottom-color: @color-default-a700;\n box-shadow: 0 1px 0 0 @color-default-a700;\n }\n\n .mdui-textfield-label,\n .mdui-icon {\n color: rgba(red(@color-default-a700), green(@color-default-a700), blue(@color-default-a700), .87);\n }\n}\n\n/* 含有浮动标签的文本框\n ================ */\n.mdui-textfield-floating-label {\n\n .mdui-textfield-label {\n color: rgba(0, 0, 0, 0.35);\n transform: scale(1) translateY(27px);\n }\n\n &.mdui-textfield-focus,\n &.mdui-textfield-not-empty {\n .mdui-textfield-label {\n color: rgba(0, 0, 0, 0.65);\n transform: scale(0.75) translateY(0);\n }\n }\n &.mdui-textfield-focus {\n .mdui-textfield-label {\n .mdui-text-color(@color-accent-default-name);\n }\n }\n}\n\n/* 可展开文本框,默认向右展开\n ========== */\n.mdui-textfield-expandable {\n width: 36px;\n min-height: 36px;\n padding: 1px 0;\n transition: width .3s @animation-curve-default;\n\n .mdui-icon {\n bottom: 0;\n padding: 0;\n }\n\n .mdui-textfield-input {\n /* stylelint-disable-next-line */\n width: calc(~\"100% - 36px\");\n margin-left: 36px;\n padding-right: 0;\n }\n\n .mdui-textfield-icon {\n position: absolute;\n top: 0;\n left: 0;\n }\n\n .mdui-textfield-close {\n position: absolute;\n top: 0;\n right: 0;\n transform: scale(0);\n }\n\n &.mdui-textfield-expanded {\n width: 100%;\n\n .mdui-textfield-input {\n padding-right: 36px;\n }\n\n .mdui-textfield-close {\n transform: scale(1);\n }\n }\n}\n\n/* 表单验证不通过\n =========== */\n.mdui-textfield-invalid,\n.mdui-textfield-invalid-html5 {\n\n .mdui-textfield-input,\n &.mdui-textfield-focus .mdui-textfield-input {\n border-bottom-color: @color-red-a400 !important;\n box-shadow: 0 1px 0 0 @color-red-a400 !important;\n }\n\n .mdui-textfield-label {\n color: @color-red-a400 !important;\n }\n\n &.mdui-textfield-floating-label {\n .mdui-textfield-label {\n color: rgba(red(@color-red-a400), green(@color-red-a400), blue(@color-red-a400), 0.35) !important;\n }\n\n &.mdui-textfield-focus,\n &.mdui-textfield-not-empty {\n .mdui-textfield-label {\n color: @color-red-a400 !important;\n }\n }\n }\n\n .mdui-textfield-error {\n visibility: visible;\n\n &+.mdui-textfield-helper {\n visibility: hidden;\n }\n }\n}\n\n/* 禁用表单\n ====== */\n.mdui-textfield-disabled {\n .mdui-textfield-label,\n .mdui-textfield-input::-webkit-input-placeholder {\n color: @color-black-disabled;\n }\n\n .mdui-textfield-input {\n color: rgba(0, 0, 0, .42);\n cursor: default;\n }\n\n .mdui-textfield-input {\n border-bottom: 1px dashed rgba(0, 0, 0, .42);\n }\n}\n\n/* 字数统计\n ====== */\n.mdui-textfield-counter {\n position: absolute;\n right: 8px;\n bottom: 8px;\n height: 12px;\n color: @color-black-secondary;\n font-size: 12px;\n line-height: 12px;\n}\n\n\n/**\n * =============================================================================\n * ************ Textfield dark ************\n * =============================================================================\n */\n.layout-theme({\n // 输入框颜色\n .mdui-textfield-input {\n color: #fff;\n border-bottom-color: rgba(255, 255, 255, .7);\n\n &::-webkit-input-placeholder {\n color: rgba(255, 255, 255, .5);\n }\n\n &:not([disabled]):hover {\n border-bottom-color: rgba(255, 255, 255, 1);\n box-shadow: 0 1px 0 0 rgba(255, 255, 255, 1);\n }\n }\n\n // 图标颜色\n .mdui-textfield {\n .mdui-icon {\n color: rgba(255, 255, 255, 0.7);\n }\n }\n\n // 标签颜色\n .mdui-textfield-label {\n color: rgba(255, 255, 255, 0.7);\n }\n\n .mdui-textfield-floating-label {\n .mdui-textfield-label {\n color: rgba(255, 255, 255, 0.35);\n }\n }\n\n // 错误文本颜色\n .mdui-textfield-error {\n color: @color-red-a400;\n }\n\n // 帮助文本颜色\n .mdui-textfield-helper {\n color: rgba(255, 255, 255, 0.7);\n }\n\n // 字数统计颜色\n .mdui-textfield-counter {\n color: @color-white-secondary;\n }\n\n // 聚焦状态\n .mdui-textfield-focus {\n\n .mdui-textfield-input,\n .mdui-textfield-input:hover {\n border-bottom-color: @color-default-a200;\n box-shadow: 0 1px 0 0 @color-default-a200;\n }\n\n .mdui-textfield-label {\n color: @color-default-a200;\n }\n }\n\n // 禁用状态\n .mdui-textfield-disabled {\n .mdui-textfield-label,\n .mdui-textfield-input::-webkit-input-placeholder {\n color: @color-white-disabled;\n }\n\n .mdui-textfield-input {\n color: @color-white-disabled;\n }\n\n .mdui-textfield-input {\n border-bottom-color: rgba(255, 255, 255, .7);\n }\n }\n});\n\n\n/**\n * =============================================================================\n * ************ Textfield 强调色 ************\n * =============================================================================\n */\n& {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n @colorName: extract(@globalAccentColors, @counter-color);\n\n .mdui-theme-accent-@{colorName} when not (@colorName = null) {\n\n @colorA700: 'color-@{colorName}-a700';\n @colorA200: 'color-@{colorName}-a200';\n\n .mdui-textfield-focus {\n\n .mdui-textfield-input {\n border-bottom-color: @@colorA700;\n box-shadow: 0 1px 0 0 @@colorA700;\n }\n\n .mdui-textfield-label,\n .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-icon {\n color: rgba(red(@@colorA700), green(@@colorA700), blue(@@colorA700), .87);\n }\n }\n\n // 暗色主题\n & {\n .dark-mode() {\n .mdui-textfield-focus {\n\n .mdui-textfield-input {\n border-bottom-color: @@colorA200;\n box-shadow: 0 1px 0 0 @@colorA200;\n }\n\n .mdui-textfield-label,\n .mdui-textfield-floating-label.mdui-textfield-focus .mdui-textfield-label,\n .mdui-icon {\n color: @@colorA200;\n }\n }\n }\n\n & when (@globalLayoutDark = true) {\n &.mdui-theme-layout-dark {\n .dark-mode();\n }\n }\n\n & when (@globalLayoutAuto = true) {\n @media (prefers-color-scheme: dark) {\n &.mdui-theme-layout-auto {\n .dark-mode();\n }\n }\n }\n }\n }\n }\n .loop-accent-theme(length(@globalAccentColors));\n}\n","/**\n * =============================================================================\n * ************ Checkbox 复选框 ************\n * =============================================================================\n */\n\n.mdui-checkbox {\n position: relative;\n display: inline-block;\n height: 36px;\n padding-left: 36px;\n line-height: 36px;\n cursor: pointer;\n user-select: none;\n\n // 隐藏系统 input 标签,用自定义的图标代替\n input[type=\"checkbox\"] {\n position: absolute;\n width: 0;\n height: 0;\n overflow: hidden;\n opacity: 0;\n }\n}\n\n/* 透明的圆形,用于生成圆形阴影 */\n.mdui-checkbox-icon {\n position: absolute;\n top: 9px;\n left: 0;\n display: inline-block;\n width: 18px;\n height: 18px;\n vertical-align: middle;\n background-color: transparent;\n border: none;\n border-radius: 18px;\n transition: box-shadow .14s @animation-curve-default;\n\n // 图标的边框和背景\n &::after {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 0;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n border: 2px solid @color-black-icon;\n border-radius: 2px;\n transition: all .3s @animation-curve-default;\n content: ' ';\n }\n\n // 选中状态图标内部的勾\n &::before {\n position: absolute;\n top: 2px;\n left: 0;\n z-index: 1;\n box-sizing: border-box;\n width: 8px;\n height: 13px;\n border-right: 2px solid #fff;\n border-bottom: 2px solid #fff;\n transform: rotateZ(37deg) scale(0);\n transform-origin: 100% 100%;\n opacity: 0;\n transition: all .3s @animation-curve-default;\n content: ' ';\n }\n}\n\n/* 各种状态的图标 */\n.mdui-checkbox input[type=\"checkbox\"] {\n\n // 选中状态的图标\n &:checked + .mdui-checkbox-icon {\n &::after {\n background-color: @color-default-a200;\n border-color: @color-default-a200;\n }\n\n &::before {\n transform: rotateZ(37deg) scale(1);\n opacity: 1;\n }\n }\n\n // 不确定状态的图标\n &:indeterminate + .mdui-checkbox-icon {\n &::after {\n background-color: @color-default-a200;\n border-color: @color-default-a200;\n }\n\n &::before {\n top: 8px;\n left: 3px;\n width: 12px;\n height: 0;\n border-right: none;\n border-bottom: 2px solid #fff;\n border-radius: 1px;\n transform: rotateZ(0) scale(1);\n opacity: 1;\n }\n }\n\n // 禁用状态的图标\n &:disabled + .mdui-checkbox-icon {\n &::after {\n border-color: @color-black-icon-disabled;\n }\n }\n\n // 禁用且选中状态\n &:disabled:checked + .mdui-checkbox-icon,\n &:disabled:indeterminate + .mdui-checkbox-icon {\n &::after {\n background-color: @color-black-icon-disabled !important;\n border-color: transparent !important;\n }\n }\n}\n\n/* 阴影 */\n.mdui-checkbox:active input[type=\"checkbox\"],\n.mdui-checkbox input[type=\"checkbox\"]:focus {\n // 未选中、禁用时 按下的阴影\n & + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(0, 0, 0, 0.1);\n }\n\n // 已选中时按下的阴影\n &:not(:disabled):checked,\n &:not(:disabled):indeterminate {\n & + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(red(@color-default-a200), green(@color-default-a200), blue(@color-default-a200), 0.16);\n }\n }\n}\n\n\n/**\n * =============================================================================\n * ************ Checkbox 强调色 ************\n * =============================================================================\n */\n\n& {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n @colorName: extract(@globalAccentColors, @counter-color);\n\n @color: 'color-@{colorName}-a200';\n\n .mdui-theme-accent-@{colorName} when not (@colorName = null) {\n\n // 选中状态的图标\n .mdui-checkbox input[type=\"checkbox\"]:checked,\n .mdui-checkbox input[type=\"checkbox\"]:indeterminate {\n & + .mdui-checkbox-icon::after {\n background-color: @@color;\n border-color: @@color;\n }\n }\n\n // 已选中时按下的阴影\n .mdui-checkbox:active input[type=\"checkbox\"],\n .mdui-checkbox input[type=\"checkbox\"]:focus {\n &:not(:disabled):checked + .mdui-checkbox-icon,\n &:not(:disabled):indeterminate + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(red(@@color), green(@@color), blue(@@color), 0.16);\n }\n }\n }\n }\n .loop-accent-theme(length(@globalAccentColors));\n}\n\n\n/**\n * =============================================================================\n * ************ Checkbox dark ************\n * =============================================================================\n */\n.layout-theme({\n // 未选中的图标\n .mdui-checkbox-icon {\n &::after {\n border-color: rgba(255, 255, 255, 0.7);\n }\n\n &::before {\n border-right-color: @layout-dark-color-3 !important;\n border-bottom-color: @layout-dark-color-3 !important;\n }\n }\n\n // 禁用状态\n .mdui-checkbox input[type=\"checkbox\"]:disabled + .mdui-checkbox-icon {\n &::after {\n border-color: @color-white-icon-disabled;\n }\n }\n\n // 禁用且选中状态\n .mdui-checkbox input[type=\"checkbox\"] {\n &:disabled:checked + .mdui-checkbox-icon,\n &:disabled:indeterminate + .mdui-checkbox-icon {\n &::after {\n background-color: @color-white-icon-disabled !important;\n border-color: transparent !important;\n }\n }\n }\n\n // 未选中或禁用时 按下的阴影\n .mdui-checkbox:active input[type=\"checkbox\"],\n .mdui-checkbox input[type=\"checkbox\"]:focus {\n & + .mdui-checkbox-icon {\n box-shadow: 0 0 0 15px rgba(255, 255, 255, 0.1);\n }\n }\n});\n","/**\n * =============================================================================\n * ************ Radio 单选框 ************\n * =============================================================================\n */\n\n.mdui-radio {\n position: relative;\n display: inline-block;\n height: 36px;\n padding-left: 36px;\n line-height: 36px;\n cursor: pointer;\n user-select: none;\n\n // 隐藏系统 input 标签,用自定义的图标代替\n input {\n position: absolute;\n width: 0;\n height: 0;\n overflow: hidden;\n opacity: 0;\n }\n}\n\n/* 图标外圈 */\n.mdui-radio-icon {\n position: absolute;\n top: 9px;\n left: 0;\n display: inline-block;\n box-sizing: border-box;\n width: 18px;\n height: 18px;\n vertical-align: middle;\n border: 2px solid @color-black-icon;\n border-radius: 18px;\n transition: all .3s @animation-curve-default,\n box-shadow .14s @animation-curve-default;\n\n // 图标内部圆圈\n &::before {\n position: absolute;\n top: 0;\n left: 0;\n width: 14px;\n height: 14px;\n background-color: @color-default-a200;\n border-radius: 14px;\n transform: scale(0);\n opacity: 0;\n transition: all .3s @animation-curve-default;\n content: ' ';\n }\n}\n\n/* 选中状态的图标 */\n.mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: @color-default-a200;\n\n &::before {\n transform: scale(0.68);\n opacity: 1;\n }\n}\n\n/* 禁用状态的图标 */\n.mdui-radio input[type=\"radio\"]:disabled + .mdui-radio-icon {\n border-color: @color-black-icon-disabled !important;\n}\n\n/* 禁用且选中状态的图标 */\n.mdui-radio input[type=\"radio\"]:disabled:checked + .mdui-radio-icon {\n &::before {\n background-color: @color-black-icon-disabled !important;\n }\n}\n\n/* 未选中、禁用时 按下的阴影 */\n.mdui-radio:active input[type=\"radio\"],\n.mdui-radio input[type=\"radio\"]:focus {\n & + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(0, 0, 0, 0.1);\n }\n}\n\n/* 已选中时按下的阴影 */\n.mdui-radio:active input[type=\"radio\"],\n.mdui-radio input[type=\"radio\"]:focus {\n &:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(red(@color-default-a200), green(@color-default-a200), blue(@color-default-a200), 0.16);\n }\n}\n\n/**\n * =============================================================================\n * ************ Radio 强调色 ************\n * =============================================================================\n */\n\n& {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n @colorName: extract(@globalAccentColors, @counter-color);\n\n @color: 'color-@{colorName}-a200';\n\n .mdui-theme-accent-@{colorName} when not (@colorName = null) {\n\n // 选中状态的图标\n .mdui-radio input[type=\"radio\"]:checked + .mdui-radio-icon {\n border-color: @@color;\n\n &::before {\n background-color: @@color;\n }\n }\n\n // 已选中时按下的阴影\n .mdui-radio:active input[type=\"radio\"],\n .mdui-radio input[type=\"radio\"]:focus {\n &:checked:not(:disabled) + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(red(@@color), green(@@color), blue(@@color), 0.16);\n }\n }\n\n }\n }\n .loop-accent-theme(length(@globalAccentColors));\n}\n\n\n/**\n * =============================================================================\n * ************ Radio dark ************\n * =============================================================================\n */\n.layout-theme({\n // 图标外圈\n .mdui-radio-icon {\n border-color: rgba(255, 255, 255, 0.7);\n }\n\n // 禁用状态\n .mdui-radio input[type=\"radio\"]:disabled + .mdui-radio-icon {\n border-color: @color-white-icon-disabled !important;\n }\n\n // 禁用且选中状态\n .mdui-radio input[type=\"radio\"]:disabled:checked + .mdui-radio-icon {\n &::before {\n background-color: @color-white-icon-disabled !important;\n }\n }\n\n // 未选中或禁用时 按下的阴影\n .mdui-radio:active input[type=\"radio\"],\n .mdui-radio input[type=\"radio\"]:focus {\n & + .mdui-radio-icon {\n box-shadow: 0 0 0 15px rgba(255, 255, 255, 0.1);\n }\n }\n});\n","/**\n * =============================================================================\n * ************ Switch 单选框 ************\n * =============================================================================\n */\n\n.mdui-switch {\n display: inline-block;\n height: 36px;\n line-height: 36px;\n cursor: pointer;\n user-select: none;\n\n // 隐藏系统 input 标签,用自定义的图标代替\n input {\n position: absolute;\n width: 0;\n height: 0;\n overflow: hidden;\n opacity: 0;\n }\n}\n\n/* 图标轨道 */\n.mdui-switch-icon {\n position: relative;\n display: inline-block;\n width: 36px;\n height: 14px;\n vertical-align: middle;\n background-color: rgba(0, 0, 0, 0.38);\n border-radius: 14px;\n transition: background-color .3s @animation-curve-default;\n\n // 圆形图标\n &::before {\n position: absolute;\n top: -3px;\n left: -3px;\n display: inline-block;\n width: 20px;\n height: 20px;\n background-color: @color-grey-50;\n border-radius: 20px;\n transition: box-shadow .14s @animation-curve-default,\n background-color .3s @animation-curve-default,\n left .3s @animation-curve-default;\n content: ' ';\n .mdui-shadow(1);\n }\n}\n\n/* 选中状态的图标 */\n.mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(red(@color-default-a200), green(@color-default-a200), blue(@color-default-a200), 0.5);\n\n &::before {\n left: 20px;\n background-color: @color-default-a200;\n }\n}\n\n/* 未选中时或禁用时 按下的阴影 */\n.mdui-switch:active input[type=\"checkbox\"],\n.mdui-switch input[type=\"checkbox\"]:focus {\n & + .mdui-switch-icon::before {\n box-shadow:\n // box-shadow(1)\n 0 2px 1px -1px rgba(0, 0, 0, .2),\n 0 1px 1px 0 rgba(0, 0, 0, .14),\n 0 1px 3px 0 rgba(0, 0, 0, .12),\n\n // 颜色阴影\n 0 0 0 15px rgba(0, 0, 0, 0.1);\n }\n}\n\n/* 已选中时按下的阴影 */\n.mdui-switch:active input[type=\"checkbox\"],\n.mdui-switch input[type=\"checkbox\"]:focus {\n &:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow:\n // box-shadow(1)\n 0 2px 1px -1px rgba(0, 0, 0, .2),\n 0 1px 1px 0 rgba(0, 0, 0, .14),\n 0 1px 3px 0 rgba(0, 0, 0, .12),\n\n // 颜色阴影\n 0 0 0 15px rgba(red(@color-default-a200), green(@color-default-a200), blue(@color-default-a200), 0.16);\n }\n}\n\n/* 禁用状态 */\n.mdui-switch input[type=\"checkbox\"]:disabled + .mdui-switch-icon {\n background-color: rgba(0, 0, 0, 0.12) !important;\n\n &::before {\n background-color: @color-grey-400 !important;\n }\n}\n\n\n/**\n * =============================================================================\n * ************ Switch 强调色 ************\n * =============================================================================\n */\n\n& {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n @colorName: extract(@globalAccentColors, @counter-color);\n\n @color: 'color-@{colorName}-a200';\n\n .mdui-theme-accent-@{colorName} when not (@colorName = null) {\n\n // 选中状态的图标\n .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(red(@@color), green(@@color), blue(@@color), 0.5);\n\n &::before {\n background-color: @@color;\n }\n }\n\n // 已选中时按下的阴影\n .mdui-switch:active input[type=\"checkbox\"],\n .mdui-switch input[type=\"checkbox\"]:focus {\n &:checked:not(:disabled) + .mdui-switch-icon::before {\n box-shadow:\n // box-shadow(1)\n 0 2px 1px -1px rgba(0, 0, 0, .2),\n 0 1px 1px 0 rgba(0, 0, 0, .14),\n 0 1px 3px 0 rgba(0, 0, 0, .12),\n\n // 颜色阴影\n 0 0 0 15px rgba(red(@@color), green(@@color), blue(@@color), 0.16);\n }\n }\n\n }\n }\n .loop-accent-theme(length(@globalAccentColors));\n}\n\n\n/**\n * =============================================================================\n * ************ Radio dark ************\n * =============================================================================\n */\n.layout-theme({\n // 默认状态\n .mdui-switch-icon {\n background-color: rgba(255, 255, 255, 0.3);\n\n &::before {\n background-color: @color-grey-400;\n }\n }\n\n // 选中状态\n & {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n @colorName: extract(@globalAccentColors, @counter-color);\n\n @color: 'color-@{colorName}-a200';\n @color-a100: 'color-@{colorName}-a100';\n\n &.mdui-theme-accent-@{colorName} when not (@colorName = null) {\n\n .mdui-switch input[type=\"checkbox\"]:checked + .mdui-switch-icon {\n background-color: rgba(red(@@color-a100), green(@@color-a100), blue(@@color-a100), 0.5);\n\n &::before {\n background-color: @@color-a100;\n }\n }\n\n }\n }\n .loop-accent-theme(length(@globalAccentColors));\n }\n\n // 未选中或禁用时 按下的阴影\n .mdui-switch:active input[type=\"checkbox\"],\n .mdui-switch input[type=\"checkbox\"]:focus {\n & + .mdui-switch-icon::before {\n box-shadow:\n // box-shadow(1)\n 0 2px 1px -1px rgba(0, 0, 0, .2),\n 0 1px 1px 0 rgba(0, 0, 0, .14),\n 0 1px 3px 0 rgba(0, 0, 0, .12),\n\n // 颜色阴影\n 0 0 0 15px rgba(255, 255, 255, 0.1);\n }\n }\n\n // 禁用状态\n .mdui-switch input[type=\"checkbox\"]:disabled + .mdui-switch-icon {\n background-color: rgba(255, 255, 255, 0.1) !important;\n\n &::before {\n background-color: @color-grey-800 !important;\n }\n }\n});\n","/**\n * =============================================================================\n * ************ Slider 滑块 ************\n * =============================================================================\n */\n\n@slider-light-color: #bdbdbd; // rgba(0, 0, 0, .26)\n@slider-light-color-focus: #9e9e9e; // rgba(0, 0, 0, .38)\n@slider-light-color-disabled: #bdbdbd; // rgba(0, 0, 0, .26)\n\n@slider-dark-color: #4c4c4c; // rgba(255, 255, 255, .3)\n@slider-dark-color-focus: #4c4c4c; // rgba(255, 255, 255, .3)\n@slider-dark-color-disabled: #4c4c4c; // rgba(255, 255, 255, .3)\n\n.mdui-slider {\n position: relative;\n display: block;\n width: 100%;\n height: 36px;\n\n input[type=\"range\"] {\n position: absolute;\n top: 50%;\n left: 0;\n z-index: 2;\n width: 100%;\n height: 20px;\n margin-top: -10px;\n cursor: pointer;\n opacity: 0;\n appearance: none;\n }\n}\n\n.mdui-slider-track,\n.mdui-slider-fill {\n position: absolute;\n top: 50%;\n box-sizing: border-box;\n height: 2px;\n margin-top: -1px;\n\n &::before {\n display: block;\n width: 100%;\n height: 100%;\n content: ' ';\n }\n}\n\n/* 轨道 */\n.mdui-slider-track {\n right: 0;\n\n &::before {\n background-color: @slider-light-color;\n transition: background-color .3s @animation-curve-default;\n }\n}\n\n/* 已滑动部分 */\n.mdui-slider-fill {\n left: 0;\n\n &::before {\n background-color: @color-default-a200;\n }\n}\n\n/* 滑块 */\n.mdui-slider-thumb {\n position: absolute;\n top: 50%;\n box-sizing: border-box;\n width: 12px;\n height: 12px;\n margin-top: -6px;\n background-color: @color-default-a200;\n border: 2px solid @color-default-a200;\n border-radius: 50%;\n transform: translate(-50%);\n transition:\n background .45s @animation-curve-default,\n border-color .45s @animation-curve-default,\n transform .2s @animation-curve-default,\n border-radius .2s @animation-curve-default;\n will-change: background, border-color, transform, border-radius;\n}\n\n\n/**\n * =============================================================================\n * ************ Slider 强调色 ************\n * =============================================================================\n */\n\n& {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n @colorName: extract(@globalAccentColors, @counter-color);\n\n @color: 'color-@{colorName}-a200';\n\n .mdui-theme-accent-@{colorName} when not (@colorName = null) {\n\n .mdui-slider-fill {\n\n &::before {\n background-color: @@color;\n }\n }\n\n .mdui-slider-thumb {\n background-color: @@color;\n border: 2px solid @@color;\n }\n }\n }\n .loop-accent-theme(length(@globalAccentColors));\n}\n\n\n/**\n * =============================================================================\n * ============ Slider 的不同状态 ============\n * =============================================================================\n */\n\n/* 鼠标按下状态 */\n.mdui-slider-focus {\n .mdui-slider-track {\n\n &::before {\n background-color: @slider-light-color-focus;\n }\n }\n\n .mdui-slider-thumb {\n transform: translate(-50%) scale(1.6);\n }\n}\n\n/* 滑块值为 0 */\n.mdui-slider-zero {\n .mdui-slider-thumb {\n background-color: #fff;\n border-color: @slider-light-color;\n }\n}\n\n/* 滑块值为 0,且鼠标按下 */\n.mdui-slider-zero.mdui-slider-focus {\n .mdui-slider-thumb {\n border-color: @slider-light-color-focus;\n }\n}\n\n/* 禁用状态 */\n.mdui-slider-disabled {\n input[type=\"range\"] {\n cursor: default;\n }\n\n .mdui-slider-track {\n\n &::before {\n background-color: @slider-light-color-disabled;\n }\n }\n\n .mdui-slider-fill {\n\n &::before {\n background-color: @slider-light-color-disabled;\n }\n }\n\n .mdui-slider-thumb {\n background-color: @slider-light-color-disabled;\n border-color: transparent !important;\n transform: translate(-50%) scale(.72);\n }\n}\n\n/**\n * =============================================================================\n * ============ 间续型滑块 ============\n * =============================================================================\n */\n.mdui-slider-discrete {\n\n .mdui-slider-thumb {\n width: 30px;\n height: 30px;\n margin-top: -15px;\n margin-left: -15px;\n border: none;\n transform: rotate(-45deg) scale(.4);\n\n // 间续型滑块的值显示\n span {\n position: absolute;\n top: 9px;\n left: -1px;\n width: 100%;\n color: #fff;\n font-size: 12px;\n text-align: center;\n transform: rotate(45deg);\n opacity: 0;\n transition: opacity .25s @animation-curve-default;\n }\n }\n\n // 鼠标按下状态\n &.mdui-slider-focus {\n .mdui-slider-thumb {\n border-radius: 15px 15px 15px 0;\n transform: rotate(-45deg) scale(1) translate(22px, -22px);\n\n span {\n opacity: 1;\n }\n }\n }\n\n // 滑块值为 0\n &.mdui-slider-zero {\n .mdui-slider-thumb {\n background-color: #323232;\n }\n }\n\n // 滑块值为 0,且鼠标按下\n &.mdui-slider-zero.mdui-slider-focus {\n .mdui-slider-thumb {\n background-color: @slider-light-color;\n }\n }\n\n // 禁用状态\n &.mdui-slider-disabled {\n .mdui-slider-thumb {\n transform: rotate(-45deg) scale(.288);\n }\n }\n\n // 滑块值为 0,且禁用\n &.mdui-slider-zero.mdui-slider-disabled {\n .mdui-slider-thumb {\n background-color: @slider-light-color;\n }\n }\n}\n\n/**\n * =============================================================================\n * ************ Slider dark ************\n * =============================================================================\n */\n.layout-theme({\n // 轨道\n .mdui-slider-track {\n\n &::before {\n background-color: @slider-dark-color;\n }\n }\n\n // 鼠标按下状态\n .mdui-slider-focus {\n .mdui-slider-track {\n\n &::before {\n background-color: @slider-dark-color-focus;\n }\n }\n }\n\n // 滑块值为 0\n .mdui-slider-zero {\n .mdui-slider-thumb {\n background-color: @layout-dark-color-3;\n border-color: @slider-dark-color;\n }\n }\n\n // 滑块值为 0,且鼠标按下\n .mdui-slider-zero.mdui-slider-focus {\n .mdui-slider-thumb {\n border-color: @slider-dark-color-focus;\n }\n }\n\n // 禁用状态\n .mdui-slider-disabled {\n .mdui-slider-track {\n\n &::before {\n background-color: @slider-dark-color-disabled;\n }\n }\n\n .mdui-slider-fill {\n\n &::before {\n background-color: @slider-dark-color-disabled;\n }\n }\n\n .mdui-slider-thumb {\n background-color: @slider-dark-color-disabled;\n }\n }\n\n // 间续型滑块\n .mdui-slider-discrete {\n\n // 滑块值为 0\n &.mdui-slider-zero {\n .mdui-slider-thumb {\n background-color: #fefefe;\n }\n }\n\n // 滑块值为 0,且鼠标按下\n &.mdui-slider-zero.mdui-slider-focus {\n .mdui-slider-thumb {\n background-color: #5c5c5c;\n }\n }\n\n // 滑块值为 0,且禁用\n &.mdui-slider-zero.mdui-slider-disabled {\n .mdui-slider-thumb {\n background-color: @slider-dark-color-disabled;\n }\n }\n }\n});\n","/**\n * =============================================================================\n * ************ Button 按钮 ************\n * =============================================================================\n */\n\n/* 默认为 Flat 扁平按钮 */\n.mdui-btn,\n.mdui-fab {\n position: relative;\n display: inline-block;\n box-sizing: border-box;\n min-width: 88px;\n height: @button-height;\n margin: 0;\n padding: 0 16px;\n overflow: hidden;\n color: inherit;\n font-weight: 500;\n font-size: 14px;\n line-height: @button-height;\n letter-spacing: 0.04em;\n white-space: nowrap;\n text-align: center;\n text-transform: uppercase;\n text-decoration: none;\n vertical-align: middle;\n background: transparent;\n border: none;\n border-radius: 2px;\n outline: none;\n cursor: pointer;\n transition: all .2s @animation-curve-default,\n box-shadow .2s @animation-curve-fast-out-linear-in;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n // 移除点击延迟触发\n touch-action: manipulation;\n will-change: box-shadow;\n zoom: 1;\n -webkit-user-drag: none;\n\n // 透明按钮 hover、active 时颜色加深\n &:hover {\n background-color: rgba(0, 0, 0, 0.1);\n }\n &:not(.mdui-ripple):active {\n background-color: rgba(0, 0, 0, 0.165);\n }\n\n // 带背景色的按钮 hover、active 时增加透明度\n &[class*=\"mdui-color-\"]:hover {\n opacity: 0.87;\n }\n &:not(.mdui-ripple)[class*=\"mdui-color-\"]:active {\n opacity: 0.76;\n }\n}\n\n/* 按钮内的图标 */\n.mdui-btn {\n .mdui-icon-left,\n .mdui-icon-right {\n &,\n &::before {\n height: inherit;\n font-size: 1.3em;\n line-height: inherit;\n }\n }\n .mdui-icon-left {\n float: left;\n margin-right: 0.4em;\n }\n .mdui-icon-right {\n float: right;\n margin-left: 0.4em;\n }\n}\n\ninput.mdui-btn[type=\"submit\"] {\n appearance: none;\n}\n\n/* Raised button 浮动按钮 */\n.mdui-btn-raised {\n .mdui-shadow(2);\n\n &:hover {\n .mdui-shadow(4);\n }\n\n &:active {\n .mdui-shadow(8);\n }\n}\n\n/* 禁用按钮 */\n.mdui-btn,\n.mdui-fab {\n &[disabled] {\n &,\n &:hover,\n &:active,\n &:focus {\n color: rgba(0, 0, 0, .26) !important;\n background-color: transparent !important;\n cursor: default !important;\n opacity: 1 !important;\n .mdui-shadow(0) !important;\n .mdui-icon {\n color: rgba(0, 0, 0, .26) !important;\n }\n }\n }\n}\n\n/* 禁用状态浮动按钮和浮动操作按钮 */\n.mdui-btn-raised,\n.mdui-fab {\n &[disabled] {\n &,\n &:hover,\n &:active,\n &:focus {\n background-color: rgba(0, 0, 0, .12) !important;\n .mdui-shadow(2) !important;\n }\n }\n}\n\n/* 加粗按钮文本 */\n.mdui-btn-bold {\n font-weight: bold;\n}\n\n/* 图标按钮 */\n.mdui-btn-icon {\n width: 36px;\n min-width: 36px;\n height: 36px;\n margin-right: 0;\n margin-left: 0;\n padding: 0;\n overflow: hidden;\n font-size: 24px;\n line-height: normal;\n border-radius: 50%;\n\n .mdui-icon {\n position: absolute;\n top: 50%;\n left: 50%;\n width: 24px;\n line-height: 24px;\n transform: translate(-12px, -12px);\n }\n\n &.mdui-ripple {\n transform: translateZ(0);\n }\n}\n\n/* 按钮 100% 宽度 */\n.mdui-btn-block {\n display: block;\n width: 100%;\n}\n\n/* 密集型按钮 */\n.mdui-btn-dense {\n height: 32px;\n font-size: 13px;\n line-height: 32px;\n\n &.mdui-btn-icon {\n width: 32px;\n min-width: 32px;\n }\n}\n\n/* 按钮组 */\n.mdui-btn-group {\n position: relative;\n display: inline-block;\n vertical-align: middle;\n\n .mdui-btn {\n float: left;\n min-width: inherit;\n padding: 0 12px;\n color: rgba(0, 0, 0, 0.54);\n border-radius: 0;\n\n &::before {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n border-left: 1px solid transparent;\n content: ' ';\n }\n\n &:first-child {\n border-top-left-radius: 2px;\n border-bottom-left-radius: 2px;\n\n &::before {\n border-left: none;\n }\n }\n\n &:last-child {\n border-top-right-radius: 2px;\n border-bottom-right-radius: 2px;\n }\n\n // 激活状态\n &.mdui-btn-active {\n color: rgba(0, 0, 0, 0.87);\n background-color: rgba(0, 0, 0, 0.215);\n\n &+.mdui-btn-active {\n &::before {\n border-left: 1px solid rgba(0, 0, 0, 0.145);\n }\n }\n }\n }\n}\n\n\n/**\n * =============================================================================\n * ************ Button dark ************\n * =============================================================================\n */\n.layout-theme({\n // 透明按钮 hover、active 时颜色变浅\n .mdui-btn,\n .mdui-fab {\n // 透明按钮 hover、active 时颜色变浅\n &:hover {\n background-color: rgba(255, 255, 255, 0.1);\n }\n &:not(.mdui-ripple):active {\n background-color: rgba(255, 255, 255, 0.165);\n }\n\n // 带背景的按钮 hover、active 时增加透明度\n &[class*=\"mdui-color-\"]:hover {\n opacity: 0.87;\n }\n &:not(.mdui-ripple)[class*=\"mdui-color-\"]:active {\n opacity: 0.76;\n }\n }\n\n // 禁用按钮\n .mdui-btn,\n .mdui-fab {\n &[disabled] {\n &,\n &:hover,\n &:active,\n &:focus {\n color: @color-white-icon-disabled !important;\n background-color: transparent !important;\n .mdui-icon {\n color: @color-white-icon-disabled !important;\n }\n }\n }\n }\n\n // 禁用状态浮动按钮和浮动操作按钮\n .mdui-btn-raised,\n .mdui-fab {\n &[disabled] {\n &,\n &:hover,\n &:active,\n &:focus {\n background-color: rgba(255, 255, 255, .12) !important;\n }\n }\n }\n});\n","/**\n * =============================================================================\n * ************ Fab 浮动操作按钮 ************\n * =============================================================================\n */\n\n@import '../button/index';\n\n@fab-size: 56px;\n@fab-size-mini: 40px;\n\n/* 浮动操作按钮 */\n.mdui-fab {\n width: @fab-size;\n min-width: @fab-size;\n height: @fab-size;\n margin: auto;\n padding: 0 !important;\n overflow: hidden;\n font-size: 24px;\n line-height: normal !important;\n border-radius: 50%;\n .mdui-shadow(6);\n\n &:hover{\n .mdui-shadow(8);\n }\n\n &:active {\n .mdui-shadow(12);\n }\n\n // 浮动操作按钮中的图标\n .mdui-icon {\n position: absolute;\n top: 0;\n left: 0;\n width: 24px;\n margin-top: 16px;\n margin-left: 16px;\n line-height: 24px;\n }\n}\n\n/* mini 型浮动操作按钮 */\n.mdui-fab-mini {\n width: @fab-size-mini;\n min-width: @fab-size-mini;\n height: @fab-size-mini;\n\n // mini 型浮动操作按钮中的图标\n .mdui-icon {\n margin-top: 8px;\n margin-left: 8px;\n }\n}\n\n/* 固定到右下角的 FAB 按钮 */\n.mdui-fab-fixed,\n.mdui-fab-wrapper {\n position: fixed !important;\n\n /* 手机平板上距离屏幕右下角 16px */\n right: 16px;\n bottom: 16px;\n\n @media (min-width: @screen-md-min) {\n /* 电脑上距离屏幕右下角 24px */\n right: 24px;\n bottom: 24px;\n }\n}\n\n/* 含菜单的浮动操作按钮 */\n.mdui-fab-wrapper {\n position: relative;\n z-index: @z-index-fab;\n width: @fab-size;\n height: @fab-size;\n padding-top: 8px;\n text-align: center;\n\n // 菜单打开前\n &>.mdui-fab {\n .mdui-icon:not(.mdui-fab-opened) {\n opacity: 1;\n transition: all .2s @animation-curve-default;\n will-change: opacity, transform;\n }\n .mdui-icon.mdui-fab-opened {\n transform: rotate(225deg);\n opacity: 0;\n transition: all .2s @animation-curve-default;\n will-change: opacity, transform;\n }\n }\n\n // 菜单打开后\n &>.mdui-fab.mdui-fab-opened {\n .mdui-icon:not(.mdui-fab-opened) {\n transform: rotate(225deg);\n opacity: 0;\n }\n .mdui-icon.mdui-fab-opened {\n transform: rotate(360deg);\n opacity: 1;\n }\n }\n\n // mini 按钮需要垂直居中\n &>.mdui-fab-mini {\n margin-top: (@fab-size - @fab-size-mini) / 2;\n }\n\n .mdui-fab-dial {\n position: absolute;\n right: 0;\n bottom: @fab-size + 8px;\n left: 0;\n height: 0;\n text-align: center;\n visibility: visible;\n\n .mdui-fab {\n margin: 8px 0;\n transform: scale(0);\n opacity: 0;\n transition: box-shadow .2s @animation-curve-fast-out-linear-in,\n color .2s @animation-curve-default,\n // fab\n transform 150ms @animation-curve-default,\n opacity 150ms @animation-curve-default;\n }\n\n &.mdui-fab-dial-show {\n .mdui-fab {\n transform: scale(1);\n opacity: 1;\n }\n }\n }\n}\n\n/* 添加类 .mdui-fab-hide 以动画的形式隐藏按钮 */\n.mdui-fab,\n.mdui-fab-mini,\n.mdui-fab-wrapper {\n transform: scale(1) translateZ(0);\n transition: all .2s @animation-curve-default,\n box-shadow .2s @animation-curve-fast-out-linear-in,\n // fab\n transform .2s;\n will-change: transform;\n\n &.mdui-fab-hide {\n transform: scale(0) translateZ(0);\n }\n}\n","/**\n * =============================================================================\n * ************ Select 下拉选择 ************\n * =============================================================================\n */\n\n.mdui-select {\n position: relative;\n display: inline-block;\n box-sizing: border-box;\n max-width: 100%;\n height: 36px;\n padding-right: 24px;\n padding-left: 0;\n font-size: 16px;\n font-family: @font-family-base;\n vertical-align: middle;\n //background-image: data-uri('image/svg+xml', './components/select/svg/arrow_down_dark.svg');\n // https://www.zhangxinxu.com/sp/svgo/ CSS 转义\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M-.003 2.5l5 5 5-5h-10z' opacity='.54'/%3E%3C/svg%3E\");\n\n // 箭头\n background-repeat: no-repeat;\n background-position: right center;\n border: none;\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n outline: none;\n cursor: pointer;\n transition-timing-function: @animation-curve-default;\n transition-duration: .2s;\n transition-property: background-color, box-shadow, background-position-x;\n appearance: none;\n user-select: none;\n will-change: background-color, box-shadow, background-position-x;\n\n &.mdui-select-open {\n border-bottom: none;\n }\n}\n\n.mdui-select-position-top {\n //background-image: data-uri('image/svg+xml', './components/select/svg/arrow_up_dark.svg');\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M10.003 7.5l-5-5-5 5h10z' opacity='.54'/%3E%3C/svg%3E\");\n}\n\n/* 底部和顶部菜单的样式 */\n.mdui-select-open {\n &.mdui-select-position-top,\n &.mdui-select-position-bottom {\n z-index: 99999;\n background-color: #fff;\n /* stylelint-disable-next-line */\n background-position-x: calc(~'100% - 12px');\n border-radius: 2px;\n }\n\n &.mdui-select-position-top {\n border-top: 1px solid rgba(0, 0, 0, 0.12);\n border-bottom: 2px solid transparent;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n box-shadow: 0 10px 10px -3px rgba(0,0,0,.2), 0 0 14px 1px rgba(0,0,0,.14), 0 -7px 24px 2px rgba(0,0,0,.12);\n\n .mdui-select-menu {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n\n // 隐藏下方的阴影\n box-shadow: 0 -4px 4px -2px rgba(0,0,0,.06), 8px 0 8px -4px rgba(0,0,0,.12), -8px 0 8px -4px rgba(0,0,0,.12)\n }\n }\n\n &.mdui-select-position-bottom {\n border-bottom: 1px solid rgba(0, 0, 0, 0.12);\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n .mdui-shadow(8);\n\n .mdui-select-menu {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n\n // 隐藏上方阴影\n box-shadow: 0 5px 5px -3px rgba(0,0,0,.2), 0 9px 9px 1px rgba(0,0,0,.14), 0 8px 8px 2px rgba(0,0,0,.06);\n }\n }\n}\n\n/* 当前选中项文本 */\n.mdui-select-selected {\n position: absolute;\n top: 50%;\n right: 24px;\n left: 0;\n display: block;\n transform: translateY(-50%);\n transition: left .2s @animation-curve-linear-out-slow-in;\n .mdui-text-truncate();\n\n .mdui-select-open & {\n right: 32px;\n left: 16px;\n }\n\n .mdui-select-open.mdui-select-position-auto & {\n visibility: hidden;\n }\n}\n\n/* 菜单 */\n.mdui-select-menu {\n position: relative;\n z-index: 99999;\n box-sizing: border-box;\n height: 36px;\n margin: 0 -24px 0 0;\n\n // 在计算宽度时,把滚动条计算进去\n overflow-y: scroll;\n color: @color-black-text;\n background-color: #fff;\n border-radius: 2px;\n transform: scale(1, 0);\n visibility: hidden;\n cursor: default;\n opacity: 0;\n transition-timing-function: @animation-curve-linear-out-slow-in;\n transition-duration: .2s;\n transition-property: transform, opacity, visibility;\n will-change: transform, opacity, visibility;\n -webkit-overflow-scrolling: touch;\n .mdui-shadow(8);\n\n // 打开状态的菜单\n .mdui-select-open & {\n overflow-y: hidden;\n transform: scale(1, 1);\n visibility: visible;\n opacity: 1;\n }\n\n // 关闭状态的菜单\n .mdui-select-closing & {\n overflow-y: hidden;\n box-shadow: none;\n transform: scale(1, 1);\n visibility: visible;\n opacity: 0;\n }\n}\n\n/* 菜单项 */\n.mdui-select-menu-item {\n height: 48px;\n padding: 0 16px;\n line-height: 48px;\n cursor: pointer;\n .mdui-text-truncate();\n\n &:hover {\n background-color: @color-grey-200;\n }\n\n &:first-child {\n margin-top: 8px;\n }\n\n &:last-child {\n margin-bottom: 8px;\n }\n\n // 禁用项\n &[disabled] {\n color: @color-black-disabled !important;\n cursor: default;\n\n &:hover {\n background-color: inherit !important;\n }\n }\n\n // 已选中项\n &[selected] {\n color: @color-default-a200;\n }\n}\n\n\n/* 原生 select 组件 */\nselect.mdui-select {\n background-color: transparent;\n\n option {\n color: rgba(0, 0, 0, 0.87);\n }\n\n // 移除 IE 的下拉按钮\n &::-ms-expand {\n display: none;\n }\n}\n\n/* 原生多选 select 组件 */\nselect.mdui-select[multiple] {\n height: auto;\n padding: 0;\n font-size: 15px;\n background-color: #FFF;\n background-image: none;\n border: 1px solid rgba(0, 0, 0, 0.38);\n cursor: default;\n\n optgroup {\n margin: 8px 0 0 0;\n padding: 0 0 0 16px;\n color: rgba(0, 0, 0, 0.38);\n\n &:last-child {\n margin-bottom: 8px;\n }\n\n &:not(:first-child) {\n padding-top: 8px;\n border-top: 1px solid rgba(0, 0, 0, 0.12);\n }\n }\n\n option {\n display: flex;\n align-items: center;\n height: 32px;\n margin: 0 0 0 -16px;\n padding: 0 16px;\n color: rgba(0, 0, 0, 0.87);\n\n &:first-child {\n margin-top: 8px;\n }\n\n &:last-child {\n margin-bottom: 8px;\n }\n }\n}\n\n/**\n * =============================================================================\n * ************ Select 强调色 ************\n * =============================================================================\n */\n\n& {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n @colorName: extract(@globalAccentColors, @counter-color);\n\n .mdui-theme-accent-@{colorName} when not (@colorName = null) {\n\n .mdui-select-menu-item {\n // 菜单中已选中项\n &[selected] {\n .mdui-text-color(@colorName);\n }\n }\n\n }\n }\n .loop-accent-theme(length(@globalAccentColors));\n}\n\n\n/**\n * =============================================================================\n * ************ Select dark ************\n * =============================================================================\n */\n.layout-theme({\n .mdui-select {\n //background-image: data-uri('image/svg+xml', './components/select/svg/arrow_down_light.svg');\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M-.003 2.5l5 5 5-5h-10z' fill='%23FFF'/%3E%3C/svg%3E\");\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n }\n\n .mdui-select-position-top {\n //background-image: data-uri('image/svg+xml', './components/select/svg/arrow_up_light.svg');\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath d='M10.003 7.5l-5-5-5 5h10z' fill='%23FFF'/%3E%3C/svg%3E\");\n }\n\n .mdui-select-open {\n &.mdui-select-position-top,\n &.mdui-select-position-bottom {\n background-color: @layout-dark-color-4;\n }\n\n &.mdui-select-position-top {\n border-top: 1px solid rgba(255, 255, 255, 0.12);\n }\n\n &.mdui-select-position-bottom {\n border-bottom: 1px solid rgba(255, 255, 255, 0.12);\n }\n }\n\n .mdui-select-menu {\n color: #fff;\n background-color: @layout-dark-color-4;\n }\n\n .mdui-select-menu-item {\n &:hover {\n background-color: @color-grey-700;\n }\n\n &[disabled] {\n color: @color-white-disabled !important;\n }\n }\n\n // 原生 select 组件\n select.mdui-select {\n color: #FFF;\n background-color: @layout-dark-color-3;\n\n option {\n color: #FFF;\n background-color: @layout-dark-color-3;\n }\n }\n\n // 原生多选 select 组件\n select.mdui-select[multiple] {\n border: 1px solid rgba(255, 255, 255, 0.5);\n\n optgroup {\n color: rgba(255, 255, 255, 0.5);\n\n &:not(:first-child) {\n border-top: 1px solid rgba(255, 255, 255, 0.12);\n }\n }\n }\n});\n","/**\n * =============================================================================\n * ************ Toolbar 工具栏 ************\n * =============================================================================\n */\n\n.mdui-toolbar {\n display: flex;\n align-items: center;\n box-sizing: border-box;\n width: 100%;\n &>* {\n margin: 0 16px;\n .mdui-text-truncate();\n }\n\n // 工具栏默认有背景色时,工具栏中的按钮,hover 和 active 时颜色变浅\n &[class*=\"mdui-color-\"]:not(.mdui-color-transparent) {\n .mdui-btn {\n &:hover {\n background-color: rgba(255, 255, 255, 0.1);\n }\n &:active {\n background-color: rgba(255, 255, 255, 0.165);\n }\n }\n }\n\n &>a {\n color: inherit;\n text-decoration: none;\n user-select: none;\n }\n\n &>.mdui-btn-icon {\n width: @appbar-icon-width;\n min-width: @appbar-icon-width;\n height: @appbar-icon-width;\n\n // 手机横屏时\n @media (orientation: landscape) and (max-width: @screen-xs-max-landscape) {\n width: @appbar-icon-width-xs-landscape;\n min-width: @appbar-icon-width-xs-landscape;\n height: @appbar-icon-width-xs-landscape;\n }\n\n .mdui-icon {\n height: 24px;\n line-height: 24px;\n }\n }\n\n .mdui-icon {\n color: inherit;\n }\n}\n\n.mdui-toolbar-spacer {\n flex-grow: 1;\n margin: 0;\n}\n\n// 响应式。只有在应用栏中的工具栏,才具有响应式特性,不在应用栏中,则使用手机样式\n._toolbar_responsive_mixed(@toolbar-height, @icon-width) {\n .mdui-toolbar {\n height: @toolbar-height;\n line-height: @toolbar-height;\n\n &>.mdui-btn {\n margin: 0 (@toolbar-height - @icon-width) / 2;\n\n & + .mdui-btn {\n margin-left: 0;\n }\n }\n }\n}\n\n/* 手机 */\n._toolbar_responsive_mixed(@appbar-height-xs-portrait, @appbar-icon-width);\n\n.mdui-appbar {\n // 平板和桌面\n @media (min-width: @screen-sm-min) {\n ._toolbar_responsive_mixed(@appbar-height-sm, @appbar-icon-width);\n }\n\n // 手机横屏\n @media (orientation: landscape) and (max-width: @screen-xs-max-landscape) {\n ._toolbar_responsive_mixed(@appbar-height-xs-landscape, @appbar-icon-width-xs-landscape);\n }\n}\n","/**\n * =============================================================================\n * ************ Appbar 应用栏 ************\n * =============================================================================\n */\n\n@import '../toolbar/index';\n@import '../headroom/index';\n\n.mdui-appbar {\n z-index: @z-index-appbar;\n .mdui-shadow(4);\n}\n\n/* appbar 固定在顶部 */\n.mdui-appbar-fixed {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n transition-timing-function: @animation-curve-linear-out-slow-in;\n transition-duration: 0.3s;\n transition-property: left, right;\n will-change: left, right;\n}\n\n/* 左侧留出抽屉栏的距离 */\n.mdui-appbar-inset.mdui-appbar-fixed {\n .mdui-drawer-body-left & {\n @media (min-width: @screen-md-min) {\n left: @drawer-width-md;\n }\n }\n\n .mdui-drawer-body-right & {\n @media (min-width: @screen-md-min) {\n right: @drawer-width-md;\n }\n }\n}\n\n/* 含工具栏 */\n.mdui-appbar-with-toolbar {\n padding-top: @appbar-height-xs-portrait;\n\n // 平板和桌面\n @media (min-width: @screen-sm-min) {\n padding-top: @appbar-height-sm;\n }\n\n // 手机横屏\n @media (orientation: landscape) and (max-width: @screen-xs-max-landscape) {\n padding-top: @appbar-height-xs-landscape;\n }\n}\n\n/* 含 Tab */\n.mdui-appbar-with-tab {\n padding-top: 48px;\n}\n\n/* 含大 Tab */\n.mdui-appbar-with-tab-larger {\n padding-top: 72px;\n}\n\n/* 含工具栏和 Tab */\n.mdui-appbar-with-toolbar.mdui-appbar-with-tab {\n padding-top: @appbar-height-xs-portrait + 48px;\n\n // 平板和桌面\n @media (min-width: @screen-sm-min) {\n padding-top: @appbar-height-sm + 48px;\n }\n\n // 手机横屏\n @media (orientation: landscape) and (max-width: @screen-xs-max-landscape) {\n padding-top: @appbar-height-xs-landscape + 48px;\n }\n}\n\n/* 含工具栏和大 Tab */\n.mdui-appbar-with-toolbar.mdui-appbar-with-tab-larger {\n padding-top: @appbar-height-xs-portrait + 72px;\n\n // 平板和桌面\n @media (min-width: @screen-sm-min) {\n padding-top: @appbar-height-sm + 72px;\n }\n\n // 手机横屏\n @media (orientation: landscape) and (max-width: @screen-xs-max-landscape) {\n padding-top: @appbar-height-xs-landscape + 72px;\n }\n}\n\n\n/**\n * =============================================================================\n * ************ Appbar dark ************\n * =============================================================================\n */\n.layout-theme({\n .mdui-appbar {\n &>[class*=\"mdui-color-\"]:not(.mdui-color-transparent) {\n color: #fff !important;\n background-color: @layout-dark-color-2 !important;\n }\n }\n});\n","/**\n * =============================================================================\n * ************ Card 卡片 ************\n * =============================================================================\n */\n\n/* 卡片 */\n.mdui-card {\n position: relative;\n box-sizing: border-box;\n overflow: hidden;\n color: #000;\n background-color: #fff;\n border-radius: 2px;\n .mdui-shadow(2);\n}\n\n/**\n * ===================== 头部,包含头像、标题、副标题\n */\n.mdui-card-header {\n position: relative;\n box-sizing: border-box;\n height: 72px;\n padding: 16px;\n}\n\n/* 卡片头部头像 */\n.mdui-card-header-avatar {\n float: left;\n width: 40px;\n height: 40px;\n border-radius: 50%;\n}\n\n/* 卡片头部标题 */\n.mdui-card-header-title {\n display: block;\n margin-left: 52px;\n font-weight: 500;\n font-size: 16px;\n line-height: 20px;\n opacity: @opacity-black-text;\n .mdui-text-truncate();\n}\n\n/* 卡片头部副标题 */\n.mdui-card-header-subtitle {\n display: block;\n margin-left: 52px;\n font-weight: 400;\n font-size: 14px;\n line-height: 20px;\n opacity: @opacity-black-secondary;\n .mdui-text-truncate();\n}\n\n/**\n * =========================== 主标题区域\n */\n.mdui-card-primary {\n position: relative;\n padding: 24px 16px 16px 16px;\n}\n\n/* 主标题区域标题 */\n.mdui-card-primary-title {\n display: block;\n font-size: 24px;\n line-height: 36px;\n opacity: @opacity-black-text;\n}\n\n/* 主标题区域副标题 */\n.mdui-card-primary-subtitle {\n display: block;\n font-size: 14px;\n line-height: 24px;\n opacity: @opacity-black-secondary;\n}\n\n/**\n * ============================ 内容区域\n */\n.mdui-card-content {\n position: relative;\n padding: 16px;\n font-size: 14px;\n line-height: 24px;\n}\n\n/**\n * ============================ 卡片菜单\n */\n.mdui-card-menu {\n position: absolute;\n top: 16px;\n right: 16px;\n z-index: 1;\n\n .mdui-btn {\n margin-left: 8px;\n }\n}\n\n/**\n * =========================== 按钮区域\n */\n.mdui-card-actions {\n .mdui-clearfix();\n\n position: relative;\n box-sizing: border-box;\n padding: 8px;\n\n .mdui-btn {\n max-width: 100%;\n margin: 0 8px 0 0;\n .mdui-text-truncate();\n }\n\n .mdui-btn-icon {\n width: @button-height;\n height: @button-height;\n margin: 0 8px;\n }\n}\n\n/* 使按钮竖向排列 */\n.mdui-card-actions-stacked {\n .mdui-btn {\n display: block;\n margin: 0 0 4px 0;\n &:last-child {\n margin: 0;\n }\n }\n}\n\n/**\n * ============================= 媒体元素区域\n */\n.mdui-card-media {\n position: relative;\n img, video {\n display: block;\n width: 100%;\n }\n}\n\n/* 覆盖在媒体元素上的内容 */\n.mdui-card-media-covered {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n color: #fff;\n background: rgba(0, 0, 0, 0.2);\n\n /* 覆盖在媒体元素上的标题 */\n .mdui-card-primary-title {\n opacity: @opacity-white-text;\n }\n .mdui-card-primary-subtitle {\n opacity: @opacity-white-secondary;\n }\n}\n\n/* 覆盖在媒体元素顶部 */\n.mdui-card-media-covered-top {\n top: 0;\n bottom: auto;\n}\n\n/* 覆盖层透明 */\n.mdui-card-media-covered-transparent {\n background: transparent;\n}\n\n/* 覆盖层渐变 */\n.mdui-card-media-covered-gradient {\n background: linear-gradient(to top, rgba(0, 0, 0, 0.26), rgba(0, 0, 0, 0));\n\n &.mdui-card-media-covered-top {\n background: linear-gradient(to bottom, rgba(0, 0, 0, 0.26), rgba(0, 0, 0, 0));\n }\n}\n\n\n/**\n * =============================================================================\n * ************ Card dark ************\n * =============================================================================\n */\n.layout-theme({\n .mdui-card {\n color: #fff;\n background-color: @layout-dark-color-4;\n }\n});\n","/**\n * =============================================================================\n * ************ Tab ************\n * =============================================================================\n *\n * 在手机上选项卡始终平分或可滚动,在平板以上的设备上默认左对齐,可以选择居中对齐,或全宽等分\n */\n\n/* 选项卡,默认的选项卡为全宽 */\n.mdui-tab {\n position: relative;\n display: flex;\n min-height: 48px;\n max-height: 72px;\n margin: 0 auto;\n padding: 0;\n overflow-x: auto;\n overflow-y: hidden;\n white-space: nowrap;\n -webkit-overflow-scrolling: touch;\n\n a {\n display: flex;\n // 手机上始终等分选项卡\n flex: 1;\n\n // 使图标和文本垂直排列\n flex-direction: column;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n min-width: 72px;\n min-height: 48px;\n max-height: 72px;\n padding: 12px;\n overflow: hidden;\n color: inherit;\n font-size: 14px;\n text-align: center;\n text-transform: uppercase;\n text-decoration: none;\n text-overflow: ellipsis;\n outline: none;\n cursor: pointer;\n opacity: 0.7;\n user-select: none;\n\n .mdui-icon {\n opacity: 0.7;\n }\n\n // 平板或以上设备\n @media (min-width: @screen-sm-min) {\n\n // 平板/pc上选项卡左对齐\n flex: none;\n min-width: 99px;\n max-width: 264px;\n\n // 手机上 padding 12px,平板/pc上 padding 24px\n padding: 12px 24px;\n }\n\n @media (min-width: @screen-md-min) {\n min-width: 112px;\n }\n\n @media (min-width: @screen-lg-min) {\n min-width: 136px;\n }\n\n @media (min-width: @screen-xl-min) {\n min-width: 160px;\n }\n\n label {\n display: block;\n width: 100%;\n cursor: pointer;\n }\n\n .mdui-icon + label {\n margin-top: 8px;\n }\n\n &[disabled] {\n cursor: default;\n opacity: 0.38;\n\n label {\n cursor: default;\n }\n }\n }\n\n // 激活状态的选项\n .mdui-tab-active {\n color: @color-default-500;\n opacity: 1;\n .mdui-icon {\n opacity: 1;\n }\n }\n}\n\n/* 选项卡居中 */\n.mdui-tab-centered {\n @media (min-width: @screen-sm-min) {\n &::before {\n flex-grow: 1;\n content: ' ';\n }\n &::after {\n flex-grow: 1;\n content: ' ';\n }\n a {\n flex: none;\n }\n }\n}\n\n/* 选项卡始终全宽等分 */\n.mdui-tab-full-width {\n a {\n flex: 1;\n max-width: none;\n }\n}\n\n\n/* 可横向滚动的选项卡 */\n.mdui-tab-scrollable {\n padding-left: 56px;\n\n a {\n flex: none;\n }\n\n @media (max-width: @screen-xs-max) {\n padding-left: 60px;\n }\n\n}\n\n/* 下划线指示器 */\n.mdui-tab-indicator {\n position: absolute;\n bottom: 0;\n height: 2px;\n background-color: @color-default-500;\n transition: all .35s @animation-curve-default;\n will-change: left, width;\n}\n\n/**\n * =============================================================================\n * ************ Tab 主色 ************\n * =============================================================================\n */\n\n& {\n .loop-primary-theme(@counter-color) when (@counter-color > 0) {\n .loop-primary-theme((@counter-color - 1));\n @colorName: extract(@globalPrimaryColors, @counter-color);\n @color: 'color-@{colorName}-500';\n\n .mdui-theme-primary-@{colorName} when not (@colorName = null) {\n .mdui-tab .mdui-tab-active {\n color: @@color;\n }\n\n .mdui-tab-indicator {\n background-color: @@color;\n }\n }\n\n }\n .loop-primary-theme(length(@globalPrimaryColors));\n}\n\n/* 带背景色的选项卡 */\n.mdui-tab[class*=\"mdui-color-\"]:not(.mdui-color-white) {\n .mdui-tab-active {\n color: inherit;\n }\n .mdui-tab-indicator {\n background-color: @color-white-500;\n }\n\n // 带背景色的选项卡中使用浅色滚动条\n & {\n .mdui-scrollbar-beautify(dark);\n }\n}\n","/**\n * =============================================================================\n * ************ Subheader 副标题 ************\n * =============================================================================\n *\n * 用于 List 和 Grid list 组件\n */\n\n.mdui-subheader,\n.mdui-subheader-inset {\n position: relative;\n box-sizing: border-box;\n height: 48px;\n padding-right: 16px;\n padding-left: 16px;\n color: @color-black-secondary;\n font-weight: 500;\n font-size: 14px;\n line-height: 48px;\n cursor: default;\n .mdui-text-truncate();\n}\n\n.mdui-subheader-inset {\n padding-left: 72px;\n}\n\n/**\n * =============================================================================\n * ************ Subheader dark ************\n * =============================================================================\n */\n.layout-theme({\n .mdui-subheader,\n .mdui-subheader-inset {\n color: @color-white-secondary;\n }\n});\n","/**\n * =============================================================================\n * ************ Grid List 网格列表 ************\n * =============================================================================\n */\n\n/* 调整网格边距 */\n.mdui-grid-list {\n margin: 0 -@grid-list-gutter / 2;\n\n .mdui-col,\n [class*=\"mdui-col-xs-\"],\n [class*=\"mdui-col-sm-\"],\n [class*=\"mdui-col-md-\"],\n [class*=\"mdui-col-lg-\"],\n [class*=\"mdui-col-xl-\"] {\n padding-right: @grid-list-gutter / 2;\n padding-left: @grid-list-gutter / 2;\n }\n}\n\n/* 单元格 */\n.mdui-grid-tile {\n position: relative;\n box-sizing: border-box;\n margin-bottom: @grid-list-gutter;\n overflow: hidden;\n\n img {\n display: block;\n width: 100%;\n }\n}\n\n/* 操作栏 */\n.mdui-grid-tile-actions {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n display: flex;\n align-items: center;\n box-sizing: border-box;\n min-height: 48px;\n max-height: 68px;\n padding: 16px;\n color: #fff;\n background: rgba(0, 0, 0, 0.2);\n\n .mdui-icon {\n color: #fff;\n }\n}\n\n/* 操作栏内的文本 */\n.mdui-grid-tile-text {\n flex: 1;\n overflow: hidden;\n}\n\n/* 标题 */\n.mdui-grid-tile-title {\n height: 16px;\n font-size: 16px;\n line-height: 16px;\n .mdui-text-truncate();\n\n .mdui-icon {\n margin-right: 8px;\n }\n}\n\n/* 副标题 */\n.mdui-grid-tile-subtitle {\n height: 18px;\n margin-top: 4px;\n font-size: 12px;\n line-height: 18px;\n .mdui-text-truncate();\n\n .mdui-icon {\n margin-right: 8px;\n font-size: 18px;\n }\n}\n\n/* 操作栏内的按钮 */\n.mdui-grid-tile-buttons {\n flex: none;\n margin: -8px;\n white-space: nowrap;\n\n .mdui-btn {\n margin-left: 8px;\n &:first-child {\n margin-left: 0;\n }\n }\n}\n\n.mdui-grid-tile-text + .mdui-grid-tile-buttons {\n margin-left: 8px;\n}\n.mdui-grid-tile-buttons + .mdui-grid-tile-text {\n margin-left: 16px;\n}\n\n/* 操作栏位于顶部 */\n.mdui-grid-tile-actions-top {\n top: 0;\n bottom: auto;\n}\n\n/* 操作栏背景透明 */\n.mdui-grid-tile-actions-transparent {\n background: transparent;\n}\n\n/* 操作栏背景渐变 */\n.mdui-grid-tile-actions-gradient {\n background: linear-gradient(to top, rgba(0, 0, 0, 0.26), rgba(0, 0, 0, 0));\n\n &.mdui-grid-tile-actions-top {\n background: linear-gradient(to bottom, rgba(0, 0, 0, 0.26), rgba(0, 0, 0, 0));\n }\n}","/**\n * =============================================================================\n * ************ List 列表 ************\n * =============================================================================\n */\n\n/* 列表 */\n.mdui-list {\n margin: 0;\n padding: 8px 0;\n list-style: none;\n background-color: transparent;\n\n // 子列表没有上下间距\n .mdui-list {\n padding: 0;\n }\n\n // 分割线上下边距\n &>.mdui-divider,\n &>.mdui-divider-light,\n &>.mdui-divider-dark,\n &>.mdui-divider-inset,\n &>.mdui-divider-inset-light,\n &>.mdui-divider-inset-dark {\n margin-top: 8px;\n margin-bottom: 8px;\n }\n\n a {\n color: inherit;\n text-decoration: none;\n }\n\n // 使用副标题时自动添加分割线\n .mdui-subheader,\n .mdui-subheader-inset {\n &::before {\n position: absolute;\n right: 0;\n left: 0;\n display: block;\n height: 1px;\n background-color: @color-black-divider;\n content: ' ';\n }\n\n margin-top: 8px;\n\n &:first-child {\n &::before {\n background-color: transparent;\n }\n\n // 第一个副标题把列表的 padding-top 抵消掉\n margin-top: -8px;\n }\n }\n .mdui-subheader-inset {\n &::before {\n left: 72px;\n }\n }\n}\n\n/* 列表项 */\n.mdui-list-item {\n display: flex;\n align-items: center;\n box-sizing: border-box;\n min-height: 48px;\n padding: 0 16px;\n text-decoration: none;\n cursor: pointer;\n transition: background-color .3s @animation-curve-default;\n\n &:hover {\n background-color: @color-hover-black;\n }\n\n // http://stackoverflow.com/a/31915203\n &::after {\n height: 48px;\n visibility: hidden;\n content: ' ';\n }\n}\n\n/* 列表项图标 */\n.mdui-list-item-icon {\n width: 24px;\n min-width: 24px;\n height: 24px;\n color: @color-black-icon;\n}\n\n/* 列表项头像 */\n.mdui-list-item-avatar {\n min-width: 40px;\n max-width: 40px;\n height: 40px;\n margin-top: 8px;\n margin-bottom: 8px;\n color: @color-white;\n line-height: 40px;\n text-align: center;\n background-color: @color-grey-400;\n border-radius: 50%;\n img {\n width: 100%;\n height: 100%;\n border-radius: 50%;\n }\n}\n\n/* 列表项内容 */\n.mdui-list-item-content {\n flex-grow: 1;\n padding-top: 14px;\n padding-bottom: 14px;\n font-weight: 400;\n font-size: 16px;\n line-height: 20px;\n}\n\n/* 列表项内容的副内容 */\n.mdui-list-item-text {\n font-size: 14px;\n opacity: @opacity-black-secondary;\n}\n.mdui-list-item-title {\n ~ .mdui-list-item-text {\n margin-top: 4px;\n }\n}\n\n/* 激活状态的列表项 */\n.mdui-list-item-active {\n font-weight: 700;\n background-color: @color-hover-black;\n\n .mdui-list-item-content {\n font-weight: 700;\n }\n .mdui-list-item-text {\n font-weight: 400;\n }\n}\n\n/* 限制文本高度 */\n.mdui-list-item-one-line,\n.mdui-list-item-two-line,\n.mdui-list-item-three-line {\n display: -webkit-box;\n overflow: hidden;\n text-overflow: ellipsis;\n -webkit-box-orient: vertical;\n}\n.mdui-list-item-one-line {\n -webkit-line-clamp: 1;\n height: 20px;\n}\n.mdui-list-item-two-line {\n -webkit-line-clamp: 2;\n height: 40px;\n}\n.mdui-list-item-three-line {\n -webkit-line-clamp: 3;\n height: 60px;\n}\n\n/* 列表项内的元素间添加间距 */\n.mdui-list-item-icon {\n ~ .mdui-list-item-content {\n margin-left: 32px;\n }\n}\n.mdui-checkbox,\n.mdui-radio,\n.mdui-switch {\n ~ .mdui-list-item-content {\n margin-left: 20px;\n }\n}\n\n\n.mdui-list-item-avatar {\n ~ .mdui-list-item-content {\n margin-left: 16px;\n }\n}\n.mdui-list-item-content {\n ~ .mdui-list-item-icon,\n ~ .mdui-list-item-avatar,\n ~ .mdui-checkbox,\n ~ .mdui-radio,\n ~ .mdui-switch {\n margin-left: 16px;\n }\n\n ~ .mdui-checkbox,\n ~ .mdui-radio {\n padding-left: 24px;\n }\n}\n\n/* 密集型列表 */\n.mdui-list-dense {\n padding: 4px 0;\n font-size: 13px;\n\n &>.mdui-divider,\n &>.mdui-divider-light,\n &>.mdui-divider-dark,\n &>.mdui-divider-inset,\n &>.mdui-divider-inset-light,\n &>.mdui-divider-inset-dark {\n margin-top: 4px;\n margin-bottom: 4px;\n }\n\n // 副标题\n .mdui-subheader,\n .mdui-subheader-inset {\n height: 40px;\n margin-top: 4px;\n font-size: 12px;\n line-height: 40px;\n\n &:first-child {\n margin-top: -4px;\n }\n }\n\n // 密集型列表项\n .mdui-list-item {\n min-height: 40px;\n\n &::after {\n height: 40px;\n }\n }\n\n // 图标\n .mdui-list-item-icon {\n width: 20px;\n height: 20px;\n font-size: 20px;\n }\n\n // 头像\n .mdui-list-item-avatar {\n width: 36px;\n min-width: 36px;\n height: 36px;\n min-height: 36px;\n }\n\n // 列表项内容\n .mdui-list-item-content {\n padding-top: 11px;\n padding-bottom: 11px;\n font-size: 13px;\n line-height: 18px;\n }\n .mdui-list-item-text {\n font-size: 13px;\n }\n .mdui-list-item-title {\n ~ .mdui-list-item-text {\n margin-top: 2px;\n }\n }\n\n // 限制文本高度\n .mdui-list-item-one-line {\n height: 18px;\n }\n .mdui-list-item-two-line {\n height: 36px;\n }\n .mdui-list-item-three-line {\n height: 54px;\n }\n}\n\n\n/**\n * =============================================================================\n * ************ List dark ************\n * =============================================================================\n */\n.layout-theme({\n .mdui-list {\n // 副标题的分割线\n .mdui-subheader,\n .mdui-subheader-inset {\n &::before {\n background-color: @color-white-divider;\n }\n\n &:first-child {\n &::before {\n background-color: transparent;\n }\n }\n }\n }\n\n // 列表项\n .mdui-list-item {\n color: @color-white-text;\n\n &:hover {\n background-color: @color-hover-white;\n }\n }\n\n // 列表项图标\n .mdui-list-item-icon {\n color: @color-white-icon;\n }\n\n // 列表内容副内容\n .mdui-list-item-text {\n opacity: @opacity-white-secondary;\n }\n\n // 激活状态的列表项\n .mdui-list-item-active {\n background-color: @color-hover-white;\n }\n});\n\n/**\n * ==============================================================================\n * ************ List inner theme ************\n * ==============================================================================\n */\n[class*=\"mdui-color-\"] {\n .mdui-list-item {\n color: inherit;\n }\n .mdui-list-item-icon {\n color: inherit;\n }\n}\n","/**\n * =============================================================================\n * ************ Drawer 抽屉栏导航 ************\n * =============================================================================\n */\n\n/* DOM 加载完后再添加 transition */\nbody.mdui-loaded {\n transition: padding .3s @animation-curve-linear-out-slow-in;\n}\nbody.mdui-loaded .mdui-drawer {\n transition: all .3s @animation-curve-linear-out-slow-in;\n}\n\n/* 抽屉栏外层,默认出现在左侧且隐藏 */\n.mdui-drawer {\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n z-index: @z-index-drawer;\n box-sizing: border-box;\n\n // 手机端宽度为 100% - 56px,最大为 280px\n /* stylelint-disable-next-line */\n width: calc(~\"100% - 56px\");\n max-width: @drawer-width-xs;\n margin: 0;\n overflow-x: hidden;\n overflow-y: auto;\n white-space: nowrap;\n will-change: transform;\n -webkit-overflow-scrolling: touch;\n\n // 隐藏时不显示阴影\n @media (max-width: @screen-sm-max) {\n &:not(.mdui-drawer-open) {\n box-shadow: none !important;\n }\n }\n\n // 平板端宽度为 100% - 64px,最大为 320px\n @media (min-width: @screen-sm-min) {\n /* stylelint-disable-next-line */\n width: calc(~\"100% - 64px\");\n max-width: @drawer-width-sm;\n }\n\n // 桌面端宽度\n @media (min-width: @screen-md-min) {\n width: @drawer-width-md;\n max-width: none;\n\n // 隐藏时不显示阴影\n &.mdui-drawer-close {\n box-shadow: none !important;\n }\n }\n}\n\n/* 出现在右侧的抽屉栏 */\n.mdui-drawer-right {\n right: 0;\n left: auto;\n}\n\n/* 平板上的样式 */\n@media (max-width: @screen-sm-max) {\n .mdui-drawer {\n /* 始终有背景和阴影 */\n background-color: #fff;\n\n /* 默认隐藏 */\n transform: translateX(-@drawer-width-sm - 10);\n .mdui-shadow(16);\n }\n\n .mdui-drawer-right {\n /* 右侧 drawer 也默认隐藏 */\n transform: translateX(@drawer-width-sm + 10);\n }\n}\n\n/* 手机上的样式 */\n@media (max-width: @screen-xs-max) {\n .mdui-drawer {\n transform: translateX(-@drawer-width-xs - 10);\n }\n\n .mdui-drawer-right {\n transform: translateX(@drawer-width-xs + 10);\n }\n}\n\n/* 强制隐藏抽屉栏 */\n._drawer_close(@drawer-width) {\n .mdui-drawer-close {\n transform: translateX(-@drawer-width - 10);\n &.mdui-drawer-right {\n transform: translateX(@drawer-width + 10);\n }\n }\n}\n\n._drawer_close(@drawer-width-xs);\n\n@media (min-width: @screen-sm-min) {\n ._drawer_close(@drawer-width-sm);\n}\n\n@media (min-width: @screen-md-min) {\n ._drawer_close(@drawer-width-md);\n}\n\n/* 强制显示抽屉栏 */\n.mdui-drawer-open {\n transform: translateX(0) !important;\n}\n\n/* PC 上的样式 */\n@media (min-width: @screen-md-min) {\n /* 使该类所在元素获得 padding-left 或 padding-right,避免被抽屉栏覆盖住页面 */\n .mdui-drawer-body-left {\n padding-left: @drawer-width-md;\n }\n .mdui-drawer-body-right {\n padding-right: @drawer-width-md;\n }\n\n /* PC 上默认有上边距 */\n .mdui-drawer {\n .mdui-appbar-with-toolbar & {\n top: @appbar-height-sm;\n }\n\n .mdui-appbar-with-tab & {\n top: 48px;\n }\n\n .mdui-appbar-with-tab-larger & {\n top: 72px;\n }\n\n .mdui-appbar-with-toolbar.mdui-appbar-with-tab & {\n top: @appbar-height-sm + 48px;\n }\n\n .mdui-appbar-with-toolbar.mdui-appbar-with-tab-larger & {\n top: @appbar-height-sm + 72px;\n }\n }\n}\n\n/* 抽屉栏不是透明时添加阴影 */\n.mdui-drawer[class*=\"mdui-color-\"]:not(.mdui-color-transparent) {\n .mdui-shadow(16);\n}\n\n/* 抽屉栏 100% 高度,覆盖在导航栏上面 */\n.mdui-drawer-full-height {\n top: 0 !important;\n}\n\n\n/**\n * =============================================================================\n * ************ Drawer dark ************\n * =============================================================================\n */\n.layout-theme({\n // 手机平板上的样式\n @media (max-width: @screen-sm-max) {\n .mdui-drawer {\n background-color: @layout-dark-color-4;\n }\n }\n});\n","/**\n * =============================================================================\n * ************ Dialog 提示框 ************\n * =============================================================================\n */\n\n@import '../button/index';\n\n.mdui-dialog {\n position: fixed;\n right: 0;\n left: 0;\n z-index: @z-index-dialog;\n display: none;\n box-sizing: border-box;\n width: 92%;\n min-width: 180px;\n max-width: 728px;\n max-height: 90%;\n margin: auto;\n overflow: hidden;\n color: #000;\n background-color: #fff;\n border-radius: 2px;\n transform: scale(0.95);\n opacity: 0;\n transition-duration: .3s;\n transition-property: transform, opacity, visibility;\n will-change: top, opacity, transform;\n\n @media (min-width: @screen-sm-min) {\n width: 85%;\n max-height: 85%;\n }\n @media (min-width: @screen-md-min) {\n width: 80%;\n max-height: 80%;\n }\n\n .mdui-shadow(24);\n}\n\n/* 打开提示框 */\n.mdui-dialog-open {\n transform: scale(1);\n opacity: 1;\n}\n\n/* 提示框标题 */\n.mdui-dialog-title {\n box-sizing: border-box;\n font-weight: 500;\n font-size: 20px;\n line-height: 24px;\n text-align: left;\n}\n\n/* 标题固定在顶部 */\n.mdui-dialog>.mdui-dialog-title {\n padding: 24px 24px 20px 24px;\n}\n\n/* 提示框内容 */\n.mdui-dialog-content {\n box-sizing: border-box;\n padding: 24px;\n overflow-y: auto;\n color: rgba(0, 0, 0, 0.7);\n font-size: 15px;\n line-height: 1.5;\n -webkit-overflow-scrolling: touch;\n}\n\n/* 标题随内容滚动 */\n.mdui-dialog-content>.mdui-dialog-title {\n padding-bottom: 20px;\n}\n\n.mdui-dialog-title + .mdui-dialog-content {\n padding-top: 0;\n}\n\n/* 提示框底部按钮 */\n.mdui-dialog-actions {\n box-sizing: border-box;\n padding: 8px;\n text-align: right;\n .mdui-btn {\n min-width: 64px;\n margin-left: 8px;\n .mdui-text-color(@color-accent-default-name);\n &:first-child {\n margin-left: 0;\n }\n }\n}\n\n/* 底部按钮滚随内容动 */\n.mdui-dialog-content>.mdui-dialog-actions {\n margin: 0 -24px -24px -24px;\n padding-top: 32px;\n}\n\n/* 使提示框底部按钮竖排 */\n.mdui-dialog-actions-stacked {\n padding: 8px 0 8px 0;\n .mdui-btn {\n width: 100%;\n height: 48px;\n margin: 0;\n line-height: 48px !important;\n text-align: right;\n border-radius: 0;\n }\n}\n\n\n/**\n * =============================================================================\n * ************ Dialog 强调色 ************\n * =============================================================================\n */\n& {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n @colorName: extract(@globalAccentColors, @counter-color);\n\n .mdui-theme-accent-@{colorName} when not (@colorName = null) {\n .mdui-dialog-actions {\n .mdui-btn {\n .mdui-text-color(@colorName);\n }\n }\n }\n\n }\n .loop-accent-theme(length(@globalAccentColors));\n}\n\n\n/**\n * =============================================================================\n * ************ Dialog dark ************\n * =============================================================================\n */\n.layout-theme({\n .mdui-dialog {\n color: #fff;\n background-color: @layout-dark-color-4;\n }\n .mdui-dialog-content {\n color: rgba(255, 255, 255, 0.7);\n }\n});\n","/**\n * =============================================================================\n * ************ Dialog alert ************\n * =============================================================================\n */\n\n @import './index';\n\n.mdui-dialog-alert {\n max-width: 448px;\n}\n","/**\n * =============================================================================\n * ************ Dialog confirm ************\n * =============================================================================\n */\n\n @import './index';\n\n.mdui-dialog-confirm {\n max-width: 448px;\n}\n","/**\n * =============================================================================\n * ************ Dialog prompt ************\n * =============================================================================\n */\n\n@import '../textfield/index';\n@import './index';\n\n.mdui-dialog-prompt {\n max-width: 448px;\n\n .mdui-textfield {\n padding-top: 0;\n }\n}\n","/**\n * =============================================================================\n * ************ Tooltip 工具提示 ************\n * =============================================================================\n */\n\n.mdui-tooltip {\n position: absolute;\n z-index: @z-index-tooltip;\n display: inline-block;\n box-sizing: border-box;\n max-width: 180px;\n min-height: 32px;\n padding: 8px 16px;\n color: #fff;\n font-weight: 500;\n\n // 移动端样式\n font-size: 14px;\n line-height: 22px;\n text-align: left;\n background-color: rgba(red(@color-grey-700), green(@color-grey-700), blue(@color-grey-700), 0.9);\n border-radius: 2px;\n transform: scale(0);\n opacity: 0;\n transition-timing-function: @animation-curve-default;\n transition-duration: 0.15s;\n transition-property: opacity, transform;\n will-change: opacity, transform;\n\n // 桌面端样式\n @media (min-width: @screen-md-min) {\n max-width: 200px;\n min-height: 24px;\n padding: 4px 8px;\n font-size: 12px;\n line-height: 18px;\n }\n}\n\n/* 显示工具提示 */\n.mdui-tooltip-open {\n transform: scale(1);\n opacity: 1;\n}","/**\n * =============================================================================\n * ************ Snackbar ************\n * =============================================================================\n */\n\n@import '../button/index';\n\n.mdui-snackbar {\n position: fixed;\n z-index: @z-index-snackbar;\n display: flex;\n align-items: center;\n justify-content: space-between;\n box-sizing: border-box;\n\n // 手机端的样式\n width: 100%;\n min-height: 48px;\n padding: 0 24px 0 24px;\n color: #fff;\n font-size: 14px;\n line-height: 20px;\n background-color: #323232;\n will-change: transform;\n\n // 平板、桌面端样式\n @media (min-width: @screen-sm-min) {\n width: auto;\n min-width: 288px;\n max-width: 568px;\n border-radius: 2px;\n }\n}\n\n.mdui-snackbar-bottom,\n.mdui-snackbar-top,\n.mdui-snackbar-left-top,\n.mdui-snackbar-left-bottom,\n.mdui-snackbar-right-top,\n.mdui-snackbar-right-bottom {\n transition: transform .3s @animation-curve-default;\n}\n\n/* 位置 */\n.mdui-snackbar-bottom,\n.mdui-snackbar-left-bottom,\n.mdui-snackbar-right-bottom {\n bottom: 0;\n}\n\n.mdui-snackbar-top,\n.mdui-snackbar-left-top,\n.mdui-snackbar-right-top {\n top: 0;\n}\n\n.mdui-snackbar-top,\n.mdui-snackbar-bottom {\n left: 50%;\n}\n\n// 平板、桌面端位置\n@media (min-width: @screen-sm-min) {\n .mdui-snackbar-left-top {\n top: 24px;\n left: 24px;\n }\n\n .mdui-snackbar-left-bottom {\n bottom: 24px;\n left: 24px;\n }\n\n .mdui-snackbar-right-top {\n top: 24px;\n right: 24px;\n }\n\n .mdui-snackbar-right-bottom {\n right: 24px;\n bottom: 24px;\n }\n}\n\n/* 文本 */\n.mdui-snackbar-text {\n position: relative;\n max-width: 100%;\n padding: 14px 0 14px 0;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* 按钮 */\n.mdui-snackbar-action {\n margin-right: -16px;\n white-space: nowrap;\n .mdui-text-color(@color-accent-default-name, a100);\n}\n\n\n/**\n * =============================================================================\n * ************ Snackbar 强调色 ************\n * =============================================================================\n */\n& {\n .loop-accent-theme(@counter-color) when (@counter-color > 0) {\n .loop-accent-theme((@counter-color - 1));\n @colorName: extract(@globalAccentColors, @counter-color);\n\n .mdui-theme-accent-@{colorName} when not (@colorName = null) {\n .mdui-snackbar-action {\n .mdui-text-color(@colorName, a100);\n }\n }\n\n }\n .loop-accent-theme(length(@globalAccentColors));\n}\n\n\n/**\n * =============================================================================\n * ************ Snackbar dark ************\n * =============================================================================\n */\n.layout-theme({\n .mdui-snackbar {\n background-color: #5d5d5d;\n }\n});\n","/**\n * =============================================================================\n * ************ Chip 纸片 ************\n * =============================================================================\n */\n\n@chip-height: 32px;\n\n.mdui-chip {\n display: inline-block;\n box-sizing: border-box;\n height: @chip-height;\n margin: 2px 0;\n color: inherit;\n white-space: nowrap;\n background-color: #e0e0e0;\n border-radius: @chip-height / 2;\n cursor: pointer;\n user-select: none;\n .mdui-hoverable(2);\n\n &:active {\n background-color: #d6d6d6;\n }\n}\n\n/* 左侧的图标 */\n.mdui-chip-icon {\n position: relative;\n display: inline-block;\n width: @chip-height;\n height: @chip-height;\n margin-right: -4px;\n overflow: hidden;\n color: #fff;\n font-size: 18px;\n line-height: @chip-height;\n text-align: center;\n vertical-align: middle;\n background-color: #989898;\n border-radius: 50%;\n\n .mdui-icon {\n position: absolute;\n top: 4px;\n left: 4px;\n color: #fff;\n }\n}\n\n/* 文本 */\n.mdui-chip-title {\n display: inline-block;\n height: @chip-height;\n padding-right: 12px;\n padding-left: 12px;\n font-size: 14px;\n line-height: @chip-height;\n vertical-align: middle;\n}\n\n/* 删除按钮 */\n.mdui-chip-delete {\n display: inline-block;\n width: 24px;\n height: 24px;\n margin-right: 4px;\n margin-left: -8px;\n overflow: hidden;\n text-align: center;\n text-decoration: none;\n vertical-align: middle;\n border-radius: 50%;\n cursor: pointer;\n opacity: .54;\n transition: opacity .25s @animation-curve-default;\n will-change: opacity;\n &:hover,\n &:focus {\n opacity: .87;\n }\n}\n\n\n/**\n * =============================================================================\n * ************ Chip dark ************\n * =============================================================================\n */\n.layout-theme({\n .mdui-chip {\n background-color: #484848;\n &:active {\n background-color: #5d5d5d;\n }\n }\n});\n","/**\n * =============================================================================\n * ************ Bottom navigation 底部导航栏 ************\n * =============================================================================\n */\n\n@import '../headroom/index';\n\n.mdui-bottom-nav {\n position: relative;\n display: flex;\n height: 56px;\n margin: 0 auto;\n padding: 0;\n overflow: hidden;\n white-space: nowrap;\n\n @media (min-width: @screen-sm-min) {\n &::before {\n flex-grow: 1;\n content: ' ';\n }\n &::after {\n flex-grow: 1;\n content: ' ';\n }\n }\n\n a {\n display: flex;\n flex: 1;\n\n // 使图标和文本垂直排列\n flex-direction: column;\n align-items: center;\n justify-content: center;\n min-width: 32px;\n max-width: none;\n padding: 8px 12px 10px 12px;\n overflow: hidden;\n color: inherit;\n font-size: 12px;\n text-align: center;\n text-decoration: none;\n text-overflow: ellipsis;\n cursor: pointer;\n opacity: 0.7;\n transition: all .2s @animation-curve-default ;\n user-select: none;\n will-change: padding;\n\n @media (min-width: @screen-sm-min) {\n max-width: 144px;\n }\n\n .mdui-icon {\n opacity: 0.7;\n }\n\n label {;\n display: block;\n width: 100%;\n cursor: pointer;\n transition: transform .2s @animation-curve-default ;\n will-change: font-size;\n }\n\n .mdui-icon + label {\n margin-top: 6px;\n }\n\n // 激活状态的导航项\n &.mdui-bottom-nav-active {\n color: @color-default-500;\n font-size: 14px;\n opacity: 1;\n\n .mdui-icon {\n opacity: 1;\n }\n }\n }\n}\n\n/* 只在激活时显示文本 */\n&.mdui-bottom-nav-text-auto {\n a {\n min-width: 32px;\n padding-right: 0;\n padding-left: 0;\n @media (min-width: @screen-sm-min) {\n max-width: 156px;\n }\n .mdui-icon {\n padding-top: 16px;\n transition: padding-top .2s @animation-curve-default;\n will-change: padding-top;\n }\n label {\n transform: scale(0);\n }\n\n &.mdui-bottom-nav-active {\n padding-right: 18px;\n padding-left: 18px;\n .mdui-icon {\n padding-top: 0;\n }\n label {\n transform: scale(1);\n }\n }\n }\n}\n\n/* 固定到页面底部 */\n.mdui-bottom-nav-fixed {\n .mdui-bottom-nav {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n }\n\n padding-bottom: 56px;\n}\n\n/**\n * =============================================================================\n * ************ Bottom Nav 主色 ************\n * =============================================================================\n */\n\n& {\n .loop-primary-theme(@counter-color) when (@counter-color > 0) {\n .loop-primary-theme((@counter-color - 1));\n @colorName: extract(@globalPrimaryColors, @counter-color);\n @color: 'color-@{colorName}-500';\n\n .mdui-theme-primary-@{colorName} when not (@colorName = null) {\n .mdui-bottom-nav a.mdui-bottom-nav-active {\n color: @@color;\n }\n }\n\n }\n .loop-primary-theme(length(@globalPrimaryColors));\n}\n\n/* 带背景色的底部导航栏 */\n.mdui-bottom-nav[class*=\"mdui-color-\"] {\n .mdui-bottom-nav-active {\n color: inherit !important;\n }\n}\n","/**\n * =============================================================================\n * ************ Progress Linear 线性进度条 ************\n * =============================================================================\n */\n\n/* 线性进度条 */\n.mdui-progress {\n position: relative;\n display: block;\n width: 100%;\n height: 4px;\n overflow: hidden;\n background-color: rgba(red(@color-default-500), green(@color-default-500), blue(@color-default-500), .2);\n border-radius: 2px;\n}\n\n/* 确定进度的线性进度条 */\n.mdui-progress-determinate {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n background-color: @color-default-500;\n transition: width .3s linear;\n}\n\n/* 不确定进度的线性进度条 */\n.mdui-progress-indeterminate {\n background-color: @color-default-500;\n\n &::before {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n background-color: inherit;\n animation: mdui-progress-indeterminate 2s linear infinite;\n content: ' ';\n will-change: left, width;\n }\n\n &::after {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n background-color: inherit;\n animation: mdui-progress-indeterminate-short 2s linear infinite;\n content: ' ';\n will-change: left, width;\n }\n}\n\n@keyframes mdui-progress-indeterminate {\n 0% {\n left: 0;\n width: 0;\n }\n 50% {\n left: 30%;\n width: 70%;\n }\n 75% {\n left: 100%;\n width: 0;\n }\n}\n\n@keyframes mdui-progress-indeterminate-short {\n 0% {\n left: 0;\n width: 0;\n }\n 50% {\n left: 0;\n width: 0;\n }\n 75% {\n left: 0;\n width: 25%;\n }\n 100% {\n left: 100%;\n width: 0;\n }\n}\n\n\n/**\n * =============================================================================\n * ************ Progress linear 主色 ************\n * =============================================================================\n */\n& {\n .loop-primary-theme(@counter-color) when (@counter-color > 0) {\n .loop-primary-theme((@counter-color - 1));\n @colorName: extract(@globalPrimaryColors, @counter-color);\n @color: 'color-@{colorName}-500';\n\n .mdui-theme-primary-@{colorName} when not (@colorName = null) {\n .mdui-progress {\n background-color: rgba(red(@@color), green(@@color), blue(@@color), .2);\n }\n .mdui-progress-determinate,\n .mdui-progress-indeterminate {\n .mdui-background-color(@colorName);\n }\n }\n\n }\n .loop-primary-theme(length(@globalPrimaryColors));\n}\n","/**\n * =============================================================================\n * ************ Progress Circular 圆形进度条 ************\n * =============================================================================\n */\n\n.mdui-spinner {\n position: relative;\n display: inline-block;\n width: 28px;\n height: 28px;\n animation: mdui-spinner 1568ms linear infinite;\n}\n\n@keyframes mdui-spinner {\n to {\n transform: rotate(360deg);\n }\n}\n\n.mdui-spinner-layer {\n position: absolute;\n width: 100%;\n height: 100%;\n border-color: @color-default-500;\n opacity: 0;\n opacity: 1;\n animation: mdui-spinner-layer-fill-unfill-rotate 5332ms @animation-curve-default infinite both;\n}\n\n.mdui-spinner-layer-1 {\n border-color: @color-blue-400 !important;\n animation:\n mdui-spinner-layer-fill-unfill-rotate 5332ms @animation-curve-default infinite both,\n mdui-spinner-layer-1-fade-in-out 5332ms @animation-curve-default infinite both;\n}\n\n.mdui-spinner-layer-2 {\n border-color: @color-red-500 !important;\n animation:\n mdui-spinner-layer-fill-unfill-rotate 5332ms @animation-curve-default infinite both,\n mdui-spinner-layer-2-fade-in-out 5332ms @animation-curve-default infinite both;\n}\n\n.mdui-spinner-layer-3 {\n border-color: @color-yellow-600 !important;\n animation:\n mdui-spinner-layer-fill-unfill-rotate 5332ms @animation-curve-default infinite both,\n mdui-spinner-layer-3-fade-in-out 5332ms @animation-curve-default infinite both;\n}\n\n.mdui-spinner-layer-4 {\n border-color: @color-green-500 !important;\n animation:\n mdui-spinner-layer-fill-unfill-rotate 5332ms @animation-curve-default infinite both,\n mdui-spinner-layer-4-fade-in-out 5332ms @animation-curve-default infinite both;\n}\n\n@keyframes mdui-spinner-layer-fill-unfill-rotate {\n 12.5% { transform: rotate(135deg); }\n 25% { transform: rotate(270deg); }\n 37.5% { transform: rotate(405deg); }\n 50% { transform: rotate(540deg); }\n 62.5% { transform: rotate(675deg); }\n 75% { transform: rotate(810deg); }\n 87.5% { transform: rotate(945deg); }\n to { transform: rotate(1080deg); }\n}\n\n@keyframes mdui-spinner-layer-1-fade-in-out {\n from { opacity: 1; }\n 25% { opacity: 1; }\n 26% { opacity: 0; }\n 89% { opacity: 0; }\n 90% { opacity: 1; }\n 100% { opacity: 1; }\n}\n\n@keyframes mdui-spinner-layer-2-fade-in-out {\n from { opacity: 0; }\n 15% { opacity: 0; }\n 25% { opacity: 1; }\n 50% { opacity: 1; }\n 51% { opacity: 0; }\n}\n\n@keyframes mdui-spinner-layer-3-fade-in-out {\n from { opacity: 0; }\n 40% { opacity: 0; }\n 50% { opacity: 1; }\n 75% { opacity: 1; }\n 76% { opacity: 0; }\n}\n\n@keyframes mdui-spinner-layer-4-fade-in-out {\n from { opacity: 0; }\n 65% { opacity: 0; }\n 75% { opacity: 1; }\n 90% { opacity: 1; }\n 100% { opacity: 0; }\n}\n\n.mdui-spinner-gap-patch {\n position: absolute;\n top: 0;\n left: 45%;\n width: 10%;\n height: 100%;\n overflow: hidden;\n border-color: inherit;\n\n .mdui-spinner-circle {\n left: -450%;\n box-sizing: border-box;\n width: 1000%;\n }\n}\n\n.mdui-spinner-circle-clipper {\n position: relative;\n display: inline-block;\n width: 50%;\n height: 100%;\n overflow: hidden;\n border-color: inherit;\n\n .mdui-spinner-circle {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n box-sizing: border-box;\n width: 200%;\n height: 100%;\n border-color: inherit;\n border-style: solid;\n border-width: 3px;\n border-bottom-color: transparent !important;\n border-radius: 50%;\n animation: none;\n }\n\n &.mdui-spinner-left {\n float: left;\n\n .mdui-spinner-circle {\n left: 0;\n border-right-color: transparent !important;\n transform: rotate(129deg);\n animation: mdui-spinner-left-spin 1333ms @animation-curve-default infinite both;\n }\n }\n\n &.mdui-spinner-right {\n float: right;\n\n .mdui-spinner-circle {\n left: -100%;\n border-left-color: transparent !important;\n transform: rotate(-129deg);\n animation: mdui-spinner-right-spin 1333ms @animation-curve-default infinite both;\n }\n }\n}\n\n@keyframes mdui-spinner-left-spin {\n from { transform: rotate(130deg); }\n 50% { transform: rotate(-5deg); }\n to { transform: rotate(130deg); }\n}\n\n@keyframes mdui-spinner-right-spin {\n from { transform: rotate(-130deg); }\n 50% { transform: rotate(5deg); }\n to { transform: rotate(-130deg); }\n}\n\n\n/**\n * =============================================================================\n * ************ Spinner linear 主色 ************\n * =============================================================================\n */\n& {\n .loop-primary-theme(@counter-color) when (@counter-color > 0) {\n .loop-primary-theme((@counter-color - 1));\n @colorName: extract(@globalPrimaryColors, @counter-color);\n @color: 'color-@{colorName}-500';\n\n .mdui-theme-primary-@{colorName} when not (@colorName = null) {\n .mdui-spinner-layer {\n border-color: @@color;\n }\n }\n\n }\n .loop-primary-theme(length(@globalPrimaryColors));\n}\n","/**\n * =============================================================================\n * ************ Menu 菜单 ************\n * =============================================================================\n */\n\n// 普通菜单宽度基数\n@menu-simple-x: 56px;\n\n// 级联菜单宽度基数\n@menu-cascade-x: 64px;\n\n/* 菜单 */\n.mdui-menu {\n position: fixed;\n z-index: 99999;\n display: block;\n box-sizing: border-box;\n width: @menu-simple-x * 3;\n margin: 0;\n padding: 8px 0;\n\n // 简单菜单高度超出窗口高度时,使菜单边框和窗口保持一定距离,菜单内出现滚动条\n overflow-y: auto;\n color: @color-black-text;\n font-size: 16px;\n list-style: none;\n background-color: #fff;\n border-radius: 2px;\n transform: scale(0);\n visibility: hidden;\n opacity: 0;\n transition-timing-function: @animation-curve-linear-out-slow-in;\n transition-duration: .3s;\n transition-property: transform, opacity, visibility;\n will-change: transform, opacity, visibility;\n -webkit-overflow-scrolling: touch;\n .mdui-shadow(8);\n\n // 菜单中的分隔线,默认上下有 8px 的外边距\n .mdui-divider {\n margin-top: 8px;\n margin-bottom: 8px;\n }\n}\n\n/* 打开状态的菜单 */\n.mdui-menu-open {\n transform: scale(1);\n visibility: visible;\n opacity: 1;\n}\n\n/* 关闭中的菜单 */\n.mdui-menu-closing {\n transform: scale(1);\n visibility: visible;\n opacity: 0;\n}\n\n/* 菜单项 */\n.mdui-menu-item {\n position: relative;\n\n &>a {\n position: relative;\n display: block;\n height: 48px;\n padding: 0 16px;\n color: inherit;\n line-height: 48px;\n text-decoration: none;\n user-select: none;\n .mdui-text-truncate();\n\n &:hover {\n background-color: @color-grey-200;\n }\n }\n\n // 子菜单默认隐藏,阴影更深\n &>.mdui-menu {\n position: absolute;\n .mdui-shadow(9);\n }\n\n // 禁用的菜单条目\n &[disabled] {\n &>a {\n color: @color-black-disabled !important;\n cursor: default;\n\n &:hover {\n background-color: inherit !important;\n }\n\n .mdui-icon {\n color: @color-black-icon-disabled;\n }\n }\n }\n}\n\n/* 激活状态的菜单项 */\n.mdui-menu-item-active {\n background-color: @color-grey-200;\n}\n\n/* 菜单中的图标 */\n.mdui-menu-item-icon {\n display: inline-block;\n box-sizing: border-box;\n width: 40px;\n padding-right: 16px;\n color: @color-black-icon;\n}\n\n/* 菜单中的辅助文本或图标 */\n.mdui-menu-item-helper {\n float: right;\n}\n\n/* 有子菜单的条目的图标 */\n.mdui-menu-item-more {\n float: right;\n width: 24px;\n height: 24px;\n margin: 4px 0;\n //background-image: data-uri('image/svg+xml', './components/menu/svg/arrow_right_dark.svg');\n // https://www.zhangxinxu.com/sp/svgo/ CSS 转义\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M9.5 17.5l5-5-5-5z' opacity='.54'/%3E%3C/svg%3E\");\n}\n\n\n/* 级联菜单 */\n.mdui-menu-cascade {\n width: @menu-cascade-x * 5;\n padding: 16px 0;\n\n // 级联菜单内部不出现滚动条\n overflow: visible;\n font-size: 15px;\n\n &>.mdui-menu-item {\n &>a {\n height: 32px;\n padding: 0 24px;\n line-height: 32px;\n }\n }\n}\n\n\n/**\n * =============================================================================\n * ************ Menu dark ************\n * =============================================================================\n */\n.layout-theme({\n .mdui-menu {\n color: #fff;\n background-color: @layout-dark-color-4;\n }\n\n .mdui-menu-item {\n &>a {\n &:hover {\n background-color: @color-grey-700;\n }\n }\n\n &[disabled] {\n &>a {\n color: @color-white-disabled !important;\n\n .mdui-icon {\n color: @color-white-icon-disabled;\n }\n }\n }\n }\n\n .mdui-menu-item-active {\n background-color: @color-grey-700;\n }\n\n .mdui-menu-item-icon {\n color: @color-white-icon;\n }\n\n .mdui-menu-item-more {\n //background-image: data-uri('image/svg+xml', './components/menu/svg/arrow_right_light.svg');\n background-image: url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M9.5 17.5l5-5-5-5z' fill='%23FFF'/%3E%3C/svg%3E\");\n }\n});\n"]} \ No newline at end of file diff --git a/static/mdui/fonts/roboto/LICENSE.txt b/static/mdui/fonts/roboto/LICENSE.txt new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/static/mdui/fonts/roboto/LICENSE.txt @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/static/mdui/fonts/roboto/Roboto-Black.woff b/static/mdui/fonts/roboto/Roboto-Black.woff new file mode 100644 index 0000000..9b72779 Binary files /dev/null and b/static/mdui/fonts/roboto/Roboto-Black.woff differ diff --git a/static/mdui/fonts/roboto/Roboto-Black.woff2 b/static/mdui/fonts/roboto/Roboto-Black.woff2 new file mode 100644 index 0000000..9559f02 Binary files /dev/null and b/static/mdui/fonts/roboto/Roboto-Black.woff2 differ diff --git a/static/mdui/fonts/roboto/Roboto-BlackItalic.woff b/static/mdui/fonts/roboto/Roboto-BlackItalic.woff new file mode 100644 index 0000000..609bdf4 Binary files /dev/null and b/static/mdui/fonts/roboto/Roboto-BlackItalic.woff differ diff --git a/static/mdui/fonts/roboto/Roboto-BlackItalic.woff2 b/static/mdui/fonts/roboto/Roboto-BlackItalic.woff2 new file mode 100644 index 0000000..5cb417b Binary files /dev/null and b/static/mdui/fonts/roboto/Roboto-BlackItalic.woff2 differ diff --git a/static/mdui/fonts/roboto/Roboto-Bold.woff b/static/mdui/fonts/roboto/Roboto-Bold.woff new file mode 100644 index 0000000..93a1d5a Binary files /dev/null and b/static/mdui/fonts/roboto/Roboto-Bold.woff differ diff --git a/static/mdui/fonts/roboto/Roboto-Bold.woff2 b/static/mdui/fonts/roboto/Roboto-Bold.woff2 new file mode 100644 index 0000000..715ac19 Binary files /dev/null and b/static/mdui/fonts/roboto/Roboto-Bold.woff2 differ diff --git a/static/mdui/fonts/roboto/Roboto-BoldItalic.woff b/static/mdui/fonts/roboto/Roboto-BoldItalic.woff new file mode 100644 index 0000000..f1d7598 Binary files /dev/null and b/static/mdui/fonts/roboto/Roboto-BoldItalic.woff differ diff --git a/static/mdui/fonts/roboto/Roboto-BoldItalic.woff2 b/static/mdui/fonts/roboto/Roboto-BoldItalic.woff2 new file mode 100644 index 0000000..c91e0f8 Binary files /dev/null and b/static/mdui/fonts/roboto/Roboto-BoldItalic.woff2 differ diff --git a/static/mdui/fonts/roboto/Roboto-Light.woff b/static/mdui/fonts/roboto/Roboto-Light.woff new file mode 100644 index 0000000..404afba Binary files /dev/null and b/static/mdui/fonts/roboto/Roboto-Light.woff differ diff --git a/static/mdui/fonts/roboto/Roboto-Light.woff2 b/static/mdui/fonts/roboto/Roboto-Light.woff2 new file mode 100644 index 0000000..5f26201 Binary files /dev/null and b/static/mdui/fonts/roboto/Roboto-Light.woff2 differ diff --git a/static/mdui/fonts/roboto/Roboto-LightItalic.woff b/static/mdui/fonts/roboto/Roboto-LightItalic.woff new file mode 100644 index 0000000..07117c5 Binary files /dev/null and b/static/mdui/fonts/roboto/Roboto-LightItalic.woff differ diff --git a/static/mdui/fonts/roboto/Roboto-LightItalic.woff2 b/static/mdui/fonts/roboto/Roboto-LightItalic.woff2 new file mode 100644 index 0000000..5fa7eed Binary files /dev/null and b/static/mdui/fonts/roboto/Roboto-LightItalic.woff2 differ diff --git a/static/mdui/fonts/roboto/Roboto-Medium.woff b/static/mdui/fonts/roboto/Roboto-Medium.woff new file mode 100644 index 0000000..b18e6b8 Binary files /dev/null and b/static/mdui/fonts/roboto/Roboto-Medium.woff differ diff --git a/static/mdui/fonts/roboto/Roboto-Medium.woff2 b/static/mdui/fonts/roboto/Roboto-Medium.woff2 new file mode 100644 index 0000000..f9f6913 Binary files /dev/null and b/static/mdui/fonts/roboto/Roboto-Medium.woff2 differ diff --git a/static/mdui/fonts/roboto/Roboto-MediumItalic.woff b/static/mdui/fonts/roboto/Roboto-MediumItalic.woff new file mode 100644 index 0000000..2be7d89 Binary files /dev/null and b/static/mdui/fonts/roboto/Roboto-MediumItalic.woff differ diff --git a/static/mdui/fonts/roboto/Roboto-MediumItalic.woff2 b/static/mdui/fonts/roboto/Roboto-MediumItalic.woff2 new file mode 100644 index 0000000..9b7b828 Binary files /dev/null and b/static/mdui/fonts/roboto/Roboto-MediumItalic.woff2 differ diff --git a/static/mdui/fonts/roboto/Roboto-Regular.woff b/static/mdui/fonts/roboto/Roboto-Regular.woff new file mode 100644 index 0000000..2f53e7c Binary files /dev/null and b/static/mdui/fonts/roboto/Roboto-Regular.woff differ diff --git a/static/mdui/fonts/roboto/Roboto-Regular.woff2 b/static/mdui/fonts/roboto/Roboto-Regular.woff2 new file mode 100644 index 0000000..1d1539e Binary files /dev/null and b/static/mdui/fonts/roboto/Roboto-Regular.woff2 differ diff --git a/static/mdui/fonts/roboto/Roboto-RegularItalic.woff b/static/mdui/fonts/roboto/Roboto-RegularItalic.woff new file mode 100644 index 0000000..60f95dd Binary files /dev/null and b/static/mdui/fonts/roboto/Roboto-RegularItalic.woff differ diff --git a/static/mdui/fonts/roboto/Roboto-RegularItalic.woff2 b/static/mdui/fonts/roboto/Roboto-RegularItalic.woff2 new file mode 100644 index 0000000..75495c3 Binary files /dev/null and b/static/mdui/fonts/roboto/Roboto-RegularItalic.woff2 differ diff --git a/static/mdui/fonts/roboto/Roboto-Thin.woff b/static/mdui/fonts/roboto/Roboto-Thin.woff new file mode 100644 index 0000000..e115692 Binary files /dev/null and b/static/mdui/fonts/roboto/Roboto-Thin.woff differ diff --git a/static/mdui/fonts/roboto/Roboto-Thin.woff2 b/static/mdui/fonts/roboto/Roboto-Thin.woff2 new file mode 100644 index 0000000..a26400d Binary files /dev/null and b/static/mdui/fonts/roboto/Roboto-Thin.woff2 differ diff --git a/static/mdui/fonts/roboto/Roboto-ThinItalic.woff b/static/mdui/fonts/roboto/Roboto-ThinItalic.woff new file mode 100644 index 0000000..eab0271 Binary files /dev/null and b/static/mdui/fonts/roboto/Roboto-ThinItalic.woff differ diff --git a/static/mdui/fonts/roboto/Roboto-ThinItalic.woff2 b/static/mdui/fonts/roboto/Roboto-ThinItalic.woff2 new file mode 100644 index 0000000..f00aafc Binary files /dev/null and b/static/mdui/fonts/roboto/Roboto-ThinItalic.woff2 differ diff --git a/static/mdui/icons/material-icons/LICENSE.txt b/static/mdui/icons/material-icons/LICENSE.txt new file mode 100644 index 0000000..dc8853a --- /dev/null +++ b/static/mdui/icons/material-icons/LICENSE.txt @@ -0,0 +1,393 @@ +Attribution 4.0 International + +======================================================================= + +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More_considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees + +======================================================================= + +Creative Commons Attribution 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution 4.0 International Public License ("Public License"). To the +extent this Public License may be interpreted as a contract, You are +granted the Licensed Rights in consideration of Your acceptance of +these terms and conditions, and the Licensor grants You such rights in +consideration of benefits the Licensor receives from making the +Licensed Material available under these terms and conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + + c. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + + d. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + + e. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + + f. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + + g. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + + h. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + + i. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + + j. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + + k. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + + +Section 2 -- Scope. + + a. License grant. + + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + + a. reproduce and Share the Licensed Material, in whole or + in part; and + + b. produce, reproduce, and Share Adapted Material. + + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + + 3. Term. The term of this Public License is specified in Section + 6(a). + + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + + 5. Downstream recipients. + + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + + b. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + + b. Other rights. + + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this + Public License. + + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties. + + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material (including in modified + form), You must: + + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of + warranties; + + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + + 4. If You Share Adapted Material You produce, the Adapter's + License You apply must not prevent recipients of the Adapted + Material from complying with this Public License. + + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database; + + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material; and + + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. + + +======================================================================= + +Creative Commons is not a party to its public licenses. +Notwithstanding, Creative Commons may elect to apply one of its public +licenses to material it publishes and in those instances will be +considered the "Licensor." Except for the limited purpose of indicating +that material is shared under a Creative Commons public license or as +otherwise permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the +use of the trademark "Creative Commons" or any other trademark or logo +of Creative Commons without its prior written consent including, +without limitation, in connection with any unauthorized modifications +to any of its public licenses or any other arrangements, +understandings, or agreements concerning use of licensed material. For +the avoidance of doubt, this paragraph does not form part of the public +licenses. + +Creative Commons may be contacted at creativecommons.org. diff --git a/static/mdui/icons/material-icons/MaterialIcons-Regular.ijmap b/static/mdui/icons/material-icons/MaterialIcons-Regular.ijmap new file mode 100644 index 0000000..d9f1d25 --- /dev/null +++ b/static/mdui/icons/material-icons/MaterialIcons-Regular.ijmap @@ -0,0 +1 @@ +{"icons":{"e84d":{"name":"3d Rotation"},"eb3b":{"name":"Ac Unit"},"e190":{"name":"Access Alarm"},"e191":{"name":"Access Alarms"},"e192":{"name":"Access Time"},"e84e":{"name":"Accessibility"},"e914":{"name":"Accessible"},"e84f":{"name":"Account Balance"},"e850":{"name":"Account Balance Wallet"},"e851":{"name":"Account Box"},"e853":{"name":"Account Circle"},"e60e":{"name":"Adb"},"e145":{"name":"Add"},"e439":{"name":"Add A Photo"},"e193":{"name":"Add Alarm"},"e003":{"name":"Add Alert"},"e146":{"name":"Add Box"},"e147":{"name":"Add Circle"},"e148":{"name":"Add Circle Outline"},"e567":{"name":"Add Location"},"e854":{"name":"Add Shopping Cart"},"e39d":{"name":"Add To Photos"},"e05c":{"name":"Add To Queue"},"e39e":{"name":"Adjust"},"e630":{"name":"Airline Seat Flat"},"e631":{"name":"Airline Seat Flat Angled"},"e632":{"name":"Airline Seat Individual Suite"},"e633":{"name":"Airline Seat Legroom Extra"},"e634":{"name":"Airline Seat Legroom Normal"},"e635":{"name":"Airline Seat Legroom Reduced"},"e636":{"name":"Airline Seat Recline Extra"},"e637":{"name":"Airline Seat Recline Normal"},"e195":{"name":"Airplanemode Active"},"e194":{"name":"Airplanemode Inactive"},"e055":{"name":"Airplay"},"eb3c":{"name":"Airport Shuttle"},"e855":{"name":"Alarm"},"e856":{"name":"Alarm Add"},"e857":{"name":"Alarm Off"},"e858":{"name":"Alarm On"},"e019":{"name":"Album"},"eb3d":{"name":"All Inclusive"},"e90b":{"name":"All Out"},"e859":{"name":"Android"},"e85a":{"name":"Announcement"},"e5c3":{"name":"Apps"},"e149":{"name":"Archive"},"e5c4":{"name":"Arrow Back"},"e5db":{"name":"Arrow Downward"},"e5c5":{"name":"Arrow Drop Down"},"e5c6":{"name":"Arrow Drop Down Circle"},"e5c7":{"name":"Arrow Drop Up"},"e5c8":{"name":"Arrow Forward"},"e5d8":{"name":"Arrow Upward"},"e060":{"name":"Art Track"},"e85b":{"name":"Aspect Ratio"},"e85c":{"name":"Assessment"},"e85d":{"name":"Assignment"},"e85e":{"name":"Assignment Ind"},"e85f":{"name":"Assignment Late"},"e860":{"name":"Assignment Return"},"e861":{"name":"Assignment Returned"},"e862":{"name":"Assignment Turned In"},"e39f":{"name":"Assistant"},"e3a0":{"name":"Assistant Photo"},"e226":{"name":"Attach File"},"e227":{"name":"Attach Money"},"e2bc":{"name":"Attachment"},"e3a1":{"name":"Audiotrack"},"e863":{"name":"Autorenew"},"e01b":{"name":"Av Timer"},"e14a":{"name":"Backspace"},"e864":{"name":"Backup"},"e19c":{"name":"Battery Alert"},"e1a3":{"name":"Battery Charging Full"},"e1a4":{"name":"Battery Full"},"e1a5":{"name":"Battery Std"},"e1a6":{"name":"Battery Unknown"},"eb3e":{"name":"Beach Access"},"e52d":{"name":"Beenhere"},"e14b":{"name":"Block"},"e1a7":{"name":"Bluetooth"},"e60f":{"name":"Bluetooth Audio"},"e1a8":{"name":"Bluetooth Connected"},"e1a9":{"name":"Bluetooth Disabled"},"e1aa":{"name":"Bluetooth Searching"},"e3a2":{"name":"Blur Circular"},"e3a3":{"name":"Blur Linear"},"e3a4":{"name":"Blur Off"},"e3a5":{"name":"Blur On"},"e865":{"name":"Book"},"e866":{"name":"Bookmark"},"e867":{"name":"Bookmark Border"},"e228":{"name":"Border All"},"e229":{"name":"Border Bottom"},"e22a":{"name":"Border Clear"},"e22b":{"name":"Border Color"},"e22c":{"name":"Border Horizontal"},"e22d":{"name":"Border Inner"},"e22e":{"name":"Border Left"},"e22f":{"name":"Border Outer"},"e230":{"name":"Border Right"},"e231":{"name":"Border Style"},"e232":{"name":"Border Top"},"e233":{"name":"Border Vertical"},"e06b":{"name":"Branding Watermark"},"e3a6":{"name":"Brightness 1"},"e3a7":{"name":"Brightness 2"},"e3a8":{"name":"Brightness 3"},"e3a9":{"name":"Brightness 4"},"e3aa":{"name":"Brightness 5"},"e3ab":{"name":"Brightness 6"},"e3ac":{"name":"Brightness 7"},"e1ab":{"name":"Brightness Auto"},"e1ac":{"name":"Brightness High"},"e1ad":{"name":"Brightness Low"},"e1ae":{"name":"Brightness Medium"},"e3ad":{"name":"Broken Image"},"e3ae":{"name":"Brush"},"e6dd":{"name":"Bubble Chart"},"e868":{"name":"Bug Report"},"e869":{"name":"Build"},"e43c":{"name":"Burst Mode"},"e0af":{"name":"Business"},"eb3f":{"name":"Business Center"},"e86a":{"name":"Cached"},"e7e9":{"name":"Cake"},"e0b0":{"name":"Call"},"e0b1":{"name":"Call End"},"e0b2":{"name":"Call Made"},"e0b3":{"name":"Call Merge"},"e0b4":{"name":"Call Missed"},"e0e4":{"name":"Call Missed Outgoing"},"e0b5":{"name":"Call Received"},"e0b6":{"name":"Call Split"},"e06c":{"name":"Call To Action"},"e3af":{"name":"Camera"},"e3b0":{"name":"Camera Alt"},"e8fc":{"name":"Camera Enhance"},"e3b1":{"name":"Camera Front"},"e3b2":{"name":"Camera Rear"},"e3b3":{"name":"Camera Roll"},"e5c9":{"name":"Cancel"},"e8f6":{"name":"Card Giftcard"},"e8f7":{"name":"Card Membership"},"e8f8":{"name":"Card Travel"},"eb40":{"name":"Casino"},"e307":{"name":"Cast"},"e308":{"name":"Cast Connected"},"e3b4":{"name":"Center Focus Strong"},"e3b5":{"name":"Center Focus Weak"},"e86b":{"name":"Change History"},"e0b7":{"name":"Chat"},"e0ca":{"name":"Chat Bubble"},"e0cb":{"name":"Chat Bubble Outline"},"e5ca":{"name":"Check"},"e834":{"name":"Check Box"},"e835":{"name":"Check Box Outline Blank"},"e86c":{"name":"Check Circle"},"e5cb":{"name":"Chevron Left"},"e5cc":{"name":"Chevron Right"},"eb41":{"name":"Child Care"},"eb42":{"name":"Child Friendly"},"e86d":{"name":"Chrome Reader Mode"},"e86e":{"name":"Class"},"e14c":{"name":"Clear"},"e0b8":{"name":"Clear All"},"e5cd":{"name":"Close"},"e01c":{"name":"Closed Caption"},"e2bd":{"name":"Cloud"},"e2be":{"name":"Cloud Circle"},"e2bf":{"name":"Cloud Done"},"e2c0":{"name":"Cloud Download"},"e2c1":{"name":"Cloud Off"},"e2c2":{"name":"Cloud Queue"},"e2c3":{"name":"Cloud Upload"},"e86f":{"name":"Code"},"e3b6":{"name":"Collections"},"e431":{"name":"Collections Bookmark"},"e3b7":{"name":"Color Lens"},"e3b8":{"name":"Colorize"},"e0b9":{"name":"Comment"},"e3b9":{"name":"Compare"},"e915":{"name":"Compare Arrows"},"e30a":{"name":"Computer"},"e638":{"name":"Confirmation Number"},"e0d0":{"name":"Contact Mail"},"e0cf":{"name":"Contact Phone"},"e0ba":{"name":"Contacts"},"e14d":{"name":"Content Copy"},"e14e":{"name":"Content Cut"},"e14f":{"name":"Content Paste"},"e3ba":{"name":"Control Point"},"e3bb":{"name":"Control Point Duplicate"},"e90c":{"name":"Copyright"},"e150":{"name":"Create"},"e2cc":{"name":"Create New Folder"},"e870":{"name":"Credit Card"},"e3be":{"name":"Crop"},"e3bc":{"name":"Crop 16 9"},"e3bd":{"name":"Crop 3 2"},"e3bf":{"name":"Crop 5 4"},"e3c0":{"name":"Crop 7 5"},"e3c1":{"name":"Crop Din"},"e3c2":{"name":"Crop Free"},"e3c3":{"name":"Crop Landscape"},"e3c4":{"name":"Crop Original"},"e3c5":{"name":"Crop Portrait"},"e437":{"name":"Crop Rotate"},"e3c6":{"name":"Crop Square"},"e871":{"name":"Dashboard"},"e1af":{"name":"Data Usage"},"e916":{"name":"Date Range"},"e3c7":{"name":"Dehaze"},"e872":{"name":"Delete"},"e92b":{"name":"Delete Forever"},"e16c":{"name":"Delete Sweep"},"e873":{"name":"Description"},"e30b":{"name":"Desktop Mac"},"e30c":{"name":"Desktop Windows"},"e3c8":{"name":"Details"},"e30d":{"name":"Developer Board"},"e1b0":{"name":"Developer Mode"},"e335":{"name":"Device Hub"},"e1b1":{"name":"Devices"},"e337":{"name":"Devices Other"},"e0bb":{"name":"Dialer Sip"},"e0bc":{"name":"Dialpad"},"e52e":{"name":"Directions"},"e52f":{"name":"Directions Bike"},"e532":{"name":"Directions Boat"},"e530":{"name":"Directions Bus"},"e531":{"name":"Directions Car"},"e534":{"name":"Directions Railway"},"e566":{"name":"Directions Run"},"e533":{"name":"Directions Subway"},"e535":{"name":"Directions Transit"},"e536":{"name":"Directions Walk"},"e610":{"name":"Disc Full"},"e875":{"name":"Dns"},"e612":{"name":"Do Not Disturb"},"e611":{"name":"Do Not Disturb Alt"},"e643":{"name":"Do Not Disturb Off"},"e644":{"name":"Do Not Disturb On"},"e30e":{"name":"Dock"},"e7ee":{"name":"Domain"},"e876":{"name":"Done"},"e877":{"name":"Done All"},"e917":{"name":"Donut Large"},"e918":{"name":"Donut Small"},"e151":{"name":"Drafts"},"e25d":{"name":"Drag Handle"},"e613":{"name":"Drive Eta"},"e1b2":{"name":"Dvr"},"e3c9":{"name":"Edit"},"e568":{"name":"Edit Location"},"e8fb":{"name":"Eject"},"e0be":{"name":"Email"},"e63f":{"name":"Enhanced Encryption"},"e01d":{"name":"Equalizer"},"e000":{"name":"Error"},"e001":{"name":"Error Outline"},"e926":{"name":"Euro Symbol"},"e56d":{"name":"Ev Station"},"e878":{"name":"Event"},"e614":{"name":"Event Available"},"e615":{"name":"Event Busy"},"e616":{"name":"Event Note"},"e903":{"name":"Event Seat"},"e879":{"name":"Exit To App"},"e5ce":{"name":"Expand Less"},"e5cf":{"name":"Expand More"},"e01e":{"name":"Explicit"},"e87a":{"name":"Explore"},"e3ca":{"name":"Exposure"},"e3cb":{"name":"Exposure Neg 1"},"e3cc":{"name":"Exposure Neg 2"},"e3cd":{"name":"Exposure Plus 1"},"e3ce":{"name":"Exposure Plus 2"},"e3cf":{"name":"Exposure Zero"},"e87b":{"name":"Extension"},"e87c":{"name":"Face"},"e01f":{"name":"Fast Forward"},"e020":{"name":"Fast Rewind"},"e87d":{"name":"Favorite"},"e87e":{"name":"Favorite Border"},"e06d":{"name":"Featured Play List"},"e06e":{"name":"Featured Video"},"e87f":{"name":"Feedback"},"e05d":{"name":"Fiber Dvr"},"e061":{"name":"Fiber Manual Record"},"e05e":{"name":"Fiber New"},"e06a":{"name":"Fiber Pin"},"e062":{"name":"Fiber Smart Record"},"e2c4":{"name":"File Download"},"e2c6":{"name":"File Upload"},"e3d3":{"name":"Filter"},"e3d0":{"name":"Filter 1"},"e3d1":{"name":"Filter 2"},"e3d2":{"name":"Filter 3"},"e3d4":{"name":"Filter 4"},"e3d5":{"name":"Filter 5"},"e3d6":{"name":"Filter 6"},"e3d7":{"name":"Filter 7"},"e3d8":{"name":"Filter 8"},"e3d9":{"name":"Filter 9"},"e3da":{"name":"Filter 9 Plus"},"e3db":{"name":"Filter B And W"},"e3dc":{"name":"Filter Center Focus"},"e3dd":{"name":"Filter Drama"},"e3de":{"name":"Filter Frames"},"e3df":{"name":"Filter Hdr"},"e152":{"name":"Filter List"},"e3e0":{"name":"Filter None"},"e3e2":{"name":"Filter Tilt Shift"},"e3e3":{"name":"Filter Vintage"},"e880":{"name":"Find In Page"},"e881":{"name":"Find Replace"},"e90d":{"name":"Fingerprint"},"e5dc":{"name":"First Page"},"eb43":{"name":"Fitness Center"},"e153":{"name":"Flag"},"e3e4":{"name":"Flare"},"e3e5":{"name":"Flash Auto"},"e3e6":{"name":"Flash Off"},"e3e7":{"name":"Flash On"},"e539":{"name":"Flight"},"e904":{"name":"Flight Land"},"e905":{"name":"Flight Takeoff"},"e3e8":{"name":"Flip"},"e882":{"name":"Flip To Back"},"e883":{"name":"Flip To Front"},"e2c7":{"name":"Folder"},"e2c8":{"name":"Folder Open"},"e2c9":{"name":"Folder Shared"},"e617":{"name":"Folder Special"},"e167":{"name":"Font Download"},"e234":{"name":"Format Align Center"},"e235":{"name":"Format Align Justify"},"e236":{"name":"Format Align Left"},"e237":{"name":"Format Align Right"},"e238":{"name":"Format Bold"},"e239":{"name":"Format Clear"},"e23a":{"name":"Format Color Fill"},"e23b":{"name":"Format Color Reset"},"e23c":{"name":"Format Color Text"},"e23d":{"name":"Format Indent Decrease"},"e23e":{"name":"Format Indent Increase"},"e23f":{"name":"Format Italic"},"e240":{"name":"Format Line Spacing"},"e241":{"name":"Format List Bulleted"},"e242":{"name":"Format List Numbered"},"e243":{"name":"Format Paint"},"e244":{"name":"Format Quote"},"e25e":{"name":"Format Shapes"},"e245":{"name":"Format Size"},"e246":{"name":"Format Strikethrough"},"e247":{"name":"Format Textdirection L To R"},"e248":{"name":"Format Textdirection R To L"},"e249":{"name":"Format Underlined"},"e0bf":{"name":"Forum"},"e154":{"name":"Forward"},"e056":{"name":"Forward 10"},"e057":{"name":"Forward 30"},"e058":{"name":"Forward 5"},"eb44":{"name":"Free Breakfast"},"e5d0":{"name":"Fullscreen"},"e5d1":{"name":"Fullscreen Exit"},"e24a":{"name":"Functions"},"e927":{"name":"G Translate"},"e30f":{"name":"Gamepad"},"e021":{"name":"Games"},"e90e":{"name":"Gavel"},"e155":{"name":"Gesture"},"e884":{"name":"Get App"},"e908":{"name":"Gif"},"eb45":{"name":"Golf Course"},"e1b3":{"name":"Gps Fixed"},"e1b4":{"name":"Gps Not Fixed"},"e1b5":{"name":"Gps Off"},"e885":{"name":"Grade"},"e3e9":{"name":"Gradient"},"e3ea":{"name":"Grain"},"e1b8":{"name":"Graphic Eq"},"e3eb":{"name":"Grid Off"},"e3ec":{"name":"Grid On"},"e7ef":{"name":"Group"},"e7f0":{"name":"Group Add"},"e886":{"name":"Group Work"},"e052":{"name":"Hd"},"e3ed":{"name":"Hdr Off"},"e3ee":{"name":"Hdr On"},"e3f1":{"name":"Hdr Strong"},"e3f2":{"name":"Hdr Weak"},"e310":{"name":"Headset"},"e311":{"name":"Headset Mic"},"e3f3":{"name":"Healing"},"e023":{"name":"Hearing"},"e887":{"name":"Help"},"e8fd":{"name":"Help Outline"},"e024":{"name":"High Quality"},"e25f":{"name":"Highlight"},"e888":{"name":"Highlight Off"},"e889":{"name":"History"},"e88a":{"name":"Home"},"eb46":{"name":"Hot Tub"},"e53a":{"name":"Hotel"},"e88b":{"name":"Hourglass Empty"},"e88c":{"name":"Hourglass Full"},"e902":{"name":"Http"},"e88d":{"name":"Https"},"e3f4":{"name":"Image"},"e3f5":{"name":"Image Aspect Ratio"},"e0e0":{"name":"Import Contacts"},"e0c3":{"name":"Import Export"},"e912":{"name":"Important Devices"},"e156":{"name":"Inbox"},"e909":{"name":"Indeterminate Check Box"},"e88e":{"name":"Info"},"e88f":{"name":"Info Outline"},"e890":{"name":"Input"},"e24b":{"name":"Insert Chart"},"e24c":{"name":"Insert Comment"},"e24d":{"name":"Insert Drive File"},"e24e":{"name":"Insert Emoticon"},"e24f":{"name":"Insert Invitation"},"e250":{"name":"Insert Link"},"e251":{"name":"Insert Photo"},"e891":{"name":"Invert Colors"},"e0c4":{"name":"Invert Colors Off"},"e3f6":{"name":"Iso"},"e312":{"name":"Keyboard"},"e313":{"name":"Keyboard Arrow Down"},"e314":{"name":"Keyboard Arrow Left"},"e315":{"name":"Keyboard Arrow Right"},"e316":{"name":"Keyboard Arrow Up"},"e317":{"name":"Keyboard Backspace"},"e318":{"name":"Keyboard Capslock"},"e31a":{"name":"Keyboard Hide"},"e31b":{"name":"Keyboard Return"},"e31c":{"name":"Keyboard Tab"},"e31d":{"name":"Keyboard Voice"},"eb47":{"name":"Kitchen"},"e892":{"name":"Label"},"e893":{"name":"Label Outline"},"e3f7":{"name":"Landscape"},"e894":{"name":"Language"},"e31e":{"name":"Laptop"},"e31f":{"name":"Laptop Chromebook"},"e320":{"name":"Laptop Mac"},"e321":{"name":"Laptop Windows"},"e5dd":{"name":"Last Page"},"e895":{"name":"Launch"},"e53b":{"name":"Layers"},"e53c":{"name":"Layers Clear"},"e3f8":{"name":"Leak Add"},"e3f9":{"name":"Leak Remove"},"e3fa":{"name":"Lens"},"e02e":{"name":"Library Add"},"e02f":{"name":"Library Books"},"e030":{"name":"Library Music"},"e90f":{"name":"Lightbulb Outline"},"e919":{"name":"Line Style"},"e91a":{"name":"Line Weight"},"e260":{"name":"Linear Scale"},"e157":{"name":"Link"},"e438":{"name":"Linked Camera"},"e896":{"name":"List"},"e0c6":{"name":"Live Help"},"e639":{"name":"Live Tv"},"e53f":{"name":"Local Activity"},"e53d":{"name":"Local Airport"},"e53e":{"name":"Local Atm"},"e540":{"name":"Local Bar"},"e541":{"name":"Local Cafe"},"e542":{"name":"Local Car Wash"},"e543":{"name":"Local Convenience Store"},"e556":{"name":"Local Dining"},"e544":{"name":"Local Drink"},"e545":{"name":"Local Florist"},"e546":{"name":"Local Gas Station"},"e547":{"name":"Local Grocery Store"},"e548":{"name":"Local Hospital"},"e549":{"name":"Local Hotel"},"e54a":{"name":"Local Laundry Service"},"e54b":{"name":"Local Library"},"e54c":{"name":"Local Mall"},"e54d":{"name":"Local Movies"},"e54e":{"name":"Local Offer"},"e54f":{"name":"Local Parking"},"e550":{"name":"Local Pharmacy"},"e551":{"name":"Local Phone"},"e552":{"name":"Local Pizza"},"e553":{"name":"Local Play"},"e554":{"name":"Local Post Office"},"e555":{"name":"Local Printshop"},"e557":{"name":"Local See"},"e558":{"name":"Local Shipping"},"e559":{"name":"Local Taxi"},"e7f1":{"name":"Location City"},"e1b6":{"name":"Location Disabled"},"e0c7":{"name":"Location Off"},"e0c8":{"name":"Location On"},"e1b7":{"name":"Location Searching"},"e897":{"name":"Lock"},"e898":{"name":"Lock Open"},"e899":{"name":"Lock Outline"},"e3fc":{"name":"Looks"},"e3fb":{"name":"Looks 3"},"e3fd":{"name":"Looks 4"},"e3fe":{"name":"Looks 5"},"e3ff":{"name":"Looks 6"},"e400":{"name":"Looks One"},"e401":{"name":"Looks Two"},"e028":{"name":"Loop"},"e402":{"name":"Loupe"},"e16d":{"name":"Low Priority"},"e89a":{"name":"Loyalty"},"e158":{"name":"Mail"},"e0e1":{"name":"Mail Outline"},"e55b":{"name":"Map"},"e159":{"name":"Markunread"},"e89b":{"name":"Markunread Mailbox"},"e322":{"name":"Memory"},"e5d2":{"name":"Menu"},"e252":{"name":"Merge Type"},"e0c9":{"name":"Message"},"e029":{"name":"Mic"},"e02a":{"name":"Mic None"},"e02b":{"name":"Mic Off"},"e618":{"name":"Mms"},"e253":{"name":"Mode Comment"},"e254":{"name":"Mode Edit"},"e263":{"name":"Monetization On"},"e25c":{"name":"Money Off"},"e403":{"name":"Monochrome Photos"},"e7f2":{"name":"Mood"},"e7f3":{"name":"Mood Bad"},"e619":{"name":"More"},"e5d3":{"name":"More Horiz"},"e5d4":{"name":"More Vert"},"e91b":{"name":"Motorcycle"},"e323":{"name":"Mouse"},"e168":{"name":"Move To Inbox"},"e02c":{"name":"Movie"},"e404":{"name":"Movie Creation"},"e43a":{"name":"Movie Filter"},"e6df":{"name":"Multiline Chart"},"e405":{"name":"Music Note"},"e063":{"name":"Music Video"},"e55c":{"name":"My Location"},"e406":{"name":"Nature"},"e407":{"name":"Nature People"},"e408":{"name":"Navigate Before"},"e409":{"name":"Navigate Next"},"e55d":{"name":"Navigation"},"e569":{"name":"Near Me"},"e1b9":{"name":"Network Cell"},"e640":{"name":"Network Check"},"e61a":{"name":"Network Locked"},"e1ba":{"name":"Network Wifi"},"e031":{"name":"New Releases"},"e16a":{"name":"Next Week"},"e1bb":{"name":"Nfc"},"e641":{"name":"No Encryption"},"e0cc":{"name":"No Sim"},"e033":{"name":"Not Interested"},"e06f":{"name":"Note"},"e89c":{"name":"Note Add"},"e7f4":{"name":"Notifications"},"e7f7":{"name":"Notifications Active"},"e7f5":{"name":"Notifications None"},"e7f6":{"name":"Notifications Off"},"e7f8":{"name":"Notifications Paused"},"e90a":{"name":"Offline Pin"},"e63a":{"name":"Ondemand Video"},"e91c":{"name":"Opacity"},"e89d":{"name":"Open In Browser"},"e89e":{"name":"Open In New"},"e89f":{"name":"Open With"},"e7f9":{"name":"Pages"},"e8a0":{"name":"Pageview"},"e40a":{"name":"Palette"},"e925":{"name":"Pan Tool"},"e40b":{"name":"Panorama"},"e40c":{"name":"Panorama Fish Eye"},"e40d":{"name":"Panorama Horizontal"},"e40e":{"name":"Panorama Vertical"},"e40f":{"name":"Panorama Wide Angle"},"e7fa":{"name":"Party Mode"},"e034":{"name":"Pause"},"e035":{"name":"Pause Circle Filled"},"e036":{"name":"Pause Circle Outline"},"e8a1":{"name":"Payment"},"e7fb":{"name":"People"},"e7fc":{"name":"People Outline"},"e8a2":{"name":"Perm Camera Mic"},"e8a3":{"name":"Perm Contact Calendar"},"e8a4":{"name":"Perm Data Setting"},"e8a5":{"name":"Perm Device Information"},"e8a6":{"name":"Perm Identity"},"e8a7":{"name":"Perm Media"},"e8a8":{"name":"Perm Phone Msg"},"e8a9":{"name":"Perm Scan Wifi"},"e7fd":{"name":"Person"},"e7fe":{"name":"Person Add"},"e7ff":{"name":"Person Outline"},"e55a":{"name":"Person Pin"},"e56a":{"name":"Person Pin Circle"},"e63b":{"name":"Personal Video"},"e91d":{"name":"Pets"},"e0cd":{"name":"Phone"},"e324":{"name":"Phone Android"},"e61b":{"name":"Phone Bluetooth Speaker"},"e61c":{"name":"Phone Forwarded"},"e61d":{"name":"Phone In Talk"},"e325":{"name":"Phone Iphone"},"e61e":{"name":"Phone Locked"},"e61f":{"name":"Phone Missed"},"e620":{"name":"Phone Paused"},"e326":{"name":"Phonelink"},"e0db":{"name":"Phonelink Erase"},"e0dc":{"name":"Phonelink Lock"},"e327":{"name":"Phonelink Off"},"e0dd":{"name":"Phonelink Ring"},"e0de":{"name":"Phonelink Setup"},"e410":{"name":"Photo"},"e411":{"name":"Photo Album"},"e412":{"name":"Photo Camera"},"e43b":{"name":"Photo Filter"},"e413":{"name":"Photo Library"},"e432":{"name":"Photo Size Select Actual"},"e433":{"name":"Photo Size Select Large"},"e434":{"name":"Photo Size Select Small"},"e415":{"name":"Picture As Pdf"},"e8aa":{"name":"Picture In Picture"},"e911":{"name":"Picture In Picture Alt"},"e6c4":{"name":"Pie Chart"},"e6c5":{"name":"Pie Chart Outlined"},"e55e":{"name":"Pin Drop"},"e55f":{"name":"Place"},"e037":{"name":"Play Arrow"},"e038":{"name":"Play Circle Filled"},"e039":{"name":"Play Circle Outline"},"e906":{"name":"Play For Work"},"e03b":{"name":"Playlist Add"},"e065":{"name":"Playlist Add Check"},"e05f":{"name":"Playlist Play"},"e800":{"name":"Plus One"},"e801":{"name":"Poll"},"e8ab":{"name":"Polymer"},"eb48":{"name":"Pool"},"e0ce":{"name":"Portable Wifi Off"},"e416":{"name":"Portrait"},"e63c":{"name":"Power"},"e336":{"name":"Power Input"},"e8ac":{"name":"Power Settings New"},"e91e":{"name":"Pregnant Woman"},"e0df":{"name":"Present To All"},"e8ad":{"name":"Print"},"e645":{"name":"Priority High"},"e80b":{"name":"Public"},"e255":{"name":"Publish"},"e8ae":{"name":"Query Builder"},"e8af":{"name":"Question Answer"},"e03c":{"name":"Queue"},"e03d":{"name":"Queue Music"},"e066":{"name":"Queue Play Next"},"e03e":{"name":"Radio"},"e837":{"name":"Radio Button Checked"},"e836":{"name":"Radio Button Unchecked"},"e560":{"name":"Rate Review"},"e8b0":{"name":"Receipt"},"e03f":{"name":"Recent Actors"},"e91f":{"name":"Record Voice Over"},"e8b1":{"name":"Redeem"},"e15a":{"name":"Redo"},"e5d5":{"name":"Refresh"},"e15b":{"name":"Remove"},"e15c":{"name":"Remove Circle"},"e15d":{"name":"Remove Circle Outline"},"e067":{"name":"Remove From Queue"},"e417":{"name":"Remove Red Eye"},"e928":{"name":"Remove Shopping Cart"},"e8fe":{"name":"Reorder"},"e040":{"name":"Repeat"},"e041":{"name":"Repeat One"},"e042":{"name":"Replay"},"e059":{"name":"Replay 10"},"e05a":{"name":"Replay 30"},"e05b":{"name":"Replay 5"},"e15e":{"name":"Reply"},"e15f":{"name":"Reply All"},"e160":{"name":"Report"},"e8b2":{"name":"Report Problem"},"e56c":{"name":"Restaurant"},"e561":{"name":"Restaurant Menu"},"e8b3":{"name":"Restore"},"e929":{"name":"Restore Page"},"e0d1":{"name":"Ring Volume"},"e8b4":{"name":"Room"},"eb49":{"name":"Room Service"},"e418":{"name":"Rotate 90 Degrees Ccw"},"e419":{"name":"Rotate Left"},"e41a":{"name":"Rotate Right"},"e920":{"name":"Rounded Corner"},"e328":{"name":"Router"},"e921":{"name":"Rowing"},"e0e5":{"name":"Rss Feed"},"e642":{"name":"Rv Hookup"},"e562":{"name":"Satellite"},"e161":{"name":"Save"},"e329":{"name":"Scanner"},"e8b5":{"name":"Schedule"},"e80c":{"name":"School"},"e1be":{"name":"Screen Lock Landscape"},"e1bf":{"name":"Screen Lock Portrait"},"e1c0":{"name":"Screen Lock Rotation"},"e1c1":{"name":"Screen Rotation"},"e0e2":{"name":"Screen Share"},"e623":{"name":"Sd Card"},"e1c2":{"name":"Sd Storage"},"e8b6":{"name":"Search"},"e32a":{"name":"Security"},"e162":{"name":"Select All"},"e163":{"name":"Send"},"e811":{"name":"Sentiment Dissatisfied"},"e812":{"name":"Sentiment Neutral"},"e813":{"name":"Sentiment Satisfied"},"e814":{"name":"Sentiment Very Dissatisfied"},"e815":{"name":"Sentiment Very Satisfied"},"e8b8":{"name":"Settings"},"e8b9":{"name":"Settings Applications"},"e8ba":{"name":"Settings Backup Restore"},"e8bb":{"name":"Settings Bluetooth"},"e8bd":{"name":"Settings Brightness"},"e8bc":{"name":"Settings Cell"},"e8be":{"name":"Settings Ethernet"},"e8bf":{"name":"Settings Input Antenna"},"e8c0":{"name":"Settings Input Component"},"e8c1":{"name":"Settings Input Composite"},"e8c2":{"name":"Settings Input Hdmi"},"e8c3":{"name":"Settings Input Svideo"},"e8c4":{"name":"Settings Overscan"},"e8c5":{"name":"Settings Phone"},"e8c6":{"name":"Settings Power"},"e8c7":{"name":"Settings Remote"},"e1c3":{"name":"Settings System Daydream"},"e8c8":{"name":"Settings Voice"},"e80d":{"name":"Share"},"e8c9":{"name":"Shop"},"e8ca":{"name":"Shop Two"},"e8cb":{"name":"Shopping Basket"},"e8cc":{"name":"Shopping Cart"},"e261":{"name":"Short Text"},"e6e1":{"name":"Show Chart"},"e043":{"name":"Shuffle"},"e1c8":{"name":"Signal Cellular 4 Bar"},"e1cd":{"name":"Signal Cellular Connected No Internet 4 Bar"},"e1ce":{"name":"Signal Cellular No Sim"},"e1cf":{"name":"Signal Cellular Null"},"e1d0":{"name":"Signal Cellular Off"},"e1d8":{"name":"Signal Wifi 4 Bar"},"e1d9":{"name":"Signal Wifi 4 Bar Lock"},"e1da":{"name":"Signal Wifi Off"},"e32b":{"name":"Sim Card"},"e624":{"name":"Sim Card Alert"},"e044":{"name":"Skip Next"},"e045":{"name":"Skip Previous"},"e41b":{"name":"Slideshow"},"e068":{"name":"Slow Motion Video"},"e32c":{"name":"Smartphone"},"eb4a":{"name":"Smoke Free"},"eb4b":{"name":"Smoking Rooms"},"e625":{"name":"Sms"},"e626":{"name":"Sms Failed"},"e046":{"name":"Snooze"},"e164":{"name":"Sort"},"e053":{"name":"Sort By Alpha"},"eb4c":{"name":"Spa"},"e256":{"name":"Space Bar"},"e32d":{"name":"Speaker"},"e32e":{"name":"Speaker Group"},"e8cd":{"name":"Speaker Notes"},"e92a":{"name":"Speaker Notes Off"},"e0d2":{"name":"Speaker Phone"},"e8ce":{"name":"Spellcheck"},"e838":{"name":"Star"},"e83a":{"name":"Star Border"},"e839":{"name":"Star Half"},"e8d0":{"name":"Stars"},"e0d3":{"name":"Stay Current Landscape"},"e0d4":{"name":"Stay Current Portrait"},"e0d5":{"name":"Stay Primary Landscape"},"e0d6":{"name":"Stay Primary Portrait"},"e047":{"name":"Stop"},"e0e3":{"name":"Stop Screen Share"},"e1db":{"name":"Storage"},"e8d1":{"name":"Store"},"e563":{"name":"Store Mall Directory"},"e41c":{"name":"Straighten"},"e56e":{"name":"Streetview"},"e257":{"name":"Strikethrough S"},"e41d":{"name":"Style"},"e5d9":{"name":"Subdirectory Arrow Left"},"e5da":{"name":"Subdirectory Arrow Right"},"e8d2":{"name":"Subject"},"e064":{"name":"Subscriptions"},"e048":{"name":"Subtitles"},"e56f":{"name":"Subway"},"e8d3":{"name":"Supervisor Account"},"e049":{"name":"Surround Sound"},"e0d7":{"name":"Swap Calls"},"e8d4":{"name":"Swap Horiz"},"e8d5":{"name":"Swap Vert"},"e8d6":{"name":"Swap Vertical Circle"},"e41e":{"name":"Switch Camera"},"e41f":{"name":"Switch Video"},"e627":{"name":"Sync"},"e628":{"name":"Sync Disabled"},"e629":{"name":"Sync Problem"},"e62a":{"name":"System Update"},"e8d7":{"name":"System Update Alt"},"e8d8":{"name":"Tab"},"e8d9":{"name":"Tab Unselected"},"e32f":{"name":"Tablet"},"e330":{"name":"Tablet Android"},"e331":{"name":"Tablet Mac"},"e420":{"name":"Tag Faces"},"e62b":{"name":"Tap And Play"},"e564":{"name":"Terrain"},"e262":{"name":"Text Fields"},"e165":{"name":"Text Format"},"e0d8":{"name":"Textsms"},"e421":{"name":"Texture"},"e8da":{"name":"Theaters"},"e8db":{"name":"Thumb Down"},"e8dc":{"name":"Thumb Up"},"e8dd":{"name":"Thumbs Up Down"},"e62c":{"name":"Time To Leave"},"e422":{"name":"Timelapse"},"e922":{"name":"Timeline"},"e425":{"name":"Timer"},"e423":{"name":"Timer 10"},"e424":{"name":"Timer 3"},"e426":{"name":"Timer Off"},"e264":{"name":"Title"},"e8de":{"name":"Toc"},"e8df":{"name":"Today"},"e8e0":{"name":"Toll"},"e427":{"name":"Tonality"},"e913":{"name":"Touch App"},"e332":{"name":"Toys"},"e8e1":{"name":"Track Changes"},"e565":{"name":"Traffic"},"e570":{"name":"Train"},"e571":{"name":"Tram"},"e572":{"name":"Transfer Within A Station"},"e428":{"name":"Transform"},"e8e2":{"name":"Translate"},"e8e3":{"name":"Trending Down"},"e8e4":{"name":"Trending Flat"},"e8e5":{"name":"Trending Up"},"e429":{"name":"Tune"},"e8e6":{"name":"Turned In"},"e8e7":{"name":"Turned In Not"},"e333":{"name":"Tv"},"e169":{"name":"Unarchive"},"e166":{"name":"Undo"},"e5d6":{"name":"Unfold Less"},"e5d7":{"name":"Unfold More"},"e923":{"name":"Update"},"e1e0":{"name":"Usb"},"e8e8":{"name":"Verified User"},"e258":{"name":"Vertical Align Bottom"},"e259":{"name":"Vertical Align Center"},"e25a":{"name":"Vertical Align Top"},"e62d":{"name":"Vibration"},"e070":{"name":"Video Call"},"e071":{"name":"Video Label"},"e04a":{"name":"Video Library"},"e04b":{"name":"Videocam"},"e04c":{"name":"Videocam Off"},"e338":{"name":"Videogame Asset"},"e8e9":{"name":"View Agenda"},"e8ea":{"name":"View Array"},"e8eb":{"name":"View Carousel"},"e8ec":{"name":"View Column"},"e42a":{"name":"View Comfy"},"e42b":{"name":"View Compact"},"e8ed":{"name":"View Day"},"e8ee":{"name":"View Headline"},"e8ef":{"name":"View List"},"e8f0":{"name":"View Module"},"e8f1":{"name":"View Quilt"},"e8f2":{"name":"View Stream"},"e8f3":{"name":"View Week"},"e435":{"name":"Vignette"},"e8f4":{"name":"Visibility"},"e8f5":{"name":"Visibility Off"},"e62e":{"name":"Voice Chat"},"e0d9":{"name":"Voicemail"},"e04d":{"name":"Volume Down"},"e04e":{"name":"Volume Mute"},"e04f":{"name":"Volume Off"},"e050":{"name":"Volume Up"},"e0da":{"name":"Vpn Key"},"e62f":{"name":"Vpn Lock"},"e1bc":{"name":"Wallpaper"},"e002":{"name":"Warning"},"e334":{"name":"Watch"},"e924":{"name":"Watch Later"},"e42c":{"name":"Wb Auto"},"e42d":{"name":"Wb Cloudy"},"e42e":{"name":"Wb Incandescent"},"e436":{"name":"Wb Iridescent"},"e430":{"name":"Wb Sunny"},"e63d":{"name":"Wc"},"e051":{"name":"Web"},"e069":{"name":"Web Asset"},"e16b":{"name":"Weekend"},"e80e":{"name":"Whatshot"},"e1bd":{"name":"Widgets"},"e63e":{"name":"Wifi"},"e1e1":{"name":"Wifi Lock"},"e1e2":{"name":"Wifi Tethering"},"e8f9":{"name":"Work"},"e25b":{"name":"Wrap Text"},"e8fa":{"name":"Youtube Searched For"},"e8ff":{"name":"Zoom In"},"e900":{"name":"Zoom Out"},"e56b":{"name":"Zoom Out Map"}}} \ No newline at end of file diff --git a/static/mdui/icons/material-icons/MaterialIcons-Regular.woff b/static/mdui/icons/material-icons/MaterialIcons-Regular.woff new file mode 100644 index 0000000..b648a3e Binary files /dev/null and b/static/mdui/icons/material-icons/MaterialIcons-Regular.woff differ diff --git a/static/mdui/icons/material-icons/MaterialIcons-Regular.woff2 b/static/mdui/icons/material-icons/MaterialIcons-Regular.woff2 new file mode 100644 index 0000000..9fa2112 Binary files /dev/null and b/static/mdui/icons/material-icons/MaterialIcons-Regular.woff2 differ diff --git a/static/mdui/js/mdui.esm.js b/static/mdui/js/mdui.esm.js new file mode 100644 index 0000000..68a7f70 --- /dev/null +++ b/static/mdui/js/mdui.esm.js @@ -0,0 +1,5976 @@ +/*! + * mdui 1.0.1 (https://mdui.org) + * Copyright 2016-2020 zdhxiong + * Licensed under MIT + */ +function isFunction(target) { + return typeof target === 'function'; +} +function isString(target) { + return typeof target === 'string'; +} +function isNumber(target) { + return typeof target === 'number'; +} +function isBoolean(target) { + return typeof target === 'boolean'; +} +function isUndefined(target) { + return typeof target === 'undefined'; +} +function isNull(target) { + return target === null; +} +function isWindow(target) { + return target instanceof Window; +} +function isDocument(target) { + return target instanceof Document; +} +function isElement(target) { + return target instanceof Element; +} +function isNode(target) { + return target instanceof Node; +} +/** + * 是否是 IE 浏览器 + */ +function isIE() { + // @ts-ignore + return !!window.document.documentMode; +} +function isArrayLike(target) { + if (isFunction(target) || isWindow(target)) { + return false; + } + return isNumber(target.length); +} +function isObjectLike(target) { + return typeof target === 'object' && target !== null; +} +function toElement(target) { + return isDocument(target) ? target.documentElement : target; +} +/** + * 把用 - 分隔的字符串转为驼峰(如 box-sizing 转换为 boxSizing) + * @param string + */ +function toCamelCase(string) { + return string + .replace(/^-ms-/, 'ms-') + .replace(/-([a-z])/g, (_, letter) => letter.toUpperCase()); +} +/** + * 把驼峰法转为用 - 分隔的字符串(如 boxSizing 转换为 box-sizing) + * @param string + */ +function toKebabCase(string) { + return string.replace(/[A-Z]/g, (replacer) => '-' + replacer.toLowerCase()); +} +/** + * 获取元素的样式值 + * @param element + * @param name + */ +function getComputedStyleValue(element, name) { + return window.getComputedStyle(element).getPropertyValue(toKebabCase(name)); +} +/** + * 检查元素的 box-sizing 是否是 border-box + * @param element + */ +function isBorderBox(element) { + return getComputedStyleValue(element, 'box-sizing') === 'border-box'; +} +/** + * 获取元素的 padding, border, margin 宽度(两侧宽度的和,单位为px) + * @param element + * @param direction + * @param extra + */ +function getExtraWidth(element, direction, extra) { + const position = direction === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom']; + return [0, 1].reduce((prev, _, index) => { + let prop = extra + position[index]; + if (extra === 'border') { + prop += 'Width'; + } + return prev + parseFloat(getComputedStyleValue(element, prop) || '0'); + }, 0); +} +/** + * 获取元素的样式值,对 width 和 height 进行过处理 + * @param element + * @param name + */ +function getStyle(element, name) { + // width、height 属性使用 getComputedStyle 得到的值不准确,需要使用 getBoundingClientRect 获取 + if (name === 'width' || name === 'height') { + const valueNumber = element.getBoundingClientRect()[name]; + if (isBorderBox(element)) { + return `${valueNumber}px`; + } + return `${valueNumber - + getExtraWidth(element, name, 'border') - + getExtraWidth(element, name, 'padding')}px`; + } + return getComputedStyleValue(element, name); +} +/** + * 获取子节点组成的数组 + * @param target + * @param parent + */ +function getChildNodesArray(target, parent) { + const tempParent = document.createElement(parent); + tempParent.innerHTML = target; + return [].slice.call(tempParent.childNodes); +} +/** + * 始终返回 false 的函数 + */ +function returnFalse() { + return false; +} +/** + * 数值单位的 CSS 属性 + */ +const cssNumber = [ + 'animationIterationCount', + 'columnCount', + 'fillOpacity', + 'flexGrow', + 'flexShrink', + 'fontWeight', + 'gridArea', + 'gridColumn', + 'gridColumnEnd', + 'gridColumnStart', + 'gridRow', + 'gridRowEnd', + 'gridRowStart', + 'lineHeight', + 'opacity', + 'order', + 'orphans', + 'widows', + 'zIndex', + 'zoom', +]; + +function each(target, callback) { + if (isArrayLike(target)) { + for (let i = 0; i < target.length; i += 1) { + if (callback.call(target[i], i, target[i]) === false) { + return target; + } + } + } + else { + const keys = Object.keys(target); + for (let i = 0; i < keys.length; i += 1) { + if (callback.call(target[keys[i]], keys[i], target[keys[i]]) === false) { + return target; + } + } + } + return target; +} + +/** + * 为了使用模块扩充,这里不能使用默认导出 + */ +class JQ { + constructor(arr) { + this.length = 0; + if (!arr) { + return this; + } + each(arr, (i, item) => { + // @ts-ignore + this[i] = item; + }); + this.length = arr.length; + return this; + } +} + +function get$() { + const $ = function (selector) { + if (!selector) { + return new JQ(); + } + // JQ + if (selector instanceof JQ) { + return selector; + } + // function + if (isFunction(selector)) { + if (/complete|loaded|interactive/.test(document.readyState) && + document.body) { + selector.call(document, $); + } + else { + document.addEventListener('DOMContentLoaded', () => selector.call(document, $), false); + } + return new JQ([document]); + } + // String + if (isString(selector)) { + const html = selector.trim(); + // 根据 HTML 字符串创建 JQ 对象 + if (html[0] === '<' && html[html.length - 1] === '>') { + let toCreate = 'div'; + const tags = { + li: 'ul', + tr: 'tbody', + td: 'tr', + th: 'tr', + tbody: 'table', + option: 'select', + }; + each(tags, (childTag, parentTag) => { + if (html.indexOf(`<${childTag}`) === 0) { + toCreate = parentTag; + return false; + } + return; + }); + return new JQ(getChildNodesArray(html, toCreate)); + } + // 根据 CSS 选择器创建 JQ 对象 + const isIdSelector = selector[0] === '#' && !selector.match(/[ .<>:~]/); + if (!isIdSelector) { + return new JQ(document.querySelectorAll(selector)); + } + const element = document.getElementById(selector.slice(1)); + if (element) { + return new JQ([element]); + } + return new JQ(); + } + if (isArrayLike(selector) && !isNode(selector)) { + return new JQ(selector); + } + return new JQ([selector]); + }; + $.fn = JQ.prototype; + return $; +} +const $ = get$(); + +// 避免页面加载完后直接执行css动画 +// https://css-tricks.com/transitions-only-after-page-load/ +setTimeout(() => $('body').addClass('mdui-loaded')); +const mdui = { + $: $, +}; + +$.fn.each = function (callback) { + return each(this, callback); +}; + +/** + * 检查 container 元素内是否包含 contains 元素 + * @param container 父元素 + * @param contains 子元素 + * @example +```js +contains( document, document.body ); // true +contains( document.getElementById('test'), document ); // false +contains( $('.container').get(0), $('.contains').get(0) ); // false +``` + */ +function contains(container, contains) { + return container !== contains && toElement(container).contains(contains); +} + +/** + * 把第二个数组的元素追加到第一个数组中,并返回合并后的数组 + * @param first 第一个数组 + * @param second 该数组的元素将被追加到第一个数组中 + * @example +```js +merge( [ 0, 1, 2 ], [ 2, 3, 4 ] ) +// [ 0, 1, 2, 2, 3, 4 ] +``` + */ +function merge(first, second) { + each(second, (_, value) => { + first.push(value); + }); + return first; +} + +$.fn.get = function (index) { + return index === undefined + ? [].slice.call(this) + : this[index >= 0 ? index : index + this.length]; +}; + +$.fn.find = function (selector) { + const foundElements = []; + this.each((_, element) => { + merge(foundElements, $(element.querySelectorAll(selector)).get()); + }); + return new JQ(foundElements); +}; + +// 存储事件 +const handlers = {}; +// 元素ID +let mduiElementId = 1; +/** + * 为元素赋予一个唯一的ID + */ +function getElementId(element) { + const key = '_mduiEventId'; + // @ts-ignore + if (!element[key]) { + // @ts-ignore + element[key] = ++mduiElementId; + } + // @ts-ignore + return element[key]; +} +/** + * 解析事件名中的命名空间 + */ +function parse(type) { + const parts = type.split('.'); + return { + type: parts[0], + ns: parts.slice(1).sort().join(' '), + }; +} +/** + * 命名空间匹配规则 + */ +function matcherFor(ns) { + return new RegExp('(?:^| )' + ns.replace(' ', ' .* ?') + '(?: |$)'); +} +/** + * 获取匹配的事件 + * @param element + * @param type + * @param func + * @param selector + */ +function getHandlers(element, type, func, selector) { + const event = parse(type); + return (handlers[getElementId(element)] || []).filter((handler) => handler && + (!event.type || handler.type === event.type) && + (!event.ns || matcherFor(event.ns).test(handler.ns)) && + (!func || getElementId(handler.func) === getElementId(func)) && + (!selector || handler.selector === selector)); +} +/** + * 添加事件监听 + * @param element + * @param types + * @param func + * @param data + * @param selector + */ +function add(element, types, func, data, selector) { + const elementId = getElementId(element); + if (!handlers[elementId]) { + handlers[elementId] = []; + } + // 传入 data.useCapture 来设置 useCapture: true + let useCapture = false; + if (isObjectLike(data) && data.useCapture) { + useCapture = true; + } + types.split(' ').forEach((type) => { + if (!type) { + return; + } + const event = parse(type); + function callFn(e, elem) { + // 因为鼠标事件模拟事件的 detail 属性是只读的,因此在 e._detail 中存储参数 + const result = func.apply(elem, + // @ts-ignore + e._detail === undefined ? [e] : [e].concat(e._detail)); + if (result === false) { + e.preventDefault(); + e.stopPropagation(); + } + } + function proxyFn(e) { + // @ts-ignore + if (e._ns && !matcherFor(e._ns).test(event.ns)) { + return; + } + // @ts-ignore + e._data = data; + if (selector) { + // 事件代理 + $(element) + .find(selector) + .get() + .reverse() + .forEach((elem) => { + if (elem === e.target || + contains(elem, e.target)) { + callFn(e, elem); + } + }); + } + else { + // 不使用事件代理 + callFn(e, element); + } + } + const handler = { + type: event.type, + ns: event.ns, + func, + selector, + id: handlers[elementId].length, + proxy: proxyFn, + }; + handlers[elementId].push(handler); + element.addEventListener(handler.type, proxyFn, useCapture); + }); +} +/** + * 移除事件监听 + * @param element + * @param types + * @param func + * @param selector + */ +function remove(element, types, func, selector) { + const handlersInElement = handlers[getElementId(element)] || []; + const removeEvent = (handler) => { + delete handlersInElement[handler.id]; + element.removeEventListener(handler.type, handler.proxy, false); + }; + if (!types) { + handlersInElement.forEach((handler) => removeEvent(handler)); + } + else { + types.split(' ').forEach((type) => { + if (type) { + getHandlers(element, type, func, selector).forEach((handler) => removeEvent(handler)); + } + }); + } +} + +$.fn.trigger = function (type, extraParameters) { + const event = parse(type); + let eventObject; + const eventParams = { + bubbles: true, + cancelable: true, + }; + const isMouseEvent = ['click', 'mousedown', 'mouseup', 'mousemove'].indexOf(event.type) > -1; + if (isMouseEvent) { + // Note: MouseEvent 无法传入 detail 参数 + eventObject = new MouseEvent(event.type, eventParams); + } + else { + eventParams.detail = extraParameters; + eventObject = new CustomEvent(event.type, eventParams); + } + // @ts-ignore + eventObject._detail = extraParameters; + // @ts-ignore + eventObject._ns = event.ns; + return this.each(function () { + this.dispatchEvent(eventObject); + }); +}; + +function extend(target, object1, ...objectN) { + objectN.unshift(object1); + each(objectN, (_, object) => { + each(object, (prop, value) => { + if (!isUndefined(value)) { + target[prop] = value; + } + }); + }); + return target; +} + +/** + * 将数组或对象序列化,序列化后的字符串可作为 URL 查询字符串使用 + * + * 若传入数组,则格式必须和 serializeArray 方法的返回值一样 + * @param obj 对象或数组 + * @example +```js +param({ width: 1680, height: 1050 }); +// width=1680&height=1050 +``` + * @example +```js +param({ foo: { one: 1, two: 2 }}) +// foo[one]=1&foo[two]=2 +``` + * @example +```js +param({ids: [1, 2, 3]}) +// ids[]=1&ids[]=2&ids[]=3 +``` + * @example +```js +param([ + {"name":"name","value":"mdui"}, + {"name":"password","value":"123456"} +]) +// name=mdui&password=123456 +``` + */ +function param(obj) { + if (!isObjectLike(obj) && !Array.isArray(obj)) { + return ''; + } + const args = []; + function destructure(key, value) { + let keyTmp; + if (isObjectLike(value)) { + each(value, (i, v) => { + if (Array.isArray(value) && !isObjectLike(v)) { + keyTmp = ''; + } + else { + keyTmp = i; + } + destructure(`${key}[${keyTmp}]`, v); + }); + } + else { + if (value == null || value === '') { + keyTmp = '='; + } + else { + keyTmp = `=${encodeURIComponent(value)}`; + } + args.push(encodeURIComponent(key) + keyTmp); + } + } + if (Array.isArray(obj)) { + each(obj, function () { + destructure(this.name, this.value); + }); + } + else { + each(obj, destructure); + } + return args.join('&'); +} + +// 全局配置参数 +const globalOptions = {}; +// 全局事件名 +const ajaxEvents = { + ajaxStart: 'start.mdui.ajax', + ajaxSuccess: 'success.mdui.ajax', + ajaxError: 'error.mdui.ajax', + ajaxComplete: 'complete.mdui.ajax', +}; + +/** + * 判断此请求方法是否通过查询字符串提交参数 + * @param method 请求方法,大写 + */ +function isQueryStringData(method) { + return ['GET', 'HEAD'].indexOf(method) >= 0; +} +/** + * 添加参数到 URL 上,且 URL 中不存在 ? 时,自动把第一个 & 替换为 ? + * @param url + * @param query + */ +function appendQuery(url, query) { + return `${url}&${query}`.replace(/[&?]{1,2}/, '?'); +} +/** + * 合并请求参数,参数优先级:options > globalOptions > defaults + * @param options + */ +function mergeOptions(options) { + // 默认参数 + const defaults = { + url: '', + method: 'GET', + data: '', + processData: true, + async: true, + cache: true, + username: '', + password: '', + headers: {}, + xhrFields: {}, + statusCode: {}, + dataType: 'text', + contentType: 'application/x-www-form-urlencoded', + timeout: 0, + global: true, + }; + // globalOptions 中的回调函数不合并 + each(globalOptions, (key, value) => { + const callbacks = [ + 'beforeSend', + 'success', + 'error', + 'complete', + 'statusCode', + ]; + // @ts-ignore + if (callbacks.indexOf(key) < 0 && !isUndefined(value)) { + defaults[key] = value; + } + }); + return extend({}, defaults, options); +} +/** + * 发送 ajax 请求 + * @param options + * @example +```js +ajax({ + method: "POST", + url: "some.php", + data: { name: "John", location: "Boston" } +}).then(function( msg ) { + alert( "Data Saved: " + msg ); +}); +``` + */ +function ajax(options) { + // 是否已取消请求 + let isCanceled = false; + // 事件参数 + const eventParams = {}; + // 参数合并 + const mergedOptions = mergeOptions(options); + let url = mergedOptions.url || window.location.toString(); + const method = mergedOptions.method.toUpperCase(); + let data = mergedOptions.data; + const processData = mergedOptions.processData; + const async = mergedOptions.async; + const cache = mergedOptions.cache; + const username = mergedOptions.username; + const password = mergedOptions.password; + const headers = mergedOptions.headers; + const xhrFields = mergedOptions.xhrFields; + const statusCode = mergedOptions.statusCode; + const dataType = mergedOptions.dataType; + const contentType = mergedOptions.contentType; + const timeout = mergedOptions.timeout; + const global = mergedOptions.global; + // 需要发送的数据 + // GET/HEAD 请求和 processData 为 true 时,转换为查询字符串格式,特殊格式不转换 + if (data && + (isQueryStringData(method) || processData) && + !isString(data) && + !(data instanceof ArrayBuffer) && + !(data instanceof Blob) && + !(data instanceof Document) && + !(data instanceof FormData)) { + data = param(data); + } + // 对于 GET、HEAD 类型的请求,把 data 数据添加到 URL 中 + if (data && isQueryStringData(method)) { + // 查询字符串拼接到 URL 中 + url = appendQuery(url, data); + data = null; + } + /** + * 触发事件和回调函数 + * @param event + * @param params + * @param callback + * @param args + */ + function trigger(event, params, callback, ...args) { + // 触发全局事件 + if (global) { + $(document).trigger(event, params); + } + // 触发 ajax 回调和事件 + let result1; + let result2; + if (callback) { + // 全局回调 + if (callback in globalOptions) { + // @ts-ignore + result1 = globalOptions[callback](...args); + } + // 自定义回调 + if (mergedOptions[callback]) { + // @ts-ignore + result2 = mergedOptions[callback](...args); + } + // beforeSend 回调返回 false 时取消 ajax 请求 + if (callback === 'beforeSend' && + (result1 === false || result2 === false)) { + isCanceled = true; + } + } + } + // XMLHttpRequest 请求 + function XHR() { + let textStatus; + return new Promise((resolve, reject) => { + // GET/HEAD 请求的缓存处理 + if (isQueryStringData(method) && !cache) { + url = appendQuery(url, `_=${Date.now()}`); + } + // 创建 XHR + const xhr = new XMLHttpRequest(); + xhr.open(method, url, async, username, password); + if (contentType || + (data && !isQueryStringData(method) && contentType !== false)) { + xhr.setRequestHeader('Content-Type', contentType); + } + // 设置 Accept + if (dataType === 'json') { + xhr.setRequestHeader('Accept', 'application/json, text/javascript'); + } + // 添加 headers + if (headers) { + each(headers, (key, value) => { + // undefined 值不发送,string 和 null 需要发送 + if (!isUndefined(value)) { + xhr.setRequestHeader(key, value + ''); // 把 null 转换成字符串 + } + }); + } + // 检查是否是跨域请求,跨域请求时不添加 X-Requested-With + const crossDomain = /^([\w-]+:)?\/\/([^/]+)/.test(url) && + RegExp.$2 !== window.location.host; + if (!crossDomain) { + xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); + } + if (xhrFields) { + each(xhrFields, (key, value) => { + // @ts-ignore + xhr[key] = value; + }); + } + eventParams.xhr = xhr; + eventParams.options = mergedOptions; + let xhrTimeout; + xhr.onload = function () { + if (xhrTimeout) { + clearTimeout(xhrTimeout); + } + // AJAX 返回的 HTTP 响应码是否表示成功 + const isHttpStatusSuccess = (xhr.status >= 200 && xhr.status < 300) || + xhr.status === 304 || + xhr.status === 0; + let responseData; + if (isHttpStatusSuccess) { + if (xhr.status === 204 || method === 'HEAD') { + textStatus = 'nocontent'; + } + else if (xhr.status === 304) { + textStatus = 'notmodified'; + } + else { + textStatus = 'success'; + } + if (dataType === 'json') { + try { + responseData = + method === 'HEAD' ? undefined : JSON.parse(xhr.responseText); + eventParams.data = responseData; + } + catch (err) { + textStatus = 'parsererror'; + trigger(ajaxEvents.ajaxError, eventParams, 'error', xhr, textStatus); + reject(new Error(textStatus)); + } + if (textStatus !== 'parsererror') { + trigger(ajaxEvents.ajaxSuccess, eventParams, 'success', responseData, textStatus, xhr); + resolve(responseData); + } + } + else { + responseData = + method === 'HEAD' + ? undefined + : xhr.responseType === 'text' || xhr.responseType === '' + ? xhr.responseText + : xhr.response; + eventParams.data = responseData; + trigger(ajaxEvents.ajaxSuccess, eventParams, 'success', responseData, textStatus, xhr); + resolve(responseData); + } + } + else { + textStatus = 'error'; + trigger(ajaxEvents.ajaxError, eventParams, 'error', xhr, textStatus); + reject(new Error(textStatus)); + } + // statusCode + each([globalOptions.statusCode, statusCode], (_, func) => { + if (func && func[xhr.status]) { + if (isHttpStatusSuccess) { + func[xhr.status](responseData, textStatus, xhr); + } + else { + func[xhr.status](xhr, textStatus); + } + } + }); + trigger(ajaxEvents.ajaxComplete, eventParams, 'complete', xhr, textStatus); + }; + xhr.onerror = function () { + if (xhrTimeout) { + clearTimeout(xhrTimeout); + } + trigger(ajaxEvents.ajaxError, eventParams, 'error', xhr, xhr.statusText); + trigger(ajaxEvents.ajaxComplete, eventParams, 'complete', xhr, 'error'); + reject(new Error(xhr.statusText)); + }; + xhr.onabort = function () { + let statusText = 'abort'; + if (xhrTimeout) { + statusText = 'timeout'; + clearTimeout(xhrTimeout); + } + trigger(ajaxEvents.ajaxError, eventParams, 'error', xhr, statusText); + trigger(ajaxEvents.ajaxComplete, eventParams, 'complete', xhr, statusText); + reject(new Error(statusText)); + }; + // ajax start 回调 + trigger(ajaxEvents.ajaxStart, eventParams, 'beforeSend', xhr); + if (isCanceled) { + reject(new Error('cancel')); + return; + } + // Timeout + if (timeout > 0) { + xhrTimeout = setTimeout(() => { + xhr.abort(); + }, timeout); + } + // 发送 XHR + xhr.send(data); + }); + } + return XHR(); +} + +$.ajax = ajax; + +/** + * 为 Ajax 请求设置全局配置参数 + * @param options 键值对参数 + * @example +```js +ajaxSetup({ + dataType: 'json', + method: 'POST', +}); +``` + */ +function ajaxSetup(options) { + return extend(globalOptions, options); +} + +$.ajaxSetup = ajaxSetup; + +$.contains = contains; + +const dataNS = '_mduiElementDataStorage'; + +/** + * 在元素上设置键值对数据 + * @param element + * @param object + */ +function setObjectToElement(element, object) { + // @ts-ignore + if (!element[dataNS]) { + // @ts-ignore + element[dataNS] = {}; + } + each(object, (key, value) => { + // @ts-ignore + element[dataNS][toCamelCase(key)] = value; + }); +} +function data(element, key, value) { + // 根据键值对设置值 + // data(element, { 'key' : 'value' }) + if (isObjectLike(key)) { + setObjectToElement(element, key); + return key; + } + // 根据 key、value 设置值 + // data(element, 'key', 'value') + if (!isUndefined(value)) { + setObjectToElement(element, { [key]: value }); + return value; + } + // 获取所有值 + // data(element) + if (isUndefined(key)) { + // @ts-ignore + return element[dataNS] ? element[dataNS] : {}; + } + // 从 dataNS 中获取指定值 + // data(element, 'key') + key = toCamelCase(key); + // @ts-ignore + if (element[dataNS] && key in element[dataNS]) { + // @ts-ignore + return element[dataNS][key]; + } + return undefined; +} + +$.data = data; + +$.each = each; + +$.extend = function (...objectN) { + if (objectN.length === 1) { + each(objectN[0], (prop, value) => { + this[prop] = value; + }); + return this; + } + return extend(objectN.shift(), objectN.shift(), ...objectN); +}; + +function map(elements, callback) { + let value; + const ret = []; + each(elements, (i, element) => { + value = callback.call(window, element, i); + if (value != null) { + ret.push(value); + } + }); + return [].concat(...ret); +} + +$.map = map; + +$.merge = merge; + +$.param = param; + +/** + * 移除指定元素上存放的数据 + * @param element 存放数据的元素 + * @param name + * 数据键名 + * + * 若未指定键名,将移除元素上所有数据 + * + * 多个键名可以用空格分隔,或者用数组表示多个键名 + @example +```js +// 移除元素上键名为 name 的数据 +removeData(document.body, 'name'); +``` + * @example +```js +// 移除元素上键名为 name1 和 name2 的数据 +removeData(document.body, 'name1 name2'); +``` + * @example +```js +// 移除元素上键名为 name1 和 name2 的数据 +removeData(document.body, ['name1', 'name2']); +``` + * @example +```js +// 移除元素上所有数据 +removeData(document.body); +``` + */ +function removeData(element, name) { + // @ts-ignore + if (!element[dataNS]) { + return; + } + const remove = (nameItem) => { + nameItem = toCamelCase(nameItem); + // @ts-ignore + if (element[dataNS][nameItem]) { + // @ts-ignore + element[dataNS][nameItem] = null; + // @ts-ignore + delete element[dataNS][nameItem]; + } + }; + if (isUndefined(name)) { + // @ts-ignore + element[dataNS] = null; + // @ts-ignore + delete element[dataNS]; + // @ts-ignore + } + else if (isString(name)) { + name + .split(' ') + .filter((nameItem) => nameItem) + .forEach((nameItem) => remove(nameItem)); + } + else { + each(name, (_, nameItem) => remove(nameItem)); + } +} + +$.removeData = removeData; + +/** + * 过滤掉数组中的重复元素 + * @param arr 数组 + * @example +```js +unique([1, 2, 12, 3, 2, 1, 2, 1, 1]); +// [1, 2, 12, 3] +``` + */ +function unique(arr) { + const result = []; + each(arr, (_, val) => { + if (result.indexOf(val) === -1) { + result.push(val); + } + }); + return result; +} + +$.unique = unique; + +$.fn.add = function (selector) { + return new JQ(unique(merge(this.get(), $(selector).get()))); +}; + +each(['add', 'remove', 'toggle'], (_, name) => { + $.fn[`${name}Class`] = function (className) { + if (name === 'remove' && !arguments.length) { + return this.each((_, element) => { + element.setAttribute('class', ''); + }); + } + return this.each((i, element) => { + if (!isElement(element)) { + return; + } + const classes = (isFunction(className) + ? className.call(element, i, element.getAttribute('class') || '') + : className) + .split(' ') + .filter((name) => name); + each(classes, (_, cls) => { + element.classList[name](cls); + }); + }); + }; +}); + +each(['insertBefore', 'insertAfter'], (nameIndex, name) => { + $.fn[name] = function (target) { + const $element = nameIndex ? $(this.get().reverse()) : this; // 顺序和 jQuery 保持一致 + const $target = $(target); + const result = []; + $target.each((index, target) => { + if (!target.parentNode) { + return; + } + $element.each((_, element) => { + const newItem = index + ? element.cloneNode(true) + : element; + const existingItem = nameIndex ? target.nextSibling : target; + result.push(newItem); + target.parentNode.insertBefore(newItem, existingItem); + }); + }); + return $(nameIndex ? result.reverse() : result); + }; +}); + +/** + * 是否不是 HTML 字符串(包裹在 <> 中) + * @param target + */ +function isPlainText(target) { + return (isString(target) && (target[0] !== '<' || target[target.length - 1] !== '>')); +} +each(['before', 'after'], (nameIndex, name) => { + $.fn[name] = function (...args) { + // after 方法,多个参数需要按参数顺序添加到元素后面,所以需要将参数顺序反向处理 + if (nameIndex === 1) { + args = args.reverse(); + } + return this.each((index, element) => { + const targets = isFunction(args[0]) + ? [args[0].call(element, index, element.innerHTML)] + : args; + each(targets, (_, target) => { + let $target; + if (isPlainText(target)) { + $target = $(getChildNodesArray(target, 'div')); + } + else if (index && isElement(target)) { + $target = $(target.cloneNode(true)); + } + else { + $target = $(target); + } + $target[nameIndex ? 'insertAfter' : 'insertBefore'](element); + }); + }); + }; +}); + +$.fn.off = function (types, selector, callback) { + // types 是对象 + if (isObjectLike(types)) { + each(types, (type, fn) => { + // this.off('click', undefined, function () {}) + // this.off('click', '.box', function () {}) + this.off(type, selector, fn); + }); + return this; + } + // selector 不存在 + if (selector === false || isFunction(selector)) { + callback = selector; + selector = undefined; + // this.off('click', undefined, function () {}) + } + // callback 传入 `false`,相当于 `return false` + if (callback === false) { + callback = returnFalse; + } + return this.each(function () { + remove(this, types, callback, selector); + }); +}; + +$.fn.on = function (types, selector, data, callback, one) { + // types 可以是 type/func 对象 + if (isObjectLike(types)) { + // (types-Object, selector, data) + if (!isString(selector)) { + // (types-Object, data) + data = data || selector; + selector = undefined; + } + each(types, (type, fn) => { + // selector 和 data 都可能是 undefined + // @ts-ignore + this.on(type, selector, data, fn, one); + }); + return this; + } + if (data == null && callback == null) { + // (types, fn) + callback = selector; + data = selector = undefined; + } + else if (callback == null) { + if (isString(selector)) { + // (types, selector, fn) + callback = data; + data = undefined; + } + else { + // (types, data, fn) + callback = data; + data = selector; + selector = undefined; + } + } + if (callback === false) { + callback = returnFalse; + } + else if (!callback) { + return this; + } + // $().one() + if (one) { + // eslint-disable-next-line @typescript-eslint/no-this-alias + const _this = this; + const origCallback = callback; + callback = function (event) { + _this.off(event.type, selector, callback); + // eslint-disable-next-line prefer-rest-params + return origCallback.apply(this, arguments); + }; + } + return this.each(function () { + add(this, types, callback, data, selector); + }); +}; + +each(ajaxEvents, (name, eventName) => { + $.fn[name] = function (fn) { + return this.on(eventName, (e, params) => { + fn(e, params.xhr, params.options, params.data); + }); + }; +}); + +$.fn.map = function (callback) { + return new JQ(map(this, (element, i) => callback.call(element, i, element))); +}; + +$.fn.clone = function () { + return this.map(function () { + return this.cloneNode(true); + }); +}; + +$.fn.is = function (selector) { + let isMatched = false; + if (isFunction(selector)) { + this.each((index, element) => { + if (selector.call(element, index, element)) { + isMatched = true; + } + }); + return isMatched; + } + if (isString(selector)) { + this.each((_, element) => { + if (isDocument(element) || isWindow(element)) { + return; + } + // @ts-ignore + const matches = element.matches || element.msMatchesSelector; + if (matches.call(element, selector)) { + isMatched = true; + } + }); + return isMatched; + } + const $compareWith = $(selector); + this.each((_, element) => { + $compareWith.each((_, compare) => { + if (element === compare) { + isMatched = true; + } + }); + }); + return isMatched; +}; + +$.fn.remove = function (selector) { + return this.each((_, element) => { + if (element.parentNode && (!selector || $(element).is(selector))) { + element.parentNode.removeChild(element); + } + }); +}; + +each(['prepend', 'append'], (nameIndex, name) => { + $.fn[name] = function (...args) { + return this.each((index, element) => { + const childNodes = element.childNodes; + const childLength = childNodes.length; + const child = childLength + ? childNodes[nameIndex ? childLength - 1 : 0] + : document.createElement('div'); + if (!childLength) { + element.appendChild(child); + } + let contents = isFunction(args[0]) + ? [args[0].call(element, index, element.innerHTML)] + : args; + // 如果不是字符串,则仅第一个元素使用原始元素,其他的都克隆自第一个元素 + if (index) { + contents = contents.map((content) => { + return isString(content) ? content : $(content).clone(); + }); + } + $(child)[nameIndex ? 'after' : 'before'](...contents); + if (!childLength) { + element.removeChild(child); + } + }); + }; +}); + +each(['appendTo', 'prependTo'], (nameIndex, name) => { + $.fn[name] = function (target) { + const extraChilds = []; + const $target = $(target).map((_, element) => { + const childNodes = element.childNodes; + const childLength = childNodes.length; + if (childLength) { + return childNodes[nameIndex ? 0 : childLength - 1]; + } + const child = document.createElement('div'); + element.appendChild(child); + extraChilds.push(child); + return child; + }); + const $result = this[nameIndex ? 'insertBefore' : 'insertAfter']($target); + $(extraChilds).remove(); + return $result; + }; +}); + +each(['attr', 'prop', 'css'], (nameIndex, name) => { + function set(element, key, value) { + // 值为 undefined 时,不修改 + if (isUndefined(value)) { + return; + } + switch (nameIndex) { + // attr + case 0: + if (isNull(value)) { + element.removeAttribute(key); + } + else { + element.setAttribute(key, value); + } + break; + // prop + case 1: + // @ts-ignore + element[key] = value; + break; + // css + default: + key = toCamelCase(key); + // @ts-ignore + element.style[key] = isNumber(value) + ? `${value}${cssNumber.indexOf(key) > -1 ? '' : 'px'}` + : value; + break; + } + } + function get(element, key) { + switch (nameIndex) { + // attr + case 0: + // 属性不存在时,原生 getAttribute 方法返回 null,而 jquery 返回 undefined。这里和 jquery 保持一致 + const value = element.getAttribute(key); + return isNull(value) ? undefined : value; + // prop + case 1: + // @ts-ignore + return element[key]; + // css + default: + return getStyle(element, key); + } + } + $.fn[name] = function (key, value) { + if (isObjectLike(key)) { + each(key, (k, v) => { + // @ts-ignore + this[name](k, v); + }); + return this; + } + if (arguments.length === 1) { + const element = this[0]; + return isElement(element) ? get(element, key) : undefined; + } + return this.each((i, element) => { + set(element, key, isFunction(value) ? value.call(element, i, get(element, key)) : value); + }); + }; +}); + +$.fn.children = function (selector) { + const children = []; + this.each((_, element) => { + each(element.childNodes, (__, childNode) => { + if (!isElement(childNode)) { + return; + } + if (!selector || $(childNode).is(selector)) { + children.push(childNode); + } + }); + }); + return new JQ(unique(children)); +}; + +$.fn.slice = function (...args) { + return new JQ([].slice.apply(this, args)); +}; + +$.fn.eq = function (index) { + const ret = index === -1 ? this.slice(index) : this.slice(index, +index + 1); + return new JQ(ret); +}; + +function dir($elements, nameIndex, node, selector, filter) { + const ret = []; + let target; + $elements.each((_, element) => { + target = element[node]; + // 不能包含最顶层的 document 元素 + while (target && isElement(target)) { + // prevUntil, nextUntil, parentsUntil + if (nameIndex === 2) { + if (selector && $(target).is(selector)) { + break; + } + if (!filter || $(target).is(filter)) { + ret.push(target); + } + } + // prev, next, parent + else if (nameIndex === 0) { + if (!selector || $(target).is(selector)) { + ret.push(target); + } + break; + } + // prevAll, nextAll, parents + else { + if (!selector || $(target).is(selector)) { + ret.push(target); + } + } + // @ts-ignore + target = target[node]; + } + }); + return new JQ(unique(ret)); +} + +each(['', 's', 'sUntil'], (nameIndex, name) => { + $.fn[`parent${name}`] = function (selector, filter) { + // parents、parentsUntil 需要把元素的顺序反向处理,以便和 jQuery 的结果一致 + const $nodes = !nameIndex ? this : $(this.get().reverse()); + return dir($nodes, nameIndex, 'parentNode', selector, filter); + }; +}); + +$.fn.closest = function (selector) { + if (this.is(selector)) { + return this; + } + const matched = []; + this.parents().each((_, element) => { + if ($(element).is(selector)) { + matched.push(element); + return false; + } + }); + return new JQ(matched); +}; + +const rbrace = /^(?:{[\w\W]*\}|\[[\w\W]*\])$/; +// 从 `data-*` 中获取的值,需要经过该函数转换 +function getData(value) { + if (value === 'true') { + return true; + } + if (value === 'false') { + return false; + } + if (value === 'null') { + return null; + } + if (value === +value + '') { + return +value; + } + if (rbrace.test(value)) { + return JSON.parse(value); + } + return value; +} +// 若 value 不存在,则从 `data-*` 中获取值 +function dataAttr(element, key, value) { + if (isUndefined(value) && element.nodeType === 1) { + const name = 'data-' + toKebabCase(key); + value = element.getAttribute(name); + if (isString(value)) { + try { + value = getData(value); + } + catch (e) { } + } + else { + value = undefined; + } + } + return value; +} +$.fn.data = function (key, value) { + // 获取所有值 + if (isUndefined(key)) { + if (!this.length) { + return undefined; + } + const element = this[0]; + const resultData = data(element); + // window, document 上不存在 `data-*` 属性 + if (element.nodeType !== 1) { + return resultData; + } + // 从 `data-*` 中获取值 + const attrs = element.attributes; + let i = attrs.length; + while (i--) { + if (attrs[i]) { + let name = attrs[i].name; + if (name.indexOf('data-') === 0) { + name = toCamelCase(name.slice(5)); + resultData[name] = dataAttr(element, name, resultData[name]); + } + } + } + return resultData; + } + // 同时设置多个值 + if (isObjectLike(key)) { + return this.each(function () { + data(this, key); + }); + } + // value 传入了 undefined + if (arguments.length === 2 && isUndefined(value)) { + return this; + } + // 设置值 + if (!isUndefined(value)) { + return this.each(function () { + data(this, key, value); + }); + } + // 获取值 + if (!this.length) { + return undefined; + } + return dataAttr(this[0], key, data(this[0], key)); +}; + +$.fn.empty = function () { + return this.each(function () { + this.innerHTML = ''; + }); +}; + +$.fn.extend = function (obj) { + each(obj, (prop, value) => { + // 在 JQ 对象上扩展方法时,需要自己添加 typescript 的类型定义 + $.fn[prop] = value; + }); + return this; +}; + +$.fn.filter = function (selector) { + if (isFunction(selector)) { + return this.map((index, element) => selector.call(element, index, element) ? element : undefined); + } + if (isString(selector)) { + return this.map((_, element) => $(element).is(selector) ? element : undefined); + } + const $selector = $(selector); + return this.map((_, element) => $selector.get().indexOf(element) > -1 ? element : undefined); +}; + +$.fn.first = function () { + return this.eq(0); +}; + +$.fn.has = function (selector) { + const $targets = isString(selector) ? this.find(selector) : $(selector); + const { length } = $targets; + return this.map(function () { + for (let i = 0; i < length; i += 1) { + if (contains(this, $targets[i])) { + return this; + } + } + return; + }); +}; + +$.fn.hasClass = function (className) { + return this[0].classList.contains(className); +}; + +/** + * 值上面的 padding、border、margin 处理 + * @param element + * @param name + * @param value + * @param funcIndex + * @param includeMargin + * @param multiply + */ +function handleExtraWidth(element, name, value, funcIndex, includeMargin, multiply) { + // 获取元素的 padding, border, margin 宽度(两侧宽度的和) + const getExtraWidthValue = (extra) => { + return (getExtraWidth(element, name.toLowerCase(), extra) * + multiply); + }; + if (funcIndex === 2 && includeMargin) { + value += getExtraWidthValue('margin'); + } + if (isBorderBox(element)) { + // IE 为 box-sizing: border-box 时,得到的值不含 border 和 padding,这里先修复 + // 仅获取时需要处理,multiply === 1 为 get + if (isIE() && multiply === 1) { + value += getExtraWidthValue('border'); + value += getExtraWidthValue('padding'); + } + if (funcIndex === 0) { + value -= getExtraWidthValue('border'); + } + if (funcIndex === 1) { + value -= getExtraWidthValue('border'); + value -= getExtraWidthValue('padding'); + } + } + else { + if (funcIndex === 0) { + value += getExtraWidthValue('padding'); + } + if (funcIndex === 2) { + value += getExtraWidthValue('border'); + value += getExtraWidthValue('padding'); + } + } + return value; +} +/** + * 获取元素的样式值 + * @param element + * @param name + * @param funcIndex 0: innerWidth, innerHeight; 1: width, height; 2: outerWidth, outerHeight + * @param includeMargin + */ +function get(element, name, funcIndex, includeMargin) { + const clientProp = `client${name}`; + const scrollProp = `scroll${name}`; + const offsetProp = `offset${name}`; + const innerProp = `inner${name}`; + // $(window).width() + if (isWindow(element)) { + // outerWidth, outerHeight 需要包含滚动条的宽度 + return funcIndex === 2 + ? element[innerProp] + : toElement(document)[clientProp]; + } + // $(document).width() + if (isDocument(element)) { + const doc = toElement(element); + return Math.max( + // @ts-ignore + element.body[scrollProp], doc[scrollProp], + // @ts-ignore + element.body[offsetProp], doc[offsetProp], doc[clientProp]); + } + const value = parseFloat(getComputedStyleValue(element, name.toLowerCase()) || '0'); + return handleExtraWidth(element, name, value, funcIndex, includeMargin, 1); +} +/** + * 设置元素的样式值 + * @param element + * @param elementIndex + * @param name + * @param funcIndex 0: innerWidth, innerHeight; 1: width, height; 2: outerWidth, outerHeight + * @param includeMargin + * @param value + */ +function set(element, elementIndex, name, funcIndex, includeMargin, value) { + let computedValue = isFunction(value) + ? value.call(element, elementIndex, get(element, name, funcIndex, includeMargin)) + : value; + if (computedValue == null) { + return; + } + const $element = $(element); + const dimension = name.toLowerCase(); + // 特殊的值,不需要计算 padding、border、margin + if (['auto', 'inherit', ''].indexOf(computedValue) > -1) { + $element.css(dimension, computedValue); + return; + } + // 其他值保留原始单位。注意:如果不使用 px 作为单位,则算出的值一般是不准确的 + const suffix = computedValue.toString().replace(/\b[0-9.]*/, ''); + const numerical = parseFloat(computedValue); + computedValue = + handleExtraWidth(element, name, numerical, funcIndex, includeMargin, -1) + + (suffix || 'px'); + $element.css(dimension, computedValue); +} +each(['Width', 'Height'], (_, name) => { + each([`inner${name}`, name.toLowerCase(), `outer${name}`], (funcIndex, funcName) => { + $.fn[funcName] = function (margin, value) { + // 是否是赋值操作 + const isSet = arguments.length && (funcIndex < 2 || !isBoolean(margin)); + const includeMargin = margin === true || value === true; + // 获取第一个元素的值 + if (!isSet) { + return this.length + ? get(this[0], name, funcIndex, includeMargin) + : undefined; + } + // 设置每个元素的值 + return this.each((index, element) => set(element, index, name, funcIndex, includeMargin, margin)); + }; + }); +}); + +$.fn.hide = function () { + return this.each(function () { + this.style.display = 'none'; + }); +}; + +each(['val', 'html', 'text'], (nameIndex, name) => { + const props = { + 0: 'value', + 1: 'innerHTML', + 2: 'textContent', + }; + const propName = props[nameIndex]; + function get($elements) { + // text() 获取所有元素的文本 + if (nameIndex === 2) { + // @ts-ignore + return map($elements, (element) => toElement(element)[propName]).join(''); + } + // 空集合时,val() 和 html() 返回 undefined + if (!$elements.length) { + return undefined; + } + // val() 和 html() 仅获取第一个元素的内容 + const firstElement = $elements[0]; + // select multiple 返回数组 + if (nameIndex === 0 && $(firstElement).is('select[multiple]')) { + return map($(firstElement).find('option:checked'), (element) => element.value); + } + // @ts-ignore + return firstElement[propName]; + } + function set(element, value) { + // text() 和 html() 赋值为 undefined,则保持原内容不变 + // val() 赋值为 undefined 则赋值为空 + if (isUndefined(value)) { + if (nameIndex !== 0) { + return; + } + value = ''; + } + if (nameIndex === 1 && isElement(value)) { + value = value.outerHTML; + } + // @ts-ignore + element[propName] = value; + } + $.fn[name] = function (value) { + // 获取值 + if (!arguments.length) { + return get(this); + } + // 设置值 + return this.each((i, element) => { + const computedValue = isFunction(value) + ? value.call(element, i, get($(element))) + : value; + // value 是数组,则选中数组中的元素,反选不在数组中的元素 + if (nameIndex === 0 && Array.isArray(computedValue)) { + // select[multiple] + if ($(element).is('select[multiple]')) { + map($(element).find('option'), (option) => (option.selected = + computedValue.indexOf(option.value) > + -1)); + } + // 其他 checkbox, radio 等元素 + else { + element.checked = + computedValue.indexOf(element.value) > -1; + } + } + else { + set(element, computedValue); + } + }); + }; +}); + +$.fn.index = function (selector) { + if (!arguments.length) { + return this.eq(0).parent().children().get().indexOf(this[0]); + } + if (isString(selector)) { + return $(selector).get().indexOf(this[0]); + } + return this.get().indexOf($(selector)[0]); +}; + +$.fn.last = function () { + return this.eq(-1); +}; + +each(['', 'All', 'Until'], (nameIndex, name) => { + $.fn[`next${name}`] = function (selector, filter) { + return dir(this, nameIndex, 'nextElementSibling', selector, filter); + }; +}); + +$.fn.not = function (selector) { + const $excludes = this.filter(selector); + return this.map((_, element) => $excludes.index(element) > -1 ? undefined : element); +}; + +/** + * 返回最近的用于定位的父元素 + */ +$.fn.offsetParent = function () { + return this.map(function () { + let offsetParent = this.offsetParent; + while (offsetParent && $(offsetParent).css('position') === 'static') { + offsetParent = offsetParent.offsetParent; + } + return offsetParent || document.documentElement; + }); +}; + +function floatStyle($element, name) { + return parseFloat($element.css(name)); +} +$.fn.position = function () { + if (!this.length) { + return undefined; + } + const $element = this.eq(0); + let currentOffset; + let parentOffset = { + left: 0, + top: 0, + }; + if ($element.css('position') === 'fixed') { + currentOffset = $element[0].getBoundingClientRect(); + } + else { + currentOffset = $element.offset(); + const $offsetParent = $element.offsetParent(); + parentOffset = $offsetParent.offset(); + parentOffset.top += floatStyle($offsetParent, 'border-top-width'); + parentOffset.left += floatStyle($offsetParent, 'border-left-width'); + } + return { + top: currentOffset.top - parentOffset.top - floatStyle($element, 'margin-top'), + left: currentOffset.left - + parentOffset.left - + floatStyle($element, 'margin-left'), + }; +}; + +function get$1(element) { + if (!element.getClientRects().length) { + return { top: 0, left: 0 }; + } + const rect = element.getBoundingClientRect(); + const win = element.ownerDocument.defaultView; + return { + top: rect.top + win.pageYOffset, + left: rect.left + win.pageXOffset, + }; +} +function set$1(element, value, index) { + const $element = $(element); + const position = $element.css('position'); + if (position === 'static') { + $element.css('position', 'relative'); + } + const currentOffset = get$1(element); + const currentTopString = $element.css('top'); + const currentLeftString = $element.css('left'); + let currentTop; + let currentLeft; + const calculatePosition = (position === 'absolute' || position === 'fixed') && + (currentTopString + currentLeftString).indexOf('auto') > -1; + if (calculatePosition) { + const currentPosition = $element.position(); + currentTop = currentPosition.top; + currentLeft = currentPosition.left; + } + else { + currentTop = parseFloat(currentTopString); + currentLeft = parseFloat(currentLeftString); + } + const computedValue = isFunction(value) + ? value.call(element, index, extend({}, currentOffset)) + : value; + $element.css({ + top: computedValue.top != null + ? computedValue.top - currentOffset.top + currentTop + : undefined, + left: computedValue.left != null + ? computedValue.left - currentOffset.left + currentLeft + : undefined, + }); +} +$.fn.offset = function (value) { + // 获取坐标 + if (!arguments.length) { + if (!this.length) { + return undefined; + } + return get$1(this[0]); + } + // 设置坐标 + return this.each(function (index) { + set$1(this, value, index); + }); +}; + +$.fn.one = function (types, selector, data, callback) { + // @ts-ignore + return this.on(types, selector, data, callback, true); +}; + +each(['', 'All', 'Until'], (nameIndex, name) => { + $.fn[`prev${name}`] = function (selector, filter) { + // prevAll、prevUntil 需要把元素的顺序倒序处理,以便和 jQuery 的结果一致 + const $nodes = !nameIndex ? this : $(this.get().reverse()); + return dir($nodes, nameIndex, 'previousElementSibling', selector, filter); + }; +}); + +$.fn.removeAttr = function (attributeName) { + const names = attributeName.split(' ').filter((name) => name); + return this.each(function () { + each(names, (_, name) => { + this.removeAttribute(name); + }); + }); +}; + +$.fn.removeData = function (name) { + return this.each(function () { + removeData(this, name); + }); +}; + +$.fn.removeProp = function (name) { + return this.each(function () { + try { + // @ts-ignore + delete this[name]; + } + catch (e) { } + }); +}; + +$.fn.replaceWith = function (newContent) { + this.each((index, element) => { + let content = newContent; + if (isFunction(content)) { + content = content.call(element, index, element.innerHTML); + } + else if (index && !isString(content)) { + content = $(content).clone(); + } + $(element).before(content); + }); + return this.remove(); +}; + +$.fn.replaceAll = function (target) { + return $(target).map((index, element) => { + $(element).replaceWith(index ? this.clone() : this); + return this.get(); + }); +}; + +/** + * 将表单元素的值组合成键值对数组 + * @returns {Array} + */ +$.fn.serializeArray = function () { + const result = []; + this.each((_, element) => { + const elements = element instanceof HTMLFormElement ? element.elements : [element]; + $(elements).each((_, element) => { + const $element = $(element); + const type = element.type; + const nodeName = element.nodeName.toLowerCase(); + if (nodeName !== 'fieldset' && + element.name && + !element.disabled && + ['input', 'select', 'textarea', 'keygen'].indexOf(nodeName) > -1 && + ['submit', 'button', 'image', 'reset', 'file'].indexOf(type) === -1 && + (['radio', 'checkbox'].indexOf(type) === -1 || + element.checked)) { + const value = $element.val(); + const valueArr = Array.isArray(value) ? value : [value]; + valueArr.forEach((value) => { + result.push({ + name: element.name, + value, + }); + }); + } + }); + }); + return result; +}; + +$.fn.serialize = function () { + return param(this.serializeArray()); +}; + +const elementDisplay = {}; +/** + * 获取元素的初始 display 值,用于 .show() 方法 + * @param nodeName + */ +function defaultDisplay(nodeName) { + let element; + let display; + if (!elementDisplay[nodeName]) { + element = document.createElement(nodeName); + document.body.appendChild(element); + display = getStyle(element, 'display'); + element.parentNode.removeChild(element); + if (display === 'none') { + display = 'block'; + } + elementDisplay[nodeName] = display; + } + return elementDisplay[nodeName]; +} +/** + * 显示指定元素 + * @returns {JQ} + */ +$.fn.show = function () { + return this.each(function () { + if (this.style.display === 'none') { + this.style.display = ''; + } + if (getStyle(this, 'display') === 'none') { + this.style.display = defaultDisplay(this.nodeName); + } + }); +}; + +/** + * 取得同辈元素的集合 + * @param selector {String=} + * @returns {JQ} + */ +$.fn.siblings = function (selector) { + return this.prevAll(selector).add(this.nextAll(selector)); +}; + +/** + * 切换元素的显示状态 + */ +$.fn.toggle = function () { + return this.each(function () { + getStyle(this, 'display') === 'none' ? $(this).show() : $(this).hide(); + }); +}; + +$.fn.reflow = function () { + return this.each(function () { + return this.clientLeft; + }); +}; + +$.fn.transition = function (duration) { + if (isNumber(duration)) { + duration = `${duration}ms`; + } + return this.each(function () { + this.style.webkitTransitionDuration = duration; + this.style.transitionDuration = duration; + }); +}; + +$.fn.transitionEnd = function (callback) { + // eslint-disable-next-line @typescript-eslint/no-this-alias + const that = this; + const events = ['webkitTransitionEnd', 'transitionend']; + function fireCallback(e) { + if (e.target !== this) { + return; + } + // @ts-ignore + callback.call(this, e); + each(events, (_, event) => { + that.off(event, fireCallback); + }); + } + each(events, (_, event) => { + that.on(event, fireCallback); + }); + return this; +}; + +$.fn.transformOrigin = function (transformOrigin) { + return this.each(function () { + this.style.webkitTransformOrigin = transformOrigin; + this.style.transformOrigin = transformOrigin; + }); +}; + +$.fn.transform = function (transform) { + return this.each(function () { + this.style.webkitTransform = transform; + this.style.transform = transform; + }); +}; + +/** + * CSS 选择器和初始化函数组成的对象 + */ +const entries = {}; +/** + * 注册并执行初始化函数 + * @param selector CSS 选择器 + * @param apiInit 初始化函数 + * @param i 元素索引 + * @param element 元素 + */ +function mutation(selector, apiInit, i, element) { + let selectors = data(element, '_mdui_mutation'); + if (!selectors) { + selectors = []; + data(element, '_mdui_mutation', selectors); + } + if (selectors.indexOf(selector) === -1) { + selectors.push(selector); + apiInit.call(element, i, element); + } +} + +$.fn.mutation = function () { + return this.each((i, element) => { + const $this = $(element); + each(entries, (selector, apiInit) => { + if ($this.is(selector)) { + mutation(selector, apiInit, i, element); + } + $this.find(selector).each((i, element) => { + mutation(selector, apiInit, i, element); + }); + }); + }); +}; + +$.showOverlay = function (zIndex) { + let $overlay = $('.mdui-overlay'); + if ($overlay.length) { + $overlay.data('_overlay_is_deleted', false); + if (!isUndefined(zIndex)) { + $overlay.css('z-index', zIndex); + } + } + else { + if (isUndefined(zIndex)) { + zIndex = 2000; + } + $overlay = $('
          ') + .appendTo(document.body) + .reflow() + .css('z-index', zIndex); + } + let level = $overlay.data('_overlay_level') || 0; + return $overlay.data('_overlay_level', ++level).addClass('mdui-overlay-show'); +}; + +$.hideOverlay = function (force = false) { + const $overlay = $('.mdui-overlay'); + if (!$overlay.length) { + return; + } + let level = force ? 1 : $overlay.data('_overlay_level'); + if (level > 1) { + $overlay.data('_overlay_level', --level); + return; + } + $overlay + .data('_overlay_level', 0) + .removeClass('mdui-overlay-show') + .data('_overlay_is_deleted', true) + .transitionEnd(() => { + if ($overlay.data('_overlay_is_deleted')) { + $overlay.remove(); + } + }); +}; + +$.lockScreen = function () { + const $body = $('body'); + // 不直接把 body 设为 box-sizing: border-box,避免污染全局样式 + const newBodyWidth = $body.width(); + let level = $body.data('_lockscreen_level') || 0; + $body + .addClass('mdui-locked') + .width(newBodyWidth) + .data('_lockscreen_level', ++level); +}; + +$.unlockScreen = function (force = false) { + const $body = $('body'); + let level = force ? 1 : $body.data('_lockscreen_level'); + if (level > 1) { + $body.data('_lockscreen_level', --level); + return; + } + $body.data('_lockscreen_level', 0).removeClass('mdui-locked').width(''); +}; + +$.throttle = function (fn, delay = 16) { + let timer = null; + return function (...args) { + if (isNull(timer)) { + timer = setTimeout(() => { + fn.apply(this, args); + timer = null; + }, delay); + } + }; +}; + +const GUID = {}; +$.guid = function (name) { + if (!isUndefined(name) && !isUndefined(GUID[name])) { + return GUID[name]; + } + function s4() { + return Math.floor((1 + Math.random()) * 0x10000) + .toString(16) + .substring(1); + } + const guid = '_' + + s4() + + s4() + + '-' + + s4() + + '-' + + s4() + + '-' + + s4() + + '-' + + s4() + + s4() + + s4(); + if (!isUndefined(name)) { + GUID[name] = guid; + } + return guid; +}; + +mdui.mutation = function (selector, apiInit) { + if (isUndefined(selector) || isUndefined(apiInit)) { + $(document).mutation(); + return; + } + entries[selector] = apiInit; + $(selector).each((i, element) => mutation(selector, apiInit, i, element)); +}; + +/** + * 触发组件上的事件 + * @param eventName 事件名 + * @param componentName 组件名 + * @param target 在该元素上触发事件 + * @param instance 组件实例 + * @param parameters 事件参数 + */ +function componentEvent(eventName, componentName, target, instance, parameters) { + if (!parameters) { + parameters = {}; + } + // @ts-ignore + parameters.inst = instance; + const fullEventName = `${eventName}.mdui.${componentName}`; + // jQuery 事件 + // @ts-ignore + if (typeof jQuery !== 'undefined') { + // @ts-ignore + jQuery(target).trigger(fullEventName, parameters); + } + const $target = $(target); + // mdui.jq 事件 + $target.trigger(fullEventName, parameters); + const eventParams = { + bubbles: true, + cancelable: true, + detail: parameters, + }; + const eventObject = new CustomEvent(fullEventName, eventParams); + // @ts-ignore + eventObject._detail = parameters; + $target[0].dispatchEvent(eventObject); +} + +const $document = $(document); +const $window = $(window); +const $body = $('body'); + +const DEFAULT_OPTIONS = { + tolerance: 5, + offset: 0, + initialClass: 'mdui-headroom', + pinnedClass: 'mdui-headroom-pinned-top', + unpinnedClass: 'mdui-headroom-unpinned-top', +}; +class Headroom { + constructor(selector, options = {}) { + /** + * 配置参数 + */ + this.options = extend({}, DEFAULT_OPTIONS); + /** + * 当前 headroom 的状态 + */ + this.state = 'pinned'; + /** + * 当前是否启用 + */ + this.isEnable = false; + /** + * 上次滚动后,垂直方向的距离 + */ + this.lastScrollY = 0; + /** + * AnimationFrame ID + */ + this.rafId = 0; + this.$element = $(selector).first(); + extend(this.options, options); + // tolerance 参数若为数值,转换为对象 + const tolerance = this.options.tolerance; + if (isNumber(tolerance)) { + this.options.tolerance = { + down: tolerance, + up: tolerance, + }; + } + this.enable(); + } + /** + * 滚动时的处理 + */ + onScroll() { + this.rafId = window.requestAnimationFrame(() => { + const currentScrollY = window.pageYOffset; + const direction = currentScrollY > this.lastScrollY ? 'down' : 'up'; + const tolerance = this.options.tolerance[direction]; + const scrolled = Math.abs(currentScrollY - this.lastScrollY); + const toleranceExceeded = scrolled >= tolerance; + if (currentScrollY > this.lastScrollY && + currentScrollY >= this.options.offset && + toleranceExceeded) { + this.unpin(); + } + else if ((currentScrollY < this.lastScrollY && toleranceExceeded) || + currentScrollY <= this.options.offset) { + this.pin(); + } + this.lastScrollY = currentScrollY; + }); + } + /** + * 触发组件事件 + * @param name + */ + triggerEvent(name) { + componentEvent(name, 'headroom', this.$element, this); + } + /** + * 动画结束的回调 + */ + transitionEnd() { + if (this.state === 'pinning') { + this.state = 'pinned'; + this.triggerEvent('pinned'); + } + if (this.state === 'unpinning') { + this.state = 'unpinned'; + this.triggerEvent('unpinned'); + } + } + /** + * 使元素固定住 + */ + pin() { + if (this.state === 'pinning' || + this.state === 'pinned' || + !this.$element.hasClass(this.options.initialClass)) { + return; + } + this.triggerEvent('pin'); + this.state = 'pinning'; + this.$element + .removeClass(this.options.unpinnedClass) + .addClass(this.options.pinnedClass) + .transitionEnd(() => this.transitionEnd()); + } + /** + * 使元素隐藏 + */ + unpin() { + if (this.state === 'unpinning' || + this.state === 'unpinned' || + !this.$element.hasClass(this.options.initialClass)) { + return; + } + this.triggerEvent('unpin'); + this.state = 'unpinning'; + this.$element + .removeClass(this.options.pinnedClass) + .addClass(this.options.unpinnedClass) + .transitionEnd(() => this.transitionEnd()); + } + /** + * 启用 headroom 插件 + */ + enable() { + if (this.isEnable) { + return; + } + this.isEnable = true; + this.state = 'pinned'; + this.$element + .addClass(this.options.initialClass) + .removeClass(this.options.pinnedClass) + .removeClass(this.options.unpinnedClass); + this.lastScrollY = window.pageYOffset; + $window.on('scroll', () => this.onScroll()); + } + /** + * 禁用 headroom 插件 + */ + disable() { + if (!this.isEnable) { + return; + } + this.isEnable = false; + this.$element + .removeClass(this.options.initialClass) + .removeClass(this.options.pinnedClass) + .removeClass(this.options.unpinnedClass); + $window.off('scroll', () => this.onScroll()); + window.cancelAnimationFrame(this.rafId); + } + /** + * 获取当前状态。共包含四种状态:`pinning`、`pinned`、`unpinning`、`unpinned` + */ + getState() { + return this.state; + } +} +mdui.Headroom = Headroom; + +/** + * 解析 DATA API 参数 + * @param element 元素 + * @param name 属性名 + */ +function parseOptions(element, name) { + const attr = $(element).attr(name); + if (!attr) { + return {}; + } + return new Function('', `var json = ${attr}; return JSON.parse(JSON.stringify(json));`)(); +} + +const customAttr = 'mdui-headroom'; +$(() => { + mdui.mutation(`[${customAttr}]`, function () { + new mdui.Headroom(this, parseOptions(this, customAttr)); + }); +}); + +const DEFAULT_OPTIONS$1 = { + accordion: false, +}; +class CollapseAbstract { + constructor(selector, options = {}) { + /** + * 配置参数 + */ + this.options = extend({}, DEFAULT_OPTIONS$1); + // CSS 类名 + const classPrefix = `mdui-${this.getNamespace()}-item`; + this.classItem = classPrefix; + this.classItemOpen = `${classPrefix}-open`; + this.classHeader = `${classPrefix}-header`; + this.classBody = `${classPrefix}-body`; + this.$element = $(selector).first(); + extend(this.options, options); + this.bindEvent(); + } + /** + * 绑定事件 + */ + bindEvent() { + // eslint-disable-next-line @typescript-eslint/no-this-alias + const that = this; + // 点击 header 时,打开/关闭 item + this.$element.on('click', `.${this.classHeader}`, function () { + const $header = $(this); + const $item = $header.parent(); + const $items = that.getItems(); + $items.each((_, item) => { + if ($item.is(item)) { + that.toggle(item); + } + }); + }); + // 点击关闭按钮时,关闭 item + this.$element.on('click', `[mdui-${this.getNamespace()}-item-close]`, function () { + const $target = $(this); + const $item = $target.parents(`.${that.classItem}`).first(); + that.close($item); + }); + } + /** + * 指定 item 是否处于打开状态 + * @param $item + */ + isOpen($item) { + return $item.hasClass(this.classItemOpen); + } + /** + * 获取所有 item + */ + getItems() { + return this.$element.children(`.${this.classItem}`); + } + /** + * 获取指定 item + * @param item + */ + getItem(item) { + if (isNumber(item)) { + return this.getItems().eq(item); + } + return $(item).first(); + } + /** + * 触发组件事件 + * @param name 事件名 + * @param $item 事件触发的目标 item + */ + triggerEvent(name, $item) { + componentEvent(name, this.getNamespace(), $item, this); + } + /** + * 动画结束回调 + * @param $content body 元素 + * @param $item item 元素 + */ + transitionEnd($content, $item) { + if (this.isOpen($item)) { + $content.transition(0).height('auto').reflow().transition(''); + this.triggerEvent('opened', $item); + } + else { + $content.height(''); + this.triggerEvent('closed', $item); + } + } + /** + * 打开指定面板项 + * @param item 面板项的索引号、或 CSS 选择器、或 DOM 元素、或 JQ 对象 + */ + open(item) { + const $item = this.getItem(item); + if (this.isOpen($item)) { + return; + } + // 关闭其他项 + if (this.options.accordion) { + this.$element.children(`.${this.classItemOpen}`).each((_, element) => { + const $element = $(element); + if (!$element.is($item)) { + this.close($element); + } + }); + } + const $content = $item.children(`.${this.classBody}`); + $content + .height($content[0].scrollHeight) + .transitionEnd(() => this.transitionEnd($content, $item)); + this.triggerEvent('open', $item); + $item.addClass(this.classItemOpen); + } + /** + * 关闭指定面板项 + * @param item 面板项的索引号、或 CSS 选择器、或 DOM 元素、或 JQ 对象 + */ + close(item) { + const $item = this.getItem(item); + if (!this.isOpen($item)) { + return; + } + const $content = $item.children(`.${this.classBody}`); + this.triggerEvent('close', $item); + $item.removeClass(this.classItemOpen); + $content + .transition(0) + .height($content[0].scrollHeight) + .reflow() + .transition('') + .height('') + .transitionEnd(() => this.transitionEnd($content, $item)); + } + /** + * 切换指定面板项的打开状态 + * @param item 面板项的索引号、或 CSS 选择器、或 DOM 元素、或 JQ 对象 + */ + toggle(item) { + const $item = this.getItem(item); + this.isOpen($item) ? this.close($item) : this.open($item); + } + /** + * 打开所有面板项 + */ + openAll() { + this.getItems().each((_, element) => this.open(element)); + } + /** + * 关闭所有面板项 + */ + closeAll() { + this.getItems().each((_, element) => this.close(element)); + } +} + +class Collapse extends CollapseAbstract { + getNamespace() { + return 'collapse'; + } +} +mdui.Collapse = Collapse; + +const customAttr$1 = 'mdui-collapse'; +$(() => { + mdui.mutation(`[${customAttr$1}]`, function () { + new mdui.Collapse(this, parseOptions(this, customAttr$1)); + }); +}); + +class Panel extends CollapseAbstract { + getNamespace() { + return 'panel'; + } +} +mdui.Panel = Panel; + +const customAttr$2 = 'mdui-panel'; +$(() => { + mdui.mutation(`[${customAttr$2}]`, function () { + new mdui.Panel(this, parseOptions(this, customAttr$2)); + }); +}); + +class Table { + constructor(selector) { + /** + * 表头 tr 元素 + */ + this.$thRow = $(); + /** + * 表格 body 中的 tr 元素 + */ + this.$tdRows = $(); + /** + * 表头的 checkbox 元素 + */ + this.$thCheckbox = $(); + /** + * 表格 body 中的 checkbox 元素 + */ + this.$tdCheckboxs = $(); + /** + * 表格行是否可选择 + */ + this.selectable = false; + /** + * 已选中的行数 + */ + this.selectedRow = 0; + this.$element = $(selector).first(); + this.init(); + } + /** + * 初始化表格 + */ + init() { + this.$thRow = this.$element.find('thead tr'); + this.$tdRows = this.$element.find('tbody tr'); + this.selectable = this.$element.hasClass('mdui-table-selectable'); + this.updateThCheckbox(); + this.updateTdCheckbox(); + this.updateNumericCol(); + } + /** + * 生成 checkbox 的 HTML 结构 + * @param tag 标签名 + */ + createCheckboxHTML(tag) { + return (`<${tag} class="mdui-table-cell-checkbox">` + + '' + + ``); + } + /** + * 更新表头 checkbox 的状态 + */ + updateThCheckboxStatus() { + const checkbox = this.$thCheckbox[0]; + const selectedRow = this.selectedRow; + const tdRowsLength = this.$tdRows.length; + checkbox.checked = selectedRow === tdRowsLength; + checkbox.indeterminate = !!selectedRow && selectedRow !== tdRowsLength; + } + /** + * 更新表格行的 checkbox + */ + updateTdCheckbox() { + const rowSelectedClass = 'mdui-table-row-selected'; + this.$tdRows.each((_, row) => { + const $row = $(row); + // 移除旧的 checkbox + $row.find('.mdui-table-cell-checkbox').remove(); + if (!this.selectable) { + return; + } + // 创建 DOM + const $checkbox = $(this.createCheckboxHTML('td')) + .prependTo($row) + .find('input[type="checkbox"]'); + // 默认选中的行 + if ($row.hasClass(rowSelectedClass)) { + $checkbox[0].checked = true; + this.selectedRow++; + } + this.updateThCheckboxStatus(); + // 绑定事件 + $checkbox.on('change', () => { + if ($checkbox[0].checked) { + $row.addClass(rowSelectedClass); + this.selectedRow++; + } + else { + $row.removeClass(rowSelectedClass); + this.selectedRow--; + } + this.updateThCheckboxStatus(); + }); + this.$tdCheckboxs = this.$tdCheckboxs.add($checkbox); + }); + } + /** + * 更新表头的 checkbox + */ + updateThCheckbox() { + // 移除旧的 checkbox + this.$thRow.find('.mdui-table-cell-checkbox').remove(); + if (!this.selectable) { + return; + } + this.$thCheckbox = $(this.createCheckboxHTML('th')) + .prependTo(this.$thRow) + .find('input[type="checkbox"]') + .on('change', () => { + const isCheckedAll = this.$thCheckbox[0].checked; + this.selectedRow = isCheckedAll ? this.$tdRows.length : 0; + this.$tdCheckboxs.each((_, checkbox) => { + checkbox.checked = isCheckedAll; + }); + this.$tdRows.each((_, row) => { + isCheckedAll + ? $(row).addClass('mdui-table-row-selected') + : $(row).removeClass('mdui-table-row-selected'); + }); + }); + } + /** + * 更新数值列 + */ + updateNumericCol() { + const numericClass = 'mdui-table-col-numeric'; + this.$thRow.find('th').each((i, th) => { + const isNumericCol = $(th).hasClass(numericClass); + this.$tdRows.each((_, row) => { + const $td = $(row).find('td').eq(i); + isNumericCol + ? $td.addClass(numericClass) + : $td.removeClass(numericClass); + }); + }); + } +} +const dataName = '_mdui_table'; +$(() => { + mdui.mutation('.mdui-table', function () { + const $element = $(this); + if (!$element.data(dataName)) { + $element.data(dataName, new Table($element)); + } + }); +}); +mdui.updateTables = function (selector) { + const $elements = isUndefined(selector) ? $('.mdui-table') : $(selector); + $elements.each((_, element) => { + const $element = $(element); + const instance = $element.data(dataName); + if (instance) { + instance.init(); + } + else { + $element.data(dataName, new Table($element)); + } + }); +}; + +/** + * touch 事件后的 500ms 内禁用 mousedown 事件 + * + * 不支持触控的屏幕上事件顺序为 mousedown -> mouseup -> click + * 支持触控的屏幕上事件顺序为 touchstart -> touchend -> mousedown -> mouseup -> click + * + * 在每一个事件中都使用 TouchHandler.isAllow(event) 判断事件是否可执行 + * 在 touchstart 和 touchmove、touchend、touchcancel + * + * (function () { + * $document + * .on(start, function (e) { + * if (!isAllow(e)) { + * return; + * } + * register(e); + * console.log(e.type); + * }) + * .on(move, function (e) { + * if (!isAllow(e)) { + * return; + * } + * console.log(e.type); + * }) + * .on(end, function (e) { + * if (!isAllow(e)) { + * return; + * } + * console.log(e.type); + * }) + * .on(unlock, register); + * })(); + */ +const startEvent = 'touchstart mousedown'; +const moveEvent = 'touchmove mousemove'; +const endEvent = 'touchend mouseup'; +const cancelEvent = 'touchcancel mouseleave'; +const unlockEvent = 'touchend touchmove touchcancel'; +let touches = 0; +/** + * 该事件是否被允许,在执行事件前调用该方法判断事件是否可以执行 + * 若已触发 touch 事件,则阻止之后的鼠标事件 + * @param event + */ +function isAllow(event) { + return !(touches && + [ + 'mousedown', + 'mouseup', + 'mousemove', + 'click', + 'mouseover', + 'mouseout', + 'mouseenter', + 'mouseleave', + ].indexOf(event.type) > -1); +} +/** + * 在 touchstart 和 touchmove、touchend、touchcancel 事件中调用该方法注册事件 + * @param event + */ +function register(event) { + if (event.type === 'touchstart') { + // 触发了 touch 事件 + touches += 1; + } + else if (['touchmove', 'touchend', 'touchcancel'].indexOf(event.type) > -1) { + // touch 事件结束 500ms 后解除对鼠标事件的阻止 + setTimeout(function () { + if (touches) { + touches -= 1; + } + }, 500); + } +} + +/** + * Inspired by https://github.com/nolimits4web/Framework7/blob/master/src/js/fast-clicks.js + * https://github.com/nolimits4web/Framework7/blob/master/LICENSE + * + * Inspired by https://github.com/fians/Waves + */ +/** + * 显示涟漪动画 + * @param event + * @param $ripple + */ +function show(event, $ripple) { + // 鼠标右键不产生涟漪 + if (event instanceof MouseEvent && event.button === 2) { + return; + } + // 点击位置坐标 + const touchPosition = typeof TouchEvent !== 'undefined' && + event instanceof TouchEvent && + event.touches.length + ? event.touches[0] + : event; + const touchStartX = touchPosition.pageX; + const touchStartY = touchPosition.pageY; + // 涟漪位置 + const offset = $ripple.offset(); + const height = $ripple.innerHeight(); + const width = $ripple.innerWidth(); + const center = { + x: touchStartX - offset.left, + y: touchStartY - offset.top, + }; + const diameter = Math.max(Math.pow(Math.pow(height, 2) + Math.pow(width, 2), 0.5), 48); + // 涟漪扩散动画 + const translate = `translate3d(${-center.x + width / 2}px,` + + `${-center.y + height / 2}px, 0) scale(1)`; + // 涟漪的 DOM 结构,并缓存动画效果 + $(`
          `) + .data('_ripple_wave_translate', translate) + .prependTo($ripple) + .reflow() + .transform(translate); +} +/** + * 隐藏并移除涟漪 + * @param $wave + */ +function removeRipple($wave) { + if (!$wave.length || $wave.data('_ripple_wave_removed')) { + return; + } + $wave.data('_ripple_wave_removed', true); + let removeTimer = setTimeout(() => $wave.remove(), 400); + const translate = $wave.data('_ripple_wave_translate'); + $wave + .addClass('mdui-ripple-wave-fill') + .transform(translate.replace('scale(1)', 'scale(1.01)')) + .transitionEnd(() => { + clearTimeout(removeTimer); + $wave + .addClass('mdui-ripple-wave-out') + .transform(translate.replace('scale(1)', 'scale(1.01)')); + removeTimer = setTimeout(() => $wave.remove(), 700); + setTimeout(() => { + $wave.transitionEnd(() => { + clearTimeout(removeTimer); + $wave.remove(); + }); + }, 0); + }); +} +/** + * 隐藏涟漪动画 + * @param this + */ +function hide() { + const $ripple = $(this); + $ripple.children('.mdui-ripple-wave').each((_, wave) => { + removeRipple($(wave)); + }); + $ripple.off(`${moveEvent} ${endEvent} ${cancelEvent}`, hide); +} +/** + * 显示涟漪,并绑定 touchend 等事件 + * @param event + */ +function showRipple(event) { + if (!isAllow(event)) { + return; + } + register(event); + // Chrome 59 点击滚动条时,会在 document 上触发事件 + if (event.target === document) { + return; + } + const $target = $(event.target); + // 获取含 .mdui-ripple 类的元素 + const $ripple = $target.hasClass('mdui-ripple') + ? $target + : $target.parents('.mdui-ripple').first(); + if (!$ripple.length) { + return; + } + // 禁用状态的元素上不产生涟漪效果 + if ($ripple.prop('disabled') || !isUndefined($ripple.attr('disabled'))) { + return; + } + if (event.type === 'touchstart') { + let hidden = false; + // touchstart 触发指定时间后开始涟漪动画,避免手指滑动时也触发涟漪 + let timer = setTimeout(() => { + timer = 0; + show(event, $ripple); + }, 200); + const hideRipple = () => { + // 如果手指没有移动,且涟漪动画还没有开始,则开始涟漪动画 + if (timer) { + clearTimeout(timer); + timer = 0; + show(event, $ripple); + } + if (!hidden) { + hidden = true; + hide.call($ripple); + } + }; + // 手指移动后,移除涟漪动画 + const touchMove = () => { + if (timer) { + clearTimeout(timer); + timer = 0; + } + hideRipple(); + }; + $ripple.on('touchmove', touchMove).on('touchend touchcancel', hideRipple); + } + else { + show(event, $ripple); + $ripple.on(`${moveEvent} ${endEvent} ${cancelEvent}`, hide); + } +} +$(() => { + $document.on(startEvent, showRipple).on(unlockEvent, register); +}); + +const defaultData = { + reInit: false, + domLoadedEvent: false, +}; +/** + * 输入框事件 + * @param event + * @param data + */ +function inputEvent(event, data = {}) { + data = extend({}, defaultData, data); + const input = event.target; + const $input = $(input); + const eventType = event.type; + const value = $input.val(); + // 文本框类型 + const inputType = $input.attr('type') || ''; + if (['checkbox', 'button', 'submit', 'range', 'radio', 'image'].indexOf(inputType) > -1) { + return; + } + const $textfield = $input.parent('.mdui-textfield'); + // 输入框是否聚焦 + if (eventType === 'focus') { + $textfield.addClass('mdui-textfield-focus'); + } + if (eventType === 'blur') { + $textfield.removeClass('mdui-textfield-focus'); + } + // 输入框是否为空 + if (eventType === 'blur' || eventType === 'input') { + value + ? $textfield.addClass('mdui-textfield-not-empty') + : $textfield.removeClass('mdui-textfield-not-empty'); + } + // 输入框是否禁用 + input.disabled + ? $textfield.addClass('mdui-textfield-disabled') + : $textfield.removeClass('mdui-textfield-disabled'); + // 表单验证 + if ((eventType === 'input' || eventType === 'blur') && + !data.domLoadedEvent && + input.validity) { + input.validity.valid + ? $textfield.removeClass('mdui-textfield-invalid-html5') + : $textfield.addClass('mdui-textfield-invalid-html5'); + } + // textarea 高度自动调整 + if ($input.is('textarea')) { + // IE bug:textarea 的值仅为多个换行,不含其他内容时,textarea 的高度不准确 + // 此时,在计算高度前,在值的开头加入一个空格,计算完后,移除空格 + const inputValue = value; + let hasExtraSpace = false; + if (inputValue.replace(/[\r\n]/g, '') === '') { + $input.val(' ' + inputValue); + hasExtraSpace = true; + } + // 设置 textarea 高度 + $input.outerHeight(''); + const height = $input.outerHeight(); + const scrollHeight = input.scrollHeight; + if (scrollHeight > height) { + $input.outerHeight(scrollHeight); + } + // 计算完,还原 textarea 的值 + if (hasExtraSpace) { + $input.val(inputValue); + } + } + // 实时字数统计 + if (data.reInit) { + $textfield.find('.mdui-textfield-counter').remove(); + } + const maxLength = $input.attr('maxlength'); + if (maxLength) { + if (data.reInit || data.domLoadedEvent) { + $('
          ' + + ` / ${maxLength}` + + '
          ').appendTo($textfield); + } + $textfield + .find('.mdui-textfield-counter-inputed') + .text(value.length.toString()); + } + // 含 帮助文本、错误提示、字数统计 时,增加文本框底部内边距 + if ($textfield.find('.mdui-textfield-helper').length || + $textfield.find('.mdui-textfield-error').length || + maxLength) { + $textfield.addClass('mdui-textfield-has-bottom'); + } +} +$(() => { + // 绑定事件 + $document.on('input focus blur', '.mdui-textfield-input', { useCapture: true }, inputEvent); + // 可展开文本框展开 + $document.on('click', '.mdui-textfield-expandable .mdui-textfield-icon', function () { + $(this) + .parents('.mdui-textfield') + .addClass('mdui-textfield-expanded') + .find('.mdui-textfield-input')[0] + .focus(); + }); + // 可展开文本框关闭 + $document.on('click', '.mdui-textfield-expanded .mdui-textfield-close', function () { + $(this) + .parents('.mdui-textfield') + .removeClass('mdui-textfield-expanded') + .find('.mdui-textfield-input') + .val(''); + }); + /** + * 初始化文本框 + */ + mdui.mutation('.mdui-textfield', function () { + $(this).find('.mdui-textfield-input').trigger('input', { + domLoadedEvent: true, + }); + }); +}); +mdui.updateTextFields = function (selector) { + const $elements = isUndefined(selector) ? $('.mdui-textfield') : $(selector); + $elements.each((_, element) => { + $(element).find('.mdui-textfield-input').trigger('input', { + reInit: true, + }); + }); +}; + +/** + * 滑块的值改变后修改滑块样式 + * @param $slider + */ +function updateValueStyle($slider) { + const data = $slider.data(); + const $track = data._slider_$track; + const $fill = data._slider_$fill; + const $thumb = data._slider_$thumb; + const $input = data._slider_$input; + const min = data._slider_min; + const max = data._slider_max; + const isDisabled = data._slider_disabled; + const isDiscrete = data._slider_discrete; + const $thumbText = data._slider_$thumbText; + const value = $input.val(); + const percent = ((value - min) / (max - min)) * 100; + $fill.width(`${percent}%`); + $track.width(`${100 - percent}%`); + if (isDisabled) { + $fill.css('padding-right', '6px'); + $track.css('padding-left', '6px'); + } + $thumb.css('left', `${percent}%`); + if (isDiscrete) { + $thumbText.text(value); + } + percent === 0 + ? $slider.addClass('mdui-slider-zero') + : $slider.removeClass('mdui-slider-zero'); +} +/** + * 重新初始化滑块 + * @param $slider + */ +function reInit($slider) { + const $track = $('
          '); + const $fill = $('
          '); + const $thumb = $('
          '); + const $input = $slider.find('input[type="range"]'); + const isDisabled = $input[0].disabled; + const isDiscrete = $slider.hasClass('mdui-slider-discrete'); + // 禁用状态 + isDisabled + ? $slider.addClass('mdui-slider-disabled') + : $slider.removeClass('mdui-slider-disabled'); + // 重新填充 HTML + $slider.find('.mdui-slider-track').remove(); + $slider.find('.mdui-slider-fill').remove(); + $slider.find('.mdui-slider-thumb').remove(); + $slider.append($track).append($fill).append($thumb); + // 间续型滑块 + let $thumbText = $(); + if (isDiscrete) { + $thumbText = $(''); + $thumb.empty().append($thumbText); + } + $slider.data('_slider_$track', $track); + $slider.data('_slider_$fill', $fill); + $slider.data('_slider_$thumb', $thumb); + $slider.data('_slider_$input', $input); + $slider.data('_slider_min', $input.attr('min')); + $slider.data('_slider_max', $input.attr('max')); + $slider.data('_slider_disabled', isDisabled); + $slider.data('_slider_discrete', isDiscrete); + $slider.data('_slider_$thumbText', $thumbText); + // 设置默认值 + updateValueStyle($slider); +} +const rangeSelector = '.mdui-slider input[type="range"]'; +$(() => { + // 滑块滑动事件 + $document.on('input change', rangeSelector, function () { + const $slider = $(this).parent(); + updateValueStyle($slider); + }); + // 开始触摸滑块事件 + $document.on(startEvent, rangeSelector, function (event) { + if (!isAllow(event)) { + return; + } + register(event); + if (this.disabled) { + return; + } + const $slider = $(this).parent(); + $slider.addClass('mdui-slider-focus'); + }); + // 结束触摸滑块事件 + $document.on(endEvent, rangeSelector, function (event) { + if (!isAllow(event)) { + return; + } + if (this.disabled) { + return; + } + const $slider = $(this).parent(); + $slider.removeClass('mdui-slider-focus'); + }); + $document.on(unlockEvent, rangeSelector, register); + /** + * 初始化滑块 + */ + mdui.mutation('.mdui-slider', function () { + reInit($(this)); + }); +}); +mdui.updateSliders = function (selector) { + const $elements = isUndefined(selector) ? $('.mdui-slider') : $(selector); + $elements.each((_, element) => { + reInit($(element)); + }); +}; + +const DEFAULT_OPTIONS$2 = { + trigger: 'hover', +}; +class Fab { + constructor(selector, options = {}) { + /** + * 配置参数 + */ + this.options = extend({}, DEFAULT_OPTIONS$2); + /** + * 当前 fab 的状态 + */ + this.state = 'closed'; + this.$element = $(selector).first(); + extend(this.options, options); + this.$btn = this.$element.find('.mdui-fab'); + this.$dial = this.$element.find('.mdui-fab-dial'); + this.$dialBtns = this.$dial.find('.mdui-fab'); + if (this.options.trigger === 'hover') { + this.$btn.on('touchstart mouseenter', () => this.open()); + this.$element.on('mouseleave', () => this.close()); + } + if (this.options.trigger === 'click') { + this.$btn.on(startEvent, () => this.open()); + } + // 触摸屏幕其他地方关闭快速拨号 + $document.on(startEvent, (event) => { + if ($(event.target).parents('.mdui-fab-wrapper').length) { + return; + } + this.close(); + }); + } + /** + * 触发组件事件 + * @param name + */ + triggerEvent(name) { + componentEvent(name, 'fab', this.$element, this); + } + /** + * 当前是否为打开状态 + */ + isOpen() { + return this.state === 'opening' || this.state === 'opened'; + } + /** + * 打开快速拨号菜单 + */ + open() { + if (this.isOpen()) { + return; + } + // 为菜单中的按钮添加不同的 transition-delay + this.$dialBtns.each((index, btn) => { + const delay = `${15 * (this.$dialBtns.length - index)}ms`; + btn.style.transitionDelay = delay; + btn.style.webkitTransitionDelay = delay; + }); + this.$dial.css('height', 'auto').addClass('mdui-fab-dial-show'); + // 如果按钮中存在 .mdui-fab-opened 的图标,则进行图标切换 + if (this.$btn.find('.mdui-fab-opened').length) { + this.$btn.addClass('mdui-fab-opened'); + } + this.state = 'opening'; + this.triggerEvent('open'); + // 打开顺序为从下到上逐个打开,最上面的打开后才表示动画完成 + this.$dialBtns.first().transitionEnd(() => { + if (this.$btn.hasClass('mdui-fab-opened')) { + this.state = 'opened'; + this.triggerEvent('opened'); + } + }); + } + /** + * 关闭快速拨号菜单 + */ + close() { + if (!this.isOpen()) { + return; + } + // 为菜单中的按钮添加不同的 transition-delay + this.$dialBtns.each((index, btn) => { + const delay = `${15 * index}ms`; + btn.style.transitionDelay = delay; + btn.style.webkitTransitionDelay = delay; + }); + this.$dial.removeClass('mdui-fab-dial-show'); + this.$btn.removeClass('mdui-fab-opened'); + this.state = 'closing'; + this.triggerEvent('close'); + // 从上往下依次关闭,最后一个关闭后才表示动画完成 + this.$dialBtns.last().transitionEnd(() => { + if (this.$btn.hasClass('mdui-fab-opened')) { + return; + } + this.state = 'closed'; + this.triggerEvent('closed'); + this.$dial.css('height', 0); + }); + } + /** + * 切换快速拨号菜单的打开状态 + */ + toggle() { + this.isOpen() ? this.close() : this.open(); + } + /** + * 以动画的形式显示整个浮动操作按钮 + */ + show() { + this.$element.removeClass('mdui-fab-hide'); + } + /** + * 以动画的形式隐藏整个浮动操作按钮 + */ + hide() { + this.$element.addClass('mdui-fab-hide'); + } + /** + * 返回当前快速拨号菜单的打开状态。共包含四种状态:`opening`、`opened`、`closing`、`closed` + */ + getState() { + return this.state; + } +} +mdui.Fab = Fab; + +const customAttr$3 = 'mdui-fab'; +$(() => { + // mouseenter 不冒泡,无法进行事件委托,这里用 mouseover 代替。 + // 不管是 click 、 mouseover 还是 touchstart ,都先初始化。 + $document.on('touchstart mousedown mouseover', `[${customAttr$3}]`, function () { + new mdui.Fab(this, parseOptions(this, customAttr$3)); + }); +}); + +/** + * 最终生成的元素结构为: + * + *
          // $element + * State 1 // $selected + *
          // $menu + *
          State 1
          // $items + *
          State 2
          + *
          State 3
          + *
          + *
          + */ +const DEFAULT_OPTIONS$3 = { + position: 'auto', + gutter: 16, +}; +class Select { + constructor(selector, options = {}) { + /** + * 生成的 `
          ` 元素的 JQ 对象 + */ + this.$element = $(); + /** + * 配置参数 + */ + this.options = extend({}, DEFAULT_OPTIONS$3); + /** + * select 的 size 属性的值,根据该值设置 select 的高度 + */ + this.size = 0; + /** + * 占位元素,显示已选中菜单项的文本 + */ + this.$selected = $(); + /** + * 菜单项的外层元素的 JQ 对象 + */ + this.$menu = $(); + /** + * 菜单项数组的 JQ 对象 + */ + this.$items = $(); + /** + * 当前选中的菜单项的索引号 + */ + this.selectedIndex = 0; + /** + * 当前选中菜单项的文本 + */ + this.selectedText = ''; + /** + * 当前选中菜单项的值 + */ + this.selectedValue = ''; + /** + * 当前 select 的状态 + */ + this.state = 'closed'; + this.$native = $(selector).first(); + this.$native.hide(); + extend(this.options, options); + // 为当前 select 生成唯一 ID + this.uniqueID = $.guid(); + // 生成 select + this.handleUpdate(); + // 点击 select 外面区域关闭 + $document.on('click touchstart', (event) => { + const $target = $(event.target); + if (this.isOpen() && + !$target.is(this.$element) && + !contains(this.$element[0], $target[0])) { + this.close(); + } + }); + } + /** + * 调整菜单位置 + */ + readjustMenu() { + const windowHeight = $window.height(); + // mdui-select 高度 + const elementHeight = this.$element.height(); + // 菜单项高度 + const $itemFirst = this.$items.first(); + const itemHeight = $itemFirst.height(); + const itemMargin = parseInt($itemFirst.css('margin-top')); + // 菜单高度 + const menuWidth = this.$element.innerWidth() + 0.01; // 必须比真实宽度多一点,不然会出现省略号 + let menuHeight = itemHeight * this.size + itemMargin * 2; + // mdui-select 在窗口中的位置 + const elementTop = this.$element[0].getBoundingClientRect().top; + let transformOriginY; + let menuMarginTop; + if (this.options.position === 'bottom') { + menuMarginTop = elementHeight; + transformOriginY = '0px'; + } + else if (this.options.position === 'top') { + menuMarginTop = -menuHeight - 1; + transformOriginY = '100%'; + } + else { + // 菜单高度不能超过窗口高度 + const menuMaxHeight = windowHeight - this.options.gutter * 2; + if (menuHeight > menuMaxHeight) { + menuHeight = menuMaxHeight; + } + // 菜单的 margin-top + menuMarginTop = -(itemMargin + + this.selectedIndex * itemHeight + + (itemHeight - elementHeight) / 2); + const menuMaxMarginTop = -(itemMargin + + (this.size - 1) * itemHeight + + (itemHeight - elementHeight) / 2); + if (menuMarginTop < menuMaxMarginTop) { + menuMarginTop = menuMaxMarginTop; + } + // 菜单不能超出窗口 + const menuTop = elementTop + menuMarginTop; + if (menuTop < this.options.gutter) { + // 不能超出窗口上方 + menuMarginTop = -(elementTop - this.options.gutter); + } + else if (menuTop + menuHeight + this.options.gutter > windowHeight) { + // 不能超出窗口下方 + menuMarginTop = -(elementTop + + menuHeight + + this.options.gutter - + windowHeight); + } + // transform 的 Y 轴坐标 + transformOriginY = `${this.selectedIndex * itemHeight + itemHeight / 2 + itemMargin}px`; + } + // 设置样式 + this.$element.innerWidth(menuWidth); + this.$menu + .innerWidth(menuWidth) + .height(menuHeight) + .css({ + 'margin-top': menuMarginTop + 'px', + 'transform-origin': 'center ' + transformOriginY + ' 0', + }); + } + /** + * select 是否为打开状态 + */ + isOpen() { + return this.state === 'opening' || this.state === 'opened'; + } + /** + * 对原生 select 组件进行了修改后,需要调用该方法 + */ + handleUpdate() { + if (this.isOpen()) { + this.close(); + } + this.selectedValue = this.$native.val(); + const itemsData = []; + this.$items = $(); + // 生成 HTML + this.$native.find('option').each((index, option) => { + const text = option.textContent || ''; + const value = option.value; + const disabled = option.disabled; + const selected = this.selectedValue === value; + itemsData.push({ + value, + text, + disabled, + selected, + index, + }); + if (selected) { + this.selectedText = text; + this.selectedIndex = index; + } + this.$items = this.$items.add('
          ${text}
          `); + }); + this.$selected = $(`${this.selectedText}`); + this.$element = $(`
          `) + .show() + .append(this.$selected); + this.$menu = $('
          ') + .appendTo(this.$element) + .append(this.$items); + $(`#${this.uniqueID}`).remove(); + this.$native.after(this.$element); + // 根据 select 的 size 属性设置高度 + this.size = parseInt(this.$native.attr('size') || '0'); + if (this.size <= 0) { + this.size = this.$items.length; + if (this.size > 8) { + this.size = 8; + } + } + // 点击选项时关闭下拉菜单 + // eslint-disable-next-line @typescript-eslint/no-this-alias + const that = this; + this.$items.on('click', function () { + if (that.state === 'closing') { + return; + } + const $item = $(this); + const index = $item.index(); + const data = itemsData[index]; + if (data.disabled) { + return; + } + that.$selected.text(data.text); + that.$native.val(data.value); + that.$items.removeAttr('selected'); + $item.attr('selected', ''); + that.selectedIndex = data.index; + that.selectedValue = data.value; + that.selectedText = data.text; + that.$native.trigger('change'); + that.close(); + }); + // 点击 $element 时打开下拉菜单 + this.$element.on('click', (event) => { + const $target = $(event.target); + // 在菜单上点击时不打开 + if ($target.is('.mdui-select-menu') || + $target.is('.mdui-select-menu-item')) { + return; + } + this.toggle(); + }); + } + /** + * 动画结束的回调 + */ + transitionEnd() { + this.$element.removeClass('mdui-select-closing'); + if (this.state === 'opening') { + this.state = 'opened'; + this.triggerEvent('opened'); + this.$menu.css('overflow-y', 'auto'); + } + if (this.state === 'closing') { + this.state = 'closed'; + this.triggerEvent('closed'); + // 恢复样式 + this.$element.innerWidth(''); + this.$menu.css({ + 'margin-top': '', + height: '', + width: '', + }); + } + } + /** + * 触发组件事件 + * @param name + */ + triggerEvent(name) { + componentEvent(name, 'select', this.$native, this); + } + /** + * 切换下拉菜单的打开状态 + */ + toggle() { + this.isOpen() ? this.close() : this.open(); + } + /** + * 打开下拉菜单 + */ + open() { + if (this.isOpen()) { + return; + } + this.state = 'opening'; + this.triggerEvent('open'); + this.readjustMenu(); + this.$element.addClass('mdui-select-open'); + this.$menu.transitionEnd(() => this.transitionEnd()); + } + /** + * 关闭下拉菜单 + */ + close() { + if (!this.isOpen()) { + return; + } + this.state = 'closing'; + this.triggerEvent('close'); + this.$menu.css('overflow-y', ''); + this.$element + .removeClass('mdui-select-open') + .addClass('mdui-select-closing'); + this.$menu.transitionEnd(() => this.transitionEnd()); + } + /** + * 获取当前菜单的状态。共包含四种状态:`opening`、`opened`、`closing`、`closed` + */ + getState() { + return this.state; + } +} +mdui.Select = Select; + +const customAttr$4 = 'mdui-select'; +$(() => { + mdui.mutation(`[${customAttr$4}]`, function () { + new mdui.Select(this, parseOptions(this, customAttr$4)); + }); +}); + +$(() => { + // 滚动时隐藏应用栏 + mdui.mutation('.mdui-appbar-scroll-hide', function () { + new mdui.Headroom(this); + }); + // 滚动时只隐藏应用栏中的工具栏 + mdui.mutation('.mdui-appbar-scroll-toolbar-hide', function () { + new mdui.Headroom(this, { + pinnedClass: 'mdui-headroom-pinned-toolbar', + unpinnedClass: 'mdui-headroom-unpinned-toolbar', + }); + }); +}); + +const DEFAULT_OPTIONS$4 = { + trigger: 'click', + loop: false, +}; +class Tab { + constructor(selector, options = {}) { + /** + * 配置参数 + */ + this.options = extend({}, DEFAULT_OPTIONS$4); + /** + * 当前激活的 tab 的索引号。为 -1 时表示没有激活的选项卡,或不存在选项卡 + */ + this.activeIndex = -1; + this.$element = $(selector).first(); + extend(this.options, options); + this.$tabs = this.$element.children('a'); + this.$indicator = $('
          ').appendTo(this.$element); + // 根据 url hash 获取默认激活的选项卡 + const hash = window.location.hash; + if (hash) { + this.$tabs.each((index, tab) => { + if ($(tab).attr('href') === hash) { + this.activeIndex = index; + return false; + } + return true; + }); + } + // 含 .mdui-tab-active 的元素默认激活 + if (this.activeIndex === -1) { + this.$tabs.each((index, tab) => { + if ($(tab).hasClass('mdui-tab-active')) { + this.activeIndex = index; + return false; + } + return true; + }); + } + // 存在选项卡时,默认激活第一个选项卡 + if (this.$tabs.length && this.activeIndex === -1) { + this.activeIndex = 0; + } + // 设置激活状态选项卡 + this.setActive(); + // 监听窗口大小变化事件,调整指示器位置 + $window.on('resize', $.throttle(() => this.setIndicatorPosition(), 100)); + // 监听点击选项卡事件 + this.$tabs.each((_, tab) => { + this.bindTabEvent(tab); + }); + } + /** + * 指定选项卡是否已禁用 + * @param $tab + */ + isDisabled($tab) { + return $tab.attr('disabled') !== undefined; + } + /** + * 绑定在 Tab 上点击或悬浮的事件 + * @param tab + */ + bindTabEvent(tab) { + const $tab = $(tab); + // 点击或鼠标移入触发的事件 + const clickEvent = () => { + // 禁用状态的选项卡无法选中 + if (this.isDisabled($tab)) { + return false; + } + this.activeIndex = this.$tabs.index(tab); + this.setActive(); + }; + // 无论 trigger 是 click 还是 hover,都会响应 click 事件 + $tab.on('click', clickEvent); + // trigger 为 hover 时,额外响应 mouseenter 事件 + if (this.options.trigger === 'hover') { + $tab.on('mouseenter', clickEvent); + } + // 阻止链接的默认点击动作 + $tab.on('click', () => { + if (($tab.attr('href') || '').indexOf('#') === 0) { + return false; + } + }); + } + /** + * 触发组件事件 + * @param name + * @param $element + * @param parameters + */ + triggerEvent(name, $element, parameters = {}) { + componentEvent(name, 'tab', $element, this, parameters); + } + /** + * 设置激活状态的选项卡 + */ + setActive() { + this.$tabs.each((index, tab) => { + const $tab = $(tab); + const targetId = $tab.attr('href') || ''; + // 设置选项卡激活状态 + if (index === this.activeIndex && !this.isDisabled($tab)) { + if (!$tab.hasClass('mdui-tab-active')) { + this.triggerEvent('change', this.$element, { + index: this.activeIndex, + id: targetId.substr(1), + }); + this.triggerEvent('show', $tab); + $tab.addClass('mdui-tab-active'); + } + $(targetId).show(); + this.setIndicatorPosition(); + } + else { + $tab.removeClass('mdui-tab-active'); + $(targetId).hide(); + } + }); + } + /** + * 设置选项卡指示器的位置 + */ + setIndicatorPosition() { + // 选项卡数量为 0 时,不显示指示器 + if (this.activeIndex === -1) { + this.$indicator.css({ + left: 0, + width: 0, + }); + return; + } + const $activeTab = this.$tabs.eq(this.activeIndex); + if (this.isDisabled($activeTab)) { + return; + } + const activeTabOffset = $activeTab.offset(); + this.$indicator.css({ + left: `${activeTabOffset.left + + this.$element[0].scrollLeft - + this.$element[0].getBoundingClientRect().left}px`, + width: `${$activeTab.innerWidth()}px`, + }); + } + /** + * 切换到下一个选项卡 + */ + next() { + if (this.activeIndex === -1) { + return; + } + if (this.$tabs.length > this.activeIndex + 1) { + this.activeIndex++; + } + else if (this.options.loop) { + this.activeIndex = 0; + } + this.setActive(); + } + /** + * 切换到上一个选项卡 + */ + prev() { + if (this.activeIndex === -1) { + return; + } + if (this.activeIndex > 0) { + this.activeIndex--; + } + else if (this.options.loop) { + this.activeIndex = this.$tabs.length - 1; + } + this.setActive(); + } + /** + * 显示指定索引号、或指定id的选项卡 + * @param index 索引号、或id + */ + show(index) { + if (this.activeIndex === -1) { + return; + } + if (isNumber(index)) { + this.activeIndex = index; + } + else { + this.$tabs.each((i, tab) => { + if (tab.id === index) { + this.activeIndex === i; + return false; + } + }); + } + this.setActive(); + } + /** + * 在父元素的宽度变化时,需要调用该方法重新调整指示器位置 + * 在添加或删除选项卡时,需要调用该方法 + */ + handleUpdate() { + const $oldTabs = this.$tabs; // 旧的 tabs JQ对象 + const $newTabs = this.$element.children('a'); // 新的 tabs JQ对象 + const oldTabsElement = $oldTabs.get(); // 旧的 tabs 元素数组 + const newTabsElement = $newTabs.get(); // 新的 tabs 元素数组 + if (!$newTabs.length) { + this.activeIndex = -1; + this.$tabs = $newTabs; + this.setIndicatorPosition(); + return; + } + // 重新遍历选项卡,找出新增的选项卡 + $newTabs.each((index, tab) => { + // 有新增的选项卡 + if (oldTabsElement.indexOf(tab) < 0) { + this.bindTabEvent(tab); + if (this.activeIndex === -1) { + this.activeIndex = 0; + } + else if (index <= this.activeIndex) { + this.activeIndex++; + } + } + }); + // 找出被移除的选项卡 + $oldTabs.each((index, tab) => { + // 有被移除的选项卡 + if (newTabsElement.indexOf(tab) < 0) { + if (index < this.activeIndex) { + this.activeIndex--; + } + else if (index === this.activeIndex) { + this.activeIndex = 0; + } + } + }); + this.$tabs = $newTabs; + this.setActive(); + } +} +mdui.Tab = Tab; + +const customAttr$5 = 'mdui-tab'; +$(() => { + mdui.mutation(`[${customAttr$5}]`, function () { + new mdui.Tab(this, parseOptions(this, customAttr$5)); + }); +}); + +/** + * 在桌面设备上默认显示抽屉栏,不显示遮罩层 + * 在手机和平板设备上默认不显示抽屉栏,始终显示遮罩层,且覆盖导航栏 + */ +const DEFAULT_OPTIONS$5 = { + overlay: false, + swipe: false, +}; +class Drawer { + constructor(selector, options = {}) { + /** + * 配置参数 + */ + this.options = extend({}, DEFAULT_OPTIONS$5); + /** + * 当前是否显示着遮罩层 + */ + this.overlay = false; + this.$element = $(selector).first(); + extend(this.options, options); + this.position = this.$element.hasClass('mdui-drawer-right') + ? 'right' + : 'left'; + if (this.$element.hasClass('mdui-drawer-close')) { + this.state = 'closed'; + } + else if (this.$element.hasClass('mdui-drawer-open')) { + this.state = 'opened'; + } + else if (this.isDesktop()) { + this.state = 'opened'; + } + else { + this.state = 'closed'; + } + // 浏览器窗口大小调整时 + $window.on('resize', $.throttle(() => { + if (this.isDesktop()) { + // 由手机平板切换到桌面时 + // 如果显示着遮罩,则隐藏遮罩 + if (this.overlay && !this.options.overlay) { + $.hideOverlay(); + this.overlay = false; + $.unlockScreen(); + } + // 没有强制关闭,则状态为打开状态 + if (!this.$element.hasClass('mdui-drawer-close')) { + this.state = 'opened'; + } + } + else if (!this.overlay && this.state === 'opened') { + // 由桌面切换到手机平板时。如果抽屉栏是打开着的且没有遮罩层,则关闭抽屉栏 + if (this.$element.hasClass('mdui-drawer-open')) { + $.showOverlay(); + this.overlay = true; + $.lockScreen(); + $('.mdui-overlay').one('click', () => this.close()); + } + else { + this.state = 'closed'; + } + } + }, 100)); + // 绑定关闭按钮事件 + this.$element.find('[mdui-drawer-close]').each((_, close) => { + $(close).on('click', () => this.close()); + }); + this.swipeSupport(); + } + /** + * 是否是桌面设备 + */ + isDesktop() { + return $window.width() >= 1024; + } + /** + * 滑动手势支持 + */ + swipeSupport() { + // eslint-disable-next-line @typescript-eslint/no-this-alias + const that = this; + // 抽屉栏滑动手势控制 + let openNavEventHandler; + let touchStartX; + let touchStartY; + let swipeStartX; + let swiping = null; + let maybeSwiping = false; + const $body = $('body'); + // 手势触发的范围 + const swipeAreaWidth = 24; + function setPosition(translateX) { + const rtlTranslateMultiplier = that.position === 'right' ? -1 : 1; + const transformCSS = `translate(${-1 * rtlTranslateMultiplier * translateX}px, 0) !important;`; + const transitionCSS = 'initial !important;'; + that.$element.css('cssText', `transform: ${transformCSS}; transition: ${transitionCSS};`); + } + function cleanPosition() { + that.$element[0].style.transform = ''; + that.$element[0].style.webkitTransform = ''; + that.$element[0].style.transition = ''; + that.$element[0].style.webkitTransition = ''; + } + function getMaxTranslateX() { + return that.$element.width() + 10; + } + function getTranslateX(currentX) { + return Math.min(Math.max(swiping === 'closing' + ? swipeStartX - currentX + : getMaxTranslateX() + swipeStartX - currentX, 0), getMaxTranslateX()); + } + function onBodyTouchEnd(event) { + if (swiping) { + let touchX = event.changedTouches[0].pageX; + if (that.position === 'right') { + touchX = $body.width() - touchX; + } + const translateRatio = getTranslateX(touchX) / getMaxTranslateX(); + maybeSwiping = false; + const swipingState = swiping; + swiping = null; + if (swipingState === 'opening') { + if (translateRatio < 0.92) { + cleanPosition(); + that.open(); + } + else { + cleanPosition(); + } + } + else { + if (translateRatio > 0.08) { + cleanPosition(); + that.close(); + } + else { + cleanPosition(); + } + } + $.unlockScreen(); + } + else { + maybeSwiping = false; + } + $body.off({ + // eslint-disable-next-line @typescript-eslint/no-use-before-define + touchmove: onBodyTouchMove, + touchend: onBodyTouchEnd, + // eslint-disable-next-line @typescript-eslint/no-use-before-define + touchcancel: onBodyTouchMove, + }); + } + function onBodyTouchMove(event) { + let touchX = event.touches[0].pageX; + if (that.position === 'right') { + touchX = $body.width() - touchX; + } + const touchY = event.touches[0].pageY; + if (swiping) { + setPosition(getTranslateX(touchX)); + } + else if (maybeSwiping) { + const dXAbs = Math.abs(touchX - touchStartX); + const dYAbs = Math.abs(touchY - touchStartY); + const threshold = 8; + if (dXAbs > threshold && dYAbs <= threshold) { + swipeStartX = touchX; + swiping = that.state === 'opened' ? 'closing' : 'opening'; + $.lockScreen(); + setPosition(getTranslateX(touchX)); + } + else if (dXAbs <= threshold && dYAbs > threshold) { + onBodyTouchEnd(); + } + } + } + function onBodyTouchStart(event) { + touchStartX = event.touches[0].pageX; + if (that.position === 'right') { + touchStartX = $body.width() - touchStartX; + } + touchStartY = event.touches[0].pageY; + if (that.state !== 'opened') { + if (touchStartX > swipeAreaWidth || + openNavEventHandler !== onBodyTouchStart) { + return; + } + } + maybeSwiping = true; + $body.on({ + touchmove: onBodyTouchMove, + touchend: onBodyTouchEnd, + touchcancel: onBodyTouchMove, + }); + } + function enableSwipeHandling() { + if (!openNavEventHandler) { + $body.on('touchstart', onBodyTouchStart); + openNavEventHandler = onBodyTouchStart; + } + } + if (this.options.swipe) { + enableSwipeHandling(); + } + } + /** + * 触发组件事件 + * @param name + */ + triggerEvent(name) { + componentEvent(name, 'drawer', this.$element, this); + } + /** + * 动画结束回调 + */ + transitionEnd() { + if (this.$element.hasClass('mdui-drawer-open')) { + this.state = 'opened'; + this.triggerEvent('opened'); + } + else { + this.state = 'closed'; + this.triggerEvent('closed'); + } + } + /** + * 是否处于打开状态 + */ + isOpen() { + return this.state === 'opening' || this.state === 'opened'; + } + /** + * 打开抽屉栏 + */ + open() { + if (this.isOpen()) { + return; + } + this.state = 'opening'; + this.triggerEvent('open'); + if (!this.options.overlay) { + $('body').addClass(`mdui-drawer-body-${this.position}`); + } + this.$element + .removeClass('mdui-drawer-close') + .addClass('mdui-drawer-open') + .transitionEnd(() => this.transitionEnd()); + if (!this.isDesktop() || this.options.overlay) { + this.overlay = true; + $.showOverlay().one('click', () => this.close()); + $.lockScreen(); + } + } + /** + * 关闭抽屉栏 + */ + close() { + if (!this.isOpen()) { + return; + } + this.state = 'closing'; + this.triggerEvent('close'); + if (!this.options.overlay) { + $('body').removeClass(`mdui-drawer-body-${this.position}`); + } + this.$element + .addClass('mdui-drawer-close') + .removeClass('mdui-drawer-open') + .transitionEnd(() => this.transitionEnd()); + if (this.overlay) { + $.hideOverlay(); + this.overlay = false; + $.unlockScreen(); + } + } + /** + * 切换抽屉栏打开/关闭状态 + */ + toggle() { + this.isOpen() ? this.close() : this.open(); + } + /** + * 返回当前抽屉栏的状态。共包含四种状态:`opening`、`opened`、`closing`、`closed` + */ + getState() { + return this.state; + } +} +mdui.Drawer = Drawer; + +const customAttr$6 = 'mdui-drawer'; +$(() => { + mdui.mutation(`[${customAttr$6}]`, function () { + const $element = $(this); + const options = parseOptions(this, customAttr$6); + const selector = options.target; + // @ts-ignore + delete options.target; + const $drawer = $(selector).first(); + const instance = new mdui.Drawer($drawer, options); + $element.on('click', () => instance.toggle()); + }); +}); + +const container = {}; +function queue(name, func) { + if (isUndefined(container[name])) { + container[name] = []; + } + if (isUndefined(func)) { + return container[name]; + } + container[name].push(func); +} +/** + * 从队列中移除第一个函数,并执行该函数 + * @param name 队列满 + */ +function dequeue(name) { + if (isUndefined(container[name])) { + return; + } + if (!container[name].length) { + return; + } + const func = container[name].shift(); + func(); +} + +const DEFAULT_OPTIONS$6 = { + history: true, + overlay: true, + modal: false, + closeOnEsc: true, + closeOnCancel: true, + closeOnConfirm: true, + destroyOnClosed: false, +}; +/** + * 当前显示的对话框实例 + */ +let currentInst = null; +/** + * 队列名 + */ +const queueName = '_mdui_dialog'; +/** + * 窗口是否已锁定 + */ +let isLockScreen = false; +/** + * 遮罩层元素 + */ +let $overlay; +class Dialog { + constructor(selector, options = {}) { + /** + * 配置参数 + */ + this.options = extend({}, DEFAULT_OPTIONS$6); + /** + * 当前 dialog 的状态 + */ + this.state = 'closed'; + /** + * dialog 元素是否是动态添加的 + */ + this.append = false; + this.$element = $(selector).first(); + // 如果对话框元素没有在当前文档中,则需要添加 + if (!contains(document.body, this.$element[0])) { + this.append = true; + $('body').append(this.$element); + } + extend(this.options, options); + // 绑定取消按钮事件 + this.$element.find('[mdui-dialog-cancel]').each((_, cancel) => { + $(cancel).on('click', () => { + this.triggerEvent('cancel'); + if (this.options.closeOnCancel) { + this.close(); + } + }); + }); + // 绑定确认按钮事件 + this.$element.find('[mdui-dialog-confirm]').each((_, confirm) => { + $(confirm).on('click', () => { + this.triggerEvent('confirm'); + if (this.options.closeOnConfirm) { + this.close(); + } + }); + }); + // 绑定关闭按钮事件 + this.$element.find('[mdui-dialog-close]').each((_, close) => { + $(close).on('click', () => this.close()); + }); + } + /** + * 触发组件事件 + * @param name + */ + triggerEvent(name) { + componentEvent(name, 'dialog', this.$element, this); + } + /** + * 窗口宽度变化,或对话框内容变化时,调整对话框位置和对话框内的滚动条 + */ + readjust() { + if (!currentInst) { + return; + } + const $element = currentInst.$element; + const $title = $element.children('.mdui-dialog-title'); + const $content = $element.children('.mdui-dialog-content'); + const $actions = $element.children('.mdui-dialog-actions'); + // 调整 dialog 的 top 和 height 值 + $element.height(''); + $content.height(''); + const elementHeight = $element.height(); + $element.css({ + top: `${($window.height() - elementHeight) / 2}px`, + height: `${elementHeight}px`, + }); + // 调整 mdui-dialog-content 的高度 + $content.innerHeight(elementHeight - + ($title.innerHeight() || 0) - + ($actions.innerHeight() || 0)); + } + /** + * hashchange 事件触发时关闭对话框 + */ + hashchangeEvent() { + if (window.location.hash.substring(1).indexOf('mdui-dialog') < 0) { + currentInst.close(true); + } + } + /** + * 点击遮罩层关闭对话框 + * @param event + */ + overlayClick(event) { + if ($(event.target).hasClass('mdui-overlay') && + currentInst) { + currentInst.close(); + } + } + /** + * 动画结束回调 + */ + transitionEnd() { + if (this.$element.hasClass('mdui-dialog-open')) { + this.state = 'opened'; + this.triggerEvent('opened'); + } + else { + this.state = 'closed'; + this.triggerEvent('closed'); + this.$element.hide(); + // 所有对话框都关闭,且当前没有打开的对话框时,解锁屏幕 + if (!queue(queueName).length && !currentInst && isLockScreen) { + $.unlockScreen(); + isLockScreen = false; + } + $window.off('resize', $.throttle(this.readjust, 100)); + if (this.options.destroyOnClosed) { + this.destroy(); + } + } + } + /** + * 打开指定对话框 + */ + doOpen() { + currentInst = this; + if (!isLockScreen) { + $.lockScreen(); + isLockScreen = true; + } + this.$element.show(); + this.readjust(); + $window.on('resize', $.throttle(this.readjust, 100)); + // 打开消息框 + this.state = 'opening'; + this.triggerEvent('open'); + this.$element + .addClass('mdui-dialog-open') + .transitionEnd(() => this.transitionEnd()); + // 不存在遮罩层元素时,添加遮罩层 + if (!$overlay) { + $overlay = $.showOverlay(5100); + } + // 点击遮罩层时是否关闭对话框 + if (this.options.modal) { + $overlay.off('click', this.overlayClick); + } + else { + $overlay.on('click', this.overlayClick); + } + // 是否显示遮罩层,不显示时,把遮罩层背景透明 + $overlay.css('opacity', this.options.overlay ? '' : 0); + if (this.options.history) { + // 如果 hash 中原来就有 mdui-dialog,先删除,避免后退历史纪录后仍然有 mdui-dialog 导致无法关闭 + // 包括 mdui-dialog 和 &mdui-dialog 和 ?mdui-dialog + let hash = window.location.hash.substring(1); + if (hash.indexOf('mdui-dialog') > -1) { + hash = hash.replace(/[&?]?mdui-dialog/g, ''); + } + // 后退按钮关闭对话框 + if (hash) { + window.location.hash = `${hash}${hash.indexOf('?') > -1 ? '&' : '?'}mdui-dialog`; + } + else { + window.location.hash = 'mdui-dialog'; + } + $window.on('hashchange', this.hashchangeEvent); + } + } + /** + * 当前对话框是否为打开状态 + */ + isOpen() { + return this.state === 'opening' || this.state === 'opened'; + } + /** + * 打开对话框 + */ + open() { + if (this.isOpen()) { + return; + } + // 如果当前有正在打开或已经打开的对话框,或队列不为空,则先加入队列,等旧对话框开始关闭时再打开 + if ((currentInst && + (currentInst.state === 'opening' || currentInst.state === 'opened')) || + queue(queueName).length) { + queue(queueName, () => this.doOpen()); + return; + } + this.doOpen(); + } + /** + * 关闭对话框 + */ + close(historyBack = false) { + // historyBack 是否需要后退历史纪录,默认为 `false`。该参数仅内部使用 + // 为 `false` 时是通过 js 关闭,需要后退一个历史记录 + // 为 `true` 时是通过后退按钮关闭,不需要后退历史记录 + // setTimeout 的作用是: + // 当同时关闭一个对话框,并打开另一个对话框时,使打开对话框的操作先执行,以使需要打开的对话框先加入队列 + setTimeout(() => { + if (!this.isOpen()) { + return; + } + currentInst = null; + this.state = 'closing'; + this.triggerEvent('close'); + // 所有对话框都关闭,且当前没有打开的对话框时,隐藏遮罩 + if (!queue(queueName).length && $overlay) { + $.hideOverlay(); + $overlay = null; + // 若仍存在遮罩,恢复遮罩的 z-index + $('.mdui-overlay').css('z-index', 2000); + } + this.$element + .removeClass('mdui-dialog-open') + .transitionEnd(() => this.transitionEnd()); + if (this.options.history && !queue(queueName).length) { + if (!historyBack) { + window.history.back(); + } + $window.off('hashchange', this.hashchangeEvent); + } + // 关闭旧对话框,打开新对话框。 + // 加一点延迟,仅仅为了视觉效果更好。不加延时也不影响功能 + setTimeout(() => { + dequeue(queueName); + }, 100); + }); + } + /** + * 切换对话框打开/关闭状态 + */ + toggle() { + this.isOpen() ? this.close() : this.open(); + } + /** + * 获取对话框状态。共包含四种状态:`opening`、`opened`、`closing`、`closed` + */ + getState() { + return this.state; + } + /** + * 销毁对话框 + */ + destroy() { + if (this.append) { + this.$element.remove(); + } + if (!queue(queueName).length && !currentInst) { + if ($overlay) { + $.hideOverlay(); + $overlay = null; + } + if (isLockScreen) { + $.unlockScreen(); + isLockScreen = false; + } + } + } + /** + * 对话框内容变化时,需要调用该方法来调整对话框位置和滚动条高度 + */ + handleUpdate() { + this.readjust(); + } +} + +// esc 按下时关闭对话框 +$document.on('keydown', (event) => { + if (currentInst && + currentInst.options.closeOnEsc && + currentInst.state === 'opened' && + event.keyCode === 27) { + currentInst.close(); + } +}); +mdui.Dialog = Dialog; + +const customAttr$7 = 'mdui-dialog'; +const dataName$1 = '_mdui_dialog'; +$(() => { + $document.on('click', `[${customAttr$7}]`, function () { + const options = parseOptions(this, customAttr$7); + const selector = options.target; + // @ts-ignore + delete options.target; + const $dialog = $(selector).first(); + let instance = $dialog.data(dataName$1); + if (!instance) { + instance = new mdui.Dialog($dialog, options); + $dialog.data(dataName$1, instance); + } + instance.open(); + }); +}); + +const DEFAULT_BUTTON = { + text: '', + bold: false, + close: true, + // eslint-disable-next-line @typescript-eslint/no-empty-function + onClick: () => { }, +}; +const DEFAULT_OPTIONS$7 = { + title: '', + content: '', + buttons: [], + stackedButtons: false, + cssClass: '', + history: true, + overlay: true, + modal: false, + closeOnEsc: true, + destroyOnClosed: true, + // eslint-disable-next-line @typescript-eslint/no-empty-function + onOpen: () => { }, + // eslint-disable-next-line @typescript-eslint/no-empty-function + onOpened: () => { }, + // eslint-disable-next-line @typescript-eslint/no-empty-function + onClose: () => { }, + // eslint-disable-next-line @typescript-eslint/no-empty-function + onClosed: () => { }, +}; +mdui.dialog = function (options) { + var _a, _b; + // 合并配置参数 + options = extend({}, DEFAULT_OPTIONS$7, options); + each(options.buttons, (i, button) => { + options.buttons[i] = extend({}, DEFAULT_BUTTON, button); + }); + // 按钮的 HTML + let buttonsHTML = ''; + if ((_a = options.buttons) === null || _a === void 0 ? void 0 : _a.length) { + buttonsHTML = `
          `; + each(options.buttons, (_, button) => { + buttonsHTML += + '${button.text}`; + }); + buttonsHTML += '
          '; + } + // Dialog 的 HTML + const HTML = `
          ` + + (options.title + ? `
          ${options.title}
          ` + : '') + + (options.content + ? `
          ${options.content}
          ` + : '') + + buttonsHTML + + '
          '; + // 实例化 Dialog + const instance = new mdui.Dialog(HTML, { + history: options.history, + overlay: options.overlay, + modal: options.modal, + closeOnEsc: options.closeOnEsc, + destroyOnClosed: options.destroyOnClosed, + }); + // 绑定按钮事件 + if ((_b = options.buttons) === null || _b === void 0 ? void 0 : _b.length) { + instance.$element + .find('.mdui-dialog-actions .mdui-btn') + .each((index, button) => { + $(button).on('click', () => { + options.buttons[index].onClick(instance); + if (options.buttons[index].close) { + instance.close(); + } + }); + }); + } + // 绑定打开关闭事件 + instance.$element + .on('open.mdui.dialog', () => { + options.onOpen(instance); + }) + .on('opened.mdui.dialog', () => { + options.onOpened(instance); + }) + .on('close.mdui.dialog', () => { + options.onClose(instance); + }) + .on('closed.mdui.dialog', () => { + options.onClosed(instance); + }); + instance.open(); + return instance; +}; + +const DEFAULT_OPTIONS$8 = { + confirmText: 'ok', + history: true, + modal: false, + closeOnEsc: true, + closeOnConfirm: true, +}; +mdui.alert = function (text, title, onConfirm, options) { + if (isFunction(title)) { + options = onConfirm; + onConfirm = title; + title = ''; + } + if (isUndefined(onConfirm)) { + // eslint-disable-next-line @typescript-eslint/no-empty-function + onConfirm = () => { }; + } + if (isUndefined(options)) { + options = {}; + } + options = extend({}, DEFAULT_OPTIONS$8, options); + return mdui.dialog({ + title: title, + content: text, + buttons: [ + { + text: options.confirmText, + bold: false, + close: options.closeOnConfirm, + onClick: onConfirm, + }, + ], + cssClass: 'mdui-dialog-alert', + history: options.history, + modal: options.modal, + closeOnEsc: options.closeOnEsc, + }); +}; + +const DEFAULT_OPTIONS$9 = { + confirmText: 'ok', + cancelText: 'cancel', + history: true, + modal: false, + closeOnEsc: true, + closeOnCancel: true, + closeOnConfirm: true, +}; +mdui.confirm = function (text, title, onConfirm, onCancel, options) { + if (isFunction(title)) { + options = onCancel; + onCancel = onConfirm; + onConfirm = title; + title = ''; + } + if (isUndefined(onConfirm)) { + // eslint-disable-next-line @typescript-eslint/no-empty-function + onConfirm = () => { }; + } + if (isUndefined(onCancel)) { + // eslint-disable-next-line @typescript-eslint/no-empty-function + onCancel = () => { }; + } + if (isUndefined(options)) { + options = {}; + } + options = extend({}, DEFAULT_OPTIONS$9, options); + return mdui.dialog({ + title: title, + content: text, + buttons: [ + { + text: options.cancelText, + bold: false, + close: options.closeOnCancel, + onClick: onCancel, + }, + { + text: options.confirmText, + bold: false, + close: options.closeOnConfirm, + onClick: onConfirm, + }, + ], + cssClass: 'mdui-dialog-confirm', + history: options.history, + modal: options.modal, + closeOnEsc: options.closeOnEsc, + }); +}; + +const DEFAULT_OPTIONS$a = { + confirmText: 'ok', + cancelText: 'cancel', + history: true, + modal: false, + closeOnEsc: true, + closeOnCancel: true, + closeOnConfirm: true, + type: 'text', + maxlength: 0, + defaultValue: '', + confirmOnEnter: false, +}; +mdui.prompt = function (label, title, onConfirm, onCancel, options) { + if (isFunction(title)) { + options = onCancel; + onCancel = onConfirm; + onConfirm = title; + title = ''; + } + if (isUndefined(onConfirm)) { + // eslint-disable-next-line @typescript-eslint/no-empty-function + onConfirm = () => { }; + } + if (isUndefined(onCancel)) { + // eslint-disable-next-line @typescript-eslint/no-empty-function + onCancel = () => { }; + } + if (isUndefined(options)) { + options = {}; + } + options = extend({}, DEFAULT_OPTIONS$a, options); + const content = '
          ' + + (label ? `` : '') + + (options.type === 'text' + ? `` + : '') + + (options.type === 'textarea' + ? `` + : '') + + '
          '; + const onCancelClick = (dialog) => { + const value = dialog.$element.find('.mdui-textfield-input').val(); + onCancel(value, dialog); + }; + const onConfirmClick = (dialog) => { + const value = dialog.$element.find('.mdui-textfield-input').val(); + onConfirm(value, dialog); + }; + return mdui.dialog({ + title, + content, + buttons: [ + { + text: options.cancelText, + bold: false, + close: options.closeOnCancel, + onClick: onCancelClick, + }, + { + text: options.confirmText, + bold: false, + close: options.closeOnConfirm, + onClick: onConfirmClick, + }, + ], + cssClass: 'mdui-dialog-prompt', + history: options.history, + modal: options.modal, + closeOnEsc: options.closeOnEsc, + onOpen: (dialog) => { + // 初始化输入框 + const $input = dialog.$element.find('.mdui-textfield-input'); + mdui.updateTextFields($input); + // 聚焦到输入框 + $input[0].focus(); + // 捕捉文本框回车键,在单行文本框的情况下触发回调 + if (options.type !== 'textarea' && options.confirmOnEnter === true) { + $input.on('keydown', (event) => { + if (event.keyCode === 13) { + const value = dialog.$element.find('.mdui-textfield-input').val(); + onConfirm(value, dialog); + if (options.closeOnConfirm) { + dialog.close(); + } + return false; + } + return; + }); + } + // 如果是多行输入框,监听输入框的 input 事件,更新对话框高度 + if (options.type === 'textarea') { + $input.on('input', () => dialog.handleUpdate()); + } + // 有字符数限制时,加载完文本框后 DOM 会变化,需要更新对话框高度 + if (options.maxlength) { + dialog.handleUpdate(); + } + }, + }); +}; + +const DEFAULT_OPTIONS$b = { + position: 'auto', + delay: 0, + content: '', +}; +class Tooltip { + constructor(selector, options = {}) { + /** + * 配置参数 + */ + this.options = extend({}, DEFAULT_OPTIONS$b); + /** + * 当前 tooltip 的状态 + */ + this.state = 'closed'; + /** + * setTimeout 的返回值 + */ + this.timeoutId = null; + this.$target = $(selector).first(); + extend(this.options, options); + // 创建 Tooltip HTML + this.$element = $(`
          ${this.options.content}
          `).appendTo(document.body); + // 绑定事件。元素处于 disabled 状态时无法触发鼠标事件,为了统一,把 touch 事件也禁用 + // eslint-disable-next-line @typescript-eslint/no-this-alias + const that = this; + this.$target + .on('touchstart mouseenter', function (event) { + if (that.isDisabled(this)) { + return; + } + if (!isAllow(event)) { + return; + } + register(event); + that.open(); + }) + .on('touchend mouseleave', function (event) { + if (that.isDisabled(this)) { + return; + } + if (!isAllow(event)) { + return; + } + that.close(); + }) + .on(unlockEvent, function (event) { + if (that.isDisabled(this)) { + return; + } + register(event); + }); + } + /** + * 元素是否已禁用 + * @param element + */ + isDisabled(element) { + return (element.disabled || + $(element).attr('disabled') !== undefined); + } + /** + * 是否是桌面设备 + */ + isDesktop() { + return $window.width() > 1024; + } + /** + * 设置 Tooltip 的位置 + */ + setPosition() { + let marginLeft; + let marginTop; + // 触发的元素 + const targetProps = this.$target[0].getBoundingClientRect(); + // 触发的元素和 Tooltip 之间的距离 + const targetMargin = this.isDesktop() ? 14 : 24; + // Tooltip 的宽度和高度 + const tooltipWidth = this.$element[0].offsetWidth; + const tooltipHeight = this.$element[0].offsetHeight; + // Tooltip 的方向 + let position = this.options.position; + // 自动判断位置,加 2px,使 Tooltip 距离窗口边框至少有 2px 的间距 + if (position === 'auto') { + if (targetProps.top + + targetProps.height + + targetMargin + + tooltipHeight + + 2 < + $window.height()) { + position = 'bottom'; + } + else if (targetMargin + tooltipHeight + 2 < targetProps.top) { + position = 'top'; + } + else if (targetMargin + tooltipWidth + 2 < targetProps.left) { + position = 'left'; + } + else if (targetProps.width + targetMargin + tooltipWidth + 2 < + $window.width() - targetProps.left) { + position = 'right'; + } + else { + position = 'bottom'; + } + } + // 设置位置 + switch (position) { + case 'bottom': + marginLeft = -1 * (tooltipWidth / 2); + marginTop = targetProps.height / 2 + targetMargin; + this.$element.transformOrigin('top center'); + break; + case 'top': + marginLeft = -1 * (tooltipWidth / 2); + marginTop = + -1 * (tooltipHeight + targetProps.height / 2 + targetMargin); + this.$element.transformOrigin('bottom center'); + break; + case 'left': + marginLeft = -1 * (tooltipWidth + targetProps.width / 2 + targetMargin); + marginTop = -1 * (tooltipHeight / 2); + this.$element.transformOrigin('center right'); + break; + case 'right': + marginLeft = targetProps.width / 2 + targetMargin; + marginTop = -1 * (tooltipHeight / 2); + this.$element.transformOrigin('center left'); + break; + } + const targetOffset = this.$target.offset(); + this.$element.css({ + top: `${targetOffset.top + targetProps.height / 2}px`, + left: `${targetOffset.left + targetProps.width / 2}px`, + 'margin-left': `${marginLeft}px`, + 'margin-top': `${marginTop}px`, + }); + } + /** + * 触发组件事件 + * @param name + */ + triggerEvent(name) { + componentEvent(name, 'tooltip', this.$target, this); + } + /** + * 动画结束回调 + */ + transitionEnd() { + if (this.$element.hasClass('mdui-tooltip-open')) { + this.state = 'opened'; + this.triggerEvent('opened'); + } + else { + this.state = 'closed'; + this.triggerEvent('closed'); + } + } + /** + * 当前 tooltip 是否为打开状态 + */ + isOpen() { + return this.state === 'opening' || this.state === 'opened'; + } + /** + * 执行打开 tooltip + */ + doOpen() { + this.state = 'opening'; + this.triggerEvent('open'); + this.$element + .addClass('mdui-tooltip-open') + .transitionEnd(() => this.transitionEnd()); + } + /** + * 打开 Tooltip + * @param options 允许每次打开时设置不同的参数 + */ + open(options) { + if (this.isOpen()) { + return; + } + const oldOptions = extend({}, this.options); + if (options) { + extend(this.options, options); + } + // tooltip 的内容有更新 + if (oldOptions.content !== this.options.content) { + this.$element.html(this.options.content); + } + this.setPosition(); + if (this.options.delay) { + this.timeoutId = setTimeout(() => this.doOpen(), this.options.delay); + } + else { + this.timeoutId = null; + this.doOpen(); + } + } + /** + * 关闭 Tooltip + */ + close() { + if (this.timeoutId) { + clearTimeout(this.timeoutId); + this.timeoutId = null; + } + if (!this.isOpen()) { + return; + } + this.state = 'closing'; + this.triggerEvent('close'); + this.$element + .removeClass('mdui-tooltip-open') + .transitionEnd(() => this.transitionEnd()); + } + /** + * 切换 Tooltip 的打开状态 + */ + toggle() { + this.isOpen() ? this.close() : this.open(); + } + /** + * 获取 Tooltip 状态。共包含四种状态:`opening`、`opened`、`closing`、`closed` + */ + getState() { + return this.state; + } +} +mdui.Tooltip = Tooltip; + +const customAttr$8 = 'mdui-tooltip'; +const dataName$2 = '_mdui_tooltip'; +$(() => { + // mouseenter 不能冒泡,所以这里用 mouseover 代替 + $document.on('touchstart mouseover', `[${customAttr$8}]`, function () { + const $target = $(this); + let instance = $target.data(dataName$2); + if (!instance) { + instance = new mdui.Tooltip(this, parseOptions(this, customAttr$8)); + $target.data(dataName$2, instance); + } + }); +}); + +const DEFAULT_OPTIONS$c = { + message: '', + timeout: 4000, + position: 'bottom', + buttonText: '', + buttonColor: '', + closeOnButtonClick: true, + closeOnOutsideClick: true, + // eslint-disable-next-line @typescript-eslint/no-empty-function + onClick: () => { }, + // eslint-disable-next-line @typescript-eslint/no-empty-function + onButtonClick: () => { }, + // eslint-disable-next-line @typescript-eslint/no-empty-function + onOpen: () => { }, + // eslint-disable-next-line @typescript-eslint/no-empty-function + onOpened: () => { }, + // eslint-disable-next-line @typescript-eslint/no-empty-function + onClose: () => { }, + // eslint-disable-next-line @typescript-eslint/no-empty-function + onClosed: () => { }, +}; +/** + * 当前打开着的 Snackbar + */ +let currentInst$1 = null; +/** + * 队列名 + */ +const queueName$1 = '_mdui_snackbar'; +class Snackbar { + constructor(options) { + /** + * 配置参数 + */ + this.options = extend({}, DEFAULT_OPTIONS$c); + /** + * 当前 Snackbar 的状态 + */ + this.state = 'closed'; + /** + * setTimeout 的 ID + */ + this.timeoutId = null; + extend(this.options, options); + // 按钮颜色 + let buttonColorStyle = ''; + let buttonColorClass = ''; + if (this.options.buttonColor.indexOf('#') === 0 || + this.options.buttonColor.indexOf('rgb') === 0) { + buttonColorStyle = `style="color:${this.options.buttonColor}"`; + } + else if (this.options.buttonColor !== '') { + buttonColorClass = `mdui-text-color-${this.options.buttonColor}`; + } + // 添加 HTML + this.$element = $('
          ' + + `
          ${this.options.message}
          ` + + (this.options.buttonText + ? `${this.options.buttonText}` + : '') + + '
          ').appendTo(document.body); + // 设置位置 + this.setPosition('close'); + this.$element.reflow().addClass(`mdui-snackbar-${this.options.position}`); + } + /** + * 点击 Snackbar 外面的区域关闭 + * @param event + */ + closeOnOutsideClick(event) { + const $target = $(event.target); + if (!$target.hasClass('mdui-snackbar') && + !$target.parents('.mdui-snackbar').length) { + currentInst$1.close(); + } + } + /** + * 设置 Snackbar 的位置 + * @param state + */ + setPosition(state) { + const snackbarHeight = this.$element[0].clientHeight; + const position = this.options.position; + let translateX; + let translateY; + // translateX + if (position === 'bottom' || position === 'top') { + translateX = '-50%'; + } + else { + translateX = '0'; + } + // translateY + if (state === 'open') { + translateY = '0'; + } + else { + if (position === 'bottom') { + translateY = snackbarHeight; + } + if (position === 'top') { + translateY = -snackbarHeight; + } + if (position === 'left-top' || position === 'right-top') { + translateY = -snackbarHeight - 24; + } + if (position === 'left-bottom' || position === 'right-bottom') { + translateY = snackbarHeight + 24; + } + } + this.$element.transform(`translate(${translateX},${translateY}px`); + } + /** + * 打开 Snackbar + */ + open() { + if (this.state === 'opening' || this.state === 'opened') { + return; + } + // 如果当前有正在显示的 Snackbar,则先加入队列,等旧 Snackbar 关闭后再打开 + if (currentInst$1) { + queue(queueName$1, () => this.open()); + return; + } + currentInst$1 = this; + // 开始打开 + this.state = 'opening'; + this.options.onOpen(this); + this.setPosition('open'); + this.$element.transitionEnd(() => { + if (this.state !== 'opening') { + return; + } + this.state = 'opened'; + this.options.onOpened(this); + // 有按钮时绑定事件 + if (this.options.buttonText) { + this.$element.find('.mdui-snackbar-action').on('click', () => { + this.options.onButtonClick(this); + if (this.options.closeOnButtonClick) { + this.close(); + } + }); + } + // 点击 snackbar 的事件 + this.$element.on('click', (event) => { + if (!$(event.target).hasClass('mdui-snackbar-action')) { + this.options.onClick(this); + } + }); + // 点击 Snackbar 外面的区域关闭 + if (this.options.closeOnOutsideClick) { + $document.on(startEvent, this.closeOnOutsideClick); + } + // 超时后自动关闭 + if (this.options.timeout) { + this.timeoutId = setTimeout(() => this.close(), this.options.timeout); + } + }); + } + /** + * 关闭 Snackbar + */ + close() { + if (this.state === 'closing' || this.state === 'closed') { + return; + } + if (this.timeoutId) { + clearTimeout(this.timeoutId); + } + if (this.options.closeOnOutsideClick) { + $document.off(startEvent, this.closeOnOutsideClick); + } + this.state = 'closing'; + this.options.onClose(this); + this.setPosition('close'); + this.$element.transitionEnd(() => { + if (this.state !== 'closing') { + return; + } + currentInst$1 = null; + this.state = 'closed'; + this.options.onClosed(this); + this.$element.remove(); + dequeue(queueName$1); + }); + } +} +mdui.snackbar = function (message, options = {}) { + if (isString(message)) { + options.message = message; + } + else { + options = message; + } + const instance = new Snackbar(options); + instance.open(); + return instance; +}; + +$(() => { + // 切换导航项 + $document.on('click', '.mdui-bottom-nav>a', function () { + const $item = $(this); + const $bottomNav = $item.parent(); + $bottomNav.children('a').each((index, item) => { + const isThis = $item.is(item); + if (isThis) { + componentEvent('change', 'bottomNav', $bottomNav[0], undefined, { + index, + }); + } + isThis + ? $(item).addClass('mdui-bottom-nav-active') + : $(item).removeClass('mdui-bottom-nav-active'); + }); + }); + // 滚动时隐藏 mdui-bottom-nav-scroll-hide + mdui.mutation('.mdui-bottom-nav-scroll-hide', function () { + new mdui.Headroom(this, { + pinnedClass: 'mdui-headroom-pinned-down', + unpinnedClass: 'mdui-headroom-unpinned-down', + }); + }); +}); + +/** + * layer 的 HTML 结构 + * @param index + */ +function layerHTML(index = false) { + return (`
          ` + + '
          ' + + '
          ' + + '
          ' + + '
          ' + + '
          ' + + '
          ' + + '
          ' + + '
          ' + + '
          ' + + '
          '); +} +/** + * 填充 HTML + * @param spinner + */ +function fillHTML(spinner) { + const $spinner = $(spinner); + const layer = $spinner.hasClass('mdui-spinner-colorful') + ? layerHTML(1) + layerHTML(2) + layerHTML(3) + layerHTML(4) + : layerHTML(); + $spinner.html(layer); +} +$(() => { + // 页面加载完后自动填充 HTML 结构 + mdui.mutation('.mdui-spinner', function () { + fillHTML(this); + }); +}); +mdui.updateSpinners = function (selector) { + const $elements = isUndefined(selector) ? $('.mdui-spinner') : $(selector); + $elements.each(function () { + fillHTML(this); + }); +}; + +const DEFAULT_OPTIONS$d = { + position: 'auto', + align: 'auto', + gutter: 16, + fixed: false, + covered: 'auto', + subMenuTrigger: 'hover', + subMenuDelay: 200, +}; +class Menu { + constructor(anchorSelector, menuSelector, options = {}) { + /** + * 配置参数 + */ + this.options = extend({}, DEFAULT_OPTIONS$d); + /** + * 当前菜单状态 + */ + this.state = 'closed'; + this.$anchor = $(anchorSelector).first(); + this.$element = $(menuSelector).first(); + // 触发菜单的元素 和 菜单必须是同级的元素,否则菜单可能不能定位 + if (!this.$anchor.parent().is(this.$element.parent())) { + throw new Error('anchorSelector and menuSelector must be siblings'); + } + extend(this.options, options); + // 是否是级联菜单 + this.isCascade = this.$element.hasClass('mdui-menu-cascade'); + // covered 参数处理 + this.isCovered = + this.options.covered === 'auto' ? !this.isCascade : this.options.covered; + // 点击触发菜单切换 + this.$anchor.on('click', () => this.toggle()); + // 点击菜单外面区域关闭菜单 + $document.on('click touchstart', (event) => { + const $target = $(event.target); + if (this.isOpen() && + !$target.is(this.$element) && + !contains(this.$element[0], $target[0]) && + !$target.is(this.$anchor) && + !contains(this.$anchor[0], $target[0])) { + this.close(); + } + }); + // 点击不含子菜单的菜单条目关闭菜单 + // eslint-disable-next-line @typescript-eslint/no-this-alias + const that = this; + $document.on('click', '.mdui-menu-item', function () { + const $item = $(this); + if (!$item.find('.mdui-menu').length && + $item.attr('disabled') === undefined) { + that.close(); + } + }); + // 绑定点击或鼠标移入含子菜单的条目的事件 + this.bindSubMenuEvent(); + // 窗口大小变化时,重新调整菜单位置 + $window.on('resize', $.throttle(() => this.readjust(), 100)); + } + /** + * 是否为打开状态 + */ + isOpen() { + return this.state === 'opening' || this.state === 'opened'; + } + /** + * 触发组件事件 + * @param name + */ + triggerEvent(name) { + componentEvent(name, 'menu', this.$element, this); + } + /** + * 调整主菜单位置 + */ + readjust() { + let menuLeft; + let menuTop; + // 菜单位置和方向 + let position; + let align; + // window 窗口的宽度和高度 + const windowHeight = $window.height(); + const windowWidth = $window.width(); + // 配置参数 + const gutter = this.options.gutter; + const isCovered = this.isCovered; + const isFixed = this.options.fixed; + // 动画方向参数 + let transformOriginX; + let transformOriginY; + // 菜单的原始宽度和高度 + const menuWidth = this.$element.width(); + const menuHeight = this.$element.height(); + // 触发菜单的元素在窗口中的位置 + const anchorRect = this.$anchor[0].getBoundingClientRect(); + const anchorTop = anchorRect.top; + const anchorLeft = anchorRect.left; + const anchorHeight = anchorRect.height; + const anchorWidth = anchorRect.width; + const anchorBottom = windowHeight - anchorTop - anchorHeight; + const anchorRight = windowWidth - anchorLeft - anchorWidth; + // 触发元素相对其拥有定位属性的父元素的位置 + const anchorOffsetTop = this.$anchor[0].offsetTop; + const anchorOffsetLeft = this.$anchor[0].offsetLeft; + // 自动判断菜单位置 + if (this.options.position === 'auto') { + if (anchorBottom + (isCovered ? anchorHeight : 0) > menuHeight + gutter) { + // 判断下方是否放得下菜单 + position = 'bottom'; + } + else if (anchorTop + (isCovered ? anchorHeight : 0) > + menuHeight + gutter) { + // 判断上方是否放得下菜单 + position = 'top'; + } + else { + // 上下都放不下,居中显示 + position = 'center'; + } + } + else { + position = this.options.position; + } + // 自动判断菜单对齐方式 + if (this.options.align === 'auto') { + if (anchorRight + anchorWidth > menuWidth + gutter) { + // 判断右侧是否放得下菜单 + align = 'left'; + } + else if (anchorLeft + anchorWidth > menuWidth + gutter) { + // 判断左侧是否放得下菜单 + align = 'right'; + } + else { + // 左右都放不下,居中显示 + align = 'center'; + } + } + else { + align = this.options.align; + } + // 设置菜单位置 + if (position === 'bottom') { + transformOriginY = '0'; + menuTop = + (isCovered ? 0 : anchorHeight) + + (isFixed ? anchorTop : anchorOffsetTop); + } + else if (position === 'top') { + transformOriginY = '100%'; + menuTop = + (isCovered ? anchorHeight : 0) + + (isFixed ? anchorTop - menuHeight : anchorOffsetTop - menuHeight); + } + else { + transformOriginY = '50%'; + // =====================在窗口中居中 + // 显示的菜单的高度,简单菜单高度不超过窗口高度,若超过了则在菜单内部显示滚动条 + // 级联菜单内部不允许出现滚动条 + let menuHeightTemp = menuHeight; + // 简单菜单比窗口高时,限制菜单高度 + if (!this.isCascade) { + if (menuHeight + gutter * 2 > windowHeight) { + menuHeightTemp = windowHeight - gutter * 2; + this.$element.height(menuHeightTemp); + } + } + menuTop = + (windowHeight - menuHeightTemp) / 2 + + (isFixed ? 0 : anchorOffsetTop - anchorTop); + } + this.$element.css('top', `${menuTop}px`); + // 设置菜单对齐方式 + if (align === 'left') { + transformOriginX = '0'; + menuLeft = isFixed ? anchorLeft : anchorOffsetLeft; + } + else if (align === 'right') { + transformOriginX = '100%'; + menuLeft = isFixed + ? anchorLeft + anchorWidth - menuWidth + : anchorOffsetLeft + anchorWidth - menuWidth; + } + else { + transformOriginX = '50%'; + //=======================在窗口中居中 + // 显示的菜单的宽度,菜单宽度不能超过窗口宽度 + let menuWidthTemp = menuWidth; + // 菜单比窗口宽,限制菜单宽度 + if (menuWidth + gutter * 2 > windowWidth) { + menuWidthTemp = windowWidth - gutter * 2; + this.$element.width(menuWidthTemp); + } + menuLeft = + (windowWidth - menuWidthTemp) / 2 + + (isFixed ? 0 : anchorOffsetLeft - anchorLeft); + } + this.$element.css('left', `${menuLeft}px`); + // 设置菜单动画方向 + this.$element.transformOrigin(`${transformOriginX} ${transformOriginY}`); + } + /** + * 调整子菜单的位置 + * @param $submenu + */ + readjustSubmenu($submenu) { + const $item = $submenu.parent('.mdui-menu-item'); + let submenuTop; + let submenuLeft; + // 子菜单位置和方向 + let position; + let align; + // window 窗口的宽度和高度 + const windowHeight = $window.height(); + const windowWidth = $window.width(); + // 动画方向参数 + let transformOriginX; + let transformOriginY; + // 子菜单的原始宽度和高度 + const submenuWidth = $submenu.width(); + const submenuHeight = $submenu.height(); + // 触发子菜单的菜单项的宽度高度 + const itemRect = $item[0].getBoundingClientRect(); + const itemWidth = itemRect.width; + const itemHeight = itemRect.height; + const itemLeft = itemRect.left; + const itemTop = itemRect.top; + // 判断菜单上下位置 + if (windowHeight - itemTop > submenuHeight) { + // 判断下方是否放得下菜单 + position = 'bottom'; + } + else if (itemTop + itemHeight > submenuHeight) { + // 判断上方是否放得下菜单 + position = 'top'; + } + else { + // 默认放在下方 + position = 'bottom'; + } + // 判断菜单左右位置 + if (windowWidth - itemLeft - itemWidth > submenuWidth) { + // 判断右侧是否放得下菜单 + align = 'left'; + } + else if (itemLeft > submenuWidth) { + // 判断左侧是否放得下菜单 + align = 'right'; + } + else { + // 默认放在右侧 + align = 'left'; + } + // 设置菜单位置 + if (position === 'bottom') { + transformOriginY = '0'; + submenuTop = '0'; + } + else if (position === 'top') { + transformOriginY = '100%'; + submenuTop = -submenuHeight + itemHeight; + } + $submenu.css('top', `${submenuTop}px`); + // 设置菜单对齐方式 + if (align === 'left') { + transformOriginX = '0'; + submenuLeft = itemWidth; + } + else if (align === 'right') { + transformOriginX = '100%'; + submenuLeft = -submenuWidth; + } + $submenu.css('left', `${submenuLeft}px`); + // 设置菜单动画方向 + $submenu.transformOrigin(`${transformOriginX} ${transformOriginY}`); + } + /** + * 打开子菜单 + * @param $submenu + */ + openSubMenu($submenu) { + this.readjustSubmenu($submenu); + $submenu + .addClass('mdui-menu-open') + .parent('.mdui-menu-item') + .addClass('mdui-menu-item-active'); + } + /** + * 关闭子菜单,及其嵌套的子菜单 + * @param $submenu + */ + closeSubMenu($submenu) { + // 关闭子菜单 + $submenu + .removeClass('mdui-menu-open') + .addClass('mdui-menu-closing') + .transitionEnd(() => $submenu.removeClass('mdui-menu-closing')) + // 移除激活状态的样式 + .parent('.mdui-menu-item') + .removeClass('mdui-menu-item-active'); + // 循环关闭嵌套的子菜单 + $submenu.find('.mdui-menu').each((_, menu) => { + const $subSubmenu = $(menu); + $subSubmenu + .removeClass('mdui-menu-open') + .addClass('mdui-menu-closing') + .transitionEnd(() => $subSubmenu.removeClass('mdui-menu-closing')) + .parent('.mdui-menu-item') + .removeClass('mdui-menu-item-active'); + }); + } + /** + * 切换子菜单状态 + * @param $submenu + */ + toggleSubMenu($submenu) { + $submenu.hasClass('mdui-menu-open') + ? this.closeSubMenu($submenu) + : this.openSubMenu($submenu); + } + /** + * 绑定子菜单事件 + */ + bindSubMenuEvent() { + // eslint-disable-next-line @typescript-eslint/no-this-alias + const that = this; + // 点击打开子菜单 + this.$element.on('click', '.mdui-menu-item', function (event) { + const $item = $(this); + const $target = $(event.target); + // 禁用状态菜单不操作 + if ($item.attr('disabled') !== undefined) { + return; + } + // 没有点击在子菜单的菜单项上时,不操作(点在了子菜单的空白区域、或分隔线上) + if ($target.is('.mdui-menu') || $target.is('.mdui-divider')) { + return; + } + // 阻止冒泡,点击菜单项时只在最后一级的 mdui-menu-item 上生效,不向上冒泡 + if (!$target.parents('.mdui-menu-item').first().is($item)) { + return; + } + // 当前菜单的子菜单 + const $submenu = $item.children('.mdui-menu'); + // 先关闭除当前子菜单外的所有同级子菜单 + $item + .parent('.mdui-menu') + .children('.mdui-menu-item') + .each((_, item) => { + const $tmpSubmenu = $(item).children('.mdui-menu'); + if ($tmpSubmenu.length && + (!$submenu.length || !$tmpSubmenu.is($submenu))) { + that.closeSubMenu($tmpSubmenu); + } + }); + // 切换当前子菜单 + if ($submenu.length) { + that.toggleSubMenu($submenu); + } + }); + if (this.options.subMenuTrigger === 'hover') { + // 临时存储 setTimeout 对象 + let timeout = null; + let timeoutOpen = null; + this.$element.on('mouseover mouseout', '.mdui-menu-item', function (event) { + const $item = $(this); + const eventType = event.type; + const $relatedTarget = $(event.relatedTarget); + // 禁用状态的菜单不操作 + if ($item.attr('disabled') !== undefined) { + return; + } + // 用 mouseover 模拟 mouseenter + if (eventType === 'mouseover') { + if (!$item.is($relatedTarget) && + contains($item[0], $relatedTarget[0])) { + return; + } + } + // 用 mouseout 模拟 mouseleave + else if (eventType === 'mouseout') { + if ($item.is($relatedTarget) || + contains($item[0], $relatedTarget[0])) { + return; + } + } + // 当前菜单项下的子菜单,未必存在 + const $submenu = $item.children('.mdui-menu'); + // 鼠标移入菜单项时,显示菜单项下的子菜单 + if (eventType === 'mouseover') { + if ($submenu.length) { + // 当前子菜单准备打开时,如果当前子菜单正准备着关闭,不用再关闭了 + const tmpClose = $submenu.data('timeoutClose.mdui.menu'); + if (tmpClose) { + clearTimeout(tmpClose); + } + // 如果当前子菜单已经打开,不操作 + if ($submenu.hasClass('mdui-menu-open')) { + return; + } + // 当前子菜单准备打开时,其他准备打开的子菜单不用再打开了 + clearTimeout(timeoutOpen); + // 准备打开当前子菜单 + timeout = timeoutOpen = setTimeout(() => that.openSubMenu($submenu), that.options.subMenuDelay); + $submenu.data('timeoutOpen.mdui.menu', timeout); + } + } + // 鼠标移出菜单项时,关闭菜单项下的子菜单 + else if (eventType === 'mouseout') { + if ($submenu.length) { + // 鼠标移出菜单项时,如果当前菜单项下的子菜单正准备打开,不用再打开了 + const tmpOpen = $submenu.data('timeoutOpen.mdui.menu'); + if (tmpOpen) { + clearTimeout(tmpOpen); + } + // 准备关闭当前子菜单 + timeout = setTimeout(() => that.closeSubMenu($submenu), that.options.subMenuDelay); + $submenu.data('timeoutClose.mdui.menu', timeout); + } + } + }); + } + } + /** + * 动画结束回调 + */ + transitionEnd() { + this.$element.removeClass('mdui-menu-closing'); + if (this.state === 'opening') { + this.state = 'opened'; + this.triggerEvent('opened'); + } + if (this.state === 'closing') { + this.state = 'closed'; + this.triggerEvent('closed'); + // 关闭后,恢复菜单样式到默认状态,并恢复 fixed 定位 + this.$element.css({ + top: '', + left: '', + width: '', + position: 'fixed', + }); + } + } + /** + * 切换菜单状态 + */ + toggle() { + this.isOpen() ? this.close() : this.open(); + } + /** + * 打开菜单 + */ + open() { + if (this.isOpen()) { + return; + } + this.state = 'opening'; + this.triggerEvent('open'); + this.readjust(); + this.$element + // 菜单隐藏状态使用使用 fixed 定位。 + .css('position', this.options.fixed ? 'fixed' : 'absolute') + .addClass('mdui-menu-open') + .transitionEnd(() => this.transitionEnd()); + } + /** + * 关闭菜单 + */ + close() { + if (!this.isOpen()) { + return; + } + this.state = 'closing'; + this.triggerEvent('close'); + // 菜单开始关闭时,关闭所有子菜单 + this.$element.find('.mdui-menu').each((_, submenu) => { + this.closeSubMenu($(submenu)); + }); + this.$element + .removeClass('mdui-menu-open') + .addClass('mdui-menu-closing') + .transitionEnd(() => this.transitionEnd()); + } +} +mdui.Menu = Menu; + +const customAttr$9 = 'mdui-menu'; +const dataName$3 = '_mdui_menu'; +$(() => { + $document.on('click', `[${customAttr$9}]`, function () { + const $this = $(this); + let instance = $this.data(dataName$3); + if (!instance) { + const options = parseOptions(this, customAttr$9); + const menuSelector = options.target; + // @ts-ignore + delete options.target; + instance = new mdui.Menu($this, menuSelector, options); + $this.data(dataName$3, instance); + instance.toggle(); + } + }); +}); + +export default mdui; +//# sourceMappingURL=mdui.esm.js.map diff --git a/static/mdui/js/mdui.esm.js.map b/static/mdui/js/mdui.esm.js.map new file mode 100644 index 0000000..d62fda2 --- /dev/null +++ b/static/mdui/js/mdui.esm.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mdui.esm.js","sources":["../../node_modules/mdui.jq/es/utils.js","../../node_modules/mdui.jq/es/functions/each.js","../../node_modules/mdui.jq/es/JQ.js","../../node_modules/mdui.jq/es/$.js","../../src/mdui.ts","../../node_modules/mdui.jq/es/methods/each.js","../../node_modules/mdui.jq/es/functions/contains.js","../../node_modules/mdui.jq/es/functions/merge.js","../../node_modules/mdui.jq/es/methods/get.js","../../node_modules/mdui.jq/es/methods/find.js","../../node_modules/mdui.jq/es/methods/utils/event.js","../../node_modules/mdui.jq/es/methods/trigger.js","../../node_modules/mdui.jq/es/functions/extend.js","../../node_modules/mdui.jq/es/functions/param.js","../../node_modules/mdui.jq/es/functions/utils/ajax.js","../../node_modules/mdui.jq/es/functions/ajax.js","../../node_modules/mdui.jq/es/static/ajax.js","../../node_modules/mdui.jq/es/functions/ajaxSetup.js","../../node_modules/mdui.jq/es/static/ajaxSetup.js","../../node_modules/mdui.jq/es/static/contains.js","../../node_modules/mdui.jq/es/functions/utils/data.js","../../node_modules/mdui.jq/es/functions/data.js","../../node_modules/mdui.jq/es/static/data.js","../../node_modules/mdui.jq/es/static/each.js","../../node_modules/mdui.jq/es/static/extend.js","../../node_modules/mdui.jq/es/functions/map.js","../../node_modules/mdui.jq/es/static/map.js","../../node_modules/mdui.jq/es/static/merge.js","../../node_modules/mdui.jq/es/static/param.js","../../node_modules/mdui.jq/es/functions/removeData.js","../../node_modules/mdui.jq/es/static/removeData.js","../../node_modules/mdui.jq/es/functions/unique.js","../../node_modules/mdui.jq/es/static/unique.js","../../node_modules/mdui.jq/es/methods/add.js","../../node_modules/mdui.jq/es/methods/addClass.js","../../node_modules/mdui.jq/es/methods/insertBefore.js","../../node_modules/mdui.jq/es/methods/before.js","../../node_modules/mdui.jq/es/methods/off.js","../../node_modules/mdui.jq/es/methods/on.js","../../node_modules/mdui.jq/es/methods/ajaxStart.js","../../node_modules/mdui.jq/es/methods/map.js","../../node_modules/mdui.jq/es/methods/clone.js","../../node_modules/mdui.jq/es/methods/is.js","../../node_modules/mdui.jq/es/methods/remove.js","../../node_modules/mdui.jq/es/methods/append.js","../../node_modules/mdui.jq/es/methods/appendTo.js","../../node_modules/mdui.jq/es/methods/attr.js","../../node_modules/mdui.jq/es/methods/children.js","../../node_modules/mdui.jq/es/methods/slice.js","../../node_modules/mdui.jq/es/methods/eq.js","../../node_modules/mdui.jq/es/methods/utils/dir.js","../../node_modules/mdui.jq/es/methods/parent.js","../../node_modules/mdui.jq/es/methods/closest.js","../../node_modules/mdui.jq/es/methods/data.js","../../node_modules/mdui.jq/es/methods/empty.js","../../node_modules/mdui.jq/es/methods/extend.js","../../node_modules/mdui.jq/es/methods/filter.js","../../node_modules/mdui.jq/es/methods/first.js","../../node_modules/mdui.jq/es/methods/has.js","../../node_modules/mdui.jq/es/methods/hasClass.js","../../node_modules/mdui.jq/es/methods/width.js","../../node_modules/mdui.jq/es/methods/hide.js","../../node_modules/mdui.jq/es/methods/val.js","../../node_modules/mdui.jq/es/methods/index.js","../../node_modules/mdui.jq/es/methods/last.js","../../node_modules/mdui.jq/es/methods/next.js","../../node_modules/mdui.jq/es/methods/not.js","../../node_modules/mdui.jq/es/methods/offsetParent.js","../../node_modules/mdui.jq/es/methods/position.js","../../node_modules/mdui.jq/es/methods/offset.js","../../node_modules/mdui.jq/es/methods/one.js","../../node_modules/mdui.jq/es/methods/prev.js","../../node_modules/mdui.jq/es/methods/removeAttr.js","../../node_modules/mdui.jq/es/methods/removeData.js","../../node_modules/mdui.jq/es/methods/removeProp.js","../../node_modules/mdui.jq/es/methods/replaceWith.js","../../node_modules/mdui.jq/es/methods/replaceAll.js","../../node_modules/mdui.jq/es/methods/serializeArray.js","../../node_modules/mdui.jq/es/methods/serialize.js","../../node_modules/mdui.jq/es/methods/show.js","../../node_modules/mdui.jq/es/methods/siblings.js","../../node_modules/mdui.jq/es/methods/toggle.js","../../src/jq_extends/methods/reflow.ts","../../src/jq_extends/methods/transition.ts","../../src/jq_extends/methods/transitionEnd.ts","../../src/jq_extends/methods/transformOrigin.ts","../../src/jq_extends/methods/transform.ts","../../src/utils/mutation.ts","../../src/jq_extends/methods/mutation.ts","../../src/jq_extends/static/showOverlay.ts","../../src/jq_extends/static/hideOverlay.ts","../../src/jq_extends/static/lockScreen.ts","../../src/jq_extends/static/unlockScreen.ts","../../src/jq_extends/static/throttle.ts","../../src/jq_extends/static/guid.ts","../../src/global/mutation.ts","../../src/utils/componentEvent.ts","../../src/utils/dom.ts","../../src/components/headroom/index.ts","../../src/utils/parseOptions.ts","../../src/components/headroom/customAttr.ts","../../src/components/collapse/collapseAbstract.ts","../../src/components/collapse/index.ts","../../src/components/collapse/customAttr.ts","../../src/components/panel/index.ts","../../src/components/panel/customAttr.ts","../../src/components/table/index.ts","../../src/utils/touchHandler.ts","../../src/components/ripple/index.ts","../../src/components/textfield/index.ts","../../src/components/slider/index.ts","../../src/components/fab/index.ts","../../src/components/fab/customAttr.ts","../../src/components/select/index.ts","../../src/components/select/customAttr.ts","../../src/components/appbar/index.ts","../../src/components/tab/index.ts","../../src/components/tab/customAttr.ts","../../src/components/drawer/index.ts","../../src/components/drawer/customAttr.ts","../../src/utils/queue.ts","../../src/components/dialog/class.ts","../../src/components/dialog/index.ts","../../src/components/dialog/customAttr.ts","../../src/components/dialog/dialog.ts","../../src/components/dialog/alert.ts","../../src/components/dialog/confirm.ts","../../src/components/dialog/prompt.ts","../../src/components/tooltip/index.ts","../../src/components/tooltip/customAttr.ts","../../src/components/snackbar/index.ts","../../src/components/bottom_nav/index.ts","../../src/components/progress/spinner.ts","../../src/components/menu/index.ts","../../src/components/menu/customAttr.ts"],"sourcesContent":["function isNodeName(element, name) {\n return element.nodeName.toLowerCase() === name.toLowerCase();\n}\nfunction isFunction(target) {\n return typeof target === 'function';\n}\nfunction isString(target) {\n return typeof target === 'string';\n}\nfunction isNumber(target) {\n return typeof target === 'number';\n}\nfunction isBoolean(target) {\n return typeof target === 'boolean';\n}\nfunction isUndefined(target) {\n return typeof target === 'undefined';\n}\nfunction isNull(target) {\n return target === null;\n}\nfunction isWindow(target) {\n return target instanceof Window;\n}\nfunction isDocument(target) {\n return target instanceof Document;\n}\nfunction isElement(target) {\n return target instanceof Element;\n}\nfunction isNode(target) {\n return target instanceof Node;\n}\n/**\n * 是否是 IE 浏览器\n */\nfunction isIE() {\n // @ts-ignore\n return !!window.document.documentMode;\n}\nfunction isArrayLike(target) {\n if (isFunction(target) || isWindow(target)) {\n return false;\n }\n return isNumber(target.length);\n}\nfunction isObjectLike(target) {\n return typeof target === 'object' && target !== null;\n}\nfunction toElement(target) {\n return isDocument(target) ? target.documentElement : target;\n}\n/**\n * 把用 - 分隔的字符串转为驼峰(如 box-sizing 转换为 boxSizing)\n * @param string\n */\nfunction toCamelCase(string) {\n return string\n .replace(/^-ms-/, 'ms-')\n .replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());\n}\n/**\n * 把驼峰法转为用 - 分隔的字符串(如 boxSizing 转换为 box-sizing)\n * @param string\n */\nfunction toKebabCase(string) {\n return string.replace(/[A-Z]/g, (replacer) => '-' + replacer.toLowerCase());\n}\n/**\n * 获取元素的样式值\n * @param element\n * @param name\n */\nfunction getComputedStyleValue(element, name) {\n return window.getComputedStyle(element).getPropertyValue(toKebabCase(name));\n}\n/**\n * 检查元素的 box-sizing 是否是 border-box\n * @param element\n */\nfunction isBorderBox(element) {\n return getComputedStyleValue(element, 'box-sizing') === 'border-box';\n}\n/**\n * 获取元素的 padding, border, margin 宽度(两侧宽度的和,单位为px)\n * @param element\n * @param direction\n * @param extra\n */\nfunction getExtraWidth(element, direction, extra) {\n const position = direction === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n return [0, 1].reduce((prev, _, index) => {\n let prop = extra + position[index];\n if (extra === 'border') {\n prop += 'Width';\n }\n return prev + parseFloat(getComputedStyleValue(element, prop) || '0');\n }, 0);\n}\n/**\n * 获取元素的样式值,对 width 和 height 进行过处理\n * @param element\n * @param name\n */\nfunction getStyle(element, name) {\n // width、height 属性使用 getComputedStyle 得到的值不准确,需要使用 getBoundingClientRect 获取\n if (name === 'width' || name === 'height') {\n const valueNumber = element.getBoundingClientRect()[name];\n if (isBorderBox(element)) {\n return `${valueNumber}px`;\n }\n return `${valueNumber -\n getExtraWidth(element, name, 'border') -\n getExtraWidth(element, name, 'padding')}px`;\n }\n return getComputedStyleValue(element, name);\n}\n/**\n * 获取子节点组成的数组\n * @param target\n * @param parent\n */\nfunction getChildNodesArray(target, parent) {\n const tempParent = document.createElement(parent);\n tempParent.innerHTML = target;\n return [].slice.call(tempParent.childNodes);\n}\n/**\n * 始终返回 false 的函数\n */\nfunction returnFalse() {\n return false;\n}\n/**\n * 数值单位的 CSS 属性\n */\nconst cssNumber = [\n 'animationIterationCount',\n 'columnCount',\n 'fillOpacity',\n 'flexGrow',\n 'flexShrink',\n 'fontWeight',\n 'gridArea',\n 'gridColumn',\n 'gridColumnEnd',\n 'gridColumnStart',\n 'gridRow',\n 'gridRowEnd',\n 'gridRowStart',\n 'lineHeight',\n 'opacity',\n 'order',\n 'orphans',\n 'widows',\n 'zIndex',\n 'zoom',\n];\nexport { isNodeName, isArrayLike, isObjectLike, isFunction, isString, isNumber, isBoolean, isUndefined, isNull, isWindow, isDocument, isElement, isNode, isIE, toElement, toCamelCase, toKebabCase, getComputedStyleValue, isBorderBox, getExtraWidth, getStyle, getChildNodesArray, returnFalse, cssNumber, };\n","import { isArrayLike } from '../utils';\nfunction each(target, callback) {\n if (isArrayLike(target)) {\n for (let i = 0; i < target.length; i += 1) {\n if (callback.call(target[i], i, target[i]) === false) {\n return target;\n }\n }\n }\n else {\n const keys = Object.keys(target);\n for (let i = 0; i < keys.length; i += 1) {\n if (callback.call(target[keys[i]], keys[i], target[keys[i]]) === false) {\n return target;\n }\n }\n }\n return target;\n}\nexport default each;\n","import each from './functions/each';\n/**\n * 为了使用模块扩充,这里不能使用默认导出\n */\nexport class JQ {\n constructor(arr) {\n this.length = 0;\n if (!arr) {\n return this;\n }\n each(arr, (i, item) => {\n // @ts-ignore\n this[i] = item;\n });\n this.length = arr.length;\n return this;\n }\n}\n","import each from './functions/each';\nimport { JQ } from './JQ';\nimport { getChildNodesArray, isArrayLike, isFunction, isNode, isString, } from './utils';\nfunction get$() {\n const $ = function (selector) {\n if (!selector) {\n return new JQ();\n }\n // JQ\n if (selector instanceof JQ) {\n return selector;\n }\n // function\n if (isFunction(selector)) {\n if (/complete|loaded|interactive/.test(document.readyState) &&\n document.body) {\n selector.call(document, $);\n }\n else {\n document.addEventListener('DOMContentLoaded', () => selector.call(document, $), false);\n }\n return new JQ([document]);\n }\n // String\n if (isString(selector)) {\n const html = selector.trim();\n // 根据 HTML 字符串创建 JQ 对象\n if (html[0] === '<' && html[html.length - 1] === '>') {\n let toCreate = 'div';\n const tags = {\n li: 'ul',\n tr: 'tbody',\n td: 'tr',\n th: 'tr',\n tbody: 'table',\n option: 'select',\n };\n each(tags, (childTag, parentTag) => {\n if (html.indexOf(`<${childTag}`) === 0) {\n toCreate = parentTag;\n return false;\n }\n return;\n });\n return new JQ(getChildNodesArray(html, toCreate));\n }\n // 根据 CSS 选择器创建 JQ 对象\n const isIdSelector = selector[0] === '#' && !selector.match(/[ .<>:~]/);\n if (!isIdSelector) {\n return new JQ(document.querySelectorAll(selector));\n }\n const element = document.getElementById(selector.slice(1));\n if (element) {\n return new JQ([element]);\n }\n return new JQ();\n }\n if (isArrayLike(selector) && !isNode(selector)) {\n return new JQ(selector);\n }\n return new JQ([selector]);\n };\n $.fn = JQ.prototype;\n return $;\n}\nconst $ = get$();\nexport default $;\n","import { MduiStatic } from './interfaces/MduiStatic';\nimport $ from 'mdui.jq/es/$';\n\n// 避免页面加载完后直接执行css动画\n// https://css-tricks.com/transitions-only-after-page-load/\nsetTimeout(() => $('body').addClass('mdui-loaded'));\n\nconst mdui = {\n $: $,\n} as MduiStatic;\n\nexport default mdui;\n","import $ from '../$';\nimport each from '../functions/each';\n$.fn.each = function (callback) {\n return each(this, callback);\n};\n","import { toElement } from '../utils';\n/**\n * 检查 container 元素内是否包含 contains 元素\n * @param container 父元素\n * @param contains 子元素\n * @example\n```js\ncontains( document, document.body ); // true\ncontains( document.getElementById('test'), document ); // false\ncontains( $('.container').get(0), $('.contains').get(0) ); // false\n```\n */\nfunction contains(container, contains) {\n return container !== contains && toElement(container).contains(contains);\n}\nexport default contains;\n","import each from './each';\n/**\n * 把第二个数组的元素追加到第一个数组中,并返回合并后的数组\n * @param first 第一个数组\n * @param second 该数组的元素将被追加到第一个数组中\n * @example\n```js\nmerge( [ 0, 1, 2 ], [ 2, 3, 4 ] )\n// [ 0, 1, 2, 2, 3, 4 ]\n```\n */\nfunction merge(first, second) {\n each(second, (_, value) => {\n first.push(value);\n });\n return first;\n}\nexport default merge;\n","import $ from '../$';\n$.fn.get = function (index) {\n return index === undefined\n ? [].slice.call(this)\n : this[index >= 0 ? index : index + this.length];\n};\n","import $ from '../$';\nimport merge from '../functions/merge';\nimport { JQ } from '../JQ';\nimport './each';\nimport './get';\n$.fn.find = function (selector) {\n const foundElements = [];\n this.each((_, element) => {\n merge(foundElements, $(element.querySelectorAll(selector)).get());\n });\n return new JQ(foundElements);\n};\n","import $ from '../../$';\nimport contains from '../../functions/contains';\nimport { isObjectLike } from '../../utils';\nimport '../find';\n// 存储事件\nconst handlers = {};\n// 元素ID\nlet mduiElementId = 1;\n/**\n * 为元素赋予一个唯一的ID\n */\nfunction getElementId(element) {\n const key = '_mduiEventId';\n // @ts-ignore\n if (!element[key]) {\n // @ts-ignore\n element[key] = ++mduiElementId;\n }\n // @ts-ignore\n return element[key];\n}\n/**\n * 解析事件名中的命名空间\n */\nfunction parse(type) {\n const parts = type.split('.');\n return {\n type: parts[0],\n ns: parts.slice(1).sort().join(' '),\n };\n}\n/**\n * 命名空间匹配规则\n */\nfunction matcherFor(ns) {\n return new RegExp('(?:^| )' + ns.replace(' ', ' .* ?') + '(?: |$)');\n}\n/**\n * 获取匹配的事件\n * @param element\n * @param type\n * @param func\n * @param selector\n */\nfunction getHandlers(element, type, func, selector) {\n const event = parse(type);\n return (handlers[getElementId(element)] || []).filter((handler) => handler &&\n (!event.type || handler.type === event.type) &&\n (!event.ns || matcherFor(event.ns).test(handler.ns)) &&\n (!func || getElementId(handler.func) === getElementId(func)) &&\n (!selector || handler.selector === selector));\n}\n/**\n * 添加事件监听\n * @param element\n * @param types\n * @param func\n * @param data\n * @param selector\n */\nfunction add(element, types, func, data, selector) {\n const elementId = getElementId(element);\n if (!handlers[elementId]) {\n handlers[elementId] = [];\n }\n // 传入 data.useCapture 来设置 useCapture: true\n let useCapture = false;\n if (isObjectLike(data) && data.useCapture) {\n useCapture = true;\n }\n types.split(' ').forEach((type) => {\n if (!type) {\n return;\n }\n const event = parse(type);\n function callFn(e, elem) {\n // 因为鼠标事件模拟事件的 detail 属性是只读的,因此在 e._detail 中存储参数\n const result = func.apply(elem, \n // @ts-ignore\n e._detail === undefined ? [e] : [e].concat(e._detail));\n if (result === false) {\n e.preventDefault();\n e.stopPropagation();\n }\n }\n function proxyFn(e) {\n // @ts-ignore\n if (e._ns && !matcherFor(e._ns).test(event.ns)) {\n return;\n }\n // @ts-ignore\n e._data = data;\n if (selector) {\n // 事件代理\n $(element)\n .find(selector)\n .get()\n .reverse()\n .forEach((elem) => {\n if (elem === e.target ||\n contains(elem, e.target)) {\n callFn(e, elem);\n }\n });\n }\n else {\n // 不使用事件代理\n callFn(e, element);\n }\n }\n const handler = {\n type: event.type,\n ns: event.ns,\n func,\n selector,\n id: handlers[elementId].length,\n proxy: proxyFn,\n };\n handlers[elementId].push(handler);\n element.addEventListener(handler.type, proxyFn, useCapture);\n });\n}\n/**\n * 移除事件监听\n * @param element\n * @param types\n * @param func\n * @param selector\n */\nfunction remove(element, types, func, selector) {\n const handlersInElement = handlers[getElementId(element)] || [];\n const removeEvent = (handler) => {\n delete handlersInElement[handler.id];\n element.removeEventListener(handler.type, handler.proxy, false);\n };\n if (!types) {\n handlersInElement.forEach((handler) => removeEvent(handler));\n }\n else {\n types.split(' ').forEach((type) => {\n if (type) {\n getHandlers(element, type, func, selector).forEach((handler) => removeEvent(handler));\n }\n });\n }\n}\nexport { parse, add, remove };\n","import $ from '../$';\nimport './each';\nimport { parse } from './utils/event';\n$.fn.trigger = function (type, extraParameters) {\n const event = parse(type);\n let eventObject;\n const eventParams = {\n bubbles: true,\n cancelable: true,\n };\n const isMouseEvent = ['click', 'mousedown', 'mouseup', 'mousemove'].indexOf(event.type) > -1;\n if (isMouseEvent) {\n // Note: MouseEvent 无法传入 detail 参数\n eventObject = new MouseEvent(event.type, eventParams);\n }\n else {\n eventParams.detail = extraParameters;\n eventObject = new CustomEvent(event.type, eventParams);\n }\n // @ts-ignore\n eventObject._detail = extraParameters;\n // @ts-ignore\n eventObject._ns = event.ns;\n return this.each(function () {\n this.dispatchEvent(eventObject);\n });\n};\n","import each from '../functions/each';\nimport { isUndefined } from '../utils';\nfunction extend(target, object1, ...objectN) {\n objectN.unshift(object1);\n each(objectN, (_, object) => {\n each(object, (prop, value) => {\n if (!isUndefined(value)) {\n target[prop] = value;\n }\n });\n });\n return target;\n}\nexport default extend;\n","import { isObjectLike } from '../utils';\nimport each from './each';\n/**\n * 将数组或对象序列化,序列化后的字符串可作为 URL 查询字符串使用\n *\n * 若传入数组,则格式必须和 serializeArray 方法的返回值一样\n * @param obj 对象或数组\n * @example\n```js\nparam({ width: 1680, height: 1050 });\n// width=1680&height=1050\n```\n * @example\n```js\nparam({ foo: { one: 1, two: 2 }})\n// foo[one]=1&foo[two]=2\n```\n * @example\n```js\nparam({ids: [1, 2, 3]})\n// ids[]=1&ids[]=2&ids[]=3\n```\n * @example\n```js\nparam([\n {\"name\":\"name\",\"value\":\"mdui\"},\n {\"name\":\"password\",\"value\":\"123456\"}\n])\n// name=mdui&password=123456\n```\n */\nfunction param(obj) {\n if (!isObjectLike(obj) && !Array.isArray(obj)) {\n return '';\n }\n const args = [];\n function destructure(key, value) {\n let keyTmp;\n if (isObjectLike(value)) {\n each(value, (i, v) => {\n if (Array.isArray(value) && !isObjectLike(v)) {\n keyTmp = '';\n }\n else {\n keyTmp = i;\n }\n destructure(`${key}[${keyTmp}]`, v);\n });\n }\n else {\n if (value == null || value === '') {\n keyTmp = '=';\n }\n else {\n keyTmp = `=${encodeURIComponent(value)}`;\n }\n args.push(encodeURIComponent(key) + keyTmp);\n }\n }\n if (Array.isArray(obj)) {\n each(obj, function () {\n destructure(this.name, this.value);\n });\n }\n else {\n each(obj, destructure);\n }\n return args.join('&');\n}\nexport default param;\n","// 全局配置参数\nconst globalOptions = {};\n// 全局事件名\nconst ajaxEvents = {\n ajaxStart: 'start.mdui.ajax',\n ajaxSuccess: 'success.mdui.ajax',\n ajaxError: 'error.mdui.ajax',\n ajaxComplete: 'complete.mdui.ajax',\n};\nexport { globalOptions, ajaxEvents };\n","import $ from '../$';\nimport '../methods/trigger';\nimport { isString, isUndefined } from '../utils';\nimport each from './each';\nimport extend from './extend';\nimport param from './param';\nimport { ajaxEvents, globalOptions } from './utils/ajax';\n/**\n * 判断此请求方法是否通过查询字符串提交参数\n * @param method 请求方法,大写\n */\nfunction isQueryStringData(method) {\n return ['GET', 'HEAD'].indexOf(method) >= 0;\n}\n/**\n * 添加参数到 URL 上,且 URL 中不存在 ? 时,自动把第一个 & 替换为 ?\n * @param url\n * @param query\n */\nfunction appendQuery(url, query) {\n return `${url}&${query}`.replace(/[&?]{1,2}/, '?');\n}\n/**\n * 合并请求参数,参数优先级:options > globalOptions > defaults\n * @param options\n */\nfunction mergeOptions(options) {\n // 默认参数\n const defaults = {\n url: '',\n method: 'GET',\n data: '',\n processData: true,\n async: true,\n cache: true,\n username: '',\n password: '',\n headers: {},\n xhrFields: {},\n statusCode: {},\n dataType: 'text',\n contentType: 'application/x-www-form-urlencoded',\n timeout: 0,\n global: true,\n };\n // globalOptions 中的回调函数不合并\n each(globalOptions, (key, value) => {\n const callbacks = [\n 'beforeSend',\n 'success',\n 'error',\n 'complete',\n 'statusCode',\n ];\n // @ts-ignore\n if (callbacks.indexOf(key) < 0 && !isUndefined(value)) {\n defaults[key] = value;\n }\n });\n return extend({}, defaults, options);\n}\n/**\n * 发送 ajax 请求\n * @param options\n * @example\n```js\najax({\n method: \"POST\",\n url: \"some.php\",\n data: { name: \"John\", location: \"Boston\" }\n}).then(function( msg ) {\n alert( \"Data Saved: \" + msg );\n});\n```\n */\nfunction ajax(options) {\n // 是否已取消请求\n let isCanceled = false;\n // 事件参数\n const eventParams = {};\n // 参数合并\n const mergedOptions = mergeOptions(options);\n let url = mergedOptions.url || window.location.toString();\n const method = mergedOptions.method.toUpperCase();\n let data = mergedOptions.data;\n const processData = mergedOptions.processData;\n const async = mergedOptions.async;\n const cache = mergedOptions.cache;\n const username = mergedOptions.username;\n const password = mergedOptions.password;\n const headers = mergedOptions.headers;\n const xhrFields = mergedOptions.xhrFields;\n const statusCode = mergedOptions.statusCode;\n const dataType = mergedOptions.dataType;\n const contentType = mergedOptions.contentType;\n const timeout = mergedOptions.timeout;\n const global = mergedOptions.global;\n // 需要发送的数据\n // GET/HEAD 请求和 processData 为 true 时,转换为查询字符串格式,特殊格式不转换\n if (data &&\n (isQueryStringData(method) || processData) &&\n !isString(data) &&\n !(data instanceof ArrayBuffer) &&\n !(data instanceof Blob) &&\n !(data instanceof Document) &&\n !(data instanceof FormData)) {\n data = param(data);\n }\n // 对于 GET、HEAD 类型的请求,把 data 数据添加到 URL 中\n if (data && isQueryStringData(method)) {\n // 查询字符串拼接到 URL 中\n url = appendQuery(url, data);\n data = null;\n }\n /**\n * 触发事件和回调函数\n * @param event\n * @param params\n * @param callback\n * @param args\n */\n function trigger(event, params, callback, ...args) {\n // 触发全局事件\n if (global) {\n $(document).trigger(event, params);\n }\n // 触发 ajax 回调和事件\n let result1;\n let result2;\n if (callback) {\n // 全局回调\n if (callback in globalOptions) {\n // @ts-ignore\n result1 = globalOptions[callback](...args);\n }\n // 自定义回调\n if (mergedOptions[callback]) {\n // @ts-ignore\n result2 = mergedOptions[callback](...args);\n }\n // beforeSend 回调返回 false 时取消 ajax 请求\n if (callback === 'beforeSend' &&\n (result1 === false || result2 === false)) {\n isCanceled = true;\n }\n }\n }\n // XMLHttpRequest 请求\n function XHR() {\n let textStatus;\n return new Promise((resolve, reject) => {\n // GET/HEAD 请求的缓存处理\n if (isQueryStringData(method) && !cache) {\n url = appendQuery(url, `_=${Date.now()}`);\n }\n // 创建 XHR\n const xhr = new XMLHttpRequest();\n xhr.open(method, url, async, username, password);\n if (contentType ||\n (data && !isQueryStringData(method) && contentType !== false)) {\n xhr.setRequestHeader('Content-Type', contentType);\n }\n // 设置 Accept\n if (dataType === 'json') {\n xhr.setRequestHeader('Accept', 'application/json, text/javascript');\n }\n // 添加 headers\n if (headers) {\n each(headers, (key, value) => {\n // undefined 值不发送,string 和 null 需要发送\n if (!isUndefined(value)) {\n xhr.setRequestHeader(key, value + ''); // 把 null 转换成字符串\n }\n });\n }\n // 检查是否是跨域请求,跨域请求时不添加 X-Requested-With\n const crossDomain = /^([\\w-]+:)?\\/\\/([^/]+)/.test(url) &&\n RegExp.$2 !== window.location.host;\n if (!crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n }\n if (xhrFields) {\n each(xhrFields, (key, value) => {\n // @ts-ignore\n xhr[key] = value;\n });\n }\n eventParams.xhr = xhr;\n eventParams.options = mergedOptions;\n let xhrTimeout;\n xhr.onload = function () {\n if (xhrTimeout) {\n clearTimeout(xhrTimeout);\n }\n // AJAX 返回的 HTTP 响应码是否表示成功\n const isHttpStatusSuccess = (xhr.status >= 200 && xhr.status < 300) ||\n xhr.status === 304 ||\n xhr.status === 0;\n let responseData;\n if (isHttpStatusSuccess) {\n if (xhr.status === 204 || method === 'HEAD') {\n textStatus = 'nocontent';\n }\n else if (xhr.status === 304) {\n textStatus = 'notmodified';\n }\n else {\n textStatus = 'success';\n }\n if (dataType === 'json') {\n try {\n responseData =\n method === 'HEAD' ? undefined : JSON.parse(xhr.responseText);\n eventParams.data = responseData;\n }\n catch (err) {\n textStatus = 'parsererror';\n trigger(ajaxEvents.ajaxError, eventParams, 'error', xhr, textStatus);\n reject(new Error(textStatus));\n }\n if (textStatus !== 'parsererror') {\n trigger(ajaxEvents.ajaxSuccess, eventParams, 'success', responseData, textStatus, xhr);\n resolve(responseData);\n }\n }\n else {\n responseData =\n method === 'HEAD'\n ? undefined\n : xhr.responseType === 'text' || xhr.responseType === ''\n ? xhr.responseText\n : xhr.response;\n eventParams.data = responseData;\n trigger(ajaxEvents.ajaxSuccess, eventParams, 'success', responseData, textStatus, xhr);\n resolve(responseData);\n }\n }\n else {\n textStatus = 'error';\n trigger(ajaxEvents.ajaxError, eventParams, 'error', xhr, textStatus);\n reject(new Error(textStatus));\n }\n // statusCode\n each([globalOptions.statusCode, statusCode], (_, func) => {\n if (func && func[xhr.status]) {\n if (isHttpStatusSuccess) {\n func[xhr.status](responseData, textStatus, xhr);\n }\n else {\n func[xhr.status](xhr, textStatus);\n }\n }\n });\n trigger(ajaxEvents.ajaxComplete, eventParams, 'complete', xhr, textStatus);\n };\n xhr.onerror = function () {\n if (xhrTimeout) {\n clearTimeout(xhrTimeout);\n }\n trigger(ajaxEvents.ajaxError, eventParams, 'error', xhr, xhr.statusText);\n trigger(ajaxEvents.ajaxComplete, eventParams, 'complete', xhr, 'error');\n reject(new Error(xhr.statusText));\n };\n xhr.onabort = function () {\n let statusText = 'abort';\n if (xhrTimeout) {\n statusText = 'timeout';\n clearTimeout(xhrTimeout);\n }\n trigger(ajaxEvents.ajaxError, eventParams, 'error', xhr, statusText);\n trigger(ajaxEvents.ajaxComplete, eventParams, 'complete', xhr, statusText);\n reject(new Error(statusText));\n };\n // ajax start 回调\n trigger(ajaxEvents.ajaxStart, eventParams, 'beforeSend', xhr);\n if (isCanceled) {\n reject(new Error('cancel'));\n return;\n }\n // Timeout\n if (timeout > 0) {\n xhrTimeout = setTimeout(() => {\n xhr.abort();\n }, timeout);\n }\n // 发送 XHR\n xhr.send(data);\n });\n }\n return XHR();\n}\nexport default ajax;\n","import $ from '../$';\nimport ajax from '../functions/ajax';\n$.ajax = ajax;\n","import extend from '../functions/extend';\nimport { globalOptions } from './utils/ajax';\n/**\n * 为 Ajax 请求设置全局配置参数\n * @param options 键值对参数\n * @example\n```js\najaxSetup({\n dataType: 'json',\n method: 'POST',\n});\n```\n */\nfunction ajaxSetup(options) {\n return extend(globalOptions, options);\n}\nexport default ajaxSetup;\n","import $ from '../$';\nimport ajaxSetup from '../functions/ajaxSetup';\n$.ajaxSetup = ajaxSetup;\n","import $ from '../$';\nimport contains from '../functions/contains';\n$.contains = contains;\n","const dataNS = '_mduiElementDataStorage';\nexport default dataNS;\n","import { isObjectLike, isUndefined, toCamelCase } from '../utils';\nimport each from './each';\nimport dataNS from './utils/data';\n/**\n * 在元素上设置键值对数据\n * @param element\n * @param object\n */\nfunction setObjectToElement(element, object) {\n // @ts-ignore\n if (!element[dataNS]) {\n // @ts-ignore\n element[dataNS] = {};\n }\n each(object, (key, value) => {\n // @ts-ignore\n element[dataNS][toCamelCase(key)] = value;\n });\n}\nfunction data(element, key, value) {\n // 根据键值对设置值\n // data(element, { 'key' : 'value' })\n if (isObjectLike(key)) {\n setObjectToElement(element, key);\n return key;\n }\n // 根据 key、value 设置值\n // data(element, 'key', 'value')\n if (!isUndefined(value)) {\n setObjectToElement(element, { [key]: value });\n return value;\n }\n // 获取所有值\n // data(element)\n if (isUndefined(key)) {\n // @ts-ignore\n return element[dataNS] ? element[dataNS] : {};\n }\n // 从 dataNS 中获取指定值\n // data(element, 'key')\n key = toCamelCase(key);\n // @ts-ignore\n if (element[dataNS] && key in element[dataNS]) {\n // @ts-ignore\n return element[dataNS][key];\n }\n return undefined;\n}\nexport default data;\n","import $ from '../$';\nimport data from '../functions/data';\n$.data = data;\n","import $ from '../$';\nimport each from '../functions/each';\n$.each = each;\n","import $ from '../$';\nimport each from '../functions/each';\nimport extend from '../functions/extend';\n$.extend = function (...objectN) {\n if (objectN.length === 1) {\n each(objectN[0], (prop, value) => {\n this[prop] = value;\n });\n return this;\n }\n return extend(objectN.shift(), objectN.shift(), ...objectN);\n};\n","import each from './each';\nfunction map(elements, callback) {\n let value;\n const ret = [];\n each(elements, (i, element) => {\n value = callback.call(window, element, i);\n if (value != null) {\n ret.push(value);\n }\n });\n return [].concat(...ret);\n}\nexport default map;\n","import $ from '../$';\nimport map from '../functions/map';\n$.map = map;\n","import $ from '../$';\nimport merge from '../functions/merge';\n$.merge = merge;\n","import $ from '../$';\nimport param from '../functions/param';\n$.param = param;\n","import each from '../functions/each';\nimport { isUndefined, isString, toCamelCase } from '../utils';\nimport dataNS from './utils/data';\n/**\n * 移除指定元素上存放的数据\n * @param element 存放数据的元素\n * @param name\n * 数据键名\n *\n * 若未指定键名,将移除元素上所有数据\n *\n * 多个键名可以用空格分隔,或者用数组表示多个键名\n @example\n```js\n// 移除元素上键名为 name 的数据\nremoveData(document.body, 'name');\n```\n * @example\n```js\n// 移除元素上键名为 name1 和 name2 的数据\nremoveData(document.body, 'name1 name2');\n```\n * @example\n```js\n// 移除元素上键名为 name1 和 name2 的数据\nremoveData(document.body, ['name1', 'name2']);\n```\n * @example\n```js\n// 移除元素上所有数据\nremoveData(document.body);\n```\n */\nfunction removeData(element, name) {\n // @ts-ignore\n if (!element[dataNS]) {\n return;\n }\n const remove = (nameItem) => {\n nameItem = toCamelCase(nameItem);\n // @ts-ignore\n if (element[dataNS][nameItem]) {\n // @ts-ignore\n element[dataNS][nameItem] = null;\n // @ts-ignore\n delete element[dataNS][nameItem];\n }\n };\n if (isUndefined(name)) {\n // @ts-ignore\n element[dataNS] = null;\n // @ts-ignore\n delete element[dataNS];\n // @ts-ignore\n }\n else if (isString(name)) {\n name\n .split(' ')\n .filter((nameItem) => nameItem)\n .forEach((nameItem) => remove(nameItem));\n }\n else {\n each(name, (_, nameItem) => remove(nameItem));\n }\n}\nexport default removeData;\n","import $ from '../$';\nimport removeData from '../functions/removeData';\n$.removeData = removeData;\n","import each from './each';\n/**\n * 过滤掉数组中的重复元素\n * @param arr 数组\n * @example\n```js\nunique([1, 2, 12, 3, 2, 1, 2, 1, 1]);\n// [1, 2, 12, 3]\n```\n */\nfunction unique(arr) {\n const result = [];\n each(arr, (_, val) => {\n if (result.indexOf(val) === -1) {\n result.push(val);\n }\n });\n return result;\n}\nexport default unique;\n","import $ from '../$';\nimport unique from '../functions/unique';\n$.unique = unique;\n","import $ from '../$';\nimport merge from '../functions/merge';\nimport unique from '../functions/unique';\nimport { JQ } from '../JQ';\nimport './get';\n$.fn.add = function (selector) {\n return new JQ(unique(merge(this.get(), $(selector).get())));\n};\n","import $ from '../$';\nimport each from '../functions/each';\nimport { isElement, isFunction } from '../utils';\nimport './each';\neach(['add', 'remove', 'toggle'], (_, name) => {\n $.fn[`${name}Class`] = function (className) {\n if (name === 'remove' && !arguments.length) {\n return this.each((_, element) => {\n element.setAttribute('class', '');\n });\n }\n return this.each((i, element) => {\n if (!isElement(element)) {\n return;\n }\n const classes = (isFunction(className)\n ? className.call(element, i, element.getAttribute('class') || '')\n : className)\n .split(' ')\n .filter((name) => name);\n each(classes, (_, cls) => {\n element.classList[name](cls);\n });\n });\n };\n});\n","import $ from '../$';\nimport each from '../functions/each';\nimport './each';\neach(['insertBefore', 'insertAfter'], (nameIndex, name) => {\n $.fn[name] = function (target) {\n const $element = nameIndex ? $(this.get().reverse()) : this; // 顺序和 jQuery 保持一致\n const $target = $(target);\n const result = [];\n $target.each((index, target) => {\n if (!target.parentNode) {\n return;\n }\n $element.each((_, element) => {\n const newItem = index\n ? element.cloneNode(true)\n : element;\n const existingItem = nameIndex ? target.nextSibling : target;\n result.push(newItem);\n target.parentNode.insertBefore(newItem, existingItem);\n });\n });\n return $(nameIndex ? result.reverse() : result);\n };\n});\n","import $ from '../$';\nimport each from '../functions/each';\nimport { getChildNodesArray, isFunction, isString, isElement } from '../utils';\nimport './each';\nimport './insertAfter';\nimport './insertBefore';\n/**\n * 是否不是 HTML 字符串(包裹在 <> 中)\n * @param target\n */\nfunction isPlainText(target) {\n return (isString(target) && (target[0] !== '<' || target[target.length - 1] !== '>'));\n}\neach(['before', 'after'], (nameIndex, name) => {\n $.fn[name] = function (...args) {\n // after 方法,多个参数需要按参数顺序添加到元素后面,所以需要将参数顺序反向处理\n if (nameIndex === 1) {\n args = args.reverse();\n }\n return this.each((index, element) => {\n const targets = isFunction(args[0])\n ? [args[0].call(element, index, element.innerHTML)]\n : args;\n each(targets, (_, target) => {\n let $target;\n if (isPlainText(target)) {\n $target = $(getChildNodesArray(target, 'div'));\n }\n else if (index && isElement(target)) {\n $target = $(target.cloneNode(true));\n }\n else {\n $target = $(target);\n }\n $target[nameIndex ? 'insertAfter' : 'insertBefore'](element);\n });\n });\n };\n});\n","import $ from '../$';\nimport each from '../functions/each';\nimport { isFunction, isObjectLike, returnFalse } from '../utils';\nimport './each';\nimport { remove } from './utils/event';\n$.fn.off = function (types, selector, callback) {\n // types 是对象\n if (isObjectLike(types)) {\n each(types, (type, fn) => {\n // this.off('click', undefined, function () {})\n // this.off('click', '.box', function () {})\n this.off(type, selector, fn);\n });\n return this;\n }\n // selector 不存在\n if (selector === false || isFunction(selector)) {\n callback = selector;\n selector = undefined;\n // this.off('click', undefined, function () {})\n }\n // callback 传入 `false`,相当于 `return false`\n if (callback === false) {\n callback = returnFalse;\n }\n return this.each(function () {\n remove(this, types, callback, selector);\n });\n};\n","import $ from '../$';\nimport each from '../functions/each';\nimport { isObjectLike, isString, returnFalse } from '../utils';\nimport './each';\nimport './off';\nimport { add } from './utils/event';\n$.fn.on = function (types, selector, data, callback, one) {\n // types 可以是 type/func 对象\n if (isObjectLike(types)) {\n // (types-Object, selector, data)\n if (!isString(selector)) {\n // (types-Object, data)\n data = data || selector;\n selector = undefined;\n }\n each(types, (type, fn) => {\n // selector 和 data 都可能是 undefined\n // @ts-ignore\n this.on(type, selector, data, fn, one);\n });\n return this;\n }\n if (data == null && callback == null) {\n // (types, fn)\n callback = selector;\n data = selector = undefined;\n }\n else if (callback == null) {\n if (isString(selector)) {\n // (types, selector, fn)\n callback = data;\n data = undefined;\n }\n else {\n // (types, data, fn)\n callback = data;\n data = selector;\n selector = undefined;\n }\n }\n if (callback === false) {\n callback = returnFalse;\n }\n else if (!callback) {\n return this;\n }\n // $().one()\n if (one) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const _this = this;\n const origCallback = callback;\n callback = function (event) {\n _this.off(event.type, selector, callback);\n // eslint-disable-next-line prefer-rest-params\n return origCallback.apply(this, arguments);\n };\n }\n return this.each(function () {\n add(this, types, callback, data, selector);\n });\n};\n","import $ from '../$';\nimport each from '../functions/each';\nimport { ajaxEvents } from '../functions/utils/ajax';\nimport './on';\neach(ajaxEvents, (name, eventName) => {\n $.fn[name] = function (fn) {\n return this.on(eventName, (e, params) => {\n fn(e, params.xhr, params.options, params.data);\n });\n };\n});\n","import $ from '../$';\nimport map from '../functions/map';\nimport { JQ } from '../JQ';\n$.fn.map = function (callback) {\n return new JQ(map(this, (element, i) => callback.call(element, i, element)));\n};\n","import $ from '../$';\nimport './map';\n$.fn.clone = function () {\n return this.map(function () {\n return this.cloneNode(true);\n });\n};\n","import $ from '../$';\nimport { isDocument, isFunction, isString, isWindow } from '../utils';\nimport './each';\n$.fn.is = function (selector) {\n let isMatched = false;\n if (isFunction(selector)) {\n this.each((index, element) => {\n if (selector.call(element, index, element)) {\n isMatched = true;\n }\n });\n return isMatched;\n }\n if (isString(selector)) {\n this.each((_, element) => {\n if (isDocument(element) || isWindow(element)) {\n return;\n }\n // @ts-ignore\n const matches = element.matches || element.msMatchesSelector;\n if (matches.call(element, selector)) {\n isMatched = true;\n }\n });\n return isMatched;\n }\n const $compareWith = $(selector);\n this.each((_, element) => {\n $compareWith.each((_, compare) => {\n if (element === compare) {\n isMatched = true;\n }\n });\n });\n return isMatched;\n};\n","import $ from '../$';\nimport './each';\nimport './is';\n$.fn.remove = function (selector) {\n return this.each((_, element) => {\n if (element.parentNode && (!selector || $(element).is(selector))) {\n element.parentNode.removeChild(element);\n }\n });\n};\n","import $ from '../$';\nimport each from '../functions/each';\nimport { isFunction, isString } from '../utils';\nimport './after';\nimport './before';\nimport './clone';\nimport './each';\nimport './map';\nimport './remove';\neach(['prepend', 'append'], (nameIndex, name) => {\n $.fn[name] = function (...args) {\n return this.each((index, element) => {\n const childNodes = element.childNodes;\n const childLength = childNodes.length;\n const child = childLength\n ? childNodes[nameIndex ? childLength - 1 : 0]\n : document.createElement('div');\n if (!childLength) {\n element.appendChild(child);\n }\n let contents = isFunction(args[0])\n ? [args[0].call(element, index, element.innerHTML)]\n : args;\n // 如果不是字符串,则仅第一个元素使用原始元素,其他的都克隆自第一个元素\n if (index) {\n contents = contents.map((content) => {\n return isString(content) ? content : $(content).clone();\n });\n }\n $(child)[nameIndex ? 'after' : 'before'](...contents);\n if (!childLength) {\n element.removeChild(child);\n }\n });\n };\n});\n","import $ from '../$';\nimport each from '../functions/each';\nimport './insertAfter';\nimport './insertBefore';\nimport './map';\nimport './remove';\neach(['appendTo', 'prependTo'], (nameIndex, name) => {\n $.fn[name] = function (target) {\n const extraChilds = [];\n const $target = $(target).map((_, element) => {\n const childNodes = element.childNodes;\n const childLength = childNodes.length;\n if (childLength) {\n return childNodes[nameIndex ? 0 : childLength - 1];\n }\n const child = document.createElement('div');\n element.appendChild(child);\n extraChilds.push(child);\n return child;\n });\n const $result = this[nameIndex ? 'insertBefore' : 'insertAfter']($target);\n $(extraChilds).remove();\n return $result;\n };\n});\n","import $ from '../$';\nimport each from '../functions/each';\nimport { cssNumber, getStyle, isElement, isFunction, isNull, isNumber, isObjectLike, isUndefined, toCamelCase, } from '../utils';\nimport './each';\neach(['attr', 'prop', 'css'], (nameIndex, name) => {\n function set(element, key, value) {\n // 值为 undefined 时,不修改\n if (isUndefined(value)) {\n return;\n }\n switch (nameIndex) {\n // attr\n case 0:\n if (isNull(value)) {\n element.removeAttribute(key);\n }\n else {\n element.setAttribute(key, value);\n }\n break;\n // prop\n case 1:\n // @ts-ignore\n element[key] = value;\n break;\n // css\n default:\n key = toCamelCase(key);\n // @ts-ignore\n element.style[key] = isNumber(value)\n ? `${value}${cssNumber.indexOf(key) > -1 ? '' : 'px'}`\n : value;\n break;\n }\n }\n function get(element, key) {\n switch (nameIndex) {\n // attr\n case 0:\n // 属性不存在时,原生 getAttribute 方法返回 null,而 jquery 返回 undefined。这里和 jquery 保持一致\n const value = element.getAttribute(key);\n return isNull(value) ? undefined : value;\n // prop\n case 1:\n // @ts-ignore\n return element[key];\n // css\n default:\n return getStyle(element, key);\n }\n }\n $.fn[name] = function (key, value) {\n if (isObjectLike(key)) {\n each(key, (k, v) => {\n // @ts-ignore\n this[name](k, v);\n });\n return this;\n }\n if (arguments.length === 1) {\n const element = this[0];\n return isElement(element) ? get(element, key) : undefined;\n }\n return this.each((i, element) => {\n set(element, key, isFunction(value) ? value.call(element, i, get(element, key)) : value);\n });\n };\n});\n","import $ from '../$';\nimport each from '../functions/each';\nimport unique from '../functions/unique';\nimport { JQ } from '../JQ';\nimport { isElement } from '../utils';\nimport './each';\nimport './is';\n$.fn.children = function (selector) {\n const children = [];\n this.each((_, element) => {\n each(element.childNodes, (__, childNode) => {\n if (!isElement(childNode)) {\n return;\n }\n if (!selector || $(childNode).is(selector)) {\n children.push(childNode);\n }\n });\n });\n return new JQ(unique(children));\n};\n","import $ from '../$';\nimport { JQ } from '../JQ';\n$.fn.slice = function (...args) {\n return new JQ([].slice.apply(this, args));\n};\n","import $ from '../$';\nimport { JQ } from '../JQ';\nimport './slice';\n$.fn.eq = function (index) {\n const ret = index === -1 ? this.slice(index) : this.slice(index, +index + 1);\n return new JQ(ret);\n};\n","import $ from '../../$';\nimport unique from '../../functions/unique';\nimport { JQ } from '../../JQ';\nimport { isElement } from '../../utils';\nimport '../each';\nimport '../is';\nexport default function dir($elements, nameIndex, node, selector, filter) {\n const ret = [];\n let target;\n $elements.each((_, element) => {\n target = element[node];\n // 不能包含最顶层的 document 元素\n while (target && isElement(target)) {\n // prevUntil, nextUntil, parentsUntil\n if (nameIndex === 2) {\n if (selector && $(target).is(selector)) {\n break;\n }\n if (!filter || $(target).is(filter)) {\n ret.push(target);\n }\n }\n // prev, next, parent\n else if (nameIndex === 0) {\n if (!selector || $(target).is(selector)) {\n ret.push(target);\n }\n break;\n }\n // prevAll, nextAll, parents\n else {\n if (!selector || $(target).is(selector)) {\n ret.push(target);\n }\n }\n // @ts-ignore\n target = target[node];\n }\n });\n return new JQ(unique(ret));\n}\n","import $ from '../$';\nimport each from '../functions/each';\nimport './get';\nimport dir from './utils/dir';\neach(['', 's', 'sUntil'], (nameIndex, name) => {\n $.fn[`parent${name}`] = function (selector, filter) {\n // parents、parentsUntil 需要把元素的顺序反向处理,以便和 jQuery 的结果一致\n const $nodes = !nameIndex ? this : $(this.get().reverse());\n return dir($nodes, nameIndex, 'parentNode', selector, filter);\n };\n});\n","import $ from '../$';\nimport { JQ } from '../JQ';\nimport './eq';\nimport './is';\nimport './parents';\n$.fn.closest = function (selector) {\n if (this.is(selector)) {\n return this;\n }\n const matched = [];\n this.parents().each((_, element) => {\n if ($(element).is(selector)) {\n matched.push(element);\n return false;\n }\n });\n return new JQ(matched);\n};\n","import $ from '../$';\nimport data from '../functions/data';\nimport { isObjectLike, isString, isUndefined, toCamelCase, toKebabCase, } from '../utils';\nimport './each';\nconst rbrace = /^(?:{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/;\n// 从 `data-*` 中获取的值,需要经过该函数转换\nfunction getData(value) {\n if (value === 'true') {\n return true;\n }\n if (value === 'false') {\n return false;\n }\n if (value === 'null') {\n return null;\n }\n if (value === +value + '') {\n return +value;\n }\n if (rbrace.test(value)) {\n return JSON.parse(value);\n }\n return value;\n}\n// 若 value 不存在,则从 `data-*` 中获取值\nfunction dataAttr(element, key, value) {\n if (isUndefined(value) && element.nodeType === 1) {\n const name = 'data-' + toKebabCase(key);\n value = element.getAttribute(name);\n if (isString(value)) {\n try {\n value = getData(value);\n }\n catch (e) { }\n }\n else {\n value = undefined;\n }\n }\n return value;\n}\n$.fn.data = function (key, value) {\n // 获取所有值\n if (isUndefined(key)) {\n if (!this.length) {\n return undefined;\n }\n const element = this[0];\n const resultData = data(element);\n // window, document 上不存在 `data-*` 属性\n if (element.nodeType !== 1) {\n return resultData;\n }\n // 从 `data-*` 中获取值\n const attrs = element.attributes;\n let i = attrs.length;\n while (i--) {\n if (attrs[i]) {\n let name = attrs[i].name;\n if (name.indexOf('data-') === 0) {\n name = toCamelCase(name.slice(5));\n resultData[name] = dataAttr(element, name, resultData[name]);\n }\n }\n }\n return resultData;\n }\n // 同时设置多个值\n if (isObjectLike(key)) {\n return this.each(function () {\n data(this, key);\n });\n }\n // value 传入了 undefined\n if (arguments.length === 2 && isUndefined(value)) {\n return this;\n }\n // 设置值\n if (!isUndefined(value)) {\n return this.each(function () {\n data(this, key, value);\n });\n }\n // 获取值\n if (!this.length) {\n return undefined;\n }\n return dataAttr(this[0], key, data(this[0], key));\n};\n","import $ from '../$';\nimport './each';\n$.fn.empty = function () {\n return this.each(function () {\n this.innerHTML = '';\n });\n};\n","import $ from '../$';\nimport each from '../functions/each';\n$.fn.extend = function (obj) {\n each(obj, (prop, value) => {\n // 在 JQ 对象上扩展方法时,需要自己添加 typescript 的类型定义\n $.fn[prop] = value;\n });\n return this;\n};\n","import $ from '../$';\nimport { isFunction, isString } from '../utils';\nimport './is';\nimport './map';\n$.fn.filter = function (selector) {\n if (isFunction(selector)) {\n return this.map((index, element) => selector.call(element, index, element) ? element : undefined);\n }\n if (isString(selector)) {\n return this.map((_, element) => $(element).is(selector) ? element : undefined);\n }\n const $selector = $(selector);\n return this.map((_, element) => $selector.get().indexOf(element) > -1 ? element : undefined);\n};\n","import $ from '../$';\nimport './eq';\n$.fn.first = function () {\n return this.eq(0);\n};\n","import $ from '../$';\nimport contains from '../functions/contains';\nimport { isString } from '../utils';\nimport './find';\n$.fn.has = function (selector) {\n const $targets = isString(selector) ? this.find(selector) : $(selector);\n const { length } = $targets;\n return this.map(function () {\n for (let i = 0; i < length; i += 1) {\n if (contains(this, $targets[i])) {\n return this;\n }\n }\n return;\n });\n};\n","import $ from '../$';\n$.fn.hasClass = function (className) {\n return this[0].classList.contains(className);\n};\n","import $ from '../$';\nimport each from '../functions/each';\nimport { isBoolean, isDocument, isFunction, isWindow, toElement, isBorderBox, getExtraWidth, getComputedStyleValue, isIE, } from '../utils';\nimport './css';\nimport './each';\n/**\n * 值上面的 padding、border、margin 处理\n * @param element\n * @param name\n * @param value\n * @param funcIndex\n * @param includeMargin\n * @param multiply\n */\nfunction handleExtraWidth(element, name, value, funcIndex, includeMargin, multiply) {\n // 获取元素的 padding, border, margin 宽度(两侧宽度的和)\n const getExtraWidthValue = (extra) => {\n return (getExtraWidth(element, name.toLowerCase(), extra) *\n multiply);\n };\n if (funcIndex === 2 && includeMargin) {\n value += getExtraWidthValue('margin');\n }\n if (isBorderBox(element)) {\n // IE 为 box-sizing: border-box 时,得到的值不含 border 和 padding,这里先修复\n // 仅获取时需要处理,multiply === 1 为 get\n if (isIE() && multiply === 1) {\n value += getExtraWidthValue('border');\n value += getExtraWidthValue('padding');\n }\n if (funcIndex === 0) {\n value -= getExtraWidthValue('border');\n }\n if (funcIndex === 1) {\n value -= getExtraWidthValue('border');\n value -= getExtraWidthValue('padding');\n }\n }\n else {\n if (funcIndex === 0) {\n value += getExtraWidthValue('padding');\n }\n if (funcIndex === 2) {\n value += getExtraWidthValue('border');\n value += getExtraWidthValue('padding');\n }\n }\n return value;\n}\n/**\n * 获取元素的样式值\n * @param element\n * @param name\n * @param funcIndex 0: innerWidth, innerHeight; 1: width, height; 2: outerWidth, outerHeight\n * @param includeMargin\n */\nfunction get(element, name, funcIndex, includeMargin) {\n const clientProp = `client${name}`;\n const scrollProp = `scroll${name}`;\n const offsetProp = `offset${name}`;\n const innerProp = `inner${name}`;\n // $(window).width()\n if (isWindow(element)) {\n // outerWidth, outerHeight 需要包含滚动条的宽度\n return funcIndex === 2\n ? element[innerProp]\n : toElement(document)[clientProp];\n }\n // $(document).width()\n if (isDocument(element)) {\n const doc = toElement(element);\n return Math.max(\n // @ts-ignore\n element.body[scrollProp], doc[scrollProp], \n // @ts-ignore\n element.body[offsetProp], doc[offsetProp], doc[clientProp]);\n }\n const value = parseFloat(getComputedStyleValue(element, name.toLowerCase()) || '0');\n return handleExtraWidth(element, name, value, funcIndex, includeMargin, 1);\n}\n/**\n * 设置元素的样式值\n * @param element\n * @param elementIndex\n * @param name\n * @param funcIndex 0: innerWidth, innerHeight; 1: width, height; 2: outerWidth, outerHeight\n * @param includeMargin\n * @param value\n */\nfunction set(element, elementIndex, name, funcIndex, includeMargin, value) {\n let computedValue = isFunction(value)\n ? value.call(element, elementIndex, get(element, name, funcIndex, includeMargin))\n : value;\n if (computedValue == null) {\n return;\n }\n const $element = $(element);\n const dimension = name.toLowerCase();\n // 特殊的值,不需要计算 padding、border、margin\n if (['auto', 'inherit', ''].indexOf(computedValue) > -1) {\n $element.css(dimension, computedValue);\n return;\n }\n // 其他值保留原始单位。注意:如果不使用 px 作为单位,则算出的值一般是不准确的\n const suffix = computedValue.toString().replace(/\\b[0-9.]*/, '');\n const numerical = parseFloat(computedValue);\n computedValue =\n handleExtraWidth(element, name, numerical, funcIndex, includeMargin, -1) +\n (suffix || 'px');\n $element.css(dimension, computedValue);\n}\neach(['Width', 'Height'], (_, name) => {\n each([`inner${name}`, name.toLowerCase(), `outer${name}`], (funcIndex, funcName) => {\n $.fn[funcName] = function (margin, value) {\n // 是否是赋值操作\n const isSet = arguments.length && (funcIndex < 2 || !isBoolean(margin));\n const includeMargin = margin === true || value === true;\n // 获取第一个元素的值\n if (!isSet) {\n return this.length\n ? get(this[0], name, funcIndex, includeMargin)\n : undefined;\n }\n // 设置每个元素的值\n return this.each((index, element) => set(element, index, name, funcIndex, includeMargin, margin));\n };\n });\n});\n","import $ from '../$';\nimport './each';\n$.fn.hide = function () {\n return this.each(function () {\n this.style.display = 'none';\n });\n};\n","import $ from '../$';\nimport each from '../functions/each';\nimport map from '../functions/map';\nimport { isElement, isFunction, isUndefined, toElement } from '../utils';\nimport './each';\nimport './is';\neach(['val', 'html', 'text'], (nameIndex, name) => {\n const props = {\n 0: 'value',\n 1: 'innerHTML',\n 2: 'textContent',\n };\n const propName = props[nameIndex];\n function get($elements) {\n // text() 获取所有元素的文本\n if (nameIndex === 2) {\n // @ts-ignore\n return map($elements, (element) => toElement(element)[propName]).join('');\n }\n // 空集合时,val() 和 html() 返回 undefined\n if (!$elements.length) {\n return undefined;\n }\n // val() 和 html() 仅获取第一个元素的内容\n const firstElement = $elements[0];\n // select multiple 返回数组\n if (nameIndex === 0 && $(firstElement).is('select[multiple]')) {\n return map($(firstElement).find('option:checked'), (element) => element.value);\n }\n // @ts-ignore\n return firstElement[propName];\n }\n function set(element, value) {\n // text() 和 html() 赋值为 undefined,则保持原内容不变\n // val() 赋值为 undefined 则赋值为空\n if (isUndefined(value)) {\n if (nameIndex !== 0) {\n return;\n }\n value = '';\n }\n if (nameIndex === 1 && isElement(value)) {\n value = value.outerHTML;\n }\n // @ts-ignore\n element[propName] = value;\n }\n $.fn[name] = function (value) {\n // 获取值\n if (!arguments.length) {\n return get(this);\n }\n // 设置值\n return this.each((i, element) => {\n const computedValue = isFunction(value)\n ? value.call(element, i, get($(element)))\n : value;\n // value 是数组,则选中数组中的元素,反选不在数组中的元素\n if (nameIndex === 0 && Array.isArray(computedValue)) {\n // select[multiple]\n if ($(element).is('select[multiple]')) {\n map($(element).find('option'), (option) => (option.selected =\n computedValue.indexOf(option.value) >\n -1));\n }\n // 其他 checkbox, radio 等元素\n else {\n element.checked =\n computedValue.indexOf(element.value) > -1;\n }\n }\n else {\n set(element, computedValue);\n }\n });\n };\n});\n","import $ from '../$';\nimport { isString } from '../utils';\nimport './children';\nimport './eq';\nimport './get';\nimport './parent';\n$.fn.index = function (selector) {\n if (!arguments.length) {\n return this.eq(0).parent().children().get().indexOf(this[0]);\n }\n if (isString(selector)) {\n return $(selector).get().indexOf(this[0]);\n }\n return this.get().indexOf($(selector)[0]);\n};\n","import $ from '../$';\nimport './eq';\n$.fn.last = function () {\n return this.eq(-1);\n};\n","import $ from '../$';\nimport each from '../functions/each';\nimport dir from './utils/dir';\neach(['', 'All', 'Until'], (nameIndex, name) => {\n $.fn[`next${name}`] = function (selector, filter) {\n return dir(this, nameIndex, 'nextElementSibling', selector, filter);\n };\n});\n","import $ from '../$';\nimport './filter';\nimport './map';\n$.fn.not = function (selector) {\n const $excludes = this.filter(selector);\n return this.map((_, element) => $excludes.index(element) > -1 ? undefined : element);\n};\n","import $ from '../$';\nimport './css';\nimport './map';\n/**\n * 返回最近的用于定位的父元素\n */\n$.fn.offsetParent = function () {\n return this.map(function () {\n let offsetParent = this.offsetParent;\n while (offsetParent && $(offsetParent).css('position') === 'static') {\n offsetParent = offsetParent.offsetParent;\n }\n return offsetParent || document.documentElement;\n });\n};\n","import $ from '../$';\nimport './css';\nimport './eq';\nimport './offset';\nimport './offsetParent';\nfunction floatStyle($element, name) {\n return parseFloat($element.css(name));\n}\n$.fn.position = function () {\n if (!this.length) {\n return undefined;\n }\n const $element = this.eq(0);\n let currentOffset;\n let parentOffset = {\n left: 0,\n top: 0,\n };\n if ($element.css('position') === 'fixed') {\n currentOffset = $element[0].getBoundingClientRect();\n }\n else {\n currentOffset = $element.offset();\n const $offsetParent = $element.offsetParent();\n parentOffset = $offsetParent.offset();\n parentOffset.top += floatStyle($offsetParent, 'border-top-width');\n parentOffset.left += floatStyle($offsetParent, 'border-left-width');\n }\n return {\n top: currentOffset.top - parentOffset.top - floatStyle($element, 'margin-top'),\n left: currentOffset.left -\n parentOffset.left -\n floatStyle($element, 'margin-left'),\n };\n};\n","import $ from '../$';\nimport extend from '../functions/extend';\nimport { isFunction } from '../utils';\nimport './css';\nimport './each';\nimport './position';\nfunction get(element) {\n if (!element.getClientRects().length) {\n return { top: 0, left: 0 };\n }\n const rect = element.getBoundingClientRect();\n const win = element.ownerDocument.defaultView;\n return {\n top: rect.top + win.pageYOffset,\n left: rect.left + win.pageXOffset,\n };\n}\nfunction set(element, value, index) {\n const $element = $(element);\n const position = $element.css('position');\n if (position === 'static') {\n $element.css('position', 'relative');\n }\n const currentOffset = get(element);\n const currentTopString = $element.css('top');\n const currentLeftString = $element.css('left');\n let currentTop;\n let currentLeft;\n const calculatePosition = (position === 'absolute' || position === 'fixed') &&\n (currentTopString + currentLeftString).indexOf('auto') > -1;\n if (calculatePosition) {\n const currentPosition = $element.position();\n currentTop = currentPosition.top;\n currentLeft = currentPosition.left;\n }\n else {\n currentTop = parseFloat(currentTopString);\n currentLeft = parseFloat(currentLeftString);\n }\n const computedValue = isFunction(value)\n ? value.call(element, index, extend({}, currentOffset))\n : value;\n $element.css({\n top: computedValue.top != null\n ? computedValue.top - currentOffset.top + currentTop\n : undefined,\n left: computedValue.left != null\n ? computedValue.left - currentOffset.left + currentLeft\n : undefined,\n });\n}\n$.fn.offset = function (value) {\n // 获取坐标\n if (!arguments.length) {\n if (!this.length) {\n return undefined;\n }\n return get(this[0]);\n }\n // 设置坐标\n return this.each(function (index) {\n set(this, value, index);\n });\n};\n","import $ from '../$';\nimport './on';\n$.fn.one = function (types, selector, data, callback) {\n // @ts-ignore\n return this.on(types, selector, data, callback, true);\n};\n","import $ from '../$';\nimport each from '../functions/each';\nimport './get';\nimport dir from './utils/dir';\neach(['', 'All', 'Until'], (nameIndex, name) => {\n $.fn[`prev${name}`] = function (selector, filter) {\n // prevAll、prevUntil 需要把元素的顺序倒序处理,以便和 jQuery 的结果一致\n const $nodes = !nameIndex ? this : $(this.get().reverse());\n return dir($nodes, nameIndex, 'previousElementSibling', selector, filter);\n };\n});\n","import $ from '../$';\nimport each from '../functions/each';\nimport './each';\n$.fn.removeAttr = function (attributeName) {\n const names = attributeName.split(' ').filter((name) => name);\n return this.each(function () {\n each(names, (_, name) => {\n this.removeAttribute(name);\n });\n });\n};\n","import $ from '../$';\nimport removeData from '../functions/removeData';\nimport './each';\n$.fn.removeData = function (name) {\n return this.each(function () {\n removeData(this, name);\n });\n};\n","import $ from '../$';\nimport './each';\n$.fn.removeProp = function (name) {\n return this.each(function () {\n try {\n // @ts-ignore\n delete this[name];\n }\n catch (e) { }\n });\n};\n","import $ from '../$';\nimport './before';\nimport './clone';\nimport './each';\nimport './remove';\nimport { isFunction, isString } from '../utils';\n$.fn.replaceWith = function (newContent) {\n this.each((index, element) => {\n let content = newContent;\n if (isFunction(content)) {\n content = content.call(element, index, element.innerHTML);\n }\n else if (index && !isString(content)) {\n content = $(content).clone();\n }\n $(element).before(content);\n });\n return this.remove();\n};\n","import $ from '../$';\nimport './clone';\nimport './get';\nimport './map';\nimport './replaceWith';\n$.fn.replaceAll = function (target) {\n return $(target).map((index, element) => {\n $(element).replaceWith(index ? this.clone() : this);\n return this.get();\n });\n};\n","import $ from '../$';\nimport './each';\nimport './val';\n/**\n * 将表单元素的值组合成键值对数组\n * @returns {Array}\n */\n$.fn.serializeArray = function () {\n const result = [];\n this.each((_, element) => {\n const elements = element instanceof HTMLFormElement ? element.elements : [element];\n $(elements).each((_, element) => {\n const $element = $(element);\n const type = element.type;\n const nodeName = element.nodeName.toLowerCase();\n if (nodeName !== 'fieldset' &&\n element.name &&\n !element.disabled &&\n ['input', 'select', 'textarea', 'keygen'].indexOf(nodeName) > -1 &&\n ['submit', 'button', 'image', 'reset', 'file'].indexOf(type) === -1 &&\n (['radio', 'checkbox'].indexOf(type) === -1 ||\n element.checked)) {\n const value = $element.val();\n const valueArr = Array.isArray(value) ? value : [value];\n valueArr.forEach((value) => {\n result.push({\n name: element.name,\n value,\n });\n });\n }\n });\n });\n return result;\n};\n","import $ from '../$';\nimport param from '../functions/param';\nimport './serializeArray';\n$.fn.serialize = function () {\n return param(this.serializeArray());\n};\n","import $ from '../$';\nimport { getStyle } from '../utils';\nimport './each';\nconst elementDisplay = {};\n/**\n * 获取元素的初始 display 值,用于 .show() 方法\n * @param nodeName\n */\nfunction defaultDisplay(nodeName) {\n let element;\n let display;\n if (!elementDisplay[nodeName]) {\n element = document.createElement(nodeName);\n document.body.appendChild(element);\n display = getStyle(element, 'display');\n element.parentNode.removeChild(element);\n if (display === 'none') {\n display = 'block';\n }\n elementDisplay[nodeName] = display;\n }\n return elementDisplay[nodeName];\n}\n/**\n * 显示指定元素\n * @returns {JQ}\n */\n$.fn.show = function () {\n return this.each(function () {\n if (this.style.display === 'none') {\n this.style.display = '';\n }\n if (getStyle(this, 'display') === 'none') {\n this.style.display = defaultDisplay(this.nodeName);\n }\n });\n};\n","import $ from '../$';\nimport './add';\nimport './nextAll';\nimport './prevAll';\n/**\n * 取得同辈元素的集合\n * @param selector {String=}\n * @returns {JQ}\n */\n$.fn.siblings = function (selector) {\n return this.prevAll(selector).add(this.nextAll(selector));\n};\n","import $ from '../$';\nimport { getStyle } from '../utils';\nimport './each';\nimport './hide';\nimport './show';\n/**\n * 切换元素的显示状态\n */\n$.fn.toggle = function () {\n return this.each(function () {\n getStyle(this, 'display') === 'none' ? $(this).show() : $(this).hide();\n });\n};\n","import $ from 'mdui.jq/es/$';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport 'mdui.jq/es/methods/each';\n\ndeclare module 'mdui.jq/es/JQ' {\n interface JQ {\n /**\n * 强制重绘当前元素\n *\n * @example\n```js\n$('.box').reflow();\n```\n */\n reflow(): this;\n }\n}\n\n$.fn.reflow = function (this: JQ): JQ {\n return this.each(function () {\n return this.clientLeft;\n });\n};\n","import $ from 'mdui.jq/es/$';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport { isNumber } from 'mdui.jq/es/utils';\nimport 'mdui.jq/es/methods/each';\n\ndeclare module 'mdui.jq/es/JQ' {\n interface JQ {\n /**\n * 设置当前元素的 transition-duration 属性\n * @param duration 可以是带单位的值;若不带单位,则自动添加 `ms` 作为单位\n * @example\n```js\n$('.box').transition('300ms');\n$('.box').transition(300);\n```\n */\n transition(duration: string | number): this;\n }\n}\n\n$.fn.transition = function (this: JQ, duration: string | number): JQ {\n if (isNumber(duration)) {\n duration = `${duration}ms`;\n }\n\n return this.each(function () {\n this.style.webkitTransitionDuration = duration as string;\n this.style.transitionDuration = duration as string;\n });\n};\n","import $ from 'mdui.jq/es/$';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport each from 'mdui.jq/es/functions/each';\nimport 'mdui.jq/es/methods/on';\nimport 'mdui.jq/es/methods/off';\n\ndeclare module 'mdui.jq/es/JQ' {\n interface JQ {\n /**\n * 在当前元素上添加 transitionend 事件回调\n * @param callback 回调函数的参数为 `transitionend` 事件对象;`this` 指向当前元素\n * @example\n```js\n$('.box').transitionEnd(function() {\n alert('.box 元素的 transitionend 事件已触发');\n});\n```\n */\n transitionEnd(callback: (this: T, e: Event) => void): this;\n }\n}\n\n$.fn.transitionEnd = function (\n this: JQ,\n callback: (this: HTMLElement, e: Event) => void,\n): JQ {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const that = this;\n const events = ['webkitTransitionEnd', 'transitionend'];\n\n function fireCallback(this: Element | Document | Window, e: Event): void {\n if (e.target !== this) {\n return;\n }\n\n // @ts-ignore\n callback.call(this, e);\n\n each(events, (_, event) => {\n that.off(event, fireCallback);\n });\n }\n\n each(events, (_, event) => {\n that.on(event, fireCallback);\n });\n\n return this;\n};\n","import $ from 'mdui.jq/es/$';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport 'mdui.jq/es/methods/each';\n\ndeclare module 'mdui.jq/es/JQ' {\n interface JQ {\n /**\n * 设置当前元素的 transform-origin 属性\n * @param transformOrigin\n * @example\n```js\n$('.box').transformOrigin('top center');\n```\n */\n transformOrigin(transformOrigin: string): this;\n }\n}\n\n$.fn.transformOrigin = function (this: JQ, transformOrigin: string): JQ {\n return this.each(function () {\n this.style.webkitTransformOrigin = transformOrigin;\n this.style.transformOrigin = transformOrigin;\n });\n};\n","import $ from 'mdui.jq/es/$';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport 'mdui.jq/es/methods/each';\n\ndeclare module 'mdui.jq/es/JQ' {\n interface JQ {\n /**\n * 设置当前元素的 transform 属性\n * @param transform\n * @example\n```js\n$('.box').transform('rotate(90deg)');\n```\n */\n transform(transform: string): this;\n }\n}\n\n$.fn.transform = function (this: JQ, transform: string): JQ {\n return this.each(function () {\n this.style.webkitTransform = transform;\n this.style.transform = transform;\n });\n};\n","import PlainObject from 'mdui.jq/es/interfaces/PlainObject';\nimport data from 'mdui.jq/es/functions/data';\n\ntype TYPE_API_INIT = (\n this: HTMLElement,\n i: number,\n element: HTMLElement,\n) => void;\n\n/**\n * CSS 选择器和初始化函数组成的对象\n */\nconst entries: PlainObject = {};\n\n/**\n * 注册并执行初始化函数\n * @param selector CSS 选择器\n * @param apiInit 初始化函数\n * @param i 元素索引\n * @param element 元素\n */\nfunction mutation(\n selector: string,\n apiInit: TYPE_API_INIT,\n i: number,\n element: HTMLElement,\n): void {\n let selectors = data(element, '_mdui_mutation');\n\n if (!selectors) {\n selectors = [];\n data(element, '_mdui_mutation', selectors);\n }\n\n if (selectors.indexOf(selector) === -1) {\n selectors.push(selector);\n apiInit.call(element, i, element);\n }\n}\n\nexport { TYPE_API_INIT, entries, mutation };\n","import $ from 'mdui.jq/es/$';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport each from 'mdui.jq/es/functions/each';\nimport 'mdui.jq/es/methods/each';\nimport 'mdui.jq/es/methods/find';\nimport 'mdui.jq/es/methods/is';\nimport { entries, mutation } from '../../utils/mutation';\n\ndeclare module 'mdui.jq/es/JQ' {\n interface JQ {\n /**\n * 执行在当前元素及其子元素内注册的初始化函数\n */\n mutation(): this;\n }\n}\n\n$.fn.mutation = function (this: JQ): JQ {\n return this.each((i, element) => {\n const $this = $(element);\n\n each(entries, (selector: string, apiInit) => {\n if ($this.is(selector)) {\n mutation(selector, apiInit, i, element);\n }\n\n $this.find(selector).each((i, element) => {\n mutation(selector, apiInit, i, element);\n });\n });\n });\n};\n","import $ from 'mdui.jq/es/$';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport { isUndefined } from 'mdui.jq/es/utils';\nimport 'mdui.jq/es/methods/data';\nimport 'mdui.jq/es/methods/css';\nimport 'mdui.jq/es/methods/appendTo';\nimport 'mdui.jq/es/methods/addClass';\nimport '../methods/reflow';\n\ndeclare module 'mdui.jq/es/interfaces/JQStatic' {\n interface JQStatic {\n /**\n * 创建并显示遮罩,返回遮罩层的 JQ 对象\n * @param zIndex 遮罩层的 `z-index` 值,默认为 `2000`\n * @example\n```js\n$.showOverlay();\n```\n * @example\n```js\n$.showOverlay(3000);\n```\n */\n showOverlay(zIndex?: number): JQ;\n }\n}\n\n$.showOverlay = function (zIndex?: number): JQ {\n let $overlay = $('.mdui-overlay');\n\n if ($overlay.length) {\n $overlay.data('_overlay_is_deleted', false);\n\n if (!isUndefined(zIndex)) {\n $overlay.css('z-index', zIndex);\n }\n } else {\n if (isUndefined(zIndex)) {\n zIndex = 2000;\n }\n\n $overlay = $('
          ')\n .appendTo(document.body)\n .reflow()\n .css('z-index', zIndex);\n }\n\n let level = $overlay.data('_overlay_level') || 0;\n\n return $overlay.data('_overlay_level', ++level).addClass('mdui-overlay-show');\n};\n","import $ from 'mdui.jq/es/$';\nimport 'mdui.jq/es/methods/data';\nimport 'mdui.jq/es/methods/removeClass';\nimport 'mdui.jq/es/methods/remove';\nimport '../methods/transitionEnd';\n\ndeclare module 'mdui.jq/es/interfaces/JQStatic' {\n interface JQStatic {\n /**\n * 隐藏遮罩层\n *\n * 如果调用了多次 $.showOverlay() 来显示遮罩层,则也需要调用相同次数的 $.hideOverlay() 才能隐藏遮罩层。可以通过传入参数 true 来强制隐藏遮罩层。\n * @param force 是否强制隐藏遮罩\n * @example\n```js\n$.hideOverlay();\n```\n * @example\n```js\n$.hideOverlay(true);\n```\n */\n hideOverlay(force?: boolean): void;\n }\n}\n\n$.hideOverlay = function (force = false): void {\n const $overlay = $('.mdui-overlay');\n\n if (!$overlay.length) {\n return;\n }\n\n let level = force ? 1 : $overlay.data('_overlay_level');\n\n if (level > 1) {\n $overlay.data('_overlay_level', --level);\n return;\n }\n\n $overlay\n .data('_overlay_level', 0)\n .removeClass('mdui-overlay-show')\n .data('_overlay_is_deleted', true)\n .transitionEnd(() => {\n if ($overlay.data('_overlay_is_deleted')) {\n $overlay.remove();\n }\n });\n};\n","import $ from 'mdui.jq/es/$';\nimport 'mdui.jq/es/methods/addClass';\nimport 'mdui.jq/es/methods/data';\nimport 'mdui.jq/es/methods/width';\n\ndeclare module 'mdui.jq/es/interfaces/JQStatic' {\n interface JQStatic {\n /**\n * 锁定屏页面,禁止页面滚动\n * @example\n```js\n$.lockScreen();\n```\n */\n lockScreen(): void;\n }\n}\n\n$.lockScreen = function (): void {\n const $body = $('body');\n\n // 不直接把 body 设为 box-sizing: border-box,避免污染全局样式\n const newBodyWidth = $body.width();\n let level = $body.data('_lockscreen_level') || 0;\n\n $body\n .addClass('mdui-locked')\n .width(newBodyWidth)\n .data('_lockscreen_level', ++level);\n};\n","import $ from 'mdui.jq/es/$';\nimport 'mdui.jq/es/methods/data';\nimport 'mdui.jq/es/methods/removeClass';\nimport 'mdui.jq/es/methods/width';\n\ndeclare module 'mdui.jq/es/interfaces/JQStatic' {\n interface JQStatic {\n /**\n * 解除页面锁定\n *\n * 如果调用了多次 $.lockScreen() 来显示遮罩层,则也需要调用相同次数的 $.unlockScreen() 才能隐藏遮罩层。可以通过传入参数 true 来强制隐藏遮罩层。\n * @param force 是否强制解除锁定\n * @example\n```js\n$.unlockScreen();\n```\n * @example\n```js\n$.unlockScreen(true);\n```\n */\n unlockScreen(force?: boolean): void;\n }\n}\n\n$.unlockScreen = function (force = false): void {\n const $body = $('body');\n let level = force ? 1 : $body.data('_lockscreen_level');\n\n if (level > 1) {\n $body.data('_lockscreen_level', --level);\n return;\n }\n\n $body.data('_lockscreen_level', 0).removeClass('mdui-locked').width('');\n};\n","import $ from 'mdui.jq/es/$';\nimport { isNull } from 'mdui.jq/es/utils';\n\ndeclare module 'mdui.jq/es/interfaces/JQStatic' {\n interface JQStatic {\n /**\n * 函数节流\n * @param fn 执行的函数\n * @param delay 最多多少毫秒执行一次\n * @example\n```js\n$.throttle(function () {\n console.log('这个函数最多 100ms 执行一次');\n}, 100)\n```\n */\n throttle(fn: () => void, delay: number): () => void;\n }\n}\n\n$.throttle = function (fn: () => void, delay = 16): () => void {\n let timer: any = null;\n\n return function (this: any, ...args: any): void {\n if (isNull(timer)) {\n timer = setTimeout(() => {\n fn.apply(this, args);\n timer = null;\n }, delay);\n }\n };\n};\n","import $ from 'mdui.jq/es/$';\nimport { isUndefined } from 'mdui.jq/es/utils';\nimport PlainObject from 'mdui.jq/es/interfaces/PlainObject';\n\ndeclare module 'mdui.jq/es/interfaces/JQStatic' {\n interface JQStatic {\n /**\n * 生成一个全局唯一的 ID\n * @param name 当该参数值对应的 guid 不存在时,会生成一个新的 guid,并返回;当该参数对应的 guid 已存在,则直接返回已有 guid\n * @example\n```js\n$.guid();\n```\n * @example\n```js\n$.guid('test');\n```\n */\n guid(name?: string): string;\n }\n}\n\nconst GUID: PlainObject = {};\n\n$.guid = function (name?: string): string {\n if (!isUndefined(name) && !isUndefined(GUID[name])) {\n return GUID[name];\n }\n\n function s4(): string {\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n }\n\n const guid =\n '_' +\n s4() +\n s4() +\n '-' +\n s4() +\n '-' +\n s4() +\n '-' +\n s4() +\n '-' +\n s4() +\n s4() +\n s4();\n\n if (!isUndefined(name)) {\n GUID[name] = guid;\n }\n\n return guid;\n};\n","import $ from 'mdui.jq/es/$';\nimport 'mdui.jq/es/methods/each';\nimport mdui from '../mdui';\nimport '../jq_extends/methods/mutation';\nimport { isUndefined } from 'mdui.jq/es/utils';\nimport { TYPE_API_INIT, entries, mutation } from '../utils/mutation';\n\ndeclare module '../interfaces/MduiStatic' {\n interface MduiStatic {\n /**\n * 传入了两个参数时,注册并执行初始化函数\n *\n * 没有传入参数时,执行初始化\n * @param selector CSS 选择器\n * @param apiInit 初始化函数\n * @example\n```js\nmdui.mutation();\n```\n * @example\n```js\nmdui.mutation();\n```\n */\n mutation(selector?: string, apiInit?: TYPE_API_INIT): void;\n }\n}\n\nmdui.mutation = function (selector?: string, apiInit?: TYPE_API_INIT): void {\n if (isUndefined(selector) || isUndefined(apiInit)) {\n $(document).mutation();\n return;\n }\n\n entries[selector] = apiInit!;\n $(selector).each((i, element) => mutation(selector, apiInit, i, element));\n};\n","import $ from 'mdui.jq/es/$';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport PlainObject from 'mdui.jq/es/interfaces/PlainObject';\nimport 'mdui.jq/es/methods/trigger';\n\n/**\n * 触发组件上的事件\n * @param eventName 事件名\n * @param componentName 组件名\n * @param target 在该元素上触发事件\n * @param instance 组件实例\n * @param parameters 事件参数\n */\nfunction componentEvent(\n eventName: string,\n componentName: string,\n target: HTMLElement | HTMLElement[] | JQ,\n instance?: any,\n parameters?: PlainObject,\n): void {\n if (!parameters) {\n parameters = {};\n }\n\n // @ts-ignore\n parameters.inst = instance;\n\n const fullEventName = `${eventName}.mdui.${componentName}`;\n\n // jQuery 事件\n // @ts-ignore\n if (typeof jQuery !== 'undefined') {\n // @ts-ignore\n jQuery(target).trigger(fullEventName, parameters);\n }\n\n const $target = $(target);\n\n // mdui.jq 事件\n $target.trigger(fullEventName, parameters);\n\n // 原生事件,供使用 addEventListener 监听\n type EventParams = {\n detail?: any;\n bubbles: boolean;\n cancelable: boolean;\n };\n\n const eventParams: EventParams = {\n bubbles: true,\n cancelable: true,\n detail: parameters,\n };\n\n const eventObject: CustomEvent = new CustomEvent(fullEventName, eventParams);\n\n // @ts-ignore\n eventObject._detail = parameters;\n\n $target[0].dispatchEvent(eventObject);\n}\n\nexport { componentEvent };\n","import $ from 'mdui.jq/es/$';\n\nconst $document = $(document);\nconst $window = $(window);\nconst $body = $('body');\n\nexport { $document, $window, $body };\n","import $ from 'mdui.jq/es/$';\nimport extend from 'mdui.jq/es/functions/extend';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport 'mdui.jq/es/methods/addClass';\nimport 'mdui.jq/es/methods/data';\nimport 'mdui.jq/es/methods/first';\nimport 'mdui.jq/es/methods/hasClass';\nimport 'mdui.jq/es/methods/on';\nimport 'mdui.jq/es/methods/removeClass';\nimport Selector from 'mdui.jq/es/types/Selector';\nimport { isNumber } from 'mdui.jq/es/utils';\nimport mdui from '../../mdui';\nimport '../../jq_extends/methods/transitionEnd';\nimport { componentEvent } from '../../utils/componentEvent';\nimport { $window } from '../../utils/dom';\n\ndeclare module '../../interfaces/MduiStatic' {\n interface MduiStatic {\n /**\n * Headroom 插件\n *\n * 请通过 `new mdui.Headroom()` 调用\n */\n Headroom: {\n /**\n * 实例化 Headroom 组件\n * @param selector CSS 选择器、或 DOM 元素、或 JQ 对象\n * @param options 配置参数\n */\n new (\n selector: Selector | HTMLElement | ArrayLike,\n options?: OPTIONS,\n ): Headroom;\n };\n }\n}\n\ntype TOLERANCE = {\n /**\n * 滚动条向下滚动多少距离开始隐藏或显示元素\n */\n down: number;\n\n /**\n * 滚动条向上滚动多少距离开始隐藏或显示元素\n */\n up: number;\n};\n\ntype OPTIONS = {\n /**\n * 滚动条滚动多少距离开始隐藏或显示元素\n */\n tolerance?: TOLERANCE | number;\n\n /**\n * 在页面顶部多少距离内滚动不会隐藏元素\n */\n offset?: number;\n\n /**\n * 初始化时添加的类\n */\n initialClass?: string;\n\n /**\n * 元素固定时添加的类\n */\n pinnedClass?: string;\n\n /**\n * 元素隐藏时添加的类\n */\n unpinnedClass?: string;\n};\n\ntype STATE = 'pinning' | 'pinned' | 'unpinning' | 'unpinned';\ntype EVENT = 'pin' | 'pinned' | 'unpin' | 'unpinned';\n\nconst DEFAULT_OPTIONS: OPTIONS = {\n tolerance: 5,\n offset: 0,\n initialClass: 'mdui-headroom',\n pinnedClass: 'mdui-headroom-pinned-top',\n unpinnedClass: 'mdui-headroom-unpinned-top',\n};\n\nclass Headroom {\n /**\n * headroom 元素的 JQ 对象\n */\n public $element: JQ;\n\n /**\n * 配置参数\n */\n public options: OPTIONS = extend({}, DEFAULT_OPTIONS);\n\n /**\n * 当前 headroom 的状态\n */\n private state: STATE = 'pinned';\n\n /**\n * 当前是否启用\n */\n private isEnable = false;\n\n /**\n * 上次滚动后,垂直方向的距离\n */\n private lastScrollY = 0;\n\n /**\n * AnimationFrame ID\n */\n private rafId = 0;\n\n public constructor(\n selector: Selector | HTMLElement | ArrayLike,\n options: OPTIONS = {},\n ) {\n this.$element = $(selector).first();\n\n extend(this.options, options);\n\n // tolerance 参数若为数值,转换为对象\n const tolerance = this.options.tolerance;\n if (isNumber(tolerance)) {\n this.options.tolerance = {\n down: tolerance,\n up: tolerance,\n };\n }\n\n this.enable();\n }\n\n /**\n * 滚动时的处理\n */\n private onScroll(): void {\n this.rafId = window.requestAnimationFrame(() => {\n const currentScrollY = window.pageYOffset;\n const direction = currentScrollY > this.lastScrollY ? 'down' : 'up';\n const tolerance = (this.options.tolerance as TOLERANCE)[direction];\n const scrolled = Math.abs(currentScrollY - this.lastScrollY);\n const toleranceExceeded = scrolled >= tolerance;\n\n if (\n currentScrollY > this.lastScrollY &&\n currentScrollY >= this.options.offset! &&\n toleranceExceeded\n ) {\n this.unpin();\n } else if (\n (currentScrollY < this.lastScrollY && toleranceExceeded) ||\n currentScrollY <= this.options.offset!\n ) {\n this.pin();\n }\n\n this.lastScrollY = currentScrollY;\n });\n }\n\n /**\n * 触发组件事件\n * @param name\n */\n private triggerEvent(name: EVENT): void {\n componentEvent(name, 'headroom', this.$element, this);\n }\n\n /**\n * 动画结束的回调\n */\n private transitionEnd(): void {\n if (this.state === 'pinning') {\n this.state = 'pinned';\n this.triggerEvent('pinned');\n }\n\n if (this.state === 'unpinning') {\n this.state = 'unpinned';\n this.triggerEvent('unpinned');\n }\n }\n\n /**\n * 使元素固定住\n */\n public pin(): void {\n if (\n this.state === 'pinning' ||\n this.state === 'pinned' ||\n !this.$element.hasClass(this.options.initialClass!)\n ) {\n return;\n }\n\n this.triggerEvent('pin');\n this.state = 'pinning';\n this.$element\n .removeClass(this.options.unpinnedClass)\n .addClass(this.options.pinnedClass!)\n .transitionEnd(() => this.transitionEnd());\n }\n\n /**\n * 使元素隐藏\n */\n public unpin(): void {\n if (\n this.state === 'unpinning' ||\n this.state === 'unpinned' ||\n !this.$element.hasClass(this.options.initialClass!)\n ) {\n return;\n }\n\n this.triggerEvent('unpin');\n this.state = 'unpinning';\n this.$element\n .removeClass(this.options.pinnedClass)\n .addClass(this.options.unpinnedClass!)\n .transitionEnd(() => this.transitionEnd());\n }\n\n /**\n * 启用 headroom 插件\n */\n public enable(): void {\n if (this.isEnable) {\n return;\n }\n\n this.isEnable = true;\n this.state = 'pinned';\n this.$element\n .addClass(this.options.initialClass!)\n .removeClass(this.options.pinnedClass)\n .removeClass(this.options.unpinnedClass);\n this.lastScrollY = window.pageYOffset;\n\n $window.on('scroll', () => this.onScroll());\n }\n\n /**\n * 禁用 headroom 插件\n */\n public disable(): void {\n if (!this.isEnable) {\n return;\n }\n\n this.isEnable = false;\n this.$element\n .removeClass(this.options.initialClass)\n .removeClass(this.options.pinnedClass)\n .removeClass(this.options.unpinnedClass);\n\n $window.off('scroll', () => this.onScroll());\n window.cancelAnimationFrame(this.rafId);\n }\n\n /**\n * 获取当前状态。共包含四种状态:`pinning`、`pinned`、`unpinning`、`unpinned`\n */\n public getState(): STATE {\n return this.state;\n }\n}\n\nmdui.Headroom = Headroom;\n","import $ from 'mdui.jq/es/$';\nimport 'mdui.jq/es/methods/attr';\nimport PlainObject from 'mdui.jq/es/interfaces/PlainObject';\n\n/**\n * 解析 DATA API 参数\n * @param element 元素\n * @param name 属性名\n */\nfunction parseOptions(element: HTMLElement, name: string): PlainObject {\n const attr = $(element).attr(name);\n\n if (!attr) {\n return {};\n }\n\n return new Function(\n '',\n `var json = ${attr}; return JSON.parse(JSON.stringify(json));`,\n )();\n}\n\nexport { parseOptions };\n","import $ from 'mdui.jq/es/$';\nimport mdui from '../../mdui';\nimport '../../global/mutation';\nimport { parseOptions } from '../../utils/parseOptions';\nimport './index';\n\nconst customAttr = 'mdui-headroom';\n\n$(() => {\n mdui.mutation(`[${customAttr}]`, function () {\n new mdui.Headroom(this, parseOptions(this, customAttr));\n });\n});\n","import $ from 'mdui.jq/es/$';\nimport extend from 'mdui.jq/es/functions/extend';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport 'mdui.jq/es/methods/addClass';\nimport 'mdui.jq/es/methods/children';\nimport 'mdui.jq/es/methods/each';\nimport 'mdui.jq/es/methods/eq';\nimport 'mdui.jq/es/methods/first';\nimport 'mdui.jq/es/methods/hasClass';\nimport 'mdui.jq/es/methods/height';\nimport 'mdui.jq/es/methods/is';\nimport 'mdui.jq/es/methods/on';\nimport 'mdui.jq/es/methods/parent';\nimport 'mdui.jq/es/methods/parents';\nimport 'mdui.jq/es/methods/removeClass';\nimport Selector from 'mdui.jq/es/types/Selector';\nimport { isNumber } from 'mdui.jq/es/utils';\nimport '../../jq_extends/methods/reflow';\nimport '../../jq_extends/methods/transition';\nimport '../../jq_extends/methods/transitionEnd';\nimport { componentEvent } from '../../utils/componentEvent';\n\ntype OPTIONS = {\n /**\n * 是否启用手风琴效果\n * 为 `true` 时,最多只能有一个面板项处于打开状态,打开一个面板项时会关闭其他面板项\n * 为 `false` 时,可同时打开多个面板项\n */\n accordion?: boolean;\n};\n\ntype EVENT = 'open' | 'opened' | 'close' | 'closed';\n\nconst DEFAULT_OPTIONS: OPTIONS = {\n accordion: false,\n};\n\nabstract class CollapseAbstract {\n /**\n * collapse 元素的 JQ 对象\n */\n public $element: JQ;\n\n /**\n * 配置参数\n */\n public options: OPTIONS = extend({}, DEFAULT_OPTIONS);\n\n /**\n * item 的 class 名\n */\n private classItem: string;\n\n /**\n * 打开状态的 item 的 class 名\n */\n private classItemOpen: string;\n\n /**\n * item-header 的 class 名\n */\n private classHeader: string;\n\n /**\n * item-body 的 class 名\n */\n private classBody: string;\n\n /**\n * 获取继承的组件名称\n */\n protected abstract getNamespace(): string;\n\n public constructor(\n selector: Selector | HTMLElement | ArrayLike,\n options: OPTIONS = {},\n ) {\n // CSS 类名\n const classPrefix = `mdui-${this.getNamespace()}-item`;\n this.classItem = classPrefix;\n this.classItemOpen = `${classPrefix}-open`;\n this.classHeader = `${classPrefix}-header`;\n this.classBody = `${classPrefix}-body`;\n\n this.$element = $(selector).first();\n\n extend(this.options, options);\n\n this.bindEvent();\n }\n\n /**\n * 绑定事件\n */\n private bindEvent(): void {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const that = this;\n\n // 点击 header 时,打开/关闭 item\n this.$element.on('click', `.${this.classHeader}`, function () {\n const $header = $(this as HTMLElement);\n const $item = $header.parent();\n const $items = that.getItems();\n\n $items.each((_, item) => {\n if ($item.is(item)) {\n that.toggle(item);\n }\n });\n });\n\n // 点击关闭按钮时,关闭 item\n this.$element.on(\n 'click',\n `[mdui-${this.getNamespace()}-item-close]`,\n function () {\n const $target = $(this as HTMLElement);\n const $item = $target.parents(`.${that.classItem}`).first();\n\n that.close($item);\n },\n );\n }\n\n /**\n * 指定 item 是否处于打开状态\n * @param $item\n */\n private isOpen($item: JQ): boolean {\n return $item.hasClass(this.classItemOpen);\n }\n\n /**\n * 获取所有 item\n */\n private getItems(): JQ {\n return this.$element.children(`.${this.classItem}`);\n }\n\n /**\n * 获取指定 item\n * @param item\n */\n private getItem(\n item: number | Selector | HTMLElement | ArrayLike,\n ): JQ {\n if (isNumber(item)) {\n return this.getItems().eq(item);\n }\n\n return $(item).first();\n }\n\n /**\n * 触发组件事件\n * @param name 事件名\n * @param $item 事件触发的目标 item\n */\n private triggerEvent(name: EVENT, $item: JQ): void {\n componentEvent(name, this.getNamespace(), $item, this);\n }\n\n /**\n * 动画结束回调\n * @param $content body 元素\n * @param $item item 元素\n */\n private transitionEnd($content: JQ, $item: JQ): void {\n if (this.isOpen($item)) {\n $content.transition(0).height('auto').reflow().transition('');\n\n this.triggerEvent('opened', $item);\n } else {\n $content.height('');\n\n this.triggerEvent('closed', $item);\n }\n }\n\n /**\n * 打开指定面板项\n * @param item 面板项的索引号、或 CSS 选择器、或 DOM 元素、或 JQ 对象\n */\n public open(\n item: number | Selector | HTMLElement | ArrayLike,\n ): void {\n const $item = this.getItem(item);\n\n if (this.isOpen($item)) {\n return;\n }\n\n // 关闭其他项\n if (this.options.accordion) {\n this.$element.children(`.${this.classItemOpen}`).each((_, element) => {\n const $element = $(element);\n\n if (!$element.is($item)) {\n this.close($element);\n }\n });\n }\n\n const $content = $item.children(`.${this.classBody}`);\n\n $content\n .height($content[0].scrollHeight)\n .transitionEnd(() => this.transitionEnd($content, $item));\n\n this.triggerEvent('open', $item);\n\n $item.addClass(this.classItemOpen);\n }\n\n /**\n * 关闭指定面板项\n * @param item 面板项的索引号、或 CSS 选择器、或 DOM 元素、或 JQ 对象\n */\n public close(\n item: number | Selector | HTMLElement | ArrayLike,\n ): void {\n const $item = this.getItem(item);\n\n if (!this.isOpen($item)) {\n return;\n }\n\n const $content = $item.children(`.${this.classBody}`);\n\n this.triggerEvent('close', $item);\n\n $item.removeClass(this.classItemOpen);\n\n $content\n .transition(0)\n .height($content[0].scrollHeight)\n .reflow()\n .transition('')\n .height('')\n .transitionEnd(() => this.transitionEnd($content, $item));\n }\n\n /**\n * 切换指定面板项的打开状态\n * @param item 面板项的索引号、或 CSS 选择器、或 DOM 元素、或 JQ 对象\n */\n public toggle(\n item: number | Selector | HTMLElement | ArrayLike,\n ): void {\n const $item = this.getItem(item);\n\n this.isOpen($item) ? this.close($item) : this.open($item);\n }\n\n /**\n * 打开所有面板项\n */\n public openAll(): void {\n this.getItems().each((_, element) => this.open(element));\n }\n\n /**\n * 关闭所有面板项\n */\n public closeAll(): void {\n this.getItems().each((_, element) => this.close(element));\n }\n}\n\nexport { OPTIONS, CollapseAbstract };\n","import Selector from 'mdui.jq/es/types/Selector';\nimport mdui from '../../mdui';\nimport { CollapseAbstract, OPTIONS } from './collapseAbstract';\n\ndeclare module '../../interfaces/MduiStatic' {\n interface MduiStatic {\n /**\n * 折叠内容块组件\n *\n * 请通过 `new mdui.Collapse()` 调用\n */\n Collapse: {\n /**\n * 实例化 Collapse 组件\n * @param selector CSS 选择器或 DOM 元素\n * @param options 配置参数\n */\n new (\n selector: Selector | HTMLElement | ArrayLike,\n options?: OPTIONS,\n ): Collapse;\n };\n }\n}\n\nclass Collapse extends CollapseAbstract {\n protected getNamespace(): string {\n return 'collapse';\n }\n}\n\nmdui.Collapse = Collapse;\n","import $ from 'mdui.jq/es/$';\nimport mdui from '../../mdui';\nimport '../../global/mutation';\nimport { parseOptions } from '../../utils/parseOptions';\nimport './index';\n\nconst customAttr = 'mdui-collapse';\n\n$(() => {\n mdui.mutation(`[${customAttr}]`, function () {\n new mdui.Collapse(this, parseOptions(this, customAttr));\n });\n});\n","import Selector from 'mdui.jq/es/types/Selector';\nimport mdui from '../../mdui';\nimport { CollapseAbstract, OPTIONS } from '../collapse/collapseAbstract';\n\ndeclare module '../../interfaces/MduiStatic' {\n interface MduiStatic {\n /**\n * 可扩展面板组件\n *\n * 请通过 `new mdui.Panel()` 调用\n */\n Panel: {\n /**\n * 实例化 Panel 组件\n * @param selector CSS 选择器或 DOM 元素\n * @param options 配置参数\n */\n new (\n selector: Selector | HTMLElement | ArrayLike,\n options?: OPTIONS,\n ): Panel;\n };\n }\n}\n\nclass Panel extends CollapseAbstract {\n protected getNamespace(): string {\n return 'panel';\n }\n}\n\nmdui.Panel = Panel;\n","import $ from 'mdui.jq/es/$';\nimport mdui from '../../mdui';\nimport '../../global/mutation';\nimport { parseOptions } from '../../utils/parseOptions';\nimport './index';\n\nconst customAttr = 'mdui-panel';\n\n$(() => {\n mdui.mutation(`[${customAttr}]`, function () {\n new mdui.Panel(this, parseOptions(this, customAttr));\n });\n});\n","import $ from 'mdui.jq/es/$';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport 'mdui.jq/es/methods/add';\nimport 'mdui.jq/es/methods/addClass';\nimport 'mdui.jq/es/methods/data';\nimport 'mdui.jq/es/methods/each';\nimport 'mdui.jq/es/methods/eq';\nimport 'mdui.jq/es/methods/find';\nimport 'mdui.jq/es/methods/first';\nimport 'mdui.jq/es/methods/hasClass';\nimport 'mdui.jq/es/methods/on';\nimport 'mdui.jq/es/methods/prependTo';\nimport 'mdui.jq/es/methods/remove';\nimport 'mdui.jq/es/methods/removeClass';\nimport Selector from 'mdui.jq/es/types/Selector';\nimport { isUndefined } from 'mdui.jq/es/utils';\nimport mdui from '../../mdui';\nimport '../../global/mutation';\n\ndeclare module '../../interfaces/MduiStatic' {\n interface MduiStatic {\n /**\n * 动态修改了表格后,需要调用该方法重新初始化表格。\n *\n * 若传入了参数,则只初始化该参数对应的表格。若没有传入参数,则重新初始化所有表格。\n * @param selector CSS 选择器、或 DOM 元素、或 DOM 元素组成的数组、或 JQ 对象\n */\n updateTables(\n selector?: Selector | HTMLElement | ArrayLike,\n ): void;\n }\n}\n\nclass Table {\n /**\n * table 元素的 JQ 对象\n */\n public $element: JQ;\n\n /**\n * 表头 tr 元素\n */\n private $thRow: JQ = $();\n\n /**\n * 表格 body 中的 tr 元素\n */\n private $tdRows: JQ = $();\n\n /**\n * 表头的 checkbox 元素\n */\n private $thCheckbox: JQ = $();\n\n /**\n * 表格 body 中的 checkbox 元素\n */\n private $tdCheckboxs: JQ = $();\n\n /**\n * 表格行是否可选择\n */\n private selectable = false;\n\n /**\n * 已选中的行数\n */\n private selectedRow = 0;\n\n public constructor(\n selector: Selector | HTMLElement | ArrayLike,\n ) {\n this.$element = $(selector).first();\n this.init();\n }\n\n /**\n * 初始化表格\n */\n public init(): void {\n this.$thRow = this.$element.find('thead tr');\n this.$tdRows = this.$element.find('tbody tr');\n this.selectable = this.$element.hasClass('mdui-table-selectable');\n\n this.updateThCheckbox();\n this.updateTdCheckbox();\n this.updateNumericCol();\n }\n\n /**\n * 生成 checkbox 的 HTML 结构\n * @param tag 标签名\n */\n private createCheckboxHTML(tag: string): string {\n return (\n `<${tag} class=\"mdui-table-cell-checkbox\">` +\n '' +\n ``\n );\n }\n\n /**\n * 更新表头 checkbox 的状态\n */\n private updateThCheckboxStatus(): void {\n const checkbox = this.$thCheckbox[0];\n const selectedRow = this.selectedRow;\n const tdRowsLength = this.$tdRows.length;\n\n checkbox.checked = selectedRow === tdRowsLength;\n checkbox.indeterminate = !!selectedRow && selectedRow !== tdRowsLength;\n }\n\n /**\n * 更新表格行的 checkbox\n */\n private updateTdCheckbox(): void {\n const rowSelectedClass = 'mdui-table-row-selected';\n\n this.$tdRows.each((_, row) => {\n const $row = $(row);\n\n // 移除旧的 checkbox\n $row.find('.mdui-table-cell-checkbox').remove();\n\n if (!this.selectable) {\n return;\n }\n\n // 创建 DOM\n const $checkbox = $(this.createCheckboxHTML('td'))\n .prependTo($row)\n .find('input[type=\"checkbox\"]') as JQ;\n\n // 默认选中的行\n if ($row.hasClass(rowSelectedClass)) {\n $checkbox[0].checked = true;\n this.selectedRow++;\n }\n\n this.updateThCheckboxStatus();\n\n // 绑定事件\n $checkbox.on('change', () => {\n if ($checkbox[0].checked) {\n $row.addClass(rowSelectedClass);\n this.selectedRow++;\n } else {\n $row.removeClass(rowSelectedClass);\n this.selectedRow--;\n }\n\n this.updateThCheckboxStatus();\n });\n\n this.$tdCheckboxs = this.$tdCheckboxs.add($checkbox);\n });\n }\n\n /**\n * 更新表头的 checkbox\n */\n private updateThCheckbox(): void {\n // 移除旧的 checkbox\n this.$thRow.find('.mdui-table-cell-checkbox').remove();\n\n if (!this.selectable) {\n return;\n }\n\n this.$thCheckbox = $(this.createCheckboxHTML('th'))\n .prependTo(this.$thRow)\n .find('input[type=\"checkbox\"]')\n .on('change', () => {\n const isCheckedAll = this.$thCheckbox[0].checked;\n this.selectedRow = isCheckedAll ? this.$tdRows.length : 0;\n\n this.$tdCheckboxs.each((_, checkbox) => {\n checkbox.checked = isCheckedAll;\n });\n\n this.$tdRows.each((_, row) => {\n isCheckedAll\n ? $(row).addClass('mdui-table-row-selected')\n : $(row).removeClass('mdui-table-row-selected');\n });\n }) as JQ;\n }\n\n /**\n * 更新数值列\n */\n private updateNumericCol(): void {\n const numericClass = 'mdui-table-col-numeric';\n\n this.$thRow.find('th').each((i, th) => {\n const isNumericCol = $(th).hasClass(numericClass);\n\n this.$tdRows.each((_, row) => {\n const $td = $(row).find('td').eq(i);\n\n isNumericCol\n ? $td.addClass(numericClass)\n : $td.removeClass(numericClass);\n });\n });\n }\n}\n\nconst dataName = '_mdui_table';\n\n$(() => {\n mdui.mutation('.mdui-table', function () {\n const $element = $(this);\n\n if (!$element.data(dataName)) {\n $element.data(dataName, new Table($element));\n }\n });\n});\n\nmdui.updateTables = function (\n selector?: Selector | HTMLElement | ArrayLike,\n): void {\n const $elements = isUndefined(selector) ? $('.mdui-table') : $(selector);\n\n $elements.each((_, element) => {\n const $element = $(element);\n const instance = $element.data(dataName);\n\n if (instance) {\n instance.init();\n } else {\n $element.data(dataName, new Table($element));\n }\n });\n};\n","/**\n * touch 事件后的 500ms 内禁用 mousedown 事件\n *\n * 不支持触控的屏幕上事件顺序为 mousedown -> mouseup -> click\n * 支持触控的屏幕上事件顺序为 touchstart -> touchend -> mousedown -> mouseup -> click\n *\n * 在每一个事件中都使用 TouchHandler.isAllow(event) 判断事件是否可执行\n * 在 touchstart 和 touchmove、touchend、touchcancel\n *\n * (function () {\n * $document\n * .on(start, function (e) {\n * if (!isAllow(e)) {\n * return;\n * }\n * register(e);\n * console.log(e.type);\n * })\n * .on(move, function (e) {\n * if (!isAllow(e)) {\n * return;\n * }\n * console.log(e.type);\n * })\n * .on(end, function (e) {\n * if (!isAllow(e)) {\n * return;\n * }\n * console.log(e.type);\n * })\n * .on(unlock, register);\n * })();\n */\n\nconst startEvent = 'touchstart mousedown';\nconst moveEvent = 'touchmove mousemove';\nconst endEvent = 'touchend mouseup';\nconst cancelEvent = 'touchcancel mouseleave';\nconst unlockEvent = 'touchend touchmove touchcancel';\n\nlet touches = 0;\n\n/**\n * 该事件是否被允许,在执行事件前调用该方法判断事件是否可以执行\n * 若已触发 touch 事件,则阻止之后的鼠标事件\n * @param event\n */\nfunction isAllow(event: Event): boolean {\n return !(\n touches &&\n [\n 'mousedown',\n 'mouseup',\n 'mousemove',\n 'click',\n 'mouseover',\n 'mouseout',\n 'mouseenter',\n 'mouseleave',\n ].indexOf(event.type) > -1\n );\n}\n\n/**\n * 在 touchstart 和 touchmove、touchend、touchcancel 事件中调用该方法注册事件\n * @param event\n */\nfunction register(event: Event): void {\n if (event.type === 'touchstart') {\n // 触发了 touch 事件\n touches += 1;\n } else if (\n ['touchmove', 'touchend', 'touchcancel'].indexOf(event.type) > -1\n ) {\n // touch 事件结束 500ms 后解除对鼠标事件的阻止\n setTimeout(function () {\n if (touches) {\n touches -= 1;\n }\n }, 500);\n }\n}\n\nexport {\n startEvent,\n moveEvent,\n endEvent,\n cancelEvent,\n unlockEvent,\n isAllow,\n register,\n};\n","/**\n * Inspired by https://github.com/nolimits4web/Framework7/blob/master/src/js/fast-clicks.js\n * https://github.com/nolimits4web/Framework7/blob/master/LICENSE\n *\n * Inspired by https://github.com/fians/Waves\n */\n\nimport $ from 'mdui.jq/es/$';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport 'mdui.jq/es/methods/addClass';\nimport 'mdui.jq/es/methods/attr';\nimport 'mdui.jq/es/methods/children';\nimport 'mdui.jq/es/methods/data';\nimport 'mdui.jq/es/methods/each';\nimport 'mdui.jq/es/methods/first';\nimport 'mdui.jq/es/methods/hasClass';\nimport 'mdui.jq/es/methods/innerHeight';\nimport 'mdui.jq/es/methods/innerWidth';\nimport 'mdui.jq/es/methods/off';\nimport 'mdui.jq/es/methods/offset';\nimport 'mdui.jq/es/methods/on';\nimport 'mdui.jq/es/methods/parents';\nimport 'mdui.jq/es/methods/prependTo';\nimport 'mdui.jq/es/methods/prop';\nimport 'mdui.jq/es/methods/remove';\nimport { isUndefined } from 'mdui.jq/es/utils';\nimport '../../jq_extends/methods/reflow';\nimport '../../jq_extends/methods/transform';\nimport '../../jq_extends/methods/transitionEnd';\nimport { $document } from '../../utils/dom';\nimport {\n cancelEvent,\n endEvent,\n isAllow,\n moveEvent,\n register,\n startEvent,\n unlockEvent,\n} from '../../utils/touchHandler';\n\n/**\n * 显示涟漪动画\n * @param event\n * @param $ripple\n */\nfunction show(event: Event, $ripple: JQ): void {\n // 鼠标右键不产生涟漪\n if (event instanceof MouseEvent && event.button === 2) {\n return;\n }\n\n // 点击位置坐标\n const touchPosition =\n typeof TouchEvent !== 'undefined' &&\n event instanceof TouchEvent &&\n event.touches.length\n ? event.touches[0]\n : (event as MouseEvent);\n\n const touchStartX = touchPosition.pageX;\n const touchStartY = touchPosition.pageY;\n\n // 涟漪位置\n const offset = $ripple.offset();\n const height = $ripple.innerHeight();\n const width = $ripple.innerWidth();\n const center = {\n x: touchStartX - offset.left,\n y: touchStartY - offset.top,\n };\n const diameter = Math.max(\n Math.pow(Math.pow(height, 2) + Math.pow(width, 2), 0.5),\n 48,\n );\n\n // 涟漪扩散动画\n const translate =\n `translate3d(${-center.x + width / 2}px,` +\n `${-center.y + height / 2}px, 0) scale(1)`;\n\n // 涟漪的 DOM 结构,并缓存动画效果\n $(\n `
          `,\n )\n .data('_ripple_wave_translate', translate)\n .prependTo($ripple)\n .reflow()\n .transform(translate);\n}\n\n/**\n * 隐藏并移除涟漪\n * @param $wave\n */\nfunction removeRipple($wave: JQ): void {\n if (!$wave.length || $wave.data('_ripple_wave_removed')) {\n return;\n }\n\n $wave.data('_ripple_wave_removed', true);\n\n let removeTimer = setTimeout(() => $wave.remove(), 400);\n const translate = $wave.data('_ripple_wave_translate');\n\n $wave\n .addClass('mdui-ripple-wave-fill')\n .transform(translate.replace('scale(1)', 'scale(1.01)'))\n .transitionEnd(() => {\n clearTimeout(removeTimer);\n\n $wave\n .addClass('mdui-ripple-wave-out')\n .transform(translate.replace('scale(1)', 'scale(1.01)'));\n\n removeTimer = setTimeout(() => $wave.remove(), 700);\n\n setTimeout(() => {\n $wave.transitionEnd(() => {\n clearTimeout(removeTimer);\n $wave.remove();\n });\n }, 0);\n });\n}\n\n/**\n * 隐藏涟漪动画\n * @param this\n */\nfunction hide(this: any): void {\n const $ripple = $(this as HTMLElement);\n\n $ripple.children('.mdui-ripple-wave').each((_, wave) => {\n removeRipple($(wave));\n });\n\n $ripple.off(`${moveEvent} ${endEvent} ${cancelEvent}`, hide);\n}\n\n/**\n * 显示涟漪,并绑定 touchend 等事件\n * @param event\n */\nfunction showRipple(event: Event): void {\n if (!isAllow(event)) {\n return;\n }\n\n register(event);\n\n // Chrome 59 点击滚动条时,会在 document 上触发事件\n if (event.target === document) {\n return;\n }\n\n const $target = $(event.target as HTMLElement);\n\n // 获取含 .mdui-ripple 类的元素\n const $ripple = $target.hasClass('mdui-ripple')\n ? $target\n : $target.parents('.mdui-ripple').first();\n\n if (!$ripple.length) {\n return;\n }\n\n // 禁用状态的元素上不产生涟漪效果\n if ($ripple.prop('disabled') || !isUndefined($ripple.attr('disabled'))) {\n return;\n }\n\n if (event.type === 'touchstart') {\n let hidden = false;\n\n // touchstart 触发指定时间后开始涟漪动画,避免手指滑动时也触发涟漪\n let timer = setTimeout(() => {\n timer = 0;\n show(event, $ripple);\n }, 200);\n\n const hideRipple = (): void => {\n // 如果手指没有移动,且涟漪动画还没有开始,则开始涟漪动画\n if (timer) {\n clearTimeout(timer);\n timer = 0;\n show(event, $ripple);\n }\n\n if (!hidden) {\n hidden = true;\n hide.call($ripple);\n }\n };\n\n // 手指移动后,移除涟漪动画\n const touchMove = (): void => {\n if (timer) {\n clearTimeout(timer);\n timer = 0;\n }\n\n hideRipple();\n };\n\n $ripple.on('touchmove', touchMove).on('touchend touchcancel', hideRipple);\n } else {\n show(event, $ripple);\n $ripple.on(`${moveEvent} ${endEvent} ${cancelEvent}`, hide);\n }\n}\n\n$(() => {\n $document.on(startEvent, showRipple).on(unlockEvent, register);\n});\n","import $ from 'mdui.jq/es/$';\nimport extend from 'mdui.jq/es/functions/extend';\nimport 'mdui.jq/es/methods/addClass';\nimport 'mdui.jq/es/methods/appendTo';\nimport 'mdui.jq/es/methods/attr';\nimport 'mdui.jq/es/methods/each';\nimport 'mdui.jq/es/methods/find';\nimport 'mdui.jq/es/methods/is';\nimport 'mdui.jq/es/methods/on';\nimport 'mdui.jq/es/methods/outerHeight';\nimport 'mdui.jq/es/methods/parent';\nimport 'mdui.jq/es/methods/parents';\nimport 'mdui.jq/es/methods/remove';\nimport 'mdui.jq/es/methods/removeClass';\nimport 'mdui.jq/es/methods/text';\nimport 'mdui.jq/es/methods/trigger';\nimport 'mdui.jq/es/methods/val';\nimport Selector from 'mdui.jq/es/types/Selector';\nimport { isUndefined } from 'mdui.jq/es/utils';\nimport mdui from '../../mdui';\nimport '../../global/mutation';\nimport { $document } from '../../utils/dom';\n\ndeclare module '../../interfaces/MduiStatic' {\n interface MduiStatic {\n /**\n * 动态修改了文本框后,需要调用该方法重新初始化文本框。\n *\n * 若传入了参数,则只初始化该参数对应的文本框。若没有传入参数,则重新初始化所有文本框。\n * @param selector CSS 选择器、或 DOM 元素、或 DOM 元素组成的数组、或 JQ 对象\n */\n updateTextFields(\n selector?: Selector | HTMLElement | ArrayLike,\n ): void;\n }\n}\n\ntype INPUT_EVENT_DATA = {\n reInit?: boolean;\n domLoadedEvent?: boolean;\n};\n\nconst defaultData: INPUT_EVENT_DATA = {\n reInit: false,\n domLoadedEvent: false,\n};\n\n/**\n * 输入框事件\n * @param event\n * @param data\n */\nfunction inputEvent(event: Event, data: INPUT_EVENT_DATA = {}): void {\n data = extend({}, defaultData, data);\n\n const input = event.target as HTMLInputElement;\n const $input = $(input);\n const eventType = event.type;\n const value = $input.val() as string;\n\n // 文本框类型\n const inputType = $input.attr('type') || '';\n if (\n ['checkbox', 'button', 'submit', 'range', 'radio', 'image'].indexOf(\n inputType,\n ) > -1\n ) {\n return;\n }\n\n const $textfield = $input.parent('.mdui-textfield');\n\n // 输入框是否聚焦\n if (eventType === 'focus') {\n $textfield.addClass('mdui-textfield-focus');\n }\n\n if (eventType === 'blur') {\n $textfield.removeClass('mdui-textfield-focus');\n }\n\n // 输入框是否为空\n if (eventType === 'blur' || eventType === 'input') {\n value\n ? $textfield.addClass('mdui-textfield-not-empty')\n : $textfield.removeClass('mdui-textfield-not-empty');\n }\n\n // 输入框是否禁用\n input.disabled\n ? $textfield.addClass('mdui-textfield-disabled')\n : $textfield.removeClass('mdui-textfield-disabled');\n\n // 表单验证\n if (\n (eventType === 'input' || eventType === 'blur') &&\n !data.domLoadedEvent &&\n input.validity\n ) {\n input.validity.valid\n ? $textfield.removeClass('mdui-textfield-invalid-html5')\n : $textfield.addClass('mdui-textfield-invalid-html5');\n }\n\n // textarea 高度自动调整\n if ($input.is('textarea')) {\n // IE bug:textarea 的值仅为多个换行,不含其他内容时,textarea 的高度不准确\n // 此时,在计算高度前,在值的开头加入一个空格,计算完后,移除空格\n const inputValue = value;\n let hasExtraSpace = false;\n\n if (inputValue.replace(/[\\r\\n]/g, '') === '') {\n $input.val(' ' + inputValue);\n hasExtraSpace = true;\n }\n\n // 设置 textarea 高度\n $input.outerHeight('');\n const height = $input.outerHeight();\n const scrollHeight = input.scrollHeight;\n\n if (scrollHeight > height) {\n $input.outerHeight(scrollHeight);\n }\n\n // 计算完,还原 textarea 的值\n if (hasExtraSpace) {\n $input.val(inputValue);\n }\n }\n\n // 实时字数统计\n if (data.reInit) {\n $textfield.find('.mdui-textfield-counter').remove();\n }\n\n const maxLength = $input.attr('maxlength');\n if (maxLength) {\n if (data.reInit || data.domLoadedEvent) {\n $(\n '
          ' +\n ` / ${maxLength}` +\n '
          ',\n ).appendTo($textfield);\n }\n\n $textfield\n .find('.mdui-textfield-counter-inputed')\n .text(value.length.toString());\n }\n\n // 含 帮助文本、错误提示、字数统计 时,增加文本框底部内边距\n if (\n $textfield.find('.mdui-textfield-helper').length ||\n $textfield.find('.mdui-textfield-error').length ||\n maxLength\n ) {\n $textfield.addClass('mdui-textfield-has-bottom');\n }\n}\n\n$(() => {\n // 绑定事件\n $document.on(\n 'input focus blur',\n '.mdui-textfield-input',\n { useCapture: true },\n inputEvent,\n );\n\n // 可展开文本框展开\n $document.on(\n 'click',\n '.mdui-textfield-expandable .mdui-textfield-icon',\n function () {\n $(this as HTMLElement)\n .parents('.mdui-textfield')\n .addClass('mdui-textfield-expanded')\n .find('.mdui-textfield-input')[0]\n .focus();\n },\n );\n\n // 可展开文本框关闭\n $document.on(\n 'click',\n '.mdui-textfield-expanded .mdui-textfield-close',\n function () {\n $(this)\n .parents('.mdui-textfield')\n .removeClass('mdui-textfield-expanded')\n .find('.mdui-textfield-input')\n .val('');\n },\n );\n\n /**\n * 初始化文本框\n */\n mdui.mutation('.mdui-textfield', function () {\n $(this).find('.mdui-textfield-input').trigger('input', {\n domLoadedEvent: true,\n });\n });\n});\n\nmdui.updateTextFields = function (\n selector?: Selector | HTMLElement | ArrayLike,\n): void {\n const $elements = isUndefined(selector) ? $('.mdui-textfield') : $(selector);\n\n $elements.each((_, element) => {\n $(element).find('.mdui-textfield-input').trigger('input', {\n reInit: true,\n });\n });\n};\n","import $ from 'mdui.jq/es/$';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport 'mdui.jq/es/methods/addClass';\nimport 'mdui.jq/es/methods/append';\nimport 'mdui.jq/es/methods/attr';\nimport 'mdui.jq/es/methods/css';\nimport 'mdui.jq/es/methods/data';\nimport 'mdui.jq/es/methods/each';\nimport 'mdui.jq/es/methods/empty';\nimport 'mdui.jq/es/methods/find';\nimport 'mdui.jq/es/methods/hasClass';\nimport 'mdui.jq/es/methods/on';\nimport 'mdui.jq/es/methods/parent';\nimport 'mdui.jq/es/methods/remove';\nimport 'mdui.jq/es/methods/removeClass';\nimport 'mdui.jq/es/methods/text';\nimport 'mdui.jq/es/methods/val';\nimport 'mdui.jq/es/methods/width';\nimport Selector from 'mdui.jq/es/types/Selector';\nimport { isUndefined } from 'mdui.jq/es/utils';\nimport mdui from '../../mdui';\nimport { $document } from '../../utils/dom';\nimport {\n endEvent,\n isAllow,\n register,\n startEvent,\n unlockEvent,\n} from '../../utils/touchHandler';\n\ndeclare module '../../interfaces/MduiStatic' {\n interface MduiStatic {\n /**\n * 动态修改了滑块后,需要调用该方法重新初始化滑块\n *\n * 若传入了参数,则只初始化该参数对应的滑块。若没有传入参数,则重新初始化所有滑块。\n * @param selector CSS 选择器、或 DOM 元素、或 DOM 元素组成的数组、或 JQ 对象\n */\n updateSliders(\n selector?: Selector | HTMLElement | ArrayLike,\n ): void;\n }\n}\n\n/**\n * 滑块的值改变后修改滑块样式\n * @param $slider\n */\nfunction updateValueStyle($slider: JQ): void {\n const data = $slider.data();\n\n const $track = data._slider_$track;\n const $fill = data._slider_$fill;\n const $thumb = data._slider_$thumb;\n const $input = data._slider_$input;\n const min = data._slider_min;\n const max = data._slider_max;\n const isDisabled = data._slider_disabled;\n const isDiscrete = data._slider_discrete;\n const $thumbText = data._slider_$thumbText;\n const value = $input.val();\n const percent = ((value - min) / (max - min)) * 100;\n\n $fill.width(`${percent}%`);\n $track.width(`${100 - percent}%`);\n\n if (isDisabled) {\n $fill.css('padding-right', '6px');\n $track.css('padding-left', '6px');\n }\n\n $thumb.css('left', `${percent}%`);\n\n if (isDiscrete) {\n $thumbText.text(value);\n }\n\n percent === 0\n ? $slider.addClass('mdui-slider-zero')\n : $slider.removeClass('mdui-slider-zero');\n}\n\n/**\n * 重新初始化滑块\n * @param $slider\n */\nfunction reInit($slider: JQ): void {\n const $track = $('
          ');\n const $fill = $('
          ');\n const $thumb = $('
          ');\n const $input = $slider.find('input[type=\"range\"]') as JQ;\n const isDisabled = $input[0].disabled;\n const isDiscrete = $slider.hasClass('mdui-slider-discrete');\n\n // 禁用状态\n isDisabled\n ? $slider.addClass('mdui-slider-disabled')\n : $slider.removeClass('mdui-slider-disabled');\n\n // 重新填充 HTML\n $slider.find('.mdui-slider-track').remove();\n $slider.find('.mdui-slider-fill').remove();\n $slider.find('.mdui-slider-thumb').remove();\n $slider.append($track).append($fill).append($thumb);\n\n // 间续型滑块\n let $thumbText = $();\n if (isDiscrete) {\n $thumbText = $('');\n $thumb.empty().append($thumbText);\n }\n\n $slider.data('_slider_$track', $track);\n $slider.data('_slider_$fill', $fill);\n $slider.data('_slider_$thumb', $thumb);\n $slider.data('_slider_$input', $input);\n $slider.data('_slider_min', $input.attr('min'));\n $slider.data('_slider_max', $input.attr('max'));\n $slider.data('_slider_disabled', isDisabled);\n $slider.data('_slider_discrete', isDiscrete);\n $slider.data('_slider_$thumbText', $thumbText);\n\n // 设置默认值\n updateValueStyle($slider);\n}\n\nconst rangeSelector = '.mdui-slider input[type=\"range\"]';\n\n$(() => {\n // 滑块滑动事件\n $document.on('input change', rangeSelector, function () {\n const $slider = $(this).parent() as JQ;\n\n updateValueStyle($slider);\n });\n\n // 开始触摸滑块事件\n $document.on(startEvent, rangeSelector, function (event: Event) {\n if (!isAllow(event)) {\n return;\n }\n\n register(event);\n\n if ((this as HTMLInputElement).disabled) {\n return;\n }\n\n const $slider = $(this).parent() as JQ;\n\n $slider.addClass('mdui-slider-focus');\n });\n\n // 结束触摸滑块事件\n $document.on(endEvent, rangeSelector, function (event: Event) {\n if (!isAllow(event)) {\n return;\n }\n\n if ((this as HTMLInputElement).disabled) {\n return;\n }\n\n const $slider = $(this).parent() as JQ;\n\n $slider.removeClass('mdui-slider-focus');\n });\n\n $document.on(unlockEvent, rangeSelector, register);\n\n /**\n * 初始化滑块\n */\n mdui.mutation('.mdui-slider', function () {\n reInit($(this));\n });\n});\n\nmdui.updateSliders = function (\n selector?: Selector | HTMLElement | ArrayLike,\n): void {\n const $elements = isUndefined(selector) ? $('.mdui-slider') : $(selector);\n\n $elements.each((_, element) => {\n reInit($(element));\n });\n};\n","import $ from 'mdui.jq/es/$';\nimport extend from 'mdui.jq/es/functions/extend';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport 'mdui.jq/es/methods/addClass';\nimport 'mdui.jq/es/methods/css';\nimport 'mdui.jq/es/methods/each';\nimport 'mdui.jq/es/methods/find';\nimport 'mdui.jq/es/methods/first';\nimport 'mdui.jq/es/methods/hasClass';\nimport 'mdui.jq/es/methods/last';\nimport 'mdui.jq/es/methods/on';\nimport 'mdui.jq/es/methods/parents';\nimport 'mdui.jq/es/methods/removeClass';\nimport Selector from 'mdui.jq/es/types/Selector';\nimport mdui from '../../mdui';\nimport '../../jq_extends/methods/transitionEnd';\nimport { componentEvent } from '../../utils/componentEvent';\nimport { $document } from '../../utils/dom';\nimport { startEvent } from '../../utils/touchHandler';\n\ndeclare module '../../interfaces/MduiStatic' {\n interface MduiStatic {\n /**\n * 浮动操作按钮组件\n *\n * 请通过 `new mdui.Fab()` 调用\n */\n Fab: {\n /**\n * 实例化 Fab 组件\n * @param selector CSS 选择器、或 DOM 元素、或 JQ 对象\n * @param options 配置参数\n */\n new (\n selector: Selector | HTMLElement | ArrayLike,\n options?: OPTIONS,\n ): Fab;\n };\n }\n}\n\ntype OPTIONS = {\n /**\n * 触发方式。`hover`: 鼠标悬浮触发;`click`: 点击触发\n *\n * 默认为 `hover`\n */\n trigger?: 'click' | 'hover';\n};\n\ntype STATE = 'opening' | 'opened' | 'closing' | 'closed';\ntype EVENT = 'open' | 'opened' | 'close' | 'closed';\n\nconst DEFAULT_OPTIONS: OPTIONS = {\n trigger: 'hover',\n};\n\nclass Fab {\n /**\n * Fab 元素的 JQ 对象\n */\n public $element: JQ;\n\n /**\n * 配置参数\n */\n public options: OPTIONS = extend({}, DEFAULT_OPTIONS);\n\n /**\n * 当前 fab 的状态\n */\n private state: STATE = 'closed';\n\n /**\n * 按钮元素\n */\n private $btn: JQ;\n\n /**\n * 拨号菜单元素\n */\n private $dial: JQ;\n\n /**\n * 拨号菜单内的按钮\n */\n private $dialBtns: JQ;\n\n public constructor(\n selector: Selector | HTMLElement | ArrayLike,\n options: OPTIONS = {},\n ) {\n this.$element = $(selector).first();\n\n extend(this.options, options);\n\n this.$btn = this.$element.find('.mdui-fab');\n this.$dial = this.$element.find('.mdui-fab-dial');\n this.$dialBtns = this.$dial.find('.mdui-fab');\n\n if (this.options.trigger === 'hover') {\n this.$btn.on('touchstart mouseenter', () => this.open());\n this.$element.on('mouseleave', () => this.close());\n }\n\n if (this.options.trigger === 'click') {\n this.$btn.on(startEvent, () => this.open());\n }\n\n // 触摸屏幕其他地方关闭快速拨号\n $document.on(startEvent, (event) => {\n if ($(event.target as HTMLElement).parents('.mdui-fab-wrapper').length) {\n return;\n }\n\n this.close();\n });\n }\n\n /**\n * 触发组件事件\n * @param name\n */\n private triggerEvent(name: EVENT): void {\n componentEvent(name, 'fab', this.$element, this);\n }\n\n /**\n * 当前是否为打开状态\n */\n private isOpen(): boolean {\n return this.state === 'opening' || this.state === 'opened';\n }\n\n /**\n * 打开快速拨号菜单\n */\n public open(): void {\n if (this.isOpen()) {\n return;\n }\n\n // 为菜单中的按钮添加不同的 transition-delay\n this.$dialBtns.each((index, btn) => {\n const delay = `${15 * (this.$dialBtns.length - index)}ms`;\n\n btn.style.transitionDelay = delay;\n btn.style.webkitTransitionDelay = delay;\n });\n\n this.$dial.css('height', 'auto').addClass('mdui-fab-dial-show');\n\n // 如果按钮中存在 .mdui-fab-opened 的图标,则进行图标切换\n if (this.$btn.find('.mdui-fab-opened').length) {\n this.$btn.addClass('mdui-fab-opened');\n }\n\n this.state = 'opening';\n this.triggerEvent('open');\n\n // 打开顺序为从下到上逐个打开,最上面的打开后才表示动画完成\n this.$dialBtns.first().transitionEnd(() => {\n if (this.$btn.hasClass('mdui-fab-opened')) {\n this.state = 'opened';\n this.triggerEvent('opened');\n }\n });\n }\n\n /**\n * 关闭快速拨号菜单\n */\n public close(): void {\n if (!this.isOpen()) {\n return;\n }\n\n // 为菜单中的按钮添加不同的 transition-delay\n this.$dialBtns.each((index, btn) => {\n const delay = `${15 * index}ms`;\n\n btn.style.transitionDelay = delay;\n btn.style.webkitTransitionDelay = delay;\n });\n\n this.$dial.removeClass('mdui-fab-dial-show');\n this.$btn.removeClass('mdui-fab-opened');\n this.state = 'closing';\n this.triggerEvent('close');\n\n // 从上往下依次关闭,最后一个关闭后才表示动画完成\n this.$dialBtns.last().transitionEnd(() => {\n if (this.$btn.hasClass('mdui-fab-opened')) {\n return;\n }\n\n this.state = 'closed';\n this.triggerEvent('closed');\n this.$dial.css('height', 0);\n });\n }\n\n /**\n * 切换快速拨号菜单的打开状态\n */\n public toggle(): void {\n this.isOpen() ? this.close() : this.open();\n }\n\n /**\n * 以动画的形式显示整个浮动操作按钮\n */\n public show(): void {\n this.$element.removeClass('mdui-fab-hide');\n }\n\n /**\n * 以动画的形式隐藏整个浮动操作按钮\n */\n public hide(): void {\n this.$element.addClass('mdui-fab-hide');\n }\n\n /**\n * 返回当前快速拨号菜单的打开状态。共包含四种状态:`opening`、`opened`、`closing`、`closed`\n */\n public getState(): STATE {\n return this.state;\n }\n}\n\nmdui.Fab = Fab;\n","import $ from 'mdui.jq/es/$';\nimport mdui from '../../mdui';\nimport { $document } from '../../utils/dom';\nimport { parseOptions } from '../../utils/parseOptions';\nimport './index';\n\nconst customAttr = 'mdui-fab';\n\n$(() => {\n // mouseenter 不冒泡,无法进行事件委托,这里用 mouseover 代替。\n // 不管是 click 、 mouseover 还是 touchstart ,都先初始化。\n\n $document.on(\n 'touchstart mousedown mouseover',\n `[${customAttr}]`,\n function () {\n new mdui.Fab(\n this as HTMLElement,\n parseOptions(this as HTMLElement, customAttr),\n );\n },\n );\n});\n","/**\n * 最终生成的元素结构为:\n * \n *
          // $element\n * State 1 // $selected\n *
          // $menu\n *
          State 1
          // $items\n *
          State 2
          \n *
          State 3
          \n *
          \n *
          \n */\n\nimport $ from 'mdui.jq/es/$';\nimport contains from 'mdui.jq/es/functions/contains';\nimport extend from 'mdui.jq/es/functions/extend';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport 'mdui.jq/es/methods/add';\nimport 'mdui.jq/es/methods/addClass';\nimport 'mdui.jq/es/methods/after';\nimport 'mdui.jq/es/methods/append';\nimport 'mdui.jq/es/methods/appendTo';\nimport 'mdui.jq/es/methods/attr';\nimport 'mdui.jq/es/methods/css';\nimport 'mdui.jq/es/methods/each';\nimport 'mdui.jq/es/methods/find';\nimport 'mdui.jq/es/methods/first';\nimport 'mdui.jq/es/methods/height';\nimport 'mdui.jq/es/methods/hide';\nimport 'mdui.jq/es/methods/index';\nimport 'mdui.jq/es/methods/innerWidth';\nimport 'mdui.jq/es/methods/is';\nimport 'mdui.jq/es/methods/on';\nimport 'mdui.jq/es/methods/remove';\nimport 'mdui.jq/es/methods/removeAttr';\nimport 'mdui.jq/es/methods/removeClass';\nimport 'mdui.jq/es/methods/show';\nimport 'mdui.jq/es/methods/text';\nimport 'mdui.jq/es/methods/trigger';\nimport 'mdui.jq/es/methods/val';\nimport Selector from 'mdui.jq/es/types/Selector';\nimport mdui from '../../mdui';\nimport '../../jq_extends/methods/transitionEnd';\nimport '../../jq_extends/static/guid';\nimport { componentEvent } from '../../utils/componentEvent';\nimport { $document, $window } from '../../utils/dom';\n\ndeclare module '../../interfaces/MduiStatic' {\n interface MduiStatic {\n /**\n * 下拉选择组件\n *\n * 请通过 `new mdui.Select()` 调用\n */\n Select: {\n /**\n * 实例化 Select 组件\n * @param selector CSS 选择器、或 DOM 元素、或 JQ 对象\n * @param options 配置参数\n */\n new (\n selector: Selector | HTMLElement | ArrayLike,\n options?: OPTIONS,\n ): Select;\n };\n }\n}\n\ntype OPTIONS = {\n /**\n * 下拉框位置:`auto`、`top`、`bottom`\n */\n position?: 'auto' | 'top' | 'bottom';\n\n /**\n * 菜单与窗口上下边框至少保持多少间距\n */\n gutter?: number;\n};\n\ntype STATE = 'closing' | 'closed' | 'opening' | 'opened';\ntype EVENT = 'open' | 'opened' | 'close' | 'closed';\n\nconst DEFAULT_OPTIONS: OPTIONS = {\n position: 'auto',\n gutter: 16,\n};\n\nclass Select {\n /**\n * 原生 ``\n : '') +\n (options.type === 'textarea'\n ? ``\n : '') +\n '
          ';\n\n const onCancelClick = (dialog: Dialog): void => {\n const value = dialog.$element.find('.mdui-textfield-input').val();\n onCancel(value, dialog);\n };\n\n const onConfirmClick = (dialog: Dialog): void => {\n const value = dialog.$element.find('.mdui-textfield-input').val();\n onConfirm(value, dialog);\n };\n\n return mdui.dialog({\n title,\n content,\n buttons: [\n {\n text: options.cancelText,\n bold: false,\n close: options.closeOnCancel,\n onClick: onCancelClick,\n },\n {\n text: options.confirmText,\n bold: false,\n close: options.closeOnConfirm,\n onClick: onConfirmClick,\n },\n ],\n cssClass: 'mdui-dialog-prompt',\n history: options.history,\n modal: options.modal,\n closeOnEsc: options.closeOnEsc,\n onOpen: (dialog) => {\n // 初始化输入框\n const $input = dialog.$element.find('.mdui-textfield-input');\n mdui.updateTextFields($input);\n\n // 聚焦到输入框\n $input[0].focus();\n\n // 捕捉文本框回车键,在单行文本框的情况下触发回调\n if (options.type !== 'textarea' && options.confirmOnEnter === true) {\n $input.on('keydown', (event) => {\n if ((event as KeyboardEvent).keyCode === 13) {\n const value = dialog.$element.find('.mdui-textfield-input').val();\n onConfirm(value, dialog);\n\n if (options.closeOnConfirm) {\n dialog.close();\n }\n\n return false;\n }\n\n return;\n });\n }\n\n // 如果是多行输入框,监听输入框的 input 事件,更新对话框高度\n if (options.type === 'textarea') {\n $input.on('input', () => dialog.handleUpdate());\n }\n\n // 有字符数限制时,加载完文本框后 DOM 会变化,需要更新对话框高度\n if (options.maxlength) {\n dialog.handleUpdate();\n }\n },\n });\n};\n","import $ from 'mdui.jq/es/$';\nimport extend from 'mdui.jq/es/functions/extend';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport 'mdui.jq/es/methods/addClass';\nimport 'mdui.jq/es/methods/appendTo';\nimport 'mdui.jq/es/methods/attr';\nimport 'mdui.jq/es/methods/css';\nimport 'mdui.jq/es/methods/first';\nimport 'mdui.jq/es/methods/hasClass';\nimport 'mdui.jq/es/methods/height';\nimport 'mdui.jq/es/methods/html';\nimport 'mdui.jq/es/methods/offset';\nimport 'mdui.jq/es/methods/on';\nimport 'mdui.jq/es/methods/removeClass';\nimport 'mdui.jq/es/methods/width';\nimport Selector from 'mdui.jq/es/types/Selector';\nimport mdui from '../../mdui';\nimport '../../jq_extends/methods/transformOrigin';\nimport '../../jq_extends/methods/transitionEnd';\nimport '../../jq_extends/static/guid';\nimport { componentEvent } from '../../utils/componentEvent';\nimport { $window } from '../../utils/dom';\nimport { isAllow, register, unlockEvent } from '../../utils/touchHandler';\n\ndeclare module '../../interfaces/MduiStatic' {\n interface MduiStatic {\n /**\n * Tooltip 组件\n *\n * 请通过 `new mdui.Tooltip()` 调用\n */\n Tooltip: {\n /**\n * 实例化 Tooltip 组件\n * @param selector CSS 选择器、或 DOM 元素、或 JQ 对象\n * @param options 配置参数\n */\n new (\n selector: Selector | HTMLElement | ArrayLike,\n options?: OPTIONS,\n ): Tooltip;\n };\n }\n}\n\ntype POSITION = 'auto' | 'bottom' | 'top' | 'left' | 'right';\n\ntype OPTIONS = {\n /**\n * Tooltip 的位置。取值范围包括 `auto`、`bottom`、`top`、`left`、`right`。\n * 为 `auto` 时,会自动判断位置。默认在下方。优先级为 `bottom` > `top` > `left` > `right`。\n * 默认为 `auto`\n */\n position?: POSITION;\n\n /**\n * 延时触发,单位毫秒。默认为 `0`,即没有延时。\n */\n delay?: number;\n\n /**\n * Tooltip 的内容\n */\n content?: string;\n};\n\ntype STATE = 'opening' | 'opened' | 'closing' | 'closed';\ntype EVENT = 'open' | 'opened' | 'close' | 'closed';\n\nconst DEFAULT_OPTIONS: OPTIONS = {\n position: 'auto',\n delay: 0,\n content: '',\n};\n\nclass Tooltip {\n /**\n * 触发 tooltip 元素的 JQ 对象\n */\n public $target: JQ;\n\n /**\n * tooltip 元素的 JQ 对象\n */\n public $element: JQ;\n\n /**\n * 配置参数\n */\n public options: OPTIONS = extend({}, DEFAULT_OPTIONS);\n\n /**\n * 当前 tooltip 的状态\n */\n private state: STATE = 'closed';\n\n /**\n * setTimeout 的返回值\n */\n private timeoutId: any = null;\n\n public constructor(\n selector: Selector | HTMLElement | ArrayLike,\n options: OPTIONS = {},\n ) {\n this.$target = $(selector).first();\n\n extend(this.options, options);\n\n // 创建 Tooltip HTML\n this.$element = $(\n `
          ${\n this.options.content\n }
          `,\n ).appendTo(document.body);\n\n // 绑定事件。元素处于 disabled 状态时无法触发鼠标事件,为了统一,把 touch 事件也禁用\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const that = this;\n this.$target\n .on('touchstart mouseenter', function (event) {\n if (that.isDisabled(this as HTMLElement)) {\n return;\n }\n\n if (!isAllow(event)) {\n return;\n }\n\n register(event);\n\n that.open();\n })\n .on('touchend mouseleave', function (event) {\n if (that.isDisabled(this as HTMLElement)) {\n return;\n }\n\n if (!isAllow(event)) {\n return;\n }\n\n that.close();\n })\n .on(unlockEvent, function (event) {\n if (that.isDisabled(this as HTMLElement)) {\n return;\n }\n\n register(event);\n });\n }\n\n /**\n * 元素是否已禁用\n * @param element\n */\n private isDisabled(element: HTMLElement): boolean {\n return (\n (element as HTMLInputElement).disabled ||\n $(element).attr('disabled') !== undefined\n );\n }\n\n /**\n * 是否是桌面设备\n */\n private isDesktop(): boolean {\n return $window.width() > 1024;\n }\n\n /**\n * 设置 Tooltip 的位置\n */\n private setPosition(): void {\n let marginLeft: number;\n let marginTop: number;\n\n // 触发的元素\n const targetProps = this.$target[0].getBoundingClientRect();\n\n // 触发的元素和 Tooltip 之间的距离\n const targetMargin = this.isDesktop() ? 14 : 24;\n\n // Tooltip 的宽度和高度\n const tooltipWidth = this.$element[0].offsetWidth;\n const tooltipHeight = this.$element[0].offsetHeight;\n\n // Tooltip 的方向\n let position: POSITION = this.options.position!;\n\n // 自动判断位置,加 2px,使 Tooltip 距离窗口边框至少有 2px 的间距\n if (position === 'auto') {\n if (\n targetProps.top +\n targetProps.height +\n targetMargin +\n tooltipHeight +\n 2 <\n $window.height()\n ) {\n position = 'bottom';\n } else if (targetMargin + tooltipHeight + 2 < targetProps.top) {\n position = 'top';\n } else if (targetMargin + tooltipWidth + 2 < targetProps.left) {\n position = 'left';\n } else if (\n targetProps.width + targetMargin + tooltipWidth + 2 <\n $window.width() - targetProps.left\n ) {\n position = 'right';\n } else {\n position = 'bottom';\n }\n }\n\n // 设置位置\n switch (position) {\n case 'bottom':\n marginLeft = -1 * (tooltipWidth / 2);\n marginTop = targetProps.height / 2 + targetMargin;\n this.$element.transformOrigin('top center');\n break;\n\n case 'top':\n marginLeft = -1 * (tooltipWidth / 2);\n marginTop =\n -1 * (tooltipHeight + targetProps.height / 2 + targetMargin);\n this.$element.transformOrigin('bottom center');\n break;\n\n case 'left':\n marginLeft = -1 * (tooltipWidth + targetProps.width / 2 + targetMargin);\n marginTop = -1 * (tooltipHeight / 2);\n this.$element.transformOrigin('center right');\n break;\n\n case 'right':\n marginLeft = targetProps.width / 2 + targetMargin;\n marginTop = -1 * (tooltipHeight / 2);\n this.$element.transformOrigin('center left');\n break;\n }\n\n const targetOffset = this.$target.offset();\n\n this.$element.css({\n top: `${targetOffset.top + targetProps.height / 2}px`,\n left: `${targetOffset.left + targetProps.width / 2}px`,\n 'margin-left': `${marginLeft}px`,\n 'margin-top': `${marginTop}px`,\n });\n }\n\n /**\n * 触发组件事件\n * @param name\n */\n private triggerEvent(name: EVENT): void {\n componentEvent(name, 'tooltip', this.$target, this);\n }\n\n /**\n * 动画结束回调\n */\n private transitionEnd(): void {\n if (this.$element.hasClass('mdui-tooltip-open')) {\n this.state = 'opened';\n this.triggerEvent('opened');\n } else {\n this.state = 'closed';\n this.triggerEvent('closed');\n }\n }\n\n /**\n * 当前 tooltip 是否为打开状态\n */\n private isOpen(): boolean {\n return this.state === 'opening' || this.state === 'opened';\n }\n\n /**\n * 执行打开 tooltip\n */\n private doOpen(): void {\n this.state = 'opening';\n this.triggerEvent('open');\n\n this.$element\n .addClass('mdui-tooltip-open')\n .transitionEnd(() => this.transitionEnd());\n }\n\n /**\n * 打开 Tooltip\n * @param options 允许每次打开时设置不同的参数\n */\n public open(options?: OPTIONS): void {\n if (this.isOpen()) {\n return;\n }\n\n const oldOptions = extend({}, this.options);\n\n if (options) {\n extend(this.options, options);\n }\n\n // tooltip 的内容有更新\n if (oldOptions.content !== this.options.content) {\n this.$element.html(this.options.content);\n }\n\n this.setPosition();\n\n if (this.options.delay) {\n this.timeoutId = setTimeout(() => this.doOpen(), this.options.delay);\n } else {\n this.timeoutId = null;\n this.doOpen();\n }\n }\n\n /**\n * 关闭 Tooltip\n */\n public close(): void {\n if (this.timeoutId) {\n clearTimeout(this.timeoutId);\n this.timeoutId = null;\n }\n\n if (!this.isOpen()) {\n return;\n }\n\n this.state = 'closing';\n this.triggerEvent('close');\n\n this.$element\n .removeClass('mdui-tooltip-open')\n .transitionEnd(() => this.transitionEnd());\n }\n\n /**\n * 切换 Tooltip 的打开状态\n */\n public toggle(): void {\n this.isOpen() ? this.close() : this.open();\n }\n\n /**\n * 获取 Tooltip 状态。共包含四种状态:`opening`、`opened`、`closing`、`closed`\n */\n public getState(): STATE {\n return this.state;\n }\n}\n\nmdui.Tooltip = Tooltip;\n","import $ from 'mdui.jq/es/$';\nimport 'mdui.jq/es/methods/data';\nimport 'mdui.jq/es/methods/on';\nimport mdui from '../../mdui';\nimport { $document } from '../../utils/dom';\nimport { parseOptions } from '../../utils/parseOptions';\nimport './index';\n\nconst customAttr = 'mdui-tooltip';\nconst dataName = '_mdui_tooltip';\n\n$(() => {\n // mouseenter 不能冒泡,所以这里用 mouseover 代替\n $document.on('touchstart mouseover', `[${customAttr}]`, function () {\n const $target = $(this);\n let instance = $target.data(dataName);\n\n if (!instance) {\n instance = new mdui.Tooltip(\n this as HTMLElement,\n parseOptions(this as HTMLElement, customAttr),\n );\n $target.data(dataName, instance);\n }\n });\n});\n","import $ from 'mdui.jq/es/$';\nimport extend from 'mdui.jq/es/functions/extend';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport 'mdui.jq/es/methods/addClass';\nimport 'mdui.jq/es/methods/appendTo';\nimport 'mdui.jq/es/methods/find';\nimport 'mdui.jq/es/methods/hasClass';\nimport 'mdui.jq/es/methods/off';\nimport 'mdui.jq/es/methods/on';\nimport 'mdui.jq/es/methods/parents';\nimport 'mdui.jq/es/methods/remove';\nimport { isString } from 'mdui.jq/es/utils';\nimport mdui from '../../mdui';\nimport '../../jq_extends/methods/reflow';\nimport '../../jq_extends/methods/transform';\nimport '../../jq_extends/methods/transitionEnd';\nimport { $document } from '../../utils/dom';\nimport { dequeue, queue } from '../../utils/queue';\nimport { startEvent } from '../../utils/touchHandler';\n\ndeclare module '../../interfaces/MduiStatic' {\n interface MduiStatic {\n /**\n * 打开一个 Snackbar\n * @param message Snackbar 的文本\n * @param options 配置参数\n */\n snackbar(message: string, options?: OPTIONS): Snackbar;\n\n /**\n * 打开一个 Snackbar\n * @param options 配置参数\n */\n snackbar(options: OPTIONS): Snackbar;\n }\n}\n\ntype OPTIONS = {\n /**\n * Snackbar 的文本。通过 `mdui.snackbar(options)` 调用时,该参数不能为空\n */\n message?: string;\n\n /**\n * 在用户没有操作时多长时间自动隐藏,单位(毫秒)。为 `0` 时表示不自动关闭,默认为 `4000`\n */\n timeout?: number;\n\n /**\n * Snackbar 的位置,默认为 `bottom`。\n * 取值范围包括:\n * `bottom`: 下方\n * `top`: 上方\n * `left-top`: 左上角\n * `left-bottom`: 左下角\n * `right-top`: 右上角\n * `right-bottom`: 右下角\n */\n position?:\n | 'bottom'\n | 'top'\n | 'left-top'\n | 'left-bottom'\n | 'right-top'\n | 'right-bottom';\n\n /**\n * 按钮的文本\n */\n buttonText?: string;\n\n /**\n * 按钮的文本颜色,可以是颜色名或颜色值,如 `red`、`#ffffff`、`rgba(255, 255, 255, 0.3)` 等。默认为 `#90CAF9`\n */\n buttonColor?: string;\n\n /**\n * 点击按钮时是否关闭 Snackbar,默认为 `true`\n */\n closeOnButtonClick?: boolean;\n\n /**\n * 点击或触摸 Snackbar 以外的区域时是否关闭 Snackbar,默认为 `true`\n */\n closeOnOutsideClick?: boolean;\n\n /**\n * 在 Snackbar 上点击的回调函数,参数为 Snackbar 的实例\n */\n onClick?: (snackbar: Snackbar) => void;\n\n /**\n * 点击 Snackbar 上的按钮时的回调函数,参数为 Snackbar 的实例\n */\n onButtonClick?: (snackbar: Snackbar) => void;\n\n /**\n * Snackbar 开始打开时的回调函数,参数为 Snackbar 的实例\n */\n onOpen?: (snackbar: Snackbar) => void;\n\n /**\n * Snackbar 打开后的回调函数,参数为 Snackbar 的实例\n */\n onOpened?: (snackbar: Snackbar) => void;\n\n /**\n * Snackbar 开始关闭时的回调函数,参数为 Snackbar 的实例\n */\n onClose?: (snackbar: Snackbar) => void;\n\n /**\n * Snackbar 关闭后的回调函数,参数为 Snackbar 的实例\n */\n onClosed?: (snackbar: Snackbar) => void;\n};\n\ntype STATE = 'opening' | 'opened' | 'closing' | 'closed';\n\nconst DEFAULT_OPTIONS: OPTIONS = {\n message: '',\n timeout: 4000,\n position: 'bottom',\n buttonText: '',\n buttonColor: '',\n closeOnButtonClick: true,\n closeOnOutsideClick: true,\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onClick: () => {},\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onButtonClick: () => {},\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onOpen: () => {},\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onOpened: () => {},\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onClose: () => {},\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onClosed: () => {},\n};\n\n/**\n * 当前打开着的 Snackbar\n */\nlet currentInst: null | Snackbar = null;\n\n/**\n * 队列名\n */\nconst queueName = '_mdui_snackbar';\n\nclass Snackbar {\n /**\n * Snackbar 元素\n */\n public $element: JQ;\n /**\n * 配置参数\n */\n public options: OPTIONS = extend({}, DEFAULT_OPTIONS);\n\n /**\n * 当前 Snackbar 的状态\n */\n private state: STATE = 'closed';\n\n /**\n * setTimeout 的 ID\n */\n private timeoutId: any = null;\n\n public constructor(options: OPTIONS) {\n extend(this.options, options);\n\n // 按钮颜色\n let buttonColorStyle = '';\n let buttonColorClass = '';\n\n if (\n this.options.buttonColor!.indexOf('#') === 0 ||\n this.options.buttonColor!.indexOf('rgb') === 0\n ) {\n buttonColorStyle = `style=\"color:${this.options.buttonColor}\"`;\n } else if (this.options.buttonColor !== '') {\n buttonColorClass = `mdui-text-color-${this.options.buttonColor}`;\n }\n\n // 添加 HTML\n this.$element = $(\n '
          ' +\n `
          ${this.options.message}
          ` +\n (this.options.buttonText\n ? `${this.options.buttonText}`\n : '') +\n '
          ',\n ).appendTo(document.body);\n\n // 设置位置\n this.setPosition('close');\n\n this.$element.reflow().addClass(`mdui-snackbar-${this.options.position}`);\n }\n\n /**\n * 点击 Snackbar 外面的区域关闭\n * @param event\n */\n private closeOnOutsideClick(event: Event): void {\n const $target = $(event.target as HTMLElement);\n\n if (\n !$target.hasClass('mdui-snackbar') &&\n !$target.parents('.mdui-snackbar').length\n ) {\n currentInst!.close();\n }\n }\n\n /**\n * 设置 Snackbar 的位置\n * @param state\n */\n private setPosition(state: 'open' | 'close'): void {\n const snackbarHeight = this.$element[0].clientHeight;\n const position = this.options.position;\n\n let translateX;\n let translateY;\n\n // translateX\n if (position === 'bottom' || position === 'top') {\n translateX = '-50%';\n } else {\n translateX = '0';\n }\n\n // translateY\n if (state === 'open') {\n translateY = '0';\n } else {\n if (position === 'bottom') {\n translateY = snackbarHeight;\n }\n\n if (position === 'top') {\n translateY = -snackbarHeight;\n }\n\n if (position === 'left-top' || position === 'right-top') {\n translateY = -snackbarHeight - 24;\n }\n\n if (position === 'left-bottom' || position === 'right-bottom') {\n translateY = snackbarHeight + 24;\n }\n }\n\n this.$element.transform(`translate(${translateX},${translateY}px`);\n }\n\n /**\n * 打开 Snackbar\n */\n public open(): void {\n if (this.state === 'opening' || this.state === 'opened') {\n return;\n }\n\n // 如果当前有正在显示的 Snackbar,则先加入队列,等旧 Snackbar 关闭后再打开\n if (currentInst) {\n queue(queueName, () => this.open());\n return;\n }\n\n currentInst = this;\n\n // 开始打开\n this.state = 'opening';\n this.options.onOpen!(this);\n\n this.setPosition('open');\n\n this.$element.transitionEnd(() => {\n if (this.state !== 'opening') {\n return;\n }\n\n this.state = 'opened';\n this.options.onOpened!(this);\n\n // 有按钮时绑定事件\n if (this.options.buttonText) {\n this.$element.find('.mdui-snackbar-action').on('click', () => {\n this.options.onButtonClick!(this);\n if (this.options.closeOnButtonClick) {\n this.close();\n }\n });\n }\n\n // 点击 snackbar 的事件\n this.$element.on('click', (event) => {\n if (!$(event.target as HTMLElement).hasClass('mdui-snackbar-action')) {\n this.options.onClick!(this);\n }\n });\n\n // 点击 Snackbar 外面的区域关闭\n if (this.options.closeOnOutsideClick) {\n $document.on(startEvent, this.closeOnOutsideClick);\n }\n\n // 超时后自动关闭\n if (this.options.timeout) {\n this.timeoutId = setTimeout(() => this.close(), this.options.timeout);\n }\n });\n }\n\n /**\n * 关闭 Snackbar\n */\n public close(): void {\n if (this.state === 'closing' || this.state === 'closed') {\n return;\n }\n\n if (this.timeoutId) {\n clearTimeout(this.timeoutId);\n }\n\n if (this.options.closeOnOutsideClick) {\n $document.off(startEvent, this.closeOnOutsideClick);\n }\n\n this.state = 'closing';\n this.options.onClose!(this);\n\n this.setPosition('close');\n\n this.$element.transitionEnd(() => {\n if (this.state !== 'closing') {\n return;\n }\n\n currentInst = null;\n this.state = 'closed';\n this.options.onClosed!(this);\n this.$element.remove();\n dequeue(queueName);\n });\n }\n}\n\nmdui.snackbar = function (message: any, options: any = {}): Snackbar {\n if (isString(message)) {\n options.message = message;\n } else {\n options = message;\n }\n\n const instance = new Snackbar(options);\n\n instance.open();\n\n return instance;\n};\n","import $ from 'mdui.jq/es/$';\nimport 'mdui.jq/es/methods/addClass';\nimport 'mdui.jq/es/methods/children';\nimport 'mdui.jq/es/methods/each';\nimport 'mdui.jq/es/methods/is';\nimport 'mdui.jq/es/methods/on';\nimport 'mdui.jq/es/methods/parent';\nimport 'mdui.jq/es/methods/removeClass';\nimport mdui from '../../mdui';\nimport '../../global/mutation';\nimport { componentEvent } from '../../utils/componentEvent';\nimport { $document } from '../../utils/dom';\nimport '../headroom';\n\n$(() => {\n // 切换导航项\n $document.on('click', '.mdui-bottom-nav>a', function () {\n const $item = $(this as HTMLElement);\n const $bottomNav = $item.parent();\n\n $bottomNav.children('a').each((index, item) => {\n const isThis = $item.is(item);\n\n if (isThis) {\n componentEvent('change', 'bottomNav', $bottomNav[0], undefined, {\n index,\n });\n }\n\n isThis\n ? $(item).addClass('mdui-bottom-nav-active')\n : $(item).removeClass('mdui-bottom-nav-active');\n });\n });\n\n // 滚动时隐藏 mdui-bottom-nav-scroll-hide\n mdui.mutation('.mdui-bottom-nav-scroll-hide', function () {\n new mdui.Headroom(this, {\n pinnedClass: 'mdui-headroom-pinned-down',\n unpinnedClass: 'mdui-headroom-unpinned-down',\n });\n });\n});\n","import $ from 'mdui.jq/es/$';\nimport 'mdui.jq/es/methods/each';\nimport 'mdui.jq/es/methods/hasClass';\nimport 'mdui.jq/es/methods/html';\nimport Selector from 'mdui.jq/es/types/Selector';\nimport { isUndefined } from 'mdui.jq/es/utils';\nimport mdui from '../../mdui';\nimport '../../global/mutation';\n\ndeclare module '../../interfaces/MduiStatic' {\n interface MduiStatic {\n /**\n * 如果需要修改已有的圆形进度条组件,需要调用该方法来重新初始化组件。\n *\n * 若传入了参数,则只重新初始化该参数对应的圆形进度条。若没有传入参数,则重新初始化所有圆形进度条。\n * @param selector CSS 选择器、或 DOM 元素、或 DOM 元素组成的数组、或 JQ 对象\n */\n updateSpinners(\n selector?: Selector | HTMLElement | ArrayLike,\n ): void;\n }\n}\n\n/**\n * layer 的 HTML 结构\n * @param index\n */\nfunction layerHTML(index: number | false = false): string {\n return (\n `
          ` +\n '
          ' +\n '
          ' +\n '
          ' +\n '
          ' +\n '
          ' +\n '
          ' +\n '
          ' +\n '
          ' +\n '
          ' +\n '
          '\n );\n}\n\n/**\n * 填充 HTML\n * @param spinner\n */\nfunction fillHTML(spinner: HTMLElement): void {\n const $spinner = $(spinner);\n\n const layer = $spinner.hasClass('mdui-spinner-colorful')\n ? layerHTML(1) + layerHTML(2) + layerHTML(3) + layerHTML(4)\n : layerHTML();\n\n $spinner.html(layer);\n}\n\n$(() => {\n // 页面加载完后自动填充 HTML 结构\n mdui.mutation('.mdui-spinner', function () {\n fillHTML(this);\n });\n});\n\nmdui.updateSpinners = function (\n selector?: Selector | HTMLElement | ArrayLike,\n): void {\n const $elements = isUndefined(selector) ? $('.mdui-spinner') : $(selector);\n\n $elements.each(function () {\n fillHTML(this);\n });\n};\n","import $ from 'mdui.jq/es/$';\nimport contains from 'mdui.jq/es/functions/contains';\nimport extend from 'mdui.jq/es/functions/extend';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport 'mdui.jq/es/methods/addClass';\nimport 'mdui.jq/es/methods/attr';\nimport 'mdui.jq/es/methods/children';\nimport 'mdui.jq/es/methods/css';\nimport 'mdui.jq/es/methods/data';\nimport 'mdui.jq/es/methods/each';\nimport 'mdui.jq/es/methods/find';\nimport 'mdui.jq/es/methods/first';\nimport 'mdui.jq/es/methods/hasClass';\nimport 'mdui.jq/es/methods/height';\nimport 'mdui.jq/es/methods/is';\nimport 'mdui.jq/es/methods/on';\nimport 'mdui.jq/es/methods/parent';\nimport 'mdui.jq/es/methods/parents';\nimport 'mdui.jq/es/methods/removeClass';\nimport 'mdui.jq/es/methods/width';\nimport Selector from 'mdui.jq/es/types/Selector';\nimport mdui from '../../mdui';\nimport '../../jq_extends/methods/transformOrigin';\nimport '../../jq_extends/methods/transitionEnd';\nimport '../../jq_extends/static/throttle';\nimport { componentEvent } from '../../utils/componentEvent';\nimport { $document, $window } from '../../utils/dom';\n\ndeclare module '../../interfaces/MduiStatic' {\n interface MduiStatic {\n /**\n * Menu 组件\n *\n * 请通过 `new mdui.Menu()` 调用\n */\n Menu: {\n /**\n * 实例化 Menu 组件\n * @param anchorSelector 触发菜单的元素的 CSS 选择器、或 DOM 元素、或 JQ 对象\n * @param menuSelector 菜单的 CSS 选择器、或 DOM 元素、或 JQ 对象\n * @param options 配置参数\n */\n new (\n anchorSelector: Selector | HTMLElement | ArrayLike,\n menuSelector: Selector | HTMLElement | ArrayLike,\n options?: OPTIONS,\n ): Menu;\n };\n }\n}\n\ntype OPTIONS = {\n /**\n * 菜单相对于触发它的元素的位置,默认为 `auto`。\n * 取值范围包括:\n * `top`: 菜单在触发它的元素的上方\n * `bottom`: 菜单在触发它的元素的下方\n * `center`: 菜单在窗口中垂直居中\n * `auto`: 自动判断位置。优先级为:`bottom` > `top` > `center`\n */\n position?: 'auto' | 'top' | 'bottom' | 'center';\n\n /**\n * 菜单与触发它的元素的对其方式,默认为 `auto`。\n * 取值范围包括:\n * `left`: 菜单与触发它的元素左对齐\n * `right`: 菜单与触发它的元素右对齐\n * `center`: 菜单在窗口中水平居中\n * `auto`: 自动判断位置:优先级为:`left` > `right` > `center`\n */\n align?: 'auto' | 'left' | 'right' | 'center';\n\n /**\n * 菜单与窗口边框至少保持多少间距,单位为 px,默认为 `16`\n */\n gutter?: number;\n\n /**\n * 菜单的定位方式,默认为 `false`。\n * 为 `true` 时,菜单使用 fixed 定位。在页面滚动时,菜单将保持在窗口固定位置,不随滚动条滚动。\n * 为 `false` 时,菜单使用 absolute 定位。在页面滚动时,菜单将随着页面一起滚动。\n */\n fixed?: boolean;\n\n /**\n * 菜单是否覆盖在触发它的元素的上面,默认为 `auto`\n * 为 `true` 时,使菜单覆盖在触发它的元素的上面\n * 为 `false` 时,使菜单不覆盖触发它的元素\n * 为 `auto` 时,简单菜单覆盖触发它的元素。级联菜单不覆盖触发它的元素\n */\n covered?: boolean | 'auto';\n\n /**\n * 子菜单的触发方式,默认为 `hover`\n * 为 `click` 时,点击时触发子菜单\n * 为 `hover` 时,鼠标悬浮时触发子菜单\n */\n subMenuTrigger?: 'click' | 'hover';\n\n /**\n * 子菜单的触发延迟时间(单位:毫秒),只有在 `subMenuTrigger: hover` 时,这个参数才有效,默认为 `200`\n */\n subMenuDelay?: number;\n};\n\ntype EVENT = 'open' | 'opened' | 'close' | 'closed';\ntype STATE = 'opening' | 'opened' | 'closing' | 'closed';\n\nconst DEFAULT_OPTIONS: OPTIONS = {\n position: 'auto',\n align: 'auto',\n gutter: 16,\n fixed: false,\n covered: 'auto',\n subMenuTrigger: 'hover',\n subMenuDelay: 200,\n};\n\nclass Menu {\n /**\n * 触发菜单的元素的 JQ 对象\n */\n public $anchor: JQ;\n\n /**\n * 菜单元素的 JQ 对象\n */\n public $element: JQ;\n\n /**\n * 配置参数\n */\n public options: OPTIONS = extend({}, DEFAULT_OPTIONS);\n\n /**\n * 当前菜单状态\n */\n private state: STATE = 'closed';\n\n /**\n * 是否是级联菜单\n */\n private isCascade: boolean;\n\n /**\n * 菜单是否覆盖在触发它的元素的上面\n */\n private isCovered: boolean;\n\n public constructor(\n anchorSelector: Selector | HTMLElement | ArrayLike,\n menuSelector: Selector | HTMLElement | ArrayLike,\n options: OPTIONS = {},\n ) {\n this.$anchor = $(anchorSelector).first();\n this.$element = $(menuSelector).first();\n\n // 触发菜单的元素 和 菜单必须是同级的元素,否则菜单可能不能定位\n if (!this.$anchor.parent().is(this.$element.parent())) {\n throw new Error('anchorSelector and menuSelector must be siblings');\n }\n\n extend(this.options, options);\n\n // 是否是级联菜单\n this.isCascade = this.$element.hasClass('mdui-menu-cascade');\n\n // covered 参数处理\n this.isCovered =\n this.options.covered === 'auto' ? !this.isCascade : this.options.covered!;\n\n // 点击触发菜单切换\n this.$anchor.on('click', () => this.toggle());\n\n // 点击菜单外面区域关闭菜单\n $document.on('click touchstart', (event: Event) => {\n const $target = $(event.target as HTMLElement);\n\n if (\n this.isOpen() &&\n !$target.is(this.$element) &&\n !contains(this.$element[0], $target[0]) &&\n !$target.is(this.$anchor) &&\n !contains(this.$anchor[0], $target[0])\n ) {\n this.close();\n }\n });\n\n // 点击不含子菜单的菜单条目关闭菜单\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const that = this;\n $document.on('click', '.mdui-menu-item', function () {\n const $item = $(this);\n\n if (\n !$item.find('.mdui-menu').length &&\n $item.attr('disabled') === undefined\n ) {\n that.close();\n }\n });\n\n // 绑定点击或鼠标移入含子菜单的条目的事件\n this.bindSubMenuEvent();\n\n // 窗口大小变化时,重新调整菜单位置\n $window.on(\n 'resize',\n $.throttle(() => this.readjust(), 100),\n );\n }\n\n /**\n * 是否为打开状态\n */\n private isOpen(): boolean {\n return this.state === 'opening' || this.state === 'opened';\n }\n\n /**\n * 触发组件事件\n * @param name\n */\n private triggerEvent(name: EVENT): void {\n componentEvent(name, 'menu', this.$element, this);\n }\n\n /**\n * 调整主菜单位置\n */\n private readjust(): void {\n let menuLeft;\n let menuTop;\n\n // 菜单位置和方向\n let position: 'bottom' | 'top' | 'center';\n let align: 'left' | 'right' | 'center';\n\n // window 窗口的宽度和高度\n const windowHeight = $window.height();\n const windowWidth = $window.width();\n\n // 配置参数\n const gutter = this.options.gutter!;\n const isCovered = this.isCovered;\n const isFixed = this.options.fixed;\n\n // 动画方向参数\n let transformOriginX;\n let transformOriginY;\n\n // 菜单的原始宽度和高度\n const menuWidth = this.$element.width();\n const menuHeight = this.$element.height();\n\n // 触发菜单的元素在窗口中的位置\n const anchorRect = this.$anchor[0].getBoundingClientRect();\n const anchorTop = anchorRect.top;\n const anchorLeft = anchorRect.left;\n const anchorHeight = anchorRect.height;\n const anchorWidth = anchorRect.width;\n const anchorBottom = windowHeight - anchorTop - anchorHeight;\n const anchorRight = windowWidth - anchorLeft - anchorWidth;\n\n // 触发元素相对其拥有定位属性的父元素的位置\n const anchorOffsetTop = this.$anchor[0].offsetTop;\n const anchorOffsetLeft = this.$anchor[0].offsetLeft;\n\n // 自动判断菜单位置\n if (this.options.position === 'auto') {\n if (anchorBottom + (isCovered ? anchorHeight : 0) > menuHeight + gutter) {\n // 判断下方是否放得下菜单\n position = 'bottom';\n } else if (\n anchorTop + (isCovered ? anchorHeight : 0) >\n menuHeight + gutter\n ) {\n // 判断上方是否放得下菜单\n position = 'top';\n } else {\n // 上下都放不下,居中显示\n position = 'center';\n }\n } else {\n position = this.options.position!;\n }\n\n // 自动判断菜单对齐方式\n if (this.options.align === 'auto') {\n if (anchorRight + anchorWidth > menuWidth + gutter) {\n // 判断右侧是否放得下菜单\n align = 'left';\n } else if (anchorLeft + anchorWidth > menuWidth + gutter) {\n // 判断左侧是否放得下菜单\n align = 'right';\n } else {\n // 左右都放不下,居中显示\n align = 'center';\n }\n } else {\n align = this.options.align!;\n }\n\n // 设置菜单位置\n if (position === 'bottom') {\n transformOriginY = '0';\n menuTop =\n (isCovered ? 0 : anchorHeight) +\n (isFixed ? anchorTop : anchorOffsetTop);\n } else if (position === 'top') {\n transformOriginY = '100%';\n menuTop =\n (isCovered ? anchorHeight : 0) +\n (isFixed ? anchorTop - menuHeight : anchorOffsetTop - menuHeight);\n } else {\n transformOriginY = '50%';\n\n // =====================在窗口中居中\n // 显示的菜单的高度,简单菜单高度不超过窗口高度,若超过了则在菜单内部显示滚动条\n // 级联菜单内部不允许出现滚动条\n let menuHeightTemp = menuHeight;\n\n // 简单菜单比窗口高时,限制菜单高度\n if (!this.isCascade) {\n if (menuHeight + gutter * 2 > windowHeight) {\n menuHeightTemp = windowHeight - gutter * 2;\n this.$element.height(menuHeightTemp);\n }\n }\n\n menuTop =\n (windowHeight - menuHeightTemp) / 2 +\n (isFixed ? 0 : anchorOffsetTop - anchorTop);\n }\n\n this.$element.css('top', `${menuTop}px`);\n\n // 设置菜单对齐方式\n if (align === 'left') {\n transformOriginX = '0';\n menuLeft = isFixed ? anchorLeft : anchorOffsetLeft;\n } else if (align === 'right') {\n transformOriginX = '100%';\n menuLeft = isFixed\n ? anchorLeft + anchorWidth - menuWidth\n : anchorOffsetLeft + anchorWidth - menuWidth;\n } else {\n transformOriginX = '50%';\n\n //=======================在窗口中居中\n // 显示的菜单的宽度,菜单宽度不能超过窗口宽度\n let menuWidthTemp = menuWidth;\n\n // 菜单比窗口宽,限制菜单宽度\n if (menuWidth + gutter * 2 > windowWidth) {\n menuWidthTemp = windowWidth - gutter * 2;\n this.$element.width(menuWidthTemp);\n }\n\n menuLeft =\n (windowWidth - menuWidthTemp) / 2 +\n (isFixed ? 0 : anchorOffsetLeft - anchorLeft);\n }\n\n this.$element.css('left', `${menuLeft}px`);\n\n // 设置菜单动画方向\n this.$element.transformOrigin(`${transformOriginX} ${transformOriginY}`);\n }\n\n /**\n * 调整子菜单的位置\n * @param $submenu\n */\n private readjustSubmenu($submenu: JQ): void {\n const $item = $submenu.parent('.mdui-menu-item');\n\n let submenuTop;\n let submenuLeft;\n\n // 子菜单位置和方向\n let position: 'top' | 'bottom';\n let align: 'left' | 'right';\n\n // window 窗口的宽度和高度\n const windowHeight = $window.height();\n const windowWidth = $window.width();\n\n // 动画方向参数\n let transformOriginX;\n let transformOriginY;\n\n // 子菜单的原始宽度和高度\n const submenuWidth = $submenu.width();\n const submenuHeight = $submenu.height();\n\n // 触发子菜单的菜单项的宽度高度\n const itemRect = $item[0].getBoundingClientRect();\n const itemWidth = itemRect.width;\n const itemHeight = itemRect.height;\n const itemLeft = itemRect.left;\n const itemTop = itemRect.top;\n\n // 判断菜单上下位置\n if (windowHeight - itemTop > submenuHeight) {\n // 判断下方是否放得下菜单\n position = 'bottom';\n } else if (itemTop + itemHeight > submenuHeight) {\n // 判断上方是否放得下菜单\n position = 'top';\n } else {\n // 默认放在下方\n position = 'bottom';\n }\n\n // 判断菜单左右位置\n if (windowWidth - itemLeft - itemWidth > submenuWidth) {\n // 判断右侧是否放得下菜单\n align = 'left';\n } else if (itemLeft > submenuWidth) {\n // 判断左侧是否放得下菜单\n align = 'right';\n } else {\n // 默认放在右侧\n align = 'left';\n }\n\n // 设置菜单位置\n if (position === 'bottom') {\n transformOriginY = '0';\n submenuTop = '0';\n } else if (position === 'top') {\n transformOriginY = '100%';\n submenuTop = -submenuHeight + itemHeight;\n }\n\n $submenu.css('top', `${submenuTop}px`);\n\n // 设置菜单对齐方式\n if (align === 'left') {\n transformOriginX = '0';\n submenuLeft = itemWidth;\n } else if (align === 'right') {\n transformOriginX = '100%';\n submenuLeft = -submenuWidth;\n }\n\n $submenu.css('left', `${submenuLeft}px`);\n\n // 设置菜单动画方向\n $submenu.transformOrigin(`${transformOriginX} ${transformOriginY}`);\n }\n\n /**\n * 打开子菜单\n * @param $submenu\n */\n private openSubMenu($submenu: JQ): void {\n this.readjustSubmenu($submenu);\n\n $submenu\n .addClass('mdui-menu-open')\n .parent('.mdui-menu-item')\n .addClass('mdui-menu-item-active');\n }\n\n /**\n * 关闭子菜单,及其嵌套的子菜单\n * @param $submenu\n */\n private closeSubMenu($submenu: JQ): void {\n // 关闭子菜单\n $submenu\n .removeClass('mdui-menu-open')\n .addClass('mdui-menu-closing')\n .transitionEnd(() => $submenu.removeClass('mdui-menu-closing'))\n\n // 移除激活状态的样式\n .parent('.mdui-menu-item')\n .removeClass('mdui-menu-item-active');\n\n // 循环关闭嵌套的子菜单\n $submenu.find('.mdui-menu').each((_, menu) => {\n const $subSubmenu = $(menu);\n\n $subSubmenu\n .removeClass('mdui-menu-open')\n .addClass('mdui-menu-closing')\n .transitionEnd(() => $subSubmenu.removeClass('mdui-menu-closing'))\n .parent('.mdui-menu-item')\n .removeClass('mdui-menu-item-active');\n });\n }\n\n /**\n * 切换子菜单状态\n * @param $submenu\n */\n private toggleSubMenu($submenu: JQ): void {\n $submenu.hasClass('mdui-menu-open')\n ? this.closeSubMenu($submenu)\n : this.openSubMenu($submenu);\n }\n\n /**\n * 绑定子菜单事件\n */\n private bindSubMenuEvent(): void {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const that = this;\n\n // 点击打开子菜单\n this.$element.on('click', '.mdui-menu-item', function (event) {\n const $item = $(this as HTMLElement);\n const $target = $(event.target as HTMLElement);\n\n // 禁用状态菜单不操作\n if ($item.attr('disabled') !== undefined) {\n return;\n }\n\n // 没有点击在子菜单的菜单项上时,不操作(点在了子菜单的空白区域、或分隔线上)\n if ($target.is('.mdui-menu') || $target.is('.mdui-divider')) {\n return;\n }\n\n // 阻止冒泡,点击菜单项时只在最后一级的 mdui-menu-item 上生效,不向上冒泡\n if (!$target.parents('.mdui-menu-item').first().is($item)) {\n return;\n }\n\n // 当前菜单的子菜单\n const $submenu = $item.children('.mdui-menu');\n\n // 先关闭除当前子菜单外的所有同级子菜单\n $item\n .parent('.mdui-menu')\n .children('.mdui-menu-item')\n .each((_, item) => {\n const $tmpSubmenu = $(item).children('.mdui-menu');\n\n if (\n $tmpSubmenu.length &&\n (!$submenu.length || !$tmpSubmenu.is($submenu))\n ) {\n that.closeSubMenu($tmpSubmenu);\n }\n });\n\n // 切换当前子菜单\n if ($submenu.length) {\n that.toggleSubMenu($submenu);\n }\n });\n\n if (this.options.subMenuTrigger === 'hover') {\n // 临时存储 setTimeout 对象\n let timeout: any = null;\n let timeoutOpen: any = null;\n\n this.$element.on('mouseover mouseout', '.mdui-menu-item', function (\n event,\n ) {\n const $item = $(this as HTMLElement);\n const eventType = event.type;\n const $relatedTarget = $(\n (event as MouseEvent).relatedTarget as HTMLElement,\n );\n\n // 禁用状态的菜单不操作\n if ($item.attr('disabled') !== undefined) {\n return;\n }\n\n // 用 mouseover 模拟 mouseenter\n if (eventType === 'mouseover') {\n if (\n !$item.is($relatedTarget) &&\n contains($item[0], $relatedTarget[0])\n ) {\n return;\n }\n }\n\n // 用 mouseout 模拟 mouseleave\n else if (eventType === 'mouseout') {\n if (\n $item.is($relatedTarget) ||\n contains($item[0], $relatedTarget[0])\n ) {\n return;\n }\n }\n\n // 当前菜单项下的子菜单,未必存在\n const $submenu = $item.children('.mdui-menu');\n\n // 鼠标移入菜单项时,显示菜单项下的子菜单\n if (eventType === 'mouseover') {\n if ($submenu.length) {\n // 当前子菜单准备打开时,如果当前子菜单正准备着关闭,不用再关闭了\n const tmpClose = $submenu.data('timeoutClose.mdui.menu');\n if (tmpClose) {\n clearTimeout(tmpClose);\n }\n\n // 如果当前子菜单已经打开,不操作\n if ($submenu.hasClass('mdui-menu-open')) {\n return;\n }\n\n // 当前子菜单准备打开时,其他准备打开的子菜单不用再打开了\n clearTimeout(timeoutOpen);\n\n // 准备打开当前子菜单\n timeout = timeoutOpen = setTimeout(\n () => that.openSubMenu($submenu),\n that.options.subMenuDelay,\n );\n\n $submenu.data('timeoutOpen.mdui.menu', timeout);\n }\n }\n\n // 鼠标移出菜单项时,关闭菜单项下的子菜单\n else if (eventType === 'mouseout') {\n if ($submenu.length) {\n // 鼠标移出菜单项时,如果当前菜单项下的子菜单正准备打开,不用再打开了\n const tmpOpen = $submenu.data('timeoutOpen.mdui.menu');\n if (tmpOpen) {\n clearTimeout(tmpOpen);\n }\n\n // 准备关闭当前子菜单\n timeout = setTimeout(\n () => that.closeSubMenu($submenu),\n that.options.subMenuDelay,\n );\n\n $submenu.data('timeoutClose.mdui.menu', timeout);\n }\n }\n });\n }\n }\n\n /**\n * 动画结束回调\n */\n private transitionEnd(): void {\n this.$element.removeClass('mdui-menu-closing');\n\n if (this.state === 'opening') {\n this.state = 'opened';\n this.triggerEvent('opened');\n }\n\n if (this.state === 'closing') {\n this.state = 'closed';\n this.triggerEvent('closed');\n\n // 关闭后,恢复菜单样式到默认状态,并恢复 fixed 定位\n this.$element.css({\n top: '',\n left: '',\n width: '',\n position: 'fixed',\n });\n }\n }\n\n /**\n * 切换菜单状态\n */\n public toggle(): void {\n this.isOpen() ? this.close() : this.open();\n }\n\n /**\n * 打开菜单\n */\n public open(): void {\n if (this.isOpen()) {\n return;\n }\n\n this.state = 'opening';\n this.triggerEvent('open');\n\n this.readjust();\n\n this.$element\n // 菜单隐藏状态使用使用 fixed 定位。\n .css('position', this.options.fixed ? 'fixed' : 'absolute')\n .addClass('mdui-menu-open')\n .transitionEnd(() => this.transitionEnd());\n }\n\n /**\n * 关闭菜单\n */\n public close(): void {\n if (!this.isOpen()) {\n return;\n }\n\n this.state = 'closing';\n this.triggerEvent('close');\n\n // 菜单开始关闭时,关闭所有子菜单\n this.$element.find('.mdui-menu').each((_, submenu) => {\n this.closeSubMenu($(submenu));\n });\n\n this.$element\n .removeClass('mdui-menu-open')\n .addClass('mdui-menu-closing')\n .transitionEnd(() => this.transitionEnd());\n }\n}\n\nmdui.Menu = Menu;\n","import $ from 'mdui.jq/es/$';\nimport 'mdui.jq/es/methods/data';\nimport 'mdui.jq/es/methods/on';\nimport mdui from '../../mdui';\nimport { $document } from '../../utils/dom';\nimport { parseOptions } from '../../utils/parseOptions';\nimport './index';\n\nconst customAttr = 'mdui-menu';\nconst dataName = '_mdui_menu';\n\ntype OPTIONS = {\n target: string;\n position?: 'auto' | 'top' | 'bottom' | 'center';\n align?: 'auto' | 'left' | 'right' | 'center';\n gutter?: number;\n fixed?: boolean;\n covered?: boolean | 'auto';\n subMenuTrigger?: 'click' | 'hover';\n subMenuDelay?: number;\n};\n\n$(() => {\n $document.on('click', `[${customAttr}]`, function () {\n const $this = $(this as HTMLElement);\n let instance = $this.data(dataName);\n\n if (!instance) {\n const options = parseOptions(this as HTMLElement, customAttr) as OPTIONS;\n const menuSelector = options.target;\n // @ts-ignore\n delete options.target;\n\n instance = new mdui.Menu($this, menuSelector, options);\n $this.data(dataName, instance);\n\n instance.toggle();\n }\n });\n});\n"],"names":["get","set","DEFAULT_OPTIONS","customAttr","dataName","currentInst","queueName"],"mappings":"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"} \ No newline at end of file diff --git a/static/mdui/js/mdui.js b/static/mdui/js/mdui.js new file mode 100644 index 0000000..ff253a5 --- /dev/null +++ b/static/mdui/js/mdui.js @@ -0,0 +1,6474 @@ +/*! + * mdui 1.0.1 (https://mdui.org) + * Copyright 2016-2020 zdhxiong + * Licensed under MIT + */ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.mdui = factory()); +}(this, (function () { 'use strict'; + + !function(){try{return new MouseEvent("test")}catch(e$1){}var e=function(e,t){t=t||{bubbles:!1,cancelable:!1};var n=document.createEvent("MouseEvent");return n.initMouseEvent(e,t.bubbles,t.cancelable,window,0,t.screenX||0,t.screenY||0,t.clientX||0,t.clientY||0,t.ctrlKey||!1,t.altKey||!1,t.shiftKey||!1,t.metaKey||!1,t.button||0,t.relatedTarget||null),n};e.prototype=Event.prototype,window.MouseEvent=e;}(); + + !function(){function t(t,e){e=e||{bubbles:!1,cancelable:!1,detail:void 0};var n=document.createEvent("CustomEvent");return n.initCustomEvent(t,e.bubbles,e.cancelable,e.detail),n}"function"!=typeof window.CustomEvent&&(t.prototype=window.Event.prototype,window.CustomEvent=t);}(); + + /** + * @this {Promise} + */ + function finallyConstructor(callback) { + var constructor = this.constructor; + return this.then( + function(value) { + // @ts-ignore + return constructor.resolve(callback()).then(function() { + return value; + }); + }, + function(reason) { + // @ts-ignore + return constructor.resolve(callback()).then(function() { + // @ts-ignore + return constructor.reject(reason); + }); + } + ); + } + + function allSettled(arr) { + var P = this; + return new P(function(resolve, reject) { + if (!(arr && typeof arr.length !== 'undefined')) { + return reject( + new TypeError( + typeof arr + + ' ' + + arr + + ' is not iterable(cannot read property Symbol(Symbol.iterator))' + ) + ); + } + var args = Array.prototype.slice.call(arr); + if (args.length === 0) { return resolve([]); } + var remaining = args.length; + + function res(i, val) { + if (val && (typeof val === 'object' || typeof val === 'function')) { + var then = val.then; + if (typeof then === 'function') { + then.call( + val, + function(val) { + res(i, val); + }, + function(e) { + args[i] = { status: 'rejected', reason: e }; + if (--remaining === 0) { + resolve(args); + } + } + ); + return; + } + } + args[i] = { status: 'fulfilled', value: val }; + if (--remaining === 0) { + resolve(args); + } + } + + for (var i = 0; i < args.length; i++) { + res(i, args[i]); + } + }); + } + + // Store setTimeout reference so promise-polyfill will be unaffected by + // other code modifying setTimeout (like sinon.useFakeTimers()) + var setTimeoutFunc = setTimeout; + + function isArray(x) { + return Boolean(x && typeof x.length !== 'undefined'); + } + + function noop() {} + + // Polyfill for Function.prototype.bind + function bind(fn, thisArg) { + return function() { + fn.apply(thisArg, arguments); + }; + } + + /** + * @constructor + * @param {Function} fn + */ + function Promise$1(fn) { + if (!(this instanceof Promise$1)) + { throw new TypeError('Promises must be constructed via new'); } + if (typeof fn !== 'function') { throw new TypeError('not a function'); } + /** @type {!number} */ + this._state = 0; + /** @type {!boolean} */ + this._handled = false; + /** @type {Promise|undefined} */ + this._value = undefined; + /** @type {!Array} */ + this._deferreds = []; + + doResolve(fn, this); + } + + function handle(self, deferred) { + while (self._state === 3) { + self = self._value; + } + if (self._state === 0) { + self._deferreds.push(deferred); + return; + } + self._handled = true; + Promise$1._immediateFn(function() { + var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected; + if (cb === null) { + (self._state === 1 ? resolve : reject)(deferred.promise, self._value); + return; + } + var ret; + try { + ret = cb(self._value); + } catch (e) { + reject(deferred.promise, e); + return; + } + resolve(deferred.promise, ret); + }); + } + + function resolve(self, newValue) { + try { + // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure + if (newValue === self) + { throw new TypeError('A promise cannot be resolved with itself.'); } + if ( + newValue && + (typeof newValue === 'object' || typeof newValue === 'function') + ) { + var then = newValue.then; + if (newValue instanceof Promise$1) { + self._state = 3; + self._value = newValue; + finale(self); + return; + } else if (typeof then === 'function') { + doResolve(bind(then, newValue), self); + return; + } + } + self._state = 1; + self._value = newValue; + finale(self); + } catch (e) { + reject(self, e); + } + } + + function reject(self, newValue) { + self._state = 2; + self._value = newValue; + finale(self); + } + + function finale(self) { + if (self._state === 2 && self._deferreds.length === 0) { + Promise$1._immediateFn(function() { + if (!self._handled) { + Promise$1._unhandledRejectionFn(self._value); + } + }); + } + + for (var i = 0, len = self._deferreds.length; i < len; i++) { + handle(self, self._deferreds[i]); + } + self._deferreds = null; + } + + /** + * @constructor + */ + function Handler(onFulfilled, onRejected, promise) { + this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null; + this.onRejected = typeof onRejected === 'function' ? onRejected : null; + this.promise = promise; + } + + /** + * Take a potentially misbehaving resolver function and make sure + * onFulfilled and onRejected are only called once. + * + * Makes no guarantees about asynchrony. + */ + function doResolve(fn, self) { + var done = false; + try { + fn( + function(value) { + if (done) { return; } + done = true; + resolve(self, value); + }, + function(reason) { + if (done) { return; } + done = true; + reject(self, reason); + } + ); + } catch (ex) { + if (done) { return; } + done = true; + reject(self, ex); + } + } + + Promise$1.prototype['catch'] = function(onRejected) { + return this.then(null, onRejected); + }; + + Promise$1.prototype.then = function(onFulfilled, onRejected) { + // @ts-ignore + var prom = new this.constructor(noop); + + handle(this, new Handler(onFulfilled, onRejected, prom)); + return prom; + }; + + Promise$1.prototype['finally'] = finallyConstructor; + + Promise$1.all = function(arr) { + return new Promise$1(function(resolve, reject) { + if (!isArray(arr)) { + return reject(new TypeError('Promise.all accepts an array')); + } + + var args = Array.prototype.slice.call(arr); + if (args.length === 0) { return resolve([]); } + var remaining = args.length; + + function res(i, val) { + try { + if (val && (typeof val === 'object' || typeof val === 'function')) { + var then = val.then; + if (typeof then === 'function') { + then.call( + val, + function(val) { + res(i, val); + }, + reject + ); + return; + } + } + args[i] = val; + if (--remaining === 0) { + resolve(args); + } + } catch (ex) { + reject(ex); + } + } + + for (var i = 0; i < args.length; i++) { + res(i, args[i]); + } + }); + }; + + Promise$1.allSettled = allSettled; + + Promise$1.resolve = function(value) { + if (value && typeof value === 'object' && value.constructor === Promise$1) { + return value; + } + + return new Promise$1(function(resolve) { + resolve(value); + }); + }; + + Promise$1.reject = function(value) { + return new Promise$1(function(resolve, reject) { + reject(value); + }); + }; + + Promise$1.race = function(arr) { + return new Promise$1(function(resolve, reject) { + if (!isArray(arr)) { + return reject(new TypeError('Promise.race accepts an array')); + } + + for (var i = 0, len = arr.length; i < len; i++) { + Promise$1.resolve(arr[i]).then(resolve, reject); + } + }); + }; + + // Use polyfill for setImmediate for performance gains + Promise$1._immediateFn = + // @ts-ignore + (typeof setImmediate === 'function' && + function(fn) { + // @ts-ignore + setImmediate(fn); + }) || + function(fn) { + setTimeoutFunc(fn, 0); + }; + + Promise$1._unhandledRejectionFn = function _unhandledRejectionFn(err) { + if (typeof console !== 'undefined' && console) { + console.warn('Possible Unhandled Promise Rejection:', err); // eslint-disable-line no-console + } + }; + + /** @suppress {undefinedVars} */ + var globalNS = (function() { + // the only reliable means to get the global object is + // `Function('return this')()` + // However, this causes CSP violations in Chrome apps. + if (typeof self !== 'undefined') { + return self; + } + if (typeof window !== 'undefined') { + return window; + } + if (typeof global !== 'undefined') { + return global; + } + throw new Error('unable to locate global object'); + })(); + + // Expose the polyfill if Promise is undefined or set to a + // non-function value. The latter can be due to a named HTMLElement + // being exposed by browsers for legacy reasons. + // https://github.com/taylorhakes/promise-polyfill/issues/114 + if (typeof globalNS['Promise'] !== 'function') { + globalNS['Promise'] = Promise$1; + } else if (!globalNS.Promise.prototype['finally']) { + globalNS.Promise.prototype['finally'] = finallyConstructor; + } else if (!globalNS.Promise.allSettled) { + globalNS.Promise.allSettled = allSettled; + } + + function isFunction(target) { + return typeof target === 'function'; + } + function isString(target) { + return typeof target === 'string'; + } + function isNumber(target) { + return typeof target === 'number'; + } + function isBoolean(target) { + return typeof target === 'boolean'; + } + function isUndefined(target) { + return typeof target === 'undefined'; + } + function isNull(target) { + return target === null; + } + function isWindow(target) { + return target instanceof Window; + } + function isDocument(target) { + return target instanceof Document; + } + function isElement(target) { + return target instanceof Element; + } + function isNode(target) { + return target instanceof Node; + } + /** + * 是否是 IE 浏览器 + */ + function isIE() { + // @ts-ignore + return !!window.document.documentMode; + } + function isArrayLike(target) { + if (isFunction(target) || isWindow(target)) { + return false; + } + return isNumber(target.length); + } + function isObjectLike(target) { + return typeof target === 'object' && target !== null; + } + function toElement(target) { + return isDocument(target) ? target.documentElement : target; + } + /** + * 把用 - 分隔的字符串转为驼峰(如 box-sizing 转换为 boxSizing) + * @param string + */ + function toCamelCase(string) { + return string + .replace(/^-ms-/, 'ms-') + .replace(/-([a-z])/g, function (_, letter) { return letter.toUpperCase(); }); + } + /** + * 把驼峰法转为用 - 分隔的字符串(如 boxSizing 转换为 box-sizing) + * @param string + */ + function toKebabCase(string) { + return string.replace(/[A-Z]/g, function (replacer) { return '-' + replacer.toLowerCase(); }); + } + /** + * 获取元素的样式值 + * @param element + * @param name + */ + function getComputedStyleValue(element, name) { + return window.getComputedStyle(element).getPropertyValue(toKebabCase(name)); + } + /** + * 检查元素的 box-sizing 是否是 border-box + * @param element + */ + function isBorderBox(element) { + return getComputedStyleValue(element, 'box-sizing') === 'border-box'; + } + /** + * 获取元素的 padding, border, margin 宽度(两侧宽度的和,单位为px) + * @param element + * @param direction + * @param extra + */ + function getExtraWidth(element, direction, extra) { + var position = direction === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom']; + return [0, 1].reduce(function (prev, _, index) { + var prop = extra + position[index]; + if (extra === 'border') { + prop += 'Width'; + } + return prev + parseFloat(getComputedStyleValue(element, prop) || '0'); + }, 0); + } + /** + * 获取元素的样式值,对 width 和 height 进行过处理 + * @param element + * @param name + */ + function getStyle(element, name) { + // width、height 属性使用 getComputedStyle 得到的值不准确,需要使用 getBoundingClientRect 获取 + if (name === 'width' || name === 'height') { + var valueNumber = element.getBoundingClientRect()[name]; + if (isBorderBox(element)) { + return (valueNumber + "px"); + } + return ((valueNumber - + getExtraWidth(element, name, 'border') - + getExtraWidth(element, name, 'padding')) + "px"); + } + return getComputedStyleValue(element, name); + } + /** + * 获取子节点组成的数组 + * @param target + * @param parent + */ + function getChildNodesArray(target, parent) { + var tempParent = document.createElement(parent); + tempParent.innerHTML = target; + return [].slice.call(tempParent.childNodes); + } + /** + * 始终返回 false 的函数 + */ + function returnFalse() { + return false; + } + /** + * 数值单位的 CSS 属性 + */ + var cssNumber = [ + 'animationIterationCount', + 'columnCount', + 'fillOpacity', + 'flexGrow', + 'flexShrink', + 'fontWeight', + 'gridArea', + 'gridColumn', + 'gridColumnEnd', + 'gridColumnStart', + 'gridRow', + 'gridRowEnd', + 'gridRowStart', + 'lineHeight', + 'opacity', + 'order', + 'orphans', + 'widows', + 'zIndex', + 'zoom' ]; + + function each(target, callback) { + if (isArrayLike(target)) { + for (var i = 0; i < target.length; i += 1) { + if (callback.call(target[i], i, target[i]) === false) { + return target; + } + } + } + else { + var keys = Object.keys(target); + for (var i$1 = 0; i$1 < keys.length; i$1 += 1) { + if (callback.call(target[keys[i$1]], keys[i$1], target[keys[i$1]]) === false) { + return target; + } + } + } + return target; + } + + /** + * 为了使用模块扩充,这里不能使用默认导出 + */ + var JQ = function JQ(arr) { + var this$1 = this; + + this.length = 0; + if (!arr) { + return this; + } + each(arr, function (i, item) { + // @ts-ignore + this$1[i] = item; + }); + this.length = arr.length; + return this; + }; + + function get$() { + var $ = function (selector) { + if (!selector) { + return new JQ(); + } + // JQ + if (selector instanceof JQ) { + return selector; + } + // function + if (isFunction(selector)) { + if (/complete|loaded|interactive/.test(document.readyState) && + document.body) { + selector.call(document, $); + } + else { + document.addEventListener('DOMContentLoaded', function () { return selector.call(document, $); }, false); + } + return new JQ([document]); + } + // String + if (isString(selector)) { + var html = selector.trim(); + // 根据 HTML 字符串创建 JQ 对象 + if (html[0] === '<' && html[html.length - 1] === '>') { + var toCreate = 'div'; + var tags = { + li: 'ul', + tr: 'tbody', + td: 'tr', + th: 'tr', + tbody: 'table', + option: 'select', + }; + each(tags, function (childTag, parentTag) { + if (html.indexOf(("<" + childTag)) === 0) { + toCreate = parentTag; + return false; + } + return; + }); + return new JQ(getChildNodesArray(html, toCreate)); + } + // 根据 CSS 选择器创建 JQ 对象 + var isIdSelector = selector[0] === '#' && !selector.match(/[ .<>:~]/); + if (!isIdSelector) { + return new JQ(document.querySelectorAll(selector)); + } + var element = document.getElementById(selector.slice(1)); + if (element) { + return new JQ([element]); + } + return new JQ(); + } + if (isArrayLike(selector) && !isNode(selector)) { + return new JQ(selector); + } + return new JQ([selector]); + }; + $.fn = JQ.prototype; + return $; + } + var $ = get$(); + + // 避免页面加载完后直接执行css动画 + // https://css-tricks.com/transitions-only-after-page-load/ + setTimeout(function () { return $('body').addClass('mdui-loaded'); }); + var mdui = { + $: $, + }; + + $.fn.each = function (callback) { + return each(this, callback); + }; + + /** + * 检查 container 元素内是否包含 contains 元素 + * @param container 父元素 + * @param contains 子元素 + * @example + ```js + contains( document, document.body ); // true + contains( document.getElementById('test'), document ); // false + contains( $('.container').get(0), $('.contains').get(0) ); // false + ``` + */ + function contains(container, contains) { + return container !== contains && toElement(container).contains(contains); + } + + /** + * 把第二个数组的元素追加到第一个数组中,并返回合并后的数组 + * @param first 第一个数组 + * @param second 该数组的元素将被追加到第一个数组中 + * @example + ```js + merge( [ 0, 1, 2 ], [ 2, 3, 4 ] ) + // [ 0, 1, 2, 2, 3, 4 ] + ``` + */ + function merge(first, second) { + each(second, function (_, value) { + first.push(value); + }); + return first; + } + + $.fn.get = function (index) { + return index === undefined + ? [].slice.call(this) + : this[index >= 0 ? index : index + this.length]; + }; + + $.fn.find = function (selector) { + var foundElements = []; + this.each(function (_, element) { + merge(foundElements, $(element.querySelectorAll(selector)).get()); + }); + return new JQ(foundElements); + }; + + // 存储事件 + var handlers = {}; + // 元素ID + var mduiElementId = 1; + /** + * 为元素赋予一个唯一的ID + */ + function getElementId(element) { + var key = '_mduiEventId'; + // @ts-ignore + if (!element[key]) { + // @ts-ignore + element[key] = ++mduiElementId; + } + // @ts-ignore + return element[key]; + } + /** + * 解析事件名中的命名空间 + */ + function parse(type) { + var parts = type.split('.'); + return { + type: parts[0], + ns: parts.slice(1).sort().join(' '), + }; + } + /** + * 命名空间匹配规则 + */ + function matcherFor(ns) { + return new RegExp('(?:^| )' + ns.replace(' ', ' .* ?') + '(?: |$)'); + } + /** + * 获取匹配的事件 + * @param element + * @param type + * @param func + * @param selector + */ + function getHandlers(element, type, func, selector) { + var event = parse(type); + return (handlers[getElementId(element)] || []).filter(function (handler) { return handler && + (!event.type || handler.type === event.type) && + (!event.ns || matcherFor(event.ns).test(handler.ns)) && + (!func || getElementId(handler.func) === getElementId(func)) && + (!selector || handler.selector === selector); }); + } + /** + * 添加事件监听 + * @param element + * @param types + * @param func + * @param data + * @param selector + */ + function add(element, types, func, data, selector) { + var elementId = getElementId(element); + if (!handlers[elementId]) { + handlers[elementId] = []; + } + // 传入 data.useCapture 来设置 useCapture: true + var useCapture = false; + if (isObjectLike(data) && data.useCapture) { + useCapture = true; + } + types.split(' ').forEach(function (type) { + if (!type) { + return; + } + var event = parse(type); + function callFn(e, elem) { + // 因为鼠标事件模拟事件的 detail 属性是只读的,因此在 e._detail 中存储参数 + var result = func.apply(elem, + // @ts-ignore + e._detail === undefined ? [e] : [e].concat(e._detail)); + if (result === false) { + e.preventDefault(); + e.stopPropagation(); + } + } + function proxyFn(e) { + // @ts-ignore + if (e._ns && !matcherFor(e._ns).test(event.ns)) { + return; + } + // @ts-ignore + e._data = data; + if (selector) { + // 事件代理 + $(element) + .find(selector) + .get() + .reverse() + .forEach(function (elem) { + if (elem === e.target || + contains(elem, e.target)) { + callFn(e, elem); + } + }); + } + else { + // 不使用事件代理 + callFn(e, element); + } + } + var handler = { + type: event.type, + ns: event.ns, + func: func, + selector: selector, + id: handlers[elementId].length, + proxy: proxyFn, + }; + handlers[elementId].push(handler); + element.addEventListener(handler.type, proxyFn, useCapture); + }); + } + /** + * 移除事件监听 + * @param element + * @param types + * @param func + * @param selector + */ + function remove(element, types, func, selector) { + var handlersInElement = handlers[getElementId(element)] || []; + var removeEvent = function (handler) { + delete handlersInElement[handler.id]; + element.removeEventListener(handler.type, handler.proxy, false); + }; + if (!types) { + handlersInElement.forEach(function (handler) { return removeEvent(handler); }); + } + else { + types.split(' ').forEach(function (type) { + if (type) { + getHandlers(element, type, func, selector).forEach(function (handler) { return removeEvent(handler); }); + } + }); + } + } + + $.fn.trigger = function (type, extraParameters) { + var event = parse(type); + var eventObject; + var eventParams = { + bubbles: true, + cancelable: true, + }; + var isMouseEvent = ['click', 'mousedown', 'mouseup', 'mousemove'].indexOf(event.type) > -1; + if (isMouseEvent) { + // Note: MouseEvent 无法传入 detail 参数 + eventObject = new MouseEvent(event.type, eventParams); + } + else { + eventParams.detail = extraParameters; + eventObject = new CustomEvent(event.type, eventParams); + } + // @ts-ignore + eventObject._detail = extraParameters; + // @ts-ignore + eventObject._ns = event.ns; + return this.each(function () { + this.dispatchEvent(eventObject); + }); + }; + + function extend(target, object1) { + var objectN = [], len = arguments.length - 2; + while ( len-- > 0 ) objectN[ len ] = arguments[ len + 2 ]; + + objectN.unshift(object1); + each(objectN, function (_, object) { + each(object, function (prop, value) { + if (!isUndefined(value)) { + target[prop] = value; + } + }); + }); + return target; + } + + /** + * 将数组或对象序列化,序列化后的字符串可作为 URL 查询字符串使用 + * + * 若传入数组,则格式必须和 serializeArray 方法的返回值一样 + * @param obj 对象或数组 + * @example + ```js + param({ width: 1680, height: 1050 }); + // width=1680&height=1050 + ``` + * @example + ```js + param({ foo: { one: 1, two: 2 }}) + // foo[one]=1&foo[two]=2 + ``` + * @example + ```js + param({ids: [1, 2, 3]}) + // ids[]=1&ids[]=2&ids[]=3 + ``` + * @example + ```js + param([ + {"name":"name","value":"mdui"}, + {"name":"password","value":"123456"} + ]) + // name=mdui&password=123456 + ``` + */ + function param(obj) { + if (!isObjectLike(obj) && !Array.isArray(obj)) { + return ''; + } + var args = []; + function destructure(key, value) { + var keyTmp; + if (isObjectLike(value)) { + each(value, function (i, v) { + if (Array.isArray(value) && !isObjectLike(v)) { + keyTmp = ''; + } + else { + keyTmp = i; + } + destructure((key + "[" + keyTmp + "]"), v); + }); + } + else { + if (value == null || value === '') { + keyTmp = '='; + } + else { + keyTmp = "=" + (encodeURIComponent(value)); + } + args.push(encodeURIComponent(key) + keyTmp); + } + } + if (Array.isArray(obj)) { + each(obj, function () { + destructure(this.name, this.value); + }); + } + else { + each(obj, destructure); + } + return args.join('&'); + } + + // 全局配置参数 + var globalOptions = {}; + // 全局事件名 + var ajaxEvents = { + ajaxStart: 'start.mdui.ajax', + ajaxSuccess: 'success.mdui.ajax', + ajaxError: 'error.mdui.ajax', + ajaxComplete: 'complete.mdui.ajax', + }; + + /** + * 判断此请求方法是否通过查询字符串提交参数 + * @param method 请求方法,大写 + */ + function isQueryStringData(method) { + return ['GET', 'HEAD'].indexOf(method) >= 0; + } + /** + * 添加参数到 URL 上,且 URL 中不存在 ? 时,自动把第一个 & 替换为 ? + * @param url + * @param query + */ + function appendQuery(url, query) { + return (url + "&" + query).replace(/[&?]{1,2}/, '?'); + } + /** + * 合并请求参数,参数优先级:options > globalOptions > defaults + * @param options + */ + function mergeOptions(options) { + // 默认参数 + var defaults = { + url: '', + method: 'GET', + data: '', + processData: true, + async: true, + cache: true, + username: '', + password: '', + headers: {}, + xhrFields: {}, + statusCode: {}, + dataType: 'text', + contentType: 'application/x-www-form-urlencoded', + timeout: 0, + global: true, + }; + // globalOptions 中的回调函数不合并 + each(globalOptions, function (key, value) { + var callbacks = [ + 'beforeSend', + 'success', + 'error', + 'complete', + 'statusCode' ]; + // @ts-ignore + if (callbacks.indexOf(key) < 0 && !isUndefined(value)) { + defaults[key] = value; + } + }); + return extend({}, defaults, options); + } + /** + * 发送 ajax 请求 + * @param options + * @example + ```js + ajax({ + method: "POST", + url: "some.php", + data: { name: "John", location: "Boston" } + }).then(function( msg ) { + alert( "Data Saved: " + msg ); + }); + ``` + */ + function ajax(options) { + // 是否已取消请求 + var isCanceled = false; + // 事件参数 + var eventParams = {}; + // 参数合并 + var mergedOptions = mergeOptions(options); + var url = mergedOptions.url || window.location.toString(); + var method = mergedOptions.method.toUpperCase(); + var data = mergedOptions.data; + var processData = mergedOptions.processData; + var async = mergedOptions.async; + var cache = mergedOptions.cache; + var username = mergedOptions.username; + var password = mergedOptions.password; + var headers = mergedOptions.headers; + var xhrFields = mergedOptions.xhrFields; + var statusCode = mergedOptions.statusCode; + var dataType = mergedOptions.dataType; + var contentType = mergedOptions.contentType; + var timeout = mergedOptions.timeout; + var global = mergedOptions.global; + // 需要发送的数据 + // GET/HEAD 请求和 processData 为 true 时,转换为查询字符串格式,特殊格式不转换 + if (data && + (isQueryStringData(method) || processData) && + !isString(data) && + !(data instanceof ArrayBuffer) && + !(data instanceof Blob) && + !(data instanceof Document) && + !(data instanceof FormData)) { + data = param(data); + } + // 对于 GET、HEAD 类型的请求,把 data 数据添加到 URL 中 + if (data && isQueryStringData(method)) { + // 查询字符串拼接到 URL 中 + url = appendQuery(url, data); + data = null; + } + /** + * 触发事件和回调函数 + * @param event + * @param params + * @param callback + * @param args + */ + function trigger(event, params, callback) { + var args = [], len = arguments.length - 3; + while ( len-- > 0 ) args[ len ] = arguments[ len + 3 ]; + + // 触发全局事件 + if (global) { + $(document).trigger(event, params); + } + // 触发 ajax 回调和事件 + var result1; + var result2; + if (callback) { + // 全局回调 + if (callback in globalOptions) { + // @ts-ignore + result1 = globalOptions[callback].apply(globalOptions, args); + } + // 自定义回调 + if (mergedOptions[callback]) { + // @ts-ignore + result2 = mergedOptions[callback].apply(mergedOptions, args); + } + // beforeSend 回调返回 false 时取消 ajax 请求 + if (callback === 'beforeSend' && + (result1 === false || result2 === false)) { + isCanceled = true; + } + } + } + // XMLHttpRequest 请求 + function XHR() { + var textStatus; + return new Promise(function (resolve, reject) { + // GET/HEAD 请求的缓存处理 + if (isQueryStringData(method) && !cache) { + url = appendQuery(url, ("_=" + (Date.now()))); + } + // 创建 XHR + var xhr = new XMLHttpRequest(); + xhr.open(method, url, async, username, password); + if (contentType || + (data && !isQueryStringData(method) && contentType !== false)) { + xhr.setRequestHeader('Content-Type', contentType); + } + // 设置 Accept + if (dataType === 'json') { + xhr.setRequestHeader('Accept', 'application/json, text/javascript'); + } + // 添加 headers + if (headers) { + each(headers, function (key, value) { + // undefined 值不发送,string 和 null 需要发送 + if (!isUndefined(value)) { + xhr.setRequestHeader(key, value + ''); // 把 null 转换成字符串 + } + }); + } + // 检查是否是跨域请求,跨域请求时不添加 X-Requested-With + var crossDomain = /^([\w-]+:)?\/\/([^/]+)/.test(url) && + RegExp.$2 !== window.location.host; + if (!crossDomain) { + xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); + } + if (xhrFields) { + each(xhrFields, function (key, value) { + // @ts-ignore + xhr[key] = value; + }); + } + eventParams.xhr = xhr; + eventParams.options = mergedOptions; + var xhrTimeout; + xhr.onload = function () { + if (xhrTimeout) { + clearTimeout(xhrTimeout); + } + // AJAX 返回的 HTTP 响应码是否表示成功 + var isHttpStatusSuccess = (xhr.status >= 200 && xhr.status < 300) || + xhr.status === 304 || + xhr.status === 0; + var responseData; + if (isHttpStatusSuccess) { + if (xhr.status === 204 || method === 'HEAD') { + textStatus = 'nocontent'; + } + else if (xhr.status === 304) { + textStatus = 'notmodified'; + } + else { + textStatus = 'success'; + } + if (dataType === 'json') { + try { + responseData = + method === 'HEAD' ? undefined : JSON.parse(xhr.responseText); + eventParams.data = responseData; + } + catch (err) { + textStatus = 'parsererror'; + trigger(ajaxEvents.ajaxError, eventParams, 'error', xhr, textStatus); + reject(new Error(textStatus)); + } + if (textStatus !== 'parsererror') { + trigger(ajaxEvents.ajaxSuccess, eventParams, 'success', responseData, textStatus, xhr); + resolve(responseData); + } + } + else { + responseData = + method === 'HEAD' + ? undefined + : xhr.responseType === 'text' || xhr.responseType === '' + ? xhr.responseText + : xhr.response; + eventParams.data = responseData; + trigger(ajaxEvents.ajaxSuccess, eventParams, 'success', responseData, textStatus, xhr); + resolve(responseData); + } + } + else { + textStatus = 'error'; + trigger(ajaxEvents.ajaxError, eventParams, 'error', xhr, textStatus); + reject(new Error(textStatus)); + } + // statusCode + each([globalOptions.statusCode, statusCode], function (_, func) { + if (func && func[xhr.status]) { + if (isHttpStatusSuccess) { + func[xhr.status](responseData, textStatus, xhr); + } + else { + func[xhr.status](xhr, textStatus); + } + } + }); + trigger(ajaxEvents.ajaxComplete, eventParams, 'complete', xhr, textStatus); + }; + xhr.onerror = function () { + if (xhrTimeout) { + clearTimeout(xhrTimeout); + } + trigger(ajaxEvents.ajaxError, eventParams, 'error', xhr, xhr.statusText); + trigger(ajaxEvents.ajaxComplete, eventParams, 'complete', xhr, 'error'); + reject(new Error(xhr.statusText)); + }; + xhr.onabort = function () { + var statusText = 'abort'; + if (xhrTimeout) { + statusText = 'timeout'; + clearTimeout(xhrTimeout); + } + trigger(ajaxEvents.ajaxError, eventParams, 'error', xhr, statusText); + trigger(ajaxEvents.ajaxComplete, eventParams, 'complete', xhr, statusText); + reject(new Error(statusText)); + }; + // ajax start 回调 + trigger(ajaxEvents.ajaxStart, eventParams, 'beforeSend', xhr); + if (isCanceled) { + reject(new Error('cancel')); + return; + } + // Timeout + if (timeout > 0) { + xhrTimeout = setTimeout(function () { + xhr.abort(); + }, timeout); + } + // 发送 XHR + xhr.send(data); + }); + } + return XHR(); + } + + $.ajax = ajax; + + /** + * 为 Ajax 请求设置全局配置参数 + * @param options 键值对参数 + * @example + ```js + ajaxSetup({ + dataType: 'json', + method: 'POST', + }); + ``` + */ + function ajaxSetup(options) { + return extend(globalOptions, options); + } + + $.ajaxSetup = ajaxSetup; + + $.contains = contains; + + var dataNS = '_mduiElementDataStorage'; + + /** + * 在元素上设置键值对数据 + * @param element + * @param object + */ + function setObjectToElement(element, object) { + // @ts-ignore + if (!element[dataNS]) { + // @ts-ignore + element[dataNS] = {}; + } + each(object, function (key, value) { + // @ts-ignore + element[dataNS][toCamelCase(key)] = value; + }); + } + function data(element, key, value) { + var obj; + + // 根据键值对设置值 + // data(element, { 'key' : 'value' }) + if (isObjectLike(key)) { + setObjectToElement(element, key); + return key; + } + // 根据 key、value 设置值 + // data(element, 'key', 'value') + if (!isUndefined(value)) { + setObjectToElement(element, ( obj = {}, obj[key] = value, obj )); + return value; + } + // 获取所有值 + // data(element) + if (isUndefined(key)) { + // @ts-ignore + return element[dataNS] ? element[dataNS] : {}; + } + // 从 dataNS 中获取指定值 + // data(element, 'key') + key = toCamelCase(key); + // @ts-ignore + if (element[dataNS] && key in element[dataNS]) { + // @ts-ignore + return element[dataNS][key]; + } + return undefined; + } + + $.data = data; + + $.each = each; + + $.extend = function () { + var this$1 = this; + var objectN = [], len = arguments.length; + while ( len-- ) objectN[ len ] = arguments[ len ]; + + if (objectN.length === 1) { + each(objectN[0], function (prop, value) { + this$1[prop] = value; + }); + return this; + } + return extend.apply(void 0, [ objectN.shift(), objectN.shift() ].concat( objectN )); + }; + + function map(elements, callback) { + var ref; + + var value; + var ret = []; + each(elements, function (i, element) { + value = callback.call(window, element, i); + if (value != null) { + ret.push(value); + } + }); + return (ref = []).concat.apply(ref, ret); + } + + $.map = map; + + $.merge = merge; + + $.param = param; + + /** + * 移除指定元素上存放的数据 + * @param element 存放数据的元素 + * @param name + * 数据键名 + * + * 若未指定键名,将移除元素上所有数据 + * + * 多个键名可以用空格分隔,或者用数组表示多个键名 + @example + ```js + // 移除元素上键名为 name 的数据 + removeData(document.body, 'name'); + ``` + * @example + ```js + // 移除元素上键名为 name1 和 name2 的数据 + removeData(document.body, 'name1 name2'); + ``` + * @example + ```js + // 移除元素上键名为 name1 和 name2 的数据 + removeData(document.body, ['name1', 'name2']); + ``` + * @example + ```js + // 移除元素上所有数据 + removeData(document.body); + ``` + */ + function removeData(element, name) { + // @ts-ignore + if (!element[dataNS]) { + return; + } + var remove = function (nameItem) { + nameItem = toCamelCase(nameItem); + // @ts-ignore + if (element[dataNS][nameItem]) { + // @ts-ignore + element[dataNS][nameItem] = null; + // @ts-ignore + delete element[dataNS][nameItem]; + } + }; + if (isUndefined(name)) { + // @ts-ignore + element[dataNS] = null; + // @ts-ignore + delete element[dataNS]; + // @ts-ignore + } + else if (isString(name)) { + name + .split(' ') + .filter(function (nameItem) { return nameItem; }) + .forEach(function (nameItem) { return remove(nameItem); }); + } + else { + each(name, function (_, nameItem) { return remove(nameItem); }); + } + } + + $.removeData = removeData; + + /** + * 过滤掉数组中的重复元素 + * @param arr 数组 + * @example + ```js + unique([1, 2, 12, 3, 2, 1, 2, 1, 1]); + // [1, 2, 12, 3] + ``` + */ + function unique(arr) { + var result = []; + each(arr, function (_, val) { + if (result.indexOf(val) === -1) { + result.push(val); + } + }); + return result; + } + + $.unique = unique; + + $.fn.add = function (selector) { + return new JQ(unique(merge(this.get(), $(selector).get()))); + }; + + each(['add', 'remove', 'toggle'], function (_, name) { + $.fn[(name + "Class")] = function (className) { + if (name === 'remove' && !arguments.length) { + return this.each(function (_, element) { + element.setAttribute('class', ''); + }); + } + return this.each(function (i, element) { + if (!isElement(element)) { + return; + } + var classes = (isFunction(className) + ? className.call(element, i, element.getAttribute('class') || '') + : className) + .split(' ') + .filter(function (name) { return name; }); + each(classes, function (_, cls) { + element.classList[name](cls); + }); + }); + }; + }); + + each(['insertBefore', 'insertAfter'], function (nameIndex, name) { + $.fn[name] = function (target) { + var $element = nameIndex ? $(this.get().reverse()) : this; // 顺序和 jQuery 保持一致 + var $target = $(target); + var result = []; + $target.each(function (index, target) { + if (!target.parentNode) { + return; + } + $element.each(function (_, element) { + var newItem = index + ? element.cloneNode(true) + : element; + var existingItem = nameIndex ? target.nextSibling : target; + result.push(newItem); + target.parentNode.insertBefore(newItem, existingItem); + }); + }); + return $(nameIndex ? result.reverse() : result); + }; + }); + + /** + * 是否不是 HTML 字符串(包裹在 <> 中) + * @param target + */ + function isPlainText(target) { + return (isString(target) && (target[0] !== '<' || target[target.length - 1] !== '>')); + } + each(['before', 'after'], function (nameIndex, name) { + $.fn[name] = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + // after 方法,多个参数需要按参数顺序添加到元素后面,所以需要将参数顺序反向处理 + if (nameIndex === 1) { + args = args.reverse(); + } + return this.each(function (index, element) { + var targets = isFunction(args[0]) + ? [args[0].call(element, index, element.innerHTML)] + : args; + each(targets, function (_, target) { + var $target; + if (isPlainText(target)) { + $target = $(getChildNodesArray(target, 'div')); + } + else if (index && isElement(target)) { + $target = $(target.cloneNode(true)); + } + else { + $target = $(target); + } + $target[nameIndex ? 'insertAfter' : 'insertBefore'](element); + }); + }); + }; + }); + + $.fn.off = function (types, selector, callback) { + var this$1 = this; + + // types 是对象 + if (isObjectLike(types)) { + each(types, function (type, fn) { + // this.off('click', undefined, function () {}) + // this.off('click', '.box', function () {}) + this$1.off(type, selector, fn); + }); + return this; + } + // selector 不存在 + if (selector === false || isFunction(selector)) { + callback = selector; + selector = undefined; + // this.off('click', undefined, function () {}) + } + // callback 传入 `false`,相当于 `return false` + if (callback === false) { + callback = returnFalse; + } + return this.each(function () { + remove(this, types, callback, selector); + }); + }; + + $.fn.on = function (types, selector, data, callback, one) { + var this$1 = this; + + // types 可以是 type/func 对象 + if (isObjectLike(types)) { + // (types-Object, selector, data) + if (!isString(selector)) { + // (types-Object, data) + data = data || selector; + selector = undefined; + } + each(types, function (type, fn) { + // selector 和 data 都可能是 undefined + // @ts-ignore + this$1.on(type, selector, data, fn, one); + }); + return this; + } + if (data == null && callback == null) { + // (types, fn) + callback = selector; + data = selector = undefined; + } + else if (callback == null) { + if (isString(selector)) { + // (types, selector, fn) + callback = data; + data = undefined; + } + else { + // (types, data, fn) + callback = data; + data = selector; + selector = undefined; + } + } + if (callback === false) { + callback = returnFalse; + } + else if (!callback) { + return this; + } + // $().one() + if (one) { + // eslint-disable-next-line @typescript-eslint/no-this-alias + var _this = this; + var origCallback = callback; + callback = function (event) { + _this.off(event.type, selector, callback); + // eslint-disable-next-line prefer-rest-params + return origCallback.apply(this, arguments); + }; + } + return this.each(function () { + add(this, types, callback, data, selector); + }); + }; + + each(ajaxEvents, function (name, eventName) { + $.fn[name] = function (fn) { + return this.on(eventName, function (e, params) { + fn(e, params.xhr, params.options, params.data); + }); + }; + }); + + $.fn.map = function (callback) { + return new JQ(map(this, function (element, i) { return callback.call(element, i, element); })); + }; + + $.fn.clone = function () { + return this.map(function () { + return this.cloneNode(true); + }); + }; + + $.fn.is = function (selector) { + var isMatched = false; + if (isFunction(selector)) { + this.each(function (index, element) { + if (selector.call(element, index, element)) { + isMatched = true; + } + }); + return isMatched; + } + if (isString(selector)) { + this.each(function (_, element) { + if (isDocument(element) || isWindow(element)) { + return; + } + // @ts-ignore + var matches = element.matches || element.msMatchesSelector; + if (matches.call(element, selector)) { + isMatched = true; + } + }); + return isMatched; + } + var $compareWith = $(selector); + this.each(function (_, element) { + $compareWith.each(function (_, compare) { + if (element === compare) { + isMatched = true; + } + }); + }); + return isMatched; + }; + + $.fn.remove = function (selector) { + return this.each(function (_, element) { + if (element.parentNode && (!selector || $(element).is(selector))) { + element.parentNode.removeChild(element); + } + }); + }; + + each(['prepend', 'append'], function (nameIndex, name) { + $.fn[name] = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return this.each(function (index, element) { + var ref; + + var childNodes = element.childNodes; + var childLength = childNodes.length; + var child = childLength + ? childNodes[nameIndex ? childLength - 1 : 0] + : document.createElement('div'); + if (!childLength) { + element.appendChild(child); + } + var contents = isFunction(args[0]) + ? [args[0].call(element, index, element.innerHTML)] + : args; + // 如果不是字符串,则仅第一个元素使用原始元素,其他的都克隆自第一个元素 + if (index) { + contents = contents.map(function (content) { + return isString(content) ? content : $(content).clone(); + }); + } + (ref = $(child))[nameIndex ? 'after' : 'before'].apply(ref, contents); + if (!childLength) { + element.removeChild(child); + } + }); + }; + }); + + each(['appendTo', 'prependTo'], function (nameIndex, name) { + $.fn[name] = function (target) { + var extraChilds = []; + var $target = $(target).map(function (_, element) { + var childNodes = element.childNodes; + var childLength = childNodes.length; + if (childLength) { + return childNodes[nameIndex ? 0 : childLength - 1]; + } + var child = document.createElement('div'); + element.appendChild(child); + extraChilds.push(child); + return child; + }); + var $result = this[nameIndex ? 'insertBefore' : 'insertAfter']($target); + $(extraChilds).remove(); + return $result; + }; + }); + + each(['attr', 'prop', 'css'], function (nameIndex, name) { + function set(element, key, value) { + // 值为 undefined 时,不修改 + if (isUndefined(value)) { + return; + } + switch (nameIndex) { + // attr + case 0: + if (isNull(value)) { + element.removeAttribute(key); + } + else { + element.setAttribute(key, value); + } + break; + // prop + case 1: + // @ts-ignore + element[key] = value; + break; + // css + default: + key = toCamelCase(key); + // @ts-ignore + element.style[key] = isNumber(value) + ? ("" + value + (cssNumber.indexOf(key) > -1 ? '' : 'px')) + : value; + break; + } + } + function get(element, key) { + switch (nameIndex) { + // attr + case 0: + // 属性不存在时,原生 getAttribute 方法返回 null,而 jquery 返回 undefined。这里和 jquery 保持一致 + var value = element.getAttribute(key); + return isNull(value) ? undefined : value; + // prop + case 1: + // @ts-ignore + return element[key]; + // css + default: + return getStyle(element, key); + } + } + $.fn[name] = function (key, value) { + var this$1 = this; + + if (isObjectLike(key)) { + each(key, function (k, v) { + // @ts-ignore + this$1[name](k, v); + }); + return this; + } + if (arguments.length === 1) { + var element = this[0]; + return isElement(element) ? get(element, key) : undefined; + } + return this.each(function (i, element) { + set(element, key, isFunction(value) ? value.call(element, i, get(element, key)) : value); + }); + }; + }); + + $.fn.children = function (selector) { + var children = []; + this.each(function (_, element) { + each(element.childNodes, function (__, childNode) { + if (!isElement(childNode)) { + return; + } + if (!selector || $(childNode).is(selector)) { + children.push(childNode); + } + }); + }); + return new JQ(unique(children)); + }; + + $.fn.slice = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return new JQ([].slice.apply(this, args)); + }; + + $.fn.eq = function (index) { + var ret = index === -1 ? this.slice(index) : this.slice(index, +index + 1); + return new JQ(ret); + }; + + function dir($elements, nameIndex, node, selector, filter) { + var ret = []; + var target; + $elements.each(function (_, element) { + target = element[node]; + // 不能包含最顶层的 document 元素 + while (target && isElement(target)) { + // prevUntil, nextUntil, parentsUntil + if (nameIndex === 2) { + if (selector && $(target).is(selector)) { + break; + } + if (!filter || $(target).is(filter)) { + ret.push(target); + } + } + // prev, next, parent + else if (nameIndex === 0) { + if (!selector || $(target).is(selector)) { + ret.push(target); + } + break; + } + // prevAll, nextAll, parents + else { + if (!selector || $(target).is(selector)) { + ret.push(target); + } + } + // @ts-ignore + target = target[node]; + } + }); + return new JQ(unique(ret)); + } + + each(['', 's', 'sUntil'], function (nameIndex, name) { + $.fn[("parent" + name)] = function (selector, filter) { + // parents、parentsUntil 需要把元素的顺序反向处理,以便和 jQuery 的结果一致 + var $nodes = !nameIndex ? this : $(this.get().reverse()); + return dir($nodes, nameIndex, 'parentNode', selector, filter); + }; + }); + + $.fn.closest = function (selector) { + if (this.is(selector)) { + return this; + } + var matched = []; + this.parents().each(function (_, element) { + if ($(element).is(selector)) { + matched.push(element); + return false; + } + }); + return new JQ(matched); + }; + + var rbrace = /^(?:{[\w\W]*\}|\[[\w\W]*\])$/; + // 从 `data-*` 中获取的值,需要经过该函数转换 + function getData(value) { + if (value === 'true') { + return true; + } + if (value === 'false') { + return false; + } + if (value === 'null') { + return null; + } + if (value === +value + '') { + return +value; + } + if (rbrace.test(value)) { + return JSON.parse(value); + } + return value; + } + // 若 value 不存在,则从 `data-*` 中获取值 + function dataAttr(element, key, value) { + if (isUndefined(value) && element.nodeType === 1) { + var name = 'data-' + toKebabCase(key); + value = element.getAttribute(name); + if (isString(value)) { + try { + value = getData(value); + } + catch (e) { } + } + else { + value = undefined; + } + } + return value; + } + $.fn.data = function (key, value) { + // 获取所有值 + if (isUndefined(key)) { + if (!this.length) { + return undefined; + } + var element = this[0]; + var resultData = data(element); + // window, document 上不存在 `data-*` 属性 + if (element.nodeType !== 1) { + return resultData; + } + // 从 `data-*` 中获取值 + var attrs = element.attributes; + var i = attrs.length; + while (i--) { + if (attrs[i]) { + var name = attrs[i].name; + if (name.indexOf('data-') === 0) { + name = toCamelCase(name.slice(5)); + resultData[name] = dataAttr(element, name, resultData[name]); + } + } + } + return resultData; + } + // 同时设置多个值 + if (isObjectLike(key)) { + return this.each(function () { + data(this, key); + }); + } + // value 传入了 undefined + if (arguments.length === 2 && isUndefined(value)) { + return this; + } + // 设置值 + if (!isUndefined(value)) { + return this.each(function () { + data(this, key, value); + }); + } + // 获取值 + if (!this.length) { + return undefined; + } + return dataAttr(this[0], key, data(this[0], key)); + }; + + $.fn.empty = function () { + return this.each(function () { + this.innerHTML = ''; + }); + }; + + $.fn.extend = function (obj) { + each(obj, function (prop, value) { + // 在 JQ 对象上扩展方法时,需要自己添加 typescript 的类型定义 + $.fn[prop] = value; + }); + return this; + }; + + $.fn.filter = function (selector) { + if (isFunction(selector)) { + return this.map(function (index, element) { return selector.call(element, index, element) ? element : undefined; }); + } + if (isString(selector)) { + return this.map(function (_, element) { return $(element).is(selector) ? element : undefined; }); + } + var $selector = $(selector); + return this.map(function (_, element) { return $selector.get().indexOf(element) > -1 ? element : undefined; }); + }; + + $.fn.first = function () { + return this.eq(0); + }; + + $.fn.has = function (selector) { + var $targets = isString(selector) ? this.find(selector) : $(selector); + var length = $targets.length; + return this.map(function () { + for (var i = 0; i < length; i += 1) { + if (contains(this, $targets[i])) { + return this; + } + } + return; + }); + }; + + $.fn.hasClass = function (className) { + return this[0].classList.contains(className); + }; + + /** + * 值上面的 padding、border、margin 处理 + * @param element + * @param name + * @param value + * @param funcIndex + * @param includeMargin + * @param multiply + */ + function handleExtraWidth(element, name, value, funcIndex, includeMargin, multiply) { + // 获取元素的 padding, border, margin 宽度(两侧宽度的和) + var getExtraWidthValue = function (extra) { + return (getExtraWidth(element, name.toLowerCase(), extra) * + multiply); + }; + if (funcIndex === 2 && includeMargin) { + value += getExtraWidthValue('margin'); + } + if (isBorderBox(element)) { + // IE 为 box-sizing: border-box 时,得到的值不含 border 和 padding,这里先修复 + // 仅获取时需要处理,multiply === 1 为 get + if (isIE() && multiply === 1) { + value += getExtraWidthValue('border'); + value += getExtraWidthValue('padding'); + } + if (funcIndex === 0) { + value -= getExtraWidthValue('border'); + } + if (funcIndex === 1) { + value -= getExtraWidthValue('border'); + value -= getExtraWidthValue('padding'); + } + } + else { + if (funcIndex === 0) { + value += getExtraWidthValue('padding'); + } + if (funcIndex === 2) { + value += getExtraWidthValue('border'); + value += getExtraWidthValue('padding'); + } + } + return value; + } + /** + * 获取元素的样式值 + * @param element + * @param name + * @param funcIndex 0: innerWidth, innerHeight; 1: width, height; 2: outerWidth, outerHeight + * @param includeMargin + */ + function get(element, name, funcIndex, includeMargin) { + var clientProp = "client" + name; + var scrollProp = "scroll" + name; + var offsetProp = "offset" + name; + var innerProp = "inner" + name; + // $(window).width() + if (isWindow(element)) { + // outerWidth, outerHeight 需要包含滚动条的宽度 + return funcIndex === 2 + ? element[innerProp] + : toElement(document)[clientProp]; + } + // $(document).width() + if (isDocument(element)) { + var doc = toElement(element); + return Math.max( + // @ts-ignore + element.body[scrollProp], doc[scrollProp], + // @ts-ignore + element.body[offsetProp], doc[offsetProp], doc[clientProp]); + } + var value = parseFloat(getComputedStyleValue(element, name.toLowerCase()) || '0'); + return handleExtraWidth(element, name, value, funcIndex, includeMargin, 1); + } + /** + * 设置元素的样式值 + * @param element + * @param elementIndex + * @param name + * @param funcIndex 0: innerWidth, innerHeight; 1: width, height; 2: outerWidth, outerHeight + * @param includeMargin + * @param value + */ + function set(element, elementIndex, name, funcIndex, includeMargin, value) { + var computedValue = isFunction(value) + ? value.call(element, elementIndex, get(element, name, funcIndex, includeMargin)) + : value; + if (computedValue == null) { + return; + } + var $element = $(element); + var dimension = name.toLowerCase(); + // 特殊的值,不需要计算 padding、border、margin + if (['auto', 'inherit', ''].indexOf(computedValue) > -1) { + $element.css(dimension, computedValue); + return; + } + // 其他值保留原始单位。注意:如果不使用 px 作为单位,则算出的值一般是不准确的 + var suffix = computedValue.toString().replace(/\b[0-9.]*/, ''); + var numerical = parseFloat(computedValue); + computedValue = + handleExtraWidth(element, name, numerical, funcIndex, includeMargin, -1) + + (suffix || 'px'); + $element.css(dimension, computedValue); + } + each(['Width', 'Height'], function (_, name) { + each([("inner" + name), name.toLowerCase(), ("outer" + name)], function (funcIndex, funcName) { + $.fn[funcName] = function (margin, value) { + // 是否是赋值操作 + var isSet = arguments.length && (funcIndex < 2 || !isBoolean(margin)); + var includeMargin = margin === true || value === true; + // 获取第一个元素的值 + if (!isSet) { + return this.length + ? get(this[0], name, funcIndex, includeMargin) + : undefined; + } + // 设置每个元素的值 + return this.each(function (index, element) { return set(element, index, name, funcIndex, includeMargin, margin); }); + }; + }); + }); + + $.fn.hide = function () { + return this.each(function () { + this.style.display = 'none'; + }); + }; + + each(['val', 'html', 'text'], function (nameIndex, name) { + var props = { + 0: 'value', + 1: 'innerHTML', + 2: 'textContent', + }; + var propName = props[nameIndex]; + function get($elements) { + // text() 获取所有元素的文本 + if (nameIndex === 2) { + // @ts-ignore + return map($elements, function (element) { return toElement(element)[propName]; }).join(''); + } + // 空集合时,val() 和 html() 返回 undefined + if (!$elements.length) { + return undefined; + } + // val() 和 html() 仅获取第一个元素的内容 + var firstElement = $elements[0]; + // select multiple 返回数组 + if (nameIndex === 0 && $(firstElement).is('select[multiple]')) { + return map($(firstElement).find('option:checked'), function (element) { return element.value; }); + } + // @ts-ignore + return firstElement[propName]; + } + function set(element, value) { + // text() 和 html() 赋值为 undefined,则保持原内容不变 + // val() 赋值为 undefined 则赋值为空 + if (isUndefined(value)) { + if (nameIndex !== 0) { + return; + } + value = ''; + } + if (nameIndex === 1 && isElement(value)) { + value = value.outerHTML; + } + // @ts-ignore + element[propName] = value; + } + $.fn[name] = function (value) { + // 获取值 + if (!arguments.length) { + return get(this); + } + // 设置值 + return this.each(function (i, element) { + var computedValue = isFunction(value) + ? value.call(element, i, get($(element))) + : value; + // value 是数组,则选中数组中的元素,反选不在数组中的元素 + if (nameIndex === 0 && Array.isArray(computedValue)) { + // select[multiple] + if ($(element).is('select[multiple]')) { + map($(element).find('option'), function (option) { return (option.selected = + computedValue.indexOf(option.value) > + -1); }); + } + // 其他 checkbox, radio 等元素 + else { + element.checked = + computedValue.indexOf(element.value) > -1; + } + } + else { + set(element, computedValue); + } + }); + }; + }); + + $.fn.index = function (selector) { + if (!arguments.length) { + return this.eq(0).parent().children().get().indexOf(this[0]); + } + if (isString(selector)) { + return $(selector).get().indexOf(this[0]); + } + return this.get().indexOf($(selector)[0]); + }; + + $.fn.last = function () { + return this.eq(-1); + }; + + each(['', 'All', 'Until'], function (nameIndex, name) { + $.fn[("next" + name)] = function (selector, filter) { + return dir(this, nameIndex, 'nextElementSibling', selector, filter); + }; + }); + + $.fn.not = function (selector) { + var $excludes = this.filter(selector); + return this.map(function (_, element) { return $excludes.index(element) > -1 ? undefined : element; }); + }; + + /** + * 返回最近的用于定位的父元素 + */ + $.fn.offsetParent = function () { + return this.map(function () { + var offsetParent = this.offsetParent; + while (offsetParent && $(offsetParent).css('position') === 'static') { + offsetParent = offsetParent.offsetParent; + } + return offsetParent || document.documentElement; + }); + }; + + function floatStyle($element, name) { + return parseFloat($element.css(name)); + } + $.fn.position = function () { + if (!this.length) { + return undefined; + } + var $element = this.eq(0); + var currentOffset; + var parentOffset = { + left: 0, + top: 0, + }; + if ($element.css('position') === 'fixed') { + currentOffset = $element[0].getBoundingClientRect(); + } + else { + currentOffset = $element.offset(); + var $offsetParent = $element.offsetParent(); + parentOffset = $offsetParent.offset(); + parentOffset.top += floatStyle($offsetParent, 'border-top-width'); + parentOffset.left += floatStyle($offsetParent, 'border-left-width'); + } + return { + top: currentOffset.top - parentOffset.top - floatStyle($element, 'margin-top'), + left: currentOffset.left - + parentOffset.left - + floatStyle($element, 'margin-left'), + }; + }; + + function get$1(element) { + if (!element.getClientRects().length) { + return { top: 0, left: 0 }; + } + var rect = element.getBoundingClientRect(); + var win = element.ownerDocument.defaultView; + return { + top: rect.top + win.pageYOffset, + left: rect.left + win.pageXOffset, + }; + } + function set$1(element, value, index) { + var $element = $(element); + var position = $element.css('position'); + if (position === 'static') { + $element.css('position', 'relative'); + } + var currentOffset = get$1(element); + var currentTopString = $element.css('top'); + var currentLeftString = $element.css('left'); + var currentTop; + var currentLeft; + var calculatePosition = (position === 'absolute' || position === 'fixed') && + (currentTopString + currentLeftString).indexOf('auto') > -1; + if (calculatePosition) { + var currentPosition = $element.position(); + currentTop = currentPosition.top; + currentLeft = currentPosition.left; + } + else { + currentTop = parseFloat(currentTopString); + currentLeft = parseFloat(currentLeftString); + } + var computedValue = isFunction(value) + ? value.call(element, index, extend({}, currentOffset)) + : value; + $element.css({ + top: computedValue.top != null + ? computedValue.top - currentOffset.top + currentTop + : undefined, + left: computedValue.left != null + ? computedValue.left - currentOffset.left + currentLeft + : undefined, + }); + } + $.fn.offset = function (value) { + // 获取坐标 + if (!arguments.length) { + if (!this.length) { + return undefined; + } + return get$1(this[0]); + } + // 设置坐标 + return this.each(function (index) { + set$1(this, value, index); + }); + }; + + $.fn.one = function (types, selector, data, callback) { + // @ts-ignore + return this.on(types, selector, data, callback, true); + }; + + each(['', 'All', 'Until'], function (nameIndex, name) { + $.fn[("prev" + name)] = function (selector, filter) { + // prevAll、prevUntil 需要把元素的顺序倒序处理,以便和 jQuery 的结果一致 + var $nodes = !nameIndex ? this : $(this.get().reverse()); + return dir($nodes, nameIndex, 'previousElementSibling', selector, filter); + }; + }); + + $.fn.removeAttr = function (attributeName) { + var names = attributeName.split(' ').filter(function (name) { return name; }); + return this.each(function () { + var this$1 = this; + + each(names, function (_, name) { + this$1.removeAttribute(name); + }); + }); + }; + + $.fn.removeData = function (name) { + return this.each(function () { + removeData(this, name); + }); + }; + + $.fn.removeProp = function (name) { + return this.each(function () { + try { + // @ts-ignore + delete this[name]; + } + catch (e) { } + }); + }; + + $.fn.replaceWith = function (newContent) { + this.each(function (index, element) { + var content = newContent; + if (isFunction(content)) { + content = content.call(element, index, element.innerHTML); + } + else if (index && !isString(content)) { + content = $(content).clone(); + } + $(element).before(content); + }); + return this.remove(); + }; + + $.fn.replaceAll = function (target) { + var this$1 = this; + + return $(target).map(function (index, element) { + $(element).replaceWith(index ? this$1.clone() : this$1); + return this$1.get(); + }); + }; + + /** + * 将表单元素的值组合成键值对数组 + * @returns {Array} + */ + $.fn.serializeArray = function () { + var result = []; + this.each(function (_, element) { + var elements = element instanceof HTMLFormElement ? element.elements : [element]; + $(elements).each(function (_, element) { + var $element = $(element); + var type = element.type; + var nodeName = element.nodeName.toLowerCase(); + if (nodeName !== 'fieldset' && + element.name && + !element.disabled && + ['input', 'select', 'textarea', 'keygen'].indexOf(nodeName) > -1 && + ['submit', 'button', 'image', 'reset', 'file'].indexOf(type) === -1 && + (['radio', 'checkbox'].indexOf(type) === -1 || + element.checked)) { + var value = $element.val(); + var valueArr = Array.isArray(value) ? value : [value]; + valueArr.forEach(function (value) { + result.push({ + name: element.name, + value: value, + }); + }); + } + }); + }); + return result; + }; + + $.fn.serialize = function () { + return param(this.serializeArray()); + }; + + var elementDisplay = {}; + /** + * 获取元素的初始 display 值,用于 .show() 方法 + * @param nodeName + */ + function defaultDisplay(nodeName) { + var element; + var display; + if (!elementDisplay[nodeName]) { + element = document.createElement(nodeName); + document.body.appendChild(element); + display = getStyle(element, 'display'); + element.parentNode.removeChild(element); + if (display === 'none') { + display = 'block'; + } + elementDisplay[nodeName] = display; + } + return elementDisplay[nodeName]; + } + /** + * 显示指定元素 + * @returns {JQ} + */ + $.fn.show = function () { + return this.each(function () { + if (this.style.display === 'none') { + this.style.display = ''; + } + if (getStyle(this, 'display') === 'none') { + this.style.display = defaultDisplay(this.nodeName); + } + }); + }; + + /** + * 取得同辈元素的集合 + * @param selector {String=} + * @returns {JQ} + */ + $.fn.siblings = function (selector) { + return this.prevAll(selector).add(this.nextAll(selector)); + }; + + /** + * 切换元素的显示状态 + */ + $.fn.toggle = function () { + return this.each(function () { + getStyle(this, 'display') === 'none' ? $(this).show() : $(this).hide(); + }); + }; + + $.fn.reflow = function () { + return this.each(function () { + return this.clientLeft; + }); + }; + + $.fn.transition = function (duration) { + if (isNumber(duration)) { + duration = duration + "ms"; + } + return this.each(function () { + this.style.webkitTransitionDuration = duration; + this.style.transitionDuration = duration; + }); + }; + + $.fn.transitionEnd = function (callback) { + // eslint-disable-next-line @typescript-eslint/no-this-alias + var that = this; + var events = ['webkitTransitionEnd', 'transitionend']; + function fireCallback(e) { + if (e.target !== this) { + return; + } + // @ts-ignore + callback.call(this, e); + each(events, function (_, event) { + that.off(event, fireCallback); + }); + } + each(events, function (_, event) { + that.on(event, fireCallback); + }); + return this; + }; + + $.fn.transformOrigin = function (transformOrigin) { + return this.each(function () { + this.style.webkitTransformOrigin = transformOrigin; + this.style.transformOrigin = transformOrigin; + }); + }; + + $.fn.transform = function (transform) { + return this.each(function () { + this.style.webkitTransform = transform; + this.style.transform = transform; + }); + }; + + /** + * CSS 选择器和初始化函数组成的对象 + */ + var entries = {}; + /** + * 注册并执行初始化函数 + * @param selector CSS 选择器 + * @param apiInit 初始化函数 + * @param i 元素索引 + * @param element 元素 + */ + function mutation(selector, apiInit, i, element) { + var selectors = data(element, '_mdui_mutation'); + if (!selectors) { + selectors = []; + data(element, '_mdui_mutation', selectors); + } + if (selectors.indexOf(selector) === -1) { + selectors.push(selector); + apiInit.call(element, i, element); + } + } + + $.fn.mutation = function () { + return this.each(function (i, element) { + var $this = $(element); + each(entries, function (selector, apiInit) { + if ($this.is(selector)) { + mutation(selector, apiInit, i, element); + } + $this.find(selector).each(function (i, element) { + mutation(selector, apiInit, i, element); + }); + }); + }); + }; + + $.showOverlay = function (zIndex) { + var $overlay = $('.mdui-overlay'); + if ($overlay.length) { + $overlay.data('_overlay_is_deleted', false); + if (!isUndefined(zIndex)) { + $overlay.css('z-index', zIndex); + } + } + else { + if (isUndefined(zIndex)) { + zIndex = 2000; + } + $overlay = $('
          ') + .appendTo(document.body) + .reflow() + .css('z-index', zIndex); + } + var level = $overlay.data('_overlay_level') || 0; + return $overlay.data('_overlay_level', ++level).addClass('mdui-overlay-show'); + }; + + $.hideOverlay = function (force) { + if ( force === void 0 ) force = false; + + var $overlay = $('.mdui-overlay'); + if (!$overlay.length) { + return; + } + var level = force ? 1 : $overlay.data('_overlay_level'); + if (level > 1) { + $overlay.data('_overlay_level', --level); + return; + } + $overlay + .data('_overlay_level', 0) + .removeClass('mdui-overlay-show') + .data('_overlay_is_deleted', true) + .transitionEnd(function () { + if ($overlay.data('_overlay_is_deleted')) { + $overlay.remove(); + } + }); + }; + + $.lockScreen = function () { + var $body = $('body'); + // 不直接把 body 设为 box-sizing: border-box,避免污染全局样式 + var newBodyWidth = $body.width(); + var level = $body.data('_lockscreen_level') || 0; + $body + .addClass('mdui-locked') + .width(newBodyWidth) + .data('_lockscreen_level', ++level); + }; + + $.unlockScreen = function (force) { + if ( force === void 0 ) force = false; + + var $body = $('body'); + var level = force ? 1 : $body.data('_lockscreen_level'); + if (level > 1) { + $body.data('_lockscreen_level', --level); + return; + } + $body.data('_lockscreen_level', 0).removeClass('mdui-locked').width(''); + }; + + $.throttle = function (fn, delay) { + if ( delay === void 0 ) delay = 16; + + var timer = null; + return function () { + var this$1 = this; + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + if (isNull(timer)) { + timer = setTimeout(function () { + fn.apply(this$1, args); + timer = null; + }, delay); + } + }; + }; + + var GUID = {}; + $.guid = function (name) { + if (!isUndefined(name) && !isUndefined(GUID[name])) { + return GUID[name]; + } + function s4() { + return Math.floor((1 + Math.random()) * 0x10000) + .toString(16) + .substring(1); + } + var guid = '_' + + s4() + + s4() + + '-' + + s4() + + '-' + + s4() + + '-' + + s4() + + '-' + + s4() + + s4() + + s4(); + if (!isUndefined(name)) { + GUID[name] = guid; + } + return guid; + }; + + mdui.mutation = function (selector, apiInit) { + if (isUndefined(selector) || isUndefined(apiInit)) { + $(document).mutation(); + return; + } + entries[selector] = apiInit; + $(selector).each(function (i, element) { return mutation(selector, apiInit, i, element); }); + }; + + /** + * 触发组件上的事件 + * @param eventName 事件名 + * @param componentName 组件名 + * @param target 在该元素上触发事件 + * @param instance 组件实例 + * @param parameters 事件参数 + */ + function componentEvent(eventName, componentName, target, instance, parameters) { + if (!parameters) { + parameters = {}; + } + // @ts-ignore + parameters.inst = instance; + var fullEventName = eventName + ".mdui." + componentName; + // jQuery 事件 + // @ts-ignore + if (typeof jQuery !== 'undefined') { + // @ts-ignore + jQuery(target).trigger(fullEventName, parameters); + } + var $target = $(target); + // mdui.jq 事件 + $target.trigger(fullEventName, parameters); + var eventParams = { + bubbles: true, + cancelable: true, + detail: parameters, + }; + var eventObject = new CustomEvent(fullEventName, eventParams); + // @ts-ignore + eventObject._detail = parameters; + $target[0].dispatchEvent(eventObject); + } + + var $document = $(document); + var $window = $(window); + var $body = $('body'); + + var DEFAULT_OPTIONS = { + tolerance: 5, + offset: 0, + initialClass: 'mdui-headroom', + pinnedClass: 'mdui-headroom-pinned-top', + unpinnedClass: 'mdui-headroom-unpinned-top', + }; + var Headroom = function Headroom(selector, options) { + if ( options === void 0 ) options = {}; + + /** + * 配置参数 + */ + this.options = extend({}, DEFAULT_OPTIONS); + /** + * 当前 headroom 的状态 + */ + this.state = 'pinned'; + /** + * 当前是否启用 + */ + this.isEnable = false; + /** + * 上次滚动后,垂直方向的距离 + */ + this.lastScrollY = 0; + /** + * AnimationFrame ID + */ + this.rafId = 0; + this.$element = $(selector).first(); + extend(this.options, options); + // tolerance 参数若为数值,转换为对象 + var tolerance = this.options.tolerance; + if (isNumber(tolerance)) { + this.options.tolerance = { + down: tolerance, + up: tolerance, + }; + } + this.enable(); + }; + /** + * 滚动时的处理 + */ + Headroom.prototype.onScroll = function onScroll () { + var this$1 = this; + + this.rafId = window.requestAnimationFrame(function () { + var currentScrollY = window.pageYOffset; + var direction = currentScrollY > this$1.lastScrollY ? 'down' : 'up'; + var tolerance = this$1.options.tolerance[direction]; + var scrolled = Math.abs(currentScrollY - this$1.lastScrollY); + var toleranceExceeded = scrolled >= tolerance; + if (currentScrollY > this$1.lastScrollY && + currentScrollY >= this$1.options.offset && + toleranceExceeded) { + this$1.unpin(); + } + else if ((currentScrollY < this$1.lastScrollY && toleranceExceeded) || + currentScrollY <= this$1.options.offset) { + this$1.pin(); + } + this$1.lastScrollY = currentScrollY; + }); + }; + /** + * 触发组件事件 + * @param name + */ + Headroom.prototype.triggerEvent = function triggerEvent (name) { + componentEvent(name, 'headroom', this.$element, this); + }; + /** + * 动画结束的回调 + */ + Headroom.prototype.transitionEnd = function transitionEnd () { + if (this.state === 'pinning') { + this.state = 'pinned'; + this.triggerEvent('pinned'); + } + if (this.state === 'unpinning') { + this.state = 'unpinned'; + this.triggerEvent('unpinned'); + } + }; + /** + * 使元素固定住 + */ + Headroom.prototype.pin = function pin () { + var this$1 = this; + + if (this.state === 'pinning' || + this.state === 'pinned' || + !this.$element.hasClass(this.options.initialClass)) { + return; + } + this.triggerEvent('pin'); + this.state = 'pinning'; + this.$element + .removeClass(this.options.unpinnedClass) + .addClass(this.options.pinnedClass) + .transitionEnd(function () { return this$1.transitionEnd(); }); + }; + /** + * 使元素隐藏 + */ + Headroom.prototype.unpin = function unpin () { + var this$1 = this; + + if (this.state === 'unpinning' || + this.state === 'unpinned' || + !this.$element.hasClass(this.options.initialClass)) { + return; + } + this.triggerEvent('unpin'); + this.state = 'unpinning'; + this.$element + .removeClass(this.options.pinnedClass) + .addClass(this.options.unpinnedClass) + .transitionEnd(function () { return this$1.transitionEnd(); }); + }; + /** + * 启用 headroom 插件 + */ + Headroom.prototype.enable = function enable () { + var this$1 = this; + + if (this.isEnable) { + return; + } + this.isEnable = true; + this.state = 'pinned'; + this.$element + .addClass(this.options.initialClass) + .removeClass(this.options.pinnedClass) + .removeClass(this.options.unpinnedClass); + this.lastScrollY = window.pageYOffset; + $window.on('scroll', function () { return this$1.onScroll(); }); + }; + /** + * 禁用 headroom 插件 + */ + Headroom.prototype.disable = function disable () { + var this$1 = this; + + if (!this.isEnable) { + return; + } + this.isEnable = false; + this.$element + .removeClass(this.options.initialClass) + .removeClass(this.options.pinnedClass) + .removeClass(this.options.unpinnedClass); + $window.off('scroll', function () { return this$1.onScroll(); }); + window.cancelAnimationFrame(this.rafId); + }; + /** + * 获取当前状态。共包含四种状态:`pinning`、`pinned`、`unpinning`、`unpinned` + */ + Headroom.prototype.getState = function getState () { + return this.state; + }; + mdui.Headroom = Headroom; + + /** + * 解析 DATA API 参数 + * @param element 元素 + * @param name 属性名 + */ + function parseOptions(element, name) { + var attr = $(element).attr(name); + if (!attr) { + return {}; + } + return new Function('', ("var json = " + attr + "; return JSON.parse(JSON.stringify(json));"))(); + } + + var customAttr = 'mdui-headroom'; + $(function () { + mdui.mutation(("[" + customAttr + "]"), function () { + new mdui.Headroom(this, parseOptions(this, customAttr)); + }); + }); + + var DEFAULT_OPTIONS$1 = { + accordion: false, + }; + var CollapseAbstract = function CollapseAbstract(selector, options) { + if ( options === void 0 ) options = {}; + + /** + * 配置参数 + */ + this.options = extend({}, DEFAULT_OPTIONS$1); + // CSS 类名 + var classPrefix = "mdui-" + (this.getNamespace()) + "-item"; + this.classItem = classPrefix; + this.classItemOpen = classPrefix + "-open"; + this.classHeader = classPrefix + "-header"; + this.classBody = classPrefix + "-body"; + this.$element = $(selector).first(); + extend(this.options, options); + this.bindEvent(); + }; + /** + * 绑定事件 + */ + CollapseAbstract.prototype.bindEvent = function bindEvent () { + // eslint-disable-next-line @typescript-eslint/no-this-alias + var that = this; + // 点击 header 时,打开/关闭 item + this.$element.on('click', ("." + (this.classHeader)), function () { + var $header = $(this); + var $item = $header.parent(); + var $items = that.getItems(); + $items.each(function (_, item) { + if ($item.is(item)) { + that.toggle(item); + } + }); + }); + // 点击关闭按钮时,关闭 item + this.$element.on('click', ("[mdui-" + (this.getNamespace()) + "-item-close]"), function () { + var $target = $(this); + var $item = $target.parents(("." + (that.classItem))).first(); + that.close($item); + }); + }; + /** + * 指定 item 是否处于打开状态 + * @param $item + */ + CollapseAbstract.prototype.isOpen = function isOpen ($item) { + return $item.hasClass(this.classItemOpen); + }; + /** + * 获取所有 item + */ + CollapseAbstract.prototype.getItems = function getItems () { + return this.$element.children(("." + (this.classItem))); + }; + /** + * 获取指定 item + * @param item + */ + CollapseAbstract.prototype.getItem = function getItem (item) { + if (isNumber(item)) { + return this.getItems().eq(item); + } + return $(item).first(); + }; + /** + * 触发组件事件 + * @param name 事件名 + * @param $item 事件触发的目标 item + */ + CollapseAbstract.prototype.triggerEvent = function triggerEvent (name, $item) { + componentEvent(name, this.getNamespace(), $item, this); + }; + /** + * 动画结束回调 + * @param $content body 元素 + * @param $item item 元素 + */ + CollapseAbstract.prototype.transitionEnd = function transitionEnd ($content, $item) { + if (this.isOpen($item)) { + $content.transition(0).height('auto').reflow().transition(''); + this.triggerEvent('opened', $item); + } + else { + $content.height(''); + this.triggerEvent('closed', $item); + } + }; + /** + * 打开指定面板项 + * @param item 面板项的索引号、或 CSS 选择器、或 DOM 元素、或 JQ 对象 + */ + CollapseAbstract.prototype.open = function open (item) { + var this$1 = this; + + var $item = this.getItem(item); + if (this.isOpen($item)) { + return; + } + // 关闭其他项 + if (this.options.accordion) { + this.$element.children(("." + (this.classItemOpen))).each(function (_, element) { + var $element = $(element); + if (!$element.is($item)) { + this$1.close($element); + } + }); + } + var $content = $item.children(("." + (this.classBody))); + $content + .height($content[0].scrollHeight) + .transitionEnd(function () { return this$1.transitionEnd($content, $item); }); + this.triggerEvent('open', $item); + $item.addClass(this.classItemOpen); + }; + /** + * 关闭指定面板项 + * @param item 面板项的索引号、或 CSS 选择器、或 DOM 元素、或 JQ 对象 + */ + CollapseAbstract.prototype.close = function close (item) { + var this$1 = this; + + var $item = this.getItem(item); + if (!this.isOpen($item)) { + return; + } + var $content = $item.children(("." + (this.classBody))); + this.triggerEvent('close', $item); + $item.removeClass(this.classItemOpen); + $content + .transition(0) + .height($content[0].scrollHeight) + .reflow() + .transition('') + .height('') + .transitionEnd(function () { return this$1.transitionEnd($content, $item); }); + }; + /** + * 切换指定面板项的打开状态 + * @param item 面板项的索引号、或 CSS 选择器、或 DOM 元素、或 JQ 对象 + */ + CollapseAbstract.prototype.toggle = function toggle (item) { + var $item = this.getItem(item); + this.isOpen($item) ? this.close($item) : this.open($item); + }; + /** + * 打开所有面板项 + */ + CollapseAbstract.prototype.openAll = function openAll () { + var this$1 = this; + + this.getItems().each(function (_, element) { return this$1.open(element); }); + }; + /** + * 关闭所有面板项 + */ + CollapseAbstract.prototype.closeAll = function closeAll () { + var this$1 = this; + + this.getItems().each(function (_, element) { return this$1.close(element); }); + }; + + var Collapse = /*@__PURE__*/(function (CollapseAbstract) { + function Collapse () { + CollapseAbstract.apply(this, arguments); + } + + if ( CollapseAbstract ) Collapse.__proto__ = CollapseAbstract; + Collapse.prototype = Object.create( CollapseAbstract && CollapseAbstract.prototype ); + Collapse.prototype.constructor = Collapse; + + Collapse.prototype.getNamespace = function getNamespace () { + return 'collapse'; + }; + + return Collapse; + }(CollapseAbstract)); + mdui.Collapse = Collapse; + + var customAttr$1 = 'mdui-collapse'; + $(function () { + mdui.mutation(("[" + customAttr$1 + "]"), function () { + new mdui.Collapse(this, parseOptions(this, customAttr$1)); + }); + }); + + var Panel = /*@__PURE__*/(function (CollapseAbstract) { + function Panel () { + CollapseAbstract.apply(this, arguments); + } + + if ( CollapseAbstract ) Panel.__proto__ = CollapseAbstract; + Panel.prototype = Object.create( CollapseAbstract && CollapseAbstract.prototype ); + Panel.prototype.constructor = Panel; + + Panel.prototype.getNamespace = function getNamespace () { + return 'panel'; + }; + + return Panel; + }(CollapseAbstract)); + mdui.Panel = Panel; + + var customAttr$2 = 'mdui-panel'; + $(function () { + mdui.mutation(("[" + customAttr$2 + "]"), function () { + new mdui.Panel(this, parseOptions(this, customAttr$2)); + }); + }); + + var Table = function Table(selector) { + /** + * 表头 tr 元素 + */ + this.$thRow = $(); + /** + * 表格 body 中的 tr 元素 + */ + this.$tdRows = $(); + /** + * 表头的 checkbox 元素 + */ + this.$thCheckbox = $(); + /** + * 表格 body 中的 checkbox 元素 + */ + this.$tdCheckboxs = $(); + /** + * 表格行是否可选择 + */ + this.selectable = false; + /** + * 已选中的行数 + */ + this.selectedRow = 0; + this.$element = $(selector).first(); + this.init(); + }; + /** + * 初始化表格 + */ + Table.prototype.init = function init () { + this.$thRow = this.$element.find('thead tr'); + this.$tdRows = this.$element.find('tbody tr'); + this.selectable = this.$element.hasClass('mdui-table-selectable'); + this.updateThCheckbox(); + this.updateTdCheckbox(); + this.updateNumericCol(); + }; + /** + * 生成 checkbox 的 HTML 结构 + * @param tag 标签名 + */ + Table.prototype.createCheckboxHTML = function createCheckboxHTML (tag) { + return ("<" + tag + " class=\"mdui-table-cell-checkbox\">" + + '' + + ""); + }; + /** + * 更新表头 checkbox 的状态 + */ + Table.prototype.updateThCheckboxStatus = function updateThCheckboxStatus () { + var checkbox = this.$thCheckbox[0]; + var selectedRow = this.selectedRow; + var tdRowsLength = this.$tdRows.length; + checkbox.checked = selectedRow === tdRowsLength; + checkbox.indeterminate = !!selectedRow && selectedRow !== tdRowsLength; + }; + /** + * 更新表格行的 checkbox + */ + Table.prototype.updateTdCheckbox = function updateTdCheckbox () { + var this$1 = this; + + var rowSelectedClass = 'mdui-table-row-selected'; + this.$tdRows.each(function (_, row) { + var $row = $(row); + // 移除旧的 checkbox + $row.find('.mdui-table-cell-checkbox').remove(); + if (!this$1.selectable) { + return; + } + // 创建 DOM + var $checkbox = $(this$1.createCheckboxHTML('td')) + .prependTo($row) + .find('input[type="checkbox"]'); + // 默认选中的行 + if ($row.hasClass(rowSelectedClass)) { + $checkbox[0].checked = true; + this$1.selectedRow++; + } + this$1.updateThCheckboxStatus(); + // 绑定事件 + $checkbox.on('change', function () { + if ($checkbox[0].checked) { + $row.addClass(rowSelectedClass); + this$1.selectedRow++; + } + else { + $row.removeClass(rowSelectedClass); + this$1.selectedRow--; + } + this$1.updateThCheckboxStatus(); + }); + this$1.$tdCheckboxs = this$1.$tdCheckboxs.add($checkbox); + }); + }; + /** + * 更新表头的 checkbox + */ + Table.prototype.updateThCheckbox = function updateThCheckbox () { + var this$1 = this; + + // 移除旧的 checkbox + this.$thRow.find('.mdui-table-cell-checkbox').remove(); + if (!this.selectable) { + return; + } + this.$thCheckbox = $(this.createCheckboxHTML('th')) + .prependTo(this.$thRow) + .find('input[type="checkbox"]') + .on('change', function () { + var isCheckedAll = this$1.$thCheckbox[0].checked; + this$1.selectedRow = isCheckedAll ? this$1.$tdRows.length : 0; + this$1.$tdCheckboxs.each(function (_, checkbox) { + checkbox.checked = isCheckedAll; + }); + this$1.$tdRows.each(function (_, row) { + isCheckedAll + ? $(row).addClass('mdui-table-row-selected') + : $(row).removeClass('mdui-table-row-selected'); + }); + }); + }; + /** + * 更新数值列 + */ + Table.prototype.updateNumericCol = function updateNumericCol () { + var this$1 = this; + + var numericClass = 'mdui-table-col-numeric'; + this.$thRow.find('th').each(function (i, th) { + var isNumericCol = $(th).hasClass(numericClass); + this$1.$tdRows.each(function (_, row) { + var $td = $(row).find('td').eq(i); + isNumericCol + ? $td.addClass(numericClass) + : $td.removeClass(numericClass); + }); + }); + }; + var dataName = '_mdui_table'; + $(function () { + mdui.mutation('.mdui-table', function () { + var $element = $(this); + if (!$element.data(dataName)) { + $element.data(dataName, new Table($element)); + } + }); + }); + mdui.updateTables = function (selector) { + var $elements = isUndefined(selector) ? $('.mdui-table') : $(selector); + $elements.each(function (_, element) { + var $element = $(element); + var instance = $element.data(dataName); + if (instance) { + instance.init(); + } + else { + $element.data(dataName, new Table($element)); + } + }); + }; + + /** + * touch 事件后的 500ms 内禁用 mousedown 事件 + * + * 不支持触控的屏幕上事件顺序为 mousedown -> mouseup -> click + * 支持触控的屏幕上事件顺序为 touchstart -> touchend -> mousedown -> mouseup -> click + * + * 在每一个事件中都使用 TouchHandler.isAllow(event) 判断事件是否可执行 + * 在 touchstart 和 touchmove、touchend、touchcancel + * + * (function () { + * $document + * .on(start, function (e) { + * if (!isAllow(e)) { + * return; + * } + * register(e); + * console.log(e.type); + * }) + * .on(move, function (e) { + * if (!isAllow(e)) { + * return; + * } + * console.log(e.type); + * }) + * .on(end, function (e) { + * if (!isAllow(e)) { + * return; + * } + * console.log(e.type); + * }) + * .on(unlock, register); + * })(); + */ + var startEvent = 'touchstart mousedown'; + var moveEvent = 'touchmove mousemove'; + var endEvent = 'touchend mouseup'; + var cancelEvent = 'touchcancel mouseleave'; + var unlockEvent = 'touchend touchmove touchcancel'; + var touches = 0; + /** + * 该事件是否被允许,在执行事件前调用该方法判断事件是否可以执行 + * 若已触发 touch 事件,则阻止之后的鼠标事件 + * @param event + */ + function isAllow(event) { + return !(touches && + [ + 'mousedown', + 'mouseup', + 'mousemove', + 'click', + 'mouseover', + 'mouseout', + 'mouseenter', + 'mouseleave' ].indexOf(event.type) > -1); + } + /** + * 在 touchstart 和 touchmove、touchend、touchcancel 事件中调用该方法注册事件 + * @param event + */ + function register(event) { + if (event.type === 'touchstart') { + // 触发了 touch 事件 + touches += 1; + } + else if (['touchmove', 'touchend', 'touchcancel'].indexOf(event.type) > -1) { + // touch 事件结束 500ms 后解除对鼠标事件的阻止 + setTimeout(function () { + if (touches) { + touches -= 1; + } + }, 500); + } + } + + /** + * Inspired by https://github.com/nolimits4web/Framework7/blob/master/src/js/fast-clicks.js + * https://github.com/nolimits4web/Framework7/blob/master/LICENSE + * + * Inspired by https://github.com/fians/Waves + */ + /** + * 显示涟漪动画 + * @param event + * @param $ripple + */ + function show(event, $ripple) { + // 鼠标右键不产生涟漪 + if (event instanceof MouseEvent && event.button === 2) { + return; + } + // 点击位置坐标 + var touchPosition = typeof TouchEvent !== 'undefined' && + event instanceof TouchEvent && + event.touches.length + ? event.touches[0] + : event; + var touchStartX = touchPosition.pageX; + var touchStartY = touchPosition.pageY; + // 涟漪位置 + var offset = $ripple.offset(); + var height = $ripple.innerHeight(); + var width = $ripple.innerWidth(); + var center = { + x: touchStartX - offset.left, + y: touchStartY - offset.top, + }; + var diameter = Math.max(Math.pow(Math.pow(height, 2) + Math.pow(width, 2), 0.5), 48); + // 涟漪扩散动画 + var translate = "translate3d(" + (-center.x + width / 2) + "px," + + (-center.y + height / 2) + "px, 0) scale(1)"; + // 涟漪的 DOM 结构,并缓存动画效果 + $("
          ") + .data('_ripple_wave_translate', translate) + .prependTo($ripple) + .reflow() + .transform(translate); + } + /** + * 隐藏并移除涟漪 + * @param $wave + */ + function removeRipple($wave) { + if (!$wave.length || $wave.data('_ripple_wave_removed')) { + return; + } + $wave.data('_ripple_wave_removed', true); + var removeTimer = setTimeout(function () { return $wave.remove(); }, 400); + var translate = $wave.data('_ripple_wave_translate'); + $wave + .addClass('mdui-ripple-wave-fill') + .transform(translate.replace('scale(1)', 'scale(1.01)')) + .transitionEnd(function () { + clearTimeout(removeTimer); + $wave + .addClass('mdui-ripple-wave-out') + .transform(translate.replace('scale(1)', 'scale(1.01)')); + removeTimer = setTimeout(function () { return $wave.remove(); }, 700); + setTimeout(function () { + $wave.transitionEnd(function () { + clearTimeout(removeTimer); + $wave.remove(); + }); + }, 0); + }); + } + /** + * 隐藏涟漪动画 + * @param this + */ + function hide() { + var $ripple = $(this); + $ripple.children('.mdui-ripple-wave').each(function (_, wave) { + removeRipple($(wave)); + }); + $ripple.off((moveEvent + " " + endEvent + " " + cancelEvent), hide); + } + /** + * 显示涟漪,并绑定 touchend 等事件 + * @param event + */ + function showRipple(event) { + if (!isAllow(event)) { + return; + } + register(event); + // Chrome 59 点击滚动条时,会在 document 上触发事件 + if (event.target === document) { + return; + } + var $target = $(event.target); + // 获取含 .mdui-ripple 类的元素 + var $ripple = $target.hasClass('mdui-ripple') + ? $target + : $target.parents('.mdui-ripple').first(); + if (!$ripple.length) { + return; + } + // 禁用状态的元素上不产生涟漪效果 + if ($ripple.prop('disabled') || !isUndefined($ripple.attr('disabled'))) { + return; + } + if (event.type === 'touchstart') { + var hidden = false; + // touchstart 触发指定时间后开始涟漪动画,避免手指滑动时也触发涟漪 + var timer = setTimeout(function () { + timer = 0; + show(event, $ripple); + }, 200); + var hideRipple = function () { + // 如果手指没有移动,且涟漪动画还没有开始,则开始涟漪动画 + if (timer) { + clearTimeout(timer); + timer = 0; + show(event, $ripple); + } + if (!hidden) { + hidden = true; + hide.call($ripple); + } + }; + // 手指移动后,移除涟漪动画 + var touchMove = function () { + if (timer) { + clearTimeout(timer); + timer = 0; + } + hideRipple(); + }; + $ripple.on('touchmove', touchMove).on('touchend touchcancel', hideRipple); + } + else { + show(event, $ripple); + $ripple.on((moveEvent + " " + endEvent + " " + cancelEvent), hide); + } + } + $(function () { + $document.on(startEvent, showRipple).on(unlockEvent, register); + }); + + var defaultData = { + reInit: false, + domLoadedEvent: false, + }; + /** + * 输入框事件 + * @param event + * @param data + */ + function inputEvent(event, data) { + if ( data === void 0 ) data = {}; + + data = extend({}, defaultData, data); + var input = event.target; + var $input = $(input); + var eventType = event.type; + var value = $input.val(); + // 文本框类型 + var inputType = $input.attr('type') || ''; + if (['checkbox', 'button', 'submit', 'range', 'radio', 'image'].indexOf(inputType) > -1) { + return; + } + var $textfield = $input.parent('.mdui-textfield'); + // 输入框是否聚焦 + if (eventType === 'focus') { + $textfield.addClass('mdui-textfield-focus'); + } + if (eventType === 'blur') { + $textfield.removeClass('mdui-textfield-focus'); + } + // 输入框是否为空 + if (eventType === 'blur' || eventType === 'input') { + value + ? $textfield.addClass('mdui-textfield-not-empty') + : $textfield.removeClass('mdui-textfield-not-empty'); + } + // 输入框是否禁用 + input.disabled + ? $textfield.addClass('mdui-textfield-disabled') + : $textfield.removeClass('mdui-textfield-disabled'); + // 表单验证 + if ((eventType === 'input' || eventType === 'blur') && + !data.domLoadedEvent && + input.validity) { + input.validity.valid + ? $textfield.removeClass('mdui-textfield-invalid-html5') + : $textfield.addClass('mdui-textfield-invalid-html5'); + } + // textarea 高度自动调整 + if ($input.is('textarea')) { + // IE bug:textarea 的值仅为多个换行,不含其他内容时,textarea 的高度不准确 + // 此时,在计算高度前,在值的开头加入一个空格,计算完后,移除空格 + var inputValue = value; + var hasExtraSpace = false; + if (inputValue.replace(/[\r\n]/g, '') === '') { + $input.val(' ' + inputValue); + hasExtraSpace = true; + } + // 设置 textarea 高度 + $input.outerHeight(''); + var height = $input.outerHeight(); + var scrollHeight = input.scrollHeight; + if (scrollHeight > height) { + $input.outerHeight(scrollHeight); + } + // 计算完,还原 textarea 的值 + if (hasExtraSpace) { + $input.val(inputValue); + } + } + // 实时字数统计 + if (data.reInit) { + $textfield.find('.mdui-textfield-counter').remove(); + } + var maxLength = $input.attr('maxlength'); + if (maxLength) { + if (data.reInit || data.domLoadedEvent) { + $('
          ' + + " / " + maxLength + + '
          ').appendTo($textfield); + } + $textfield + .find('.mdui-textfield-counter-inputed') + .text(value.length.toString()); + } + // 含 帮助文本、错误提示、字数统计 时,增加文本框底部内边距 + if ($textfield.find('.mdui-textfield-helper').length || + $textfield.find('.mdui-textfield-error').length || + maxLength) { + $textfield.addClass('mdui-textfield-has-bottom'); + } + } + $(function () { + // 绑定事件 + $document.on('input focus blur', '.mdui-textfield-input', { useCapture: true }, inputEvent); + // 可展开文本框展开 + $document.on('click', '.mdui-textfield-expandable .mdui-textfield-icon', function () { + $(this) + .parents('.mdui-textfield') + .addClass('mdui-textfield-expanded') + .find('.mdui-textfield-input')[0] + .focus(); + }); + // 可展开文本框关闭 + $document.on('click', '.mdui-textfield-expanded .mdui-textfield-close', function () { + $(this) + .parents('.mdui-textfield') + .removeClass('mdui-textfield-expanded') + .find('.mdui-textfield-input') + .val(''); + }); + /** + * 初始化文本框 + */ + mdui.mutation('.mdui-textfield', function () { + $(this).find('.mdui-textfield-input').trigger('input', { + domLoadedEvent: true, + }); + }); + }); + mdui.updateTextFields = function (selector) { + var $elements = isUndefined(selector) ? $('.mdui-textfield') : $(selector); + $elements.each(function (_, element) { + $(element).find('.mdui-textfield-input').trigger('input', { + reInit: true, + }); + }); + }; + + /** + * 滑块的值改变后修改滑块样式 + * @param $slider + */ + function updateValueStyle($slider) { + var data = $slider.data(); + var $track = data._slider_$track; + var $fill = data._slider_$fill; + var $thumb = data._slider_$thumb; + var $input = data._slider_$input; + var min = data._slider_min; + var max = data._slider_max; + var isDisabled = data._slider_disabled; + var isDiscrete = data._slider_discrete; + var $thumbText = data._slider_$thumbText; + var value = $input.val(); + var percent = ((value - min) / (max - min)) * 100; + $fill.width((percent + "%")); + $track.width(((100 - percent) + "%")); + if (isDisabled) { + $fill.css('padding-right', '6px'); + $track.css('padding-left', '6px'); + } + $thumb.css('left', (percent + "%")); + if (isDiscrete) { + $thumbText.text(value); + } + percent === 0 + ? $slider.addClass('mdui-slider-zero') + : $slider.removeClass('mdui-slider-zero'); + } + /** + * 重新初始化滑块 + * @param $slider + */ + function reInit($slider) { + var $track = $('
          '); + var $fill = $('
          '); + var $thumb = $('
          '); + var $input = $slider.find('input[type="range"]'); + var isDisabled = $input[0].disabled; + var isDiscrete = $slider.hasClass('mdui-slider-discrete'); + // 禁用状态 + isDisabled + ? $slider.addClass('mdui-slider-disabled') + : $slider.removeClass('mdui-slider-disabled'); + // 重新填充 HTML + $slider.find('.mdui-slider-track').remove(); + $slider.find('.mdui-slider-fill').remove(); + $slider.find('.mdui-slider-thumb').remove(); + $slider.append($track).append($fill).append($thumb); + // 间续型滑块 + var $thumbText = $(); + if (isDiscrete) { + $thumbText = $(''); + $thumb.empty().append($thumbText); + } + $slider.data('_slider_$track', $track); + $slider.data('_slider_$fill', $fill); + $slider.data('_slider_$thumb', $thumb); + $slider.data('_slider_$input', $input); + $slider.data('_slider_min', $input.attr('min')); + $slider.data('_slider_max', $input.attr('max')); + $slider.data('_slider_disabled', isDisabled); + $slider.data('_slider_discrete', isDiscrete); + $slider.data('_slider_$thumbText', $thumbText); + // 设置默认值 + updateValueStyle($slider); + } + var rangeSelector = '.mdui-slider input[type="range"]'; + $(function () { + // 滑块滑动事件 + $document.on('input change', rangeSelector, function () { + var $slider = $(this).parent(); + updateValueStyle($slider); + }); + // 开始触摸滑块事件 + $document.on(startEvent, rangeSelector, function (event) { + if (!isAllow(event)) { + return; + } + register(event); + if (this.disabled) { + return; + } + var $slider = $(this).parent(); + $slider.addClass('mdui-slider-focus'); + }); + // 结束触摸滑块事件 + $document.on(endEvent, rangeSelector, function (event) { + if (!isAllow(event)) { + return; + } + if (this.disabled) { + return; + } + var $slider = $(this).parent(); + $slider.removeClass('mdui-slider-focus'); + }); + $document.on(unlockEvent, rangeSelector, register); + /** + * 初始化滑块 + */ + mdui.mutation('.mdui-slider', function () { + reInit($(this)); + }); + }); + mdui.updateSliders = function (selector) { + var $elements = isUndefined(selector) ? $('.mdui-slider') : $(selector); + $elements.each(function (_, element) { + reInit($(element)); + }); + }; + + var DEFAULT_OPTIONS$2 = { + trigger: 'hover', + }; + var Fab = function Fab(selector, options) { + var this$1 = this; + if ( options === void 0 ) options = {}; + + /** + * 配置参数 + */ + this.options = extend({}, DEFAULT_OPTIONS$2); + /** + * 当前 fab 的状态 + */ + this.state = 'closed'; + this.$element = $(selector).first(); + extend(this.options, options); + this.$btn = this.$element.find('.mdui-fab'); + this.$dial = this.$element.find('.mdui-fab-dial'); + this.$dialBtns = this.$dial.find('.mdui-fab'); + if (this.options.trigger === 'hover') { + this.$btn.on('touchstart mouseenter', function () { return this$1.open(); }); + this.$element.on('mouseleave', function () { return this$1.close(); }); + } + if (this.options.trigger === 'click') { + this.$btn.on(startEvent, function () { return this$1.open(); }); + } + // 触摸屏幕其他地方关闭快速拨号 + $document.on(startEvent, function (event) { + if ($(event.target).parents('.mdui-fab-wrapper').length) { + return; + } + this$1.close(); + }); + }; + /** + * 触发组件事件 + * @param name + */ + Fab.prototype.triggerEvent = function triggerEvent (name) { + componentEvent(name, 'fab', this.$element, this); + }; + /** + * 当前是否为打开状态 + */ + Fab.prototype.isOpen = function isOpen () { + return this.state === 'opening' || this.state === 'opened'; + }; + /** + * 打开快速拨号菜单 + */ + Fab.prototype.open = function open () { + var this$1 = this; + + if (this.isOpen()) { + return; + } + // 为菜单中的按钮添加不同的 transition-delay + this.$dialBtns.each(function (index, btn) { + var delay = (15 * (this$1.$dialBtns.length - index)) + "ms"; + btn.style.transitionDelay = delay; + btn.style.webkitTransitionDelay = delay; + }); + this.$dial.css('height', 'auto').addClass('mdui-fab-dial-show'); + // 如果按钮中存在 .mdui-fab-opened 的图标,则进行图标切换 + if (this.$btn.find('.mdui-fab-opened').length) { + this.$btn.addClass('mdui-fab-opened'); + } + this.state = 'opening'; + this.triggerEvent('open'); + // 打开顺序为从下到上逐个打开,最上面的打开后才表示动画完成 + this.$dialBtns.first().transitionEnd(function () { + if (this$1.$btn.hasClass('mdui-fab-opened')) { + this$1.state = 'opened'; + this$1.triggerEvent('opened'); + } + }); + }; + /** + * 关闭快速拨号菜单 + */ + Fab.prototype.close = function close () { + var this$1 = this; + + if (!this.isOpen()) { + return; + } + // 为菜单中的按钮添加不同的 transition-delay + this.$dialBtns.each(function (index, btn) { + var delay = (15 * index) + "ms"; + btn.style.transitionDelay = delay; + btn.style.webkitTransitionDelay = delay; + }); + this.$dial.removeClass('mdui-fab-dial-show'); + this.$btn.removeClass('mdui-fab-opened'); + this.state = 'closing'; + this.triggerEvent('close'); + // 从上往下依次关闭,最后一个关闭后才表示动画完成 + this.$dialBtns.last().transitionEnd(function () { + if (this$1.$btn.hasClass('mdui-fab-opened')) { + return; + } + this$1.state = 'closed'; + this$1.triggerEvent('closed'); + this$1.$dial.css('height', 0); + }); + }; + /** + * 切换快速拨号菜单的打开状态 + */ + Fab.prototype.toggle = function toggle () { + this.isOpen() ? this.close() : this.open(); + }; + /** + * 以动画的形式显示整个浮动操作按钮 + */ + Fab.prototype.show = function show () { + this.$element.removeClass('mdui-fab-hide'); + }; + /** + * 以动画的形式隐藏整个浮动操作按钮 + */ + Fab.prototype.hide = function hide () { + this.$element.addClass('mdui-fab-hide'); + }; + /** + * 返回当前快速拨号菜单的打开状态。共包含四种状态:`opening`、`opened`、`closing`、`closed` + */ + Fab.prototype.getState = function getState () { + return this.state; + }; + mdui.Fab = Fab; + + var customAttr$3 = 'mdui-fab'; + $(function () { + // mouseenter 不冒泡,无法进行事件委托,这里用 mouseover 代替。 + // 不管是 click 、 mouseover 还是 touchstart ,都先初始化。 + $document.on('touchstart mousedown mouseover', ("[" + customAttr$3 + "]"), function () { + new mdui.Fab(this, parseOptions(this, customAttr$3)); + }); + }); + + /** + * 最终生成的元素结构为: + * + *
          // $element + * State 1 // $selected + *
          // $menu + *
          State 1
          // $items + *
          State 2
          + *
          State 3
          + *
          + *
          + */ + var DEFAULT_OPTIONS$3 = { + position: 'auto', + gutter: 16, + }; + var Select = function Select(selector, options) { + var this$1 = this; + if ( options === void 0 ) options = {}; + + /** + * 生成的 `
          ` 元素的 JQ 对象 + */ + this.$element = $(); + /** + * 配置参数 + */ + this.options = extend({}, DEFAULT_OPTIONS$3); + /** + * select 的 size 属性的值,根据该值设置 select 的高度 + */ + this.size = 0; + /** + * 占位元素,显示已选中菜单项的文本 + */ + this.$selected = $(); + /** + * 菜单项的外层元素的 JQ 对象 + */ + this.$menu = $(); + /** + * 菜单项数组的 JQ 对象 + */ + this.$items = $(); + /** + * 当前选中的菜单项的索引号 + */ + this.selectedIndex = 0; + /** + * 当前选中菜单项的文本 + */ + this.selectedText = ''; + /** + * 当前选中菜单项的值 + */ + this.selectedValue = ''; + /** + * 当前 select 的状态 + */ + this.state = 'closed'; + this.$native = $(selector).first(); + this.$native.hide(); + extend(this.options, options); + // 为当前 select 生成唯一 ID + this.uniqueID = $.guid(); + // 生成 select + this.handleUpdate(); + // 点击 select 外面区域关闭 + $document.on('click touchstart', function (event) { + var $target = $(event.target); + if (this$1.isOpen() && + !$target.is(this$1.$element) && + !contains(this$1.$element[0], $target[0])) { + this$1.close(); + } + }); + }; + /** + * 调整菜单位置 + */ + Select.prototype.readjustMenu = function readjustMenu () { + var windowHeight = $window.height(); + // mdui-select 高度 + var elementHeight = this.$element.height(); + // 菜单项高度 + var $itemFirst = this.$items.first(); + var itemHeight = $itemFirst.height(); + var itemMargin = parseInt($itemFirst.css('margin-top')); + // 菜单高度 + var menuWidth = this.$element.innerWidth() + 0.01; // 必须比真实宽度多一点,不然会出现省略号 + var menuHeight = itemHeight * this.size + itemMargin * 2; + // mdui-select 在窗口中的位置 + var elementTop = this.$element[0].getBoundingClientRect().top; + var transformOriginY; + var menuMarginTop; + if (this.options.position === 'bottom') { + menuMarginTop = elementHeight; + transformOriginY = '0px'; + } + else if (this.options.position === 'top') { + menuMarginTop = -menuHeight - 1; + transformOriginY = '100%'; + } + else { + // 菜单高度不能超过窗口高度 + var menuMaxHeight = windowHeight - this.options.gutter * 2; + if (menuHeight > menuMaxHeight) { + menuHeight = menuMaxHeight; + } + // 菜单的 margin-top + menuMarginTop = -(itemMargin + + this.selectedIndex * itemHeight + + (itemHeight - elementHeight) / 2); + var menuMaxMarginTop = -(itemMargin + + (this.size - 1) * itemHeight + + (itemHeight - elementHeight) / 2); + if (menuMarginTop < menuMaxMarginTop) { + menuMarginTop = menuMaxMarginTop; + } + // 菜单不能超出窗口 + var menuTop = elementTop + menuMarginTop; + if (menuTop < this.options.gutter) { + // 不能超出窗口上方 + menuMarginTop = -(elementTop - this.options.gutter); + } + else if (menuTop + menuHeight + this.options.gutter > windowHeight) { + // 不能超出窗口下方 + menuMarginTop = -(elementTop + + menuHeight + + this.options.gutter - + windowHeight); + } + // transform 的 Y 轴坐标 + transformOriginY = (this.selectedIndex * itemHeight + itemHeight / 2 + itemMargin) + "px"; + } + // 设置样式 + this.$element.innerWidth(menuWidth); + this.$menu + .innerWidth(menuWidth) + .height(menuHeight) + .css({ + 'margin-top': menuMarginTop + 'px', + 'transform-origin': 'center ' + transformOriginY + ' 0', + }); + }; + /** + * select 是否为打开状态 + */ + Select.prototype.isOpen = function isOpen () { + return this.state === 'opening' || this.state === 'opened'; + }; + /** + * 对原生 select 组件进行了修改后,需要调用该方法 + */ + Select.prototype.handleUpdate = function handleUpdate () { + var this$1 = this; + + if (this.isOpen()) { + this.close(); + } + this.selectedValue = this.$native.val(); + var itemsData = []; + this.$items = $(); + // 生成 HTML + this.$native.find('option').each(function (index, option) { + var text = option.textContent || ''; + var value = option.value; + var disabled = option.disabled; + var selected = this$1.selectedValue === value; + itemsData.push({ + value: value, + text: text, + disabled: disabled, + selected: selected, + index: index, + }); + if (selected) { + this$1.selectedText = text; + this$1.selectedIndex = index; + } + this$1.$items = this$1.$items.add('
          " + text + "
          "); + }); + this.$selected = $(("" + (this.selectedText) + "")); + this.$element = $("
          ") + .show() + .append(this.$selected); + this.$menu = $('
          ') + .appendTo(this.$element) + .append(this.$items); + $(("#" + (this.uniqueID))).remove(); + this.$native.after(this.$element); + // 根据 select 的 size 属性设置高度 + this.size = parseInt(this.$native.attr('size') || '0'); + if (this.size <= 0) { + this.size = this.$items.length; + if (this.size > 8) { + this.size = 8; + } + } + // 点击选项时关闭下拉菜单 + // eslint-disable-next-line @typescript-eslint/no-this-alias + var that = this; + this.$items.on('click', function () { + if (that.state === 'closing') { + return; + } + var $item = $(this); + var index = $item.index(); + var data = itemsData[index]; + if (data.disabled) { + return; + } + that.$selected.text(data.text); + that.$native.val(data.value); + that.$items.removeAttr('selected'); + $item.attr('selected', ''); + that.selectedIndex = data.index; + that.selectedValue = data.value; + that.selectedText = data.text; + that.$native.trigger('change'); + that.close(); + }); + // 点击 $element 时打开下拉菜单 + this.$element.on('click', function (event) { + var $target = $(event.target); + // 在菜单上点击时不打开 + if ($target.is('.mdui-select-menu') || + $target.is('.mdui-select-menu-item')) { + return; + } + this$1.toggle(); + }); + }; + /** + * 动画结束的回调 + */ + Select.prototype.transitionEnd = function transitionEnd () { + this.$element.removeClass('mdui-select-closing'); + if (this.state === 'opening') { + this.state = 'opened'; + this.triggerEvent('opened'); + this.$menu.css('overflow-y', 'auto'); + } + if (this.state === 'closing') { + this.state = 'closed'; + this.triggerEvent('closed'); + // 恢复样式 + this.$element.innerWidth(''); + this.$menu.css({ + 'margin-top': '', + height: '', + width: '', + }); + } + }; + /** + * 触发组件事件 + * @param name + */ + Select.prototype.triggerEvent = function triggerEvent (name) { + componentEvent(name, 'select', this.$native, this); + }; + /** + * 切换下拉菜单的打开状态 + */ + Select.prototype.toggle = function toggle () { + this.isOpen() ? this.close() : this.open(); + }; + /** + * 打开下拉菜单 + */ + Select.prototype.open = function open () { + var this$1 = this; + + if (this.isOpen()) { + return; + } + this.state = 'opening'; + this.triggerEvent('open'); + this.readjustMenu(); + this.$element.addClass('mdui-select-open'); + this.$menu.transitionEnd(function () { return this$1.transitionEnd(); }); + }; + /** + * 关闭下拉菜单 + */ + Select.prototype.close = function close () { + var this$1 = this; + + if (!this.isOpen()) { + return; + } + this.state = 'closing'; + this.triggerEvent('close'); + this.$menu.css('overflow-y', ''); + this.$element + .removeClass('mdui-select-open') + .addClass('mdui-select-closing'); + this.$menu.transitionEnd(function () { return this$1.transitionEnd(); }); + }; + /** + * 获取当前菜单的状态。共包含四种状态:`opening`、`opened`、`closing`、`closed` + */ + Select.prototype.getState = function getState () { + return this.state; + }; + mdui.Select = Select; + + var customAttr$4 = 'mdui-select'; + $(function () { + mdui.mutation(("[" + customAttr$4 + "]"), function () { + new mdui.Select(this, parseOptions(this, customAttr$4)); + }); + }); + + $(function () { + // 滚动时隐藏应用栏 + mdui.mutation('.mdui-appbar-scroll-hide', function () { + new mdui.Headroom(this); + }); + // 滚动时只隐藏应用栏中的工具栏 + mdui.mutation('.mdui-appbar-scroll-toolbar-hide', function () { + new mdui.Headroom(this, { + pinnedClass: 'mdui-headroom-pinned-toolbar', + unpinnedClass: 'mdui-headroom-unpinned-toolbar', + }); + }); + }); + + var DEFAULT_OPTIONS$4 = { + trigger: 'click', + loop: false, + }; + var Tab = function Tab(selector, options) { + var this$1 = this; + if ( options === void 0 ) options = {}; + + /** + * 配置参数 + */ + this.options = extend({}, DEFAULT_OPTIONS$4); + /** + * 当前激活的 tab 的索引号。为 -1 时表示没有激活的选项卡,或不存在选项卡 + */ + this.activeIndex = -1; + this.$element = $(selector).first(); + extend(this.options, options); + this.$tabs = this.$element.children('a'); + this.$indicator = $('
          ').appendTo(this.$element); + // 根据 url hash 获取默认激活的选项卡 + var hash = window.location.hash; + if (hash) { + this.$tabs.each(function (index, tab) { + if ($(tab).attr('href') === hash) { + this$1.activeIndex = index; + return false; + } + return true; + }); + } + // 含 .mdui-tab-active 的元素默认激活 + if (this.activeIndex === -1) { + this.$tabs.each(function (index, tab) { + if ($(tab).hasClass('mdui-tab-active')) { + this$1.activeIndex = index; + return false; + } + return true; + }); + } + // 存在选项卡时,默认激活第一个选项卡 + if (this.$tabs.length && this.activeIndex === -1) { + this.activeIndex = 0; + } + // 设置激活状态选项卡 + this.setActive(); + // 监听窗口大小变化事件,调整指示器位置 + $window.on('resize', $.throttle(function () { return this$1.setIndicatorPosition(); }, 100)); + // 监听点击选项卡事件 + this.$tabs.each(function (_, tab) { + this$1.bindTabEvent(tab); + }); + }; + /** + * 指定选项卡是否已禁用 + * @param $tab + */ + Tab.prototype.isDisabled = function isDisabled ($tab) { + return $tab.attr('disabled') !== undefined; + }; + /** + * 绑定在 Tab 上点击或悬浮的事件 + * @param tab + */ + Tab.prototype.bindTabEvent = function bindTabEvent (tab) { + var this$1 = this; + + var $tab = $(tab); + // 点击或鼠标移入触发的事件 + var clickEvent = function () { + // 禁用状态的选项卡无法选中 + if (this$1.isDisabled($tab)) { + return false; + } + this$1.activeIndex = this$1.$tabs.index(tab); + this$1.setActive(); + }; + // 无论 trigger 是 click 还是 hover,都会响应 click 事件 + $tab.on('click', clickEvent); + // trigger 为 hover 时,额外响应 mouseenter 事件 + if (this.options.trigger === 'hover') { + $tab.on('mouseenter', clickEvent); + } + // 阻止链接的默认点击动作 + $tab.on('click', function () { + if (($tab.attr('href') || '').indexOf('#') === 0) { + return false; + } + }); + }; + /** + * 触发组件事件 + * @param name + * @param $element + * @param parameters + */ + Tab.prototype.triggerEvent = function triggerEvent (name, $element, parameters) { + if ( parameters === void 0 ) parameters = {}; + + componentEvent(name, 'tab', $element, this, parameters); + }; + /** + * 设置激活状态的选项卡 + */ + Tab.prototype.setActive = function setActive () { + var this$1 = this; + + this.$tabs.each(function (index, tab) { + var $tab = $(tab); + var targetId = $tab.attr('href') || ''; + // 设置选项卡激活状态 + if (index === this$1.activeIndex && !this$1.isDisabled($tab)) { + if (!$tab.hasClass('mdui-tab-active')) { + this$1.triggerEvent('change', this$1.$element, { + index: this$1.activeIndex, + id: targetId.substr(1), + }); + this$1.triggerEvent('show', $tab); + $tab.addClass('mdui-tab-active'); + } + $(targetId).show(); + this$1.setIndicatorPosition(); + } + else { + $tab.removeClass('mdui-tab-active'); + $(targetId).hide(); + } + }); + }; + /** + * 设置选项卡指示器的位置 + */ + Tab.prototype.setIndicatorPosition = function setIndicatorPosition () { + // 选项卡数量为 0 时,不显示指示器 + if (this.activeIndex === -1) { + this.$indicator.css({ + left: 0, + width: 0, + }); + return; + } + var $activeTab = this.$tabs.eq(this.activeIndex); + if (this.isDisabled($activeTab)) { + return; + } + var activeTabOffset = $activeTab.offset(); + this.$indicator.css({ + left: ((activeTabOffset.left + + this.$element[0].scrollLeft - + this.$element[0].getBoundingClientRect().left) + "px"), + width: (($activeTab.innerWidth()) + "px"), + }); + }; + /** + * 切换到下一个选项卡 + */ + Tab.prototype.next = function next () { + if (this.activeIndex === -1) { + return; + } + if (this.$tabs.length > this.activeIndex + 1) { + this.activeIndex++; + } + else if (this.options.loop) { + this.activeIndex = 0; + } + this.setActive(); + }; + /** + * 切换到上一个选项卡 + */ + Tab.prototype.prev = function prev () { + if (this.activeIndex === -1) { + return; + } + if (this.activeIndex > 0) { + this.activeIndex--; + } + else if (this.options.loop) { + this.activeIndex = this.$tabs.length - 1; + } + this.setActive(); + }; + /** + * 显示指定索引号、或指定id的选项卡 + * @param index 索引号、或id + */ + Tab.prototype.show = function show (index) { + var this$1 = this; + + if (this.activeIndex === -1) { + return; + } + if (isNumber(index)) { + this.activeIndex = index; + } + else { + this.$tabs.each(function (i, tab) { + if (tab.id === index) { + this$1.activeIndex === i; + return false; + } + }); + } + this.setActive(); + }; + /** + * 在父元素的宽度变化时,需要调用该方法重新调整指示器位置 + * 在添加或删除选项卡时,需要调用该方法 + */ + Tab.prototype.handleUpdate = function handleUpdate () { + var this$1 = this; + + var $oldTabs = this.$tabs; // 旧的 tabs JQ对象 + var $newTabs = this.$element.children('a'); // 新的 tabs JQ对象 + var oldTabsElement = $oldTabs.get(); // 旧的 tabs 元素数组 + var newTabsElement = $newTabs.get(); // 新的 tabs 元素数组 + if (!$newTabs.length) { + this.activeIndex = -1; + this.$tabs = $newTabs; + this.setIndicatorPosition(); + return; + } + // 重新遍历选项卡,找出新增的选项卡 + $newTabs.each(function (index, tab) { + // 有新增的选项卡 + if (oldTabsElement.indexOf(tab) < 0) { + this$1.bindTabEvent(tab); + if (this$1.activeIndex === -1) { + this$1.activeIndex = 0; + } + else if (index <= this$1.activeIndex) { + this$1.activeIndex++; + } + } + }); + // 找出被移除的选项卡 + $oldTabs.each(function (index, tab) { + // 有被移除的选项卡 + if (newTabsElement.indexOf(tab) < 0) { + if (index < this$1.activeIndex) { + this$1.activeIndex--; + } + else if (index === this$1.activeIndex) { + this$1.activeIndex = 0; + } + } + }); + this.$tabs = $newTabs; + this.setActive(); + }; + mdui.Tab = Tab; + + var customAttr$5 = 'mdui-tab'; + $(function () { + mdui.mutation(("[" + customAttr$5 + "]"), function () { + new mdui.Tab(this, parseOptions(this, customAttr$5)); + }); + }); + + /** + * 在桌面设备上默认显示抽屉栏,不显示遮罩层 + * 在手机和平板设备上默认不显示抽屉栏,始终显示遮罩层,且覆盖导航栏 + */ + var DEFAULT_OPTIONS$5 = { + overlay: false, + swipe: false, + }; + var Drawer = function Drawer(selector, options) { + var this$1 = this; + if ( options === void 0 ) options = {}; + + /** + * 配置参数 + */ + this.options = extend({}, DEFAULT_OPTIONS$5); + /** + * 当前是否显示着遮罩层 + */ + this.overlay = false; + this.$element = $(selector).first(); + extend(this.options, options); + this.position = this.$element.hasClass('mdui-drawer-right') + ? 'right' + : 'left'; + if (this.$element.hasClass('mdui-drawer-close')) { + this.state = 'closed'; + } + else if (this.$element.hasClass('mdui-drawer-open')) { + this.state = 'opened'; + } + else if (this.isDesktop()) { + this.state = 'opened'; + } + else { + this.state = 'closed'; + } + // 浏览器窗口大小调整时 + $window.on('resize', $.throttle(function () { + if (this$1.isDesktop()) { + // 由手机平板切换到桌面时 + // 如果显示着遮罩,则隐藏遮罩 + if (this$1.overlay && !this$1.options.overlay) { + $.hideOverlay(); + this$1.overlay = false; + $.unlockScreen(); + } + // 没有强制关闭,则状态为打开状态 + if (!this$1.$element.hasClass('mdui-drawer-close')) { + this$1.state = 'opened'; + } + } + else if (!this$1.overlay && this$1.state === 'opened') { + // 由桌面切换到手机平板时。如果抽屉栏是打开着的且没有遮罩层,则关闭抽屉栏 + if (this$1.$element.hasClass('mdui-drawer-open')) { + $.showOverlay(); + this$1.overlay = true; + $.lockScreen(); + $('.mdui-overlay').one('click', function () { return this$1.close(); }); + } + else { + this$1.state = 'closed'; + } + } + }, 100)); + // 绑定关闭按钮事件 + this.$element.find('[mdui-drawer-close]').each(function (_, close) { + $(close).on('click', function () { return this$1.close(); }); + }); + this.swipeSupport(); + }; + /** + * 是否是桌面设备 + */ + Drawer.prototype.isDesktop = function isDesktop () { + return $window.width() >= 1024; + }; + /** + * 滑动手势支持 + */ + Drawer.prototype.swipeSupport = function swipeSupport () { + // eslint-disable-next-line @typescript-eslint/no-this-alias + var that = this; + // 抽屉栏滑动手势控制 + var openNavEventHandler; + var touchStartX; + var touchStartY; + var swipeStartX; + var swiping = null; + var maybeSwiping = false; + var $body = $('body'); + // 手势触发的范围 + var swipeAreaWidth = 24; + function setPosition(translateX) { + var rtlTranslateMultiplier = that.position === 'right' ? -1 : 1; + var transformCSS = "translate(" + (-1 * rtlTranslateMultiplier * translateX) + "px, 0) !important;"; + var transitionCSS = 'initial !important;'; + that.$element.css('cssText', ("transform: " + transformCSS + "; transition: " + transitionCSS + ";")); + } + function cleanPosition() { + that.$element[0].style.transform = ''; + that.$element[0].style.webkitTransform = ''; + that.$element[0].style.transition = ''; + that.$element[0].style.webkitTransition = ''; + } + function getMaxTranslateX() { + return that.$element.width() + 10; + } + function getTranslateX(currentX) { + return Math.min(Math.max(swiping === 'closing' + ? swipeStartX - currentX + : getMaxTranslateX() + swipeStartX - currentX, 0), getMaxTranslateX()); + } + function onBodyTouchEnd(event) { + if (swiping) { + var touchX = event.changedTouches[0].pageX; + if (that.position === 'right') { + touchX = $body.width() - touchX; + } + var translateRatio = getTranslateX(touchX) / getMaxTranslateX(); + maybeSwiping = false; + var swipingState = swiping; + swiping = null; + if (swipingState === 'opening') { + if (translateRatio < 0.92) { + cleanPosition(); + that.open(); + } + else { + cleanPosition(); + } + } + else { + if (translateRatio > 0.08) { + cleanPosition(); + that.close(); + } + else { + cleanPosition(); + } + } + $.unlockScreen(); + } + else { + maybeSwiping = false; + } + $body.off({ + // eslint-disable-next-line @typescript-eslint/no-use-before-define + touchmove: onBodyTouchMove, + touchend: onBodyTouchEnd, + // eslint-disable-next-line @typescript-eslint/no-use-before-define + touchcancel: onBodyTouchMove, + }); + } + function onBodyTouchMove(event) { + var touchX = event.touches[0].pageX; + if (that.position === 'right') { + touchX = $body.width() - touchX; + } + var touchY = event.touches[0].pageY; + if (swiping) { + setPosition(getTranslateX(touchX)); + } + else if (maybeSwiping) { + var dXAbs = Math.abs(touchX - touchStartX); + var dYAbs = Math.abs(touchY - touchStartY); + var threshold = 8; + if (dXAbs > threshold && dYAbs <= threshold) { + swipeStartX = touchX; + swiping = that.state === 'opened' ? 'closing' : 'opening'; + $.lockScreen(); + setPosition(getTranslateX(touchX)); + } + else if (dXAbs <= threshold && dYAbs > threshold) { + onBodyTouchEnd(); + } + } + } + function onBodyTouchStart(event) { + touchStartX = event.touches[0].pageX; + if (that.position === 'right') { + touchStartX = $body.width() - touchStartX; + } + touchStartY = event.touches[0].pageY; + if (that.state !== 'opened') { + if (touchStartX > swipeAreaWidth || + openNavEventHandler !== onBodyTouchStart) { + return; + } + } + maybeSwiping = true; + $body.on({ + touchmove: onBodyTouchMove, + touchend: onBodyTouchEnd, + touchcancel: onBodyTouchMove, + }); + } + function enableSwipeHandling() { + if (!openNavEventHandler) { + $body.on('touchstart', onBodyTouchStart); + openNavEventHandler = onBodyTouchStart; + } + } + if (this.options.swipe) { + enableSwipeHandling(); + } + }; + /** + * 触发组件事件 + * @param name + */ + Drawer.prototype.triggerEvent = function triggerEvent (name) { + componentEvent(name, 'drawer', this.$element, this); + }; + /** + * 动画结束回调 + */ + Drawer.prototype.transitionEnd = function transitionEnd () { + if (this.$element.hasClass('mdui-drawer-open')) { + this.state = 'opened'; + this.triggerEvent('opened'); + } + else { + this.state = 'closed'; + this.triggerEvent('closed'); + } + }; + /** + * 是否处于打开状态 + */ + Drawer.prototype.isOpen = function isOpen () { + return this.state === 'opening' || this.state === 'opened'; + }; + /** + * 打开抽屉栏 + */ + Drawer.prototype.open = function open () { + var this$1 = this; + + if (this.isOpen()) { + return; + } + this.state = 'opening'; + this.triggerEvent('open'); + if (!this.options.overlay) { + $('body').addClass(("mdui-drawer-body-" + (this.position))); + } + this.$element + .removeClass('mdui-drawer-close') + .addClass('mdui-drawer-open') + .transitionEnd(function () { return this$1.transitionEnd(); }); + if (!this.isDesktop() || this.options.overlay) { + this.overlay = true; + $.showOverlay().one('click', function () { return this$1.close(); }); + $.lockScreen(); + } + }; + /** + * 关闭抽屉栏 + */ + Drawer.prototype.close = function close () { + var this$1 = this; + + if (!this.isOpen()) { + return; + } + this.state = 'closing'; + this.triggerEvent('close'); + if (!this.options.overlay) { + $('body').removeClass(("mdui-drawer-body-" + (this.position))); + } + this.$element + .addClass('mdui-drawer-close') + .removeClass('mdui-drawer-open') + .transitionEnd(function () { return this$1.transitionEnd(); }); + if (this.overlay) { + $.hideOverlay(); + this.overlay = false; + $.unlockScreen(); + } + }; + /** + * 切换抽屉栏打开/关闭状态 + */ + Drawer.prototype.toggle = function toggle () { + this.isOpen() ? this.close() : this.open(); + }; + /** + * 返回当前抽屉栏的状态。共包含四种状态:`opening`、`opened`、`closing`、`closed` + */ + Drawer.prototype.getState = function getState () { + return this.state; + }; + mdui.Drawer = Drawer; + + var customAttr$6 = 'mdui-drawer'; + $(function () { + mdui.mutation(("[" + customAttr$6 + "]"), function () { + var $element = $(this); + var options = parseOptions(this, customAttr$6); + var selector = options.target; + // @ts-ignore + delete options.target; + var $drawer = $(selector).first(); + var instance = new mdui.Drawer($drawer, options); + $element.on('click', function () { return instance.toggle(); }); + }); + }); + + var container = {}; + function queue(name, func) { + if (isUndefined(container[name])) { + container[name] = []; + } + if (isUndefined(func)) { + return container[name]; + } + container[name].push(func); + } + /** + * 从队列中移除第一个函数,并执行该函数 + * @param name 队列满 + */ + function dequeue(name) { + if (isUndefined(container[name])) { + return; + } + if (!container[name].length) { + return; + } + var func = container[name].shift(); + func(); + } + + var DEFAULT_OPTIONS$6 = { + history: true, + overlay: true, + modal: false, + closeOnEsc: true, + closeOnCancel: true, + closeOnConfirm: true, + destroyOnClosed: false, + }; + /** + * 当前显示的对话框实例 + */ + var currentInst = null; + /** + * 队列名 + */ + var queueName = '_mdui_dialog'; + /** + * 窗口是否已锁定 + */ + var isLockScreen = false; + /** + * 遮罩层元素 + */ + var $overlay; + var Dialog = function Dialog(selector, options) { + var this$1 = this; + if ( options === void 0 ) options = {}; + + /** + * 配置参数 + */ + this.options = extend({}, DEFAULT_OPTIONS$6); + /** + * 当前 dialog 的状态 + */ + this.state = 'closed'; + /** + * dialog 元素是否是动态添加的 + */ + this.append = false; + this.$element = $(selector).first(); + // 如果对话框元素没有在当前文档中,则需要添加 + if (!contains(document.body, this.$element[0])) { + this.append = true; + $('body').append(this.$element); + } + extend(this.options, options); + // 绑定取消按钮事件 + this.$element.find('[mdui-dialog-cancel]').each(function (_, cancel) { + $(cancel).on('click', function () { + this$1.triggerEvent('cancel'); + if (this$1.options.closeOnCancel) { + this$1.close(); + } + }); + }); + // 绑定确认按钮事件 + this.$element.find('[mdui-dialog-confirm]').each(function (_, confirm) { + $(confirm).on('click', function () { + this$1.triggerEvent('confirm'); + if (this$1.options.closeOnConfirm) { + this$1.close(); + } + }); + }); + // 绑定关闭按钮事件 + this.$element.find('[mdui-dialog-close]').each(function (_, close) { + $(close).on('click', function () { return this$1.close(); }); + }); + }; + /** + * 触发组件事件 + * @param name + */ + Dialog.prototype.triggerEvent = function triggerEvent (name) { + componentEvent(name, 'dialog', this.$element, this); + }; + /** + * 窗口宽度变化,或对话框内容变化时,调整对话框位置和对话框内的滚动条 + */ + Dialog.prototype.readjust = function readjust () { + if (!currentInst) { + return; + } + var $element = currentInst.$element; + var $title = $element.children('.mdui-dialog-title'); + var $content = $element.children('.mdui-dialog-content'); + var $actions = $element.children('.mdui-dialog-actions'); + // 调整 dialog 的 top 和 height 值 + $element.height(''); + $content.height(''); + var elementHeight = $element.height(); + $element.css({ + top: ((($window.height() - elementHeight) / 2) + "px"), + height: (elementHeight + "px"), + }); + // 调整 mdui-dialog-content 的高度 + $content.innerHeight(elementHeight - + ($title.innerHeight() || 0) - + ($actions.innerHeight() || 0)); + }; + /** + * hashchange 事件触发时关闭对话框 + */ + Dialog.prototype.hashchangeEvent = function hashchangeEvent () { + if (window.location.hash.substring(1).indexOf('mdui-dialog') < 0) { + currentInst.close(true); + } + }; + /** + * 点击遮罩层关闭对话框 + * @param event + */ + Dialog.prototype.overlayClick = function overlayClick (event) { + if ($(event.target).hasClass('mdui-overlay') && + currentInst) { + currentInst.close(); + } + }; + /** + * 动画结束回调 + */ + Dialog.prototype.transitionEnd = function transitionEnd () { + if (this.$element.hasClass('mdui-dialog-open')) { + this.state = 'opened'; + this.triggerEvent('opened'); + } + else { + this.state = 'closed'; + this.triggerEvent('closed'); + this.$element.hide(); + // 所有对话框都关闭,且当前没有打开的对话框时,解锁屏幕 + if (!queue(queueName).length && !currentInst && isLockScreen) { + $.unlockScreen(); + isLockScreen = false; + } + $window.off('resize', $.throttle(this.readjust, 100)); + if (this.options.destroyOnClosed) { + this.destroy(); + } + } + }; + /** + * 打开指定对话框 + */ + Dialog.prototype.doOpen = function doOpen () { + var this$1 = this; + + currentInst = this; + if (!isLockScreen) { + $.lockScreen(); + isLockScreen = true; + } + this.$element.show(); + this.readjust(); + $window.on('resize', $.throttle(this.readjust, 100)); + // 打开消息框 + this.state = 'opening'; + this.triggerEvent('open'); + this.$element + .addClass('mdui-dialog-open') + .transitionEnd(function () { return this$1.transitionEnd(); }); + // 不存在遮罩层元素时,添加遮罩层 + if (!$overlay) { + $overlay = $.showOverlay(5100); + } + // 点击遮罩层时是否关闭对话框 + if (this.options.modal) { + $overlay.off('click', this.overlayClick); + } + else { + $overlay.on('click', this.overlayClick); + } + // 是否显示遮罩层,不显示时,把遮罩层背景透明 + $overlay.css('opacity', this.options.overlay ? '' : 0); + if (this.options.history) { + // 如果 hash 中原来就有 mdui-dialog,先删除,避免后退历史纪录后仍然有 mdui-dialog 导致无法关闭 + // 包括 mdui-dialog 和 &mdui-dialog 和 ?mdui-dialog + var hash = window.location.hash.substring(1); + if (hash.indexOf('mdui-dialog') > -1) { + hash = hash.replace(/[&?]?mdui-dialog/g, ''); + } + // 后退按钮关闭对话框 + if (hash) { + window.location.hash = "" + hash + (hash.indexOf('?') > -1 ? '&' : '?') + "mdui-dialog"; + } + else { + window.location.hash = 'mdui-dialog'; + } + $window.on('hashchange', this.hashchangeEvent); + } + }; + /** + * 当前对话框是否为打开状态 + */ + Dialog.prototype.isOpen = function isOpen () { + return this.state === 'opening' || this.state === 'opened'; + }; + /** + * 打开对话框 + */ + Dialog.prototype.open = function open () { + var this$1 = this; + + if (this.isOpen()) { + return; + } + // 如果当前有正在打开或已经打开的对话框,或队列不为空,则先加入队列,等旧对话框开始关闭时再打开 + if ((currentInst && + (currentInst.state === 'opening' || currentInst.state === 'opened')) || + queue(queueName).length) { + queue(queueName, function () { return this$1.doOpen(); }); + return; + } + this.doOpen(); + }; + /** + * 关闭对话框 + */ + Dialog.prototype.close = function close (historyBack) { + var this$1 = this; + if ( historyBack === void 0 ) historyBack = false; + + // historyBack 是否需要后退历史纪录,默认为 `false`。该参数仅内部使用 + // 为 `false` 时是通过 js 关闭,需要后退一个历史记录 + // 为 `true` 时是通过后退按钮关闭,不需要后退历史记录 + // setTimeout 的作用是: + // 当同时关闭一个对话框,并打开另一个对话框时,使打开对话框的操作先执行,以使需要打开的对话框先加入队列 + setTimeout(function () { + if (!this$1.isOpen()) { + return; + } + currentInst = null; + this$1.state = 'closing'; + this$1.triggerEvent('close'); + // 所有对话框都关闭,且当前没有打开的对话框时,隐藏遮罩 + if (!queue(queueName).length && $overlay) { + $.hideOverlay(); + $overlay = null; + // 若仍存在遮罩,恢复遮罩的 z-index + $('.mdui-overlay').css('z-index', 2000); + } + this$1.$element + .removeClass('mdui-dialog-open') + .transitionEnd(function () { return this$1.transitionEnd(); }); + if (this$1.options.history && !queue(queueName).length) { + if (!historyBack) { + window.history.back(); + } + $window.off('hashchange', this$1.hashchangeEvent); + } + // 关闭旧对话框,打开新对话框。 + // 加一点延迟,仅仅为了视觉效果更好。不加延时也不影响功能 + setTimeout(function () { + dequeue(queueName); + }, 100); + }); + }; + /** + * 切换对话框打开/关闭状态 + */ + Dialog.prototype.toggle = function toggle () { + this.isOpen() ? this.close() : this.open(); + }; + /** + * 获取对话框状态。共包含四种状态:`opening`、`opened`、`closing`、`closed` + */ + Dialog.prototype.getState = function getState () { + return this.state; + }; + /** + * 销毁对话框 + */ + Dialog.prototype.destroy = function destroy () { + if (this.append) { + this.$element.remove(); + } + if (!queue(queueName).length && !currentInst) { + if ($overlay) { + $.hideOverlay(); + $overlay = null; + } + if (isLockScreen) { + $.unlockScreen(); + isLockScreen = false; + } + } + }; + /** + * 对话框内容变化时,需要调用该方法来调整对话框位置和滚动条高度 + */ + Dialog.prototype.handleUpdate = function handleUpdate () { + this.readjust(); + }; + + // esc 按下时关闭对话框 + $document.on('keydown', function (event) { + if (currentInst && + currentInst.options.closeOnEsc && + currentInst.state === 'opened' && + event.keyCode === 27) { + currentInst.close(); + } + }); + mdui.Dialog = Dialog; + + var customAttr$7 = 'mdui-dialog'; + var dataName$1 = '_mdui_dialog'; + $(function () { + $document.on('click', ("[" + customAttr$7 + "]"), function () { + var options = parseOptions(this, customAttr$7); + var selector = options.target; + // @ts-ignore + delete options.target; + var $dialog = $(selector).first(); + var instance = $dialog.data(dataName$1); + if (!instance) { + instance = new mdui.Dialog($dialog, options); + $dialog.data(dataName$1, instance); + } + instance.open(); + }); + }); + + var DEFAULT_BUTTON = { + text: '', + bold: false, + close: true, + // eslint-disable-next-line @typescript-eslint/no-empty-function + onClick: function () { }, + }; + var DEFAULT_OPTIONS$7 = { + title: '', + content: '', + buttons: [], + stackedButtons: false, + cssClass: '', + history: true, + overlay: true, + modal: false, + closeOnEsc: true, + destroyOnClosed: true, + // eslint-disable-next-line @typescript-eslint/no-empty-function + onOpen: function () { }, + // eslint-disable-next-line @typescript-eslint/no-empty-function + onOpened: function () { }, + // eslint-disable-next-line @typescript-eslint/no-empty-function + onClose: function () { }, + // eslint-disable-next-line @typescript-eslint/no-empty-function + onClosed: function () { }, + }; + mdui.dialog = function (options) { + var _a, _b; + // 合并配置参数 + options = extend({}, DEFAULT_OPTIONS$7, options); + each(options.buttons, function (i, button) { + options.buttons[i] = extend({}, DEFAULT_BUTTON, button); + }); + // 按钮的 HTML + var buttonsHTML = ''; + if ((_a = options.buttons) === null || _a === void 0 ? void 0 : _a.length) { + buttonsHTML = "
          "; + each(options.buttons, function (_, button) { + buttonsHTML += + '" + (button.text) + ""; + }); + buttonsHTML += '
          '; + } + // Dialog 的 HTML + var HTML = "
          " + + (options.title + ? ("
          " + (options.title) + "
          ") + : '') + + (options.content + ? ("
          " + (options.content) + "
          ") + : '') + + buttonsHTML + + '
          '; + // 实例化 Dialog + var instance = new mdui.Dialog(HTML, { + history: options.history, + overlay: options.overlay, + modal: options.modal, + closeOnEsc: options.closeOnEsc, + destroyOnClosed: options.destroyOnClosed, + }); + // 绑定按钮事件 + if ((_b = options.buttons) === null || _b === void 0 ? void 0 : _b.length) { + instance.$element + .find('.mdui-dialog-actions .mdui-btn') + .each(function (index, button) { + $(button).on('click', function () { + options.buttons[index].onClick(instance); + if (options.buttons[index].close) { + instance.close(); + } + }); + }); + } + // 绑定打开关闭事件 + instance.$element + .on('open.mdui.dialog', function () { + options.onOpen(instance); + }) + .on('opened.mdui.dialog', function () { + options.onOpened(instance); + }) + .on('close.mdui.dialog', function () { + options.onClose(instance); + }) + .on('closed.mdui.dialog', function () { + options.onClosed(instance); + }); + instance.open(); + return instance; + }; + + var DEFAULT_OPTIONS$8 = { + confirmText: 'ok', + history: true, + modal: false, + closeOnEsc: true, + closeOnConfirm: true, + }; + mdui.alert = function (text, title, onConfirm, options) { + if (isFunction(title)) { + options = onConfirm; + onConfirm = title; + title = ''; + } + if (isUndefined(onConfirm)) { + // eslint-disable-next-line @typescript-eslint/no-empty-function + onConfirm = function () { }; + } + if (isUndefined(options)) { + options = {}; + } + options = extend({}, DEFAULT_OPTIONS$8, options); + return mdui.dialog({ + title: title, + content: text, + buttons: [ + { + text: options.confirmText, + bold: false, + close: options.closeOnConfirm, + onClick: onConfirm, + } ], + cssClass: 'mdui-dialog-alert', + history: options.history, + modal: options.modal, + closeOnEsc: options.closeOnEsc, + }); + }; + + var DEFAULT_OPTIONS$9 = { + confirmText: 'ok', + cancelText: 'cancel', + history: true, + modal: false, + closeOnEsc: true, + closeOnCancel: true, + closeOnConfirm: true, + }; + mdui.confirm = function (text, title, onConfirm, onCancel, options) { + if (isFunction(title)) { + options = onCancel; + onCancel = onConfirm; + onConfirm = title; + title = ''; + } + if (isUndefined(onConfirm)) { + // eslint-disable-next-line @typescript-eslint/no-empty-function + onConfirm = function () { }; + } + if (isUndefined(onCancel)) { + // eslint-disable-next-line @typescript-eslint/no-empty-function + onCancel = function () { }; + } + if (isUndefined(options)) { + options = {}; + } + options = extend({}, DEFAULT_OPTIONS$9, options); + return mdui.dialog({ + title: title, + content: text, + buttons: [ + { + text: options.cancelText, + bold: false, + close: options.closeOnCancel, + onClick: onCancel, + }, + { + text: options.confirmText, + bold: false, + close: options.closeOnConfirm, + onClick: onConfirm, + } ], + cssClass: 'mdui-dialog-confirm', + history: options.history, + modal: options.modal, + closeOnEsc: options.closeOnEsc, + }); + }; + + var DEFAULT_OPTIONS$a = { + confirmText: 'ok', + cancelText: 'cancel', + history: true, + modal: false, + closeOnEsc: true, + closeOnCancel: true, + closeOnConfirm: true, + type: 'text', + maxlength: 0, + defaultValue: '', + confirmOnEnter: false, + }; + mdui.prompt = function (label, title, onConfirm, onCancel, options) { + if (isFunction(title)) { + options = onCancel; + onCancel = onConfirm; + onConfirm = title; + title = ''; + } + if (isUndefined(onConfirm)) { + // eslint-disable-next-line @typescript-eslint/no-empty-function + onConfirm = function () { }; + } + if (isUndefined(onCancel)) { + // eslint-disable-next-line @typescript-eslint/no-empty-function + onCancel = function () { }; + } + if (isUndefined(options)) { + options = {}; + } + options = extend({}, DEFAULT_OPTIONS$a, options); + var content = '
          ' + + (label ? ("") : '') + + (options.type === 'text' + ? ("") + : '') + + (options.type === 'textarea' + ? ("") + : '') + + '
          '; + var onCancelClick = function (dialog) { + var value = dialog.$element.find('.mdui-textfield-input').val(); + onCancel(value, dialog); + }; + var onConfirmClick = function (dialog) { + var value = dialog.$element.find('.mdui-textfield-input').val(); + onConfirm(value, dialog); + }; + return mdui.dialog({ + title: title, + content: content, + buttons: [ + { + text: options.cancelText, + bold: false, + close: options.closeOnCancel, + onClick: onCancelClick, + }, + { + text: options.confirmText, + bold: false, + close: options.closeOnConfirm, + onClick: onConfirmClick, + } ], + cssClass: 'mdui-dialog-prompt', + history: options.history, + modal: options.modal, + closeOnEsc: options.closeOnEsc, + onOpen: function (dialog) { + // 初始化输入框 + var $input = dialog.$element.find('.mdui-textfield-input'); + mdui.updateTextFields($input); + // 聚焦到输入框 + $input[0].focus(); + // 捕捉文本框回车键,在单行文本框的情况下触发回调 + if (options.type !== 'textarea' && options.confirmOnEnter === true) { + $input.on('keydown', function (event) { + if (event.keyCode === 13) { + var value = dialog.$element.find('.mdui-textfield-input').val(); + onConfirm(value, dialog); + if (options.closeOnConfirm) { + dialog.close(); + } + return false; + } + return; + }); + } + // 如果是多行输入框,监听输入框的 input 事件,更新对话框高度 + if (options.type === 'textarea') { + $input.on('input', function () { return dialog.handleUpdate(); }); + } + // 有字符数限制时,加载完文本框后 DOM 会变化,需要更新对话框高度 + if (options.maxlength) { + dialog.handleUpdate(); + } + }, + }); + }; + + var DEFAULT_OPTIONS$b = { + position: 'auto', + delay: 0, + content: '', + }; + var Tooltip = function Tooltip(selector, options) { + if ( options === void 0 ) options = {}; + + /** + * 配置参数 + */ + this.options = extend({}, DEFAULT_OPTIONS$b); + /** + * 当前 tooltip 的状态 + */ + this.state = 'closed'; + /** + * setTimeout 的返回值 + */ + this.timeoutId = null; + this.$target = $(selector).first(); + extend(this.options, options); + // 创建 Tooltip HTML + this.$element = $(("
          " + (this.options.content) + "
          ")).appendTo(document.body); + // 绑定事件。元素处于 disabled 状态时无法触发鼠标事件,为了统一,把 touch 事件也禁用 + // eslint-disable-next-line @typescript-eslint/no-this-alias + var that = this; + this.$target + .on('touchstart mouseenter', function (event) { + if (that.isDisabled(this)) { + return; + } + if (!isAllow(event)) { + return; + } + register(event); + that.open(); + }) + .on('touchend mouseleave', function (event) { + if (that.isDisabled(this)) { + return; + } + if (!isAllow(event)) { + return; + } + that.close(); + }) + .on(unlockEvent, function (event) { + if (that.isDisabled(this)) { + return; + } + register(event); + }); + }; + /** + * 元素是否已禁用 + * @param element + */ + Tooltip.prototype.isDisabled = function isDisabled (element) { + return (element.disabled || + $(element).attr('disabled') !== undefined); + }; + /** + * 是否是桌面设备 + */ + Tooltip.prototype.isDesktop = function isDesktop () { + return $window.width() > 1024; + }; + /** + * 设置 Tooltip 的位置 + */ + Tooltip.prototype.setPosition = function setPosition () { + var marginLeft; + var marginTop; + // 触发的元素 + var targetProps = this.$target[0].getBoundingClientRect(); + // 触发的元素和 Tooltip 之间的距离 + var targetMargin = this.isDesktop() ? 14 : 24; + // Tooltip 的宽度和高度 + var tooltipWidth = this.$element[0].offsetWidth; + var tooltipHeight = this.$element[0].offsetHeight; + // Tooltip 的方向 + var position = this.options.position; + // 自动判断位置,加 2px,使 Tooltip 距离窗口边框至少有 2px 的间距 + if (position === 'auto') { + if (targetProps.top + + targetProps.height + + targetMargin + + tooltipHeight + + 2 < + $window.height()) { + position = 'bottom'; + } + else if (targetMargin + tooltipHeight + 2 < targetProps.top) { + position = 'top'; + } + else if (targetMargin + tooltipWidth + 2 < targetProps.left) { + position = 'left'; + } + else if (targetProps.width + targetMargin + tooltipWidth + 2 < + $window.width() - targetProps.left) { + position = 'right'; + } + else { + position = 'bottom'; + } + } + // 设置位置 + switch (position) { + case 'bottom': + marginLeft = -1 * (tooltipWidth / 2); + marginTop = targetProps.height / 2 + targetMargin; + this.$element.transformOrigin('top center'); + break; + case 'top': + marginLeft = -1 * (tooltipWidth / 2); + marginTop = + -1 * (tooltipHeight + targetProps.height / 2 + targetMargin); + this.$element.transformOrigin('bottom center'); + break; + case 'left': + marginLeft = -1 * (tooltipWidth + targetProps.width / 2 + targetMargin); + marginTop = -1 * (tooltipHeight / 2); + this.$element.transformOrigin('center right'); + break; + case 'right': + marginLeft = targetProps.width / 2 + targetMargin; + marginTop = -1 * (tooltipHeight / 2); + this.$element.transformOrigin('center left'); + break; + } + var targetOffset = this.$target.offset(); + this.$element.css({ + top: ((targetOffset.top + targetProps.height / 2) + "px"), + left: ((targetOffset.left + targetProps.width / 2) + "px"), + 'margin-left': (marginLeft + "px"), + 'margin-top': (marginTop + "px"), + }); + }; + /** + * 触发组件事件 + * @param name + */ + Tooltip.prototype.triggerEvent = function triggerEvent (name) { + componentEvent(name, 'tooltip', this.$target, this); + }; + /** + * 动画结束回调 + */ + Tooltip.prototype.transitionEnd = function transitionEnd () { + if (this.$element.hasClass('mdui-tooltip-open')) { + this.state = 'opened'; + this.triggerEvent('opened'); + } + else { + this.state = 'closed'; + this.triggerEvent('closed'); + } + }; + /** + * 当前 tooltip 是否为打开状态 + */ + Tooltip.prototype.isOpen = function isOpen () { + return this.state === 'opening' || this.state === 'opened'; + }; + /** + * 执行打开 tooltip + */ + Tooltip.prototype.doOpen = function doOpen () { + var this$1 = this; + + this.state = 'opening'; + this.triggerEvent('open'); + this.$element + .addClass('mdui-tooltip-open') + .transitionEnd(function () { return this$1.transitionEnd(); }); + }; + /** + * 打开 Tooltip + * @param options 允许每次打开时设置不同的参数 + */ + Tooltip.prototype.open = function open (options) { + var this$1 = this; + + if (this.isOpen()) { + return; + } + var oldOptions = extend({}, this.options); + if (options) { + extend(this.options, options); + } + // tooltip 的内容有更新 + if (oldOptions.content !== this.options.content) { + this.$element.html(this.options.content); + } + this.setPosition(); + if (this.options.delay) { + this.timeoutId = setTimeout(function () { return this$1.doOpen(); }, this.options.delay); + } + else { + this.timeoutId = null; + this.doOpen(); + } + }; + /** + * 关闭 Tooltip + */ + Tooltip.prototype.close = function close () { + var this$1 = this; + + if (this.timeoutId) { + clearTimeout(this.timeoutId); + this.timeoutId = null; + } + if (!this.isOpen()) { + return; + } + this.state = 'closing'; + this.triggerEvent('close'); + this.$element + .removeClass('mdui-tooltip-open') + .transitionEnd(function () { return this$1.transitionEnd(); }); + }; + /** + * 切换 Tooltip 的打开状态 + */ + Tooltip.prototype.toggle = function toggle () { + this.isOpen() ? this.close() : this.open(); + }; + /** + * 获取 Tooltip 状态。共包含四种状态:`opening`、`opened`、`closing`、`closed` + */ + Tooltip.prototype.getState = function getState () { + return this.state; + }; + mdui.Tooltip = Tooltip; + + var customAttr$8 = 'mdui-tooltip'; + var dataName$2 = '_mdui_tooltip'; + $(function () { + // mouseenter 不能冒泡,所以这里用 mouseover 代替 + $document.on('touchstart mouseover', ("[" + customAttr$8 + "]"), function () { + var $target = $(this); + var instance = $target.data(dataName$2); + if (!instance) { + instance = new mdui.Tooltip(this, parseOptions(this, customAttr$8)); + $target.data(dataName$2, instance); + } + }); + }); + + var DEFAULT_OPTIONS$c = { + message: '', + timeout: 4000, + position: 'bottom', + buttonText: '', + buttonColor: '', + closeOnButtonClick: true, + closeOnOutsideClick: true, + // eslint-disable-next-line @typescript-eslint/no-empty-function + onClick: function () { }, + // eslint-disable-next-line @typescript-eslint/no-empty-function + onButtonClick: function () { }, + // eslint-disable-next-line @typescript-eslint/no-empty-function + onOpen: function () { }, + // eslint-disable-next-line @typescript-eslint/no-empty-function + onOpened: function () { }, + // eslint-disable-next-line @typescript-eslint/no-empty-function + onClose: function () { }, + // eslint-disable-next-line @typescript-eslint/no-empty-function + onClosed: function () { }, + }; + /** + * 当前打开着的 Snackbar + */ + var currentInst$1 = null; + /** + * 队列名 + */ + var queueName$1 = '_mdui_snackbar'; + var Snackbar = function Snackbar(options) { + /** + * 配置参数 + */ + this.options = extend({}, DEFAULT_OPTIONS$c); + /** + * 当前 Snackbar 的状态 + */ + this.state = 'closed'; + /** + * setTimeout 的 ID + */ + this.timeoutId = null; + extend(this.options, options); + // 按钮颜色 + var buttonColorStyle = ''; + var buttonColorClass = ''; + if (this.options.buttonColor.indexOf('#') === 0 || + this.options.buttonColor.indexOf('rgb') === 0) { + buttonColorStyle = "style=\"color:" + (this.options.buttonColor) + "\""; + } + else if (this.options.buttonColor !== '') { + buttonColorClass = "mdui-text-color-" + (this.options.buttonColor); + } + // 添加 HTML + this.$element = $('
          ' + + "
          " + (this.options.message) + "
          " + + (this.options.buttonText + ? ("" + (this.options.buttonText) + "") + : '') + + '
          ').appendTo(document.body); + // 设置位置 + this.setPosition('close'); + this.$element.reflow().addClass(("mdui-snackbar-" + (this.options.position))); + }; + /** + * 点击 Snackbar 外面的区域关闭 + * @param event + */ + Snackbar.prototype.closeOnOutsideClick = function closeOnOutsideClick (event) { + var $target = $(event.target); + if (!$target.hasClass('mdui-snackbar') && + !$target.parents('.mdui-snackbar').length) { + currentInst$1.close(); + } + }; + /** + * 设置 Snackbar 的位置 + * @param state + */ + Snackbar.prototype.setPosition = function setPosition (state) { + var snackbarHeight = this.$element[0].clientHeight; + var position = this.options.position; + var translateX; + var translateY; + // translateX + if (position === 'bottom' || position === 'top') { + translateX = '-50%'; + } + else { + translateX = '0'; + } + // translateY + if (state === 'open') { + translateY = '0'; + } + else { + if (position === 'bottom') { + translateY = snackbarHeight; + } + if (position === 'top') { + translateY = -snackbarHeight; + } + if (position === 'left-top' || position === 'right-top') { + translateY = -snackbarHeight - 24; + } + if (position === 'left-bottom' || position === 'right-bottom') { + translateY = snackbarHeight + 24; + } + } + this.$element.transform(("translate(" + translateX + "," + translateY + "px")); + }; + /** + * 打开 Snackbar + */ + Snackbar.prototype.open = function open () { + var this$1 = this; + + if (this.state === 'opening' || this.state === 'opened') { + return; + } + // 如果当前有正在显示的 Snackbar,则先加入队列,等旧 Snackbar 关闭后再打开 + if (currentInst$1) { + queue(queueName$1, function () { return this$1.open(); }); + return; + } + currentInst$1 = this; + // 开始打开 + this.state = 'opening'; + this.options.onOpen(this); + this.setPosition('open'); + this.$element.transitionEnd(function () { + if (this$1.state !== 'opening') { + return; + } + this$1.state = 'opened'; + this$1.options.onOpened(this$1); + // 有按钮时绑定事件 + if (this$1.options.buttonText) { + this$1.$element.find('.mdui-snackbar-action').on('click', function () { + this$1.options.onButtonClick(this$1); + if (this$1.options.closeOnButtonClick) { + this$1.close(); + } + }); + } + // 点击 snackbar 的事件 + this$1.$element.on('click', function (event) { + if (!$(event.target).hasClass('mdui-snackbar-action')) { + this$1.options.onClick(this$1); + } + }); + // 点击 Snackbar 外面的区域关闭 + if (this$1.options.closeOnOutsideClick) { + $document.on(startEvent, this$1.closeOnOutsideClick); + } + // 超时后自动关闭 + if (this$1.options.timeout) { + this$1.timeoutId = setTimeout(function () { return this$1.close(); }, this$1.options.timeout); + } + }); + }; + /** + * 关闭 Snackbar + */ + Snackbar.prototype.close = function close () { + var this$1 = this; + + if (this.state === 'closing' || this.state === 'closed') { + return; + } + if (this.timeoutId) { + clearTimeout(this.timeoutId); + } + if (this.options.closeOnOutsideClick) { + $document.off(startEvent, this.closeOnOutsideClick); + } + this.state = 'closing'; + this.options.onClose(this); + this.setPosition('close'); + this.$element.transitionEnd(function () { + if (this$1.state !== 'closing') { + return; + } + currentInst$1 = null; + this$1.state = 'closed'; + this$1.options.onClosed(this$1); + this$1.$element.remove(); + dequeue(queueName$1); + }); + }; + mdui.snackbar = function (message, options) { + if ( options === void 0 ) options = {}; + + if (isString(message)) { + options.message = message; + } + else { + options = message; + } + var instance = new Snackbar(options); + instance.open(); + return instance; + }; + + $(function () { + // 切换导航项 + $document.on('click', '.mdui-bottom-nav>a', function () { + var $item = $(this); + var $bottomNav = $item.parent(); + $bottomNav.children('a').each(function (index, item) { + var isThis = $item.is(item); + if (isThis) { + componentEvent('change', 'bottomNav', $bottomNav[0], undefined, { + index: index, + }); + } + isThis + ? $(item).addClass('mdui-bottom-nav-active') + : $(item).removeClass('mdui-bottom-nav-active'); + }); + }); + // 滚动时隐藏 mdui-bottom-nav-scroll-hide + mdui.mutation('.mdui-bottom-nav-scroll-hide', function () { + new mdui.Headroom(this, { + pinnedClass: 'mdui-headroom-pinned-down', + unpinnedClass: 'mdui-headroom-unpinned-down', + }); + }); + }); + + /** + * layer 的 HTML 结构 + * @param index + */ + function layerHTML(index) { + if ( index === void 0 ) index = false; + + return ("
          " + + '
          ' + + '
          ' + + '
          ' + + '
          ' + + '
          ' + + '
          ' + + '
          ' + + '
          ' + + '
          ' + + '
          '); + } + /** + * 填充 HTML + * @param spinner + */ + function fillHTML(spinner) { + var $spinner = $(spinner); + var layer = $spinner.hasClass('mdui-spinner-colorful') + ? layerHTML(1) + layerHTML(2) + layerHTML(3) + layerHTML(4) + : layerHTML(); + $spinner.html(layer); + } + $(function () { + // 页面加载完后自动填充 HTML 结构 + mdui.mutation('.mdui-spinner', function () { + fillHTML(this); + }); + }); + mdui.updateSpinners = function (selector) { + var $elements = isUndefined(selector) ? $('.mdui-spinner') : $(selector); + $elements.each(function () { + fillHTML(this); + }); + }; + + var DEFAULT_OPTIONS$d = { + position: 'auto', + align: 'auto', + gutter: 16, + fixed: false, + covered: 'auto', + subMenuTrigger: 'hover', + subMenuDelay: 200, + }; + var Menu = function Menu(anchorSelector, menuSelector, options) { + var this$1 = this; + if ( options === void 0 ) options = {}; + + /** + * 配置参数 + */ + this.options = extend({}, DEFAULT_OPTIONS$d); + /** + * 当前菜单状态 + */ + this.state = 'closed'; + this.$anchor = $(anchorSelector).first(); + this.$element = $(menuSelector).first(); + // 触发菜单的元素 和 菜单必须是同级的元素,否则菜单可能不能定位 + if (!this.$anchor.parent().is(this.$element.parent())) { + throw new Error('anchorSelector and menuSelector must be siblings'); + } + extend(this.options, options); + // 是否是级联菜单 + this.isCascade = this.$element.hasClass('mdui-menu-cascade'); + // covered 参数处理 + this.isCovered = + this.options.covered === 'auto' ? !this.isCascade : this.options.covered; + // 点击触发菜单切换 + this.$anchor.on('click', function () { return this$1.toggle(); }); + // 点击菜单外面区域关闭菜单 + $document.on('click touchstart', function (event) { + var $target = $(event.target); + if (this$1.isOpen() && + !$target.is(this$1.$element) && + !contains(this$1.$element[0], $target[0]) && + !$target.is(this$1.$anchor) && + !contains(this$1.$anchor[0], $target[0])) { + this$1.close(); + } + }); + // 点击不含子菜单的菜单条目关闭菜单 + // eslint-disable-next-line @typescript-eslint/no-this-alias + var that = this; + $document.on('click', '.mdui-menu-item', function () { + var $item = $(this); + if (!$item.find('.mdui-menu').length && + $item.attr('disabled') === undefined) { + that.close(); + } + }); + // 绑定点击或鼠标移入含子菜单的条目的事件 + this.bindSubMenuEvent(); + // 窗口大小变化时,重新调整菜单位置 + $window.on('resize', $.throttle(function () { return this$1.readjust(); }, 100)); + }; + /** + * 是否为打开状态 + */ + Menu.prototype.isOpen = function isOpen () { + return this.state === 'opening' || this.state === 'opened'; + }; + /** + * 触发组件事件 + * @param name + */ + Menu.prototype.triggerEvent = function triggerEvent (name) { + componentEvent(name, 'menu', this.$element, this); + }; + /** + * 调整主菜单位置 + */ + Menu.prototype.readjust = function readjust () { + var menuLeft; + var menuTop; + // 菜单位置和方向 + var position; + var align; + // window 窗口的宽度和高度 + var windowHeight = $window.height(); + var windowWidth = $window.width(); + // 配置参数 + var gutter = this.options.gutter; + var isCovered = this.isCovered; + var isFixed = this.options.fixed; + // 动画方向参数 + var transformOriginX; + var transformOriginY; + // 菜单的原始宽度和高度 + var menuWidth = this.$element.width(); + var menuHeight = this.$element.height(); + // 触发菜单的元素在窗口中的位置 + var anchorRect = this.$anchor[0].getBoundingClientRect(); + var anchorTop = anchorRect.top; + var anchorLeft = anchorRect.left; + var anchorHeight = anchorRect.height; + var anchorWidth = anchorRect.width; + var anchorBottom = windowHeight - anchorTop - anchorHeight; + var anchorRight = windowWidth - anchorLeft - anchorWidth; + // 触发元素相对其拥有定位属性的父元素的位置 + var anchorOffsetTop = this.$anchor[0].offsetTop; + var anchorOffsetLeft = this.$anchor[0].offsetLeft; + // 自动判断菜单位置 + if (this.options.position === 'auto') { + if (anchorBottom + (isCovered ? anchorHeight : 0) > menuHeight + gutter) { + // 判断下方是否放得下菜单 + position = 'bottom'; + } + else if (anchorTop + (isCovered ? anchorHeight : 0) > + menuHeight + gutter) { + // 判断上方是否放得下菜单 + position = 'top'; + } + else { + // 上下都放不下,居中显示 + position = 'center'; + } + } + else { + position = this.options.position; + } + // 自动判断菜单对齐方式 + if (this.options.align === 'auto') { + if (anchorRight + anchorWidth > menuWidth + gutter) { + // 判断右侧是否放得下菜单 + align = 'left'; + } + else if (anchorLeft + anchorWidth > menuWidth + gutter) { + // 判断左侧是否放得下菜单 + align = 'right'; + } + else { + // 左右都放不下,居中显示 + align = 'center'; + } + } + else { + align = this.options.align; + } + // 设置菜单位置 + if (position === 'bottom') { + transformOriginY = '0'; + menuTop = + (isCovered ? 0 : anchorHeight) + + (isFixed ? anchorTop : anchorOffsetTop); + } + else if (position === 'top') { + transformOriginY = '100%'; + menuTop = + (isCovered ? anchorHeight : 0) + + (isFixed ? anchorTop - menuHeight : anchorOffsetTop - menuHeight); + } + else { + transformOriginY = '50%'; + // =====================在窗口中居中 + // 显示的菜单的高度,简单菜单高度不超过窗口高度,若超过了则在菜单内部显示滚动条 + // 级联菜单内部不允许出现滚动条 + var menuHeightTemp = menuHeight; + // 简单菜单比窗口高时,限制菜单高度 + if (!this.isCascade) { + if (menuHeight + gutter * 2 > windowHeight) { + menuHeightTemp = windowHeight - gutter * 2; + this.$element.height(menuHeightTemp); + } + } + menuTop = + (windowHeight - menuHeightTemp) / 2 + + (isFixed ? 0 : anchorOffsetTop - anchorTop); + } + this.$element.css('top', (menuTop + "px")); + // 设置菜单对齐方式 + if (align === 'left') { + transformOriginX = '0'; + menuLeft = isFixed ? anchorLeft : anchorOffsetLeft; + } + else if (align === 'right') { + transformOriginX = '100%'; + menuLeft = isFixed + ? anchorLeft + anchorWidth - menuWidth + : anchorOffsetLeft + anchorWidth - menuWidth; + } + else { + transformOriginX = '50%'; + //=======================在窗口中居中 + // 显示的菜单的宽度,菜单宽度不能超过窗口宽度 + var menuWidthTemp = menuWidth; + // 菜单比窗口宽,限制菜单宽度 + if (menuWidth + gutter * 2 > windowWidth) { + menuWidthTemp = windowWidth - gutter * 2; + this.$element.width(menuWidthTemp); + } + menuLeft = + (windowWidth - menuWidthTemp) / 2 + + (isFixed ? 0 : anchorOffsetLeft - anchorLeft); + } + this.$element.css('left', (menuLeft + "px")); + // 设置菜单动画方向 + this.$element.transformOrigin((transformOriginX + " " + transformOriginY)); + }; + /** + * 调整子菜单的位置 + * @param $submenu + */ + Menu.prototype.readjustSubmenu = function readjustSubmenu ($submenu) { + var $item = $submenu.parent('.mdui-menu-item'); + var submenuTop; + var submenuLeft; + // 子菜单位置和方向 + var position; + var align; + // window 窗口的宽度和高度 + var windowHeight = $window.height(); + var windowWidth = $window.width(); + // 动画方向参数 + var transformOriginX; + var transformOriginY; + // 子菜单的原始宽度和高度 + var submenuWidth = $submenu.width(); + var submenuHeight = $submenu.height(); + // 触发子菜单的菜单项的宽度高度 + var itemRect = $item[0].getBoundingClientRect(); + var itemWidth = itemRect.width; + var itemHeight = itemRect.height; + var itemLeft = itemRect.left; + var itemTop = itemRect.top; + // 判断菜单上下位置 + if (windowHeight - itemTop > submenuHeight) { + // 判断下方是否放得下菜单 + position = 'bottom'; + } + else if (itemTop + itemHeight > submenuHeight) { + // 判断上方是否放得下菜单 + position = 'top'; + } + else { + // 默认放在下方 + position = 'bottom'; + } + // 判断菜单左右位置 + if (windowWidth - itemLeft - itemWidth > submenuWidth) { + // 判断右侧是否放得下菜单 + align = 'left'; + } + else if (itemLeft > submenuWidth) { + // 判断左侧是否放得下菜单 + align = 'right'; + } + else { + // 默认放在右侧 + align = 'left'; + } + // 设置菜单位置 + if (position === 'bottom') { + transformOriginY = '0'; + submenuTop = '0'; + } + else if (position === 'top') { + transformOriginY = '100%'; + submenuTop = -submenuHeight + itemHeight; + } + $submenu.css('top', (submenuTop + "px")); + // 设置菜单对齐方式 + if (align === 'left') { + transformOriginX = '0'; + submenuLeft = itemWidth; + } + else if (align === 'right') { + transformOriginX = '100%'; + submenuLeft = -submenuWidth; + } + $submenu.css('left', (submenuLeft + "px")); + // 设置菜单动画方向 + $submenu.transformOrigin((transformOriginX + " " + transformOriginY)); + }; + /** + * 打开子菜单 + * @param $submenu + */ + Menu.prototype.openSubMenu = function openSubMenu ($submenu) { + this.readjustSubmenu($submenu); + $submenu + .addClass('mdui-menu-open') + .parent('.mdui-menu-item') + .addClass('mdui-menu-item-active'); + }; + /** + * 关闭子菜单,及其嵌套的子菜单 + * @param $submenu + */ + Menu.prototype.closeSubMenu = function closeSubMenu ($submenu) { + // 关闭子菜单 + $submenu + .removeClass('mdui-menu-open') + .addClass('mdui-menu-closing') + .transitionEnd(function () { return $submenu.removeClass('mdui-menu-closing'); }) + // 移除激活状态的样式 + .parent('.mdui-menu-item') + .removeClass('mdui-menu-item-active'); + // 循环关闭嵌套的子菜单 + $submenu.find('.mdui-menu').each(function (_, menu) { + var $subSubmenu = $(menu); + $subSubmenu + .removeClass('mdui-menu-open') + .addClass('mdui-menu-closing') + .transitionEnd(function () { return $subSubmenu.removeClass('mdui-menu-closing'); }) + .parent('.mdui-menu-item') + .removeClass('mdui-menu-item-active'); + }); + }; + /** + * 切换子菜单状态 + * @param $submenu + */ + Menu.prototype.toggleSubMenu = function toggleSubMenu ($submenu) { + $submenu.hasClass('mdui-menu-open') + ? this.closeSubMenu($submenu) + : this.openSubMenu($submenu); + }; + /** + * 绑定子菜单事件 + */ + Menu.prototype.bindSubMenuEvent = function bindSubMenuEvent () { + // eslint-disable-next-line @typescript-eslint/no-this-alias + var that = this; + // 点击打开子菜单 + this.$element.on('click', '.mdui-menu-item', function (event) { + var $item = $(this); + var $target = $(event.target); + // 禁用状态菜单不操作 + if ($item.attr('disabled') !== undefined) { + return; + } + // 没有点击在子菜单的菜单项上时,不操作(点在了子菜单的空白区域、或分隔线上) + if ($target.is('.mdui-menu') || $target.is('.mdui-divider')) { + return; + } + // 阻止冒泡,点击菜单项时只在最后一级的 mdui-menu-item 上生效,不向上冒泡 + if (!$target.parents('.mdui-menu-item').first().is($item)) { + return; + } + // 当前菜单的子菜单 + var $submenu = $item.children('.mdui-menu'); + // 先关闭除当前子菜单外的所有同级子菜单 + $item + .parent('.mdui-menu') + .children('.mdui-menu-item') + .each(function (_, item) { + var $tmpSubmenu = $(item).children('.mdui-menu'); + if ($tmpSubmenu.length && + (!$submenu.length || !$tmpSubmenu.is($submenu))) { + that.closeSubMenu($tmpSubmenu); + } + }); + // 切换当前子菜单 + if ($submenu.length) { + that.toggleSubMenu($submenu); + } + }); + if (this.options.subMenuTrigger === 'hover') { + // 临时存储 setTimeout 对象 + var timeout = null; + var timeoutOpen = null; + this.$element.on('mouseover mouseout', '.mdui-menu-item', function (event) { + var $item = $(this); + var eventType = event.type; + var $relatedTarget = $(event.relatedTarget); + // 禁用状态的菜单不操作 + if ($item.attr('disabled') !== undefined) { + return; + } + // 用 mouseover 模拟 mouseenter + if (eventType === 'mouseover') { + if (!$item.is($relatedTarget) && + contains($item[0], $relatedTarget[0])) { + return; + } + } + // 用 mouseout 模拟 mouseleave + else if (eventType === 'mouseout') { + if ($item.is($relatedTarget) || + contains($item[0], $relatedTarget[0])) { + return; + } + } + // 当前菜单项下的子菜单,未必存在 + var $submenu = $item.children('.mdui-menu'); + // 鼠标移入菜单项时,显示菜单项下的子菜单 + if (eventType === 'mouseover') { + if ($submenu.length) { + // 当前子菜单准备打开时,如果当前子菜单正准备着关闭,不用再关闭了 + var tmpClose = $submenu.data('timeoutClose.mdui.menu'); + if (tmpClose) { + clearTimeout(tmpClose); + } + // 如果当前子菜单已经打开,不操作 + if ($submenu.hasClass('mdui-menu-open')) { + return; + } + // 当前子菜单准备打开时,其他准备打开的子菜单不用再打开了 + clearTimeout(timeoutOpen); + // 准备打开当前子菜单 + timeout = timeoutOpen = setTimeout(function () { return that.openSubMenu($submenu); }, that.options.subMenuDelay); + $submenu.data('timeoutOpen.mdui.menu', timeout); + } + } + // 鼠标移出菜单项时,关闭菜单项下的子菜单 + else if (eventType === 'mouseout') { + if ($submenu.length) { + // 鼠标移出菜单项时,如果当前菜单项下的子菜单正准备打开,不用再打开了 + var tmpOpen = $submenu.data('timeoutOpen.mdui.menu'); + if (tmpOpen) { + clearTimeout(tmpOpen); + } + // 准备关闭当前子菜单 + timeout = setTimeout(function () { return that.closeSubMenu($submenu); }, that.options.subMenuDelay); + $submenu.data('timeoutClose.mdui.menu', timeout); + } + } + }); + } + }; + /** + * 动画结束回调 + */ + Menu.prototype.transitionEnd = function transitionEnd () { + this.$element.removeClass('mdui-menu-closing'); + if (this.state === 'opening') { + this.state = 'opened'; + this.triggerEvent('opened'); + } + if (this.state === 'closing') { + this.state = 'closed'; + this.triggerEvent('closed'); + // 关闭后,恢复菜单样式到默认状态,并恢复 fixed 定位 + this.$element.css({ + top: '', + left: '', + width: '', + position: 'fixed', + }); + } + }; + /** + * 切换菜单状态 + */ + Menu.prototype.toggle = function toggle () { + this.isOpen() ? this.close() : this.open(); + }; + /** + * 打开菜单 + */ + Menu.prototype.open = function open () { + var this$1 = this; + + if (this.isOpen()) { + return; + } + this.state = 'opening'; + this.triggerEvent('open'); + this.readjust(); + this.$element + // 菜单隐藏状态使用使用 fixed 定位。 + .css('position', this.options.fixed ? 'fixed' : 'absolute') + .addClass('mdui-menu-open') + .transitionEnd(function () { return this$1.transitionEnd(); }); + }; + /** + * 关闭菜单 + */ + Menu.prototype.close = function close () { + var this$1 = this; + + if (!this.isOpen()) { + return; + } + this.state = 'closing'; + this.triggerEvent('close'); + // 菜单开始关闭时,关闭所有子菜单 + this.$element.find('.mdui-menu').each(function (_, submenu) { + this$1.closeSubMenu($(submenu)); + }); + this.$element + .removeClass('mdui-menu-open') + .addClass('mdui-menu-closing') + .transitionEnd(function () { return this$1.transitionEnd(); }); + }; + mdui.Menu = Menu; + + var customAttr$9 = 'mdui-menu'; + var dataName$3 = '_mdui_menu'; + $(function () { + $document.on('click', ("[" + customAttr$9 + "]"), function () { + var $this = $(this); + var instance = $this.data(dataName$3); + if (!instance) { + var options = parseOptions(this, customAttr$9); + var menuSelector = options.target; + // @ts-ignore + delete options.target; + instance = new mdui.Menu($this, menuSelector, options); + $this.data(dataName$3, instance); + instance.toggle(); + } + }); + }); + + return mdui; + +}))); +//# sourceMappingURL=mdui.js.map diff --git a/static/mdui/js/mdui.js.map b/static/mdui/js/mdui.js.map new file mode 100644 index 0000000..fe6ebe7 --- /dev/null +++ b/static/mdui/js/mdui.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mdui.js","sources":["../../node_modules/mdn-polyfills/MouseEvent.js","../../node_modules/mdn-polyfills/CustomEvent.js","../../node_modules/promise-polyfill/src/finally.js","../../node_modules/promise-polyfill/src/allSettled.js","../../node_modules/promise-polyfill/src/index.js","../../node_modules/promise-polyfill/src/polyfill.js","../../node_modules/mdui.jq/es/utils.js","../../node_modules/mdui.jq/es/functions/each.js","../../node_modules/mdui.jq/es/JQ.js","../../node_modules/mdui.jq/es/$.js","../../src/mdui.ts","../../node_modules/mdui.jq/es/methods/each.js","../../node_modules/mdui.jq/es/functions/contains.js","../../node_modules/mdui.jq/es/functions/merge.js","../../node_modules/mdui.jq/es/methods/get.js","../../node_modules/mdui.jq/es/methods/find.js","../../node_modules/mdui.jq/es/methods/utils/event.js","../../node_modules/mdui.jq/es/methods/trigger.js","../../node_modules/mdui.jq/es/functions/extend.js","../../node_modules/mdui.jq/es/functions/param.js","../../node_modules/mdui.jq/es/functions/utils/ajax.js","../../node_modules/mdui.jq/es/functions/ajax.js","../../node_modules/mdui.jq/es/static/ajax.js","../../node_modules/mdui.jq/es/functions/ajaxSetup.js","../../node_modules/mdui.jq/es/static/ajaxSetup.js","../../node_modules/mdui.jq/es/static/contains.js","../../node_modules/mdui.jq/es/functions/utils/data.js","../../node_modules/mdui.jq/es/functions/data.js","../../node_modules/mdui.jq/es/static/data.js","../../node_modules/mdui.jq/es/static/each.js","../../node_modules/mdui.jq/es/static/extend.js","../../node_modules/mdui.jq/es/functions/map.js","../../node_modules/mdui.jq/es/static/map.js","../../node_modules/mdui.jq/es/static/merge.js","../../node_modules/mdui.jq/es/static/param.js","../../node_modules/mdui.jq/es/functions/removeData.js","../../node_modules/mdui.jq/es/static/removeData.js","../../node_modules/mdui.jq/es/functions/unique.js","../../node_modules/mdui.jq/es/static/unique.js","../../node_modules/mdui.jq/es/methods/add.js","../../node_modules/mdui.jq/es/methods/addClass.js","../../node_modules/mdui.jq/es/methods/insertBefore.js","../../node_modules/mdui.jq/es/methods/before.js","../../node_modules/mdui.jq/es/methods/off.js","../../node_modules/mdui.jq/es/methods/on.js","../../node_modules/mdui.jq/es/methods/ajaxStart.js","../../node_modules/mdui.jq/es/methods/map.js","../../node_modules/mdui.jq/es/methods/clone.js","../../node_modules/mdui.jq/es/methods/is.js","../../node_modules/mdui.jq/es/methods/remove.js","../../node_modules/mdui.jq/es/methods/append.js","../../node_modules/mdui.jq/es/methods/appendTo.js","../../node_modules/mdui.jq/es/methods/attr.js","../../node_modules/mdui.jq/es/methods/children.js","../../node_modules/mdui.jq/es/methods/slice.js","../../node_modules/mdui.jq/es/methods/eq.js","../../node_modules/mdui.jq/es/methods/utils/dir.js","../../node_modules/mdui.jq/es/methods/parent.js","../../node_modules/mdui.jq/es/methods/closest.js","../../node_modules/mdui.jq/es/methods/data.js","../../node_modules/mdui.jq/es/methods/empty.js","../../node_modules/mdui.jq/es/methods/extend.js","../../node_modules/mdui.jq/es/methods/filter.js","../../node_modules/mdui.jq/es/methods/first.js","../../node_modules/mdui.jq/es/methods/has.js","../../node_modules/mdui.jq/es/methods/hasClass.js","../../node_modules/mdui.jq/es/methods/width.js","../../node_modules/mdui.jq/es/methods/hide.js","../../node_modules/mdui.jq/es/methods/val.js","../../node_modules/mdui.jq/es/methods/index.js","../../node_modules/mdui.jq/es/methods/last.js","../../node_modules/mdui.jq/es/methods/next.js","../../node_modules/mdui.jq/es/methods/not.js","../../node_modules/mdui.jq/es/methods/offsetParent.js","../../node_modules/mdui.jq/es/methods/position.js","../../node_modules/mdui.jq/es/methods/offset.js","../../node_modules/mdui.jq/es/methods/one.js","../../node_modules/mdui.jq/es/methods/prev.js","../../node_modules/mdui.jq/es/methods/removeAttr.js","../../node_modules/mdui.jq/es/methods/removeData.js","../../node_modules/mdui.jq/es/methods/removeProp.js","../../node_modules/mdui.jq/es/methods/replaceWith.js","../../node_modules/mdui.jq/es/methods/replaceAll.js","../../node_modules/mdui.jq/es/methods/serializeArray.js","../../node_modules/mdui.jq/es/methods/serialize.js","../../node_modules/mdui.jq/es/methods/show.js","../../node_modules/mdui.jq/es/methods/siblings.js","../../node_modules/mdui.jq/es/methods/toggle.js","../../src/jq_extends/methods/reflow.ts","../../src/jq_extends/methods/transition.ts","../../src/jq_extends/methods/transitionEnd.ts","../../src/jq_extends/methods/transformOrigin.ts","../../src/jq_extends/methods/transform.ts","../../src/utils/mutation.ts","../../src/jq_extends/methods/mutation.ts","../../src/jq_extends/static/showOverlay.ts","../../src/jq_extends/static/hideOverlay.ts","../../src/jq_extends/static/lockScreen.ts","../../src/jq_extends/static/unlockScreen.ts","../../src/jq_extends/static/throttle.ts","../../src/jq_extends/static/guid.ts","../../src/global/mutation.ts","../../src/utils/componentEvent.ts","../../src/utils/dom.ts","../../src/components/headroom/index.ts","../../src/utils/parseOptions.ts","../../src/components/headroom/customAttr.ts","../../src/components/collapse/collapseAbstract.ts","../../src/components/collapse/index.ts","../../src/components/collapse/customAttr.ts","../../src/components/panel/index.ts","../../src/components/panel/customAttr.ts","../../src/components/table/index.ts","../../src/utils/touchHandler.ts","../../src/components/ripple/index.ts","../../src/components/textfield/index.ts","../../src/components/slider/index.ts","../../src/components/fab/index.ts","../../src/components/fab/customAttr.ts","../../src/components/select/index.ts","../../src/components/select/customAttr.ts","../../src/components/appbar/index.ts","../../src/components/tab/index.ts","../../src/components/tab/customAttr.ts","../../src/components/drawer/index.ts","../../src/components/drawer/customAttr.ts","../../src/utils/queue.ts","../../src/components/dialog/class.ts","../../src/components/dialog/index.ts","../../src/components/dialog/customAttr.ts","../../src/components/dialog/dialog.ts","../../src/components/dialog/alert.ts","../../src/components/dialog/confirm.ts","../../src/components/dialog/prompt.ts","../../src/components/tooltip/index.ts","../../src/components/tooltip/customAttr.ts","../../src/components/snackbar/index.ts","../../src/components/bottom_nav/index.ts","../../src/components/progress/spinner.ts","../../src/components/menu/index.ts","../../src/components/menu/customAttr.ts"],"sourcesContent":["!function(){try{return new MouseEvent(\"test\")}catch(e){}var e=function(e,t){t=t||{bubbles:!1,cancelable:!1};var n=document.createEvent(\"MouseEvent\");return n.initMouseEvent(e,t.bubbles,t.cancelable,window,0,t.screenX||0,t.screenY||0,t.clientX||0,t.clientY||0,t.ctrlKey||!1,t.altKey||!1,t.shiftKey||!1,t.metaKey||!1,t.button||0,t.relatedTarget||null),n};e.prototype=Event.prototype,window.MouseEvent=e}();\n","!function(){function t(t,e){e=e||{bubbles:!1,cancelable:!1,detail:void 0};var n=document.createEvent(\"CustomEvent\");return n.initCustomEvent(t,e.bubbles,e.cancelable,e.detail),n}\"function\"!=typeof window.CustomEvent&&(t.prototype=window.Event.prototype,window.CustomEvent=t)}();\n","/**\n * @this {Promise}\n */\nfunction finallyConstructor(callback) {\n var constructor = this.constructor;\n return this.then(\n function(value) {\n // @ts-ignore\n return constructor.resolve(callback()).then(function() {\n return value;\n });\n },\n function(reason) {\n // @ts-ignore\n return constructor.resolve(callback()).then(function() {\n // @ts-ignore\n return constructor.reject(reason);\n });\n }\n );\n}\n\nexport default finallyConstructor;\n","function allSettled(arr) {\n var P = this;\n return new P(function(resolve, reject) {\n if (!(arr && typeof arr.length !== 'undefined')) {\n return reject(\n new TypeError(\n typeof arr +\n ' ' +\n arr +\n ' is not iterable(cannot read property Symbol(Symbol.iterator))'\n )\n );\n }\n var args = Array.prototype.slice.call(arr);\n if (args.length === 0) return resolve([]);\n var remaining = args.length;\n\n function res(i, val) {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n var then = val.then;\n if (typeof then === 'function') {\n then.call(\n val,\n function(val) {\n res(i, val);\n },\n function(e) {\n args[i] = { status: 'rejected', reason: e };\n if (--remaining === 0) {\n resolve(args);\n }\n }\n );\n return;\n }\n }\n args[i] = { status: 'fulfilled', value: val };\n if (--remaining === 0) {\n resolve(args);\n }\n }\n\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n}\n\nexport default allSettled;\n","import promiseFinally from './finally';\nimport allSettled from './allSettled';\n\n// Store setTimeout reference so promise-polyfill will be unaffected by\n// other code modifying setTimeout (like sinon.useFakeTimers())\nvar setTimeoutFunc = setTimeout;\n\nfunction isArray(x) {\n return Boolean(x && typeof x.length !== 'undefined');\n}\n\nfunction noop() {}\n\n// Polyfill for Function.prototype.bind\nfunction bind(fn, thisArg) {\n return function() {\n fn.apply(thisArg, arguments);\n };\n}\n\n/**\n * @constructor\n * @param {Function} fn\n */\nfunction Promise(fn) {\n if (!(this instanceof Promise))\n throw new TypeError('Promises must be constructed via new');\n if (typeof fn !== 'function') throw new TypeError('not a function');\n /** @type {!number} */\n this._state = 0;\n /** @type {!boolean} */\n this._handled = false;\n /** @type {Promise|undefined} */\n this._value = undefined;\n /** @type {!Array} */\n this._deferreds = [];\n\n doResolve(fn, this);\n}\n\nfunction handle(self, deferred) {\n while (self._state === 3) {\n self = self._value;\n }\n if (self._state === 0) {\n self._deferreds.push(deferred);\n return;\n }\n self._handled = true;\n Promise._immediateFn(function() {\n var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n (self._state === 1 ? resolve : reject)(deferred.promise, self._value);\n return;\n }\n var ret;\n try {\n ret = cb(self._value);\n } catch (e) {\n reject(deferred.promise, e);\n return;\n }\n resolve(deferred.promise, ret);\n });\n}\n\nfunction resolve(self, newValue) {\n try {\n // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n if (newValue === self)\n throw new TypeError('A promise cannot be resolved with itself.');\n if (\n newValue &&\n (typeof newValue === 'object' || typeof newValue === 'function')\n ) {\n var then = newValue.then;\n if (newValue instanceof Promise) {\n self._state = 3;\n self._value = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(bind(then, newValue), self);\n return;\n }\n }\n self._state = 1;\n self._value = newValue;\n finale(self);\n } catch (e) {\n reject(self, e);\n }\n}\n\nfunction reject(self, newValue) {\n self._state = 2;\n self._value = newValue;\n finale(self);\n}\n\nfunction finale(self) {\n if (self._state === 2 && self._deferreds.length === 0) {\n Promise._immediateFn(function() {\n if (!self._handled) {\n Promise._unhandledRejectionFn(self._value);\n }\n });\n }\n\n for (var i = 0, len = self._deferreds.length; i < len; i++) {\n handle(self, self._deferreds[i]);\n }\n self._deferreds = null;\n}\n\n/**\n * @constructor\n */\nfunction Handler(onFulfilled, onRejected, promise) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n}\n\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\nfunction doResolve(fn, self) {\n var done = false;\n try {\n fn(\n function(value) {\n if (done) return;\n done = true;\n resolve(self, value);\n },\n function(reason) {\n if (done) return;\n done = true;\n reject(self, reason);\n }\n );\n } catch (ex) {\n if (done) return;\n done = true;\n reject(self, ex);\n }\n}\n\nPromise.prototype['catch'] = function(onRejected) {\n return this.then(null, onRejected);\n};\n\nPromise.prototype.then = function(onFulfilled, onRejected) {\n // @ts-ignore\n var prom = new this.constructor(noop);\n\n handle(this, new Handler(onFulfilled, onRejected, prom));\n return prom;\n};\n\nPromise.prototype['finally'] = promiseFinally;\n\nPromise.all = function(arr) {\n return new Promise(function(resolve, reject) {\n if (!isArray(arr)) {\n return reject(new TypeError('Promise.all accepts an array'));\n }\n\n var args = Array.prototype.slice.call(arr);\n if (args.length === 0) return resolve([]);\n var remaining = args.length;\n\n function res(i, val) {\n try {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n var then = val.then;\n if (typeof then === 'function') {\n then.call(\n val,\n function(val) {\n res(i, val);\n },\n reject\n );\n return;\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n } catch (ex) {\n reject(ex);\n }\n }\n\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n};\n\nPromise.allSettled = allSettled;\n\nPromise.resolve = function(value) {\n if (value && typeof value === 'object' && value.constructor === Promise) {\n return value;\n }\n\n return new Promise(function(resolve) {\n resolve(value);\n });\n};\n\nPromise.reject = function(value) {\n return new Promise(function(resolve, reject) {\n reject(value);\n });\n};\n\nPromise.race = function(arr) {\n return new Promise(function(resolve, reject) {\n if (!isArray(arr)) {\n return reject(new TypeError('Promise.race accepts an array'));\n }\n\n for (var i = 0, len = arr.length; i < len; i++) {\n Promise.resolve(arr[i]).then(resolve, reject);\n }\n });\n};\n\n// Use polyfill for setImmediate for performance gains\nPromise._immediateFn =\n // @ts-ignore\n (typeof setImmediate === 'function' &&\n function(fn) {\n // @ts-ignore\n setImmediate(fn);\n }) ||\n function(fn) {\n setTimeoutFunc(fn, 0);\n };\n\nPromise._unhandledRejectionFn = function _unhandledRejectionFn(err) {\n if (typeof console !== 'undefined' && console) {\n console.warn('Possible Unhandled Promise Rejection:', err); // eslint-disable-line no-console\n }\n};\n\nexport default Promise;\n","import Promise from './index';\nimport promiseFinally from './finally';\nimport allSettled from './allSettled';\n\n/** @suppress {undefinedVars} */\nvar globalNS = (function() {\n // the only reliable means to get the global object is\n // `Function('return this')()`\n // However, this causes CSP violations in Chrome apps.\n if (typeof self !== 'undefined') {\n return self;\n }\n if (typeof window !== 'undefined') {\n return window;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n throw new Error('unable to locate global object');\n})();\n\n// Expose the polyfill if Promise is undefined or set to a\n// non-function value. The latter can be due to a named HTMLElement\n// being exposed by browsers for legacy reasons.\n// https://github.com/taylorhakes/promise-polyfill/issues/114\nif (typeof globalNS['Promise'] !== 'function') {\n globalNS['Promise'] = Promise;\n} else if (!globalNS.Promise.prototype['finally']) {\n globalNS.Promise.prototype['finally'] = promiseFinally;\n} else if (!globalNS.Promise.allSettled) {\n globalNS.Promise.allSettled = allSettled;\n}\n","function isNodeName(element, name) {\n return element.nodeName.toLowerCase() === name.toLowerCase();\n}\nfunction isFunction(target) {\n return typeof target === 'function';\n}\nfunction isString(target) {\n return typeof target === 'string';\n}\nfunction isNumber(target) {\n return typeof target === 'number';\n}\nfunction isBoolean(target) {\n return typeof target === 'boolean';\n}\nfunction isUndefined(target) {\n return typeof target === 'undefined';\n}\nfunction isNull(target) {\n return target === null;\n}\nfunction isWindow(target) {\n return target instanceof Window;\n}\nfunction isDocument(target) {\n return target instanceof Document;\n}\nfunction isElement(target) {\n return target instanceof Element;\n}\nfunction isNode(target) {\n return target instanceof Node;\n}\n/**\n * 是否是 IE 浏览器\n */\nfunction isIE() {\n // @ts-ignore\n return !!window.document.documentMode;\n}\nfunction isArrayLike(target) {\n if (isFunction(target) || isWindow(target)) {\n return false;\n }\n return isNumber(target.length);\n}\nfunction isObjectLike(target) {\n return typeof target === 'object' && target !== null;\n}\nfunction toElement(target) {\n return isDocument(target) ? target.documentElement : target;\n}\n/**\n * 把用 - 分隔的字符串转为驼峰(如 box-sizing 转换为 boxSizing)\n * @param string\n */\nfunction toCamelCase(string) {\n return string\n .replace(/^-ms-/, 'ms-')\n .replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());\n}\n/**\n * 把驼峰法转为用 - 分隔的字符串(如 boxSizing 转换为 box-sizing)\n * @param string\n */\nfunction toKebabCase(string) {\n return string.replace(/[A-Z]/g, (replacer) => '-' + replacer.toLowerCase());\n}\n/**\n * 获取元素的样式值\n * @param element\n * @param name\n */\nfunction getComputedStyleValue(element, name) {\n return window.getComputedStyle(element).getPropertyValue(toKebabCase(name));\n}\n/**\n * 检查元素的 box-sizing 是否是 border-box\n * @param element\n */\nfunction isBorderBox(element) {\n return getComputedStyleValue(element, 'box-sizing') === 'border-box';\n}\n/**\n * 获取元素的 padding, border, margin 宽度(两侧宽度的和,单位为px)\n * @param element\n * @param direction\n * @param extra\n */\nfunction getExtraWidth(element, direction, extra) {\n const position = direction === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n return [0, 1].reduce((prev, _, index) => {\n let prop = extra + position[index];\n if (extra === 'border') {\n prop += 'Width';\n }\n return prev + parseFloat(getComputedStyleValue(element, prop) || '0');\n }, 0);\n}\n/**\n * 获取元素的样式值,对 width 和 height 进行过处理\n * @param element\n * @param name\n */\nfunction getStyle(element, name) {\n // width、height 属性使用 getComputedStyle 得到的值不准确,需要使用 getBoundingClientRect 获取\n if (name === 'width' || name === 'height') {\n const valueNumber = element.getBoundingClientRect()[name];\n if (isBorderBox(element)) {\n return `${valueNumber}px`;\n }\n return `${valueNumber -\n getExtraWidth(element, name, 'border') -\n getExtraWidth(element, name, 'padding')}px`;\n }\n return getComputedStyleValue(element, name);\n}\n/**\n * 获取子节点组成的数组\n * @param target\n * @param parent\n */\nfunction getChildNodesArray(target, parent) {\n const tempParent = document.createElement(parent);\n tempParent.innerHTML = target;\n return [].slice.call(tempParent.childNodes);\n}\n/**\n * 始终返回 false 的函数\n */\nfunction returnFalse() {\n return false;\n}\n/**\n * 数值单位的 CSS 属性\n */\nconst cssNumber = [\n 'animationIterationCount',\n 'columnCount',\n 'fillOpacity',\n 'flexGrow',\n 'flexShrink',\n 'fontWeight',\n 'gridArea',\n 'gridColumn',\n 'gridColumnEnd',\n 'gridColumnStart',\n 'gridRow',\n 'gridRowEnd',\n 'gridRowStart',\n 'lineHeight',\n 'opacity',\n 'order',\n 'orphans',\n 'widows',\n 'zIndex',\n 'zoom',\n];\nexport { isNodeName, isArrayLike, isObjectLike, isFunction, isString, isNumber, isBoolean, isUndefined, isNull, isWindow, isDocument, isElement, isNode, isIE, toElement, toCamelCase, toKebabCase, getComputedStyleValue, isBorderBox, getExtraWidth, getStyle, getChildNodesArray, returnFalse, cssNumber, };\n","import { isArrayLike } from '../utils';\nfunction each(target, callback) {\n if (isArrayLike(target)) {\n for (let i = 0; i < target.length; i += 1) {\n if (callback.call(target[i], i, target[i]) === false) {\n return target;\n }\n }\n }\n else {\n const keys = Object.keys(target);\n for (let i = 0; i < keys.length; i += 1) {\n if (callback.call(target[keys[i]], keys[i], target[keys[i]]) === false) {\n return target;\n }\n }\n }\n return target;\n}\nexport default each;\n","import each from './functions/each';\n/**\n * 为了使用模块扩充,这里不能使用默认导出\n */\nexport class JQ {\n constructor(arr) {\n this.length = 0;\n if (!arr) {\n return this;\n }\n each(arr, (i, item) => {\n // @ts-ignore\n this[i] = item;\n });\n this.length = arr.length;\n return this;\n }\n}\n","import each from './functions/each';\nimport { JQ } from './JQ';\nimport { getChildNodesArray, isArrayLike, isFunction, isNode, isString, } from './utils';\nfunction get$() {\n const $ = function (selector) {\n if (!selector) {\n return new JQ();\n }\n // JQ\n if (selector instanceof JQ) {\n return selector;\n }\n // function\n if (isFunction(selector)) {\n if (/complete|loaded|interactive/.test(document.readyState) &&\n document.body) {\n selector.call(document, $);\n }\n else {\n document.addEventListener('DOMContentLoaded', () => selector.call(document, $), false);\n }\n return new JQ([document]);\n }\n // String\n if (isString(selector)) {\n const html = selector.trim();\n // 根据 HTML 字符串创建 JQ 对象\n if (html[0] === '<' && html[html.length - 1] === '>') {\n let toCreate = 'div';\n const tags = {\n li: 'ul',\n tr: 'tbody',\n td: 'tr',\n th: 'tr',\n tbody: 'table',\n option: 'select',\n };\n each(tags, (childTag, parentTag) => {\n if (html.indexOf(`<${childTag}`) === 0) {\n toCreate = parentTag;\n return false;\n }\n return;\n });\n return new JQ(getChildNodesArray(html, toCreate));\n }\n // 根据 CSS 选择器创建 JQ 对象\n const isIdSelector = selector[0] === '#' && !selector.match(/[ .<>:~]/);\n if (!isIdSelector) {\n return new JQ(document.querySelectorAll(selector));\n }\n const element = document.getElementById(selector.slice(1));\n if (element) {\n return new JQ([element]);\n }\n return new JQ();\n }\n if (isArrayLike(selector) && !isNode(selector)) {\n return new JQ(selector);\n }\n return new JQ([selector]);\n };\n $.fn = JQ.prototype;\n return $;\n}\nconst $ = get$();\nexport default $;\n","import { MduiStatic } from './interfaces/MduiStatic';\nimport $ from 'mdui.jq/es/$';\n\n// 避免页面加载完后直接执行css动画\n// https://css-tricks.com/transitions-only-after-page-load/\nsetTimeout(() => $('body').addClass('mdui-loaded'));\n\nconst mdui = {\n $: $,\n} as MduiStatic;\n\nexport default mdui;\n","import $ from '../$';\nimport each from '../functions/each';\n$.fn.each = function (callback) {\n return each(this, callback);\n};\n","import { toElement } from '../utils';\n/**\n * 检查 container 元素内是否包含 contains 元素\n * @param container 父元素\n * @param contains 子元素\n * @example\n```js\ncontains( document, document.body ); // true\ncontains( document.getElementById('test'), document ); // false\ncontains( $('.container').get(0), $('.contains').get(0) ); // false\n```\n */\nfunction contains(container, contains) {\n return container !== contains && toElement(container).contains(contains);\n}\nexport default contains;\n","import each from './each';\n/**\n * 把第二个数组的元素追加到第一个数组中,并返回合并后的数组\n * @param first 第一个数组\n * @param second 该数组的元素将被追加到第一个数组中\n * @example\n```js\nmerge( [ 0, 1, 2 ], [ 2, 3, 4 ] )\n// [ 0, 1, 2, 2, 3, 4 ]\n```\n */\nfunction merge(first, second) {\n each(second, (_, value) => {\n first.push(value);\n });\n return first;\n}\nexport default merge;\n","import $ from '../$';\n$.fn.get = function (index) {\n return index === undefined\n ? [].slice.call(this)\n : this[index >= 0 ? index : index + this.length];\n};\n","import $ from '../$';\nimport merge from '../functions/merge';\nimport { JQ } from '../JQ';\nimport './each';\nimport './get';\n$.fn.find = function (selector) {\n const foundElements = [];\n this.each((_, element) => {\n merge(foundElements, $(element.querySelectorAll(selector)).get());\n });\n return new JQ(foundElements);\n};\n","import $ from '../../$';\nimport contains from '../../functions/contains';\nimport { isObjectLike } from '../../utils';\nimport '../find';\n// 存储事件\nconst handlers = {};\n// 元素ID\nlet mduiElementId = 1;\n/**\n * 为元素赋予一个唯一的ID\n */\nfunction getElementId(element) {\n const key = '_mduiEventId';\n // @ts-ignore\n if (!element[key]) {\n // @ts-ignore\n element[key] = ++mduiElementId;\n }\n // @ts-ignore\n return element[key];\n}\n/**\n * 解析事件名中的命名空间\n */\nfunction parse(type) {\n const parts = type.split('.');\n return {\n type: parts[0],\n ns: parts.slice(1).sort().join(' '),\n };\n}\n/**\n * 命名空间匹配规则\n */\nfunction matcherFor(ns) {\n return new RegExp('(?:^| )' + ns.replace(' ', ' .* ?') + '(?: |$)');\n}\n/**\n * 获取匹配的事件\n * @param element\n * @param type\n * @param func\n * @param selector\n */\nfunction getHandlers(element, type, func, selector) {\n const event = parse(type);\n return (handlers[getElementId(element)] || []).filter((handler) => handler &&\n (!event.type || handler.type === event.type) &&\n (!event.ns || matcherFor(event.ns).test(handler.ns)) &&\n (!func || getElementId(handler.func) === getElementId(func)) &&\n (!selector || handler.selector === selector));\n}\n/**\n * 添加事件监听\n * @param element\n * @param types\n * @param func\n * @param data\n * @param selector\n */\nfunction add(element, types, func, data, selector) {\n const elementId = getElementId(element);\n if (!handlers[elementId]) {\n handlers[elementId] = [];\n }\n // 传入 data.useCapture 来设置 useCapture: true\n let useCapture = false;\n if (isObjectLike(data) && data.useCapture) {\n useCapture = true;\n }\n types.split(' ').forEach((type) => {\n if (!type) {\n return;\n }\n const event = parse(type);\n function callFn(e, elem) {\n // 因为鼠标事件模拟事件的 detail 属性是只读的,因此在 e._detail 中存储参数\n const result = func.apply(elem, \n // @ts-ignore\n e._detail === undefined ? [e] : [e].concat(e._detail));\n if (result === false) {\n e.preventDefault();\n e.stopPropagation();\n }\n }\n function proxyFn(e) {\n // @ts-ignore\n if (e._ns && !matcherFor(e._ns).test(event.ns)) {\n return;\n }\n // @ts-ignore\n e._data = data;\n if (selector) {\n // 事件代理\n $(element)\n .find(selector)\n .get()\n .reverse()\n .forEach((elem) => {\n if (elem === e.target ||\n contains(elem, e.target)) {\n callFn(e, elem);\n }\n });\n }\n else {\n // 不使用事件代理\n callFn(e, element);\n }\n }\n const handler = {\n type: event.type,\n ns: event.ns,\n func,\n selector,\n id: handlers[elementId].length,\n proxy: proxyFn,\n };\n handlers[elementId].push(handler);\n element.addEventListener(handler.type, proxyFn, useCapture);\n });\n}\n/**\n * 移除事件监听\n * @param element\n * @param types\n * @param func\n * @param selector\n */\nfunction remove(element, types, func, selector) {\n const handlersInElement = handlers[getElementId(element)] || [];\n const removeEvent = (handler) => {\n delete handlersInElement[handler.id];\n element.removeEventListener(handler.type, handler.proxy, false);\n };\n if (!types) {\n handlersInElement.forEach((handler) => removeEvent(handler));\n }\n else {\n types.split(' ').forEach((type) => {\n if (type) {\n getHandlers(element, type, func, selector).forEach((handler) => removeEvent(handler));\n }\n });\n }\n}\nexport { parse, add, remove };\n","import $ from '../$';\nimport './each';\nimport { parse } from './utils/event';\n$.fn.trigger = function (type, extraParameters) {\n const event = parse(type);\n let eventObject;\n const eventParams = {\n bubbles: true,\n cancelable: true,\n };\n const isMouseEvent = ['click', 'mousedown', 'mouseup', 'mousemove'].indexOf(event.type) > -1;\n if (isMouseEvent) {\n // Note: MouseEvent 无法传入 detail 参数\n eventObject = new MouseEvent(event.type, eventParams);\n }\n else {\n eventParams.detail = extraParameters;\n eventObject = new CustomEvent(event.type, eventParams);\n }\n // @ts-ignore\n eventObject._detail = extraParameters;\n // @ts-ignore\n eventObject._ns = event.ns;\n return this.each(function () {\n this.dispatchEvent(eventObject);\n });\n};\n","import each from '../functions/each';\nimport { isUndefined } from '../utils';\nfunction extend(target, object1, ...objectN) {\n objectN.unshift(object1);\n each(objectN, (_, object) => {\n each(object, (prop, value) => {\n if (!isUndefined(value)) {\n target[prop] = value;\n }\n });\n });\n return target;\n}\nexport default extend;\n","import { isObjectLike } from '../utils';\nimport each from './each';\n/**\n * 将数组或对象序列化,序列化后的字符串可作为 URL 查询字符串使用\n *\n * 若传入数组,则格式必须和 serializeArray 方法的返回值一样\n * @param obj 对象或数组\n * @example\n```js\nparam({ width: 1680, height: 1050 });\n// width=1680&height=1050\n```\n * @example\n```js\nparam({ foo: { one: 1, two: 2 }})\n// foo[one]=1&foo[two]=2\n```\n * @example\n```js\nparam({ids: [1, 2, 3]})\n// ids[]=1&ids[]=2&ids[]=3\n```\n * @example\n```js\nparam([\n {\"name\":\"name\",\"value\":\"mdui\"},\n {\"name\":\"password\",\"value\":\"123456\"}\n])\n// name=mdui&password=123456\n```\n */\nfunction param(obj) {\n if (!isObjectLike(obj) && !Array.isArray(obj)) {\n return '';\n }\n const args = [];\n function destructure(key, value) {\n let keyTmp;\n if (isObjectLike(value)) {\n each(value, (i, v) => {\n if (Array.isArray(value) && !isObjectLike(v)) {\n keyTmp = '';\n }\n else {\n keyTmp = i;\n }\n destructure(`${key}[${keyTmp}]`, v);\n });\n }\n else {\n if (value == null || value === '') {\n keyTmp = '=';\n }\n else {\n keyTmp = `=${encodeURIComponent(value)}`;\n }\n args.push(encodeURIComponent(key) + keyTmp);\n }\n }\n if (Array.isArray(obj)) {\n each(obj, function () {\n destructure(this.name, this.value);\n });\n }\n else {\n each(obj, destructure);\n }\n return args.join('&');\n}\nexport default param;\n","// 全局配置参数\nconst globalOptions = {};\n// 全局事件名\nconst ajaxEvents = {\n ajaxStart: 'start.mdui.ajax',\n ajaxSuccess: 'success.mdui.ajax',\n ajaxError: 'error.mdui.ajax',\n ajaxComplete: 'complete.mdui.ajax',\n};\nexport { globalOptions, ajaxEvents };\n","import $ from '../$';\nimport '../methods/trigger';\nimport { isString, isUndefined } from '../utils';\nimport each from './each';\nimport extend from './extend';\nimport param from './param';\nimport { ajaxEvents, globalOptions } from './utils/ajax';\n/**\n * 判断此请求方法是否通过查询字符串提交参数\n * @param method 请求方法,大写\n */\nfunction isQueryStringData(method) {\n return ['GET', 'HEAD'].indexOf(method) >= 0;\n}\n/**\n * 添加参数到 URL 上,且 URL 中不存在 ? 时,自动把第一个 & 替换为 ?\n * @param url\n * @param query\n */\nfunction appendQuery(url, query) {\n return `${url}&${query}`.replace(/[&?]{1,2}/, '?');\n}\n/**\n * 合并请求参数,参数优先级:options > globalOptions > defaults\n * @param options\n */\nfunction mergeOptions(options) {\n // 默认参数\n const defaults = {\n url: '',\n method: 'GET',\n data: '',\n processData: true,\n async: true,\n cache: true,\n username: '',\n password: '',\n headers: {},\n xhrFields: {},\n statusCode: {},\n dataType: 'text',\n contentType: 'application/x-www-form-urlencoded',\n timeout: 0,\n global: true,\n };\n // globalOptions 中的回调函数不合并\n each(globalOptions, (key, value) => {\n const callbacks = [\n 'beforeSend',\n 'success',\n 'error',\n 'complete',\n 'statusCode',\n ];\n // @ts-ignore\n if (callbacks.indexOf(key) < 0 && !isUndefined(value)) {\n defaults[key] = value;\n }\n });\n return extend({}, defaults, options);\n}\n/**\n * 发送 ajax 请求\n * @param options\n * @example\n```js\najax({\n method: \"POST\",\n url: \"some.php\",\n data: { name: \"John\", location: \"Boston\" }\n}).then(function( msg ) {\n alert( \"Data Saved: \" + msg );\n});\n```\n */\nfunction ajax(options) {\n // 是否已取消请求\n let isCanceled = false;\n // 事件参数\n const eventParams = {};\n // 参数合并\n const mergedOptions = mergeOptions(options);\n let url = mergedOptions.url || window.location.toString();\n const method = mergedOptions.method.toUpperCase();\n let data = mergedOptions.data;\n const processData = mergedOptions.processData;\n const async = mergedOptions.async;\n const cache = mergedOptions.cache;\n const username = mergedOptions.username;\n const password = mergedOptions.password;\n const headers = mergedOptions.headers;\n const xhrFields = mergedOptions.xhrFields;\n const statusCode = mergedOptions.statusCode;\n const dataType = mergedOptions.dataType;\n const contentType = mergedOptions.contentType;\n const timeout = mergedOptions.timeout;\n const global = mergedOptions.global;\n // 需要发送的数据\n // GET/HEAD 请求和 processData 为 true 时,转换为查询字符串格式,特殊格式不转换\n if (data &&\n (isQueryStringData(method) || processData) &&\n !isString(data) &&\n !(data instanceof ArrayBuffer) &&\n !(data instanceof Blob) &&\n !(data instanceof Document) &&\n !(data instanceof FormData)) {\n data = param(data);\n }\n // 对于 GET、HEAD 类型的请求,把 data 数据添加到 URL 中\n if (data && isQueryStringData(method)) {\n // 查询字符串拼接到 URL 中\n url = appendQuery(url, data);\n data = null;\n }\n /**\n * 触发事件和回调函数\n * @param event\n * @param params\n * @param callback\n * @param args\n */\n function trigger(event, params, callback, ...args) {\n // 触发全局事件\n if (global) {\n $(document).trigger(event, params);\n }\n // 触发 ajax 回调和事件\n let result1;\n let result2;\n if (callback) {\n // 全局回调\n if (callback in globalOptions) {\n // @ts-ignore\n result1 = globalOptions[callback](...args);\n }\n // 自定义回调\n if (mergedOptions[callback]) {\n // @ts-ignore\n result2 = mergedOptions[callback](...args);\n }\n // beforeSend 回调返回 false 时取消 ajax 请求\n if (callback === 'beforeSend' &&\n (result1 === false || result2 === false)) {\n isCanceled = true;\n }\n }\n }\n // XMLHttpRequest 请求\n function XHR() {\n let textStatus;\n return new Promise((resolve, reject) => {\n // GET/HEAD 请求的缓存处理\n if (isQueryStringData(method) && !cache) {\n url = appendQuery(url, `_=${Date.now()}`);\n }\n // 创建 XHR\n const xhr = new XMLHttpRequest();\n xhr.open(method, url, async, username, password);\n if (contentType ||\n (data && !isQueryStringData(method) && contentType !== false)) {\n xhr.setRequestHeader('Content-Type', contentType);\n }\n // 设置 Accept\n if (dataType === 'json') {\n xhr.setRequestHeader('Accept', 'application/json, text/javascript');\n }\n // 添加 headers\n if (headers) {\n each(headers, (key, value) => {\n // undefined 值不发送,string 和 null 需要发送\n if (!isUndefined(value)) {\n xhr.setRequestHeader(key, value + ''); // 把 null 转换成字符串\n }\n });\n }\n // 检查是否是跨域请求,跨域请求时不添加 X-Requested-With\n const crossDomain = /^([\\w-]+:)?\\/\\/([^/]+)/.test(url) &&\n RegExp.$2 !== window.location.host;\n if (!crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n }\n if (xhrFields) {\n each(xhrFields, (key, value) => {\n // @ts-ignore\n xhr[key] = value;\n });\n }\n eventParams.xhr = xhr;\n eventParams.options = mergedOptions;\n let xhrTimeout;\n xhr.onload = function () {\n if (xhrTimeout) {\n clearTimeout(xhrTimeout);\n }\n // AJAX 返回的 HTTP 响应码是否表示成功\n const isHttpStatusSuccess = (xhr.status >= 200 && xhr.status < 300) ||\n xhr.status === 304 ||\n xhr.status === 0;\n let responseData;\n if (isHttpStatusSuccess) {\n if (xhr.status === 204 || method === 'HEAD') {\n textStatus = 'nocontent';\n }\n else if (xhr.status === 304) {\n textStatus = 'notmodified';\n }\n else {\n textStatus = 'success';\n }\n if (dataType === 'json') {\n try {\n responseData =\n method === 'HEAD' ? undefined : JSON.parse(xhr.responseText);\n eventParams.data = responseData;\n }\n catch (err) {\n textStatus = 'parsererror';\n trigger(ajaxEvents.ajaxError, eventParams, 'error', xhr, textStatus);\n reject(new Error(textStatus));\n }\n if (textStatus !== 'parsererror') {\n trigger(ajaxEvents.ajaxSuccess, eventParams, 'success', responseData, textStatus, xhr);\n resolve(responseData);\n }\n }\n else {\n responseData =\n method === 'HEAD'\n ? undefined\n : xhr.responseType === 'text' || xhr.responseType === ''\n ? xhr.responseText\n : xhr.response;\n eventParams.data = responseData;\n trigger(ajaxEvents.ajaxSuccess, eventParams, 'success', responseData, textStatus, xhr);\n resolve(responseData);\n }\n }\n else {\n textStatus = 'error';\n trigger(ajaxEvents.ajaxError, eventParams, 'error', xhr, textStatus);\n reject(new Error(textStatus));\n }\n // statusCode\n each([globalOptions.statusCode, statusCode], (_, func) => {\n if (func && func[xhr.status]) {\n if (isHttpStatusSuccess) {\n func[xhr.status](responseData, textStatus, xhr);\n }\n else {\n func[xhr.status](xhr, textStatus);\n }\n }\n });\n trigger(ajaxEvents.ajaxComplete, eventParams, 'complete', xhr, textStatus);\n };\n xhr.onerror = function () {\n if (xhrTimeout) {\n clearTimeout(xhrTimeout);\n }\n trigger(ajaxEvents.ajaxError, eventParams, 'error', xhr, xhr.statusText);\n trigger(ajaxEvents.ajaxComplete, eventParams, 'complete', xhr, 'error');\n reject(new Error(xhr.statusText));\n };\n xhr.onabort = function () {\n let statusText = 'abort';\n if (xhrTimeout) {\n statusText = 'timeout';\n clearTimeout(xhrTimeout);\n }\n trigger(ajaxEvents.ajaxError, eventParams, 'error', xhr, statusText);\n trigger(ajaxEvents.ajaxComplete, eventParams, 'complete', xhr, statusText);\n reject(new Error(statusText));\n };\n // ajax start 回调\n trigger(ajaxEvents.ajaxStart, eventParams, 'beforeSend', xhr);\n if (isCanceled) {\n reject(new Error('cancel'));\n return;\n }\n // Timeout\n if (timeout > 0) {\n xhrTimeout = setTimeout(() => {\n xhr.abort();\n }, timeout);\n }\n // 发送 XHR\n xhr.send(data);\n });\n }\n return XHR();\n}\nexport default ajax;\n","import $ from '../$';\nimport ajax from '../functions/ajax';\n$.ajax = ajax;\n","import extend from '../functions/extend';\nimport { globalOptions } from './utils/ajax';\n/**\n * 为 Ajax 请求设置全局配置参数\n * @param options 键值对参数\n * @example\n```js\najaxSetup({\n dataType: 'json',\n method: 'POST',\n});\n```\n */\nfunction ajaxSetup(options) {\n return extend(globalOptions, options);\n}\nexport default ajaxSetup;\n","import $ from '../$';\nimport ajaxSetup from '../functions/ajaxSetup';\n$.ajaxSetup = ajaxSetup;\n","import $ from '../$';\nimport contains from '../functions/contains';\n$.contains = contains;\n","const dataNS = '_mduiElementDataStorage';\nexport default dataNS;\n","import { isObjectLike, isUndefined, toCamelCase } from '../utils';\nimport each from './each';\nimport dataNS from './utils/data';\n/**\n * 在元素上设置键值对数据\n * @param element\n * @param object\n */\nfunction setObjectToElement(element, object) {\n // @ts-ignore\n if (!element[dataNS]) {\n // @ts-ignore\n element[dataNS] = {};\n }\n each(object, (key, value) => {\n // @ts-ignore\n element[dataNS][toCamelCase(key)] = value;\n });\n}\nfunction data(element, key, value) {\n // 根据键值对设置值\n // data(element, { 'key' : 'value' })\n if (isObjectLike(key)) {\n setObjectToElement(element, key);\n return key;\n }\n // 根据 key、value 设置值\n // data(element, 'key', 'value')\n if (!isUndefined(value)) {\n setObjectToElement(element, { [key]: value });\n return value;\n }\n // 获取所有值\n // data(element)\n if (isUndefined(key)) {\n // @ts-ignore\n return element[dataNS] ? element[dataNS] : {};\n }\n // 从 dataNS 中获取指定值\n // data(element, 'key')\n key = toCamelCase(key);\n // @ts-ignore\n if (element[dataNS] && key in element[dataNS]) {\n // @ts-ignore\n return element[dataNS][key];\n }\n return undefined;\n}\nexport default data;\n","import $ from '../$';\nimport data from '../functions/data';\n$.data = data;\n","import $ from '../$';\nimport each from '../functions/each';\n$.each = each;\n","import $ from '../$';\nimport each from '../functions/each';\nimport extend from '../functions/extend';\n$.extend = function (...objectN) {\n if (objectN.length === 1) {\n each(objectN[0], (prop, value) => {\n this[prop] = value;\n });\n return this;\n }\n return extend(objectN.shift(), objectN.shift(), ...objectN);\n};\n","import each from './each';\nfunction map(elements, callback) {\n let value;\n const ret = [];\n each(elements, (i, element) => {\n value = callback.call(window, element, i);\n if (value != null) {\n ret.push(value);\n }\n });\n return [].concat(...ret);\n}\nexport default map;\n","import $ from '../$';\nimport map from '../functions/map';\n$.map = map;\n","import $ from '../$';\nimport merge from '../functions/merge';\n$.merge = merge;\n","import $ from '../$';\nimport param from '../functions/param';\n$.param = param;\n","import each from '../functions/each';\nimport { isUndefined, isString, toCamelCase } from '../utils';\nimport dataNS from './utils/data';\n/**\n * 移除指定元素上存放的数据\n * @param element 存放数据的元素\n * @param name\n * 数据键名\n *\n * 若未指定键名,将移除元素上所有数据\n *\n * 多个键名可以用空格分隔,或者用数组表示多个键名\n @example\n```js\n// 移除元素上键名为 name 的数据\nremoveData(document.body, 'name');\n```\n * @example\n```js\n// 移除元素上键名为 name1 和 name2 的数据\nremoveData(document.body, 'name1 name2');\n```\n * @example\n```js\n// 移除元素上键名为 name1 和 name2 的数据\nremoveData(document.body, ['name1', 'name2']);\n```\n * @example\n```js\n// 移除元素上所有数据\nremoveData(document.body);\n```\n */\nfunction removeData(element, name) {\n // @ts-ignore\n if (!element[dataNS]) {\n return;\n }\n const remove = (nameItem) => {\n nameItem = toCamelCase(nameItem);\n // @ts-ignore\n if (element[dataNS][nameItem]) {\n // @ts-ignore\n element[dataNS][nameItem] = null;\n // @ts-ignore\n delete element[dataNS][nameItem];\n }\n };\n if (isUndefined(name)) {\n // @ts-ignore\n element[dataNS] = null;\n // @ts-ignore\n delete element[dataNS];\n // @ts-ignore\n }\n else if (isString(name)) {\n name\n .split(' ')\n .filter((nameItem) => nameItem)\n .forEach((nameItem) => remove(nameItem));\n }\n else {\n each(name, (_, nameItem) => remove(nameItem));\n }\n}\nexport default removeData;\n","import $ from '../$';\nimport removeData from '../functions/removeData';\n$.removeData = removeData;\n","import each from './each';\n/**\n * 过滤掉数组中的重复元素\n * @param arr 数组\n * @example\n```js\nunique([1, 2, 12, 3, 2, 1, 2, 1, 1]);\n// [1, 2, 12, 3]\n```\n */\nfunction unique(arr) {\n const result = [];\n each(arr, (_, val) => {\n if (result.indexOf(val) === -1) {\n result.push(val);\n }\n });\n return result;\n}\nexport default unique;\n","import $ from '../$';\nimport unique from '../functions/unique';\n$.unique = unique;\n","import $ from '../$';\nimport merge from '../functions/merge';\nimport unique from '../functions/unique';\nimport { JQ } from '../JQ';\nimport './get';\n$.fn.add = function (selector) {\n return new JQ(unique(merge(this.get(), $(selector).get())));\n};\n","import $ from '../$';\nimport each from '../functions/each';\nimport { isElement, isFunction } from '../utils';\nimport './each';\neach(['add', 'remove', 'toggle'], (_, name) => {\n $.fn[`${name}Class`] = function (className) {\n if (name === 'remove' && !arguments.length) {\n return this.each((_, element) => {\n element.setAttribute('class', '');\n });\n }\n return this.each((i, element) => {\n if (!isElement(element)) {\n return;\n }\n const classes = (isFunction(className)\n ? className.call(element, i, element.getAttribute('class') || '')\n : className)\n .split(' ')\n .filter((name) => name);\n each(classes, (_, cls) => {\n element.classList[name](cls);\n });\n });\n };\n});\n","import $ from '../$';\nimport each from '../functions/each';\nimport './each';\neach(['insertBefore', 'insertAfter'], (nameIndex, name) => {\n $.fn[name] = function (target) {\n const $element = nameIndex ? $(this.get().reverse()) : this; // 顺序和 jQuery 保持一致\n const $target = $(target);\n const result = [];\n $target.each((index, target) => {\n if (!target.parentNode) {\n return;\n }\n $element.each((_, element) => {\n const newItem = index\n ? element.cloneNode(true)\n : element;\n const existingItem = nameIndex ? target.nextSibling : target;\n result.push(newItem);\n target.parentNode.insertBefore(newItem, existingItem);\n });\n });\n return $(nameIndex ? result.reverse() : result);\n };\n});\n","import $ from '../$';\nimport each from '../functions/each';\nimport { getChildNodesArray, isFunction, isString, isElement } from '../utils';\nimport './each';\nimport './insertAfter';\nimport './insertBefore';\n/**\n * 是否不是 HTML 字符串(包裹在 <> 中)\n * @param target\n */\nfunction isPlainText(target) {\n return (isString(target) && (target[0] !== '<' || target[target.length - 1] !== '>'));\n}\neach(['before', 'after'], (nameIndex, name) => {\n $.fn[name] = function (...args) {\n // after 方法,多个参数需要按参数顺序添加到元素后面,所以需要将参数顺序反向处理\n if (nameIndex === 1) {\n args = args.reverse();\n }\n return this.each((index, element) => {\n const targets = isFunction(args[0])\n ? [args[0].call(element, index, element.innerHTML)]\n : args;\n each(targets, (_, target) => {\n let $target;\n if (isPlainText(target)) {\n $target = $(getChildNodesArray(target, 'div'));\n }\n else if (index && isElement(target)) {\n $target = $(target.cloneNode(true));\n }\n else {\n $target = $(target);\n }\n $target[nameIndex ? 'insertAfter' : 'insertBefore'](element);\n });\n });\n };\n});\n","import $ from '../$';\nimport each from '../functions/each';\nimport { isFunction, isObjectLike, returnFalse } from '../utils';\nimport './each';\nimport { remove } from './utils/event';\n$.fn.off = function (types, selector, callback) {\n // types 是对象\n if (isObjectLike(types)) {\n each(types, (type, fn) => {\n // this.off('click', undefined, function () {})\n // this.off('click', '.box', function () {})\n this.off(type, selector, fn);\n });\n return this;\n }\n // selector 不存在\n if (selector === false || isFunction(selector)) {\n callback = selector;\n selector = undefined;\n // this.off('click', undefined, function () {})\n }\n // callback 传入 `false`,相当于 `return false`\n if (callback === false) {\n callback = returnFalse;\n }\n return this.each(function () {\n remove(this, types, callback, selector);\n });\n};\n","import $ from '../$';\nimport each from '../functions/each';\nimport { isObjectLike, isString, returnFalse } from '../utils';\nimport './each';\nimport './off';\nimport { add } from './utils/event';\n$.fn.on = function (types, selector, data, callback, one) {\n // types 可以是 type/func 对象\n if (isObjectLike(types)) {\n // (types-Object, selector, data)\n if (!isString(selector)) {\n // (types-Object, data)\n data = data || selector;\n selector = undefined;\n }\n each(types, (type, fn) => {\n // selector 和 data 都可能是 undefined\n // @ts-ignore\n this.on(type, selector, data, fn, one);\n });\n return this;\n }\n if (data == null && callback == null) {\n // (types, fn)\n callback = selector;\n data = selector = undefined;\n }\n else if (callback == null) {\n if (isString(selector)) {\n // (types, selector, fn)\n callback = data;\n data = undefined;\n }\n else {\n // (types, data, fn)\n callback = data;\n data = selector;\n selector = undefined;\n }\n }\n if (callback === false) {\n callback = returnFalse;\n }\n else if (!callback) {\n return this;\n }\n // $().one()\n if (one) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const _this = this;\n const origCallback = callback;\n callback = function (event) {\n _this.off(event.type, selector, callback);\n // eslint-disable-next-line prefer-rest-params\n return origCallback.apply(this, arguments);\n };\n }\n return this.each(function () {\n add(this, types, callback, data, selector);\n });\n};\n","import $ from '../$';\nimport each from '../functions/each';\nimport { ajaxEvents } from '../functions/utils/ajax';\nimport './on';\neach(ajaxEvents, (name, eventName) => {\n $.fn[name] = function (fn) {\n return this.on(eventName, (e, params) => {\n fn(e, params.xhr, params.options, params.data);\n });\n };\n});\n","import $ from '../$';\nimport map from '../functions/map';\nimport { JQ } from '../JQ';\n$.fn.map = function (callback) {\n return new JQ(map(this, (element, i) => callback.call(element, i, element)));\n};\n","import $ from '../$';\nimport './map';\n$.fn.clone = function () {\n return this.map(function () {\n return this.cloneNode(true);\n });\n};\n","import $ from '../$';\nimport { isDocument, isFunction, isString, isWindow } from '../utils';\nimport './each';\n$.fn.is = function (selector) {\n let isMatched = false;\n if (isFunction(selector)) {\n this.each((index, element) => {\n if (selector.call(element, index, element)) {\n isMatched = true;\n }\n });\n return isMatched;\n }\n if (isString(selector)) {\n this.each((_, element) => {\n if (isDocument(element) || isWindow(element)) {\n return;\n }\n // @ts-ignore\n const matches = element.matches || element.msMatchesSelector;\n if (matches.call(element, selector)) {\n isMatched = true;\n }\n });\n return isMatched;\n }\n const $compareWith = $(selector);\n this.each((_, element) => {\n $compareWith.each((_, compare) => {\n if (element === compare) {\n isMatched = true;\n }\n });\n });\n return isMatched;\n};\n","import $ from '../$';\nimport './each';\nimport './is';\n$.fn.remove = function (selector) {\n return this.each((_, element) => {\n if (element.parentNode && (!selector || $(element).is(selector))) {\n element.parentNode.removeChild(element);\n }\n });\n};\n","import $ from '../$';\nimport each from '../functions/each';\nimport { isFunction, isString } from '../utils';\nimport './after';\nimport './before';\nimport './clone';\nimport './each';\nimport './map';\nimport './remove';\neach(['prepend', 'append'], (nameIndex, name) => {\n $.fn[name] = function (...args) {\n return this.each((index, element) => {\n const childNodes = element.childNodes;\n const childLength = childNodes.length;\n const child = childLength\n ? childNodes[nameIndex ? childLength - 1 : 0]\n : document.createElement('div');\n if (!childLength) {\n element.appendChild(child);\n }\n let contents = isFunction(args[0])\n ? [args[0].call(element, index, element.innerHTML)]\n : args;\n // 如果不是字符串,则仅第一个元素使用原始元素,其他的都克隆自第一个元素\n if (index) {\n contents = contents.map((content) => {\n return isString(content) ? content : $(content).clone();\n });\n }\n $(child)[nameIndex ? 'after' : 'before'](...contents);\n if (!childLength) {\n element.removeChild(child);\n }\n });\n };\n});\n","import $ from '../$';\nimport each from '../functions/each';\nimport './insertAfter';\nimport './insertBefore';\nimport './map';\nimport './remove';\neach(['appendTo', 'prependTo'], (nameIndex, name) => {\n $.fn[name] = function (target) {\n const extraChilds = [];\n const $target = $(target).map((_, element) => {\n const childNodes = element.childNodes;\n const childLength = childNodes.length;\n if (childLength) {\n return childNodes[nameIndex ? 0 : childLength - 1];\n }\n const child = document.createElement('div');\n element.appendChild(child);\n extraChilds.push(child);\n return child;\n });\n const $result = this[nameIndex ? 'insertBefore' : 'insertAfter']($target);\n $(extraChilds).remove();\n return $result;\n };\n});\n","import $ from '../$';\nimport each from '../functions/each';\nimport { cssNumber, getStyle, isElement, isFunction, isNull, isNumber, isObjectLike, isUndefined, toCamelCase, } from '../utils';\nimport './each';\neach(['attr', 'prop', 'css'], (nameIndex, name) => {\n function set(element, key, value) {\n // 值为 undefined 时,不修改\n if (isUndefined(value)) {\n return;\n }\n switch (nameIndex) {\n // attr\n case 0:\n if (isNull(value)) {\n element.removeAttribute(key);\n }\n else {\n element.setAttribute(key, value);\n }\n break;\n // prop\n case 1:\n // @ts-ignore\n element[key] = value;\n break;\n // css\n default:\n key = toCamelCase(key);\n // @ts-ignore\n element.style[key] = isNumber(value)\n ? `${value}${cssNumber.indexOf(key) > -1 ? '' : 'px'}`\n : value;\n break;\n }\n }\n function get(element, key) {\n switch (nameIndex) {\n // attr\n case 0:\n // 属性不存在时,原生 getAttribute 方法返回 null,而 jquery 返回 undefined。这里和 jquery 保持一致\n const value = element.getAttribute(key);\n return isNull(value) ? undefined : value;\n // prop\n case 1:\n // @ts-ignore\n return element[key];\n // css\n default:\n return getStyle(element, key);\n }\n }\n $.fn[name] = function (key, value) {\n if (isObjectLike(key)) {\n each(key, (k, v) => {\n // @ts-ignore\n this[name](k, v);\n });\n return this;\n }\n if (arguments.length === 1) {\n const element = this[0];\n return isElement(element) ? get(element, key) : undefined;\n }\n return this.each((i, element) => {\n set(element, key, isFunction(value) ? value.call(element, i, get(element, key)) : value);\n });\n };\n});\n","import $ from '../$';\nimport each from '../functions/each';\nimport unique from '../functions/unique';\nimport { JQ } from '../JQ';\nimport { isElement } from '../utils';\nimport './each';\nimport './is';\n$.fn.children = function (selector) {\n const children = [];\n this.each((_, element) => {\n each(element.childNodes, (__, childNode) => {\n if (!isElement(childNode)) {\n return;\n }\n if (!selector || $(childNode).is(selector)) {\n children.push(childNode);\n }\n });\n });\n return new JQ(unique(children));\n};\n","import $ from '../$';\nimport { JQ } from '../JQ';\n$.fn.slice = function (...args) {\n return new JQ([].slice.apply(this, args));\n};\n","import $ from '../$';\nimport { JQ } from '../JQ';\nimport './slice';\n$.fn.eq = function (index) {\n const ret = index === -1 ? this.slice(index) : this.slice(index, +index + 1);\n return new JQ(ret);\n};\n","import $ from '../../$';\nimport unique from '../../functions/unique';\nimport { JQ } from '../../JQ';\nimport { isElement } from '../../utils';\nimport '../each';\nimport '../is';\nexport default function dir($elements, nameIndex, node, selector, filter) {\n const ret = [];\n let target;\n $elements.each((_, element) => {\n target = element[node];\n // 不能包含最顶层的 document 元素\n while (target && isElement(target)) {\n // prevUntil, nextUntil, parentsUntil\n if (nameIndex === 2) {\n if (selector && $(target).is(selector)) {\n break;\n }\n if (!filter || $(target).is(filter)) {\n ret.push(target);\n }\n }\n // prev, next, parent\n else if (nameIndex === 0) {\n if (!selector || $(target).is(selector)) {\n ret.push(target);\n }\n break;\n }\n // prevAll, nextAll, parents\n else {\n if (!selector || $(target).is(selector)) {\n ret.push(target);\n }\n }\n // @ts-ignore\n target = target[node];\n }\n });\n return new JQ(unique(ret));\n}\n","import $ from '../$';\nimport each from '../functions/each';\nimport './get';\nimport dir from './utils/dir';\neach(['', 's', 'sUntil'], (nameIndex, name) => {\n $.fn[`parent${name}`] = function (selector, filter) {\n // parents、parentsUntil 需要把元素的顺序反向处理,以便和 jQuery 的结果一致\n const $nodes = !nameIndex ? this : $(this.get().reverse());\n return dir($nodes, nameIndex, 'parentNode', selector, filter);\n };\n});\n","import $ from '../$';\nimport { JQ } from '../JQ';\nimport './eq';\nimport './is';\nimport './parents';\n$.fn.closest = function (selector) {\n if (this.is(selector)) {\n return this;\n }\n const matched = [];\n this.parents().each((_, element) => {\n if ($(element).is(selector)) {\n matched.push(element);\n return false;\n }\n });\n return new JQ(matched);\n};\n","import $ from '../$';\nimport data from '../functions/data';\nimport { isObjectLike, isString, isUndefined, toCamelCase, toKebabCase, } from '../utils';\nimport './each';\nconst rbrace = /^(?:{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/;\n// 从 `data-*` 中获取的值,需要经过该函数转换\nfunction getData(value) {\n if (value === 'true') {\n return true;\n }\n if (value === 'false') {\n return false;\n }\n if (value === 'null') {\n return null;\n }\n if (value === +value + '') {\n return +value;\n }\n if (rbrace.test(value)) {\n return JSON.parse(value);\n }\n return value;\n}\n// 若 value 不存在,则从 `data-*` 中获取值\nfunction dataAttr(element, key, value) {\n if (isUndefined(value) && element.nodeType === 1) {\n const name = 'data-' + toKebabCase(key);\n value = element.getAttribute(name);\n if (isString(value)) {\n try {\n value = getData(value);\n }\n catch (e) { }\n }\n else {\n value = undefined;\n }\n }\n return value;\n}\n$.fn.data = function (key, value) {\n // 获取所有值\n if (isUndefined(key)) {\n if (!this.length) {\n return undefined;\n }\n const element = this[0];\n const resultData = data(element);\n // window, document 上不存在 `data-*` 属性\n if (element.nodeType !== 1) {\n return resultData;\n }\n // 从 `data-*` 中获取值\n const attrs = element.attributes;\n let i = attrs.length;\n while (i--) {\n if (attrs[i]) {\n let name = attrs[i].name;\n if (name.indexOf('data-') === 0) {\n name = toCamelCase(name.slice(5));\n resultData[name] = dataAttr(element, name, resultData[name]);\n }\n }\n }\n return resultData;\n }\n // 同时设置多个值\n if (isObjectLike(key)) {\n return this.each(function () {\n data(this, key);\n });\n }\n // value 传入了 undefined\n if (arguments.length === 2 && isUndefined(value)) {\n return this;\n }\n // 设置值\n if (!isUndefined(value)) {\n return this.each(function () {\n data(this, key, value);\n });\n }\n // 获取值\n if (!this.length) {\n return undefined;\n }\n return dataAttr(this[0], key, data(this[0], key));\n};\n","import $ from '../$';\nimport './each';\n$.fn.empty = function () {\n return this.each(function () {\n this.innerHTML = '';\n });\n};\n","import $ from '../$';\nimport each from '../functions/each';\n$.fn.extend = function (obj) {\n each(obj, (prop, value) => {\n // 在 JQ 对象上扩展方法时,需要自己添加 typescript 的类型定义\n $.fn[prop] = value;\n });\n return this;\n};\n","import $ from '../$';\nimport { isFunction, isString } from '../utils';\nimport './is';\nimport './map';\n$.fn.filter = function (selector) {\n if (isFunction(selector)) {\n return this.map((index, element) => selector.call(element, index, element) ? element : undefined);\n }\n if (isString(selector)) {\n return this.map((_, element) => $(element).is(selector) ? element : undefined);\n }\n const $selector = $(selector);\n return this.map((_, element) => $selector.get().indexOf(element) > -1 ? element : undefined);\n};\n","import $ from '../$';\nimport './eq';\n$.fn.first = function () {\n return this.eq(0);\n};\n","import $ from '../$';\nimport contains from '../functions/contains';\nimport { isString } from '../utils';\nimport './find';\n$.fn.has = function (selector) {\n const $targets = isString(selector) ? this.find(selector) : $(selector);\n const { length } = $targets;\n return this.map(function () {\n for (let i = 0; i < length; i += 1) {\n if (contains(this, $targets[i])) {\n return this;\n }\n }\n return;\n });\n};\n","import $ from '../$';\n$.fn.hasClass = function (className) {\n return this[0].classList.contains(className);\n};\n","import $ from '../$';\nimport each from '../functions/each';\nimport { isBoolean, isDocument, isFunction, isWindow, toElement, isBorderBox, getExtraWidth, getComputedStyleValue, isIE, } from '../utils';\nimport './css';\nimport './each';\n/**\n * 值上面的 padding、border、margin 处理\n * @param element\n * @param name\n * @param value\n * @param funcIndex\n * @param includeMargin\n * @param multiply\n */\nfunction handleExtraWidth(element, name, value, funcIndex, includeMargin, multiply) {\n // 获取元素的 padding, border, margin 宽度(两侧宽度的和)\n const getExtraWidthValue = (extra) => {\n return (getExtraWidth(element, name.toLowerCase(), extra) *\n multiply);\n };\n if (funcIndex === 2 && includeMargin) {\n value += getExtraWidthValue('margin');\n }\n if (isBorderBox(element)) {\n // IE 为 box-sizing: border-box 时,得到的值不含 border 和 padding,这里先修复\n // 仅获取时需要处理,multiply === 1 为 get\n if (isIE() && multiply === 1) {\n value += getExtraWidthValue('border');\n value += getExtraWidthValue('padding');\n }\n if (funcIndex === 0) {\n value -= getExtraWidthValue('border');\n }\n if (funcIndex === 1) {\n value -= getExtraWidthValue('border');\n value -= getExtraWidthValue('padding');\n }\n }\n else {\n if (funcIndex === 0) {\n value += getExtraWidthValue('padding');\n }\n if (funcIndex === 2) {\n value += getExtraWidthValue('border');\n value += getExtraWidthValue('padding');\n }\n }\n return value;\n}\n/**\n * 获取元素的样式值\n * @param element\n * @param name\n * @param funcIndex 0: innerWidth, innerHeight; 1: width, height; 2: outerWidth, outerHeight\n * @param includeMargin\n */\nfunction get(element, name, funcIndex, includeMargin) {\n const clientProp = `client${name}`;\n const scrollProp = `scroll${name}`;\n const offsetProp = `offset${name}`;\n const innerProp = `inner${name}`;\n // $(window).width()\n if (isWindow(element)) {\n // outerWidth, outerHeight 需要包含滚动条的宽度\n return funcIndex === 2\n ? element[innerProp]\n : toElement(document)[clientProp];\n }\n // $(document).width()\n if (isDocument(element)) {\n const doc = toElement(element);\n return Math.max(\n // @ts-ignore\n element.body[scrollProp], doc[scrollProp], \n // @ts-ignore\n element.body[offsetProp], doc[offsetProp], doc[clientProp]);\n }\n const value = parseFloat(getComputedStyleValue(element, name.toLowerCase()) || '0');\n return handleExtraWidth(element, name, value, funcIndex, includeMargin, 1);\n}\n/**\n * 设置元素的样式值\n * @param element\n * @param elementIndex\n * @param name\n * @param funcIndex 0: innerWidth, innerHeight; 1: width, height; 2: outerWidth, outerHeight\n * @param includeMargin\n * @param value\n */\nfunction set(element, elementIndex, name, funcIndex, includeMargin, value) {\n let computedValue = isFunction(value)\n ? value.call(element, elementIndex, get(element, name, funcIndex, includeMargin))\n : value;\n if (computedValue == null) {\n return;\n }\n const $element = $(element);\n const dimension = name.toLowerCase();\n // 特殊的值,不需要计算 padding、border、margin\n if (['auto', 'inherit', ''].indexOf(computedValue) > -1) {\n $element.css(dimension, computedValue);\n return;\n }\n // 其他值保留原始单位。注意:如果不使用 px 作为单位,则算出的值一般是不准确的\n const suffix = computedValue.toString().replace(/\\b[0-9.]*/, '');\n const numerical = parseFloat(computedValue);\n computedValue =\n handleExtraWidth(element, name, numerical, funcIndex, includeMargin, -1) +\n (suffix || 'px');\n $element.css(dimension, computedValue);\n}\neach(['Width', 'Height'], (_, name) => {\n each([`inner${name}`, name.toLowerCase(), `outer${name}`], (funcIndex, funcName) => {\n $.fn[funcName] = function (margin, value) {\n // 是否是赋值操作\n const isSet = arguments.length && (funcIndex < 2 || !isBoolean(margin));\n const includeMargin = margin === true || value === true;\n // 获取第一个元素的值\n if (!isSet) {\n return this.length\n ? get(this[0], name, funcIndex, includeMargin)\n : undefined;\n }\n // 设置每个元素的值\n return this.each((index, element) => set(element, index, name, funcIndex, includeMargin, margin));\n };\n });\n});\n","import $ from '../$';\nimport './each';\n$.fn.hide = function () {\n return this.each(function () {\n this.style.display = 'none';\n });\n};\n","import $ from '../$';\nimport each from '../functions/each';\nimport map from '../functions/map';\nimport { isElement, isFunction, isUndefined, toElement } from '../utils';\nimport './each';\nimport './is';\neach(['val', 'html', 'text'], (nameIndex, name) => {\n const props = {\n 0: 'value',\n 1: 'innerHTML',\n 2: 'textContent',\n };\n const propName = props[nameIndex];\n function get($elements) {\n // text() 获取所有元素的文本\n if (nameIndex === 2) {\n // @ts-ignore\n return map($elements, (element) => toElement(element)[propName]).join('');\n }\n // 空集合时,val() 和 html() 返回 undefined\n if (!$elements.length) {\n return undefined;\n }\n // val() 和 html() 仅获取第一个元素的内容\n const firstElement = $elements[0];\n // select multiple 返回数组\n if (nameIndex === 0 && $(firstElement).is('select[multiple]')) {\n return map($(firstElement).find('option:checked'), (element) => element.value);\n }\n // @ts-ignore\n return firstElement[propName];\n }\n function set(element, value) {\n // text() 和 html() 赋值为 undefined,则保持原内容不变\n // val() 赋值为 undefined 则赋值为空\n if (isUndefined(value)) {\n if (nameIndex !== 0) {\n return;\n }\n value = '';\n }\n if (nameIndex === 1 && isElement(value)) {\n value = value.outerHTML;\n }\n // @ts-ignore\n element[propName] = value;\n }\n $.fn[name] = function (value) {\n // 获取值\n if (!arguments.length) {\n return get(this);\n }\n // 设置值\n return this.each((i, element) => {\n const computedValue = isFunction(value)\n ? value.call(element, i, get($(element)))\n : value;\n // value 是数组,则选中数组中的元素,反选不在数组中的元素\n if (nameIndex === 0 && Array.isArray(computedValue)) {\n // select[multiple]\n if ($(element).is('select[multiple]')) {\n map($(element).find('option'), (option) => (option.selected =\n computedValue.indexOf(option.value) >\n -1));\n }\n // 其他 checkbox, radio 等元素\n else {\n element.checked =\n computedValue.indexOf(element.value) > -1;\n }\n }\n else {\n set(element, computedValue);\n }\n });\n };\n});\n","import $ from '../$';\nimport { isString } from '../utils';\nimport './children';\nimport './eq';\nimport './get';\nimport './parent';\n$.fn.index = function (selector) {\n if (!arguments.length) {\n return this.eq(0).parent().children().get().indexOf(this[0]);\n }\n if (isString(selector)) {\n return $(selector).get().indexOf(this[0]);\n }\n return this.get().indexOf($(selector)[0]);\n};\n","import $ from '../$';\nimport './eq';\n$.fn.last = function () {\n return this.eq(-1);\n};\n","import $ from '../$';\nimport each from '../functions/each';\nimport dir from './utils/dir';\neach(['', 'All', 'Until'], (nameIndex, name) => {\n $.fn[`next${name}`] = function (selector, filter) {\n return dir(this, nameIndex, 'nextElementSibling', selector, filter);\n };\n});\n","import $ from '../$';\nimport './filter';\nimport './map';\n$.fn.not = function (selector) {\n const $excludes = this.filter(selector);\n return this.map((_, element) => $excludes.index(element) > -1 ? undefined : element);\n};\n","import $ from '../$';\nimport './css';\nimport './map';\n/**\n * 返回最近的用于定位的父元素\n */\n$.fn.offsetParent = function () {\n return this.map(function () {\n let offsetParent = this.offsetParent;\n while (offsetParent && $(offsetParent).css('position') === 'static') {\n offsetParent = offsetParent.offsetParent;\n }\n return offsetParent || document.documentElement;\n });\n};\n","import $ from '../$';\nimport './css';\nimport './eq';\nimport './offset';\nimport './offsetParent';\nfunction floatStyle($element, name) {\n return parseFloat($element.css(name));\n}\n$.fn.position = function () {\n if (!this.length) {\n return undefined;\n }\n const $element = this.eq(0);\n let currentOffset;\n let parentOffset = {\n left: 0,\n top: 0,\n };\n if ($element.css('position') === 'fixed') {\n currentOffset = $element[0].getBoundingClientRect();\n }\n else {\n currentOffset = $element.offset();\n const $offsetParent = $element.offsetParent();\n parentOffset = $offsetParent.offset();\n parentOffset.top += floatStyle($offsetParent, 'border-top-width');\n parentOffset.left += floatStyle($offsetParent, 'border-left-width');\n }\n return {\n top: currentOffset.top - parentOffset.top - floatStyle($element, 'margin-top'),\n left: currentOffset.left -\n parentOffset.left -\n floatStyle($element, 'margin-left'),\n };\n};\n","import $ from '../$';\nimport extend from '../functions/extend';\nimport { isFunction } from '../utils';\nimport './css';\nimport './each';\nimport './position';\nfunction get(element) {\n if (!element.getClientRects().length) {\n return { top: 0, left: 0 };\n }\n const rect = element.getBoundingClientRect();\n const win = element.ownerDocument.defaultView;\n return {\n top: rect.top + win.pageYOffset,\n left: rect.left + win.pageXOffset,\n };\n}\nfunction set(element, value, index) {\n const $element = $(element);\n const position = $element.css('position');\n if (position === 'static') {\n $element.css('position', 'relative');\n }\n const currentOffset = get(element);\n const currentTopString = $element.css('top');\n const currentLeftString = $element.css('left');\n let currentTop;\n let currentLeft;\n const calculatePosition = (position === 'absolute' || position === 'fixed') &&\n (currentTopString + currentLeftString).indexOf('auto') > -1;\n if (calculatePosition) {\n const currentPosition = $element.position();\n currentTop = currentPosition.top;\n currentLeft = currentPosition.left;\n }\n else {\n currentTop = parseFloat(currentTopString);\n currentLeft = parseFloat(currentLeftString);\n }\n const computedValue = isFunction(value)\n ? value.call(element, index, extend({}, currentOffset))\n : value;\n $element.css({\n top: computedValue.top != null\n ? computedValue.top - currentOffset.top + currentTop\n : undefined,\n left: computedValue.left != null\n ? computedValue.left - currentOffset.left + currentLeft\n : undefined,\n });\n}\n$.fn.offset = function (value) {\n // 获取坐标\n if (!arguments.length) {\n if (!this.length) {\n return undefined;\n }\n return get(this[0]);\n }\n // 设置坐标\n return this.each(function (index) {\n set(this, value, index);\n });\n};\n","import $ from '../$';\nimport './on';\n$.fn.one = function (types, selector, data, callback) {\n // @ts-ignore\n return this.on(types, selector, data, callback, true);\n};\n","import $ from '../$';\nimport each from '../functions/each';\nimport './get';\nimport dir from './utils/dir';\neach(['', 'All', 'Until'], (nameIndex, name) => {\n $.fn[`prev${name}`] = function (selector, filter) {\n // prevAll、prevUntil 需要把元素的顺序倒序处理,以便和 jQuery 的结果一致\n const $nodes = !nameIndex ? this : $(this.get().reverse());\n return dir($nodes, nameIndex, 'previousElementSibling', selector, filter);\n };\n});\n","import $ from '../$';\nimport each from '../functions/each';\nimport './each';\n$.fn.removeAttr = function (attributeName) {\n const names = attributeName.split(' ').filter((name) => name);\n return this.each(function () {\n each(names, (_, name) => {\n this.removeAttribute(name);\n });\n });\n};\n","import $ from '../$';\nimport removeData from '../functions/removeData';\nimport './each';\n$.fn.removeData = function (name) {\n return this.each(function () {\n removeData(this, name);\n });\n};\n","import $ from '../$';\nimport './each';\n$.fn.removeProp = function (name) {\n return this.each(function () {\n try {\n // @ts-ignore\n delete this[name];\n }\n catch (e) { }\n });\n};\n","import $ from '../$';\nimport './before';\nimport './clone';\nimport './each';\nimport './remove';\nimport { isFunction, isString } from '../utils';\n$.fn.replaceWith = function (newContent) {\n this.each((index, element) => {\n let content = newContent;\n if (isFunction(content)) {\n content = content.call(element, index, element.innerHTML);\n }\n else if (index && !isString(content)) {\n content = $(content).clone();\n }\n $(element).before(content);\n });\n return this.remove();\n};\n","import $ from '../$';\nimport './clone';\nimport './get';\nimport './map';\nimport './replaceWith';\n$.fn.replaceAll = function (target) {\n return $(target).map((index, element) => {\n $(element).replaceWith(index ? this.clone() : this);\n return this.get();\n });\n};\n","import $ from '../$';\nimport './each';\nimport './val';\n/**\n * 将表单元素的值组合成键值对数组\n * @returns {Array}\n */\n$.fn.serializeArray = function () {\n const result = [];\n this.each((_, element) => {\n const elements = element instanceof HTMLFormElement ? element.elements : [element];\n $(elements).each((_, element) => {\n const $element = $(element);\n const type = element.type;\n const nodeName = element.nodeName.toLowerCase();\n if (nodeName !== 'fieldset' &&\n element.name &&\n !element.disabled &&\n ['input', 'select', 'textarea', 'keygen'].indexOf(nodeName) > -1 &&\n ['submit', 'button', 'image', 'reset', 'file'].indexOf(type) === -1 &&\n (['radio', 'checkbox'].indexOf(type) === -1 ||\n element.checked)) {\n const value = $element.val();\n const valueArr = Array.isArray(value) ? value : [value];\n valueArr.forEach((value) => {\n result.push({\n name: element.name,\n value,\n });\n });\n }\n });\n });\n return result;\n};\n","import $ from '../$';\nimport param from '../functions/param';\nimport './serializeArray';\n$.fn.serialize = function () {\n return param(this.serializeArray());\n};\n","import $ from '../$';\nimport { getStyle } from '../utils';\nimport './each';\nconst elementDisplay = {};\n/**\n * 获取元素的初始 display 值,用于 .show() 方法\n * @param nodeName\n */\nfunction defaultDisplay(nodeName) {\n let element;\n let display;\n if (!elementDisplay[nodeName]) {\n element = document.createElement(nodeName);\n document.body.appendChild(element);\n display = getStyle(element, 'display');\n element.parentNode.removeChild(element);\n if (display === 'none') {\n display = 'block';\n }\n elementDisplay[nodeName] = display;\n }\n return elementDisplay[nodeName];\n}\n/**\n * 显示指定元素\n * @returns {JQ}\n */\n$.fn.show = function () {\n return this.each(function () {\n if (this.style.display === 'none') {\n this.style.display = '';\n }\n if (getStyle(this, 'display') === 'none') {\n this.style.display = defaultDisplay(this.nodeName);\n }\n });\n};\n","import $ from '../$';\nimport './add';\nimport './nextAll';\nimport './prevAll';\n/**\n * 取得同辈元素的集合\n * @param selector {String=}\n * @returns {JQ}\n */\n$.fn.siblings = function (selector) {\n return this.prevAll(selector).add(this.nextAll(selector));\n};\n","import $ from '../$';\nimport { getStyle } from '../utils';\nimport './each';\nimport './hide';\nimport './show';\n/**\n * 切换元素的显示状态\n */\n$.fn.toggle = function () {\n return this.each(function () {\n getStyle(this, 'display') === 'none' ? $(this).show() : $(this).hide();\n });\n};\n","import $ from 'mdui.jq/es/$';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport 'mdui.jq/es/methods/each';\n\ndeclare module 'mdui.jq/es/JQ' {\n interface JQ {\n /**\n * 强制重绘当前元素\n *\n * @example\n```js\n$('.box').reflow();\n```\n */\n reflow(): this;\n }\n}\n\n$.fn.reflow = function (this: JQ): JQ {\n return this.each(function () {\n return this.clientLeft;\n });\n};\n","import $ from 'mdui.jq/es/$';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport { isNumber } from 'mdui.jq/es/utils';\nimport 'mdui.jq/es/methods/each';\n\ndeclare module 'mdui.jq/es/JQ' {\n interface JQ {\n /**\n * 设置当前元素的 transition-duration 属性\n * @param duration 可以是带单位的值;若不带单位,则自动添加 `ms` 作为单位\n * @example\n```js\n$('.box').transition('300ms');\n$('.box').transition(300);\n```\n */\n transition(duration: string | number): this;\n }\n}\n\n$.fn.transition = function (this: JQ, duration: string | number): JQ {\n if (isNumber(duration)) {\n duration = `${duration}ms`;\n }\n\n return this.each(function () {\n this.style.webkitTransitionDuration = duration as string;\n this.style.transitionDuration = duration as string;\n });\n};\n","import $ from 'mdui.jq/es/$';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport each from 'mdui.jq/es/functions/each';\nimport 'mdui.jq/es/methods/on';\nimport 'mdui.jq/es/methods/off';\n\ndeclare module 'mdui.jq/es/JQ' {\n interface JQ {\n /**\n * 在当前元素上添加 transitionend 事件回调\n * @param callback 回调函数的参数为 `transitionend` 事件对象;`this` 指向当前元素\n * @example\n```js\n$('.box').transitionEnd(function() {\n alert('.box 元素的 transitionend 事件已触发');\n});\n```\n */\n transitionEnd(callback: (this: T, e: Event) => void): this;\n }\n}\n\n$.fn.transitionEnd = function (\n this: JQ,\n callback: (this: HTMLElement, e: Event) => void,\n): JQ {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const that = this;\n const events = ['webkitTransitionEnd', 'transitionend'];\n\n function fireCallback(this: Element | Document | Window, e: Event): void {\n if (e.target !== this) {\n return;\n }\n\n // @ts-ignore\n callback.call(this, e);\n\n each(events, (_, event) => {\n that.off(event, fireCallback);\n });\n }\n\n each(events, (_, event) => {\n that.on(event, fireCallback);\n });\n\n return this;\n};\n","import $ from 'mdui.jq/es/$';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport 'mdui.jq/es/methods/each';\n\ndeclare module 'mdui.jq/es/JQ' {\n interface JQ {\n /**\n * 设置当前元素的 transform-origin 属性\n * @param transformOrigin\n * @example\n```js\n$('.box').transformOrigin('top center');\n```\n */\n transformOrigin(transformOrigin: string): this;\n }\n}\n\n$.fn.transformOrigin = function (this: JQ, transformOrigin: string): JQ {\n return this.each(function () {\n this.style.webkitTransformOrigin = transformOrigin;\n this.style.transformOrigin = transformOrigin;\n });\n};\n","import $ from 'mdui.jq/es/$';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport 'mdui.jq/es/methods/each';\n\ndeclare module 'mdui.jq/es/JQ' {\n interface JQ {\n /**\n * 设置当前元素的 transform 属性\n * @param transform\n * @example\n```js\n$('.box').transform('rotate(90deg)');\n```\n */\n transform(transform: string): this;\n }\n}\n\n$.fn.transform = function (this: JQ, transform: string): JQ {\n return this.each(function () {\n this.style.webkitTransform = transform;\n this.style.transform = transform;\n });\n};\n","import PlainObject from 'mdui.jq/es/interfaces/PlainObject';\nimport data from 'mdui.jq/es/functions/data';\n\ntype TYPE_API_INIT = (\n this: HTMLElement,\n i: number,\n element: HTMLElement,\n) => void;\n\n/**\n * CSS 选择器和初始化函数组成的对象\n */\nconst entries: PlainObject = {};\n\n/**\n * 注册并执行初始化函数\n * @param selector CSS 选择器\n * @param apiInit 初始化函数\n * @param i 元素索引\n * @param element 元素\n */\nfunction mutation(\n selector: string,\n apiInit: TYPE_API_INIT,\n i: number,\n element: HTMLElement,\n): void {\n let selectors = data(element, '_mdui_mutation');\n\n if (!selectors) {\n selectors = [];\n data(element, '_mdui_mutation', selectors);\n }\n\n if (selectors.indexOf(selector) === -1) {\n selectors.push(selector);\n apiInit.call(element, i, element);\n }\n}\n\nexport { TYPE_API_INIT, entries, mutation };\n","import $ from 'mdui.jq/es/$';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport each from 'mdui.jq/es/functions/each';\nimport 'mdui.jq/es/methods/each';\nimport 'mdui.jq/es/methods/find';\nimport 'mdui.jq/es/methods/is';\nimport { entries, mutation } from '../../utils/mutation';\n\ndeclare module 'mdui.jq/es/JQ' {\n interface JQ {\n /**\n * 执行在当前元素及其子元素内注册的初始化函数\n */\n mutation(): this;\n }\n}\n\n$.fn.mutation = function (this: JQ): JQ {\n return this.each((i, element) => {\n const $this = $(element);\n\n each(entries, (selector: string, apiInit) => {\n if ($this.is(selector)) {\n mutation(selector, apiInit, i, element);\n }\n\n $this.find(selector).each((i, element) => {\n mutation(selector, apiInit, i, element);\n });\n });\n });\n};\n","import $ from 'mdui.jq/es/$';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport { isUndefined } from 'mdui.jq/es/utils';\nimport 'mdui.jq/es/methods/data';\nimport 'mdui.jq/es/methods/css';\nimport 'mdui.jq/es/methods/appendTo';\nimport 'mdui.jq/es/methods/addClass';\nimport '../methods/reflow';\n\ndeclare module 'mdui.jq/es/interfaces/JQStatic' {\n interface JQStatic {\n /**\n * 创建并显示遮罩,返回遮罩层的 JQ 对象\n * @param zIndex 遮罩层的 `z-index` 值,默认为 `2000`\n * @example\n```js\n$.showOverlay();\n```\n * @example\n```js\n$.showOverlay(3000);\n```\n */\n showOverlay(zIndex?: number): JQ;\n }\n}\n\n$.showOverlay = function (zIndex?: number): JQ {\n let $overlay = $('.mdui-overlay');\n\n if ($overlay.length) {\n $overlay.data('_overlay_is_deleted', false);\n\n if (!isUndefined(zIndex)) {\n $overlay.css('z-index', zIndex);\n }\n } else {\n if (isUndefined(zIndex)) {\n zIndex = 2000;\n }\n\n $overlay = $('
          ')\n .appendTo(document.body)\n .reflow()\n .css('z-index', zIndex);\n }\n\n let level = $overlay.data('_overlay_level') || 0;\n\n return $overlay.data('_overlay_level', ++level).addClass('mdui-overlay-show');\n};\n","import $ from 'mdui.jq/es/$';\nimport 'mdui.jq/es/methods/data';\nimport 'mdui.jq/es/methods/removeClass';\nimport 'mdui.jq/es/methods/remove';\nimport '../methods/transitionEnd';\n\ndeclare module 'mdui.jq/es/interfaces/JQStatic' {\n interface JQStatic {\n /**\n * 隐藏遮罩层\n *\n * 如果调用了多次 $.showOverlay() 来显示遮罩层,则也需要调用相同次数的 $.hideOverlay() 才能隐藏遮罩层。可以通过传入参数 true 来强制隐藏遮罩层。\n * @param force 是否强制隐藏遮罩\n * @example\n```js\n$.hideOverlay();\n```\n * @example\n```js\n$.hideOverlay(true);\n```\n */\n hideOverlay(force?: boolean): void;\n }\n}\n\n$.hideOverlay = function (force = false): void {\n const $overlay = $('.mdui-overlay');\n\n if (!$overlay.length) {\n return;\n }\n\n let level = force ? 1 : $overlay.data('_overlay_level');\n\n if (level > 1) {\n $overlay.data('_overlay_level', --level);\n return;\n }\n\n $overlay\n .data('_overlay_level', 0)\n .removeClass('mdui-overlay-show')\n .data('_overlay_is_deleted', true)\n .transitionEnd(() => {\n if ($overlay.data('_overlay_is_deleted')) {\n $overlay.remove();\n }\n });\n};\n","import $ from 'mdui.jq/es/$';\nimport 'mdui.jq/es/methods/addClass';\nimport 'mdui.jq/es/methods/data';\nimport 'mdui.jq/es/methods/width';\n\ndeclare module 'mdui.jq/es/interfaces/JQStatic' {\n interface JQStatic {\n /**\n * 锁定屏页面,禁止页面滚动\n * @example\n```js\n$.lockScreen();\n```\n */\n lockScreen(): void;\n }\n}\n\n$.lockScreen = function (): void {\n const $body = $('body');\n\n // 不直接把 body 设为 box-sizing: border-box,避免污染全局样式\n const newBodyWidth = $body.width();\n let level = $body.data('_lockscreen_level') || 0;\n\n $body\n .addClass('mdui-locked')\n .width(newBodyWidth)\n .data('_lockscreen_level', ++level);\n};\n","import $ from 'mdui.jq/es/$';\nimport 'mdui.jq/es/methods/data';\nimport 'mdui.jq/es/methods/removeClass';\nimport 'mdui.jq/es/methods/width';\n\ndeclare module 'mdui.jq/es/interfaces/JQStatic' {\n interface JQStatic {\n /**\n * 解除页面锁定\n *\n * 如果调用了多次 $.lockScreen() 来显示遮罩层,则也需要调用相同次数的 $.unlockScreen() 才能隐藏遮罩层。可以通过传入参数 true 来强制隐藏遮罩层。\n * @param force 是否强制解除锁定\n * @example\n```js\n$.unlockScreen();\n```\n * @example\n```js\n$.unlockScreen(true);\n```\n */\n unlockScreen(force?: boolean): void;\n }\n}\n\n$.unlockScreen = function (force = false): void {\n const $body = $('body');\n let level = force ? 1 : $body.data('_lockscreen_level');\n\n if (level > 1) {\n $body.data('_lockscreen_level', --level);\n return;\n }\n\n $body.data('_lockscreen_level', 0).removeClass('mdui-locked').width('');\n};\n","import $ from 'mdui.jq/es/$';\nimport { isNull } from 'mdui.jq/es/utils';\n\ndeclare module 'mdui.jq/es/interfaces/JQStatic' {\n interface JQStatic {\n /**\n * 函数节流\n * @param fn 执行的函数\n * @param delay 最多多少毫秒执行一次\n * @example\n```js\n$.throttle(function () {\n console.log('这个函数最多 100ms 执行一次');\n}, 100)\n```\n */\n throttle(fn: () => void, delay: number): () => void;\n }\n}\n\n$.throttle = function (fn: () => void, delay = 16): () => void {\n let timer: any = null;\n\n return function (this: any, ...args: any): void {\n if (isNull(timer)) {\n timer = setTimeout(() => {\n fn.apply(this, args);\n timer = null;\n }, delay);\n }\n };\n};\n","import $ from 'mdui.jq/es/$';\nimport { isUndefined } from 'mdui.jq/es/utils';\nimport PlainObject from 'mdui.jq/es/interfaces/PlainObject';\n\ndeclare module 'mdui.jq/es/interfaces/JQStatic' {\n interface JQStatic {\n /**\n * 生成一个全局唯一的 ID\n * @param name 当该参数值对应的 guid 不存在时,会生成一个新的 guid,并返回;当该参数对应的 guid 已存在,则直接返回已有 guid\n * @example\n```js\n$.guid();\n```\n * @example\n```js\n$.guid('test');\n```\n */\n guid(name?: string): string;\n }\n}\n\nconst GUID: PlainObject = {};\n\n$.guid = function (name?: string): string {\n if (!isUndefined(name) && !isUndefined(GUID[name])) {\n return GUID[name];\n }\n\n function s4(): string {\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n }\n\n const guid =\n '_' +\n s4() +\n s4() +\n '-' +\n s4() +\n '-' +\n s4() +\n '-' +\n s4() +\n '-' +\n s4() +\n s4() +\n s4();\n\n if (!isUndefined(name)) {\n GUID[name] = guid;\n }\n\n return guid;\n};\n","import $ from 'mdui.jq/es/$';\nimport 'mdui.jq/es/methods/each';\nimport mdui from '../mdui';\nimport '../jq_extends/methods/mutation';\nimport { isUndefined } from 'mdui.jq/es/utils';\nimport { TYPE_API_INIT, entries, mutation } from '../utils/mutation';\n\ndeclare module '../interfaces/MduiStatic' {\n interface MduiStatic {\n /**\n * 传入了两个参数时,注册并执行初始化函数\n *\n * 没有传入参数时,执行初始化\n * @param selector CSS 选择器\n * @param apiInit 初始化函数\n * @example\n```js\nmdui.mutation();\n```\n * @example\n```js\nmdui.mutation();\n```\n */\n mutation(selector?: string, apiInit?: TYPE_API_INIT): void;\n }\n}\n\nmdui.mutation = function (selector?: string, apiInit?: TYPE_API_INIT): void {\n if (isUndefined(selector) || isUndefined(apiInit)) {\n $(document).mutation();\n return;\n }\n\n entries[selector] = apiInit!;\n $(selector).each((i, element) => mutation(selector, apiInit, i, element));\n};\n","import $ from 'mdui.jq/es/$';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport PlainObject from 'mdui.jq/es/interfaces/PlainObject';\nimport 'mdui.jq/es/methods/trigger';\n\n/**\n * 触发组件上的事件\n * @param eventName 事件名\n * @param componentName 组件名\n * @param target 在该元素上触发事件\n * @param instance 组件实例\n * @param parameters 事件参数\n */\nfunction componentEvent(\n eventName: string,\n componentName: string,\n target: HTMLElement | HTMLElement[] | JQ,\n instance?: any,\n parameters?: PlainObject,\n): void {\n if (!parameters) {\n parameters = {};\n }\n\n // @ts-ignore\n parameters.inst = instance;\n\n const fullEventName = `${eventName}.mdui.${componentName}`;\n\n // jQuery 事件\n // @ts-ignore\n if (typeof jQuery !== 'undefined') {\n // @ts-ignore\n jQuery(target).trigger(fullEventName, parameters);\n }\n\n const $target = $(target);\n\n // mdui.jq 事件\n $target.trigger(fullEventName, parameters);\n\n // 原生事件,供使用 addEventListener 监听\n type EventParams = {\n detail?: any;\n bubbles: boolean;\n cancelable: boolean;\n };\n\n const eventParams: EventParams = {\n bubbles: true,\n cancelable: true,\n detail: parameters,\n };\n\n const eventObject: CustomEvent = new CustomEvent(fullEventName, eventParams);\n\n // @ts-ignore\n eventObject._detail = parameters;\n\n $target[0].dispatchEvent(eventObject);\n}\n\nexport { componentEvent };\n","import $ from 'mdui.jq/es/$';\n\nconst $document = $(document);\nconst $window = $(window);\nconst $body = $('body');\n\nexport { $document, $window, $body };\n","import $ from 'mdui.jq/es/$';\nimport extend from 'mdui.jq/es/functions/extend';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport 'mdui.jq/es/methods/addClass';\nimport 'mdui.jq/es/methods/data';\nimport 'mdui.jq/es/methods/first';\nimport 'mdui.jq/es/methods/hasClass';\nimport 'mdui.jq/es/methods/on';\nimport 'mdui.jq/es/methods/removeClass';\nimport Selector from 'mdui.jq/es/types/Selector';\nimport { isNumber } from 'mdui.jq/es/utils';\nimport mdui from '../../mdui';\nimport '../../jq_extends/methods/transitionEnd';\nimport { componentEvent } from '../../utils/componentEvent';\nimport { $window } from '../../utils/dom';\n\ndeclare module '../../interfaces/MduiStatic' {\n interface MduiStatic {\n /**\n * Headroom 插件\n *\n * 请通过 `new mdui.Headroom()` 调用\n */\n Headroom: {\n /**\n * 实例化 Headroom 组件\n * @param selector CSS 选择器、或 DOM 元素、或 JQ 对象\n * @param options 配置参数\n */\n new (\n selector: Selector | HTMLElement | ArrayLike,\n options?: OPTIONS,\n ): Headroom;\n };\n }\n}\n\ntype TOLERANCE = {\n /**\n * 滚动条向下滚动多少距离开始隐藏或显示元素\n */\n down: number;\n\n /**\n * 滚动条向上滚动多少距离开始隐藏或显示元素\n */\n up: number;\n};\n\ntype OPTIONS = {\n /**\n * 滚动条滚动多少距离开始隐藏或显示元素\n */\n tolerance?: TOLERANCE | number;\n\n /**\n * 在页面顶部多少距离内滚动不会隐藏元素\n */\n offset?: number;\n\n /**\n * 初始化时添加的类\n */\n initialClass?: string;\n\n /**\n * 元素固定时添加的类\n */\n pinnedClass?: string;\n\n /**\n * 元素隐藏时添加的类\n */\n unpinnedClass?: string;\n};\n\ntype STATE = 'pinning' | 'pinned' | 'unpinning' | 'unpinned';\ntype EVENT = 'pin' | 'pinned' | 'unpin' | 'unpinned';\n\nconst DEFAULT_OPTIONS: OPTIONS = {\n tolerance: 5,\n offset: 0,\n initialClass: 'mdui-headroom',\n pinnedClass: 'mdui-headroom-pinned-top',\n unpinnedClass: 'mdui-headroom-unpinned-top',\n};\n\nclass Headroom {\n /**\n * headroom 元素的 JQ 对象\n */\n public $element: JQ;\n\n /**\n * 配置参数\n */\n public options: OPTIONS = extend({}, DEFAULT_OPTIONS);\n\n /**\n * 当前 headroom 的状态\n */\n private state: STATE = 'pinned';\n\n /**\n * 当前是否启用\n */\n private isEnable = false;\n\n /**\n * 上次滚动后,垂直方向的距离\n */\n private lastScrollY = 0;\n\n /**\n * AnimationFrame ID\n */\n private rafId = 0;\n\n public constructor(\n selector: Selector | HTMLElement | ArrayLike,\n options: OPTIONS = {},\n ) {\n this.$element = $(selector).first();\n\n extend(this.options, options);\n\n // tolerance 参数若为数值,转换为对象\n const tolerance = this.options.tolerance;\n if (isNumber(tolerance)) {\n this.options.tolerance = {\n down: tolerance,\n up: tolerance,\n };\n }\n\n this.enable();\n }\n\n /**\n * 滚动时的处理\n */\n private onScroll(): void {\n this.rafId = window.requestAnimationFrame(() => {\n const currentScrollY = window.pageYOffset;\n const direction = currentScrollY > this.lastScrollY ? 'down' : 'up';\n const tolerance = (this.options.tolerance as TOLERANCE)[direction];\n const scrolled = Math.abs(currentScrollY - this.lastScrollY);\n const toleranceExceeded = scrolled >= tolerance;\n\n if (\n currentScrollY > this.lastScrollY &&\n currentScrollY >= this.options.offset! &&\n toleranceExceeded\n ) {\n this.unpin();\n } else if (\n (currentScrollY < this.lastScrollY && toleranceExceeded) ||\n currentScrollY <= this.options.offset!\n ) {\n this.pin();\n }\n\n this.lastScrollY = currentScrollY;\n });\n }\n\n /**\n * 触发组件事件\n * @param name\n */\n private triggerEvent(name: EVENT): void {\n componentEvent(name, 'headroom', this.$element, this);\n }\n\n /**\n * 动画结束的回调\n */\n private transitionEnd(): void {\n if (this.state === 'pinning') {\n this.state = 'pinned';\n this.triggerEvent('pinned');\n }\n\n if (this.state === 'unpinning') {\n this.state = 'unpinned';\n this.triggerEvent('unpinned');\n }\n }\n\n /**\n * 使元素固定住\n */\n public pin(): void {\n if (\n this.state === 'pinning' ||\n this.state === 'pinned' ||\n !this.$element.hasClass(this.options.initialClass!)\n ) {\n return;\n }\n\n this.triggerEvent('pin');\n this.state = 'pinning';\n this.$element\n .removeClass(this.options.unpinnedClass)\n .addClass(this.options.pinnedClass!)\n .transitionEnd(() => this.transitionEnd());\n }\n\n /**\n * 使元素隐藏\n */\n public unpin(): void {\n if (\n this.state === 'unpinning' ||\n this.state === 'unpinned' ||\n !this.$element.hasClass(this.options.initialClass!)\n ) {\n return;\n }\n\n this.triggerEvent('unpin');\n this.state = 'unpinning';\n this.$element\n .removeClass(this.options.pinnedClass)\n .addClass(this.options.unpinnedClass!)\n .transitionEnd(() => this.transitionEnd());\n }\n\n /**\n * 启用 headroom 插件\n */\n public enable(): void {\n if (this.isEnable) {\n return;\n }\n\n this.isEnable = true;\n this.state = 'pinned';\n this.$element\n .addClass(this.options.initialClass!)\n .removeClass(this.options.pinnedClass)\n .removeClass(this.options.unpinnedClass);\n this.lastScrollY = window.pageYOffset;\n\n $window.on('scroll', () => this.onScroll());\n }\n\n /**\n * 禁用 headroom 插件\n */\n public disable(): void {\n if (!this.isEnable) {\n return;\n }\n\n this.isEnable = false;\n this.$element\n .removeClass(this.options.initialClass)\n .removeClass(this.options.pinnedClass)\n .removeClass(this.options.unpinnedClass);\n\n $window.off('scroll', () => this.onScroll());\n window.cancelAnimationFrame(this.rafId);\n }\n\n /**\n * 获取当前状态。共包含四种状态:`pinning`、`pinned`、`unpinning`、`unpinned`\n */\n public getState(): STATE {\n return this.state;\n }\n}\n\nmdui.Headroom = Headroom;\n","import $ from 'mdui.jq/es/$';\nimport 'mdui.jq/es/methods/attr';\nimport PlainObject from 'mdui.jq/es/interfaces/PlainObject';\n\n/**\n * 解析 DATA API 参数\n * @param element 元素\n * @param name 属性名\n */\nfunction parseOptions(element: HTMLElement, name: string): PlainObject {\n const attr = $(element).attr(name);\n\n if (!attr) {\n return {};\n }\n\n return new Function(\n '',\n `var json = ${attr}; return JSON.parse(JSON.stringify(json));`,\n )();\n}\n\nexport { parseOptions };\n","import $ from 'mdui.jq/es/$';\nimport mdui from '../../mdui';\nimport '../../global/mutation';\nimport { parseOptions } from '../../utils/parseOptions';\nimport './index';\n\nconst customAttr = 'mdui-headroom';\n\n$(() => {\n mdui.mutation(`[${customAttr}]`, function () {\n new mdui.Headroom(this, parseOptions(this, customAttr));\n });\n});\n","import $ from 'mdui.jq/es/$';\nimport extend from 'mdui.jq/es/functions/extend';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport 'mdui.jq/es/methods/addClass';\nimport 'mdui.jq/es/methods/children';\nimport 'mdui.jq/es/methods/each';\nimport 'mdui.jq/es/methods/eq';\nimport 'mdui.jq/es/methods/first';\nimport 'mdui.jq/es/methods/hasClass';\nimport 'mdui.jq/es/methods/height';\nimport 'mdui.jq/es/methods/is';\nimport 'mdui.jq/es/methods/on';\nimport 'mdui.jq/es/methods/parent';\nimport 'mdui.jq/es/methods/parents';\nimport 'mdui.jq/es/methods/removeClass';\nimport Selector from 'mdui.jq/es/types/Selector';\nimport { isNumber } from 'mdui.jq/es/utils';\nimport '../../jq_extends/methods/reflow';\nimport '../../jq_extends/methods/transition';\nimport '../../jq_extends/methods/transitionEnd';\nimport { componentEvent } from '../../utils/componentEvent';\n\ntype OPTIONS = {\n /**\n * 是否启用手风琴效果\n * 为 `true` 时,最多只能有一个面板项处于打开状态,打开一个面板项时会关闭其他面板项\n * 为 `false` 时,可同时打开多个面板项\n */\n accordion?: boolean;\n};\n\ntype EVENT = 'open' | 'opened' | 'close' | 'closed';\n\nconst DEFAULT_OPTIONS: OPTIONS = {\n accordion: false,\n};\n\nabstract class CollapseAbstract {\n /**\n * collapse 元素的 JQ 对象\n */\n public $element: JQ;\n\n /**\n * 配置参数\n */\n public options: OPTIONS = extend({}, DEFAULT_OPTIONS);\n\n /**\n * item 的 class 名\n */\n private classItem: string;\n\n /**\n * 打开状态的 item 的 class 名\n */\n private classItemOpen: string;\n\n /**\n * item-header 的 class 名\n */\n private classHeader: string;\n\n /**\n * item-body 的 class 名\n */\n private classBody: string;\n\n /**\n * 获取继承的组件名称\n */\n protected abstract getNamespace(): string;\n\n public constructor(\n selector: Selector | HTMLElement | ArrayLike,\n options: OPTIONS = {},\n ) {\n // CSS 类名\n const classPrefix = `mdui-${this.getNamespace()}-item`;\n this.classItem = classPrefix;\n this.classItemOpen = `${classPrefix}-open`;\n this.classHeader = `${classPrefix}-header`;\n this.classBody = `${classPrefix}-body`;\n\n this.$element = $(selector).first();\n\n extend(this.options, options);\n\n this.bindEvent();\n }\n\n /**\n * 绑定事件\n */\n private bindEvent(): void {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const that = this;\n\n // 点击 header 时,打开/关闭 item\n this.$element.on('click', `.${this.classHeader}`, function () {\n const $header = $(this as HTMLElement);\n const $item = $header.parent();\n const $items = that.getItems();\n\n $items.each((_, item) => {\n if ($item.is(item)) {\n that.toggle(item);\n }\n });\n });\n\n // 点击关闭按钮时,关闭 item\n this.$element.on(\n 'click',\n `[mdui-${this.getNamespace()}-item-close]`,\n function () {\n const $target = $(this as HTMLElement);\n const $item = $target.parents(`.${that.classItem}`).first();\n\n that.close($item);\n },\n );\n }\n\n /**\n * 指定 item 是否处于打开状态\n * @param $item\n */\n private isOpen($item: JQ): boolean {\n return $item.hasClass(this.classItemOpen);\n }\n\n /**\n * 获取所有 item\n */\n private getItems(): JQ {\n return this.$element.children(`.${this.classItem}`);\n }\n\n /**\n * 获取指定 item\n * @param item\n */\n private getItem(\n item: number | Selector | HTMLElement | ArrayLike,\n ): JQ {\n if (isNumber(item)) {\n return this.getItems().eq(item);\n }\n\n return $(item).first();\n }\n\n /**\n * 触发组件事件\n * @param name 事件名\n * @param $item 事件触发的目标 item\n */\n private triggerEvent(name: EVENT, $item: JQ): void {\n componentEvent(name, this.getNamespace(), $item, this);\n }\n\n /**\n * 动画结束回调\n * @param $content body 元素\n * @param $item item 元素\n */\n private transitionEnd($content: JQ, $item: JQ): void {\n if (this.isOpen($item)) {\n $content.transition(0).height('auto').reflow().transition('');\n\n this.triggerEvent('opened', $item);\n } else {\n $content.height('');\n\n this.triggerEvent('closed', $item);\n }\n }\n\n /**\n * 打开指定面板项\n * @param item 面板项的索引号、或 CSS 选择器、或 DOM 元素、或 JQ 对象\n */\n public open(\n item: number | Selector | HTMLElement | ArrayLike,\n ): void {\n const $item = this.getItem(item);\n\n if (this.isOpen($item)) {\n return;\n }\n\n // 关闭其他项\n if (this.options.accordion) {\n this.$element.children(`.${this.classItemOpen}`).each((_, element) => {\n const $element = $(element);\n\n if (!$element.is($item)) {\n this.close($element);\n }\n });\n }\n\n const $content = $item.children(`.${this.classBody}`);\n\n $content\n .height($content[0].scrollHeight)\n .transitionEnd(() => this.transitionEnd($content, $item));\n\n this.triggerEvent('open', $item);\n\n $item.addClass(this.classItemOpen);\n }\n\n /**\n * 关闭指定面板项\n * @param item 面板项的索引号、或 CSS 选择器、或 DOM 元素、或 JQ 对象\n */\n public close(\n item: number | Selector | HTMLElement | ArrayLike,\n ): void {\n const $item = this.getItem(item);\n\n if (!this.isOpen($item)) {\n return;\n }\n\n const $content = $item.children(`.${this.classBody}`);\n\n this.triggerEvent('close', $item);\n\n $item.removeClass(this.classItemOpen);\n\n $content\n .transition(0)\n .height($content[0].scrollHeight)\n .reflow()\n .transition('')\n .height('')\n .transitionEnd(() => this.transitionEnd($content, $item));\n }\n\n /**\n * 切换指定面板项的打开状态\n * @param item 面板项的索引号、或 CSS 选择器、或 DOM 元素、或 JQ 对象\n */\n public toggle(\n item: number | Selector | HTMLElement | ArrayLike,\n ): void {\n const $item = this.getItem(item);\n\n this.isOpen($item) ? this.close($item) : this.open($item);\n }\n\n /**\n * 打开所有面板项\n */\n public openAll(): void {\n this.getItems().each((_, element) => this.open(element));\n }\n\n /**\n * 关闭所有面板项\n */\n public closeAll(): void {\n this.getItems().each((_, element) => this.close(element));\n }\n}\n\nexport { OPTIONS, CollapseAbstract };\n","import Selector from 'mdui.jq/es/types/Selector';\nimport mdui from '../../mdui';\nimport { CollapseAbstract, OPTIONS } from './collapseAbstract';\n\ndeclare module '../../interfaces/MduiStatic' {\n interface MduiStatic {\n /**\n * 折叠内容块组件\n *\n * 请通过 `new mdui.Collapse()` 调用\n */\n Collapse: {\n /**\n * 实例化 Collapse 组件\n * @param selector CSS 选择器或 DOM 元素\n * @param options 配置参数\n */\n new (\n selector: Selector | HTMLElement | ArrayLike,\n options?: OPTIONS,\n ): Collapse;\n };\n }\n}\n\nclass Collapse extends CollapseAbstract {\n protected getNamespace(): string {\n return 'collapse';\n }\n}\n\nmdui.Collapse = Collapse;\n","import $ from 'mdui.jq/es/$';\nimport mdui from '../../mdui';\nimport '../../global/mutation';\nimport { parseOptions } from '../../utils/parseOptions';\nimport './index';\n\nconst customAttr = 'mdui-collapse';\n\n$(() => {\n mdui.mutation(`[${customAttr}]`, function () {\n new mdui.Collapse(this, parseOptions(this, customAttr));\n });\n});\n","import Selector from 'mdui.jq/es/types/Selector';\nimport mdui from '../../mdui';\nimport { CollapseAbstract, OPTIONS } from '../collapse/collapseAbstract';\n\ndeclare module '../../interfaces/MduiStatic' {\n interface MduiStatic {\n /**\n * 可扩展面板组件\n *\n * 请通过 `new mdui.Panel()` 调用\n */\n Panel: {\n /**\n * 实例化 Panel 组件\n * @param selector CSS 选择器或 DOM 元素\n * @param options 配置参数\n */\n new (\n selector: Selector | HTMLElement | ArrayLike,\n options?: OPTIONS,\n ): Panel;\n };\n }\n}\n\nclass Panel extends CollapseAbstract {\n protected getNamespace(): string {\n return 'panel';\n }\n}\n\nmdui.Panel = Panel;\n","import $ from 'mdui.jq/es/$';\nimport mdui from '../../mdui';\nimport '../../global/mutation';\nimport { parseOptions } from '../../utils/parseOptions';\nimport './index';\n\nconst customAttr = 'mdui-panel';\n\n$(() => {\n mdui.mutation(`[${customAttr}]`, function () {\n new mdui.Panel(this, parseOptions(this, customAttr));\n });\n});\n","import $ from 'mdui.jq/es/$';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport 'mdui.jq/es/methods/add';\nimport 'mdui.jq/es/methods/addClass';\nimport 'mdui.jq/es/methods/data';\nimport 'mdui.jq/es/methods/each';\nimport 'mdui.jq/es/methods/eq';\nimport 'mdui.jq/es/methods/find';\nimport 'mdui.jq/es/methods/first';\nimport 'mdui.jq/es/methods/hasClass';\nimport 'mdui.jq/es/methods/on';\nimport 'mdui.jq/es/methods/prependTo';\nimport 'mdui.jq/es/methods/remove';\nimport 'mdui.jq/es/methods/removeClass';\nimport Selector from 'mdui.jq/es/types/Selector';\nimport { isUndefined } from 'mdui.jq/es/utils';\nimport mdui from '../../mdui';\nimport '../../global/mutation';\n\ndeclare module '../../interfaces/MduiStatic' {\n interface MduiStatic {\n /**\n * 动态修改了表格后,需要调用该方法重新初始化表格。\n *\n * 若传入了参数,则只初始化该参数对应的表格。若没有传入参数,则重新初始化所有表格。\n * @param selector CSS 选择器、或 DOM 元素、或 DOM 元素组成的数组、或 JQ 对象\n */\n updateTables(\n selector?: Selector | HTMLElement | ArrayLike,\n ): void;\n }\n}\n\nclass Table {\n /**\n * table 元素的 JQ 对象\n */\n public $element: JQ;\n\n /**\n * 表头 tr 元素\n */\n private $thRow: JQ = $();\n\n /**\n * 表格 body 中的 tr 元素\n */\n private $tdRows: JQ = $();\n\n /**\n * 表头的 checkbox 元素\n */\n private $thCheckbox: JQ = $();\n\n /**\n * 表格 body 中的 checkbox 元素\n */\n private $tdCheckboxs: JQ = $();\n\n /**\n * 表格行是否可选择\n */\n private selectable = false;\n\n /**\n * 已选中的行数\n */\n private selectedRow = 0;\n\n public constructor(\n selector: Selector | HTMLElement | ArrayLike,\n ) {\n this.$element = $(selector).first();\n this.init();\n }\n\n /**\n * 初始化表格\n */\n public init(): void {\n this.$thRow = this.$element.find('thead tr');\n this.$tdRows = this.$element.find('tbody tr');\n this.selectable = this.$element.hasClass('mdui-table-selectable');\n\n this.updateThCheckbox();\n this.updateTdCheckbox();\n this.updateNumericCol();\n }\n\n /**\n * 生成 checkbox 的 HTML 结构\n * @param tag 标签名\n */\n private createCheckboxHTML(tag: string): string {\n return (\n `<${tag} class=\"mdui-table-cell-checkbox\">` +\n '' +\n ``\n );\n }\n\n /**\n * 更新表头 checkbox 的状态\n */\n private updateThCheckboxStatus(): void {\n const checkbox = this.$thCheckbox[0];\n const selectedRow = this.selectedRow;\n const tdRowsLength = this.$tdRows.length;\n\n checkbox.checked = selectedRow === tdRowsLength;\n checkbox.indeterminate = !!selectedRow && selectedRow !== tdRowsLength;\n }\n\n /**\n * 更新表格行的 checkbox\n */\n private updateTdCheckbox(): void {\n const rowSelectedClass = 'mdui-table-row-selected';\n\n this.$tdRows.each((_, row) => {\n const $row = $(row);\n\n // 移除旧的 checkbox\n $row.find('.mdui-table-cell-checkbox').remove();\n\n if (!this.selectable) {\n return;\n }\n\n // 创建 DOM\n const $checkbox = $(this.createCheckboxHTML('td'))\n .prependTo($row)\n .find('input[type=\"checkbox\"]') as JQ;\n\n // 默认选中的行\n if ($row.hasClass(rowSelectedClass)) {\n $checkbox[0].checked = true;\n this.selectedRow++;\n }\n\n this.updateThCheckboxStatus();\n\n // 绑定事件\n $checkbox.on('change', () => {\n if ($checkbox[0].checked) {\n $row.addClass(rowSelectedClass);\n this.selectedRow++;\n } else {\n $row.removeClass(rowSelectedClass);\n this.selectedRow--;\n }\n\n this.updateThCheckboxStatus();\n });\n\n this.$tdCheckboxs = this.$tdCheckboxs.add($checkbox);\n });\n }\n\n /**\n * 更新表头的 checkbox\n */\n private updateThCheckbox(): void {\n // 移除旧的 checkbox\n this.$thRow.find('.mdui-table-cell-checkbox').remove();\n\n if (!this.selectable) {\n return;\n }\n\n this.$thCheckbox = $(this.createCheckboxHTML('th'))\n .prependTo(this.$thRow)\n .find('input[type=\"checkbox\"]')\n .on('change', () => {\n const isCheckedAll = this.$thCheckbox[0].checked;\n this.selectedRow = isCheckedAll ? this.$tdRows.length : 0;\n\n this.$tdCheckboxs.each((_, checkbox) => {\n checkbox.checked = isCheckedAll;\n });\n\n this.$tdRows.each((_, row) => {\n isCheckedAll\n ? $(row).addClass('mdui-table-row-selected')\n : $(row).removeClass('mdui-table-row-selected');\n });\n }) as JQ;\n }\n\n /**\n * 更新数值列\n */\n private updateNumericCol(): void {\n const numericClass = 'mdui-table-col-numeric';\n\n this.$thRow.find('th').each((i, th) => {\n const isNumericCol = $(th).hasClass(numericClass);\n\n this.$tdRows.each((_, row) => {\n const $td = $(row).find('td').eq(i);\n\n isNumericCol\n ? $td.addClass(numericClass)\n : $td.removeClass(numericClass);\n });\n });\n }\n}\n\nconst dataName = '_mdui_table';\n\n$(() => {\n mdui.mutation('.mdui-table', function () {\n const $element = $(this);\n\n if (!$element.data(dataName)) {\n $element.data(dataName, new Table($element));\n }\n });\n});\n\nmdui.updateTables = function (\n selector?: Selector | HTMLElement | ArrayLike,\n): void {\n const $elements = isUndefined(selector) ? $('.mdui-table') : $(selector);\n\n $elements.each((_, element) => {\n const $element = $(element);\n const instance = $element.data(dataName);\n\n if (instance) {\n instance.init();\n } else {\n $element.data(dataName, new Table($element));\n }\n });\n};\n","/**\n * touch 事件后的 500ms 内禁用 mousedown 事件\n *\n * 不支持触控的屏幕上事件顺序为 mousedown -> mouseup -> click\n * 支持触控的屏幕上事件顺序为 touchstart -> touchend -> mousedown -> mouseup -> click\n *\n * 在每一个事件中都使用 TouchHandler.isAllow(event) 判断事件是否可执行\n * 在 touchstart 和 touchmove、touchend、touchcancel\n *\n * (function () {\n * $document\n * .on(start, function (e) {\n * if (!isAllow(e)) {\n * return;\n * }\n * register(e);\n * console.log(e.type);\n * })\n * .on(move, function (e) {\n * if (!isAllow(e)) {\n * return;\n * }\n * console.log(e.type);\n * })\n * .on(end, function (e) {\n * if (!isAllow(e)) {\n * return;\n * }\n * console.log(e.type);\n * })\n * .on(unlock, register);\n * })();\n */\n\nconst startEvent = 'touchstart mousedown';\nconst moveEvent = 'touchmove mousemove';\nconst endEvent = 'touchend mouseup';\nconst cancelEvent = 'touchcancel mouseleave';\nconst unlockEvent = 'touchend touchmove touchcancel';\n\nlet touches = 0;\n\n/**\n * 该事件是否被允许,在执行事件前调用该方法判断事件是否可以执行\n * 若已触发 touch 事件,则阻止之后的鼠标事件\n * @param event\n */\nfunction isAllow(event: Event): boolean {\n return !(\n touches &&\n [\n 'mousedown',\n 'mouseup',\n 'mousemove',\n 'click',\n 'mouseover',\n 'mouseout',\n 'mouseenter',\n 'mouseleave',\n ].indexOf(event.type) > -1\n );\n}\n\n/**\n * 在 touchstart 和 touchmove、touchend、touchcancel 事件中调用该方法注册事件\n * @param event\n */\nfunction register(event: Event): void {\n if (event.type === 'touchstart') {\n // 触发了 touch 事件\n touches += 1;\n } else if (\n ['touchmove', 'touchend', 'touchcancel'].indexOf(event.type) > -1\n ) {\n // touch 事件结束 500ms 后解除对鼠标事件的阻止\n setTimeout(function () {\n if (touches) {\n touches -= 1;\n }\n }, 500);\n }\n}\n\nexport {\n startEvent,\n moveEvent,\n endEvent,\n cancelEvent,\n unlockEvent,\n isAllow,\n register,\n};\n","/**\n * Inspired by https://github.com/nolimits4web/Framework7/blob/master/src/js/fast-clicks.js\n * https://github.com/nolimits4web/Framework7/blob/master/LICENSE\n *\n * Inspired by https://github.com/fians/Waves\n */\n\nimport $ from 'mdui.jq/es/$';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport 'mdui.jq/es/methods/addClass';\nimport 'mdui.jq/es/methods/attr';\nimport 'mdui.jq/es/methods/children';\nimport 'mdui.jq/es/methods/data';\nimport 'mdui.jq/es/methods/each';\nimport 'mdui.jq/es/methods/first';\nimport 'mdui.jq/es/methods/hasClass';\nimport 'mdui.jq/es/methods/innerHeight';\nimport 'mdui.jq/es/methods/innerWidth';\nimport 'mdui.jq/es/methods/off';\nimport 'mdui.jq/es/methods/offset';\nimport 'mdui.jq/es/methods/on';\nimport 'mdui.jq/es/methods/parents';\nimport 'mdui.jq/es/methods/prependTo';\nimport 'mdui.jq/es/methods/prop';\nimport 'mdui.jq/es/methods/remove';\nimport { isUndefined } from 'mdui.jq/es/utils';\nimport '../../jq_extends/methods/reflow';\nimport '../../jq_extends/methods/transform';\nimport '../../jq_extends/methods/transitionEnd';\nimport { $document } from '../../utils/dom';\nimport {\n cancelEvent,\n endEvent,\n isAllow,\n moveEvent,\n register,\n startEvent,\n unlockEvent,\n} from '../../utils/touchHandler';\n\n/**\n * 显示涟漪动画\n * @param event\n * @param $ripple\n */\nfunction show(event: Event, $ripple: JQ): void {\n // 鼠标右键不产生涟漪\n if (event instanceof MouseEvent && event.button === 2) {\n return;\n }\n\n // 点击位置坐标\n const touchPosition =\n typeof TouchEvent !== 'undefined' &&\n event instanceof TouchEvent &&\n event.touches.length\n ? event.touches[0]\n : (event as MouseEvent);\n\n const touchStartX = touchPosition.pageX;\n const touchStartY = touchPosition.pageY;\n\n // 涟漪位置\n const offset = $ripple.offset();\n const height = $ripple.innerHeight();\n const width = $ripple.innerWidth();\n const center = {\n x: touchStartX - offset.left,\n y: touchStartY - offset.top,\n };\n const diameter = Math.max(\n Math.pow(Math.pow(height, 2) + Math.pow(width, 2), 0.5),\n 48,\n );\n\n // 涟漪扩散动画\n const translate =\n `translate3d(${-center.x + width / 2}px,` +\n `${-center.y + height / 2}px, 0) scale(1)`;\n\n // 涟漪的 DOM 结构,并缓存动画效果\n $(\n `
          `,\n )\n .data('_ripple_wave_translate', translate)\n .prependTo($ripple)\n .reflow()\n .transform(translate);\n}\n\n/**\n * 隐藏并移除涟漪\n * @param $wave\n */\nfunction removeRipple($wave: JQ): void {\n if (!$wave.length || $wave.data('_ripple_wave_removed')) {\n return;\n }\n\n $wave.data('_ripple_wave_removed', true);\n\n let removeTimer = setTimeout(() => $wave.remove(), 400);\n const translate = $wave.data('_ripple_wave_translate');\n\n $wave\n .addClass('mdui-ripple-wave-fill')\n .transform(translate.replace('scale(1)', 'scale(1.01)'))\n .transitionEnd(() => {\n clearTimeout(removeTimer);\n\n $wave\n .addClass('mdui-ripple-wave-out')\n .transform(translate.replace('scale(1)', 'scale(1.01)'));\n\n removeTimer = setTimeout(() => $wave.remove(), 700);\n\n setTimeout(() => {\n $wave.transitionEnd(() => {\n clearTimeout(removeTimer);\n $wave.remove();\n });\n }, 0);\n });\n}\n\n/**\n * 隐藏涟漪动画\n * @param this\n */\nfunction hide(this: any): void {\n const $ripple = $(this as HTMLElement);\n\n $ripple.children('.mdui-ripple-wave').each((_, wave) => {\n removeRipple($(wave));\n });\n\n $ripple.off(`${moveEvent} ${endEvent} ${cancelEvent}`, hide);\n}\n\n/**\n * 显示涟漪,并绑定 touchend 等事件\n * @param event\n */\nfunction showRipple(event: Event): void {\n if (!isAllow(event)) {\n return;\n }\n\n register(event);\n\n // Chrome 59 点击滚动条时,会在 document 上触发事件\n if (event.target === document) {\n return;\n }\n\n const $target = $(event.target as HTMLElement);\n\n // 获取含 .mdui-ripple 类的元素\n const $ripple = $target.hasClass('mdui-ripple')\n ? $target\n : $target.parents('.mdui-ripple').first();\n\n if (!$ripple.length) {\n return;\n }\n\n // 禁用状态的元素上不产生涟漪效果\n if ($ripple.prop('disabled') || !isUndefined($ripple.attr('disabled'))) {\n return;\n }\n\n if (event.type === 'touchstart') {\n let hidden = false;\n\n // touchstart 触发指定时间后开始涟漪动画,避免手指滑动时也触发涟漪\n let timer = setTimeout(() => {\n timer = 0;\n show(event, $ripple);\n }, 200);\n\n const hideRipple = (): void => {\n // 如果手指没有移动,且涟漪动画还没有开始,则开始涟漪动画\n if (timer) {\n clearTimeout(timer);\n timer = 0;\n show(event, $ripple);\n }\n\n if (!hidden) {\n hidden = true;\n hide.call($ripple);\n }\n };\n\n // 手指移动后,移除涟漪动画\n const touchMove = (): void => {\n if (timer) {\n clearTimeout(timer);\n timer = 0;\n }\n\n hideRipple();\n };\n\n $ripple.on('touchmove', touchMove).on('touchend touchcancel', hideRipple);\n } else {\n show(event, $ripple);\n $ripple.on(`${moveEvent} ${endEvent} ${cancelEvent}`, hide);\n }\n}\n\n$(() => {\n $document.on(startEvent, showRipple).on(unlockEvent, register);\n});\n","import $ from 'mdui.jq/es/$';\nimport extend from 'mdui.jq/es/functions/extend';\nimport 'mdui.jq/es/methods/addClass';\nimport 'mdui.jq/es/methods/appendTo';\nimport 'mdui.jq/es/methods/attr';\nimport 'mdui.jq/es/methods/each';\nimport 'mdui.jq/es/methods/find';\nimport 'mdui.jq/es/methods/is';\nimport 'mdui.jq/es/methods/on';\nimport 'mdui.jq/es/methods/outerHeight';\nimport 'mdui.jq/es/methods/parent';\nimport 'mdui.jq/es/methods/parents';\nimport 'mdui.jq/es/methods/remove';\nimport 'mdui.jq/es/methods/removeClass';\nimport 'mdui.jq/es/methods/text';\nimport 'mdui.jq/es/methods/trigger';\nimport 'mdui.jq/es/methods/val';\nimport Selector from 'mdui.jq/es/types/Selector';\nimport { isUndefined } from 'mdui.jq/es/utils';\nimport mdui from '../../mdui';\nimport '../../global/mutation';\nimport { $document } from '../../utils/dom';\n\ndeclare module '../../interfaces/MduiStatic' {\n interface MduiStatic {\n /**\n * 动态修改了文本框后,需要调用该方法重新初始化文本框。\n *\n * 若传入了参数,则只初始化该参数对应的文本框。若没有传入参数,则重新初始化所有文本框。\n * @param selector CSS 选择器、或 DOM 元素、或 DOM 元素组成的数组、或 JQ 对象\n */\n updateTextFields(\n selector?: Selector | HTMLElement | ArrayLike,\n ): void;\n }\n}\n\ntype INPUT_EVENT_DATA = {\n reInit?: boolean;\n domLoadedEvent?: boolean;\n};\n\nconst defaultData: INPUT_EVENT_DATA = {\n reInit: false,\n domLoadedEvent: false,\n};\n\n/**\n * 输入框事件\n * @param event\n * @param data\n */\nfunction inputEvent(event: Event, data: INPUT_EVENT_DATA = {}): void {\n data = extend({}, defaultData, data);\n\n const input = event.target as HTMLInputElement;\n const $input = $(input);\n const eventType = event.type;\n const value = $input.val() as string;\n\n // 文本框类型\n const inputType = $input.attr('type') || '';\n if (\n ['checkbox', 'button', 'submit', 'range', 'radio', 'image'].indexOf(\n inputType,\n ) > -1\n ) {\n return;\n }\n\n const $textfield = $input.parent('.mdui-textfield');\n\n // 输入框是否聚焦\n if (eventType === 'focus') {\n $textfield.addClass('mdui-textfield-focus');\n }\n\n if (eventType === 'blur') {\n $textfield.removeClass('mdui-textfield-focus');\n }\n\n // 输入框是否为空\n if (eventType === 'blur' || eventType === 'input') {\n value\n ? $textfield.addClass('mdui-textfield-not-empty')\n : $textfield.removeClass('mdui-textfield-not-empty');\n }\n\n // 输入框是否禁用\n input.disabled\n ? $textfield.addClass('mdui-textfield-disabled')\n : $textfield.removeClass('mdui-textfield-disabled');\n\n // 表单验证\n if (\n (eventType === 'input' || eventType === 'blur') &&\n !data.domLoadedEvent &&\n input.validity\n ) {\n input.validity.valid\n ? $textfield.removeClass('mdui-textfield-invalid-html5')\n : $textfield.addClass('mdui-textfield-invalid-html5');\n }\n\n // textarea 高度自动调整\n if ($input.is('textarea')) {\n // IE bug:textarea 的值仅为多个换行,不含其他内容时,textarea 的高度不准确\n // 此时,在计算高度前,在值的开头加入一个空格,计算完后,移除空格\n const inputValue = value;\n let hasExtraSpace = false;\n\n if (inputValue.replace(/[\\r\\n]/g, '') === '') {\n $input.val(' ' + inputValue);\n hasExtraSpace = true;\n }\n\n // 设置 textarea 高度\n $input.outerHeight('');\n const height = $input.outerHeight();\n const scrollHeight = input.scrollHeight;\n\n if (scrollHeight > height) {\n $input.outerHeight(scrollHeight);\n }\n\n // 计算完,还原 textarea 的值\n if (hasExtraSpace) {\n $input.val(inputValue);\n }\n }\n\n // 实时字数统计\n if (data.reInit) {\n $textfield.find('.mdui-textfield-counter').remove();\n }\n\n const maxLength = $input.attr('maxlength');\n if (maxLength) {\n if (data.reInit || data.domLoadedEvent) {\n $(\n '
          ' +\n ` / ${maxLength}` +\n '
          ',\n ).appendTo($textfield);\n }\n\n $textfield\n .find('.mdui-textfield-counter-inputed')\n .text(value.length.toString());\n }\n\n // 含 帮助文本、错误提示、字数统计 时,增加文本框底部内边距\n if (\n $textfield.find('.mdui-textfield-helper').length ||\n $textfield.find('.mdui-textfield-error').length ||\n maxLength\n ) {\n $textfield.addClass('mdui-textfield-has-bottom');\n }\n}\n\n$(() => {\n // 绑定事件\n $document.on(\n 'input focus blur',\n '.mdui-textfield-input',\n { useCapture: true },\n inputEvent,\n );\n\n // 可展开文本框展开\n $document.on(\n 'click',\n '.mdui-textfield-expandable .mdui-textfield-icon',\n function () {\n $(this as HTMLElement)\n .parents('.mdui-textfield')\n .addClass('mdui-textfield-expanded')\n .find('.mdui-textfield-input')[0]\n .focus();\n },\n );\n\n // 可展开文本框关闭\n $document.on(\n 'click',\n '.mdui-textfield-expanded .mdui-textfield-close',\n function () {\n $(this)\n .parents('.mdui-textfield')\n .removeClass('mdui-textfield-expanded')\n .find('.mdui-textfield-input')\n .val('');\n },\n );\n\n /**\n * 初始化文本框\n */\n mdui.mutation('.mdui-textfield', function () {\n $(this).find('.mdui-textfield-input').trigger('input', {\n domLoadedEvent: true,\n });\n });\n});\n\nmdui.updateTextFields = function (\n selector?: Selector | HTMLElement | ArrayLike,\n): void {\n const $elements = isUndefined(selector) ? $('.mdui-textfield') : $(selector);\n\n $elements.each((_, element) => {\n $(element).find('.mdui-textfield-input').trigger('input', {\n reInit: true,\n });\n });\n};\n","import $ from 'mdui.jq/es/$';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport 'mdui.jq/es/methods/addClass';\nimport 'mdui.jq/es/methods/append';\nimport 'mdui.jq/es/methods/attr';\nimport 'mdui.jq/es/methods/css';\nimport 'mdui.jq/es/methods/data';\nimport 'mdui.jq/es/methods/each';\nimport 'mdui.jq/es/methods/empty';\nimport 'mdui.jq/es/methods/find';\nimport 'mdui.jq/es/methods/hasClass';\nimport 'mdui.jq/es/methods/on';\nimport 'mdui.jq/es/methods/parent';\nimport 'mdui.jq/es/methods/remove';\nimport 'mdui.jq/es/methods/removeClass';\nimport 'mdui.jq/es/methods/text';\nimport 'mdui.jq/es/methods/val';\nimport 'mdui.jq/es/methods/width';\nimport Selector from 'mdui.jq/es/types/Selector';\nimport { isUndefined } from 'mdui.jq/es/utils';\nimport mdui from '../../mdui';\nimport { $document } from '../../utils/dom';\nimport {\n endEvent,\n isAllow,\n register,\n startEvent,\n unlockEvent,\n} from '../../utils/touchHandler';\n\ndeclare module '../../interfaces/MduiStatic' {\n interface MduiStatic {\n /**\n * 动态修改了滑块后,需要调用该方法重新初始化滑块\n *\n * 若传入了参数,则只初始化该参数对应的滑块。若没有传入参数,则重新初始化所有滑块。\n * @param selector CSS 选择器、或 DOM 元素、或 DOM 元素组成的数组、或 JQ 对象\n */\n updateSliders(\n selector?: Selector | HTMLElement | ArrayLike,\n ): void;\n }\n}\n\n/**\n * 滑块的值改变后修改滑块样式\n * @param $slider\n */\nfunction updateValueStyle($slider: JQ): void {\n const data = $slider.data();\n\n const $track = data._slider_$track;\n const $fill = data._slider_$fill;\n const $thumb = data._slider_$thumb;\n const $input = data._slider_$input;\n const min = data._slider_min;\n const max = data._slider_max;\n const isDisabled = data._slider_disabled;\n const isDiscrete = data._slider_discrete;\n const $thumbText = data._slider_$thumbText;\n const value = $input.val();\n const percent = ((value - min) / (max - min)) * 100;\n\n $fill.width(`${percent}%`);\n $track.width(`${100 - percent}%`);\n\n if (isDisabled) {\n $fill.css('padding-right', '6px');\n $track.css('padding-left', '6px');\n }\n\n $thumb.css('left', `${percent}%`);\n\n if (isDiscrete) {\n $thumbText.text(value);\n }\n\n percent === 0\n ? $slider.addClass('mdui-slider-zero')\n : $slider.removeClass('mdui-slider-zero');\n}\n\n/**\n * 重新初始化滑块\n * @param $slider\n */\nfunction reInit($slider: JQ): void {\n const $track = $('
          ');\n const $fill = $('
          ');\n const $thumb = $('
          ');\n const $input = $slider.find('input[type=\"range\"]') as JQ;\n const isDisabled = $input[0].disabled;\n const isDiscrete = $slider.hasClass('mdui-slider-discrete');\n\n // 禁用状态\n isDisabled\n ? $slider.addClass('mdui-slider-disabled')\n : $slider.removeClass('mdui-slider-disabled');\n\n // 重新填充 HTML\n $slider.find('.mdui-slider-track').remove();\n $slider.find('.mdui-slider-fill').remove();\n $slider.find('.mdui-slider-thumb').remove();\n $slider.append($track).append($fill).append($thumb);\n\n // 间续型滑块\n let $thumbText = $();\n if (isDiscrete) {\n $thumbText = $('');\n $thumb.empty().append($thumbText);\n }\n\n $slider.data('_slider_$track', $track);\n $slider.data('_slider_$fill', $fill);\n $slider.data('_slider_$thumb', $thumb);\n $slider.data('_slider_$input', $input);\n $slider.data('_slider_min', $input.attr('min'));\n $slider.data('_slider_max', $input.attr('max'));\n $slider.data('_slider_disabled', isDisabled);\n $slider.data('_slider_discrete', isDiscrete);\n $slider.data('_slider_$thumbText', $thumbText);\n\n // 设置默认值\n updateValueStyle($slider);\n}\n\nconst rangeSelector = '.mdui-slider input[type=\"range\"]';\n\n$(() => {\n // 滑块滑动事件\n $document.on('input change', rangeSelector, function () {\n const $slider = $(this).parent() as JQ;\n\n updateValueStyle($slider);\n });\n\n // 开始触摸滑块事件\n $document.on(startEvent, rangeSelector, function (event: Event) {\n if (!isAllow(event)) {\n return;\n }\n\n register(event);\n\n if ((this as HTMLInputElement).disabled) {\n return;\n }\n\n const $slider = $(this).parent() as JQ;\n\n $slider.addClass('mdui-slider-focus');\n });\n\n // 结束触摸滑块事件\n $document.on(endEvent, rangeSelector, function (event: Event) {\n if (!isAllow(event)) {\n return;\n }\n\n if ((this as HTMLInputElement).disabled) {\n return;\n }\n\n const $slider = $(this).parent() as JQ;\n\n $slider.removeClass('mdui-slider-focus');\n });\n\n $document.on(unlockEvent, rangeSelector, register);\n\n /**\n * 初始化滑块\n */\n mdui.mutation('.mdui-slider', function () {\n reInit($(this));\n });\n});\n\nmdui.updateSliders = function (\n selector?: Selector | HTMLElement | ArrayLike,\n): void {\n const $elements = isUndefined(selector) ? $('.mdui-slider') : $(selector);\n\n $elements.each((_, element) => {\n reInit($(element));\n });\n};\n","import $ from 'mdui.jq/es/$';\nimport extend from 'mdui.jq/es/functions/extend';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport 'mdui.jq/es/methods/addClass';\nimport 'mdui.jq/es/methods/css';\nimport 'mdui.jq/es/methods/each';\nimport 'mdui.jq/es/methods/find';\nimport 'mdui.jq/es/methods/first';\nimport 'mdui.jq/es/methods/hasClass';\nimport 'mdui.jq/es/methods/last';\nimport 'mdui.jq/es/methods/on';\nimport 'mdui.jq/es/methods/parents';\nimport 'mdui.jq/es/methods/removeClass';\nimport Selector from 'mdui.jq/es/types/Selector';\nimport mdui from '../../mdui';\nimport '../../jq_extends/methods/transitionEnd';\nimport { componentEvent } from '../../utils/componentEvent';\nimport { $document } from '../../utils/dom';\nimport { startEvent } from '../../utils/touchHandler';\n\ndeclare module '../../interfaces/MduiStatic' {\n interface MduiStatic {\n /**\n * 浮动操作按钮组件\n *\n * 请通过 `new mdui.Fab()` 调用\n */\n Fab: {\n /**\n * 实例化 Fab 组件\n * @param selector CSS 选择器、或 DOM 元素、或 JQ 对象\n * @param options 配置参数\n */\n new (\n selector: Selector | HTMLElement | ArrayLike,\n options?: OPTIONS,\n ): Fab;\n };\n }\n}\n\ntype OPTIONS = {\n /**\n * 触发方式。`hover`: 鼠标悬浮触发;`click`: 点击触发\n *\n * 默认为 `hover`\n */\n trigger?: 'click' | 'hover';\n};\n\ntype STATE = 'opening' | 'opened' | 'closing' | 'closed';\ntype EVENT = 'open' | 'opened' | 'close' | 'closed';\n\nconst DEFAULT_OPTIONS: OPTIONS = {\n trigger: 'hover',\n};\n\nclass Fab {\n /**\n * Fab 元素的 JQ 对象\n */\n public $element: JQ;\n\n /**\n * 配置参数\n */\n public options: OPTIONS = extend({}, DEFAULT_OPTIONS);\n\n /**\n * 当前 fab 的状态\n */\n private state: STATE = 'closed';\n\n /**\n * 按钮元素\n */\n private $btn: JQ;\n\n /**\n * 拨号菜单元素\n */\n private $dial: JQ;\n\n /**\n * 拨号菜单内的按钮\n */\n private $dialBtns: JQ;\n\n public constructor(\n selector: Selector | HTMLElement | ArrayLike,\n options: OPTIONS = {},\n ) {\n this.$element = $(selector).first();\n\n extend(this.options, options);\n\n this.$btn = this.$element.find('.mdui-fab');\n this.$dial = this.$element.find('.mdui-fab-dial');\n this.$dialBtns = this.$dial.find('.mdui-fab');\n\n if (this.options.trigger === 'hover') {\n this.$btn.on('touchstart mouseenter', () => this.open());\n this.$element.on('mouseleave', () => this.close());\n }\n\n if (this.options.trigger === 'click') {\n this.$btn.on(startEvent, () => this.open());\n }\n\n // 触摸屏幕其他地方关闭快速拨号\n $document.on(startEvent, (event) => {\n if ($(event.target as HTMLElement).parents('.mdui-fab-wrapper').length) {\n return;\n }\n\n this.close();\n });\n }\n\n /**\n * 触发组件事件\n * @param name\n */\n private triggerEvent(name: EVENT): void {\n componentEvent(name, 'fab', this.$element, this);\n }\n\n /**\n * 当前是否为打开状态\n */\n private isOpen(): boolean {\n return this.state === 'opening' || this.state === 'opened';\n }\n\n /**\n * 打开快速拨号菜单\n */\n public open(): void {\n if (this.isOpen()) {\n return;\n }\n\n // 为菜单中的按钮添加不同的 transition-delay\n this.$dialBtns.each((index, btn) => {\n const delay = `${15 * (this.$dialBtns.length - index)}ms`;\n\n btn.style.transitionDelay = delay;\n btn.style.webkitTransitionDelay = delay;\n });\n\n this.$dial.css('height', 'auto').addClass('mdui-fab-dial-show');\n\n // 如果按钮中存在 .mdui-fab-opened 的图标,则进行图标切换\n if (this.$btn.find('.mdui-fab-opened').length) {\n this.$btn.addClass('mdui-fab-opened');\n }\n\n this.state = 'opening';\n this.triggerEvent('open');\n\n // 打开顺序为从下到上逐个打开,最上面的打开后才表示动画完成\n this.$dialBtns.first().transitionEnd(() => {\n if (this.$btn.hasClass('mdui-fab-opened')) {\n this.state = 'opened';\n this.triggerEvent('opened');\n }\n });\n }\n\n /**\n * 关闭快速拨号菜单\n */\n public close(): void {\n if (!this.isOpen()) {\n return;\n }\n\n // 为菜单中的按钮添加不同的 transition-delay\n this.$dialBtns.each((index, btn) => {\n const delay = `${15 * index}ms`;\n\n btn.style.transitionDelay = delay;\n btn.style.webkitTransitionDelay = delay;\n });\n\n this.$dial.removeClass('mdui-fab-dial-show');\n this.$btn.removeClass('mdui-fab-opened');\n this.state = 'closing';\n this.triggerEvent('close');\n\n // 从上往下依次关闭,最后一个关闭后才表示动画完成\n this.$dialBtns.last().transitionEnd(() => {\n if (this.$btn.hasClass('mdui-fab-opened')) {\n return;\n }\n\n this.state = 'closed';\n this.triggerEvent('closed');\n this.$dial.css('height', 0);\n });\n }\n\n /**\n * 切换快速拨号菜单的打开状态\n */\n public toggle(): void {\n this.isOpen() ? this.close() : this.open();\n }\n\n /**\n * 以动画的形式显示整个浮动操作按钮\n */\n public show(): void {\n this.$element.removeClass('mdui-fab-hide');\n }\n\n /**\n * 以动画的形式隐藏整个浮动操作按钮\n */\n public hide(): void {\n this.$element.addClass('mdui-fab-hide');\n }\n\n /**\n * 返回当前快速拨号菜单的打开状态。共包含四种状态:`opening`、`opened`、`closing`、`closed`\n */\n public getState(): STATE {\n return this.state;\n }\n}\n\nmdui.Fab = Fab;\n","import $ from 'mdui.jq/es/$';\nimport mdui from '../../mdui';\nimport { $document } from '../../utils/dom';\nimport { parseOptions } from '../../utils/parseOptions';\nimport './index';\n\nconst customAttr = 'mdui-fab';\n\n$(() => {\n // mouseenter 不冒泡,无法进行事件委托,这里用 mouseover 代替。\n // 不管是 click 、 mouseover 还是 touchstart ,都先初始化。\n\n $document.on(\n 'touchstart mousedown mouseover',\n `[${customAttr}]`,\n function () {\n new mdui.Fab(\n this as HTMLElement,\n parseOptions(this as HTMLElement, customAttr),\n );\n },\n );\n});\n","/**\n * 最终生成的元素结构为:\n * \n *
          // $element\n * State 1 // $selected\n *
          // $menu\n *
          State 1
          // $items\n *
          State 2
          \n *
          State 3
          \n *
          \n *
          \n */\n\nimport $ from 'mdui.jq/es/$';\nimport contains from 'mdui.jq/es/functions/contains';\nimport extend from 'mdui.jq/es/functions/extend';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport 'mdui.jq/es/methods/add';\nimport 'mdui.jq/es/methods/addClass';\nimport 'mdui.jq/es/methods/after';\nimport 'mdui.jq/es/methods/append';\nimport 'mdui.jq/es/methods/appendTo';\nimport 'mdui.jq/es/methods/attr';\nimport 'mdui.jq/es/methods/css';\nimport 'mdui.jq/es/methods/each';\nimport 'mdui.jq/es/methods/find';\nimport 'mdui.jq/es/methods/first';\nimport 'mdui.jq/es/methods/height';\nimport 'mdui.jq/es/methods/hide';\nimport 'mdui.jq/es/methods/index';\nimport 'mdui.jq/es/methods/innerWidth';\nimport 'mdui.jq/es/methods/is';\nimport 'mdui.jq/es/methods/on';\nimport 'mdui.jq/es/methods/remove';\nimport 'mdui.jq/es/methods/removeAttr';\nimport 'mdui.jq/es/methods/removeClass';\nimport 'mdui.jq/es/methods/show';\nimport 'mdui.jq/es/methods/text';\nimport 'mdui.jq/es/methods/trigger';\nimport 'mdui.jq/es/methods/val';\nimport Selector from 'mdui.jq/es/types/Selector';\nimport mdui from '../../mdui';\nimport '../../jq_extends/methods/transitionEnd';\nimport '../../jq_extends/static/guid';\nimport { componentEvent } from '../../utils/componentEvent';\nimport { $document, $window } from '../../utils/dom';\n\ndeclare module '../../interfaces/MduiStatic' {\n interface MduiStatic {\n /**\n * 下拉选择组件\n *\n * 请通过 `new mdui.Select()` 调用\n */\n Select: {\n /**\n * 实例化 Select 组件\n * @param selector CSS 选择器、或 DOM 元素、或 JQ 对象\n * @param options 配置参数\n */\n new (\n selector: Selector | HTMLElement | ArrayLike,\n options?: OPTIONS,\n ): Select;\n };\n }\n}\n\ntype OPTIONS = {\n /**\n * 下拉框位置:`auto`、`top`、`bottom`\n */\n position?: 'auto' | 'top' | 'bottom';\n\n /**\n * 菜单与窗口上下边框至少保持多少间距\n */\n gutter?: number;\n};\n\ntype STATE = 'closing' | 'closed' | 'opening' | 'opened';\ntype EVENT = 'open' | 'opened' | 'close' | 'closed';\n\nconst DEFAULT_OPTIONS: OPTIONS = {\n position: 'auto',\n gutter: 16,\n};\n\nclass Select {\n /**\n * 原生 ``\n : '') +\n (options.type === 'textarea'\n ? ``\n : '') +\n '
          ';\n\n const onCancelClick = (dialog: Dialog): void => {\n const value = dialog.$element.find('.mdui-textfield-input').val();\n onCancel(value, dialog);\n };\n\n const onConfirmClick = (dialog: Dialog): void => {\n const value = dialog.$element.find('.mdui-textfield-input').val();\n onConfirm(value, dialog);\n };\n\n return mdui.dialog({\n title,\n content,\n buttons: [\n {\n text: options.cancelText,\n bold: false,\n close: options.closeOnCancel,\n onClick: onCancelClick,\n },\n {\n text: options.confirmText,\n bold: false,\n close: options.closeOnConfirm,\n onClick: onConfirmClick,\n },\n ],\n cssClass: 'mdui-dialog-prompt',\n history: options.history,\n modal: options.modal,\n closeOnEsc: options.closeOnEsc,\n onOpen: (dialog) => {\n // 初始化输入框\n const $input = dialog.$element.find('.mdui-textfield-input');\n mdui.updateTextFields($input);\n\n // 聚焦到输入框\n $input[0].focus();\n\n // 捕捉文本框回车键,在单行文本框的情况下触发回调\n if (options.type !== 'textarea' && options.confirmOnEnter === true) {\n $input.on('keydown', (event) => {\n if ((event as KeyboardEvent).keyCode === 13) {\n const value = dialog.$element.find('.mdui-textfield-input').val();\n onConfirm(value, dialog);\n\n if (options.closeOnConfirm) {\n dialog.close();\n }\n\n return false;\n }\n\n return;\n });\n }\n\n // 如果是多行输入框,监听输入框的 input 事件,更新对话框高度\n if (options.type === 'textarea') {\n $input.on('input', () => dialog.handleUpdate());\n }\n\n // 有字符数限制时,加载完文本框后 DOM 会变化,需要更新对话框高度\n if (options.maxlength) {\n dialog.handleUpdate();\n }\n },\n });\n};\n","import $ from 'mdui.jq/es/$';\nimport extend from 'mdui.jq/es/functions/extend';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport 'mdui.jq/es/methods/addClass';\nimport 'mdui.jq/es/methods/appendTo';\nimport 'mdui.jq/es/methods/attr';\nimport 'mdui.jq/es/methods/css';\nimport 'mdui.jq/es/methods/first';\nimport 'mdui.jq/es/methods/hasClass';\nimport 'mdui.jq/es/methods/height';\nimport 'mdui.jq/es/methods/html';\nimport 'mdui.jq/es/methods/offset';\nimport 'mdui.jq/es/methods/on';\nimport 'mdui.jq/es/methods/removeClass';\nimport 'mdui.jq/es/methods/width';\nimport Selector from 'mdui.jq/es/types/Selector';\nimport mdui from '../../mdui';\nimport '../../jq_extends/methods/transformOrigin';\nimport '../../jq_extends/methods/transitionEnd';\nimport '../../jq_extends/static/guid';\nimport { componentEvent } from '../../utils/componentEvent';\nimport { $window } from '../../utils/dom';\nimport { isAllow, register, unlockEvent } from '../../utils/touchHandler';\n\ndeclare module '../../interfaces/MduiStatic' {\n interface MduiStatic {\n /**\n * Tooltip 组件\n *\n * 请通过 `new mdui.Tooltip()` 调用\n */\n Tooltip: {\n /**\n * 实例化 Tooltip 组件\n * @param selector CSS 选择器、或 DOM 元素、或 JQ 对象\n * @param options 配置参数\n */\n new (\n selector: Selector | HTMLElement | ArrayLike,\n options?: OPTIONS,\n ): Tooltip;\n };\n }\n}\n\ntype POSITION = 'auto' | 'bottom' | 'top' | 'left' | 'right';\n\ntype OPTIONS = {\n /**\n * Tooltip 的位置。取值范围包括 `auto`、`bottom`、`top`、`left`、`right`。\n * 为 `auto` 时,会自动判断位置。默认在下方。优先级为 `bottom` > `top` > `left` > `right`。\n * 默认为 `auto`\n */\n position?: POSITION;\n\n /**\n * 延时触发,单位毫秒。默认为 `0`,即没有延时。\n */\n delay?: number;\n\n /**\n * Tooltip 的内容\n */\n content?: string;\n};\n\ntype STATE = 'opening' | 'opened' | 'closing' | 'closed';\ntype EVENT = 'open' | 'opened' | 'close' | 'closed';\n\nconst DEFAULT_OPTIONS: OPTIONS = {\n position: 'auto',\n delay: 0,\n content: '',\n};\n\nclass Tooltip {\n /**\n * 触发 tooltip 元素的 JQ 对象\n */\n public $target: JQ;\n\n /**\n * tooltip 元素的 JQ 对象\n */\n public $element: JQ;\n\n /**\n * 配置参数\n */\n public options: OPTIONS = extend({}, DEFAULT_OPTIONS);\n\n /**\n * 当前 tooltip 的状态\n */\n private state: STATE = 'closed';\n\n /**\n * setTimeout 的返回值\n */\n private timeoutId: any = null;\n\n public constructor(\n selector: Selector | HTMLElement | ArrayLike,\n options: OPTIONS = {},\n ) {\n this.$target = $(selector).first();\n\n extend(this.options, options);\n\n // 创建 Tooltip HTML\n this.$element = $(\n `
          ${\n this.options.content\n }
          `,\n ).appendTo(document.body);\n\n // 绑定事件。元素处于 disabled 状态时无法触发鼠标事件,为了统一,把 touch 事件也禁用\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const that = this;\n this.$target\n .on('touchstart mouseenter', function (event) {\n if (that.isDisabled(this as HTMLElement)) {\n return;\n }\n\n if (!isAllow(event)) {\n return;\n }\n\n register(event);\n\n that.open();\n })\n .on('touchend mouseleave', function (event) {\n if (that.isDisabled(this as HTMLElement)) {\n return;\n }\n\n if (!isAllow(event)) {\n return;\n }\n\n that.close();\n })\n .on(unlockEvent, function (event) {\n if (that.isDisabled(this as HTMLElement)) {\n return;\n }\n\n register(event);\n });\n }\n\n /**\n * 元素是否已禁用\n * @param element\n */\n private isDisabled(element: HTMLElement): boolean {\n return (\n (element as HTMLInputElement).disabled ||\n $(element).attr('disabled') !== undefined\n );\n }\n\n /**\n * 是否是桌面设备\n */\n private isDesktop(): boolean {\n return $window.width() > 1024;\n }\n\n /**\n * 设置 Tooltip 的位置\n */\n private setPosition(): void {\n let marginLeft: number;\n let marginTop: number;\n\n // 触发的元素\n const targetProps = this.$target[0].getBoundingClientRect();\n\n // 触发的元素和 Tooltip 之间的距离\n const targetMargin = this.isDesktop() ? 14 : 24;\n\n // Tooltip 的宽度和高度\n const tooltipWidth = this.$element[0].offsetWidth;\n const tooltipHeight = this.$element[0].offsetHeight;\n\n // Tooltip 的方向\n let position: POSITION = this.options.position!;\n\n // 自动判断位置,加 2px,使 Tooltip 距离窗口边框至少有 2px 的间距\n if (position === 'auto') {\n if (\n targetProps.top +\n targetProps.height +\n targetMargin +\n tooltipHeight +\n 2 <\n $window.height()\n ) {\n position = 'bottom';\n } else if (targetMargin + tooltipHeight + 2 < targetProps.top) {\n position = 'top';\n } else if (targetMargin + tooltipWidth + 2 < targetProps.left) {\n position = 'left';\n } else if (\n targetProps.width + targetMargin + tooltipWidth + 2 <\n $window.width() - targetProps.left\n ) {\n position = 'right';\n } else {\n position = 'bottom';\n }\n }\n\n // 设置位置\n switch (position) {\n case 'bottom':\n marginLeft = -1 * (tooltipWidth / 2);\n marginTop = targetProps.height / 2 + targetMargin;\n this.$element.transformOrigin('top center');\n break;\n\n case 'top':\n marginLeft = -1 * (tooltipWidth / 2);\n marginTop =\n -1 * (tooltipHeight + targetProps.height / 2 + targetMargin);\n this.$element.transformOrigin('bottom center');\n break;\n\n case 'left':\n marginLeft = -1 * (tooltipWidth + targetProps.width / 2 + targetMargin);\n marginTop = -1 * (tooltipHeight / 2);\n this.$element.transformOrigin('center right');\n break;\n\n case 'right':\n marginLeft = targetProps.width / 2 + targetMargin;\n marginTop = -1 * (tooltipHeight / 2);\n this.$element.transformOrigin('center left');\n break;\n }\n\n const targetOffset = this.$target.offset();\n\n this.$element.css({\n top: `${targetOffset.top + targetProps.height / 2}px`,\n left: `${targetOffset.left + targetProps.width / 2}px`,\n 'margin-left': `${marginLeft}px`,\n 'margin-top': `${marginTop}px`,\n });\n }\n\n /**\n * 触发组件事件\n * @param name\n */\n private triggerEvent(name: EVENT): void {\n componentEvent(name, 'tooltip', this.$target, this);\n }\n\n /**\n * 动画结束回调\n */\n private transitionEnd(): void {\n if (this.$element.hasClass('mdui-tooltip-open')) {\n this.state = 'opened';\n this.triggerEvent('opened');\n } else {\n this.state = 'closed';\n this.triggerEvent('closed');\n }\n }\n\n /**\n * 当前 tooltip 是否为打开状态\n */\n private isOpen(): boolean {\n return this.state === 'opening' || this.state === 'opened';\n }\n\n /**\n * 执行打开 tooltip\n */\n private doOpen(): void {\n this.state = 'opening';\n this.triggerEvent('open');\n\n this.$element\n .addClass('mdui-tooltip-open')\n .transitionEnd(() => this.transitionEnd());\n }\n\n /**\n * 打开 Tooltip\n * @param options 允许每次打开时设置不同的参数\n */\n public open(options?: OPTIONS): void {\n if (this.isOpen()) {\n return;\n }\n\n const oldOptions = extend({}, this.options);\n\n if (options) {\n extend(this.options, options);\n }\n\n // tooltip 的内容有更新\n if (oldOptions.content !== this.options.content) {\n this.$element.html(this.options.content);\n }\n\n this.setPosition();\n\n if (this.options.delay) {\n this.timeoutId = setTimeout(() => this.doOpen(), this.options.delay);\n } else {\n this.timeoutId = null;\n this.doOpen();\n }\n }\n\n /**\n * 关闭 Tooltip\n */\n public close(): void {\n if (this.timeoutId) {\n clearTimeout(this.timeoutId);\n this.timeoutId = null;\n }\n\n if (!this.isOpen()) {\n return;\n }\n\n this.state = 'closing';\n this.triggerEvent('close');\n\n this.$element\n .removeClass('mdui-tooltip-open')\n .transitionEnd(() => this.transitionEnd());\n }\n\n /**\n * 切换 Tooltip 的打开状态\n */\n public toggle(): void {\n this.isOpen() ? this.close() : this.open();\n }\n\n /**\n * 获取 Tooltip 状态。共包含四种状态:`opening`、`opened`、`closing`、`closed`\n */\n public getState(): STATE {\n return this.state;\n }\n}\n\nmdui.Tooltip = Tooltip;\n","import $ from 'mdui.jq/es/$';\nimport 'mdui.jq/es/methods/data';\nimport 'mdui.jq/es/methods/on';\nimport mdui from '../../mdui';\nimport { $document } from '../../utils/dom';\nimport { parseOptions } from '../../utils/parseOptions';\nimport './index';\n\nconst customAttr = 'mdui-tooltip';\nconst dataName = '_mdui_tooltip';\n\n$(() => {\n // mouseenter 不能冒泡,所以这里用 mouseover 代替\n $document.on('touchstart mouseover', `[${customAttr}]`, function () {\n const $target = $(this);\n let instance = $target.data(dataName);\n\n if (!instance) {\n instance = new mdui.Tooltip(\n this as HTMLElement,\n parseOptions(this as HTMLElement, customAttr),\n );\n $target.data(dataName, instance);\n }\n });\n});\n","import $ from 'mdui.jq/es/$';\nimport extend from 'mdui.jq/es/functions/extend';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport 'mdui.jq/es/methods/addClass';\nimport 'mdui.jq/es/methods/appendTo';\nimport 'mdui.jq/es/methods/find';\nimport 'mdui.jq/es/methods/hasClass';\nimport 'mdui.jq/es/methods/off';\nimport 'mdui.jq/es/methods/on';\nimport 'mdui.jq/es/methods/parents';\nimport 'mdui.jq/es/methods/remove';\nimport { isString } from 'mdui.jq/es/utils';\nimport mdui from '../../mdui';\nimport '../../jq_extends/methods/reflow';\nimport '../../jq_extends/methods/transform';\nimport '../../jq_extends/methods/transitionEnd';\nimport { $document } from '../../utils/dom';\nimport { dequeue, queue } from '../../utils/queue';\nimport { startEvent } from '../../utils/touchHandler';\n\ndeclare module '../../interfaces/MduiStatic' {\n interface MduiStatic {\n /**\n * 打开一个 Snackbar\n * @param message Snackbar 的文本\n * @param options 配置参数\n */\n snackbar(message: string, options?: OPTIONS): Snackbar;\n\n /**\n * 打开一个 Snackbar\n * @param options 配置参数\n */\n snackbar(options: OPTIONS): Snackbar;\n }\n}\n\ntype OPTIONS = {\n /**\n * Snackbar 的文本。通过 `mdui.snackbar(options)` 调用时,该参数不能为空\n */\n message?: string;\n\n /**\n * 在用户没有操作时多长时间自动隐藏,单位(毫秒)。为 `0` 时表示不自动关闭,默认为 `4000`\n */\n timeout?: number;\n\n /**\n * Snackbar 的位置,默认为 `bottom`。\n * 取值范围包括:\n * `bottom`: 下方\n * `top`: 上方\n * `left-top`: 左上角\n * `left-bottom`: 左下角\n * `right-top`: 右上角\n * `right-bottom`: 右下角\n */\n position?:\n | 'bottom'\n | 'top'\n | 'left-top'\n | 'left-bottom'\n | 'right-top'\n | 'right-bottom';\n\n /**\n * 按钮的文本\n */\n buttonText?: string;\n\n /**\n * 按钮的文本颜色,可以是颜色名或颜色值,如 `red`、`#ffffff`、`rgba(255, 255, 255, 0.3)` 等。默认为 `#90CAF9`\n */\n buttonColor?: string;\n\n /**\n * 点击按钮时是否关闭 Snackbar,默认为 `true`\n */\n closeOnButtonClick?: boolean;\n\n /**\n * 点击或触摸 Snackbar 以外的区域时是否关闭 Snackbar,默认为 `true`\n */\n closeOnOutsideClick?: boolean;\n\n /**\n * 在 Snackbar 上点击的回调函数,参数为 Snackbar 的实例\n */\n onClick?: (snackbar: Snackbar) => void;\n\n /**\n * 点击 Snackbar 上的按钮时的回调函数,参数为 Snackbar 的实例\n */\n onButtonClick?: (snackbar: Snackbar) => void;\n\n /**\n * Snackbar 开始打开时的回调函数,参数为 Snackbar 的实例\n */\n onOpen?: (snackbar: Snackbar) => void;\n\n /**\n * Snackbar 打开后的回调函数,参数为 Snackbar 的实例\n */\n onOpened?: (snackbar: Snackbar) => void;\n\n /**\n * Snackbar 开始关闭时的回调函数,参数为 Snackbar 的实例\n */\n onClose?: (snackbar: Snackbar) => void;\n\n /**\n * Snackbar 关闭后的回调函数,参数为 Snackbar 的实例\n */\n onClosed?: (snackbar: Snackbar) => void;\n};\n\ntype STATE = 'opening' | 'opened' | 'closing' | 'closed';\n\nconst DEFAULT_OPTIONS: OPTIONS = {\n message: '',\n timeout: 4000,\n position: 'bottom',\n buttonText: '',\n buttonColor: '',\n closeOnButtonClick: true,\n closeOnOutsideClick: true,\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onClick: () => {},\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onButtonClick: () => {},\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onOpen: () => {},\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onOpened: () => {},\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onClose: () => {},\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onClosed: () => {},\n};\n\n/**\n * 当前打开着的 Snackbar\n */\nlet currentInst: null | Snackbar = null;\n\n/**\n * 队列名\n */\nconst queueName = '_mdui_snackbar';\n\nclass Snackbar {\n /**\n * Snackbar 元素\n */\n public $element: JQ;\n /**\n * 配置参数\n */\n public options: OPTIONS = extend({}, DEFAULT_OPTIONS);\n\n /**\n * 当前 Snackbar 的状态\n */\n private state: STATE = 'closed';\n\n /**\n * setTimeout 的 ID\n */\n private timeoutId: any = null;\n\n public constructor(options: OPTIONS) {\n extend(this.options, options);\n\n // 按钮颜色\n let buttonColorStyle = '';\n let buttonColorClass = '';\n\n if (\n this.options.buttonColor!.indexOf('#') === 0 ||\n this.options.buttonColor!.indexOf('rgb') === 0\n ) {\n buttonColorStyle = `style=\"color:${this.options.buttonColor}\"`;\n } else if (this.options.buttonColor !== '') {\n buttonColorClass = `mdui-text-color-${this.options.buttonColor}`;\n }\n\n // 添加 HTML\n this.$element = $(\n '
          ' +\n `
          ${this.options.message}
          ` +\n (this.options.buttonText\n ? `${this.options.buttonText}`\n : '') +\n '
          ',\n ).appendTo(document.body);\n\n // 设置位置\n this.setPosition('close');\n\n this.$element.reflow().addClass(`mdui-snackbar-${this.options.position}`);\n }\n\n /**\n * 点击 Snackbar 外面的区域关闭\n * @param event\n */\n private closeOnOutsideClick(event: Event): void {\n const $target = $(event.target as HTMLElement);\n\n if (\n !$target.hasClass('mdui-snackbar') &&\n !$target.parents('.mdui-snackbar').length\n ) {\n currentInst!.close();\n }\n }\n\n /**\n * 设置 Snackbar 的位置\n * @param state\n */\n private setPosition(state: 'open' | 'close'): void {\n const snackbarHeight = this.$element[0].clientHeight;\n const position = this.options.position;\n\n let translateX;\n let translateY;\n\n // translateX\n if (position === 'bottom' || position === 'top') {\n translateX = '-50%';\n } else {\n translateX = '0';\n }\n\n // translateY\n if (state === 'open') {\n translateY = '0';\n } else {\n if (position === 'bottom') {\n translateY = snackbarHeight;\n }\n\n if (position === 'top') {\n translateY = -snackbarHeight;\n }\n\n if (position === 'left-top' || position === 'right-top') {\n translateY = -snackbarHeight - 24;\n }\n\n if (position === 'left-bottom' || position === 'right-bottom') {\n translateY = snackbarHeight + 24;\n }\n }\n\n this.$element.transform(`translate(${translateX},${translateY}px`);\n }\n\n /**\n * 打开 Snackbar\n */\n public open(): void {\n if (this.state === 'opening' || this.state === 'opened') {\n return;\n }\n\n // 如果当前有正在显示的 Snackbar,则先加入队列,等旧 Snackbar 关闭后再打开\n if (currentInst) {\n queue(queueName, () => this.open());\n return;\n }\n\n currentInst = this;\n\n // 开始打开\n this.state = 'opening';\n this.options.onOpen!(this);\n\n this.setPosition('open');\n\n this.$element.transitionEnd(() => {\n if (this.state !== 'opening') {\n return;\n }\n\n this.state = 'opened';\n this.options.onOpened!(this);\n\n // 有按钮时绑定事件\n if (this.options.buttonText) {\n this.$element.find('.mdui-snackbar-action').on('click', () => {\n this.options.onButtonClick!(this);\n if (this.options.closeOnButtonClick) {\n this.close();\n }\n });\n }\n\n // 点击 snackbar 的事件\n this.$element.on('click', (event) => {\n if (!$(event.target as HTMLElement).hasClass('mdui-snackbar-action')) {\n this.options.onClick!(this);\n }\n });\n\n // 点击 Snackbar 外面的区域关闭\n if (this.options.closeOnOutsideClick) {\n $document.on(startEvent, this.closeOnOutsideClick);\n }\n\n // 超时后自动关闭\n if (this.options.timeout) {\n this.timeoutId = setTimeout(() => this.close(), this.options.timeout);\n }\n });\n }\n\n /**\n * 关闭 Snackbar\n */\n public close(): void {\n if (this.state === 'closing' || this.state === 'closed') {\n return;\n }\n\n if (this.timeoutId) {\n clearTimeout(this.timeoutId);\n }\n\n if (this.options.closeOnOutsideClick) {\n $document.off(startEvent, this.closeOnOutsideClick);\n }\n\n this.state = 'closing';\n this.options.onClose!(this);\n\n this.setPosition('close');\n\n this.$element.transitionEnd(() => {\n if (this.state !== 'closing') {\n return;\n }\n\n currentInst = null;\n this.state = 'closed';\n this.options.onClosed!(this);\n this.$element.remove();\n dequeue(queueName);\n });\n }\n}\n\nmdui.snackbar = function (message: any, options: any = {}): Snackbar {\n if (isString(message)) {\n options.message = message;\n } else {\n options = message;\n }\n\n const instance = new Snackbar(options);\n\n instance.open();\n\n return instance;\n};\n","import $ from 'mdui.jq/es/$';\nimport 'mdui.jq/es/methods/addClass';\nimport 'mdui.jq/es/methods/children';\nimport 'mdui.jq/es/methods/each';\nimport 'mdui.jq/es/methods/is';\nimport 'mdui.jq/es/methods/on';\nimport 'mdui.jq/es/methods/parent';\nimport 'mdui.jq/es/methods/removeClass';\nimport mdui from '../../mdui';\nimport '../../global/mutation';\nimport { componentEvent } from '../../utils/componentEvent';\nimport { $document } from '../../utils/dom';\nimport '../headroom';\n\n$(() => {\n // 切换导航项\n $document.on('click', '.mdui-bottom-nav>a', function () {\n const $item = $(this as HTMLElement);\n const $bottomNav = $item.parent();\n\n $bottomNav.children('a').each((index, item) => {\n const isThis = $item.is(item);\n\n if (isThis) {\n componentEvent('change', 'bottomNav', $bottomNav[0], undefined, {\n index,\n });\n }\n\n isThis\n ? $(item).addClass('mdui-bottom-nav-active')\n : $(item).removeClass('mdui-bottom-nav-active');\n });\n });\n\n // 滚动时隐藏 mdui-bottom-nav-scroll-hide\n mdui.mutation('.mdui-bottom-nav-scroll-hide', function () {\n new mdui.Headroom(this, {\n pinnedClass: 'mdui-headroom-pinned-down',\n unpinnedClass: 'mdui-headroom-unpinned-down',\n });\n });\n});\n","import $ from 'mdui.jq/es/$';\nimport 'mdui.jq/es/methods/each';\nimport 'mdui.jq/es/methods/hasClass';\nimport 'mdui.jq/es/methods/html';\nimport Selector from 'mdui.jq/es/types/Selector';\nimport { isUndefined } from 'mdui.jq/es/utils';\nimport mdui from '../../mdui';\nimport '../../global/mutation';\n\ndeclare module '../../interfaces/MduiStatic' {\n interface MduiStatic {\n /**\n * 如果需要修改已有的圆形进度条组件,需要调用该方法来重新初始化组件。\n *\n * 若传入了参数,则只重新初始化该参数对应的圆形进度条。若没有传入参数,则重新初始化所有圆形进度条。\n * @param selector CSS 选择器、或 DOM 元素、或 DOM 元素组成的数组、或 JQ 对象\n */\n updateSpinners(\n selector?: Selector | HTMLElement | ArrayLike,\n ): void;\n }\n}\n\n/**\n * layer 的 HTML 结构\n * @param index\n */\nfunction layerHTML(index: number | false = false): string {\n return (\n `
          ` +\n '
          ' +\n '
          ' +\n '
          ' +\n '
          ' +\n '
          ' +\n '
          ' +\n '
          ' +\n '
          ' +\n '
          ' +\n '
          '\n );\n}\n\n/**\n * 填充 HTML\n * @param spinner\n */\nfunction fillHTML(spinner: HTMLElement): void {\n const $spinner = $(spinner);\n\n const layer = $spinner.hasClass('mdui-spinner-colorful')\n ? layerHTML(1) + layerHTML(2) + layerHTML(3) + layerHTML(4)\n : layerHTML();\n\n $spinner.html(layer);\n}\n\n$(() => {\n // 页面加载完后自动填充 HTML 结构\n mdui.mutation('.mdui-spinner', function () {\n fillHTML(this);\n });\n});\n\nmdui.updateSpinners = function (\n selector?: Selector | HTMLElement | ArrayLike,\n): void {\n const $elements = isUndefined(selector) ? $('.mdui-spinner') : $(selector);\n\n $elements.each(function () {\n fillHTML(this);\n });\n};\n","import $ from 'mdui.jq/es/$';\nimport contains from 'mdui.jq/es/functions/contains';\nimport extend from 'mdui.jq/es/functions/extend';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport 'mdui.jq/es/methods/addClass';\nimport 'mdui.jq/es/methods/attr';\nimport 'mdui.jq/es/methods/children';\nimport 'mdui.jq/es/methods/css';\nimport 'mdui.jq/es/methods/data';\nimport 'mdui.jq/es/methods/each';\nimport 'mdui.jq/es/methods/find';\nimport 'mdui.jq/es/methods/first';\nimport 'mdui.jq/es/methods/hasClass';\nimport 'mdui.jq/es/methods/height';\nimport 'mdui.jq/es/methods/is';\nimport 'mdui.jq/es/methods/on';\nimport 'mdui.jq/es/methods/parent';\nimport 'mdui.jq/es/methods/parents';\nimport 'mdui.jq/es/methods/removeClass';\nimport 'mdui.jq/es/methods/width';\nimport Selector from 'mdui.jq/es/types/Selector';\nimport mdui from '../../mdui';\nimport '../../jq_extends/methods/transformOrigin';\nimport '../../jq_extends/methods/transitionEnd';\nimport '../../jq_extends/static/throttle';\nimport { componentEvent } from '../../utils/componentEvent';\nimport { $document, $window } from '../../utils/dom';\n\ndeclare module '../../interfaces/MduiStatic' {\n interface MduiStatic {\n /**\n * Menu 组件\n *\n * 请通过 `new mdui.Menu()` 调用\n */\n Menu: {\n /**\n * 实例化 Menu 组件\n * @param anchorSelector 触发菜单的元素的 CSS 选择器、或 DOM 元素、或 JQ 对象\n * @param menuSelector 菜单的 CSS 选择器、或 DOM 元素、或 JQ 对象\n * @param options 配置参数\n */\n new (\n anchorSelector: Selector | HTMLElement | ArrayLike,\n menuSelector: Selector | HTMLElement | ArrayLike,\n options?: OPTIONS,\n ): Menu;\n };\n }\n}\n\ntype OPTIONS = {\n /**\n * 菜单相对于触发它的元素的位置,默认为 `auto`。\n * 取值范围包括:\n * `top`: 菜单在触发它的元素的上方\n * `bottom`: 菜单在触发它的元素的下方\n * `center`: 菜单在窗口中垂直居中\n * `auto`: 自动判断位置。优先级为:`bottom` > `top` > `center`\n */\n position?: 'auto' | 'top' | 'bottom' | 'center';\n\n /**\n * 菜单与触发它的元素的对其方式,默认为 `auto`。\n * 取值范围包括:\n * `left`: 菜单与触发它的元素左对齐\n * `right`: 菜单与触发它的元素右对齐\n * `center`: 菜单在窗口中水平居中\n * `auto`: 自动判断位置:优先级为:`left` > `right` > `center`\n */\n align?: 'auto' | 'left' | 'right' | 'center';\n\n /**\n * 菜单与窗口边框至少保持多少间距,单位为 px,默认为 `16`\n */\n gutter?: number;\n\n /**\n * 菜单的定位方式,默认为 `false`。\n * 为 `true` 时,菜单使用 fixed 定位。在页面滚动时,菜单将保持在窗口固定位置,不随滚动条滚动。\n * 为 `false` 时,菜单使用 absolute 定位。在页面滚动时,菜单将随着页面一起滚动。\n */\n fixed?: boolean;\n\n /**\n * 菜单是否覆盖在触发它的元素的上面,默认为 `auto`\n * 为 `true` 时,使菜单覆盖在触发它的元素的上面\n * 为 `false` 时,使菜单不覆盖触发它的元素\n * 为 `auto` 时,简单菜单覆盖触发它的元素。级联菜单不覆盖触发它的元素\n */\n covered?: boolean | 'auto';\n\n /**\n * 子菜单的触发方式,默认为 `hover`\n * 为 `click` 时,点击时触发子菜单\n * 为 `hover` 时,鼠标悬浮时触发子菜单\n */\n subMenuTrigger?: 'click' | 'hover';\n\n /**\n * 子菜单的触发延迟时间(单位:毫秒),只有在 `subMenuTrigger: hover` 时,这个参数才有效,默认为 `200`\n */\n subMenuDelay?: number;\n};\n\ntype EVENT = 'open' | 'opened' | 'close' | 'closed';\ntype STATE = 'opening' | 'opened' | 'closing' | 'closed';\n\nconst DEFAULT_OPTIONS: OPTIONS = {\n position: 'auto',\n align: 'auto',\n gutter: 16,\n fixed: false,\n covered: 'auto',\n subMenuTrigger: 'hover',\n subMenuDelay: 200,\n};\n\nclass Menu {\n /**\n * 触发菜单的元素的 JQ 对象\n */\n public $anchor: JQ;\n\n /**\n * 菜单元素的 JQ 对象\n */\n public $element: JQ;\n\n /**\n * 配置参数\n */\n public options: OPTIONS = extend({}, DEFAULT_OPTIONS);\n\n /**\n * 当前菜单状态\n */\n private state: STATE = 'closed';\n\n /**\n * 是否是级联菜单\n */\n private isCascade: boolean;\n\n /**\n * 菜单是否覆盖在触发它的元素的上面\n */\n private isCovered: boolean;\n\n public constructor(\n anchorSelector: Selector | HTMLElement | ArrayLike,\n menuSelector: Selector | HTMLElement | ArrayLike,\n options: OPTIONS = {},\n ) {\n this.$anchor = $(anchorSelector).first();\n this.$element = $(menuSelector).first();\n\n // 触发菜单的元素 和 菜单必须是同级的元素,否则菜单可能不能定位\n if (!this.$anchor.parent().is(this.$element.parent())) {\n throw new Error('anchorSelector and menuSelector must be siblings');\n }\n\n extend(this.options, options);\n\n // 是否是级联菜单\n this.isCascade = this.$element.hasClass('mdui-menu-cascade');\n\n // covered 参数处理\n this.isCovered =\n this.options.covered === 'auto' ? !this.isCascade : this.options.covered!;\n\n // 点击触发菜单切换\n this.$anchor.on('click', () => this.toggle());\n\n // 点击菜单外面区域关闭菜单\n $document.on('click touchstart', (event: Event) => {\n const $target = $(event.target as HTMLElement);\n\n if (\n this.isOpen() &&\n !$target.is(this.$element) &&\n !contains(this.$element[0], $target[0]) &&\n !$target.is(this.$anchor) &&\n !contains(this.$anchor[0], $target[0])\n ) {\n this.close();\n }\n });\n\n // 点击不含子菜单的菜单条目关闭菜单\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const that = this;\n $document.on('click', '.mdui-menu-item', function () {\n const $item = $(this);\n\n if (\n !$item.find('.mdui-menu').length &&\n $item.attr('disabled') === undefined\n ) {\n that.close();\n }\n });\n\n // 绑定点击或鼠标移入含子菜单的条目的事件\n this.bindSubMenuEvent();\n\n // 窗口大小变化时,重新调整菜单位置\n $window.on(\n 'resize',\n $.throttle(() => this.readjust(), 100),\n );\n }\n\n /**\n * 是否为打开状态\n */\n private isOpen(): boolean {\n return this.state === 'opening' || this.state === 'opened';\n }\n\n /**\n * 触发组件事件\n * @param name\n */\n private triggerEvent(name: EVENT): void {\n componentEvent(name, 'menu', this.$element, this);\n }\n\n /**\n * 调整主菜单位置\n */\n private readjust(): void {\n let menuLeft;\n let menuTop;\n\n // 菜单位置和方向\n let position: 'bottom' | 'top' | 'center';\n let align: 'left' | 'right' | 'center';\n\n // window 窗口的宽度和高度\n const windowHeight = $window.height();\n const windowWidth = $window.width();\n\n // 配置参数\n const gutter = this.options.gutter!;\n const isCovered = this.isCovered;\n const isFixed = this.options.fixed;\n\n // 动画方向参数\n let transformOriginX;\n let transformOriginY;\n\n // 菜单的原始宽度和高度\n const menuWidth = this.$element.width();\n const menuHeight = this.$element.height();\n\n // 触发菜单的元素在窗口中的位置\n const anchorRect = this.$anchor[0].getBoundingClientRect();\n const anchorTop = anchorRect.top;\n const anchorLeft = anchorRect.left;\n const anchorHeight = anchorRect.height;\n const anchorWidth = anchorRect.width;\n const anchorBottom = windowHeight - anchorTop - anchorHeight;\n const anchorRight = windowWidth - anchorLeft - anchorWidth;\n\n // 触发元素相对其拥有定位属性的父元素的位置\n const anchorOffsetTop = this.$anchor[0].offsetTop;\n const anchorOffsetLeft = this.$anchor[0].offsetLeft;\n\n // 自动判断菜单位置\n if (this.options.position === 'auto') {\n if (anchorBottom + (isCovered ? anchorHeight : 0) > menuHeight + gutter) {\n // 判断下方是否放得下菜单\n position = 'bottom';\n } else if (\n anchorTop + (isCovered ? anchorHeight : 0) >\n menuHeight + gutter\n ) {\n // 判断上方是否放得下菜单\n position = 'top';\n } else {\n // 上下都放不下,居中显示\n position = 'center';\n }\n } else {\n position = this.options.position!;\n }\n\n // 自动判断菜单对齐方式\n if (this.options.align === 'auto') {\n if (anchorRight + anchorWidth > menuWidth + gutter) {\n // 判断右侧是否放得下菜单\n align = 'left';\n } else if (anchorLeft + anchorWidth > menuWidth + gutter) {\n // 判断左侧是否放得下菜单\n align = 'right';\n } else {\n // 左右都放不下,居中显示\n align = 'center';\n }\n } else {\n align = this.options.align!;\n }\n\n // 设置菜单位置\n if (position === 'bottom') {\n transformOriginY = '0';\n menuTop =\n (isCovered ? 0 : anchorHeight) +\n (isFixed ? anchorTop : anchorOffsetTop);\n } else if (position === 'top') {\n transformOriginY = '100%';\n menuTop =\n (isCovered ? anchorHeight : 0) +\n (isFixed ? anchorTop - menuHeight : anchorOffsetTop - menuHeight);\n } else {\n transformOriginY = '50%';\n\n // =====================在窗口中居中\n // 显示的菜单的高度,简单菜单高度不超过窗口高度,若超过了则在菜单内部显示滚动条\n // 级联菜单内部不允许出现滚动条\n let menuHeightTemp = menuHeight;\n\n // 简单菜单比窗口高时,限制菜单高度\n if (!this.isCascade) {\n if (menuHeight + gutter * 2 > windowHeight) {\n menuHeightTemp = windowHeight - gutter * 2;\n this.$element.height(menuHeightTemp);\n }\n }\n\n menuTop =\n (windowHeight - menuHeightTemp) / 2 +\n (isFixed ? 0 : anchorOffsetTop - anchorTop);\n }\n\n this.$element.css('top', `${menuTop}px`);\n\n // 设置菜单对齐方式\n if (align === 'left') {\n transformOriginX = '0';\n menuLeft = isFixed ? anchorLeft : anchorOffsetLeft;\n } else if (align === 'right') {\n transformOriginX = '100%';\n menuLeft = isFixed\n ? anchorLeft + anchorWidth - menuWidth\n : anchorOffsetLeft + anchorWidth - menuWidth;\n } else {\n transformOriginX = '50%';\n\n //=======================在窗口中居中\n // 显示的菜单的宽度,菜单宽度不能超过窗口宽度\n let menuWidthTemp = menuWidth;\n\n // 菜单比窗口宽,限制菜单宽度\n if (menuWidth + gutter * 2 > windowWidth) {\n menuWidthTemp = windowWidth - gutter * 2;\n this.$element.width(menuWidthTemp);\n }\n\n menuLeft =\n (windowWidth - menuWidthTemp) / 2 +\n (isFixed ? 0 : anchorOffsetLeft - anchorLeft);\n }\n\n this.$element.css('left', `${menuLeft}px`);\n\n // 设置菜单动画方向\n this.$element.transformOrigin(`${transformOriginX} ${transformOriginY}`);\n }\n\n /**\n * 调整子菜单的位置\n * @param $submenu\n */\n private readjustSubmenu($submenu: JQ): void {\n const $item = $submenu.parent('.mdui-menu-item');\n\n let submenuTop;\n let submenuLeft;\n\n // 子菜单位置和方向\n let position: 'top' | 'bottom';\n let align: 'left' | 'right';\n\n // window 窗口的宽度和高度\n const windowHeight = $window.height();\n const windowWidth = $window.width();\n\n // 动画方向参数\n let transformOriginX;\n let transformOriginY;\n\n // 子菜单的原始宽度和高度\n const submenuWidth = $submenu.width();\n const submenuHeight = $submenu.height();\n\n // 触发子菜单的菜单项的宽度高度\n const itemRect = $item[0].getBoundingClientRect();\n const itemWidth = itemRect.width;\n const itemHeight = itemRect.height;\n const itemLeft = itemRect.left;\n const itemTop = itemRect.top;\n\n // 判断菜单上下位置\n if (windowHeight - itemTop > submenuHeight) {\n // 判断下方是否放得下菜单\n position = 'bottom';\n } else if (itemTop + itemHeight > submenuHeight) {\n // 判断上方是否放得下菜单\n position = 'top';\n } else {\n // 默认放在下方\n position = 'bottom';\n }\n\n // 判断菜单左右位置\n if (windowWidth - itemLeft - itemWidth > submenuWidth) {\n // 判断右侧是否放得下菜单\n align = 'left';\n } else if (itemLeft > submenuWidth) {\n // 判断左侧是否放得下菜单\n align = 'right';\n } else {\n // 默认放在右侧\n align = 'left';\n }\n\n // 设置菜单位置\n if (position === 'bottom') {\n transformOriginY = '0';\n submenuTop = '0';\n } else if (position === 'top') {\n transformOriginY = '100%';\n submenuTop = -submenuHeight + itemHeight;\n }\n\n $submenu.css('top', `${submenuTop}px`);\n\n // 设置菜单对齐方式\n if (align === 'left') {\n transformOriginX = '0';\n submenuLeft = itemWidth;\n } else if (align === 'right') {\n transformOriginX = '100%';\n submenuLeft = -submenuWidth;\n }\n\n $submenu.css('left', `${submenuLeft}px`);\n\n // 设置菜单动画方向\n $submenu.transformOrigin(`${transformOriginX} ${transformOriginY}`);\n }\n\n /**\n * 打开子菜单\n * @param $submenu\n */\n private openSubMenu($submenu: JQ): void {\n this.readjustSubmenu($submenu);\n\n $submenu\n .addClass('mdui-menu-open')\n .parent('.mdui-menu-item')\n .addClass('mdui-menu-item-active');\n }\n\n /**\n * 关闭子菜单,及其嵌套的子菜单\n * @param $submenu\n */\n private closeSubMenu($submenu: JQ): void {\n // 关闭子菜单\n $submenu\n .removeClass('mdui-menu-open')\n .addClass('mdui-menu-closing')\n .transitionEnd(() => $submenu.removeClass('mdui-menu-closing'))\n\n // 移除激活状态的样式\n .parent('.mdui-menu-item')\n .removeClass('mdui-menu-item-active');\n\n // 循环关闭嵌套的子菜单\n $submenu.find('.mdui-menu').each((_, menu) => {\n const $subSubmenu = $(menu);\n\n $subSubmenu\n .removeClass('mdui-menu-open')\n .addClass('mdui-menu-closing')\n .transitionEnd(() => $subSubmenu.removeClass('mdui-menu-closing'))\n .parent('.mdui-menu-item')\n .removeClass('mdui-menu-item-active');\n });\n }\n\n /**\n * 切换子菜单状态\n * @param $submenu\n */\n private toggleSubMenu($submenu: JQ): void {\n $submenu.hasClass('mdui-menu-open')\n ? this.closeSubMenu($submenu)\n : this.openSubMenu($submenu);\n }\n\n /**\n * 绑定子菜单事件\n */\n private bindSubMenuEvent(): void {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const that = this;\n\n // 点击打开子菜单\n this.$element.on('click', '.mdui-menu-item', function (event) {\n const $item = $(this as HTMLElement);\n const $target = $(event.target as HTMLElement);\n\n // 禁用状态菜单不操作\n if ($item.attr('disabled') !== undefined) {\n return;\n }\n\n // 没有点击在子菜单的菜单项上时,不操作(点在了子菜单的空白区域、或分隔线上)\n if ($target.is('.mdui-menu') || $target.is('.mdui-divider')) {\n return;\n }\n\n // 阻止冒泡,点击菜单项时只在最后一级的 mdui-menu-item 上生效,不向上冒泡\n if (!$target.parents('.mdui-menu-item').first().is($item)) {\n return;\n }\n\n // 当前菜单的子菜单\n const $submenu = $item.children('.mdui-menu');\n\n // 先关闭除当前子菜单外的所有同级子菜单\n $item\n .parent('.mdui-menu')\n .children('.mdui-menu-item')\n .each((_, item) => {\n const $tmpSubmenu = $(item).children('.mdui-menu');\n\n if (\n $tmpSubmenu.length &&\n (!$submenu.length || !$tmpSubmenu.is($submenu))\n ) {\n that.closeSubMenu($tmpSubmenu);\n }\n });\n\n // 切换当前子菜单\n if ($submenu.length) {\n that.toggleSubMenu($submenu);\n }\n });\n\n if (this.options.subMenuTrigger === 'hover') {\n // 临时存储 setTimeout 对象\n let timeout: any = null;\n let timeoutOpen: any = null;\n\n this.$element.on('mouseover mouseout', '.mdui-menu-item', function (\n event,\n ) {\n const $item = $(this as HTMLElement);\n const eventType = event.type;\n const $relatedTarget = $(\n (event as MouseEvent).relatedTarget as HTMLElement,\n );\n\n // 禁用状态的菜单不操作\n if ($item.attr('disabled') !== undefined) {\n return;\n }\n\n // 用 mouseover 模拟 mouseenter\n if (eventType === 'mouseover') {\n if (\n !$item.is($relatedTarget) &&\n contains($item[0], $relatedTarget[0])\n ) {\n return;\n }\n }\n\n // 用 mouseout 模拟 mouseleave\n else if (eventType === 'mouseout') {\n if (\n $item.is($relatedTarget) ||\n contains($item[0], $relatedTarget[0])\n ) {\n return;\n }\n }\n\n // 当前菜单项下的子菜单,未必存在\n const $submenu = $item.children('.mdui-menu');\n\n // 鼠标移入菜单项时,显示菜单项下的子菜单\n if (eventType === 'mouseover') {\n if ($submenu.length) {\n // 当前子菜单准备打开时,如果当前子菜单正准备着关闭,不用再关闭了\n const tmpClose = $submenu.data('timeoutClose.mdui.menu');\n if (tmpClose) {\n clearTimeout(tmpClose);\n }\n\n // 如果当前子菜单已经打开,不操作\n if ($submenu.hasClass('mdui-menu-open')) {\n return;\n }\n\n // 当前子菜单准备打开时,其他准备打开的子菜单不用再打开了\n clearTimeout(timeoutOpen);\n\n // 准备打开当前子菜单\n timeout = timeoutOpen = setTimeout(\n () => that.openSubMenu($submenu),\n that.options.subMenuDelay,\n );\n\n $submenu.data('timeoutOpen.mdui.menu', timeout);\n }\n }\n\n // 鼠标移出菜单项时,关闭菜单项下的子菜单\n else if (eventType === 'mouseout') {\n if ($submenu.length) {\n // 鼠标移出菜单项时,如果当前菜单项下的子菜单正准备打开,不用再打开了\n const tmpOpen = $submenu.data('timeoutOpen.mdui.menu');\n if (tmpOpen) {\n clearTimeout(tmpOpen);\n }\n\n // 准备关闭当前子菜单\n timeout = setTimeout(\n () => that.closeSubMenu($submenu),\n that.options.subMenuDelay,\n );\n\n $submenu.data('timeoutClose.mdui.menu', timeout);\n }\n }\n });\n }\n }\n\n /**\n * 动画结束回调\n */\n private transitionEnd(): void {\n this.$element.removeClass('mdui-menu-closing');\n\n if (this.state === 'opening') {\n this.state = 'opened';\n this.triggerEvent('opened');\n }\n\n if (this.state === 'closing') {\n this.state = 'closed';\n this.triggerEvent('closed');\n\n // 关闭后,恢复菜单样式到默认状态,并恢复 fixed 定位\n this.$element.css({\n top: '',\n left: '',\n width: '',\n position: 'fixed',\n });\n }\n }\n\n /**\n * 切换菜单状态\n */\n public toggle(): void {\n this.isOpen() ? this.close() : this.open();\n }\n\n /**\n * 打开菜单\n */\n public open(): void {\n if (this.isOpen()) {\n return;\n }\n\n this.state = 'opening';\n this.triggerEvent('open');\n\n this.readjust();\n\n this.$element\n // 菜单隐藏状态使用使用 fixed 定位。\n .css('position', this.options.fixed ? 'fixed' : 'absolute')\n .addClass('mdui-menu-open')\n .transitionEnd(() => this.transitionEnd());\n }\n\n /**\n * 关闭菜单\n */\n public close(): void {\n if (!this.isOpen()) {\n return;\n }\n\n this.state = 'closing';\n this.triggerEvent('close');\n\n // 菜单开始关闭时,关闭所有子菜单\n this.$element.find('.mdui-menu').each((_, submenu) => {\n this.closeSubMenu($(submenu));\n });\n\n this.$element\n .removeClass('mdui-menu-open')\n .addClass('mdui-menu-closing')\n .transitionEnd(() => this.transitionEnd());\n }\n}\n\nmdui.Menu = Menu;\n","import $ from 'mdui.jq/es/$';\nimport 'mdui.jq/es/methods/data';\nimport 'mdui.jq/es/methods/on';\nimport mdui from '../../mdui';\nimport { $document } from '../../utils/dom';\nimport { parseOptions } from '../../utils/parseOptions';\nimport './index';\n\nconst customAttr = 'mdui-menu';\nconst dataName = '_mdui_menu';\n\ntype OPTIONS = {\n target: string;\n position?: 'auto' | 'top' | 'bottom' | 'center';\n align?: 'auto' | 'left' | 'right' | 'center';\n gutter?: number;\n fixed?: boolean;\n covered?: boolean | 'auto';\n subMenuTrigger?: 'click' | 'hover';\n subMenuDelay?: number;\n};\n\n$(() => {\n $document.on('click', `[${customAttr}]`, function () {\n const $this = $(this as HTMLElement);\n let instance = $this.data(dataName);\n\n if (!instance) {\n const options = parseOptions(this as HTMLElement, customAttr) as OPTIONS;\n const menuSelector = options.target;\n // @ts-ignore\n delete options.target;\n\n instance = new mdui.Menu($this, menuSelector, options);\n $this.data(dataName, instance);\n\n instance.toggle();\n }\n });\n});\n"],"names":["e","Promise","promiseFinally","const","let","i","this","get","set","DEFAULT_OPTIONS","customAttr","dataName","currentInst","queueName"],"mappings":";;;;;;;;;;;EAAA,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,MAAMA,GAAC,CAAC,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,EAAC,CAAC,EAAE;;ECAnZ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,OAAO,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,EAAC,CAAC,EAAE;;ECArR;EACA;EACA;EACA,SAAS,kBAAkB,CAAC,QAAQ,EAAE;EACtC,EAAE,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;EACrC,EAAE,OAAO,IAAI,CAAC,IAAI;EAClB,IAAI,SAAS,KAAK,EAAE;EACpB;EACA,MAAM,OAAO,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW;EAC7D,QAAQ,OAAO,KAAK,CAAC;EACrB,OAAO,CAAC,CAAC;EACT,KAAK;EACL,IAAI,SAAS,MAAM,EAAE;EACrB;EACA,MAAM,OAAO,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW;EAC7D;EACA,QAAQ,OAAO,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;EAC1C,OAAO,CAAC,CAAC;EACT,KAAK;EACL,GAAG,CAAC;EACJ;;ECpBA,SAAS,UAAU,CAAC,GAAG,EAAE;EACzB,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;EACf,EAAE,OAAO,IAAI,CAAC,CAAC,SAAS,OAAO,EAAE,MAAM,EAAE;EACzC,IAAI,IAAI,EAAE,GAAG,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,WAAW,CAAC,EAAE;EACrD,MAAM,OAAO,MAAM;EACnB,QAAQ,IAAI,SAAS;EACrB,UAAU,OAAO,GAAG;EACpB,YAAY,GAAG;EACf,YAAY,GAAG;EACf,YAAY,gEAAgE;EAC5E,SAAS;EACT,OAAO,CAAC;EACR,KAAK;EACL,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;EAC/C,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAE,OAAO,OAAO,CAAC,EAAE,CAAC,GAAC;EAC9C,IAAI,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;AAChC;EACA,IAAI,SAAS,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE;EACzB,MAAM,IAAI,GAAG,KAAK,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,UAAU,CAAC,EAAE;EACzE,QAAQ,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;EAC5B,QAAQ,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;EACxC,UAAU,IAAI,CAAC,IAAI;EACnB,YAAY,GAAG;EACf,YAAY,SAAS,GAAG,EAAE;EAC1B,cAAc,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;EAC1B,aAAa;EACb,YAAY,SAAS,CAAC,EAAE;EACxB,cAAc,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;EAC1D,cAAc,IAAI,EAAE,SAAS,KAAK,CAAC,EAAE;EACrC,gBAAgB,OAAO,CAAC,IAAI,CAAC,CAAC;EAC9B,eAAe;EACf,aAAa;EACb,WAAW,CAAC;EACZ,UAAU,OAAO;EACjB,SAAS;EACT,OAAO;EACP,MAAM,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;EACpD,MAAM,IAAI,EAAE,SAAS,KAAK,CAAC,EAAE;EAC7B,QAAQ,OAAO,CAAC,IAAI,CAAC,CAAC;EACtB,OAAO;EACP,KAAK;AACL;EACA,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EAC1C,MAAM,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;EACtB,KAAK;EACL,GAAG,CAAC,CAAC;EACL;;EC3CA;EACA;EACA,IAAI,cAAc,GAAG,UAAU,CAAC;AAChC;EACA,SAAS,OAAO,CAAC,CAAC,EAAE;EACpB,EAAE,OAAO,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;EACvD,CAAC;AACD;EACA,SAAS,IAAI,GAAG,EAAE;AAClB;EACA;EACA,SAAS,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE;EAC3B,EAAE,OAAO,WAAW;EACpB,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;EACjC,GAAG,CAAC;EACJ,CAAC;AACD;EACA;EACA;EACA;EACA;EACA,SAASC,SAAO,CAAC,EAAE,EAAE;EACrB,EAAE,IAAI,EAAE,IAAI,YAAYA,SAAO,CAAC;EAChC,MAAI,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,GAAC;EAChE,EAAE,IAAI,OAAO,EAAE,KAAK,UAAU,IAAE,MAAM,IAAI,SAAS,CAAC,gBAAgB,CAAC,GAAC;EACtE;EACA,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;EAClB;EACA,EAAE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;EACxB;EACA,EAAE,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;EAC1B;EACA,EAAE,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;AACvB;EACA,EAAE,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;EACtB,CAAC;AACD;EACA,SAAS,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE;EAChC,EAAE,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;EAC5B,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;EACvB,GAAG;EACH,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;EACzB,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;EACnC,IAAI,OAAO;EACX,GAAG;EACH,EAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;EACvB,EAAEA,SAAO,CAAC,YAAY,CAAC,WAAW;EAClC,IAAI,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,GAAG,QAAQ,CAAC,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC;EAC5E,IAAI,IAAI,EAAE,KAAK,IAAI,EAAE;EACrB,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,GAAG,OAAO,GAAG,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;EAC5E,MAAM,OAAO;EACb,KAAK;EACL,IAAI,IAAI,GAAG,CAAC;EACZ,IAAI,IAAI;EACR,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;EAC5B,KAAK,CAAC,OAAO,CAAC,EAAE;EAChB,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;EAClC,MAAM,OAAO;EACb,KAAK;EACL,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;EACnC,GAAG,CAAC,CAAC;EACL,CAAC;AACD;EACA,SAAS,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE;EACjC,EAAE,IAAI;EACN;EACA,IAAI,IAAI,QAAQ,KAAK,IAAI;EACzB,QAAM,MAAM,IAAI,SAAS,CAAC,2CAA2C,CAAC,GAAC;EACvE,IAAI;EACJ,MAAM,QAAQ;EACd,OAAO,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,QAAQ,KAAK,UAAU,CAAC;EACtE,MAAM;EACN,MAAM,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;EAC/B,MAAM,IAAI,QAAQ,YAAYA,SAAO,EAAE;EACvC,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;EACxB,QAAQ,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;EAC/B,QAAQ,MAAM,CAAC,IAAI,CAAC,CAAC;EACrB,QAAQ,OAAO;EACf,OAAO,MAAM,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;EAC7C,QAAQ,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;EAC9C,QAAQ,OAAO;EACf,OAAO;EACP,KAAK;EACL,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;EACpB,IAAI,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;EAC3B,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;EACjB,GAAG,CAAC,OAAO,CAAC,EAAE;EACd,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;EACpB,GAAG;EACH,CAAC;AACD;EACA,SAAS,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE;EAChC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;EAClB,EAAE,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;EACzB,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;EACf,CAAC;AACD;EACA,SAAS,MAAM,CAAC,IAAI,EAAE;EACtB,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;EACzD,IAAIA,SAAO,CAAC,YAAY,CAAC,WAAW;EACpC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;EAC1B,QAAQA,SAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;EACnD,OAAO;EACP,KAAK,CAAC,CAAC;EACP,GAAG;AACH;EACA,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;EAC9D,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;EACrC,GAAG;EACH,EAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;EACzB,CAAC;AACD;EACA;EACA;EACA;EACA,SAAS,OAAO,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE;EACnD,EAAE,IAAI,CAAC,WAAW,GAAG,OAAO,WAAW,KAAK,UAAU,GAAG,WAAW,GAAG,IAAI,CAAC;EAC5E,EAAE,IAAI,CAAC,UAAU,GAAG,OAAO,UAAU,KAAK,UAAU,GAAG,UAAU,GAAG,IAAI,CAAC;EACzE,EAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;EACzB,CAAC;AACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAAS,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE;EAC7B,EAAE,IAAI,IAAI,GAAG,KAAK,CAAC;EACnB,EAAE,IAAI;EACN,IAAI,EAAE;EACN,MAAM,SAAS,KAAK,EAAE;EACtB,QAAQ,IAAI,IAAI,IAAE,SAAO;EACzB,QAAQ,IAAI,GAAG,IAAI,CAAC;EACpB,QAAQ,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;EAC7B,OAAO;EACP,MAAM,SAAS,MAAM,EAAE;EACvB,QAAQ,IAAI,IAAI,IAAE,SAAO;EACzB,QAAQ,IAAI,GAAG,IAAI,CAAC;EACpB,QAAQ,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;EAC7B,OAAO;EACP,KAAK,CAAC;EACN,GAAG,CAAC,OAAO,EAAE,EAAE;EACf,IAAI,IAAI,IAAI,IAAE,SAAO;EACrB,IAAI,IAAI,GAAG,IAAI,CAAC;EAChB,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;EACrB,GAAG;EACH,CAAC;AACD;AACAA,WAAO,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,SAAS,UAAU,EAAE;EAClD,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;EACrC,CAAC,CAAC;AACF;AACAA,WAAO,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,WAAW,EAAE,UAAU,EAAE;EAC3D;EACA,EAAE,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AACxC;EACA,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,OAAO,CAAC,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;EAC3D,EAAE,OAAO,IAAI,CAAC;EACd,CAAC,CAAC;AACF;AACAA,WAAO,CAAC,SAAS,CAAC,SAAS,CAAC,GAAGC,kBAAc,CAAC;AAC9C;AACAD,WAAO,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE;EAC5B,EAAE,OAAO,IAAIA,SAAO,CAAC,SAAS,OAAO,EAAE,MAAM,EAAE;EAC/C,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;EACvB,MAAM,OAAO,MAAM,CAAC,IAAI,SAAS,CAAC,8BAA8B,CAAC,CAAC,CAAC;EACnE,KAAK;AACL;EACA,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;EAC/C,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAE,OAAO,OAAO,CAAC,EAAE,CAAC,GAAC;EAC9C,IAAI,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;AAChC;EACA,IAAI,SAAS,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE;EACzB,MAAM,IAAI;EACV,QAAQ,IAAI,GAAG,KAAK,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,GAAG,KAAK,UAAU,CAAC,EAAE;EAC3E,UAAU,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;EAC9B,UAAU,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;EAC1C,YAAY,IAAI,CAAC,IAAI;EACrB,cAAc,GAAG;EACjB,cAAc,SAAS,GAAG,EAAE;EAC5B,gBAAgB,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;EAC5B,eAAe;EACf,cAAc,MAAM;EACpB,aAAa,CAAC;EACd,YAAY,OAAO;EACnB,WAAW;EACX,SAAS;EACT,QAAQ,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;EACtB,QAAQ,IAAI,EAAE,SAAS,KAAK,CAAC,EAAE;EAC/B,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC;EACxB,SAAS;EACT,OAAO,CAAC,OAAO,EAAE,EAAE;EACnB,QAAQ,MAAM,CAAC,EAAE,CAAC,CAAC;EACnB,OAAO;EACP,KAAK;AACL;EACA,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;EAC1C,MAAM,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;EACtB,KAAK;EACL,GAAG,CAAC,CAAC;EACL,CAAC,CAAC;AACF;AACAA,WAAO,CAAC,UAAU,GAAG,UAAU,CAAC;AAChC;AACAA,WAAO,CAAC,OAAO,GAAG,SAAS,KAAK,EAAE;EAClC,EAAE,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,WAAW,KAAKA,SAAO,EAAE;EAC3E,IAAI,OAAO,KAAK,CAAC;EACjB,GAAG;AACH;EACA,EAAE,OAAO,IAAIA,SAAO,CAAC,SAAS,OAAO,EAAE;EACvC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;EACnB,GAAG,CAAC,CAAC;EACL,CAAC,CAAC;AACF;AACAA,WAAO,CAAC,MAAM,GAAG,SAAS,KAAK,EAAE;EACjC,EAAE,OAAO,IAAIA,SAAO,CAAC,SAAS,OAAO,EAAE,MAAM,EAAE;EAC/C,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;EAClB,GAAG,CAAC,CAAC;EACL,CAAC,CAAC;AACF;AACAA,WAAO,CAAC,IAAI,GAAG,SAAS,GAAG,EAAE;EAC7B,EAAE,OAAO,IAAIA,SAAO,CAAC,SAAS,OAAO,EAAE,MAAM,EAAE;EAC/C,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;EACvB,MAAM,OAAO,MAAM,CAAC,IAAI,SAAS,CAAC,+BAA+B,CAAC,CAAC,CAAC;EACpE,KAAK;AACL;EACA,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;EACpD,MAAMA,SAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;EACpD,KAAK;EACL,GAAG,CAAC,CAAC;EACL,CAAC,CAAC;AACF;EACA;AACAA,WAAO,CAAC,YAAY;EACpB;EACA,EAAE,CAAC,OAAO,YAAY,KAAK,UAAU;EACrC,IAAI,SAAS,EAAE,EAAE;EACjB;EACA,MAAM,YAAY,CAAC,EAAE,CAAC,CAAC;EACvB,KAAK;EACL,EAAE,SAAS,EAAE,EAAE;EACf,IAAI,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;EAC1B,GAAG,CAAC;AACJ;AACAA,WAAO,CAAC,qBAAqB,GAAG,SAAS,qBAAqB,CAAC,GAAG,EAAE;EACpE,EAAE,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,EAAE;EACjD,IAAI,OAAO,CAAC,IAAI,CAAC,uCAAuC,EAAE,GAAG,CAAC,CAAC;EAC/D,GAAG;EACH,CAAC;;ECxPD;EACA,IAAI,QAAQ,GAAG,CAAC,WAAW;EAC3B;EACA;EACA;EACA,EAAE,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;EACnC,IAAI,OAAO,IAAI,CAAC;EAChB,GAAG;EACH,EAAE,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;EACrC,IAAI,OAAO,MAAM,CAAC;EAClB,GAAG;EACH,EAAE,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;EACrC,IAAI,OAAO,MAAM,CAAC;EAClB,GAAG;EACH,EAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;EACpD,CAAC,GAAG,CAAC;AACL;EACA;EACA;EACA;EACA;EACA,IAAI,OAAO,QAAQ,CAAC,SAAS,CAAC,KAAK,UAAU,EAAE;EAC/C,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAGA,SAAO,CAAC;EAChC,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;EACnD,EAAE,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,GAAGC,kBAAc,CAAC;EACzD,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE;EACzC,EAAE,QAAQ,CAAC,OAAO,CAAC,UAAU,GAAG,UAAU,CAAC;EAC3C;;EC5BA,SAAS,UAAU,CAAC,MAAM,EAAE;EAC5B,IAAI,OAAO,OAAO,MAAM,KAAK,UAAU,CAAC;EACxC,CAAC;EACD,SAAS,QAAQ,CAAC,MAAM,EAAE;EAC1B,IAAI,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC;EACtC,CAAC;EACD,SAAS,QAAQ,CAAC,MAAM,EAAE;EAC1B,IAAI,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC;EACtC,CAAC;EACD,SAAS,SAAS,CAAC,MAAM,EAAE;EAC3B,IAAI,OAAO,OAAO,MAAM,KAAK,SAAS,CAAC;EACvC,CAAC;EACD,SAAS,WAAW,CAAC,MAAM,EAAE;EAC7B,IAAI,OAAO,OAAO,MAAM,KAAK,WAAW,CAAC;EACzC,CAAC;EACD,SAAS,MAAM,CAAC,MAAM,EAAE;EACxB,IAAI,OAAO,MAAM,KAAK,IAAI,CAAC;EAC3B,CAAC;EACD,SAAS,QAAQ,CAAC,MAAM,EAAE;EAC1B,IAAI,OAAO,MAAM,YAAY,MAAM,CAAC;EACpC,CAAC;EACD,SAAS,UAAU,CAAC,MAAM,EAAE;EAC5B,IAAI,OAAO,MAAM,YAAY,QAAQ,CAAC;EACtC,CAAC;EACD,SAAS,SAAS,CAAC,MAAM,EAAE;EAC3B,IAAI,OAAO,MAAM,YAAY,OAAO,CAAC;EACrC,CAAC;EACD,SAAS,MAAM,CAAC,MAAM,EAAE;EACxB,IAAI,OAAO,MAAM,YAAY,IAAI,CAAC;EAClC,CAAC;EACD;EACA;EACA;EACA,SAAS,IAAI,GAAG;EAChB;EACA,IAAI,OAAO,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC;EAC1C,CAAC;EACD,SAAS,WAAW,CAAC,MAAM,EAAE;EAC7B,IAAI,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE;EAChD,QAAQ,OAAO,KAAK,CAAC;EACrB,KAAK;EACL,IAAI,OAAO,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;EACnC,CAAC;EACD,SAAS,YAAY,CAAC,MAAM,EAAE;EAC9B,IAAI,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC;EACzD,CAAC;EACD,SAAS,SAAS,CAAC,MAAM,EAAE;EAC3B,IAAI,OAAO,UAAU,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,eAAe,GAAG,MAAM,CAAC;EAChE,CAAC;EACD;EACA;EACA;EACA;EACA,SAAS,WAAW,CAAC,MAAM,EAAE;EAC7B,IAAI,OAAO,MAAM;EACjB,SAAS,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC;EAChC,SAAS,OAAO,CAAC,WAAW,YAAG,CAAC,EAAE,MAAM,WAAK,MAAM,CAAC,WAAW,KAAE,CAAC,CAAC;EACnE,CAAC;EACD;EACA;EACA;EACA;EACA,SAAS,WAAW,CAAC,MAAM,EAAE;EAC7B,IAAI,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,YAAG,QAAQ,WAAK,GAAG,GAAG,QAAQ,CAAC,WAAW,KAAE,CAAC,CAAC;EAChF,CAAC;EACD;EACA;EACA;EACA;EACA;EACA,SAAS,qBAAqB,CAAC,OAAO,EAAE,IAAI,EAAE;EAC9C,IAAI,OAAO,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;EAChF,CAAC;EACD;EACA;EACA;EACA;EACA,SAAS,WAAW,CAAC,OAAO,EAAE;EAC9B,IAAI,OAAO,qBAAqB,CAAC,OAAO,EAAE,YAAY,CAAC,KAAK,YAAY,CAAC;EACzE,CAAC;EACD;EACA;EACA;EACA;EACA;EACA;EACA,SAAS,aAAa,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE;EAClD,IAAIC,IAAM,QAAQ,GAAG,SAAS,KAAK,OAAO,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;EACnF,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,WAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAK;EAC7C,QAAQC,IAAI,IAAI,GAAG,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;EAC3C,QAAQ,IAAI,KAAK,KAAK,QAAQ,EAAE;EAChC,YAAY,IAAI,IAAI,OAAO,CAAC;EAC5B,SAAS;EACT,QAAQ,OAAO,IAAI,GAAG,UAAU,CAAC,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;EAC9E,KAAK,EAAE,CAAC,CAAC,CAAC;EACV,CAAC;EACD;EACA;EACA;EACA;EACA;EACA,SAAS,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE;EACjC;EACA,IAAI,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,QAAQ,EAAE;EAC/C,QAAQD,IAAM,WAAW,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,IAAI,CAAC,CAAC;EAClE,QAAQ,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE;EAClC,YAAY,QAAU,WAAW,SAAK;EACtC,SAAS;EACT,QAAQ,SAAU,WAAW;EAC7B,YAAY,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC;EAClD,YAAY,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,WAAM;EACxD,KAAK;EACL,IAAI,OAAO,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;EAChD,CAAC;EACD;EACA;EACA;EACA;EACA;EACA,SAAS,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE;EAC5C,IAAIA,IAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;EACtD,IAAI,UAAU,CAAC,SAAS,GAAG,MAAM,CAAC;EAClC,IAAI,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;EAChD,CAAC;EACD;EACA;EACA;EACA,SAAS,WAAW,GAAG;EACvB,IAAI,OAAO,KAAK,CAAC;EACjB,CAAC;EACD;EACA;EACA;EACAA,IAAM,SAAS,GAAG;EAClB,IAAI,yBAAyB;EAC7B,IAAI,aAAa;EACjB,IAAI,aAAa;EACjB,IAAI,UAAU;EACd,IAAI,YAAY;EAChB,IAAI,YAAY;EAChB,IAAI,UAAU;EACd,IAAI,YAAY;EAChB,IAAI,eAAe;EACnB,IAAI,iBAAiB;EACrB,IAAI,SAAS;EACb,IAAI,YAAY;EAChB,IAAI,cAAc;EAClB,IAAI,YAAY;EAChB,IAAI,SAAS;EACb,IAAI,OAAO;EACX,IAAI,SAAS;EACb,IAAI,QAAQ;EACZ,IAAI,QAAQ;EACZ,IAAI,MAAM,EACT;;EC5JD,SAAS,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE;EAChC,IAAI,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE;EAC7B,QAAQ,KAAKC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;EACnD,YAAY,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE;EAClE,gBAAgB,OAAO,MAAM,CAAC;EAC9B,aAAa;EACb,SAAS;EACT,KAAK;EACL,SAAS;EACT,QAAQD,IAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;EACzC,QAAQ,KAAKC,IAAIC,GAAC,GAAG,CAAC,EAAEA,GAAC,GAAG,IAAI,CAAC,MAAM,EAAEA,GAAC,IAAI,CAAC,EAAE;EACjD,YAAY,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAACA,GAAC,CAAC,CAAC,EAAE,IAAI,CAACA,GAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAACA,GAAC,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE;EACpF,gBAAgB,OAAO,MAAM,CAAC;EAC9B,aAAa;EACb,SAAS;EACT,KAAK;EACL,IAAI,OAAO,MAAM,CAAC;EAClB;;ECjBA;EACA;EACA;EACO,IAAM,EAAE,GACX,WAAW,CAAC,GAAG,EAAE;;AAAC;EACtB,IAAQ,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;EACxB,IAAQ,IAAI,CAAC,GAAG,EAAE;EAClB,QAAY,OAAO,IAAI,CAAC;EACxB,KAAS;EACT,IAAQ,IAAI,CAAC,GAAG,YAAG,CAAC,EAAE,IAAI,EAAK;EAC/B;EACA,QAAYC,MAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;EAC3B,KAAS,CAAC,CAAC;EACX,IAAQ,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;EACjC,IAAQ,OAAO,IAAI,CAAC;EAChB;;ECbJ,SAAS,IAAI,GAAG;EAChB,IAAIH,IAAM,CAAC,GAAG,UAAU,QAAQ,EAAE;EAClC,QAAQ,IAAI,CAAC,QAAQ,EAAE;EACvB,YAAY,OAAO,IAAI,EAAE,EAAE,CAAC;EAC5B,SAAS;EACT;EACA,QAAQ,IAAI,QAAQ,YAAY,EAAE,EAAE;EACpC,YAAY,OAAO,QAAQ,CAAC;EAC5B,SAAS;EACT;EACA,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE;EAClC,YAAY,IAAI,6BAA6B,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;EACvE,gBAAgB,QAAQ,CAAC,IAAI,EAAE;EAC/B,gBAAgB,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;EAC3C,aAAa;EACb,iBAAiB;EACjB,gBAAgB,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,uBAAQ,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAC,EAAE,KAAK,CAAC,CAAC;EACvG,aAAa;EACb,YAAY,OAAO,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;EACtC,SAAS;EACT;EACA,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE;EAChC,YAAYA,IAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;EACzC;EACA,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,EAAE;EAClE,gBAAgBC,IAAI,QAAQ,GAAG,KAAK,CAAC;EACrC,gBAAgBD,IAAM,IAAI,GAAG;EAC7B,oBAAoB,EAAE,EAAE,IAAI;EAC5B,oBAAoB,EAAE,EAAE,OAAO;EAC/B,oBAAoB,EAAE,EAAE,IAAI;EAC5B,oBAAoB,EAAE,EAAE,IAAI;EAC5B,oBAAoB,KAAK,EAAE,OAAO;EAClC,oBAAoB,MAAM,EAAE,QAAQ;EACpC,iBAAiB,CAAC;EAClB,gBAAgB,IAAI,CAAC,IAAI,YAAG,QAAQ,EAAE,SAAS,EAAK;EACpD,oBAAoB,IAAI,IAAI,CAAC,OAAO,QAAK,UAAW,KAAK,CAAC,EAAE;EAC5D,wBAAwB,QAAQ,GAAG,SAAS,CAAC;EAC7C,wBAAwB,OAAO,KAAK,CAAC;EACrC,qBAAqB;EACrB,oBAAoB,OAAO;EAC3B,iBAAiB,CAAC,CAAC;EACnB,gBAAgB,OAAO,IAAI,EAAE,CAAC,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;EAClE,aAAa;EACb;EACA,YAAYA,IAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;EACpF,YAAY,IAAI,CAAC,YAAY,EAAE;EAC/B,gBAAgB,OAAO,IAAI,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;EACnE,aAAa;EACb,YAAYA,IAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;EACvE,YAAY,IAAI,OAAO,EAAE;EACzB,gBAAgB,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;EACzC,aAAa;EACb,YAAY,OAAO,IAAI,EAAE,EAAE,CAAC;EAC5B,SAAS;EACT,QAAQ,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;EACxD,YAAY,OAAO,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC;EACpC,SAAS;EACT,QAAQ,OAAO,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;EAClC,KAAK,CAAC;EACN,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC;EACxB,IAAI,OAAO,CAAC,CAAC;EACb,CAAC;EACDA,IAAM,CAAC,GAAG,IAAI,EAAE;;EC9DhB;EACA;EACA,UAAU,sBAAO,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,aAAa,IAAC,CAAC,CAAC;MAE9C,IAAI,GAAG;MACX,CAAC,EAAE,CAAC;;;ECNN,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,UAAU,QAAQ,EAAE;EAChC,IAAI,OAAO,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;EAChC,CAAC;;ECHD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAAS,QAAQ,CAAC,SAAS,EAAE,QAAQ,EAAE;EACvC,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;EAC7E;;ECbA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAAS,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE;EAC9B,IAAI,IAAI,CAAC,MAAM,YAAG,CAAC,EAAE,KAAK,EAAK;EAC/B,QAAQ,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;EAC1B,KAAK,CAAC,CAAC;EACP,IAAI,OAAO,KAAK,CAAC;EACjB;;ECfA,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,UAAU,KAAK,EAAE;EAC5B,IAAI,OAAO,KAAK,KAAK,SAAS;EAC9B,UAAU,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;EAC7B,UAAU,IAAI,CAAC,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;EACzD,CAAC;;ECAD,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,UAAU,QAAQ,EAAE;EAChC,IAAIA,IAAM,aAAa,GAAG,EAAE,CAAC;EAC7B,IAAI,IAAI,CAAC,IAAI,WAAE,CAAC,EAAE,OAAO,EAAK;EAC9B,QAAQ,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;EAC1E,KAAK,CAAC,CAAC;EACP,IAAI,OAAO,IAAI,EAAE,CAAC,aAAa,CAAC,CAAC;EACjC,CAAC;;ECPD;EACAA,IAAM,QAAQ,GAAG,EAAE,CAAC;EACpB;EACAC,IAAI,aAAa,GAAG,CAAC,CAAC;EACtB;EACA;EACA;EACA,SAAS,YAAY,CAAC,OAAO,EAAE;EAC/B,IAAID,IAAM,GAAG,GAAG,cAAc,CAAC;EAC/B;EACA,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;EACvB;EACA,QAAQ,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,aAAa,CAAC;EACvC,KAAK;EACL;EACA,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;EACxB,CAAC;EACD;EACA;EACA;EACA,SAAS,KAAK,CAAC,IAAI,EAAE;EACrB,IAAIA,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;EAClC,IAAI,OAAO;EACX,QAAQ,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;EACtB,QAAQ,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;EAC3C,KAAK,CAAC;EACN,CAAC;EACD;EACA;EACA;EACA,SAAS,UAAU,CAAC,EAAE,EAAE;EACxB,IAAI,OAAO,IAAI,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,CAAC;EACxE,CAAC;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAAS,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;EACpD,IAAIA,IAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;EAC9B,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,MAAM,WAAE,OAAO,WAAK,OAAO;EAC9E,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC;EACpD,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;EAC5D,SAAS,CAAC,IAAI,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC;EACpE,SAAS,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAC,CAAC,CAAC;EACtD,CAAC;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAAS,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;EACnD,IAAIA,IAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;EAC5C,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;EAC9B,QAAQ,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;EACjC,KAAK;EACL;EACA,IAAIC,IAAI,UAAU,GAAG,KAAK,CAAC;EAC3B,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE;EAC/C,QAAQ,UAAU,GAAG,IAAI,CAAC;EAC1B,KAAK;EACL,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,WAAE,IAAI,EAAK;EACvC,QAAQ,IAAI,CAAC,IAAI,EAAE;EACnB,YAAY,OAAO;EACnB,SAAS;EACT,QAAQD,IAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;EAClC,QAAQ,SAAS,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE;EACjC;EACA,YAAYA,IAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI;EAC1C;EACA,YAAY,CAAC,CAAC,OAAO,KAAK,SAAS,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;EACnE,YAAY,IAAI,MAAM,KAAK,KAAK,EAAE;EAClC,gBAAgB,CAAC,CAAC,cAAc,EAAE,CAAC;EACnC,gBAAgB,CAAC,CAAC,eAAe,EAAE,CAAC;EACpC,aAAa;EACb,SAAS;EACT,QAAQ,SAAS,OAAO,CAAC,CAAC,EAAE;EAC5B;EACA,YAAY,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;EAC5D,gBAAgB,OAAO;EACvB,aAAa;EACb;EACA,YAAY,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC;EAC3B,YAAY,IAAI,QAAQ,EAAE;EAC1B;EACA,gBAAgB,CAAC,CAAC,OAAO,CAAC;EAC1B,qBAAqB,IAAI,CAAC,QAAQ,CAAC;EACnC,qBAAqB,GAAG,EAAE;EAC1B,qBAAqB,OAAO,EAAE;EAC9B,qBAAqB,OAAO,WAAE,IAAI,EAAK;EACvC,oBAAoB,IAAI,IAAI,KAAK,CAAC,CAAC,MAAM;EACzC,wBAAwB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE;EAClD,wBAAwB,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;EACxC,qBAAqB;EACrB,iBAAiB,CAAC,CAAC;EACnB,aAAa;EACb,iBAAiB;EACjB;EACA,gBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;EACnC,aAAa;EACb,SAAS;EACT,QAAQA,IAAM,OAAO,GAAG;EACxB,YAAY,IAAI,EAAE,KAAK,CAAC,IAAI;EAC5B,YAAY,EAAE,EAAE,KAAK,CAAC,EAAE;EACxB,kBAAY,IAAI;EAChB,sBAAY,QAAQ;EACpB,YAAY,EAAE,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,MAAM;EAC1C,YAAY,KAAK,EAAE,OAAO;EAC1B,SAAS,CAAC;EACV,QAAQ,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;EAC1C,QAAQ,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;EACpE,KAAK,CAAC,CAAC;EACP,CAAC;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAAS,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE;EAChD,IAAIA,IAAM,iBAAiB,GAAG,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;EACpE,IAAIA,IAAM,WAAW,aAAI,OAAO,EAAK;EACrC,QAAQ,OAAO,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;EAC7C,QAAQ,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;EACxE,KAAK,CAAC;EACN,IAAI,IAAI,CAAC,KAAK,EAAE;EAChB,QAAQ,iBAAiB,CAAC,OAAO,WAAE,OAAO,WAAK,WAAW,CAAC,OAAO,IAAC,CAAC,CAAC;EACrE,KAAK;EACL,SAAS;EACT,QAAQ,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,WAAE,IAAI,EAAK;EAC3C,YAAY,IAAI,IAAI,EAAE;EACtB,gBAAgB,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,OAAO,WAAE,OAAO,WAAK,WAAW,CAAC,OAAO,IAAC,CAAC,CAAC;EACtG,aAAa;EACb,SAAS,CAAC,CAAC;EACX,KAAK;EACL;;EC9IA,CAAC,CAAC,EAAE,CAAC,OAAO,GAAG,UAAU,IAAI,EAAE,eAAe,EAAE;EAChD,IAAIA,IAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;EAC9B,IAAIC,IAAI,WAAW,CAAC;EACpB,IAAID,IAAM,WAAW,GAAG;EACxB,QAAQ,OAAO,EAAE,IAAI;EACrB,QAAQ,UAAU,EAAE,IAAI;EACxB,KAAK,CAAC;EACN,IAAIA,IAAM,YAAY,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;EACjG,IAAI,IAAI,YAAY,EAAE;EACtB;EACA,QAAQ,WAAW,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;EAC9D,KAAK;EACL,SAAS;EACT,QAAQ,WAAW,CAAC,MAAM,GAAG,eAAe,CAAC;EAC7C,QAAQ,WAAW,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;EAC/D,KAAK;EACL;EACA,IAAI,WAAW,CAAC,OAAO,GAAG,eAAe,CAAC;EAC1C;EACA,IAAI,WAAW,CAAC,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC;EAC/B,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY;EACjC,QAAQ,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;EACxC,KAAK,CAAC,CAAC;EACP,CAAC;;ECxBD,SAAS,MAAM,CAAC,MAAM,EAAE,OAAmB,EAAE;;;AAAC;EAC9C,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;EAC7B,IAAI,IAAI,CAAC,OAAO,YAAG,CAAC,EAAE,MAAM,EAAK;EACjC,QAAQ,IAAI,CAAC,MAAM,YAAG,IAAI,EAAE,KAAK,EAAK;EACtC,YAAY,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;EACrC,gBAAgB,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;EACrC,aAAa;EACb,SAAS,CAAC,CAAC;EACX,KAAK,CAAC,CAAC;EACP,IAAI,OAAO,MAAM,CAAC;EAClB;;ECVA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAAS,KAAK,CAAC,GAAG,EAAE;EACpB,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;EACnD,QAAQ,OAAO,EAAE,CAAC;EAClB,KAAK;EACL,IAAIA,IAAM,IAAI,GAAG,EAAE,CAAC;EACpB,IAAI,SAAS,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE;EACrC,QAAQC,IAAI,MAAM,CAAC;EACnB,QAAQ,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE;EACjC,YAAY,IAAI,CAAC,KAAK,YAAG,CAAC,EAAE,CAAC,EAAK;EAClC,gBAAgB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;EAC9D,oBAAoB,MAAM,GAAG,EAAE,CAAC;EAChC,iBAAiB;EACjB,qBAAqB;EACrB,oBAAoB,MAAM,GAAG,CAAC,CAAC;EAC/B,iBAAiB;EACjB,gBAAgB,WAAW,EAAI,GAAG,SAAI,MAAM,SAAK,CAAC,CAAC,CAAC;EACpD,aAAa,CAAC,CAAC;EACf,SAAS;EACT,aAAa;EACb,YAAY,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE;EAC/C,gBAAgB,MAAM,GAAG,GAAG,CAAC;EAC7B,aAAa;EACb,iBAAiB;EACjB,gBAAgB,MAAM,GAAG,OAAI,kBAAkB,CAAC,KAAK,EAAG,CAAC;EACzD,aAAa;EACb,YAAY,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;EACxD,SAAS;EACT,KAAK;EACL,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;EAC5B,QAAQ,IAAI,CAAC,GAAG,EAAE,YAAY;EAC9B,YAAY,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;EAC/C,SAAS,CAAC,CAAC;EACX,KAAK;EACL,SAAS;EACT,QAAQ,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;EAC/B,KAAK;EACL,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;EAC1B;;ECpEA;EACAD,IAAM,aAAa,GAAG,EAAE,CAAC;EACzB;EACAA,IAAM,UAAU,GAAG;EACnB,IAAI,SAAS,EAAE,iBAAiB;EAChC,IAAI,WAAW,EAAE,mBAAmB;EACpC,IAAI,SAAS,EAAE,iBAAiB;EAChC,IAAI,YAAY,EAAE,oBAAoB;EACtC,CAAC;;ECDD;EACA;EACA;EACA;EACA,SAAS,iBAAiB,CAAC,MAAM,EAAE;EACnC,IAAI,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;EAChD,CAAC;EACD;EACA;EACA;EACA;EACA;EACA,SAAS,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE;EACjC,IAAI,QAAU,GAAG,SAAI,OAAQ,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;EACvD,CAAC;EACD;EACA;EACA;EACA;EACA,SAAS,YAAY,CAAC,OAAO,EAAE;EAC/B;EACA,IAAIA,IAAM,QAAQ,GAAG;EACrB,QAAQ,GAAG,EAAE,EAAE;EACf,QAAQ,MAAM,EAAE,KAAK;EACrB,QAAQ,IAAI,EAAE,EAAE;EAChB,QAAQ,WAAW,EAAE,IAAI;EACzB,QAAQ,KAAK,EAAE,IAAI;EACnB,QAAQ,KAAK,EAAE,IAAI;EACnB,QAAQ,QAAQ,EAAE,EAAE;EACpB,QAAQ,QAAQ,EAAE,EAAE;EACpB,QAAQ,OAAO,EAAE,EAAE;EACnB,QAAQ,SAAS,EAAE,EAAE;EACrB,QAAQ,UAAU,EAAE,EAAE;EACtB,QAAQ,QAAQ,EAAE,MAAM;EACxB,QAAQ,WAAW,EAAE,mCAAmC;EACxD,QAAQ,OAAO,EAAE,CAAC;EAClB,QAAQ,MAAM,EAAE,IAAI;EACpB,KAAK,CAAC;EACN;EACA,IAAI,IAAI,CAAC,aAAa,YAAG,GAAG,EAAE,KAAK,EAAK;EACxC,QAAQA,IAAM,SAAS,GAAG;EAC1B,YAAY,YAAY;EACxB,YAAY,SAAS;EACrB,YAAY,OAAO;EACnB,YAAY,UAAU;EACtB,YAAY,YAAY,EACf,CAAC;EACV;EACA,QAAQ,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;EAC/D,YAAY,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;EAClC,SAAS;EACT,KAAK,CAAC,CAAC;EACP,IAAI,OAAO,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;EACzC,CAAC;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAAS,IAAI,CAAC,OAAO,EAAE;EACvB;EACA,IAAIC,IAAI,UAAU,GAAG,KAAK,CAAC;EAC3B;EACA,IAAID,IAAM,WAAW,GAAG,EAAE,CAAC;EAC3B;EACA,IAAIA,IAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;EAChD,IAAIC,IAAI,GAAG,GAAG,aAAa,CAAC,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;EAC9D,IAAID,IAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;EACtD,IAAIC,IAAI,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC;EAClC,IAAID,IAAM,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC;EAClD,IAAIA,IAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;EACtC,IAAIA,IAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;EACtC,IAAIA,IAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC;EAC5C,IAAIA,IAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC;EAC5C,IAAIA,IAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;EAC1C,IAAIA,IAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;EAC9C,IAAIA,IAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC;EAChD,IAAIA,IAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC;EAC5C,IAAIA,IAAM,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC;EAClD,IAAIA,IAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;EAC1C,IAAIA,IAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC;EACxC;EACA;EACA,IAAI,IAAI,IAAI;EACZ,SAAS,iBAAiB,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC;EAClD,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;EACvB,QAAQ,EAAE,IAAI,YAAY,WAAW,CAAC;EACtC,QAAQ,EAAE,IAAI,YAAY,IAAI,CAAC;EAC/B,QAAQ,EAAE,IAAI,YAAY,QAAQ,CAAC;EACnC,QAAQ,EAAE,IAAI,YAAY,QAAQ,CAAC,EAAE;EACrC,QAAQ,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;EAC3B,KAAK;EACL;EACA,IAAI,IAAI,IAAI,IAAI,iBAAiB,CAAC,MAAM,CAAC,EAAE;EAC3C;EACA,QAAQ,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;EACrC,QAAQ,IAAI,GAAG,IAAI,CAAC;EACpB,KAAK;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,SAAS,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,QAAiB,EAAE;;;AAAC;EACxD;EACA,QAAQ,IAAI,MAAM,EAAE;EACpB,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;EAC/C,SAAS;EACT;EACA,QAAQC,IAAI,OAAO,CAAC;EACpB,QAAQA,IAAI,OAAO,CAAC;EACpB,QAAQ,IAAI,QAAQ,EAAE;EACtB;EACA,YAAY,IAAI,QAAQ,IAAI,aAAa,EAAE;EAC3C;EACA,gBAAgB,OAAO,GAAG,aAAa,CAAC,QAAQ,OAAC,gBAAI,IAAI,CAAC,CAAC;EAC3D,aAAa;EACb;EACA,YAAY,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE;EACzC;EACA,gBAAgB,OAAO,GAAG,aAAa,CAAC,QAAQ,OAAC,gBAAI,IAAI,CAAC,CAAC;EAC3D,aAAa;EACb;EACA,YAAY,IAAI,QAAQ,KAAK,YAAY;EACzC,iBAAiB,OAAO,KAAK,KAAK,IAAI,OAAO,KAAK,KAAK,CAAC,EAAE;EAC1D,gBAAgB,UAAU,GAAG,IAAI,CAAC;EAClC,aAAa;EACb,SAAS;EACT,KAAK;EACL;EACA,IAAI,SAAS,GAAG,GAAG;EACnB,QAAQA,IAAI,UAAU,CAAC;EACvB,QAAQ,OAAO,IAAI,OAAO,WAAE,OAAO,EAAE,MAAM,EAAK;EAChD;EACA,YAAY,IAAI,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE;EACrD,gBAAgB,GAAG,GAAG,WAAW,CAAC,GAAG,WAAO,IAAI,CAAC,GAAG,KAAK,CAAC;EAC1D,aAAa;EACb;EACA,YAAYD,IAAM,GAAG,GAAG,IAAI,cAAc,EAAE,CAAC;EAC7C,YAAY,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;EAC7D,YAAY,IAAI,WAAW;EAC3B,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,WAAW,KAAK,KAAK,CAAC,EAAE;EAC/E,gBAAgB,GAAG,CAAC,gBAAgB,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;EAClE,aAAa;EACb;EACA,YAAY,IAAI,QAAQ,KAAK,MAAM,EAAE;EACrC,gBAAgB,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,mCAAmC,CAAC,CAAC;EACpF,aAAa;EACb;EACA,YAAY,IAAI,OAAO,EAAE;EACzB,gBAAgB,IAAI,CAAC,OAAO,YAAG,GAAG,EAAE,KAAK,EAAK;EAC9C;EACA,oBAAoB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;EAC7C,wBAAwB,GAAG,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,GAAG,EAAE,CAAC,CAAC;EAC9D,qBAAqB;EACrB,iBAAiB,CAAC,CAAC;EACnB,aAAa;EACb;EACA,YAAYA,IAAM,WAAW,GAAG,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC;EAClE,gBAAgB,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;EACnD,YAAY,IAAI,CAAC,WAAW,EAAE;EAC9B,gBAAgB,GAAG,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;EAC3E,aAAa;EACb,YAAY,IAAI,SAAS,EAAE;EAC3B,gBAAgB,IAAI,CAAC,SAAS,YAAG,GAAG,EAAE,KAAK,EAAK;EAChD;EACA,oBAAoB,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;EACrC,iBAAiB,CAAC,CAAC;EACnB,aAAa;EACb,YAAY,WAAW,CAAC,GAAG,GAAG,GAAG,CAAC;EAClC,YAAY,WAAW,CAAC,OAAO,GAAG,aAAa,CAAC;EAChD,YAAYC,IAAI,UAAU,CAAC;EAC3B,YAAY,GAAG,CAAC,MAAM,GAAG,YAAY;EACrC,gBAAgB,IAAI,UAAU,EAAE;EAChC,oBAAoB,YAAY,CAAC,UAAU,CAAC,CAAC;EAC7C,iBAAiB;EACjB;EACA,gBAAgBD,IAAM,mBAAmB,GAAG,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG;EAClF,oBAAoB,GAAG,CAAC,MAAM,KAAK,GAAG;EACtC,oBAAoB,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC;EACrC,gBAAgBC,IAAI,YAAY,CAAC;EACjC,gBAAgB,IAAI,mBAAmB,EAAE;EACzC,oBAAoB,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,MAAM,EAAE;EACjE,wBAAwB,UAAU,GAAG,WAAW,CAAC;EACjD,qBAAqB;EACrB,yBAAyB,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE;EACjD,wBAAwB,UAAU,GAAG,aAAa,CAAC;EACnD,qBAAqB;EACrB,yBAAyB;EACzB,wBAAwB,UAAU,GAAG,SAAS,CAAC;EAC/C,qBAAqB;EACrB,oBAAoB,IAAI,QAAQ,KAAK,MAAM,EAAE;EAC7C,wBAAwB,IAAI;EAC5B,4BAA4B,YAAY;EACxC,gCAAgC,MAAM,KAAK,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;EAC7F,4BAA4B,WAAW,CAAC,IAAI,GAAG,YAAY,CAAC;EAC5D,yBAAyB;EACzB,wBAAwB,OAAO,GAAG,EAAE;EACpC,4BAA4B,UAAU,GAAG,aAAa,CAAC;EACvD,4BAA4B,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;EACjG,4BAA4B,MAAM,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;EAC1D,yBAAyB;EACzB,wBAAwB,IAAI,UAAU,KAAK,aAAa,EAAE;EAC1D,4BAA4B,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;EACnH,4BAA4B,OAAO,CAAC,YAAY,CAAC,CAAC;EAClD,yBAAyB;EACzB,qBAAqB;EACrB,yBAAyB;EACzB,wBAAwB,YAAY;EACpC,4BAA4B,MAAM,KAAK,MAAM;EAC7C,kCAAkC,SAAS;EAC3C,kCAAkC,GAAG,CAAC,YAAY,KAAK,MAAM,IAAI,GAAG,CAAC,YAAY,KAAK,EAAE;EACxF,sCAAsC,GAAG,CAAC,YAAY;EACtD,sCAAsC,GAAG,CAAC,QAAQ,CAAC;EACnD,wBAAwB,WAAW,CAAC,IAAI,GAAG,YAAY,CAAC;EACxD,wBAAwB,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;EAC/G,wBAAwB,OAAO,CAAC,YAAY,CAAC,CAAC;EAC9C,qBAAqB;EACrB,iBAAiB;EACjB,qBAAqB;EACrB,oBAAoB,UAAU,GAAG,OAAO,CAAC;EACzC,oBAAoB,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;EACzF,oBAAoB,MAAM,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;EAClD,iBAAiB;EACjB;EACA,gBAAgB,IAAI,CAAC,CAAC,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC,YAAG,CAAC,EAAE,IAAI,EAAK;EAC1E,oBAAoB,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;EAClD,wBAAwB,IAAI,mBAAmB,EAAE;EACjD,4BAA4B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;EAC5E,yBAAyB;EACzB,6BAA6B;EAC7B,4BAA4B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;EAC9D,yBAAyB;EACzB,qBAAqB;EACrB,iBAAiB,CAAC,CAAC;EACnB,gBAAgB,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;EAC3F,aAAa,CAAC;EACd,YAAY,GAAG,CAAC,OAAO,GAAG,YAAY;EACtC,gBAAgB,IAAI,UAAU,EAAE;EAChC,oBAAoB,YAAY,CAAC,UAAU,CAAC,CAAC;EAC7C,iBAAiB;EACjB,gBAAgB,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;EACzF,gBAAgB,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;EACxF,gBAAgB,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;EAClD,aAAa,CAAC;EACd,YAAY,GAAG,CAAC,OAAO,GAAG,YAAY;EACtC,gBAAgBA,IAAI,UAAU,GAAG,OAAO,CAAC;EACzC,gBAAgB,IAAI,UAAU,EAAE;EAChC,oBAAoB,UAAU,GAAG,SAAS,CAAC;EAC3C,oBAAoB,YAAY,CAAC,UAAU,CAAC,CAAC;EAC7C,iBAAiB;EACjB,gBAAgB,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;EACrF,gBAAgB,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;EAC3F,gBAAgB,MAAM,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;EAC9C,aAAa,CAAC;EACd;EACA,YAAY,OAAO,CAAC,UAAU,CAAC,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,CAAC,CAAC;EAC1E,YAAY,IAAI,UAAU,EAAE;EAC5B,gBAAgB,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;EAC5C,gBAAgB,OAAO;EACvB,aAAa;EACb;EACA,YAAY,IAAI,OAAO,GAAG,CAAC,EAAE;EAC7B,gBAAgB,UAAU,GAAG,UAAU,aAAO;EAC9C,oBAAoB,GAAG,CAAC,KAAK,EAAE,CAAC;EAChC,iBAAiB,EAAE,OAAO,CAAC,CAAC;EAC5B,aAAa;EACb;EACA,YAAY,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EAC3B,SAAS,CAAC,CAAC;EACX,KAAK;EACL,IAAI,OAAO,GAAG,EAAE,CAAC;EACjB;;EChSA,CAAC,CAAC,IAAI,GAAG,IAAI;;ECAb;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAAS,SAAS,CAAC,OAAO,EAAE;EAC5B,IAAI,OAAO,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;EAC1C;;ECbA,CAAC,CAAC,SAAS,GAAG,SAAS;;ECAvB,CAAC,CAAC,QAAQ,GAAG,QAAQ;;ECFrBD,IAAM,MAAM,GAAG,yBAAyB;;ECGxC;EACA;EACA;EACA;EACA;EACA,SAAS,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE;EAC7C;EACA,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;EAC1B;EACA,QAAQ,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;EAC7B,KAAK;EACL,IAAI,IAAI,CAAC,MAAM,YAAG,GAAG,EAAE,KAAK,EAAK;EACjC;EACA,QAAQ,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;EAClD,KAAK,CAAC,CAAC;EACP,CAAC;EACD,SAAS,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE;;AAAC;EACpC;EACA;EACA,IAAI,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE;EAC3B,QAAQ,kBAAkB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;EACzC,QAAQ,OAAO,GAAG,CAAC;EACnB,KAAK;EACL;EACA;EACA,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;EAC7B,QAAQ,kBAAkB,CAAC,OAAO,UAAE,EAAC,KAAC,CAAC,GAAG,IAAG,aAAQ,CAAC;EACtD,QAAQ,OAAO,KAAK,CAAC;EACrB,KAAK;EACL;EACA;EACA,IAAI,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE;EAC1B;EACA,QAAQ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;EACtD,KAAK;EACL;EACA;EACA,IAAI,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;EAC3B;EACA,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE;EACnD;EACA,QAAQ,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;EACpC,KAAK;EACL,IAAI,OAAO,SAAS,CAAC;EACrB;;EC7CA,CAAC,CAAC,IAAI,GAAG,IAAI;;ECAb,CAAC,CAAC,IAAI,GAAG,IAAI;;ECCb,CAAC,CAAC,MAAM,GAAG,YAAsB;;;;AAAC;EAClC,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;EAC9B,QAAQ,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,YAAG,IAAI,EAAE,KAAK,EAAK;EAC1C,YAAYG,MAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;EAC/B,SAAS,CAAC,CAAC;EACX,QAAQ,OAAO,IAAI,CAAC;EACpB,KAAK;EACL,IAAI,OAAO,YAAM,WAAC,OAAO,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,KAAK,EAAE,WAAK,SAAO,CAAC,CAAC;EAChE,CAAC;;ECVD,SAAS,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE;;AAAC;EAClC,IAAIF,IAAI,KAAK,CAAC;EACd,IAAID,IAAM,GAAG,GAAG,EAAE,CAAC;EACnB,IAAI,IAAI,CAAC,QAAQ,YAAG,CAAC,EAAE,OAAO,EAAK;EACnC,QAAQ,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;EAClD,QAAQ,IAAI,KAAK,IAAI,IAAI,EAAE;EAC3B,YAAY,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;EAC5B,SAAS;EACT,KAAK,CAAC,CAAC;EACP,IAAI,cAAO,IAAG,YAAM,MAAI,GAAG,CAAC,CAAC;EAC7B;;ECTA,CAAC,CAAC,GAAG,GAAG,GAAG;;ECAX,CAAC,CAAC,KAAK,GAAG,KAAK;;ECAf,CAAC,CAAC,KAAK,GAAG,KAAK;;ECCf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAAS,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE;EACnC;EACA,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;EAC1B,QAAQ,OAAO;EACf,KAAK;EACL,IAAIA,IAAM,MAAM,aAAI,QAAQ,EAAK;EACjC,QAAQ,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;EACzC;EACA,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,EAAE;EACvC;EACA,YAAY,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;EAC7C;EACA,YAAY,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC;EAC7C,SAAS;EACT,KAAK,CAAC;EACN,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE;EAC3B;EACA,QAAQ,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;EAC/B;EACA,QAAQ,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;EAC/B;EACA,KAAK;EACL,SAAS,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;EAC7B,QAAQ,IAAI;EACZ,aAAa,KAAK,CAAC,GAAG,CAAC;EACvB,aAAa,MAAM,WAAE,QAAQ,WAAK,WAAQ,CAAC;EAC3C,aAAa,OAAO,WAAE,QAAQ,WAAK,MAAM,CAAC,QAAQ,IAAC,CAAC,CAAC;EACrD,KAAK;EACL,SAAS;EACT,QAAQ,IAAI,CAAC,IAAI,YAAG,CAAC,EAAE,QAAQ,WAAK,MAAM,CAAC,QAAQ,IAAC,CAAC,CAAC;EACtD,KAAK;EACL;;EC9DA,CAAC,CAAC,UAAU,GAAG,UAAU;;ECDzB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAAS,MAAM,CAAC,GAAG,EAAE;EACrB,IAAIA,IAAM,MAAM,GAAG,EAAE,CAAC;EACtB,IAAI,IAAI,CAAC,GAAG,YAAG,CAAC,EAAE,GAAG,EAAK;EAC1B,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;EACxC,YAAY,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;EAC7B,SAAS;EACT,KAAK,CAAC,CAAC;EACP,IAAI,OAAO,MAAM,CAAC;EAClB;;EChBA,CAAC,CAAC,MAAM,GAAG,MAAM;;ECGjB,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,UAAU,QAAQ,EAAE;EAC/B,IAAI,OAAO,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;EAChE,CAAC;;ECHD,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,YAAG,CAAC,EAAE,IAAI,EAAK;EAC/C,IAAI,CAAC,CAAC,EAAE,EAAI,IAAI,YAAQ,GAAG,UAAU,SAAS,EAAE;EAChD,QAAQ,IAAI,IAAI,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;EACpD,YAAY,OAAO,IAAI,CAAC,IAAI,WAAE,CAAC,EAAE,OAAO,EAAK;EAC7C,gBAAgB,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;EAClD,aAAa,CAAC,CAAC;EACf,SAAS;EACT,QAAQ,OAAO,IAAI,CAAC,IAAI,WAAE,CAAC,EAAE,OAAO,EAAK;EACzC,YAAY,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;EACrC,gBAAgB,OAAO;EACvB,aAAa;EACb,YAAYA,IAAM,OAAO,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;EAClD,kBAAkB,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;EACjF,kBAAkB,SAAS;EAC3B,iBAAiB,KAAK,CAAC,GAAG,CAAC;EAC3B,iBAAiB,MAAM,WAAE,IAAI,WAAK,OAAI,CAAC,CAAC;EACxC,YAAY,IAAI,CAAC,OAAO,YAAG,CAAC,EAAE,GAAG,EAAK;EACtC,gBAAgB,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;EAC7C,aAAa,CAAC,CAAC;EACf,SAAS,CAAC,CAAC;EACX,KAAK,CAAC;EACN,CAAC,CAAC;;ECtBF,IAAI,CAAC,CAAC,cAAc,EAAE,aAAa,CAAC,YAAG,SAAS,EAAE,IAAI,EAAK;EAC3D,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,UAAU,MAAM,EAAE;EACnC,QAAQA,IAAM,QAAQ,GAAG,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;EACpE,QAAQA,IAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;EAClC,QAAQA,IAAM,MAAM,GAAG,EAAE,CAAC;EAC1B,QAAQ,OAAO,CAAC,IAAI,WAAE,KAAK,EAAE,MAAM,EAAK;EACxC,YAAY,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE;EACpC,gBAAgB,OAAO;EACvB,aAAa;EACb,YAAY,QAAQ,CAAC,IAAI,WAAE,CAAC,EAAE,OAAO,EAAK;EAC1C,gBAAgBA,IAAM,OAAO,GAAG,KAAK;EACrC,sBAAsB,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;EAC7C,sBAAsB,OAAO,CAAC;EAC9B,gBAAgBA,IAAM,YAAY,GAAG,SAAS,GAAG,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC;EAC7E,gBAAgB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;EACrC,gBAAgB,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;EACtE,aAAa,CAAC,CAAC;EACf,SAAS,CAAC,CAAC;EACX,QAAQ,OAAO,CAAC,CAAC,SAAS,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC;EACxD,KAAK,CAAC;EACN,CAAC,CAAC;;ECjBF;EACA;EACA;EACA;EACA,SAAS,WAAW,CAAC,MAAM,EAAE;EAC7B,IAAI,QAAQ,QAAQ,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE;EAC1F,CAAC;EACD,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,YAAG,SAAS,EAAE,IAAI,EAAK;EAC/C,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,YAAmB;;;AAAC;EACrC;EACA,QAAQ,IAAI,SAAS,KAAK,CAAC,EAAE;EAC7B,YAAY,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;EAClC,SAAS;EACT,QAAQ,OAAO,IAAI,CAAC,IAAI,WAAE,KAAK,EAAE,OAAO,EAAK;EAC7C,YAAYA,IAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;EAC/C,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;EACnE,kBAAkB,IAAI,CAAC;EACvB,YAAY,IAAI,CAAC,OAAO,YAAG,CAAC,EAAE,MAAM,EAAK;EACzC,gBAAgBC,IAAI,OAAO,CAAC;EAC5B,gBAAgB,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE;EACzC,oBAAoB,OAAO,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;EACnE,iBAAiB;EACjB,qBAAqB,IAAI,KAAK,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE;EACrD,oBAAoB,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;EACxD,iBAAiB;EACjB,qBAAqB;EACrB,oBAAoB,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;EACxC,iBAAiB;EACjB,gBAAgB,OAAO,CAAC,SAAS,GAAG,aAAa,GAAG,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC;EAC7E,aAAa,CAAC,CAAC;EACf,SAAS,CAAC,CAAC;EACX,KAAK,CAAC;EACN,CAAC,CAAC;;ECjCF,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,UAAU,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE;;AAAC;EACjD;EACA,IAAI,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE;EAC7B,QAAQ,IAAI,CAAC,KAAK,YAAG,IAAI,EAAE,EAAE,EAAK;EAClC;EACA;EACA,YAAYE,MAAI,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;EACzC,SAAS,CAAC,CAAC;EACX,QAAQ,OAAO,IAAI,CAAC;EACpB,KAAK;EACL;EACA,IAAI,IAAI,QAAQ,KAAK,KAAK,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE;EACpD,QAAQ,QAAQ,GAAG,QAAQ,CAAC;EAC5B,QAAQ,QAAQ,GAAG,SAAS,CAAC;EAC7B;EACA,KAAK;EACL;EACA,IAAI,IAAI,QAAQ,KAAK,KAAK,EAAE;EAC5B,QAAQ,QAAQ,GAAG,WAAW,CAAC;EAC/B,KAAK;EACL,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY;EACjC,QAAQ,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;EAChD,KAAK,CAAC,CAAC;EACP,CAAC;;ECtBD,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,UAAU,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE;;AAAC;EAC3D;EACA,IAAI,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE;EAC7B;EACA,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;EACjC;EACA,YAAY,IAAI,GAAG,IAAI,IAAI,QAAQ,CAAC;EACpC,YAAY,QAAQ,GAAG,SAAS,CAAC;EACjC,SAAS;EACT,QAAQ,IAAI,CAAC,KAAK,YAAG,IAAI,EAAE,EAAE,EAAK;EAClC;EACA;EACA,YAAYA,MAAI,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;EACnD,SAAS,CAAC,CAAC;EACX,QAAQ,OAAO,IAAI,CAAC;EACpB,KAAK;EACL,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,QAAQ,IAAI,IAAI,EAAE;EAC1C;EACA,QAAQ,QAAQ,GAAG,QAAQ,CAAC;EAC5B,QAAQ,IAAI,GAAG,QAAQ,GAAG,SAAS,CAAC;EACpC,KAAK;EACL,SAAS,IAAI,QAAQ,IAAI,IAAI,EAAE;EAC/B,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE;EAChC;EACA,YAAY,QAAQ,GAAG,IAAI,CAAC;EAC5B,YAAY,IAAI,GAAG,SAAS,CAAC;EAC7B,SAAS;EACT,aAAa;EACb;EACA,YAAY,QAAQ,GAAG,IAAI,CAAC;EAC5B,YAAY,IAAI,GAAG,QAAQ,CAAC;EAC5B,YAAY,QAAQ,GAAG,SAAS,CAAC;EACjC,SAAS;EACT,KAAK;EACL,IAAI,IAAI,QAAQ,KAAK,KAAK,EAAE;EAC5B,QAAQ,QAAQ,GAAG,WAAW,CAAC;EAC/B,KAAK;EACL,SAAS,IAAI,CAAC,QAAQ,EAAE;EACxB,QAAQ,OAAO,IAAI,CAAC;EACpB,KAAK;EACL;EACA,IAAI,IAAI,GAAG,EAAE;EACb;EACA,QAAQH,IAAM,KAAK,GAAG,IAAI,CAAC;EAC3B,QAAQA,IAAM,YAAY,GAAG,QAAQ,CAAC;EACtC,QAAQ,QAAQ,GAAG,UAAU,KAAK,EAAE;EACpC,YAAY,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;EACtD;EACA,YAAY,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;EACvD,SAAS,CAAC;EACV,KAAK;EACL,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY;EACjC,QAAQ,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;EACnD,KAAK,CAAC,CAAC;EACP,CAAC;;ECxDD,IAAI,CAAC,UAAU,YAAG,IAAI,EAAE,SAAS,EAAK;EACtC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,UAAU,EAAE,EAAE;EAC/B,QAAQ,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,YAAG,CAAC,EAAE,MAAM,EAAK;EACjD,YAAY,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;EAC3D,SAAS,CAAC,CAAC;EACX,KAAK,CAAC;EACN,CAAC,CAAC;;ECPF,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,UAAU,QAAQ,EAAE;EAC/B,IAAI,OAAO,IAAI,EAAE,CAAC,GAAG,CAAC,IAAI,YAAG,OAAO,EAAE,CAAC,WAAK,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,IAAC,CAAC,CAAC,CAAC;EACjF,CAAC;;ECHD,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,YAAY;EACzB,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY;EAChC,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;EACpC,KAAK,CAAC,CAAC;EACP,CAAC;;ECHD,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,UAAU,QAAQ,EAAE;EAC9B,IAAIC,IAAI,SAAS,GAAG,KAAK,CAAC;EAC1B,IAAI,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE;EAC9B,QAAQ,IAAI,CAAC,IAAI,WAAE,KAAK,EAAE,OAAO,EAAK;EACtC,YAAY,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE;EACxD,gBAAgB,SAAS,GAAG,IAAI,CAAC;EACjC,aAAa;EACb,SAAS,CAAC,CAAC;EACX,QAAQ,OAAO,SAAS,CAAC;EACzB,KAAK;EACL,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE;EAC5B,QAAQ,IAAI,CAAC,IAAI,WAAE,CAAC,EAAE,OAAO,EAAK;EAClC,YAAY,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE;EAC1D,gBAAgB,OAAO;EACvB,aAAa;EACb;EACA,YAAYD,IAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,iBAAiB,CAAC;EACzE,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;EACjD,gBAAgB,SAAS,GAAG,IAAI,CAAC;EACjC,aAAa;EACb,SAAS,CAAC,CAAC;EACX,QAAQ,OAAO,SAAS,CAAC;EACzB,KAAK;EACL,IAAIA,IAAM,YAAY,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;EACrC,IAAI,IAAI,CAAC,IAAI,WAAE,CAAC,EAAE,OAAO,EAAK;EAC9B,QAAQ,YAAY,CAAC,IAAI,WAAE,CAAC,EAAE,OAAO,EAAK;EAC1C,YAAY,IAAI,OAAO,KAAK,OAAO,EAAE;EACrC,gBAAgB,SAAS,GAAG,IAAI,CAAC;EACjC,aAAa;EACb,SAAS,CAAC,CAAC;EACX,KAAK,CAAC,CAAC;EACP,IAAI,OAAO,SAAS,CAAC;EACrB,CAAC;;EChCD,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,UAAU,QAAQ,EAAE;EAClC,IAAI,OAAO,IAAI,CAAC,IAAI,WAAE,CAAC,EAAE,OAAO,EAAK;EACrC,QAAQ,IAAI,OAAO,CAAC,UAAU,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE;EAC1E,YAAY,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;EACpD,SAAS;EACT,KAAK,CAAC,CAAC;EACP,CAAC;;ECAD,IAAI,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,YAAG,SAAS,EAAE,IAAI,EAAK;EACjD,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,YAAmB;;;AAAC;EACrC,QAAQ,OAAO,IAAI,CAAC,IAAI,WAAE,KAAK,EAAE,OAAO,EAAK;;AAAC;EAC9C,YAAYA,IAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;EAClD,YAAYA,IAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC;EAClD,YAAYA,IAAM,KAAK,GAAG,WAAW;EACrC,kBAAkB,UAAU,CAAC,SAAS,GAAG,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC;EAC7D,kBAAkB,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;EAChD,YAAY,IAAI,CAAC,WAAW,EAAE;EAC9B,gBAAgB,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;EAC3C,aAAa;EACb,YAAYC,IAAI,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;EAC9C,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;EACnE,kBAAkB,IAAI,CAAC;EACvB;EACA,YAAY,IAAI,KAAK,EAAE;EACvB,gBAAgB,QAAQ,GAAG,QAAQ,CAAC,GAAG,WAAE,OAAO,EAAK;EACrD,oBAAoB,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;EAC5E,iBAAiB,CAAC,CAAC;EACnB,aAAa;EACb,mBAAY,CAAC,CAAC,KAAK,GAAE,SAAS,GAAG,OAAO,GAAG,QAAQ,OAAC,MAAI,QAAQ,CAAC,CAAC;EAClE,YAAY,IAAI,CAAC,WAAW,EAAE;EAC9B,gBAAgB,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;EAC3C,aAAa;EACb,SAAS,CAAC,CAAC;EACX,KAAK,CAAC;EACN,CAAC,CAAC;;EC7BF,IAAI,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,YAAG,SAAS,EAAE,IAAI,EAAK;EACrD,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,UAAU,MAAM,EAAE;EACnC,QAAQD,IAAM,WAAW,GAAG,EAAE,CAAC;EAC/B,QAAQA,IAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,WAAE,CAAC,EAAE,OAAO,EAAK;EACtD,YAAYA,IAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;EAClD,YAAYA,IAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC;EAClD,YAAY,IAAI,WAAW,EAAE;EAC7B,gBAAgB,OAAO,UAAU,CAAC,SAAS,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC;EACnE,aAAa;EACb,YAAYA,IAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;EACxD,YAAY,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;EACvC,YAAY,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;EACpC,YAAY,OAAO,KAAK,CAAC;EACzB,SAAS,CAAC,CAAC;EACX,QAAQA,IAAM,OAAO,GAAG,IAAI,CAAC,SAAS,GAAG,cAAc,GAAG,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC;EAClF,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,CAAC;EAChC,QAAQ,OAAO,OAAO,CAAC;EACvB,KAAK,CAAC;EACN,CAAC,CAAC;;ECpBF,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,YAAG,SAAS,EAAE,IAAI,EAAK;EACnD,IAAI,SAAS,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE;EACtC;EACA,QAAQ,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE;EAChC,YAAY,OAAO;EACnB,SAAS;EACT,QAAQ,QAAQ,SAAS;EACzB;EACA,YAAY,KAAK,CAAC;EAClB,gBAAgB,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;EACnC,oBAAoB,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;EACjD,iBAAiB;EACjB,qBAAqB;EACrB,oBAAoB,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;EACrD,iBAAiB;EACjB,gBAAgB,MAAM;EACtB;EACA,YAAY,KAAK,CAAC;EAClB;EACA,gBAAgB,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;EACrC,gBAAgB,MAAM;EACtB;EACA,YAAY;EACZ,gBAAgB,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;EACvC;EACA,gBAAgB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;EACpD,4BAAyB,SAAQ,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG;EACpE,sBAAsB,KAAK,CAAC;EAC5B,gBAAgB,MAAM;EACtB,SAAS;EACT,KAAK;EACL,IAAI,SAAS,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE;EAC/B,QAAQ,QAAQ,SAAS;EACzB;EACA,YAAY,KAAK,CAAC;EAClB;EACA,gBAAgBA,IAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;EACxD,gBAAgB,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,GAAG,KAAK,CAAC;EACzD;EACA,YAAY,KAAK,CAAC;EAClB;EACA,gBAAgB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;EACpC;EACA,YAAY;EACZ,gBAAgB,OAAO,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;EAC9C,SAAS;EACT,KAAK;EACL,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,UAAU,GAAG,EAAE,KAAK,EAAE;;AAAC;EACxC,QAAQ,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE;EAC/B,YAAY,IAAI,CAAC,GAAG,YAAG,CAAC,EAAE,CAAC,EAAK;EAChC;EACA,gBAAgBG,MAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EACjC,aAAa,CAAC,CAAC;EACf,YAAY,OAAO,IAAI,CAAC;EACxB,SAAS;EACT,QAAQ,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;EACpC,YAAYH,IAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;EACpC,YAAY,OAAO,SAAS,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC;EACtE,SAAS;EACT,QAAQ,OAAO,IAAI,CAAC,IAAI,WAAE,CAAC,EAAE,OAAO,EAAK;EACzC,YAAY,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;EACrG,SAAS,CAAC,CAAC;EACX,KAAK,CAAC;EACN,CAAC,CAAC;;EC5DF,CAAC,CAAC,EAAE,CAAC,QAAQ,GAAG,UAAU,QAAQ,EAAE;EACpC,IAAIA,IAAM,QAAQ,GAAG,EAAE,CAAC;EACxB,IAAI,IAAI,CAAC,IAAI,WAAE,CAAC,EAAE,OAAO,EAAK;EAC9B,QAAQ,IAAI,CAAC,OAAO,CAAC,UAAU,YAAG,EAAE,EAAE,SAAS,EAAK;EACpD,YAAY,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;EACvC,gBAAgB,OAAO;EACvB,aAAa;EACb,YAAY,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE;EACxD,gBAAgB,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;EACzC,aAAa;EACb,SAAS,CAAC,CAAC;EACX,KAAK,CAAC,CAAC;EACP,IAAI,OAAO,IAAI,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;EACpC,CAAC;;EClBD,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,YAAmB;;;AAAC;EACjC,IAAI,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;EAC9C,CAAC;;ECDD,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,UAAU,KAAK,EAAE;EAC3B,IAAIA,IAAM,GAAG,GAAG,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;EACjF,IAAI,OAAO,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;EACvB,CAAC;;ECAc,SAAS,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE;EAC1E,IAAIA,IAAM,GAAG,GAAG,EAAE,CAAC;EACnB,IAAIC,IAAI,MAAM,CAAC;EACf,IAAI,SAAS,CAAC,IAAI,WAAE,CAAC,EAAE,OAAO,EAAK;EACnC,QAAQ,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;EAC/B;EACA,QAAQ,OAAO,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC,EAAE;EAC5C;EACA,YAAY,IAAI,SAAS,KAAK,CAAC,EAAE;EACjC,gBAAgB,IAAI,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE;EACxD,oBAAoB,MAAM;EAC1B,iBAAiB;EACjB,gBAAgB,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;EACrD,oBAAoB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;EACrC,iBAAiB;EACjB,aAAa;EACb;EACA,iBAAiB,IAAI,SAAS,KAAK,CAAC,EAAE;EACtC,gBAAgB,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE;EACzD,oBAAoB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;EACrC,iBAAiB;EACjB,gBAAgB,MAAM;EACtB,aAAa;EACb;EACA,iBAAiB;EACjB,gBAAgB,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE;EACzD,oBAAoB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;EACrC,iBAAiB;EACjB,aAAa;EACb;EACA,YAAY,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;EAClC,SAAS;EACT,KAAK,CAAC,CAAC;EACP,IAAI,OAAO,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;EAC/B;;ECpCA,IAAI,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,YAAG,SAAS,EAAE,IAAI,EAAK;EAC/C,IAAI,CAAC,CAAC,EAAE,aAAU,MAAO,GAAG,UAAU,QAAQ,EAAE,MAAM,EAAE;EACxD;EACA,QAAQD,IAAM,MAAM,GAAG,CAAC,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;EACnE,QAAQ,OAAO,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;EACtE,KAAK,CAAC;EACN,CAAC,CAAC;;ECLF,CAAC,CAAC,EAAE,CAAC,OAAO,GAAG,UAAU,QAAQ,EAAE;EACnC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE;EAC3B,QAAQ,OAAO,IAAI,CAAC;EACpB,KAAK;EACL,IAAIA,IAAM,OAAO,GAAG,EAAE,CAAC;EACvB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,WAAE,CAAC,EAAE,OAAO,EAAK;EACxC,QAAQ,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE;EACrC,YAAY,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;EAClC,YAAY,OAAO,KAAK,CAAC;EACzB,SAAS;EACT,KAAK,CAAC,CAAC;EACP,IAAI,OAAO,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC;EAC3B,CAAC;;ECbDA,IAAM,MAAM,GAAG,8BAA8B,CAAC;EAC9C;EACA,SAAS,OAAO,CAAC,KAAK,EAAE;EACxB,IAAI,IAAI,KAAK,KAAK,MAAM,EAAE;EAC1B,QAAQ,OAAO,IAAI,CAAC;EACpB,KAAK;EACL,IAAI,IAAI,KAAK,KAAK,OAAO,EAAE;EAC3B,QAAQ,OAAO,KAAK,CAAC;EACrB,KAAK;EACL,IAAI,IAAI,KAAK,KAAK,MAAM,EAAE;EAC1B,QAAQ,OAAO,IAAI,CAAC;EACpB,KAAK;EACL,IAAI,IAAI,KAAK,KAAK,CAAC,KAAK,GAAG,EAAE,EAAE;EAC/B,QAAQ,OAAO,CAAC,KAAK,CAAC;EACtB,KAAK;EACL,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;EAC5B,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;EACjC,KAAK;EACL,IAAI,OAAO,KAAK,CAAC;EACjB,CAAC;EACD;EACA,SAAS,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE;EACvC,IAAI,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,KAAK,CAAC,EAAE;EACtD,QAAQA,IAAM,IAAI,GAAG,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;EAChD,QAAQ,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;EAC3C,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;EAC7B,YAAY,IAAI;EAChB,gBAAgB,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;EACvC,aAAa;EACb,YAAY,OAAO,CAAC,EAAE,GAAG;EACzB,SAAS;EACT,aAAa;EACb,YAAY,KAAK,GAAG,SAAS,CAAC;EAC9B,SAAS;EACT,KAAK;EACL,IAAI,OAAO,KAAK,CAAC;EACjB,CAAC;EACD,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,UAAU,GAAG,EAAE,KAAK,EAAE;EAClC;EACA,IAAI,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE;EAC1B,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;EAC1B,YAAY,OAAO,SAAS,CAAC;EAC7B,SAAS;EACT,QAAQA,IAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;EAChC,QAAQA,IAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;EACzC;EACA,QAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,CAAC,EAAE;EACpC,YAAY,OAAO,UAAU,CAAC;EAC9B,SAAS;EACT;EACA,QAAQA,IAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC;EACzC,QAAQC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;EAC7B,QAAQ,OAAO,CAAC,EAAE,EAAE;EACpB,YAAY,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;EAC1B,gBAAgBA,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;EACzC,gBAAgB,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;EACjD,oBAAoB,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;EACtD,oBAAoB,UAAU,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;EACjF,iBAAiB;EACjB,aAAa;EACb,SAAS;EACT,QAAQ,OAAO,UAAU,CAAC;EAC1B,KAAK;EACL;EACA,IAAI,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE;EAC3B,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY;EACrC,YAAY,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;EAC5B,SAAS,CAAC,CAAC;EACX,KAAK;EACL;EACA,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE;EACtD,QAAQ,OAAO,IAAI,CAAC;EACpB,KAAK;EACL;EACA,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;EAC7B,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY;EACrC,YAAY,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;EACnC,SAAS,CAAC,CAAC;EACX,KAAK;EACL;EACA,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;EACtB,QAAQ,OAAO,SAAS,CAAC;EACzB,KAAK;EACL,IAAI,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;EACtD,CAAC;;ECtFD,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,YAAY;EACzB,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY;EACjC,QAAQ,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;EAC5B,KAAK,CAAC,CAAC;EACP,CAAC;;ECJD,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,UAAU,GAAG,EAAE;EAC7B,IAAI,IAAI,CAAC,GAAG,YAAG,IAAI,EAAE,KAAK,EAAK;EAC/B;EACA,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;EAC3B,KAAK,CAAC,CAAC;EACP,IAAI,OAAO,IAAI,CAAC;EAChB,CAAC;;ECJD,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,UAAU,QAAQ,EAAE;EAClC,IAAI,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE;EAC9B,QAAQ,OAAO,IAAI,CAAC,GAAG,WAAE,KAAK,EAAE,OAAO,WAAK,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,OAAO,GAAG,YAAS,CAAC,CAAC;EAC1G,KAAK;EACL,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE;EAC5B,QAAQ,OAAO,IAAI,CAAC,GAAG,WAAE,CAAC,EAAE,OAAO,WAAK,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,OAAO,GAAG,YAAS,CAAC,CAAC;EACvF,KAAK;EACL,IAAID,IAAM,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;EAClC,IAAI,OAAO,IAAI,CAAC,GAAG,WAAE,CAAC,EAAE,OAAO,WAAK,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,OAAO,GAAG,YAAS,CAAC,CAAC;EACjG,CAAC;;ECXD,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,YAAY;EACzB,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;EACtB,CAAC;;ECAD,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,UAAU,QAAQ,EAAE;EAC/B,IAAIA,IAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;EAC5E,IAAY,6BAAoB;EAChC,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY;EAChC,QAAQ,KAAKC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;EAC5C,YAAY,IAAI,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;EAC7C,gBAAgB,OAAO,IAAI,CAAC;EAC5B,aAAa;EACb,SAAS;EACT,QAAQ,OAAO;EACf,KAAK,CAAC,CAAC;EACP,CAAC;;ECdD,CAAC,CAAC,EAAE,CAAC,QAAQ,GAAG,UAAU,SAAS,EAAE;EACrC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;EACjD,CAAC;;ECED;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAAS,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE;EACpF;EACA,IAAID,IAAM,kBAAkB,aAAI,KAAK,EAAK;EAC1C,QAAQ,QAAQ,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,CAAC;EACjE,YAAY,QAAQ,EAAE;EACtB,KAAK,CAAC;EACN,IAAI,IAAI,SAAS,KAAK,CAAC,IAAI,aAAa,EAAE;EAC1C,QAAQ,KAAK,IAAI,kBAAkB,CAAC,QAAQ,CAAC,CAAC;EAC9C,KAAK;EACL,IAAI,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE;EAC9B;EACA;EACA,QAAQ,IAAI,IAAI,EAAE,IAAI,QAAQ,KAAK,CAAC,EAAE;EACtC,YAAY,KAAK,IAAI,kBAAkB,CAAC,QAAQ,CAAC,CAAC;EAClD,YAAY,KAAK,IAAI,kBAAkB,CAAC,SAAS,CAAC,CAAC;EACnD,SAAS;EACT,QAAQ,IAAI,SAAS,KAAK,CAAC,EAAE;EAC7B,YAAY,KAAK,IAAI,kBAAkB,CAAC,QAAQ,CAAC,CAAC;EAClD,SAAS;EACT,QAAQ,IAAI,SAAS,KAAK,CAAC,EAAE;EAC7B,YAAY,KAAK,IAAI,kBAAkB,CAAC,QAAQ,CAAC,CAAC;EAClD,YAAY,KAAK,IAAI,kBAAkB,CAAC,SAAS,CAAC,CAAC;EACnD,SAAS;EACT,KAAK;EACL,SAAS;EACT,QAAQ,IAAI,SAAS,KAAK,CAAC,EAAE;EAC7B,YAAY,KAAK,IAAI,kBAAkB,CAAC,SAAS,CAAC,CAAC;EACnD,SAAS;EACT,QAAQ,IAAI,SAAS,KAAK,CAAC,EAAE;EAC7B,YAAY,KAAK,IAAI,kBAAkB,CAAC,QAAQ,CAAC,CAAC;EAClD,YAAY,KAAK,IAAI,kBAAkB,CAAC,SAAS,CAAC,CAAC;EACnD,SAAS;EACT,KAAK;EACL,IAAI,OAAO,KAAK,CAAC;EACjB,CAAC;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAAS,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE;EACtD,IAAIA,IAAM,UAAU,GAAG,WAAS,IAAM,CAAC;EACvC,IAAIA,IAAM,UAAU,GAAG,WAAS,IAAM,CAAC;EACvC,IAAIA,IAAM,UAAU,GAAG,WAAS,IAAM,CAAC;EACvC,IAAIA,IAAM,SAAS,GAAG,UAAQ,IAAM,CAAC;EACrC;EACA,IAAI,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE;EAC3B;EACA,QAAQ,OAAO,SAAS,KAAK,CAAC;EAC9B,cAAc,OAAO,CAAC,SAAS,CAAC;EAChC,cAAc,SAAS,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC;EAC9C,KAAK;EACL;EACA,IAAI,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE;EAC7B,QAAQA,IAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;EACvC,QAAQ,OAAO,IAAI,CAAC,GAAG;EACvB;EACA,QAAQ,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC;EACjD;EACA,QAAQ,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;EACpE,KAAK;EACL,IAAIA,IAAM,KAAK,GAAG,UAAU,CAAC,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC;EACxF,IAAI,OAAO,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;EAC/E,CAAC;EACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAAS,GAAG,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE;EAC3E,IAAIC,IAAI,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC;EACzC,UAAU,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;EACzF,UAAU,KAAK,CAAC;EAChB,IAAI,IAAI,aAAa,IAAI,IAAI,EAAE;EAC/B,QAAQ,OAAO;EACf,KAAK;EACL,IAAID,IAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;EAChC,IAAIA,IAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;EACzC;EACA,IAAI,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE;EAC7D,QAAQ,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;EAC/C,QAAQ,OAAO;EACf,KAAK;EACL;EACA,IAAIA,IAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;EACrE,IAAIA,IAAM,SAAS,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;EAChD,IAAI,aAAa;EACjB,QAAQ,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;EAChF,aAAa,MAAM,IAAI,IAAI,CAAC,CAAC;EAC7B,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;EAC3C,CAAC;EACD,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,YAAG,CAAC,EAAE,IAAI,EAAK;EACvC,IAAI,IAAI,CAAC,YAAS,OAAQ,IAAI,CAAC,WAAW,EAAE,aAAU,MAAO,YAAG,SAAS,EAAE,QAAQ,EAAK;EACxF,QAAQ,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,UAAU,MAAM,EAAE,KAAK,EAAE;EAClD;EACA,YAAYA,IAAM,KAAK,GAAG,SAAS,CAAC,MAAM,KAAK,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;EACpF,YAAYA,IAAM,aAAa,GAAG,MAAM,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC;EACpE;EACA,YAAY,IAAI,CAAC,KAAK,EAAE;EACxB,gBAAgB,OAAO,IAAI,CAAC,MAAM;EAClC,sBAAsB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC;EAClE,sBAAsB,SAAS,CAAC;EAChC,aAAa;EACb;EACA,YAAY,OAAO,IAAI,CAAC,IAAI,WAAE,KAAK,EAAE,OAAO,WAAK,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,IAAC,CAAC,CAAC;EAC9G,SAAS,CAAC;EACV,KAAK,CAAC,CAAC;EACP,CAAC,CAAC;;EC7HF,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,YAAY;EACxB,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY;EACjC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;EACpC,KAAK,CAAC,CAAC;EACP,CAAC;;ECAD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,YAAG,SAAS,EAAE,IAAI,EAAK;EACnD,IAAIA,IAAM,KAAK,GAAG;EAClB,QAAQ,CAAC,EAAE,OAAO;EAClB,QAAQ,CAAC,EAAE,WAAW;EACtB,QAAQ,CAAC,EAAE,aAAa;EACxB,KAAK,CAAC;EACN,IAAIA,IAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;EACtC,IAAI,SAAS,GAAG,CAAC,SAAS,EAAE;EAC5B;EACA,QAAQ,IAAI,SAAS,KAAK,CAAC,EAAE;EAC7B;EACA,YAAY,OAAO,GAAG,CAAC,SAAS,YAAG,OAAO,WAAK,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,IAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;EACtF,SAAS;EACT;EACA,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;EAC/B,YAAY,OAAO,SAAS,CAAC;EAC7B,SAAS;EACT;EACA,QAAQA,IAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;EAC1C;EACA,QAAQ,IAAI,SAAS,KAAK,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,EAAE;EACvE,YAAY,OAAO,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,YAAG,OAAO,WAAK,OAAO,CAAC,QAAK,CAAC,CAAC;EAC3F,SAAS;EACT;EACA,QAAQ,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC;EACtC,KAAK;EACL,IAAI,SAAS,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE;EACjC;EACA;EACA,QAAQ,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE;EAChC,YAAY,IAAI,SAAS,KAAK,CAAC,EAAE;EACjC,gBAAgB,OAAO;EACvB,aAAa;EACb,YAAY,KAAK,GAAG,EAAE,CAAC;EACvB,SAAS;EACT,QAAQ,IAAI,SAAS,KAAK,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE;EACjD,YAAY,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC;EACpC,SAAS;EACT;EACA,QAAQ,OAAO,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;EAClC,KAAK;EACL,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,UAAU,KAAK,EAAE;EAClC;EACA,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;EAC/B,YAAY,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC;EAC7B,SAAS;EACT;EACA,QAAQ,OAAO,IAAI,CAAC,IAAI,WAAE,CAAC,EAAE,OAAO,EAAK;EACzC,YAAYA,IAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC;EACnD,kBAAkB,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;EACzD,kBAAkB,KAAK,CAAC;EACxB;EACA,YAAY,IAAI,SAAS,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;EACjE;EACA,gBAAgB,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,kBAAkB,CAAC,EAAE;EACvD,oBAAoB,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAG,MAAM,YAAM,MAAM,CAAC,QAAQ;EAC/E,wBAAwB,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;EAC3D,4BAA4B,CAAC,CAAC,IAAC,CAAC,CAAC;EACjC,iBAAiB;EACjB;EACA,qBAAqB;EACrB,oBAAoB,OAAO,CAAC,OAAO;EACnC,wBAAwB,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;EAClE,iBAAiB;EACjB,aAAa;EACb,iBAAiB;EACjB,gBAAgB,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;EAC5C,aAAa;EACb,SAAS,CAAC,CAAC;EACX,KAAK,CAAC;EACN,CAAC,CAAC;;ECtEF,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,UAAU,QAAQ,EAAE;EACjC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;EAC3B,QAAQ,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;EACrE,KAAK;EACL,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE;EAC5B,QAAQ,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;EAClD,KAAK;EACL,IAAI,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;EAC9C,CAAC;;ECZD,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,YAAY;EACxB,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;EACvB,CAAC;;ECDD,IAAI,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,YAAG,SAAS,EAAE,IAAI,EAAK;EAChD,IAAI,CAAC,CAAC,EAAE,WAAQ,MAAO,GAAG,UAAU,QAAQ,EAAE,MAAM,EAAE;EACtD,QAAQ,OAAO,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;EAC5E,KAAK,CAAC;EACN,CAAC,CAAC;;ECJF,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,UAAU,QAAQ,EAAE;EAC/B,IAAIA,IAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;EAC5C,IAAI,OAAO,IAAI,CAAC,GAAG,WAAE,CAAC,EAAE,OAAO,WAAK,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,GAAG,UAAO,CAAC,CAAC;EACzF,CAAC;;ECHD;EACA;EACA;EACA,CAAC,CAAC,EAAE,CAAC,YAAY,GAAG,YAAY;EAChC,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY;EAChC,QAAQC,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;EAC7C,QAAQ,OAAO,YAAY,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,QAAQ,EAAE;EAC7E,YAAY,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC;EACrD,SAAS;EACT,QAAQ,OAAO,YAAY,IAAI,QAAQ,CAAC,eAAe,CAAC;EACxD,KAAK,CAAC,CAAC;EACP,CAAC;;ECTD,SAAS,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE;EACpC,IAAI,OAAO,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;EAC1C,CAAC;EACD,CAAC,CAAC,EAAE,CAAC,QAAQ,GAAG,YAAY;EAC5B,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;EACtB,QAAQ,OAAO,SAAS,CAAC;EACzB,KAAK;EACL,IAAID,IAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;EAChC,IAAIC,IAAI,aAAa,CAAC;EACtB,IAAIA,IAAI,YAAY,GAAG;EACvB,QAAQ,IAAI,EAAE,CAAC;EACf,QAAQ,GAAG,EAAE,CAAC;EACd,KAAK,CAAC;EACN,IAAI,IAAI,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,OAAO,EAAE;EAC9C,QAAQ,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC;EAC5D,KAAK;EACL,SAAS;EACT,QAAQ,aAAa,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;EAC1C,QAAQD,IAAM,aAAa,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;EACtD,QAAQ,YAAY,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;EAC9C,QAAQ,YAAY,CAAC,GAAG,IAAI,UAAU,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC;EAC1E,QAAQ,YAAY,CAAC,IAAI,IAAI,UAAU,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAC;EAC5E,KAAK;EACL,IAAI,OAAO;EACX,QAAQ,GAAG,EAAE,aAAa,CAAC,GAAG,GAAG,YAAY,CAAC,GAAG,GAAG,UAAU,CAAC,QAAQ,EAAE,YAAY,CAAC;EACtF,QAAQ,IAAI,EAAE,aAAa,CAAC,IAAI;EAChC,YAAY,YAAY,CAAC,IAAI;EAC7B,YAAY,UAAU,CAAC,QAAQ,EAAE,aAAa,CAAC;EAC/C,KAAK,CAAC;EACN,CAAC;;EC5BD,SAASI,KAAG,CAAC,OAAO,EAAE;EACtB,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE;EAC1C,QAAQ,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;EACnC,KAAK;EACL,IAAIJ,IAAM,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;EACjD,IAAIA,IAAM,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC;EAClD,IAAI,OAAO;EACX,QAAQ,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,WAAW;EACvC,QAAQ,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,WAAW;EACzC,KAAK,CAAC;EACN,CAAC;EACD,SAASK,KAAG,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE;EACpC,IAAIL,IAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;EAChC,IAAIA,IAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;EAC9C,IAAI,IAAI,QAAQ,KAAK,QAAQ,EAAE;EAC/B,QAAQ,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;EAC7C,KAAK;EACL,IAAIA,IAAM,aAAa,GAAGI,KAAG,CAAC,OAAO,CAAC,CAAC;EACvC,IAAIJ,IAAM,gBAAgB,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;EACjD,IAAIA,IAAM,iBAAiB,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;EACnD,IAAIC,IAAI,UAAU,CAAC;EACnB,IAAIA,IAAI,WAAW,CAAC;EACpB,IAAID,IAAM,iBAAiB,GAAG,CAAC,QAAQ,KAAK,UAAU,IAAI,QAAQ,KAAK,OAAO;EAC9E,QAAQ,CAAC,gBAAgB,GAAG,iBAAiB,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;EACpE,IAAI,IAAI,iBAAiB,EAAE;EAC3B,QAAQA,IAAM,eAAe,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;EACpD,QAAQ,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC;EACzC,QAAQ,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC;EAC3C,KAAK;EACL,SAAS;EACT,QAAQ,UAAU,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAC;EAClD,QAAQ,WAAW,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC;EACpD,KAAK;EACL,IAAIA,IAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC;EAC3C,UAAU,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;EAC/D,UAAU,KAAK,CAAC;EAChB,IAAI,QAAQ,CAAC,GAAG,CAAC;EACjB,QAAQ,GAAG,EAAE,aAAa,CAAC,GAAG,IAAI,IAAI;EACtC,cAAc,aAAa,CAAC,GAAG,GAAG,aAAa,CAAC,GAAG,GAAG,UAAU;EAChE,cAAc,SAAS;EACvB,QAAQ,IAAI,EAAE,aAAa,CAAC,IAAI,IAAI,IAAI;EACxC,cAAc,aAAa,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,GAAG,WAAW;EACnE,cAAc,SAAS;EACvB,KAAK,CAAC,CAAC;EACP,CAAC;EACD,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,UAAU,KAAK,EAAE;EAC/B;EACA,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;EAC3B,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;EAC1B,YAAY,OAAO,SAAS,CAAC;EAC7B,SAAS;EACT,QAAQ,OAAOI,KAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;EAC5B,KAAK;EACL;EACA,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,EAAE;EACtC,QAAQC,KAAG,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;EAChC,KAAK,CAAC,CAAC;EACP,CAAC;;EC7DD,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,UAAU,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE;EACtD;EACA,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;EAC1D,CAAC;;ECDD,IAAI,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,YAAG,SAAS,EAAE,IAAI,EAAK;EAChD,IAAI,CAAC,CAAC,EAAE,WAAQ,MAAO,GAAG,UAAU,QAAQ,EAAE,MAAM,EAAE;EACtD;EACA,QAAQL,IAAM,MAAM,GAAG,CAAC,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;EACnE,QAAQ,OAAO,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,wBAAwB,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;EAClF,KAAK,CAAC;EACN,CAAC,CAAC;;ECPF,CAAC,CAAC,EAAE,CAAC,UAAU,GAAG,UAAU,aAAa,EAAE;EAC3C,IAAIA,IAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,WAAE,IAAI,WAAK,OAAI,CAAC,CAAC;EAClE,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY;;AAAC;EAClC,QAAQ,IAAI,CAAC,KAAK,YAAG,CAAC,EAAE,IAAI,EAAK;EACjC,YAAYG,MAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;EACvC,SAAS,CAAC,CAAC;EACX,KAAK,CAAC,CAAC;EACP,CAAC;;ECPD,CAAC,CAAC,EAAE,CAAC,UAAU,GAAG,UAAU,IAAI,EAAE;EAClC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY;EACjC,QAAQ,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;EAC/B,KAAK,CAAC,CAAC;EACP,CAAC;;ECLD,CAAC,CAAC,EAAE,CAAC,UAAU,GAAG,UAAU,IAAI,EAAE;EAClC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY;EACjC,QAAQ,IAAI;EACZ;EACA,YAAY,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;EAC9B,SAAS;EACT,QAAQ,OAAO,CAAC,EAAE,GAAG;EACrB,KAAK,CAAC,CAAC;EACP,CAAC;;ECJD,CAAC,CAAC,EAAE,CAAC,WAAW,GAAG,UAAU,UAAU,EAAE;EACzC,IAAI,IAAI,CAAC,IAAI,WAAE,KAAK,EAAE,OAAO,EAAK;EAClC,QAAQF,IAAI,OAAO,GAAG,UAAU,CAAC;EACjC,QAAQ,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE;EACjC,YAAY,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;EACtE,SAAS;EACT,aAAa,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;EAC9C,YAAY,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;EACzC,SAAS;EACT,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;EACnC,KAAK,CAAC,CAAC;EACP,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;EACzB,CAAC;;ECbD,CAAC,CAAC,EAAE,CAAC,UAAU,GAAG,UAAU,MAAM,EAAE;;AAAC;EACrC,IAAI,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,WAAE,KAAK,EAAE,OAAO,EAAK;EAC7C,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,KAAK,GAAGE,MAAI,CAAC,KAAK,EAAE,GAAGA,MAAI,CAAC,CAAC;EAC5D,QAAQ,OAAOA,MAAI,CAAC,GAAG,EAAE,CAAC;EAC1B,KAAK,CAAC,CAAC;EACP,CAAC;;ECPD;EACA;EACA;EACA;EACA,CAAC,CAAC,EAAE,CAAC,cAAc,GAAG,YAAY;EAClC,IAAIH,IAAM,MAAM,GAAG,EAAE,CAAC;EACtB,IAAI,IAAI,CAAC,IAAI,WAAE,CAAC,EAAE,OAAO,EAAK;EAC9B,QAAQA,IAAM,QAAQ,GAAG,OAAO,YAAY,eAAe,GAAG,OAAO,CAAC,QAAQ,GAAG,CAAC,OAAO,CAAC,CAAC;EAC3F,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,WAAE,CAAC,EAAE,OAAO,EAAK;EACzC,YAAYA,IAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;EACxC,YAAYA,IAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;EACtC,YAAYA,IAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;EAC5D,YAAY,IAAI,QAAQ,KAAK,UAAU;EACvC,gBAAgB,OAAO,CAAC,IAAI;EAC5B,gBAAgB,CAAC,OAAO,CAAC,QAAQ;EACjC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;EAChF,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;EACnF,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;EAC3D,oBAAoB,OAAO,CAAC,OAAO,CAAC,EAAE;EACtC,gBAAgBA,IAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;EAC7C,gBAAgBA,IAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;EACxE,gBAAgB,QAAQ,CAAC,OAAO,WAAE,KAAK,EAAK;EAC5C,oBAAoB,MAAM,CAAC,IAAI,CAAC;EAChC,wBAAwB,IAAI,EAAE,OAAO,CAAC,IAAI;EAC1C,+BAAwB,KAAK;EAC7B,qBAAqB,CAAC,CAAC;EACvB,iBAAiB,CAAC,CAAC;EACnB,aAAa;EACb,SAAS,CAAC,CAAC;EACX,KAAK,CAAC,CAAC;EACP,IAAI,OAAO,MAAM,CAAC;EAClB,CAAC;;EC/BD,CAAC,CAAC,EAAE,CAAC,SAAS,GAAG,YAAY;EAC7B,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;EACxC,CAAC;;ECFDA,IAAM,cAAc,GAAG,EAAE,CAAC;EAC1B;EACA;EACA;EACA;EACA,SAAS,cAAc,CAAC,QAAQ,EAAE;EAClC,IAAIC,IAAI,OAAO,CAAC;EAChB,IAAIA,IAAI,OAAO,CAAC;EAChB,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;EACnC,QAAQ,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;EACnD,QAAQ,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;EAC3C,QAAQ,OAAO,GAAG,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;EAC/C,QAAQ,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;EAChD,QAAQ,IAAI,OAAO,KAAK,MAAM,EAAE;EAChC,YAAY,OAAO,GAAG,OAAO,CAAC;EAC9B,SAAS;EACT,QAAQ,cAAc,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;EAC3C,KAAK;EACL,IAAI,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC;EACpC,CAAC;EACD;EACA;EACA;EACA;EACA,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,YAAY;EACxB,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY;EACjC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE;EAC3C,YAAY,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;EACpC,SAAS;EACT,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,MAAM,EAAE;EAClD,YAAY,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;EAC/D,SAAS;EACT,KAAK,CAAC,CAAC;EACP,CAAC;;EChCD;EACA;EACA;EACA;EACA;EACA,CAAC,CAAC,EAAE,CAAC,QAAQ,GAAG,UAAU,QAAQ,EAAE;EACpC,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;EAC9D,CAAC;;ECND;EACA;EACA;EACA,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG,YAAY;EAC1B,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY;EACjC,QAAQ,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;EAC/E,KAAK,CAAC,CAAC;EACP,CAAC;;ECMD,CAAC,CAAC,EAAE,CAAC,MAAM,GAAG;MACZ,OAAO,IAAI,CAAC,IAAI,CAAC;UACf,OAAO,IAAI,CAAC,UAAU,CAAC;OACxB,CAAC,CAAC;EACL,CAAC;;ECFD,CAAC,CAAC,EAAE,CAAC,UAAU,GAAG,UAAoB,QAAyB;MAC7D,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE;UACtB,QAAQ,GAAM,QAAQ,OAAI,CAAC;OAC5B;MAED,OAAO,IAAI,CAAC,IAAI,CAAC;UACf,IAAI,CAAC,KAAK,CAAC,wBAAwB,GAAG,QAAkB,CAAC;UACzD,IAAI,CAAC,KAAK,CAAC,kBAAkB,GAAG,QAAkB,CAAC;OACpD,CAAC,CAAC;EACL,CAAC;;ECPD,CAAC,CAAC,EAAE,CAAC,aAAa,GAAG,UAEnB,QAA+C;;MAG/CD,IAAM,IAAI,GAAG,IAAI,CAAC;MAClBA,IAAM,MAAM,GAAG,CAAC,qBAAqB,EAAE,eAAe,CAAC,CAAC;MAExD,SAAS,YAAY,CAAoC,CAAQ;UAC/D,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,EAAE;cACrB,OAAO;WACR;;UAGD,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;UAEvB,IAAI,CAAC,MAAM,YAAG,CAAC,EAAE,KAAK;cACpB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;WAC/B,CAAC,CAAC;OACJ;MAED,IAAI,CAAC,MAAM,YAAG,CAAC,EAAE,KAAK;UACpB,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;OAC9B,CAAC,CAAC;MAEH,OAAO,IAAI,CAAC;EACd,CAAC;;EC9BD,CAAC,CAAC,EAAE,CAAC,eAAe,GAAG,UAAoB,eAAuB;MAChE,OAAO,IAAI,CAAC,IAAI,CAAC;UACf,IAAI,CAAC,KAAK,CAAC,qBAAqB,GAAG,eAAe,CAAC;UACnD,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,eAAe,CAAC;OAC9C,CAAC,CAAC;EACL,CAAC;;ECLD,CAAC,CAAC,EAAE,CAAC,SAAS,GAAG,UAAoB,SAAiB;MACpD,OAAO,IAAI,CAAC,IAAI,CAAC;UACf,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,SAAS,CAAC;UACvC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;OAClC,CAAC,CAAC;EACL,CAAC;;ECdD;;;EAGAA,IAAM,OAAO,GAA+B,EAAE,CAAC;EAE/C;;;;;;;EAOA,SAAS,QAAQ,CACf,QAAgB,EAChB,OAAsB,EACtB,CAAS,EACT,OAAoB;MAEpBC,IAAI,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;MAEhD,IAAI,CAAC,SAAS,EAAE;UACd,SAAS,GAAG,EAAE,CAAC;UACf,IAAI,CAAC,OAAO,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAC;OAC5C;MAED,IAAI,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;UACtC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;UACzB,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;OACnC;EACH;;ECrBA,CAAC,CAAC,EAAE,CAAC,QAAQ,GAAG;MACd,OAAO,IAAI,CAAC,IAAI,WAAE,CAAC,EAAE,OAAO;UAC1BD,IAAM,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;UAEzB,IAAI,CAAC,OAAO,YAAG,QAAgB,EAAE,OAAO;cACtC,IAAI,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE;kBACtB,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;eACzC;cAED,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,WAAE,CAAC,EAAE,OAAO;kBACnC,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;eACzC,CAAC,CAAC;WACJ,CAAC,CAAC;OACJ,CAAC,CAAC;EACL,CAAC;;ECJD,CAAC,CAAC,WAAW,GAAG,UAAU,MAAe;MACvCC,IAAI,QAAQ,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC;MAElC,IAAI,QAAQ,CAAC,MAAM,EAAE;UACnB,QAAQ,CAAC,IAAI,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;UAE5C,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE;cACxB,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;WACjC;OACF;WAAM;UACL,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE;cACvB,MAAM,GAAG,IAAI,CAAC;WACf;UAED,QAAQ,GAAG,CAAC,CAAC,4BAA4B,CAAC;eACvC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;eACvB,MAAM,EAAE;eACR,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;OAC3B;MAEDA,IAAI,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;MAEjD,OAAO,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;EAChF,CAAC;;ECxBD,CAAC,CAAC,WAAW,GAAG,UAAU,KAAa;mCAAR,GAAG;;MAChCD,IAAM,QAAQ,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC;MAEpC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;UACpB,OAAO;OACR;MAEDC,IAAI,KAAK,GAAG,KAAK,GAAG,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;MAExD,IAAI,KAAK,GAAG,CAAC,EAAE;UACb,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,KAAK,CAAC,CAAC;UACzC,OAAO;OACR;MAED,QAAQ;WACL,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;WACzB,WAAW,CAAC,mBAAmB,CAAC;WAChC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC;WACjC,aAAa;UACZ,IAAI,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,EAAE;cACxC,QAAQ,CAAC,MAAM,EAAE,CAAC;WACnB;OACF,CAAC,CAAC;EACP,CAAC;;EC/BD,CAAC,CAAC,UAAU,GAAG;MACbD,IAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;;MAGxBA,IAAM,YAAY,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;MACnCC,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;MAEjD,KAAK;WACF,QAAQ,CAAC,aAAa,CAAC;WACvB,KAAK,CAAC,YAAY,CAAC;WACnB,IAAI,CAAC,mBAAmB,EAAE,EAAE,KAAK,CAAC,CAAC;EACxC,CAAC;;ECJD,CAAC,CAAC,YAAY,GAAG,UAAU,KAAa;mCAAR,GAAG;;MACjCD,IAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;MACxBC,IAAI,KAAK,GAAG,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;MAExD,IAAI,KAAK,GAAG,CAAC,EAAE;UACb,KAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,KAAK,CAAC,CAAC;UACzC,OAAO;OACR;MAED,KAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;EAC1E,CAAC;;ECfD,CAAC,CAAC,QAAQ,GAAG,UAAU,EAAc,EAAE,KAAU;mCAAL,GAAG;;MAC7CA,IAAI,KAAK,GAAQ,IAAI,CAAC;MAEtB,OAAO;;;;;UACL,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;cACjB,KAAK,GAAG,UAAU;kBAChB,EAAE,CAAC,KAAK,CAACE,MAAI,EAAE,IAAI,CAAC,CAAC;kBACrB,KAAK,GAAG,IAAI,CAAC;eACd,EAAE,KAAK,CAAC,CAAC;WACX;OACF,CAAC;EACJ,CAAC;;ECTDH,IAAM,IAAI,GAAwB,EAAE,CAAC;EAErC,CAAC,CAAC,IAAI,GAAG,UAAU,IAAa;MAC9B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;UAClD,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;OACnB;MAED,SAAS,EAAE;UACT,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,OAAO,CAAC;eAC7C,QAAQ,CAAC,EAAE,CAAC;eACZ,SAAS,CAAC,CAAC,CAAC,CAAC;OACjB;MAEDA,IAAM,IAAI,GACR,GAAG;UACH,EAAE,EAAE;UACJ,EAAE,EAAE;UACJ,GAAG;UACH,EAAE,EAAE;UACJ,GAAG;UACH,EAAE,EAAE;UACJ,GAAG;UACH,EAAE,EAAE;UACJ,GAAG;UACH,EAAE,EAAE;UACJ,EAAE,EAAE;UACJ,EAAE,EAAE,CAAC;MAEP,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;UACtB,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;OACnB;MAED,OAAO,IAAI,CAAC;EACd,CAAC;;EC3BD,IAAI,CAAC,QAAQ,GAAG,UAAU,QAAiB,EAAE,OAAuB;MAClE,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE;UACjD,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC;UACvB,OAAO;OACR;MAED,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAQ,CAAC;MAC7B,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,WAAE,CAAC,EAAE,OAAO,WAAK,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,IAAC,CAAC,CAAC;EAC5E,CAAC;;EC/BD;;;;;;;;EAQA,SAAS,cAAc,CACrB,SAAiB,EACjB,aAAqB,EACrB,MAAwC,EACxC,QAAc,EACd,UAAwB;MAExB,IAAI,CAAC,UAAU,EAAE;UACf,UAAU,GAAG,EAAE,CAAC;OACjB;;MAGD,UAAU,CAAC,IAAI,GAAG,QAAQ,CAAC;MAE3BA,IAAM,aAAa,GAAM,SAAS,cAAS,aAAe,CAAC;;;MAI3D,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;;UAEjC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;OACnD;MAEDA,IAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;;MAG1B,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;MAS3CA,IAAM,WAAW,GAAgB;UAC/B,OAAO,EAAE,IAAI;UACb,UAAU,EAAE,IAAI;UAChB,MAAM,EAAE,UAAU;OACnB,CAAC;MAEFA,IAAM,WAAW,GAAgB,IAAI,WAAW,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;;MAG7E,WAAW,CAAC,OAAO,GAAG,UAAU,CAAC;MAEjC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;EACxC;;EC1DAA,IAAM,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;EAC9BA,IAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;EAC1BA,IAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC;;EC2EvBA,IAAM,eAAe,GAAY;MAC/B,SAAS,EAAE,CAAC;MACZ,MAAM,EAAE,CAAC;MACT,YAAY,EAAE,eAAe;MAC7B,WAAW,EAAE,0BAA0B;MACvC,aAAa,EAAE,4BAA4B;GAC5C,CAAC;EAEF,IAAM,QAAQ,GA+BZ,kBACE,QAAyD,EACzD,OAAqB;0CAAF;;;;;MAxBd,YAAO,GAAY,MAAM,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;;;;MAK9C,UAAK,GAAU,QAAQ,CAAC;;;;MAKxB,aAAQ,GAAG,KAAK,CAAC;;;;MAKjB,gBAAW,GAAG,CAAC,CAAC;;;;MAKhB,UAAK,GAAG,CAAC,CAAC;MAMhB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;MAEpC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;;MAG9BA,IAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;MACzC,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE;UACvB,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG;cACvB,IAAI,EAAE,SAAS;cACf,EAAE,EAAE,SAAS;WACd,CAAC;OACH;MAED,IAAI,CAAC,MAAM,EAAE,CAAC;EAChB,EAAC;EAED;;;qBAGQ;;;MACN,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,qBAAqB;UACvCA,IAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC;UAC1CA,IAAM,SAAS,GAAG,cAAc,GAAGG,MAAI,CAAC,WAAW,GAAG,MAAM,GAAG,IAAI,CAAC;UACpEH,IAAM,SAAS,GAAIG,MAAI,CAAC,OAAO,CAAC,SAAuB,CAAC,SAAS,CAAC,CAAC;UACnEH,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,GAAGG,MAAI,CAAC,WAAW,CAAC,CAAC;UAC7DH,IAAM,iBAAiB,GAAG,QAAQ,IAAI,SAAS,CAAC;UAEhD,IACE,cAAc,GAAGG,MAAI,CAAC,WAAW;cACjC,cAAc,IAAIA,MAAI,CAAC,OAAO,CAAC,MAAO;cACtC,iBAAiB,EACjB;cACAA,MAAI,CAAC,KAAK,EAAE,CAAC;WACd;eAAM,IACL,CAAC,cAAc,GAAGA,MAAI,CAAC,WAAW,IAAI,iBAAiB;cACvD,cAAc,IAAIA,MAAI,CAAC,OAAO,CAAC,MAAO,EACtC;cACAA,MAAI,CAAC,GAAG,EAAE,CAAC;WACZ;UAEDA,MAAI,CAAC,WAAW,GAAG,cAAc,CAAC;OACnC,CAAC,CAAC;EACL,EAAC;EAED;;;;qBAIQ,sCAAa,IAAW;MAC9B,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;EACxD,EAAC;EAED;;;qBAGQ;MACN,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;UAC5B,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;UACtB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;OAC7B;MAED,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,EAAE;UAC9B,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;UACxB,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;OAC/B;EACH,EAAC;EAED;;;qBAGO;;;MACL,IACE,IAAI,CAAC,KAAK,KAAK,SAAS;UACxB,IAAI,CAAC,KAAK,KAAK,QAAQ;UACvB,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,YAAa,CAAC,EACnD;UACA,OAAO;OACR;MAED,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;MACzB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;MACvB,IAAI,CAAC,QAAQ;WACV,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;WACvC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,WAAY,CAAC;WACnC,aAAa,sBAAOA,MAAI,CAAC,aAAa,KAAE,CAAC,CAAC;EAC/C,EAAC;EAED;;;qBAGO;;;MACL,IACE,IAAI,CAAC,KAAK,KAAK,WAAW;UAC1B,IAAI,CAAC,KAAK,KAAK,UAAU;UACzB,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,YAAa,CAAC,EACnD;UACA,OAAO;OACR;MAED,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;MAC3B,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;MACzB,IAAI,CAAC,QAAQ;WACV,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;WACrC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,aAAc,CAAC;WACrC,aAAa,sBAAOA,MAAI,CAAC,aAAa,KAAE,CAAC,CAAC;EAC/C,EAAC;EAED;;;qBAGO;;;MACL,IAAI,IAAI,CAAC,QAAQ,EAAE;UACjB,OAAO;OACR;MAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;MACrB,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;MACtB,IAAI,CAAC,QAAQ;WACV,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,YAAa,CAAC;WACpC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;WACrC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;MAC3C,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;MAEtC,OAAO,CAAC,EAAE,CAAC,QAAQ,uBAAQA,MAAI,CAAC,QAAQ,KAAE,CAAC,CAAC;EAC9C,EAAC;EAED;;;qBAGO;;;MACL,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;UAClB,OAAO;OACR;MAED,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;MACtB,IAAI,CAAC,QAAQ;WACV,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;WACtC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;WACrC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;MAE3C,OAAO,CAAC,GAAG,CAAC,QAAQ,uBAAQA,MAAI,CAAC,QAAQ,KAAE,CAAC,CAAC;MAC7C,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;EAC1C,EAAC;EAED;;;qBAGO;MACL,OAAO,IAAI,CAAC,KAAK,CAAC;EACpB,EACD;EAED,IAAI,CAAC,QAAQ,GAAG,QAAQ;;EC9QxB;;;;;EAKA,SAAS,YAAY,CAAC,OAAoB,EAAE,IAAY;MACtDH,IAAM,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;MAEnC,IAAI,CAAC,IAAI,EAAE;UACT,OAAO,EAAE,CAAC;OACX;MAED,OAAO,IAAI,QAAQ,CACjB,EAAE,mBACY,IAAI,iDACnB,EAAE,CAAC;EACN;;ECdAA,IAAM,UAAU,GAAG,eAAe,CAAC;EAEnC,CAAC;MACC,IAAI,CAAC,QAAQ,QAAK,UAAU,SAAK;UAC/B,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;OACzD,CAAC,CAAC;EACL,CAAC,CAAC;;ECqBFA,IAAMM,iBAAe,GAAY;MAC/B,SAAS,EAAE,KAAK;GACjB,CAAC;EAEF,IAAe,gBAAgB,GAoC7B,0BACE,QAAyD,EACzD,OAAqB;0CAAF;;;;;MA7Bd,YAAO,GAAY,MAAM,CAAC,EAAE,EAAEA,iBAAe,CAAC,CAAC;;MAgCpDN,IAAM,WAAW,GAAG,WAAQ,IAAI,CAAC,YAAY,GAAE,UAAO,CAAC;MACvD,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC;MAC7B,IAAI,CAAC,aAAa,GAAM,WAAW,UAAO,CAAC;MAC3C,IAAI,CAAC,WAAW,GAAM,WAAW,YAAS,CAAC;MAC3C,IAAI,CAAC,SAAS,GAAM,WAAW,UAAO,CAAC;MAEvC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;MAEpC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;MAE9B,IAAI,CAAC,SAAS,EAAE,CAAC;EACnB,EAAC;EAED;;;6BAGQ;;MAENA,IAAM,IAAI,GAAG,IAAI,CAAC;;MAGlB,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,UAAM,IAAI,CAAC,eAAe;UAChDA,IAAM,OAAO,GAAG,CAAC,CAAC,IAAmB,CAAC,CAAC;UACvCA,IAAM,KAAK,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;UAC/BA,IAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;UAE/B,MAAM,CAAC,IAAI,WAAE,CAAC,EAAE,IAAI;cAClB,IAAI,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;kBAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;eACnB;WACF,CAAC,CAAC;OACJ,CAAC,CAAC;;MAGH,IAAI,CAAC,QAAQ,CAAC,EAAE,CACd,OAAO,eACE,IAAI,CAAC,YAAY,GAAE,oBAC5B;UACEA,IAAM,OAAO,GAAG,CAAC,CAAC,IAAmB,CAAC,CAAC;UACvCA,IAAM,KAAK,GAAG,OAAO,CAAC,OAAO,SAAK,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;UAE5D,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;OACnB,CACF,CAAC;EACJ,EAAC;EAED;;;;6BAIQ,0BAAO,KAAS;MACtB,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;EAC5C,EAAC;EAED;;;6BAGQ;MACN,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,SAAK,IAAI,CAAC,YAAY,CAAC;EACtD,EAAC;EAED;;;;6BAIQ,4BACN,IAA8D;MAE9D,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;UAClB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;OACjC;MAED,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;EACzB,EAAC;EAED;;;;;6BAKQ,sCAAa,IAAW,EAAE,KAAS;MACzC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;EACzD,EAAC;EAED;;;;;6BAKQ,wCAAc,QAAY,EAAE,KAAS;MAC3C,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;UACtB,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;UAE9D,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;OACpC;WAAM;UACL,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;UAEpB,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;OACpC;EACH,EAAC;EAED;;;;6BAIO,sBACL,IAA8D;;;MAE9DA,IAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;MAEjC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;UACtB,OAAO;OACR;;MAGD,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;UAC1B,IAAI,CAAC,QAAQ,CAAC,QAAQ,SAAK,IAAI,CAAC,gBAAgB,CAAC,IAAI,WAAE,CAAC,EAAE,OAAO;cAC/DA,IAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;cAE5B,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE;kBACvBG,MAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;eACtB;WACF,CAAC,CAAC;OACJ;MAEDH,IAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,SAAK,IAAI,CAAC,YAAY,CAAC;MAEtD,QAAQ;WACL,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;WAChC,aAAa,sBAAOG,MAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,IAAC,CAAC,CAAC;MAE5D,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;MAEjC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;EACrC,EAAC;EAED;;;;6BAIO,wBACL,IAA8D;;;MAE9DH,IAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;MAEjC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;UACvB,OAAO;OACR;MAEDA,IAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,SAAK,IAAI,CAAC,YAAY,CAAC;MAEtD,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;MAElC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;MAEtC,QAAQ;WACL,UAAU,CAAC,CAAC,CAAC;WACb,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;WAChC,MAAM,EAAE;WACR,UAAU,CAAC,EAAE,CAAC;WACd,MAAM,CAAC,EAAE,CAAC;WACV,aAAa,sBAAOG,MAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,IAAC,CAAC,CAAC;EAC9D,EAAC;EAED;;;;6BAIO,0BACL,IAA8D;MAE9DH,IAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;MAEjC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;EAC5D,EAAC;EAED;;;6BAGO;;;MACL,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,WAAE,CAAC,EAAE,OAAO,WAAKG,MAAI,CAAC,IAAI,CAAC,OAAO,IAAC,CAAC,CAAC;EAC3D,EAAC;EAED;;;6BAGO;;;MACL,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,WAAE,CAAC,EAAE,OAAO,WAAKA,MAAI,CAAC,KAAK,CAAC,OAAO,IAAC,CAAC,CAAC;EAC5D;;ECjPF,IAAM,QAAS;;;;;;;;;yBACH;UACR,OAAO,UAAU,CAAC;;;;IAFC,mBAItB;EAED,IAAI,CAAC,QAAQ,GAAG,QAAQ;;ECzBxBH,IAAMO,YAAU,GAAG,eAAe,CAAC;EAEnC,CAAC;MACC,IAAI,CAAC,QAAQ,QAAKA,YAAU,SAAK;UAC/B,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,EAAEA,YAAU,CAAC,CAAC,CAAC;OACzD,CAAC,CAAC;EACL,CAAC,CAAC;;ECaF,IAAM,KAAM;;;;;;;;;sBACA;UACR,OAAO,OAAO,CAAC;;;;IAFC,mBAInB;EAED,IAAI,CAAC,KAAK,GAAG,KAAK;;ECzBlBP,IAAMO,YAAU,GAAG,YAAY,CAAC;EAEhC,CAAC;MACC,IAAI,CAAC,QAAQ,QAAKA,YAAU,SAAK;UAC/B,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,EAAEA,YAAU,CAAC,CAAC,CAAC;OACtD,CAAC,CAAC;EACL,CAAC,CAAC;;ECqBF,IAAM,KAAK,GAoCT,eACE,QAAyD;;;;MA5BnD,WAAM,GAAO,CAAC,EAAE,CAAC;;;;MAKjB,YAAO,GAAO,CAAC,EAAE,CAAC;;;;MAKlB,gBAAW,GAAyB,CAAC,EAAE,CAAC;;;;MAKxC,iBAAY,GAAyB,CAAC,EAAE,CAAC;;;;MAKzC,eAAU,GAAG,KAAK,CAAC;;;;MAKnB,gBAAW,GAAG,CAAC,CAAC;MAKtB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;MACpC,IAAI,CAAC,IAAI,EAAE,CAAC;EACd,EAAC;EAED;;;kBAGO;MACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;MAC7C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;MAC9C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;MAElE,IAAI,CAAC,gBAAgB,EAAE,CAAC;MACxB,IAAI,CAAC,gBAAgB,EAAE,CAAC;MACxB,IAAI,CAAC,gBAAgB,EAAE,CAAC;EAC1B,EAAC;EAED;;;;kBAIQ,kDAAmB,GAAW;MACpC,QACE,MAAI,GAAG,yCAAoC;UAC3C,+BAA+B;UAC/B,0BAA0B;UAC1B,oCAAoC;UACpC,UAAU;UACV,OAAK,GAAG,MAAG,EACX;EACJ,EAAC;EAED;;;kBAGQ;MACNP,IAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;MACrCA,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;MACrCA,IAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;MAEzC,QAAQ,CAAC,OAAO,GAAG,WAAW,KAAK,YAAY,CAAC;MAChD,QAAQ,CAAC,aAAa,GAAG,CAAC,CAAC,WAAW,IAAI,WAAW,KAAK,YAAY,CAAC;EACzE,EAAC;EAED;;;kBAGQ;;;MACNA,IAAM,gBAAgB,GAAG,yBAAyB,CAAC;MAEnD,IAAI,CAAC,OAAO,CAAC,IAAI,WAAE,CAAC,EAAE,GAAG;UACvBA,IAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;;UAGpB,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,MAAM,EAAE,CAAC;UAEhD,IAAI,CAACG,MAAI,CAAC,UAAU,EAAE;cACpB,OAAO;WACR;;UAGDH,IAAM,SAAS,GAAG,CAAC,CAACG,MAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;eAC/C,SAAS,CAAC,IAAI,CAAC;eACf,IAAI,CAAC,wBAAwB,CAAyB,CAAC;;UAG1D,IAAI,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE;cACnC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;cAC5BA,MAAI,CAAC,WAAW,EAAE,CAAC;WACpB;UAEDA,MAAI,CAAC,sBAAsB,EAAE,CAAC;;UAG9B,SAAS,CAAC,EAAE,CAAC,QAAQ;cACnB,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;kBACxB,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;kBAChCA,MAAI,CAAC,WAAW,EAAE,CAAC;eACpB;mBAAM;kBACL,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;kBACnCA,MAAI,CAAC,WAAW,EAAE,CAAC;eACpB;cAEDA,MAAI,CAAC,sBAAsB,EAAE,CAAC;WAC/B,CAAC,CAAC;UAEHA,MAAI,CAAC,YAAY,GAAGA,MAAI,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;OACtD,CAAC,CAAC;EACL,EAAC;EAED;;;kBAGQ;;;;MAEN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,MAAM,EAAE,CAAC;MAEvD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;UACpB,OAAO;OACR;MAED,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;WAChD,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;WACtB,IAAI,CAAC,wBAAwB,CAAC;WAC9B,EAAE,CAAC,QAAQ;UACVH,IAAM,YAAY,GAAGG,MAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;UACjDA,MAAI,CAAC,WAAW,GAAG,YAAY,GAAGA,MAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;UAE1DA,MAAI,CAAC,YAAY,CAAC,IAAI,WAAE,CAAC,EAAE,QAAQ;cACjC,QAAQ,CAAC,OAAO,GAAG,YAAY,CAAC;WACjC,CAAC,CAAC;UAEHA,MAAI,CAAC,OAAO,CAAC,IAAI,WAAE,CAAC,EAAE,GAAG;cACvB,YAAY;oBACR,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC;oBAC1C,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC;WACnD,CAAC,CAAC;OACJ,CAAyB,CAAC;EAC/B,EAAC;EAED;;;kBAGQ;;;MACNH,IAAM,YAAY,GAAG,wBAAwB,CAAC;MAE9C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,WAAE,CAAC,EAAE,EAAE;UAChCA,IAAM,YAAY,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;UAElDG,MAAI,CAAC,OAAO,CAAC,IAAI,WAAE,CAAC,EAAE,GAAG;cACvBH,IAAM,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;cAEpC,YAAY;oBACR,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC;oBAC1B,GAAG,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;WACnC,CAAC,CAAC;OACJ,CAAC,CAAC;EACL,EACD;EAEDA,IAAM,QAAQ,GAAG,aAAa,CAAC;EAE/B,CAAC;MACC,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE;UAC3BA,IAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;UAEzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;cAC5B,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;WAC9C;OACF,CAAC,CAAC;EACL,CAAC,CAAC,CAAC;EAEH,IAAI,CAAC,YAAY,GAAG,UAClB,QAA0D;MAE1DA,IAAM,SAAS,GAAG,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;MAEzE,SAAS,CAAC,IAAI,WAAE,CAAC,EAAE,OAAO;UACxBA,IAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;UAC5BA,IAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;UAEzC,IAAI,QAAQ,EAAE;cACZ,QAAQ,CAAC,IAAI,EAAE,CAAC;WACjB;eAAM;cACL,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;WAC9C;OACF,CAAC,CAAC;EACL,CAAC;;EC/OD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkCAA,IAAM,UAAU,GAAG,sBAAsB,CAAC;EAC1CA,IAAM,SAAS,GAAG,qBAAqB,CAAC;EACxCA,IAAM,QAAQ,GAAG,kBAAkB,CAAC;EACpCA,IAAM,WAAW,GAAG,wBAAwB,CAAC;EAC7CA,IAAM,WAAW,GAAG,gCAAgC,CAAC;EAErDC,IAAI,OAAO,GAAG,CAAC,CAAC;EAEhB;;;;;EAKA,SAAS,OAAO,CAAC,KAAY;MAC3B,OAAO,EACL,OAAO;UACP;cACE,WAAW;cACX,SAAS;cACT,WAAW;cACX,OAAO;cACP,WAAW;cACX,UAAU;cACV,YAAY;cACZ,YAAY,EACb,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAC3B,CAAC;EACJ,CAAC;EAED;;;;EAIA,SAAS,QAAQ,CAAC,KAAY;MAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE;;UAE/B,OAAO,IAAI,CAAC,CAAC;OACd;WAAM,IACL,CAAC,WAAW,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EACjE;;UAEA,UAAU,CAAC;cACT,IAAI,OAAO,EAAE;kBACX,OAAO,IAAI,CAAC,CAAC;eACd;WACF,EAAE,GAAG,CAAC,CAAC;OACT;EACH;;ECjFA;;;;;;EAwCA;;;;;EAKA,SAAS,IAAI,CAAC,KAAY,EAAE,OAAW;;MAErC,IAAI,KAAK,YAAY,UAAU,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;UACrD,OAAO;OACR;;MAGDD,IAAM,aAAa,GACjB,OAAO,UAAU,KAAK,WAAW;UACjC,KAAK,YAAY,UAAU;UAC3B,KAAK,CAAC,OAAO,CAAC,MAAM;YAChB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YACf,KAAoB,CAAC;MAE5BA,IAAM,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC;MACxCA,IAAM,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC;;MAGxCA,IAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;MAChCA,IAAM,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;MACrCA,IAAM,KAAK,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;MACnCA,IAAM,MAAM,GAAG;UACb,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC,IAAI;UAC5B,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC,GAAG;OAC5B,CAAC;MACFA,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CACvB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EACvD,EAAE,CACH,CAAC;;MAGFA,IAAM,SAAS,GACb,kBAAe,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,EAAC,QAAK;WACtC,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,GAAG,EAAC,oBAAiB,CAAC;;MAG7C,CAAC,CACC,kCAAgC;UAC9B,mBAAgB,QAAQ,kBAAa,QAAQ,QAAK;UAClD,kBAAe,QAAQ,GAAG,EAAC,yBAAmB,QAAQ,GAAG,EAAC,QAAK;UAC/D,WAAQ,MAAM,CAAC,EAAC,gBAAU,MAAM,CAAC,EAAC,iBAAa,CAClD;WACE,IAAI,CAAC,wBAAwB,EAAE,SAAS,CAAC;WACzC,SAAS,CAAC,OAAO,CAAC;WAClB,MAAM,EAAE;WACR,SAAS,CAAC,SAAS,CAAC,CAAC;EAC1B,CAAC;EAED;;;;EAIA,SAAS,YAAY,CAAC,KAAS;MAC7B,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE;UACvD,OAAO;OACR;MAED,KAAK,CAAC,IAAI,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;MAEzCC,IAAI,WAAW,GAAG,UAAU,sBAAO,KAAK,CAAC,MAAM,KAAE,EAAE,GAAG,CAAC,CAAC;MACxDD,IAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;MAEvD,KAAK;WACF,QAAQ,CAAC,uBAAuB,CAAC;WACjC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;WACvD,aAAa;UACZ,YAAY,CAAC,WAAW,CAAC,CAAC;UAE1B,KAAK;eACF,QAAQ,CAAC,sBAAsB,CAAC;eAChC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;UAE3D,WAAW,GAAG,UAAU,sBAAO,KAAK,CAAC,MAAM,KAAE,EAAE,GAAG,CAAC,CAAC;UAEpD,UAAU;cACR,KAAK,CAAC,aAAa;kBACjB,YAAY,CAAC,WAAW,CAAC,CAAC;kBAC1B,KAAK,CAAC,MAAM,EAAE,CAAC;eAChB,CAAC,CAAC;WACJ,EAAE,CAAC,CAAC,CAAC;OACP,CAAC,CAAC;EACP,CAAC;EAED;;;;EAIA,SAAS,IAAI;MACXA,IAAM,OAAO,GAAG,CAAC,CAAC,IAAmB,CAAC,CAAC;MAEvC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,IAAI,WAAE,CAAC,EAAE,IAAI;UACjD,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;OACvB,CAAC,CAAC;MAEH,OAAO,CAAC,GAAG,EAAI,SAAS,SAAI,QAAQ,SAAI,cAAe,IAAI,CAAC,CAAC;EAC/D,CAAC;EAED;;;;EAIA,SAAS,UAAU,CAAC,KAAY;MAC9B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;UACnB,OAAO;OACR;MAED,QAAQ,CAAC,KAAK,CAAC,CAAC;;MAGhB,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE;UAC7B,OAAO;OACR;MAEDA,IAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,MAAqB,CAAC,CAAC;;MAG/CA,IAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;YAC3C,OAAO;YACP,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,CAAC;MAE5C,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;UACnB,OAAO;OACR;;MAGD,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE;UACtE,OAAO;OACR;MAED,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE;UAC/BC,IAAI,MAAM,GAAG,KAAK,CAAC;;UAGnBA,IAAI,KAAK,GAAG,UAAU;cACpB,KAAK,GAAG,CAAC,CAAC;cACV,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;WACtB,EAAE,GAAG,CAAC,CAAC;UAERD,IAAM,UAAU;;cAEd,IAAI,KAAK,EAAE;kBACT,YAAY,CAAC,KAAK,CAAC,CAAC;kBACpB,KAAK,GAAG,CAAC,CAAC;kBACV,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;eACtB;cAED,IAAI,CAAC,MAAM,EAAE;kBACX,MAAM,GAAG,IAAI,CAAC;kBACd,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;eACpB;WACF,CAAC;;UAGFA,IAAM,SAAS;cACb,IAAI,KAAK,EAAE;kBACT,YAAY,CAAC,KAAK,CAAC,CAAC;kBACpB,KAAK,GAAG,CAAC,CAAC;eACX;cAED,UAAU,EAAE,CAAC;WACd,CAAC;UAEF,OAAO,CAAC,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,sBAAsB,EAAE,UAAU,CAAC,CAAC;OAC3E;WAAM;UACL,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;UACrB,OAAO,CAAC,EAAE,EAAI,SAAS,SAAI,QAAQ,SAAI,cAAe,IAAI,CAAC,CAAC;OAC7D;EACH,CAAC;EAED,CAAC;MACC,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;EACjE,CAAC,CAAC;;EC9KFA,IAAM,WAAW,GAAqB;MACpC,MAAM,EAAE,KAAK;MACb,cAAc,EAAE,KAAK;GACtB,CAAC;EAEF;;;;;EAKA,SAAS,UAAU,CAAC,KAAY,EAAE,IAA2B;oCAAF;;MACzD,IAAI,GAAG,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;MAErCA,IAAM,KAAK,GAAG,KAAK,CAAC,MAA0B,CAAC;MAC/CA,IAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;MACxBA,IAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;MAC7BA,IAAM,KAAK,GAAG,MAAM,CAAC,GAAG,EAAY,CAAC;;MAGrCA,IAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;MAC5C,IACE,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,OAAO,CACjE,SAAS,CACV,GAAG,CAAC,CAAC,EACN;UACA,OAAO;OACR;MAEDA,IAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;;MAGpD,IAAI,SAAS,KAAK,OAAO,EAAE;UACzB,UAAU,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;OAC7C;MAED,IAAI,SAAS,KAAK,MAAM,EAAE;UACxB,UAAU,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;OAChD;;MAGD,IAAI,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,OAAO,EAAE;UACjD,KAAK;gBACD,UAAU,CAAC,QAAQ,CAAC,0BAA0B,CAAC;gBAC/C,UAAU,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAC;OACxD;;MAGD,KAAK,CAAC,QAAQ;YACV,UAAU,CAAC,QAAQ,CAAC,yBAAyB,CAAC;YAC9C,UAAU,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC;;MAGtD,IACE,CAAC,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,MAAM;UAC9C,CAAC,IAAI,CAAC,cAAc;UACpB,KAAK,CAAC,QAAQ,EACd;UACA,KAAK,CAAC,QAAQ,CAAC,KAAK;gBAChB,UAAU,CAAC,WAAW,CAAC,8BAA8B,CAAC;gBACtD,UAAU,CAAC,QAAQ,CAAC,8BAA8B,CAAC,CAAC;OACzD;;MAGD,IAAI,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE;;;UAGzBA,IAAM,UAAU,GAAG,KAAK,CAAC;UACzBC,IAAI,aAAa,GAAG,KAAK,CAAC;UAE1B,IAAI,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE;cAC5C,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,UAAU,CAAC,CAAC;cAC7B,aAAa,GAAG,IAAI,CAAC;WACtB;;UAGD,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;UACvBD,IAAM,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;UACpCA,IAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;UAExC,IAAI,YAAY,GAAG,MAAM,EAAE;cACzB,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;WAClC;;UAGD,IAAI,aAAa,EAAE;cACjB,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;WACxB;OACF;;MAGD,IAAI,IAAI,CAAC,MAAM,EAAE;UACf,UAAU,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,MAAM,EAAE,CAAC;OACrD;MAEDA,IAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;MAC3C,IAAI,SAAS,EAAE;UACb,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,cAAc,EAAE;cACtC,CAAC,CACC,sCAAsC;kBACpC,8DAA0D,SAAW;kBACrE,QAAQ,CACX,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;WACxB;UAED,UAAU;eACP,IAAI,CAAC,iCAAiC,CAAC;eACvC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;OAClC;;MAGD,IACE,UAAU,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,MAAM;UAChD,UAAU,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,MAAM;UAC/C,SAAS,EACT;UACA,UAAU,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC;OAClD;EACH,CAAC;EAED,CAAC;;MAEC,SAAS,CAAC,EAAE,CACV,kBAAkB,EAClB,uBAAuB,EACvB,EAAE,UAAU,EAAE,IAAI,EAAE,EACpB,UAAU,CACX,CAAC;;MAGF,SAAS,CAAC,EAAE,CACV,OAAO,EACP,iDAAiD,EACjD;UACE,CAAC,CAAC,IAAmB,CAAC;eACnB,OAAO,CAAC,iBAAiB,CAAC;eAC1B,QAAQ,CAAC,yBAAyB,CAAC;eACnC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;eAChC,KAAK,EAAE,CAAC;OACZ,CACF,CAAC;;MAGF,SAAS,CAAC,EAAE,CACV,OAAO,EACP,gDAAgD,EAChD;UACE,CAAC,CAAC,IAAI,CAAC;eACJ,OAAO,CAAC,iBAAiB,CAAC;eAC1B,WAAW,CAAC,yBAAyB,CAAC;eACtC,IAAI,CAAC,uBAAuB,CAAC;eAC7B,GAAG,CAAC,EAAE,CAAC,CAAC;OACZ,CACF,CAAC;;;;MAKF,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE;UAC/B,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE;cACrD,cAAc,EAAE,IAAI;WACrB,CAAC,CAAC;OACJ,CAAC,CAAC;EACL,CAAC,CAAC,CAAC;EAEH,IAAI,CAAC,gBAAgB,GAAG,UACtB,QAA0D;MAE1DA,IAAM,SAAS,GAAG,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;MAE7E,SAAS,CAAC,IAAI,WAAE,CAAC,EAAE,OAAO;UACxB,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE;cACxD,MAAM,EAAE,IAAI;WACb,CAAC,CAAC;OACJ,CAAC,CAAC;EACL,CAAC;;EC5KD;;;;EAIA,SAAS,gBAAgB,CAAC,OAAW;MACnCA,IAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;MAE5BA,IAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC;MACnCA,IAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;MACjCA,IAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC;MACnCA,IAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC;MACnCA,IAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;MAC7BA,IAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC;MAC7BA,IAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC;MACzCA,IAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC;MACzCA,IAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC;MAC3CA,IAAM,KAAK,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;MAC3BA,IAAM,OAAO,GAAG,CAAC,CAAC,KAAK,GAAG,GAAG,KAAK,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC;MAEpD,KAAK,CAAC,KAAK,EAAI,OAAO,QAAI,CAAC;MAC3B,MAAM,CAAC,KAAK,GAAI,GAAG,GAAG,gBAAW,CAAC;MAElC,IAAI,UAAU,EAAE;UACd,KAAK,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;UAClC,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;OACnC;MAED,MAAM,CAAC,GAAG,CAAC,MAAM,GAAK,OAAO,QAAI,CAAC;MAElC,IAAI,UAAU,EAAE;UACd,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;OACxB;MAED,OAAO,KAAK,CAAC;YACT,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC;YACpC,OAAO,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;EAC9C,CAAC;EAED;;;;EAIA,SAAS,MAAM,CAAC,OAAW;MACzBA,IAAM,MAAM,GAAG,CAAC,CAAC,uCAAuC,CAAC,CAAC;MAC1DA,IAAM,KAAK,GAAG,CAAC,CAAC,sCAAsC,CAAC,CAAC;MACxDA,IAAM,MAAM,GAAG,CAAC,CAAC,uCAAuC,CAAC,CAAC;MAC1DA,IAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAyB,CAAC;MAC3EA,IAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;MACtCA,IAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;;MAG5D,UAAU;YACN,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YACxC,OAAO,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;;MAGhD,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,MAAM,EAAE,CAAC;MAC5C,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,MAAM,EAAE,CAAC;MAC3C,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,MAAM,EAAE,CAAC;MAC5C,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;;MAGpDC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;MACrB,IAAI,UAAU,EAAE;UACd,UAAU,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC;UAChC,MAAM,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;OACnC;MAED,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;MACvC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;MACrC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;MACvC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;MACvC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;MAChD,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;MAChD,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;MAC7C,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;MAC7C,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC;;MAG/C,gBAAgB,CAAC,OAAO,CAAC,CAAC;EAC5B,CAAC;EAEDD,IAAM,aAAa,GAAG,kCAAkC,CAAC;EAEzD,CAAC;;MAEC,SAAS,CAAC,EAAE,CAAC,cAAc,EAAE,aAAa,EAAE;UAC1CA,IAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAqB,CAAC;UAEpD,gBAAgB,CAAC,OAAO,CAAC,CAAC;OAC3B,CAAC,CAAC;;MAGH,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,UAAU,KAAY;UAC5D,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;cACnB,OAAO;WACR;UAED,QAAQ,CAAC,KAAK,CAAC,CAAC;UAEhB,IAAK,IAAyB,CAAC,QAAQ,EAAE;cACvC,OAAO;WACR;UAEDA,IAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAqB,CAAC;UAEpD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;OACvC,CAAC,CAAC;;MAGH,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,UAAU,KAAY;UAC1D,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;cACnB,OAAO;WACR;UAED,IAAK,IAAyB,CAAC,QAAQ,EAAE;cACvC,OAAO;WACR;UAEDA,IAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAqB,CAAC;UAEpD,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;OAC1C,CAAC,CAAC;MAEH,SAAS,CAAC,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;;;;MAKnD,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE;UAC5B,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;OACjB,CAAC,CAAC;EACL,CAAC,CAAC,CAAC;EAEH,IAAI,CAAC,aAAa,GAAG,UACnB,QAA0D;MAE1DA,IAAM,SAAS,GAAG,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;MAE1E,SAAS,CAAC,IAAI,WAAE,CAAC,EAAE,OAAO;UACxB,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;OACpB,CAAC,CAAC;EACL,CAAC;;ECrIDA,IAAMM,iBAAe,GAAY;MAC/B,OAAO,EAAE,OAAO;GACjB,CAAC;EAEF,IAAM,GAAG,GA+BP,aACE,QAAyD,EACzD,OAAqB;;0CAAF;;;;;MAxBd,YAAO,GAAY,MAAM,CAAC,EAAE,EAAEA,iBAAe,CAAC,CAAC;;;;MAK9C,UAAK,GAAU,QAAQ,CAAC;MAqB9B,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;MAEpC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;MAE9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;MAC5C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;MAClD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;MAE9C,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,OAAO,EAAE;UACpC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,uBAAuB,uBAAQH,MAAI,CAAC,IAAI,KAAE,CAAC,CAAC;UACzD,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,YAAY,uBAAQA,MAAI,CAAC,KAAK,KAAE,CAAC,CAAC;OACpD;MAED,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,OAAO,EAAE;UACpC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,uBAAQA,MAAI,CAAC,IAAI,KAAE,CAAC,CAAC;OAC7C;;MAGD,SAAS,CAAC,EAAE,CAAC,UAAU,YAAG,KAAK;UAC7B,IAAI,CAAC,CAAC,KAAK,CAAC,MAAqB,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,MAAM,EAAE;cACtE,OAAO;WACR;UAEDA,MAAI,CAAC,KAAK,EAAE,CAAC;OACd,CAAC,CAAC;EACL,EAAC;EAED;;;;gBAIQ,sCAAa,IAAW;MAC9B,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;EACnD,EAAC;EAED;;;gBAGQ;MACN,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC;EAC7D,EAAC;EAED;;;gBAGO;;;MACL,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;UACjB,OAAO;OACR;;MAGD,IAAI,CAAC,SAAS,CAAC,IAAI,WAAE,KAAK,EAAE,GAAG;UAC7BH,IAAM,KAAK,IAAM,EAAE,IAAIG,MAAI,CAAC,SAAS,CAAC,MAAM,GAAG,KAAK,SAAK,CAAC;UAE1D,GAAG,CAAC,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC;UAClC,GAAG,CAAC,KAAK,CAAC,qBAAqB,GAAG,KAAK,CAAC;OACzC,CAAC,CAAC;MAEH,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;;MAGhE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,EAAE;UAC7C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;OACvC;MAED,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;MACvB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;;MAG1B,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,aAAa;UAClC,IAAIA,MAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;cACzCA,MAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;cACtBA,MAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;WAC7B;OACF,CAAC,CAAC;EACL,EAAC;EAED;;;gBAGO;;;MACL,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;UAClB,OAAO;OACR;;MAGD,IAAI,CAAC,SAAS,CAAC,IAAI,WAAE,KAAK,EAAE,GAAG;UAC7BH,IAAM,KAAK,IAAM,EAAE,GAAG,aAAS,CAAC;UAEhC,GAAG,CAAC,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC;UAClC,GAAG,CAAC,KAAK,CAAC,qBAAqB,GAAG,KAAK,CAAC;OACzC,CAAC,CAAC;MAEH,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;MAC7C,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;MACzC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;MACvB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;;MAG3B,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,aAAa;UACjC,IAAIG,MAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;cACzC,OAAO;WACR;UAEDA,MAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;UACtBA,MAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;UAC5BA,MAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;OAC7B,CAAC,CAAC;EACL,EAAC;EAED;;;gBAGO;MACL,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;EAC7C,EAAC;EAED;;;gBAGO;MACL,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;EAC7C,EAAC;EAED;;;gBAGO;MACL,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;EAC1C,EAAC;EAED;;;gBAGO;MACL,OAAO,IAAI,CAAC,KAAK,CAAC;EACpB,EACD;EAED,IAAI,CAAC,GAAG,GAAG,GAAG;;ECjOdH,IAAMO,YAAU,GAAG,UAAU,CAAC;EAE9B,CAAC;;;MAIC,SAAS,CAAC,EAAE,CACV,gCAAgC,SAC5BA,YAAU,SACd;UACE,IAAI,IAAI,CAAC,GAAG,CACV,IAAmB,EACnB,YAAY,CAAC,IAAmB,EAAEA,YAAU,CAAC,CAC9C,CAAC;OACH,CACF,CAAC;EACJ,CAAC,CAAC;;ECtBF;;;;;;;;;;;;;;;;EAuFAP,IAAMM,iBAAe,GAAY;MAC/B,QAAQ,EAAE,MAAM;MAChB,MAAM,EAAE,EAAE;GACX,CAAC;EAEF,IAAM,MAAM,GA6DV,gBACE,QAAyD,EACzD,OAAqB;;0CAAF;;;;;MAtDd,aAAQ,GAAO,CAAC,EAAE,CAAC;;;;MAKnB,YAAO,GAAY,MAAM,CAAC,EAAE,EAAEA,iBAAe,CAAC,CAAC;;;;MAK9C,SAAI,GAAG,CAAC,CAAC;;;;MAKT,cAAS,GAAO,CAAC,EAAE,CAAC;;;;MAKpB,UAAK,GAAO,CAAC,EAAE,CAAC;;;;MAKhB,WAAM,GAAO,CAAC,EAAE,CAAC;;;;MAKjB,kBAAa,GAAG,CAAC,CAAC;;;;MAKlB,iBAAY,GAAG,EAAE,CAAC;;;;MAKlB,kBAAa,GAAG,EAAE,CAAC;;;;MAUnB,UAAK,GAAU,QAAQ,CAAC;MAM9B,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,EAA2B,CAAC;MAC5D,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;MAEpB,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;;MAG9B,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;;MAGzB,IAAI,CAAC,YAAY,EAAE,CAAC;;MAGpB,SAAS,CAAC,EAAE,CAAC,kBAAkB,YAAG,KAAY;UAC5CN,IAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,MAAqB,CAAC,CAAC;UAE/C,IACEG,MAAI,CAAC,MAAM,EAAE;cACb,CAAC,OAAO,CAAC,EAAE,CAACA,MAAI,CAAC,QAAQ,CAAC;cAC1B,CAAC,QAAQ,CAACA,MAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EACvC;cACAA,MAAI,CAAC,KAAK,EAAE,CAAC;WACd;OACF,CAAC,CAAC;EACL,EAAC;EAED;;;mBAGQ;MACNH,IAAM,YAAY,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;;MAGtCA,IAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;;MAG7CA,IAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;MACvCA,IAAM,UAAU,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;MACvCA,IAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;;MAG1DA,IAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC;MACpDC,IAAI,UAAU,GAAG,UAAU,GAAG,IAAI,CAAC,IAAI,GAAG,UAAU,GAAG,CAAC,CAAC;;MAGzDD,IAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC,GAAG,CAAC;MAEhEC,IAAI,gBAAwB,CAAC;MAC7BA,IAAI,aAAqB,CAAC;MAE1B,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;UACtC,aAAa,GAAG,aAAa,CAAC;UAC9B,gBAAgB,GAAG,KAAK,CAAC;OAC1B;WAAM,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE;UAC1C,aAAa,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC;UAChC,gBAAgB,GAAG,MAAM,CAAC;OAC3B;WAAM;;UAELD,IAAM,aAAa,GAAG,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAO,GAAG,CAAC,CAAC;UAC9D,IAAI,UAAU,GAAG,aAAa,EAAE;cAC9B,UAAU,GAAG,aAAa,CAAC;WAC5B;;UAGD,aAAa,GAAG,EACd,UAAU;cACV,IAAI,CAAC,aAAa,GAAG,UAAU;cAC/B,CAAC,UAAU,GAAG,aAAa,IAAI,CAAC,CACjC,CAAC;UAEFA,IAAM,gBAAgB,GAAG,EACvB,UAAU;cACV,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,UAAU;cAC5B,CAAC,UAAU,GAAG,aAAa,IAAI,CAAC,CACjC,CAAC;UACF,IAAI,aAAa,GAAG,gBAAgB,EAAE;cACpC,aAAa,GAAG,gBAAgB,CAAC;WAClC;;UAGDA,IAAM,OAAO,GAAG,UAAU,GAAG,aAAa,CAAC;UAC3C,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAO,EAAE;;cAElC,aAAa,GAAG,EAAE,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAO,CAAC,CAAC;WACtD;eAAM,IAAI,OAAO,GAAG,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAO,GAAG,YAAY,EAAE;;cAErE,aAAa,GAAG,EACd,UAAU;kBACV,UAAU;kBACV,IAAI,CAAC,OAAO,CAAC,MAAO;kBACpB,YAAY,CACb,CAAC;WACH;;UAGD,gBAAgB,IACd,IAAI,CAAC,aAAa,GAAG,UAAU,GAAG,UAAU,GAAG,CAAC,GAAG,kBACjD,CAAC;OACN;;MAGD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;MACpC,IAAI,CAAC,KAAK;WACP,UAAU,CAAC,SAAS,CAAC;WACrB,MAAM,CAAC,UAAU,CAAC;WAClB,GAAG,CAAC;UACH,YAAY,EAAE,aAAa,GAAG,IAAI;UAClC,kBAAkB,EAAE,SAAS,GAAG,gBAAgB,GAAG,IAAI;OACxD,CAAC,CAAC;EACP,EAAC;EAED;;;mBAGQ;MACN,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC;EAC7D,EAAC;EAED;;;mBAGO;;;MACL,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;UACjB,IAAI,CAAC,KAAK,EAAE,CAAC;OACd;MAED,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAY,CAAC;MAUlDA,IAAM,SAAS,GAAoB,EAAE,CAAC;MACtC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;;MAGlB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,WAAE,KAAK,EAAE,MAAM;UAC7CA,IAAM,IAAI,GAAG,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;UACtCA,IAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;UAC3BA,IAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;UACjCA,IAAM,QAAQ,GAAGG,MAAI,CAAC,aAAa,KAAK,KAAK,CAAC;UAE9C,SAAS,CAAC,IAAI,CAAC;qBACb,KAAK;oBACL,IAAI;wBACJ,QAAQ;wBACR,QAAQ;qBACR,KAAK;WACN,CAAC,CAAC;UAEH,IAAI,QAAQ,EAAE;cACZA,MAAI,CAAC,YAAY,GAAG,IAAI,CAAC;cACzBA,MAAI,CAAC,aAAa,GAAG,KAAK,CAAC;WAC5B;UAEDA,MAAI,CAAC,MAAM,GAAGA,MAAI,CAAC,MAAM,CAAC,GAAG,CAC3B,gDAAgD;eAC7C,QAAQ,GAAG,WAAW,GAAG,EAAE,CAAC;eAC5B,QAAQ,GAAG,WAAW,GAAG,EAAE,CAAC;cAC7B,MAAI,IAAI,WAAQ,CACnB,CAAC;OACH,CAAC,CAAC;MAEH,IAAI,CAAC,SAAS,GAAG,CAAC,6CACsB,IAAI,CAAC,aAAY,cACxD,CAAC;MAEF,IAAI,CAAC,QAAQ,GAAG,CAAC,CACf,oDAAgD,IAAI,CAAC,OAAO,CAAC,SAAQ,QAAI;UACvE,cAAU,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAC,QAAI;UACxC,WAAO,IAAI,CAAC,SAAQ,cAAU,CACjC;WACE,IAAI,EAAE;WACN,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;MAE1B,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,sCAAsC,CAAC;WACnD,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;WACvB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;MAEvB,CAAC,SAAK,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;MAChC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;MAGlC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;MAEvD,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE;UAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;UAE/B,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE;cACjB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;WACf;OACF;;;MAIDH,IAAM,IAAI,GAAG,IAAI,CAAC;MAClB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE;UACtB,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;cAC5B,OAAO;WACR;UAEDA,IAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;UACtBA,IAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;UAC5BA,IAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;UAE9B,IAAI,IAAI,CAAC,QAAQ,EAAE;cACjB,OAAO;WACR;UAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;UAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;UAC7B,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;UACnC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;UAC3B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;UAChC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC;UAChC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;UAC9B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;UAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;OACd,CAAC,CAAC;;MAGH,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,YAAG,KAAY;UACrCA,IAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,MAAqB,CAAC,CAAC;;UAG/C,IACE,OAAO,CAAC,EAAE,CAAC,mBAAmB,CAAC;cAC/B,OAAO,CAAC,EAAE,CAAC,wBAAwB,CAAC,EACpC;cACA,OAAO;WACR;UAEDG,MAAI,CAAC,MAAM,EAAE,CAAC;OACf,CAAC,CAAC;EACL,EAAC;EAED;;;mBAGQ;MACN,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;MAEjD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;UAC5B,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;UACtB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;UAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;OACtC;MAED,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;UAC5B,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;UACtB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;;UAG5B,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;UAC7B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;cACb,YAAY,EAAE,EAAE;cAChB,MAAM,EAAE,EAAE;cACV,KAAK,EAAE,EAAE;WACV,CAAC,CAAC;OACJ;EACH,EAAC;EAED;;;;mBAIQ,sCAAa,IAAW;MAC9B,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;EACrD,EAAC;EAED;;;mBAGO;MACL,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;EAC7C,EAAC;EAED;;;mBAGO;;;MACL,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;UACjB,OAAO;OACR;MAED,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;MACvB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;MAC1B,IAAI,CAAC,YAAY,EAAE,CAAC;MACpB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;MAC3C,IAAI,CAAC,KAAK,CAAC,aAAa,sBAAOA,MAAI,CAAC,aAAa,KAAE,CAAC,CAAC;EACvD,EAAC;EAED;;;mBAGO;;;MACL,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;UAClB,OAAO;OACR;MAED,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;MACvB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;MAC3B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;MACjC,IAAI,CAAC,QAAQ;WACV,WAAW,CAAC,kBAAkB,CAAC;WAC/B,QAAQ,CAAC,qBAAqB,CAAC,CAAC;MACnC,IAAI,CAAC,KAAK,CAAC,aAAa,sBAAOA,MAAI,CAAC,aAAa,KAAE,CAAC,CAAC;EACvD,EAAC;EAED;;;mBAGO;MACL,OAAO,IAAI,CAAC,KAAK,CAAC;EACpB,EACD;EAED,IAAI,CAAC,MAAM,GAAG,MAAM;;ECvdpBH,IAAMO,YAAU,GAAG,aAAa,CAAC;EAEjC,CAAC;MACC,IAAI,CAAC,QAAQ,QAAKA,YAAU,SAAK;UAC/B,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,EAAEA,YAAU,CAAC,CAAC,CAAC;OACvD,CAAC,CAAC;EACL,CAAC,CAAC;;ECPF,CAAC;;MAEC,IAAI,CAAC,QAAQ,CAAC,0BAA0B,EAAE;UACxC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;OACzB,CAAC,CAAC;;MAGH,IAAI,CAAC,QAAQ,CAAC,kCAAkC,EAAE;UAChD,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;cACtB,WAAW,EAAE,8BAA8B;cAC3C,aAAa,EAAE,gCAAgC;WAChD,CAAC,CAAC;OACJ,CAAC,CAAC;EACL,CAAC,CAAC;;EC4CFP,IAAMM,iBAAe,GAAY;MAC/B,OAAO,EAAE,OAAO;MAChB,IAAI,EAAE,KAAK;GACZ,CAAC;EAEF,IAAM,GAAG,GA0BP,aACE,QAAyD,EACzD,OAAqB;;0CAAF;;;;;MAnBd,YAAO,GAAY,MAAM,CAAC,EAAE,EAAEA,iBAAe,CAAC,CAAC;;;;MAK/C,gBAAW,GAAG,CAAC,CAAC,CAAC;MAgBtB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;MAEpC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;MAE9B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;MACzC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,wCAAwC,CAAC,CAAC,QAAQ,CACpE,IAAI,CAAC,QAAQ,CACd,CAAC;;MAGFN,IAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;MAClC,IAAI,IAAI,EAAE;UACR,IAAI,CAAC,KAAK,CAAC,IAAI,WAAE,KAAK,EAAE,GAAG;cACzB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;kBAChCG,MAAI,CAAC,WAAW,GAAG,KAAK,CAAC;kBACzB,OAAO,KAAK,CAAC;eACd;cAED,OAAO,IAAI,CAAC;WACb,CAAC,CAAC;OACJ;;MAGD,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,CAAC,EAAE;UAC3B,IAAI,CAAC,KAAK,CAAC,IAAI,WAAE,KAAK,EAAE,GAAG;cACzB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;kBACtCA,MAAI,CAAC,WAAW,GAAG,KAAK,CAAC;kBACzB,OAAO,KAAK,CAAC;eACd;cAED,OAAO,IAAI,CAAC;WACb,CAAC,CAAC;OACJ;;MAGD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,CAAC,EAAE;UAChD,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;OACtB;;MAGD,IAAI,CAAC,SAAS,EAAE,CAAC;;MAGjB,OAAO,CAAC,EAAE,CACR,QAAQ,EACR,CAAC,CAAC,QAAQ,sBAAOA,MAAI,CAAC,oBAAoB,KAAE,EAAE,GAAG,CAAC,CACnD,CAAC;;MAGF,IAAI,CAAC,KAAK,CAAC,IAAI,WAAE,CAAC,EAAE,GAAG;UACrBA,MAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;OACxB,CAAC,CAAC;EACL,EAAC;EAED;;;;gBAIQ,kCAAW,IAAQ;MACzB,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,SAAS,CAAC;EAC7C,EAAC;EAED;;;;gBAIQ,sCAAa,GAAgB;;;MACnCH,IAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;;MAGpBA,IAAM,UAAU;;UAEd,IAAIG,MAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;cACzB,OAAO,KAAK,CAAC;WACd;UAEDA,MAAI,CAAC,WAAW,GAAGA,MAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;UACzCA,MAAI,CAAC,SAAS,EAAE,CAAC;OAClB,CAAC;;MAGF,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;;MAG7B,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,OAAO,EAAE;UACpC,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;OACnC;;MAGD,IAAI,CAAC,EAAE,CAAC,OAAO;UACb,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;cAChD,OAAO,KAAK,CAAC;WACd;OACF,CAAC,CAAC;EACL,EAAC;EAED;;;;;;gBAMQ,sCAAa,IAAW,EAAE,QAAY,EAAE,UAAe;iDAAL,GAAG;;MAC3D,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;EAC1D,EAAC;EAED;;;gBAGQ;;;MACN,IAAI,CAAC,KAAK,CAAC,IAAI,WAAE,KAAK,EAAE,GAAG;UACzBH,IAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;UACpBA,IAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;;UAGzC,IAAI,KAAK,KAAKG,MAAI,CAAC,WAAW,IAAI,CAACA,MAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;cACxD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;kBACrCA,MAAI,CAAC,YAAY,CAAC,QAAQ,EAAEA,MAAI,CAAC,QAAQ,EAAE;sBACzC,KAAK,EAAEA,MAAI,CAAC,WAAW;sBACvB,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;mBACvB,CAAC,CAAC;kBACHA,MAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;kBAEhC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;eAClC;cAED,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;cACnBA,MAAI,CAAC,oBAAoB,EAAE,CAAC;WAC7B;eAAM;cACL,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;cACpC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;WACpB;OACF,CAAC,CAAC;EACL,EAAC;EAED;;;gBAGQ;;MAEN,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,CAAC,EAAE;UAC3B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;cAClB,IAAI,EAAE,CAAC;cACP,KAAK,EAAE,CAAC;WACT,CAAC,CAAC;UAEH,OAAO;OACR;MAEDH,IAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;MAEnD,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;UAC/B,OAAO;OACR;MAEDA,IAAM,eAAe,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;MAE5C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;UAClB,IAAI,IACF,eAAe,CAAC,IAAI;cACpB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,UAAU;cAC3B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC,aACvC;UACJ,KAAK,IAAK,UAAU,CAAC,UAAU,WAAM;OACtC,CAAC,CAAC;EACL,EAAC;EAED;;;gBAGO;MACL,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,CAAC,EAAE;UAC3B,OAAO;OACR;MAED,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;UAC5C,IAAI,CAAC,WAAW,EAAE,CAAC;OACpB;WAAM,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;UAC5B,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;OACtB;MAED,IAAI,CAAC,SAAS,EAAE,CAAC;EACnB,EAAC;EAED;;;gBAGO;MACL,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,CAAC,EAAE;UAC3B,OAAO;OACR;MAED,IAAI,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE;UACxB,IAAI,CAAC,WAAW,EAAE,CAAC;OACpB;WAAM,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;UAC5B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;OAC1C;MAED,IAAI,CAAC,SAAS,EAAE,CAAC;EACnB,EAAC;EAED;;;;gBAIO,sBAAK,KAAsB;;;MAChC,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,CAAC,EAAE;UAC3B,OAAO;OACR;MAED,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;UACnB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;OAC1B;WAAM;UACL,IAAI,CAAC,KAAK,CAAC,IAAI,WAAE,CAAC,EAAE,GAAG;cACrB,IAAI,GAAG,CAAC,EAAE,KAAK,KAAK,EAAE;kBACpBG,MAAI,CAAC,WAAW,KAAK,CAAC,CAAC;kBACvB,OAAO,KAAK,CAAC;eACd;WACF,CAAC,CAAC;OACJ;MAED,IAAI,CAAC,SAAS,EAAE,CAAC;EACnB,EAAC;EAED;;;;gBAIO;;;MACLH,IAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;MAC5BA,IAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;MAC7CA,IAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;MACtCA,IAAM,cAAc,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;MAEtC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;UACpB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;UACtB,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;UACtB,IAAI,CAAC,oBAAoB,EAAE,CAAC;UAE5B,OAAO;OACR;;MAGD,QAAQ,CAAC,IAAI,WAAE,KAAK,EAAE,GAAG;;UAEvB,IAAI,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;cACnCG,MAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;cAEvB,IAAIA,MAAI,CAAC,WAAW,KAAK,CAAC,CAAC,EAAE;kBAC3BA,MAAI,CAAC,WAAW,GAAG,CAAC,CAAC;eACtB;mBAAM,IAAI,KAAK,IAAIA,MAAI,CAAC,WAAW,EAAE;kBACpCA,MAAI,CAAC,WAAW,EAAE,CAAC;eACpB;WACF;OACF,CAAC,CAAC;;MAGH,QAAQ,CAAC,IAAI,WAAE,KAAK,EAAE,GAAG;;UAEvB,IAAI,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;cACnC,IAAI,KAAK,GAAGA,MAAI,CAAC,WAAW,EAAE;kBAC5BA,MAAI,CAAC,WAAW,EAAE,CAAC;eACpB;mBAAM,IAAI,KAAK,KAAKA,MAAI,CAAC,WAAW,EAAE;kBACrCA,MAAI,CAAC,WAAW,GAAG,CAAC,CAAC;eACtB;WACF;OACF,CAAC,CAAC;MAEH,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;MAEtB,IAAI,CAAC,SAAS,EAAE,CAAC;EACnB,EACD;EAED,IAAI,CAAC,GAAG,GAAG,GAAG;;EC7WdH,IAAMO,YAAU,GAAG,UAAU,CAAC;EAE9B,CAAC;MACC,IAAI,CAAC,QAAQ,QAAKA,YAAU,SAAK;UAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,EAAEA,YAAU,CAAC,CAAC,CAAC;OACpD,CAAC,CAAC;EACL,CAAC,CAAC;;ECZF;;;;EAiEAP,IAAMM,iBAAe,GAAY;MAC/B,OAAO,EAAE,KAAK;MACd,KAAK,EAAE,KAAK;GACb,CAAC;EAEF,IAAM,MAAM,GA0BV,gBACE,QAAyD,EACzD,OAAqB;;0CAAF;;;;;MAnBd,YAAO,GAAY,MAAM,CAAC,EAAE,EAAEA,iBAAe,CAAC,CAAC;;;;MAK9C,YAAO,GAAG,KAAK,CAAC;MAgBtB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;MAEpC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;MAE9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YACvD,OAAO;YACP,MAAM,CAAC;MAEX,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE;UAC/C,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;OACvB;WAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE;UACrD,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;OACvB;WAAM,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;UAC3B,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;OACvB;WAAM;UACL,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;OACvB;;MAGD,OAAO,CAAC,EAAE,CACR,QAAQ,EACR,CAAC,CAAC,QAAQ;UACR,IAAIH,MAAI,CAAC,SAAS,EAAE,EAAE;;;cAGpB,IAAIA,MAAI,CAAC,OAAO,IAAI,CAACA,MAAI,CAAC,OAAO,CAAC,OAAO,EAAE;kBACzC,CAAC,CAAC,WAAW,EAAE,CAAC;kBAChBA,MAAI,CAAC,OAAO,GAAG,KAAK,CAAC;kBACrB,CAAC,CAAC,YAAY,EAAE,CAAC;eAClB;;cAGD,IAAI,CAACA,MAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE;kBAChDA,MAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;eACvB;WACF;eAAM,IAAI,CAACA,MAAI,CAAC,OAAO,IAAIA,MAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;;cAEnD,IAAIA,MAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE;kBAC9C,CAAC,CAAC,WAAW,EAAE,CAAC;kBAChBA,MAAI,CAAC,OAAO,GAAG,IAAI,CAAC;kBACpB,CAAC,CAAC,UAAU,EAAE,CAAC;kBAEf,CAAC,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,OAAO,uBAAQA,MAAI,CAAC,KAAK,KAAE,CAAC,CAAC;eACrD;mBAAM;kBACLA,MAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;eACvB;WACF;OACF,EAAE,GAAG,CAAC,CACR,CAAC;;MAGF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,WAAE,CAAC,EAAE,KAAK;UACtD,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,uBAAQA,MAAI,CAAC,KAAK,KAAE,CAAC,CAAC;OAC1C,CAAC,CAAC;MAEH,IAAI,CAAC,YAAY,EAAE,CAAC;EACtB,EAAC;EAED;;;mBAGQ;MACN,OAAO,OAAO,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC;EACjC,EAAC;EAED;;;mBAGQ;;MAENH,IAAM,IAAI,GAAG,IAAI,CAAC;;MAGlBC,IAAI,mBAA2C,CAAC;MAChDA,IAAI,WAAmB,CAAC;MACxBA,IAAI,WAAmB,CAAC;MACxBA,IAAI,WAAmB,CAAC;MACxBA,IAAI,OAAO,GAAiC,IAAI,CAAC;MACjDA,IAAI,YAAY,GAAG,KAAK,CAAC;MACzBD,IAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;;MAGxBA,IAAM,cAAc,GAAG,EAAE,CAAC;MAE1B,SAAS,WAAW,CAAC,UAAkB;UACrCA,IAAM,sBAAsB,GAAG,IAAI,CAAC,QAAQ,KAAK,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;UAClEA,IAAM,YAAY,GAAG,gBACnB,CAAC,CAAC,GAAG,sBAAsB,GAAG,WAChC,uBAAoB,CAAC;UACrBA,IAAM,aAAa,GAAG,qBAAqB,CAAC;UAE5C,IAAI,CAAC,QAAQ,CAAC,GAAG,CACf,SAAS,mBACK,YAAY,sBAAiB,aAAa,QACzD,CAAC;OACH;MAED,SAAS,aAAa;UACpB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC;UACtC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,GAAG,EAAE,CAAC;UAC5C,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC;UACvC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,GAAG,EAAE,CAAC;OAC9C;MAED,SAAS,gBAAgB;UACvB,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC;OACnC;MAED,SAAS,aAAa,CAAC,QAAgB;UACrC,OAAO,IAAI,CAAC,GAAG,CACb,IAAI,CAAC,GAAG,CACN,OAAO,KAAK,SAAS;gBACjB,WAAW,GAAG,QAAQ;gBACtB,gBAAgB,EAAE,GAAG,WAAW,GAAG,QAAQ,EAC/C,CAAC,CACF,EACD,gBAAgB,EAAE,CACnB,CAAC;OACH;MAED,SAAS,cAAc,CAAC,KAAa;UACnC,IAAI,OAAO,EAAE;cACXC,IAAI,MAAM,GAAI,KAAoB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;cAC3D,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE;kBAC7B,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC;eACjC;cAEDD,IAAM,cAAc,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,gBAAgB,EAAE,CAAC;cAElE,YAAY,GAAG,KAAK,CAAC;cACrBA,IAAM,YAAY,GAAG,OAAO,CAAC;cAC7B,OAAO,GAAG,IAAI,CAAC;cAEf,IAAI,YAAY,KAAK,SAAS,EAAE;kBAC9B,IAAI,cAAc,GAAG,IAAI,EAAE;sBACzB,aAAa,EAAE,CAAC;sBAChB,IAAI,CAAC,IAAI,EAAE,CAAC;mBACb;uBAAM;sBACL,aAAa,EAAE,CAAC;mBACjB;eACF;mBAAM;kBACL,IAAI,cAAc,GAAG,IAAI,EAAE;sBACzB,aAAa,EAAE,CAAC;sBAChB,IAAI,CAAC,KAAK,EAAE,CAAC;mBACd;uBAAM;sBACL,aAAa,EAAE,CAAC;mBACjB;eACF;cAED,CAAC,CAAC,YAAY,EAAE,CAAC;WAClB;eAAM;cACL,YAAY,GAAG,KAAK,CAAC;WACtB;UAED,KAAK,CAAC,GAAG,CAAC;;cAER,SAAS,EAAE,eAAe;cAC1B,QAAQ,EAAE,cAAc;;cAExB,WAAW,EAAE,eAAe;WAC7B,CAAC,CAAC;OACJ;MAED,SAAS,eAAe,CAAC,KAAY;UACnCC,IAAI,MAAM,GAAI,KAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;UACpD,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE;cAC7B,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC;WACjC;UAEDD,IAAM,MAAM,GAAI,KAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;UAEtD,IAAI,OAAO,EAAE;cACX,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;WACpC;eAAM,IAAI,YAAY,EAAE;cACvBA,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC;cAC7CA,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC;cAC7CA,IAAM,SAAS,GAAG,CAAC,CAAC;cAEpB,IAAI,KAAK,GAAG,SAAS,IAAI,KAAK,IAAI,SAAS,EAAE;kBAC3C,WAAW,GAAG,MAAM,CAAC;kBACrB,OAAO,GAAG,IAAI,CAAC,KAAK,KAAK,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;kBAC1D,CAAC,CAAC,UAAU,EAAE,CAAC;kBACf,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;eACpC;mBAAM,IAAI,KAAK,IAAI,SAAS,IAAI,KAAK,GAAG,SAAS,EAAE;kBAClD,cAAc,EAAE,CAAC;eAClB;WACF;OACF;MAED,SAAS,gBAAgB,CAAC,KAAY;UACpC,WAAW,GAAI,KAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;UACrD,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE;cAC7B,WAAW,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,WAAW,CAAC;WAC3C;UAED,WAAW,GAAI,KAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;UAErD,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;cAC3B,IACE,WAAW,GAAG,cAAc;kBAC5B,mBAAmB,KAAK,gBAAgB,EACxC;kBACA,OAAO;eACR;WACF;UAED,YAAY,GAAG,IAAI,CAAC;UAEpB,KAAK,CAAC,EAAE,CAAC;cACP,SAAS,EAAE,eAAe;cAC1B,QAAQ,EAAE,cAAc;cACxB,WAAW,EAAE,eAAe;WAC7B,CAAC,CAAC;OACJ;MAED,SAAS,mBAAmB;UAC1B,IAAI,CAAC,mBAAmB,EAAE;cACxB,KAAK,CAAC,EAAE,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;cACzC,mBAAmB,GAAG,gBAAgB,CAAC;WACxC;OACF;MAED,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;UACtB,mBAAmB,EAAE,CAAC;OACvB;EACH,EAAC;EAED;;;;mBAIQ,sCAAa,IAAW;MAC9B,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;EACtD,EAAC;EAED;;;mBAGQ;MACN,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE;UAC9C,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;UACtB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;OAC7B;WAAM;UACL,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;UACtB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;OAC7B;EACH,EAAC;EAED;;;mBAGQ;MACN,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC;EAC7D,EAAC;EAED;;;mBAGO;;;MACL,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;UACjB,OAAO;OACR;MAED,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;MACvB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;MAE1B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;UACzB,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,yBAAqB,IAAI,CAAC,WAAW,CAAC;OACzD;MAED,IAAI,CAAC,QAAQ;WACV,WAAW,CAAC,mBAAmB,CAAC;WAChC,QAAQ,CAAC,kBAAkB,CAAC;WAC5B,aAAa,sBAAOG,MAAI,CAAC,aAAa,KAAE,CAAC,CAAC;MAE7C,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;UAC7C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;UACpB,CAAC,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,OAAO,uBAAQA,MAAI,CAAC,KAAK,KAAE,CAAC,CAAC;UACjD,CAAC,CAAC,UAAU,EAAE,CAAC;OAChB;EACH,EAAC;EAED;;;mBAGO;;;MACL,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;UAClB,OAAO;OACR;MAED,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;MACvB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;MAE3B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;UACzB,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,yBAAqB,IAAI,CAAC,WAAW,CAAC;OAC5D;MAED,IAAI,CAAC,QAAQ;WACV,QAAQ,CAAC,mBAAmB,CAAC;WAC7B,WAAW,CAAC,kBAAkB,CAAC;WAC/B,aAAa,sBAAOA,MAAI,CAAC,aAAa,KAAE,CAAC,CAAC;MAE7C,IAAI,IAAI,CAAC,OAAO,EAAE;UAChB,CAAC,CAAC,WAAW,EAAE,CAAC;UAChB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;UACrB,CAAC,CAAC,YAAY,EAAE,CAAC;OAClB;EACH,EAAC;EAED;;;mBAGO;MACL,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;EAC7C,EAAC;EAED;;;mBAGO;MACL,OAAO,IAAI,CAAC,KAAK,CAAC;EACpB,EACD;EAED,IAAI,CAAC,MAAM,GAAG,MAAM;;EChapBH,IAAMO,YAAU,GAAG,aAAa,CAAC;EAQjC,CAAC;MACC,IAAI,CAAC,QAAQ,QAAKA,YAAU,SAAK;UAC/BP,IAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;UACzBA,IAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAEO,YAAU,CAAY,CAAC;UAC1DP,IAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;;UAEhC,OAAO,OAAO,CAAC,MAAM,CAAC;UAEtBA,IAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;UACpCA,IAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;UAEnD,QAAQ,CAAC,EAAE,CAAC,OAAO,uBAAQ,QAAQ,CAAC,MAAM,KAAE,CAAC,CAAC;OAC/C,CAAC,CAAC;EACL,CAAC,CAAC;;ECxBFA,IAAM,SAAS,GAAwB,EAAE,CAAC;EAe1C,SAAS,KAAK,CAAC,IAAY,EAAE,IAAW;MACtC,IAAI,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE;UAChC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;OACtB;MAED,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE;UACrB,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC;OACxB;MAED,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;EAC7B,CAAC;EAED;;;;EAIA,SAAS,OAAO,CAAC,IAAY;MAC3B,IAAI,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE;UAChC,OAAO;OACR;MAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE;UAC3B,OAAO;OACR;MAEDA,IAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,EAAG,CAAC;MAEtC,IAAI,EAAE,CAAC;EACT;;ECuBAA,IAAMM,iBAAe,GAAY;MAC/B,OAAO,EAAE,IAAI;MACb,OAAO,EAAE,IAAI;MACb,KAAK,EAAE,KAAK;MACZ,UAAU,EAAE,IAAI;MAChB,aAAa,EAAE,IAAI;MACnB,cAAc,EAAE,IAAI;MACpB,eAAe,EAAE,KAAK;GACvB,CAAC;EAEF;;;EAGAL,IAAI,WAAW,GAAkB,IAAI,CAAC;EAEtC;;;EAGAD,IAAM,SAAS,GAAG,cAAc,CAAC;EAEjC;;;EAGAC,IAAI,YAAY,GAAG,KAAK,CAAC;EAEzB;;;EAGAA,IAAI,QAAmB,CAAC;EAExB,IAAM,MAAM,GAqBV,gBACE,QAAyD,EACzD,OAAqB;;0CAAF;;;;;MAdd,YAAO,GAAY,MAAM,CAAC,EAAE,EAAEK,iBAAe,CAAC,CAAC;;;;MAK/C,UAAK,GAAU,QAAQ,CAAC;;;;MAKvB,WAAM,GAAG,KAAK,CAAC;MAMrB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;;MAGpC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;UAC9C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;UACnB,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;OACjC;MAED,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;;MAG9B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC,IAAI,WAAE,CAAC,EAAE,MAAM;UACxD,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO;cAClBH,MAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;cAE5B,IAAIA,MAAI,CAAC,OAAO,CAAC,aAAa,EAAE;kBAC9BA,MAAI,CAAC,KAAK,EAAE,CAAC;eACd;WACF,CAAC,CAAC;OACJ,CAAC,CAAC;;MAGH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,IAAI,WAAE,CAAC,EAAE,OAAO;UAC1D,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,OAAO;cACnBA,MAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;cAE7B,IAAIA,MAAI,CAAC,OAAO,CAAC,cAAc,EAAE;kBAC/BA,MAAI,CAAC,KAAK,EAAE,CAAC;eACd;WACF,CAAC,CAAC;OACJ,CAAC,CAAC;;MAGH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,IAAI,WAAE,CAAC,EAAE,KAAK;UACtD,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,uBAAQA,MAAI,CAAC,KAAK,KAAE,CAAC,CAAC;OAC1C,CAAC,CAAC;EACL,EAAC;EAED;;;;mBAIQ,sCAAa,IAAW;MAC9B,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;EACtD,EAAC;EAED;;;mBAGQ;MACN,IAAI,CAAC,WAAW,EAAE;UAChB,OAAO;OACR;MAEDH,IAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;MACtCA,IAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;MACvDA,IAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;MAC3DA,IAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;;MAG3D,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;MACpB,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;MAEpBA,IAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;MACxC,QAAQ,CAAC,GAAG,CAAC;UACX,GAAG,IAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,aAAa,IAAI,UAAK;UAClD,MAAM,GAAK,aAAa,QAAI;OAC7B,CAAC,CAAC;;MAGH,QAAQ,CAAC,WAAW,CAClB,aAAa;WACV,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;WAC1B,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAChC,CAAC;EACJ,EAAC;EAED;;;mBAGQ;MACN,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE;UAChE,WAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;OAC1B;EACH,EAAC;EAED;;;;mBAIQ,sCAAa,KAAY;MAC/B,IACE,CAAC,CAAC,KAAK,CAAC,MAAqB,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;UACvD,WAAW,EACX;UACA,WAAW,CAAC,KAAK,EAAE,CAAC;OACrB;EACH,EAAC;EAED;;;mBAGQ;MACN,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE;UAC9C,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;UACtB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;OAC7B;WAAM;UACL,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;UACtB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;UAC5B,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;;UAGrB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,IAAI,YAAY,EAAE;cAC5D,CAAC,CAAC,YAAY,EAAE,CAAC;cACjB,YAAY,GAAG,KAAK,CAAC;WACtB;UAED,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;UAEtD,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE;cAChC,IAAI,CAAC,OAAO,EAAE,CAAC;WAChB;OACF;EACH,EAAC;EAED;;;mBAGQ;;;MACN,WAAW,GAAG,IAAI,CAAC;MAEnB,IAAI,CAAC,YAAY,EAAE;UACjB,CAAC,CAAC,UAAU,EAAE,CAAC;UACf,YAAY,GAAG,IAAI,CAAC;OACrB;MAED,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;MACrB,IAAI,CAAC,QAAQ,EAAE,CAAC;MAEhB,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;;MAGrD,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;MACvB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;MAC1B,IAAI,CAAC,QAAQ;WACV,QAAQ,CAAC,kBAAkB,CAAC;WAC5B,aAAa,sBAAOG,MAAI,CAAC,aAAa,KAAE,CAAC,CAAC;;MAG7C,IAAI,CAAC,QAAQ,EAAE;UACb,QAAQ,GAAG,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;OAChC;;MAGD,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;UACtB,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;OAC1C;WAAM;UACL,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;OACzC;;MAGD,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;MAEvD,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;;;UAGxBF,IAAI,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;UAC7C,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE;cACpC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;WAC9C;;UAGD,IAAI,IAAI,EAAE;cACR,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,KAAG,QACxB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IACjC,gBAAa,CAAC;WACf;eAAM;cACL,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,aAAa,CAAC;WACtC;UAED,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;OAChD;EACH,EAAC;EAED;;;mBAGQ;MACN,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC;EAC7D,EAAC;EAED;;;mBAGO;;;MACL,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;UACjB,OAAO;OACR;;MAGD,IACE,CAAC,WAAW;WACT,WAAW,CAAC,KAAK,KAAK,SAAS,IAAI,WAAW,CAAC,KAAK,KAAK,QAAQ,CAAC;UACrE,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,EACvB;UACA,KAAK,CAAC,SAAS,uBAAQE,MAAI,CAAC,MAAM,KAAE,CAAC,CAAC;UAEtC,OAAO;OACR;MAED,IAAI,CAAC,MAAM,EAAE,CAAC;EAChB,EAAC;EAED;;;mBAGO,wBAAM,WAAmB;;mDAAR,GAAG;;;;;;;MAOzB,UAAU;UACR,IAAI,CAACA,MAAI,CAAC,MAAM,EAAE,EAAE;cAClB,OAAO;WACR;UAED,WAAW,GAAG,IAAI,CAAC;UAEnBA,MAAI,CAAC,KAAK,GAAG,SAAS,CAAC;UACvBA,MAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;;UAG3B,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,IAAI,QAAQ,EAAE;cACxC,CAAC,CAAC,WAAW,EAAE,CAAC;cAChB,QAAQ,GAAG,IAAI,CAAC;;cAGhB,CAAC,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;WACzC;UAEDA,MAAI,CAAC,QAAQ;eACV,WAAW,CAAC,kBAAkB,CAAC;eAC/B,aAAa,sBAAOA,MAAI,CAAC,aAAa,KAAE,CAAC,CAAC;UAE7C,IAAIA,MAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE;cACpD,IAAI,CAAC,WAAW,EAAE;kBAChB,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;eACvB;cAED,OAAO,CAAC,GAAG,CAAC,YAAY,EAAEA,MAAI,CAAC,eAAe,CAAC,CAAC;WACjD;;;UAID,UAAU;cACR,OAAO,CAAC,SAAS,CAAC,CAAC;WACpB,EAAE,GAAG,CAAC,CAAC;OACT,CAAC,CAAC;EACL,EAAC;EAED;;;mBAGO;MACL,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;EAC7C,EAAC;EAED;;;mBAGO;MACL,OAAO,IAAI,CAAC,KAAK,CAAC;EACpB,EAAC;EAED;;;mBAGO;MACL,IAAI,IAAI,CAAC,MAAM,EAAE;UACf,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;OACxB;MAED,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE;UAC5C,IAAI,QAAQ,EAAE;cACZ,CAAC,CAAC,WAAW,EAAE,CAAC;cAChB,QAAQ,GAAG,IAAI,CAAC;WACjB;UAED,IAAI,YAAY,EAAE;cAChB,CAAC,CAAC,YAAY,EAAE,CAAC;cACjB,YAAY,GAAG,KAAK,CAAC;WACtB;OACF;EACH,EAAC;EAED;;;mBAGO;MACL,IAAI,CAAC,QAAQ,EAAE,CAAC;EAClB;;ECjZF;EACA,SAAS,CAAC,EAAE,CAAC,SAAS,YAAG,KAAY;MACnC,IACE,WAAW;UACX,WAAW,CAAC,OAAO,CAAC,UAAU;UAC9B,WAAW,CAAC,KAAK,KAAK,QAAQ;UAC7B,KAAuB,CAAC,OAAO,KAAK,EAAE,EACvC;UACA,WAAW,CAAC,KAAK,EAAE,CAAC;OACrB;EACH,CAAC,CAAC,CAAC;EAEH,IAAI,CAAC,MAAM,GAAG,MAAM;;EC9BpBH,IAAMO,YAAU,GAAG,aAAa,CAAC;EACjCP,IAAMQ,UAAQ,GAAG,cAAc,CAAC;EAahC,CAAC;MACC,SAAS,CAAC,EAAE,CAAC,OAAO,SAAMD,YAAU,SAAK;UACvCP,IAAM,OAAO,GAAG,YAAY,CAAC,IAAmB,EAAEO,YAAU,CAAY,CAAC;UACzEP,IAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;;UAEhC,OAAO,OAAO,CAAC,MAAM,CAAC;UAEtBA,IAAM,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;UACpCC,IAAI,QAAQ,GAAG,OAAO,CAAC,IAAI,CAACO,UAAQ,CAAC,CAAC;UAEtC,IAAI,CAAC,QAAQ,EAAE;cACb,QAAQ,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;cAC7C,OAAO,CAAC,IAAI,CAACA,UAAQ,EAAE,QAAQ,CAAC,CAAC;WAClC;UAED,QAAQ,CAAC,IAAI,EAAE,CAAC;OACjB,CAAC,CAAC;EACL,CAAC,CAAC;;EC0EFR,IAAM,cAAc,GAAW;MAC7B,IAAI,EAAE,EAAE;MACR,IAAI,EAAE,KAAK;MACX,KAAK,EAAE,IAAI;;MAEX,OAAO,iBAAU;GAClB,CAAC;EAEFA,IAAMM,iBAAe,GAAY;MAC/B,KAAK,EAAE,EAAE;MACT,OAAO,EAAE,EAAE;MACX,OAAO,EAAE,EAAE;MACX,cAAc,EAAE,KAAK;MACrB,QAAQ,EAAE,EAAE;MACZ,OAAO,EAAE,IAAI;MACb,OAAO,EAAE,IAAI;MACb,KAAK,EAAE,KAAK;MACZ,UAAU,EAAE,IAAI;MAChB,eAAe,EAAE,IAAI;;MAErB,MAAM,iBAAU;;MAEhB,QAAQ,iBAAU;;MAElB,OAAO,iBAAU;;MAEjB,QAAQ,iBAAU;GACnB,CAAC;EAEF,IAAI,CAAC,MAAM,GAAG,UAAU,OAAgB;;;MAEtC,OAAO,GAAG,MAAM,CAAC,EAAE,EAAEA,iBAAe,EAAE,OAAO,CAAC,CAAC;MAE/C,IAAI,CAAC,OAAO,CAAC,OAAQ,YAAG,CAAC,EAAE,MAAM;UAC/B,OAAO,CAAC,OAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,EAAE,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;OAC1D,CAAC,CAAC;;MAGHL,IAAI,WAAW,GAAG,EAAE,CAAC;MACrB,UAAI,OAAO,CAAC,OAAO,0CAAE,MAAM,EAAE;UAC3B,WAAW,GAAG,sCACZ,OAAO,CAAC,cAAc,GAAG,8BAA8B,GAAG,GAC5D,QAAI,CAAC;UAEL,IAAI,CAAC,OAAO,CAAC,OAAO,YAAG,CAAC,EAAE,MAAM;cAC9B,WAAW;kBACT,+BAA+B;sBAC/B,2DACE,MAAM,CAAC,IAAI,GAAG,eAAe,GAAG,GAClC,YAAK,MAAM,CAAC,KAAI,SAAM,CAAC;WAC1B,CAAC,CAAC;UAEH,WAAW,IAAI,QAAQ,CAAC;OACzB;;MAGDD,IAAM,IAAI,GACR,+BAA2B,OAAO,CAAC,SAAQ,QAAI;WAC9C,OAAO,CAAC,KAAK;wDACwB,OAAO,CAAC,MAAK;gBAC/C,EAAE,CAAC;WACN,OAAO,CAAC,OAAO;0DACwB,OAAO,CAAC,QAAO;gBACnD,EAAE,CAAC;UACP,WAAW;UACX,QAAQ,CAAC;;MAGXA,IAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;UACrC,OAAO,EAAE,OAAO,CAAC,OAAO;UACxB,OAAO,EAAE,OAAO,CAAC,OAAO;UACxB,KAAK,EAAE,OAAO,CAAC,KAAK;UACpB,UAAU,EAAE,OAAO,CAAC,UAAU;UAC9B,eAAe,EAAE,OAAO,CAAC,eAAe;OACzC,CAAC,CAAC;;MAGH,UAAI,OAAO,CAAC,OAAO,0CAAE,MAAM,EAAE;UAC3B,QAAQ,CAAC,QAAQ;eACd,IAAI,CAAC,gCAAgC,CAAC;eACtC,IAAI,WAAE,KAAK,EAAE,MAAM;cAClB,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO;kBAClB,OAAO,CAAC,OAAQ,CAAC,KAAK,CAAC,CAAC,OAAQ,CAAC,QAAQ,CAAC,CAAC;kBAE3C,IAAI,OAAO,CAAC,OAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE;sBACjC,QAAQ,CAAC,KAAK,EAAE,CAAC;mBAClB;eACF,CAAC,CAAC;WACJ,CAAC,CAAC;OACN;;MAGD,QAAQ,CAAC,QAAQ;WACd,EAAE,CAAC,kBAAkB;UACpB,OAAO,CAAC,MAAO,CAAC,QAAQ,CAAC,CAAC;OAC3B,CAAC;WACD,EAAE,CAAC,oBAAoB;UACtB,OAAO,CAAC,QAAS,CAAC,QAAQ,CAAC,CAAC;OAC7B,CAAC;WACD,EAAE,CAAC,mBAAmB;UACrB,OAAO,CAAC,OAAQ,CAAC,QAAQ,CAAC,CAAC;OAC5B,CAAC;WACD,EAAE,CAAC,oBAAoB;UACtB,OAAO,CAAC,QAAS,CAAC,QAAQ,CAAC,CAAC;OAC7B,CAAC,CAAC;MAEL,QAAQ,CAAC,IAAI,EAAE,CAAC;MAEhB,OAAO,QAAQ,CAAC;EAClB,CAAC;;EChKDA,IAAMM,iBAAe,GAAY;MAC/B,WAAW,EAAE,IAAI;MACjB,OAAO,EAAE,IAAI;MACb,KAAK,EAAE,KAAK;MACZ,UAAU,EAAE,IAAI;MAChB,cAAc,EAAE,IAAI;GACrB,CAAC;EAEF,IAAI,CAAC,KAAK,GAAG,UACX,IAAY,EACZ,KAAW,EACX,SAAe,EACf,OAAa;MAEb,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE;UACrB,OAAO,GAAG,SAAS,CAAC;UACpB,SAAS,GAAG,KAAK,CAAC;UAClB,KAAK,GAAG,EAAE,CAAC;OACZ;MAED,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE;;UAE1B,SAAS,kBAAiB,CAAC;OAC5B;MAED,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE;UACxB,OAAO,GAAG,EAAE,CAAC;OACd;MAED,OAAO,GAAG,MAAM,CAAC,EAAE,EAAEA,iBAAe,EAAE,OAAO,CAAC,CAAC;MAE/C,OAAO,IAAI,CAAC,MAAM,CAAC;UACjB,KAAK,EAAE,KAAK;UACZ,OAAO,EAAE,IAAI;UACb,OAAO,EAAE;cACP;kBACE,IAAI,EAAE,OAAO,CAAC,WAAW;kBACzB,IAAI,EAAE,KAAK;kBACX,KAAK,EAAE,OAAO,CAAC,cAAc;kBAC7B,OAAO,EAAE,SAAS;eACnB,EACF;UACD,QAAQ,EAAE,mBAAmB;UAC7B,OAAO,EAAE,OAAO,CAAC,OAAO;UACxB,KAAK,EAAE,OAAO,CAAC,KAAK;UACpB,UAAU,EAAE,OAAO,CAAC,UAAU;OAC/B,CAAC,CAAC;EACL,CAAC;;ECjCDN,IAAMM,iBAAe,GAAY;MAC/B,WAAW,EAAE,IAAI;MACjB,UAAU,EAAE,QAAQ;MACpB,OAAO,EAAE,IAAI;MACb,KAAK,EAAE,KAAK;MACZ,UAAU,EAAE,IAAI;MAChB,aAAa,EAAE,IAAI;MACnB,cAAc,EAAE,IAAI;GACrB,CAAC;EAEF,IAAI,CAAC,OAAO,GAAG,UACb,IAAY,EACZ,KAAW,EACX,SAAe,EACf,QAAc,EACd,OAAa;MAEb,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE;UACrB,OAAO,GAAG,QAAQ,CAAC;UACnB,QAAQ,GAAG,SAAS,CAAC;UACrB,SAAS,GAAG,KAAK,CAAC;UAClB,KAAK,GAAG,EAAE,CAAC;OACZ;MAED,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE;;UAE1B,SAAS,kBAAiB,CAAC;OAC5B;MAED,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE;;UAEzB,QAAQ,kBAAiB,CAAC;OAC3B;MAED,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE;UACxB,OAAO,GAAG,EAAE,CAAC;OACd;MAED,OAAO,GAAG,MAAM,CAAC,EAAE,EAAEA,iBAAe,EAAE,OAAO,CAAC,CAAC;MAE/C,OAAO,IAAI,CAAC,MAAM,CAAC;UACjB,KAAK,EAAE,KAAK;UACZ,OAAO,EAAE,IAAI;UACb,OAAO,EAAE;cACP;kBACE,IAAI,EAAE,OAAO,CAAC,UAAU;kBACxB,IAAI,EAAE,KAAK;kBACX,KAAK,EAAE,OAAO,CAAC,aAAa;kBAC5B,OAAO,EAAE,QAAQ;eAClB;cACD;kBACE,IAAI,EAAE,OAAO,CAAC,WAAW;kBACzB,IAAI,EAAE,KAAK;kBACX,KAAK,EAAE,OAAO,CAAC,cAAc;kBAC7B,OAAO,EAAE,SAAS;eACnB,EACF;UACD,QAAQ,EAAE,qBAAqB;UAC/B,OAAO,EAAE,OAAO,CAAC,OAAO;UACxB,KAAK,EAAE,OAAO,CAAC,KAAK;UACpB,UAAU,EAAE,OAAO,CAAC,UAAU;OAC/B,CAAC,CAAC;EACL,CAAC;;ECtCDN,IAAMM,iBAAe,GAAY;MAC/B,WAAW,EAAE,IAAI;MACjB,UAAU,EAAE,QAAQ;MACpB,OAAO,EAAE,IAAI;MACb,KAAK,EAAE,KAAK;MACZ,UAAU,EAAE,IAAI;MAChB,aAAa,EAAE,IAAI;MACnB,cAAc,EAAE,IAAI;MACpB,IAAI,EAAE,MAAM;MACZ,SAAS,EAAE,CAAC;MACZ,YAAY,EAAE,EAAE;MAChB,cAAc,EAAE,KAAK;GACtB,CAAC;EAEF,IAAI,CAAC,MAAM,GAAG,UACZ,KAAa,EACb,KAAW,EACX,SAAe,EACf,QAAc,EACd,OAAa;MAEb,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE;UACrB,OAAO,GAAG,QAAQ,CAAC;UACnB,QAAQ,GAAG,SAAS,CAAC;UACrB,SAAS,GAAG,KAAK,CAAC;UAClB,KAAK,GAAG,EAAE,CAAC;OACZ;MAED,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE;;UAE1B,SAAS,kBAAiB,CAAC;OAC5B;MAED,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE;;UAEzB,QAAQ,kBAAiB,CAAC;OAC3B;MAED,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE;UACxB,OAAO,GAAG,EAAE,CAAC;OACd;MAED,OAAO,GAAG,MAAM,CAAC,EAAE,EAAEA,iBAAe,EAAE,OAAO,CAAC,CAAC;MAE/CN,IAAM,OAAO,GACX,8BAA8B;WAC7B,KAAK,+CAA0C,KAAK,iBAAa,EAAE,CAAC;WACpE,OAAO,CAAC,IAAI,KAAK,MAAM;mFAElB,OAAO,CAAC,aACV,YACE,OAAO,CAAC,SAAS,GAAG,aAAa,GAAG,OAAO,CAAC,SAAS,GAAG,GAAG,GAAG,GAChE;gBACA,EAAE,CAAC;WACN,OAAO,CAAC,IAAI,KAAK,UAAU;gEAEtB,OAAO,CAAC,SAAS,GAAG,aAAa,GAAG,OAAO,CAAC,SAAS,GAAG,GAAG,GAAG,GAChE,UAAI,OAAO,CAAC,aAAY;gBACxB,EAAE,CAAC;UACP,QAAQ,CAAC;MAEXA,IAAM,aAAa,aAAI,MAAc;UACnCA,IAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,GAAG,EAAE,CAAC;UAClE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;OACzB,CAAC;MAEFA,IAAM,cAAc,aAAI,MAAc;UACpCA,IAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,GAAG,EAAE,CAAC;UAClE,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;OAC1B,CAAC;MAEF,OAAO,IAAI,CAAC,MAAM,CAAC;iBACjB,KAAK;mBACL,OAAO;UACP,OAAO,EAAE;cACP;kBACE,IAAI,EAAE,OAAO,CAAC,UAAU;kBACxB,IAAI,EAAE,KAAK;kBACX,KAAK,EAAE,OAAO,CAAC,aAAa;kBAC5B,OAAO,EAAE,aAAa;eACvB;cACD;kBACE,IAAI,EAAE,OAAO,CAAC,WAAW;kBACzB,IAAI,EAAE,KAAK;kBACX,KAAK,EAAE,OAAO,CAAC,cAAc;kBAC7B,OAAO,EAAE,cAAc;eACxB,EACF;UACD,QAAQ,EAAE,oBAAoB;UAC9B,OAAO,EAAE,OAAO,CAAC,OAAO;UACxB,KAAK,EAAE,OAAO,CAAC,KAAK;UACpB,UAAU,EAAE,OAAO,CAAC,UAAU;UAC9B,MAAM,YAAG,MAAM;;cAEbA,IAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;cAC7D,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;;cAG9B,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;;cAGlB,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,CAAC,cAAc,KAAK,IAAI,EAAE;kBAClE,MAAM,CAAC,EAAE,CAAC,SAAS,YAAG,KAAK;sBACzB,IAAK,KAAuB,CAAC,OAAO,KAAK,EAAE,EAAE;0BAC3CA,IAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,GAAG,EAAE,CAAC;0BAClE,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;0BAEzB,IAAI,OAAO,CAAC,cAAc,EAAE;8BAC1B,MAAM,CAAC,KAAK,EAAE,CAAC;2BAChB;0BAED,OAAO,KAAK,CAAC;uBACd;sBAED,OAAO;mBACR,CAAC,CAAC;eACJ;;cAGD,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE;kBAC/B,MAAM,CAAC,EAAE,CAAC,OAAO,uBAAQ,MAAM,CAAC,YAAY,KAAE,CAAC,CAAC;eACjD;;cAGD,IAAI,OAAO,CAAC,SAAS,EAAE;kBACrB,MAAM,CAAC,YAAY,EAAE,CAAC;eACvB;WACF;OACF,CAAC,CAAC;EACL,CAAC;;ECjKDA,IAAMM,iBAAe,GAAY;MAC/B,QAAQ,EAAE,MAAM;MAChB,KAAK,EAAE,CAAC;MACR,OAAO,EAAE,EAAE;GACZ,CAAC;EAEF,IAAM,OAAO,GA0BX,iBACE,QAAyD,EACzD,OAAqB;0CAAF;;;;;MAdd,YAAO,GAAY,MAAM,CAAC,EAAE,EAAEA,iBAAe,CAAC,CAAC;;;;MAK9C,UAAK,GAAU,QAAQ,CAAC;;;;MAKxB,cAAS,GAAQ,IAAI,CAAC;MAM5B,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,CAAC;MAEnC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;;MAG9B,IAAI,CAAC,QAAQ,GAAG,CAAC,yCACkB,CAAC,CAAC,IAAI,GAAE,YACvC,IAAI,CAAC,OAAO,CAAC,QACf,aACD,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;;;MAI1BN,IAAM,IAAI,GAAG,IAAI,CAAC;MAClB,IAAI,CAAC,OAAO;WACT,EAAE,CAAC,uBAAuB,EAAE,UAAU,KAAK;UAC1C,IAAI,IAAI,CAAC,UAAU,CAAC,IAAmB,CAAC,EAAE;cACxC,OAAO;WACR;UAED,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;cACnB,OAAO;WACR;UAED,QAAQ,CAAC,KAAK,CAAC,CAAC;UAEhB,IAAI,CAAC,IAAI,EAAE,CAAC;OACb,CAAC;WACD,EAAE,CAAC,qBAAqB,EAAE,UAAU,KAAK;UACxC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAmB,CAAC,EAAE;cACxC,OAAO;WACR;UAED,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;cACnB,OAAO;WACR;UAED,IAAI,CAAC,KAAK,EAAE,CAAC;OACd,CAAC;WACD,EAAE,CAAC,WAAW,EAAE,UAAU,KAAK;UAC9B,IAAI,IAAI,CAAC,UAAU,CAAC,IAAmB,CAAC,EAAE;cACxC,OAAO;WACR;UAED,QAAQ,CAAC,KAAK,CAAC,CAAC;OACjB,CAAC,CAAC;EACP,EAAC;EAED;;;;oBAIQ,kCAAW,OAAoB;MACrC,QACG,OAA4B,CAAC,QAAQ;UACtC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,SAAS,EACzC;EACJ,EAAC;EAED;;;oBAGQ;MACN,OAAO,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC;EAChC,EAAC;EAED;;;oBAGQ;MACNC,IAAI,UAAkB,CAAC;MACvBA,IAAI,SAAiB,CAAC;;MAGtBD,IAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC;;MAG5DA,IAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;;MAGhDA,IAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;MAClDA,IAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;;MAGpDC,IAAI,QAAQ,GAAa,IAAI,CAAC,OAAO,CAAC,QAAS,CAAC;;MAGhD,IAAI,QAAQ,KAAK,MAAM,EAAE;UACvB,IACE,WAAW,CAAC,GAAG;cACb,WAAW,CAAC,MAAM;cAClB,YAAY;cACZ,aAAa;cACb,CAAC;cACH,OAAO,CAAC,MAAM,EAAE,EAChB;cACA,QAAQ,GAAG,QAAQ,CAAC;WACrB;eAAM,IAAI,YAAY,GAAG,aAAa,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE;cAC7D,QAAQ,GAAG,KAAK,CAAC;WAClB;eAAM,IAAI,YAAY,GAAG,YAAY,GAAG,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE;cAC7D,QAAQ,GAAG,MAAM,CAAC;WACnB;eAAM,IACL,WAAW,CAAC,KAAK,GAAG,YAAY,GAAG,YAAY,GAAG,CAAC;cACnD,OAAO,CAAC,KAAK,EAAE,GAAG,WAAW,CAAC,IAAI,EAClC;cACA,QAAQ,GAAG,OAAO,CAAC;WACpB;eAAM;cACL,QAAQ,GAAG,QAAQ,CAAC;WACrB;OACF;;MAGD,QAAQ,QAAQ;UACd,KAAK,QAAQ;cACX,UAAU,GAAG,CAAC,CAAC,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC;cACrC,SAAS,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,GAAG,YAAY,CAAC;cAClD,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;cAC5C,MAAM;UAER,KAAK,KAAK;cACR,UAAU,GAAG,CAAC,CAAC,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC;cACrC,SAAS;kBACP,CAAC,CAAC,IAAI,aAAa,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;cAC/D,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;cAC/C,MAAM;UAER,KAAK,MAAM;cACT,UAAU,GAAG,CAAC,CAAC,IAAI,YAAY,GAAG,WAAW,CAAC,KAAK,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;cACxE,SAAS,GAAG,CAAC,CAAC,IAAI,aAAa,GAAG,CAAC,CAAC,CAAC;cACrC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;cAC9C,MAAM;UAER,KAAK,OAAO;cACV,UAAU,GAAG,WAAW,CAAC,KAAK,GAAG,CAAC,GAAG,YAAY,CAAC;cAClD,SAAS,GAAG,CAAC,CAAC,IAAI,aAAa,GAAG,CAAC,CAAC,CAAC;cACrC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;cAC7C,MAAM;OACT;MAEDD,IAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;MAE3C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;UAChB,GAAG,IAAK,YAAY,CAAC,GAAG,GAAG,WAAW,CAAC,MAAM,GAAG,UAAK;UACrD,IAAI,IAAK,YAAY,CAAC,IAAI,GAAG,WAAW,CAAC,KAAK,GAAG,UAAK;UACtD,aAAa,GAAK,UAAU,QAAI;UAChC,YAAY,GAAK,SAAS,QAAI;OAC/B,CAAC,CAAC;EACL,EAAC;EAED;;;;oBAIQ,sCAAa,IAAW;MAC9B,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;EACtD,EAAC;EAED;;;oBAGQ;MACN,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE;UAC/C,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;UACtB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;OAC7B;WAAM;UACL,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;UACtB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;OAC7B;EACH,EAAC;EAED;;;oBAGQ;MACN,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC;EAC7D,EAAC;EAED;;;oBAGQ;;;MACN,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;MACvB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;MAE1B,IAAI,CAAC,QAAQ;WACV,QAAQ,CAAC,mBAAmB,CAAC;WAC7B,aAAa,sBAAOG,MAAI,CAAC,aAAa,KAAE,CAAC,CAAC;EAC/C,EAAC;EAED;;;;oBAIO,sBAAK,OAAiB;;;MAC3B,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;UACjB,OAAO;OACR;MAEDH,IAAM,UAAU,GAAG,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;MAE5C,IAAI,OAAO,EAAE;UACX,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;OAC/B;;MAGD,IAAI,UAAU,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;UAC/C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;OAC1C;MAED,IAAI,CAAC,WAAW,EAAE,CAAC;MAEnB,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;UACtB,IAAI,CAAC,SAAS,GAAG,UAAU,sBAAOG,MAAI,CAAC,MAAM,KAAE,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;OACtE;WAAM;UACL,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;UACtB,IAAI,CAAC,MAAM,EAAE,CAAC;OACf;EACH,EAAC;EAED;;;oBAGO;;;MACL,IAAI,IAAI,CAAC,SAAS,EAAE;UAClB,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;UAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;OACvB;MAED,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;UAClB,OAAO;OACR;MAED,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;MACvB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;MAE3B,IAAI,CAAC,QAAQ;WACV,WAAW,CAAC,mBAAmB,CAAC;WAChC,aAAa,sBAAOA,MAAI,CAAC,aAAa,KAAE,CAAC,CAAC;EAC/C,EAAC;EAED;;;oBAGO;MACL,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;EAC7C,EAAC;EAED;;;oBAGO;MACL,OAAO,IAAI,CAAC,KAAK,CAAC;EACpB,EACD;EAED,IAAI,CAAC,OAAO,GAAG,OAAO;;EChWtBH,IAAMO,YAAU,GAAG,cAAc,CAAC;EAClCP,IAAMQ,UAAQ,GAAG,eAAe,CAAC;EAEjC,CAAC;;MAEC,SAAS,CAAC,EAAE,CAAC,sBAAsB,SAAMD,YAAU,SAAK;UACtDP,IAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;UACxBC,IAAI,QAAQ,GAAG,OAAO,CAAC,IAAI,CAACO,UAAQ,CAAC,CAAC;UAEtC,IAAI,CAAC,QAAQ,EAAE;cACb,QAAQ,GAAG,IAAI,IAAI,CAAC,OAAO,CACzB,IAAmB,EACnB,YAAY,CAAC,IAAmB,EAAED,YAAU,CAAC,CAC9C,CAAC;cACF,OAAO,CAAC,IAAI,CAACC,UAAQ,EAAE,QAAQ,CAAC,CAAC;WAClC;OACF,CAAC,CAAC;EACL,CAAC,CAAC;;EC8FFR,IAAMM,iBAAe,GAAY;MAC/B,OAAO,EAAE,EAAE;MACX,OAAO,EAAE,IAAI;MACb,QAAQ,EAAE,QAAQ;MAClB,UAAU,EAAE,EAAE;MACd,WAAW,EAAE,EAAE;MACf,kBAAkB,EAAE,IAAI;MACxB,mBAAmB,EAAE,IAAI;;MAEzB,OAAO,iBAAU;;MAEjB,aAAa,iBAAU;;MAEvB,MAAM,iBAAU;;MAEhB,QAAQ,iBAAU;;MAElB,OAAO,iBAAU;;MAEjB,QAAQ,iBAAU;GACnB,CAAC;EAEF;;;EAGAL,IAAIQ,aAAW,GAAoB,IAAI,CAAC;EAExC;;;EAGAT,IAAMU,WAAS,GAAG,gBAAgB,CAAC;EAEnC,IAAM,QAAQ,GAoBZ,kBAAmB,OAAgB;;;;MAZ5B,YAAO,GAAY,MAAM,CAAC,EAAE,EAAEJ,iBAAe,CAAC,CAAC;;;;MAK9C,UAAK,GAAU,QAAQ,CAAC;;;;MAKxB,cAAS,GAAQ,IAAI,CAAC;MAG5B,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;;MAG9BL,IAAI,gBAAgB,GAAG,EAAE,CAAC;MAC1BA,IAAI,gBAAgB,GAAG,EAAE,CAAC;MAE1B,IACE,IAAI,CAAC,OAAO,CAAC,WAAY,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;UAC5C,IAAI,CAAC,OAAO,CAAC,WAAY,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAC9C;UACA,gBAAgB,GAAG,oBAAgB,IAAI,CAAC,OAAO,CAAC,YAAW,OAAG,CAAC;OAChE;WAAM,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,KAAK,EAAE,EAAE;UAC1C,gBAAgB,GAAG,sBAAmB,IAAI,CAAC,OAAO,CAAC,YAAa,CAAC;OAClE;;MAGD,IAAI,CAAC,QAAQ,GAAG,CAAC,CACf,6BAA6B;UAC3B,wCAAmC,IAAI,CAAC,OAAO,CAAC,QAAO,WAAQ;WAC9D,IAAI,CAAC,OAAO,CAAC,UAAU;yHAC+E,gBAAgB,WAAK,gBAAgB,UAAI,IAAI,CAAC,OAAO,CAAC,WAAU;gBACnK,EAAE,CAAC;UACP,QAAQ,CACX,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;;MAG1B,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;MAE1B,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,sBAAkB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;EAC5E,EAAC;EAED;;;;qBAIQ,oDAAoB,KAAY;MACtCD,IAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,MAAqB,CAAC,CAAC;MAE/C,IACE,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;UAClC,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,MAAM,EACzC;UACAS,aAAY,CAAC,KAAK,EAAE,CAAC;OACtB;EACH,EAAC;EAED;;;;qBAIQ,oCAAY,KAAuB;MACzCT,IAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;MACrDA,IAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;MAEvCC,IAAI,UAAU,CAAC;MACfA,IAAI,UAAU,CAAC;;MAGf,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,KAAK,EAAE;UAC/C,UAAU,GAAG,MAAM,CAAC;OACrB;WAAM;UACL,UAAU,GAAG,GAAG,CAAC;OAClB;;MAGD,IAAI,KAAK,KAAK,MAAM,EAAE;UACpB,UAAU,GAAG,GAAG,CAAC;OAClB;WAAM;UACL,IAAI,QAAQ,KAAK,QAAQ,EAAE;cACzB,UAAU,GAAG,cAAc,CAAC;WAC7B;UAED,IAAI,QAAQ,KAAK,KAAK,EAAE;cACtB,UAAU,GAAG,CAAC,cAAc,CAAC;WAC9B;UAED,IAAI,QAAQ,KAAK,UAAU,IAAI,QAAQ,KAAK,WAAW,EAAE;cACvD,UAAU,GAAG,CAAC,cAAc,GAAG,EAAE,CAAC;WACnC;UAED,IAAI,QAAQ,KAAK,aAAa,IAAI,QAAQ,KAAK,cAAc,EAAE;cAC7D,UAAU,GAAG,cAAc,GAAG,EAAE,CAAC;WAClC;OACF;MAED,IAAI,CAAC,QAAQ,CAAC,SAAS,iBAAc,UAAU,SAAI,UAAU,SAAK,CAAC;EACrE,EAAC;EAED;;;qBAGO;;;MACL,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;UACvD,OAAO;OACR;;MAGD,IAAIQ,aAAW,EAAE;UACf,KAAK,CAACC,WAAS,uBAAQP,MAAI,CAAC,IAAI,KAAE,CAAC,CAAC;UACpC,OAAO;OACR;MAEDM,aAAW,GAAG,IAAI,CAAC;;MAGnB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;MACvB,IAAI,CAAC,OAAO,CAAC,MAAO,CAAC,IAAI,CAAC,CAAC;MAE3B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;MAEzB,IAAI,CAAC,QAAQ,CAAC,aAAa;UACzB,IAAIN,MAAI,CAAC,KAAK,KAAK,SAAS,EAAE;cAC5B,OAAO;WACR;UAEDA,MAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;UACtBA,MAAI,CAAC,OAAO,CAAC,QAAS,CAACA,MAAI,CAAC,CAAC;;UAG7B,IAAIA,MAAI,CAAC,OAAO,CAAC,UAAU,EAAE;cAC3BA,MAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,EAAE,CAAC,OAAO;kBACpDA,MAAI,CAAC,OAAO,CAAC,aAAc,CAACA,MAAI,CAAC,CAAC;kBAClC,IAAIA,MAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;sBACnCA,MAAI,CAAC,KAAK,EAAE,CAAC;mBACd;eACF,CAAC,CAAC;WACJ;;UAGDA,MAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,YAAG,KAAK;cAC9B,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,MAAqB,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAAE;kBACpEA,MAAI,CAAC,OAAO,CAAC,OAAQ,CAACA,MAAI,CAAC,CAAC;eAC7B;WACF,CAAC,CAAC;;UAGH,IAAIA,MAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE;cACpC,SAAS,CAAC,EAAE,CAAC,UAAU,EAAEA,MAAI,CAAC,mBAAmB,CAAC,CAAC;WACpD;;UAGD,IAAIA,MAAI,CAAC,OAAO,CAAC,OAAO,EAAE;cACxBA,MAAI,CAAC,SAAS,GAAG,UAAU,sBAAOA,MAAI,CAAC,KAAK,KAAE,EAAEA,MAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;WACvE;OACF,CAAC,CAAC;EACL,EAAC;EAED;;;qBAGO;;;MACL,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;UACvD,OAAO;OACR;MAED,IAAI,IAAI,CAAC,SAAS,EAAE;UAClB,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;OAC9B;MAED,IAAI,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE;UACpC,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;OACrD;MAED,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;MACvB,IAAI,CAAC,OAAO,CAAC,OAAQ,CAAC,IAAI,CAAC,CAAC;MAE5B,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;MAE1B,IAAI,CAAC,QAAQ,CAAC,aAAa;UACzB,IAAIA,MAAI,CAAC,KAAK,KAAK,SAAS,EAAE;cAC5B,OAAO;WACR;UAEDM,aAAW,GAAG,IAAI,CAAC;UACnBN,MAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;UACtBA,MAAI,CAAC,OAAO,CAAC,QAAS,CAACA,MAAI,CAAC,CAAC;UAC7BA,MAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;UACvB,OAAO,CAACO,WAAS,CAAC,CAAC;OACpB,CAAC,CAAC;EACL,EACD;EAED,IAAI,CAAC,QAAQ,GAAG,UAAU,OAAY,EAAE,OAAiB;0CAAF;;MACrD,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE;UACrB,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;OAC3B;WAAM;UACL,OAAO,GAAG,OAAO,CAAC;OACnB;MAEDV,IAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC;MAEvC,QAAQ,CAAC,IAAI,EAAE,CAAC;MAEhB,OAAO,QAAQ,CAAC;EAClB,CAAC;;EChWD,CAAC;;MAEC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,oBAAoB,EAAE;UAC1CA,IAAM,KAAK,GAAG,CAAC,CAAC,IAAmB,CAAC,CAAC;UACrCA,IAAM,UAAU,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;UAElC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,WAAE,KAAK,EAAE,IAAI;cACxCA,IAAM,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;cAE9B,IAAI,MAAM,EAAE;kBACV,cAAc,CAAC,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE;6BAC9D,KAAK;mBACN,CAAC,CAAC;eACJ;cAED,MAAM;oBACF,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;oBAC1C,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;WACnD,CAAC,CAAC;OACJ,CAAC,CAAC;;MAGH,IAAI,CAAC,QAAQ,CAAC,8BAA8B,EAAE;UAC5C,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;cACtB,WAAW,EAAE,2BAA2B;cACxC,aAAa,EAAE,6BAA6B;WAC7C,CAAC,CAAC;OACJ,CAAC,CAAC;EACL,CAAC,CAAC;;ECnBF;;;;EAIA,SAAS,SAAS,CAAC,KAA6B;sCAAL;;MACzC,QACE,sCACE,KAAK,4BAAyB,SAAU,GAC1C,QAAI;UACJ,6DAA6D;UAC7D,yCAAyC;UACzC,QAAQ;UACR,sCAAsC;UACtC,yCAAyC;UACzC,QAAQ;UACR,8DAA8D;UAC9D,yCAAyC;UACzC,QAAQ;UACR,QAAQ,EACR;EACJ,CAAC;EAED;;;;EAIA,SAAS,QAAQ,CAAC,OAAoB;MACpCA,IAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;MAE5BA,IAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YACpD,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;YACzD,SAAS,EAAE,CAAC;MAEhB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;EACvB,CAAC;EAED,CAAC;;MAEC,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE;UAC7B,QAAQ,CAAC,IAAI,CAAC,CAAC;OAChB,CAAC,CAAC;EACL,CAAC,CAAC,CAAC;EAEH,IAAI,CAAC,cAAc,GAAG,UACpB,QAA0D;MAE1DA,IAAM,SAAS,GAAG,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;MAE3E,SAAS,CAAC,IAAI,CAAC;UACb,QAAQ,CAAC,IAAI,CAAC,CAAC;OAChB,CAAC,CAAC;EACL,CAAC;;ECkCDA,IAAMM,iBAAe,GAAY;MAC/B,QAAQ,EAAE,MAAM;MAChB,KAAK,EAAE,MAAM;MACb,MAAM,EAAE,EAAE;MACV,KAAK,EAAE,KAAK;MACZ,OAAO,EAAE,MAAM;MACf,cAAc,EAAE,OAAO;MACvB,YAAY,EAAE,GAAG;GAClB,CAAC;EAEF,IAAM,IAAI,GA+BR,cACE,cAA+D,EAC/D,YAA6D,EAC7D,OAAqB;;0CAAF;;;;;MApBd,YAAO,GAAY,MAAM,CAAC,EAAE,EAAEA,iBAAe,CAAC,CAAC;;;;MAK9C,UAAK,GAAU,QAAQ,CAAC;MAiB9B,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,CAAC;MACzC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC;;MAGxC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE;UACrD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;OACrE;MAED,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;;MAG9B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;;MAG7D,IAAI,CAAC,SAAS;UACZ,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAQ,CAAC;;MAG5E,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,uBAAQH,MAAI,CAAC,MAAM,KAAE,CAAC,CAAC;;MAG9C,SAAS,CAAC,EAAE,CAAC,kBAAkB,YAAG,KAAY;UAC5CH,IAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,MAAqB,CAAC,CAAC;UAE/C,IACEG,MAAI,CAAC,MAAM,EAAE;cACb,CAAC,OAAO,CAAC,EAAE,CAACA,MAAI,CAAC,QAAQ,CAAC;cAC1B,CAAC,QAAQ,CAACA,MAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;cACvC,CAAC,OAAO,CAAC,EAAE,CAACA,MAAI,CAAC,OAAO,CAAC;cACzB,CAAC,QAAQ,CAACA,MAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EACtC;cACAA,MAAI,CAAC,KAAK,EAAE,CAAC;WACd;OACF,CAAC,CAAC;;;MAIHH,IAAM,IAAI,GAAG,IAAI,CAAC;MAClB,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,EAAE;UACvCA,IAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;UAEtB,IACE,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM;cAChC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,SAAS,EACpC;cACA,IAAI,CAAC,KAAK,EAAE,CAAC;WACd;OACF,CAAC,CAAC;;MAGH,IAAI,CAAC,gBAAgB,EAAE,CAAC;;MAGxB,OAAO,CAAC,EAAE,CACR,QAAQ,EACR,CAAC,CAAC,QAAQ,sBAAOG,MAAI,CAAC,QAAQ,KAAE,EAAE,GAAG,CAAC,CACvC,CAAC;EACJ,EAAC;EAED;;;iBAGQ;MACN,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC;EAC7D,EAAC;EAED;;;;iBAIQ,sCAAa,IAAW;MAC9B,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;EACpD,EAAC;EAED;;;iBAGQ;MACNF,IAAI,QAAQ,CAAC;MACbA,IAAI,OAAO,CAAC;;MAGZA,IAAI,QAAqC,CAAC;MAC1CA,IAAI,KAAkC,CAAC;;MAGvCD,IAAM,YAAY,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;MACtCA,IAAM,WAAW,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;;MAGpCA,IAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAO,CAAC;MACpCA,IAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;MACjCA,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;;MAGnCC,IAAI,gBAAgB,CAAC;MACrBA,IAAI,gBAAgB,CAAC;;MAGrBD,IAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;MACxCA,IAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;;MAG1CA,IAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC;MAC3DA,IAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC;MACjCA,IAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC;MACnCA,IAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC;MACvCA,IAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC;MACrCA,IAAM,YAAY,GAAG,YAAY,GAAG,SAAS,GAAG,YAAY,CAAC;MAC7DA,IAAM,WAAW,GAAG,WAAW,GAAG,UAAU,GAAG,WAAW,CAAC;;MAG3DA,IAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;MAClDA,IAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;;MAGpD,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,MAAM,EAAE;UACpC,IAAI,YAAY,IAAI,SAAS,GAAG,YAAY,GAAG,CAAC,CAAC,GAAG,UAAU,GAAG,MAAM,EAAE;;cAEvE,QAAQ,GAAG,QAAQ,CAAC;WACrB;eAAM,IACL,SAAS,IAAI,SAAS,GAAG,YAAY,GAAG,CAAC,CAAC;cAC1C,UAAU,GAAG,MAAM,EACnB;;cAEA,QAAQ,GAAG,KAAK,CAAC;WAClB;eAAM;;cAEL,QAAQ,GAAG,QAAQ,CAAC;WACrB;OACF;WAAM;UACL,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAS,CAAC;OACnC;;MAGD,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,MAAM,EAAE;UACjC,IAAI,WAAW,GAAG,WAAW,GAAG,SAAS,GAAG,MAAM,EAAE;;cAElD,KAAK,GAAG,MAAM,CAAC;WAChB;eAAM,IAAI,UAAU,GAAG,WAAW,GAAG,SAAS,GAAG,MAAM,EAAE;;cAExD,KAAK,GAAG,OAAO,CAAC;WACjB;eAAM;;cAEL,KAAK,GAAG,QAAQ,CAAC;WAClB;OACF;WAAM;UACL,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAM,CAAC;OAC7B;;MAGD,IAAI,QAAQ,KAAK,QAAQ,EAAE;UACzB,gBAAgB,GAAG,GAAG,CAAC;UACvB,OAAO;cACL,CAAC,SAAS,GAAG,CAAC,GAAG,YAAY;mBAC5B,OAAO,GAAG,SAAS,GAAG,eAAe,CAAC,CAAC;OAC3C;WAAM,IAAI,QAAQ,KAAK,KAAK,EAAE;UAC7B,gBAAgB,GAAG,MAAM,CAAC;UAC1B,OAAO;cACL,CAAC,SAAS,GAAG,YAAY,GAAG,CAAC;mBAC5B,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,eAAe,GAAG,UAAU,CAAC,CAAC;OACrE;WAAM;UACL,gBAAgB,GAAG,KAAK,CAAC;;;;UAKzBC,IAAI,cAAc,GAAG,UAAU,CAAC;;UAGhC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;cACnB,IAAI,UAAU,GAAG,MAAM,GAAG,CAAC,GAAG,YAAY,EAAE;kBAC1C,cAAc,GAAG,YAAY,GAAG,MAAM,GAAG,CAAC,CAAC;kBAC3C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;eACtC;WACF;UAED,OAAO;cACL,CAAC,YAAY,GAAG,cAAc,IAAI,CAAC;mBAClC,OAAO,GAAG,CAAC,GAAG,eAAe,GAAG,SAAS,CAAC,CAAC;OAC/C;MAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAK,OAAO,SAAK,CAAC;;MAGzC,IAAI,KAAK,KAAK,MAAM,EAAE;UACpB,gBAAgB,GAAG,GAAG,CAAC;UACvB,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,gBAAgB,CAAC;OACpD;WAAM,IAAI,KAAK,KAAK,OAAO,EAAE;UAC5B,gBAAgB,GAAG,MAAM,CAAC;UAC1B,QAAQ,GAAG,OAAO;gBACd,UAAU,GAAG,WAAW,GAAG,SAAS;gBACpC,gBAAgB,GAAG,WAAW,GAAG,SAAS,CAAC;OAChD;WAAM;UACL,gBAAgB,GAAG,KAAK,CAAC;;;UAIzBA,IAAI,aAAa,GAAG,SAAS,CAAC;;UAG9B,IAAI,SAAS,GAAG,MAAM,GAAG,CAAC,GAAG,WAAW,EAAE;cACxC,aAAa,GAAG,WAAW,GAAG,MAAM,GAAG,CAAC,CAAC;cACzC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;WACpC;UAED,QAAQ;cACN,CAAC,WAAW,GAAG,aAAa,IAAI,CAAC;mBAChC,OAAO,GAAG,CAAC,GAAG,gBAAgB,GAAG,UAAU,CAAC,CAAC;OACjD;MAED,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,GAAK,QAAQ,SAAK,CAAC;;MAG3C,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAI,gBAAgB,SAAI,kBAAmB,CAAC;EAC3E,EAAC;EAED;;;;iBAIQ,4CAAgB,QAAY;MAClCD,IAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;MAEjDC,IAAI,UAAU,CAAC;MACfA,IAAI,WAAW,CAAC;;MAGhBA,IAAI,QAA0B,CAAC;MAC/BA,IAAI,KAAuB,CAAC;;MAG5BD,IAAM,YAAY,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;MACtCA,IAAM,WAAW,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;;MAGpCC,IAAI,gBAAgB,CAAC;MACrBA,IAAI,gBAAgB,CAAC;;MAGrBD,IAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;MACtCA,IAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;;MAGxCA,IAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC;MAClDA,IAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC;MACjCA,IAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC;MACnCA,IAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;MAC/BA,IAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC;;MAG7B,IAAI,YAAY,GAAG,OAAO,GAAG,aAAa,EAAE;;UAE1C,QAAQ,GAAG,QAAQ,CAAC;OACrB;WAAM,IAAI,OAAO,GAAG,UAAU,GAAG,aAAa,EAAE;;UAE/C,QAAQ,GAAG,KAAK,CAAC;OAClB;WAAM;;UAEL,QAAQ,GAAG,QAAQ,CAAC;OACrB;;MAGD,IAAI,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,YAAY,EAAE;;UAErD,KAAK,GAAG,MAAM,CAAC;OAChB;WAAM,IAAI,QAAQ,GAAG,YAAY,EAAE;;UAElC,KAAK,GAAG,OAAO,CAAC;OACjB;WAAM;;UAEL,KAAK,GAAG,MAAM,CAAC;OAChB;;MAGD,IAAI,QAAQ,KAAK,QAAQ,EAAE;UACzB,gBAAgB,GAAG,GAAG,CAAC;UACvB,UAAU,GAAG,GAAG,CAAC;OAClB;WAAM,IAAI,QAAQ,KAAK,KAAK,EAAE;UAC7B,gBAAgB,GAAG,MAAM,CAAC;UAC1B,UAAU,GAAG,CAAC,aAAa,GAAG,UAAU,CAAC;OAC1C;MAED,QAAQ,CAAC,GAAG,CAAC,KAAK,GAAK,UAAU,SAAK,CAAC;;MAGvC,IAAI,KAAK,KAAK,MAAM,EAAE;UACpB,gBAAgB,GAAG,GAAG,CAAC;UACvB,WAAW,GAAG,SAAS,CAAC;OACzB;WAAM,IAAI,KAAK,KAAK,OAAO,EAAE;UAC5B,gBAAgB,GAAG,MAAM,CAAC;UAC1B,WAAW,GAAG,CAAC,YAAY,CAAC;OAC7B;MAED,QAAQ,CAAC,GAAG,CAAC,MAAM,GAAK,WAAW,SAAK,CAAC;;MAGzC,QAAQ,CAAC,eAAe,EAAI,gBAAgB,SAAI,kBAAmB,CAAC;EACtE,EAAC;EAED;;;;iBAIQ,oCAAY,QAAY;MAC9B,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;MAE/B,QAAQ;WACL,QAAQ,CAAC,gBAAgB,CAAC;WAC1B,MAAM,CAAC,iBAAiB,CAAC;WACzB,QAAQ,CAAC,uBAAuB,CAAC,CAAC;EACvC,EAAC;EAED;;;;iBAIQ,sCAAa,QAAY;;MAE/B,QAAQ;WACL,WAAW,CAAC,gBAAgB,CAAC;WAC7B,QAAQ,CAAC,mBAAmB,CAAC;WAC7B,aAAa,sBAAO,QAAQ,CAAC,WAAW,CAAC,mBAAmB,IAAC,CAAC;;WAG9D,MAAM,CAAC,iBAAiB,CAAC;WACzB,WAAW,CAAC,uBAAuB,CAAC,CAAC;;MAGxC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,WAAE,CAAC,EAAE,IAAI;UACvCA,IAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;UAE5B,WAAW;eACR,WAAW,CAAC,gBAAgB,CAAC;eAC7B,QAAQ,CAAC,mBAAmB,CAAC;eAC7B,aAAa,sBAAO,WAAW,CAAC,WAAW,CAAC,mBAAmB,IAAC,CAAC;eACjE,MAAM,CAAC,iBAAiB,CAAC;eACzB,WAAW,CAAC,uBAAuB,CAAC,CAAC;OACzC,CAAC,CAAC;EACL,EAAC;EAED;;;;iBAIQ,wCAAc,QAAY;MAChC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAC/B,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;YAC3B,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;EACjC,EAAC;EAED;;;iBAGQ;;MAENA,IAAM,IAAI,GAAG,IAAI,CAAC;;MAGlB,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,EAAE,UAAU,KAAK;UAC1DA,IAAM,KAAK,GAAG,CAAC,CAAC,IAAmB,CAAC,CAAC;UACrCA,IAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,MAAqB,CAAC,CAAC;;UAG/C,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE;cACxC,OAAO;WACR;;UAGD,IAAI,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC,eAAe,CAAC,EAAE;cAC3D,OAAO;WACR;;UAGD,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE;cACzD,OAAO;WACR;;UAGDA,IAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;;UAG9C,KAAK;eACF,MAAM,CAAC,YAAY,CAAC;eACpB,QAAQ,CAAC,iBAAiB,CAAC;eAC3B,IAAI,WAAE,CAAC,EAAE,IAAI;cACZA,IAAM,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;cAEnD,IACE,WAAW,CAAC,MAAM;mBACjB,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAC/C;kBACA,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;eAChC;WACF,CAAC,CAAC;;UAGL,IAAI,QAAQ,CAAC,MAAM,EAAE;cACnB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;WAC9B;OACF,CAAC,CAAC;MAEH,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,KAAK,OAAO,EAAE;;UAE3CC,IAAI,OAAO,GAAQ,IAAI,CAAC;UACxBA,IAAI,WAAW,GAAQ,IAAI,CAAC;UAE5B,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,oBAAoB,EAAE,iBAAiB,EAAE,UACxD,KAAK;cAELD,IAAM,KAAK,GAAG,CAAC,CAAC,IAAmB,CAAC,CAAC;cACrCA,IAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;cAC7BA,IAAM,cAAc,GAAG,CAAC,CACrB,KAAoB,CAAC,aAA4B,CACnD,CAAC;;cAGF,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE;kBACxC,OAAO;eACR;;cAGD,IAAI,SAAS,KAAK,WAAW,EAAE;kBAC7B,IACE,CAAC,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC;sBACzB,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,EACrC;sBACA,OAAO;mBACR;eACF;;mBAGI,IAAI,SAAS,KAAK,UAAU,EAAE;kBACjC,IACE,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC;sBACxB,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,EACrC;sBACA,OAAO;mBACR;eACF;;cAGDA,IAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;;cAG9C,IAAI,SAAS,KAAK,WAAW,EAAE;kBAC7B,IAAI,QAAQ,CAAC,MAAM,EAAE;;sBAEnBA,IAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;sBACzD,IAAI,QAAQ,EAAE;0BACZ,YAAY,CAAC,QAAQ,CAAC,CAAC;uBACxB;;sBAGD,IAAI,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE;0BACvC,OAAO;uBACR;;sBAGD,YAAY,CAAC,WAAW,CAAC,CAAC;;sBAG1B,OAAO,GAAG,WAAW,GAAG,UAAU,sBAC1B,IAAI,CAAC,WAAW,CAAC,QAAQ,IAAC,EAChC,IAAI,CAAC,OAAO,CAAC,YAAY,CAC1B,CAAC;sBAEF,QAAQ,CAAC,IAAI,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;mBACjD;eACF;;mBAGI,IAAI,SAAS,KAAK,UAAU,EAAE;kBACjC,IAAI,QAAQ,CAAC,MAAM,EAAE;;sBAEnBA,IAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;sBACvD,IAAI,OAAO,EAAE;0BACX,YAAY,CAAC,OAAO,CAAC,CAAC;uBACvB;;sBAGD,OAAO,GAAG,UAAU,sBACZ,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAC,EACjC,IAAI,CAAC,OAAO,CAAC,YAAY,CAC1B,CAAC;sBAEF,QAAQ,CAAC,IAAI,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;mBAClD;eACF;WACF,CAAC,CAAC;OACJ;EACH,EAAC;EAED;;;iBAGQ;MACN,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;MAE/C,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;UAC5B,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;UACtB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;OAC7B;MAED,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;UAC5B,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;UACtB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;;UAG5B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;cAChB,GAAG,EAAE,EAAE;cACP,IAAI,EAAE,EAAE;cACR,KAAK,EAAE,EAAE;cACT,QAAQ,EAAE,OAAO;WAClB,CAAC,CAAC;OACJ;EACH,EAAC;EAED;;;iBAGO;MACL,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;EAC7C,EAAC;EAED;;;iBAGO;;;MACL,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;UACjB,OAAO;OACR;MAED,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;MACvB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;MAE1B,IAAI,CAAC,QAAQ,EAAE,CAAC;MAEhB,IAAI,CAAC,QAAQ;;WAEV,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,GAAG,UAAU,CAAC;WAC1D,QAAQ,CAAC,gBAAgB,CAAC;WAC1B,aAAa,sBAAOG,MAAI,CAAC,aAAa,KAAE,CAAC,CAAC;EAC/C,EAAC;EAED;;;iBAGO;;;MACL,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;UAClB,OAAO;OACR;MAED,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;MACvB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;;MAG3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,WAAE,CAAC,EAAE,OAAO;UAC/CA,MAAI,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;OAC/B,CAAC,CAAC;MAEH,IAAI,CAAC,QAAQ;WACV,WAAW,CAAC,gBAAgB,CAAC;WAC7B,QAAQ,CAAC,mBAAmB,CAAC;WAC7B,aAAa,sBAAOA,MAAI,CAAC,aAAa,KAAE,CAAC,CAAC;EAC/C,EACD;EAED,IAAI,CAAC,IAAI,GAAG,IAAI;;EC1sBhBH,IAAMO,YAAU,GAAG,WAAW,CAAC;EAC/BP,IAAMQ,UAAQ,GAAG,YAAY,CAAC;EAa9B,CAAC;MACC,SAAS,CAAC,EAAE,CAAC,OAAO,SAAMD,YAAU,SAAK;UACvCP,IAAM,KAAK,GAAG,CAAC,CAAC,IAAmB,CAAC,CAAC;UACrCC,IAAI,QAAQ,GAAG,KAAK,CAAC,IAAI,CAACO,UAAQ,CAAC,CAAC;UAEpC,IAAI,CAAC,QAAQ,EAAE;cACbR,IAAM,OAAO,GAAG,YAAY,CAAC,IAAmB,EAAEO,YAAU,CAAY,CAAC;cACzEP,IAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;;cAEpC,OAAO,OAAO,CAAC,MAAM,CAAC;cAEtB,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;cACvD,KAAK,CAAC,IAAI,CAACQ,UAAQ,EAAE,QAAQ,CAAC,CAAC;cAE/B,QAAQ,CAAC,MAAM,EAAE,CAAC;WACnB;OACF,CAAC,CAAC;EACL,CAAC,CAAC;;;;;;;;"} \ No newline at end of file diff --git a/static/mdui/js/mdui.min.js b/static/mdui/js/mdui.min.js new file mode 100644 index 0000000..dfc297f --- /dev/null +++ b/static/mdui/js/mdui.min.js @@ -0,0 +1,7 @@ +/*! + * mdui 1.0.1 (https://mdui.org) + * Copyright 2016-2020 zdhxiong + * Licensed under MIT + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).mdui=e()}(this,function(){"use strict";function t(t,e){e=e||{bubbles:!1,cancelable:!1,detail:void 0};var n=document.createEvent("CustomEvent");return n.initCustomEvent(t,e.bubbles,e.cancelable,e.detail),n}function e(e){var n=this.constructor;return this.then(function(t){return n.resolve(e()).then(function(){return t})},function(t){return n.resolve(e()).then(function(){return n.reject(t)})})}function n(n){return new this(function(i,t){if(!n||void 0===n.length)return t(new TypeError(typeof n+" "+n+" is not iterable(cannot read property Symbol(Symbol.iterator))"));var o=Array.prototype.slice.call(n);if(0===o.length)return i([]);var s=o.length;function r(e,t){if(t&&("object"==typeof t||"function"==typeof t)){var n=t.then;if("function"==typeof n)return void n.call(t,function(t){r(e,t)},function(t){o[e]={status:"rejected",reason:t},0==--s&&i(o)})}o[e]={status:"fulfilled",value:t},0==--s&&i(o)}for(var e=0;e"===n[n.length-1]){var i="div";return D({li:"ul",tr:"tbody",td:"tr",th:"tr",tbody:"table",option:"select"},function(t,e){if(0===n.indexOf("<"+t))return i=e,!1}),new R(j(n,i))}if(!("#"===t[0]&&!t.match(/[ .<>:~]/)))return new R(document.querySelectorAll(t));var e=document.getElementById(t.slice(1));return e?new R([e]):new R}return!x(t)||t instanceof Node?new R([t]):new R(t)}).fn=R.prototype,H);setTimeout(function(){return L("body").addClass("mdui-loaded")});var B={$:L};function P(t,e){return t!==e&&w(t).contains(e)}function N(n,t){return D(t,function(t,e){n.push(e)}),n}L.fn.each=function(t){return D(this,t)},L.fn.get=function(t){return void 0===t?[].slice.call(this):this[0<=t?t:t+this.length]},L.fn.find=function(n){var i=[];return this.each(function(t,e){N(i,L(e.querySelectorAll(n)).get())}),new R(i)};var z={},F=1;function q(t){var e="_mduiEventId";return t[e]||(t[e]=++F),t[e]}function W(t){var e=t.split(".");return{type:e[0],ns:e.slice(1).sort().join(" ")}}function Y(t){return new RegExp("(?:^| )"+t.replace(" "," .* ?")+"(?: |$)")}function U(s,t,r,a){function u(t){delete e[t.id],s.removeEventListener(t.type,t.proxy,!1)}var e=z[q(s)]||[];t?t.split(" ").forEach(function(t){var e,n,i,o;t&&(e=s,n=r,i=a,o=W(t),(z[q(e)]||[]).filter(function(t){return t&&(!o.type||t.type===o.type)&&(!o.ns||Y(o.ns).test(t.ns))&&(!n||q(t.func)===q(n))&&(!i||t.selector===i)})).forEach(function(t){return u(t)})}):e.forEach(function(t){return u(t)})}function X(n,t){for(var e=[],i=arguments.length-2;0"===n[n.length-1]?i&&b(e)?L(e.cloneNode(!0)):L(e):L(j(e,"div")))[s?"insertAfter":"insertBefore"](o)})})}}),L.fn.off=function(t,n,e){var i=this;return C(t)?(D(t,function(t,e){i.off(t,n,e)}),this):(!1!==n&&!p(n)||(e=n,n=void 0),!1===e&&(e=M),this.each(function(){U(this,t,e,n)}))},L.fn.on=function(t,n,i,e,o){var s=this;if(C(t))return E(n)||(i=i||n,n=void 0),D(t,function(t,e){s.on(t,n,i,e,o)}),this;if(null==i&&null==e?(e=n,i=n=void 0):null==e&&(E(n)?(e=i,i=void 0):(e=i,i=n,n=void 0)),!1===e)e=M;else if(!e)return this;if(o){var r=this,a=e;e=function(t){return r.off(t.type,n,e),a.apply(this,arguments)}}return this.each(function(){!function(s,t,r,a,u){var c=q(s);z[c]||(z[c]=[]);var l=!1;C(a)&&a.useCapture&&(l=!0),t.split(" ").forEach(function(t){if(t){var n=W(t),e={type:n.type,ns:n.ns,func:r,selector:u,id:z[c].length,proxy:o};z[c].push(e),s.addEventListener(e.type,o,l)}function i(t,e){!1===r.apply(e,void 0===t._detail?[t]:[t].concat(t._detail))&&(t.preventDefault(),t.stopPropagation())}function o(e){e._ns&&!Y(e._ns).test(n.ns)||(e._data=a,u?L(s).find(u).get().reverse().forEach(function(t){t!==e.target&&!P(t,e.target)||i(e,t)}):i(e,s))}})}(this,t,e,i,n)})},D(K,function(t,e){L.fn[t]=function(n){return this.on(e,function(t,e){n(t,e.xhr,e.options,e.data)})}}),L.fn.map=function(n){return new R(nt(this,function(t,e){return n.call(t,e,t)}))},L.fn.clone=function(){return this.map(function(){return this.cloneNode(!0)})},L.fn.is=function(n){var i=!1;if(p(n))return this.each(function(t,e){n.call(e,t,e)&&(i=!0)}),i;if(E(n))return this.each(function(t,e){y(e)||g(e)||(e.matches||e.msMatchesSelector).call(e,n)&&(i=!0)}),i;var e=L(n);return this.each(function(t,n){e.each(function(t,e){n===e&&(i=!0)})}),i},L.fn.remove=function(n){return this.each(function(t,e){!e.parentNode||n&&!L(e).is(n)||e.parentNode.removeChild(e)})},D(["prepend","append"],function(u,t){L.fn[t]=function(){for(var a=[],t=arguments.length;t--;)a[t]=arguments[t];return this.each(function(t,e){var n,i=e.childNodes,o=i.length,s=o?i[u?o-1:0]:document.createElement("div");o||e.appendChild(s);var r=p(a[0])?[a[0].call(e,t,e.innerHTML)]:a;t&&(r=r.map(function(t){return E(t)?t:L(t).clone()})),(n=L(s))[u?"after":"before"].apply(n,r),o||e.removeChild(s)})}}),D(["appendTo","prependTo"],function(r,t){L.fn[t]=function(t){var s=[],e=L(t).map(function(t,e){var n=e.childNodes,i=n.length;if(i)return n[r?0:i-1];var o=document.createElement("div");return e.appendChild(o),s.push(o),o}),n=this[r?"insertBefore":"insertAfter"](e);return L(s).remove(),n}}),D(["attr","prop","css"],function(s,r){function a(t,e){switch(s){case 0:var n=t.getAttribute(e);return v(n)?void 0:n;case 1:return t[e];default:return S(t,e)}}L.fn[r]=function(n,i){var o=this;if(C(n))return D(n,function(t,e){o[r](t,e)}),this;if(1!==arguments.length)return this.each(function(t,e){!function(t,e,n){if(!O(n))switch(s){case 0:v(n)?t.removeAttribute(e):t.setAttribute(e,n);break;case 1:t[e]=n;break;default:e=$(e),t.style[e]=m(n)?n+(-1').appendTo(document.body).reflow().css("z-index",t));var n=e.data("_overlay_level")||0;return e.data("_overlay_level",++n).addClass("mdui-overlay-show")},L.hideOverlay=function(t){void 0===t&&(t=!1);var e=L(".mdui-overlay");if(e.length){var n=t?1:e.data("_overlay_level");1i.lastScrollY?"down":"up",n=i.options.tolerance[e]<=Math.abs(t-i.lastScrollY);t>i.lastScrollY&&t>=i.options.offset&&n?i.unpin():(t"},It.prototype.updateThCheckboxStatus=function(){var t=this.$thCheckbox[0],e=this.selectedRow,n=this.$tdRows.length;t.checked=e===n,t.indeterminate=!!e&&e!==n},It.prototype.updateTdCheckbox=function(){var o=this,s="mdui-table-row-selected";this.$tdRows.each(function(t,e){var n=L(e);if(n.find(".mdui-table-cell-checkbox").remove(),o.selectable){var i=L(o.createCheckboxHTML("td")).prependTo(n).find('input[type="checkbox"]');n.hasClass(s)&&(i[0].checked=!0,o.selectedRow++),o.updateThCheckboxStatus(),i.on("change",function(){i[0].checked?(n.addClass(s),o.selectedRow++):(n.removeClass(s),o.selectedRow--),o.updateThCheckboxStatus()}),o.$tdCheckboxs=o.$tdCheckboxs.add(i)}})},It.prototype.updateThCheckbox=function(){var t=this;this.$thRow.find(".mdui-table-cell-checkbox").remove(),this.selectable&&(this.$thCheckbox=L(this.createCheckboxHTML("th")).prependTo(this.$thRow).find('input[type="checkbox"]').on("change",function(){var n=t.$thCheckbox[0].checked;t.selectedRow=n?t.$tdRows.length:0,t.$tdCheckboxs.each(function(t,e){e.checked=n}),t.$tdRows.each(function(t,e){n?L(e).addClass("mdui-table-row-selected"):L(e).removeClass("mdui-table-row-selected")})}))},It.prototype.updateNumericCol=function(){var e=this,s="mdui-table-col-numeric";this.$thRow.find("th").each(function(i,t){var o=L(t).hasClass(s);e.$tdRows.each(function(t,e){var n=L(e).find("td").eq(i);o?n.addClass(s):n.removeClass(s)})})};var St="_mdui_table";L(function(){B.mutation(".mdui-table",function(){var t=L(this);t.data(St)||t.data(St,new It(t))})}),B.updateTables=function(t){(O(t)?L(".mdui-table"):L(t)).each(function(t,e){var n=L(e),i=n.data(St);i?i.init():n.data(St,new It(n))})};var jt="touchstart mousedown",Mt="touchmove mousemove",At="touchend mouseup",Dt="touchcancel mouseleave",Rt="touchend touchmove touchcancel",Ht=0;function Lt(t){return!(Ht&&-1<["mousedown","mouseup","mousemove","click","mouseover","mouseout","mouseenter","mouseleave"].indexOf(t.type))}function Bt(t){"touchstart"===t.type?Ht+=1:-1<["touchmove","touchend","touchcancel"].indexOf(t.type)&&setTimeout(function(){Ht&&--Ht},500)}function Pt(t,e){if(!(t instanceof MouseEvent&&2===t.button)){var n="undefined"!=typeof TouchEvent&&t instanceof TouchEvent&&t.touches.length?t.touches[0]:t,i=n.pageX,o=n.pageY,s=e.offset(),r=e.innerHeight(),a=e.innerWidth(),u=i-s.left,c=o-s.top,l=Math.max(Math.pow(Math.pow(r,2)+Math.pow(a,2),.5),48),d="translate3d("+(a/2-u)+"px,"+(r/2-c)+"px, 0) scale(1)";L('
          ').data("_ripple_wave_translate",d).prependTo(e).reflow().transform(d)}}function Nt(){var t=L(this);t.children(".mdui-ripple-wave").each(function(t,e){!function(t){if(t.length&&!t.data("_ripple_wave_removed")){t.data("_ripple_wave_removed",!0);var e=setTimeout(function(){return t.remove()},400),n=t.data("_ripple_wave_translate");t.addClass("mdui-ripple-wave-fill").transform(n.replace("scale(1)","scale(1.01)")).transitionEnd(function(){clearTimeout(e),t.addClass("mdui-ripple-wave-out").transform(n.replace("scale(1)","scale(1.01)")),e=setTimeout(function(){return t.remove()},700),setTimeout(function(){t.transitionEnd(function(){clearTimeout(e),t.remove()})},0)})}}(L(e))}),t.off(Mt+" "+At+" "+Dt,Nt)}function zt(t){if(Lt(t)&&(Bt(t),t.target!==document)){var e=L(t.target),n=e.hasClass("mdui-ripple")?e:e.parents(".mdui-ripple").first();if(n.length&&!n.prop("disabled")&&O(n.attr("disabled")))if("touchstart"===t.type){var i=!1,o=setTimeout(function(){o=0,Pt(t,n)},200),s=function(){o&&(clearTimeout(o),o=0,Pt(t,n)),i||(i=!0,Nt.call(n))};n.on("touchmove",function(){o&&(clearTimeout(o),o=0),s()}).on("touchend touchcancel",s)}else Pt(t,n),n.on(Mt+" "+At+" "+Dt,Nt)}}L(function(){yt.on(jt,zt).on(Rt,Bt)});var Ft={reInit:!1,domLoadedEvent:!1};function qt(t,e){void 0===e&&(e={}),e=X({},Ft,e);var n=t.target,i=L(n),o=t.type,s=i.val(),r=i.attr("type")||"";if(!(-1<["checkbox","button","submit","range","radio","image"].indexOf(r))){var a=i.parent(".mdui-textfield");if("focus"===o&&a.addClass("mdui-textfield-focus"),"blur"===o&&a.removeClass("mdui-textfield-focus"),"blur"!==o&&"input"!==o||(s?a.addClass("mdui-textfield-not-empty"):a.removeClass("mdui-textfield-not-empty")),n.disabled?a.addClass("mdui-textfield-disabled"):a.removeClass("mdui-textfield-disabled"),"input"!==o&&"blur"!==o||e.domLoadedEvent||!n.validity||(n.validity.valid?a.removeClass("mdui-textfield-invalid-html5"):a.addClass("mdui-textfield-invalid-html5")),i.is("textarea")){var u=s,c=!1;""===u.replace(/[\r\n]/g,"")&&(i.val(" "+u),c=!0),i.outerHeight("");var l=i.outerHeight(),d=n.scrollHeight;l / '+h+"
          ").appendTo(a),a.find(".mdui-textfield-counter-inputed").text(s.length.toString())),(a.find(".mdui-textfield-helper").length||a.find(".mdui-textfield-error").length||h)&&a.addClass("mdui-textfield-has-bottom")}}function Wt(t){var e=t.data(),n=e._slider_$track,i=e._slider_$fill,o=e._slider_$thumb,s=e._slider_$input,r=e._slider_min,a=e._slider_max,u=e._slider_disabled,c=e._slider_discrete,l=e._slider_$thumbText,d=s.val(),h=(d-r)/(a-r)*100;i.width(h+"%"),n.width(100-h+"%"),u&&(i.css("padding-right","6px"),n.css("padding-left","6px")),o.css("left",h+"%"),c&&l.text(d),0==h?t.addClass("mdui-slider-zero"):t.removeClass("mdui-slider-zero")}function Yt(t){var e=L('
          '),n=L('
          '),i=L('
          '),o=t.find('input[type="range"]'),s=o[0].disabled,r=t.hasClass("mdui-slider-discrete");s?t.addClass("mdui-slider-disabled"):t.removeClass("mdui-slider-disabled"),t.find(".mdui-slider-track").remove(),t.find(".mdui-slider-fill").remove(),t.find(".mdui-slider-thumb").remove(),t.append(e).append(n).append(i);var a=L();r&&(a=L(""),i.empty().append(a)),t.data("_slider_$track",e),t.data("_slider_$fill",n),t.data("_slider_$thumb",i),t.data("_slider_$input",o),t.data("_slider_min",o.attr("min")),t.data("_slider_max",o.attr("max")),t.data("_slider_disabled",s),t.data("_slider_discrete",r),t.data("_slider_$thumbText",a),Wt(t)}L(function(){yt.on("input focus blur",".mdui-textfield-input",{useCapture:!0},qt),yt.on("click",".mdui-textfield-expandable .mdui-textfield-icon",function(){L(this).parents(".mdui-textfield").addClass("mdui-textfield-expanded").find(".mdui-textfield-input")[0].focus()}),yt.on("click",".mdui-textfield-expanded .mdui-textfield-close",function(){L(this).parents(".mdui-textfield").removeClass("mdui-textfield-expanded").find(".mdui-textfield-input").val("")}),B.mutation(".mdui-textfield",function(){L(this).find(".mdui-textfield-input").trigger("input",{domLoadedEvent:!0})})}),B.updateTextFields=function(t){(O(t)?L(".mdui-textfield"):L(t)).each(function(t,e){L(e).find(".mdui-textfield-input").trigger("input",{reInit:!0})})};var Ut='.mdui-slider input[type="range"]';L(function(){yt.on("input change",Ut,function(){Wt(L(this).parent())}),yt.on(jt,Ut,function(t){Lt(t)&&(Bt(t),this.disabled||L(this).parent().addClass("mdui-slider-focus"))}),yt.on(At,Ut,function(t){Lt(t)&&(this.disabled||L(this).parent().removeClass("mdui-slider-focus"))}),yt.on(Rt,Ut,Bt),B.mutation(".mdui-slider",function(){Yt(L(this))})}),B.updateSliders=function(t){(O(t)?L(".mdui-slider"):L(t)).each(function(t,e){Yt(L(e))})};function Xt(t,e){var n=this;void 0===e&&(e={}),this.options=X({},Vt),this.state="closed",this.$element=L(t).first(),X(this.options,e),this.$btn=this.$element.find(".mdui-fab"),this.$dial=this.$element.find(".mdui-fab-dial"),this.$dialBtns=this.$dial.find(".mdui-fab"),"hover"===this.options.trigger&&(this.$btn.on("touchstart mouseenter",function(){return n.open()}),this.$element.on("mouseleave",function(){return n.close()})),"click"===this.options.trigger&&this.$btn.on(jt,function(){return n.open()}),yt.on(jt,function(t){L(t.target).parents(".mdui-fab-wrapper").length||n.close()})}var Vt={trigger:"hover"};Xt.prototype.triggerEvent=function(t){vt(t,"fab",this.$element,this)},Xt.prototype.isOpen=function(){return"opening"===this.state||"opened"===this.state},Xt.prototype.open=function(){var i=this;this.isOpen()||(this.$dialBtns.each(function(t,e){var n=15*(i.$dialBtns.length-t)+"ms";e.style.transitionDelay=n,e.style.webkitTransitionDelay=n}),this.$dial.css("height","auto").addClass("mdui-fab-dial-show"),this.$btn.find(".mdui-fab-opened").length&&this.$btn.addClass("mdui-fab-opened"),this.state="opening",this.triggerEvent("open"),this.$dialBtns.first().transitionEnd(function(){i.$btn.hasClass("mdui-fab-opened")&&(i.state="opened",i.triggerEvent("opened"))}))},Xt.prototype.close=function(){var t=this;this.isOpen()&&(this.$dialBtns.each(function(t,e){var n=15*t+"ms";e.style.transitionDelay=n,e.style.webkitTransitionDelay=n}),this.$dial.removeClass("mdui-fab-dial-show"),this.$btn.removeClass("mdui-fab-opened"),this.state="closing",this.triggerEvent("close"),this.$dialBtns.last().transitionEnd(function(){t.$btn.hasClass("mdui-fab-opened")||(t.state="closed",t.triggerEvent("closed"),t.$dial.css("height",0))}))},Xt.prototype.toggle=function(){this.isOpen()?this.close():this.open()},Xt.prototype.show=function(){this.$element.removeClass("mdui-fab-hide")},Xt.prototype.hide=function(){this.$element.addClass("mdui-fab-hide")},Xt.prototype.getState=function(){return this.state},B.Fab=Xt;var Jt="mdui-fab";L(function(){yt.on("touchstart mousedown mouseover","["+Jt+"]",function(){new B.Fab(this,Ct(this,Jt))})});function Kt(t,e){var n=this;void 0===e&&(e={}),this.$element=L(),this.options=X({},Gt),this.size=0,this.$selected=L(),this.$menu=L(),this.$items=L(),this.selectedIndex=0,this.selectedText="",this.selectedValue="",this.state="closed",this.$native=L(t).first(),this.$native.hide(),X(this.options,e),this.uniqueID=L.guid(),this.handleUpdate(),yt.on("click touchstart",function(t){var e=L(t.target);!n.isOpen()||e.is(n.$element)||P(n.$element[0],e[0])||n.close()})}var Gt={position:"auto",gutter:16};Kt.prototype.readjustMenu=function(){var t,e,n=bt.height(),i=this.$element.height(),o=this.$items.first(),s=o.height(),r=parseInt(o.css("margin-top")),a=this.$element.innerWidth()+.01,u=s*this.size+2*r,c=this.$element[0].getBoundingClientRect().top;if("bottom"===this.options.position)e=i,t="0px";else if("top"===this.options.position)e=-u-1,t="100%";else{var l=n-2*this.options.gutter;ln&&(e=-(c+u+this.options.gutter-n)),t=this.selectedIndex*s+s/2+r+"px"}this.$element.innerWidth(a),this.$menu.innerWidth(a).height(u).css({"margin-top":e+"px","transform-origin":"center "+t+" 0"})},Kt.prototype.isOpen=function(){return"opening"===this.state||"opened"===this.state},Kt.prototype.handleUpdate=function(){var r=this;this.isOpen()&&this.close(),this.selectedValue=this.$native.val();var a=[];this.$items=L(),this.$native.find("option").each(function(t,e){var n=e.textContent||"",i=e.value,o=e.disabled,s=r.selectedValue===i;a.push({value:i,text:n,disabled:o,selected:s,index:t}),s&&(r.selectedText=n,r.selectedIndex=t),r.$items=r.$items.add('
          "+n+"
          ")}),this.$selected=L(''+this.selectedText+""),this.$element=L('
          ').show().append(this.$selected),this.$menu=L('
          ').appendTo(this.$element).append(this.$items),L("#"+this.uniqueID).remove(),this.$native.after(this.$element),this.size=parseInt(this.$native.attr("size")||"0"),this.size<=0&&(this.size=this.$items.length,8
          ').appendTo(this.$element);var i=window.location.hash;i&&this.$tabs.each(function(t,e){return L(e).attr("href")!==i||(n.activeIndex=t,!1)}),-1===this.activeIndex&&this.$tabs.each(function(t,e){return!L(e).hasClass("mdui-tab-active")||(n.activeIndex=t,!1)}),this.$tabs.length&&-1===this.activeIndex&&(this.activeIndex=0),this.setActive(),bt.on("resize",L.throttle(function(){return n.setIndicatorPosition()},100)),this.$tabs.each(function(t,e){n.bindTabEvent(e)})}var te={trigger:"click",loop:!1};Zt.prototype.isDisabled=function(t){return void 0!==t.attr("disabled")},Zt.prototype.bindTabEvent=function(t){function e(){if(n.isDisabled(i))return!1;n.activeIndex=n.$tabs.index(t),n.setActive()}var n=this,i=L(t);i.on("click",e),"hover"===this.options.trigger&&i.on("mouseenter",e),i.on("click",function(){if(0===(i.attr("href")||"").indexOf("#"))return!1})},Zt.prototype.triggerEvent=function(t,e,n){void 0===n&&(n={}),vt(t,"tab",e,this,n)},Zt.prototype.setActive=function(){var o=this;this.$tabs.each(function(t,e){var n=L(e),i=n.attr("href")||"";t!==o.activeIndex||o.isDisabled(n)?(n.removeClass("mdui-tab-active"),L(i).hide()):(n.hasClass("mdui-tab-active")||(o.triggerEvent("change",o.$element,{index:o.activeIndex,id:i.substr(1)}),o.triggerEvent("show",n),n.addClass("mdui-tab-active")),L(i).show(),o.setIndicatorPosition())})},Zt.prototype.setIndicatorPosition=function(){if(-1!==this.activeIndex){var t=this.$tabs.eq(this.activeIndex);if(!this.isDisabled(t)){var e=t.offset();this.$indicator.css({left:e.left+this.$element[0].scrollLeft-this.$element[0].getBoundingClientRect().left+"px",width:t.innerWidth()+"px"})}}else this.$indicator.css({left:0,width:0})},Zt.prototype.next=function(){-1!==this.activeIndex&&(this.$tabs.length>this.activeIndex+1?this.activeIndex++:this.options.loop&&(this.activeIndex=0),this.setActive())},Zt.prototype.prev=function(){-1!==this.activeIndex&&(0',D(n.buttons,function(t,e){i+=''+e.text+""}),i+="
          ");var o='
          '+(n.title?'
          '+n.title+"
          ":"")+(n.content?'
          '+n.content+"
          ":"")+i+"
          ",s=new B.Dialog(o,{history:n.history,overlay:n.overlay,modal:n.modal,closeOnEsc:n.closeOnEsc,destroyOnClosed:n.destroyOnClosed});return null!==(e=n.buttons)&&void 0!==e&&e.length&&s.$element.find(".mdui-dialog-actions .mdui-btn").each(function(t,e){L(e).on("click",function(){n.buttons[t].onClick(s),n.buttons[t].close&&s.close()})}),s.$element.on("open.mdui.dialog",function(){n.onOpen(s)}).on("opened.mdui.dialog",function(){n.onOpened(s)}).on("close.mdui.dialog",function(){n.onClose(s)}).on("closed.mdui.dialog",function(){n.onClosed(s)}),s.open(),s}),closeOnEsc:!0,closeOnConfirm:!0},be={confirmText:"ok",cancelText:"cancel",history:!0,modal:!(B.alert=function(t,e,n,i){return p(e)&&(i=n,n=e,e=""),O(n)&&(n=function(){}),O(i)&&(i={}),i=X({},ye,i),B.dialog({title:e,content:t,buttons:[{text:i.confirmText,bold:!1,close:i.closeOnConfirm,onClick:n}],cssClass:"mdui-dialog-alert",history:i.history,modal:i.modal,closeOnEsc:i.closeOnEsc})}),closeOnEsc:!0,closeOnCancel:!0,closeOnConfirm:!0},xe={confirmText:"ok",cancelText:"cancel",history:!0,modal:!(B.confirm=function(t,e,n,i,o){return p(e)&&(o=i,i=n,n=e,e=""),O(n)&&(n=function(){}),O(i)&&(i=function(){}),O(o)&&(o={}),o=X({},be,o),B.dialog({title:e,content:t,buttons:[{text:o.cancelText,bold:!1,close:o.closeOnCancel,onClick:i},{text:o.confirmText,bold:!1,close:o.closeOnConfirm,onClick:n}],cssClass:"mdui-dialog-confirm",history:o.history,modal:o.modal,closeOnEsc:o.closeOnEsc})}),closeOnEsc:!0,closeOnCancel:!0,closeOnConfirm:!0,type:"text",maxlength:0,defaultValue:"",confirmOnEnter:!1};B.prompt=function(t,e,i,n,o){p(e)&&(o=n,n=i,i=e,e=""),O(i)&&(i=function(){}),O(n)&&(n=function(){}),O(o)&&(o={});var s='
          '+(t?'":"")+("text"===(o=X({},xe,o)).type?'":"")+("textarea"===o.type?'":"")+"
          ";return B.dialog({title:e,content:s,buttons:[{text:o.cancelText,bold:!1,close:o.closeOnCancel,onClick:function(t){var e=t.$element.find(".mdui-textfield-input").val();n(e,t)}},{text:o.confirmText,bold:!1,close:o.closeOnConfirm,onClick:function(t){var e=t.$element.find(".mdui-textfield-input").val();i(e,t)}}],cssClass:"mdui-dialog-prompt",history:o.history,modal:o.modal,closeOnEsc:o.closeOnEsc,onOpen:function(n){var t=n.$element.find(".mdui-textfield-input");B.updateTextFields(t),t[0].focus(),"textarea"!==o.type&&!0===o.confirmOnEnter&&t.on("keydown",function(t){if(13===t.keyCode){var e=n.$element.find(".mdui-textfield-input").val();return i(e,n),o.closeOnConfirm&&n.close(),!1}}),"textarea"===o.type&&t.on("input",function(){return n.handleUpdate()}),o.maxlength&&n.handleUpdate()}})};function Ce(t,e){void 0===e&&(e={}),this.options=X({},we),this.state="closed",this.timeoutId=null,this.$target=L(t).first(),X(this.options,e),this.$element=L('
          '+this.options.content+"
          ").appendTo(document.body);var n=this;this.$target.on("touchstart mouseenter",function(t){n.isDisabled(this)||Lt(t)&&(Bt(t),n.open())}).on("touchend mouseleave",function(t){n.isDisabled(this)||Lt(t)&&n.close()}).on(Rt,function(t){n.isDisabled(this)||Bt(t)})}var we={position:"auto",delay:0,content:""};Ce.prototype.isDisabled=function(t){return t.disabled||void 0!==L(t).attr("disabled")},Ce.prototype.isDesktop=function(){return 1024
          '+this.options.message+"
          "+(this.options.buttonText?'"+this.options.buttonText+"":"")+"
          ").appendTo(document.body),this.setPosition("close"),this.$element.reflow().addClass("mdui-snackbar-"+this.options.position)}var ke={message:"",timeout:4e3,position:"bottom",buttonText:"",buttonColor:"",closeOnButtonClick:!0,closeOnOutsideClick:!0,onClick:function(){},onButtonClick:function(){},onOpen:function(){},onOpened:function(){},onClose:function(){},onClosed:function(){}},_e=null,Te="_mdui_snackbar";function Ie(t){return void 0===t&&(t=!1),'
          '}function Se(t){var e=L(t),n=e.hasClass("mdui-spinner-colorful")?Ie(1)+Ie(2)+Ie(3)+Ie(4):Ie();e.html(n)}Oe.prototype.closeOnOutsideClick=function(t){var e=L(t.target);e.hasClass("mdui-snackbar")||e.parents(".mdui-snackbar").length||_e.close()},Oe.prototype.setPosition=function(t){var e,n,i=this.$element[0].clientHeight,o=this.options.position;e="bottom"===o||"top"===o?"-50%":"0","open"===t?n="0":("bottom"===o&&(n=i),"top"===o&&(n=-i),"left-top"!==o&&"right-top"!==o||(n=-i-24),"left-bottom"!==o&&"right-bottom"!==o||(n=i+24)),this.$element.transform("translate("+e+","+n+"px")},Oe.prototype.open=function(){var e=this;"opening"!==this.state&&"opened"!==this.state&&(_e?re(Te,function(){return e.open()}):((_e=this).state="opening",this.options.onOpen(this),this.setPosition("open"),this.$element.transitionEnd(function(){"opening"===e.state&&(e.state="opened",e.options.onOpened(e),e.options.buttonText&&e.$element.find(".mdui-snackbar-action").on("click",function(){e.options.onButtonClick(e),e.options.closeOnButtonClick&&e.close()}),e.$element.on("click",function(t){L(t.target).hasClass("mdui-snackbar-action")||e.options.onClick(e)}),e.options.closeOnOutsideClick&&yt.on(jt,e.closeOnOutsideClick),e.options.timeout&&(e.timeoutId=setTimeout(function(){return e.close()},e.options.timeout)))})))},Oe.prototype.close=function(){var t=this;"closing"!==this.state&&"closed"!==this.state&&(this.timeoutId&&clearTimeout(this.timeoutId),this.options.closeOnOutsideClick&&yt.off(jt,this.closeOnOutsideClick),this.state="closing",this.options.onClose(this),this.setPosition("close"),this.$element.transitionEnd(function(){"closing"===t.state&&(_e=null,t.state="closed",t.options.onClosed(t),t.$element.remove(),ae(Te))}))},B.snackbar=function(t,e){void 0===e&&(e={}),E(t)?e.message=t:e=t;var n=new Oe(e);return n.open(),n},L(function(){yt.on("click",".mdui-bottom-nav>a",function(){var i=L(this),o=i.parent();o.children("a").each(function(t,e){var n=i.is(e);n&&vt("change","bottomNav",o[0],void 0,{index:t}),n?L(e).addClass("mdui-bottom-nav-active"):L(e).removeClass("mdui-bottom-nav-active")})}),B.mutation(".mdui-bottom-nav-scroll-hide",function(){new B.Headroom(this,{pinnedClass:"mdui-headroom-pinned-down",unpinnedClass:"mdui-headroom-unpinned-down"})})}),L(function(){B.mutation(".mdui-spinner",function(){Se(this)})});function je(t,e,n){var i=this;if(void 0===n&&(n={}),this.options=X({},Me),this.state="closed",this.$anchor=L(t).first(),this.$element=L(e).first(),!this.$anchor.parent().is(this.$element.parent()))throw new Error("anchorSelector and menuSelector must be siblings");X(this.options,n),this.isCascade=this.$element.hasClass("mdui-menu-cascade"),this.isCovered="auto"===this.options.covered?!this.isCascade:this.options.covered,this.$anchor.on("click",function(){return i.toggle()}),yt.on("click touchstart",function(t){var e=L(t.target);!i.isOpen()||e.is(i.$element)||P(i.$element[0],e[0])||e.is(i.$anchor)||P(i.$anchor[0],e[0])||i.close()});var o=this;yt.on("click",".mdui-menu-item",function(){var t=L(this);t.find(".mdui-menu").length||void 0!==t.attr("disabled")||o.close()}),this.bindSubMenuEvent(),bt.on("resize",L.throttle(function(){return i.readjust()},100))}var Me={position:"auto",align:"auto",gutter:16,fixed:!(B.updateSpinners=function(t){(O(t)?L(".mdui-spinner"):L(t)).each(function(){Se(this)})}),covered:"auto",subMenuTrigger:"hover",subMenuDelay:200};je.prototype.isOpen=function(){return"opening"===this.state||"opened"===this.state},je.prototype.triggerEvent=function(t){vt(t,"menu",this.$element,this)},je.prototype.readjust=function(){var t,e,n,i,o,s,r=bt.height(),a=bt.width(),u=this.options.gutter,c=this.isCovered,l=this.options.fixed,d=this.$element.width(),h=this.$element.height(),f=this.$anchor[0].getBoundingClientRect(),p=f.top,m=f.left,v=f.height,g=f.width,y=r-p-v,b=a-m-g,x=this.$anchor[0].offsetTop,C=this.$anchor[0].offsetLeft;if(n="auto"===this.options.position?h+u} */\n this._deferreds = [];\n\n doResolve(fn, this);\n}\n\nfunction handle(self, deferred) {\n while (self._state === 3) {\n self = self._value;\n }\n if (self._state === 0) {\n self._deferreds.push(deferred);\n return;\n }\n self._handled = true;\n Promise._immediateFn(function() {\n var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n (self._state === 1 ? resolve : reject)(deferred.promise, self._value);\n return;\n }\n var ret;\n try {\n ret = cb(self._value);\n } catch (e) {\n reject(deferred.promise, e);\n return;\n }\n resolve(deferred.promise, ret);\n });\n}\n\nfunction resolve(self, newValue) {\n try {\n // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n if (newValue === self)\n throw new TypeError('A promise cannot be resolved with itself.');\n if (\n newValue &&\n (typeof newValue === 'object' || typeof newValue === 'function')\n ) {\n var then = newValue.then;\n if (newValue instanceof Promise) {\n self._state = 3;\n self._value = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(bind(then, newValue), self);\n return;\n }\n }\n self._state = 1;\n self._value = newValue;\n finale(self);\n } catch (e) {\n reject(self, e);\n }\n}\n\nfunction reject(self, newValue) {\n self._state = 2;\n self._value = newValue;\n finale(self);\n}\n\nfunction finale(self) {\n if (self._state === 2 && self._deferreds.length === 0) {\n Promise._immediateFn(function() {\n if (!self._handled) {\n Promise._unhandledRejectionFn(self._value);\n }\n });\n }\n\n for (var i = 0, len = self._deferreds.length; i < len; i++) {\n handle(self, self._deferreds[i]);\n }\n self._deferreds = null;\n}\n\n/**\n * @constructor\n */\nfunction Handler(onFulfilled, onRejected, promise) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n}\n\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\nfunction doResolve(fn, self) {\n var done = false;\n try {\n fn(\n function(value) {\n if (done) return;\n done = true;\n resolve(self, value);\n },\n function(reason) {\n if (done) return;\n done = true;\n reject(self, reason);\n }\n );\n } catch (ex) {\n if (done) return;\n done = true;\n reject(self, ex);\n }\n}\n\nPromise.prototype['catch'] = function(onRejected) {\n return this.then(null, onRejected);\n};\n\nPromise.prototype.then = function(onFulfilled, onRejected) {\n // @ts-ignore\n var prom = new this.constructor(noop);\n\n handle(this, new Handler(onFulfilled, onRejected, prom));\n return prom;\n};\n\nPromise.prototype['finally'] = promiseFinally;\n\nPromise.all = function(arr) {\n return new Promise(function(resolve, reject) {\n if (!isArray(arr)) {\n return reject(new TypeError('Promise.all accepts an array'));\n }\n\n var args = Array.prototype.slice.call(arr);\n if (args.length === 0) return resolve([]);\n var remaining = args.length;\n\n function res(i, val) {\n try {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n var then = val.then;\n if (typeof then === 'function') {\n then.call(\n val,\n function(val) {\n res(i, val);\n },\n reject\n );\n return;\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n } catch (ex) {\n reject(ex);\n }\n }\n\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n};\n\nPromise.allSettled = allSettled;\n\nPromise.resolve = function(value) {\n if (value && typeof value === 'object' && value.constructor === Promise) {\n return value;\n }\n\n return new Promise(function(resolve) {\n resolve(value);\n });\n};\n\nPromise.reject = function(value) {\n return new Promise(function(resolve, reject) {\n reject(value);\n });\n};\n\nPromise.race = function(arr) {\n return new Promise(function(resolve, reject) {\n if (!isArray(arr)) {\n return reject(new TypeError('Promise.race accepts an array'));\n }\n\n for (var i = 0, len = arr.length; i < len; i++) {\n Promise.resolve(arr[i]).then(resolve, reject);\n }\n });\n};\n\n// Use polyfill for setImmediate for performance gains\nPromise._immediateFn =\n // @ts-ignore\n (typeof setImmediate === 'function' &&\n function(fn) {\n // @ts-ignore\n setImmediate(fn);\n }) ||\n function(fn) {\n setTimeoutFunc(fn, 0);\n };\n\nPromise._unhandledRejectionFn = function _unhandledRejectionFn(err) {\n if (typeof console !== 'undefined' && console) {\n console.warn('Possible Unhandled Promise Rejection:', err); // eslint-disable-line no-console\n }\n};\n\nexport default Promise;\n","import Promise from './index';\nimport promiseFinally from './finally';\nimport allSettled from './allSettled';\n\n/** @suppress {undefinedVars} */\nvar globalNS = (function() {\n // the only reliable means to get the global object is\n // `Function('return this')()`\n // However, this causes CSP violations in Chrome apps.\n if (typeof self !== 'undefined') {\n return self;\n }\n if (typeof window !== 'undefined') {\n return window;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n throw new Error('unable to locate global object');\n})();\n\n// Expose the polyfill if Promise is undefined or set to a\n// non-function value. The latter can be due to a named HTMLElement\n// being exposed by browsers for legacy reasons.\n// https://github.com/taylorhakes/promise-polyfill/issues/114\nif (typeof globalNS['Promise'] !== 'function') {\n globalNS['Promise'] = Promise;\n} else if (!globalNS.Promise.prototype['finally']) {\n globalNS.Promise.prototype['finally'] = promiseFinally;\n} else if (!globalNS.Promise.allSettled) {\n globalNS.Promise.allSettled = allSettled;\n}\n","function isNodeName(element, name) {\n return element.nodeName.toLowerCase() === name.toLowerCase();\n}\nfunction isFunction(target) {\n return typeof target === 'function';\n}\nfunction isString(target) {\n return typeof target === 'string';\n}\nfunction isNumber(target) {\n return typeof target === 'number';\n}\nfunction isBoolean(target) {\n return typeof target === 'boolean';\n}\nfunction isUndefined(target) {\n return typeof target === 'undefined';\n}\nfunction isNull(target) {\n return target === null;\n}\nfunction isWindow(target) {\n return target instanceof Window;\n}\nfunction isDocument(target) {\n return target instanceof Document;\n}\nfunction isElement(target) {\n return target instanceof Element;\n}\nfunction isNode(target) {\n return target instanceof Node;\n}\n/**\n * 是否是 IE 浏览器\n */\nfunction isIE() {\n // @ts-ignore\n return !!window.document.documentMode;\n}\nfunction isArrayLike(target) {\n if (isFunction(target) || isWindow(target)) {\n return false;\n }\n return isNumber(target.length);\n}\nfunction isObjectLike(target) {\n return typeof target === 'object' && target !== null;\n}\nfunction toElement(target) {\n return isDocument(target) ? target.documentElement : target;\n}\n/**\n * 把用 - 分隔的字符串转为驼峰(如 box-sizing 转换为 boxSizing)\n * @param string\n */\nfunction toCamelCase(string) {\n return string\n .replace(/^-ms-/, 'ms-')\n .replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());\n}\n/**\n * 把驼峰法转为用 - 分隔的字符串(如 boxSizing 转换为 box-sizing)\n * @param string\n */\nfunction toKebabCase(string) {\n return string.replace(/[A-Z]/g, (replacer) => '-' + replacer.toLowerCase());\n}\n/**\n * 获取元素的样式值\n * @param element\n * @param name\n */\nfunction getComputedStyleValue(element, name) {\n return window.getComputedStyle(element).getPropertyValue(toKebabCase(name));\n}\n/**\n * 检查元素的 box-sizing 是否是 border-box\n * @param element\n */\nfunction isBorderBox(element) {\n return getComputedStyleValue(element, 'box-sizing') === 'border-box';\n}\n/**\n * 获取元素的 padding, border, margin 宽度(两侧宽度的和,单位为px)\n * @param element\n * @param direction\n * @param extra\n */\nfunction getExtraWidth(element, direction, extra) {\n const position = direction === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];\n return [0, 1].reduce((prev, _, index) => {\n let prop = extra + position[index];\n if (extra === 'border') {\n prop += 'Width';\n }\n return prev + parseFloat(getComputedStyleValue(element, prop) || '0');\n }, 0);\n}\n/**\n * 获取元素的样式值,对 width 和 height 进行过处理\n * @param element\n * @param name\n */\nfunction getStyle(element, name) {\n // width、height 属性使用 getComputedStyle 得到的值不准确,需要使用 getBoundingClientRect 获取\n if (name === 'width' || name === 'height') {\n const valueNumber = element.getBoundingClientRect()[name];\n if (isBorderBox(element)) {\n return `${valueNumber}px`;\n }\n return `${valueNumber -\n getExtraWidth(element, name, 'border') -\n getExtraWidth(element, name, 'padding')}px`;\n }\n return getComputedStyleValue(element, name);\n}\n/**\n * 获取子节点组成的数组\n * @param target\n * @param parent\n */\nfunction getChildNodesArray(target, parent) {\n const tempParent = document.createElement(parent);\n tempParent.innerHTML = target;\n return [].slice.call(tempParent.childNodes);\n}\n/**\n * 始终返回 false 的函数\n */\nfunction returnFalse() {\n return false;\n}\n/**\n * 数值单位的 CSS 属性\n */\nconst cssNumber = [\n 'animationIterationCount',\n 'columnCount',\n 'fillOpacity',\n 'flexGrow',\n 'flexShrink',\n 'fontWeight',\n 'gridArea',\n 'gridColumn',\n 'gridColumnEnd',\n 'gridColumnStart',\n 'gridRow',\n 'gridRowEnd',\n 'gridRowStart',\n 'lineHeight',\n 'opacity',\n 'order',\n 'orphans',\n 'widows',\n 'zIndex',\n 'zoom',\n];\nexport { isNodeName, isArrayLike, isObjectLike, isFunction, isString, isNumber, isBoolean, isUndefined, isNull, isWindow, isDocument, isElement, isNode, isIE, toElement, toCamelCase, toKebabCase, getComputedStyleValue, isBorderBox, getExtraWidth, getStyle, getChildNodesArray, returnFalse, cssNumber, };\n","import { isArrayLike } from '../utils';\nfunction each(target, callback) {\n if (isArrayLike(target)) {\n for (let i = 0; i < target.length; i += 1) {\n if (callback.call(target[i], i, target[i]) === false) {\n return target;\n }\n }\n }\n else {\n const keys = Object.keys(target);\n for (let i = 0; i < keys.length; i += 1) {\n if (callback.call(target[keys[i]], keys[i], target[keys[i]]) === false) {\n return target;\n }\n }\n }\n return target;\n}\nexport default each;\n","import each from './functions/each';\n/**\n * 为了使用模块扩充,这里不能使用默认导出\n */\nexport class JQ {\n constructor(arr) {\n this.length = 0;\n if (!arr) {\n return this;\n }\n each(arr, (i, item) => {\n // @ts-ignore\n this[i] = item;\n });\n this.length = arr.length;\n return this;\n }\n}\n","import each from './functions/each';\nimport { JQ } from './JQ';\nimport { getChildNodesArray, isArrayLike, isFunction, isNode, isString, } from './utils';\nfunction get$() {\n const $ = function (selector) {\n if (!selector) {\n return new JQ();\n }\n // JQ\n if (selector instanceof JQ) {\n return selector;\n }\n // function\n if (isFunction(selector)) {\n if (/complete|loaded|interactive/.test(document.readyState) &&\n document.body) {\n selector.call(document, $);\n }\n else {\n document.addEventListener('DOMContentLoaded', () => selector.call(document, $), false);\n }\n return new JQ([document]);\n }\n // String\n if (isString(selector)) {\n const html = selector.trim();\n // 根据 HTML 字符串创建 JQ 对象\n if (html[0] === '<' && html[html.length - 1] === '>') {\n let toCreate = 'div';\n const tags = {\n li: 'ul',\n tr: 'tbody',\n td: 'tr',\n th: 'tr',\n tbody: 'table',\n option: 'select',\n };\n each(tags, (childTag, parentTag) => {\n if (html.indexOf(`<${childTag}`) === 0) {\n toCreate = parentTag;\n return false;\n }\n return;\n });\n return new JQ(getChildNodesArray(html, toCreate));\n }\n // 根据 CSS 选择器创建 JQ 对象\n const isIdSelector = selector[0] === '#' && !selector.match(/[ .<>:~]/);\n if (!isIdSelector) {\n return new JQ(document.querySelectorAll(selector));\n }\n const element = document.getElementById(selector.slice(1));\n if (element) {\n return new JQ([element]);\n }\n return new JQ();\n }\n if (isArrayLike(selector) && !isNode(selector)) {\n return new JQ(selector);\n }\n return new JQ([selector]);\n };\n $.fn = JQ.prototype;\n return $;\n}\nconst $ = get$();\nexport default $;\n","import { MduiStatic } from './interfaces/MduiStatic';\nimport $ from 'mdui.jq/es/$';\n\n// 避免页面加载完后直接执行css动画\n// https://css-tricks.com/transitions-only-after-page-load/\nsetTimeout(() => $('body').addClass('mdui-loaded'));\n\nconst mdui = {\n $: $,\n} as MduiStatic;\n\nexport default mdui;\n","import { toElement } from '../utils';\n/**\n * 检查 container 元素内是否包含 contains 元素\n * @param container 父元素\n * @param contains 子元素\n * @example\n```js\ncontains( document, document.body ); // true\ncontains( document.getElementById('test'), document ); // false\ncontains( $('.container').get(0), $('.contains').get(0) ); // false\n```\n */\nfunction contains(container, contains) {\n return container !== contains && toElement(container).contains(contains);\n}\nexport default contains;\n","import each from './each';\n/**\n * 把第二个数组的元素追加到第一个数组中,并返回合并后的数组\n * @param first 第一个数组\n * @param second 该数组的元素将被追加到第一个数组中\n * @example\n```js\nmerge( [ 0, 1, 2 ], [ 2, 3, 4 ] )\n// [ 0, 1, 2, 2, 3, 4 ]\n```\n */\nfunction merge(first, second) {\n each(second, (_, value) => {\n first.push(value);\n });\n return first;\n}\nexport default merge;\n","import $ from '../$';\nimport each from '../functions/each';\n$.fn.each = function (callback) {\n return each(this, callback);\n};\n","import $ from '../$';\n$.fn.get = function (index) {\n return index === undefined\n ? [].slice.call(this)\n : this[index >= 0 ? index : index + this.length];\n};\n","import $ from '../$';\nimport merge from '../functions/merge';\nimport { JQ } from '../JQ';\nimport './each';\nimport './get';\n$.fn.find = function (selector) {\n const foundElements = [];\n this.each((_, element) => {\n merge(foundElements, $(element.querySelectorAll(selector)).get());\n });\n return new JQ(foundElements);\n};\n","import $ from '../../$';\nimport contains from '../../functions/contains';\nimport { isObjectLike } from '../../utils';\nimport '../find';\n// 存储事件\nconst handlers = {};\n// 元素ID\nlet mduiElementId = 1;\n/**\n * 为元素赋予一个唯一的ID\n */\nfunction getElementId(element) {\n const key = '_mduiEventId';\n // @ts-ignore\n if (!element[key]) {\n // @ts-ignore\n element[key] = ++mduiElementId;\n }\n // @ts-ignore\n return element[key];\n}\n/**\n * 解析事件名中的命名空间\n */\nfunction parse(type) {\n const parts = type.split('.');\n return {\n type: parts[0],\n ns: parts.slice(1).sort().join(' '),\n };\n}\n/**\n * 命名空间匹配规则\n */\nfunction matcherFor(ns) {\n return new RegExp('(?:^| )' + ns.replace(' ', ' .* ?') + '(?: |$)');\n}\n/**\n * 获取匹配的事件\n * @param element\n * @param type\n * @param func\n * @param selector\n */\nfunction getHandlers(element, type, func, selector) {\n const event = parse(type);\n return (handlers[getElementId(element)] || []).filter((handler) => handler &&\n (!event.type || handler.type === event.type) &&\n (!event.ns || matcherFor(event.ns).test(handler.ns)) &&\n (!func || getElementId(handler.func) === getElementId(func)) &&\n (!selector || handler.selector === selector));\n}\n/**\n * 添加事件监听\n * @param element\n * @param types\n * @param func\n * @param data\n * @param selector\n */\nfunction add(element, types, func, data, selector) {\n const elementId = getElementId(element);\n if (!handlers[elementId]) {\n handlers[elementId] = [];\n }\n // 传入 data.useCapture 来设置 useCapture: true\n let useCapture = false;\n if (isObjectLike(data) && data.useCapture) {\n useCapture = true;\n }\n types.split(' ').forEach((type) => {\n if (!type) {\n return;\n }\n const event = parse(type);\n function callFn(e, elem) {\n // 因为鼠标事件模拟事件的 detail 属性是只读的,因此在 e._detail 中存储参数\n const result = func.apply(elem, \n // @ts-ignore\n e._detail === undefined ? [e] : [e].concat(e._detail));\n if (result === false) {\n e.preventDefault();\n e.stopPropagation();\n }\n }\n function proxyFn(e) {\n // @ts-ignore\n if (e._ns && !matcherFor(e._ns).test(event.ns)) {\n return;\n }\n // @ts-ignore\n e._data = data;\n if (selector) {\n // 事件代理\n $(element)\n .find(selector)\n .get()\n .reverse()\n .forEach((elem) => {\n if (elem === e.target ||\n contains(elem, e.target)) {\n callFn(e, elem);\n }\n });\n }\n else {\n // 不使用事件代理\n callFn(e, element);\n }\n }\n const handler = {\n type: event.type,\n ns: event.ns,\n func,\n selector,\n id: handlers[elementId].length,\n proxy: proxyFn,\n };\n handlers[elementId].push(handler);\n element.addEventListener(handler.type, proxyFn, useCapture);\n });\n}\n/**\n * 移除事件监听\n * @param element\n * @param types\n * @param func\n * @param selector\n */\nfunction remove(element, types, func, selector) {\n const handlersInElement = handlers[getElementId(element)] || [];\n const removeEvent = (handler) => {\n delete handlersInElement[handler.id];\n element.removeEventListener(handler.type, handler.proxy, false);\n };\n if (!types) {\n handlersInElement.forEach((handler) => removeEvent(handler));\n }\n else {\n types.split(' ').forEach((type) => {\n if (type) {\n getHandlers(element, type, func, selector).forEach((handler) => removeEvent(handler));\n }\n });\n }\n}\nexport { parse, add, remove };\n","import each from '../functions/each';\nimport { isUndefined } from '../utils';\nfunction extend(target, object1, ...objectN) {\n objectN.unshift(object1);\n each(objectN, (_, object) => {\n each(object, (prop, value) => {\n if (!isUndefined(value)) {\n target[prop] = value;\n }\n });\n });\n return target;\n}\nexport default extend;\n","import { isObjectLike } from '../utils';\nimport each from './each';\n/**\n * 将数组或对象序列化,序列化后的字符串可作为 URL 查询字符串使用\n *\n * 若传入数组,则格式必须和 serializeArray 方法的返回值一样\n * @param obj 对象或数组\n * @example\n```js\nparam({ width: 1680, height: 1050 });\n// width=1680&height=1050\n```\n * @example\n```js\nparam({ foo: { one: 1, two: 2 }})\n// foo[one]=1&foo[two]=2\n```\n * @example\n```js\nparam({ids: [1, 2, 3]})\n// ids[]=1&ids[]=2&ids[]=3\n```\n * @example\n```js\nparam([\n {\"name\":\"name\",\"value\":\"mdui\"},\n {\"name\":\"password\",\"value\":\"123456\"}\n])\n// name=mdui&password=123456\n```\n */\nfunction param(obj) {\n if (!isObjectLike(obj) && !Array.isArray(obj)) {\n return '';\n }\n const args = [];\n function destructure(key, value) {\n let keyTmp;\n if (isObjectLike(value)) {\n each(value, (i, v) => {\n if (Array.isArray(value) && !isObjectLike(v)) {\n keyTmp = '';\n }\n else {\n keyTmp = i;\n }\n destructure(`${key}[${keyTmp}]`, v);\n });\n }\n else {\n if (value == null || value === '') {\n keyTmp = '=';\n }\n else {\n keyTmp = `=${encodeURIComponent(value)}`;\n }\n args.push(encodeURIComponent(key) + keyTmp);\n }\n }\n if (Array.isArray(obj)) {\n each(obj, function () {\n destructure(this.name, this.value);\n });\n }\n else {\n each(obj, destructure);\n }\n return args.join('&');\n}\nexport default param;\n","import $ from '../$';\nimport './each';\nimport { parse } from './utils/event';\n$.fn.trigger = function (type, extraParameters) {\n const event = parse(type);\n let eventObject;\n const eventParams = {\n bubbles: true,\n cancelable: true,\n };\n const isMouseEvent = ['click', 'mousedown', 'mouseup', 'mousemove'].indexOf(event.type) > -1;\n if (isMouseEvent) {\n // Note: MouseEvent 无法传入 detail 参数\n eventObject = new MouseEvent(event.type, eventParams);\n }\n else {\n eventParams.detail = extraParameters;\n eventObject = new CustomEvent(event.type, eventParams);\n }\n // @ts-ignore\n eventObject._detail = extraParameters;\n // @ts-ignore\n eventObject._ns = event.ns;\n return this.each(function () {\n this.dispatchEvent(eventObject);\n });\n};\n","// 全局配置参数\nconst globalOptions = {};\n// 全局事件名\nconst ajaxEvents = {\n ajaxStart: 'start.mdui.ajax',\n ajaxSuccess: 'success.mdui.ajax',\n ajaxError: 'error.mdui.ajax',\n ajaxComplete: 'complete.mdui.ajax',\n};\nexport { globalOptions, ajaxEvents };\n","import $ from '../$';\nimport '../methods/trigger';\nimport { isString, isUndefined } from '../utils';\nimport each from './each';\nimport extend from './extend';\nimport param from './param';\nimport { ajaxEvents, globalOptions } from './utils/ajax';\n/**\n * 判断此请求方法是否通过查询字符串提交参数\n * @param method 请求方法,大写\n */\nfunction isQueryStringData(method) {\n return ['GET', 'HEAD'].indexOf(method) >= 0;\n}\n/**\n * 添加参数到 URL 上,且 URL 中不存在 ? 时,自动把第一个 & 替换为 ?\n * @param url\n * @param query\n */\nfunction appendQuery(url, query) {\n return `${url}&${query}`.replace(/[&?]{1,2}/, '?');\n}\n/**\n * 合并请求参数,参数优先级:options > globalOptions > defaults\n * @param options\n */\nfunction mergeOptions(options) {\n // 默认参数\n const defaults = {\n url: '',\n method: 'GET',\n data: '',\n processData: true,\n async: true,\n cache: true,\n username: '',\n password: '',\n headers: {},\n xhrFields: {},\n statusCode: {},\n dataType: 'text',\n contentType: 'application/x-www-form-urlencoded',\n timeout: 0,\n global: true,\n };\n // globalOptions 中的回调函数不合并\n each(globalOptions, (key, value) => {\n const callbacks = [\n 'beforeSend',\n 'success',\n 'error',\n 'complete',\n 'statusCode',\n ];\n // @ts-ignore\n if (callbacks.indexOf(key) < 0 && !isUndefined(value)) {\n defaults[key] = value;\n }\n });\n return extend({}, defaults, options);\n}\n/**\n * 发送 ajax 请求\n * @param options\n * @example\n```js\najax({\n method: \"POST\",\n url: \"some.php\",\n data: { name: \"John\", location: \"Boston\" }\n}).then(function( msg ) {\n alert( \"Data Saved: \" + msg );\n});\n```\n */\nfunction ajax(options) {\n // 是否已取消请求\n let isCanceled = false;\n // 事件参数\n const eventParams = {};\n // 参数合并\n const mergedOptions = mergeOptions(options);\n let url = mergedOptions.url || window.location.toString();\n const method = mergedOptions.method.toUpperCase();\n let data = mergedOptions.data;\n const processData = mergedOptions.processData;\n const async = mergedOptions.async;\n const cache = mergedOptions.cache;\n const username = mergedOptions.username;\n const password = mergedOptions.password;\n const headers = mergedOptions.headers;\n const xhrFields = mergedOptions.xhrFields;\n const statusCode = mergedOptions.statusCode;\n const dataType = mergedOptions.dataType;\n const contentType = mergedOptions.contentType;\n const timeout = mergedOptions.timeout;\n const global = mergedOptions.global;\n // 需要发送的数据\n // GET/HEAD 请求和 processData 为 true 时,转换为查询字符串格式,特殊格式不转换\n if (data &&\n (isQueryStringData(method) || processData) &&\n !isString(data) &&\n !(data instanceof ArrayBuffer) &&\n !(data instanceof Blob) &&\n !(data instanceof Document) &&\n !(data instanceof FormData)) {\n data = param(data);\n }\n // 对于 GET、HEAD 类型的请求,把 data 数据添加到 URL 中\n if (data && isQueryStringData(method)) {\n // 查询字符串拼接到 URL 中\n url = appendQuery(url, data);\n data = null;\n }\n /**\n * 触发事件和回调函数\n * @param event\n * @param params\n * @param callback\n * @param args\n */\n function trigger(event, params, callback, ...args) {\n // 触发全局事件\n if (global) {\n $(document).trigger(event, params);\n }\n // 触发 ajax 回调和事件\n let result1;\n let result2;\n if (callback) {\n // 全局回调\n if (callback in globalOptions) {\n // @ts-ignore\n result1 = globalOptions[callback](...args);\n }\n // 自定义回调\n if (mergedOptions[callback]) {\n // @ts-ignore\n result2 = mergedOptions[callback](...args);\n }\n // beforeSend 回调返回 false 时取消 ajax 请求\n if (callback === 'beforeSend' &&\n (result1 === false || result2 === false)) {\n isCanceled = true;\n }\n }\n }\n // XMLHttpRequest 请求\n function XHR() {\n let textStatus;\n return new Promise((resolve, reject) => {\n // GET/HEAD 请求的缓存处理\n if (isQueryStringData(method) && !cache) {\n url = appendQuery(url, `_=${Date.now()}`);\n }\n // 创建 XHR\n const xhr = new XMLHttpRequest();\n xhr.open(method, url, async, username, password);\n if (contentType ||\n (data && !isQueryStringData(method) && contentType !== false)) {\n xhr.setRequestHeader('Content-Type', contentType);\n }\n // 设置 Accept\n if (dataType === 'json') {\n xhr.setRequestHeader('Accept', 'application/json, text/javascript');\n }\n // 添加 headers\n if (headers) {\n each(headers, (key, value) => {\n // undefined 值不发送,string 和 null 需要发送\n if (!isUndefined(value)) {\n xhr.setRequestHeader(key, value + ''); // 把 null 转换成字符串\n }\n });\n }\n // 检查是否是跨域请求,跨域请求时不添加 X-Requested-With\n const crossDomain = /^([\\w-]+:)?\\/\\/([^/]+)/.test(url) &&\n RegExp.$2 !== window.location.host;\n if (!crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n }\n if (xhrFields) {\n each(xhrFields, (key, value) => {\n // @ts-ignore\n xhr[key] = value;\n });\n }\n eventParams.xhr = xhr;\n eventParams.options = mergedOptions;\n let xhrTimeout;\n xhr.onload = function () {\n if (xhrTimeout) {\n clearTimeout(xhrTimeout);\n }\n // AJAX 返回的 HTTP 响应码是否表示成功\n const isHttpStatusSuccess = (xhr.status >= 200 && xhr.status < 300) ||\n xhr.status === 304 ||\n xhr.status === 0;\n let responseData;\n if (isHttpStatusSuccess) {\n if (xhr.status === 204 || method === 'HEAD') {\n textStatus = 'nocontent';\n }\n else if (xhr.status === 304) {\n textStatus = 'notmodified';\n }\n else {\n textStatus = 'success';\n }\n if (dataType === 'json') {\n try {\n responseData =\n method === 'HEAD' ? undefined : JSON.parse(xhr.responseText);\n eventParams.data = responseData;\n }\n catch (err) {\n textStatus = 'parsererror';\n trigger(ajaxEvents.ajaxError, eventParams, 'error', xhr, textStatus);\n reject(new Error(textStatus));\n }\n if (textStatus !== 'parsererror') {\n trigger(ajaxEvents.ajaxSuccess, eventParams, 'success', responseData, textStatus, xhr);\n resolve(responseData);\n }\n }\n else {\n responseData =\n method === 'HEAD'\n ? undefined\n : xhr.responseType === 'text' || xhr.responseType === ''\n ? xhr.responseText\n : xhr.response;\n eventParams.data = responseData;\n trigger(ajaxEvents.ajaxSuccess, eventParams, 'success', responseData, textStatus, xhr);\n resolve(responseData);\n }\n }\n else {\n textStatus = 'error';\n trigger(ajaxEvents.ajaxError, eventParams, 'error', xhr, textStatus);\n reject(new Error(textStatus));\n }\n // statusCode\n each([globalOptions.statusCode, statusCode], (_, func) => {\n if (func && func[xhr.status]) {\n if (isHttpStatusSuccess) {\n func[xhr.status](responseData, textStatus, xhr);\n }\n else {\n func[xhr.status](xhr, textStatus);\n }\n }\n });\n trigger(ajaxEvents.ajaxComplete, eventParams, 'complete', xhr, textStatus);\n };\n xhr.onerror = function () {\n if (xhrTimeout) {\n clearTimeout(xhrTimeout);\n }\n trigger(ajaxEvents.ajaxError, eventParams, 'error', xhr, xhr.statusText);\n trigger(ajaxEvents.ajaxComplete, eventParams, 'complete', xhr, 'error');\n reject(new Error(xhr.statusText));\n };\n xhr.onabort = function () {\n let statusText = 'abort';\n if (xhrTimeout) {\n statusText = 'timeout';\n clearTimeout(xhrTimeout);\n }\n trigger(ajaxEvents.ajaxError, eventParams, 'error', xhr, statusText);\n trigger(ajaxEvents.ajaxComplete, eventParams, 'complete', xhr, statusText);\n reject(new Error(statusText));\n };\n // ajax start 回调\n trigger(ajaxEvents.ajaxStart, eventParams, 'beforeSend', xhr);\n if (isCanceled) {\n reject(new Error('cancel'));\n return;\n }\n // Timeout\n if (timeout > 0) {\n xhrTimeout = setTimeout(() => {\n xhr.abort();\n }, timeout);\n }\n // 发送 XHR\n xhr.send(data);\n });\n }\n return XHR();\n}\nexport default ajax;\n","import $ from '../$';\nimport ajax from '../functions/ajax';\n$.ajax = ajax;\n","import $ from '../$';\nimport ajaxSetup from '../functions/ajaxSetup';\n$.ajaxSetup = ajaxSetup;\n","import extend from '../functions/extend';\nimport { globalOptions } from './utils/ajax';\n/**\n * 为 Ajax 请求设置全局配置参数\n * @param options 键值对参数\n * @example\n```js\najaxSetup({\n dataType: 'json',\n method: 'POST',\n});\n```\n */\nfunction ajaxSetup(options) {\n return extend(globalOptions, options);\n}\nexport default ajaxSetup;\n","import $ from '../$';\nimport contains from '../functions/contains';\n$.contains = contains;\n","const dataNS = '_mduiElementDataStorage';\nexport default dataNS;\n","import { isObjectLike, isUndefined, toCamelCase } from '../utils';\nimport each from './each';\nimport dataNS from './utils/data';\n/**\n * 在元素上设置键值对数据\n * @param element\n * @param object\n */\nfunction setObjectToElement(element, object) {\n // @ts-ignore\n if (!element[dataNS]) {\n // @ts-ignore\n element[dataNS] = {};\n }\n each(object, (key, value) => {\n // @ts-ignore\n element[dataNS][toCamelCase(key)] = value;\n });\n}\nfunction data(element, key, value) {\n // 根据键值对设置值\n // data(element, { 'key' : 'value' })\n if (isObjectLike(key)) {\n setObjectToElement(element, key);\n return key;\n }\n // 根据 key、value 设置值\n // data(element, 'key', 'value')\n if (!isUndefined(value)) {\n setObjectToElement(element, { [key]: value });\n return value;\n }\n // 获取所有值\n // data(element)\n if (isUndefined(key)) {\n // @ts-ignore\n return element[dataNS] ? element[dataNS] : {};\n }\n // 从 dataNS 中获取指定值\n // data(element, 'key')\n key = toCamelCase(key);\n // @ts-ignore\n if (element[dataNS] && key in element[dataNS]) {\n // @ts-ignore\n return element[dataNS][key];\n }\n return undefined;\n}\nexport default data;\n","import each from './each';\nfunction map(elements, callback) {\n let value;\n const ret = [];\n each(elements, (i, element) => {\n value = callback.call(window, element, i);\n if (value != null) {\n ret.push(value);\n }\n });\n return [].concat(...ret);\n}\nexport default map;\n","import each from '../functions/each';\nimport { isUndefined, isString, toCamelCase } from '../utils';\nimport dataNS from './utils/data';\n/**\n * 移除指定元素上存放的数据\n * @param element 存放数据的元素\n * @param name\n * 数据键名\n *\n * 若未指定键名,将移除元素上所有数据\n *\n * 多个键名可以用空格分隔,或者用数组表示多个键名\n @example\n```js\n// 移除元素上键名为 name 的数据\nremoveData(document.body, 'name');\n```\n * @example\n```js\n// 移除元素上键名为 name1 和 name2 的数据\nremoveData(document.body, 'name1 name2');\n```\n * @example\n```js\n// 移除元素上键名为 name1 和 name2 的数据\nremoveData(document.body, ['name1', 'name2']);\n```\n * @example\n```js\n// 移除元素上所有数据\nremoveData(document.body);\n```\n */\nfunction removeData(element, name) {\n // @ts-ignore\n if (!element[dataNS]) {\n return;\n }\n const remove = (nameItem) => {\n nameItem = toCamelCase(nameItem);\n // @ts-ignore\n if (element[dataNS][nameItem]) {\n // @ts-ignore\n element[dataNS][nameItem] = null;\n // @ts-ignore\n delete element[dataNS][nameItem];\n }\n };\n if (isUndefined(name)) {\n // @ts-ignore\n element[dataNS] = null;\n // @ts-ignore\n delete element[dataNS];\n // @ts-ignore\n }\n else if (isString(name)) {\n name\n .split(' ')\n .filter((nameItem) => nameItem)\n .forEach((nameItem) => remove(nameItem));\n }\n else {\n each(name, (_, nameItem) => remove(nameItem));\n }\n}\nexport default removeData;\n","import each from './each';\n/**\n * 过滤掉数组中的重复元素\n * @param arr 数组\n * @example\n```js\nunique([1, 2, 12, 3, 2, 1, 2, 1, 1]);\n// [1, 2, 12, 3]\n```\n */\nfunction unique(arr) {\n const result = [];\n each(arr, (_, val) => {\n if (result.indexOf(val) === -1) {\n result.push(val);\n }\n });\n return result;\n}\nexport default unique;\n","import $ from '../../$';\nimport unique from '../../functions/unique';\nimport { JQ } from '../../JQ';\nimport { isElement } from '../../utils';\nimport '../each';\nimport '../is';\nexport default function dir($elements, nameIndex, node, selector, filter) {\n const ret = [];\n let target;\n $elements.each((_, element) => {\n target = element[node];\n // 不能包含最顶层的 document 元素\n while (target && isElement(target)) {\n // prevUntil, nextUntil, parentsUntil\n if (nameIndex === 2) {\n if (selector && $(target).is(selector)) {\n break;\n }\n if (!filter || $(target).is(filter)) {\n ret.push(target);\n }\n }\n // prev, next, parent\n else if (nameIndex === 0) {\n if (!selector || $(target).is(selector)) {\n ret.push(target);\n }\n break;\n }\n // prevAll, nextAll, parents\n else {\n if (!selector || $(target).is(selector)) {\n ret.push(target);\n }\n }\n // @ts-ignore\n target = target[node];\n }\n });\n return new JQ(unique(ret));\n}\n","import $ from '../$';\nimport data from '../functions/data';\n$.data = data;\n","import $ from '../$';\nimport each from '../functions/each';\n$.each = each;\n","import $ from '../$';\nimport each from '../functions/each';\nimport extend from '../functions/extend';\n$.extend = function (...objectN) {\n if (objectN.length === 1) {\n each(objectN[0], (prop, value) => {\n this[prop] = value;\n });\n return this;\n }\n return extend(objectN.shift(), objectN.shift(), ...objectN);\n};\n","import $ from '../$';\nimport map from '../functions/map';\n$.map = map;\n","import $ from '../$';\nimport merge from '../functions/merge';\n$.merge = merge;\n","import $ from '../$';\nimport param from '../functions/param';\n$.param = param;\n","import $ from '../$';\nimport removeData from '../functions/removeData';\n$.removeData = removeData;\n","import $ from '../$';\nimport unique from '../functions/unique';\n$.unique = unique;\n","import $ from '../$';\nimport merge from '../functions/merge';\nimport unique from '../functions/unique';\nimport { JQ } from '../JQ';\nimport './get';\n$.fn.add = function (selector) {\n return new JQ(unique(merge(this.get(), $(selector).get())));\n};\n","import $ from '../$';\nimport each from '../functions/each';\nimport { isElement, isFunction } from '../utils';\nimport './each';\neach(['add', 'remove', 'toggle'], (_, name) => {\n $.fn[`${name}Class`] = function (className) {\n if (name === 'remove' && !arguments.length) {\n return this.each((_, element) => {\n element.setAttribute('class', '');\n });\n }\n return this.each((i, element) => {\n if (!isElement(element)) {\n return;\n }\n const classes = (isFunction(className)\n ? className.call(element, i, element.getAttribute('class') || '')\n : className)\n .split(' ')\n .filter((name) => name);\n each(classes, (_, cls) => {\n element.classList[name](cls);\n });\n });\n };\n});\n","import $ from '../$';\nimport each from '../functions/each';\nimport './each';\neach(['insertBefore', 'insertAfter'], (nameIndex, name) => {\n $.fn[name] = function (target) {\n const $element = nameIndex ? $(this.get().reverse()) : this; // 顺序和 jQuery 保持一致\n const $target = $(target);\n const result = [];\n $target.each((index, target) => {\n if (!target.parentNode) {\n return;\n }\n $element.each((_, element) => {\n const newItem = index\n ? element.cloneNode(true)\n : element;\n const existingItem = nameIndex ? target.nextSibling : target;\n result.push(newItem);\n target.parentNode.insertBefore(newItem, existingItem);\n });\n });\n return $(nameIndex ? result.reverse() : result);\n };\n});\n","import $ from '../$';\nimport each from '../functions/each';\nimport { getChildNodesArray, isFunction, isString, isElement } from '../utils';\nimport './each';\nimport './insertAfter';\nimport './insertBefore';\n/**\n * 是否不是 HTML 字符串(包裹在 <> 中)\n * @param target\n */\nfunction isPlainText(target) {\n return (isString(target) && (target[0] !== '<' || target[target.length - 1] !== '>'));\n}\neach(['before', 'after'], (nameIndex, name) => {\n $.fn[name] = function (...args) {\n // after 方法,多个参数需要按参数顺序添加到元素后面,所以需要将参数顺序反向处理\n if (nameIndex === 1) {\n args = args.reverse();\n }\n return this.each((index, element) => {\n const targets = isFunction(args[0])\n ? [args[0].call(element, index, element.innerHTML)]\n : args;\n each(targets, (_, target) => {\n let $target;\n if (isPlainText(target)) {\n $target = $(getChildNodesArray(target, 'div'));\n }\n else if (index && isElement(target)) {\n $target = $(target.cloneNode(true));\n }\n else {\n $target = $(target);\n }\n $target[nameIndex ? 'insertAfter' : 'insertBefore'](element);\n });\n });\n };\n});\n","import $ from '../$';\nimport each from '../functions/each';\nimport { isFunction, isObjectLike, returnFalse } from '../utils';\nimport './each';\nimport { remove } from './utils/event';\n$.fn.off = function (types, selector, callback) {\n // types 是对象\n if (isObjectLike(types)) {\n each(types, (type, fn) => {\n // this.off('click', undefined, function () {})\n // this.off('click', '.box', function () {})\n this.off(type, selector, fn);\n });\n return this;\n }\n // selector 不存在\n if (selector === false || isFunction(selector)) {\n callback = selector;\n selector = undefined;\n // this.off('click', undefined, function () {})\n }\n // callback 传入 `false`,相当于 `return false`\n if (callback === false) {\n callback = returnFalse;\n }\n return this.each(function () {\n remove(this, types, callback, selector);\n });\n};\n","import $ from '../$';\nimport each from '../functions/each';\nimport { isObjectLike, isString, returnFalse } from '../utils';\nimport './each';\nimport './off';\nimport { add } from './utils/event';\n$.fn.on = function (types, selector, data, callback, one) {\n // types 可以是 type/func 对象\n if (isObjectLike(types)) {\n // (types-Object, selector, data)\n if (!isString(selector)) {\n // (types-Object, data)\n data = data || selector;\n selector = undefined;\n }\n each(types, (type, fn) => {\n // selector 和 data 都可能是 undefined\n // @ts-ignore\n this.on(type, selector, data, fn, one);\n });\n return this;\n }\n if (data == null && callback == null) {\n // (types, fn)\n callback = selector;\n data = selector = undefined;\n }\n else if (callback == null) {\n if (isString(selector)) {\n // (types, selector, fn)\n callback = data;\n data = undefined;\n }\n else {\n // (types, data, fn)\n callback = data;\n data = selector;\n selector = undefined;\n }\n }\n if (callback === false) {\n callback = returnFalse;\n }\n else if (!callback) {\n return this;\n }\n // $().one()\n if (one) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const _this = this;\n const origCallback = callback;\n callback = function (event) {\n _this.off(event.type, selector, callback);\n // eslint-disable-next-line prefer-rest-params\n return origCallback.apply(this, arguments);\n };\n }\n return this.each(function () {\n add(this, types, callback, data, selector);\n });\n};\n","import $ from '../$';\nimport each from '../functions/each';\nimport { ajaxEvents } from '../functions/utils/ajax';\nimport './on';\neach(ajaxEvents, (name, eventName) => {\n $.fn[name] = function (fn) {\n return this.on(eventName, (e, params) => {\n fn(e, params.xhr, params.options, params.data);\n });\n };\n});\n","import $ from '../$';\nimport map from '../functions/map';\nimport { JQ } from '../JQ';\n$.fn.map = function (callback) {\n return new JQ(map(this, (element, i) => callback.call(element, i, element)));\n};\n","import $ from '../$';\nimport './map';\n$.fn.clone = function () {\n return this.map(function () {\n return this.cloneNode(true);\n });\n};\n","import $ from '../$';\nimport { isDocument, isFunction, isString, isWindow } from '../utils';\nimport './each';\n$.fn.is = function (selector) {\n let isMatched = false;\n if (isFunction(selector)) {\n this.each((index, element) => {\n if (selector.call(element, index, element)) {\n isMatched = true;\n }\n });\n return isMatched;\n }\n if (isString(selector)) {\n this.each((_, element) => {\n if (isDocument(element) || isWindow(element)) {\n return;\n }\n // @ts-ignore\n const matches = element.matches || element.msMatchesSelector;\n if (matches.call(element, selector)) {\n isMatched = true;\n }\n });\n return isMatched;\n }\n const $compareWith = $(selector);\n this.each((_, element) => {\n $compareWith.each((_, compare) => {\n if (element === compare) {\n isMatched = true;\n }\n });\n });\n return isMatched;\n};\n","import $ from '../$';\nimport './each';\nimport './is';\n$.fn.remove = function (selector) {\n return this.each((_, element) => {\n if (element.parentNode && (!selector || $(element).is(selector))) {\n element.parentNode.removeChild(element);\n }\n });\n};\n","import $ from '../$';\nimport each from '../functions/each';\nimport { isFunction, isString } from '../utils';\nimport './after';\nimport './before';\nimport './clone';\nimport './each';\nimport './map';\nimport './remove';\neach(['prepend', 'append'], (nameIndex, name) => {\n $.fn[name] = function (...args) {\n return this.each((index, element) => {\n const childNodes = element.childNodes;\n const childLength = childNodes.length;\n const child = childLength\n ? childNodes[nameIndex ? childLength - 1 : 0]\n : document.createElement('div');\n if (!childLength) {\n element.appendChild(child);\n }\n let contents = isFunction(args[0])\n ? [args[0].call(element, index, element.innerHTML)]\n : args;\n // 如果不是字符串,则仅第一个元素使用原始元素,其他的都克隆自第一个元素\n if (index) {\n contents = contents.map((content) => {\n return isString(content) ? content : $(content).clone();\n });\n }\n $(child)[nameIndex ? 'after' : 'before'](...contents);\n if (!childLength) {\n element.removeChild(child);\n }\n });\n };\n});\n","import $ from '../$';\nimport each from '../functions/each';\nimport './insertAfter';\nimport './insertBefore';\nimport './map';\nimport './remove';\neach(['appendTo', 'prependTo'], (nameIndex, name) => {\n $.fn[name] = function (target) {\n const extraChilds = [];\n const $target = $(target).map((_, element) => {\n const childNodes = element.childNodes;\n const childLength = childNodes.length;\n if (childLength) {\n return childNodes[nameIndex ? 0 : childLength - 1];\n }\n const child = document.createElement('div');\n element.appendChild(child);\n extraChilds.push(child);\n return child;\n });\n const $result = this[nameIndex ? 'insertBefore' : 'insertAfter']($target);\n $(extraChilds).remove();\n return $result;\n };\n});\n","import $ from '../$';\nimport each from '../functions/each';\nimport { cssNumber, getStyle, isElement, isFunction, isNull, isNumber, isObjectLike, isUndefined, toCamelCase, } from '../utils';\nimport './each';\neach(['attr', 'prop', 'css'], (nameIndex, name) => {\n function set(element, key, value) {\n // 值为 undefined 时,不修改\n if (isUndefined(value)) {\n return;\n }\n switch (nameIndex) {\n // attr\n case 0:\n if (isNull(value)) {\n element.removeAttribute(key);\n }\n else {\n element.setAttribute(key, value);\n }\n break;\n // prop\n case 1:\n // @ts-ignore\n element[key] = value;\n break;\n // css\n default:\n key = toCamelCase(key);\n // @ts-ignore\n element.style[key] = isNumber(value)\n ? `${value}${cssNumber.indexOf(key) > -1 ? '' : 'px'}`\n : value;\n break;\n }\n }\n function get(element, key) {\n switch (nameIndex) {\n // attr\n case 0:\n // 属性不存在时,原生 getAttribute 方法返回 null,而 jquery 返回 undefined。这里和 jquery 保持一致\n const value = element.getAttribute(key);\n return isNull(value) ? undefined : value;\n // prop\n case 1:\n // @ts-ignore\n return element[key];\n // css\n default:\n return getStyle(element, key);\n }\n }\n $.fn[name] = function (key, value) {\n if (isObjectLike(key)) {\n each(key, (k, v) => {\n // @ts-ignore\n this[name](k, v);\n });\n return this;\n }\n if (arguments.length === 1) {\n const element = this[0];\n return isElement(element) ? get(element, key) : undefined;\n }\n return this.each((i, element) => {\n set(element, key, isFunction(value) ? value.call(element, i, get(element, key)) : value);\n });\n };\n});\n","import $ from '../$';\nimport each from '../functions/each';\nimport unique from '../functions/unique';\nimport { JQ } from '../JQ';\nimport { isElement } from '../utils';\nimport './each';\nimport './is';\n$.fn.children = function (selector) {\n const children = [];\n this.each((_, element) => {\n each(element.childNodes, (__, childNode) => {\n if (!isElement(childNode)) {\n return;\n }\n if (!selector || $(childNode).is(selector)) {\n children.push(childNode);\n }\n });\n });\n return new JQ(unique(children));\n};\n","import $ from '../$';\nimport { JQ } from '../JQ';\n$.fn.slice = function (...args) {\n return new JQ([].slice.apply(this, args));\n};\n","import $ from '../$';\nimport { JQ } from '../JQ';\nimport './slice';\n$.fn.eq = function (index) {\n const ret = index === -1 ? this.slice(index) : this.slice(index, +index + 1);\n return new JQ(ret);\n};\n","import $ from '../$';\nimport each from '../functions/each';\nimport './get';\nimport dir from './utils/dir';\neach(['', 's', 'sUntil'], (nameIndex, name) => {\n $.fn[`parent${name}`] = function (selector, filter) {\n // parents、parentsUntil 需要把元素的顺序反向处理,以便和 jQuery 的结果一致\n const $nodes = !nameIndex ? this : $(this.get().reverse());\n return dir($nodes, nameIndex, 'parentNode', selector, filter);\n };\n});\n","import $ from '../$';\nimport { JQ } from '../JQ';\nimport './eq';\nimport './is';\nimport './parents';\n$.fn.closest = function (selector) {\n if (this.is(selector)) {\n return this;\n }\n const matched = [];\n this.parents().each((_, element) => {\n if ($(element).is(selector)) {\n matched.push(element);\n return false;\n }\n });\n return new JQ(matched);\n};\n","import $ from '../$';\nimport data from '../functions/data';\nimport { isObjectLike, isString, isUndefined, toCamelCase, toKebabCase, } from '../utils';\nimport './each';\nconst rbrace = /^(?:{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/;\n// 从 `data-*` 中获取的值,需要经过该函数转换\nfunction getData(value) {\n if (value === 'true') {\n return true;\n }\n if (value === 'false') {\n return false;\n }\n if (value === 'null') {\n return null;\n }\n if (value === +value + '') {\n return +value;\n }\n if (rbrace.test(value)) {\n return JSON.parse(value);\n }\n return value;\n}\n// 若 value 不存在,则从 `data-*` 中获取值\nfunction dataAttr(element, key, value) {\n if (isUndefined(value) && element.nodeType === 1) {\n const name = 'data-' + toKebabCase(key);\n value = element.getAttribute(name);\n if (isString(value)) {\n try {\n value = getData(value);\n }\n catch (e) { }\n }\n else {\n value = undefined;\n }\n }\n return value;\n}\n$.fn.data = function (key, value) {\n // 获取所有值\n if (isUndefined(key)) {\n if (!this.length) {\n return undefined;\n }\n const element = this[0];\n const resultData = data(element);\n // window, document 上不存在 `data-*` 属性\n if (element.nodeType !== 1) {\n return resultData;\n }\n // 从 `data-*` 中获取值\n const attrs = element.attributes;\n let i = attrs.length;\n while (i--) {\n if (attrs[i]) {\n let name = attrs[i].name;\n if (name.indexOf('data-') === 0) {\n name = toCamelCase(name.slice(5));\n resultData[name] = dataAttr(element, name, resultData[name]);\n }\n }\n }\n return resultData;\n }\n // 同时设置多个值\n if (isObjectLike(key)) {\n return this.each(function () {\n data(this, key);\n });\n }\n // value 传入了 undefined\n if (arguments.length === 2 && isUndefined(value)) {\n return this;\n }\n // 设置值\n if (!isUndefined(value)) {\n return this.each(function () {\n data(this, key, value);\n });\n }\n // 获取值\n if (!this.length) {\n return undefined;\n }\n return dataAttr(this[0], key, data(this[0], key));\n};\n","import $ from '../$';\nimport each from '../functions/each';\nimport { isBoolean, isDocument, isFunction, isWindow, toElement, isBorderBox, getExtraWidth, getComputedStyleValue, isIE, } from '../utils';\nimport './css';\nimport './each';\n/**\n * 值上面的 padding、border、margin 处理\n * @param element\n * @param name\n * @param value\n * @param funcIndex\n * @param includeMargin\n * @param multiply\n */\nfunction handleExtraWidth(element, name, value, funcIndex, includeMargin, multiply) {\n // 获取元素的 padding, border, margin 宽度(两侧宽度的和)\n const getExtraWidthValue = (extra) => {\n return (getExtraWidth(element, name.toLowerCase(), extra) *\n multiply);\n };\n if (funcIndex === 2 && includeMargin) {\n value += getExtraWidthValue('margin');\n }\n if (isBorderBox(element)) {\n // IE 为 box-sizing: border-box 时,得到的值不含 border 和 padding,这里先修复\n // 仅获取时需要处理,multiply === 1 为 get\n if (isIE() && multiply === 1) {\n value += getExtraWidthValue('border');\n value += getExtraWidthValue('padding');\n }\n if (funcIndex === 0) {\n value -= getExtraWidthValue('border');\n }\n if (funcIndex === 1) {\n value -= getExtraWidthValue('border');\n value -= getExtraWidthValue('padding');\n }\n }\n else {\n if (funcIndex === 0) {\n value += getExtraWidthValue('padding');\n }\n if (funcIndex === 2) {\n value += getExtraWidthValue('border');\n value += getExtraWidthValue('padding');\n }\n }\n return value;\n}\n/**\n * 获取元素的样式值\n * @param element\n * @param name\n * @param funcIndex 0: innerWidth, innerHeight; 1: width, height; 2: outerWidth, outerHeight\n * @param includeMargin\n */\nfunction get(element, name, funcIndex, includeMargin) {\n const clientProp = `client${name}`;\n const scrollProp = `scroll${name}`;\n const offsetProp = `offset${name}`;\n const innerProp = `inner${name}`;\n // $(window).width()\n if (isWindow(element)) {\n // outerWidth, outerHeight 需要包含滚动条的宽度\n return funcIndex === 2\n ? element[innerProp]\n : toElement(document)[clientProp];\n }\n // $(document).width()\n if (isDocument(element)) {\n const doc = toElement(element);\n return Math.max(\n // @ts-ignore\n element.body[scrollProp], doc[scrollProp], \n // @ts-ignore\n element.body[offsetProp], doc[offsetProp], doc[clientProp]);\n }\n const value = parseFloat(getComputedStyleValue(element, name.toLowerCase()) || '0');\n return handleExtraWidth(element, name, value, funcIndex, includeMargin, 1);\n}\n/**\n * 设置元素的样式值\n * @param element\n * @param elementIndex\n * @param name\n * @param funcIndex 0: innerWidth, innerHeight; 1: width, height; 2: outerWidth, outerHeight\n * @param includeMargin\n * @param value\n */\nfunction set(element, elementIndex, name, funcIndex, includeMargin, value) {\n let computedValue = isFunction(value)\n ? value.call(element, elementIndex, get(element, name, funcIndex, includeMargin))\n : value;\n if (computedValue == null) {\n return;\n }\n const $element = $(element);\n const dimension = name.toLowerCase();\n // 特殊的值,不需要计算 padding、border、margin\n if (['auto', 'inherit', ''].indexOf(computedValue) > -1) {\n $element.css(dimension, computedValue);\n return;\n }\n // 其他值保留原始单位。注意:如果不使用 px 作为单位,则算出的值一般是不准确的\n const suffix = computedValue.toString().replace(/\\b[0-9.]*/, '');\n const numerical = parseFloat(computedValue);\n computedValue =\n handleExtraWidth(element, name, numerical, funcIndex, includeMargin, -1) +\n (suffix || 'px');\n $element.css(dimension, computedValue);\n}\neach(['Width', 'Height'], (_, name) => {\n each([`inner${name}`, name.toLowerCase(), `outer${name}`], (funcIndex, funcName) => {\n $.fn[funcName] = function (margin, value) {\n // 是否是赋值操作\n const isSet = arguments.length && (funcIndex < 2 || !isBoolean(margin));\n const includeMargin = margin === true || value === true;\n // 获取第一个元素的值\n if (!isSet) {\n return this.length\n ? get(this[0], name, funcIndex, includeMargin)\n : undefined;\n }\n // 设置每个元素的值\n return this.each((index, element) => set(element, index, name, funcIndex, includeMargin, margin));\n };\n });\n});\n","import $ from '../$';\nimport './css';\nimport './eq';\nimport './offset';\nimport './offsetParent';\nfunction floatStyle($element, name) {\n return parseFloat($element.css(name));\n}\n$.fn.position = function () {\n if (!this.length) {\n return undefined;\n }\n const $element = this.eq(0);\n let currentOffset;\n let parentOffset = {\n left: 0,\n top: 0,\n };\n if ($element.css('position') === 'fixed') {\n currentOffset = $element[0].getBoundingClientRect();\n }\n else {\n currentOffset = $element.offset();\n const $offsetParent = $element.offsetParent();\n parentOffset = $offsetParent.offset();\n parentOffset.top += floatStyle($offsetParent, 'border-top-width');\n parentOffset.left += floatStyle($offsetParent, 'border-left-width');\n }\n return {\n top: currentOffset.top - parentOffset.top - floatStyle($element, 'margin-top'),\n left: currentOffset.left -\n parentOffset.left -\n floatStyle($element, 'margin-left'),\n };\n};\n","import $ from '../$';\nimport extend from '../functions/extend';\nimport { isFunction } from '../utils';\nimport './css';\nimport './each';\nimport './position';\nfunction get(element) {\n if (!element.getClientRects().length) {\n return { top: 0, left: 0 };\n }\n const rect = element.getBoundingClientRect();\n const win = element.ownerDocument.defaultView;\n return {\n top: rect.top + win.pageYOffset,\n left: rect.left + win.pageXOffset,\n };\n}\nfunction set(element, value, index) {\n const $element = $(element);\n const position = $element.css('position');\n if (position === 'static') {\n $element.css('position', 'relative');\n }\n const currentOffset = get(element);\n const currentTopString = $element.css('top');\n const currentLeftString = $element.css('left');\n let currentTop;\n let currentLeft;\n const calculatePosition = (position === 'absolute' || position === 'fixed') &&\n (currentTopString + currentLeftString).indexOf('auto') > -1;\n if (calculatePosition) {\n const currentPosition = $element.position();\n currentTop = currentPosition.top;\n currentLeft = currentPosition.left;\n }\n else {\n currentTop = parseFloat(currentTopString);\n currentLeft = parseFloat(currentLeftString);\n }\n const computedValue = isFunction(value)\n ? value.call(element, index, extend({}, currentOffset))\n : value;\n $element.css({\n top: computedValue.top != null\n ? computedValue.top - currentOffset.top + currentTop\n : undefined,\n left: computedValue.left != null\n ? computedValue.left - currentOffset.left + currentLeft\n : undefined,\n });\n}\n$.fn.offset = function (value) {\n // 获取坐标\n if (!arguments.length) {\n if (!this.length) {\n return undefined;\n }\n return get(this[0]);\n }\n // 设置坐标\n return this.each(function (index) {\n set(this, value, index);\n });\n};\n","import $ from '../$';\nimport './each';\n$.fn.empty = function () {\n return this.each(function () {\n this.innerHTML = '';\n });\n};\n","import $ from '../$';\nimport each from '../functions/each';\n$.fn.extend = function (obj) {\n each(obj, (prop, value) => {\n // 在 JQ 对象上扩展方法时,需要自己添加 typescript 的类型定义\n $.fn[prop] = value;\n });\n return this;\n};\n","import $ from '../$';\nimport { isFunction, isString } from '../utils';\nimport './is';\nimport './map';\n$.fn.filter = function (selector) {\n if (isFunction(selector)) {\n return this.map((index, element) => selector.call(element, index, element) ? element : undefined);\n }\n if (isString(selector)) {\n return this.map((_, element) => $(element).is(selector) ? element : undefined);\n }\n const $selector = $(selector);\n return this.map((_, element) => $selector.get().indexOf(element) > -1 ? element : undefined);\n};\n","import $ from '../$';\nimport './eq';\n$.fn.first = function () {\n return this.eq(0);\n};\n","import $ from '../$';\nimport contains from '../functions/contains';\nimport { isString } from '../utils';\nimport './find';\n$.fn.has = function (selector) {\n const $targets = isString(selector) ? this.find(selector) : $(selector);\n const { length } = $targets;\n return this.map(function () {\n for (let i = 0; i < length; i += 1) {\n if (contains(this, $targets[i])) {\n return this;\n }\n }\n return;\n });\n};\n","import $ from '../$';\n$.fn.hasClass = function (className) {\n return this[0].classList.contains(className);\n};\n","import $ from '../$';\nimport './each';\n$.fn.hide = function () {\n return this.each(function () {\n this.style.display = 'none';\n });\n};\n","import $ from '../$';\nimport each from '../functions/each';\nimport map from '../functions/map';\nimport { isElement, isFunction, isUndefined, toElement } from '../utils';\nimport './each';\nimport './is';\neach(['val', 'html', 'text'], (nameIndex, name) => {\n const props = {\n 0: 'value',\n 1: 'innerHTML',\n 2: 'textContent',\n };\n const propName = props[nameIndex];\n function get($elements) {\n // text() 获取所有元素的文本\n if (nameIndex === 2) {\n // @ts-ignore\n return map($elements, (element) => toElement(element)[propName]).join('');\n }\n // 空集合时,val() 和 html() 返回 undefined\n if (!$elements.length) {\n return undefined;\n }\n // val() 和 html() 仅获取第一个元素的内容\n const firstElement = $elements[0];\n // select multiple 返回数组\n if (nameIndex === 0 && $(firstElement).is('select[multiple]')) {\n return map($(firstElement).find('option:checked'), (element) => element.value);\n }\n // @ts-ignore\n return firstElement[propName];\n }\n function set(element, value) {\n // text() 和 html() 赋值为 undefined,则保持原内容不变\n // val() 赋值为 undefined 则赋值为空\n if (isUndefined(value)) {\n if (nameIndex !== 0) {\n return;\n }\n value = '';\n }\n if (nameIndex === 1 && isElement(value)) {\n value = value.outerHTML;\n }\n // @ts-ignore\n element[propName] = value;\n }\n $.fn[name] = function (value) {\n // 获取值\n if (!arguments.length) {\n return get(this);\n }\n // 设置值\n return this.each((i, element) => {\n const computedValue = isFunction(value)\n ? value.call(element, i, get($(element)))\n : value;\n // value 是数组,则选中数组中的元素,反选不在数组中的元素\n if (nameIndex === 0 && Array.isArray(computedValue)) {\n // select[multiple]\n if ($(element).is('select[multiple]')) {\n map($(element).find('option'), (option) => (option.selected =\n computedValue.indexOf(option.value) >\n -1));\n }\n // 其他 checkbox, radio 等元素\n else {\n element.checked =\n computedValue.indexOf(element.value) > -1;\n }\n }\n else {\n set(element, computedValue);\n }\n });\n };\n});\n","import $ from '../$';\nimport { isString } from '../utils';\nimport './children';\nimport './eq';\nimport './get';\nimport './parent';\n$.fn.index = function (selector) {\n if (!arguments.length) {\n return this.eq(0).parent().children().get().indexOf(this[0]);\n }\n if (isString(selector)) {\n return $(selector).get().indexOf(this[0]);\n }\n return this.get().indexOf($(selector)[0]);\n};\n","import $ from '../$';\nimport './eq';\n$.fn.last = function () {\n return this.eq(-1);\n};\n","import $ from '../$';\nimport each from '../functions/each';\nimport dir from './utils/dir';\neach(['', 'All', 'Until'], (nameIndex, name) => {\n $.fn[`next${name}`] = function (selector, filter) {\n return dir(this, nameIndex, 'nextElementSibling', selector, filter);\n };\n});\n","import $ from '../$';\nimport './filter';\nimport './map';\n$.fn.not = function (selector) {\n const $excludes = this.filter(selector);\n return this.map((_, element) => $excludes.index(element) > -1 ? undefined : element);\n};\n","import $ from '../$';\nimport './css';\nimport './map';\n/**\n * 返回最近的用于定位的父元素\n */\n$.fn.offsetParent = function () {\n return this.map(function () {\n let offsetParent = this.offsetParent;\n while (offsetParent && $(offsetParent).css('position') === 'static') {\n offsetParent = offsetParent.offsetParent;\n }\n return offsetParent || document.documentElement;\n });\n};\n","import $ from '../$';\nimport './on';\n$.fn.one = function (types, selector, data, callback) {\n // @ts-ignore\n return this.on(types, selector, data, callback, true);\n};\n","import $ from '../$';\nimport each from '../functions/each';\nimport './get';\nimport dir from './utils/dir';\neach(['', 'All', 'Until'], (nameIndex, name) => {\n $.fn[`prev${name}`] = function (selector, filter) {\n // prevAll、prevUntil 需要把元素的顺序倒序处理,以便和 jQuery 的结果一致\n const $nodes = !nameIndex ? this : $(this.get().reverse());\n return dir($nodes, nameIndex, 'previousElementSibling', selector, filter);\n };\n});\n","import $ from '../$';\nimport each from '../functions/each';\nimport './each';\n$.fn.removeAttr = function (attributeName) {\n const names = attributeName.split(' ').filter((name) => name);\n return this.each(function () {\n each(names, (_, name) => {\n this.removeAttribute(name);\n });\n });\n};\n","import $ from '../$';\nimport removeData from '../functions/removeData';\nimport './each';\n$.fn.removeData = function (name) {\n return this.each(function () {\n removeData(this, name);\n });\n};\n","import $ from '../$';\nimport './each';\n$.fn.removeProp = function (name) {\n return this.each(function () {\n try {\n // @ts-ignore\n delete this[name];\n }\n catch (e) { }\n });\n};\n","import $ from '../$';\nimport './before';\nimport './clone';\nimport './each';\nimport './remove';\nimport { isFunction, isString } from '../utils';\n$.fn.replaceWith = function (newContent) {\n this.each((index, element) => {\n let content = newContent;\n if (isFunction(content)) {\n content = content.call(element, index, element.innerHTML);\n }\n else if (index && !isString(content)) {\n content = $(content).clone();\n }\n $(element).before(content);\n });\n return this.remove();\n};\n","import $ from '../$';\nimport './clone';\nimport './get';\nimport './map';\nimport './replaceWith';\n$.fn.replaceAll = function (target) {\n return $(target).map((index, element) => {\n $(element).replaceWith(index ? this.clone() : this);\n return this.get();\n });\n};\n","import $ from '../$';\nimport './each';\nimport './val';\n/**\n * 将表单元素的值组合成键值对数组\n * @returns {Array}\n */\n$.fn.serializeArray = function () {\n const result = [];\n this.each((_, element) => {\n const elements = element instanceof HTMLFormElement ? element.elements : [element];\n $(elements).each((_, element) => {\n const $element = $(element);\n const type = element.type;\n const nodeName = element.nodeName.toLowerCase();\n if (nodeName !== 'fieldset' &&\n element.name &&\n !element.disabled &&\n ['input', 'select', 'textarea', 'keygen'].indexOf(nodeName) > -1 &&\n ['submit', 'button', 'image', 'reset', 'file'].indexOf(type) === -1 &&\n (['radio', 'checkbox'].indexOf(type) === -1 ||\n element.checked)) {\n const value = $element.val();\n const valueArr = Array.isArray(value) ? value : [value];\n valueArr.forEach((value) => {\n result.push({\n name: element.name,\n value,\n });\n });\n }\n });\n });\n return result;\n};\n","import $ from '../$';\nimport param from '../functions/param';\nimport './serializeArray';\n$.fn.serialize = function () {\n return param(this.serializeArray());\n};\n","import $ from '../$';\nimport { getStyle } from '../utils';\nimport './each';\nconst elementDisplay = {};\n/**\n * 获取元素的初始 display 值,用于 .show() 方法\n * @param nodeName\n */\nfunction defaultDisplay(nodeName) {\n let element;\n let display;\n if (!elementDisplay[nodeName]) {\n element = document.createElement(nodeName);\n document.body.appendChild(element);\n display = getStyle(element, 'display');\n element.parentNode.removeChild(element);\n if (display === 'none') {\n display = 'block';\n }\n elementDisplay[nodeName] = display;\n }\n return elementDisplay[nodeName];\n}\n/**\n * 显示指定元素\n * @returns {JQ}\n */\n$.fn.show = function () {\n return this.each(function () {\n if (this.style.display === 'none') {\n this.style.display = '';\n }\n if (getStyle(this, 'display') === 'none') {\n this.style.display = defaultDisplay(this.nodeName);\n }\n });\n};\n","import $ from '../$';\nimport './add';\nimport './nextAll';\nimport './prevAll';\n/**\n * 取得同辈元素的集合\n * @param selector {String=}\n * @returns {JQ}\n */\n$.fn.siblings = function (selector) {\n return this.prevAll(selector).add(this.nextAll(selector));\n};\n","import $ from '../$';\nimport { getStyle } from '../utils';\nimport './each';\nimport './hide';\nimport './show';\n/**\n * 切换元素的显示状态\n */\n$.fn.toggle = function () {\n return this.each(function () {\n getStyle(this, 'display') === 'none' ? $(this).show() : $(this).hide();\n });\n};\n","import $ from 'mdui.jq/es/$';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport 'mdui.jq/es/methods/each';\n\ndeclare module 'mdui.jq/es/JQ' {\n interface JQ {\n /**\n * 强制重绘当前元素\n *\n * @example\n```js\n$('.box').reflow();\n```\n */\n reflow(): this;\n }\n}\n\n$.fn.reflow = function (this: JQ): JQ {\n return this.each(function () {\n return this.clientLeft;\n });\n};\n","import $ from 'mdui.jq/es/$';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport { isNumber } from 'mdui.jq/es/utils';\nimport 'mdui.jq/es/methods/each';\n\ndeclare module 'mdui.jq/es/JQ' {\n interface JQ {\n /**\n * 设置当前元素的 transition-duration 属性\n * @param duration 可以是带单位的值;若不带单位,则自动添加 `ms` 作为单位\n * @example\n```js\n$('.box').transition('300ms');\n$('.box').transition(300);\n```\n */\n transition(duration: string | number): this;\n }\n}\n\n$.fn.transition = function (this: JQ, duration: string | number): JQ {\n if (isNumber(duration)) {\n duration = `${duration}ms`;\n }\n\n return this.each(function () {\n this.style.webkitTransitionDuration = duration as string;\n this.style.transitionDuration = duration as string;\n });\n};\n","import $ from 'mdui.jq/es/$';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport each from 'mdui.jq/es/functions/each';\nimport 'mdui.jq/es/methods/on';\nimport 'mdui.jq/es/methods/off';\n\ndeclare module 'mdui.jq/es/JQ' {\n interface JQ {\n /**\n * 在当前元素上添加 transitionend 事件回调\n * @param callback 回调函数的参数为 `transitionend` 事件对象;`this` 指向当前元素\n * @example\n```js\n$('.box').transitionEnd(function() {\n alert('.box 元素的 transitionend 事件已触发');\n});\n```\n */\n transitionEnd(callback: (this: T, e: Event) => void): this;\n }\n}\n\n$.fn.transitionEnd = function (\n this: JQ,\n callback: (this: HTMLElement, e: Event) => void,\n): JQ {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const that = this;\n const events = ['webkitTransitionEnd', 'transitionend'];\n\n function fireCallback(this: Element | Document | Window, e: Event): void {\n if (e.target !== this) {\n return;\n }\n\n // @ts-ignore\n callback.call(this, e);\n\n each(events, (_, event) => {\n that.off(event, fireCallback);\n });\n }\n\n each(events, (_, event) => {\n that.on(event, fireCallback);\n });\n\n return this;\n};\n","import $ from 'mdui.jq/es/$';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport 'mdui.jq/es/methods/each';\n\ndeclare module 'mdui.jq/es/JQ' {\n interface JQ {\n /**\n * 设置当前元素的 transform-origin 属性\n * @param transformOrigin\n * @example\n```js\n$('.box').transformOrigin('top center');\n```\n */\n transformOrigin(transformOrigin: string): this;\n }\n}\n\n$.fn.transformOrigin = function (this: JQ, transformOrigin: string): JQ {\n return this.each(function () {\n this.style.webkitTransformOrigin = transformOrigin;\n this.style.transformOrigin = transformOrigin;\n });\n};\n","import $ from 'mdui.jq/es/$';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport 'mdui.jq/es/methods/each';\n\ndeclare module 'mdui.jq/es/JQ' {\n interface JQ {\n /**\n * 设置当前元素的 transform 属性\n * @param transform\n * @example\n```js\n$('.box').transform('rotate(90deg)');\n```\n */\n transform(transform: string): this;\n }\n}\n\n$.fn.transform = function (this: JQ, transform: string): JQ {\n return this.each(function () {\n this.style.webkitTransform = transform;\n this.style.transform = transform;\n });\n};\n","import PlainObject from 'mdui.jq/es/interfaces/PlainObject';\nimport data from 'mdui.jq/es/functions/data';\n\ntype TYPE_API_INIT = (\n this: HTMLElement,\n i: number,\n element: HTMLElement,\n) => void;\n\n/**\n * CSS 选择器和初始化函数组成的对象\n */\nconst entries: PlainObject = {};\n\n/**\n * 注册并执行初始化函数\n * @param selector CSS 选择器\n * @param apiInit 初始化函数\n * @param i 元素索引\n * @param element 元素\n */\nfunction mutation(\n selector: string,\n apiInit: TYPE_API_INIT,\n i: number,\n element: HTMLElement,\n): void {\n let selectors = data(element, '_mdui_mutation');\n\n if (!selectors) {\n selectors = [];\n data(element, '_mdui_mutation', selectors);\n }\n\n if (selectors.indexOf(selector) === -1) {\n selectors.push(selector);\n apiInit.call(element, i, element);\n }\n}\n\nexport { TYPE_API_INIT, entries, mutation };\n","import $ from 'mdui.jq/es/$';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport each from 'mdui.jq/es/functions/each';\nimport 'mdui.jq/es/methods/each';\nimport 'mdui.jq/es/methods/find';\nimport 'mdui.jq/es/methods/is';\nimport { entries, mutation } from '../../utils/mutation';\n\ndeclare module 'mdui.jq/es/JQ' {\n interface JQ {\n /**\n * 执行在当前元素及其子元素内注册的初始化函数\n */\n mutation(): this;\n }\n}\n\n$.fn.mutation = function (this: JQ): JQ {\n return this.each((i, element) => {\n const $this = $(element);\n\n each(entries, (selector: string, apiInit) => {\n if ($this.is(selector)) {\n mutation(selector, apiInit, i, element);\n }\n\n $this.find(selector).each((i, element) => {\n mutation(selector, apiInit, i, element);\n });\n });\n });\n};\n","import $ from 'mdui.jq/es/$';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport { isUndefined } from 'mdui.jq/es/utils';\nimport 'mdui.jq/es/methods/data';\nimport 'mdui.jq/es/methods/css';\nimport 'mdui.jq/es/methods/appendTo';\nimport 'mdui.jq/es/methods/addClass';\nimport '../methods/reflow';\n\ndeclare module 'mdui.jq/es/interfaces/JQStatic' {\n interface JQStatic {\n /**\n * 创建并显示遮罩,返回遮罩层的 JQ 对象\n * @param zIndex 遮罩层的 `z-index` 值,默认为 `2000`\n * @example\n```js\n$.showOverlay();\n```\n * @example\n```js\n$.showOverlay(3000);\n```\n */\n showOverlay(zIndex?: number): JQ;\n }\n}\n\n$.showOverlay = function (zIndex?: number): JQ {\n let $overlay = $('.mdui-overlay');\n\n if ($overlay.length) {\n $overlay.data('_overlay_is_deleted', false);\n\n if (!isUndefined(zIndex)) {\n $overlay.css('z-index', zIndex);\n }\n } else {\n if (isUndefined(zIndex)) {\n zIndex = 2000;\n }\n\n $overlay = $('
          ')\n .appendTo(document.body)\n .reflow()\n .css('z-index', zIndex);\n }\n\n let level = $overlay.data('_overlay_level') || 0;\n\n return $overlay.data('_overlay_level', ++level).addClass('mdui-overlay-show');\n};\n","import $ from 'mdui.jq/es/$';\nimport 'mdui.jq/es/methods/data';\nimport 'mdui.jq/es/methods/removeClass';\nimport 'mdui.jq/es/methods/remove';\nimport '../methods/transitionEnd';\n\ndeclare module 'mdui.jq/es/interfaces/JQStatic' {\n interface JQStatic {\n /**\n * 隐藏遮罩层\n *\n * 如果调用了多次 $.showOverlay() 来显示遮罩层,则也需要调用相同次数的 $.hideOverlay() 才能隐藏遮罩层。可以通过传入参数 true 来强制隐藏遮罩层。\n * @param force 是否强制隐藏遮罩\n * @example\n```js\n$.hideOverlay();\n```\n * @example\n```js\n$.hideOverlay(true);\n```\n */\n hideOverlay(force?: boolean): void;\n }\n}\n\n$.hideOverlay = function (force = false): void {\n const $overlay = $('.mdui-overlay');\n\n if (!$overlay.length) {\n return;\n }\n\n let level = force ? 1 : $overlay.data('_overlay_level');\n\n if (level > 1) {\n $overlay.data('_overlay_level', --level);\n return;\n }\n\n $overlay\n .data('_overlay_level', 0)\n .removeClass('mdui-overlay-show')\n .data('_overlay_is_deleted', true)\n .transitionEnd(() => {\n if ($overlay.data('_overlay_is_deleted')) {\n $overlay.remove();\n }\n });\n};\n","import $ from 'mdui.jq/es/$';\nimport 'mdui.jq/es/methods/addClass';\nimport 'mdui.jq/es/methods/data';\nimport 'mdui.jq/es/methods/width';\n\ndeclare module 'mdui.jq/es/interfaces/JQStatic' {\n interface JQStatic {\n /**\n * 锁定屏页面,禁止页面滚动\n * @example\n```js\n$.lockScreen();\n```\n */\n lockScreen(): void;\n }\n}\n\n$.lockScreen = function (): void {\n const $body = $('body');\n\n // 不直接把 body 设为 box-sizing: border-box,避免污染全局样式\n const newBodyWidth = $body.width();\n let level = $body.data('_lockscreen_level') || 0;\n\n $body\n .addClass('mdui-locked')\n .width(newBodyWidth)\n .data('_lockscreen_level', ++level);\n};\n","import $ from 'mdui.jq/es/$';\nimport 'mdui.jq/es/methods/data';\nimport 'mdui.jq/es/methods/removeClass';\nimport 'mdui.jq/es/methods/width';\n\ndeclare module 'mdui.jq/es/interfaces/JQStatic' {\n interface JQStatic {\n /**\n * 解除页面锁定\n *\n * 如果调用了多次 $.lockScreen() 来显示遮罩层,则也需要调用相同次数的 $.unlockScreen() 才能隐藏遮罩层。可以通过传入参数 true 来强制隐藏遮罩层。\n * @param force 是否强制解除锁定\n * @example\n```js\n$.unlockScreen();\n```\n * @example\n```js\n$.unlockScreen(true);\n```\n */\n unlockScreen(force?: boolean): void;\n }\n}\n\n$.unlockScreen = function (force = false): void {\n const $body = $('body');\n let level = force ? 1 : $body.data('_lockscreen_level');\n\n if (level > 1) {\n $body.data('_lockscreen_level', --level);\n return;\n }\n\n $body.data('_lockscreen_level', 0).removeClass('mdui-locked').width('');\n};\n","import $ from 'mdui.jq/es/$';\nimport { isNull } from 'mdui.jq/es/utils';\n\ndeclare module 'mdui.jq/es/interfaces/JQStatic' {\n interface JQStatic {\n /**\n * 函数节流\n * @param fn 执行的函数\n * @param delay 最多多少毫秒执行一次\n * @example\n```js\n$.throttle(function () {\n console.log('这个函数最多 100ms 执行一次');\n}, 100)\n```\n */\n throttle(fn: () => void, delay: number): () => void;\n }\n}\n\n$.throttle = function (fn: () => void, delay = 16): () => void {\n let timer: any = null;\n\n return function (this: any, ...args: any): void {\n if (isNull(timer)) {\n timer = setTimeout(() => {\n fn.apply(this, args);\n timer = null;\n }, delay);\n }\n };\n};\n","import $ from 'mdui.jq/es/$';\nimport { isUndefined } from 'mdui.jq/es/utils';\nimport PlainObject from 'mdui.jq/es/interfaces/PlainObject';\n\ndeclare module 'mdui.jq/es/interfaces/JQStatic' {\n interface JQStatic {\n /**\n * 生成一个全局唯一的 ID\n * @param name 当该参数值对应的 guid 不存在时,会生成一个新的 guid,并返回;当该参数对应的 guid 已存在,则直接返回已有 guid\n * @example\n```js\n$.guid();\n```\n * @example\n```js\n$.guid('test');\n```\n */\n guid(name?: string): string;\n }\n}\n\nconst GUID: PlainObject = {};\n\n$.guid = function (name?: string): string {\n if (!isUndefined(name) && !isUndefined(GUID[name])) {\n return GUID[name];\n }\n\n function s4(): string {\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n }\n\n const guid =\n '_' +\n s4() +\n s4() +\n '-' +\n s4() +\n '-' +\n s4() +\n '-' +\n s4() +\n '-' +\n s4() +\n s4() +\n s4();\n\n if (!isUndefined(name)) {\n GUID[name] = guid;\n }\n\n return guid;\n};\n","import $ from 'mdui.jq/es/$';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport PlainObject from 'mdui.jq/es/interfaces/PlainObject';\nimport 'mdui.jq/es/methods/trigger';\n\n/**\n * 触发组件上的事件\n * @param eventName 事件名\n * @param componentName 组件名\n * @param target 在该元素上触发事件\n * @param instance 组件实例\n * @param parameters 事件参数\n */\nfunction componentEvent(\n eventName: string,\n componentName: string,\n target: HTMLElement | HTMLElement[] | JQ,\n instance?: any,\n parameters?: PlainObject,\n): void {\n if (!parameters) {\n parameters = {};\n }\n\n // @ts-ignore\n parameters.inst = instance;\n\n const fullEventName = `${eventName}.mdui.${componentName}`;\n\n // jQuery 事件\n // @ts-ignore\n if (typeof jQuery !== 'undefined') {\n // @ts-ignore\n jQuery(target).trigger(fullEventName, parameters);\n }\n\n const $target = $(target);\n\n // mdui.jq 事件\n $target.trigger(fullEventName, parameters);\n\n // 原生事件,供使用 addEventListener 监听\n type EventParams = {\n detail?: any;\n bubbles: boolean;\n cancelable: boolean;\n };\n\n const eventParams: EventParams = {\n bubbles: true,\n cancelable: true,\n detail: parameters,\n };\n\n const eventObject: CustomEvent = new CustomEvent(fullEventName, eventParams);\n\n // @ts-ignore\n eventObject._detail = parameters;\n\n $target[0].dispatchEvent(eventObject);\n}\n\nexport { componentEvent };\n","import $ from 'mdui.jq/es/$';\nimport 'mdui.jq/es/methods/each';\nimport mdui from '../mdui';\nimport '../jq_extends/methods/mutation';\nimport { isUndefined } from 'mdui.jq/es/utils';\nimport { TYPE_API_INIT, entries, mutation } from '../utils/mutation';\n\ndeclare module '../interfaces/MduiStatic' {\n interface MduiStatic {\n /**\n * 传入了两个参数时,注册并执行初始化函数\n *\n * 没有传入参数时,执行初始化\n * @param selector CSS 选择器\n * @param apiInit 初始化函数\n * @example\n```js\nmdui.mutation();\n```\n * @example\n```js\nmdui.mutation();\n```\n */\n mutation(selector?: string, apiInit?: TYPE_API_INIT): void;\n }\n}\n\nmdui.mutation = function (selector?: string, apiInit?: TYPE_API_INIT): void {\n if (isUndefined(selector) || isUndefined(apiInit)) {\n $(document).mutation();\n return;\n }\n\n entries[selector] = apiInit!;\n $(selector).each((i, element) => mutation(selector, apiInit, i, element));\n};\n","import $ from 'mdui.jq/es/$';\nimport extend from 'mdui.jq/es/functions/extend';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport 'mdui.jq/es/methods/addClass';\nimport 'mdui.jq/es/methods/data';\nimport 'mdui.jq/es/methods/first';\nimport 'mdui.jq/es/methods/hasClass';\nimport 'mdui.jq/es/methods/on';\nimport 'mdui.jq/es/methods/removeClass';\nimport Selector from 'mdui.jq/es/types/Selector';\nimport { isNumber } from 'mdui.jq/es/utils';\nimport mdui from '../../mdui';\nimport '../../jq_extends/methods/transitionEnd';\nimport { componentEvent } from '../../utils/componentEvent';\nimport { $window } from '../../utils/dom';\n\ndeclare module '../../interfaces/MduiStatic' {\n interface MduiStatic {\n /**\n * Headroom 插件\n *\n * 请通过 `new mdui.Headroom()` 调用\n */\n Headroom: {\n /**\n * 实例化 Headroom 组件\n * @param selector CSS 选择器、或 DOM 元素、或 JQ 对象\n * @param options 配置参数\n */\n new (\n selector: Selector | HTMLElement | ArrayLike,\n options?: OPTIONS,\n ): Headroom;\n };\n }\n}\n\ntype TOLERANCE = {\n /**\n * 滚动条向下滚动多少距离开始隐藏或显示元素\n */\n down: number;\n\n /**\n * 滚动条向上滚动多少距离开始隐藏或显示元素\n */\n up: number;\n};\n\ntype OPTIONS = {\n /**\n * 滚动条滚动多少距离开始隐藏或显示元素\n */\n tolerance?: TOLERANCE | number;\n\n /**\n * 在页面顶部多少距离内滚动不会隐藏元素\n */\n offset?: number;\n\n /**\n * 初始化时添加的类\n */\n initialClass?: string;\n\n /**\n * 元素固定时添加的类\n */\n pinnedClass?: string;\n\n /**\n * 元素隐藏时添加的类\n */\n unpinnedClass?: string;\n};\n\ntype STATE = 'pinning' | 'pinned' | 'unpinning' | 'unpinned';\ntype EVENT = 'pin' | 'pinned' | 'unpin' | 'unpinned';\n\nconst DEFAULT_OPTIONS: OPTIONS = {\n tolerance: 5,\n offset: 0,\n initialClass: 'mdui-headroom',\n pinnedClass: 'mdui-headroom-pinned-top',\n unpinnedClass: 'mdui-headroom-unpinned-top',\n};\n\nclass Headroom {\n /**\n * headroom 元素的 JQ 对象\n */\n public $element: JQ;\n\n /**\n * 配置参数\n */\n public options: OPTIONS = extend({}, DEFAULT_OPTIONS);\n\n /**\n * 当前 headroom 的状态\n */\n private state: STATE = 'pinned';\n\n /**\n * 当前是否启用\n */\n private isEnable = false;\n\n /**\n * 上次滚动后,垂直方向的距离\n */\n private lastScrollY = 0;\n\n /**\n * AnimationFrame ID\n */\n private rafId = 0;\n\n public constructor(\n selector: Selector | HTMLElement | ArrayLike,\n options: OPTIONS = {},\n ) {\n this.$element = $(selector).first();\n\n extend(this.options, options);\n\n // tolerance 参数若为数值,转换为对象\n const tolerance = this.options.tolerance;\n if (isNumber(tolerance)) {\n this.options.tolerance = {\n down: tolerance,\n up: tolerance,\n };\n }\n\n this.enable();\n }\n\n /**\n * 滚动时的处理\n */\n private onScroll(): void {\n this.rafId = window.requestAnimationFrame(() => {\n const currentScrollY = window.pageYOffset;\n const direction = currentScrollY > this.lastScrollY ? 'down' : 'up';\n const tolerance = (this.options.tolerance as TOLERANCE)[direction];\n const scrolled = Math.abs(currentScrollY - this.lastScrollY);\n const toleranceExceeded = scrolled >= tolerance;\n\n if (\n currentScrollY > this.lastScrollY &&\n currentScrollY >= this.options.offset! &&\n toleranceExceeded\n ) {\n this.unpin();\n } else if (\n (currentScrollY < this.lastScrollY && toleranceExceeded) ||\n currentScrollY <= this.options.offset!\n ) {\n this.pin();\n }\n\n this.lastScrollY = currentScrollY;\n });\n }\n\n /**\n * 触发组件事件\n * @param name\n */\n private triggerEvent(name: EVENT): void {\n componentEvent(name, 'headroom', this.$element, this);\n }\n\n /**\n * 动画结束的回调\n */\n private transitionEnd(): void {\n if (this.state === 'pinning') {\n this.state = 'pinned';\n this.triggerEvent('pinned');\n }\n\n if (this.state === 'unpinning') {\n this.state = 'unpinned';\n this.triggerEvent('unpinned');\n }\n }\n\n /**\n * 使元素固定住\n */\n public pin(): void {\n if (\n this.state === 'pinning' ||\n this.state === 'pinned' ||\n !this.$element.hasClass(this.options.initialClass!)\n ) {\n return;\n }\n\n this.triggerEvent('pin');\n this.state = 'pinning';\n this.$element\n .removeClass(this.options.unpinnedClass)\n .addClass(this.options.pinnedClass!)\n .transitionEnd(() => this.transitionEnd());\n }\n\n /**\n * 使元素隐藏\n */\n public unpin(): void {\n if (\n this.state === 'unpinning' ||\n this.state === 'unpinned' ||\n !this.$element.hasClass(this.options.initialClass!)\n ) {\n return;\n }\n\n this.triggerEvent('unpin');\n this.state = 'unpinning';\n this.$element\n .removeClass(this.options.pinnedClass)\n .addClass(this.options.unpinnedClass!)\n .transitionEnd(() => this.transitionEnd());\n }\n\n /**\n * 启用 headroom 插件\n */\n public enable(): void {\n if (this.isEnable) {\n return;\n }\n\n this.isEnable = true;\n this.state = 'pinned';\n this.$element\n .addClass(this.options.initialClass!)\n .removeClass(this.options.pinnedClass)\n .removeClass(this.options.unpinnedClass);\n this.lastScrollY = window.pageYOffset;\n\n $window.on('scroll', () => this.onScroll());\n }\n\n /**\n * 禁用 headroom 插件\n */\n public disable(): void {\n if (!this.isEnable) {\n return;\n }\n\n this.isEnable = false;\n this.$element\n .removeClass(this.options.initialClass)\n .removeClass(this.options.pinnedClass)\n .removeClass(this.options.unpinnedClass);\n\n $window.off('scroll', () => this.onScroll());\n window.cancelAnimationFrame(this.rafId);\n }\n\n /**\n * 获取当前状态。共包含四种状态:`pinning`、`pinned`、`unpinning`、`unpinned`\n */\n public getState(): STATE {\n return this.state;\n }\n}\n\nmdui.Headroom = Headroom;\n","import $ from 'mdui.jq/es/$';\n\nconst $document = $(document);\nconst $window = $(window);\nconst $body = $('body');\n\nexport { $document, $window, $body };\n","import $ from 'mdui.jq/es/$';\nimport 'mdui.jq/es/methods/attr';\nimport PlainObject from 'mdui.jq/es/interfaces/PlainObject';\n\n/**\n * 解析 DATA API 参数\n * @param element 元素\n * @param name 属性名\n */\nfunction parseOptions(element: HTMLElement, name: string): PlainObject {\n const attr = $(element).attr(name);\n\n if (!attr) {\n return {};\n }\n\n return new Function(\n '',\n `var json = ${attr}; return JSON.parse(JSON.stringify(json));`,\n )();\n}\n\nexport { parseOptions };\n","import $ from 'mdui.jq/es/$';\nimport mdui from '../../mdui';\nimport '../../global/mutation';\nimport { parseOptions } from '../../utils/parseOptions';\nimport './index';\n\nconst customAttr = 'mdui-headroom';\n\n$(() => {\n mdui.mutation(`[${customAttr}]`, function () {\n new mdui.Headroom(this, parseOptions(this, customAttr));\n });\n});\n","import $ from 'mdui.jq/es/$';\nimport extend from 'mdui.jq/es/functions/extend';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport 'mdui.jq/es/methods/addClass';\nimport 'mdui.jq/es/methods/children';\nimport 'mdui.jq/es/methods/each';\nimport 'mdui.jq/es/methods/eq';\nimport 'mdui.jq/es/methods/first';\nimport 'mdui.jq/es/methods/hasClass';\nimport 'mdui.jq/es/methods/height';\nimport 'mdui.jq/es/methods/is';\nimport 'mdui.jq/es/methods/on';\nimport 'mdui.jq/es/methods/parent';\nimport 'mdui.jq/es/methods/parents';\nimport 'mdui.jq/es/methods/removeClass';\nimport Selector from 'mdui.jq/es/types/Selector';\nimport { isNumber } from 'mdui.jq/es/utils';\nimport '../../jq_extends/methods/reflow';\nimport '../../jq_extends/methods/transition';\nimport '../../jq_extends/methods/transitionEnd';\nimport { componentEvent } from '../../utils/componentEvent';\n\ntype OPTIONS = {\n /**\n * 是否启用手风琴效果\n * 为 `true` 时,最多只能有一个面板项处于打开状态,打开一个面板项时会关闭其他面板项\n * 为 `false` 时,可同时打开多个面板项\n */\n accordion?: boolean;\n};\n\ntype EVENT = 'open' | 'opened' | 'close' | 'closed';\n\nconst DEFAULT_OPTIONS: OPTIONS = {\n accordion: false,\n};\n\nabstract class CollapseAbstract {\n /**\n * collapse 元素的 JQ 对象\n */\n public $element: JQ;\n\n /**\n * 配置参数\n */\n public options: OPTIONS = extend({}, DEFAULT_OPTIONS);\n\n /**\n * item 的 class 名\n */\n private classItem: string;\n\n /**\n * 打开状态的 item 的 class 名\n */\n private classItemOpen: string;\n\n /**\n * item-header 的 class 名\n */\n private classHeader: string;\n\n /**\n * item-body 的 class 名\n */\n private classBody: string;\n\n /**\n * 获取继承的组件名称\n */\n protected abstract getNamespace(): string;\n\n public constructor(\n selector: Selector | HTMLElement | ArrayLike,\n options: OPTIONS = {},\n ) {\n // CSS 类名\n const classPrefix = `mdui-${this.getNamespace()}-item`;\n this.classItem = classPrefix;\n this.classItemOpen = `${classPrefix}-open`;\n this.classHeader = `${classPrefix}-header`;\n this.classBody = `${classPrefix}-body`;\n\n this.$element = $(selector).first();\n\n extend(this.options, options);\n\n this.bindEvent();\n }\n\n /**\n * 绑定事件\n */\n private bindEvent(): void {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const that = this;\n\n // 点击 header 时,打开/关闭 item\n this.$element.on('click', `.${this.classHeader}`, function () {\n const $header = $(this as HTMLElement);\n const $item = $header.parent();\n const $items = that.getItems();\n\n $items.each((_, item) => {\n if ($item.is(item)) {\n that.toggle(item);\n }\n });\n });\n\n // 点击关闭按钮时,关闭 item\n this.$element.on(\n 'click',\n `[mdui-${this.getNamespace()}-item-close]`,\n function () {\n const $target = $(this as HTMLElement);\n const $item = $target.parents(`.${that.classItem}`).first();\n\n that.close($item);\n },\n );\n }\n\n /**\n * 指定 item 是否处于打开状态\n * @param $item\n */\n private isOpen($item: JQ): boolean {\n return $item.hasClass(this.classItemOpen);\n }\n\n /**\n * 获取所有 item\n */\n private getItems(): JQ {\n return this.$element.children(`.${this.classItem}`);\n }\n\n /**\n * 获取指定 item\n * @param item\n */\n private getItem(\n item: number | Selector | HTMLElement | ArrayLike,\n ): JQ {\n if (isNumber(item)) {\n return this.getItems().eq(item);\n }\n\n return $(item).first();\n }\n\n /**\n * 触发组件事件\n * @param name 事件名\n * @param $item 事件触发的目标 item\n */\n private triggerEvent(name: EVENT, $item: JQ): void {\n componentEvent(name, this.getNamespace(), $item, this);\n }\n\n /**\n * 动画结束回调\n * @param $content body 元素\n * @param $item item 元素\n */\n private transitionEnd($content: JQ, $item: JQ): void {\n if (this.isOpen($item)) {\n $content.transition(0).height('auto').reflow().transition('');\n\n this.triggerEvent('opened', $item);\n } else {\n $content.height('');\n\n this.triggerEvent('closed', $item);\n }\n }\n\n /**\n * 打开指定面板项\n * @param item 面板项的索引号、或 CSS 选择器、或 DOM 元素、或 JQ 对象\n */\n public open(\n item: number | Selector | HTMLElement | ArrayLike,\n ): void {\n const $item = this.getItem(item);\n\n if (this.isOpen($item)) {\n return;\n }\n\n // 关闭其他项\n if (this.options.accordion) {\n this.$element.children(`.${this.classItemOpen}`).each((_, element) => {\n const $element = $(element);\n\n if (!$element.is($item)) {\n this.close($element);\n }\n });\n }\n\n const $content = $item.children(`.${this.classBody}`);\n\n $content\n .height($content[0].scrollHeight)\n .transitionEnd(() => this.transitionEnd($content, $item));\n\n this.triggerEvent('open', $item);\n\n $item.addClass(this.classItemOpen);\n }\n\n /**\n * 关闭指定面板项\n * @param item 面板项的索引号、或 CSS 选择器、或 DOM 元素、或 JQ 对象\n */\n public close(\n item: number | Selector | HTMLElement | ArrayLike,\n ): void {\n const $item = this.getItem(item);\n\n if (!this.isOpen($item)) {\n return;\n }\n\n const $content = $item.children(`.${this.classBody}`);\n\n this.triggerEvent('close', $item);\n\n $item.removeClass(this.classItemOpen);\n\n $content\n .transition(0)\n .height($content[0].scrollHeight)\n .reflow()\n .transition('')\n .height('')\n .transitionEnd(() => this.transitionEnd($content, $item));\n }\n\n /**\n * 切换指定面板项的打开状态\n * @param item 面板项的索引号、或 CSS 选择器、或 DOM 元素、或 JQ 对象\n */\n public toggle(\n item: number | Selector | HTMLElement | ArrayLike,\n ): void {\n const $item = this.getItem(item);\n\n this.isOpen($item) ? this.close($item) : this.open($item);\n }\n\n /**\n * 打开所有面板项\n */\n public openAll(): void {\n this.getItems().each((_, element) => this.open(element));\n }\n\n /**\n * 关闭所有面板项\n */\n public closeAll(): void {\n this.getItems().each((_, element) => this.close(element));\n }\n}\n\nexport { OPTIONS, CollapseAbstract };\n","import Selector from 'mdui.jq/es/types/Selector';\nimport mdui from '../../mdui';\nimport { CollapseAbstract, OPTIONS } from './collapseAbstract';\n\ndeclare module '../../interfaces/MduiStatic' {\n interface MduiStatic {\n /**\n * 折叠内容块组件\n *\n * 请通过 `new mdui.Collapse()` 调用\n */\n Collapse: {\n /**\n * 实例化 Collapse 组件\n * @param selector CSS 选择器或 DOM 元素\n * @param options 配置参数\n */\n new (\n selector: Selector | HTMLElement | ArrayLike,\n options?: OPTIONS,\n ): Collapse;\n };\n }\n}\n\nclass Collapse extends CollapseAbstract {\n protected getNamespace(): string {\n return 'collapse';\n }\n}\n\nmdui.Collapse = Collapse;\n","import $ from 'mdui.jq/es/$';\nimport mdui from '../../mdui';\nimport '../../global/mutation';\nimport { parseOptions } from '../../utils/parseOptions';\nimport './index';\n\nconst customAttr = 'mdui-collapse';\n\n$(() => {\n mdui.mutation(`[${customAttr}]`, function () {\n new mdui.Collapse(this, parseOptions(this, customAttr));\n });\n});\n","import Selector from 'mdui.jq/es/types/Selector';\nimport mdui from '../../mdui';\nimport { CollapseAbstract, OPTIONS } from '../collapse/collapseAbstract';\n\ndeclare module '../../interfaces/MduiStatic' {\n interface MduiStatic {\n /**\n * 可扩展面板组件\n *\n * 请通过 `new mdui.Panel()` 调用\n */\n Panel: {\n /**\n * 实例化 Panel 组件\n * @param selector CSS 选择器或 DOM 元素\n * @param options 配置参数\n */\n new (\n selector: Selector | HTMLElement | ArrayLike,\n options?: OPTIONS,\n ): Panel;\n };\n }\n}\n\nclass Panel extends CollapseAbstract {\n protected getNamespace(): string {\n return 'panel';\n }\n}\n\nmdui.Panel = Panel;\n","import $ from 'mdui.jq/es/$';\nimport mdui from '../../mdui';\nimport '../../global/mutation';\nimport { parseOptions } from '../../utils/parseOptions';\nimport './index';\n\nconst customAttr = 'mdui-panel';\n\n$(() => {\n mdui.mutation(`[${customAttr}]`, function () {\n new mdui.Panel(this, parseOptions(this, customAttr));\n });\n});\n","import $ from 'mdui.jq/es/$';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport 'mdui.jq/es/methods/add';\nimport 'mdui.jq/es/methods/addClass';\nimport 'mdui.jq/es/methods/data';\nimport 'mdui.jq/es/methods/each';\nimport 'mdui.jq/es/methods/eq';\nimport 'mdui.jq/es/methods/find';\nimport 'mdui.jq/es/methods/first';\nimport 'mdui.jq/es/methods/hasClass';\nimport 'mdui.jq/es/methods/on';\nimport 'mdui.jq/es/methods/prependTo';\nimport 'mdui.jq/es/methods/remove';\nimport 'mdui.jq/es/methods/removeClass';\nimport Selector from 'mdui.jq/es/types/Selector';\nimport { isUndefined } from 'mdui.jq/es/utils';\nimport mdui from '../../mdui';\nimport '../../global/mutation';\n\ndeclare module '../../interfaces/MduiStatic' {\n interface MduiStatic {\n /**\n * 动态修改了表格后,需要调用该方法重新初始化表格。\n *\n * 若传入了参数,则只初始化该参数对应的表格。若没有传入参数,则重新初始化所有表格。\n * @param selector CSS 选择器、或 DOM 元素、或 DOM 元素组成的数组、或 JQ 对象\n */\n updateTables(\n selector?: Selector | HTMLElement | ArrayLike,\n ): void;\n }\n}\n\nclass Table {\n /**\n * table 元素的 JQ 对象\n */\n public $element: JQ;\n\n /**\n * 表头 tr 元素\n */\n private $thRow: JQ = $();\n\n /**\n * 表格 body 中的 tr 元素\n */\n private $tdRows: JQ = $();\n\n /**\n * 表头的 checkbox 元素\n */\n private $thCheckbox: JQ = $();\n\n /**\n * 表格 body 中的 checkbox 元素\n */\n private $tdCheckboxs: JQ = $();\n\n /**\n * 表格行是否可选择\n */\n private selectable = false;\n\n /**\n * 已选中的行数\n */\n private selectedRow = 0;\n\n public constructor(\n selector: Selector | HTMLElement | ArrayLike,\n ) {\n this.$element = $(selector).first();\n this.init();\n }\n\n /**\n * 初始化表格\n */\n public init(): void {\n this.$thRow = this.$element.find('thead tr');\n this.$tdRows = this.$element.find('tbody tr');\n this.selectable = this.$element.hasClass('mdui-table-selectable');\n\n this.updateThCheckbox();\n this.updateTdCheckbox();\n this.updateNumericCol();\n }\n\n /**\n * 生成 checkbox 的 HTML 结构\n * @param tag 标签名\n */\n private createCheckboxHTML(tag: string): string {\n return (\n `<${tag} class=\"mdui-table-cell-checkbox\">` +\n '' +\n ``\n );\n }\n\n /**\n * 更新表头 checkbox 的状态\n */\n private updateThCheckboxStatus(): void {\n const checkbox = this.$thCheckbox[0];\n const selectedRow = this.selectedRow;\n const tdRowsLength = this.$tdRows.length;\n\n checkbox.checked = selectedRow === tdRowsLength;\n checkbox.indeterminate = !!selectedRow && selectedRow !== tdRowsLength;\n }\n\n /**\n * 更新表格行的 checkbox\n */\n private updateTdCheckbox(): void {\n const rowSelectedClass = 'mdui-table-row-selected';\n\n this.$tdRows.each((_, row) => {\n const $row = $(row);\n\n // 移除旧的 checkbox\n $row.find('.mdui-table-cell-checkbox').remove();\n\n if (!this.selectable) {\n return;\n }\n\n // 创建 DOM\n const $checkbox = $(this.createCheckboxHTML('td'))\n .prependTo($row)\n .find('input[type=\"checkbox\"]') as JQ;\n\n // 默认选中的行\n if ($row.hasClass(rowSelectedClass)) {\n $checkbox[0].checked = true;\n this.selectedRow++;\n }\n\n this.updateThCheckboxStatus();\n\n // 绑定事件\n $checkbox.on('change', () => {\n if ($checkbox[0].checked) {\n $row.addClass(rowSelectedClass);\n this.selectedRow++;\n } else {\n $row.removeClass(rowSelectedClass);\n this.selectedRow--;\n }\n\n this.updateThCheckboxStatus();\n });\n\n this.$tdCheckboxs = this.$tdCheckboxs.add($checkbox);\n });\n }\n\n /**\n * 更新表头的 checkbox\n */\n private updateThCheckbox(): void {\n // 移除旧的 checkbox\n this.$thRow.find('.mdui-table-cell-checkbox').remove();\n\n if (!this.selectable) {\n return;\n }\n\n this.$thCheckbox = $(this.createCheckboxHTML('th'))\n .prependTo(this.$thRow)\n .find('input[type=\"checkbox\"]')\n .on('change', () => {\n const isCheckedAll = this.$thCheckbox[0].checked;\n this.selectedRow = isCheckedAll ? this.$tdRows.length : 0;\n\n this.$tdCheckboxs.each((_, checkbox) => {\n checkbox.checked = isCheckedAll;\n });\n\n this.$tdRows.each((_, row) => {\n isCheckedAll\n ? $(row).addClass('mdui-table-row-selected')\n : $(row).removeClass('mdui-table-row-selected');\n });\n }) as JQ;\n }\n\n /**\n * 更新数值列\n */\n private updateNumericCol(): void {\n const numericClass = 'mdui-table-col-numeric';\n\n this.$thRow.find('th').each((i, th) => {\n const isNumericCol = $(th).hasClass(numericClass);\n\n this.$tdRows.each((_, row) => {\n const $td = $(row).find('td').eq(i);\n\n isNumericCol\n ? $td.addClass(numericClass)\n : $td.removeClass(numericClass);\n });\n });\n }\n}\n\nconst dataName = '_mdui_table';\n\n$(() => {\n mdui.mutation('.mdui-table', function () {\n const $element = $(this);\n\n if (!$element.data(dataName)) {\n $element.data(dataName, new Table($element));\n }\n });\n});\n\nmdui.updateTables = function (\n selector?: Selector | HTMLElement | ArrayLike,\n): void {\n const $elements = isUndefined(selector) ? $('.mdui-table') : $(selector);\n\n $elements.each((_, element) => {\n const $element = $(element);\n const instance = $element.data(dataName);\n\n if (instance) {\n instance.init();\n } else {\n $element.data(dataName, new Table($element));\n }\n });\n};\n","/**\n * touch 事件后的 500ms 内禁用 mousedown 事件\n *\n * 不支持触控的屏幕上事件顺序为 mousedown -> mouseup -> click\n * 支持触控的屏幕上事件顺序为 touchstart -> touchend -> mousedown -> mouseup -> click\n *\n * 在每一个事件中都使用 TouchHandler.isAllow(event) 判断事件是否可执行\n * 在 touchstart 和 touchmove、touchend、touchcancel\n *\n * (function () {\n * $document\n * .on(start, function (e) {\n * if (!isAllow(e)) {\n * return;\n * }\n * register(e);\n * console.log(e.type);\n * })\n * .on(move, function (e) {\n * if (!isAllow(e)) {\n * return;\n * }\n * console.log(e.type);\n * })\n * .on(end, function (e) {\n * if (!isAllow(e)) {\n * return;\n * }\n * console.log(e.type);\n * })\n * .on(unlock, register);\n * })();\n */\n\nconst startEvent = 'touchstart mousedown';\nconst moveEvent = 'touchmove mousemove';\nconst endEvent = 'touchend mouseup';\nconst cancelEvent = 'touchcancel mouseleave';\nconst unlockEvent = 'touchend touchmove touchcancel';\n\nlet touches = 0;\n\n/**\n * 该事件是否被允许,在执行事件前调用该方法判断事件是否可以执行\n * 若已触发 touch 事件,则阻止之后的鼠标事件\n * @param event\n */\nfunction isAllow(event: Event): boolean {\n return !(\n touches &&\n [\n 'mousedown',\n 'mouseup',\n 'mousemove',\n 'click',\n 'mouseover',\n 'mouseout',\n 'mouseenter',\n 'mouseleave',\n ].indexOf(event.type) > -1\n );\n}\n\n/**\n * 在 touchstart 和 touchmove、touchend、touchcancel 事件中调用该方法注册事件\n * @param event\n */\nfunction register(event: Event): void {\n if (event.type === 'touchstart') {\n // 触发了 touch 事件\n touches += 1;\n } else if (\n ['touchmove', 'touchend', 'touchcancel'].indexOf(event.type) > -1\n ) {\n // touch 事件结束 500ms 后解除对鼠标事件的阻止\n setTimeout(function () {\n if (touches) {\n touches -= 1;\n }\n }, 500);\n }\n}\n\nexport {\n startEvent,\n moveEvent,\n endEvent,\n cancelEvent,\n unlockEvent,\n isAllow,\n register,\n};\n","/**\n * Inspired by https://github.com/nolimits4web/Framework7/blob/master/src/js/fast-clicks.js\n * https://github.com/nolimits4web/Framework7/blob/master/LICENSE\n *\n * Inspired by https://github.com/fians/Waves\n */\n\nimport $ from 'mdui.jq/es/$';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport 'mdui.jq/es/methods/addClass';\nimport 'mdui.jq/es/methods/attr';\nimport 'mdui.jq/es/methods/children';\nimport 'mdui.jq/es/methods/data';\nimport 'mdui.jq/es/methods/each';\nimport 'mdui.jq/es/methods/first';\nimport 'mdui.jq/es/methods/hasClass';\nimport 'mdui.jq/es/methods/innerHeight';\nimport 'mdui.jq/es/methods/innerWidth';\nimport 'mdui.jq/es/methods/off';\nimport 'mdui.jq/es/methods/offset';\nimport 'mdui.jq/es/methods/on';\nimport 'mdui.jq/es/methods/parents';\nimport 'mdui.jq/es/methods/prependTo';\nimport 'mdui.jq/es/methods/prop';\nimport 'mdui.jq/es/methods/remove';\nimport { isUndefined } from 'mdui.jq/es/utils';\nimport '../../jq_extends/methods/reflow';\nimport '../../jq_extends/methods/transform';\nimport '../../jq_extends/methods/transitionEnd';\nimport { $document } from '../../utils/dom';\nimport {\n cancelEvent,\n endEvent,\n isAllow,\n moveEvent,\n register,\n startEvent,\n unlockEvent,\n} from '../../utils/touchHandler';\n\n/**\n * 显示涟漪动画\n * @param event\n * @param $ripple\n */\nfunction show(event: Event, $ripple: JQ): void {\n // 鼠标右键不产生涟漪\n if (event instanceof MouseEvent && event.button === 2) {\n return;\n }\n\n // 点击位置坐标\n const touchPosition =\n typeof TouchEvent !== 'undefined' &&\n event instanceof TouchEvent &&\n event.touches.length\n ? event.touches[0]\n : (event as MouseEvent);\n\n const touchStartX = touchPosition.pageX;\n const touchStartY = touchPosition.pageY;\n\n // 涟漪位置\n const offset = $ripple.offset();\n const height = $ripple.innerHeight();\n const width = $ripple.innerWidth();\n const center = {\n x: touchStartX - offset.left,\n y: touchStartY - offset.top,\n };\n const diameter = Math.max(\n Math.pow(Math.pow(height, 2) + Math.pow(width, 2), 0.5),\n 48,\n );\n\n // 涟漪扩散动画\n const translate =\n `translate3d(${-center.x + width / 2}px,` +\n `${-center.y + height / 2}px, 0) scale(1)`;\n\n // 涟漪的 DOM 结构,并缓存动画效果\n $(\n `
          `,\n )\n .data('_ripple_wave_translate', translate)\n .prependTo($ripple)\n .reflow()\n .transform(translate);\n}\n\n/**\n * 隐藏并移除涟漪\n * @param $wave\n */\nfunction removeRipple($wave: JQ): void {\n if (!$wave.length || $wave.data('_ripple_wave_removed')) {\n return;\n }\n\n $wave.data('_ripple_wave_removed', true);\n\n let removeTimer = setTimeout(() => $wave.remove(), 400);\n const translate = $wave.data('_ripple_wave_translate');\n\n $wave\n .addClass('mdui-ripple-wave-fill')\n .transform(translate.replace('scale(1)', 'scale(1.01)'))\n .transitionEnd(() => {\n clearTimeout(removeTimer);\n\n $wave\n .addClass('mdui-ripple-wave-out')\n .transform(translate.replace('scale(1)', 'scale(1.01)'));\n\n removeTimer = setTimeout(() => $wave.remove(), 700);\n\n setTimeout(() => {\n $wave.transitionEnd(() => {\n clearTimeout(removeTimer);\n $wave.remove();\n });\n }, 0);\n });\n}\n\n/**\n * 隐藏涟漪动画\n * @param this\n */\nfunction hide(this: any): void {\n const $ripple = $(this as HTMLElement);\n\n $ripple.children('.mdui-ripple-wave').each((_, wave) => {\n removeRipple($(wave));\n });\n\n $ripple.off(`${moveEvent} ${endEvent} ${cancelEvent}`, hide);\n}\n\n/**\n * 显示涟漪,并绑定 touchend 等事件\n * @param event\n */\nfunction showRipple(event: Event): void {\n if (!isAllow(event)) {\n return;\n }\n\n register(event);\n\n // Chrome 59 点击滚动条时,会在 document 上触发事件\n if (event.target === document) {\n return;\n }\n\n const $target = $(event.target as HTMLElement);\n\n // 获取含 .mdui-ripple 类的元素\n const $ripple = $target.hasClass('mdui-ripple')\n ? $target\n : $target.parents('.mdui-ripple').first();\n\n if (!$ripple.length) {\n return;\n }\n\n // 禁用状态的元素上不产生涟漪效果\n if ($ripple.prop('disabled') || !isUndefined($ripple.attr('disabled'))) {\n return;\n }\n\n if (event.type === 'touchstart') {\n let hidden = false;\n\n // touchstart 触发指定时间后开始涟漪动画,避免手指滑动时也触发涟漪\n let timer = setTimeout(() => {\n timer = 0;\n show(event, $ripple);\n }, 200);\n\n const hideRipple = (): void => {\n // 如果手指没有移动,且涟漪动画还没有开始,则开始涟漪动画\n if (timer) {\n clearTimeout(timer);\n timer = 0;\n show(event, $ripple);\n }\n\n if (!hidden) {\n hidden = true;\n hide.call($ripple);\n }\n };\n\n // 手指移动后,移除涟漪动画\n const touchMove = (): void => {\n if (timer) {\n clearTimeout(timer);\n timer = 0;\n }\n\n hideRipple();\n };\n\n $ripple.on('touchmove', touchMove).on('touchend touchcancel', hideRipple);\n } else {\n show(event, $ripple);\n $ripple.on(`${moveEvent} ${endEvent} ${cancelEvent}`, hide);\n }\n}\n\n$(() => {\n $document.on(startEvent, showRipple).on(unlockEvent, register);\n});\n","import $ from 'mdui.jq/es/$';\nimport extend from 'mdui.jq/es/functions/extend';\nimport 'mdui.jq/es/methods/addClass';\nimport 'mdui.jq/es/methods/appendTo';\nimport 'mdui.jq/es/methods/attr';\nimport 'mdui.jq/es/methods/each';\nimport 'mdui.jq/es/methods/find';\nimport 'mdui.jq/es/methods/is';\nimport 'mdui.jq/es/methods/on';\nimport 'mdui.jq/es/methods/outerHeight';\nimport 'mdui.jq/es/methods/parent';\nimport 'mdui.jq/es/methods/parents';\nimport 'mdui.jq/es/methods/remove';\nimport 'mdui.jq/es/methods/removeClass';\nimport 'mdui.jq/es/methods/text';\nimport 'mdui.jq/es/methods/trigger';\nimport 'mdui.jq/es/methods/val';\nimport Selector from 'mdui.jq/es/types/Selector';\nimport { isUndefined } from 'mdui.jq/es/utils';\nimport mdui from '../../mdui';\nimport '../../global/mutation';\nimport { $document } from '../../utils/dom';\n\ndeclare module '../../interfaces/MduiStatic' {\n interface MduiStatic {\n /**\n * 动态修改了文本框后,需要调用该方法重新初始化文本框。\n *\n * 若传入了参数,则只初始化该参数对应的文本框。若没有传入参数,则重新初始化所有文本框。\n * @param selector CSS 选择器、或 DOM 元素、或 DOM 元素组成的数组、或 JQ 对象\n */\n updateTextFields(\n selector?: Selector | HTMLElement | ArrayLike,\n ): void;\n }\n}\n\ntype INPUT_EVENT_DATA = {\n reInit?: boolean;\n domLoadedEvent?: boolean;\n};\n\nconst defaultData: INPUT_EVENT_DATA = {\n reInit: false,\n domLoadedEvent: false,\n};\n\n/**\n * 输入框事件\n * @param event\n * @param data\n */\nfunction inputEvent(event: Event, data: INPUT_EVENT_DATA = {}): void {\n data = extend({}, defaultData, data);\n\n const input = event.target as HTMLInputElement;\n const $input = $(input);\n const eventType = event.type;\n const value = $input.val() as string;\n\n // 文本框类型\n const inputType = $input.attr('type') || '';\n if (\n ['checkbox', 'button', 'submit', 'range', 'radio', 'image'].indexOf(\n inputType,\n ) > -1\n ) {\n return;\n }\n\n const $textfield = $input.parent('.mdui-textfield');\n\n // 输入框是否聚焦\n if (eventType === 'focus') {\n $textfield.addClass('mdui-textfield-focus');\n }\n\n if (eventType === 'blur') {\n $textfield.removeClass('mdui-textfield-focus');\n }\n\n // 输入框是否为空\n if (eventType === 'blur' || eventType === 'input') {\n value\n ? $textfield.addClass('mdui-textfield-not-empty')\n : $textfield.removeClass('mdui-textfield-not-empty');\n }\n\n // 输入框是否禁用\n input.disabled\n ? $textfield.addClass('mdui-textfield-disabled')\n : $textfield.removeClass('mdui-textfield-disabled');\n\n // 表单验证\n if (\n (eventType === 'input' || eventType === 'blur') &&\n !data.domLoadedEvent &&\n input.validity\n ) {\n input.validity.valid\n ? $textfield.removeClass('mdui-textfield-invalid-html5')\n : $textfield.addClass('mdui-textfield-invalid-html5');\n }\n\n // textarea 高度自动调整\n if ($input.is('textarea')) {\n // IE bug:textarea 的值仅为多个换行,不含其他内容时,textarea 的高度不准确\n // 此时,在计算高度前,在值的开头加入一个空格,计算完后,移除空格\n const inputValue = value;\n let hasExtraSpace = false;\n\n if (inputValue.replace(/[\\r\\n]/g, '') === '') {\n $input.val(' ' + inputValue);\n hasExtraSpace = true;\n }\n\n // 设置 textarea 高度\n $input.outerHeight('');\n const height = $input.outerHeight();\n const scrollHeight = input.scrollHeight;\n\n if (scrollHeight > height) {\n $input.outerHeight(scrollHeight);\n }\n\n // 计算完,还原 textarea 的值\n if (hasExtraSpace) {\n $input.val(inputValue);\n }\n }\n\n // 实时字数统计\n if (data.reInit) {\n $textfield.find('.mdui-textfield-counter').remove();\n }\n\n const maxLength = $input.attr('maxlength');\n if (maxLength) {\n if (data.reInit || data.domLoadedEvent) {\n $(\n '
          ' +\n ` / ${maxLength}` +\n '
          ',\n ).appendTo($textfield);\n }\n\n $textfield\n .find('.mdui-textfield-counter-inputed')\n .text(value.length.toString());\n }\n\n // 含 帮助文本、错误提示、字数统计 时,增加文本框底部内边距\n if (\n $textfield.find('.mdui-textfield-helper').length ||\n $textfield.find('.mdui-textfield-error').length ||\n maxLength\n ) {\n $textfield.addClass('mdui-textfield-has-bottom');\n }\n}\n\n$(() => {\n // 绑定事件\n $document.on(\n 'input focus blur',\n '.mdui-textfield-input',\n { useCapture: true },\n inputEvent,\n );\n\n // 可展开文本框展开\n $document.on(\n 'click',\n '.mdui-textfield-expandable .mdui-textfield-icon',\n function () {\n $(this as HTMLElement)\n .parents('.mdui-textfield')\n .addClass('mdui-textfield-expanded')\n .find('.mdui-textfield-input')[0]\n .focus();\n },\n );\n\n // 可展开文本框关闭\n $document.on(\n 'click',\n '.mdui-textfield-expanded .mdui-textfield-close',\n function () {\n $(this)\n .parents('.mdui-textfield')\n .removeClass('mdui-textfield-expanded')\n .find('.mdui-textfield-input')\n .val('');\n },\n );\n\n /**\n * 初始化文本框\n */\n mdui.mutation('.mdui-textfield', function () {\n $(this).find('.mdui-textfield-input').trigger('input', {\n domLoadedEvent: true,\n });\n });\n});\n\nmdui.updateTextFields = function (\n selector?: Selector | HTMLElement | ArrayLike,\n): void {\n const $elements = isUndefined(selector) ? $('.mdui-textfield') : $(selector);\n\n $elements.each((_, element) => {\n $(element).find('.mdui-textfield-input').trigger('input', {\n reInit: true,\n });\n });\n};\n","import $ from 'mdui.jq/es/$';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport 'mdui.jq/es/methods/addClass';\nimport 'mdui.jq/es/methods/append';\nimport 'mdui.jq/es/methods/attr';\nimport 'mdui.jq/es/methods/css';\nimport 'mdui.jq/es/methods/data';\nimport 'mdui.jq/es/methods/each';\nimport 'mdui.jq/es/methods/empty';\nimport 'mdui.jq/es/methods/find';\nimport 'mdui.jq/es/methods/hasClass';\nimport 'mdui.jq/es/methods/on';\nimport 'mdui.jq/es/methods/parent';\nimport 'mdui.jq/es/methods/remove';\nimport 'mdui.jq/es/methods/removeClass';\nimport 'mdui.jq/es/methods/text';\nimport 'mdui.jq/es/methods/val';\nimport 'mdui.jq/es/methods/width';\nimport Selector from 'mdui.jq/es/types/Selector';\nimport { isUndefined } from 'mdui.jq/es/utils';\nimport mdui from '../../mdui';\nimport { $document } from '../../utils/dom';\nimport {\n endEvent,\n isAllow,\n register,\n startEvent,\n unlockEvent,\n} from '../../utils/touchHandler';\n\ndeclare module '../../interfaces/MduiStatic' {\n interface MduiStatic {\n /**\n * 动态修改了滑块后,需要调用该方法重新初始化滑块\n *\n * 若传入了参数,则只初始化该参数对应的滑块。若没有传入参数,则重新初始化所有滑块。\n * @param selector CSS 选择器、或 DOM 元素、或 DOM 元素组成的数组、或 JQ 对象\n */\n updateSliders(\n selector?: Selector | HTMLElement | ArrayLike,\n ): void;\n }\n}\n\n/**\n * 滑块的值改变后修改滑块样式\n * @param $slider\n */\nfunction updateValueStyle($slider: JQ): void {\n const data = $slider.data();\n\n const $track = data._slider_$track;\n const $fill = data._slider_$fill;\n const $thumb = data._slider_$thumb;\n const $input = data._slider_$input;\n const min = data._slider_min;\n const max = data._slider_max;\n const isDisabled = data._slider_disabled;\n const isDiscrete = data._slider_discrete;\n const $thumbText = data._slider_$thumbText;\n const value = $input.val();\n const percent = ((value - min) / (max - min)) * 100;\n\n $fill.width(`${percent}%`);\n $track.width(`${100 - percent}%`);\n\n if (isDisabled) {\n $fill.css('padding-right', '6px');\n $track.css('padding-left', '6px');\n }\n\n $thumb.css('left', `${percent}%`);\n\n if (isDiscrete) {\n $thumbText.text(value);\n }\n\n percent === 0\n ? $slider.addClass('mdui-slider-zero')\n : $slider.removeClass('mdui-slider-zero');\n}\n\n/**\n * 重新初始化滑块\n * @param $slider\n */\nfunction reInit($slider: JQ): void {\n const $track = $('
          ');\n const $fill = $('
          ');\n const $thumb = $('
          ');\n const $input = $slider.find('input[type=\"range\"]') as JQ;\n const isDisabled = $input[0].disabled;\n const isDiscrete = $slider.hasClass('mdui-slider-discrete');\n\n // 禁用状态\n isDisabled\n ? $slider.addClass('mdui-slider-disabled')\n : $slider.removeClass('mdui-slider-disabled');\n\n // 重新填充 HTML\n $slider.find('.mdui-slider-track').remove();\n $slider.find('.mdui-slider-fill').remove();\n $slider.find('.mdui-slider-thumb').remove();\n $slider.append($track).append($fill).append($thumb);\n\n // 间续型滑块\n let $thumbText = $();\n if (isDiscrete) {\n $thumbText = $('');\n $thumb.empty().append($thumbText);\n }\n\n $slider.data('_slider_$track', $track);\n $slider.data('_slider_$fill', $fill);\n $slider.data('_slider_$thumb', $thumb);\n $slider.data('_slider_$input', $input);\n $slider.data('_slider_min', $input.attr('min'));\n $slider.data('_slider_max', $input.attr('max'));\n $slider.data('_slider_disabled', isDisabled);\n $slider.data('_slider_discrete', isDiscrete);\n $slider.data('_slider_$thumbText', $thumbText);\n\n // 设置默认值\n updateValueStyle($slider);\n}\n\nconst rangeSelector = '.mdui-slider input[type=\"range\"]';\n\n$(() => {\n // 滑块滑动事件\n $document.on('input change', rangeSelector, function () {\n const $slider = $(this).parent() as JQ;\n\n updateValueStyle($slider);\n });\n\n // 开始触摸滑块事件\n $document.on(startEvent, rangeSelector, function (event: Event) {\n if (!isAllow(event)) {\n return;\n }\n\n register(event);\n\n if ((this as HTMLInputElement).disabled) {\n return;\n }\n\n const $slider = $(this).parent() as JQ;\n\n $slider.addClass('mdui-slider-focus');\n });\n\n // 结束触摸滑块事件\n $document.on(endEvent, rangeSelector, function (event: Event) {\n if (!isAllow(event)) {\n return;\n }\n\n if ((this as HTMLInputElement).disabled) {\n return;\n }\n\n const $slider = $(this).parent() as JQ;\n\n $slider.removeClass('mdui-slider-focus');\n });\n\n $document.on(unlockEvent, rangeSelector, register);\n\n /**\n * 初始化滑块\n */\n mdui.mutation('.mdui-slider', function () {\n reInit($(this));\n });\n});\n\nmdui.updateSliders = function (\n selector?: Selector | HTMLElement | ArrayLike,\n): void {\n const $elements = isUndefined(selector) ? $('.mdui-slider') : $(selector);\n\n $elements.each((_, element) => {\n reInit($(element));\n });\n};\n","import $ from 'mdui.jq/es/$';\nimport extend from 'mdui.jq/es/functions/extend';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport 'mdui.jq/es/methods/addClass';\nimport 'mdui.jq/es/methods/css';\nimport 'mdui.jq/es/methods/each';\nimport 'mdui.jq/es/methods/find';\nimport 'mdui.jq/es/methods/first';\nimport 'mdui.jq/es/methods/hasClass';\nimport 'mdui.jq/es/methods/last';\nimport 'mdui.jq/es/methods/on';\nimport 'mdui.jq/es/methods/parents';\nimport 'mdui.jq/es/methods/removeClass';\nimport Selector from 'mdui.jq/es/types/Selector';\nimport mdui from '../../mdui';\nimport '../../jq_extends/methods/transitionEnd';\nimport { componentEvent } from '../../utils/componentEvent';\nimport { $document } from '../../utils/dom';\nimport { startEvent } from '../../utils/touchHandler';\n\ndeclare module '../../interfaces/MduiStatic' {\n interface MduiStatic {\n /**\n * 浮动操作按钮组件\n *\n * 请通过 `new mdui.Fab()` 调用\n */\n Fab: {\n /**\n * 实例化 Fab 组件\n * @param selector CSS 选择器、或 DOM 元素、或 JQ 对象\n * @param options 配置参数\n */\n new (\n selector: Selector | HTMLElement | ArrayLike,\n options?: OPTIONS,\n ): Fab;\n };\n }\n}\n\ntype OPTIONS = {\n /**\n * 触发方式。`hover`: 鼠标悬浮触发;`click`: 点击触发\n *\n * 默认为 `hover`\n */\n trigger?: 'click' | 'hover';\n};\n\ntype STATE = 'opening' | 'opened' | 'closing' | 'closed';\ntype EVENT = 'open' | 'opened' | 'close' | 'closed';\n\nconst DEFAULT_OPTIONS: OPTIONS = {\n trigger: 'hover',\n};\n\nclass Fab {\n /**\n * Fab 元素的 JQ 对象\n */\n public $element: JQ;\n\n /**\n * 配置参数\n */\n public options: OPTIONS = extend({}, DEFAULT_OPTIONS);\n\n /**\n * 当前 fab 的状态\n */\n private state: STATE = 'closed';\n\n /**\n * 按钮元素\n */\n private $btn: JQ;\n\n /**\n * 拨号菜单元素\n */\n private $dial: JQ;\n\n /**\n * 拨号菜单内的按钮\n */\n private $dialBtns: JQ;\n\n public constructor(\n selector: Selector | HTMLElement | ArrayLike,\n options: OPTIONS = {},\n ) {\n this.$element = $(selector).first();\n\n extend(this.options, options);\n\n this.$btn = this.$element.find('.mdui-fab');\n this.$dial = this.$element.find('.mdui-fab-dial');\n this.$dialBtns = this.$dial.find('.mdui-fab');\n\n if (this.options.trigger === 'hover') {\n this.$btn.on('touchstart mouseenter', () => this.open());\n this.$element.on('mouseleave', () => this.close());\n }\n\n if (this.options.trigger === 'click') {\n this.$btn.on(startEvent, () => this.open());\n }\n\n // 触摸屏幕其他地方关闭快速拨号\n $document.on(startEvent, (event) => {\n if ($(event.target as HTMLElement).parents('.mdui-fab-wrapper').length) {\n return;\n }\n\n this.close();\n });\n }\n\n /**\n * 触发组件事件\n * @param name\n */\n private triggerEvent(name: EVENT): void {\n componentEvent(name, 'fab', this.$element, this);\n }\n\n /**\n * 当前是否为打开状态\n */\n private isOpen(): boolean {\n return this.state === 'opening' || this.state === 'opened';\n }\n\n /**\n * 打开快速拨号菜单\n */\n public open(): void {\n if (this.isOpen()) {\n return;\n }\n\n // 为菜单中的按钮添加不同的 transition-delay\n this.$dialBtns.each((index, btn) => {\n const delay = `${15 * (this.$dialBtns.length - index)}ms`;\n\n btn.style.transitionDelay = delay;\n btn.style.webkitTransitionDelay = delay;\n });\n\n this.$dial.css('height', 'auto').addClass('mdui-fab-dial-show');\n\n // 如果按钮中存在 .mdui-fab-opened 的图标,则进行图标切换\n if (this.$btn.find('.mdui-fab-opened').length) {\n this.$btn.addClass('mdui-fab-opened');\n }\n\n this.state = 'opening';\n this.triggerEvent('open');\n\n // 打开顺序为从下到上逐个打开,最上面的打开后才表示动画完成\n this.$dialBtns.first().transitionEnd(() => {\n if (this.$btn.hasClass('mdui-fab-opened')) {\n this.state = 'opened';\n this.triggerEvent('opened');\n }\n });\n }\n\n /**\n * 关闭快速拨号菜单\n */\n public close(): void {\n if (!this.isOpen()) {\n return;\n }\n\n // 为菜单中的按钮添加不同的 transition-delay\n this.$dialBtns.each((index, btn) => {\n const delay = `${15 * index}ms`;\n\n btn.style.transitionDelay = delay;\n btn.style.webkitTransitionDelay = delay;\n });\n\n this.$dial.removeClass('mdui-fab-dial-show');\n this.$btn.removeClass('mdui-fab-opened');\n this.state = 'closing';\n this.triggerEvent('close');\n\n // 从上往下依次关闭,最后一个关闭后才表示动画完成\n this.$dialBtns.last().transitionEnd(() => {\n if (this.$btn.hasClass('mdui-fab-opened')) {\n return;\n }\n\n this.state = 'closed';\n this.triggerEvent('closed');\n this.$dial.css('height', 0);\n });\n }\n\n /**\n * 切换快速拨号菜单的打开状态\n */\n public toggle(): void {\n this.isOpen() ? this.close() : this.open();\n }\n\n /**\n * 以动画的形式显示整个浮动操作按钮\n */\n public show(): void {\n this.$element.removeClass('mdui-fab-hide');\n }\n\n /**\n * 以动画的形式隐藏整个浮动操作按钮\n */\n public hide(): void {\n this.$element.addClass('mdui-fab-hide');\n }\n\n /**\n * 返回当前快速拨号菜单的打开状态。共包含四种状态:`opening`、`opened`、`closing`、`closed`\n */\n public getState(): STATE {\n return this.state;\n }\n}\n\nmdui.Fab = Fab;\n","import $ from 'mdui.jq/es/$';\nimport mdui from '../../mdui';\nimport { $document } from '../../utils/dom';\nimport { parseOptions } from '../../utils/parseOptions';\nimport './index';\n\nconst customAttr = 'mdui-fab';\n\n$(() => {\n // mouseenter 不冒泡,无法进行事件委托,这里用 mouseover 代替。\n // 不管是 click 、 mouseover 还是 touchstart ,都先初始化。\n\n $document.on(\n 'touchstart mousedown mouseover',\n `[${customAttr}]`,\n function () {\n new mdui.Fab(\n this as HTMLElement,\n parseOptions(this as HTMLElement, customAttr),\n );\n },\n );\n});\n","/**\n * 最终生成的元素结构为:\n * \n *
          // $element\n * State 1 // $selected\n *
          // $menu\n *
          State 1
          // $items\n *
          State 2
          \n *
          State 3
          \n *
          \n *
          \n */\n\nimport $ from 'mdui.jq/es/$';\nimport contains from 'mdui.jq/es/functions/contains';\nimport extend from 'mdui.jq/es/functions/extend';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport 'mdui.jq/es/methods/add';\nimport 'mdui.jq/es/methods/addClass';\nimport 'mdui.jq/es/methods/after';\nimport 'mdui.jq/es/methods/append';\nimport 'mdui.jq/es/methods/appendTo';\nimport 'mdui.jq/es/methods/attr';\nimport 'mdui.jq/es/methods/css';\nimport 'mdui.jq/es/methods/each';\nimport 'mdui.jq/es/methods/find';\nimport 'mdui.jq/es/methods/first';\nimport 'mdui.jq/es/methods/height';\nimport 'mdui.jq/es/methods/hide';\nimport 'mdui.jq/es/methods/index';\nimport 'mdui.jq/es/methods/innerWidth';\nimport 'mdui.jq/es/methods/is';\nimport 'mdui.jq/es/methods/on';\nimport 'mdui.jq/es/methods/remove';\nimport 'mdui.jq/es/methods/removeAttr';\nimport 'mdui.jq/es/methods/removeClass';\nimport 'mdui.jq/es/methods/show';\nimport 'mdui.jq/es/methods/text';\nimport 'mdui.jq/es/methods/trigger';\nimport 'mdui.jq/es/methods/val';\nimport Selector from 'mdui.jq/es/types/Selector';\nimport mdui from '../../mdui';\nimport '../../jq_extends/methods/transitionEnd';\nimport '../../jq_extends/static/guid';\nimport { componentEvent } from '../../utils/componentEvent';\nimport { $document, $window } from '../../utils/dom';\n\ndeclare module '../../interfaces/MduiStatic' {\n interface MduiStatic {\n /**\n * 下拉选择组件\n *\n * 请通过 `new mdui.Select()` 调用\n */\n Select: {\n /**\n * 实例化 Select 组件\n * @param selector CSS 选择器、或 DOM 元素、或 JQ 对象\n * @param options 配置参数\n */\n new (\n selector: Selector | HTMLElement | ArrayLike,\n options?: OPTIONS,\n ): Select;\n };\n }\n}\n\ntype OPTIONS = {\n /**\n * 下拉框位置:`auto`、`top`、`bottom`\n */\n position?: 'auto' | 'top' | 'bottom';\n\n /**\n * 菜单与窗口上下边框至少保持多少间距\n */\n gutter?: number;\n};\n\ntype STATE = 'closing' | 'closed' | 'opening' | 'opened';\ntype EVENT = 'open' | 'opened' | 'close' | 'closed';\n\nconst DEFAULT_OPTIONS: OPTIONS = {\n position: 'auto',\n gutter: 16,\n};\n\nclass Select {\n /**\n * 原生 ``\n : '') +\n (options.type === 'textarea'\n ? ``\n : '') +\n '
          ';\n\n const onCancelClick = (dialog: Dialog): void => {\n const value = dialog.$element.find('.mdui-textfield-input').val();\n onCancel(value, dialog);\n };\n\n const onConfirmClick = (dialog: Dialog): void => {\n const value = dialog.$element.find('.mdui-textfield-input').val();\n onConfirm(value, dialog);\n };\n\n return mdui.dialog({\n title,\n content,\n buttons: [\n {\n text: options.cancelText,\n bold: false,\n close: options.closeOnCancel,\n onClick: onCancelClick,\n },\n {\n text: options.confirmText,\n bold: false,\n close: options.closeOnConfirm,\n onClick: onConfirmClick,\n },\n ],\n cssClass: 'mdui-dialog-prompt',\n history: options.history,\n modal: options.modal,\n closeOnEsc: options.closeOnEsc,\n onOpen: (dialog) => {\n // 初始化输入框\n const $input = dialog.$element.find('.mdui-textfield-input');\n mdui.updateTextFields($input);\n\n // 聚焦到输入框\n $input[0].focus();\n\n // 捕捉文本框回车键,在单行文本框的情况下触发回调\n if (options.type !== 'textarea' && options.confirmOnEnter === true) {\n $input.on('keydown', (event) => {\n if ((event as KeyboardEvent).keyCode === 13) {\n const value = dialog.$element.find('.mdui-textfield-input').val();\n onConfirm(value, dialog);\n\n if (options.closeOnConfirm) {\n dialog.close();\n }\n\n return false;\n }\n\n return;\n });\n }\n\n // 如果是多行输入框,监听输入框的 input 事件,更新对话框高度\n if (options.type === 'textarea') {\n $input.on('input', () => dialog.handleUpdate());\n }\n\n // 有字符数限制时,加载完文本框后 DOM 会变化,需要更新对话框高度\n if (options.maxlength) {\n dialog.handleUpdate();\n }\n },\n });\n};\n","import $ from 'mdui.jq/es/$';\nimport extend from 'mdui.jq/es/functions/extend';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport 'mdui.jq/es/methods/addClass';\nimport 'mdui.jq/es/methods/appendTo';\nimport 'mdui.jq/es/methods/attr';\nimport 'mdui.jq/es/methods/css';\nimport 'mdui.jq/es/methods/first';\nimport 'mdui.jq/es/methods/hasClass';\nimport 'mdui.jq/es/methods/height';\nimport 'mdui.jq/es/methods/html';\nimport 'mdui.jq/es/methods/offset';\nimport 'mdui.jq/es/methods/on';\nimport 'mdui.jq/es/methods/removeClass';\nimport 'mdui.jq/es/methods/width';\nimport Selector from 'mdui.jq/es/types/Selector';\nimport mdui from '../../mdui';\nimport '../../jq_extends/methods/transformOrigin';\nimport '../../jq_extends/methods/transitionEnd';\nimport '../../jq_extends/static/guid';\nimport { componentEvent } from '../../utils/componentEvent';\nimport { $window } from '../../utils/dom';\nimport { isAllow, register, unlockEvent } from '../../utils/touchHandler';\n\ndeclare module '../../interfaces/MduiStatic' {\n interface MduiStatic {\n /**\n * Tooltip 组件\n *\n * 请通过 `new mdui.Tooltip()` 调用\n */\n Tooltip: {\n /**\n * 实例化 Tooltip 组件\n * @param selector CSS 选择器、或 DOM 元素、或 JQ 对象\n * @param options 配置参数\n */\n new (\n selector: Selector | HTMLElement | ArrayLike,\n options?: OPTIONS,\n ): Tooltip;\n };\n }\n}\n\ntype POSITION = 'auto' | 'bottom' | 'top' | 'left' | 'right';\n\ntype OPTIONS = {\n /**\n * Tooltip 的位置。取值范围包括 `auto`、`bottom`、`top`、`left`、`right`。\n * 为 `auto` 时,会自动判断位置。默认在下方。优先级为 `bottom` > `top` > `left` > `right`。\n * 默认为 `auto`\n */\n position?: POSITION;\n\n /**\n * 延时触发,单位毫秒。默认为 `0`,即没有延时。\n */\n delay?: number;\n\n /**\n * Tooltip 的内容\n */\n content?: string;\n};\n\ntype STATE = 'opening' | 'opened' | 'closing' | 'closed';\ntype EVENT = 'open' | 'opened' | 'close' | 'closed';\n\nconst DEFAULT_OPTIONS: OPTIONS = {\n position: 'auto',\n delay: 0,\n content: '',\n};\n\nclass Tooltip {\n /**\n * 触发 tooltip 元素的 JQ 对象\n */\n public $target: JQ;\n\n /**\n * tooltip 元素的 JQ 对象\n */\n public $element: JQ;\n\n /**\n * 配置参数\n */\n public options: OPTIONS = extend({}, DEFAULT_OPTIONS);\n\n /**\n * 当前 tooltip 的状态\n */\n private state: STATE = 'closed';\n\n /**\n * setTimeout 的返回值\n */\n private timeoutId: any = null;\n\n public constructor(\n selector: Selector | HTMLElement | ArrayLike,\n options: OPTIONS = {},\n ) {\n this.$target = $(selector).first();\n\n extend(this.options, options);\n\n // 创建 Tooltip HTML\n this.$element = $(\n `
          ${\n this.options.content\n }
          `,\n ).appendTo(document.body);\n\n // 绑定事件。元素处于 disabled 状态时无法触发鼠标事件,为了统一,把 touch 事件也禁用\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const that = this;\n this.$target\n .on('touchstart mouseenter', function (event) {\n if (that.isDisabled(this as HTMLElement)) {\n return;\n }\n\n if (!isAllow(event)) {\n return;\n }\n\n register(event);\n\n that.open();\n })\n .on('touchend mouseleave', function (event) {\n if (that.isDisabled(this as HTMLElement)) {\n return;\n }\n\n if (!isAllow(event)) {\n return;\n }\n\n that.close();\n })\n .on(unlockEvent, function (event) {\n if (that.isDisabled(this as HTMLElement)) {\n return;\n }\n\n register(event);\n });\n }\n\n /**\n * 元素是否已禁用\n * @param element\n */\n private isDisabled(element: HTMLElement): boolean {\n return (\n (element as HTMLInputElement).disabled ||\n $(element).attr('disabled') !== undefined\n );\n }\n\n /**\n * 是否是桌面设备\n */\n private isDesktop(): boolean {\n return $window.width() > 1024;\n }\n\n /**\n * 设置 Tooltip 的位置\n */\n private setPosition(): void {\n let marginLeft: number;\n let marginTop: number;\n\n // 触发的元素\n const targetProps = this.$target[0].getBoundingClientRect();\n\n // 触发的元素和 Tooltip 之间的距离\n const targetMargin = this.isDesktop() ? 14 : 24;\n\n // Tooltip 的宽度和高度\n const tooltipWidth = this.$element[0].offsetWidth;\n const tooltipHeight = this.$element[0].offsetHeight;\n\n // Tooltip 的方向\n let position: POSITION = this.options.position!;\n\n // 自动判断位置,加 2px,使 Tooltip 距离窗口边框至少有 2px 的间距\n if (position === 'auto') {\n if (\n targetProps.top +\n targetProps.height +\n targetMargin +\n tooltipHeight +\n 2 <\n $window.height()\n ) {\n position = 'bottom';\n } else if (targetMargin + tooltipHeight + 2 < targetProps.top) {\n position = 'top';\n } else if (targetMargin + tooltipWidth + 2 < targetProps.left) {\n position = 'left';\n } else if (\n targetProps.width + targetMargin + tooltipWidth + 2 <\n $window.width() - targetProps.left\n ) {\n position = 'right';\n } else {\n position = 'bottom';\n }\n }\n\n // 设置位置\n switch (position) {\n case 'bottom':\n marginLeft = -1 * (tooltipWidth / 2);\n marginTop = targetProps.height / 2 + targetMargin;\n this.$element.transformOrigin('top center');\n break;\n\n case 'top':\n marginLeft = -1 * (tooltipWidth / 2);\n marginTop =\n -1 * (tooltipHeight + targetProps.height / 2 + targetMargin);\n this.$element.transformOrigin('bottom center');\n break;\n\n case 'left':\n marginLeft = -1 * (tooltipWidth + targetProps.width / 2 + targetMargin);\n marginTop = -1 * (tooltipHeight / 2);\n this.$element.transformOrigin('center right');\n break;\n\n case 'right':\n marginLeft = targetProps.width / 2 + targetMargin;\n marginTop = -1 * (tooltipHeight / 2);\n this.$element.transformOrigin('center left');\n break;\n }\n\n const targetOffset = this.$target.offset();\n\n this.$element.css({\n top: `${targetOffset.top + targetProps.height / 2}px`,\n left: `${targetOffset.left + targetProps.width / 2}px`,\n 'margin-left': `${marginLeft}px`,\n 'margin-top': `${marginTop}px`,\n });\n }\n\n /**\n * 触发组件事件\n * @param name\n */\n private triggerEvent(name: EVENT): void {\n componentEvent(name, 'tooltip', this.$target, this);\n }\n\n /**\n * 动画结束回调\n */\n private transitionEnd(): void {\n if (this.$element.hasClass('mdui-tooltip-open')) {\n this.state = 'opened';\n this.triggerEvent('opened');\n } else {\n this.state = 'closed';\n this.triggerEvent('closed');\n }\n }\n\n /**\n * 当前 tooltip 是否为打开状态\n */\n private isOpen(): boolean {\n return this.state === 'opening' || this.state === 'opened';\n }\n\n /**\n * 执行打开 tooltip\n */\n private doOpen(): void {\n this.state = 'opening';\n this.triggerEvent('open');\n\n this.$element\n .addClass('mdui-tooltip-open')\n .transitionEnd(() => this.transitionEnd());\n }\n\n /**\n * 打开 Tooltip\n * @param options 允许每次打开时设置不同的参数\n */\n public open(options?: OPTIONS): void {\n if (this.isOpen()) {\n return;\n }\n\n const oldOptions = extend({}, this.options);\n\n if (options) {\n extend(this.options, options);\n }\n\n // tooltip 的内容有更新\n if (oldOptions.content !== this.options.content) {\n this.$element.html(this.options.content);\n }\n\n this.setPosition();\n\n if (this.options.delay) {\n this.timeoutId = setTimeout(() => this.doOpen(), this.options.delay);\n } else {\n this.timeoutId = null;\n this.doOpen();\n }\n }\n\n /**\n * 关闭 Tooltip\n */\n public close(): void {\n if (this.timeoutId) {\n clearTimeout(this.timeoutId);\n this.timeoutId = null;\n }\n\n if (!this.isOpen()) {\n return;\n }\n\n this.state = 'closing';\n this.triggerEvent('close');\n\n this.$element\n .removeClass('mdui-tooltip-open')\n .transitionEnd(() => this.transitionEnd());\n }\n\n /**\n * 切换 Tooltip 的打开状态\n */\n public toggle(): void {\n this.isOpen() ? this.close() : this.open();\n }\n\n /**\n * 获取 Tooltip 状态。共包含四种状态:`opening`、`opened`、`closing`、`closed`\n */\n public getState(): STATE {\n return this.state;\n }\n}\n\nmdui.Tooltip = Tooltip;\n","import $ from 'mdui.jq/es/$';\nimport 'mdui.jq/es/methods/data';\nimport 'mdui.jq/es/methods/on';\nimport mdui from '../../mdui';\nimport { $document } from '../../utils/dom';\nimport { parseOptions } from '../../utils/parseOptions';\nimport './index';\n\nconst customAttr = 'mdui-tooltip';\nconst dataName = '_mdui_tooltip';\n\n$(() => {\n // mouseenter 不能冒泡,所以这里用 mouseover 代替\n $document.on('touchstart mouseover', `[${customAttr}]`, function () {\n const $target = $(this);\n let instance = $target.data(dataName);\n\n if (!instance) {\n instance = new mdui.Tooltip(\n this as HTMLElement,\n parseOptions(this as HTMLElement, customAttr),\n );\n $target.data(dataName, instance);\n }\n });\n});\n","import $ from 'mdui.jq/es/$';\nimport extend from 'mdui.jq/es/functions/extend';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport 'mdui.jq/es/methods/addClass';\nimport 'mdui.jq/es/methods/appendTo';\nimport 'mdui.jq/es/methods/find';\nimport 'mdui.jq/es/methods/hasClass';\nimport 'mdui.jq/es/methods/off';\nimport 'mdui.jq/es/methods/on';\nimport 'mdui.jq/es/methods/parents';\nimport 'mdui.jq/es/methods/remove';\nimport { isString } from 'mdui.jq/es/utils';\nimport mdui from '../../mdui';\nimport '../../jq_extends/methods/reflow';\nimport '../../jq_extends/methods/transform';\nimport '../../jq_extends/methods/transitionEnd';\nimport { $document } from '../../utils/dom';\nimport { dequeue, queue } from '../../utils/queue';\nimport { startEvent } from '../../utils/touchHandler';\n\ndeclare module '../../interfaces/MduiStatic' {\n interface MduiStatic {\n /**\n * 打开一个 Snackbar\n * @param message Snackbar 的文本\n * @param options 配置参数\n */\n snackbar(message: string, options?: OPTIONS): Snackbar;\n\n /**\n * 打开一个 Snackbar\n * @param options 配置参数\n */\n snackbar(options: OPTIONS): Snackbar;\n }\n}\n\ntype OPTIONS = {\n /**\n * Snackbar 的文本。通过 `mdui.snackbar(options)` 调用时,该参数不能为空\n */\n message?: string;\n\n /**\n * 在用户没有操作时多长时间自动隐藏,单位(毫秒)。为 `0` 时表示不自动关闭,默认为 `4000`\n */\n timeout?: number;\n\n /**\n * Snackbar 的位置,默认为 `bottom`。\n * 取值范围包括:\n * `bottom`: 下方\n * `top`: 上方\n * `left-top`: 左上角\n * `left-bottom`: 左下角\n * `right-top`: 右上角\n * `right-bottom`: 右下角\n */\n position?:\n | 'bottom'\n | 'top'\n | 'left-top'\n | 'left-bottom'\n | 'right-top'\n | 'right-bottom';\n\n /**\n * 按钮的文本\n */\n buttonText?: string;\n\n /**\n * 按钮的文本颜色,可以是颜色名或颜色值,如 `red`、`#ffffff`、`rgba(255, 255, 255, 0.3)` 等。默认为 `#90CAF9`\n */\n buttonColor?: string;\n\n /**\n * 点击按钮时是否关闭 Snackbar,默认为 `true`\n */\n closeOnButtonClick?: boolean;\n\n /**\n * 点击或触摸 Snackbar 以外的区域时是否关闭 Snackbar,默认为 `true`\n */\n closeOnOutsideClick?: boolean;\n\n /**\n * 在 Snackbar 上点击的回调函数,参数为 Snackbar 的实例\n */\n onClick?: (snackbar: Snackbar) => void;\n\n /**\n * 点击 Snackbar 上的按钮时的回调函数,参数为 Snackbar 的实例\n */\n onButtonClick?: (snackbar: Snackbar) => void;\n\n /**\n * Snackbar 开始打开时的回调函数,参数为 Snackbar 的实例\n */\n onOpen?: (snackbar: Snackbar) => void;\n\n /**\n * Snackbar 打开后的回调函数,参数为 Snackbar 的实例\n */\n onOpened?: (snackbar: Snackbar) => void;\n\n /**\n * Snackbar 开始关闭时的回调函数,参数为 Snackbar 的实例\n */\n onClose?: (snackbar: Snackbar) => void;\n\n /**\n * Snackbar 关闭后的回调函数,参数为 Snackbar 的实例\n */\n onClosed?: (snackbar: Snackbar) => void;\n};\n\ntype STATE = 'opening' | 'opened' | 'closing' | 'closed';\n\nconst DEFAULT_OPTIONS: OPTIONS = {\n message: '',\n timeout: 4000,\n position: 'bottom',\n buttonText: '',\n buttonColor: '',\n closeOnButtonClick: true,\n closeOnOutsideClick: true,\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onClick: () => {},\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onButtonClick: () => {},\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onOpen: () => {},\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onOpened: () => {},\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onClose: () => {},\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onClosed: () => {},\n};\n\n/**\n * 当前打开着的 Snackbar\n */\nlet currentInst: null | Snackbar = null;\n\n/**\n * 队列名\n */\nconst queueName = '_mdui_snackbar';\n\nclass Snackbar {\n /**\n * Snackbar 元素\n */\n public $element: JQ;\n /**\n * 配置参数\n */\n public options: OPTIONS = extend({}, DEFAULT_OPTIONS);\n\n /**\n * 当前 Snackbar 的状态\n */\n private state: STATE = 'closed';\n\n /**\n * setTimeout 的 ID\n */\n private timeoutId: any = null;\n\n public constructor(options: OPTIONS) {\n extend(this.options, options);\n\n // 按钮颜色\n let buttonColorStyle = '';\n let buttonColorClass = '';\n\n if (\n this.options.buttonColor!.indexOf('#') === 0 ||\n this.options.buttonColor!.indexOf('rgb') === 0\n ) {\n buttonColorStyle = `style=\"color:${this.options.buttonColor}\"`;\n } else if (this.options.buttonColor !== '') {\n buttonColorClass = `mdui-text-color-${this.options.buttonColor}`;\n }\n\n // 添加 HTML\n this.$element = $(\n '
          ' +\n `
          ${this.options.message}
          ` +\n (this.options.buttonText\n ? `${this.options.buttonText}`\n : '') +\n '
          ',\n ).appendTo(document.body);\n\n // 设置位置\n this.setPosition('close');\n\n this.$element.reflow().addClass(`mdui-snackbar-${this.options.position}`);\n }\n\n /**\n * 点击 Snackbar 外面的区域关闭\n * @param event\n */\n private closeOnOutsideClick(event: Event): void {\n const $target = $(event.target as HTMLElement);\n\n if (\n !$target.hasClass('mdui-snackbar') &&\n !$target.parents('.mdui-snackbar').length\n ) {\n currentInst!.close();\n }\n }\n\n /**\n * 设置 Snackbar 的位置\n * @param state\n */\n private setPosition(state: 'open' | 'close'): void {\n const snackbarHeight = this.$element[0].clientHeight;\n const position = this.options.position;\n\n let translateX;\n let translateY;\n\n // translateX\n if (position === 'bottom' || position === 'top') {\n translateX = '-50%';\n } else {\n translateX = '0';\n }\n\n // translateY\n if (state === 'open') {\n translateY = '0';\n } else {\n if (position === 'bottom') {\n translateY = snackbarHeight;\n }\n\n if (position === 'top') {\n translateY = -snackbarHeight;\n }\n\n if (position === 'left-top' || position === 'right-top') {\n translateY = -snackbarHeight - 24;\n }\n\n if (position === 'left-bottom' || position === 'right-bottom') {\n translateY = snackbarHeight + 24;\n }\n }\n\n this.$element.transform(`translate(${translateX},${translateY}px`);\n }\n\n /**\n * 打开 Snackbar\n */\n public open(): void {\n if (this.state === 'opening' || this.state === 'opened') {\n return;\n }\n\n // 如果当前有正在显示的 Snackbar,则先加入队列,等旧 Snackbar 关闭后再打开\n if (currentInst) {\n queue(queueName, () => this.open());\n return;\n }\n\n currentInst = this;\n\n // 开始打开\n this.state = 'opening';\n this.options.onOpen!(this);\n\n this.setPosition('open');\n\n this.$element.transitionEnd(() => {\n if (this.state !== 'opening') {\n return;\n }\n\n this.state = 'opened';\n this.options.onOpened!(this);\n\n // 有按钮时绑定事件\n if (this.options.buttonText) {\n this.$element.find('.mdui-snackbar-action').on('click', () => {\n this.options.onButtonClick!(this);\n if (this.options.closeOnButtonClick) {\n this.close();\n }\n });\n }\n\n // 点击 snackbar 的事件\n this.$element.on('click', (event) => {\n if (!$(event.target as HTMLElement).hasClass('mdui-snackbar-action')) {\n this.options.onClick!(this);\n }\n });\n\n // 点击 Snackbar 外面的区域关闭\n if (this.options.closeOnOutsideClick) {\n $document.on(startEvent, this.closeOnOutsideClick);\n }\n\n // 超时后自动关闭\n if (this.options.timeout) {\n this.timeoutId = setTimeout(() => this.close(), this.options.timeout);\n }\n });\n }\n\n /**\n * 关闭 Snackbar\n */\n public close(): void {\n if (this.state === 'closing' || this.state === 'closed') {\n return;\n }\n\n if (this.timeoutId) {\n clearTimeout(this.timeoutId);\n }\n\n if (this.options.closeOnOutsideClick) {\n $document.off(startEvent, this.closeOnOutsideClick);\n }\n\n this.state = 'closing';\n this.options.onClose!(this);\n\n this.setPosition('close');\n\n this.$element.transitionEnd(() => {\n if (this.state !== 'closing') {\n return;\n }\n\n currentInst = null;\n this.state = 'closed';\n this.options.onClosed!(this);\n this.$element.remove();\n dequeue(queueName);\n });\n }\n}\n\nmdui.snackbar = function (message: any, options: any = {}): Snackbar {\n if (isString(message)) {\n options.message = message;\n } else {\n options = message;\n }\n\n const instance = new Snackbar(options);\n\n instance.open();\n\n return instance;\n};\n","import $ from 'mdui.jq/es/$';\nimport 'mdui.jq/es/methods/each';\nimport 'mdui.jq/es/methods/hasClass';\nimport 'mdui.jq/es/methods/html';\nimport Selector from 'mdui.jq/es/types/Selector';\nimport { isUndefined } from 'mdui.jq/es/utils';\nimport mdui from '../../mdui';\nimport '../../global/mutation';\n\ndeclare module '../../interfaces/MduiStatic' {\n interface MduiStatic {\n /**\n * 如果需要修改已有的圆形进度条组件,需要调用该方法来重新初始化组件。\n *\n * 若传入了参数,则只重新初始化该参数对应的圆形进度条。若没有传入参数,则重新初始化所有圆形进度条。\n * @param selector CSS 选择器、或 DOM 元素、或 DOM 元素组成的数组、或 JQ 对象\n */\n updateSpinners(\n selector?: Selector | HTMLElement | ArrayLike,\n ): void;\n }\n}\n\n/**\n * layer 的 HTML 结构\n * @param index\n */\nfunction layerHTML(index: number | false = false): string {\n return (\n `
          ` +\n '
          ' +\n '
          ' +\n '
          ' +\n '
          ' +\n '
          ' +\n '
          ' +\n '
          ' +\n '
          ' +\n '
          ' +\n '
          '\n );\n}\n\n/**\n * 填充 HTML\n * @param spinner\n */\nfunction fillHTML(spinner: HTMLElement): void {\n const $spinner = $(spinner);\n\n const layer = $spinner.hasClass('mdui-spinner-colorful')\n ? layerHTML(1) + layerHTML(2) + layerHTML(3) + layerHTML(4)\n : layerHTML();\n\n $spinner.html(layer);\n}\n\n$(() => {\n // 页面加载完后自动填充 HTML 结构\n mdui.mutation('.mdui-spinner', function () {\n fillHTML(this);\n });\n});\n\nmdui.updateSpinners = function (\n selector?: Selector | HTMLElement | ArrayLike,\n): void {\n const $elements = isUndefined(selector) ? $('.mdui-spinner') : $(selector);\n\n $elements.each(function () {\n fillHTML(this);\n });\n};\n","import $ from 'mdui.jq/es/$';\nimport 'mdui.jq/es/methods/addClass';\nimport 'mdui.jq/es/methods/children';\nimport 'mdui.jq/es/methods/each';\nimport 'mdui.jq/es/methods/is';\nimport 'mdui.jq/es/methods/on';\nimport 'mdui.jq/es/methods/parent';\nimport 'mdui.jq/es/methods/removeClass';\nimport mdui from '../../mdui';\nimport '../../global/mutation';\nimport { componentEvent } from '../../utils/componentEvent';\nimport { $document } from '../../utils/dom';\nimport '../headroom';\n\n$(() => {\n // 切换导航项\n $document.on('click', '.mdui-bottom-nav>a', function () {\n const $item = $(this as HTMLElement);\n const $bottomNav = $item.parent();\n\n $bottomNav.children('a').each((index, item) => {\n const isThis = $item.is(item);\n\n if (isThis) {\n componentEvent('change', 'bottomNav', $bottomNav[0], undefined, {\n index,\n });\n }\n\n isThis\n ? $(item).addClass('mdui-bottom-nav-active')\n : $(item).removeClass('mdui-bottom-nav-active');\n });\n });\n\n // 滚动时隐藏 mdui-bottom-nav-scroll-hide\n mdui.mutation('.mdui-bottom-nav-scroll-hide', function () {\n new mdui.Headroom(this, {\n pinnedClass: 'mdui-headroom-pinned-down',\n unpinnedClass: 'mdui-headroom-unpinned-down',\n });\n });\n});\n","import $ from 'mdui.jq/es/$';\nimport contains from 'mdui.jq/es/functions/contains';\nimport extend from 'mdui.jq/es/functions/extend';\nimport { JQ } from 'mdui.jq/es/JQ';\nimport 'mdui.jq/es/methods/addClass';\nimport 'mdui.jq/es/methods/attr';\nimport 'mdui.jq/es/methods/children';\nimport 'mdui.jq/es/methods/css';\nimport 'mdui.jq/es/methods/data';\nimport 'mdui.jq/es/methods/each';\nimport 'mdui.jq/es/methods/find';\nimport 'mdui.jq/es/methods/first';\nimport 'mdui.jq/es/methods/hasClass';\nimport 'mdui.jq/es/methods/height';\nimport 'mdui.jq/es/methods/is';\nimport 'mdui.jq/es/methods/on';\nimport 'mdui.jq/es/methods/parent';\nimport 'mdui.jq/es/methods/parents';\nimport 'mdui.jq/es/methods/removeClass';\nimport 'mdui.jq/es/methods/width';\nimport Selector from 'mdui.jq/es/types/Selector';\nimport mdui from '../../mdui';\nimport '../../jq_extends/methods/transformOrigin';\nimport '../../jq_extends/methods/transitionEnd';\nimport '../../jq_extends/static/throttle';\nimport { componentEvent } from '../../utils/componentEvent';\nimport { $document, $window } from '../../utils/dom';\n\ndeclare module '../../interfaces/MduiStatic' {\n interface MduiStatic {\n /**\n * Menu 组件\n *\n * 请通过 `new mdui.Menu()` 调用\n */\n Menu: {\n /**\n * 实例化 Menu 组件\n * @param anchorSelector 触发菜单的元素的 CSS 选择器、或 DOM 元素、或 JQ 对象\n * @param menuSelector 菜单的 CSS 选择器、或 DOM 元素、或 JQ 对象\n * @param options 配置参数\n */\n new (\n anchorSelector: Selector | HTMLElement | ArrayLike,\n menuSelector: Selector | HTMLElement | ArrayLike,\n options?: OPTIONS,\n ): Menu;\n };\n }\n}\n\ntype OPTIONS = {\n /**\n * 菜单相对于触发它的元素的位置,默认为 `auto`。\n * 取值范围包括:\n * `top`: 菜单在触发它的元素的上方\n * `bottom`: 菜单在触发它的元素的下方\n * `center`: 菜单在窗口中垂直居中\n * `auto`: 自动判断位置。优先级为:`bottom` > `top` > `center`\n */\n position?: 'auto' | 'top' | 'bottom' | 'center';\n\n /**\n * 菜单与触发它的元素的对其方式,默认为 `auto`。\n * 取值范围包括:\n * `left`: 菜单与触发它的元素左对齐\n * `right`: 菜单与触发它的元素右对齐\n * `center`: 菜单在窗口中水平居中\n * `auto`: 自动判断位置:优先级为:`left` > `right` > `center`\n */\n align?: 'auto' | 'left' | 'right' | 'center';\n\n /**\n * 菜单与窗口边框至少保持多少间距,单位为 px,默认为 `16`\n */\n gutter?: number;\n\n /**\n * 菜单的定位方式,默认为 `false`。\n * 为 `true` 时,菜单使用 fixed 定位。在页面滚动时,菜单将保持在窗口固定位置,不随滚动条滚动。\n * 为 `false` 时,菜单使用 absolute 定位。在页面滚动时,菜单将随着页面一起滚动。\n */\n fixed?: boolean;\n\n /**\n * 菜单是否覆盖在触发它的元素的上面,默认为 `auto`\n * 为 `true` 时,使菜单覆盖在触发它的元素的上面\n * 为 `false` 时,使菜单不覆盖触发它的元素\n * 为 `auto` 时,简单菜单覆盖触发它的元素。级联菜单不覆盖触发它的元素\n */\n covered?: boolean | 'auto';\n\n /**\n * 子菜单的触发方式,默认为 `hover`\n * 为 `click` 时,点击时触发子菜单\n * 为 `hover` 时,鼠标悬浮时触发子菜单\n */\n subMenuTrigger?: 'click' | 'hover';\n\n /**\n * 子菜单的触发延迟时间(单位:毫秒),只有在 `subMenuTrigger: hover` 时,这个参数才有效,默认为 `200`\n */\n subMenuDelay?: number;\n};\n\ntype EVENT = 'open' | 'opened' | 'close' | 'closed';\ntype STATE = 'opening' | 'opened' | 'closing' | 'closed';\n\nconst DEFAULT_OPTIONS: OPTIONS = {\n position: 'auto',\n align: 'auto',\n gutter: 16,\n fixed: false,\n covered: 'auto',\n subMenuTrigger: 'hover',\n subMenuDelay: 200,\n};\n\nclass Menu {\n /**\n * 触发菜单的元素的 JQ 对象\n */\n public $anchor: JQ;\n\n /**\n * 菜单元素的 JQ 对象\n */\n public $element: JQ;\n\n /**\n * 配置参数\n */\n public options: OPTIONS = extend({}, DEFAULT_OPTIONS);\n\n /**\n * 当前菜单状态\n */\n private state: STATE = 'closed';\n\n /**\n * 是否是级联菜单\n */\n private isCascade: boolean;\n\n /**\n * 菜单是否覆盖在触发它的元素的上面\n */\n private isCovered: boolean;\n\n public constructor(\n anchorSelector: Selector | HTMLElement | ArrayLike,\n menuSelector: Selector | HTMLElement | ArrayLike,\n options: OPTIONS = {},\n ) {\n this.$anchor = $(anchorSelector).first();\n this.$element = $(menuSelector).first();\n\n // 触发菜单的元素 和 菜单必须是同级的元素,否则菜单可能不能定位\n if (!this.$anchor.parent().is(this.$element.parent())) {\n throw new Error('anchorSelector and menuSelector must be siblings');\n }\n\n extend(this.options, options);\n\n // 是否是级联菜单\n this.isCascade = this.$element.hasClass('mdui-menu-cascade');\n\n // covered 参数处理\n this.isCovered =\n this.options.covered === 'auto' ? !this.isCascade : this.options.covered!;\n\n // 点击触发菜单切换\n this.$anchor.on('click', () => this.toggle());\n\n // 点击菜单外面区域关闭菜单\n $document.on('click touchstart', (event: Event) => {\n const $target = $(event.target as HTMLElement);\n\n if (\n this.isOpen() &&\n !$target.is(this.$element) &&\n !contains(this.$element[0], $target[0]) &&\n !$target.is(this.$anchor) &&\n !contains(this.$anchor[0], $target[0])\n ) {\n this.close();\n }\n });\n\n // 点击不含子菜单的菜单条目关闭菜单\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const that = this;\n $document.on('click', '.mdui-menu-item', function () {\n const $item = $(this);\n\n if (\n !$item.find('.mdui-menu').length &&\n $item.attr('disabled') === undefined\n ) {\n that.close();\n }\n });\n\n // 绑定点击或鼠标移入含子菜单的条目的事件\n this.bindSubMenuEvent();\n\n // 窗口大小变化时,重新调整菜单位置\n $window.on(\n 'resize',\n $.throttle(() => this.readjust(), 100),\n );\n }\n\n /**\n * 是否为打开状态\n */\n private isOpen(): boolean {\n return this.state === 'opening' || this.state === 'opened';\n }\n\n /**\n * 触发组件事件\n * @param name\n */\n private triggerEvent(name: EVENT): void {\n componentEvent(name, 'menu', this.$element, this);\n }\n\n /**\n * 调整主菜单位置\n */\n private readjust(): void {\n let menuLeft;\n let menuTop;\n\n // 菜单位置和方向\n let position: 'bottom' | 'top' | 'center';\n let align: 'left' | 'right' | 'center';\n\n // window 窗口的宽度和高度\n const windowHeight = $window.height();\n const windowWidth = $window.width();\n\n // 配置参数\n const gutter = this.options.gutter!;\n const isCovered = this.isCovered;\n const isFixed = this.options.fixed;\n\n // 动画方向参数\n let transformOriginX;\n let transformOriginY;\n\n // 菜单的原始宽度和高度\n const menuWidth = this.$element.width();\n const menuHeight = this.$element.height();\n\n // 触发菜单的元素在窗口中的位置\n const anchorRect = this.$anchor[0].getBoundingClientRect();\n const anchorTop = anchorRect.top;\n const anchorLeft = anchorRect.left;\n const anchorHeight = anchorRect.height;\n const anchorWidth = anchorRect.width;\n const anchorBottom = windowHeight - anchorTop - anchorHeight;\n const anchorRight = windowWidth - anchorLeft - anchorWidth;\n\n // 触发元素相对其拥有定位属性的父元素的位置\n const anchorOffsetTop = this.$anchor[0].offsetTop;\n const anchorOffsetLeft = this.$anchor[0].offsetLeft;\n\n // 自动判断菜单位置\n if (this.options.position === 'auto') {\n if (anchorBottom + (isCovered ? anchorHeight : 0) > menuHeight + gutter) {\n // 判断下方是否放得下菜单\n position = 'bottom';\n } else if (\n anchorTop + (isCovered ? anchorHeight : 0) >\n menuHeight + gutter\n ) {\n // 判断上方是否放得下菜单\n position = 'top';\n } else {\n // 上下都放不下,居中显示\n position = 'center';\n }\n } else {\n position = this.options.position!;\n }\n\n // 自动判断菜单对齐方式\n if (this.options.align === 'auto') {\n if (anchorRight + anchorWidth > menuWidth + gutter) {\n // 判断右侧是否放得下菜单\n align = 'left';\n } else if (anchorLeft + anchorWidth > menuWidth + gutter) {\n // 判断左侧是否放得下菜单\n align = 'right';\n } else {\n // 左右都放不下,居中显示\n align = 'center';\n }\n } else {\n align = this.options.align!;\n }\n\n // 设置菜单位置\n if (position === 'bottom') {\n transformOriginY = '0';\n menuTop =\n (isCovered ? 0 : anchorHeight) +\n (isFixed ? anchorTop : anchorOffsetTop);\n } else if (position === 'top') {\n transformOriginY = '100%';\n menuTop =\n (isCovered ? anchorHeight : 0) +\n (isFixed ? anchorTop - menuHeight : anchorOffsetTop - menuHeight);\n } else {\n transformOriginY = '50%';\n\n // =====================在窗口中居中\n // 显示的菜单的高度,简单菜单高度不超过窗口高度,若超过了则在菜单内部显示滚动条\n // 级联菜单内部不允许出现滚动条\n let menuHeightTemp = menuHeight;\n\n // 简单菜单比窗口高时,限制菜单高度\n if (!this.isCascade) {\n if (menuHeight + gutter * 2 > windowHeight) {\n menuHeightTemp = windowHeight - gutter * 2;\n this.$element.height(menuHeightTemp);\n }\n }\n\n menuTop =\n (windowHeight - menuHeightTemp) / 2 +\n (isFixed ? 0 : anchorOffsetTop - anchorTop);\n }\n\n this.$element.css('top', `${menuTop}px`);\n\n // 设置菜单对齐方式\n if (align === 'left') {\n transformOriginX = '0';\n menuLeft = isFixed ? anchorLeft : anchorOffsetLeft;\n } else if (align === 'right') {\n transformOriginX = '100%';\n menuLeft = isFixed\n ? anchorLeft + anchorWidth - menuWidth\n : anchorOffsetLeft + anchorWidth - menuWidth;\n } else {\n transformOriginX = '50%';\n\n //=======================在窗口中居中\n // 显示的菜单的宽度,菜单宽度不能超过窗口宽度\n let menuWidthTemp = menuWidth;\n\n // 菜单比窗口宽,限制菜单宽度\n if (menuWidth + gutter * 2 > windowWidth) {\n menuWidthTemp = windowWidth - gutter * 2;\n this.$element.width(menuWidthTemp);\n }\n\n menuLeft =\n (windowWidth - menuWidthTemp) / 2 +\n (isFixed ? 0 : anchorOffsetLeft - anchorLeft);\n }\n\n this.$element.css('left', `${menuLeft}px`);\n\n // 设置菜单动画方向\n this.$element.transformOrigin(`${transformOriginX} ${transformOriginY}`);\n }\n\n /**\n * 调整子菜单的位置\n * @param $submenu\n */\n private readjustSubmenu($submenu: JQ): void {\n const $item = $submenu.parent('.mdui-menu-item');\n\n let submenuTop;\n let submenuLeft;\n\n // 子菜单位置和方向\n let position: 'top' | 'bottom';\n let align: 'left' | 'right';\n\n // window 窗口的宽度和高度\n const windowHeight = $window.height();\n const windowWidth = $window.width();\n\n // 动画方向参数\n let transformOriginX;\n let transformOriginY;\n\n // 子菜单的原始宽度和高度\n const submenuWidth = $submenu.width();\n const submenuHeight = $submenu.height();\n\n // 触发子菜单的菜单项的宽度高度\n const itemRect = $item[0].getBoundingClientRect();\n const itemWidth = itemRect.width;\n const itemHeight = itemRect.height;\n const itemLeft = itemRect.left;\n const itemTop = itemRect.top;\n\n // 判断菜单上下位置\n if (windowHeight - itemTop > submenuHeight) {\n // 判断下方是否放得下菜单\n position = 'bottom';\n } else if (itemTop + itemHeight > submenuHeight) {\n // 判断上方是否放得下菜单\n position = 'top';\n } else {\n // 默认放在下方\n position = 'bottom';\n }\n\n // 判断菜单左右位置\n if (windowWidth - itemLeft - itemWidth > submenuWidth) {\n // 判断右侧是否放得下菜单\n align = 'left';\n } else if (itemLeft > submenuWidth) {\n // 判断左侧是否放得下菜单\n align = 'right';\n } else {\n // 默认放在右侧\n align = 'left';\n }\n\n // 设置菜单位置\n if (position === 'bottom') {\n transformOriginY = '0';\n submenuTop = '0';\n } else if (position === 'top') {\n transformOriginY = '100%';\n submenuTop = -submenuHeight + itemHeight;\n }\n\n $submenu.css('top', `${submenuTop}px`);\n\n // 设置菜单对齐方式\n if (align === 'left') {\n transformOriginX = '0';\n submenuLeft = itemWidth;\n } else if (align === 'right') {\n transformOriginX = '100%';\n submenuLeft = -submenuWidth;\n }\n\n $submenu.css('left', `${submenuLeft}px`);\n\n // 设置菜单动画方向\n $submenu.transformOrigin(`${transformOriginX} ${transformOriginY}`);\n }\n\n /**\n * 打开子菜单\n * @param $submenu\n */\n private openSubMenu($submenu: JQ): void {\n this.readjustSubmenu($submenu);\n\n $submenu\n .addClass('mdui-menu-open')\n .parent('.mdui-menu-item')\n .addClass('mdui-menu-item-active');\n }\n\n /**\n * 关闭子菜单,及其嵌套的子菜单\n * @param $submenu\n */\n private closeSubMenu($submenu: JQ): void {\n // 关闭子菜单\n $submenu\n .removeClass('mdui-menu-open')\n .addClass('mdui-menu-closing')\n .transitionEnd(() => $submenu.removeClass('mdui-menu-closing'))\n\n // 移除激活状态的样式\n .parent('.mdui-menu-item')\n .removeClass('mdui-menu-item-active');\n\n // 循环关闭嵌套的子菜单\n $submenu.find('.mdui-menu').each((_, menu) => {\n const $subSubmenu = $(menu);\n\n $subSubmenu\n .removeClass('mdui-menu-open')\n .addClass('mdui-menu-closing')\n .transitionEnd(() => $subSubmenu.removeClass('mdui-menu-closing'))\n .parent('.mdui-menu-item')\n .removeClass('mdui-menu-item-active');\n });\n }\n\n /**\n * 切换子菜单状态\n * @param $submenu\n */\n private toggleSubMenu($submenu: JQ): void {\n $submenu.hasClass('mdui-menu-open')\n ? this.closeSubMenu($submenu)\n : this.openSubMenu($submenu);\n }\n\n /**\n * 绑定子菜单事件\n */\n private bindSubMenuEvent(): void {\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const that = this;\n\n // 点击打开子菜单\n this.$element.on('click', '.mdui-menu-item', function (event) {\n const $item = $(this as HTMLElement);\n const $target = $(event.target as HTMLElement);\n\n // 禁用状态菜单不操作\n if ($item.attr('disabled') !== undefined) {\n return;\n }\n\n // 没有点击在子菜单的菜单项上时,不操作(点在了子菜单的空白区域、或分隔线上)\n if ($target.is('.mdui-menu') || $target.is('.mdui-divider')) {\n return;\n }\n\n // 阻止冒泡,点击菜单项时只在最后一级的 mdui-menu-item 上生效,不向上冒泡\n if (!$target.parents('.mdui-menu-item').first().is($item)) {\n return;\n }\n\n // 当前菜单的子菜单\n const $submenu = $item.children('.mdui-menu');\n\n // 先关闭除当前子菜单外的所有同级子菜单\n $item\n .parent('.mdui-menu')\n .children('.mdui-menu-item')\n .each((_, item) => {\n const $tmpSubmenu = $(item).children('.mdui-menu');\n\n if (\n $tmpSubmenu.length &&\n (!$submenu.length || !$tmpSubmenu.is($submenu))\n ) {\n that.closeSubMenu($tmpSubmenu);\n }\n });\n\n // 切换当前子菜单\n if ($submenu.length) {\n that.toggleSubMenu($submenu);\n }\n });\n\n if (this.options.subMenuTrigger === 'hover') {\n // 临时存储 setTimeout 对象\n let timeout: any = null;\n let timeoutOpen: any = null;\n\n this.$element.on('mouseover mouseout', '.mdui-menu-item', function (\n event,\n ) {\n const $item = $(this as HTMLElement);\n const eventType = event.type;\n const $relatedTarget = $(\n (event as MouseEvent).relatedTarget as HTMLElement,\n );\n\n // 禁用状态的菜单不操作\n if ($item.attr('disabled') !== undefined) {\n return;\n }\n\n // 用 mouseover 模拟 mouseenter\n if (eventType === 'mouseover') {\n if (\n !$item.is($relatedTarget) &&\n contains($item[0], $relatedTarget[0])\n ) {\n return;\n }\n }\n\n // 用 mouseout 模拟 mouseleave\n else if (eventType === 'mouseout') {\n if (\n $item.is($relatedTarget) ||\n contains($item[0], $relatedTarget[0])\n ) {\n return;\n }\n }\n\n // 当前菜单项下的子菜单,未必存在\n const $submenu = $item.children('.mdui-menu');\n\n // 鼠标移入菜单项时,显示菜单项下的子菜单\n if (eventType === 'mouseover') {\n if ($submenu.length) {\n // 当前子菜单准备打开时,如果当前子菜单正准备着关闭,不用再关闭了\n const tmpClose = $submenu.data('timeoutClose.mdui.menu');\n if (tmpClose) {\n clearTimeout(tmpClose);\n }\n\n // 如果当前子菜单已经打开,不操作\n if ($submenu.hasClass('mdui-menu-open')) {\n return;\n }\n\n // 当前子菜单准备打开时,其他准备打开的子菜单不用再打开了\n clearTimeout(timeoutOpen);\n\n // 准备打开当前子菜单\n timeout = timeoutOpen = setTimeout(\n () => that.openSubMenu($submenu),\n that.options.subMenuDelay,\n );\n\n $submenu.data('timeoutOpen.mdui.menu', timeout);\n }\n }\n\n // 鼠标移出菜单项时,关闭菜单项下的子菜单\n else if (eventType === 'mouseout') {\n if ($submenu.length) {\n // 鼠标移出菜单项时,如果当前菜单项下的子菜单正准备打开,不用再打开了\n const tmpOpen = $submenu.data('timeoutOpen.mdui.menu');\n if (tmpOpen) {\n clearTimeout(tmpOpen);\n }\n\n // 准备关闭当前子菜单\n timeout = setTimeout(\n () => that.closeSubMenu($submenu),\n that.options.subMenuDelay,\n );\n\n $submenu.data('timeoutClose.mdui.menu', timeout);\n }\n }\n });\n }\n }\n\n /**\n * 动画结束回调\n */\n private transitionEnd(): void {\n this.$element.removeClass('mdui-menu-closing');\n\n if (this.state === 'opening') {\n this.state = 'opened';\n this.triggerEvent('opened');\n }\n\n if (this.state === 'closing') {\n this.state = 'closed';\n this.triggerEvent('closed');\n\n // 关闭后,恢复菜单样式到默认状态,并恢复 fixed 定位\n this.$element.css({\n top: '',\n left: '',\n width: '',\n position: 'fixed',\n });\n }\n }\n\n /**\n * 切换菜单状态\n */\n public toggle(): void {\n this.isOpen() ? this.close() : this.open();\n }\n\n /**\n * 打开菜单\n */\n public open(): void {\n if (this.isOpen()) {\n return;\n }\n\n this.state = 'opening';\n this.triggerEvent('open');\n\n this.readjust();\n\n this.$element\n // 菜单隐藏状态使用使用 fixed 定位。\n .css('position', this.options.fixed ? 'fixed' : 'absolute')\n .addClass('mdui-menu-open')\n .transitionEnd(() => this.transitionEnd());\n }\n\n /**\n * 关闭菜单\n */\n public close(): void {\n if (!this.isOpen()) {\n return;\n }\n\n this.state = 'closing';\n this.triggerEvent('close');\n\n // 菜单开始关闭时,关闭所有子菜单\n this.$element.find('.mdui-menu').each((_, submenu) => {\n this.closeSubMenu($(submenu));\n });\n\n this.$element\n .removeClass('mdui-menu-open')\n .addClass('mdui-menu-closing')\n .transitionEnd(() => this.transitionEnd());\n }\n}\n\nmdui.Menu = Menu;\n","import $ from 'mdui.jq/es/$';\nimport 'mdui.jq/es/methods/data';\nimport 'mdui.jq/es/methods/on';\nimport mdui from '../../mdui';\nimport { $document } from '../../utils/dom';\nimport { parseOptions } from '../../utils/parseOptions';\nimport './index';\n\nconst customAttr = 'mdui-menu';\nconst dataName = '_mdui_menu';\n\ntype OPTIONS = {\n target: string;\n position?: 'auto' | 'top' | 'bottom' | 'center';\n align?: 'auto' | 'left' | 'right' | 'center';\n gutter?: number;\n fixed?: boolean;\n covered?: boolean | 'auto';\n subMenuTrigger?: 'click' | 'hover';\n subMenuDelay?: number;\n};\n\n$(() => {\n $document.on('click', `[${customAttr}]`, function () {\n const $this = $(this as HTMLElement);\n let instance = $this.data(dataName);\n\n if (!instance) {\n const options = parseOptions(this as HTMLElement, customAttr) as OPTIONS;\n const menuSelector = options.target;\n // @ts-ignore\n delete options.target;\n\n instance = new mdui.Menu($this, menuSelector, options);\n $this.data(dataName, instance);\n\n instance.toggle();\n }\n });\n});\n"],"names":["t","e","bubbles","cancelable","detail","n","document","createEvent","initCustomEvent","finallyConstructor","callback","constructor","this","then","value","resolve","reason","reject","allSettled","arr","length","TypeError","args","Array","prototype","slice","call","remaining","res","i","val","status","MouseEvent","initMouseEvent","window","screenX","screenY","clientX","clientY","ctrlKey","altKey","shiftKey","metaKey","button","relatedTarget","Event","CustomEvent","setTimeoutFunc","setTimeout","isArray","x","Boolean","noop","Promise","fn","_state","_handled","_value","undefined","_deferreds","doResolve","handle","self","deferred","_immediateFn","cb","onFulfilled","onRejected","ret","promise","push","newValue","finale","thisArg","apply","arguments","_unhandledRejectionFn","len","Handler","done","ex","prom","promiseFinally","all","race","setImmediate","err","console","warn","globalNS","global","Error","isFunction","target","isString","isNumber","isUndefined","isNull","isWindow","Window","isDocument","Document","isElement","Element","isArrayLike","isObjectLike","toElement","documentElement","toCamelCase","string","replace","_","letter","toUpperCase","toKebabCase","replacer","toLowerCase","getComputedStyleValue","element","name","getComputedStyle","getPropertyValue","isBorderBox","getExtraWidth","direction","extra","const","position","reduce","prev","index","let","prop","parseFloat","getStyle","valueNumber","getBoundingClientRect","getChildNodesArray","parent","tempParent","createElement","innerHTML","childNodes","returnFalse","cssNumber","each","keys","Object","JQ","item","$","selector","test","readyState","body","addEventListener","html","trim","toCreate","li","tr","td","th","tbody","option","childTag","parentTag","indexOf","match","querySelectorAll","getElementById","Node","addClass","mdui","contains","container","merge","first","second","get","find","foundElements","handlers","mduiElementId","getElementId","key","parse","type","parts","split","ns","sort","join","matcherFor","RegExp","remove","types","func","removeEvent","handler","handlersInElement","id","removeEventListener","proxy","forEach","event","filter","extend","object1","objectN","unshift","object","param","obj","destructure","keyTmp","v","encodeURIComponent","trigger","extraParameters","eventObject","eventParams","isMouseEvent","_detail","_ns","dispatchEvent","globalOptions","ajaxEvents","ajaxStart","ajaxSuccess","ajaxError","ajaxComplete","isQueryStringData","method","appendQuery","url","query","ajax","options","defaults","textStatus","isCanceled","mergedOptions","data","processData","async","cache","username","password","headers","xhrFields","statusCode","dataType","contentType","timeout","location","toString","params","result1","result2","ArrayBuffer","Blob","FormData","Date","now","xhrTimeout","xhr","XMLHttpRequest","open","setRequestHeader","$2","host","onload","clearTimeout","responseData","isHttpStatusSuccess","JSON","responseText","responseType","response","onerror","statusText","onabort","abort","send","ajaxSetup","dataNS","setObjectToElement","map","elements","concat","removeData","nameItem","unique","result","dir","$elements","nameIndex","node","is","shift","add","className","getAttribute","cls","classList","setAttribute","$element","reverse","$target","parentNode","newItem","cloneNode","existingItem","nextSibling","insertBefore","off","on","one","_this","origCallback","elementId","useCapture","proxyFn","callFn","elem","preventDefault","stopPropagation","_data","eventName","clone","isMatched","matches","msMatchesSelector","$compareWith","compare","removeChild","childLength","child","appendChild","contents","content","extraChilds","$result","k","removeAttribute","style","set","children","__","childNode","eq","closest","matched","parents","rbrace","dataAttr","nodeType","handleExtraWidth","funcIndex","includeMargin","multiply","getExtraWidthValue","documentMode","clientProp","scrollProp","offsetProp","innerProp","doc","Math","max","floatStyle","css","getClientRects","top","left","rect","win","ownerDocument","defaultView","pageYOffset","pageXOffset","resultData","attrs","attributes","empty","$selector","has","$targets","hasClass","funcName","margin","isSet","elementIndex","computedValue","dimension","suffix","hide","display","propName","0","1","2","firstElement","selected","checked","outerHTML","last","not","$excludes","offsetParent","currentOffset","parentOffset","offset","$offsetParent","currentTop","currentLeft","currentTopString","currentLeftString","currentPosition","removeAttr","attributeName","names","removeProp","replaceWith","newContent","before","replaceAll","serializeArray","HTMLFormElement","nodeName","disabled","serialize","elementDisplay","show","siblings","prevAll","nextAll","toggle","reflow","clientLeft","transition","duration","webkitTransitionDuration","transitionDuration","transitionEnd","that","events","fireCallback","transformOrigin","webkitTransformOrigin","transform","webkitTransform","entries","mutation","apiInit","selectors","$this","showOverlay","zIndex","$overlay","appendTo","level","hideOverlay","force","removeClass","lockScreen","$body","newBodyWidth","width","unlockScreen","throttle","delay","timer","GUID","componentEvent","componentName","instance","parameters","inst","fullEventName","jQuery","guid","s4","floor","random","substring","Headroom","DEFAULT_OPTIONS","tolerance","down","up","enable","$document","$window","initialClass","pinnedClass","unpinnedClass","parseOptions","attr","Function","onScroll","rafId","requestAnimationFrame","currentScrollY","lastScrollY","toleranceExceeded","abs","unpin","pin","triggerEvent","state","isEnable","disable","cancelAnimationFrame","getState","customAttr","CollapseAbstract","classPrefix","getNamespace","classItem","classItemOpen","classHeader","classBody","bindEvent","accordion","$item","getItems","close","isOpen","getItem","$content","height","scrollHeight","openAll","closeAll","Collapse","Panel","Table","init","$thRow","$tdRows","selectable","updateThCheckbox","updateTdCheckbox","updateNumericCol","createCheckboxHTML","tag","updateThCheckboxStatus","checkbox","$thCheckbox","selectedRow","tdRowsLength","indeterminate","rowSelectedClass","row","$row","$checkbox","prependTo","$tdCheckboxs","isCheckedAll","numericClass","isNumericCol","$td","dataName","updateTables","startEvent","moveEvent","endEvent","cancelEvent","unlockEvent","touches","isAllow","register","$ripple","touchPosition","TouchEvent","touchStartX","pageX","touchStartY","pageY","innerHeight","innerWidth","center","diameter","pow","translate","wave","$wave","removeTimer","removeRipple","showRipple","hidden","hideRipple","defaultData","reInit","domLoadedEvent","inputEvent","input","$input","eventType","inputType","$textfield","validity","valid","inputValue","hasExtraSpace","outerHeight","maxLength","text","updateValueStyle","$slider","$track","_slider_$track","$fill","_slider_$fill","$thumb","_slider_$thumb","_slider_$input","min","_slider_min","_slider_max","isDisabled","_slider_disabled","isDiscrete","_slider_discrete","$thumbText","_slider_$thumbText","percent","append","focus","updateTextFields","rangeSelector","updateSliders","Fab","$btn","$dial","$dialBtns","btn","transitionDelay","webkitTransitionDelay","Select","$native","uniqueID","handleUpdate","gutter","readjustMenu","transformOriginY","menuMarginTop","windowHeight","elementHeight","$itemFirst","$items","itemHeight","itemMargin","parseInt","menuWidth","menuHeight","size","elementTop","menuMaxHeight","selectedIndex","menuMaxMarginTop","menuTop","$menu","margin-top","transform-origin","selectedValue","itemsData","textContent","selectedText","$selected","after","Tab","$tabs","$indicator","hash","tab","activeIndex","setActive","setIndicatorPosition","bindTabEvent","loop","$tab","clickEvent","targetId","substr","$activeTab","activeTabOffset","scrollLeft","next","$oldTabs","$newTabs","oldTabsElement","newTabsElement","Drawer","isDesktop","overlay","swipeSupport","swipe","openNavEventHandler","swipeStartX","swiping","maybeSwiping","swipeAreaWidth","setPosition","translateX","transformCSS","cleanPosition","webkitTransition","getMaxTranslateX","getTranslateX","currentX","onBodyTouchEnd","touchX","changedTouches","translateRatio","swipingState","touchmove","onBodyTouchMove","touchend","touchcancel","touchY","dXAbs","dYAbs","onBodyTouchStart","$drawer","queue","dequeue","Dialog","cancel","closeOnCancel","confirm","closeOnConfirm","history","modal","closeOnEsc","destroyOnClosed","currentInst","queueName","isLockScreen","readjust","$title","$actions","hashchangeEvent","overlayClick","destroy","doOpen","historyBack","back","keyCode","$dialog","DEFAULT_BUTTON","bold","onClick","title","buttons","stackedButtons","cssClass","onOpen","onOpened","onClose","onClosed","confirmText","dialog","buttonsHTML","HTML","cancelText","alert","onConfirm","onCancel","maxlength","defaultValue","confirmOnEnter","prompt","label","Tooltip","marginLeft","marginTop","targetProps","targetMargin","tooltipWidth","offsetWidth","tooltipHeight","offsetHeight","targetOffset","margin-left","oldOptions","timeoutId","Snackbar","buttonColorStyle","buttonColorClass","buttonColor","buttonText","message","closeOnButtonClick","closeOnOutsideClick","onButtonClick","layerHTML","fillHTML","spinner","$spinner","layer","translateY","snackbarHeight","clientHeight","snackbar","$bottomNav","isThis","Menu","anchorSelector","menuSelector","$anchor","isCascade","isCovered","covered","bindSubMenuEvent","align","fixed","updateSpinners","subMenuTrigger","subMenuDelay","menuLeft","transformOriginX","windowWidth","isFixed","anchorRect","anchorTop","anchorLeft","anchorHeight","anchorWidth","anchorBottom","anchorRight","anchorOffsetTop","offsetTop","anchorOffsetLeft","offsetLeft","menuHeightTemp","menuWidthTemp","readjustSubmenu","$submenu","submenuTop","submenuLeft","submenuWidth","submenuHeight","itemRect","itemWidth","itemLeft","itemTop","openSubMenu","closeSubMenu","menu","$subSubmenu","toggleSubMenu","$tmpSubmenu","timeoutOpen","$relatedTarget","tmpClose","tmpOpen","submenu"],"mappings":"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"} \ No newline at end of file diff --git a/templates/admin/add_category.php b/templates/admin/add_category.php index 03d831d..107682d 100755 --- a/templates/admin/add_category.php +++ b/templates/admin/add_category.php @@ -4,6 +4,13 @@
          + +
          +
          + 关于字体图标的说明请参考帮助文档:https://dwz.ovh/7nr1f +
          +
          +
          @@ -48,7 +55,6 @@
          -

          关于字体图标的说明请参考帮助文档:https://dwz.ovh/7nr1f

          diff --git a/templates/admin/click.php b/templates/admin/click.php index 1c7c719..824bff8 100755 --- a/templates/admin/click.php +++ b/templates/admin/click.php @@ -15,15 +15,22 @@ text-overflow:ellipsis;/*超出部分文字以...显示dsds*/ } +
          + +
          +
          + 关于字体图标的说明请参考帮助文档:https://dwz.ovh/7nr1f +
          +
          +
          -

          关于字体图标的说明请参考帮助文档:https://dwz.ovh/7nr1f

          diff --git a/templates/admin/footer.php b/templates/admin/footer.php index 583f600..4f233b8 100755 --- a/templates/admin/footer.php +++ b/templates/admin/footer.php @@ -3,8 +3,8 @@ © Copyright 2022.Powered by OneNav.
          - - + + diff --git a/templates/admin/header.php b/templates/admin/header.php index f40c71e..b70e2e7 100755 --- a/templates/admin/header.php +++ b/templates/admin/header.php @@ -4,7 +4,7 @@ OneNav后台管理 - + diff --git a/templates/admin/left.php b/templates/admin/left.php index 5705cd0..c489975 100755 --- a/templates/admin/left.php +++ b/templates/admin/left.php @@ -22,14 +22,28 @@ + + + + + \ No newline at end of file diff --git a/templates/admin/setting/site.php b/templates/admin/setting/site.php new file mode 100644 index 0000000..0910e13 --- /dev/null +++ b/templates/admin/setting/site.php @@ -0,0 +1,70 @@ + + + + +
          + +
          + +
          +
          + 站点设置使用说明,请参考:https://dwz.ovh/un5rz +
          +
          + +
          +
          + +
          + +
          + +
          +
          + +
          + +
          + +
          +
          + +
          + +
          + +
          +
          + + +
          + +
          + +
          +
          + +
          + +
          + +
          +
          + +
          + +
          + +
          +
          + +
          + +
          + +
          +
          +
          +
          + + \ No newline at end of file diff --git a/templates/admin/setting/theme.php b/templates/admin/setting/theme.php new file mode 100644 index 0000000..ed95a5f --- /dev/null +++ b/templates/admin/setting/theme.php @@ -0,0 +1,71 @@ + + + +
          + +
          + +
          +
          + 主题更换及设置说明,请参考:https://dwz.ovh/yoyaf +
          +
          + +
          +
          + $theme) { + //var_dump($theme['info']->name); + ?> + +
          +
          + +

          name ?>

          +

          版本:version ?>

          +

          更新时间:update ?>

          +
          +

          +

          + + + + + +
          +

          +
          +
          + + +
          +
          +
          +
          + + \ No newline at end of file diff --git a/templates/admin/setting/theme_detail.php b/templates/admin/setting/theme_detail.php new file mode 100644 index 0000000..0f7d6be --- /dev/null +++ b/templates/admin/setting/theme_detail.php @@ -0,0 +1,29 @@ + + + + + + OneNav后台管理 + + + + +
          +
          +
          + +
          +
          +
          +
          +

          name; ?>

          +

          描述:description; ?>

          +

          版本:version; ?>

          +

          更新时间:update; ?>

          +

          作者:author; ?>

          +

          主页:homepage; ?>

          +
          +
          +
          + + \ No newline at end of file diff --git a/templates/admin/setting/transition_page.php b/templates/admin/setting/transition_page.php new file mode 100644 index 0000000..f4e2b4e --- /dev/null +++ b/templates/admin/setting/transition_page.php @@ -0,0 +1,51 @@ + + + + +
          + +
          + +
          +
          + 过渡页使用说明,请参考:https://dwz.ovh/c7goi +
          +
          + +
          +
          + +
          + +
          + title="关闭"> + title="开启"> +
          +
          + +
          + +
          + +
          +
          访客停留时间,单位秒
          +
          + +
          + +
          + +
          +
          管理员停留时间,单位秒
          +
          + +
          + +
          + +
          +
          +
          +
          + + \ No newline at end of file diff --git a/templates/admin/static/embed.js b/templates/admin/static/embed.js index 74cabd1..9ed9bd4 100755 --- a/templates/admin/static/embed.js +++ b/templates/admin/static/embed.js @@ -220,6 +220,34 @@ layui.use(['element','table','layer','form','upload'], function(){ return false; //阻止表单跳转。如果需要表单跳转,去掉这段即可。 }); + //保存站点设置 + form.on('submit(set_site)', function(data){ + $.post('/index.php?c=api&method=set_site',data.field,function(data,status){ + if(data.code == 0) { + layer.msg(data.data, {icon: 1}); + } + else{ + layer.msg(data.err_msg, {icon: 5}); + } + }); + console.log(data.field) //当前容器的全部表单字段,名值对形式:{name: value} + return false; //阻止表单跳转。如果需要表单跳转,去掉这段即可。 + }); + + //保存站点设置 + form.on('submit(set_transition_page)', function(data){ + $.post('/index.php?c=api&method=set_transition_page',data.field,function(data,status){ + if(data.code == 0) { + layer.msg(data.data, {icon: 1}); + } + else{ + layer.msg(data.err_msg, {icon: 5}); + } + }); + console.log(data.field) //当前容器的全部表单字段,名值对形式:{name: value} + return false; //阻止表单跳转。如果需要表单跳转,去掉这段即可。 + }); + //添加分类目录 form.on('submit(add_category)', function(data){ $.post('/index.php?c=api&method=add_category',data.field,function(data,status){ @@ -479,7 +507,7 @@ function get_sql_update_list() { function exe_sql(sqlname) { $.ajax({ url: "index.php?c=api&method=exe_sql&name=" + sqlname, async:false, success: function(data,status){ if( data.code == 0 ){ - $("#console_log").append(data.data); + $("#console_log").append(data.data + "\n" ); } else { $("#console_log").append(sqlname + "更新失败!\n"); diff --git a/templates/baisuTwo/index.php b/templates/baisuTwo/index.php index b4d214b..899df8b 100644 --- a/templates/baisuTwo/index.php +++ b/templates/baisuTwo/index.php @@ -11,22 +11,13 @@ - - <?php echo $site_setting['title']; ?> - - - - + <?php echo $site['title']; ?> - <?php echo $site['subtitle']; ?> + + + - - + + @@ -34,7 +25,7 @@