diff --git a/jeecg-boot/jeecg-boot-base-common/pom.xml b/jeecg-boot/jeecg-boot-base-common/pom.xml index c6f1232d..54c59da4 100644 --- a/jeecg-boot/jeecg-boot-base-common/pom.xml +++ b/jeecg-boot/jeecg-boot-base-common/pom.xml @@ -3,12 +3,12 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 jeecg-boot-base-common - 2.1.2 + 2.1.3 org.jeecgframework.boot jeecg-boot-parent - 2.1.2 + 2.1.3 diff --git a/jeecg-boot/jeecg-boot-base-common/src/main/java/org/jeecg/common/constant/CommonSendStatus.java b/jeecg-boot/jeecg-boot-base-common/src/main/java/org/jeecg/common/constant/CommonSendStatus.java index 67f02724..a9afcd48 100644 --- a/jeecg-boot/jeecg-boot-base-common/src/main/java/org/jeecg/common/constant/CommonSendStatus.java +++ b/jeecg-boot/jeecg-boot-base-common/src/main/java/org/jeecg/common/constant/CommonSendStatus.java @@ -12,4 +12,13 @@ public interface CommonSendStatus { public static final String PUBLISHED_STATUS_1 = "1"; //已发布 public static final String REVOKE_STATUS_2 = "2"; //撤销 + + + + /**流程催办——系统通知消息模板*/ + public static final String TZMB_BPM_CUIBAN = "bpm_cuiban"; + /**标准模板—系统消息通知*/ + public static final String TZMB_SYS_TS_NOTE = "sys_ts_note"; + /**流程超时提醒——系统通知消息模板*/ + public static final String TZMB_BPM_CHAOSHI_TIP = "bpm_chaoshi_tip"; } diff --git a/jeecg-boot/jeecg-boot-base-common/src/main/java/org/jeecg/common/exception/JeecgBootExceptionHandler.java b/jeecg-boot/jeecg-boot-base-common/src/main/java/org/jeecg/common/exception/JeecgBootExceptionHandler.java index c52bfbb0..0a5e2a17 100644 --- a/jeecg-boot/jeecg-boot-base-common/src/main/java/org/jeecg/common/exception/JeecgBootExceptionHandler.java +++ b/jeecg-boot/jeecg-boot-base-common/src/main/java/org/jeecg/common/exception/JeecgBootExceptionHandler.java @@ -64,9 +64,22 @@ public class JeecgBootExceptionHandler { * @return */ @ExceptionHandler(HttpRequestMethodNotSupportedException.class) - public Result HttpRequestMethodNotSupportedException(Exception e){ - log.error(e.getMessage(), e); - return Result.error("没有权限,请联系管理员授权"); + public Result HttpRequestMethodNotSupportedException(HttpRequestMethodNotSupportedException e){ + StringBuffer sb = new StringBuffer(); + sb.append("不支持"); + sb.append(e.getMethod()); + sb.append("请求方法,"); + sb.append("支持以下"); + String [] methods = e.getSupportedMethods(); + if(methods!=null){ + for(String str:methods){ + sb.append(str); + sb.append("、"); + } + } + log.error(sb.toString(), e); + //return Result.error("没有权限,请联系管理员授权"); + return Result.error(405,sb.toString()); } /** diff --git a/jeecg-boot/jeecg-boot-base-common/src/main/java/org/jeecg/common/handler/IFillRuleHandler.java b/jeecg-boot/jeecg-boot-base-common/src/main/java/org/jeecg/common/handler/IFillRuleHandler.java index f5568a9c..7ca68a97 100644 --- a/jeecg-boot/jeecg-boot-base-common/src/main/java/org/jeecg/common/handler/IFillRuleHandler.java +++ b/jeecg-boot/jeecg-boot-base-common/src/main/java/org/jeecg/common/handler/IFillRuleHandler.java @@ -10,6 +10,11 @@ import com.alibaba.fastjson.JSONObject; */ public interface IFillRuleHandler { + /** + * @param params 页面配置固定参数 + * @param formData 动态表单参数 + * @return + */ public Object execute(JSONObject params, JSONObject formData); } diff --git a/jeecg-boot/jeecg-boot-base-common/src/main/java/org/jeecg/common/system/api/ISysBaseAPI.java b/jeecg-boot/jeecg-boot-base-common/src/main/java/org/jeecg/common/system/api/ISysBaseAPI.java index 52e35826..7e49a792 100644 --- a/jeecg-boot/jeecg-boot-base-common/src/main/java/org/jeecg/common/system/api/ISysBaseAPI.java +++ b/jeecg-boot/jeecg-boot-base-common/src/main/java/org/jeecg/common/system/api/ISysBaseAPI.java @@ -2,6 +2,7 @@ package org.jeecg.common.system.api; import java.sql.SQLException; import java.util.List; +import java.util.Map; import org.jeecg.common.system.vo.ComboModel; import org.jeecg.common.system.vo.DictModel; @@ -99,7 +100,37 @@ public interface ISysBaseAPI { * @param msgContent 消息内容 */ public void sendSysAnnouncement(String fromUser,String toUser,String title, String msgContent); - + + /** + * 发送系统消息 + * @param fromUser 发送人(用户登录账户) + * @param toUser 发送给(用户登录账户) + * @param title 通知标题 + * @param map 模板参数 + * @param templateCode 模板编码 + */ + public void sendSysAnnouncement(String fromUser, String toUser,String title, Map map, String templateCode); + + /** + * 通过消息中心模板,生成推送内容 + * + * @param templateCode 模板编码 + * @param map 模板参数 + * @return + */ + public String parseTemplateByCode(String templateCode, Map map); + + + /** + * 发送系统消息 + * @param fromUser 发送人(用户登录账户) + * @param toUser 发送给(用户登录账户) + * @param title 消息主题 + * @param msgContent 消息内容 + * @param setMsgCategory 消息类型 1:消息2:系统消息 + */ + public void sendSysAnnouncement(String fromUser, String toUser, String title, String msgContent, String setMsgCategory); + /** * 查询表字典 支持过滤数据 * @param table diff --git a/jeecg-boot/jeecg-boot-base-common/src/main/java/org/jeecg/common/system/query/MatchTypeEnum.java b/jeecg-boot/jeecg-boot-base-common/src/main/java/org/jeecg/common/system/query/MatchTypeEnum.java index 1c0cf851..340f904a 100644 --- a/jeecg-boot/jeecg-boot-base-common/src/main/java/org/jeecg/common/system/query/MatchTypeEnum.java +++ b/jeecg-boot/jeecg-boot-base-common/src/main/java/org/jeecg/common/system/query/MatchTypeEnum.java @@ -23,6 +23,13 @@ public enum MatchTypeEnum { return value; } + public static MatchTypeEnum getByValue(Object value) { + if (oConvertUtils.isEmpty(value)) { + return null; + } + return getByValue(value.toString()); + } + public static MatchTypeEnum getByValue(String value) { if (oConvertUtils.isEmpty(value)) { return null; diff --git a/jeecg-boot/jeecg-boot-base-common/src/main/java/org/jeecg/common/system/query/QueryGenerator.java b/jeecg-boot/jeecg-boot-base-common/src/main/java/org/jeecg/common/system/query/QueryGenerator.java index 0d687280..6b09f21a 100644 --- a/jeecg-boot/jeecg-boot-base-common/src/main/java/org/jeecg/common/system/query/QueryGenerator.java +++ b/jeecg-boot/jeecg-boot-base-common/src/main/java/org/jeecg/common/system/query/QueryGenerator.java @@ -17,11 +17,14 @@ import java.util.regex.Pattern; import org.apache.commons.beanutils.PropertyUtils; import org.jeecg.common.constant.CommonConstant; +import org.jeecg.common.constant.DataBaseConstant; +import org.jeecg.common.system.api.ISysBaseAPI; import org.jeecg.common.system.util.JeecgDataAutorUtils; import org.jeecg.common.system.util.JwtUtil; import org.jeecg.common.system.vo.SysPermissionDataRuleModel; import org.jeecg.common.util.SqlInjectionUtil; import org.jeecg.common.util.oConvertUtils; +import org.jeecgframework.core.util.ApplicationContextUtil; import org.springframework.util.NumberUtils; import com.alibaba.fastjson.JSON; @@ -31,7 +34,6 @@ import lombok.extern.slf4j.Slf4j; @Slf4j public class QueryGenerator { - public static final String SQL_RULES_COLUMN = "SQL_RULES_COLUMN"; private static final String BEGIN = "_begin"; @@ -315,7 +317,7 @@ public class QueryGenerator { } private static void addQueryByRule(QueryWrapper queryWrapper,String name,String type,String value,QueryRuleEnum rule) throws ParseException { - if(!"".equals(value)) { + if(oConvertUtils.isNotEmpty(value)) { Object temp; switch (type) { case "class java.lang.Integer": @@ -380,7 +382,7 @@ public class QueryGenerator { * @param value 查询条件值 */ private static void addEasyQuery(QueryWrapper queryWrapper, String name, QueryRuleEnum rule, Object value) { - if (value == null || rule == null) { + if (value == null || rule == null || oConvertUtils.isEmpty(value)) { return; } name = oConvertUtils.camelToUnderline(name); @@ -590,7 +592,11 @@ public class QueryGenerator { str = str.substring(1); } if(isString) { - return " '"+str+"' "; + if(DataBaseConstant.DB_TYPE_SQLSERVER.equals(getDbType())){ + return " N'"+str+"' "; + }else{ + return " '"+str+"' "; + } }else { return value.toString(); } @@ -601,7 +607,11 @@ public class QueryGenerator { String temp[] = value.toString().split(","); String res=""; for (String string : temp) { - res+=",'"+string+"'"; + if(DataBaseConstant.DB_TYPE_SQLSERVER.equals(getDbType())){ + res+=",N'"+string+"'"; + }else{ + res+=",'"+string+"'"; + } } return "("+res.substring(1)+")"; }else { @@ -612,16 +622,36 @@ public class QueryGenerator { private static String getLikeConditionValue(Object value) { String str = value.toString().trim(); if(str.startsWith("*") && str.endsWith("*")) { - return "'%"+str.substring(1,str.length()-1)+"%'"; + if(DataBaseConstant.DB_TYPE_SQLSERVER.equals(getDbType())){ + return "N'%"+str.substring(1,str.length()-1)+"%'"; + }else{ + return "'%"+str.substring(1,str.length()-1)+"%'"; + } }else if(str.startsWith("*")) { - return "'%"+str.substring(1)+"'"; + if(DataBaseConstant.DB_TYPE_SQLSERVER.equals(getDbType())){ + return "N'%"+str.substring(1)+"'"; + }else{ + return "'%"+str.substring(1)+"'"; + } }else if(str.endsWith("*")) { - return "'"+str.substring(0,str.length()-1)+"%'"; + if(DataBaseConstant.DB_TYPE_SQLSERVER.equals(getDbType())){ + return "N'"+str.substring(0,str.length()-1)+"%'"; + }else{ + return "'"+str.substring(0,str.length()-1)+"%'"; + } }else { if(str.indexOf("%")>=0) { - return str; + if(DataBaseConstant.DB_TYPE_SQLSERVER.equals(getDbType())){ + return "N"+str; + }else{ + return str; + } }else { - return "'%"+str+"%'"; + if(DataBaseConstant.DB_TYPE_SQLSERVER.equals(getDbType())){ + return "N'%"+str+"%'"; + }else{ + return "'%"+str+"%'"; + } } } } @@ -695,5 +725,25 @@ public class QueryGenerator { } } } + + + /** 当前系统数据库类型 */ + private static String DB_TYPE; + /** + * 获取系统数据库类型 + */ + private static String getDbType(){ + if(oConvertUtils.isNotEmpty(DB_TYPE)){ + return DB_TYPE; + } + try { + ISysBaseAPI sysBaseAPI = ApplicationContextUtil.getContext().getBean(ISysBaseAPI.class); + DB_TYPE = sysBaseAPI.getDatabaseType(); + return DB_TYPE; + } catch (Exception e) { + e.printStackTrace(); + } + return DB_TYPE; + } } diff --git a/jeecg-boot/jeecg-boot-base-common/src/main/java/org/jeecg/common/util/HTMLUtils.java b/jeecg-boot/jeecg-boot-base-common/src/main/java/org/jeecg/common/util/HTMLUtils.java new file mode 100644 index 00000000..8d12a25e --- /dev/null +++ b/jeecg-boot/jeecg-boot-base-common/src/main/java/org/jeecg/common/util/HTMLUtils.java @@ -0,0 +1,29 @@ +package org.jeecg.common.util; + +import org.apache.commons.lang.StringUtils; +import org.springframework.web.util.HtmlUtils; + +/** + * HTML 工具类 + */ +public class HTMLUtils { + + /** + * 获取HTML内的文本,不包含标签 + * + * @param html HTML 代码 + */ + public static String getInnerText(String html) { + if (StringUtils.isNotBlank(html)) { + //去掉 html 的标签 + String content = html.replaceAll("]+>", ""); + // 将多个空格合并成一个空格 + content = content.replaceAll("( )+", " "); + // 反向转义字符 + content = HtmlUtils.htmlUnescape(content); + return content.trim(); + } + return ""; + } + +} diff --git a/jeecg-boot/jeecg-boot-module-system/pom.xml b/jeecg-boot/jeecg-boot-module-system/pom.xml index f6dab9c1..997a15a0 100644 --- a/jeecg-boot/jeecg-boot-module-system/pom.xml +++ b/jeecg-boot/jeecg-boot-module-system/pom.xml @@ -3,12 +3,12 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 jeecg-boot-module-system - 2.1.2 + 2.1.3 org.jeecgframework.boot jeecg-boot-parent - 2.1.2 + 2.1.3 diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/JeecgApplication.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/JeecgApplication.java index 60599b96..467ce9d8 100644 --- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/JeecgApplication.java +++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/JeecgApplication.java @@ -22,8 +22,8 @@ import springfox.documentation.swagger2.annotations.EnableSwagger2; @EnableAutoConfiguration public class JeecgApplication { - public static void main(String[] args) throws UnknownHostException { - //System.setProperty("spring.devtools.restart.enabled", "true"); + public static void main(String[] args) throws UnknownHostException { + //System.setProperty("spring.devtools.restart.enabled", "true"); ConfigurableApplicationContext application = SpringApplication.run(JeecgApplication.class, args); Environment env = application.getEnvironment(); @@ -34,22 +34,8 @@ public class JeecgApplication { "Application Jeecg-Boot is running! Access URLs:\n\t" + "Local: \t\thttp://localhost:" + port + path + "/\n\t" + "External: \thttp://" + ip + ":" + port + path + "/\n\t" + - "swagger-ui: \thttp://" + ip + ":" + port + path + "/swagger-ui.html\n\t" + - "Doc: \t\thttp://" + ip + ":" + port + path + "/doc.html\n" + + "swagger-ui: \t\thttp://" + ip + ":" + port + path + "/doc.html\n" + "----------------------------------------------------------"); } - - /** - * tomcat-embed-jasper引用后提示jar找不到的问题 - */ - @Bean - public TomcatServletWebServerFactory tomcatFactory() { - return new TomcatServletWebServerFactory() { - @Override - protected void postProcessContext(Context context) { - ((StandardJarScanner) context.getJarScanner()).setScanManifest(false); - } - }; - } } \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/config/ShiroConfig.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/config/ShiroConfig.java index a4e4ff6f..def18535 100644 --- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/config/ShiroConfig.java +++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/config/ShiroConfig.java @@ -66,6 +66,10 @@ public class ShiroConfig { filterChainDefinitionMap.put(url,"anon"); } } + //大屏请求排除 + filterChainDefinitionMap.put("/big/screen/**", "anon"); + filterChainDefinitionMap.put("/bigscreen/**", "anon"); + //cas验证登录 filterChainDefinitionMap.put("/cas/client/validateLogin", "anon"); // 配置不会被拦截的链接 顺序判断 @@ -119,7 +123,7 @@ public class ShiroConfig { //排除Online请求 filterChainDefinitionMap.put("/auto/cgform/**", "anon"); - + //websocket排除 filterChainDefinitionMap.put("/websocket/**", "anon"); diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/config/mybatis/MybatisInterceptor.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/config/mybatis/MybatisInterceptor.java index 89e50496..4e672d4e 100644 --- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/config/mybatis/MybatisInterceptor.java +++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/config/mybatis/MybatisInterceptor.java @@ -45,32 +45,20 @@ public class MybatisInterceptor implements Interceptor { return invocation.proceed(); } if (SqlCommandType.INSERT == sqlCommandType) { + LoginUser sysUser = this.getLoginUser(); Field[] fields = oConvertUtils.getAllFields(parameter); for (Field field : fields) { log.debug("------field.name------" + field.getName()); try { - //update-begin--Author:scott Date:20190828 for:关于使用Quzrtz 开启线程任务, #465 - // 获取登录用户信息 - LoginUser sysUser = null; - try{ - sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - }catch (Exception e){ - sysUser = null; - } - //update-end--Author:scott Date:20190828 for:关于使用Quzrtz 开启线程任务, #465 if ("createBy".equals(field.getName())) { field.setAccessible(true); Object local_createBy = field.get(parameter); field.setAccessible(false); if (local_createBy == null || local_createBy.equals("")) { - String createBy = "jeecg"; if (sysUser != null) { - // 登录账号 - createBy = sysUser.getUsername(); - } - if (oConvertUtils.isNotEmpty(createBy)) { + // 登录人账号 field.setAccessible(true); - field.set(parameter, createBy); + field.set(parameter, sysUser.getUsername()); field.setAccessible(false); } } @@ -92,15 +80,10 @@ public class MybatisInterceptor implements Interceptor { Object local_sysOrgCode = field.get(parameter); field.setAccessible(false); if (local_sysOrgCode == null || local_sysOrgCode.equals("")) { - String sysOrgCode = ""; // 获取登录用户信息 if (sysUser != null) { - // 登录账号 - sysOrgCode = sysUser.getOrgCode(); - } - if (oConvertUtils.isNotEmpty(sysOrgCode)) { field.setAccessible(true); - field.set(parameter, sysOrgCode); + field.set(parameter, sysUser.getOrgCode()); field.setAccessible(false); } } @@ -110,6 +93,7 @@ public class MybatisInterceptor implements Interceptor { } } if (SqlCommandType.UPDATE == sqlCommandType) { + LoginUser sysUser = this.getLoginUser(); Field[] fields = null; if (parameter instanceof ParamMap) { ParamMap p = (ParamMap) parameter; @@ -137,12 +121,10 @@ public class MybatisInterceptor implements Interceptor { try { if ("updateBy".equals(field.getName())) { //获取登录用户信息 - LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); if (sysUser != null) { // 登录账号 - String updateBy = sysUser.getUsername(); field.setAccessible(true); - field.set(parameter, updateBy); + field.set(parameter, sysUser.getUsername()); field.setAccessible(false); } } @@ -169,4 +151,17 @@ public class MybatisInterceptor implements Interceptor { // TODO Auto-generated method stub } + //update-begin--Author:scott Date:20191213 for:关于使用Quzrtz 开启线程任务, #465 + private LoginUser getLoginUser() { + LoginUser sysUser = null; + try { + sysUser = SecurityUtils.getSubject().getPrincipal() != null ? (LoginUser) SecurityUtils.getSubject().getPrincipal() : null; + } catch (Exception e) { + //e.printStackTrace(); + sysUser = null; + } + return sysUser; + } + //update-end--Author:scott Date:20191213 for:关于使用Quzrtz 开启线程任务, #465 + } diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/test/controller/BigScreenController.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/test/controller/BigScreenController.java new file mode 100644 index 00000000..441041f4 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/demo/test/controller/BigScreenController.java @@ -0,0 +1,63 @@ +package org.jeecg.modules.demo.test.controller; + +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.system.base.controller.JeecgController; +import org.jeecg.modules.demo.test.entity.JeecgDemo; +import org.jeecg.modules.demo.test.service.IJeecgDemoService; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.servlet.ModelAndView; + +import java.util.ArrayList; +import java.util.List; + +/** + * @Description: 大屏预览入口 + * @Author: scott + * @Date:2019-12-12 + * @Version:V1.0 + */ +@Slf4j +@Controller +@RequestMapping("/big/screen") +public class BigScreenController extends JeecgController { + + /** + * @param modelAndView + * @return + */ + @RequestMapping("/html") + public ModelAndView ftl(ModelAndView modelAndView) { + modelAndView.setViewName("demo3"); + List userList = new ArrayList(); + userList.add("admin"); + userList.add("user1"); + userList.add("user2"); + log.info("--------------test--------------"); + modelAndView.addObject("userList", userList); + return modelAndView; + } + + /** + * 生产销售监控模版 + * @param modelAndView + * @return + */ + @RequestMapping("/index1") + public ModelAndView index1(ModelAndView modelAndView) { + modelAndView.setViewName("/bigscreen/template1/index"); + return modelAndView; + } + + /** + * 智慧物流监控模版 + * @param modelAndView + * @return + */ + @RequestMapping("/index2") + public ModelAndView index2(ModelAndView modelAndView) { + modelAndView.setViewName("/bigscreen/template2/index"); + return modelAndView; + } + +} diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/handle/impl/EmailSendMsgHandle.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/handle/impl/EmailSendMsgHandle.java index 08afc78d..a78e249a 100644 --- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/handle/impl/EmailSendMsgHandle.java +++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/handle/impl/EmailSendMsgHandle.java @@ -4,23 +4,34 @@ import org.jeecg.common.util.SpringContextUtils; import org.jeecg.modules.message.handle.ISendMsgHandle; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; +import org.springframework.mail.javamail.MimeMessageHelper; + +import javax.mail.MessagingException; +import javax.mail.internet.MimeMessage; public class EmailSendMsgHandle implements ISendMsgHandle { - static String emailFrom; - public static void setEmailFrom(String emailFrom) { - EmailSendMsgHandle.emailFrom = emailFrom; - } + static String emailFrom; + + public static void setEmailFrom(String emailFrom) { + EmailSendMsgHandle.emailFrom = emailFrom; + } - @Override - public void SendMsg(String es_receiver, String es_title, String es_content) { - JavaMailSender mailSender = (JavaMailSender) SpringContextUtils.getBean("mailSender"); - SimpleMailMessage message = new SimpleMailMessage(); - // 设置发送方邮箱地址 - message.setFrom(emailFrom); - message.setTo(es_receiver); - message.setSubject(es_title); - message.setText(es_content); - mailSender.send(message); + @Override + public void SendMsg(String es_receiver, String es_title, String es_content) { + JavaMailSender mailSender = (JavaMailSender) SpringContextUtils.getBean("mailSender"); + MimeMessage message = mailSender.createMimeMessage(); + MimeMessageHelper helper = null; + try { + helper = new MimeMessageHelper(message, true); + // 设置发送方邮箱地址 + helper.setFrom(emailFrom); + helper.setTo(es_receiver); + helper.setSubject(es_title); + helper.setText(es_content, true); + mailSender.send(message); + } catch (MessagingException e) { + e.printStackTrace(); + } - } + } } diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/websocket/WebSocket.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/websocket/WebSocket.java index 497b1193..9b44ee34 100644 --- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/websocket/WebSocket.java +++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/message/websocket/WebSocket.java @@ -17,10 +17,14 @@ import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; +/** + * @Author scott + * @Date 2019/11/29 9:41 + * @Description: 此注解相当于设置访问URL + */ @Component @Slf4j -@ServerEndpoint("/websocket/{userId}") -//此注解相当于设置访问URL +@ServerEndpoint("/websocket/{userId}") //此注解相当于设置访问URL public class WebSocket { private Session session; @@ -50,7 +54,8 @@ public class WebSocket { @OnMessage public void onMessage(String message) { - //log.info("【websocket消息】收到客户端消息:"+message); + //todo 现在有个定时任务刷,应该去掉 + log.debug("【websocket消息】收到客户端消息:"+message); JSONObject obj = new JSONObject(); obj.put("cmd", "heartcheck");//业务类型 obj.put("msgTxt", "心跳响应");//消息内容 diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysDepartController.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysDepartController.java index adb7d259..b02b318e 100644 --- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysDepartController.java +++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysDepartController.java @@ -249,7 +249,6 @@ public class SysDepartController { * 导出excel * * @param request - * @param response */ @RequestMapping(value = "/exportXls") public ModelAndView exportXls(SysDepart sysDepart,HttpServletRequest request) { diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysRoleController.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysRoleController.java index 017f91f2..8d414e2d 100644 --- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysRoleController.java +++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysRoleController.java @@ -151,19 +151,9 @@ public class SysRoleController { * @return */ @RequestMapping(value = "/delete", method = RequestMethod.DELETE) - public Result delete(@RequestParam(name="id",required=true) String id) { - Result result = new Result(); - SysRole sysrole = sysRoleService.getById(id); - if(sysrole==null) { - result.error500("未找到对应实体"); - }else { - boolean ok = sysRoleService.removeById(id); - if(ok) { - result.success("删除成功!"); - } - } - - return result; + public Result delete(@RequestParam(name="id",required=true) String id) { + sysRoleService.deleteRole(id); + return Result.ok("删除角色成功"); } /** @@ -174,11 +164,11 @@ public class SysRoleController { @RequestMapping(value = "/deleteBatch", method = RequestMethod.DELETE) public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { Result result = new Result(); - if(ids==null || "".equals(ids.trim())) { - result.error500("参数不识别!"); + if(oConvertUtils.isEmpty(ids)) { + result.error500("未选中角色!"); }else { - this.sysRoleService.removeByIds(Arrays.asList(ids.split(","))); - result.success("删除成功!"); + sysRoleService.deleteBatchRole(ids.split(",")); + result.success("删除角色成功!"); } return result; } diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysUserController.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysUserController.java index 90aa716d..d7a135ef 100644 --- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysUserController.java +++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysUserController.java @@ -137,7 +137,7 @@ public class SysUserController { } @RequestMapping(value = "/edit", method = RequestMethod.PUT) - //@RequiresPermissions("user:edit") + @RequiresPermissions("user:edit") public Result edit(@RequestBody JSONObject jsonObject) { Result result = new Result(); try { diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/SysRoleMapper.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/SysRoleMapper.java index 77615814..9d8f20b4 100644 --- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/SysRoleMapper.java +++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/SysRoleMapper.java @@ -1,5 +1,8 @@ package org.jeecg.modules.system.mapper; +import org.apache.ibatis.annotations.Delete; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Update; import org.jeecg.modules.system.entity.SysRole; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -14,4 +17,21 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface SysRoleMapper extends BaseMapper { + /** + * @Author scott + * @Date 2019/12/13 16:12 + * @Description: 删除角色与用户关系 + */ + @Delete("delete from sys_user_role where role_id = #{roleId}") + void deleteRoleUserRelation(@Param("roleId") String roleId); + + + /** + * @Author scott + * @Date 2019/12/13 16:12 + * @Description: 删除角色与权限关系 + */ + @Delete("delete from sys_role_permission where role_id = #{roleId}") + void deleteRolePermissionRelation(@Param("roleId") String roleId); + } diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java index 9da998fc..f159bdbd 100644 --- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java +++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/SysUserMapper.java @@ -83,4 +83,17 @@ public interface SysUserMapper extends BaseMapper { */ Integer getUserByOrgCodeTotal(@Param("orgCode") String orgCode, @Param("userParams") SysUser userParams); + /** + * @Author scott + * @Date 2019/12/13 16:10 + * @Description: 批量删除角色与用户关系 + */ + void deleteBathRoleUserRelation(@Param("roleIdArray") String[] roleIdArray); + + /** + * @Author scott + * @Date 2019/12/13 16:10 + * @Description: 批量删除角色与权限关系 + */ + void deleteBathRolePermissionRelation(@Param("roleIdArray") String[] roleIdArray); } diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml index a2d9d74c..7b7ec00b 100644 --- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml +++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/mapper/xml/SysUserMapper.xml @@ -81,4 +81,20 @@ SELECT COUNT(1) + + + delete from sys_user_role + where role_id in + + #{id} + + + + + delete from sys_role_permission + where role_id in + + #{id} + + \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/rule/CategoryCodeRule.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/rule/CategoryCodeRule.java new file mode 100644 index 00000000..02365f12 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/rule/CategoryCodeRule.java @@ -0,0 +1,64 @@ +package org.jeecg.modules.system.rule; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.jeecg.common.handler.IFillRuleHandler; +import org.jeecg.common.util.SpringContextUtils; +import org.jeecg.common.util.YouBianCodeUtil; +import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.system.entity.SysCategory; +import org.jeecg.modules.system.mapper.SysCategoryMapper; + +import java.util.List; + +/** + * @Author scott + * @Date 2019/12/9 11:32 + * @Description: 分类字典编码生成规则 + */ +public class CategoryCodeRule implements IFillRuleHandler { + + public static final String ROOT_PID_VALUE = "0"; + + @Override + public Object execute(JSONObject params, JSONObject formData) { + + String categoryPid = ROOT_PID_VALUE; + String categoryCode = null; + + if (formData != null && formData.size() > 0) { + Object obj = formData.get("pid"); + if (oConvertUtils.isNotEmpty(obj)) categoryPid = obj.toString(); + } else { + if (params != null) { + Object obj = params.get("pid"); + if (oConvertUtils.isNotEmpty(obj)) categoryPid = obj.toString(); + } + } + + /* + * 分成三种情况 + * 1.数据库无数据 调用YouBianCodeUtil.getNextYouBianCode(null); + * 2.添加子节点,无兄弟元素 YouBianCodeUtil.getSubYouBianCode(parentCode,null); + * 3.添加子节点有兄弟元素 YouBianCodeUtil.getNextYouBianCode(lastCode); + * */ + //找同类 确定上一个最大的code值 + LambdaQueryWrapper query = new LambdaQueryWrapper().eq(SysCategory::getPid, categoryPid).orderByDesc(SysCategory::getCode); + SysCategoryMapper baseMapper = (SysCategoryMapper) SpringContextUtils.getBean("sysCategoryMapper"); + List list = baseMapper.selectList(query); + if (list == null || list.size() == 0) { + if (ROOT_PID_VALUE.equals(categoryPid)) { + //情况1 + categoryCode = YouBianCodeUtil.getNextYouBianCode(null); + } else { + //情况2 + SysCategory parent = (SysCategory) baseMapper.selectById(categoryPid); + categoryCode = YouBianCodeUtil.getSubYouBianCode(parent.getCode(), null); + } + } else { + //情况3 + categoryCode = YouBianCodeUtil.getNextYouBianCode(list.get(0).getCode()); + } + return categoryCode; + } +} diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/rule/OrgCodeRule.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/rule/OrgCodeRule.java new file mode 100644 index 00000000..bf6a3ac6 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/rule/OrgCodeRule.java @@ -0,0 +1,94 @@ +package org.jeecg.modules.system.rule; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import io.netty.util.internal.StringUtil; +import org.jeecg.common.handler.IFillRuleHandler; +import org.jeecg.common.util.SpringContextUtils; +import org.jeecg.common.util.YouBianCodeUtil; +import org.jeecg.modules.system.entity.SysDepart; +import org.jeecg.modules.system.service.ISysDepartService; + +import java.util.ArrayList; +import java.util.List; + +/** + * @Author scott + * @Date 2019/12/9 11:33 + * @Description: 机构编码生成规则 + */ +public class OrgCodeRule implements IFillRuleHandler { + + @Override + public Object execute(JSONObject params, JSONObject formData) { + ISysDepartService sysDepartService = (ISysDepartService) SpringContextUtils.getBean("sysDepartServiceImpl"); + + LambdaQueryWrapper query = new LambdaQueryWrapper(); + LambdaQueryWrapper query1 = new LambdaQueryWrapper(); + // 创建一个List集合,存储查询返回的所有SysDepart对象 + List departList = new ArrayList<>(); + String[] strArray = new String[2]; + //定义部门类型 + String orgType = ""; + // 定义新编码字符串 + String newOrgCode = ""; + // 定义旧编码字符串 + String oldOrgCode = ""; + + String parentId = null; + if (formData != null && formData.size() > 0) { + Object obj = formData.get("parentId"); + if (obj != null) parentId = obj.toString(); + } else { + if (params != null) { + Object obj = params.get("parentId"); + if (obj != null) parentId = obj.toString(); + } + } + + //如果是最高级,则查询出同级的org_code, 调用工具类生成编码并返回 + if (StringUtil.isNullOrEmpty(parentId)) { + // 线判断数据库中的表是否为空,空则直接返回初始编码 + query1.eq(SysDepart::getParentId, "").or().isNull(SysDepart::getParentId); + query1.orderByDesc(SysDepart::getOrgCode); + departList = sysDepartService.list(query1); + if (departList == null || departList.size() == 0) { + strArray[0] = YouBianCodeUtil.getNextYouBianCode(null); + strArray[1] = "1"; + return strArray; + } else { + SysDepart depart = departList.get(0); + oldOrgCode = depart.getOrgCode(); + orgType = depart.getOrgType(); + newOrgCode = YouBianCodeUtil.getNextYouBianCode(oldOrgCode); + } + } else {//反之则查询出所有同级的部门,获取结果后有两种情况,有同级和没有同级 + // 封装查询同级的条件 + query.eq(SysDepart::getParentId, parentId); + // 降序排序 + query.orderByDesc(SysDepart::getOrgCode); + // 查询出同级部门的集合 + List parentList = sysDepartService.list(query); + // 查询出父级部门 + SysDepart depart = sysDepartService.getById(parentId); + // 获取父级部门的Code + String parentCode = depart.getOrgCode(); + // 根据父级部门类型算出当前部门的类型 + orgType = String.valueOf(Integer.valueOf(depart.getOrgType()) + 1); + // 处理同级部门为null的情况 + if (parentList == null || parentList.size() == 0) { + // 直接生成当前的部门编码并返回 + newOrgCode = YouBianCodeUtil.getSubYouBianCode(parentCode, null); + } else { //处理有同级部门的情况 + // 获取同级部门的编码,利用工具类 + String subCode = parentList.get(0).getOrgCode(); + // 返回生成的当前部门编码 + newOrgCode = YouBianCodeUtil.getSubYouBianCode(parentCode, subCode); + } + } + // 返回最终封装了部门编码和部门类型的数组 + strArray[0] = newOrgCode; + strArray[1] = orgType; + return strArray; + } +} diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/ISysRoleService.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/ISysRoleService.java index beb34b50..e89f21ca 100644 --- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/ISysRoleService.java +++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/ISysRoleService.java @@ -26,4 +26,18 @@ public interface ISysRoleService extends IService { */ Result importExcelCheckRoleCode(MultipartFile file, ImportParams params) throws Exception; + /** + * 删除角色 + * @param roleid + * @return + */ + public boolean deleteRole(String roleid); + + /** + * 批量删除角色 + * @param roleids + * @return + */ + public boolean deleteBatchRole(String[] roleids); + } diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/SysBaseApiImpl.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/SysBaseApiImpl.java index 8f746132..983e010e 100644 --- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/SysBaseApiImpl.java +++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/SysBaseApiImpl.java @@ -6,6 +6,7 @@ import java.sql.SQLException; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Map; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -25,6 +26,8 @@ import org.jeecg.common.system.vo.SysDepartModel; import org.jeecg.common.util.IPUtils; import org.jeecg.common.util.SpringContextUtils; import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.message.entity.SysMessageTemplate; +import org.jeecg.modules.message.service.ISysMessageTemplateService; import org.jeecg.modules.message.websocket.WebSocket; import org.jeecg.modules.system.entity.*; import org.jeecg.modules.system.mapper.*; @@ -51,7 +54,8 @@ import lombok.extern.slf4j.Slf4j; public class SysBaseApiImpl implements ISysBaseAPI { /** 当前系统数据库类型 */ public static String DB_TYPE = ""; - + @Autowired + private ISysMessageTemplateService sysMessageTemplateService; @Resource private SysLogMapper sysLogMapper; @Autowired @@ -182,6 +186,11 @@ public class SysBaseApiImpl implements ISysBaseAPI { @Override public void sendSysAnnouncement(String fromUser, String toUser, String title, String msgContent) { + this.sendSysAnnouncement(fromUser, toUser, title, msgContent, CommonConstant.MSG_CATEGORY_2); + } + + @Override + public void sendSysAnnouncement(String fromUser, String toUser, String title, String msgContent, String setMsgCategory) { SysAnnouncement announcement = new SysAnnouncement(); announcement.setTitile(title); announcement.setMsgContent(msgContent); @@ -190,7 +199,7 @@ public class SysBaseApiImpl implements ISysBaseAPI { announcement.setMsgType(CommonConstant.MSG_TYPE_UESR); announcement.setSendStatus(CommonConstant.HAS_SEND); announcement.setSendTime(new Date()); - announcement.setMsgCategory(CommonConstant.MSG_CATEGORY_2); + announcement.setMsgCategory(setMsgCategory); announcement.setDelFlag(String.valueOf(CommonConstant.DEL_FLAG_0)); sysAnnouncementMapper.insert(announcement); // 2.插入用户通告阅读标记表记录 @@ -216,8 +225,82 @@ public class SysBaseApiImpl implements ISysBaseAPI { webSocket.sendOneMessage(sysUser.getId(), obj.toJSONString()); } } - + + } + + @Override + public String parseTemplateByCode(String templateCode,Map map) { + List sysSmsTemplates = sysMessageTemplateService.selectByCode(templateCode); + if(sysSmsTemplates==null||sysSmsTemplates.size()==0){ + throw new JeecgBootException("消息模板不存在,模板编码:"+templateCode); + } + SysMessageTemplate sysSmsTemplate = sysSmsTemplates.get(0); + //模板内容 + String content = sysSmsTemplate.getTemplateContent(); + if(map!=null) { + for (Map.Entry entry : map.entrySet()) { + String str = "${" + entry.getKey() + "}"; + content = content.replace(str, entry.getValue()); + } + } + return content; + } + + @Override + public void sendSysAnnouncement(String fromUser, String toUser,String title,Map map, String templateCode) { + List sysSmsTemplates = sysMessageTemplateService.selectByCode(templateCode); + if(sysSmsTemplates==null||sysSmsTemplates.size()==0){ + throw new JeecgBootException("消息模板不存在,模板编码:"+templateCode); + } + SysMessageTemplate sysSmsTemplate = sysSmsTemplates.get(0); + //模板标题 + title = title==null?sysSmsTemplate.getTemplateName():title; + //模板内容 + String content = sysSmsTemplate.getTemplateContent(); + if(map!=null) { + for (Map.Entry entry : map.entrySet()) { + String str = "${" + entry.getKey() + "}"; + title = title.replace(str, entry.getValue()); + content = content.replace(str, entry.getValue()); + } + } + + SysAnnouncement announcement = new SysAnnouncement(); + announcement.setTitile(title); + announcement.setMsgContent(content); + announcement.setSender(fromUser); + announcement.setPriority(CommonConstant.PRIORITY_M); + announcement.setMsgType(CommonConstant.MSG_TYPE_UESR); + announcement.setSendStatus(CommonConstant.HAS_SEND); + announcement.setSendTime(new Date()); + announcement.setMsgCategory(CommonConstant.MSG_CATEGORY_2); + announcement.setDelFlag(String.valueOf(CommonConstant.DEL_FLAG_0)); + sysAnnouncementMapper.insert(announcement); + // 2.插入用户通告阅读标记表记录 + String userId = toUser; + String[] userIds = userId.split(","); + String anntId = announcement.getId(); + for(int i=0;i query = new LambdaQueryWrapper() - .eq(SysCategory::getPid,categoryPid) - .orderByDesc(SysCategory::getCode); - List list = baseMapper.selectList(query); - if(list==null || list.size()==0){ - if(ISysCategoryService.ROOT_PID_VALUE.equals(categoryPid)){ - //情况1 - categoryCode = YouBianCodeUtil.getNextYouBianCode(null); - }else{ - //情况2 - categoryCode = YouBianCodeUtil.getSubYouBianCode(parentCode,null); - } - }else{ - //情况3 - categoryCode = YouBianCodeUtil.getNextYouBianCode(list.get(0).getCode()); - } + //update-begin--Author:baihailong Date:20191209 for:分类字典编码规则生成器做成公用配置 + JSONObject formData = new JSONObject(); + formData.put("pid",categoryPid); + categoryCode = (String) FillRuleUtil.executeRule("category_code_rule",formData); + //update-end--Author:baihailong Date:20191209 for:分类字典编码规则生成器做成公用配置 sysCategory.setCode(categoryCode); sysCategory.setPid(categoryPid); baseMapper.insert(sysCategory); diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/SysDepartServiceImpl.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/SysDepartServiceImpl.java index 05fbb5cc..a8de1c93 100644 --- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/SysDepartServiceImpl.java +++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/SysDepartServiceImpl.java @@ -5,8 +5,10 @@ import java.util.Date; import java.util.List; import java.util.UUID; +import com.alibaba.fastjson.JSONObject; import org.jeecg.common.constant.CacheConstant; import org.jeecg.common.constant.CommonConstant; +import org.jeecg.common.util.FillRuleUtil; import org.jeecg.common.util.YouBianCodeUtil; import org.jeecg.modules.system.entity.SysDepart; import org.jeecg.modules.system.mapper.SysDepartMapper; @@ -76,7 +78,11 @@ public class SysDepartServiceImpl extends ServiceImpl implements ISysRoleService { + @Autowired + SysRoleMapper sysRoleMapper; + @Autowired + SysUserMapper sysUserMapper; @Override public Result importExcelCheckRoleCode(MultipartFile file, ImportParams params) throws Exception { @@ -80,4 +88,28 @@ public class SysRoleServiceImpl extends ServiceImpl impl res.setMessage("文件导入成功,但有错误。"); return res; } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean deleteRole(String roleid) { + //1.删除角色和用户关系 + sysRoleMapper.deleteRoleUserRelation(roleid); + //2.删除角色和权限关系 + sysRoleMapper.deleteRolePermissionRelation(roleid); + //3.删除角色 + this.removeById(roleid); + return true; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean deleteBatchRole(String[] roleIds) { + //1.删除角色和用户关系 + sysUserMapper.deleteBathRoleUserRelation(roleIds); + //2.删除角色和权限关系 + sysUserMapper.deleteBathRolePermissionRelation(roleIds); + //3.删除角色 + this.removeByIds(Arrays.asList(roleIds)); + return true; + } } diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/vo/SysUserRoleVO.java b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/vo/SysUserRoleVO.java index 414a782b..70d14efc 100644 --- a/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/vo/SysUserRoleVO.java +++ b/jeecg-boot/jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/vo/SysUserRoleVO.java @@ -13,11 +13,15 @@ public class SysUserRoleVO implements Serializable{ private String roleId; /**对应的用户id集合*/ private List userIdList; + + public SysUserRoleVO() { + super(); + } + public SysUserRoleVO(String roleId, List userIdList) { super(); this.roleId = roleId; this.userIdList = userIdList; } - - + } diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/application-dev.yml b/jeecg-boot/jeecg-boot-module-system/src/main/resources/application-dev.yml index 3b002ba1..cd8a60e2 100644 --- a/jeecg-boot/jeecg-boot-module-system/src/main/resources/application-dev.yml +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/application-dev.yml @@ -157,6 +157,12 @@ jeecg : elasticsearch: cluster-name: jeecg-ES cluster-nodes: 127.0.0.1:9200 + # 表单设计器配置 + desform: + # 主题颜色(仅支持 16进制颜色代码) + theme-color: "#1890ff" + # 在线预览文件服务器地址配置 + file-view-domain: http://127.0.0.1:8012 #Mybatis输出sql日志 logging: level: diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/application-prod.yml b/jeecg-boot/jeecg-boot-module-system/src/main/resources/application-prod.yml index 85dbb1a9..3f6914a4 100644 --- a/jeecg-boot/jeecg-boot-module-system/src/main/resources/application-prod.yml +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/application-prod.yml @@ -154,6 +154,12 @@ jeecg : elasticsearch: cluster-name: jeecg-ES cluster-nodes: 127.0.0.1:9200 + # 表单设计器配置 + desform: + # 主题颜色(仅支持 16进制颜色代码) + theme-color: "#1890ff" + # 在线预览文件服务器地址配置 + file-view-domain: 127.0.0.1:8012 #cas单点登录 cas: prefixUrl: http://cas.example.org:8443/cas diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/application-test.yml b/jeecg-boot/jeecg-boot-module-system/src/main/resources/application-test.yml index 47f55c34..aa2bf1b4 100644 --- a/jeecg-boot/jeecg-boot-module-system/src/main/resources/application-test.yml +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/application-test.yml @@ -157,6 +157,12 @@ jeecg : elasticsearch: cluster-name: jeecg-ES cluster-nodes: 127.0.0.1:9200 + # 表单设计器配置 + desform: + # 主题颜色(仅支持 16进制颜色代码) + theme-color: "#1890ff" + # 在线预览文件服务器地址配置 + file-view-domain: 127.0.0.1:8012 #cas单点登录 cas: prefixUrl: http://cas.example.org:8443/cas \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/banner.txt b/jeecg-boot/jeecg-boot-module-system/src/main/resources/banner.txt index a23106f0..e77e6aac 100644 --- a/jeecg-boot/jeecg-boot-module-system/src/main/resources/banner.txt +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/banner.txt @@ -9,6 +9,6 @@ ${AnsiColor.BRIGHT_BLUE} ${AnsiColor.BRIGHT_GREEN} -Jeecg Boot Version: 2.1.2 +Jeecg Boot Version: 2.1.3 Spring Boot Version: ${spring-boot.version}${spring-boot.formatted-version} ${AnsiColor.BLACK} diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/controller/${entityName}Controller.javai b/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/controller/${entityName}Controller.javai new file mode 100644 index 00000000..8ca70d33 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/controller/${entityName}Controller.javai @@ -0,0 +1,199 @@ +package ${bussiPackage}.${entityPackage}.controller; + +import org.jeecg.common.system.query.QueryGenerator; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.system.base.controller.JeecgController; +import org.jeecg.common.api.vo.Result; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.springframework.web.servlet.ModelAndView; +import java.util.Arrays; +import org.jeecg.common.util.oConvertUtils; +<#list subTables as sub> +import ${bussiPackage}.${entityPackage}.entity.${sub.entityName}; + +import ${bussiPackage}.${entityPackage}.entity.${entityName}; +import ${bussiPackage}.${entityPackage}.service.I${entityName}Service; +<#list subTables as sub> +import ${bussiPackage}.${entityPackage}.service.I${sub.entityName}Service; + + + + /** + * @Description: ${tableVo.ftlDescription} + * @Author: jeecg-boot + * @Date: ${.now?string["yyyy-MM-dd"]} + * @Version: V1.0 + */ +@RestController +@RequestMapping("/${entityPackage}/${entityName?uncap_first}") +@Slf4j +public class ${entityName}Controller extends JeecgController<${entityName}, I${entityName}Service> { + + @Autowired + private I${entityName}Service ${entityName?uncap_first}Service; + <#list subTables as sub> + + @Autowired + private I${sub.entityName}Service ${sub.entityName?uncap_first}Service; + + + + /*---------------------------------主表处理-begin-------------------------------------*/ + + /** + * 分页列表查询 + * @param ${entityName?uncap_first} + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @GetMapping(value = "/list") + public Result queryPageList(${entityName} ${entityName?uncap_first}, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper<${entityName}> queryWrapper = QueryGenerator.initQueryWrapper(${entityName?uncap_first}, req.getParameterMap()); + Page<${entityName}> page = new Page<${entityName}>(pageNo, pageSize); + IPage<${entityName}> pageList = ${entityName?uncap_first}Service.page(page, queryWrapper); + return Result.ok(pageList); + } + + /** + * 添加 + * @param ${entityName?uncap_first} + * @return + */ + @PostMapping(value = "/add") + public Result add(@RequestBody ${entityName} ${entityName?uncap_first}) { + ${entityName?uncap_first}Service.save(${entityName?uncap_first}); + return Result.ok("添加成功!"); + } + + /** + * 编辑 + * @param ${entityName?uncap_first} + * @return + */ + @PutMapping(value = "/edit") + public Result edit(@RequestBody ${entityName} ${entityName?uncap_first}) { + ${entityName?uncap_first}Service.updateById(${entityName?uncap_first}); + return Result.ok("编辑成功!"); + } + + /** + * 通过id删除 + * @param id + * @return + */ + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + ${entityName?uncap_first}Service.delMain(id); + return Result.ok("删除成功!"); + } + + /** + * 批量删除 + * @param ids + * @return + */ + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.${entityName?uncap_first}Service.delBatchMain(Arrays.asList(ids.split(","))); + return Result.ok("批量删除成功!"); + } + + /** + * 导出 + * @return + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, ${entityName} ${entityName?uncap_first}) { + return super.exportXls(request, ${entityName?uncap_first}, ${entityName}.class, "${tableVo.ftlDescription}"); + } + + /** + * 导入 + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, ${entityName}.class); + } + /*---------------------------------主表处理-end-------------------------------------*/ + + <#list subTables as sub> + + /*--------------------------------子表处理-${sub.ftlDescription}-begin----------------------------------------------*/ + /** + * 查询子表信息 会传入主表ID + * @return + */ + @GetMapping(value = "/list${sub.entityName}ByMainId") + public Result list${sub.entityName}ByMainId(${sub.entityName} ${sub.entityName?uncap_first}, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper<${sub.entityName}> queryWrapper = QueryGenerator.initQueryWrapper(${sub.entityName?uncap_first}, req.getParameterMap()); + Page<${sub.entityName}> page = new Page<${sub.entityName}>(pageNo, pageSize); + IPage<${sub.entityName}> pageList = ${sub.entityName?uncap_first}Service.page(page, queryWrapper); + return Result.ok(pageList); + } + + /** + * 添加 + * @param ${sub.entityName?uncap_first} + * @return + */ + @PostMapping(value = "/add${sub.entityName}") + public Result add${sub.entityName}(@RequestBody ${sub.entityName} ${sub.entityName?uncap_first}) { + ${sub.entityName?uncap_first}Service.save(${sub.entityName?uncap_first}); + return Result.ok("添加成功!"); + } + + /** + * 编辑 + * @param ${sub.entityName?uncap_first} + * @return + */ + @PutMapping(value = "/edit${sub.entityName}") + public Result edit${sub.entityName}(@RequestBody ${sub.entityName} ${sub.entityName?uncap_first}) { + ${sub.entityName?uncap_first}Service.updateById(${sub.entityName?uncap_first}); + return Result.ok("编辑成功!"); + } + + /** + * 通过id删除 + * @param id + * @return + */ + @DeleteMapping(value = "/delete${sub.entityName}") + public Result delete${sub.entityName}(@RequestParam(name="id",required=true) String id) { + ${sub.entityName?uncap_first}Service.removeById(id); + return Result.ok("删除成功!"); + } + + /** + * 批量删除 + * @param ids + * @return + */ + @DeleteMapping(value = "/deleteBatch${sub.entityName}") + public Result deleteBatch${sub.entityName}(@RequestParam(name="ids",required=true) String ids) { + this.${sub.entityName?uncap_first}Service.removeByIds(Arrays.asList(ids.split(","))); + return Result.ok("批量删除成功!"); + } + + /*--------------------------------子表处理-${sub.ftlDescription}-end----------------------------------------------*/ + + + + + +} diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/entity/${entityName}.javai b/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/entity/${entityName}.javai new file mode 100644 index 00000000..d9cac41d --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/entity/${entityName}.javai @@ -0,0 +1,75 @@ +package ${bussiPackage}.${entityPackage}.entity; + +import java.io.Serializable; +import java.util.Date; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import org.jeecgframework.poi.excel.annotation.Excel; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; + +/** + * @Description: ${tableVo.ftlDescription} + * @Author: jeecg-boot + * @Date: ${.now?string["yyyy-MM-dd"]} + * @Version: V1.0 + */ +@Data +@TableName("${tableName}") +public class ${entityName} implements Serializable { + private static final long serialVersionUID = 1L; + + <#list originalColumns as po> + /**${po.filedComment}*/ + <#if po.fieldName == primaryKeyField> + @TableId(type = IdType.ID_WORKER_STR) + <#else> + <#if po.fieldDbType =='Date'> + <#if po.classType=='date'> + @Excel(name = "${po.filedComment}", width = 15, format = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + <#else> + @Excel(name = "${po.filedComment}", width = 20, format = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + + <#else> + @Excel(name = "${po.filedComment}", width = 15) + + + <#if po.fieldDbType=='Blob'> + private transient java.lang.String ${po.fieldName}String; + + private byte[] ${po.fieldName}; + + public byte[] get${po.fieldName?cap_first}(){ + if(${po.fieldName}String==null){ + return null; + } + try { + return ${po.fieldName}String.getBytes("UTF-8"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + return null; + } + + public String get${po.fieldName?cap_first}String(){ + if(${po.fieldName}==null || ${po.fieldName}.length==0){ + return ""; + } + try { + return new String(${po.fieldName},"UTF-8"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + return ""; + } + <#else> + private ${po.fieldType} ${po.fieldName}; + + +} diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/entity/[1-n]Entity.javai b/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/entity/[1-n]Entity.javai new file mode 100644 index 00000000..b0f38673 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/entity/[1-n]Entity.javai @@ -0,0 +1,62 @@ +<#list subTables as subTab> +#segment#${subTab.entityName}.java +package ${bussiPackage}.${entityPackage}.entity; + +import java.io.Serializable; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import org.jeecg.common.aspect.annotation.Dict; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import java.util.Date; + +/** + * @Description: ${subTab.ftlDescription} + * @Author: jeecg-boot + * @Date: ${.now?string["yyyy-MM-dd"]} + * @Version: V1.0 + */ +@Data +@TableName("${subTab.tableName}") +public class ${subTab.entityName} implements Serializable { + private static final long serialVersionUID = 1L; + +<#list subTab.originalColumns as po> + /**${po.filedComment}*/ +<#if po.fieldName == primaryKeyField> + @TableId(type = IdType.ID_WORKER_STR) +<#else> + <#if po.fieldDbType =='Date'> + <#if po.classType=='date'> + @Excel(name = "${po.filedComment}", width = 15, format = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + <#else> + @Excel(name = "${po.filedComment}", width = 20, format = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + + <#elseif !subTab.foreignKeys?seq_contains(po.fieldName?cap_first)> + @Excel(name = "${po.filedComment}", width = 15) + + +<#if po.classType =='list' || po.classType =='radio' || po.classType =='list_multi' || po.classType =='checkbox' || po.classType =='sel_search'> + <#if po.dictTable?default("")?trim?length gt 1> + @Dict(dicCode = "${po.dictField}",dicText = "${po.dictText}",dictTable = "${po.dictTable}") + <#elseif po.dictField?default("")?trim?length gt 1> + @Dict(dicCode = "${po.dictField}") + + +<#if po.classType =='cat_tree'> + @Dict(dicCode = "id",dicText = "name",dictTable = "sys_category") + +<#if po.classType =='sel_depart'> + @Dict(dicCode = "id",dicText = "depart_name",dictTable = "sys_depart") + + private <#if po.fieldType=='java.sql.Blob'>byte[]<#else>${po.fieldType} ${po.fieldName}; + +} + \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/mapper/${entityName}Mapper.javai b/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/mapper/${entityName}Mapper.javai new file mode 100644 index 00000000..c31b9bfd --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/mapper/${entityName}Mapper.javai @@ -0,0 +1,17 @@ +package ${bussiPackage}.${entityPackage}.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import ${bussiPackage}.${entityPackage}.entity.${entityName}; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: ${tableVo.ftlDescription} + * @Author: jeecg-boot + * @Date: ${.now?string["yyyy-MM-dd"]} + * @Version: V1.0 + */ +public interface ${entityName}Mapper extends BaseMapper<${entityName}> { + +} diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/mapper/[1-n]Mapper.javai b/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/mapper/[1-n]Mapper.javai new file mode 100644 index 00000000..eccb8d6b --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/mapper/[1-n]Mapper.javai @@ -0,0 +1,23 @@ +<#list subTables as subTab> +#segment#${subTab.entityName}Mapper.java +package ${bussiPackage}.${entityPackage}.mapper; + +import java.util.List; +import ${bussiPackage}.${entityPackage}.entity.${subTab.entityName}; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +/** + * @Description: ${subTab.ftlDescription} + * @Author: jeecg-boot + * @Date: ${.now?string["yyyy-MM-dd"]} + * @Version: V1.0 + */ +public interface ${subTab.entityName}Mapper extends BaseMapper<${subTab.entityName}> { + + public boolean deleteByMainId(@Param("mainId") String mainId); + + public List<${subTab.entityName}> selectByMainId(@Param("mainId") String mainId); + +} + \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/mapper/xml/${entityName}Mapper.xml b/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/mapper/xml/${entityName}Mapper.xml new file mode 100644 index 00000000..16f3d653 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/mapper/xml/${entityName}Mapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/mapper/xml/[1-n]Mapper.xml b/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/mapper/xml/[1-n]Mapper.xml new file mode 100644 index 00000000..1dc58027 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/mapper/xml/[1-n]Mapper.xml @@ -0,0 +1,28 @@ +<#list subTables as subTab> +<#assign originalForeignKeys = subTab.originalForeignKeys> +#segment#${subTab.entityName}Mapper.xml + + + + + + DELETE + FROM ${subTab.tableName} + WHERE + <#list originalForeignKeys as key> + ${key} = ${r'#'}{mainId} <#rt/> + + + + + + + \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/service/I${entityName}Service.javai b/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/service/I${entityName}Service.javai new file mode 100644 index 00000000..507143c4 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/service/I${entityName}Service.javai @@ -0,0 +1,32 @@ +package ${bussiPackage}.${entityPackage}.service; + +<#list subTables as sub> +import ${bussiPackage}.${entityPackage}.entity.${sub.entityName}; + +import ${bussiPackage}.${entityPackage}.entity.${entityName}; +import com.baomidou.mybatisplus.extension.service.IService; +import org.springframework.beans.factory.annotation.Autowired; +import java.io.Serializable; +import java.util.Collection; +import java.util.List; + +/** + * @Description: ${tableVo.ftlDescription} + * @Author: jeecg-boot + * @Date: ${.now?string["yyyy-MM-dd"]} + * @Version: V1.0 + */ +public interface I${entityName}Service extends IService<${entityName}> { + + /** + * 删除一对多 + */ + public void delMain (String id); + + /** + * 批量删除一对多 + */ + public void delBatchMain (Collection idList); + + +} diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/service/[1-n]Service.javai b/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/service/[1-n]Service.javai new file mode 100644 index 00000000..0f85cb33 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/service/[1-n]Service.javai @@ -0,0 +1,19 @@ +<#list subTables as subTab> +#segment#I${subTab.entityName}Service.java +package ${bussiPackage}.${entityPackage}.service; + +import ${bussiPackage}.${entityPackage}.entity.${subTab.entityName}; +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + +/** + * @Description: ${subTab.ftlDescription} + * @Author: jeecg-boot + * @Date: ${.now?string["yyyy-MM-dd"]} + * @Version: V1.0 + */ +public interface I${subTab.entityName}Service extends IService<${subTab.entityName}> { + + public List<${subTab.entityName}> selectByMainId(String mainId); +} + diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/service/impl/${entityName}ServiceImpl.javai b/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/service/impl/${entityName}ServiceImpl.javai new file mode 100644 index 00000000..44840290 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/service/impl/${entityName}ServiceImpl.javai @@ -0,0 +1,56 @@ +package ${bussiPackage}.${entityPackage}.service.impl; + +import ${bussiPackage}.${entityPackage}.entity.${entityName}; +<#list subTables as sub> +import ${bussiPackage}.${entityPackage}.entity.${sub.entityName}; + +<#list subTables as sub> +import ${bussiPackage}.${entityPackage}.mapper.${sub.entityName}Mapper; + +import ${bussiPackage}.${entityPackage}.mapper.${entityName}Mapper; +import ${bussiPackage}.${entityPackage}.service.I${entityName}Service; +import org.springframework.stereotype.Service; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; +import java.io.Serializable; +import java.util.List; +import java.util.Collection; + +/** + * @Description: ${tableVo.ftlDescription} + * @Author: jeecg-boot + * @Date: ${.now?string["yyyy-MM-dd"]} + * @Version: V1.0 + */ +@Service +public class ${entityName}ServiceImpl extends ServiceImpl<${entityName}Mapper, ${entityName}> implements I${entityName}Service { + + @Autowired + private ${entityName}Mapper ${entityName?uncap_first}Mapper; + <#list subTables as sub> + @Autowired + private ${sub.entityName}Mapper ${sub.entityName?uncap_first}Mapper; + + + @Override + @Transactional + public void delMain(String id) { + <#list subTables as sub> + ${sub.entityName?uncap_first}Mapper.deleteByMainId(id); + + ${entityName?uncap_first}Mapper.deleteById(id); + } + + @Override + @Transactional + public void delBatchMain(Collection idList) { + for(Serializable id:idList) { + <#list subTables as sub> + ${sub.entityName?uncap_first}Mapper.deleteByMainId(id.toString()); + + ${entityName?uncap_first}Mapper.deleteById(id); + } + } + +} diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/service/impl/[1-n]ServiceImpl.javai b/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/service/impl/[1-n]ServiceImpl.javai new file mode 100644 index 00000000..0ce41d36 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/service/impl/[1-n]ServiceImpl.javai @@ -0,0 +1,30 @@ +<#list subTables as subTab> +#segment#${subTab.entityName}ServiceImpl.java +package ${bussiPackage}.${entityPackage}.service.impl; + +import ${bussiPackage}.${entityPackage}.entity.${subTab.entityName}; +import ${bussiPackage}.${entityPackage}.mapper.${subTab.entityName}Mapper; +import ${bussiPackage}.${entityPackage}.service.I${subTab.entityName}Service; +import org.springframework.stereotype.Service; +import java.util.List; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.beans.factory.annotation.Autowired; + +/** + * @Description: ${subTab.ftlDescription} + * @Author: jeecg-boot + * @Date: ${.now?string["yyyy-MM-dd"]} + * @Version: V1.0 + */ +@Service +public class ${subTab.entityName}ServiceImpl extends ServiceImpl<${subTab.entityName}Mapper, ${subTab.entityName}> implements I${subTab.entityName}Service { + + @Autowired + private ${subTab.entityName}Mapper ${subTab.entityName?uncap_first}Mapper; + + @Override + public List<${subTab.entityName}> selectByMainId(String mainId) { + return ${subTab.entityName?uncap_first}Mapper.selectByMainId(mainId); + } +} + \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/vue/${entityName}List.vuei b/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/vue/${entityName}List.vuei new file mode 100644 index 00000000..b4dbb867 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/vue/${entityName}List.vuei @@ -0,0 +1,403 @@ + + + + \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/vue/[1-n]List.vuei b/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/vue/[1-n]List.vuei new file mode 100644 index 00000000..9a54692a --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/vue/[1-n]List.vuei @@ -0,0 +1,187 @@ +<#list subTables as sub> +#segment#${sub.entityName}List.vue + + + + + \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Modal.vuei b/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Modal.vuei new file mode 100644 index 00000000..8b6db79f --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Modal.vuei @@ -0,0 +1,263 @@ + + + \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/vue/modules/[1-n]Modal.vuei b/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/vue/modules/[1-n]Modal.vuei new file mode 100644 index 00000000..ef6c0674 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/erp/java/${bussiPackage}/${entityPackage}/vue/modules/[1-n]Modal.vuei @@ -0,0 +1,276 @@ +<#list subTables as sub> +#segment#${sub.entityName}Modal.vue + + + + \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/one/common/validatorRulesTemplate.ftl b/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/one/common/validatorRulesTemplate.ftl new file mode 100644 index 00000000..e634a3ef --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/one/common/validatorRulesTemplate.ftl @@ -0,0 +1,55 @@ + validatorRules: { +<#list columns as po> + <#if po.isShow == 'Y'> + <#if po.fieldName != 'id'> + ${po.fieldName}: {rules: [ + <#assign fieldValidType = po.fieldValidType!''> + <#-- 非空校验 --> + <#if po.nullable == 'N' || fieldValidType == '*'> + {required: true, message: '请输入${po.filedComment}!'}, + + <#-- 唯一校验 --> + <#if fieldValidType == 'only'> + { validator: (rule, value, callback) => validateDuplicateValue('${tableName}', '${po.fieldDbName}', value, this.model.id, callback)}, + <#-- 6到16位数字 --> + <#elseif fieldValidType == 'n6-16'> + {pattern:/\d{6,18}/, message: '请输入6到16位数字!'}, + <#-- 6到16位任意字符 --> + <#elseif fieldValidType == '*6-16'> + {pattern:/^.{6,16}$/, message: '请输入6到16位任意字符!'}, + <#-- 6到18位字符串 --> + <#elseif fieldValidType == 's6-18'> + {pattern:/^.{6,18}$/, message: '请输入6到18位任意字符!'}, + <#-- 网址 --> + <#elseif fieldValidType == 'url'> + {pattern:/^(?:([A-Za-z]+):)?(\/{0,3})([0-9.\-A-Za-z]+)(?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))?$/, message: '请输入正确的网址!'}, + <#-- 电子邮件 --> + <#elseif fieldValidType == 'e'> + {pattern:/^([\w]+\.*)([\w]+)@[\w]+\.\w{3}(\.\w{2}|)$/, message: '请输入正确的电子邮件!'}, + <#-- 手机号码 --> + <#elseif fieldValidType == 'm'> + {pattern:/^1[3456789]\d{9}$/, message: '请输入正确的手机号码!'}, + <#-- 邮政编码 --> + <#elseif fieldValidType == 'p'> + {pattern:/^[1-9]\d{5}$/, message: '请输入正确的邮政编码!'}, + <#-- 字母 --> + <#elseif fieldValidType == 's'> + {pattern:/^[A-Z|a-z]+$/, message: '请输入字母!'}, + <#-- 数字 --> + <#elseif fieldValidType == 'n'> + {pattern:/^-?\d+\.?\d*$/, message: '请输入数字!'}, + <#-- 整数 --> + <#elseif fieldValidType == 'z'> + {pattern:/^-?\d+$/, message: '请输入整数!'}, + <#-- 金额 --> + <#elseif fieldValidType == 'money'> + {pattern:/^(([1-9][0-9]*)|([0]\.\d{0,2}|[1-9][0-9]*\.\d{0,2}))$/, message: '请输入正确的金额!'}, + <#-- 无校验 --> + <#else> + <#t> + + ]}, + + + + }, diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/one/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Modal.vuei b/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/one/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Modal.vuei index 014f0079..1663c170 100644 --- a/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/one/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Modal.vuei +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/one/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Modal.vuei @@ -39,7 +39,7 @@ <#elseif po.classType =='popup'> <#assign form_popup=true> <#elseif po.classType =='sel_depart'> <#assign form_sel_depart=true> - + <#elseif po.classType =='sel_user'> <#assign form_sel_user = true> - + <#elseif po.classType =='textarea'> - + <#elseif po.classType=='list' || po.classType=='radio'> <#assign form_select = true> - + <#elseif po.classType=='list_multi' || po.classType=='checkbox'> <#assign form_select_multi = true> - + <#elseif po.classType=='sel_search'> <#assign form_select_search = true> - + <#elseif po.classType=='cat_tree'> <#assign form_cat_tree = true> - back="${po.dictText}" @change="handleCategoryChange"/> + back="${po.dictText}" @change="handleCategoryChange"/> <#if po.dictText?default("")?trim?length gt 1> <#assign form_cat_back = "${po.dictText}"> @@ -72,7 +72,7 @@ <#elseif po.classType=='file' || po.classType=='image'> <#assign form_file = true> - + <#elseif po.classType=='umeditor'> <#assign form_editor = true> @@ -99,6 +99,7 @@ import { httpAction } from '@/api/manage' import pick from 'lodash.pick' + import { validateDuplicateValue } from '@/utils/util' <#if form_date> import JDate from '@/components/jeecg/JDate' @@ -173,26 +174,12 @@ xs: { span: 24 }, sm: { span: 16 }, }, - confirmLoading: false, - validatorRules:{ - <#list columns as po> - <#if po.isShow =='Y'> - <#if po.fieldName !='id'> - <#if po.nullable =='N'> - ${po.fieldName}:{rules: [{ required: true, message: '请输入${po.filedComment}!' }]}, - <#else> - ${po.fieldName}:{}, - - - - - }, + <#include "/common/validatorRulesTemplate.ftl"> url: { add: "/${entityPackage}/${entityName?uncap_first}/add", edit: "/${entityPackage}/${entityName?uncap_first}/edit", } - } }, created () { diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/one/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Modal__Style#Drawer.vuei b/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/one/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Modal__Style#Drawer.vuei index fa9ed6b4..0b011517 100644 --- a/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/one/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Modal__Style#Drawer.vuei +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template-online/one/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Modal__Style#Drawer.vuei @@ -35,7 +35,7 @@ <#elseif po.classType =='popup'> <#assign form_popup=true> <#elseif po.classType =='sel_depart'> <#assign form_sel_depart=true> - + <#elseif po.classType =='sel_user'> <#assign form_sel_user = true> - + <#elseif po.classType =='textarea'> - + <#elseif po.classType=='list' || po.classType=='radio'> <#assign form_select = true> - + <#elseif po.classType=='list_multi' || po.classType=='checkbox'> <#assign form_select_multi = true> - + <#elseif po.fieldDbType=='int' || po.fieldDbType=='double' || po.fieldDbType=='BigDecimal'> <#elseif po.classType=='file' || po.classType=='image'> <#assign form_file = true> - + <#else> @@ -78,6 +78,7 @@ import { httpAction } from '@/api/manage' import pick from 'lodash.pick' + import { validateDuplicateValue } from '@/utils/util' <#if form_date> import JDate from '@/components/jeecg/JDate' @@ -134,26 +135,12 @@ xs: { span: 24 }, sm: { span: 16 }, }, - confirmLoading: false, - validatorRules:{ - <#list columns as po> - <#if po.isShow =='Y'> - <#if po.fieldName !='id'> - <#if po.nullable =='N'> - ${po.fieldName}:{rules: [{ required: true, message: '请输入${po.filedComment}!' }]}, - <#else> - ${po.fieldName}:{}, - - - - - }, + <#include "/common/validatorRulesTemplate.ftl"> url: { add: "/${entityPackage}/${entityName?uncap_first}/add", edit: "/${entityPackage}/${entityName?uncap_first}/edit", } - } }, created () { diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template/onetomany/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Modal.vuei b/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template/onetomany/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Modal.vuei index 94c5aeca..3b052ee7 100644 --- a/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template/onetomany/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Modal.vuei +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/jeecg/code-template/onetomany/java/${bussiPackage}/${entityPackage}/vue/modules/${entityName}Modal.vuei @@ -16,7 +16,7 @@ <#if po.fieldName !='id'> <#list [po_index, po_index+1] as idx><#rt/> <#if idx lt columns?size> - + .panel-body, +.panel-hright>.panel-body { + position: absolute; +} +.panel-hleft>.panel-header { + float: left; +} +.panel-hright>.panel-header { + float: right; +} +.panel-hleft>.panel-body { + border-top-width: 1px; + border-left-width: 0; +} +.panel-hright>.panel-body { + border-top-width: 1px; + border-right-width: 0; +} +.panel-hleft>.panel-body-nobottom { + border-bottom-width: 1px; + border-right-width: 0; +} +.panel-hright>.panel-body-nobottom { + border-bottom-width: 1px; + border-left-width: 0; +} +.panel-hleft>.panel-footer { + position: absolute; + right: 0; +} +.panel-hright>.panel-footer { + position: absolute; + left: 0; +} +.panel-hleft>.panel-header-noborder { + border-width: 0 1px 0 0; +} +.panel-hright>.panel-header-noborder { + border-width: 0 0 0 1px; +} +.panel-hleft>.panel-body-noborder { + border-width: 0; +} +.panel-hright>.panel-body-noborder { + border-width: 0; +} +.panel-hleft>.panel-body-noheader { + border-left-width: 1px; +} +.panel-hright>.panel-body-noheader { + border-right-width: 1px; +} +.panel-hleft>.panel-footer-noborder { + border-width: 0 0 0 1px; +} +.panel-hright>.panel-footer-noborder { + border-width: 0 1px 0 0; +} +.panel-hleft>.panel-header .panel-icon, +.panel-hright>.panel-header .panel-icon { + margin-top: 0; + top: 5px; + left: 50%; + margin-left: -8px; +} +.panel-hleft>.panel-header .panel-title, +.panel-hright>.panel-header .panel-title { + position: absolute; + min-width: 16px; + left: 25px; + top: 5px; + bottom: auto; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(90deg); + -o-transform-origin: 0 0; + transform: rotate(90deg); + transform-origin: 0 0; +} +.panel-hleft>.panel-header .panel-title-up, +.panel-hright>.panel-header .panel-title-up { + position: absolute; + min-width: 16px; + left: 21px; + top: auto; + bottom: 0px; + text-align: right; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(-90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(-90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(-90deg); + -o-transform-origin: 0 0; + transform: rotate(-90deg); + transform-origin: 0 16px; +} +.panel-hleft>.panel-header .panel-with-icon.panel-title-up, +.panel-hright>.panel-header .panel-with-icon.panel-title-up { + padding-left: 0; + padding-right: 18px; +} +.panel-hleft>.panel-header .panel-tool, +.panel-hright>.panel-header .panel-tool { + top: auto; + bottom: 5px; + width: 16px; + height: auto; + left: 50%; + margin-left: -8px; + margin-top: 0; +} +.panel-hleft>.panel-header .panel-tool a, +.panel-hright>.panel-header .panel-tool a { + margin: 2px 0 0 0; +} +.accordion { + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.accordion .accordion-header { + border-width: 0 0 1px; + cursor: pointer; +} +.accordion .accordion-body { + border-width: 0 0 1px; +} +.accordion-noborder { + border-width: 0; +} +.accordion-noborder .accordion-header { + border-width: 0 0 1px; +} +.accordion-noborder .accordion-body { + border-width: 0 0 1px; +} +.accordion-collapse { + background: url('images/accordion_arrows.png') no-repeat 0 0; +} +.accordion-expand { + background: url('images/accordion_arrows.png') no-repeat -16px 0; +} +.accordion { + background: #666; + border-color: #000; +} +.accordion .accordion-header { + background: #3d3d3d; + filter: none; +} +.accordion .accordion-header-selected { + background: #990000; +} +.accordion .accordion-header-selected .panel-title { + color: #fff; +} +.accordion .panel-last > .accordion-header { + border-bottom-color: #3d3d3d; +} +.accordion .panel-last > .accordion-body { + border-bottom-color: #666; +} +.accordion .panel-last > .accordion-header-selected, +.accordion .panel-last > .accordion-header-border { + border-bottom-color: #000; +} +.accordion> .panel-hleft { + float: left; +} +.accordion> .panel-hleft>.panel-header { + border-width: 0 1px 0 0; +} +.accordion> .panel-hleft> .panel-body { + border-width: 0 1px 0 0; +} +.accordion> .panel-hleft.panel-last > .accordion-header { + border-right-color: #3d3d3d; +} +.accordion> .panel-hleft.panel-last > .accordion-body { + border-right-color: #666; +} +.accordion> .panel-hleft.panel-last > .accordion-header-selected, +.accordion> .panel-hleft.panel-last > .accordion-header-border { + border-right-color: #000; +} +.accordion> .panel-hright { + float: right; +} +.accordion> .panel-hright>.panel-header { + border-width: 0 0 0 1px; +} +.accordion> .panel-hright> .panel-body { + border-width: 0 0 0 1px; +} +.accordion> .panel-hright.panel-last > .accordion-header { + border-left-color: #3d3d3d; +} +.accordion> .panel-hright.panel-last > .accordion-body { + border-left-color: #666; +} +.accordion> .panel-hright.panel-last > .accordion-header-selected, +.accordion> .panel-hright.panel-last > .accordion-header-border { + border-left-color: #000; +} +.window { + + + overflow: hidden; + padding: 5px; + border-width: 1px; + border-style: solid; +} +.window .window-header { + background: transparent; + padding: 0px 0px 6px 0px; +} +.window .window-body { + border-width: 1px; + border-style: solid; + border-top-width: 0px; +} +.window .window-body-noheader { + border-top-width: 1px; +} +.window .panel-body-nobottom { + border-bottom-width: 0; +} +.window .window-header .panel-icon, +.window .window-header .panel-tool { + top: 50%; + margin-top: -11px; +} +.window .window-header .panel-icon { + left: 1px; +} +.window .window-header .panel-tool { + right: 1px; +} +.window .window-header .panel-with-icon { + padding-left: 18px; +} +.window-proxy { + position: absolute; + overflow: hidden; +} +.window-proxy-mask { + position: absolute; + filter: alpha(opacity=5); + opacity: 0.05; +} +.window-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + filter: alpha(opacity=40); + opacity: 0.40; + font-size: 1px; + overflow: hidden; +} +.window, +.window-shadow { + position: absolute; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.window-shadow { + background: #777; + -moz-box-shadow: 2px 2px 3px #787878; + -webkit-box-shadow: 2px 2px 3px #787878; + box-shadow: 2px 2px 3px #787878; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.window, +.window .window-body { + border-color: #000; +} +.window { + background-color: #3d3d3d; + background: -webkit-linear-gradient(top,#454545 0,#383838 20%); + background: -moz-linear-gradient(top,#454545 0,#383838 20%); + background: -o-linear-gradient(top,#454545 0,#383838 20%); + background: linear-gradient(to bottom,#454545 0,#383838 20%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#454545,endColorstr=#383838,GradientType=0); +} +.window-proxy { + border: 1px dashed #000; +} +.window-proxy-mask, +.window-mask { + background: #000; +} +.window .panel-footer { + border: 1px solid #000; + position: relative; + top: -1px; +} +.window-thinborder { + padding: 0; +} +.window-thinborder .window-header { + padding: 5px 5px 6px 5px; +} +.window-thinborder .window-body { + border-width: 0px; +} +.window-thinborder .window-footer { + border-left: transparent; + border-right: transparent; + border-bottom: transparent; +} +.window-thinborder .window-header .panel-icon, +.window-thinborder .window-header .panel-tool { + margin-top: -9px; + margin-left: 5px; + margin-right: 5px; +} +.window-noborder { + border: 0; +} +.window.panel-hleft .window-header { + padding: 0 6px 0 0; +} +.window.panel-hright .window-header { + padding: 0 0 0 6px; +} +.window.panel-hleft>.panel-header .panel-title { + top: auto; + left: 16px; +} +.window.panel-hright>.panel-header .panel-title { + top: auto; + right: 16px; +} +.window.panel-hleft>.panel-header .panel-title-up, +.window.panel-hright>.panel-header .panel-title-up { + bottom: 0; +} +.window.panel-hleft .window-body { + border-width: 1px 1px 1px 0; +} +.window.panel-hright .window-body { + border-width: 1px 0 1px 1px; +} +.window.panel-hleft .window-header .panel-icon { + top: 1px; + margin-top: 0; + left: 0; +} +.window.panel-hright .window-header .panel-icon { + top: 1px; + margin-top: 0; + left: auto; + right: 1px; +} +.window.panel-hleft .window-header .panel-tool, +.window.panel-hright .window-header .panel-tool { + margin-top: 0; + top: auto; + bottom: 1px; + right: auto; + margin-right: 0; + left: 50%; + margin-left: -11px; +} +.window.panel-hright .window-header .panel-tool { + left: auto; + right: 1px; +} +.window-thinborder.panel-hleft .window-header { + padding: 5px 6px 5px 5px; +} +.window-thinborder.panel-hright .window-header { + padding: 5px 5px 5px 6px; +} +.window-thinborder.panel-hleft>.panel-header .panel-title { + left: 21px; +} +.window-thinborder.panel-hleft>.panel-header .panel-title-up, +.window-thinborder.panel-hright>.panel-header .panel-title-up { + bottom: 5px; +} +.window-thinborder.panel-hleft .window-header .panel-icon, +.window-thinborder.panel-hright .window-header .panel-icon { + margin-top: 5px; +} +.window-thinborder.panel-hleft .window-header .panel-tool, +.window-thinborder.panel-hright .window-header .panel-tool { + left: 16px; + bottom: 5px; +} +.dialog-content { + overflow: auto; +} +.dialog-toolbar { + position: relative; + padding: 2px 5px; +} +.dialog-tool-separator { + float: left; + height: 24px; + border-left: 1px solid #444; + border-right: 1px solid #777; + margin: 2px 1px; +} +.dialog-button { + position: relative; + top: -1px; + padding: 5px; + text-align: right; +} +.dialog-button .l-btn { + margin-left: 5px; +} +.dialog-toolbar, +.dialog-button { + background: #555; + border-width: 1px; + border-style: solid; +} +.dialog-toolbar { + border-color: #000 #000 #222 #000; +} +.dialog-button { + border-color: #222 #000 #000 #000; +} +.window-thinborder .dialog-toolbar { + border-left: transparent; + border-right: transparent; + border-top-color: #555; +} +.window-thinborder .dialog-button { + top: 0px; + padding: 5px 8px 8px 8px; + border-left: transparent; + border-right: transparent; + border-bottom: transparent; +} +.l-btn { + text-decoration: none; + display: inline-block; + overflow: hidden; + margin: 0; + padding: 0; + cursor: pointer; + outline: none; + text-align: center; + vertical-align: middle; + line-height: normal; +} +.l-btn-plain { + border-width: 0; + padding: 1px; +} +.l-btn-left { + display: inline-block; + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + vertical-align: top; +} +.l-btn-text { + display: inline-block; + vertical-align: top; + width: auto; + line-height: 28px; + font-size: 12px; + padding: 0; + margin: 0 6px; +} +.l-btn-icon { + display: inline-block; + width: 16px; + height: 16px; + line-height: 16px; + position: absolute; + top: 50%; + margin-top: -8px; + font-size: 1px; +} +.l-btn span span .l-btn-empty { + display: inline-block; + margin: 0; + width: 16px; + height: 24px; + font-size: 1px; + vertical-align: top; +} +.l-btn span .l-btn-icon-left { + padding: 0 0 0 20px; + background-position: left center; +} +.l-btn span .l-btn-icon-right { + padding: 0 20px 0 0; + background-position: right center; +} +.l-btn-icon-left .l-btn-text { + margin: 0 6px 0 26px; +} +.l-btn-icon-left .l-btn-icon { + left: 6px; +} +.l-btn-icon-right .l-btn-text { + margin: 0 26px 0 6px; +} +.l-btn-icon-right .l-btn-icon { + right: 6px; +} +.l-btn-icon-top .l-btn-text { + margin: 20px 4px 0 4px; +} +.l-btn-icon-top .l-btn-icon { + top: 4px; + left: 50%; + margin: 0 0 0 -8px; +} +.l-btn-icon-bottom .l-btn-text { + margin: 0 4px 20px 4px; +} +.l-btn-icon-bottom .l-btn-icon { + top: auto; + bottom: 4px; + left: 50%; + margin: 0 0 0 -8px; +} +.l-btn-left .l-btn-empty { + margin: 0 6px; + width: 16px; +} +.l-btn-plain:hover { + padding: 0; +} +.l-btn-focus { + outline: #0000FF dotted thin; +} +.l-btn-large .l-btn-text { + line-height: 44px; +} +.l-btn-large .l-btn-icon { + width: 32px; + height: 32px; + line-height: 32px; + margin-top: -16px; +} +.l-btn-large .l-btn-icon-left .l-btn-text { + margin-left: 40px; +} +.l-btn-large .l-btn-icon-right .l-btn-text { + margin-right: 40px; +} +.l-btn-large .l-btn-icon-top .l-btn-text { + margin-top: 36px; + line-height: 24px; + min-width: 32px; +} +.l-btn-large .l-btn-icon-top .l-btn-icon { + margin: 0 0 0 -16px; +} +.l-btn-large .l-btn-icon-bottom .l-btn-text { + margin-bottom: 36px; + line-height: 24px; + min-width: 32px; +} +.l-btn-large .l-btn-icon-bottom .l-btn-icon { + margin: 0 0 0 -16px; +} +.l-btn-large .l-btn-left .l-btn-empty { + margin: 0 6px; + width: 32px; +} +.l-btn { + color: #fff; + background: #777; + background-repeat: repeat-x; + border: 1px solid #555; + background: -webkit-linear-gradient(top,#919191 0,#6a6a6a 100%); + background: -moz-linear-gradient(top,#919191 0,#6a6a6a 100%); + background: -o-linear-gradient(top,#919191 0,#6a6a6a 100%); + background: linear-gradient(to bottom,#919191 0,#6a6a6a 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#919191,endColorstr=#6a6a6a,GradientType=0); + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.l-btn:hover { + background: #777; + color: #fff; + border: 1px solid #555; + filter: none; +} +.l-btn-plain { + background: transparent; + border-width: 0; + filter: none; +} +.l-btn-outline { + border-width: 1px; + border-color: #555; + padding: 0; +} +.l-btn-plain:hover { + background: #777; + color: #fff; + border: 1px solid #555; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.l-btn-disabled, +.l-btn-disabled:hover { + opacity: 0.5; + cursor: default; + background: #777; + color: #fff; + background: -webkit-linear-gradient(top,#919191 0,#6a6a6a 100%); + background: -moz-linear-gradient(top,#919191 0,#6a6a6a 100%); + background: -o-linear-gradient(top,#919191 0,#6a6a6a 100%); + background: linear-gradient(to bottom,#919191 0,#6a6a6a 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#919191,endColorstr=#6a6a6a,GradientType=0); +} +.l-btn-disabled .l-btn-text, +.l-btn-disabled .l-btn-icon { + filter: alpha(opacity=50); +} +.l-btn-plain-disabled, +.l-btn-plain-disabled:hover { + background: transparent; + filter: alpha(opacity=50); +} +.l-btn-selected, +.l-btn-selected:hover { + background: #000; + filter: none; +} +.l-btn-plain-selected, +.l-btn-plain-selected:hover { + background: #000; +} +.textbox { + position: relative; + border: 1px solid #000; + background-color: #fff; + vertical-align: middle; + display: inline-block; + overflow: hidden; + white-space: nowrap; + margin: 0; + padding: 0; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.textbox .textbox-text { + font-size: 12px; + border: 0; + margin: 0; + padding: 0 4px; + white-space: normal; + vertical-align: top; + outline-style: none; + resize: none; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + height: 28px; + line-height: 28px; +} +.textbox textarea.textbox-text { + line-height: normal; +} +.textbox .textbox-text::-ms-clear, +.textbox .textbox-text::-ms-reveal { + display: none; +} +.textbox textarea.textbox-text { + white-space: pre-wrap; +} +.textbox .textbox-prompt { + font-size: 12px; + color: #aaa; +} +.textbox .textbox-bgicon { + background-position: 3px center; + padding-left: 21px; +} +.textbox .textbox-button, +.textbox .textbox-button:hover { + position: absolute; + top: 0; + padding: 0; + vertical-align: top; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.textbox .textbox-button-right, +.textbox .textbox-button-right:hover { + right: 0; + border-width: 0 0 0 1px; +} +.textbox .textbox-button-left, +.textbox .textbox-button-left:hover { + left: 0; + border-width: 0 1px 0 0; +} +.textbox .textbox-button-top, +.textbox .textbox-button-top:hover { + left: 0; + border-width: 0 0 1px 0; +} +.textbox .textbox-button-bottom, +.textbox .textbox-button-bottom:hover { + top: auto; + bottom: 0; + left: 0; + border-width: 1px 0 0 0; +} +.textbox-addon { + position: absolute; + top: 0; +} +.textbox-label { + display: inline-block; + width: 80px; + height: 30px; + line-height: 30px; + vertical-align: middle; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + margin: 0; + padding-right: 5px; +} +.textbox-label-after { + padding-left: 5px; + padding-right: 0; +} +.textbox-label-top { + display: block; + width: auto; + padding: 0; +} +.textbox-disabled, +.textbox-label-disabled { + opacity: 0.6; + filter: alpha(opacity=60); +} +.textbox-icon { + display: inline-block; + width: 18px; + height: 20px; + overflow: hidden; + vertical-align: top; + background-position: center center; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); + text-decoration: none; + outline-style: none; +} +.textbox-icon-disabled, +.textbox-icon-readonly { + cursor: default; +} +.textbox-icon:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.textbox-icon-disabled:hover { + opacity: 0.6; + filter: alpha(opacity=60); +} +.textbox-focused { + border-color: #000000; + -moz-box-shadow: 0 0 3px 0 #000; + -webkit-box-shadow: 0 0 3px 0 #000; + box-shadow: 0 0 3px 0 #000; +} +.textbox-invalid { + border-color: #ffa8a8; + background-color: #fff3f3; +} +.passwordbox-open { + background: url('images/passwordbox_open.png') no-repeat center center; +} +.passwordbox-close { + background: url('images/passwordbox_close.png') no-repeat center center; +} +.filebox .textbox-value { + vertical-align: top; + position: absolute; + top: 0; + left: -5000px; +} +.filebox-label { + display: inline-block; + position: absolute; + width: 100%; + height: 100%; + cursor: pointer; + left: 0; + top: 0; + z-index: 10; + background: url('images/blank.gif') no-repeat; +} +.l-btn-disabled .filebox-label { + cursor: default; +} +.combo-arrow { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.combo-arrow-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.combo-panel { + overflow: auto; +} +.combo-arrow { + background: url('images/combo_arrow.png') no-repeat center center; +} +.combo-panel { + background-color: #666; +} +.combo-arrow { + background-color: #3d3d3d; +} +.combo-arrow-hover { + background-color: #777; +} +.combo-arrow:hover { + background-color: #777; +} +.combo .textbox-icon-disabled:hover { + cursor: default; +} +.combobox-item, +.combobox-group, +.combobox-stick { + font-size: 12px; + padding: 6px 4px; + line-height: 20px; +} +.combobox-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.combobox-gitem { + padding-left: 10px; +} +.combobox-group, +.combobox-stick { + font-weight: bold; +} +.combobox-stick { + position: absolute; + top: 1px; + left: 1px; + right: 1px; + background: inherit; +} +.combobox-item-hover { + background-color: #777; + color: #fff; +} +.combobox-item-selected { + background-color: #990000; + color: #fff; +} +.combobox-icon { + display: inline-block; + width: 16px; + height: 16px; + vertical-align: middle; + margin-right: 2px; +} +.tagbox { + cursor: text; +} +.tagbox .textbox-text { + float: left; +} +.tagbox-label { + position: relative; + display: block; + margin: 4px 0 0 4px; + padding: 0 20px 0 4px; + float: left; + vertical-align: top; + text-decoration: none; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + background: #777; + color: #fff; +} +.tagbox-remove { + background: url('images/tagbox_icons.png') no-repeat -16px center; + position: absolute; + display: block; + width: 16px; + height: 16px; + right: 2px; + top: 50%; + margin-top: -8px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tagbox-remove:hover { + opacity: 1; + filter: alpha(opacity=100); +} +.textbox-disabled .tagbox-label { + cursor: default; +} +.textbox-disabled .tagbox-remove:hover { + cursor: default; + opacity: 0.6; + filter: alpha(opacity=60); +} +.layout { + position: relative; + overflow: hidden; + margin: 0; + padding: 0; + z-index: 0; +} +.layout-panel { + position: absolute; + overflow: hidden; +} +.layout-body { + min-width: 1px; + min-height: 1px; +} +.layout-panel-east, +.layout-panel-west { + z-index: 2; +} +.layout-panel-north, +.layout-panel-south { + z-index: 3; +} +.layout-expand { + position: absolute; + padding: 0px; + font-size: 1px; + cursor: pointer; + z-index: 1; +} +.layout-expand .panel-header, +.layout-expand .panel-body { + background: transparent; + filter: none; + overflow: hidden; +} +.layout-expand .panel-header { + border-bottom-width: 0px; +} +.layout-expand .panel-body { + position: relative; +} +.layout-expand .panel-body .panel-icon { + margin-top: 0; + top: 0; + left: 50%; + margin-left: -8px; +} +.layout-expand-west .panel-header .panel-icon, +.layout-expand-east .panel-header .panel-icon { + display: none; +} +.layout-expand-title { + position: absolute; + top: 0; + left: 21px; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(90deg); + -o-transform-origin: 0 0; + transform: rotate(90deg); + transform-origin: 0 0; +} +.layout-expand-title-up { + position: absolute; + top: 0; + left: 0; + text-align: right; + padding-left: 5px; + white-space: nowrap; + word-wrap: normal; + -webkit-transform: rotate(-90deg); + -webkit-transform-origin: 0 0; + -moz-transform: rotate(-90deg); + -moz-transform-origin: 0 0; + -o-transform: rotate(-90deg); + -o-transform-origin: 0 0; + transform: rotate(-90deg); + transform-origin: 0 0; +} +.layout-expand-with-icon { + top: 18px; +} +.layout-expand .panel-body-noheader .layout-expand-title, +.layout-expand .panel-body-noheader .panel-icon { + top: 5px; +} +.layout-expand .panel-body-noheader .layout-expand-with-icon { + top: 23px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + position: absolute; + font-size: 1px; + display: none; + z-index: 5; +} +.layout-split-proxy-h { + width: 5px; + cursor: e-resize; +} +.layout-split-proxy-v { + height: 5px; + cursor: n-resize; +} +.layout-mask { + position: absolute; + background: #fafafa; + filter: alpha(opacity=10); + opacity: 0.10; + z-index: 4; +} +.layout-button-up { + background: url('images/layout_arrows.png') no-repeat -16px -16px; +} +.layout-button-down { + background: url('images/layout_arrows.png') no-repeat -16px 0; +} +.layout-button-left { + background: url('images/layout_arrows.png') no-repeat 0 0; +} +.layout-button-right { + background: url('images/layout_arrows.png') no-repeat 0 -16px; +} +.layout-split-proxy-h, +.layout-split-proxy-v { + background-color: #cccccc; +} +.layout-split-north { + border-bottom: 5px solid #444; +} +.layout-split-south { + border-top: 5px solid #444; +} +.layout-split-east { + border-left: 5px solid #444; +} +.layout-split-west { + border-right: 5px solid #444; +} +.layout-expand { + background-color: #3d3d3d; +} +.layout-expand-over { + background-color: #3d3d3d; +} +.tabs-container { + overflow: hidden; +} +.tabs-header { + border-width: 1px; + border-style: solid; + border-bottom-width: 0; + position: relative; + padding: 0; + padding-top: 2px; + overflow: hidden; +} +.tabs-scroller-left, +.tabs-scroller-right { + position: absolute; + top: auto; + bottom: 0; + width: 18px; + font-size: 1px; + display: none; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.tabs-scroller-left { + left: 0; +} +.tabs-scroller-right { + right: 0; +} +.tabs-tool { + position: absolute; + bottom: 0; + padding: 1px; + overflow: hidden; + border-width: 1px; + border-style: solid; +} +.tabs-header-plain .tabs-tool { + padding: 0 1px; +} +.tabs-wrap { + position: relative; + left: 0; + overflow: hidden; + width: 100%; + margin: 0; + padding: 0; +} +.tabs-scrolling { + margin-left: 18px; + margin-right: 18px; +} +.tabs-disabled { + opacity: 0.3; + filter: alpha(opacity=30); +} +.tabs { + list-style-type: none; + height: 26px; + margin: 0px; + padding: 0px; + padding-left: 4px; + width: 50000px; + border-style: solid; + border-width: 0 0 1px 0; +} +.tabs li { + float: left; + display: inline-block; + margin: 0 4px -1px 0; + padding: 0; + position: relative; + border: 0; +} +.tabs li a.tabs-inner { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0 10px; + height: 25px; + line-height: 25px; + text-align: center; + white-space: nowrap; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 0 0; + -webkit-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; +} +.tabs li.tabs-selected a.tabs-inner { + font-weight: bold; + outline: none; +} +.tabs li.tabs-selected a:hover.tabs-inner { + cursor: default; + pointer: default; +} +.tabs li a.tabs-close, +.tabs-p-tool { + position: absolute; + font-size: 1px; + display: block; + height: 12px; + padding: 0; + top: 50%; + margin-top: -6px; + overflow: hidden; +} +.tabs li a.tabs-close { + width: 12px; + right: 5px; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs-p-tool { + right: 16px; +} +.tabs-p-tool a { + display: inline-block; + font-size: 1px; + width: 12px; + height: 12px; + margin: 0; + opacity: 0.6; + filter: alpha(opacity=60); +} +.tabs li a:hover.tabs-close, +.tabs-p-tool a:hover { + opacity: 1; + filter: alpha(opacity=100); + cursor: hand; + cursor: pointer; +} +.tabs-with-icon { + padding-left: 18px; +} +.tabs-icon { + position: absolute; + width: 16px; + height: 16px; + left: 10px; + top: 50%; + margin-top: -8px; +} +.tabs-title { + font-size: 12px; +} +.tabs-closable { + padding-right: 8px; +} +.tabs-panels { + margin: 0px; + padding: 0px; + border-width: 1px; + border-style: solid; + border-top-width: 0; + overflow: hidden; +} +.tabs-header-bottom { + border-width: 0 1px 1px 1px; + padding: 0 0 2px 0; +} +.tabs-header-bottom .tabs { + border-width: 1px 0 0 0; +} +.tabs-header-bottom .tabs li { + margin: -1px 4px 0 0; +} +.tabs-header-bottom .tabs li a.tabs-inner { + -moz-border-radius: 0 0 5px 5px; + -webkit-border-radius: 0 0 5px 5px; + border-radius: 0 0 5px 5px; +} +.tabs-header-bottom .tabs-tool { + top: 0; +} +.tabs-header-bottom .tabs-scroller-left, +.tabs-header-bottom .tabs-scroller-right { + top: 0; + bottom: auto; +} +.tabs-panels-top { + border-width: 1px 1px 0 1px; +} +.tabs-header-left { + float: left; + border-width: 1px 0 1px 1px; + padding: 0; +} +.tabs-header-right { + float: right; + border-width: 1px 1px 1px 0; + padding: 0; +} +.tabs-header-left .tabs-wrap, +.tabs-header-right .tabs-wrap { + height: 100%; +} +.tabs-header-left .tabs { + height: 100%; + padding: 4px 0 0 2px; + border-width: 0 1px 0 0; +} +.tabs-header-right .tabs { + height: 100%; + padding: 4px 2px 0 0; + border-width: 0 0 0 1px; +} +.tabs-header-left .tabs li, +.tabs-header-right .tabs li { + display: block; + width: 100%; + position: relative; +} +.tabs-header-left .tabs li { + left: auto; + right: 0; + margin: 0 -1px 4px 0; + float: right; +} +.tabs-header-right .tabs li { + left: 0; + right: auto; + margin: 0 0 4px -1px; + float: left; +} +.tabs-justified li a.tabs-inner { + padding-left: 0; + padding-right: 0; +} +.tabs-header-left .tabs li a.tabs-inner { + display: block; + text-align: left; + padding-left: 10px; + padding-right: 10px; + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.tabs-header-right .tabs li a.tabs-inner { + display: block; + text-align: left; + padding-left: 10px; + padding-right: 10px; + -moz-border-radius: 0 5px 5px 0; + -webkit-border-radius: 0 5px 5px 0; + border-radius: 0 5px 5px 0; +} +.tabs-panels-right { + float: right; + border-width: 1px 1px 1px 0; +} +.tabs-panels-left { + float: left; + border-width: 1px 0 1px 1px; +} +.tabs-header-noborder, +.tabs-panels-noborder { + border: 0px; +} +.tabs-header-plain { + border: 0px; + background: transparent; +} +.tabs-pill { + padding-bottom: 3px; +} +.tabs-header-bottom .tabs-pill { + padding-top: 3px; + padding-bottom: 0; +} +.tabs-header-left .tabs-pill { + padding-right: 3px; +} +.tabs-header-right .tabs-pill { + padding-left: 3px; +} +.tabs-header .tabs-pill li a.tabs-inner { + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.tabs-header-narrow, +.tabs-header-narrow .tabs-narrow { + padding: 0; +} +.tabs-narrow li, +.tabs-header-bottom .tabs-narrow li { + margin-left: 0; + margin-right: -1px; +} + +.tabs-narrow li.tabs-last, +.tabs-header-bottom .tabs-narrow li.tabs-last { + margin-right: 0; +} +.tabs-header-left .tabs-narrow, +.tabs-header-right .tabs-narrow { + padding-top: 0; +} +.tabs-header-left .tabs-narrow li { + margin-bottom: -1px; + margin-right: -1px; +} +.tabs-header-left .tabs-narrow li.tabs-last, +.tabs-header-right .tabs-narrow li.tabs-last { + margin-bottom: 0; +} +.tabs-header-right .tabs-narrow li { + margin-bottom: -1px; + margin-left: -1px; +} +.tabs-scroller-left { + background: #3d3d3d url('images/tabs_icons.png') no-repeat 1px center; +} +.tabs-scroller-right { + background: #3d3d3d url('images/tabs_icons.png') no-repeat -15px center; +} +.tabs li a.tabs-close { + background: url('images/tabs_icons.png') no-repeat -34px center; +} +.tabs li a.tabs-inner:hover { + background: #777; + color: #fff; + filter: none; +} +.tabs li.tabs-selected a.tabs-inner { + background-color: #666; + color: #fff; + background: -webkit-linear-gradient(top,#454545 0,#666 100%); + background: -moz-linear-gradient(top,#454545 0,#666 100%); + background: -o-linear-gradient(top,#454545 0,#666 100%); + background: linear-gradient(to bottom,#454545 0,#666 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#454545,endColorstr=#666,GradientType=0); +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(top,#666 0,#454545 100%); + background: -moz-linear-gradient(top,#666 0,#454545 100%); + background: -o-linear-gradient(top,#666 0,#454545 100%); + background: linear-gradient(to bottom,#666 0,#454545 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#666,endColorstr=#454545,GradientType=0); +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(left,#454545 0,#666 100%); + background: -moz-linear-gradient(left,#454545 0,#666 100%); + background: -o-linear-gradient(left,#454545 0,#666 100%); + background: linear-gradient(to right,#454545 0,#666 100%); + background-repeat: repeat-y; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#454545,endColorstr=#666,GradientType=1); +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + background: -webkit-linear-gradient(left,#666 0,#454545 100%); + background: -moz-linear-gradient(left,#666 0,#454545 100%); + background: -o-linear-gradient(left,#666 0,#454545 100%); + background: linear-gradient(to right,#666 0,#454545 100%); + background-repeat: repeat-y; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#666,endColorstr=#454545,GradientType=1); +} +.tabs li a.tabs-inner { + color: #fff; + background-color: #3d3d3d; + background: -webkit-linear-gradient(top,#454545 0,#383838 100%); + background: -moz-linear-gradient(top,#454545 0,#383838 100%); + background: -o-linear-gradient(top,#454545 0,#383838 100%); + background: linear-gradient(to bottom,#454545 0,#383838 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#454545,endColorstr=#383838,GradientType=0); +} +.tabs-header, +.tabs-tool { + background-color: #3d3d3d; +} +.tabs-header-plain { + background: transparent; +} +.tabs-header, +.tabs-scroller-left, +.tabs-scroller-right, +.tabs-tool, +.tabs, +.tabs-panels, +.tabs li a.tabs-inner, +.tabs li.tabs-selected a.tabs-inner, +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner, +.tabs-header-left .tabs li.tabs-selected a.tabs-inner, +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-color: #000; +} +.tabs-p-tool a:hover, +.tabs li a:hover.tabs-close, +.tabs-scroller-over { + background-color: #777; +} +.tabs li.tabs-selected a.tabs-inner { + border-bottom: 1px solid #666; +} +.tabs-header-bottom .tabs li.tabs-selected a.tabs-inner { + border-top: 1px solid #666; +} +.tabs-header-left .tabs li.tabs-selected a.tabs-inner { + border-right: 1px solid #666; +} +.tabs-header-right .tabs li.tabs-selected a.tabs-inner { + border-left: 1px solid #666; +} +.tabs-header .tabs-pill li.tabs-selected a.tabs-inner { + background: #990000; + color: #fff; + filter: none; + border-color: #000; +} +.datagrid .panel-body { + overflow: hidden; + position: relative; +} +.datagrid-view { + position: relative; + overflow: hidden; +} +.datagrid-view1, +.datagrid-view2 { + position: absolute; + overflow: hidden; + top: 0; +} +.datagrid-view1 { + left: 0; +} +.datagrid-view2 { + right: 0; +} +.datagrid-mask { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: 0.3; + filter: alpha(opacity=30); + display: none; +} +.datagrid-mask-msg { + position: absolute; + top: 50%; + margin-top: -20px; + padding: 10px 5px 10px 30px; + width: auto; + height: 16px; + border-width: 2px; + border-style: solid; + display: none; +} +.datagrid-empty { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 25px; + line-height: 25px; + text-align: center; +} +.datagrid-sort-icon { + padding: 0; + display: none; +} +.datagrid-toolbar { + height: auto; + padding: 1px 2px; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #444; + border-right: 1px solid #777; + margin: 2px 1px; +} +.datagrid .datagrid-pager { + display: block; + margin: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.datagrid .datagrid-pager-top { + border-width: 0 0 1px 0; +} +.datagrid-header { + overflow: hidden; + cursor: default; + border-width: 0 0 1px 0; + border-style: solid; +} +.datagrid-header-inner { + float: left; + width: 10000px; +} +.datagrid-header-row, +.datagrid-row { + height: 32px; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-width: 0 1px 1px 0; + border-style: dotted; + margin: 0; + padding: 0; +} +.datagrid-cell, +.datagrid-cell-group, +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + margin: 0; + padding: 0 4px; + white-space: nowrap; + word-wrap: normal; + overflow: hidden; + height: 18px; + line-height: 18px; + font-size: 12px; +} +.datagrid-header .datagrid-cell { + height: auto; +} +.datagrid-header .datagrid-cell span { + font-size: 12px; +} +.datagrid-cell-group { + text-align: center; + text-overflow: ellipsis; +} +.datagrid-header-rownumber, +.datagrid-cell-rownumber { + width: 30px; + text-align: center; + margin: 0; + padding: 0; +} +.datagrid-body { + margin: 0; + padding: 0; + overflow: auto; + zoom: 1; +} +.datagrid-view1 .datagrid-body-inner { + padding-bottom: 20px; +} +.datagrid-view1 .datagrid-body { + overflow: hidden; +} +.datagrid-footer { + overflow: hidden; +} +.datagrid-footer-inner { + border-width: 1px 0 0 0; + border-style: solid; + width: 10000px; + float: left; +} +.datagrid-row-editing .datagrid-cell { + height: auto; +} +.datagrid-header-check, +.datagrid-cell-check { + padding: 0; + width: 27px; + height: 18px; + font-size: 1px; + text-align: center; + overflow: hidden; +} +.datagrid-header-check input, +.datagrid-cell-check input { + margin: 0; + padding: 0; + width: 15px; + height: 18px; +} +.datagrid-resize-proxy { + position: absolute; + width: 1px; + height: 10000px; + top: 0; + cursor: e-resize; + display: none; +} +.datagrid-body .datagrid-editable { + margin: 0; + padding: 0; +} +.datagrid-body .datagrid-editable table { + width: 100%; + height: 100%; +} +.datagrid-body .datagrid-editable td { + border: 0; + margin: 0; + padding: 0; +} +.datagrid-view .datagrid-editable-input { + margin: 0; + padding: 2px 4px; + border: 1px solid #000; + font-size: 12px; + outline-style: none; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.datagrid-view .validatebox-invalid { + border-color: #ffa8a8; +} +.datagrid-sort .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -64px center; +} +.datagrid-sort-desc .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat -16px center; +} +.datagrid-sort-asc .datagrid-sort-icon { + display: inline; + padding: 0 13px 0 0; + background: url('images/datagrid_icons.png') no-repeat 0px center; +} +.datagrid-row-collapse { + background: url('images/datagrid_icons.png') no-repeat -48px center; +} +.datagrid-row-expand { + background: url('images/datagrid_icons.png') no-repeat -32px center; +} +.datagrid-mask-msg { + background: #666 url('images/loading.gif') no-repeat scroll 5px center; +} +.datagrid-header, +.datagrid-td-rownumber { + background-color: #444; + background: -webkit-linear-gradient(top,#4c4c4c 0,#3f3f3f 100%); + background: -moz-linear-gradient(top,#4c4c4c 0,#3f3f3f 100%); + background: -o-linear-gradient(top,#4c4c4c 0,#3f3f3f 100%); + background: linear-gradient(to bottom,#4c4c4c 0,#3f3f3f 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#4c4c4c,endColorstr=#3f3f3f,GradientType=0); +} +.datagrid-cell-rownumber { + color: #fff; +} +.datagrid-resize-proxy { + background: #cccccc; +} +.datagrid-mask { + background: #000; +} +.datagrid-mask-msg { + border-color: #000; +} +.datagrid-toolbar, +.datagrid-pager { + background: #555; +} +.datagrid-header, +.datagrid-toolbar, +.datagrid-pager, +.datagrid-footer-inner { + border-color: #222; +} +.datagrid-header td, +.datagrid-body td, +.datagrid-footer td { + border-color: #222; +} +.datagrid-htable, +.datagrid-btable, +.datagrid-ftable { + color: #fff; + border-collapse: separate; +} +.datagrid-row-alt { + background: #555; +} +.datagrid-row-over, +.datagrid-header td.datagrid-header-over { + background: #777; + color: #fff; + cursor: default; +} +.datagrid-row-selected { + background: #990000; + color: #fff; +} +.datagrid-row-editing .textbox, +.datagrid-row-editing .textbox-text { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.datagrid-header .datagrid-filter-row td.datagrid-header-over { + background: inherit; +} +.propertygrid .datagrid-view1 .datagrid-body td { + padding-bottom: 1px; + border-width: 0 1px 0 0; +} +.propertygrid .datagrid-group { + overflow: hidden; + border-width: 0 0 1px 0; + border-style: solid; +} +.propertygrid .datagrid-group span { + font-weight: bold; +} +.propertygrid .datagrid-view1 .datagrid-body td { + border-color: #222; +} +.propertygrid .datagrid-view1 .datagrid-group { + border-color: #3d3d3d; +} +.propertygrid .datagrid-view2 .datagrid-group { + border-color: #222; +} +.propertygrid .datagrid-group, +.propertygrid .datagrid-view1 .datagrid-body, +.propertygrid .datagrid-view1 .datagrid-row-over, +.propertygrid .datagrid-view1 .datagrid-row-selected { + background: #3d3d3d; +} +.datalist .datagrid-header { + border-width: 0; +} +.datalist .datagrid-group, +.m-list .m-list-group { + height: 25px; + line-height: 25px; + font-weight: bold; + overflow: hidden; + background-color: #444; + border-style: solid; + border-width: 0 0 1px 0; + border-color: #222; +} +.datalist .datagrid-group-expander { + display: none; +} +.datalist .datagrid-group-title { + padding: 0 4px; +} +.datalist .datagrid-btable { + width: 100%; + table-layout: fixed; +} +.datalist .datagrid-row td { + border-style: solid; + border-left-color: transparent; + border-right-color: transparent; + border-bottom-width: 0; +} +.datalist-lines .datagrid-row td { + border-bottom-width: 1px; +} +.datalist .datagrid-cell, +.m-list li { + width: auto; + height: auto; + padding: 2px 4px; + line-height: 18px; + position: relative; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +.datalist-link, +.m-list li>a { + display: block; + position: relative; + cursor: pointer; + color: #fff; + text-decoration: none; + overflow: hidden; + margin: -2px -4px; + padding: 2px 4px; + padding-right: 16px; + line-height: 18px; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; +} +.datalist-link::after, +.m-list li>a::after { + position: absolute; + display: block; + width: 8px; + height: 8px; + content: ''; + right: 6px; + top: 50%; + margin-top: -4px; + border-style: solid; + border-width: 1px 1px 0 0; + -ms-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -webkit-transform: rotate(45deg); + -o-transform: rotate(45deg); + transform: rotate(45deg); +} +.m-list { + margin: 0; + padding: 0; + list-style: none; +} +.m-list li { + border-style: solid; + border-width: 0 0 1px 0; + border-color: #222; +} +.m-list li>a:hover { + background: #777; + color: #fff; +} +.m-list .m-list-group { + padding: 0 4px; +} +.pagination { + zoom: 1; + padding: 2px; +} +.pagination table { + float: left; + height: 30px; +} +.pagination td { + border: 0; +} +.pagination-btn-separator { + float: left; + height: 24px; + border-left: 1px solid #444; + border-right: 1px solid #777; + margin: 3px 1px; +} +.pagination .pagination-num { + border-width: 1px; + border-style: solid; + margin: 0 2px; + padding: 2px; + width: 3em; + height: auto; + text-align: center; + font-size: 12px; +} +.pagination-page-list { + margin: 0px 6px; + padding: 1px 2px; + width: auto; + height: auto; + border-width: 1px; + border-style: solid; +} +.pagination-info { + float: right; + margin: 0 6px; + padding: 0; + height: 30px; + line-height: 30px; + font-size: 12px; +} +.pagination span { + font-size: 12px; +} +.pagination-link .l-btn-text { + box-sizing: border-box; + text-align: center; + margin: 0; + padding: 0 .5em; + width: auto; + min-width: 28px; +} +.pagination-first { + background: url('images/pagination_icons.png') no-repeat 0 center; +} +.pagination-prev { + background: url('images/pagination_icons.png') no-repeat -16px center; +} +.pagination-next { + background: url('images/pagination_icons.png') no-repeat -32px center; +} +.pagination-last { + background: url('images/pagination_icons.png') no-repeat -48px center; +} +.pagination-load { + background: url('images/pagination_icons.png') no-repeat -64px center; +} +.pagination-loading { + background: url('images/loading.gif') no-repeat center center; +} +.pagination-page-list, +.pagination .pagination-num { + border-color: #000; +} +.calendar { + border-width: 1px; + border-style: solid; + padding: 1px; + overflow: hidden; +} +.calendar table { + table-layout: fixed; + border-collapse: separate; + font-size: 12px; + width: 100%; + height: 100%; +} +.calendar table td, +.calendar table th { + font-size: 12px; +} +.calendar-noborder { + border: 0; +} +.calendar-header { + position: relative; + height: 28px; +} +.calendar-title { + text-align: center; + height: 28px; +} +.calendar-title span { + position: relative; + display: inline-block; + top: 0px; + padding: 0 3px; + height: 28px; + line-height: 28px; + font-size: 12px; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-prevmonth, +.calendar-nextmonth, +.calendar-prevyear, +.calendar-nextyear { + position: absolute; + top: 50%; + margin-top: -8px; + width: 16px; + height: 16px; + cursor: pointer; + font-size: 1px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-prevmonth { + left: 20px; + background: url('images/calendar_arrows.png') no-repeat -16px 0; +} +.calendar-nextmonth { + right: 20px; + background: url('images/calendar_arrows.png') no-repeat -32px 0; +} +.calendar-prevyear { + left: 3px; + background: url('images/calendar_arrows.png') no-repeat 0px 0; +} +.calendar-nextyear { + right: 3px; + background: url('images/calendar_arrows.png') no-repeat -48px 0; +} +.calendar-body { + position: relative; +} +.calendar-body th, +.calendar-body td { + text-align: center; +} +.calendar-day { + border: 0; + padding: 1px; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-other-month { + opacity: 0.3; + filter: alpha(opacity=30); +} +.calendar-disabled { + opacity: 0.6; + filter: alpha(opacity=60); + cursor: default; +} +.calendar-menu { + position: absolute; + top: 0; + left: 0; + width: 180px; + height: 150px; + padding: 5px; + font-size: 12px; + display: none; + overflow: hidden; +} +.calendar-menu-year-inner { + text-align: center; + padding-bottom: 5px; +} +.calendar-menu-year { + width: 80px; + line-height: 26px; + text-align: center; + border-width: 1px; + border-style: solid; + outline-style: none; + resize: none; + margin: 0; + padding: 0; + font-weight: bold; + font-size: 12px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-menu-prev, +.calendar-menu-next { + display: inline-block; + width: 25px; + height: 28px; + vertical-align: top; + cursor: pointer; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-menu-prev { + margin-right: 10px; + background: url('images/calendar_arrows.png') no-repeat 5px center; +} +.calendar-menu-next { + margin-left: 10px; + background: url('images/calendar_arrows.png') no-repeat -44px center; +} +.calendar-menu-month { + text-align: center; + cursor: pointer; + font-weight: bold; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.calendar-body th, +.calendar-menu-month { + color: #ffffff; +} +.calendar-day { + color: #fff; +} +.calendar-sunday { + color: #CC2222; +} +.calendar-saturday { + color: #00ee00; +} +.calendar-today { + color: #0000ff; +} +.calendar-menu-year { + border-color: #000; +} +.calendar { + border-color: #000; +} +.calendar-header { + background: #3d3d3d; +} +.calendar-body, +.calendar-menu { + background: #666; +} +.calendar-body th { + background: #555; + padding: 4px 0; +} +.calendar-hover, +.calendar-nav-hover, +.calendar-menu-hover { + background-color: #777; + color: #fff; +} +.calendar-hover { + border: 1px solid #555; + padding: 0; +} +.calendar-selected { + background-color: #990000; + color: #fff; + border: 1px solid #AA0000; + padding: 0; +} +.datebox-calendar-inner { + height: 250px; +} +.datebox-button { + padding: 4px 0; + text-align: center; +} +.datebox-button a { + line-height: 22px; + font-size: 12px; + font-weight: bold; + text-decoration: none; + opacity: 0.6; + filter: alpha(opacity=60); +} +.datebox-button a:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.datebox-current, +.datebox-close { + float: left; +} +.datebox-close { + float: right; +} +.datebox .combo-arrow { + background-image: url('images/datebox_arrow.png'); + background-position: center center; +} +.datebox-button { + background-color: #555; +} +.datebox-button a { + color: #fff; +} +.spinner-arrow { + display: inline-block; + overflow: hidden; + vertical-align: top; + margin: 0; + padding: 0; + opacity: 1.0; + filter: alpha(opacity=100); + width: 18px; +} +.spinner-arrow.spinner-button-top, +.spinner-arrow.spinner-button-bottom, +.spinner-arrow.spinner-button-left, +.spinner-arrow.spinner-button-right { + background-color: #3d3d3d; +} +.spinner-arrow-up, +.spinner-arrow-down { + opacity: 0.6; + filter: alpha(opacity=60); + display: block; + font-size: 1px; + width: 18px; + height: 10px; + width: 100%; + height: 50%; + color: #fff; + outline-style: none; + background-color: #3d3d3d; +} +.spinner-button-updown { + opacity: 1.0; +} +.spinner-button-updown .spinner-button-top, +.spinner-button-updown .spinner-button-bottom { + position: relative; + display: block; + width: 100%; + height: 50%; +} +.spinner-button-updown .spinner-arrow-up, +.spinner-button-updown .spinner-arrow-down { + opacity: 1.0; + filter: alpha(opacity=100); + cursor: pointer; + width: 16px; + height: 16px; + top: 50%; + left: 50%; + margin-top: -8px; + margin-left: -8px; + position: absolute; +} +.spinner-button-updown .spinner-button-top, +.spinner-button-updown .spinner-button-bottom { + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.spinner-button-updown .spinner-button-top:hover, +.spinner-button-updown .spinner-button-bottom:hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-button-updown .spinner-arrow-up, +.spinner-button-updown .spinner-arrow-down, +.spinner-button-updown .spinner-arrow-up:hover, +.spinner-button-updown .spinner-arrow-down:hover { + background-color: transparent; +} +.spinner-arrow-hover { + background-color: #777; + opacity: 1.0; + filter: alpha(opacity=100); +} +.spinner-button-top:hover, +.spinner-button-bottom:hover, +.spinner-button-left:hover, +.spinner-button-right:hover, +.spinner-arrow-up:hover, +.spinner-arrow-down:hover { + opacity: 1.0; + filter: alpha(opacity=100); + background-color: #777; +} +.textbox-disabled .spinner-button-top:hover, +.textbox-disabled .spinner-button-bottom:hover, +.textbox-disabled .spinner-button-left:hover, +.textbox-disabled .spinner-button-right:hover, +.textbox-icon-disabled .spinner-arrow-up:hover, +.textbox-icon-disabled .spinner-arrow-down:hover { + opacity: 0.6; + filter: alpha(opacity=60); + background-color: #3d3d3d; + cursor: default; +} +.spinner .textbox-icon-disabled { + opacity: 0.6; + filter: alpha(opacity=60); +} +.spinner-arrow-up { + background: url('images/spinner_arrows.png') no-repeat 1px center; + background-color: #3d3d3d; +} +.spinner-arrow-down { + background: url('images/spinner_arrows.png') no-repeat -15px center; + background-color: #3d3d3d; +} +.spinner-button-up { + background: url('images/spinner_arrows.png') no-repeat -32px center; +} +.spinner-button-down { + background: url('images/spinner_arrows.png') no-repeat -48px center; +} +.progressbar { + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + overflow: hidden; + position: relative; +} +.progressbar-text { + text-align: center; + position: absolute; +} +.progressbar-value { + position: relative; + overflow: hidden; + width: 0; + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.progressbar { + border-color: #000; +} +.progressbar-text { + color: #fff; + font-size: 12px; +} +.progressbar-value, +.progressbar-value .progressbar-text { + background-color: #990000; + color: #fff; +} +.searchbox-button { + width: 18px; + height: 20px; + overflow: hidden; + display: inline-block; + vertical-align: top; + cursor: pointer; + opacity: 0.6; + filter: alpha(opacity=60); +} +.searchbox-button-hover { + opacity: 1.0; + filter: alpha(opacity=100); +} +.searchbox .l-btn-plain { + border: 0; + padding: 0; + vertical-align: top; + opacity: 0.6; + filter: alpha(opacity=60); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .l-btn-plain:hover { + border: 0; + padding: 0; + opacity: 1.0; + filter: alpha(opacity=100); + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox a.m-btn-plain-active { + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .m-btn-active { + border-width: 0 1px 0 0; + -moz-border-radius: 0 0 0 0; + -webkit-border-radius: 0 0 0 0; + border-radius: 0 0 0 0; +} +.searchbox .textbox-button-right { + border-width: 0 0 0 1px; +} +.searchbox .textbox-button-left { + border-width: 0 1px 0 0; +} +.searchbox-button { + background: url('images/searchbox_button.png') no-repeat center center; +} +.searchbox .l-btn-plain { + background: #3d3d3d; +} +.searchbox .l-btn-plain-disabled, +.searchbox .l-btn-plain-disabled:hover { + opacity: 0.5; + filter: alpha(opacity=50); +} +.slider-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.slider-h { + height: 22px; +} +.slider-v { + width: 22px; +} +.slider-inner { + position: relative; + height: 6px; + top: 7px; + border-width: 1px; + border-style: solid; + border-radius: 5px; +} +.slider-handle { + position: absolute; + display: block; + outline: none; + width: 20px; + height: 20px; + top: 50%; + margin-top: -10px; + margin-left: -10px; +} +.slider-tip { + position: absolute; + display: inline-block; + line-height: 12px; + font-size: 12px; + white-space: nowrap; + top: -22px; +} +.slider-rule { + position: relative; + top: 15px; +} +.slider-rule span { + position: absolute; + display: inline-block; + font-size: 0; + height: 5px; + border-width: 0 0 0 1px; + border-style: solid; +} +.slider-rulelabel { + position: relative; + top: 20px; +} +.slider-rulelabel span { + position: absolute; + display: inline-block; + font-size: 12px; +} +.slider-v .slider-inner { + width: 6px; + left: 7px; + top: 0; + float: left; +} +.slider-v .slider-handle { + left: 50%; + margin-top: -10px; +} +.slider-v .slider-tip { + left: -10px; + margin-top: -6px; +} +.slider-v .slider-rule { + float: left; + top: 0; + left: 16px; +} +.slider-v .slider-rule span { + width: 5px; + height: 'auto'; + border-left: 0; + border-width: 1px 0 0 0; + border-style: solid; +} +.slider-v .slider-rulelabel { + float: left; + top: 0; + left: 23px; +} +.slider-handle { + background: url('images/slider_handle.png') no-repeat; +} +.slider-inner { + border-color: #000; + background: #3d3d3d; +} +.slider-rule span { + border-color: #000; +} +.slider-rulelabel span { + color: #fff; +} +.menu { + position: absolute; + margin: 0; + padding: 2px; + border-width: 1px; + border-style: solid; + overflow: hidden; +} +.menu-inline { + position: relative; +} +.menu-item { + position: relative; + margin: 0; + padding: 0; + overflow: hidden; + white-space: nowrap; + cursor: pointer; + border-width: 1px; + border-style: solid; +} +.menu-text { + height: 20px; + line-height: 20px; + float: left; + padding-left: 28px; +} +.menu-icon { + position: absolute; + width: 16px; + height: 16px; + left: 2px; + top: 50%; + margin-top: -8px; +} +.menu-rightarrow { + position: absolute; + width: 16px; + height: 16px; + right: 0; + top: 50%; + margin-top: -8px; +} +.menu-line { + position: absolute; + left: 26px; + top: 0; + height: 2000px; + font-size: 1px; +} +.menu-sep { + margin: 3px 0px 3px 25px; + font-size: 1px; +} +.menu-noline .menu-line { + display: none; +} +.menu-noline .menu-sep { + margin-left: 0; + margin-right: 0; +} +.menu-active { + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.menu-item-disabled { + opacity: 0.5; + filter: alpha(opacity=50); + cursor: default; +} +.menu-text, +.menu-text span { + font-size: 12px; +} +.menu-shadow { + position: absolute; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; + background: #777; + -moz-box-shadow: 2px 2px 3px #787878; + -webkit-box-shadow: 2px 2px 3px #787878; + box-shadow: 2px 2px 3px #787878; + filter: progid:DXImageTransform.Microsoft.Blur(pixelRadius=2,MakeShadow=false,ShadowOpacity=0.2); +} +.menu-rightarrow { + background: url('images/menu_arrows.png') no-repeat -32px center; +} +.menu-line { + border-left: 1px solid #444; + border-right: 1px solid #777; +} +.menu-sep { + border-top: 1px solid #444; + border-bottom: 1px solid #777; +} +.menu { + background-color: #666; + border-color: #444; + color: #fff; +} +.menu-content { + background: #666; +} +.menu-item { + border-color: transparent; + _border-color: #666; +} +.menu-active { + border-color: #555; + color: #fff; + background: #777; +} +.menu-active-disabled { + border-color: transparent; + background: transparent; + color: #fff; +} +.m-btn-downarrow, +.s-btn-downarrow { + display: inline-block; + position: absolute; + width: 16px; + height: 16px; + font-size: 1px; + right: 0; + top: 50%; + margin-top: -8px; +} +.m-btn-active, +.s-btn-active { + background: #777; + color: #fff; + border: 1px solid #555; + filter: none; +} +.m-btn-plain-active, +.s-btn-plain-active { + background: transparent; + padding: 0; + border-width: 1px; + border-style: solid; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.m-btn .l-btn-left .l-btn-text { + margin-right: 20px; +} +.m-btn .l-btn-icon-right .l-btn-text { + margin-right: 40px; +} +.m-btn .l-btn-icon-right .l-btn-icon { + right: 20px; +} +.m-btn .l-btn-icon-top .l-btn-text { + margin-right: 4px; + margin-bottom: 14px; +} +.m-btn .l-btn-icon-bottom .l-btn-text { + margin-right: 4px; + margin-bottom: 34px; +} +.m-btn .l-btn-icon-bottom .l-btn-icon { + top: auto; + bottom: 20px; +} +.m-btn .l-btn-icon-top .m-btn-downarrow, +.m-btn .l-btn-icon-bottom .m-btn-downarrow { + top: auto; + bottom: 0px; + left: 50%; + margin-left: -8px; +} +.m-btn-line { + display: inline-block; + position: absolute; + font-size: 1px; + display: none; +} +.m-btn .l-btn-left .m-btn-line { + right: 0; + width: 16px; + height: 500px; + border-style: solid; + border-color: #cccccc; + border-width: 0 0 0 1px; +} +.m-btn .l-btn-icon-top .m-btn-line, +.m-btn .l-btn-icon-bottom .m-btn-line { + left: 0; + bottom: 0; + width: 500px; + height: 16px; + border-width: 1px 0 0 0; +} +.m-btn-large .l-btn-icon-right .l-btn-text { + margin-right: 56px; +} +.m-btn-large .l-btn-icon-bottom .l-btn-text { + margin-bottom: 50px; +} +.m-btn-downarrow, +.s-btn-downarrow { + background: url('images/menu_arrows.png') no-repeat 0 center; +} +.m-btn-plain-active, +.s-btn-plain-active { + border-color: #555; + background-color: #777; + color: #fff; +} +.s-btn:hover .m-btn-line, +.s-btn-active .m-btn-line, +.s-btn-plain-active .m-btn-line { + display: inline-block; +} +.l-btn:hover .s-btn-downarrow, +.s-btn-active .s-btn-downarrow, +.s-btn-plain-active .s-btn-downarrow { + border-style: solid; + border-color: #cccccc; + border-width: 0 0 0 1px; +} +.switchbutton { + text-decoration: none; + display: inline-block; + overflow: hidden; + vertical-align: middle; + margin: 0; + padding: 0; + cursor: pointer; + background: #555; + border: 1px solid #555; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.switchbutton-inner { + display: inline-block; + overflow: hidden; + position: relative; + top: -1px; + left: -1px; +} +.switchbutton-on, +.switchbutton-off, +.switchbutton-handle { + display: inline-block; + text-align: center; + height: 100%; + float: left; + font-size: 12px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.switchbutton-on { + background: #990000; + color: #fff; +} +.switchbutton-off { + background-color: #666; + color: #fff; +} +.switchbutton-on, +.switchbutton-reversed .switchbutton-off { + -moz-border-radius: 5px 0 0 5px; + -webkit-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; +} +.switchbutton-off, +.switchbutton-reversed .switchbutton-on { + -moz-border-radius: 0 5px 5px 0; + -webkit-border-radius: 0 5px 5px 0; + border-radius: 0 5px 5px 0; +} +.switchbutton-handle { + position: absolute; + top: 0; + left: 50%; + background-color: #666; + color: #fff; + border: 1px solid #555; + -moz-box-shadow: 0 0 3px 0 #555; + -webkit-box-shadow: 0 0 3px 0 #555; + box-shadow: 0 0 3px 0 #555; +} +.switchbutton-value { + position: absolute; + top: 0; + left: -5000px; +} +.switchbutton-disabled { + opacity: 0.5; + filter: alpha(opacity=50); +} +.switchbutton-disabled, +.switchbutton-readonly { + cursor: default; +} +.messager-body { + padding: 10px 10px 30px 10px; + overflow: auto; +} +.messager-button { + text-align: center; + padding: 5px; +} +.messager-button .l-btn { + width: 70px; +} +.messager-icon { + float: left; + width: 32px; + height: 32px; + margin: 0 10px 10px 0; +} +.messager-error { + background: url('images/messager_icons.png') no-repeat scroll -64px 0; +} +.messager-info { + background: url('images/messager_icons.png') no-repeat scroll 0 0; +} +.messager-question { + background: url('images/messager_icons.png') no-repeat scroll -32px 0; +} +.messager-warning { + background: url('images/messager_icons.png') no-repeat scroll -96px 0; +} +.messager-progress { + padding: 10px; +} +.messager-p-msg { + margin-bottom: 5px; +} +.messager-body .messager-input { + width: 100%; + padding: 4px 0; + outline-style: none; + border: 1px solid #000; +} +.window-thinborder .messager-button { + padding-bottom: 8px; +} +.tree { + margin: 0; + padding: 0; + list-style-type: none; +} +.tree li { + white-space: nowrap; +} +.tree li ul { + list-style-type: none; + margin: 0; + padding: 0; +} +.tree-node { + height: 26px; + white-space: nowrap; + cursor: pointer; +} +.tree-hit { + cursor: pointer; +} +.tree-expanded, +.tree-collapsed, +.tree-folder, +.tree-file, +.tree-checkbox, +.tree-indent { + display: inline-block; + width: 16px; + height: 18px; + margin: 4px 0; + vertical-align: middle; + overflow: hidden; +} +.tree-expanded { + background: url('images/tree_icons.png') no-repeat -18px 0px; +} +.tree-expanded-hover { + background: url('images/tree_icons.png') no-repeat -50px 0px; +} +.tree-collapsed { + background: url('images/tree_icons.png') no-repeat 0px 0px; +} +.tree-collapsed-hover { + background: url('images/tree_icons.png') no-repeat -32px 0px; +} +.tree-lines .tree-expanded, +.tree-lines .tree-root-first .tree-expanded { + background: url('images/tree_icons.png') no-repeat -144px 0; +} +.tree-lines .tree-collapsed, +.tree-lines .tree-root-first .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -128px 0; +} +.tree-lines .tree-node-last .tree-expanded, +.tree-lines .tree-root-one .tree-expanded { + background: url('images/tree_icons.png') no-repeat -80px 0; +} +.tree-lines .tree-node-last .tree-collapsed, +.tree-lines .tree-root-one .tree-collapsed { + background: url('images/tree_icons.png') no-repeat -64px 0; +} +.tree-line { + background: url('images/tree_icons.png') no-repeat -176px 0; +} +.tree-join { + background: url('images/tree_icons.png') no-repeat -192px 0; +} +.tree-joinbottom { + background: url('images/tree_icons.png') no-repeat -160px 0; +} +.tree-folder { + background: url('images/tree_icons.png') no-repeat -208px 0; +} +.tree-folder-open { + background: url('images/tree_icons.png') no-repeat -224px 0; +} +.tree-file { + background: url('images/tree_icons.png') no-repeat -240px 0; +} +.tree-loading { + background: url('images/loading.gif') no-repeat center center; +} +.tree-checkbox0 { + background: url('images/tree_icons.png') no-repeat -208px -18px; +} +.tree-checkbox1 { + background: url('images/tree_icons.png') no-repeat -224px -18px; +} +.tree-checkbox2 { + background: url('images/tree_icons.png') no-repeat -240px -18px; +} +.tree-title { + font-size: 12px; + display: inline-block; + text-decoration: none; + vertical-align: middle; + white-space: nowrap; + padding: 0 2px; + margin: 4px 0; + height: 18px; + line-height: 18px; +} +.tree-node-proxy { + font-size: 12px; + line-height: 20px; + padding: 0 2px 0 20px; + border-width: 1px; + border-style: solid; + z-index: 9900000; +} +.tree-dnd-icon { + display: inline-block; + position: absolute; + width: 16px; + height: 18px; + left: 2px; + top: 50%; + margin-top: -9px; +} +.tree-dnd-yes { + background: url('images/tree_icons.png') no-repeat -256px 0; +} +.tree-dnd-no { + background: url('images/tree_icons.png') no-repeat -256px -18px; +} +.tree-node-top { + border-top: 1px dotted red; +} +.tree-node-bottom { + border-bottom: 1px dotted red; +} +.tree-node-append .tree-title { + border: 1px dotted red; +} +.tree-editor { + border: 1px solid #000; + font-size: 12px; + height: 26px; + line-height: 26px; + padding: 0 4px; + margin: 0; + width: 80px; + outline-style: none; + vertical-align: middle; + position: absolute; + top: 0; +} +.tree-node-proxy { + background-color: #666; + color: #fff; + border-color: #000; +} +.tree-node-hover { + background: #777; + color: #fff; +} +.tree-node-selected { + background: #990000; + color: #fff; +} +.tree-node-hidden { + display: none; +} +.validatebox-invalid { + border-color: #ffa8a8; + background-color: #fff3f3; + color: #000; +} +.tooltip { + position: absolute; + display: none; + z-index: 9900000; + outline: none; + opacity: 1; + filter: alpha(opacity=100); + padding: 5px; + border-width: 1px; + border-style: solid; + border-radius: 5px; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.tooltip-content { + font-size: 12px; +} +.tooltip-arrow-outer, +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + line-height: 0; + font-size: 0; + border-style: solid; + border-width: 6px; + border-color: transparent; + _border-color: tomato; + _filter: chroma(color=tomato); +} +.tooltip-arrow { + display: none \9; +} +.tooltip-right .tooltip-arrow-outer { + left: 0; + top: 50%; + margin: -6px 0 0 -13px; +} +.tooltip-right .tooltip-arrow { + left: 0; + top: 50%; + margin: -6px 0 0 -12px; +} +.tooltip-left .tooltip-arrow-outer { + right: 0; + top: 50%; + margin: -6px -13px 0 0; +} +.tooltip-left .tooltip-arrow { + right: 0; + top: 50%; + margin: -6px -12px 0 0; +} +.tooltip-top .tooltip-arrow-outer { + bottom: 0; + left: 50%; + margin: 0 0 -13px -6px; +} +.tooltip-top .tooltip-arrow { + bottom: 0; + left: 50%; + margin: 0 0 -12px -6px; +} +.tooltip-bottom .tooltip-arrow-outer { + top: 0; + left: 50%; + margin: -13px 0 0 -6px; +} +.tooltip-bottom .tooltip-arrow { + top: 0; + left: 50%; + margin: -12px 0 0 -6px; +} +.tooltip { + background-color: #666; + border-color: #000; + color: #fff; +} +.tooltip-right .tooltip-arrow-outer { + border-right-color: #000; +} +.tooltip-right .tooltip-arrow { + border-right-color: #666; +} +.tooltip-left .tooltip-arrow-outer { + border-left-color: #000; +} +.tooltip-left .tooltip-arrow { + border-left-color: #666; +} +.tooltip-top .tooltip-arrow-outer { + border-top-color: #000; +} +.tooltip-top .tooltip-arrow { + border-top-color: #666; +} +.tooltip-bottom .tooltip-arrow-outer { + border-bottom-color: #000; +} +.tooltip-bottom .tooltip-arrow { + border-bottom-color: #666; +} +.radiobutton { + position: relative; + border: 2px solid #AA0000; + border-radius: 50%; +} +.radiobutton-inner { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: #AA0000; + border-radius: 50%; + transform: scale(.6); +} +.radiobutton-disabled { + opacity: 0.6; +} +.radiobutton-value { + position: absolute; + overflow: hidden; + width: 1px; + height: 1px; + left: -999px; +} +.checkbox { + position: relative; + border: 2px solid #AA0000; + -moz-border-radius: 5px 5px 5px 5px; + -webkit-border-radius: 5px 5px 5px 5px; + border-radius: 5px 5px 5px 5px; +} +.checkbox-checked { + border: 0; + background: #AA0000; +} +.checkbox-inner { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; +} +.checkbox path { + stroke-width: 2px; +} +.checkbox-disabled { + opacity: 0.6; +} +.checkbox-value { + position: absolute; + overflow: hidden; + width: 1px; + height: 1px; + left: -999px; +} \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/css/jquery-ui.css b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/css/jquery-ui.css new file mode 100644 index 00000000..481f6099 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/css/jquery-ui.css @@ -0,0 +1,1225 @@ +/*! jQuery UI - v1.11.4 - 2015-11-06 +* http://jqueryui.com +* Includes: core.css, draggable.css, resizable.css, selectable.css, sortable.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, menu.css, progressbar.css, selectmenu.css, slider.css, spinner.css, tabs.css, tooltip.css, theme.css +* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Arial%2CHelvetica%2Csans-serif&fsDefault=1em&fwDefault=normal&cornerRadius=3px&bgColorHeader=e9e9e9&bgTextureHeader=flat&borderColorHeader=dddddd&fcHeader=333333&iconColorHeader=444444&bgColorContent=ffffff&bgTextureContent=flat&borderColorContent=dddddd&fcContent=333333&iconColorContent=444444&bgColorDefault=f6f6f6&bgTextureDefault=flat&borderColorDefault=c5c5c5&fcDefault=454545&iconColorDefault=777777&bgColorHover=ededed&bgTextureHover=flat&borderColorHover=cccccc&fcHover=2b2b2b&iconColorHover=555555&bgColorActive=007fff&bgTextureActive=flat&borderColorActive=003eff&fcActive=ffffff&iconColorActive=ffffff&bgColorHighlight=fffa90&bgTextureHighlight=flat&borderColorHighlight=dad55e&fcHighlight=777620&iconColorHighlight=777620&bgColorError=fddfdf&bgTextureError=flat&borderColorError=f1a899&fcError=5f3f3f&iconColorError=cc0000&bgColorOverlay=aaaaaa&bgTextureOverlay=flat&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=666666&bgTextureShadow=flat&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=5px&offsetTopShadow=0px&offsetLeftShadow=0px&cornerRadiusShadow=8px +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { + display: none; +} +.ui-helper-hidden-accessible { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} +.ui-helper-reset { + margin: 0; + padding: 0; + border: 0; + outline: 0; + line-height: 1.3; + text-decoration: none; + font-size: 100%; + list-style: none; +} +.ui-helper-clearfix:before, +.ui-helper-clearfix:after { + content: ""; + display: table; + border-collapse: collapse; +} +.ui-helper-clearfix:after { + clear: both; +} +.ui-helper-clearfix { + min-height: 0; /* support: IE7 */ +} +.ui-helper-zfix { + width: 100%; + height: 100%; + top: 0; + left: 0; + position: absolute; + opacity: 0; + filter:Alpha(Opacity=0); /* support: IE8 */ +} + +.ui-front { + z-index: 100; +} + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { + cursor: default !important; +} + + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { + display: block; + text-indent: -99999px; + overflow: hidden; + background-repeat: no-repeat; +} + + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.ui-draggable-handle { + -ms-touch-action: none; + touch-action: none; +} +.ui-resizable { + position: relative; +} +.ui-resizable-handle { + position: absolute; + font-size: 0.1px; + display: block; + -ms-touch-action: none; + touch-action: none; +} +.ui-resizable-disabled .ui-resizable-handle, +.ui-resizable-autohide .ui-resizable-handle { + display: none; +} +.ui-resizable-n { + cursor: n-resize; + height: 7px; + width: 100%; + top: -5px; + left: 0; +} +.ui-resizable-s { + cursor: s-resize; + height: 7px; + width: 100%; + bottom: -5px; + left: 0; +} +.ui-resizable-e { + cursor: e-resize; + width: 7px; + right: -5px; + top: 0; + height: 100%; +} +.ui-resizable-w { + cursor: w-resize; + width: 7px; + left: -5px; + top: 0; + height: 100%; +} +.ui-resizable-se { + cursor: se-resize; + width: 12px; + height: 12px; + right: 1px; + bottom: 1px; +} +.ui-resizable-sw { + cursor: sw-resize; + width: 9px; + height: 9px; + left: -5px; + bottom: -5px; +} +.ui-resizable-nw { + cursor: nw-resize; + width: 9px; + height: 9px; + left: -5px; + top: -5px; +} +.ui-resizable-ne { + cursor: ne-resize; + width: 9px; + height: 9px; + right: -5px; + top: -5px; +} +.ui-selectable { + -ms-touch-action: none; + touch-action: none; +} +.ui-selectable-helper { + position: absolute; + z-index: 100; + border: 1px dotted black; +} +.ui-sortable-handle { + -ms-touch-action: none; + touch-action: none; +} +.ui-accordion .ui-accordion-header { + display: block; + cursor: pointer; + position: relative; + margin: 2px 0 0 0; + padding: .5em .5em .5em .7em; + min-height: 0; /* support: IE7 */ + font-size: 100%; +} +.ui-accordion .ui-accordion-icons { + padding-left: 2.2em; +} +.ui-accordion .ui-accordion-icons .ui-accordion-icons { + padding-left: 2.2em; +} +.ui-accordion .ui-accordion-header .ui-accordion-header-icon { + position: absolute; + left: .5em; + top: 50%; + margin-top: -8px; +} +.ui-accordion .ui-accordion-content { + padding: 1em 2.2em; + border-top: 0; + overflow: auto; +} +.ui-autocomplete { + position: absolute; + top: 0; + left: 0; + cursor: default; +} +.ui-button { + display: inline-block; + position: relative; + padding: 0; + line-height: normal; + margin-right: .1em; + cursor: pointer; + vertical-align: middle; + text-align: center; + overflow: visible; /* removes extra width in IE */ +} +.ui-button, +.ui-button:link, +.ui-button:visited, +.ui-button:hover, +.ui-button:active { + text-decoration: none; +} +/* to make room for the icon, a width needs to be set here */ +.ui-button-icon-only { + width: 2.2em; +} +/* button elements seem to need a little more width */ +button.ui-button-icon-only { + width: 2.4em; +} +.ui-button-icons-only { + width: 3.4em; +} +button.ui-button-icons-only { + width: 3.7em; +} + +/* button text element */ +.ui-button .ui-button-text { + display: block; + line-height: normal; +} +.ui-button-text-only .ui-button-text { + padding: .4em 1em; +} +.ui-button-icon-only .ui-button-text, +.ui-button-icons-only .ui-button-text { + padding: .4em; + text-indent: -9999999px; +} +.ui-button-text-icon-primary .ui-button-text, +.ui-button-text-icons .ui-button-text { + padding: .4em 1em .4em 2.1em; +} +.ui-button-text-icon-secondary .ui-button-text, +.ui-button-text-icons .ui-button-text { + padding: .4em 2.1em .4em 1em; +} +.ui-button-text-icons .ui-button-text { + padding-left: 2.1em; + padding-right: 2.1em; +} +/* no icon support for input elements, provide padding by default */ +input.ui-button { + padding: .4em 1em; +} + +/* button icon element(s) */ +.ui-button-icon-only .ui-icon, +.ui-button-text-icon-primary .ui-icon, +.ui-button-text-icon-secondary .ui-icon, +.ui-button-text-icons .ui-icon, +.ui-button-icons-only .ui-icon { + position: absolute; + top: 50%; + margin-top: -8px; +} +.ui-button-icon-only .ui-icon { + left: 50%; + margin-left: -8px; +} +.ui-button-text-icon-primary .ui-button-icon-primary, +.ui-button-text-icons .ui-button-icon-primary, +.ui-button-icons-only .ui-button-icon-primary { + left: .5em; +} +.ui-button-text-icon-secondary .ui-button-icon-secondary, +.ui-button-text-icons .ui-button-icon-secondary, +.ui-button-icons-only .ui-button-icon-secondary { + right: .5em; +} + +/* button sets */ +.ui-buttonset { + margin-right: 7px; +} +.ui-buttonset .ui-button { + margin-left: 0; + margin-right: -.3em; +} + +/* workarounds */ +/* reset extra padding in Firefox, see h5bp.com/l */ +input.ui-button::-moz-focus-inner, +button.ui-button::-moz-focus-inner { + border: 0; + padding: 0; +} +.ui-datepicker { + width: 10em; + padding: .2em .2em 0; + display: none; +} +.ui-datepicker .ui-datepicker-header { + position: relative; + padding: .2em 0; +} +.ui-datepicker .ui-datepicker-prev, +.ui-datepicker .ui-datepicker-next { + position: absolute; + top: 2px; + width: 1.8em; + height: 1.8em; +} +.ui-datepicker .ui-datepicker-prev-hover, +.ui-datepicker .ui-datepicker-next-hover { + top: 1px; +} +.ui-datepicker .ui-datepicker-prev { + left: 2px; +} +.ui-datepicker .ui-datepicker-next { + right: 2px; +} +.ui-datepicker .ui-datepicker-prev-hover { + left: 1px; +} +.ui-datepicker .ui-datepicker-next-hover { + right: 1px; +} +.ui-datepicker .ui-datepicker-prev span, +.ui-datepicker .ui-datepicker-next span { + display: block; + position: absolute; + left: 50%; + margin-left: -8px; + top: 50%; + margin-top: -8px; +} +.ui-datepicker .ui-datepicker-title { + margin: 0 2.3em; + line-height: 1.8em; + text-align: center; +} +.ui-datepicker .ui-datepicker-title select { + font-size: 1em; + margin: 1px 0; +} +.ui-datepicker select.ui-datepicker-month, +.ui-datepicker select.ui-datepicker-year { + width: 45%; +} +.ui-datepicker table { + width: 100%; + font-size: .9em; + border-collapse: collapse; + margin: 0 0 .4em; +} +.ui-datepicker th { + padding: .7em .3em; + text-align: center; + font-weight: bold; + border: 0; +} +.ui-datepicker td { + border: 0; + padding: 1px; +} +.ui-datepicker td span, +.ui-datepicker td a { + display: block; + padding: .2em; + text-align: right; + text-decoration: none; +} +.ui-datepicker .ui-datepicker-buttonpane { + background-image: none; + margin: .7em 0 0 0; + padding: 0 .2em; + border-left: 0; + border-right: 0; + border-bottom: 0; +} +.ui-datepicker .ui-datepicker-buttonpane button { + float: right; + margin: .5em .2em .4em; + cursor: pointer; + padding: .2em .6em .3em .6em; + width: auto; + overflow: visible; +} +.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { + float: left; +} + +/* with multiple calendars */ +.ui-datepicker.ui-datepicker-multi { + width: auto; +} +.ui-datepicker-multi .ui-datepicker-group { + float: left; +} +.ui-datepicker-multi .ui-datepicker-group table { + width: 95%; + margin: 0 auto .4em; +} +.ui-datepicker-multi-2 .ui-datepicker-group { + width: 50%; +} +.ui-datepicker-multi-3 .ui-datepicker-group { + width: 33.3%; +} +.ui-datepicker-multi-4 .ui-datepicker-group { + width: 25%; +} +.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header, +.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { + border-left-width: 0; +} +.ui-datepicker-multi .ui-datepicker-buttonpane { + clear: left; +} +.ui-datepicker-row-break { + clear: both; + width: 100%; + font-size: 0; +} + +/* RTL support */ +.ui-datepicker-rtl { + direction: rtl; +} +.ui-datepicker-rtl .ui-datepicker-prev { + right: 2px; + left: auto; +} +.ui-datepicker-rtl .ui-datepicker-next { + left: 2px; + right: auto; +} +.ui-datepicker-rtl .ui-datepicker-prev:hover { + right: 1px; + left: auto; +} +.ui-datepicker-rtl .ui-datepicker-next:hover { + left: 1px; + right: auto; +} +.ui-datepicker-rtl .ui-datepicker-buttonpane { + clear: right; +} +.ui-datepicker-rtl .ui-datepicker-buttonpane button { + float: left; +} +.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current, +.ui-datepicker-rtl .ui-datepicker-group { + float: right; +} +.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header, +.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { + border-right-width: 0; + border-left-width: 1px; +} +.ui-dialog { + overflow: hidden; + position: absolute; + top: 0; + left: 0; + padding: .2em; + outline: 0; +} +.ui-dialog .ui-dialog-titlebar { + padding: .4em 1em; + position: relative; +} +.ui-dialog .ui-dialog-title { + float: left; + margin: .1em 0; + white-space: nowrap; + width: 90%; + overflow: hidden; + text-overflow: ellipsis; +} +.ui-dialog .ui-dialog-titlebar-close { + position: absolute; + right: .3em; + top: 50%; + width: 20px; + margin: -10px 0 0 0; + padding: 1px; + height: 20px; +} +.ui-dialog .ui-dialog-content { + position: relative; + border: 0; + padding: .5em 1em; + background: none; + overflow: auto; +} +.ui-dialog .ui-dialog-buttonpane { + text-align: left; + border-width: 1px 0 0 0; + background-image: none; + margin-top: .5em; + padding: .3em 1em .5em .4em; +} +.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { + float: right; +} +.ui-dialog .ui-dialog-buttonpane button { + margin: .5em .4em .5em 0; + cursor: pointer; +} +.ui-dialog .ui-resizable-se { + width: 12px; + height: 12px; + right: -5px; + bottom: -5px; + background-position: 16px 16px; +} +.ui-draggable .ui-dialog-titlebar { + cursor: move; +} +.ui-menu { + list-style: none; + padding: 0; + margin: 0; + display: block; + outline: none; +} +.ui-menu .ui-menu { + position: absolute; +} +.ui-menu .ui-menu-item { + position: relative; + margin: 0; + padding: 3px 1em 3px .4em; + cursor: pointer; + min-height: 0; /* support: IE7 */ + /* support: IE10, see #8844 */ + list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"); +} +.ui-menu .ui-menu-divider { + margin: 5px 0; + height: 0; + font-size: 0; + line-height: 0; + border-width: 1px 0 0 0; +} +.ui-menu .ui-state-focus, +.ui-menu .ui-state-active { + margin: -1px; +} + +/* icon support */ +.ui-menu-icons { + position: relative; +} +.ui-menu-icons .ui-menu-item { + padding-left: 2em; +} + +/* left-aligned */ +.ui-menu .ui-icon { + position: absolute; + top: 0; + bottom: 0; + left: .2em; + margin: auto 0; +} + +/* right-aligned */ +.ui-menu .ui-menu-icon { + left: auto; + right: 0; +} +.ui-progressbar { + height: 2em; + text-align: left; + overflow: hidden; +} +.ui-progressbar .ui-progressbar-value { + margin: -1px; + height: 100%; +} +.ui-progressbar .ui-progressbar-overlay { + background: url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw=="); + height: 100%; + filter: alpha(opacity=25); /* support: IE8 */ + opacity: 0.25; +} +.ui-progressbar-indeterminate .ui-progressbar-value { + background-image: none; +} +.ui-selectmenu-menu { + padding: 0; + margin: 0; + position: absolute; + top: 0; + left: 0; + display: none; +} +.ui-selectmenu-menu .ui-menu { + overflow: auto; + /* Support: IE7 */ + overflow-x: hidden; + padding-bottom: 1px; +} +.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup { + font-size: 1em; + font-weight: bold; + line-height: 1.5; + padding: 2px 0.4em; + margin: 0.5em 0 0 0; + height: auto; + border: 0; +} +.ui-selectmenu-open { + display: block; +} +.ui-selectmenu-button { + display: inline-block; + overflow: hidden; + position: relative; + text-decoration: none; + cursor: pointer; +} +.ui-selectmenu-button span.ui-icon { + right: 0.5em; + left: auto; + margin-top: -8px; + position: absolute; + top: 50%; +} +.ui-selectmenu-button span.ui-selectmenu-text { + text-align: left; + padding: 0.4em 2.1em 0.4em 1em; + display: block; + line-height: 1.4; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.ui-slider { + position: relative; + text-align: left; +} +.ui-slider .ui-slider-handle { + position: absolute; + z-index: 2; + width: 1.2em; + height: 1.2em; + cursor: default; + -ms-touch-action: none; + touch-action: none; +} +.ui-slider .ui-slider-range { + position: absolute; + z-index: 1; + font-size: .7em; + display: block; + border: 0; + background-position: 0 0; +} + +/* support: IE8 - See #6727 */ +.ui-slider.ui-state-disabled .ui-slider-handle, +.ui-slider.ui-state-disabled .ui-slider-range { + filter: inherit; +} + +.ui-slider-horizontal { + height: .8em; +} +.ui-slider-horizontal .ui-slider-handle { + top: -.3em; + margin-left: -.6em; +} +.ui-slider-horizontal .ui-slider-range { + top: 0; + height: 100%; +} +.ui-slider-horizontal .ui-slider-range-min { + left: 0; +} +.ui-slider-horizontal .ui-slider-range-max { + right: 0; +} + +.ui-slider-vertical { + width: .8em; + height: 100px; +} +.ui-slider-vertical .ui-slider-handle { + left: -.3em; + margin-left: 0; + margin-bottom: -.6em; +} +.ui-slider-vertical .ui-slider-range { + left: 0; + width: 100%; +} +.ui-slider-vertical .ui-slider-range-min { + bottom: 0; +} +.ui-slider-vertical .ui-slider-range-max { + top: 0; +} +.ui-spinner { + position: relative; + display: inline-block; + overflow: hidden; + padding: 0; + vertical-align: middle; +} +.ui-spinner-input { + border: none; + background: none; + color: inherit; + padding: 0; + margin: .2em 0; + vertical-align: middle; + margin-left: .4em; + margin-right: 22px; +} +.ui-spinner-button { + width: 16px; + height: 50%; + font-size: .5em; + padding: 0; + margin: 0; + text-align: center; + position: absolute; + cursor: default; + display: block; + overflow: hidden; + right: 0; +} +/* more specificity required here to override default borders */ +.ui-spinner a.ui-spinner-button { + border-top: none; + border-bottom: none; + border-right: none; +} +/* vertically center icon */ +.ui-spinner .ui-icon { + position: absolute; + margin-top: -8px; + top: 50%; + left: 0; +} +.ui-spinner-up { + top: 0; +} +.ui-spinner-down { + bottom: 0; +} + +/* TR overrides */ +.ui-spinner .ui-icon-triangle-1-s { + /* need to fix icons sprite */ + background-position: -65px -16px; +} +.ui-tabs { + position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ + padding: .2em; +} +.ui-tabs .ui-tabs-nav { + margin: 0; + padding: .2em .2em 0; +} +.ui-tabs .ui-tabs-nav li { + list-style: none; + float: left; + position: relative; + top: 0; + margin: 1px .2em 0 0; + border-bottom-width: 0; + padding: 0; + white-space: nowrap; +} +.ui-tabs .ui-tabs-nav .ui-tabs-anchor { + float: left; + padding: .5em 1em; + text-decoration: none; +} +.ui-tabs .ui-tabs-nav li.ui-tabs-active { + margin-bottom: -1px; + padding-bottom: 1px; +} +.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor, +.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor, +.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor { + cursor: text; +} +.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor { + cursor: pointer; +} +.ui-tabs .ui-tabs-panel { + display: block; + border-width: 0; + padding: 1em 1.4em; + background: none; +} +.ui-tooltip { + padding: 8px; + position: absolute; + z-index: 9999; + max-width: 300px; + -webkit-box-shadow: 0 0 5px #aaa; + box-shadow: 0 0 5px #aaa; +} +body .ui-tooltip { + border-width: 2px; +} + +/* Component containers +----------------------------------*/ +.ui-widget { + font-family: Arial,Helvetica,sans-serif; + font-size: 1em; +} +.ui-widget .ui-widget { + font-size: 1em; +} +.ui-widget input, +.ui-widget select, +.ui-widget textarea, +.ui-widget button { + font-family: Arial,Helvetica,sans-serif; + font-size: 1em; +} +.ui-widget-content { + border: 1px solid #dddddd; + background: #ffffff; + color: #333333; +} +.ui-widget-content a { + color: #333333; +} +.ui-widget-header { + border: 1px solid #dddddd; + background: #e9e9e9; + color: #333333; + font-weight: bold; +} +.ui-widget-header a { + color: #333333; +} + +/* Interaction states +----------------------------------*/ +.ui-state-default, +.ui-widget-content .ui-state-default, +.ui-widget-header .ui-state-default { + border: 1px solid #c5c5c5; + background: #f6f6f6; + font-weight: normal; + color: #454545; +} +.ui-state-default a, +.ui-state-default a:link, +.ui-state-default a:visited { + color: #454545; + text-decoration: none; +} +.ui-state-hover, +.ui-widget-content .ui-state-hover, +.ui-widget-header .ui-state-hover, +.ui-state-focus, +.ui-widget-content .ui-state-focus, +.ui-widget-header .ui-state-focus { + border: 1px solid #cccccc; + background: #ededed; + font-weight: normal; + color: #2b2b2b; +} +.ui-state-hover a, +.ui-state-hover a:hover, +.ui-state-hover a:link, +.ui-state-hover a:visited, +.ui-state-focus a, +.ui-state-focus a:hover, +.ui-state-focus a:link, +.ui-state-focus a:visited { + color: #2b2b2b; + text-decoration: none; +} +.ui-state-active, +.ui-widget-content .ui-state-active, +.ui-widget-header .ui-state-active { + border: 1px solid #003eff; + background: #007fff; + font-weight: normal; + color: #ffffff; +} +.ui-state-active a, +.ui-state-active a:link, +.ui-state-active a:visited { + color: #ffffff; + text-decoration: none; +} + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, +.ui-widget-content .ui-state-highlight, +.ui-widget-header .ui-state-highlight { + border: 1px solid #dad55e; + background: #fffa90; + color: #777620; +} +.ui-state-highlight a, +.ui-widget-content .ui-state-highlight a, +.ui-widget-header .ui-state-highlight a { + color: #777620; +} +.ui-state-error, +.ui-widget-content .ui-state-error, +.ui-widget-header .ui-state-error { + border: 1px solid #f1a899; + background: #fddfdf; + color: #5f3f3f; +} +.ui-state-error a, +.ui-widget-content .ui-state-error a, +.ui-widget-header .ui-state-error a { + color: #5f3f3f; +} +.ui-state-error-text, +.ui-widget-content .ui-state-error-text, +.ui-widget-header .ui-state-error-text { + color: #5f3f3f; +} +.ui-priority-primary, +.ui-widget-content .ui-priority-primary, +.ui-widget-header .ui-priority-primary { + font-weight: bold; +} +.ui-priority-secondary, +.ui-widget-content .ui-priority-secondary, +.ui-widget-header .ui-priority-secondary { + opacity: .7; + filter:Alpha(Opacity=70); /* support: IE8 */ + font-weight: normal; +} +.ui-state-disabled, +.ui-widget-content .ui-state-disabled, +.ui-widget-header .ui-state-disabled { + opacity: .35; + filter:Alpha(Opacity=35); /* support: IE8 */ + background-image: none; +} +.ui-state-disabled .ui-icon { + filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */ +} + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { + width: 16px; + height: 16px; +} +.ui-icon, +.ui-widget-content .ui-icon { + background-image: url("../js/jquery-ui-1.11.4.custom/images/ui-icons_444444_256x240.png"); +} +.ui-widget-header .ui-icon { + background-image: url("../js/jquery-ui-1.11.4.custom/images/ui-icons_444444_256x240.png"); +} +.ui-state-default .ui-icon { + background-image: url("../js/jquery-ui-1.11.4.custom/images/ui-icons_777777_256x240.png"); +} +.ui-state-hover .ui-icon, +.ui-state-focus .ui-icon { + background-image: url("../js/jquery-ui-1.11.4.custom/images/ui-icons_555555_256x240.png"); +} +.ui-state-active .ui-icon { + background-image: url("../js/jquery-ui-1.11.4.custom/images/ui-icons_ffffff_256x240.png"); +} +.ui-state-highlight .ui-icon { + background-image: url("../js/jquery-ui-1.11.4.custom/images/ui-icons_777620_256x240.png"); +} +.ui-state-error .ui-icon, +.ui-state-error-text .ui-icon { + background-image: url("../js/jquery-ui-1.11.4.custom/images/ui-icons_cc0000_256x240.png"); +} + +/* positioning */ +.ui-icon-blank { background-position: 16px 16px; } +.ui-icon-carat-1-n { background-position: 0 0; } +.ui-icon-carat-1-ne { background-position: -16px 0; } +.ui-icon-carat-1-e { background-position: -32px 0; } +.ui-icon-carat-1-se { background-position: -48px 0; } +.ui-icon-carat-1-s { background-position: -64px 0; } +.ui-icon-carat-1-sw { background-position: -80px 0; } +.ui-icon-carat-1-w { background-position: -96px 0; } +.ui-icon-carat-1-nw { background-position: -112px 0; } +.ui-icon-carat-2-n-s { background-position: -128px 0; } +.ui-icon-carat-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -64px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -64px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 0 -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-on { background-position: -96px -144px; } +.ui-icon-radio-off { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-all, +.ui-corner-top, +.ui-corner-left, +.ui-corner-tl { + border-top-left-radius: 3px; +} +.ui-corner-all, +.ui-corner-top, +.ui-corner-right, +.ui-corner-tr { + border-top-right-radius: 3px; +} +.ui-corner-all, +.ui-corner-bottom, +.ui-corner-left, +.ui-corner-bl { + border-bottom-left-radius: 3px; +} +.ui-corner-all, +.ui-corner-bottom, +.ui-corner-right, +.ui-corner-br { + border-bottom-right-radius: 3px; +} + +/* Overlays */ +.ui-widget-overlay { + background: #aaaaaa; + opacity: .3; + filter: Alpha(Opacity=30); /* support: IE8 */ +} +.ui-widget-shadow { + margin: 0px 0 0 0px; + padding: 5px; + background: #666666; + opacity: .3; + filter: Alpha(Opacity=30); /* support: IE8 */ + border-radius: 8px; +} diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/css/main_design1.css b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/css/main_design1.css new file mode 100644 index 00000000..5ea956f8 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/css/main_design1.css @@ -0,0 +1,66 @@ +body,html{width:100%;height:100%;margin:0px;padding:0px;font-size:12px;color:#555;background-color:#000;font-family:'微软雅黑'} +#main{width:4352px;height:1536px;display:inline-block; background:url(../images/screenbg_design1.jpg) left top no-repeat} + +/*年月日文字*/ +#currentYear{width:213px;height:107px;position:absolute;left:430px;top:100px;color:#FFF;font-size:36px; font-family:'微软雅黑';text-align:center} +#currentMonth{width:213px;height:107px;position:absolute;left:1504px;top:75px;color:#FFF;font-size:36px; font-family:'微软雅黑';text-align:center} +#currentDay{width:213px;height:107px;position:absolute;left:2574px;top:100px;color:#FFF;font-size:36px; font-family:'微软雅黑';text-align:center} + +/*年的进度条*/ +#y_gauge1{width:250px;height:250px;position:absolute;left:60px;top:200px;} +#y_gauge2{width:250px;height:250px;position:absolute;left:290px;top:200px;} +#y_gauge3{width:250px;height:250px;position:absolute;left:530px;top:200px;} +#y_gauge4{width:250px;height:250px;position:absolute;left:770px;top:200px;} + +/*月的进度条*/ +#m_gauge1{width:250px;height:250px;position:absolute;left:1140px;top:130px;} +#m_gauge2{width:250px;height:250px;position:absolute;left:1370px;top:130px;} +#m_gauge3{width:250px;height:250px;position:absolute;left:1610px;top:130px;} +#m_gauge4{width:250px;height:250px;position:absolute;left:1850px;top:130px;} + +/*日的进度条*/ +#d_gauge1{width:250px;height:250px;position:absolute;left:2210px;top:200px;} +#d_gauge2{width:250px;height:250px;position:absolute;left:2440px;top:200px;} +#d_gauge3{width:250px;height:250px;position:absolute;left:2680px;top:200px;} +#d_gauge4{width:250px;height:250px;position:absolute;left:2920px;top:200px;} + +/*监控的仪表盘*/ +#gauge1{width:250px;height:250px;position:absolute;left:2200px;top:1050px;} +#gauge2{width:250px;height:250px;position:absolute;left:2550px;top:1050px;} +#gauge3{width:250px;height:250px;position:absolute;left:2910px;top:1050px;} +#gauge4{width:250px;height:250px;position:absolute;left:2380px;top:1190px;} +#gauge5{width:250px;height:250px;position:absolute;left:2730px;top:1190px;} + +/*仪表盘文字*/ +.gaugeTitle{width:250px;height:40px;position:absolute;left:0px;top:200px;color:#B7E1FF;font-size:24px;display:inline-block;text-align:center;font-family:Arial;} + +/*地图*/ +#map{width:1100px;height:800px;position:absolute;left:0px;top:620px;display:inline-block;color:#E1E1E1;font-size:24px;} + +#plan{width:900px;height:420px;position:absolute;left:1170px;top:520px;display:inline-block;color:#E1E1E1;font-size:24px;} +#quality{width:900px;height:420px;position:absolute;left:1170px;top:1030px;display:inline-block;color:#E1E1E1;font-size:24px;} + +#orderTable{width:1000px;height:430px;position:absolute;left:2160px;top:930px;display:inline-block} +#orderTable table{width:100%;color:#666;font-size:24px} +#orderTable table td{text-align:center;} +#orderTable table .head{height:80px;font-size:24px;color:#FFF} +#orderTable table .row2{color:#000} +#orderTable table .row1{background-color:#CCC} + +#orderMessage{width:800px;position:absolute;left:33px;top:1420px;display:inline-block;color:#E1E1E1;font-size:24px} + +/*生产情况展示表*/ +#produce{width:1000px;height:380px;position:absolute;left:2190px;top:600px;display:inline-block;color:#B7E2FF;font-size:24px;} +#produce table{width:100%;font-size:24px;} +#produce table td{text-align:center;border:1px solid #069} +#produce table .row1{} +#produce table .row2{} + +/*视频*/ +#video{width:960px;height:540px;position:absolute;left:3280px;top:140px;display:inline-block;} + +/*监控视频*/ +#Monitor{width:960px;height:540px;position:absolute;left:3280px;top:940px;display:inline-block;color:#E1E1E1;font-size:24px;} + +/*刷新时间*/ +#refresh{width:800px;position:absolute;left:3350px;top:40px;display:inline-block;color:#FFF;font-size:24px;} \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/css/room.css b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/css/room.css new file mode 100644 index 00000000..359af8d0 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/css/room.css @@ -0,0 +1,62 @@ +body,html{width:100%;height:100%;margin:0px;padding:0px;font-size:12px;color:#555;background-color:#000;font-family:'微软雅黑'} +#main{width:4352px;height:1536px;display:inline-block; background:url(../images/war_room_main.jpg) left top no-repeat} + +/*下钻按钮*/ +.contentButton{width:218px;height:100px;position:absolute;} +.contentButton a{width:218px;height:100px;display:inline-block; background:url(../images/content_comm.png) no-repeat top left} +.contentButton a:hover{width:218px;height:100px;display:inline-block; background:url(../images/content_down.png) no-repeat top left} +.contentButton .a1{width:218px;height:100px;display:inline-block; background:url(../images/content_comm1.png) no-repeat top left} +.contentButton .a1:hover{width:218px;height:100px;display:inline-block; background:url(../images/content_down1.png) no-repeat top left} + +/*弹出窗口*/ +#popWindow{width:2200px;height:1000px;display:inline-block;position:absolute;top:240px;left:1070px;background-color:#06274A;border:1px solid #09f} + +/*年的进度条*/ +#y_gauge1{width:250px;height:250px;position:absolute;left:60px;top:200px;} +#y_gauge2{width:250px;height:250px;position:absolute;left:290px;top:200px;} +#y_gauge3{width:250px;height:250px;position:absolute;left:530px;top:200px;} +#y_gauge4{width:250px;height:250px;position:absolute;left:770px;top:200px;} + +/*螺旋DNA*/ +#orderStatus{width:1000px;height:320px;position:absolute;left:80px;top:460px;} + +/*监控的仪表盘*/ +#gauge1{width:250px;height:250px;position:absolute;left:2200px;top:280px;} +#gauge2{width:250px;height:250px;position:absolute;left:2550px;top:280px;} +#gauge3{width:250px;height:250px;position:absolute;left:2910px;top:280px;} +#gauge4{width:250px;height:250px;position:absolute;left:2380px;top:550px;} +#gauge5{width:250px;height:250px;position:absolute;left:2730px;top:550px;} + +/*仪表盘文字*/ +.gaugeTitle{width:250px;height:40px;position:absolute;left:0px;top:200px;color:#B7E1FF;font-size:24px;display:inline-block;text-align:center;font-family:Arial;} + +/*地图*/ +#map{width:1100px;height:800px;position:absolute;left:1080px;top:170px;display:inline-block;color:#E1E1E1;font-size:24px;} + +#productPie{width:1000px;height:680px;position:absolute;left:2210px;top:260px;display:inline-block;color:#E1E1E1;font-size:24px;} + +/*业务进展图*/ +#businessProgress{width:1000px;height:640px;position:absolute;left:3330px;top:180px;display:inline-block;color:#E1E1E1;font-size:24px;} + +/*计划完成情况*/ +#plan{width:1000px;height:400px;position:absolute;left:80px;top:1020px;display:inline-block;color:#E1E1E1;font-size:24px;} +/*质量指标分析*/ +#quality{width:1000px;height:400px;position:absolute;left:1170px;top:1020px;display:inline-block;color:#E1E1E1;font-size:24px;} +/*舆情文字云*/ +#wordCloud{width:900px;height:420px;position:absolute;left:3330px;top:1000px;display:inline-block;color:#E1E1E1;font-size:24px;} + +/*投诉情况展示表*/ +#produce{width:900px;height:380px;position:absolute;left:2250px;top:1050px;display:inline-block;color:#B7E2FF;font-size:24px;} +#produce table{width:100%;font-size:24px;} +#produce table td{text-align:center;border:1px solid #069} +#produce table .row1{} +#produce table .row2{} + +/*视频*/ +#video{width:960px;height:540px;position:absolute;left:3280px;top:140px;display:inline-block;} + +/*监控视频*/ +#Monitor{width:960px;height:540px;position:absolute;left:3280px;top:940px;display:inline-block;color:#E1E1E1;font-size:24px;} + +/*刷新时间*/ +#refresh{width:800px;position:absolute;left:3350px;top:40px;display:inline-block;color:#FFF;font-size:24px;} \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/images/content_comm.png b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/images/content_comm.png new file mode 100644 index 00000000..7c779a9a Binary files /dev/null and b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/images/content_comm.png differ diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/images/content_comm1.png b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/images/content_comm1.png new file mode 100644 index 00000000..f4a951c3 Binary files /dev/null and b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/images/content_comm1.png differ diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/images/content_down.png b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/images/content_down.png new file mode 100644 index 00000000..7c8242f2 Binary files /dev/null and b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/images/content_down.png differ diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/images/content_down1.png b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/images/content_down1.png new file mode 100644 index 00000000..32fe2b8c Binary files /dev/null and b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/images/content_down1.png differ diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/images/index.gif b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/images/index.gif new file mode 100644 index 00000000..cb447491 Binary files /dev/null and b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/images/index.gif differ diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/images/index1.gif b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/images/index1.gif new file mode 100644 index 00000000..cbf7a2ab Binary files /dev/null and b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/images/index1.gif differ diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/images/screenbg_design1.jpg b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/images/screenbg_design1.jpg new file mode 100644 index 00000000..fbc2d065 Binary files /dev/null and b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/images/screenbg_design1.jpg differ diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/images/war_room_main.jpg b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/images/war_room_main.jpg new file mode 100644 index 00000000..a8111b82 Binary files /dev/null and b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/images/war_room_main.jpg differ diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/js/big_design1.js b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/js/big_design1.js new file mode 100644 index 00000000..d70ad3e3 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/js/big_design1.js @@ -0,0 +1,836 @@ +//计划完成表的当前所选 +var indexnum = 0; +var color=['#F35331','#2499F8','#3DF098','#33B734']; +var fontColor='#FFF'; + +//定义进度条组件和属性 +var y_gauge1 =null; +var y_gauge2 =null; +var y_gauge3 =null; +var y_gauge4 =null; +var m_gauge1 =null; +var m_gauge2 =null; +var m_gauge3 =null; +var m_gauge4 =null; +var d_gauge1 =null; +var d_gauge2 =null; +var d_gauge3 =null; +var d_gauge4 =null; +var option_Progress =null; + +//定义仪表盘组件和属性 +var gauge1 =null; +var gauge2 =null; +var gauge3 =null; +var gauge4 =null; +var gauge5 =null; +var option_gauge =null; + +//生产质量堆积图组件和属性 +var quality_chart = null; +var quality_option=null; + +//生产计划折线图组件和属性 +var plan_chart = null; +var plan_option=null; + +//环形图的风格定义 +var dataStyle = { + normal: { + label: {show:false}, + labelLine: {show:false} + } +}; +var placeHolderStyle = { + normal : { + color: 'rgba(0,0,0,0.1)', + label: {show:false}, + labelLine: {show:false} + }, + emphasis : { + color: 'rgba(0,0,0,0)' + } +}; + +//最大订单号 +var lastOrderNumber=1; + +$(document).ready(function () +{ + //环形进度条设置对象 + option_Progress={ + title : { + text: '目前进度', + subtext: '50%', + x: 'center', + y: 90, + itemGap: 10, + textStyle : { + color : '#B7E1FF', + fontWeight: 'normal', + fontFamily : '微软雅黑', + fontSize : 24 + }, + subtextStyle:{ + color: '#B7E1FF', + fontWeight: 'bolder', + fontSize:24, + fontFamily : '微软雅黑' + } + }, + series : [{ + type : 'pie', + center : ['50%', '50%'], + radius : [75,90], + x: '0%', + tooltip:{show:false}, + data : [{ + name:'达成率', + value:79, + itemStyle:{color :'rgba(0,153,255,0.8)'}, + hoverAnimation: false, + label : { + show : false, + position : 'center', + textStyle: { + fontFamily:'微软雅黑', + fontWeight: 'bolder', + color:'#B7E1FF', + fontSize:24 + } + }, + labelLine : { + show : false + } + }, + { + name:'79%', + value:21, + itemStyle:{color: 'rgba(0,153,255,0.1)'}, + hoverAnimation: false, + label : { + show : false, + position : 'center', + padding:20, + textStyle: { + fontFamily:'微软雅黑', + fontSize: 24, + color:'#B7E1FF' + } + }, + labelLine : { + show : false + } + }] + }, + { + type : 'pie', + center : ['50%', '50%'], + radius : [95,100], + x: '0%', + hoverAnimation: false, + data : [{ + value:100, + itemStyle:{color :'rgba(0,153,255,0.3)'}, + label : {show : false}, + labelLine : {show : false} + }] + }, + { + type : 'pie', + center : ['50%', '50%'], + radius : [69,70], + x: '0%', + hoverAnimation: false, + data : [{ + value:100, + itemStyle:{color :'rgba(0,153,255,0.3)'}, + label : {show : false}, + labelLine : {show : false} + }] + }] + }; + + //年仪表盘 + y_gauge1 = echarts.init(document.getElementById('y_gauge1')); + y_gauge2 = echarts.init(document.getElementById('y_gauge2')); + y_gauge3 = echarts.init(document.getElementById('y_gauge3')); + y_gauge4 = echarts.init(document.getElementById('y_gauge4')); + + //月仪表盘 + m_gauge1 = echarts.init(document.getElementById('m_gauge1')); + m_gauge2 = echarts.init(document.getElementById('m_gauge2')); + m_gauge3 = echarts.init(document.getElementById('m_gauge3')); + m_gauge4 = echarts.init(document.getElementById('m_gauge4')); + + //日仪表盘 + d_gauge1 = echarts.init(document.getElementById('d_gauge1')); + d_gauge2 = echarts.init(document.getElementById('d_gauge2')); + d_gauge3 = echarts.init(document.getElementById('d_gauge3')); + d_gauge4 = echarts.init(document.getElementById('d_gauge4')); + + //监控仪表盘 + option_gauge = { + title: { + text: '', //标题文本内容 + }, + toolbox: { //可视化的工具箱 + show: false, + }, + tooltip: { //弹窗组件 + formatter: "{a}
{b} : {c}%" + }, + series: [{ + type: 'gauge', + axisLine: {// 坐标轴线 + lineStyle: { // 属性lineStyle控制线条样式 + color: [ + [0.2, color[0]], + [0.8, color[1]], + [1, color[2]] + ], + width: 18 + } + }, + splitLine: { // 分隔线 + show:true, + length: 18, + lineStyle: { + color: '#28292D', + width: 1 + } + }, + axisTick : { //刻度线样式(及短线样式) + show:false, + lineStyle: { + color: 'auto', + width: 1 + }, + length : 20 + }, + axisLabel : { + color:'#FFF', + fontSize:14, + fontFamily:'Verdana, Geneva, sans-serif' + }, + title: { + textStyle: { // 其余属性默认使用全局文本样式,详见TEXTSTYLE + fontWeight: 'bolder', + fontSize: 20, + color: '#FFF' + }, + offsetCenter: [0, '30%'] + }, + pointer: { + width: 5, + color: '#F00', + shadowColor: '#FF0', + shadowBlur: 10 + }, + detail: { + show:false, + formatter:'{value}%', + textStyle: + { + fontFamily:'Arial', + color: '#000', + fontSize:'32px' + }, + offsetCenter: [0, '90%'] + }, + data: [{value: 45, name: '水'}] + }] + }; + + gauge1 = echarts.init(document.getElementById('gauge1')); + gauge2 = echarts.init(document.getElementById('gauge2')); + gauge3 = echarts.init(document.getElementById('gauge3')); + gauge4 = echarts.init(document.getElementById('gauge4')); + gauge5 = echarts.init(document.getElementById('gauge5')); + option_gauge.series[0].axisLine.lineStyle.color=[[0.2, color[0]],[0.8, color[1]],[1, color[2]]]; + option_gauge.series[0].data[0].value = (Math.random() * 100).toFixed(2) - 0; + option_gauge.series[0].data[0].name ="水"; + $('#vg1').html(option_gauge.series[0].data[0].value); + gauge1.setOption(option_gauge); + option_gauge.series[0].data[0].value = (Math.random() * 100).toFixed(2) - 0; + option_gauge.series[0].data[0].name ="电"; + $('#vg2').html(option_gauge.series[0].data[0].value); + gauge2.setOption(option_gauge); + option_gauge.series[0].data[0].value = (Math.random() * 100).toFixed(2) - 0; + option_gauge.series[0].data[0].name ="天然气"; + $('#vg3').html(option_gauge.series[0].data[0].value); + gauge3.setOption(option_gauge); + option_gauge.series[0].data[0].value = (Math.random() * 100).toFixed(2) - 0; + option_gauge.series[0].data[0].name ="压缩空气"; + $('#vg4').html(option_gauge.series[0].data[0].value); + gauge4.setOption(option_gauge); + option_gauge.series[0].data[0].value = (Math.random() * 100).toFixed(2) - 0; + option_gauge.series[0].data[0].name ="蒸汽"; + $('#vg5').html(option_gauge.series[0].data[0].value); + gauge5.setOption(option_gauge); + + //生产质量堆积图 + quality_chart = echarts.init(document.getElementById('quality')); + quality_option={ + title: { + show:false, + text: 'AUDIT', + left: 'center', + textStyle: { + color: '#F00', + fontSize:32 + } + }, + xAxis: { + data: ['1月10日','2月10日','3月10日','4月10日','5月10日','6月10日'], + axisLabel: { + textStyle: { + color: '#B7E1FF', + fontSize:24 + } + }, + axisLine:{ + lineStyle:{ + color:'#09F' + } + }, + axisTick:{ + lineStyle:{ + color:'#09F' + } + } + }, + yAxis: { + inverse: false, + splitArea: {show: false}, + axisLine: {show: false}, + axisTick: {show: false}, + axisLabel: { + textStyle: { + color: '#B7E1FF', + fontSize:24, + fontFamily:'Arial', + } + }, + splitLine :{ + lineStyle:{ + color:'#09F' + } + } + }, + grid: { + left: 100 + }, + tooltip: { + trigger: 'item', + textStyle: { + color: '#B7E1FF', + fontSize:24 + } + }, + legend:{ + show:false, + top: 'bottom', + textStyle: { + color: '#F00', + fontSize:24, + fontFamily:'微软雅黑' + }, + data:['AUDIT分数1','AUDIT分数'] + }, + series: [ + { + name: 'AUDIT分数1', + type: 'bar', + stack: 'one', + itemStyle: + { + normal: {color: color[1]} + }, + barWidth : 60, + data:[2200,2900,3680,2200,2900,3680] + }, + { + name: 'AUDIT分数', + type: 'bar', + stack: 'one', + itemStyle: { + normal: { + color: '#F90', + label: { + show: true, + position: 'insideTop', + textStyle: { + color: '#000', + fontSize:24 + } + } + } + }, + barWidth : 50, + data: [1800,1100,320,1800,1100,320] + } + ] + }; + quality_chart.setOption(quality_option); + + //生产计划折线图 + var plan_data1=[]; + var plan_data2=[]; + var plan_xAxis=[]; + for (var i = 1; i <= 7; i++) { + plan_xAxis.push("3月"+i+"日"); + plan_data1.push(Math.round(Math.random() * 100)); + plan_data2.push(Math.round(Math.random() * 100)); + } + plan_chart = echarts.init(document.getElementById('plan')); + plan_option={ + xAxis: { + data:plan_xAxis, + axisLabel: { + textStyle: { + color: '#B7E1FF', + fontSize:24 + } + }, + axisLine:{ + lineStyle:{ + color:'#09F' + } + }, + axisTick:{ + lineStyle:{ + color:'#09F' + } + } + }, + yAxis: { + inverse: false, + splitArea: {show: false}, + axisLine: {show: false}, + axisTick: {show: false}, + axisLabel: { + textStyle: { + color: '#B7E1FF', + fontSize:24, + fontFamily:'Arial', + } + }, + splitLine :{ + lineStyle:{ + color:'#09F' + } + } + }, + tooltip: { + trigger: 'axis', + textStyle: { + color: '#FFF', + fontSize:24 + } + }, + grid: { + left: 100 + }, + legend:{ + show:false, + top: 'bottom', + textStyle: { + color: '#F00', + fontSize:24 + }, + data:['计划完成数','实际完成数'] + }, + series: [ + { + name: '计划完成数', + type: 'bar', + itemStyle: + { + normal: {color: color[1]}, + emphasis: {color: color[2]} + }, + barWidth : 40, + data:plan_data1 + }, + { + name: '实际完成数', + type: 'line', + itemStyle: { + normal: { + color: '#F90', + label: { + show: true, + position: 'top', + textStyle: { + color: '#CCC', + fontSize:24 + } + }, + lineStyle:{ + color:'#F90', + width:4 + } + }, + emphasis: { + color: '#FF0' + } + }, + symbolSize: 24, + data: plan_data2 + } + ] + }; + plan_chart.setOption(plan_option); + + //轮番显示tips + function clock(){ + showToolTip_highlight(plan_chart); + } + setInterval(clock, 5000); + + //地图开始 + var map_chart = echarts.init(document.getElementById('map')); + + var CCData = [ + [{name:'长春'}, {name:'上海',value:95}], + [{name:'长春'}, {name:'广州',value:90}], + [{name:'长春'}, {name:'大连',value:80}], + [{name:'长春'}, {name:'南宁',value:70}], + [{name:'长春'}, {name:'南昌',value:60}], + [{name:'长春'}, {name:'拉萨',value:50}], + [{name:'长春'}, {name:'长春',value:40}], + [{name:'长春'}, {name:'包头',value:30}], + [{name:'长春'}, {name:'重庆',value:20}], + [{name:'长春'}, {name:'北京',value:10}] + ]; + + var series = []; + [['长春', CCData]].forEach(function (item, i) { + series.push({ + name: '一汽汽车销售', + type: 'lines', + zlevel: 1, + effect: { + show: true, + period: 6, + trailLength: 0.7, + color: '#FF0', + symbolSize: 3 + }, + lineStyle: { + normal: { + color: '#000', + width: 0, + curveness: 0.2 + } + }, + data: convertData(item[1]) + }, + { + name: '一汽汽车销售', + type: 'lines', + zlevel: 2, + symbol: ['none', 'arrow'], + symbolSize: 10, + lineStyle: { + normal: { + color: '#FF0', + width: 1, + opacity: 0.6, + curveness: 0.2 + } + }, + data: convertData(item[1]) + }, + { + name: '一汽汽车销售', + type: 'effectScatter', + coordinateSystem: 'geo', + zlevel: 2, + rippleEffect: { + brushType: 'stroke' + }, + label: { + normal: { + show: true, + position: 'right', + formatter: '{b}' + } + }, + symbolSize: function (val) { + return 15; + }, + itemStyle: { + normal: { + color: '#FFF', + label: { + show: true, + position: 'top', + textStyle: { + color: '#FFF', + fontSize:24 + } + } + } + }, + data: item[1].map(function (dataItem) { + return { + name: dataItem[1].name, + value: geoCoordMap[dataItem[1].name].concat([dataItem[1].value]) + }; + }) + }); + }); + + map_option = { + backgroundColor: '', + title : { + show:false, + text: '一汽汽车销售地域分布示意图', + subtext: '截至2018年05月04日', + left: 'center', + top:10, + textStyle : { + color: '#09F', + fontSize:32 + }, + subtextStyle:{ + color: '#09F', + fontSize:24 + } + }, + tooltip : { + trigger: 'item' + }, + legend: { + show:false, + orient: 'vertical', + top: 'bottom', + left: 'right', + data:['一汽汽车销售'], + textStyle: { + color: '#000' + }, + selectedMode: 'single' + }, + geo: { + map: 'china', + label: { + emphasis: { + show: false + } + }, + roam: true, + itemStyle: { + normal: { + areaColor: '#09F', + borderColor: '#09F', + opacity:0.5 + }, + emphasis: { + areaColor: '#09F', + borderColor: '#09F', + opacity:0.8 + } + } + }, + series: series + }; + + map_chart.setOption(map_option, true); + + resresh(); + + //开始定时刷新 + setInterval(resresh, 5*1000); +}); + +var convertData = function (data) { + var res = []; + for (var i = 0; i < data.length; i++) { + var dataItem = data[i]; + var fromCoord = geoCoordMap[dataItem[0].name]; + var toCoord = geoCoordMap[dataItem[1].name]; + if (fromCoord && toCoord) { + res.push({ + fromName: dataItem[0].name, + toName: dataItem[1].name, + coords: [fromCoord, toCoord] + }); + } + } + return res; +}; + +function showToolTip_highlight(mychart) +{ + var echartObj = mychart; + + // 高亮当前图形 + var highlight =setInterval(function() + { + echartObj.dispatchAction({ + type: 'highlight', + seriesIndex: 0, + dataIndex: indexnum + }); + + echartObj.dispatchAction({ + type: 'showTip', + seriesIndex: 0, + dataIndex: indexnum + }); + clearInterval(highlight); + indexnum = indexnum + 1; + if(indexnum>=7) indexnum=0; + },1000); +} + +//定时刷新数据 +function resresh() +{ + var myDate = new Date(); + + // $('#refresh').html("数据刷新中..."); + + //年月日刷新 + $('#currentYear').html(myDate.getFullYear()+"年"); + $('#currentMonth').html(insertZero(myDate.getMonth()+1)+"月"); + $('#currentDay').html(insertZero(myDate.getDate())+"日"); + $('#currentDate').html(myDate.getFullYear()+"/"+insertZero(myDate.getMonth()+1)+"/"+insertZero(myDate.getDate())); + + option_gauge.series[0].axisLabel.show=true; + option_gauge.series[0].axisLine.lineStyle.color=[[0.2, color[0]],[0.8, color[1]],[1, color[2]]] + + var maxg=Math.round(Math.random()*500)+400; + var n1=Math.round(Math.random()*(maxg-100))+100; + var n2=Math.round(Math.random()*(n1-50))+50; + var n3=(n2/maxg*100).toFixed(2); + + //年进度条 + option_Progress.title.text ="计划生产"; + option_Progress.series[0].data[0].value = maxg; + option_Progress.title.subtext =maxg+"台"; + option_Progress.series[0].data[1].value =0; + y_gauge1.setOption(option_Progress); + + option_Progress.title.text ="已接订单"; + option_Progress.series[0].data[0].value = n1; + option_Progress.title.subtext =n1+"台"; + option_Progress.series[0].data[1].value =(maxg-n1); + y_gauge2.setOption(option_Progress); + + option_Progress.title.text ="已经完成"; + option_Progress.series[0].data[0].value = n2; + option_Progress.title.subtext =n2+"台"; + option_Progress.series[0].data[1].value =(maxg-n2); + y_gauge3.setOption(option_Progress); + + option_Progress.title.text ="计划完成率"; + option_Progress.series[0].data[0].value = n3; + option_Progress.title.subtext =n3+"%"; + option_Progress.series[0].data[1].value =(100-n3); + y_gauge4.setOption(option_Progress); + + //月进度条 + maxg=Math.round(Math.random()*maxg)+1; + n1=Math.round(Math.random()*maxg)+1; + n2=Math.round(Math.random()*n1); + n3=(n2/maxg*100).toFixed(2); + + option_Progress.title.text ="计划生产"; + option_Progress.series[0].data[0].value = maxg; + option_Progress.title.subtext =maxg+"台"; + option_Progress.series[0].data[1].value =0; + m_gauge1.setOption(option_Progress); + + option_Progress.title.text ="已接订单"; + option_Progress.series[0].data[0].value = n1; + option_Progress.title.subtext =n1+"台"; + option_Progress.series[0].data[1].value =(maxg-n1); + m_gauge2.setOption(option_Progress); + + option_Progress.title.text ="已经完成"; + option_Progress.series[0].data[0].value = n2; + option_Progress.title.subtext =n2+"台"; + option_Progress.series[0].data[1].value =(maxg-n2); + m_gauge3.setOption(option_Progress); + + option_Progress.title.text ="计划完成率"; + option_Progress.series[0].data[0].value = n3; + option_Progress.title.subtext =n3+"%"; + option_Progress.series[0].data[1].value =(100-n3); + m_gauge4.setOption(option_Progress); + + //日进度条 + maxg=Math.round(Math.random()*maxg)+1; + n1=Math.round(Math.random()*maxg)+1; + n2=Math.round(Math.random()*n1); + n3=(n2/maxg*100).toFixed(2); + + option_Progress.title.text ="计划生产"; + option_Progress.series[0].data[0].value = maxg; + option_Progress.title.subtext =maxg+"台"; + option_Progress.series[0].data[1].value =0; + d_gauge1.setOption(option_Progress); + + option_Progress.title.text ="已接订单"; + option_Progress.series[0].data[0].value = n1; + option_Progress.title.subtext =n1+"台"; + option_Progress.series[0].data[1].value =(maxg-n1); + d_gauge2.setOption(option_Progress); + + option_Progress.title.text ="已经完成"; + option_Progress.series[0].data[0].value = n2; + option_Progress.title.subtext =n2+"台"; + option_Progress.series[0].data[1].value =(maxg-n2); + d_gauge3.setOption(option_Progress); + + option_Progress.title.text ="计划完成率"; + option_Progress.series[0].data[0].value = n3; + option_Progress.title.subtext =n3+"%"; + option_Progress.series[0].data[1].value =(100-n3); + d_gauge4.setOption(option_Progress); + + //仪表盘刷新 + option_gauge.series[0].axisLine.lineStyle.color=[[0.2, color[0]],[0.8, color[1]],[1, color[0]]]; + + option_gauge.series[0].data[0].value = (Math.random() * 100).toFixed(2) - 0; + option_gauge.series[0].data[0].name ="水"; + $('#vg1').html(option_gauge.series[0].data[0].value); + gauge1.setOption(option_gauge); + option_gauge.series[0].data[0].value = (Math.random() * 100).toFixed(2) - 0; + option_gauge.series[0].data[0].name ="电"; + $('#vg2').html(option_gauge.series[0].data[0].value); + gauge2.setOption(option_gauge); + option_gauge.series[0].data[0].value = (Math.random() * 100).toFixed(2) - 0; + option_gauge.series[0].data[0].name ="天然气"; + $('#vg3').html(option_gauge.series[0].data[0].value); + gauge3.setOption(option_gauge); + option_gauge.series[0].data[0].value = (Math.random() * 100).toFixed(2) - 0; + option_gauge.series[0].data[0].name ="压缩空气"; + $('#vg4').html(option_gauge.series[0].data[0].value); + gauge4.setOption(option_gauge); + option_gauge.series[0].data[0].value = (Math.random() * 100).toFixed(2) - 0; + option_gauge.series[0].data[0].name ="蒸汽"; + $('#vg5').html(option_gauge.series[0].data[0].value); + gauge5.setOption(option_gauge); + + //显示最后更新时间 + $('#refresh').html("最后刷新时间:"+myDate.toLocaleDateString()+" "+myDate.toLocaleTimeString()+""); +} + +//生成订单号 +function getOrderNumber(n) +{ + var no="000000"+n.toString(); + return no.substring(no.length-6); +} + +//前面补0 +function insertZero(n) +{ + var no="000000"+n.toString(); + return no.substring(no.length-2); +} \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/js/china.js b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/js/china.js new file mode 100644 index 00000000..917887e0 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/js/china.js @@ -0,0 +1,27 @@ +(function (root, factory) { + if (typeof define === 'function' && define.amd) { + // AMD. Register as an anonymous module. + define(['exports', 'echarts'], factory); + } else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') { + // CommonJS + factory(exports, require('echarts')); + } else { + // Browser globals + factory({}, root.echarts); + } +}(this, function (exports, echarts) { + var log = function (msg) { + if (typeof console !== 'undefined') { + console && console.error && console.error(msg); + } + } + if (!echarts) { + log('ECharts is not Loaded'); + return; + } + if (!echarts.registerMap) { + log('ECharts Map is not loaded') + return; + } + echarts.registerMap('china', {"type":"FeatureCollection","features":[{"id":"710000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@°Ü¯Û"],["@@ƛĴÕƊÉɼģºðʀ\\ƎsÆNŌÔĚäœnÜƤɊĂǀĆĴžĤNJŨxĚĮǂƺòƌ‚–âÔ®ĮXŦţƸZûЋƕƑGđ¨ĭMó·ęcëƝɉlÝƯֹÅŃ^Ó·śŃNjƏďíåɛGɉ™¿@ăƑŽ¥ĘWǬÏĶŁâ"],["@@\\p|WoYG¿¥I†j@¢"],["@@…¡‰@ˆV^RqˆBbAŒnTXeRz¤Lž«³I"],["@@ÆEE—„kWqë @œ"],["@@fced"]],"encodeOffsets":[[[122886,24033]],[[123335,22980]],[[122375,24193]],[[122518,24117]],[[124427,22618]],[[124862,26043]]]},"properties":{"cp":[121.509062,25.044332],"name":"台湾","childNum":6}},{"id":"130000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@o~†Z]‚ªr‰ºc_ħ²G¼s`jΟnüsœłNX_“M`ǽÓnUK…Ĝēs¤­©yrý§uģŒc†JŠ›e"],["@@U`Ts¿m‚"],["@@oºƋÄd–eVŽDJj£€J|Ådz•Ft~žKŨ¸IÆv|”‡¢r}膎onb˜}`RÎÄn°ÒdÞ²„^®’lnÐèĄlðӜ×]ªÆ}LiĂ±Ö`^°Ç¶p®đDcœŋ`–ZÔ’¶êqvFƚ†N®ĆTH®¦O’¾ŠIbÐã´BĐɢŴÆíȦp–ĐÞXR€·nndOž¤’OÀĈƒ­Qg˜µFo|gȒęSWb©osx|hYh•gŃfmÖĩnº€T̒Sp›¢dYĤ¶UĈjl’ǐpäìë|³kÛfw²Xjz~ÂqbTŠÑ„ěŨ@|oM‡’zv¢ZrÃVw¬ŧĖ¸fŒ°ÐT€ªqŽs{Sž¯r æÝlNd®²Ğ džiGʂJ™¼lr}~K¨ŸƐÌWö€™ÆŠzRš¤lêmĞL΄’@¡|q]SvK€ÑcwpÏρ†ĿćènĪWlĄkT}ˆJ”¤~ƒÈT„d„™pddʾĬŠ”ŽBVt„EÀ¢ôPĎƗè@~‚k–ü\\rÊĔÖæW_§¼F˜†´©òDòj’ˆYÈrbĞāøŀG{ƀ|¦ðrb|ÀH`pʞkv‚GpuARhÞÆǶgʊTǼƹS£¨¡ù³ŘÍ]¿Ây™ôEP xX¶¹܇O¡“gÚ¡IwÃ鑦ÅB‡Ï|Ç°…N«úmH¯‹âŸDùŽyŜžŲIÄuШDž•¸dɂ‡‚FŸƒ•›Oh‡đ©OŸ›iÃ`ww^ƒÌkŸ‘ÑH«ƇǤŗĺtFu…{Z}Ö@U‡´…ʚLg®¯Oı°ÃwŸ ^˜—€VbÉs‡ˆmA…ê]]w„§›RRl£‡ȭµu¯b{ÍDěïÿȧŽuT£ġƒěŗƃĝ“Q¨fV†Ƌ•ƅn­a@‘³@šď„yýIĹÊKšŭfċŰóŒxV@tˆƯŒJ”]eƒR¾fe|rHA˜|h~Ėƍl§ÏŠlTíb ØoˆÅbbx³^zÃĶš¶Sj®A”yÂhðk`š«P€”ˈµEF†Û¬Y¨Ļrõqi¼‰Wi°§’б´°^[ˆÀ|ĠO@ÆxO\\tŽa\\tĕtû{ġŒȧXýĪÓjùÎRb›š^ΛfK[ݏděYfíÙTyŽuUSyŌŏů@Oi½’éŅ­aVcř§ax¹XŻác‡žWU£ôãºQ¨÷Ñws¥qEH‰Ù|‰›šYQoŕÇyáĂ£MðoťÊ‰P¡mšWO¡€v†{ôvîēÜISpÌhp¨ ‘j†deŔQÖj˜X³à™Ĉ[n`Yp@Už–cM`’RKhŒEbœ”pŞlNut®Etq‚nsÁŠgA‹iú‹oH‡qCX‡”hfgu“~ϋWP½¢G^}¯ÅīGCŸÑ^ãziMáļMTÃƘrMc|O_ž¯Ŏ´|‡morDkO\\mĆJfl@cĢ¬¢aĦtRıҙ¾ùƀ^juųœK­ƒUFy™—Ɲ…›īÛ÷ąV×qƥV¿aȉd³B›qPBm›aËđŻģm“Å®VŠ¹d^K‡KoŸnYg“¯Xhqa”Ldu¥•ÍpDž¡KąÅƒkĝęěhq‡}HyÓ]¹ǧ£…Í÷¿qᵧš™g‘¤o^á¾ZE‡¤i`ij{n•ƒOl»ŸWÝĔįhg›F[¿¡—ßkOüš_‰€ū‹i„DZàUtėGylƒ}ŒÓM}€jpEC~¡FtoQi‘šHkk{Ãmï‚"]],"encodeOffsets":[[[119712,40641]],[[121616,39981]],[[116462,37237]]]},"properties":{"cp":[114.502461,38.045474],"name":"河北","childNum":3}},{"id":"140000","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@Þĩ҃S‰ra}Á€yWix±Üe´lè“ßÓǏok‘ćiµVZģ¡coœ‘TS˹ĪmnÕńe–hZg{gtwªpXaĚThȑp{¶Eh—®RćƑP¿£‘Pmc¸mQÝW•ďȥoÅîɡųAďä³aωJ‘½¥PG­ąSM­™…EÅruµé€‘Yӎ•Ō_d›ĒCo­Èµ]¯_²ÕjāŽK~©ÅØ^ԛkïçămϑk]­±ƒcݯÑÃmQÍ~_a—pm…~ç¡q“ˆu{JÅŧ·Ls}–EyÁÆcI{¤IiCfUc•ƌÃp§]웫vD@¡SÀ‘µM‚ÅwuŽYY‡¡DbÑc¡hƒ×]nkoQdaMç~eD•ÛtT‰©±@¥ù@É¡‰ZcW|WqOJmĩl«ħşvOÓ«IqăV—¥ŸD[mI~Ó¢cehiÍ]Ɠ~ĥqXŠ·eƷœn±“}v•[ěďŽŕ]_‘œ•`‰¹ƒ§ÕōI™o©b­s^}Ét±ū«³p£ÿ·Wµ|¡¥ăFÏs׌¥ŅxŸÊdÒ{ºvĴÎêÌɊ²¶€ü¨|ÞƸµȲ‘LLúÉƎ¤ϊęĔV`„_bª‹S^|ŸdŠzY|dz¥p†ZbÆ£¶ÒK}tĦÔņƠ‚PYzn€ÍvX¶Ěn ĠÔ„zý¦ª˜÷žÑĸَUȌ¸‚dòÜJð´’ìúNM¬ŒXZ´‘¤ŊǸ_tldIš{¦ƀðĠȤ¥NehXnYG‚‡R° ƬDj¬¸|CĞ„Kq‚ºfƐiĺ©ª~ĆOQª ¤@ìǦɌ²æBŒÊ”TœŸ˜ʂōĖ’šĴŞ–ȀœÆÿȄlŤĒö„t”νî¼ĨXhŒ‘˜|ªM¤Ðz"],"encodeOffsets":[[116874,41716]]},"properties":{"cp":[112.549248,37.857014],"name":"山西","childNum":1}},{"id":"150000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@Č^â£Ăh–šĖMÈÄw‚\\fŦ°W ¢¾luŸD„wŠ\\̀ʉÌÛM…Ā[bӞEn}¶Vc…ê“sƒ–›¯PqƒFB…‰|S•³C|kñ•H‹d‘iÄ¥sˆʼnő…PóÑÑE^‘ÅPpy_YtS™hQ·aHwsOnʼnÚs©iqj›‰€USiº]ïWš‰«gW¡A–R붛ijʕ…Œů`çõh]y»ǃŸǛҤxÒm~zf}pf|ÜroÈzrKÈĵSƧ„ż؜Ġu¦ö"],["@@sKCš…GS|úþX”gp›{ÁX¿Ÿć{ƱȏñZáĔyoÁhA™}ŅĆfdʼn„_¹„Y°ėǩÑ¡H¯¶oMQqð¡Ë™|‘Ñ`ƭŁX½·óۓxğįÅcQ‡ˆ“ƒs«tȋDžF“Ÿù^i‘t«Č¯[›hAi©á¥ÇĚ×l|¹y¯YȵƓ‹ñǙµï‚ċ™Ļ|Dœ™üȭ¶¡˜›oŽäÕG\\ďT¿Òõr¯œŸLguÏYęRƩšɷŌO\\İТæ^Ŋ IJȶȆbÜGŽĝ¬¿ĚVĎgª^íu½jÿĕęjık@Ľƒ]ėl¥Ë‡ĭûÁ„ƒėéV©±ćn©­ȇžÍq¯½•YÃÔʼn“ÉNѝÅÝy¹NqáʅDǡËñ­ƁYÅy̱os§ȋµʽǘǏƬɱà‘ưN¢ƔÊuľýľώȪƺɂļžxœZĈ}ÌʼnŪ˜ĺœŽĭFЛĽ̅ȣͽÒŵìƩÇϋÿȮǡŏçƑůĕ~Ǎ›¼ȳÐUf†dIxÿ\\G ˆzâɏÙOº·pqy£†@ŒŠqþ@Ǟ˽IBäƣzsÂZ†ÁàĻdñ°ŕzéØűzșCìDȐĴĺf®ŽÀľưø@ɜÖÞKĊŇƄ§‚͑těï͡VAġÑÑ»d³öǍÝXĉĕÖ{þĉu¸ËʅğU̎éhɹƆ̗̮ȘNJ֥ड़ࡰţાíϲäʮW¬®ҌeרūȠkɬɻ̼ãüfƠSצɩςåȈHϚÎKdzͲOðÏȆƘ¼CϚǚ࢚˼ФԂ¤ƌžĞ̪Qʤ´¼mȠJˀŸƲÀɠmǐnǔĎȆÞǠN~€ʢĜ‚¶ƌĆĘźʆȬ˪ĚĒ¸ĞGȖƴƀj`ĢçĶāàŃºēĢƒĖćšYŒÀŎüôQÐÂŎŞdžŞêƖš˜oˆDĤÕºÑǘÛˤ³̀gńƘĔÀ^žªƂ`ªt¾äƚêĦĀ¼Ð€Ĕǎ¨Ȕ»͠^ˮÊȦƤøxRrŜH¤¸ÂxDĝŒ|ø˂˜ƮÐ¬ɚwɲFjĔ²Äw°dždÀɞ_ĸdîàŎjʜêTЪŌ‡ŜWÈ|tqĢUB~´°ÎFC•ŽU¼pĀēƄN¦¾O¶ŠłKĊOj“Ě”j´ĜYp˜{¦„ˆSĚÍ\\Tš×ªV–÷Ší¨ÅDK°ßtŇĔKš¨ǵÂcḷ̌ĚǣȄĽF‡lġUĵœŇ‹ȣFʉɁƒMğįʏƶɷØŭOǽ«ƽū¹Ʊő̝Ȩ§ȞʘĖiɜɶʦ}¨֪ࠜ̀ƇǬ¹ǨE˦ĥªÔêFŽxúQ„Er´W„rh¤Ɛ \\talĈDJ˜Ü|[Pll̚¸ƎGú´Pž¬W¦†^¦–H]prR“n|or¾wLVnÇIujkmon£cX^Bh`¥V”„¦U¤¸}€xRj–[^xN[~ªŠxQ„‚[`ªHÆÂExx^wšN¶Ê˜|¨ì†˜€MrœdYp‚oRzNy˜ÀDs~€bcfÌ`L–¾n‹|¾T‚°c¨È¢a‚r¤–`[|òDŞĔöxElÖdH„ÀI`„Ď\\Àì~ƎR¼tf•¦^¢ķ¶e”ÐÚMŒptgj–„ɡČÅyġLû™ŇV®ŠÄÈƀ†Ď°P|ªVV†ªj–¬ĚÒêp¬–E|ŬÂc|ÀtƐK fˆ{ĘFĒœƌXƲąo½Ę‘\\¥–o}›Ûu£ç­kX‘{uĩ«āíÓUŅßŢq€Ť¥lyň[€oi{¦‹L‡ń‡ðFȪȖ”ĒL„¿Ì‹ˆfŒ£K£ʺ™oqNŸƒwğc`ue—tOj×°KJ±qƒÆġm‰Ěŗos¬…qehqsuœƒH{¸kH¡Š…ÊRǪÇƌbȆ¢´ä܍¢NìÉʖ¦â©Ż؛Ç@Vu»A—ylßí¹ĵê…ÝlISò³C¹Ìâ„²i¶’Ìoú^H“²CǜңDŽ z¼g^èöŰ_‹‚–†IJĕꄜ}gÁnUI«m‰…„‹]j‡vV¼euhwqA„aW˜ƒ_µj…»çjioQR¹ēÃßt@r³[ÛlćË^ÍÉáG“›OUۗOB±•XŸkŇ¹£k|e]ol™ŸkVͼÕqtaÏõjgÁ£§U^Œ”RLˆËnX°Ç’Bz†^~wfvˆypV ¯„ƫĉ˭ȫƗŷɿÿĿƑ˃ĝÿÃǃßËőó©ǐȍŒĖM×ÍEyx‹þp]Évïè‘vƀnÂĴÖ@‚‰†V~Ĉ™Š³MEˆĸÅĖt—ējyÄDXÄxGQuv_›i¦aBçw‘˛wD™©{ŸtāmQ€{EJ§KPśƘƿ¥@‰sCT•É}ɃwˆƇy±ŸgÑ“}T[÷kÐ禫…SÒ¥¸ëBX½‰HáŵÀğtSÝÂa[ƣ°¯¦P]£ġ“–“Òk®G²„èQ°óMq}EŠóƐÇ\\ƒ‡@áügQ͋u¥Fƒ“T՛¿Jû‡]|mvāÎYua^WoÀa·­ząÒot׶CLƗi¯¤mƎHNJ¤îìɾŊìTdåwsRÖgĒųúÍġäÕ}Q¶—ˆ¿A•†‹[¡Œ{d×uQAƒ›M•xV‹vMOmăl«ct[wº_šÇʊŽŸjb£ĦS_é“QZ“_lwgOiýe`YYLq§IÁˆdz£ÙË[ÕªuƏ³ÍT—s·bÁĽäė[›b[ˆŗfãcn¥îC¿÷µ[ŏÀQ­ōšĉm¿Á^£mJVm‡—L[{Ï_£›F¥Ö{ŹA}…×Wu©ÅaųijƳhB{·TQqÙIķˑZđ©Yc|M¡…L•eVUóK_QWk’_ĥ‘¿ãZ•»X\\ĴuUƒè‡lG®ěłTĠğDєOrÍd‚ÆÍz]‹±…ŭ©ŸÅ’]ŒÅÐ}UË¥©Tċ™ïxgckfWgi\\ÏĒ¥HkµE˜ë{»ÏetcG±ahUiñiWsɁˆ·c–C‚Õk]wȑ|ća}w…VaĚ᠞ŒG°ùnM¬¯†{ȈÐÆA’¥ÄêJxÙ¢”hP¢Ûˆº€µwWOŸóFŽšÁz^ÀŗÎú´§¢T¤ǻƺSė‰ǵhÝÅQgvBHouʝl_o¿Ga{ïq{¥|ſĿHĂ÷aĝÇq‡Z‘ñiñC³ª—…»E`¨åXēÕqÉû[l•}ç@čƘóO¿¡ƒFUsA‰“ʽīccšocƒ‚ƒÇS}„“£‡IS~ălkĩXçmĈ…ŀЂoÐdxÒuL^T{r@¢‘žÍƒĝKén£kQ™‰yšÅõËXŷƏL§~}kqš»IHėDžjĝŸ»ÑÞoŸå°qTt|r©ÏS‹¯·eŨĕx«È[eMˆ¿yuˆ‘pN~¹ÏyN£{©’—g‹ħWí»Í¾s“əšDž_ÃĀɗ±ą™ijĉʍŌŷ—S›É“A‹±åǥɋ@럣R©ąP©}ĹªƏj¹erƒLDĝ·{i«ƫC£µ"]],"encodeOffsets":[[[127444,52594]],[[113793,40312]]]},"properties":{"cp":[111.670801,40.818311],"name":"内蒙古","childNum":2}},{"id":"210000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@L–Ž@@s™a"],["@@MnNm"],["@@d‚c"],["@@eÀ‚C@b‚“‰"],["@@f‡…Xwkbr–Ä`qg"],["@@^jtW‘Q"],["@@~ Y]c"],["@@G`ĔN^_¿Z‚ÃM"],["@@iX¶B‹Y"],["@@„YƒZ"],["@@L_{Epf"],["@@^WqCT\\"],["@@\\[“‹§t|”¤_"],["@@m`n_"],["@@Ïxnj{q_×^Giip"],["@@@œé^B†‡ntˆaÊU—˜Ÿ]x ¯ÄPIJ­°h€ʙK³†VˆÕ@Y~†|EvĹsDŽ¦­L^p²ŸÒG ’Ël]„xxÄ_˜fT¤Ď¤cŽœP„–C¨¸TVjbgH²sdÎdHt`Bˆ—²¬GJję¶[ÐhjeXdlwhšðSȦªVÊπ‹Æ‘Z˜ÆŶ®²†^ŒÎyÅÎcPqń“ĚDMħĜŁH­ˆk„çvV[ij¼W–‚YÀäĦ’‘`XlžR`žôLUVžfK–¢†{NZdĒª’YĸÌÚJRr¸SA|ƴgŴĴÆbvªØX~†źBŽ|¦ÕœEž¤Ð`\\|Kˆ˜UnnI]¤ÀÂĊnŎ™R®Ő¿¶\\ÀøíDm¦ÎbŨab‰œaĘ\\ľã‚¸a˜tÎSƐ´©v\\ÖÚÌǴ¤Â‡¨JKr€Z_Z€fjþhPkx€`Y”’RIŒjJcVf~sCN¤ ˆE‚œhæm‰–sHy¨SðÑÌ\\\\ŸĐRZk°IS§fqŒßýáЍÙÉÖ[^¯ǤŲ„ê´\\¦¬ĆPM¯£Ÿˆ»uïpùzEx€žanµyoluqe¦W^£ÊL}ñrkqWňûP™‰UP¡ôJŠoo·ŒU}£Œ„[·¨@XŒĸŸ“‹‹DXm­Ûݏº‡›GU‹CÁª½{íĂ^cj‡k“¶Ã[q¤“LÉö³cux«zZfƒ²BWÇ®Yß½ve±ÃC•ý£W{Ú^’q^sÑ·¨‹ÍOt“¹·C¥‡GD›rí@wÕKţ݋˜Ÿ«V·i}xËÍ÷‘i©ĝ‡ɝǡ]ƒˆ{c™±OW‹³Ya±Ÿ‰_穂Hžĕoƫ€Ňqƒr³‰Lys[„ñ³¯OS–ďOMisZ†±ÅFC¥Pq{‚Ã[Pg}\\—¿ghćO…•k^ģÁFıĉĥM­oEqqZûěʼn³F‘¦oĵ—hŸÕP{¯~TÍlª‰N‰ßY“Ð{Ps{ÃVU™™eĎwk±ʼnVÓ½ŽJãÇÇ»Jm°dhcÀff‘dF~ˆ€ĀeĖ€d`sx² šƒ®EżĀdQ‹Âd^~ăÔHˆ¦\\›LKpĄVez¤NP ǹӗR™ÆąJSh­a[¦´Âghwm€BÐ¨źhI|žVVŽ—Ž|p] Â¼èNä¶ÜBÖ¼“L`‚¼bØæŒKV”ŸpoœúNZÞÒKxpw|ÊEMnzEQšŽIZ”ŽZ‡NBˆčÚFÜçmĩ‚WĪñt‘ÞĵÇñZ«uD‚±|Əlij¥ãn·±PmÍa‰–da‡ CL‡Ǒkùó¡³Ï«QaċϑOÃ¥ÕđQȥċƭy‹³ÃA"]],"encodeOffsets":[[[123686,41445]],[[126019,40435]],[[124393,40128]],[[126117,39963]],[[125322,40140]],[[126686,40700]],[[126041,40374]],[[125584,40168]],[[125453,40165]],[[125362,40214]],[[125280,40291]],[[125774,39997]],[[125976,40496]],[[125822,39993]],[[125509,40217]],[[122731,40949]]]},"properties":{"cp":[123.429096,41.796767],"name":"辽宁","childNum":16}},{"id":"220000","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@‘p䔳PClƒFbbÍzš€wBG’ĭ€Z„Åi“»ƒlY­ċ²SgŽkÇ£—^S‰“qd¯•‹R…©éŽ£¯S†\\cZ¹iűƏCuƍÓX‡oR}“M^o•£…R}oªU­F…uuXHlEŕ‡€Ï©¤ÛmTŽþ¤D–²ÄufàÀ­XXȱAe„yYw¬dvõ´KÊ£”\\rµÄl”iˆdā]|DÂVŒœH¹ˆÞ®ÜWnŒC”Œķ W‹§@\\¸‹ƒ~¤‹Vp¸‰póIO¢ŠVOšŇürXql~òÉK]¤¥Xrfkvzpm¶bwyFoúvð‡¼¤ N°ąO¥«³[ƒéǡű_°Õ\\ÚÊĝŽþâőàerR¨­JYlďQ[ ÏYëЧTGz•tnŠß¡gFkMŸāGÁ¤ia É‰™È¹`\\xs€¬dĆkNnuNUŠ–užP@‚vRY¾•–\\¢…ŒGªóĄ~RãÖÎĢù‚đŴÕhQŽxtcæëSɽʼníëlj£ƍG£nj°KƘµDsØÑpyƸ®¿bXp‚]vbÍZuĂ{nˆ^IüœÀSք”¦EŒvRÎûh@℈[‚Əȉô~FNr¯ôçR±ƒ­HÑl•’Ģ–^¤¢‚OðŸŒævxsŒ]ÞÁTĠs¶¿âƊGW¾ìA¦·TѬ†è¥€ÏÐJ¨¼ÒÖ¼ƒƦɄxÊ~S–tD@ŠĂ¼Ŵ¡jlºWžvЉˆzƦZЎ²CH— „Axiukd‹ŒGgetqmcžÛ£Ozy¥cE}|…¾cZ…k‚‰¿uŐã[oxGikfeäT@…šSUwpiÚFM©’£è^ڟ‚`@v¶eň†f h˜eP¶žt“äOlÔUgƒÞzŸU`lœ}ÔÆUvØ_Ō¬Öi^ĉi§²ÃŠB~¡Ĉ™ÚEgc|DC_Ȧm²rBx¼MÔ¦ŮdĨÃâYx‘ƘDVÇĺĿg¿cwÅ\\¹˜¥Yĭlœ¤žOv†šLjM_a W`zļMž·\\swqÝSA‡š—q‰Śij¯Š‘°kŠRē°wx^Đkǂғ„œž“œŽ„‹\\]˜nrĂ}²ĊŲÒøãh·M{yMzysěnĒġV·°“G³¼XÀ““™¤¹i´o¤ŃšŸÈ`̃DzÄUĞd\\i֚ŒˆmÈBĤÜɲDEh LG¾ƀľ{WaŒYÍȏĢĘÔRîĐj‹}Ǟ“ccj‡oUb½š{“h§Ǿ{K‹ƖµÎ÷žGĀÖŠåưÎs­l›•yiē«‹`姝H¥Ae^§„GK}iã\\c]v©ģZ“mÃ|“[M}ģTɟĵ‘Â`À–çm‰‘FK¥ÚíÁbXš³ÌQґHof{‰]e€pt·GŋĜYünĎųVY^’˜ydõkÅZW„«WUa~U·Sb•wGçǑ‚“iW^q‹F‚“›uNĝ—·Ew„‹UtW·Ýďæ©PuqEzwAV•—XR‰ãQ`­©GŒM‡ehc›c”ďϝd‡©ÑW_ϗYƅŒ»…é\\ƒɹ~ǙG³mØ©BšuT§Ĥ½¢Ã_ý‘L¡‘ýŸqT^rme™\\Pp•ZZbƒyŸ’uybQ—efµ]UhĿDCmûvašÙNSkCwn‰cćfv~…Y‹„ÇG"],"encodeOffsets":[[130196,42528]]},"properties":{"cp":[125.3245,43.886841],"name":"吉林","childNum":1}},{"id":"230000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@ƨƒĶTLÇyqpÇÛqe{~oyen}s‰`q‡iXG”ù]Ëp½“©lɇÁp]Þñ´FÔ^f‘äîºkà˜z¼BUvÈ@"],["@@UƒµNÿ¥īè灋•HÍøƕ¶LŒǽ|g¨|”™Ža¾pViˆdd”~ÈiŒíďÓQġėǐZ΋ŽXb½|ſÃH½ŸKFgɱCģÛÇA‡n™‹jÕc[VĝDZÃ˄Ç_™ £ń³pŽj£º”š¿”»WH´¯”U¸đĢmžtĜyzzNN|g¸÷äűѱĉā~mq^—Œ[ƒ”››”ƒǁÑďlw]¯xQĔ‰¯l‰’€°řĴrŠ™˜BˆÞTxr[tŽ¸ĻN_yŸX`biN™Ku…P›£k‚ZĮ—¦[ºxÆÀdhŽĹŀUÈƗCw’áZħÄŭcÓ¥»NAw±qȥnD`{ChdÙFćš}¢‰A±Äj¨]ĊÕjŋ«×`VuÓś~_kŷVÝyh„“VkÄãPs”Oµ—fŸge‚Ň…µf@u_Ù ÙcŸªNªÙEojVx™T@†ãSefjlwH\\pŏäÀvŠŽlY†½d{†F~¦dyz¤PÜndsrhf‹HcŒvlwjFœ£G˜±DύƥY‡yϊu¹XikĿ¦ÏqƗǀOŜ¨LI|FRĂn sª|Cš˜zxAè¥bœfudTrFWÁ¹Am|˜ĔĕsķÆF‡´Nš‰}ć…UŠÕ@Áijſmužç’uð^ÊýowŒFzØÎĕNőžǏȎôªÌŒDŽàĀÄ˄ĞŀƒʀĀƘŸˮȬƬĊ°ƒUŸzou‡xe]}Ž…AyȑW¯ÌmK‡“Q]‹Īºif¸ÄX|sZt|½ÚUΠlkš^p{f¤lˆºlÆW –€A²˜PVܜPH”Êâ]ÎĈÌÜk´\\@qàsĔÄQºpRij¼èi†`¶—„bXƒrBgxfv»ŽuUiˆŒ^v~”J¬mVp´£Œ´VWrnP½ì¢BX‚¬h™ŠðX¹^TjVœŠriªj™tŊÄm€tPGx¸bgRšŽsT`ZozÆO]’ÒFô҆Oƒ‡ŊŒvŞ”p’cGŒêŠsx´DR–Œ{A†„EOr°Œ•žx|íœbˆ³Wm~DVjºéNN†Ëܲɶ­GƒxŷCStŸ}]ûō•SmtuÇÃĕN•™āg»šíT«u}ç½BĵÞʣ¥ëÊ¡Mێ³ãȅ¡ƋaǩÈÉQ‰†G¢·lG|›„tvgrrf«†ptęŘnŠÅĢr„I²¯LiØsPf˜_vĠd„xM prʹšL¤‹¤‡eˌƒÀđK“žïÙVY§]I‡óáĥ]ķ†Kˆ¥Œj|pŇ\\kzţ¦šnņäÔVĂîĪ¬|vW’®l¤èØr‚˜•xm¶ă~lÄƯĄ̈́öȄEÔ¤ØQĄ–Ą»ƢjȦOǺ¨ìSŖÆƬy”Qœv`–cwƒZSÌ®ü±DŽ]ŀç¬B¬©ńzƺŷɄeeOĨS’Œfm Ċ‚ƀP̎ēz©Ċ‚ÄÕÊmgŸÇsJ¥ƔˆŊśæ’΁Ñqv¿íUOµª‰ÂnĦÁ_½ä@ê텣P}Ġ[@gġ}g“ɊדûÏWXá¢užƻÌsNͽƎÁ§č՛AēeL³àydl›¦ĘVçŁpśdžĽĺſʃQíÜçÛġԏsĕ¬—Ǹ¯YßċġHµ ¡eå`ļƒrĉŘóƢFì“ĎWøxÊk†”ƈdƬv|–I|·©NqńRŀƒ¤é”eŊœŀ›ˆàŀU²ŕƀB‚Q£Ď}L¹Îk@©ĈuǰųǨ”Ú§ƈnTËÇéƟÊcfčŤ^Xm‡—HĊĕË«W·ċëx³ǔķÐċJā‚wİ_ĸ˜Ȁ^ôWr­°oú¬Ħ…ŨK~”ȰCĐ´Ƕ£’fNÎèâw¢XnŮeÂÆĶŽ¾¾xäLĴĘlļO¤ÒĨA¢Êɚ¨®‚ØCÔ ŬGƠ”ƦYĜ‡ĘÜƬDJ—g_ͥœ@čŅĻA“¶¯@wÎqC½Ĉ»NŸăëK™ďÍQ“Ùƫ[«Ãí•gßÔÇOÝáW‘ñuZ“¯ĥ€Ÿŕā¡ÑķJu¤E Ÿå¯°WKɱ_d_}}vyŸõu¬ï¹ÓU±½@gÏ¿rýD‰†g…Cd‰µ—°MFYxw¿CG£‹Rƛ½Õ{]L§{qqąš¿BÇƻğëšܭNJË|c²}Fµ}›ÙRsÓpg±ŠQNqǫŋRwŕnéÑÉKŸ†«SeYR…ŋ‹@{¤SJ}šD Ûǖ֍Ÿ]gr¡µŷjqWÛham³~S«“„›Þ]"]],"encodeOffsets":[[[127123,51780]],[[134456,44547]]]},"properties":{"cp":[126.642464,45.756967],"name":"黑龙江","childNum":2}},{"id":"320000","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@cþÅPiŠ`ZŸRu¥É\\]~°ŽY`µ†Óƒ^phÁbnÀşúŽòa–ĬºTÖŒb‚˜e¦¦€{¸ZâćNpŒ©žHr|^ˆmjhŠSEb\\afv`sz^lkŽlj‹Ätg‹¤D˜­¾Xš¿À’|ДiZ„ȀåB·î}GL¢õcßjaŸyBFµÏC^ĭ•cÙt¿sğH]j{s©HM¢ƒQnDÀ©DaÜތ·jgàiDbPufjDk`dPOîƒhw¡ĥ‡¥šG˜ŸP²ĐobºrY†„î¶aHŢ´ ]´‚rılw³r_{£DB_Ûdåuk|ˆŨ¯F Cºyr{XFy™e³Þċ‡¿Â™kĭB¿„MvÛpm`rÚã”@Ę¹hågËÖƿxnlč¶Åì½Ot¾dJlŠVJʜǀœŞqvnOŠ^ŸJ”Z‘ż·Q}ê͎ÅmµÒ]Žƍ¦Dq}¬R^èĂ´ŀĻĊIԒtžIJyQŐĠMNtœR®òLh‰›Ěs©»œ}OӌGZz¶A\\jĨFˆäOĤ˜HYš†JvÞHNiÜaϚɖnFQlšNM¤ˆB´ĄNöɂtp–Ŭdf先‹qm¿QûŠùއÚb¤uŃJŴu»¹Ą•lȖħŴw̌ŵ²ǹǠ͛hĭłƕrçü±Y™xci‡tğ®jű¢KOķ•Coy`å®VTa­_Ā]ŐÝɞï²ʯÊ^]afYǸÃĆēĪȣJđ͍ôƋĝÄ͎ī‰çÛɈǥ£­ÛmY`ó£Z«§°Ó³QafusNıDž_k}¢m[ÝóDµ—¡RLčiXy‡ÅNïă¡¸iĔϑNÌŕoēdōîåŤûHcs}~Ûwbù¹£¦ÓCt‹OPrƒE^ÒoŠg™ĉIµžÛÅʹK…¤½phMŠü`o怆ŀ"],"encodeOffsets":[[121740,32276]]},"properties":{"cp":[118.767413,32.041544],"name":"江苏","childNum":1}},{"id":"330000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@E^dQ]K"],["@@jX^j‡"],["@@sfŠbU‡"],["@@qP\\xz[ck"],["@@‘Rƒ¢‚FX}°[s_"],["@@Cbœ\\—}"],["@@e|v\\la{u"],["@@v~u}"],["@@QxÂF¯}"],["@@¹nŒvÞs¯o"],["@@rSkUEj"],["@@bi­ZŒP"],["@@p[}INf"],["@@À¿€"],["@@¹dnbŒ…"],["@@rSŸBnR"],["@@g~h}"],["@@FlEk"],["@@OdPc"],["@@v[u\\"],["@@FjâL~wyoo~›sµL–\\"],["@@¬e¹aNˆ"],["@@\\nÔ¡q]L³ë\\ÿ®ŒQ֎"],["@@ÊA­©[¬"],["@@KxŒv­"],["@@@hlIk]"],["@@pW{o||j"],["@@Md|_mC"],["@@¢…X£ÏylD¼XˆtH"],["@@hlÜ[LykAvyfw^Ež›¤"],["@@fp¤Mus“R"],["@@®_ma~•LÁ¬šZ"],["@@iM„xZ"],["@@ZcYd"],["@@Z~dOSo|A¿qZv"],["@@@`”EN¡v"],["@@|–TY{"],["@@@n@m"],["@@XWkCT\\"],["@@ºwšZRkĕWO¢"],["@@™X®±Grƪ\\ÔáXq{‹"],["@@ůTG°ĄLHm°UC‹"],["@@¤Ž€aÜx~}dtüGæţŎíĔcŖpMËВjē¢·ðĄÆMzˆjWKĎ¢Q¶˜À_꒔_Bı€i«pZ€gf€¤Nrq]§ĂN®«H±‡yƳí¾×ŸīàLłčŴǝĂíÀBŖÕªˆŠÁŖHŗʼnåqûõi¨hÜ·ƒñt»¹ýv_[«¸m‰YL¯‰Qª…mĉÅdMˆ•gÇjcº«•ęœ¬­K­´ƒB«Âącoċ\\xKd¡gěŧ«®á’[~ıxu·Å”KsËɏc¢Ù\\ĭƛëbf¹­ģSƒĜkáƉÔ­ĈZB{ŠaM‘µ‰fzʼnfåÂŧįƋǝÊĕġć£g³ne­ą»@­¦S®‚\\ßðCšh™iqªĭiAu‡A­µ”_W¥ƣO\\lċĢttC¨£t`ˆ™PZäuXßBs‡Ļyek€OđġĵHuXBšµ]׌‡­­\\›°®¬F¢¾pµ¼kŘó¬Wät’¸|@ž•L¨¸µr“ºù³Ù~§WI‹ŸZWŽ®’±Ð¨ÒÉx€`‰²pĜ•rOògtÁZ}þÙ]„’¡ŒŸFK‚wsPlU[}¦Rvn`hq¬\\”nQ´ĘRWb”‚_ rtČFI֊kŠŠĦPJ¶ÖÀÖJĈĄTĚòžC ²@Pú…Øzœ©PœCÈڜĒ±„hŖ‡l¬â~nm¨f©–iļ«m‡nt–u†ÖZÜÄj“ŠLŽ®E̜Fª²iÊxبžIÈhhst"],["@@o\\V’zRZ}y"],["@@†@°¡mۛGĕ¨§Ianá[ýƤjfæ‡ØL–•äGr™"]],"encodeOffsets":[[[125592,31553]],[[125785,31436]],[[125729,31431]],[[125513,31380]],[[125223,30438]],[[125115,30114]],[[124815,29155]],[[124419,28746]],[[124095,28635]],[[124005,28609]],[[125000,30713]],[[125111,30698]],[[125078,30682]],[[125150,30684]],[[124014,28103]],[[125008,31331]],[[125411,31468]],[[125329,31479]],[[125626,30916]],[[125417,30956]],[[125254,30976]],[[125199,30997]],[[125095,31058]],[[125083,30915]],[[124885,31015]],[[125218,30798]],[[124867,30838]],[[124755,30788]],[[124802,30809]],[[125267,30657]],[[125218,30578]],[[125200,30562]],[[124968,30474]],[[125167,30396]],[[124955,29879]],[[124714,29781]],[[124762,29462]],[[124325,28754]],[[123990,28459]],[[125366,31477]],[[125115,30363]],[[125369,31139]],[[122495,31878]],[[125329,30690]],[[125192,30787]]]},"properties":{"cp":[120.153576,30.287459],"name":"浙江","childNum":45}},{"id":"340000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@^iuLX^"],["@@‚e©Ehl"],["@@°ZÆëϵmkǀwÌÕæhºgBĝâqÙĊz›ÖgņtÀÁÊÆá’hEz|WzqD¹€Ÿ°E‡ŧl{ævÜcA`¤C`|´qžxIJkq^³³ŸGšµbƒíZ…¹qpa±ď OH—¦™Ħˆx¢„gPícOl_iCveaOjCh߸i݋bÛªCC¿€m„RV§¢A|t^iĠGÀtÚs–d]ĮÐDE¶zAb àiödK¡~H¸íæAžǿYƒ“j{ď¿‘™À½W—®£ChŒÃsiŒkkly]_teu[bFa‰Tig‡n{]Gqªo‹ĈMYá|·¥f¥—őaSÕė™NµñĞ«ImŒ_m¿Âa]uĜp …Z_§{Cƒäg¤°r[_Yj‰ÆOdý“[ŽI[á·¥“Q_n‡ùgL¾mv™ˊBÜƶĊJhšp“c¹˜O]iŠ]œ¥ jtsggJǧw×jÉ©±›EFˍ­‰Ki”ÛÃÕYv…s•ˆm¬njĻª•§emná}k«ŕˆƒgđ²Ù›DǤ›í¡ªOy›†×Où±@DŸñSęćăÕIÕ¿IµĥO‰‰jNÕËT¡¿tNæŇàåyķrĕq§ÄĩsWÆߎF¶žX®¿‰mŒ™w…RIޓfßoG‘³¾©uyH‘į{Ɓħ¯AFnuP…ÍÔzšŒV—dàôº^Ðæd´€‡oG¤{S‰¬ćxã}›ŧ×Kǥĩ«žÕOEзÖdÖsƘѨ[’Û^Xr¢¼˜§xvěƵ`K”§ tÒ´Cvlo¸fzŨð¾NY´ı~ÉĔē…ßúLÃϖ_ÈÏ|]ÂÏFl”g`bšežž€n¾¢pU‚h~ƴĖ¶_‚r sĄ~cž”ƈ]|r c~`¼{À{ȒiJjz`îÀT¥Û³…]’u}›f…ïQl{skl“oNdŸjŸäËzDvčoQŠďHI¦rb“tHĔ~BmlRš—V_„ħTLnñH±’DžœL‘¼L˜ªl§Ťa¸ŒĚlK²€\\RòvDcÎJbt[¤€D@®hh~kt°ǾzÖ@¾ªdb„YhüóZ ň¶vHrľ\\ʗJuxAT|dmÀO„‹[ÃԋG·ĚąĐlŪÚpSJ¨ĸˆLvÞcPæķŨŽ®mАˆálŸwKhïgA¢ųƩޖ¤OȜm’°ŒK´"]],"encodeOffsets":[[[121722,32278]],[[119475,30423]],[[119168,35472]]]},"properties":{"cp":[117.283042,31.86119],"name":"安徽","childNum":3}},{"id":"350000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@“zht´‡]"],["@@aj^~ĆG—©O"],["@@ed¨„C}}i"],["@@@vˆPGsQ"],["@@‰sBz‚ddW]Q"],["@@SŽ¨Q“{"],["@@NŽVucW"],["@@qptBAq"],["@@‰’¸[mu"],["@@Q\\pD]_"],["@@jSwUadpF"],["@@eXª~ƒ•"],["@@AjvFso"],["@@fT–›_Çí\\Ÿ™—v|ba¦jZÆy€°"],["@@IjJi"],["@@wJI€ˆxš«¼AoNe{M­"],["@@K‰±¡Óˆ”ČäeZ"],["@@k¡¹Eh~c®wBk‹UplÀ¡I•~Māe£bN¨gZý¡a±Öcp©PhžI”Ÿ¢Qq…ÇGj‹|¥U™ g[Ky¬ŏ–v@OpˆtÉEŸF„\\@ åA¬ˆV{Xģ‰ĐBy…cpě…¼³Ăp·¤ƒ¥o“hqqÚ¡ŅLsƒ^ᗞ§qlŸÀhH¨MCe»åÇGD¥zPO£čÙkJA¼ß–ėu›ĕeûҍiÁŧSW¥˜QŠûŗ½ùěcݧSùĩąSWó«íęACµ›eR—åǃRCÒÇZÍ¢‹ź±^dlsŒtjD¸•‚ZpužÔâÒH¾oLUêÃÔjjēò´ĄW‚ƛ…^Ñ¥‹ĦŸ@Çò–ŠmŒƒOw¡õyJ†yD}¢ďÑÈġfŠZd–a©º²z£šN–ƒjD°Ötj¶¬ZSÎ~¾c°¶Ðm˜x‚O¸¢Pl´žSL|¥žA†ȪĖM’ņIJg®áIJČĒü` ŽQF‡¬h|ÓJ@zµ |ê³È ¸UÖŬŬÀEttĸr‚]€˜ðŽM¤ĶIJHtÏ A’†žĬkvsq‡^aÎbvŒd–™fÊòSD€´Z^’xPsÞrv‹ƞŀ˜jJd×ŘÉ ®A–ΦĤd€xĆqAŒ†ZR”ÀMźŒnĊ»ŒİÐZ— YX–æJŠyĊ²ˆ·¶q§·–K@·{s‘Xãô«lŗ¶»o½E¡­«¢±¨Yˆ®Ø‹¶^A™vWĶGĒĢžPlzfˆļŽtàAvWYãšO_‡¤sD§ssČġ[kƤPX¦Ž`¶“ž®ˆBBvĪjv©šjx[L¥àï[F…¼ÍË»ğV`«•Ip™}ccÅĥZE‹ãoP…´B@ŠD—¸m±“z«Ƴ—¿å³BRضˆœWlâþäą`“]Z£Tc— ĹGµ¶H™m@_©—kŒ‰¾xĨ‡ôȉðX«½đCIbćqK³Á‹Äš¬OAwã»aLʼn‡ËĥW[“ÂGI—ÂNxij¤D¢ŽîĎÎB§°_JœGsƒ¥E@…¤uć…P‘å†cuMuw¢BI¿‡]zG¹guĮck\\_"]],"encodeOffsets":[[[123250,27563]],[[122541,27268]],[[123020,27189]],[[122916,27125]],[[122887,26845]],[[122808,26762]],[[122568,25912]],[[122778,26197]],[[122515,26757]],[[122816,26587]],[[123388,27005]],[[122450,26243]],[[122578,25962]],[[121255,25103]],[[120987,24903]],[[122339,25802]],[[121042,25093]],[[122439,26024]]]},"properties":{"cp":[119.306239,26.075302],"name":"福建","childNum":18}},{"id":"360000","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@ĢĨƐgļˆ¼ÂMD~ņªe^\\^§„ý©j׍cZ†Ø¨zdÒa¶ˆlҍJŒìõ`oz÷@¤u޸´†ôęöY¼‰HČƶajlÞƩ¥éZ[”|h}^U Œ ¥p„ĄžƦO lt¸Æ €Q\\€ŠaÆ|CnÂOjt­ĚĤd’ÈŒF`’¶„@Ð딠¦ōҞ¨Sêv†HĢûXD®…QgėWiØPÞìºr¤dž€NĠ¢l–•ĄtZoœCƞÔºCxrpĠV®Ê{f_Y`_ƒeq’’®Aot`@o‚DXfkp¨|Šs¬\\D‘ÄSfè©Hn¬…^DhÆyøJh“ØxĢĀLʈ„ƠPżċĄwȠ̦G®ǒĤäTŠÆ~ĦwŠ«|TF¡Šn€c³Ïå¹]ĉđxe{ÎӐ†vOEm°BƂĨİ|G’vz½ª´€H’àp”eJ݆Qšxn‹ÀŠW­žEµàXÅĪt¨ÃĖrÄwÀFÎ|ňÓMå¼ibµ¯»åDT±m[“r«_gŽmQu~¥V\\OkxtL E¢‹ƒ‘Ú^~ýê‹Pó–qo슱_Êw§ÑªåƗā¼‹mĉŹ‹¿NQ“…YB‹ąrwģcÍ¥B•Ÿ­ŗÊcØiI—žƝĿuŒqtāwO]‘³YCñTeɕš‹caub͈]trlu€ī…B‘ПGsĵıN£ï—^ķqss¿FūūV՟·´Ç{éĈý‰ÿ›OEˆR_ŸđûIċâJh­ŅıN‘ȩĕB…¦K{Tk³¡OP·wn—µÏd¯}½TÍ«YiµÕsC¯„iM•¤™­•¦¯P|ÿUHv“he¥oFTu‰õ\\ŽOSs‹MòđƇiaºćXŸĊĵà·çhƃ÷ǜ{‘ígu^›đg’m[×zkKN‘¶Õ»lčÓ{XSƉv©_ÈëJbVk„ĔVÀ¤P¾ºÈMÖxlò~ªÚàGĂ¢B„±’ÌŒK˜y’áV‡¼Ã~­…`g›ŸsÙfI›Ƌlę¹e|–~udjˆuTlXµf`¿JdŠ[\\˜„L‚‘²"],"encodeOffsets":[[116689,26234]]},"properties":{"cp":[115.892151,28.676493],"name":"江西","childNum":1}},{"id":"370000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@Xjd]{K"],["@@itbFHy"],["@@HlGk"],["@@T‚ŒGŸy"],["@@K¬˜•‹U"],["@@WdXc"],["@@PtOs"],["@@•LnXhc"],["@@ppVƒu]Or"],["@@cdzAUa"],["@@udRhnCI‡"],["@@ˆoIƒpR„"],["@@Ľč{fzƤî’Kš–ÎMĮ]†—ZFˆ½Y]â£ph’™š¶¨râøÀ†ÎǨ¤^ºÄ”Gzˆ~grĚĜlĞƄLĆdž¢Îo¦–cv“Kb€gr°Wh”mZp ˆL]LºcU‰Æ­n”żĤÌĒœbAnrOAœ´žȊcÀbƦUØrĆUÜøœĬƞ†š˜Ez„VL®öØBkŖÝĐĖ¹ŧ̄±ÀbÎɜnb²ĦhņBĖ›žįĦåXćì@L¯´ywƕCéõė ƿ¸‘lµ¾Z|†ZWyFYŸ¨Mf~C¿`€à_RÇzwƌfQnny´INoƬˆèôº|sT„JUš›‚L„îVj„ǎ¾Ē؍‚Dz²XPn±ŴPè¸ŔLƔÜƺ_T‘üÃĤBBċȉöA´fa„˜M¨{«M`‡¶d¡ô‰Ö°šmȰBÔjjŒ´PM|”c^d¤u•ƒ¤Û´Œä«ƢfPk¶Môlˆ]Lb„}su^ke{lC‘…M•rDŠÇ­]NÑFsmoõľH‰yGă{{çrnÓE‰‹ƕZGª¹Fj¢ïW…uøCǷ돡ąuhÛ¡^Kx•C`C\\bÅxì²ĝÝ¿_N‰īCȽĿåB¥¢·IŖÕy\\‡¹kx‡Ã£Č×GDyÕ¤ÁçFQ¡„KtŵƋ]CgÏAùSed‡cÚź—ŠuYfƒyMmhUWpSyGwMPqŀ—›Á¼zK›¶†G•­Y§Ëƒ@–´śÇµƕBmœ@Io‚g——Z¯u‹TMx}C‘‰VK‚ï{éƵP—™_K«™pÛÙqċtkkù]gŽ‹Tğwo•ɁsMõ³ă‡AN£™MRkmEʕč™ÛbMjÝGu…IZ™—GPģ‡ãħE[iµBEuŸDPԛ~ª¼ętŠœ]ŒûG§€¡QMsğNPŏįzs£Ug{đJĿļā³]ç«Qr~¥CƎÑ^n¶ÆéÎR~Ż¸Y’I“] P‰umŝrƿ›‰›Iā‹[x‰edz‹L‘¯v¯s¬ÁY…~}…ťuŁŒg›ƋpÝĄ_ņī¶ÏSR´ÁP~ž¿Cyžċßdwk´Ss•X|t‰`Ä Èð€AªìÎT°¦Dd–€a^lĎDĶÚY°Ž`ĪŴǒˆ”àŠv\\ebŒZH„ŖR¬ŢƱùęO•ÑM­³FۃWp[ƒ"]],"encodeOffsets":[[[123806,39303]],[[123821,39266]],[[123742,39256]],[[123702,39203]],[[123649,39066]],[[123847,38933]],[[123580,38839]],[[123894,37288]],[[123043,36624]],[[123344,38676]],[[123522,38857]],[[123628,38858]],[[118260,36742]]]},"properties":{"cp":[117.000923,36.675807],"name":"山东","childNum":13}},{"id":"410000","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@•ýL™ùµP³swIÓxcŢĞð†´E®žÚPt†ĴXØx¶˜@«ŕŕQGƒ‹Yfa[şu“ßǩ™đš_X³ijÕčC]kbc•¥CS¯ëÍB©÷‹–³­Siˆ_}m˜YTtž³xlàcȂzÀD}ÂOQ³ÐTĨ¯†ƗòËŖ[hœł‹Ŧv~††}ÂZž«¤lPǕ£ªÝŴÅR§ØnhcŒtâk‡nύ­ľŹUÓÝdKuķ‡I§oTũÙďkęĆH¸ÓŒ\\ăŒ¿PcnS{wBIvɘĽ[GqµuŸŇôYgûƒZcaŽ©@½Õǽys¯}lgg@­C\\£as€IdÍuCQñ[L±ęk·‹ţb¨©kK—’»›KC²‘òGKmĨS`ƒ˜UQ™nk}AGē”sqaJ¥ĐGR‰ĎpCuÌy ã iMc”plk|tRk†ðœev~^‘´†¦ÜŽSí¿_iyjI|ȑ|¿_»d}qŸ^{“Ƈdă}Ÿtqµ`Ƴĕg}V¡om½fa™Ço³TTj¥„tĠ—Ry”K{ùÓjuµ{t}uËR‘iŸvGŠçJFjµŠÍyqΘàQÂFewixGw½Yŷpµú³XU›½ġy™łå‰kÚwZXˆ·l„¢Á¢K”zO„Λ΀jc¼htoDHr…|­J“½}JZ_¯iPq{tę½ĕ¦Zpĵø«kQ…Ťƒ]MÛfaQpě±ǽ¾]u­Fu‹÷nƒ™čįADp}AjmcEǒaª³o³ÆÍSƇĈÙDIzˑ赟^ˆKLœ—i—Þñ€[œƒaA²zz‰Ì÷Dœ|[šíijgf‚ÕÞd®|`ƒĆ~„oĠƑô³Ŋ‘D×°¯CsŠøÀ«ì‰UMhTº¨¸ǡîS–Ô„DruÂÇZ•ÖEŽ’vPZ„žW”~؋ÐtĄE¢¦Ðy¸bŠô´oŬ¬Ž²Ês~€€]®tªašpŎJ¨Öº„_ŠŔ–`’Ŗ^Ѝ\\Ĝu–”~m²Ƹ›¸fW‰ĦrƔ}Î^gjdfÔ¡J}\\n C˜¦þWxªJRÔŠu¬ĨĨmF†dM{\\d\\ŠYÊ¢ú@@¦ª²SŠÜsC–}fNècbpRmlØ^g„d¢aÒ¢CZˆZxvÆ¶N¿’¢T@€uCœ¬^ĊðÄn|žlGl’™Rjsp¢ED}€Fio~ÔNŽ‹„~zkĘHVsDzßjƒŬŒŠŢ`Pûàl¢˜\\ÀœEhŽİgÞē X¼Pk–„|m"],"encodeOffsets":[[118256,37017]]},"properties":{"cp":[113.665412,34.757975],"name":"河南","childNum":1}},{"id":"420000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@AB‚"],["@@lskt"],["@@¾«}{ra®pîÃ\\™›{øCŠËyyB±„b\\›ò˜Ý˜jK›‡L ]ĎĽÌ’JyÚCƈćÎT´Å´pb©È‘dFin~BCo°BĎĚømvŒ®E^vǾ½Ĝ²Ro‚bÜeNŽ„^ĺ£R†¬lĶ÷YoĖ¥Ě¾|sOr°jY`~I”¾®I†{GqpCgyl{‡£œÍƒÍyPL“¡ƒ¡¸kW‡xYlÙ抚ŁĢzœ¾žV´W¶ùŸo¾ZHxjwfx„GNÁ•³Xéæl¶‰EièIH‰ u’jÌQ~v|sv¶Ôi|ú¢Fh˜Qsğ¦ƒSiŠBg™ÐE^ÁÐ{–čnOÂȞUÎóĔ†ÊēIJ}Z³½Mŧïeyp·uk³DsѨŸL“¶_œÅuèw»—€¡WqÜ]\\‘Ò§tƗcÕ¸ÕFÏǝĉăxŻČƟO‡ƒKÉġÿ×wg”÷IÅzCg†]m«ªGeçÃTC’«[‰t§{loWeC@ps_Bp‘­r‘„f_``Z|ei¡—oċMqow€¹DƝӛDYpûs•–‹Ykıǃ}s¥ç³[§ŸcYŠ§HK„«Qy‰]¢“wwö€¸ïx¼ņ¾Xv®ÇÀµRĠЋžHMž±cÏd„ƒǍũȅȷ±DSyúĝ£ŤĀàtÖÿï[îb\\}pĭÉI±Ñy…¿³x¯N‰o‰|¹H™ÏÛm‹júË~Tš•u˜ęjCöAwě¬R’đl¯ Ñb­‰ŇT†Ŀ_[Œ‘IčĄʿnM¦ğ\\É[T·™k¹œ©oĕ@A¾w•ya¥Y\\¥Âaz¯ãÁ¡k¥ne£Ûw†E©Êō¶˓uoj_Uƒ¡cF¹­[Wv“P©w—huÕyBF“ƒ`R‹qJUw\\i¡{jŸŸEPïÿ½fć…QÑÀQ{ž‚°‡fLԁ~wXg—ītêݾ–ĺ‘Hdˆ³fJd]‹HJ²…E€ƒoU¥†HhwQsƐ»Xmg±çve›]Dm͂PˆoCc¾‹_h”–høYrŊU¶eD°Č_N~øĹĚ·`z’]Äþp¼…äÌQŒv\\rCŒé¾TnkžŐڀÜa‡“¼ÝƆĢ¶Ûo…d…ĔňТJq’Pb ¾|JŒ¾fXŠƐîĨ_Z¯À}úƲ‹N_ĒĊ^„‘ĈaŐyp»CÇĕKŠšñL³ŠġMŒ²wrIÒŭxjb[œžn«øœ˜—æˆàƒ ^²­h¯Ú€ŐªÞ¸€Y²ĒVø}Ā^İ™´‚LŠÚm„¥ÀJÞ{JVŒųÞŃx×sxxƈē ģMř–ÚðòIf–Ċ“Œ\\Ʈ±ŒdʧĘD†vČ_Àæ~DŒċ´A®µ†¨ØLV¦êHÒ¤"]],"encodeOffsets":[[[113712,34000]],[[115612,30507]],[[113649,34054]]]},"properties":{"cp":[114.298572,30.584355],"name":"湖北","childNum":3}},{"id":"430000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@—n„FTs"],["@@ßÅÆችÔXr—†CO™“…ËR‘ïÿĩ­TooQyšÓ[‹ŅBE¬–ÎÓXa„į§Ã¸G °ITxp‰úxÚij¥Ïš–Ģ¾ŠedžÄ©ĸG…œàGh‚€M¤–Â_U}Ċ}¢pczfŠþg¤€”ÇòAV‘‹M"],["@@©K—ƒA·³CQ±Á«³BUŠƑ¹AŠtćOw™D]ŒJiØSm¯b£‘ylƒ›X…HËѱH•«–‘C^õľA–Å§¤É¥„ïyuǙuA¢^{ÌC´­¦ŷJ£^[†“ª¿‡ĕ~•Ƈ…•N… skóā‡¹¿€ï]ă~÷O§­@—Vm¡‹Qđ¦¢Ĥ{ºjԏŽŒª¥nf´•~ÕoŸž×Ûą‹MąıuZœmZcÒ IJĪ²SÊDŽŶ¨ƚƒ’CÖŎªQؼrŭŽ­«}NÏürʬŒmjr€@ĘrTW ­SsdHzƓ^ÇÂyUi¯DÅYlŹu{hTœ}mĉ–¹¥ě‰Dÿë©ıÓ[Oº£ž“¥ót€ł¹MՄžƪƒ`Pš…Di–ÛUŠ¾Å‌ìˆU’ñB“È£ýhe‰dy¡oċ€`pfmjP~‚kZa…ZsÐd°wj§ƒ@€Ĵ®w~^‚kÀÅKvNmX\\¨a“”сqvíó¿F„¤¡@ũÑVw}S@j}¾«pĂr–ªg àÀ²NJ¶¶Dô…K‚|^ª†Ž°LX¾ŴäPĪ±œ£EXd›”^¶›IJÞܓ~‘u¸ǔ˜Ž›MRhsR…e†`ÄofIÔ\\Ø  i”ćymnú¨cj ¢»–GČìƊÿШXeĈĀ¾Oð Fi ¢|[jVxrIQŒ„_E”zAN¦zLU`œcªx”OTu RLÄ¢dV„i`p˔vŎµªÉžF~ƒØ€d¢ºgİàw¸Áb[¦Zb¦–z½xBĖ@ªpº›šlS¸Ö\\Ĕ[N¥ˀmĎă’J\\‹ŀ`€…ňSڊĖÁĐiO“Ĝ«BxDõĚiv—ž–S™Ì}iùŒžÜnšÐºGŠ{Šp°M´w†ÀÒzJ²ò¨ oTçüöoÛÿñŽőФ‚ùTz²CȆȸǎŪƒƑÐc°dPÎŸğ˶[Ƚu¯½WM¡­Éž“’B·rížnZŸÒ `‡¨GA¾\\pē˜XhÆRC­üWGġu…T靧Ŏѝ©ò³I±³}_‘‹EÃħg®ęisÁPDmÅ{‰b[Rşs·€kPŸŽƥƒóRo”O‹ŸVŸ~]{g\\“êYƪ¦kÝbiċƵŠGZ»Ěõ…ó·³vŝž£ø@pyö_‹ëŽIkѵ‡bcѧy…×dY؎ªiþž¨ƒ[]f]Ņ©C}ÁN‡»hĻħƏ’ĩ"]],"encodeOffsets":[[[115640,30489]],[[112543,27312]],[[116690,26230]]]},"properties":{"cp":[112.982279,28.19409],"name":"湖南","childNum":3}},{"id":"440000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@QdˆAua"],["@@ƒlxDLo"],["@@sbhNLo"],["@@Ă āŸ"],["@@WltO[["],["@@Krœ]S"],["@@e„„I]y"],["@@I|„Mym"],["@@ƒÛ³LSŒž¼Y"],["@@nvºB–ëui©`¾"],["@@zdšÛ›Jw®"],["@@†°…¯"],["@@a yAª¸ËJIx،@€ĀHAmßV¡o•fu•o"],["@@šs‰ŗÃÔėAƁ›ZšÄ ~°ČP‚‹äh"],["@@‹¶Ý’Ì‚vmĞh­ı‡Q"],["@@HœŠdSjĒ¢D}war…“u«ZqadYM"],["@@elŒ\\LqqU"],["@@~rMo\\"],["@@f„^ƒC"],["@@øPªoj÷ÍÝħXČx”°Q¨ıXNv"],["@@gÇƳˆŽˆ”oˆŠˆ[~tly"],["@@E–ÆC¿‘"],["@@OŽP"],["@@w‹†đóg‰™ĝ—[³‹¡VÙæÅöM̳¹pÁaËýý©D©Ü“JŹƕģGą¤{Ùū…ǘO²«BƱéA—Ò‰ĥ‡¡«BhlmtÃPµyU¯uc“d·w_bŝcīímGOŽ|KP’ȏ‡ŹãŝIŕŭŕ@Óoo¿ē‹±ß}Ž…ŭ‚ŸIJWÈCőâUâǙI›ğʼn©I›ijEׅÁ”³Aó›wXJþ±ÌŒÜӔĨ£L]ĈÙƺZǾĆĖMĸĤfŒÎĵl•ŨnȈ‘ĐtF”Š–FĤ–‚êk¶œ^k°f¶gŠŽœ}®Fa˜f`vXŲxl˜„¦–ÔÁ²¬ÐŸ¦pqÊ̲ˆi€XŸØRDÎ}†Ä@ZĠ’s„x®AR~®ETtĄZ†–ƈfŠŠHâÒÐA†µ\\S¸„^wĖkRzŠalŽŜ|E¨ÈNĀňZTŒ’pBh£\\ŒĎƀuXĖtKL–¶G|Ž»ĺEļĞ~ÜĢÛĊrˆO˜Ùîvd]nˆ¬VœÊĜ°R֟pM††–‚ƂªFbwžEÀˆ˜©Œž\\…¤]ŸI®¥D³|ˎ]CöAŤ¦…æ’´¥¸Lv¼€•¢ĽBaô–F~—š®²GÌҐEY„„œzk¤’°ahlV՞I^‹šCxĈPŽsB‰ƒºV‰¸@¾ªR²ĨN]´_eavSi‡vc•}p}Đ¼ƌkJœÚe thœ†_¸ ºx±ò_xN›Ë‹²‘@ƒă¡ßH©Ùñ}wkNÕ¹ÇO½¿£ĕ]ly_WìIžÇª`ŠuTÅxYĒÖ¼k֞’µ‚MžjJÚwn\\h‘œĒv]îh|’È›Ƅøègž¸Ķß ĉĈWb¹ƀdéʌNTtP[ŠöSvrCZžžaGuœbo´ŖÒÇА~¡zCI…özx¢„Pn‹•‰Èñ @ŒĥÒ¦†]ƞŠV}³ăĔñiiÄÓVépKG½Ä‘ÓávYo–C·sit‹iaÀy„ŧΡÈYDÑům}‰ý|m[węõĉZÅxUO}÷N¹³ĉo_qtă“qwµŁYلǝŕ¹tïÛUïmRCº…ˆĭ|µ›ÕÊK™½R‘ē ó]‘–GªęAx–»HO£|ām‡¡diď×YïYWªʼnOeÚtĐ«zđ¹T…ā‡úE™á²\\‹ķÍ}jYàÙÆſ¿Çdğ·ùTßÇţʄ¡XgWÀLJğ·¿ÃˆOj YÇ÷Qě‹i"]],"encodeOffsets":[[[117381,22988]],[[116552,22934]],[[116790,22617]],[[116973,22545]],[[116444,22536]],[[116931,22515]],[[116496,22490]],[[116453,22449]],[[113301,21439]],[[118726,21604]],[[118709,21486]],[[113210,20816]],[[115482,22082]],[[113171,21585]],[[113199,21590]],[[115232,22102]],[[115739,22373]],[[115134,22184]],[[113056,21175]],[[119573,21271]],[[119957,24020]],[[115859,22356]],[[116561,22649]],[[116285,22746]]]},"properties":{"cp":[113.280637,23.125178],"name":"广东","childNum":24}},{"id":"450000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@H– TQ§•A"],["@@ĨʪƒLƒƊDÎĹĐCǦė¸zÚGn£¾›rªŀÜt¬@֛ڈSx~øOŒ˜ŶÐÂæȠ\\„ÈÜObĖw^oބLf¬°bI lTØB̈F£Ć¹gñĤaY“t¿¤VSñœK¸¤nM†¼‚JE±„½¸šŠño‹ÜCƆæĪ^ŠĚQÖ¦^‡ˆˆf´Q†üÜʝz¯šlzUĺš@쇀p¶n]sxtx¶@„~ÒĂJb©gk‚{°‚~c°`ԙ¬rV\\“la¼¤ôá`¯¹LC†ÆbŒxEræO‚v[H­˜„[~|aB£ÖsºdAĐzNÂðsŽÞƔ…Ĥªbƒ–ab`ho¡³F«èVloŽ¤™ÔRzpp®SŽĪº¨ÖƒºN…ij„d`’a”¦¤F³ºDÎńĀìŠCžĜº¦Ċ•~nS›|gźvZkCÆj°zVÈÁƔ]LÊFZg…čP­kini«‹qǀcz͔Y®¬Ů»qR×ō©DՄ‘§ƙǃŵTÉĩ±ŸıdÑnYY›IJvNĆƌØÜ Öp–}e³¦m‹©iÓ|¹Ÿħņ›|ª¦QF¢Â¬ʖovg¿em‡^ucà÷gՎuŒíÙćĝ}FĻ¼Ĺ{µHK•sLSđƃr‹č¤[Ag‘oS‹ŇYMÿ§Ç{Fśbky‰lQxĕƒ]T·¶[B…ÑÏGáşşƇe€…•ăYSs­FQ}­Bƒw‘tYğÃ@~…C̀Q ×W‡j˱rÉ¥oÏ ±«ÓÂ¥•ƒ€k—ŽwWűŒmcih³K›~‰µh¯e]lµ›él•Eģ‰•E“ďs‡’mǖŧē`ãògK_ÛsUʝ“ćğ¶hŒöŒO¤Ǜn³Žc‘`¡y‹¦C‘ez€YŠwa™–‘[ďĵűMę§]X˜Î_‚훘Û]é’ÛUćİÕBƣ±…dƒy¹T^džûÅÑŦ·‡PĻþÙ`K€¦˜…¢ÍeœĥR¿Œ³£[~Œäu¼dl‰t‚†W¸oRM¢ď\\zœ}Æzdvň–{ÎXF¶°Â_„ÒÂÏL©Ö•TmuŸ¼ãl‰›īkiqéfA„·Êµ\\őDc¥ÝF“y›Ôć˜c€űH_hL܋êĺШc}rn`½„Ì@¸¶ªVLŒŠhŒ‹\\•Ţĺk~ŽĠið°|gŒtTĭĸ^x‘vK˜VGréAé‘bUu›MJ‰VÃO¡…qĂXËS‰ģãlýàŸ_ju‡YÛÒB†œG^˜é֊¶§ŽƒEG”ÅzěƒƯ¤Ek‡N[kdåucé¬dnYpAyČ{`]þ¯T’bÜÈk‚¡Ġ•vŒàh„ÂƄ¢J"]],"encodeOffsets":[[[111707,21520]],[[107619,25527]]]},"properties":{"cp":[108.320004,22.82402],"name":"广西","childNum":2}},{"id":"460000","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@š¦Ŝil¢”XƦ‘ƞò–ïè§ŞCêɕrŧůÇąĻõ™·ĉ³œ̅kÇm@ċȧƒŧĥ‰Ľʉ­ƅſ“ȓÒ˦ŝE}ºƑ[ÍĜȋ gÎfǐÏĤ¨êƺ\\Ɔ¸ĠĎvʄȀœÐ¾jNðĀÒRŒšZdž™zÐŘΰH¨Ƣb²_Ġ "],"encodeOffsets":[[112750,20508]]},"properties":{"cp":[110.33119,20.031971],"name":"海南","childNum":1}},{"id":"510000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@LqKr"],["@@Š[ĻéV£ž_ţġñpG •réÏ·~ąSfy×͂·ºſƽiÍıƣıĻmHH}siaX@iÇ°ÁÃ×t«ƒ­Tƒ¤J–JJŒyJ•ÈŠ`Ohߦ¡uËhIyCjmÿw…ZG……Ti‹SˆsO‰žB²ŸfNmsPaˆ{M{ŠõE‘^Hj}gYpaeuž¯‘oáwHjÁ½M¡pM“–uå‡mni{fk”\\oƒÎqCw†EZ¼K›ĝŠƒAy{m÷L‡wO×SimRI¯rK™õBS«sFe‡]fµ¢óY_ÆPRcue°Cbo׌bd£ŌIHgtrnyPt¦foaXďx›lBowz‹_{ÊéWiêE„GhܸºuFĈIxf®Ž•Y½ĀǙ]¤EyŸF²ċ’w¸¿@g¢§RGv»–áŸW`ÃĵJwi]t¥wO­½a[׈]`Ãi­üL€¦LabbTÀå’c}Íh™Æhˆ‹®BH€î|Ék­¤S†y£„ia©taį·Ɖ`ō¥Uh“O…ƒĝLk}©Fos‰´›Jm„µlŁu—…ø–nÑJWΪ–YÀïAetTžŅ‚ӍG™Ë«bo‰{ıwodƟ½ƒžOġܑµxàNÖ¾P²§HKv¾–]|•B‡ÆåoZ`¡Ø`ÀmºĠ~ÌЧnDž¿¤]wğ@sƒ‰rğu‰~‘Io”[é±¹ ¿žſđӉ@q‹gˆ¹zƱřaí°KtǤV»Ã[ĩǭƑ^ÇÓ@ỗs›Zϕ‹œÅĭ€Ƌ•ěpwDóÖሯneQˌq·•GCœýS]xŸ·ý‹q³•O՜Œ¶Qzßti{ř‰áÍÇWŝŭñzÇW‹pç¿JŒ™‚Xœĩè½cŒF–ÂLiVjx}\\N†ŇĖ¥Ge–“JA¼ÄHfÈu~¸Æ«dE³ÉMA|b˜Ò…˜ćhG¬CM‚õŠ„ƤąAvƒüV€éŀ‰_V̳ĐwQj´·ZeÈÁ¨X´Æ¡Qu·»Ÿ“˜ÕZ³ġqDo‰y`L¬gdp°şŠp¦ėìÅĮZŽ°Iä”h‚‘ˆzŠĵœf²å ›ĚрKp‹IN|‹„Ñz]ń……·FU×é»R³™MƒÉ»GM«€ki€™ér™}Ã`¹ăÞmȝnÁîRǀ³ĜoİzŔwǶVÚ£À]ɜ»ĆlƂ²Ġ…þTº·àUȞÏʦ¶†I’«dĽĢdĬ¿–»Ĕ׊h\\c¬†ä²GêëĤł¥ÀǿżÃÆMº}BÕĢyFVvw–ˆxBèĻĒ©Ĉ“tCĢɽŠȣ¦āæ·HĽî“ôNԓ~^¤Ɗœu„œ^s¼{TA¼ø°¢İªDè¾Ň¶ÝJ‘®Z´ğ~Sn|ªWÚ©òzPOȸ‚bð¢|‹øĞŠŒœŒQìÛÐ@Ğ™ǎRS¤Á§d…i“´ezÝúØã]Hq„kIŸþËQǦÃsǤ[E¬ÉŪÍxXƒ·ÖƁİlƞ¹ª¹|XÊwn‘ÆƄmÀêErĒtD®ċæcQƒ”E®³^ĭ¥©l}äQto˜ŖÜqƎkµ–„ªÔĻĴ¡@Ċ°B²Èw^^RsºTĀ£ŚæœQP‘JvÄz„^Đ¹Æ¯fLà´GC²‘dt˜­ĀRt¼¤ĦOðğfÔðDŨŁĞƘïžPȆ®âbMüÀXZ ¸£@Ś›»»QÉ­™]d“sÖ×_͖_ÌêŮPrĔĐÕGĂeZÜîĘqBhtO ¤tE[h|Y‹Ô‚ZśÎs´xº±UŒ’ñˆt|O’ĩĠºNbgþŠJy^dÂY Į„]Řz¦gC‚³€R`ĀŠz’¢AjŒ¸CL„¤RÆ»@­Ŏk\\Ç´£YW}z@Z}‰Ã¶“oû¶]´^N‡Ò}èN‚ª–P˜Íy¹`S°´†ATe€VamdUĐwʄvĮÕ\\ƒu‹Æŗ¨Yp¹àZÂm™Wh{á„}WØǍ•Éüw™ga§áCNęÎ[ĀÕĪgÖɪX˜øx¬½Ů¦¦[€—„NΆL€ÜUÖ´òrÙŠxR^–†J˜k„ijnDX{Uƒ~ET{ļº¦PZc”jF²Ė@Žp˜g€ˆ¨“B{ƒu¨ŦyhoÚD®¯¢˜ WòàFΤ¨GDäz¦kŮPœġq˚¥À]€Ÿ˜eŽâÚ´ªKxī„Pˆ—Ö|æ[xäJÞĥ‚s’NÖ½ž€I†¬nĨY´®Ð—ƐŠ€mD™ŝuäđđEb…e’e_™v¡}ìęNJē}q”É埁T¯µRs¡M@}ůa†a­¯wvƉåZwž\\Z{åû^›"]],"encodeOffsets":[[[108815,30935]],[[110617,31811]]]},"properties":{"cp":[104.065735,30.659462],"name":"四川","childNum":2}},{"id":"520000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@†G\\†lY£‘in"],["@@q‚|ˆ‚mc¯tχVSÎ"],["@@hÑ£Is‡NgßH†›HªķÃh_¹ƒ¡ĝħń¦uيùŽgS¯JHŸ|sÝÅtÁïyMDč»eÕtA¤{b\\}—ƒG®u\\åPFq‹wÅaD…žK°ºâ_£ùbµ”mÁ‹ÛœĹM[q|hlaªāI}тƒµ@swtwm^oµˆD鼊yV™ky°ÉžûÛR…³‚‡eˆ‡¥]RՋěħ[ƅåÛDpŒ”J„iV™™‰ÂF²I…»mN·£›LbÒYb—WsÀbŽ™pki™TZĄă¶HŒq`……ĥ_JŸ¯ae«ƒKpÝx]aĕÛPƒÇȟ[ÁåŵÏő—÷Pw}‡TœÙ@Õs«ĿÛq©½œm¤ÙH·yǥĘĉBµĨÕnđ]K„©„œá‹ŸG纍§Õßg‡ǗĦTèƤƺ{¶ÉHÎd¾ŚÊ·OÐjXWrãLyzÉAL¾ę¢bĶėy_qMĔąro¼hĊžw¶øV¤w”²Ĉ]ʚKx|`ź¦ÂÈdr„cȁbe¸›`I¼čTF´¼Óýȃr¹ÍJ©k_șl³´_pН`oÒhŽ¶pa‚^ÓĔ}D»^Xyœ`d˜[Kv…JPhèhCrĂĚÂ^Êƌ wˆZL­Ġ£šÁbrzOIl’MM”ĪŐžËr×ÎeŦŽtw|Œ¢mKjSǘňĂStÎŦEtqFT†¾†E쬬ôxÌO¢Ÿ KŠ³ŀºäY†„”PVgŎ¦Ŋm޼VZwVlŒ„z¤…ž£Tl®ctĽÚó{G­A‡ŒÇgeš~Αd¿æaSba¥KKûj®_ć^\\ؾbP®¦x^sxjĶI_Ä X‚⼕Hu¨Qh¡À@Ëô}Ž±žGNìĎlT¸ˆ…`V~R°tbÕĊ`¸úÛtπFDu€[ƒMfqGH·¥yA‰ztMFe|R‚_Gk†ChZeÚ°to˜v`x‹b„ŒDnÐ{E}šZ˜è€x—†NEފREn˜[Pv@{~rĆAB§‚EO¿|UZ~ì„Uf¨J²ĂÝƀ‚sª–B`„s¶œfvö¦ŠÕ~dÔq¨¸º»uù[[§´sb¤¢zþFœ¢Æ…Àhˆ™ÂˆW\\ıŽËI݊o±ĭŠ£þˆÊs}¡R]ŒěƒD‚g´VG¢‚j±®è†ºÃmpU[Á›‘Œëº°r›ÜbNu¸}Žº¼‡`ni”ºÔXĄ¤¼Ôdaµ€Á_À…†ftQQgœR—‘·Ǔ’v”}Ýלĵ]µœ“Wc¤F²›OĩųãW½¯K‚©…]€{†LóµCIµ±Mß¿hŸ•©āq¬o‚½ž~@i~TUxŪÒ¢@ƒ£ÀEîôruń‚”“‚b[§nWuMÆLl¿]x}ij­€½"]],"encodeOffsets":[[[112158,27383]],[[112105,27474]],[[112095,27476]]]},"properties":{"cp":[106.713478,26.578343],"name":"贵州","childNum":3}},{"id":"530000","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@[„ùx½}ÑRH‘YīĺûsÍn‘iEoã½Ya²ė{c¬ĝg•ĂsA•ØÅwď‚õzFjw}—«Dx¿}UũlŸê™@•HÅ­F‰¨ÇoJ´Ónũuą¡Ã¢pÒŌ“Ø TF²‚xa²ËX€‚cʋlHîAßËŁkŻƑŷÉ©h™W­æßU‡“Ës¡¦}•teèƶStǀÇ}Fd£j‹ĈZĆÆ‹¤T‚č\\Dƒ}O÷š£Uˆ§~ŃG™‚åŃDĝ¸œTsd¶¶Bªš¤u¢ŌĎo~t¾ÍŶÒtD¦Ú„iôö‰€z›ØX²ghįh½Û±¯€ÿm·zR¦Ɵ`ªŊÃh¢rOԍ´£Ym¼èêf¯ŪĽn„†cÚbŒw\\zlvWžªâˆ ¦g–mĿBş£¢ƹřbĥkǫßeeZkÙIKueT»sVesb‘aĕ  ¶®dNœĄÄpªyŽ¼—„³BE˜®l‡ŽGœŭCœǶwêżĔÂe„pÍÀQƞpC„–¼ŲÈ­AÎô¶R„ä’Q^Øu¬°š_Èôc´¹ò¨P΢hlϦ´Ħ“Æ´sâDŽŲPnÊD^¯°’Upv†}®BP̪–jǬx–Söwlfòªv€qĸ|`H€­viļ€ndĜ­Ćhň•‚em·FyށqóžSį¯‘³X_ĞçêtryvL¤§z„¦c¦¥jnŞk˜ˆlD¤øz½ĜàžĂŧMÅ|áƆàÊcðÂF܎‚áŢ¥\\\\º™İøÒÐJĴ‡„îD¦zK²ǏÎEh~’CD­hMn^ÌöÄ©ČZÀžaü„fɭyœpį´ěFűk]Ôě¢qlÅĆÙa¶~Äqššê€ljN¬¼H„ÊšNQ´ê¼VظE††^ŃÒyŒƒM{ŒJLoÒœęæŸe±Ķ›y‰’‡gã“¯JYÆĭĘëo¥Š‰o¯hcK«z_pŠrC´ĢÖY”—¼ v¸¢RŽÅW³Â§fǸYi³xR´ďUˊ`êĿU„û€uĆBƒƣö‰N€DH«Ĉg†——Ñ‚aB{ÊNF´¬c·Åv}eÇÃGB»”If•¦HňĕM…~[iwjUÁKE•Ž‹¾dĪçW›šI‹èÀŒoÈXòyŞŮÈXâÎŚŠj|àsRy‹µÖ›–Pr´þŒ ¸^wþTDŔ–Hr¸‹žRÌmf‡żÕâCôox–ĜƌÆĮŒ›Ð–œY˜tâŦÔ@]ÈǮƒ\\Ī¼Ä£UsȯLbîƲŚºyh‡rŒŠ@ĒԝƀŸÀ²º\\êp“’JŠ}ĠvŠqt„Ġ@^xÀ£È†¨mËÏğ}n¹_¿¢×Y_æpˆÅ–A^{½•Lu¨GO±Õ½ßM¶w’ÁĢۂP‚›Ƣ¼pcIJxŠ|ap̬HšÐŒŊSfsðBZ¿©“XÏÒK•k†÷Eû¿‰S…rEFsÕūk”óVǥʼniTL‚¡n{‹uxţÏh™ôŝ¬ğōN“‘NJkyPaq™Âğ¤K®‡YŸxÉƋÁ]āęDqçgOg†ILu—\\_gz—]W¼ž~CÔē]bµogpў_oď`´³Țkl`IªºÎȄqÔþž»E³ĎSJ»œ_f·‚adÇqƒÇc¥Á_Źw{™L^ɱćx“U£µ÷xgĉp»ĆqNē`rĘzaĵĚ¡K½ÊBzyäKXqiWPÏɸ½řÍcÊG|µƕƣG˛÷Ÿk°_^ý|_zċBZocmø¯hhcæ\\lˆMFlư£Ĝ„ÆyH“„F¨‰µêÕ]—›HA…àӄ^it `þßäkŠĤÎT~Wlÿ¨„ÔPzUC–NVv [jâôDôď[}ž‰z¿–msSh‹¯{jïğl}šĹ[–őŒ‰gK‹©U·µË@¾ƒm_~q¡f¹…ÅË^»‘f³ø}Q•„¡Ö˳gͱ^ǁ…\\ëÃA_—¿bW›Ï[¶ƛ鏝£F{īZgm@|kHǭƁć¦UĔťƒ×ë}ǝƒeďºȡȘÏíBə£āĘPªij¶“ʼnÿ‡y©n‰ď£G¹¡I›Š±LÉĺÑdĉ܇W¥˜‰}g˜Á†{aqÃ¥aŠıęÏZ—ï`"],"encodeOffsets":[[104636,22969]]},"properties":{"cp":[102.712251,25.040609],"name":"云南","childNum":1}},{"id":"540000","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@hžľxŽŖ‰xƒÒVŽ†ºÅâAĪÝȆµę¯Ňa±r_w~uSÕň‘qOj]ɄQ…£Z……UDûoY’»©M[‹L¼qãË{V͕çWViŽ]ë©Ä÷àyƛh›ÚU°ŒŒa”d„cQƒ~Mx¥™cc¡ÙaSyF—ցk­ŒuRýq¿Ôµ•QĽ³aG{¿FµëªéĜÿª@¬·–K‰·àariĕĀ«V»Ŷ™Ĵū˜gèLǴŇƶaf‹tŒèBŚ£^Šâ†ǐÝ®–šM¦ÁǞÿ¬LhŸŽJ¾óƾƺcxw‹f]Y…´ƒ¦|œQLn°aœdĊ…œ\\¨o’œǀÍŎœ´ĩĀd`tÊQŞŕ|‚¨C^©œĈ¦„¦ÎJĊ{ŽëĎjª²rЉšl`¼Ą[t|¦St辉PŒÜK¸€d˜Ƅı]s¤—î_v¹ÎVòŦj˜£Əsc—¬_Ğ´|Ł˜¦AvŽ¦w`ăaÝaa­¢e¤ı²©ªSªšÈMĄwžÉØŔì@T‘¤—Ę™\\õª@”þo´­xA s”ÂtŎKzó´ÇĊµ¢rž^nĊ­Æ¬×üGž¢‚³ {âĊ]š™G‚~bÀgVjzlhǶf€žOšfdŠ‰ªB]pj„•TO–tĊ‚n¤}®¦ƒČ¥d¢¼»ddš”Y¼Žt—¢eȤJ¤}Ǿ¡°§¤AГlc@ĝ”sªćļđAç‡wx•UuzEÖġ~AN¹ÄÅȀŻ¦¿ģŁéì±H…ãd«g[؉¼ēÀ•cīľġ¬cJ‘µ…ÐʥVȝ¸ßS¹†ý±ğkƁ¼ą^ɛ¤Ûÿ‰b[}¬ōõÃ]ËNm®g@•Bg}ÍF±ǐyL¥íCˆƒIij€Ï÷њį[¹¦[⚍EÛïÁÉdƅß{âNÆāŨߝ¾ě÷yC£‡k­´ÓH@¹†TZ¥¢įƒ·ÌAЧ®—Zc…v½ŸZ­¹|ŕWZqgW“|ieZÅYVӁqdq•bc²R@†c‡¥Rã»Ge†ŸeƃīQ•}J[ғK…¬Ə|o’ėjġĠÑN¡ð¯EBčnwôɍėªƒ²•CλŹġǝʅįĭạ̃ūȹ]ΓͧgšsgȽóϧµǛ†ęgſ¶ҍć`ĘąŌJޚä¤rÅň¥ÖÁUětęuůÞiĊÄÀ\\Æs¦ÓRb|Â^řÌkÄŷ¶½÷‡f±iMݑ›‰@ĥ°G¬ÃM¥n£Øą‚ğ¯ß”§aëbéüÑOčœk£{\\‘eµª×M‘šÉfm«Ƒ{Å׃Gŏǩãy³©WÑăû‚··‘Q—òı}¯ã‰I•éÕÂZ¨īès¶ZÈsŽæĔTŘvŽgÌsN@îá¾ó@‰˜ÙwU±ÉT廣TđŸWxq¹Zo‘b‹s[׌¯cĩv‡Œėŧ³BM|¹k‰ªħ—¥TzNYnݍßpęrñĠĉRS~½ŠěVVŠµ‚õ‡«ŒM££µB•ĉ¥áºae~³AuĐh`Ü³ç@BۘïĿa©|z²Ý¼D”£àč²‹ŸƒIƒû›I ā€óK¥}rÝ_Á´éMaň¨€~ªSĈ½Ž½KÙóĿeƃÆBŽ·¬ën×W|Uº}LJrƳ˜lŒµ`bÔ`QˆˆÐÓ@s¬ñIŒÍ@ûws¡åQÑßÁ`ŋĴ{Ī“T•ÚÅTSij‚‹Yo|Ç[ǾµMW¢ĭiÕØ¿@˜šMh…pÕ]j†éò¿OƇĆƇp€êĉâlØw–ěsˆǩ‚ĵ¸c…bU¹ř¨WavquSMzeo_^gsÏ·¥Ó@~¯¿RiīB™Š\\”qTGªÇĜçPoŠÿfñòą¦óQīÈáP•œābß{ƒZŗĸIæńhnszÁCËìñšÏ·ąĚÝUm®ó­L·ăU›Èíoù´Êj°ŁŤ_uµ^‘°Œìǖ@tĶĒ¡Æ‡M³Ģ«˜İĨÅ®ğ†RŽāð“ggheÆ¢z‚Ê©Ô\\°ÝĎz~ź¤Pn–MĪÖB£Ÿk™n鄧żćŠ˜ĆK„Ē°¼L¶è‰âz¨u¦¥LDĘz¬ýÎmĘd¾ß”Fz“hg²™Fy¦ĝ¤ċņbΛ@y‚Ąæm°NĮZRÖíŽJ²öLĸÒ¨Y®ƌÐV‰à˜tt_ڀÂyĠzž]Ţh€zĎ{†ĢX”ˆc|šÐqŽšfO¢¤ög‚ÌHNŽ„PKŖœŽ˜Uú´xx[xˆvĐCûĀŠìÖT¬¸^}Ìsòd´_Ž‡KgžLĴ…ÀBon|H@–Êx˜—¦BpŰˆŌ¿fµƌA¾zLjRxŠ¶F”œkĄźRzŀˆ~¶[”´Hnª–VƞuĒ­È¨ƎcƽÌm¸ÁÈM¦x͊ëÀxdžB’šú^´W†£–d„kɾĬpœw‚˂ØɦļĬIŚœÊ•n›Ŕa¸™~J°î”lɌxĤÊÈðhÌ®‚g˜T´øŽàCˆŽÀ^ªerrƘdž¢İP|Ė ŸWœªĦ^¶´ÂL„aT±üWƜ˜ǀRšŶUńšĖ[QhlLüA†‹Ü\\†qR›Ą©"],"encodeOffsets":[[90849,37210]]},"properties":{"cp":[91.132212,29.660361],"name":"西藏","childNum":1}},{"id":"610000","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@˜p¢—ȮµšûG™Ħ}Ħšðǚ¶òƄ€jɂz°{ºØkÈęâ¦jª‚Bg‚\\œċ°s¬Ž’]jžú ‚E”Ȍdž¬s„t‡”RˆÆdĠݎwܔ¸ôW¾ƮłÒ_{’Ìšû¼„jº¹¢GǪÒ¯ĘƒZ`ºŊƒecņąš~BÂgzpâēòYǠȰÌTΨÂWœ|fcŸă§uF—Œ@NŸ¢XLƒŠRMº[ğȣſï|¥J™kc`sʼnǷ’Y¹‹W@µ÷K…ãï³ÛIcñ·VȋڍÒķø©—þ¥ƒy‚ÓŸğęmWµÎumZyOŅƟĥÓ~sÑL¤µaŅY¦ocyZ{‰y c]{ŒTa©ƒ`U_Ěē£ωÊƍKù’K¶ȱÝƷ§{û»ÅÁȹÍéuij|¹cÑd‘ŠìUYƒŽO‘uF–ÕÈYvÁCqӃT•Ǣí§·S¹NgŠV¬ë÷Át‡°Dد’C´ʼnƒópģ}„ċcE˅FŸŸéGU¥×K…§­¶³B‹Č}C¿åċ`wġB·¤őcƭ²ő[Å^axwQO…ÿEËߌ•ĤNĔŸwƇˆÄŠńwĪ­Šo[„_KÓª³“ÙnK‰Çƒěœÿ]ď€ă_d©·©Ýŏ°Ù®g]±„Ÿ‡ß˜å›—¬÷m\\›iaǑkěX{¢|ZKlçhLt€Ňîŵ€œè[€É@ƉĄEœ‡tƇÏ˜³­ħZ«mJ…›×¾‘MtÝĦ£IwÄå\\Õ{‡˜ƒOwĬ©LÙ³ÙgBƕŀr̛ĢŭO¥lãyC§HÍ£ßEñŸX¡—­°ÙCgpťz‘ˆb`wI„vA|§”‡—hoĕ@E±“iYd¥OĻ¹S|}F@¾oAO²{tfžÜ—¢Fǂ҈W²°BĤh^Wx{@„¬‚­F¸¡„ķn£P|ŸªĴ@^ĠĈæb–Ôc¶l˜Yi…–^Mi˜cĎ°Â[ä€vï¶gv@À“Ĭ·lJ¸sn|¼u~a]’ÆÈtŌºJp’ƒþ£KKf~Š¦UbyäIšĺãn‡Ô¿^­žŵMT–hĠܤko¼Ŏìąǜh`[tŒRd²IJ_œXPrɲ‰l‘‚XžiL§àƒ–¹ŽH˜°Ȧqº®QC—bA†„ŌJ¸ĕÚ³ĺ§ `d¨YjžiZvRĺ±öVKkjGȊĐePОZmļKÀ€‚[ŠŽ`ösìh†ïÎoĬdtKÞ{¬èÒÒBŒÔpIJÇĬJŊ¦±J«ˆY§‹@·pH€µàåVKe›pW†ftsAÅqC·¬ko«pHÆuK@oŸHĆۄķhx“e‘n›S³àǍrqƶRbzy€¸ËАl›¼EºpĤ¼Œx¼½~Ğ’”à@†ÚüdK^ˆmÌSj"],"encodeOffsets":[[110234,38774]]},"properties":{"cp":[108.948024,34.263161],"name":"陕西","childNum":1}},{"id":"620000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@VuUv"],["@@ũ‹EĠtt~nkh`Q‰¦ÅÄÜdw˜Ab×ĠąJˆ¤DüègĺqBqœj°lI¡ĨÒ¤úSHbš‡ŠjΑBŠ°aZˆ¢KJŽ’O[|A£žDx}Nì•HUnrk„ kp€¼Y kMJn[aG‚áÚÏ[½rc†}aQxOgsPMnUs‡nc‹Z…ž–sKúvA›t„Þġ’£®ĀYKdnFwš¢JE°”Latf`¼h¬we|€Æ‡šbj}GA€·~WŽ”—`†¢MC¤tL©IJ°qdf”O‚“bÞĬ¹ttu`^ZúE`Œ[@„Æsîz®¡’C„ƳƜG²“R‘¢R’m”fŽwĸg܃‚ą G@pzJM½mŠhVy¸uÈÔO±¨{LfæU¶ßGĂq\\ª¬‡²I‚¥IʼnÈīoı‹ÓÑAçÑ|«LÝcspīðÍg…të_õ‰\\ĉñLYnĝg’ŸRǡÁiHLlõUĹ²uQjYi§Z_c¨Ÿ´ĹĖÙ·ŋI…ƒaBD˜­R¹ȥr—¯G•ºß„K¨jWk’ɱŠOq›Wij\\a­‹Q\\sg_ĆǛōëp»£lğۀgS•ŶN®À]ˆÓäm™ĹãJaz¥V}‰Le¤L„ýo‘¹IsŋÅÇ^‘Žbz…³tmEÁ´aŠ¹cčecÇN•ĊãÁ\\č¯—dNj•]j†—ZµkÓda•ćå]ğij@ ©O{¤ĸm¢ƒE·®ƒ«|@Xwg]Aģ±¯‡XǁÑdzªc›wQÚŝñsÕ³ÛV_ýƒ˜¥\\ů¥©¾÷w—Ž©WÕÊĩhÿÖÁRo¸V¬âDb¨šhûx–Ê×nj~Zâƒg|šXÁnßYoº§ZÅŘvŒ[„ĭÖʃuďxcVbnUSf…B¯³_Tzº—ΕO©çMÑ~Mˆ³]µ^püµ”ŠÄY~y@X~¤Z³€[Èōl@®Å¼£QKƒ·Di‹¡By‘ÿ‰Q_´D¥hŗyƒ^ŸĭÁZ]cIzý‰ah¹MĪğP‘s{ò‡‹‘²Vw¹t³Ŝˁ[ŽÑ}X\\gsFŸ£sPAgěp×ëfYHāďÖqēŭOÏë“dLü•\\iŒ”t^c®šRʺ¶—¢H°mˆ‘rYŸ£BŸ¹čIoľu¶uI]vģSQ{ƒUŻ”Å}QÂ|̋°ƅ¤ĩŪU ęĄžÌZҞ\\v˜²PĔ»ƢNHƒĂyAmƂwVmž`”]ȏb•”H`‰Ì¢²ILvĜ—H®¤Dlt_„¢JJÄämèÔDëþgºƫ™”aʎÌrêYi~ ÎݤNpÀA¾Ĕ¼b…ð÷’Žˆ‡®‚”üs”zMzÖĖQdȨý†v§Tè|ªH’þa¸|šÐ ƒwKĢx¦ivr^ÿ ¸l öæfƟĴ·PJv}n\\h¹¶v†·À|\\ƁĚN´Ĝ€çèÁz]ġ¤²¨QÒŨTIl‡ªťØ}¼˗ƦvÄùØE‹’«Fï˛Iq”ōŒTvāÜŏ‚íÛߜÛV—j³âwGăÂíNOŠˆŠPìyV³ʼnĖýZso§HіiYw[߆\\X¦¥c]ÔƩÜ·«j‡ÐqvÁ¦m^ċ±R™¦΋ƈťĚgÀ»IïĨʗƮŽ°Ɲ˜ĻþÍAƉſ±tÍEÕÞāNU͗¡\\ſčåÒʻĘm ƭÌŹöʥ’ëQ¤µ­ÇcƕªoIýˆ‰Iɐ_mkl³ă‰Ɠ¦j—¡Yz•Ňi–}Msßõ–īʋ —}ƒÁVmŸ_[n}eı­Uĥ¼‘ª•I{ΧDӜƻėoj‘qYhĹT©oūĶ£]ďxĩ‹ǑMĝ‰q`B´ƃ˺Ч—ç~™²ņj@”¥@đ´ί}ĥtPńǾV¬ufӃÉC‹tÓ̻‰…¹£G³€]ƖƾŎĪŪĘ̖¨ʈĢƂlɘ۪üºňUðǜȢƢż̌ȦǼ‚ĤŊɲĖ­Kq´ï¦—ºĒDzņɾªǀÞĈĂD†½ĄĎÌŗĞrôñnŽœN¼â¾ʄľԆ|DŽŽ֦ज़ȗlj̘̭ɺƅêgV̍ʆĠ·ÌĊv|ýĖÕWĊǎÞ´õ¼cÒÒBĢ͢UĜð͒s¨ňƃLĉÕÝ@ɛƯ÷¿Ľ­ĹeȏijëCȚDŲyê×Ŗyò¯ļcÂßY…tÁƤyAã˾J@ǝrý‹‰@¤…rz¸oP¹ɐÚyᐇHŸĀ[Jw…cVeȴϜ»ÈŽĖ}ƒŰŐèȭǢόĀƪÈŶë;Ñ̆ȤМľĮEŔ—ĹŊũ~ËUă{ŸĻƹɁύȩþĽvĽƓÉ@ē„ĽɲßǐƫʾǗĒpäWÐxnsÀ^ƆwW©¦cÅ¡Ji§vúF¶Ž¨c~c¼īŒeXǚ‹\\đ¾JŽwÀďksãA‹fÕ¦L}wa‚o”Z’‹D½†Ml«]eÒÅaɲáo½FõÛ]ĻÒ¡wYR£¢rvÓ®y®LF‹LzĈ„ôe]gx}•|KK}xklL]c¦£fRtív¦†PĤoH{tK"]],"encodeOffsets":[[[108619,36299]],[[108589,36341]]]},"properties":{"cp":[103.823557,36.058039],"name":"甘肃","childNum":2}},{"id":"630000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@InJm"],["@@CƒÆ½OŃĦsΰ~Ē³¦@@“Ņiš±è}ؘƄ˹A³r_ĞŠǒNĪŒĐw¤^ŬĵªpĺSZg’rpiƼĘԛ¨C|͖J’©Ħ»®VIJ~f\\m `Un„˜~ʌŸ•ĬàöNt•~ňjy–¢Zi˜Ɣ¥ĄŠk´nl`JʇŠJþ©pdƖ®È£¶ìRʦ‘źõƮËnŸʼėæÑƀĎ[‚˜¢VÎĂMÖÝÎF²sƊƀÎBļýƞ—¯ʘƭðħ¼Jh¿ŦęΌƇš¥²Q]Č¥nuÂÏriˆ¸¬ƪÛ^Ó¦d€¥[Wà…x\\ZŽjҕ¨GtpþYŊĕ´€zUO뇉P‰îMĄÁxH´á˜iÜUà›îÜՁĂÛSuŎ‹r“œJð̬EŒ‘FÁú×uÃÎkr“Ē{V}İ«O_ÌËĬ©ŽÓŧSRѱ§Ģ£^ÂyèçěM³Ƃę{[¸¿u…ºµ[gt£¸OƤĿéYŸõ·kĀŸq]juw¥Dĩƍ€õÇPéĽG‘ž©ã‡¤G…uȧþRcÕĕNy“yût“ˆ­‡ø‘†ï»a½ē¿BMoį£ŸÍj}éZËqbʍš“Ƭh¹ìÿÓAçãnIáI`ƒks£CG­ě˜Uy×Cy•…’Ÿ@¶ʡÊBnāzG„ơMē¼±O÷õJËĚăVŸĪũƆ£Œ¯{ËL½Ìzż“„VR|ĠTbuvJvµhĻĖH”Aëáa…­OÇðñęNw‡…œľ·L›mI±íĠĩPÉ×®ÿs—’cB³±JKßĊ«`…ađ»·QAmO’‘Vţéÿ¤¹SQt]]Çx€±¯A@ĉij¢Óļ©•ƒl¶ÅÛr—ŕspãRk~¦ª]Į­´“FR„åd­ČsCqđéFn¿Åƃm’Éx{W©ºƝºįkÕƂƑ¸wWūЩÈFž£\\tÈ¥ÄRÈýÌJ ƒlGr^×äùyÞ³fj”c†€¨£ÂZ|ǓMĝšÏ@ëÜőR‹›ĝ‰Œ÷¡{aïȷPu°ËXÙ{©TmĠ}Y³’­ÞIňµç½©C¡į÷¯B»|St»›]vƒųƒs»”}MÓ ÿʪƟǭA¡fs˜»PY¼c¡»¦c„ċ­¥£~msĉP•–Siƒ^o©A‰Šec‚™PeǵŽkg‚yUi¿h}aH™šĉ^|ᴟ¡HØûÅ«ĉ®]m€¡qĉ¶³ÈyôōLÁst“BŸ®wn±ă¥HSòėš£˜S’ë@לÊăxÇN©™©T±ª£IJ¡fb®ÞbŽb_Ą¥xu¥B—ž{łĝ³«`d˜Ɛt—¤ťiñžÍUuºí`£˜^tƃIJc—·ÛLO‹½Šsç¥Ts{ă\\_»™kϊ±q©čiìĉ|ÍIƒ¥ć¥›€]ª§D{ŝŖÉR_sÿc³Īō›ƿΑ›§p›[ĉ†›c¯bKm›R¥{³„Z†e^ŽŒwx¹dƽŽôIg §Mĕ ƹĴ¿—ǣÜ̓]‹Ý–]snåA{‹eŒƭ`ǻŊĿ\\ijŬű”YÂÿ¬jĖqŽßbŠ¸•L«¸©@ěĀ©ê¶ìÀEH|´bRľž–Ó¶rÀQþ‹vl®Õ‚E˜TzÜdb ˜hw¤{LR„ƒd“c‹b¯‹ÙVgœ‚ƜßzÃô쮍^jUèXΖ|UäÌ»rKŽ\\ŒªN‘¼pZCü†VY††¤ɃRi^rPҒTÖ}|br°qňbĚ°ªiƶGQ¾²„x¦PœmlŜ‘[Ĥ¡ΞsĦŸÔÏâ\\ªÚŒU\\f…¢N²§x|¤§„xĔsZPòʛ²SÐqF`ª„VƒÞŜĶƨVZŒÌL`ˆ¢dŐIqr\\oäõ–F礻Ŷ×h¹]Clـ\\¦ďÌį¬řtTӺƙgQÇÓHţĒ”´ÃbEÄlbʔC”|CˆŮˆk„Ʈ[ʼ¬ňœ´KŮÈΰÌĪ¶ƶlð”ļA†TUvdTŠG†º̼ŠÔ€ŒsÊDԄveOg"]],"encodeOffsets":[[[105308,37219]],[[95370,40081]]]},"properties":{"cp":[101.778916,36.623178],"name":"青海","childNum":2}},{"id":"640000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@KëÀęĞ«OęȿȕŸı]ʼn¡åįÕÔ«Ǵõƪ™ĚQÐZhv K°›öqÀѐS[ÃÖHƖčË‡nL]ûc…Ùß@‚“ĝ‘¾}w»»‹oģF¹œ»kÌÏ·{zPƒ§B­¢íyÅt@ƒ@áš]Yv_ssģ¼i߁”ĻL¾ġsKD£¡N_…“˜X¸}B~Haiˆ™Åf{«x»ge_bs“KF¯¡Ix™mELcÿZ¤­Ģ‘ƒÝœsuBLù•t†ŒYdˆmVtNmtOPhRw~bd…¾qÐ\\âÙH\\bImlNZŸ»loƒŸqlVm–Gā§~QCw¤™{A\\‘PKŸNY‡¯bF‡kC¥’sk‹Šs_Ã\\ă«¢ħkJi¯r›rAhĹûç£CU‡ĕĊ_ԗBixÅُĄnªÑaM~ħpOu¥sîeQ¥¤^dkKwlL~{L~–hw^‚ófćƒKyEŒ­K­zuÔ¡qQ¤xZÑ¢^ļöܾEpž±âbÊÑÆ^fk¬…NC¾‘Œ“YpxbK~¥Že֎ŒäBlt¿Đx½I[ĒǙŒWž‹f»Ĭ}d§dµùEuj¨‚IÆ¢¥dXªƅx¿]mtÏwßRĶŒX¢͎vÆzƂZò®ǢÌʆCrâºMÞzžÆMҔÊÓŊZľ–r°Î®Ȉmª²ĈUªĚøºˆĮ¦ÌĘk„^FłĬhĚiĀĖ¾iİbjÕ"],["@@mfwěwMrŢªv@G‰"]],"encodeOffsets":[[[109366,40242]],[[108600,36303]]]},"properties":{"cp":[106.278179,38.46637],"name":"宁夏","childNum":2}},{"id":"650000","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@QØĔ²X¨”~ǘBºjʐßØvK”ƔX¨vĊOžÃƒ·¢i@~c—‡ĝe_«”Eš“}QxgɪëÏÃ@sÅyXoŖ{ô«ŸuX…ê•Îf`œC‚¹ÂÿÐGĮÕĞXŪōŸMźÈƺQèĽôe|¿ƸJR¤ĘEjcUóº¯Ĩ_ŘÁMª÷Ð¥Oéȇ¿ÖğǤǷÂF҇zÉx[]­Ĥĝ‰œ¦EP}ûƥé¿İƷTėƫœŕƅ™ƱB»Đ±’ēO…¦E–•}‘`cȺrĦáŖuҞª«IJ‡πdƺÏØZƴwʄ¤ĖGЙǂZĶƒèH¶}ÚZצʥĪï|ÇĦMŔ»İĝLj‹ì¥Βœba­¯¥ǕǚkĆŵĦɑĺƯxūД̵nơʃĽá½M»›òmqóŘĝč˾ăC…ćāƿÝɽ©DZŅ¹đ¥˜³ðLrÁ®ɱĕģʼnǻ̋ȥơŻǛȡVï¹Ň۩ûkɗġƁ§ʇė̕ĩũƽō^ƕŠUv£ƁQï“Ƶkŏ½ΉÃŭdzLқʻ«ƭ\\lƒ‡ŭD‡“{ʓDkaFÃÄa“³ŤđÔGRÈƚhSӹŚsİ«ĐË[¥ÚDkº^Øg¼ŵ¸£EÍö•€ůʼnT¡c_‡ËKY‹ƧUśĵ„݃U_©rETÏʜ±OñtYwē¨ƒ{£¨uM³x½şL©Ùá[ÓÐĥ Νtģ¢\\‚ś’nkO›w¥±ƒT»ƷFɯàĩÞáB¹Æ…ÑUw„੍žĽw[“mG½Èå~‡Æ÷QyŠěCFmĭZī—ŵVÁ™ƿQƛ—ûXS²‰b½KϽĉS›©ŷXĕŸ{ŽĕK·¥Ɨcqq©f¿]‡ßDõU³h—­gËÇïģÉɋw“k¯í}I·šœbmœÉ–ř›īJɥĻˁ×xo›ɹī‡l•c…¤³Xù]‘™DžA¿w͉ì¥wÇN·ÂËnƾƍdǧđ®Ɲv•Um©³G\\“}µĿ‡QyŹl㓛µEw‰LJQ½yƋBe¶ŋÀů‡ož¥A—˜Éw@•{Gpm¿Aij†ŽKLhˆ³`ñcËtW‚±»ÕS‰ëüÿďD‡u\\wwwù³—V›LŕƒOMËGh£õP¡™er™Ïd{“‡ġWÁ…č|yšg^ğyÁzÙs`—s|ÉåªÇ}m¢Ń¨`x¥’ù^•}ƒÌ¥H«‰Yªƅ”Aйn~ź¯šf¤áÀz„gŠÇDIԝ´AňĀ҄¶ûEYospõD[{ù°]u›Jq•U•|Soċxţ[õÔĥkŋÞŭZ˺óYËüċrw €ÞkrťË¿XGÉbřaDü·Ē÷Aê[Ää€I®BÕИÞ_¢āĠpŠÛÄȉĖġDKwbm‡ÄNô‡ŠfœƫVÉvi†dz—H‘‹QµâFšù­Âœ³¦{YGžƒd¢ĚÜO „€{Ö¦ÞÍÀPŒ^b–ƾŠlŽ[„vt×ĈÍE˨¡Đ~´î¸ùÎh€uè`¸ŸHÕŔVºwĠââWò‡@{œÙNÝ´ə²ȕn{¿¥{l—÷eé^e’ďˆXj©î\\ªÑò˜Üìc\\üqˆÕ[Č¡xoÂċªbØ­Œø|€¶ȴZdÆšońéŒGš\\”¼C°ÌƁn´nxšÊOĨ’Ūƴĸ¢¸òTxÊǪMīИÖŲÃɎOvˆʦƢ~FŽ‡Rěò—¿ġ~åŊœú‰Nšžš¸qŽ’Ę[Ĕ¶ÂćnÒPĒÜvúĀÊbÖ{Äî¸~Ŕünp¤ÂH¾œĄYÒ©ÊfºmԈĘcDoĬMŬ’˜S¤„s²‚”ʘچžȂVŦ –ŽèW°ªB|IJXŔþÈJĦÆæFĚêŠYĂªĂ]øªŖNÞüA€’fɨJ€˜¯ÎrDDšĤ€`€mz\\„§~D¬{vJÂ˜«lµĂb–¤p€ŌŰNĄ¨ĊXW|ų ¿¾ɄĦƐMT”‡òP˜÷fØĶK¢ȝ˔Sô¹òEð­”`Ɩ½ǒÂň×äı–§ĤƝ§C~¡‚hlå‚ǺŦŞkâ’~}ŽFøàIJaĞ‚fƠ¥Ž„Ŕdž˜®U¸ˆźXœv¢aƆúŪtŠųƠjd•ƺŠƺÅìnrh\\ĺ¯äɝĦ]èpĄ¦´LƞĬŠ´ƤǬ˼Ēɸ¤rºǼ²¨zÌPðŀbþ¹ļD¢¹œ\\ĜÑŚŸ¶ZƄ³àjĨoâŠȴLʉȮŒĐ­ĚăŽÀêZǚŐ¤qȂ\\L¢ŌİfÆs|zºeªÙæ§΢{Ā´ƐÚ¬¨Ĵà²łhʺKÞºÖTŠiƢ¾ªì°`öøu®Ê¾ãØ"],"encodeOffsets":[[88824,50096]]},"properties":{"cp":[87.617733,43.792818],"name":"新疆","childNum":1}},{"id":"110000","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@ĽOÁ›ûtŷmiÍt_H»Ĩ±d`Š¹­{bw…Yr“³S]§§o¹€qGtm_Sŧ€“oa›‹FLg‘QN_•dV€@Zom_ć\\ߚc±x¯oœRcfe…£’o§ËgToÛJíĔóu…|wP¤™XnO¢ÉˆŦ¯rNÄā¤zâŖÈRpŢZŠœÚ{GŠrFt¦Òx§ø¹RóäV¤XdˆżâºWbwŚ¨Ud®bêņ¾‘jnŎGŃŶŠnzÚSeîĜZczî¾i]͜™QaúÍÔiþĩȨWĢ‹ü|Ėu[qb[swP@ÅğP¿{\\‡¥A¨Ï‘Ѩj¯ŠX\\¯œMK‘pA³[H…īu}}"],"encodeOffsets":[[120023,41045]]},"properties":{"cp":[116.405285,39.904989],"name":"北京","childNum":1}},{"id":"120000","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@ŬgX§Ü«E…¶Ḟ“¬O_™ïlÁg“z±AXe™µÄĵ{¶]gitgšIj·›¥îakS€‰¨ÐƎk}ĕ{gB—qGf{¿a†U^fI“ư‹³õ{YƒıëNĿžk©ïËZŏ‘R§òoY×Ógc…ĥs¡bġ«@dekąI[nlPqCnp{ˆō³°`{PNdƗqSÄĻNNâyj]äžÒD ĬH°Æ]~¡HO¾ŒX}ÐxŒgp“gWˆrDGˆŒpù‚Š^L‚ˆrzWxˆZ^¨´T\\|~@I‰zƒ–bĤ‹œjeĊªz£®Ĕvě€L†mV¾Ô_ȔNW~zbĬvG†²ZmDM~”~"],"encodeOffsets":[[120237,41215]]},"properties":{"cp":[117.190182,39.125596],"name":"天津","childNum":1}},{"id":"310000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@ɧư¬EpƸÁxc‡"],["@@©„ªƒ"],["@@”MA‹‘š"],["@@Qp݁E§ÉC¾"],["@@bŝՕÕEȣÚƥêImɇǦèÜĠŒÚžÃƌÃ͎ó"],["@@ǜûȬɋŠŭ™×^‰sYŒɍDŋ‘ŽąñCG²«ªč@h–_p¯A{‡oloY€¬j@IJ`•gQڛhr|ǀ^MIJvtbe´R¯Ô¬¨YŽô¤r]ì†Ƭį"]],"encodeOffsets":[[[124702,32062]],[[124547,32200]],[[124808,31991]],[[124726,32110]],[[124903,32376]],[[124438,32149]]]},"properties":{"cp":[121.472644,31.231706],"name":"上海","childNum":6}},{"id":"500000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@vjG~nGŘŬĶȂƀƾ¹¸ØÎezĆT¸}êЖqHŸðqĖ䒊¥^CƒIj–²p…\\_ æüY|[YxƊæuž°xb®…Űb@~¢NQt°¶‚S栓Ê~rljĔëĚ¢~šuf`‘‚†fa‚ĔJåĊ„nÖ]„jƎćÊ@Š£¾a®£Ű{ŶĕF‹ègLk{Y|¡ĜWƔtƬJÑxq‹±ĢN´‰òK‰™–LÈüD|s`ŋ’ć]ƒÃ‰`đŒMûƱ½~Y°ħ`ƏíW‰½eI‹½{aŸ‘OIrÏ¡ĕŇa†p†µÜƅġ‘œ^ÖÛbÙŽŏml½S‹êqDu[R‹ãË»†ÿw`»y‘¸_ĺę}÷`M¯ċfCVµqʼn÷Z•gg“Œ`d½pDO‡ÎCnœ^uf²ènh¼WtƏxRGg¦…pV„†FI±ŽG^ŒIc´ec‡’G•ĹÞ½sëĬ„h˜xW‚}Kӈe­Xsbk”F¦›L‘ØgTkïƵNï¶}Gy“w\\oñ¡nmĈzjŸ•@™Óc£»Wă¹Ój“_m»ˆ¹·~MvÛaqœ»­‰êœ’\\ÂoVnŽÓØ͙²«‹bq¿efE „€‹Ĝ^Qž~ Évý‡ş¤²Į‰pEİ}zcĺƒL‹½‡š¿gņ›¡ýE¡ya£³t\\¨\\vú»¼§·Ñr_oÒý¥u‚•_n»_ƒ•At©Þűā§IVeëƒY}{VPÀFA¨ąB}q@|Ou—\\Fm‰QF݅Mw˜å}]•€|FmϋCaƒwŒu_p—¯sfÙgY…DHl`{QEfNysBŠ¦zG¸rHe‚„N\\CvEsÐùÜ_·ÖĉsaQ¯€}_U‡†xÃđŠq›NH¬•Äd^ÝŰR¬ã°wećJEž·vÝ·Hgƒ‚éFXjÉê`|yŒpxkAwœWĐpb¥eOsmzwqChóUQl¥F^laf‹anòsr›EvfQdÁUVf—ÎvÜ^efˆtET¬ôA\\œ¢sJŽnQTjP؈xøK|nBz‰„œĞ»LY‚…FDxӄvr“[ehľš•vN”¢o¾NiÂxGp⬐z›bfZo~hGi’]öF|‰|Nb‡tOMn eA±ŠtPT‡LjpYQ|†SH††YĀxinzDJ€Ìg¢và¥Pg‰_–ÇzII‹€II•„£®S¬„Øs쐣ŒN"],["@@ifjN@s"]],"encodeOffsets":[[[109628,30765]],[[111725,31320]]]},"properties":{"cp":[106.504962,29.533155],"name":"重庆","childNum":2}},{"id":"810000","type":"Feature","geometry":{"type":"MultiPolygon","coordinates":[["@@AlBk"],["@@mŽn"],["@@EpFo"],["@@ea¢pl¸Eõ¹‡hj[ƒ]ÔCΖ@lj˜¡uBXŸ…•´‹AI¹…[‹yDUˆ]W`çwZkmc–…M›žp€Åv›}I‹oJlcaƒfёKŽ°ä¬XJmРđhI®æÔtSHn€Eˆ„ÒrÈc"],["@@rMUw‡AS®€e"]],"encodeOffsets":[[[117111,23002]],[[117072,22876]],[[117045,22887]],[[116975,23082]],[[116882,22747]]]},"properties":{"cp":[114.173355,22.320048],"name":"香港","childNum":5}},{"id":"820000","type":"Feature","geometry":{"type":"Polygon","coordinates":["@@kÊd°å§s"],"encodeOffsets":[[116279,22639]]},"properties":{"cp":[113.54909,22.198951],"name":"澳门","childNum":1}}],"UTF8Encoding":true}); +})); \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/js/echarts-wordcloud.js b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/js/echarts-wordcloud.js new file mode 100644 index 00000000..6b2cc652 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/js/echarts-wordcloud.js @@ -0,0 +1,16548 @@ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(require("echarts")); + else if(typeof define === 'function' && define.amd) + define(["echarts"], factory); + else if(typeof exports === 'object') + exports["echarts-wordcloud"] = factory(require("echarts")); + else + root["echarts-wordcloud"] = factory(root["echarts"]); +})(this, function(__WEBPACK_EXTERNAL_MODULE_7__) { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { +/******/ configurable: false, +/******/ enumerable: true, +/******/ get: getter +/******/ }); +/******/ } +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 25); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports) { + +/** + * @module zrender/core/util + */ +// 用于处理merge时无法遍历Date等对象的问题 +var BUILTIN_OBJECT = { + '[object Function]': 1, + '[object RegExp]': 1, + '[object Date]': 1, + '[object Error]': 1, + '[object CanvasGradient]': 1, + '[object CanvasPattern]': 1, + // For node-canvas + '[object Image]': 1, + '[object Canvas]': 1 +}; +var TYPED_ARRAY = { + '[object Int8Array]': 1, + '[object Uint8Array]': 1, + '[object Uint8ClampedArray]': 1, + '[object Int16Array]': 1, + '[object Uint16Array]': 1, + '[object Int32Array]': 1, + '[object Uint32Array]': 1, + '[object Float32Array]': 1, + '[object Float64Array]': 1 +}; +var objToString = Object.prototype.toString; +var arrayProto = Array.prototype; +var nativeForEach = arrayProto.forEach; +var nativeFilter = arrayProto.filter; +var nativeSlice = arrayProto.slice; +var nativeMap = arrayProto.map; +var nativeReduce = arrayProto.reduce; // Avoid assign to an exported variable, for transforming to cjs. + +var methods = {}; + +function $override(name, fn) { + methods[name] = fn; +} +/** + * Those data types can be cloned: + * Plain object, Array, TypedArray, number, string, null, undefined. + * Those data types will be assgined using the orginal data: + * BUILTIN_OBJECT + * Instance of user defined class will be cloned to a plain object, without + * properties in prototype. + * Other data types is not supported (not sure what will happen). + * + * Caution: do not support clone Date, for performance consideration. + * (There might be a large number of date in `series.data`). + * So date should not be modified in and out of echarts. + * + * @param {*} source + * @return {*} new + */ + + +function clone(source) { + if (source == null || typeof source != 'object') { + return source; + } + + var result = source; + var typeStr = objToString.call(source); + + if (typeStr === '[object Array]') { + result = []; + + for (var i = 0, len = source.length; i < len; i++) { + result[i] = clone(source[i]); + } + } else if (TYPED_ARRAY[typeStr]) { + var Ctor = source.constructor; + + if (source.constructor.from) { + result = Ctor.from(source); + } else { + result = new Ctor(source.length); + + for (var i = 0, len = source.length; i < len; i++) { + result[i] = clone(source[i]); + } + } + } else if (!BUILTIN_OBJECT[typeStr] && !isPrimitive(source) && !isDom(source)) { + result = {}; + + for (var key in source) { + if (source.hasOwnProperty(key)) { + result[key] = clone(source[key]); + } + } + } + + return result; +} +/** + * @memberOf module:zrender/core/util + * @param {*} target + * @param {*} source + * @param {boolean} [overwrite=false] + */ + + +function merge(target, source, overwrite) { + // We should escapse that source is string + // and enter for ... in ... + if (!isObject(source) || !isObject(target)) { + return overwrite ? clone(source) : target; + } + + for (var key in source) { + if (source.hasOwnProperty(key)) { + var targetProp = target[key]; + var sourceProp = source[key]; + + if (isObject(sourceProp) && isObject(targetProp) && !isArray(sourceProp) && !isArray(targetProp) && !isDom(sourceProp) && !isDom(targetProp) && !isBuiltInObject(sourceProp) && !isBuiltInObject(targetProp) && !isPrimitive(sourceProp) && !isPrimitive(targetProp)) { + // 如果需要递归覆盖,就递归调用merge + merge(targetProp, sourceProp, overwrite); + } else if (overwrite || !(key in target)) { + // 否则只处理overwrite为true,或者在目标对象中没有此属性的情况 + // NOTE,在 target[key] 不存在的时候也是直接覆盖 + target[key] = clone(source[key], true); + } + } + } + + return target; +} +/** + * @param {Array} targetAndSources The first item is target, and the rests are source. + * @param {boolean} [overwrite=false] + * @return {*} target + */ + + +function mergeAll(targetAndSources, overwrite) { + var result = targetAndSources[0]; + + for (var i = 1, len = targetAndSources.length; i < len; i++) { + result = merge(result, targetAndSources[i], overwrite); + } + + return result; +} +/** + * @param {*} target + * @param {*} source + * @memberOf module:zrender/core/util + */ + + +function extend(target, source) { + for (var key in source) { + if (source.hasOwnProperty(key)) { + target[key] = source[key]; + } + } + + return target; +} +/** + * @param {*} target + * @param {*} source + * @param {boolean} [overlay=false] + * @memberOf module:zrender/core/util + */ + + +function defaults(target, source, overlay) { + for (var key in source) { + if (source.hasOwnProperty(key) && (overlay ? source[key] != null : target[key] == null)) { + target[key] = source[key]; + } + } + + return target; +} + +var createCanvas = function () { + return methods.createCanvas(); +}; + +methods.createCanvas = function () { + return document.createElement('canvas'); +}; // FIXME + + +var _ctx; + +function getContext() { + if (!_ctx) { + // Use util.createCanvas instead of createCanvas + // because createCanvas may be overwritten in different environment + _ctx = createCanvas().getContext('2d'); + } + + return _ctx; +} +/** + * 查询数组中元素的index + * @memberOf module:zrender/core/util + */ + + +function indexOf(array, value) { + if (array) { + if (array.indexOf) { + return array.indexOf(value); + } + + for (var i = 0, len = array.length; i < len; i++) { + if (array[i] === value) { + return i; + } + } + } + + return -1; +} +/** + * 构造类继承关系 + * + * @memberOf module:zrender/core/util + * @param {Function} clazz 源类 + * @param {Function} baseClazz 基类 + */ + + +function inherits(clazz, baseClazz) { + var clazzPrototype = clazz.prototype; + + function F() {} + + F.prototype = baseClazz.prototype; + clazz.prototype = new F(); + + for (var prop in clazzPrototype) { + clazz.prototype[prop] = clazzPrototype[prop]; + } + + clazz.prototype.constructor = clazz; + clazz.superClass = baseClazz; +} +/** + * @memberOf module:zrender/core/util + * @param {Object|Function} target + * @param {Object|Function} sorce + * @param {boolean} overlay + */ + + +function mixin(target, source, overlay) { + target = 'prototype' in target ? target.prototype : target; + source = 'prototype' in source ? source.prototype : source; + defaults(target, source, overlay); +} +/** + * Consider typed array. + * @param {Array|TypedArray} data + */ + + +function isArrayLike(data) { + if (!data) { + return; + } + + if (typeof data == 'string') { + return false; + } + + return typeof data.length == 'number'; +} +/** + * 数组或对象遍历 + * @memberOf module:zrender/core/util + * @param {Object|Array} obj + * @param {Function} cb + * @param {*} [context] + */ + + +function each(obj, cb, context) { + if (!(obj && cb)) { + return; + } + + if (obj.forEach && obj.forEach === nativeForEach) { + obj.forEach(cb, context); + } else if (obj.length === +obj.length) { + for (var i = 0, len = obj.length; i < len; i++) { + cb.call(context, obj[i], i, obj); + } + } else { + for (var key in obj) { + if (obj.hasOwnProperty(key)) { + cb.call(context, obj[key], key, obj); + } + } + } +} +/** + * 数组映射 + * @memberOf module:zrender/core/util + * @param {Array} obj + * @param {Function} cb + * @param {*} [context] + * @return {Array} + */ + + +function map(obj, cb, context) { + if (!(obj && cb)) { + return; + } + + if (obj.map && obj.map === nativeMap) { + return obj.map(cb, context); + } else { + var result = []; + + for (var i = 0, len = obj.length; i < len; i++) { + result.push(cb.call(context, obj[i], i, obj)); + } + + return result; + } +} +/** + * @memberOf module:zrender/core/util + * @param {Array} obj + * @param {Function} cb + * @param {Object} [memo] + * @param {*} [context] + * @return {Array} + */ + + +function reduce(obj, cb, memo, context) { + if (!(obj && cb)) { + return; + } + + if (obj.reduce && obj.reduce === nativeReduce) { + return obj.reduce(cb, memo, context); + } else { + for (var i = 0, len = obj.length; i < len; i++) { + memo = cb.call(context, memo, obj[i], i, obj); + } + + return memo; + } +} +/** + * 数组过滤 + * @memberOf module:zrender/core/util + * @param {Array} obj + * @param {Function} cb + * @param {*} [context] + * @return {Array} + */ + + +function filter(obj, cb, context) { + if (!(obj && cb)) { + return; + } + + if (obj.filter && obj.filter === nativeFilter) { + return obj.filter(cb, context); + } else { + var result = []; + + for (var i = 0, len = obj.length; i < len; i++) { + if (cb.call(context, obj[i], i, obj)) { + result.push(obj[i]); + } + } + + return result; + } +} +/** + * 数组项查找 + * @memberOf module:zrender/core/util + * @param {Array} obj + * @param {Function} cb + * @param {*} [context] + * @return {*} + */ + + +function find(obj, cb, context) { + if (!(obj && cb)) { + return; + } + + for (var i = 0, len = obj.length; i < len; i++) { + if (cb.call(context, obj[i], i, obj)) { + return obj[i]; + } + } +} +/** + * @memberOf module:zrender/core/util + * @param {Function} func + * @param {*} context + * @return {Function} + */ + + +function bind(func, context) { + var args = nativeSlice.call(arguments, 2); + return function () { + return func.apply(context, args.concat(nativeSlice.call(arguments))); + }; +} +/** + * @memberOf module:zrender/core/util + * @param {Function} func + * @return {Function} + */ + + +function curry(func) { + var args = nativeSlice.call(arguments, 1); + return function () { + return func.apply(this, args.concat(nativeSlice.call(arguments))); + }; +} +/** + * @memberOf module:zrender/core/util + * @param {*} value + * @return {boolean} + */ + + +function isArray(value) { + return objToString.call(value) === '[object Array]'; +} +/** + * @memberOf module:zrender/core/util + * @param {*} value + * @return {boolean} + */ + + +function isFunction(value) { + return typeof value === 'function'; +} +/** + * @memberOf module:zrender/core/util + * @param {*} value + * @return {boolean} + */ + + +function isString(value) { + return objToString.call(value) === '[object String]'; +} +/** + * @memberOf module:zrender/core/util + * @param {*} value + * @return {boolean} + */ + + +function isObject(value) { + // Avoid a V8 JIT bug in Chrome 19-20. + // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. + var type = typeof value; + return type === 'function' || !!value && type == 'object'; +} +/** + * @memberOf module:zrender/core/util + * @param {*} value + * @return {boolean} + */ + + +function isBuiltInObject(value) { + return !!BUILTIN_OBJECT[objToString.call(value)]; +} +/** + * @memberOf module:zrender/core/util + * @param {*} value + * @return {boolean} + */ + + +function isDom(value) { + return typeof value === 'object' && typeof value.nodeType === 'number' && typeof value.ownerDocument === 'object'; +} +/** + * Whether is exactly NaN. Notice isNaN('a') returns true. + * @param {*} value + * @return {boolean} + */ + + +function eqNaN(value) { + return value !== value; +} +/** + * If value1 is not null, then return value1, otherwise judget rest of values. + * Low performance. + * @memberOf module:zrender/core/util + * @return {*} Final value + */ + + +function retrieve(values) { + for (var i = 0, len = arguments.length; i < len; i++) { + if (arguments[i] != null) { + return arguments[i]; + } + } +} + +function retrieve2(value0, value1) { + return value0 != null ? value0 : value1; +} + +function retrieve3(value0, value1, value2) { + return value0 != null ? value0 : value1 != null ? value1 : value2; +} +/** + * @memberOf module:zrender/core/util + * @param {Array} arr + * @param {number} startIndex + * @param {number} endIndex + * @return {Array} + */ + + +function slice() { + return Function.call.apply(nativeSlice, arguments); +} +/** + * Normalize css liked array configuration + * e.g. + * 3 => [3, 3, 3, 3] + * [4, 2] => [4, 2, 4, 2] + * [4, 3, 2] => [4, 3, 2, 3] + * @param {number|Array.} val + * @return {Array.} + */ + + +function normalizeCssArray(val) { + if (typeof val === 'number') { + return [val, val, val, val]; + } + + var len = val.length; + + if (len === 2) { + // vertical | horizontal + return [val[0], val[1], val[0], val[1]]; + } else if (len === 3) { + // top | horizontal | bottom + return [val[0], val[1], val[2], val[1]]; + } + + return val; +} +/** + * @memberOf module:zrender/core/util + * @param {boolean} condition + * @param {string} message + */ + + +function assert(condition, message) { + if (!condition) { + throw new Error(message); + } +} + +var primitiveKey = '__ec_primitive__'; +/** + * Set an object as primitive to be ignored traversing children in clone or merge + */ + +function setAsPrimitive(obj) { + obj[primitiveKey] = true; +} + +function isPrimitive(obj) { + return obj[primitiveKey]; +} +/** + * @constructor + * @param {Object} obj Only apply `ownProperty`. + */ + + +function HashMap(obj) { + obj && each(obj, function (value, key) { + this.set(key, value); + }, this); +} // Add prefix to avoid conflict with Object.prototype. + + +var HASH_MAP_PREFIX = '_ec_'; +var HASH_MAP_PREFIX_LENGTH = 4; +HashMap.prototype = { + constructor: HashMap, + // Do not provide `has` method to avoid defining what is `has`. + // (We usually treat `null` and `undefined` as the same, different + // from ES6 Map). + get: function (key) { + return this[HASH_MAP_PREFIX + key]; + }, + set: function (key, value) { + this[HASH_MAP_PREFIX + key] = value; // Comparing with invocation chaining, `return value` is more commonly + // used in this case: `var someVal = map.set('a', genVal());` + + return value; + }, + // Although util.each can be performed on this hashMap directly, user + // should not use the exposed keys, who are prefixed. + each: function (cb, context) { + context !== void 0 && (cb = bind(cb, context)); + + for (var prefixedKey in this) { + this.hasOwnProperty(prefixedKey) && cb(this[prefixedKey], prefixedKey.slice(HASH_MAP_PREFIX_LENGTH)); + } + }, + // Do not use this method if performance sensitive. + removeKey: function (key) { + delete this[HASH_MAP_PREFIX + key]; + } +}; + +function createHashMap(obj) { + return new HashMap(obj); +} + +function noop() {} + +exports.$override = $override; +exports.clone = clone; +exports.merge = merge; +exports.mergeAll = mergeAll; +exports.extend = extend; +exports.defaults = defaults; +exports.createCanvas = createCanvas; +exports.getContext = getContext; +exports.indexOf = indexOf; +exports.inherits = inherits; +exports.mixin = mixin; +exports.isArrayLike = isArrayLike; +exports.each = each; +exports.map = map; +exports.reduce = reduce; +exports.filter = filter; +exports.find = find; +exports.bind = bind; +exports.curry = curry; +exports.isArray = isArray; +exports.isFunction = isFunction; +exports.isString = isString; +exports.isObject = isObject; +exports.isBuiltInObject = isBuiltInObject; +exports.isDom = isDom; +exports.eqNaN = eqNaN; +exports.retrieve = retrieve; +exports.retrieve2 = retrieve2; +exports.retrieve3 = retrieve3; +exports.slice = slice; +exports.normalizeCssArray = normalizeCssArray; +exports.assert = assert; +exports.setAsPrimitive = setAsPrimitive; +exports.isPrimitive = isPrimitive; +exports.createHashMap = createHashMap; +exports.noop = noop; + +/***/ }), +/* 1 */ +/***/ (function(module, exports, __webpack_require__) { + +var Displayable = __webpack_require__(12); + +var zrUtil = __webpack_require__(0); + +var PathProxy = __webpack_require__(6); + +var pathContain = __webpack_require__(50); + +var Pattern = __webpack_require__(56); + +var getCanvasPattern = Pattern.prototype.getCanvasPattern; +var abs = Math.abs; +var pathProxyForDraw = new PathProxy(true); +/** + * @alias module:zrender/graphic/Path + * @extends module:zrender/graphic/Displayable + * @constructor + * @param {Object} opts + */ + +function Path(opts) { + Displayable.call(this, opts); + /** + * @type {module:zrender/core/PathProxy} + * @readOnly + */ + + this.path = null; +} + +Path.prototype = { + constructor: Path, + type: 'path', + __dirtyPath: true, + strokeContainThreshold: 5, + brush: function (ctx, prevEl) { + var style = this.style; + var path = this.path || pathProxyForDraw; + var hasStroke = style.hasStroke(); + var hasFill = style.hasFill(); + var fill = style.fill; + var stroke = style.stroke; + var hasFillGradient = hasFill && !!fill.colorStops; + var hasStrokeGradient = hasStroke && !!stroke.colorStops; + var hasFillPattern = hasFill && !!fill.image; + var hasStrokePattern = hasStroke && !!stroke.image; + style.bind(ctx, this, prevEl); + this.setTransform(ctx); + + if (this.__dirty) { + var rect; // Update gradient because bounding rect may changed + + if (hasFillGradient) { + rect = rect || this.getBoundingRect(); + this._fillGradient = style.getGradient(ctx, fill, rect); + } + + if (hasStrokeGradient) { + rect = rect || this.getBoundingRect(); + this._strokeGradient = style.getGradient(ctx, stroke, rect); + } + } // Use the gradient or pattern + + + if (hasFillGradient) { + // PENDING If may have affect the state + ctx.fillStyle = this._fillGradient; + } else if (hasFillPattern) { + ctx.fillStyle = getCanvasPattern.call(fill, ctx); + } + + if (hasStrokeGradient) { + ctx.strokeStyle = this._strokeGradient; + } else if (hasStrokePattern) { + ctx.strokeStyle = getCanvasPattern.call(stroke, ctx); + } + + var lineDash = style.lineDash; + var lineDashOffset = style.lineDashOffset; + var ctxLineDash = !!ctx.setLineDash; // Update path sx, sy + + var scale = this.getGlobalScale(); + path.setScale(scale[0], scale[1]); // Proxy context + // Rebuild path in following 2 cases + // 1. Path is dirty + // 2. Path needs javascript implemented lineDash stroking. + // In this case, lineDash information will not be saved in PathProxy + + if (this.__dirtyPath || lineDash && !ctxLineDash && hasStroke) { + path.beginPath(ctx); // Setting line dash before build path + + if (lineDash && !ctxLineDash) { + path.setLineDash(lineDash); + path.setLineDashOffset(lineDashOffset); + } + + this.buildPath(path, this.shape, false); // Clear path dirty flag + + if (this.path) { + this.__dirtyPath = false; + } + } else { + // Replay path building + ctx.beginPath(); + this.path.rebuildPath(ctx); + } + + hasFill && path.fill(ctx); + + if (lineDash && ctxLineDash) { + ctx.setLineDash(lineDash); + ctx.lineDashOffset = lineDashOffset; + } + + hasStroke && path.stroke(ctx); + + if (lineDash && ctxLineDash) { + // PENDING + // Remove lineDash + ctx.setLineDash([]); + } + + this.restoreTransform(ctx); // Draw rect text + + if (style.text != null) { + this.drawRectText(ctx, this.getBoundingRect()); + } + }, + // When bundling path, some shape may decide if use moveTo to begin a new subpath or closePath + // Like in circle + buildPath: function (ctx, shapeCfg, inBundle) {}, + createPathProxy: function () { + this.path = new PathProxy(); + }, + getBoundingRect: function () { + var rect = this._rect; + var style = this.style; + var needsUpdateRect = !rect; + + if (needsUpdateRect) { + var path = this.path; + + if (!path) { + // Create path on demand. + path = this.path = new PathProxy(); + } + + if (this.__dirtyPath) { + path.beginPath(); + this.buildPath(path, this.shape, false); + } + + rect = path.getBoundingRect(); + } + + this._rect = rect; + + if (style.hasStroke()) { + // Needs update rect with stroke lineWidth when + // 1. Element changes scale or lineWidth + // 2. Shape is changed + var rectWithStroke = this._rectWithStroke || (this._rectWithStroke = rect.clone()); + + if (this.__dirty || needsUpdateRect) { + rectWithStroke.copy(rect); // FIXME Must after updateTransform + + var w = style.lineWidth; // PENDING, Min line width is needed when line is horizontal or vertical + + var lineScale = style.strokeNoScale ? this.getLineScale() : 1; // Only add extra hover lineWidth when there are no fill + + if (!style.hasFill()) { + w = Math.max(w, this.strokeContainThreshold || 4); + } // Consider line width + // Line scale can't be 0; + + + if (lineScale > 1e-10) { + rectWithStroke.width += w / lineScale; + rectWithStroke.height += w / lineScale; + rectWithStroke.x -= w / lineScale / 2; + rectWithStroke.y -= w / lineScale / 2; + } + } // Return rect with stroke + + + return rectWithStroke; + } + + return rect; + }, + contain: function (x, y) { + var localPos = this.transformCoordToLocal(x, y); + var rect = this.getBoundingRect(); + var style = this.style; + x = localPos[0]; + y = localPos[1]; + + if (rect.contain(x, y)) { + var pathData = this.path.data; + + if (style.hasStroke()) { + var lineWidth = style.lineWidth; + var lineScale = style.strokeNoScale ? this.getLineScale() : 1; // Line scale can't be 0; + + if (lineScale > 1e-10) { + // Only add extra hover lineWidth when there are no fill + if (!style.hasFill()) { + lineWidth = Math.max(lineWidth, this.strokeContainThreshold); + } + + if (pathContain.containStroke(pathData, lineWidth / lineScale, x, y)) { + return true; + } + } + } + + if (style.hasFill()) { + return pathContain.contain(pathData, x, y); + } + } + + return false; + }, + + /** + * @param {boolean} dirtyPath + */ + dirty: function (dirtyPath) { + if (dirtyPath == null) { + dirtyPath = true; + } // Only mark dirty, not mark clean + + + if (dirtyPath) { + this.__dirtyPath = dirtyPath; + this._rect = null; + } + + this.__dirty = true; + this.__zr && this.__zr.refresh(); // Used as a clipping path + + if (this.__clipTarget) { + this.__clipTarget.dirty(); + } + }, + + /** + * Alias for animate('shape') + * @param {boolean} loop + */ + animateShape: function (loop) { + return this.animate('shape', loop); + }, + // Overwrite attrKV + attrKV: function (key, value) { + // FIXME + if (key === 'shape') { + this.setShape(value); + this.__dirtyPath = true; + this._rect = null; + } else { + Displayable.prototype.attrKV.call(this, key, value); + } + }, + + /** + * @param {Object|string} key + * @param {*} value + */ + setShape: function (key, value) { + var shape = this.shape; // Path from string may not have shape + + if (shape) { + if (zrUtil.isObject(key)) { + for (var name in key) { + if (key.hasOwnProperty(name)) { + shape[name] = key[name]; + } + } + } else { + shape[key] = value; + } + + this.dirty(true); + } + + return this; + }, + getLineScale: function () { + var m = this.transform; // Get the line scale. + // Determinant of `m` means how much the area is enlarged by the + // transformation. So its square root can be used as a scale factor + // for width. + + return m && abs(m[0] - 1) > 1e-10 && abs(m[3] - 1) > 1e-10 ? Math.sqrt(abs(m[0] * m[3] - m[2] * m[1])) : 1; + } +}; +/** + * 扩展一个 Path element, 比如星形,圆等。 + * Extend a path element + * @param {Object} props + * @param {string} props.type Path type + * @param {Function} props.init Initialize + * @param {Function} props.buildPath Overwrite buildPath method + * @param {Object} [props.style] Extended default style config + * @param {Object} [props.shape] Extended default shape config + */ + +Path.extend = function (defaults) { + var Sub = function (opts) { + Path.call(this, opts); + + if (defaults.style) { + // Extend default style + this.style.extendFrom(defaults.style, false); + } // Extend default shape + + + var defaultShape = defaults.shape; + + if (defaultShape) { + this.shape = this.shape || {}; + var thisShape = this.shape; + + for (var name in defaultShape) { + if (!thisShape.hasOwnProperty(name) && defaultShape.hasOwnProperty(name)) { + thisShape[name] = defaultShape[name]; + } + } + } + + defaults.init && defaults.init.call(this, opts); + }; + + zrUtil.inherits(Sub, Path); // FIXME 不能 extend position, rotation 等引用对象 + + for (var name in defaults) { + // Extending prototype values and methods + if (name !== 'style' && name !== 'shape') { + Sub.prototype[name] = defaults[name]; + } + } + + return Sub; +}; + +zrUtil.inherits(Path, Displayable); +var _default = Path; +module.exports = _default; + +/***/ }), +/* 2 */ +/***/ (function(module, exports) { + +var ArrayCtor = typeof Float32Array === 'undefined' ? Array : Float32Array; +/** + * 创建一个向量 + * @param {number} [x=0] + * @param {number} [y=0] + * @return {Vector2} + */ + +function create(x, y) { + var out = new ArrayCtor(2); + + if (x == null) { + x = 0; + } + + if (y == null) { + y = 0; + } + + out[0] = x; + out[1] = y; + return out; +} +/** + * 复制向量数据 + * @param {Vector2} out + * @param {Vector2} v + * @return {Vector2} + */ + + +function copy(out, v) { + out[0] = v[0]; + out[1] = v[1]; + return out; +} +/** + * 克隆一个向量 + * @param {Vector2} v + * @return {Vector2} + */ + + +function clone(v) { + var out = new ArrayCtor(2); + out[0] = v[0]; + out[1] = v[1]; + return out; +} +/** + * 设置向量的两个项 + * @param {Vector2} out + * @param {number} a + * @param {number} b + * @return {Vector2} 结果 + */ + + +function set(out, a, b) { + out[0] = a; + out[1] = b; + return out; +} +/** + * 向量相加 + * @param {Vector2} out + * @param {Vector2} v1 + * @param {Vector2} v2 + */ + + +function add(out, v1, v2) { + out[0] = v1[0] + v2[0]; + out[1] = v1[1] + v2[1]; + return out; +} +/** + * 向量缩放后相加 + * @param {Vector2} out + * @param {Vector2} v1 + * @param {Vector2} v2 + * @param {number} a + */ + + +function scaleAndAdd(out, v1, v2, a) { + out[0] = v1[0] + v2[0] * a; + out[1] = v1[1] + v2[1] * a; + return out; +} +/** + * 向量相减 + * @param {Vector2} out + * @param {Vector2} v1 + * @param {Vector2} v2 + */ + + +function sub(out, v1, v2) { + out[0] = v1[0] - v2[0]; + out[1] = v1[1] - v2[1]; + return out; +} +/** + * 向量长度 + * @param {Vector2} v + * @return {number} + */ + + +function len(v) { + return Math.sqrt(lenSquare(v)); +} + +var length = len; // jshint ignore:line + +/** + * 向量长度平方 + * @param {Vector2} v + * @return {number} + */ + +function lenSquare(v) { + return v[0] * v[0] + v[1] * v[1]; +} + +var lengthSquare = lenSquare; +/** + * 向量乘法 + * @param {Vector2} out + * @param {Vector2} v1 + * @param {Vector2} v2 + */ + +function mul(out, v1, v2) { + out[0] = v1[0] * v2[0]; + out[1] = v1[1] * v2[1]; + return out; +} +/** + * 向量除法 + * @param {Vector2} out + * @param {Vector2} v1 + * @param {Vector2} v2 + */ + + +function div(out, v1, v2) { + out[0] = v1[0] / v2[0]; + out[1] = v1[1] / v2[1]; + return out; +} +/** + * 向量点乘 + * @param {Vector2} v1 + * @param {Vector2} v2 + * @return {number} + */ + + +function dot(v1, v2) { + return v1[0] * v2[0] + v1[1] * v2[1]; +} +/** + * 向量缩放 + * @param {Vector2} out + * @param {Vector2} v + * @param {number} s + */ + + +function scale(out, v, s) { + out[0] = v[0] * s; + out[1] = v[1] * s; + return out; +} +/** + * 向量归一化 + * @param {Vector2} out + * @param {Vector2} v + */ + + +function normalize(out, v) { + var d = len(v); + + if (d === 0) { + out[0] = 0; + out[1] = 0; + } else { + out[0] = v[0] / d; + out[1] = v[1] / d; + } + + return out; +} +/** + * 计算向量间距离 + * @param {Vector2} v1 + * @param {Vector2} v2 + * @return {number} + */ + + +function distance(v1, v2) { + return Math.sqrt((v1[0] - v2[0]) * (v1[0] - v2[0]) + (v1[1] - v2[1]) * (v1[1] - v2[1])); +} + +var dist = distance; +/** + * 向量距离平方 + * @param {Vector2} v1 + * @param {Vector2} v2 + * @return {number} + */ + +function distanceSquare(v1, v2) { + return (v1[0] - v2[0]) * (v1[0] - v2[0]) + (v1[1] - v2[1]) * (v1[1] - v2[1]); +} + +var distSquare = distanceSquare; +/** + * 求负向量 + * @param {Vector2} out + * @param {Vector2} v + */ + +function negate(out, v) { + out[0] = -v[0]; + out[1] = -v[1]; + return out; +} +/** + * 插值两个点 + * @param {Vector2} out + * @param {Vector2} v1 + * @param {Vector2} v2 + * @param {number} t + */ + + +function lerp(out, v1, v2, t) { + out[0] = v1[0] + t * (v2[0] - v1[0]); + out[1] = v1[1] + t * (v2[1] - v1[1]); + return out; +} +/** + * 矩阵左乘向量 + * @param {Vector2} out + * @param {Vector2} v + * @param {Vector2} m + */ + + +function applyTransform(out, v, m) { + var x = v[0]; + var y = v[1]; + out[0] = m[0] * x + m[2] * y + m[4]; + out[1] = m[1] * x + m[3] * y + m[5]; + return out; +} +/** + * 求两个向量最小值 + * @param {Vector2} out + * @param {Vector2} v1 + * @param {Vector2} v2 + */ + + +function min(out, v1, v2) { + out[0] = Math.min(v1[0], v2[0]); + out[1] = Math.min(v1[1], v2[1]); + return out; +} +/** + * 求两个向量最大值 + * @param {Vector2} out + * @param {Vector2} v1 + * @param {Vector2} v2 + */ + + +function max(out, v1, v2) { + out[0] = Math.max(v1[0], v2[0]); + out[1] = Math.max(v1[1], v2[1]); + return out; +} + +exports.create = create; +exports.copy = copy; +exports.clone = clone; +exports.set = set; +exports.add = add; +exports.scaleAndAdd = scaleAndAdd; +exports.sub = sub; +exports.len = len; +exports.length = length; +exports.lenSquare = lenSquare; +exports.lengthSquare = lengthSquare; +exports.mul = mul; +exports.div = div; +exports.dot = dot; +exports.scale = scale; +exports.normalize = normalize; +exports.distance = distance; +exports.dist = dist; +exports.distanceSquare = distanceSquare; +exports.distSquare = distSquare; +exports.negate = negate; +exports.lerp = lerp; +exports.applyTransform = applyTransform; +exports.min = min; +exports.max = max; + +/***/ }), +/* 3 */ +/***/ (function(module, exports, __webpack_require__) { + +var vec2 = __webpack_require__(2); + +var matrix = __webpack_require__(8); + +/** + * @module echarts/core/BoundingRect + */ +var v2ApplyTransform = vec2.applyTransform; +var mathMin = Math.min; +var mathMax = Math.max; +/** + * @alias module:echarts/core/BoundingRect + */ + +function BoundingRect(x, y, width, height) { + if (width < 0) { + x = x + width; + width = -width; + } + + if (height < 0) { + y = y + height; + height = -height; + } + /** + * @type {number} + */ + + + this.x = x; + /** + * @type {number} + */ + + this.y = y; + /** + * @type {number} + */ + + this.width = width; + /** + * @type {number} + */ + + this.height = height; +} + +BoundingRect.prototype = { + constructor: BoundingRect, + + /** + * @param {module:echarts/core/BoundingRect} other + */ + union: function (other) { + var x = mathMin(other.x, this.x); + var y = mathMin(other.y, this.y); + this.width = mathMax(other.x + other.width, this.x + this.width) - x; + this.height = mathMax(other.y + other.height, this.y + this.height) - y; + this.x = x; + this.y = y; + }, + + /** + * @param {Array.} m + * @methods + */ + applyTransform: function () { + var lt = []; + var rb = []; + var lb = []; + var rt = []; + return function (m) { + // In case usage like this + // el.getBoundingRect().applyTransform(el.transform) + // And element has no transform + if (!m) { + return; + } + + lt[0] = lb[0] = this.x; + lt[1] = rt[1] = this.y; + rb[0] = rt[0] = this.x + this.width; + rb[1] = lb[1] = this.y + this.height; + v2ApplyTransform(lt, lt, m); + v2ApplyTransform(rb, rb, m); + v2ApplyTransform(lb, lb, m); + v2ApplyTransform(rt, rt, m); + this.x = mathMin(lt[0], rb[0], lb[0], rt[0]); + this.y = mathMin(lt[1], rb[1], lb[1], rt[1]); + var maxX = mathMax(lt[0], rb[0], lb[0], rt[0]); + var maxY = mathMax(lt[1], rb[1], lb[1], rt[1]); + this.width = maxX - this.x; + this.height = maxY - this.y; + }; + }(), + + /** + * Calculate matrix of transforming from self to target rect + * @param {module:zrender/core/BoundingRect} b + * @return {Array.} + */ + calculateTransform: function (b) { + var a = this; + var sx = b.width / a.width; + var sy = b.height / a.height; + var m = matrix.create(); // 矩阵右乘 + + matrix.translate(m, m, [-a.x, -a.y]); + matrix.scale(m, m, [sx, sy]); + matrix.translate(m, m, [b.x, b.y]); + return m; + }, + + /** + * @param {(module:echarts/core/BoundingRect|Object)} b + * @return {boolean} + */ + intersect: function (b) { + if (!b) { + return false; + } + + if (!(b instanceof BoundingRect)) { + // Normalize negative width/height. + b = BoundingRect.create(b); + } + + var a = this; + var ax0 = a.x; + var ax1 = a.x + a.width; + var ay0 = a.y; + var ay1 = a.y + a.height; + var bx0 = b.x; + var bx1 = b.x + b.width; + var by0 = b.y; + var by1 = b.y + b.height; + return !(ax1 < bx0 || bx1 < ax0 || ay1 < by0 || by1 < ay0); + }, + contain: function (x, y) { + var rect = this; + return x >= rect.x && x <= rect.x + rect.width && y >= rect.y && y <= rect.y + rect.height; + }, + + /** + * @return {module:echarts/core/BoundingRect} + */ + clone: function () { + return new BoundingRect(this.x, this.y, this.width, this.height); + }, + + /** + * Copy from another rect + */ + copy: function (other) { + this.x = other.x; + this.y = other.y; + this.width = other.width; + this.height = other.height; + }, + plain: function () { + return { + x: this.x, + y: this.y, + width: this.width, + height: this.height + }; + } +}; +/** + * @param {Object|module:zrender/core/BoundingRect} rect + * @param {number} rect.x + * @param {number} rect.y + * @param {number} rect.width + * @param {number} rect.height + * @return {module:zrender/core/BoundingRect} + */ + +BoundingRect.create = function (rect) { + return new BoundingRect(rect.x, rect.y, rect.width, rect.height); +}; + +var _default = BoundingRect; +module.exports = _default; + +/***/ }), +/* 4 */ +/***/ (function(module, exports, __webpack_require__) { + +var _vector = __webpack_require__(2); + +var v2Create = _vector.create; +var v2DistSquare = _vector.distSquare; + +/** + * 曲线辅助模块 + * @module zrender/core/curve + * @author pissang(https://www.github.com/pissang) + */ +var mathPow = Math.pow; +var mathSqrt = Math.sqrt; +var EPSILON = 1e-8; +var EPSILON_NUMERIC = 1e-4; +var THREE_SQRT = mathSqrt(3); +var ONE_THIRD = 1 / 3; // 临时变量 + +var _v0 = v2Create(); + +var _v1 = v2Create(); + +var _v2 = v2Create(); + +function isAroundZero(val) { + return val > -EPSILON && val < EPSILON; +} + +function isNotAroundZero(val) { + return val > EPSILON || val < -EPSILON; +} +/** + * 计算三次贝塞尔值 + * @memberOf module:zrender/core/curve + * @param {number} p0 + * @param {number} p1 + * @param {number} p2 + * @param {number} p3 + * @param {number} t + * @return {number} + */ + + +function cubicAt(p0, p1, p2, p3, t) { + var onet = 1 - t; + return onet * onet * (onet * p0 + 3 * t * p1) + t * t * (t * p3 + 3 * onet * p2); +} +/** + * 计算三次贝塞尔导数值 + * @memberOf module:zrender/core/curve + * @param {number} p0 + * @param {number} p1 + * @param {number} p2 + * @param {number} p3 + * @param {number} t + * @return {number} + */ + + +function cubicDerivativeAt(p0, p1, p2, p3, t) { + var onet = 1 - t; + return 3 * (((p1 - p0) * onet + 2 * (p2 - p1) * t) * onet + (p3 - p2) * t * t); +} +/** + * 计算三次贝塞尔方程根,使用盛金公式 + * @memberOf module:zrender/core/curve + * @param {number} p0 + * @param {number} p1 + * @param {number} p2 + * @param {number} p3 + * @param {number} val + * @param {Array.} roots + * @return {number} 有效根数目 + */ + + +function cubicRootAt(p0, p1, p2, p3, val, roots) { + // Evaluate roots of cubic functions + var a = p3 + 3 * (p1 - p2) - p0; + var b = 3 * (p2 - p1 * 2 + p0); + var c = 3 * (p1 - p0); + var d = p0 - val; + var A = b * b - 3 * a * c; + var B = b * c - 9 * a * d; + var C = c * c - 3 * b * d; + var n = 0; + + if (isAroundZero(A) && isAroundZero(B)) { + if (isAroundZero(b)) { + roots[0] = 0; + } else { + var t1 = -c / b; //t1, t2, t3, b is not zero + + if (t1 >= 0 && t1 <= 1) { + roots[n++] = t1; + } + } + } else { + var disc = B * B - 4 * A * C; + + if (isAroundZero(disc)) { + var K = B / A; + var t1 = -b / a + K; // t1, a is not zero + + var t2 = -K / 2; // t2, t3 + + if (t1 >= 0 && t1 <= 1) { + roots[n++] = t1; + } + + if (t2 >= 0 && t2 <= 1) { + roots[n++] = t2; + } + } else if (disc > 0) { + var discSqrt = mathSqrt(disc); + var Y1 = A * b + 1.5 * a * (-B + discSqrt); + var Y2 = A * b + 1.5 * a * (-B - discSqrt); + + if (Y1 < 0) { + Y1 = -mathPow(-Y1, ONE_THIRD); + } else { + Y1 = mathPow(Y1, ONE_THIRD); + } + + if (Y2 < 0) { + Y2 = -mathPow(-Y2, ONE_THIRD); + } else { + Y2 = mathPow(Y2, ONE_THIRD); + } + + var t1 = (-b - (Y1 + Y2)) / (3 * a); + + if (t1 >= 0 && t1 <= 1) { + roots[n++] = t1; + } + } else { + var T = (2 * A * b - 3 * a * B) / (2 * mathSqrt(A * A * A)); + var theta = Math.acos(T) / 3; + var ASqrt = mathSqrt(A); + var tmp = Math.cos(theta); + var t1 = (-b - 2 * ASqrt * tmp) / (3 * a); + var t2 = (-b + ASqrt * (tmp + THREE_SQRT * Math.sin(theta))) / (3 * a); + var t3 = (-b + ASqrt * (tmp - THREE_SQRT * Math.sin(theta))) / (3 * a); + + if (t1 >= 0 && t1 <= 1) { + roots[n++] = t1; + } + + if (t2 >= 0 && t2 <= 1) { + roots[n++] = t2; + } + + if (t3 >= 0 && t3 <= 1) { + roots[n++] = t3; + } + } + } + + return n; +} +/** + * 计算三次贝塞尔方程极限值的位置 + * @memberOf module:zrender/core/curve + * @param {number} p0 + * @param {number} p1 + * @param {number} p2 + * @param {number} p3 + * @param {Array.} extrema + * @return {number} 有效数目 + */ + + +function cubicExtrema(p0, p1, p2, p3, extrema) { + var b = 6 * p2 - 12 * p1 + 6 * p0; + var a = 9 * p1 + 3 * p3 - 3 * p0 - 9 * p2; + var c = 3 * p1 - 3 * p0; + var n = 0; + + if (isAroundZero(a)) { + if (isNotAroundZero(b)) { + var t1 = -c / b; + + if (t1 >= 0 && t1 <= 1) { + extrema[n++] = t1; + } + } + } else { + var disc = b * b - 4 * a * c; + + if (isAroundZero(disc)) { + extrema[0] = -b / (2 * a); + } else if (disc > 0) { + var discSqrt = mathSqrt(disc); + var t1 = (-b + discSqrt) / (2 * a); + var t2 = (-b - discSqrt) / (2 * a); + + if (t1 >= 0 && t1 <= 1) { + extrema[n++] = t1; + } + + if (t2 >= 0 && t2 <= 1) { + extrema[n++] = t2; + } + } + } + + return n; +} +/** + * 细分三次贝塞尔曲线 + * @memberOf module:zrender/core/curve + * @param {number} p0 + * @param {number} p1 + * @param {number} p2 + * @param {number} p3 + * @param {number} t + * @param {Array.} out + */ + + +function cubicSubdivide(p0, p1, p2, p3, t, out) { + var p01 = (p1 - p0) * t + p0; + var p12 = (p2 - p1) * t + p1; + var p23 = (p3 - p2) * t + p2; + var p012 = (p12 - p01) * t + p01; + var p123 = (p23 - p12) * t + p12; + var p0123 = (p123 - p012) * t + p012; // Seg0 + + out[0] = p0; + out[1] = p01; + out[2] = p012; + out[3] = p0123; // Seg1 + + out[4] = p0123; + out[5] = p123; + out[6] = p23; + out[7] = p3; +} +/** + * 投射点到三次贝塞尔曲线上,返回投射距离。 + * 投射点有可能会有一个或者多个,这里只返回其中距离最短的一个。 + * @param {number} x0 + * @param {number} y0 + * @param {number} x1 + * @param {number} y1 + * @param {number} x2 + * @param {number} y2 + * @param {number} x3 + * @param {number} y3 + * @param {number} x + * @param {number} y + * @param {Array.} [out] 投射点 + * @return {number} + */ + + +function cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, out) { + // http://pomax.github.io/bezierinfo/#projections + var t; + var interval = 0.005; + var d = Infinity; + var prev; + var next; + var d1; + var d2; + _v0[0] = x; + _v0[1] = y; // 先粗略估计一下可能的最小距离的 t 值 + // PENDING + + for (var _t = 0; _t < 1; _t += 0.05) { + _v1[0] = cubicAt(x0, x1, x2, x3, _t); + _v1[1] = cubicAt(y0, y1, y2, y3, _t); + d1 = v2DistSquare(_v0, _v1); + + if (d1 < d) { + t = _t; + d = d1; + } + } + + d = Infinity; // At most 32 iteration + + for (var i = 0; i < 32; i++) { + if (interval < EPSILON_NUMERIC) { + break; + } + + prev = t - interval; + next = t + interval; // t - interval + + _v1[0] = cubicAt(x0, x1, x2, x3, prev); + _v1[1] = cubicAt(y0, y1, y2, y3, prev); + d1 = v2DistSquare(_v1, _v0); + + if (prev >= 0 && d1 < d) { + t = prev; + d = d1; + } else { + // t + interval + _v2[0] = cubicAt(x0, x1, x2, x3, next); + _v2[1] = cubicAt(y0, y1, y2, y3, next); + d2 = v2DistSquare(_v2, _v0); + + if (next <= 1 && d2 < d) { + t = next; + d = d2; + } else { + interval *= 0.5; + } + } + } // t + + + if (out) { + out[0] = cubicAt(x0, x1, x2, x3, t); + out[1] = cubicAt(y0, y1, y2, y3, t); + } // console.log(interval, i); + + + return mathSqrt(d); +} +/** + * 计算二次方贝塞尔值 + * @param {number} p0 + * @param {number} p1 + * @param {number} p2 + * @param {number} t + * @return {number} + */ + + +function quadraticAt(p0, p1, p2, t) { + var onet = 1 - t; + return onet * (onet * p0 + 2 * t * p1) + t * t * p2; +} +/** + * 计算二次方贝塞尔导数值 + * @param {number} p0 + * @param {number} p1 + * @param {number} p2 + * @param {number} t + * @return {number} + */ + + +function quadraticDerivativeAt(p0, p1, p2, t) { + return 2 * ((1 - t) * (p1 - p0) + t * (p2 - p1)); +} +/** + * 计算二次方贝塞尔方程根 + * @param {number} p0 + * @param {number} p1 + * @param {number} p2 + * @param {number} t + * @param {Array.} roots + * @return {number} 有效根数目 + */ + + +function quadraticRootAt(p0, p1, p2, val, roots) { + var a = p0 - 2 * p1 + p2; + var b = 2 * (p1 - p0); + var c = p0 - val; + var n = 0; + + if (isAroundZero(a)) { + if (isNotAroundZero(b)) { + var t1 = -c / b; + + if (t1 >= 0 && t1 <= 1) { + roots[n++] = t1; + } + } + } else { + var disc = b * b - 4 * a * c; + + if (isAroundZero(disc)) { + var t1 = -b / (2 * a); + + if (t1 >= 0 && t1 <= 1) { + roots[n++] = t1; + } + } else if (disc > 0) { + var discSqrt = mathSqrt(disc); + var t1 = (-b + discSqrt) / (2 * a); + var t2 = (-b - discSqrt) / (2 * a); + + if (t1 >= 0 && t1 <= 1) { + roots[n++] = t1; + } + + if (t2 >= 0 && t2 <= 1) { + roots[n++] = t2; + } + } + } + + return n; +} +/** + * 计算二次贝塞尔方程极限值 + * @memberOf module:zrender/core/curve + * @param {number} p0 + * @param {number} p1 + * @param {number} p2 + * @return {number} + */ + + +function quadraticExtremum(p0, p1, p2) { + var divider = p0 + p2 - 2 * p1; + + if (divider === 0) { + // p1 is center of p0 and p2 + return 0.5; + } else { + return (p0 - p1) / divider; + } +} +/** + * 细分二次贝塞尔曲线 + * @memberOf module:zrender/core/curve + * @param {number} p0 + * @param {number} p1 + * @param {number} p2 + * @param {number} t + * @param {Array.} out + */ + + +function quadraticSubdivide(p0, p1, p2, t, out) { + var p01 = (p1 - p0) * t + p0; + var p12 = (p2 - p1) * t + p1; + var p012 = (p12 - p01) * t + p01; // Seg0 + + out[0] = p0; + out[1] = p01; + out[2] = p012; // Seg1 + + out[3] = p012; + out[4] = p12; + out[5] = p2; +} +/** + * 投射点到二次贝塞尔曲线上,返回投射距离。 + * 投射点有可能会有一个或者多个,这里只返回其中距离最短的一个。 + * @param {number} x0 + * @param {number} y0 + * @param {number} x1 + * @param {number} y1 + * @param {number} x2 + * @param {number} y2 + * @param {number} x + * @param {number} y + * @param {Array.} out 投射点 + * @return {number} + */ + + +function quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, out) { + // http://pomax.github.io/bezierinfo/#projections + var t; + var interval = 0.005; + var d = Infinity; + _v0[0] = x; + _v0[1] = y; // 先粗略估计一下可能的最小距离的 t 值 + // PENDING + + for (var _t = 0; _t < 1; _t += 0.05) { + _v1[0] = quadraticAt(x0, x1, x2, _t); + _v1[1] = quadraticAt(y0, y1, y2, _t); + var d1 = v2DistSquare(_v0, _v1); + + if (d1 < d) { + t = _t; + d = d1; + } + } + + d = Infinity; // At most 32 iteration + + for (var i = 0; i < 32; i++) { + if (interval < EPSILON_NUMERIC) { + break; + } + + var prev = t - interval; + var next = t + interval; // t - interval + + _v1[0] = quadraticAt(x0, x1, x2, prev); + _v1[1] = quadraticAt(y0, y1, y2, prev); + var d1 = v2DistSquare(_v1, _v0); + + if (prev >= 0 && d1 < d) { + t = prev; + d = d1; + } else { + // t + interval + _v2[0] = quadraticAt(x0, x1, x2, next); + _v2[1] = quadraticAt(y0, y1, y2, next); + var d2 = v2DistSquare(_v2, _v0); + + if (next <= 1 && d2 < d) { + t = next; + d = d2; + } else { + interval *= 0.5; + } + } + } // t + + + if (out) { + out[0] = quadraticAt(x0, x1, x2, t); + out[1] = quadraticAt(y0, y1, y2, t); + } // console.log(interval, i); + + + return mathSqrt(d); +} + +exports.cubicAt = cubicAt; +exports.cubicDerivativeAt = cubicDerivativeAt; +exports.cubicRootAt = cubicRootAt; +exports.cubicExtrema = cubicExtrema; +exports.cubicSubdivide = cubicSubdivide; +exports.cubicProjectPoint = cubicProjectPoint; +exports.quadraticAt = quadraticAt; +exports.quadraticDerivativeAt = quadraticDerivativeAt; +exports.quadraticRootAt = quadraticRootAt; +exports.quadraticExtremum = quadraticExtremum; +exports.quadraticSubdivide = quadraticSubdivide; +exports.quadraticProjectPoint = quadraticProjectPoint; + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + +var BoundingRect = __webpack_require__(3); + +var imageHelper = __webpack_require__(10); + +var _util = __webpack_require__(0); + +var getContext = _util.getContext; +var extend = _util.extend; +var retrieve2 = _util.retrieve2; +var retrieve3 = _util.retrieve3; +var textWidthCache = {}; +var textWidthCacheCounter = 0; +var TEXT_CACHE_MAX = 5000; +var STYLE_REG = /\{([a-zA-Z0-9_]+)\|([^}]*)\}/g; +var DEFAULT_FONT = '12px sans-serif'; // Avoid assign to an exported variable, for transforming to cjs. + +var methods = {}; + +function $override(name, fn) { + methods[name] = fn; +} +/** + * @public + * @param {string} text + * @param {string} font + * @return {number} width + */ + + +function getWidth(text, font) { + font = font || DEFAULT_FONT; + var key = text + ':' + font; + + if (textWidthCache[key]) { + return textWidthCache[key]; + } + + var textLines = (text + '').split('\n'); + var width = 0; + + for (var i = 0, l = textLines.length; i < l; i++) { + // textContain.measureText may be overrided in SVG or VML + width = Math.max(measureText(textLines[i], font).width, width); + } + + if (textWidthCacheCounter > TEXT_CACHE_MAX) { + textWidthCacheCounter = 0; + textWidthCache = {}; + } + + textWidthCacheCounter++; + textWidthCache[key] = width; + return width; +} +/** + * @public + * @param {string} text + * @param {string} font + * @param {string} [textAlign='left'] + * @param {string} [textVerticalAlign='top'] + * @param {Array.} [textPadding] + * @param {Object} [rich] + * @param {Object} [truncate] + * @return {Object} {x, y, width, height, lineHeight} + */ + + +function getBoundingRect(text, font, textAlign, textVerticalAlign, textPadding, rich, truncate) { + return rich ? getRichTextRect(text, font, textAlign, textVerticalAlign, textPadding, rich, truncate) : getPlainTextRect(text, font, textAlign, textVerticalAlign, textPadding, truncate); +} + +function getPlainTextRect(text, font, textAlign, textVerticalAlign, textPadding, truncate) { + var contentBlock = parsePlainText(text, font, textPadding, truncate); + var outerWidth = getWidth(text, font); + + if (textPadding) { + outerWidth += textPadding[1] + textPadding[3]; + } + + var outerHeight = contentBlock.outerHeight; + var x = adjustTextX(0, outerWidth, textAlign); + var y = adjustTextY(0, outerHeight, textVerticalAlign); + var rect = new BoundingRect(x, y, outerWidth, outerHeight); + rect.lineHeight = contentBlock.lineHeight; + return rect; +} + +function getRichTextRect(text, font, textAlign, textVerticalAlign, textPadding, rich, truncate) { + var contentBlock = parseRichText(text, { + rich: rich, + truncate: truncate, + font: font, + textAlign: textAlign, + textPadding: textPadding + }); + var outerWidth = contentBlock.outerWidth; + var outerHeight = contentBlock.outerHeight; + var x = adjustTextX(0, outerWidth, textAlign); + var y = adjustTextY(0, outerHeight, textVerticalAlign); + return new BoundingRect(x, y, outerWidth, outerHeight); +} +/** + * @public + * @param {number} x + * @param {number} width + * @param {string} [textAlign='left'] + * @return {number} Adjusted x. + */ + + +function adjustTextX(x, width, textAlign) { + // FIXME Right to left language + if (textAlign === 'right') { + x -= width; + } else if (textAlign === 'center') { + x -= width / 2; + } + + return x; +} +/** + * @public + * @param {number} y + * @param {number} height + * @param {string} [textVerticalAlign='top'] + * @return {number} Adjusted y. + */ + + +function adjustTextY(y, height, textVerticalAlign) { + if (textVerticalAlign === 'middle') { + y -= height / 2; + } else if (textVerticalAlign === 'bottom') { + y -= height; + } + + return y; +} +/** + * @public + * @param {stirng} textPosition + * @param {Object} rect {x, y, width, height} + * @param {number} distance + * @return {Object} {x, y, textAlign, textVerticalAlign} + */ + + +function adjustTextPositionOnRect(textPosition, rect, distance) { + var x = rect.x; + var y = rect.y; + var height = rect.height; + var width = rect.width; + var halfHeight = height / 2; + var textAlign = 'left'; + var textVerticalAlign = 'top'; + + switch (textPosition) { + case 'left': + x -= distance; + y += halfHeight; + textAlign = 'right'; + textVerticalAlign = 'middle'; + break; + + case 'right': + x += distance + width; + y += halfHeight; + textVerticalAlign = 'middle'; + break; + + case 'top': + x += width / 2; + y -= distance; + textAlign = 'center'; + textVerticalAlign = 'bottom'; + break; + + case 'bottom': + x += width / 2; + y += height + distance; + textAlign = 'center'; + break; + + case 'inside': + x += width / 2; + y += halfHeight; + textAlign = 'center'; + textVerticalAlign = 'middle'; + break; + + case 'insideLeft': + x += distance; + y += halfHeight; + textVerticalAlign = 'middle'; + break; + + case 'insideRight': + x += width - distance; + y += halfHeight; + textAlign = 'right'; + textVerticalAlign = 'middle'; + break; + + case 'insideTop': + x += width / 2; + y += distance; + textAlign = 'center'; + break; + + case 'insideBottom': + x += width / 2; + y += height - distance; + textAlign = 'center'; + textVerticalAlign = 'bottom'; + break; + + case 'insideTopLeft': + x += distance; + y += distance; + break; + + case 'insideTopRight': + x += width - distance; + y += distance; + textAlign = 'right'; + break; + + case 'insideBottomLeft': + x += distance; + y += height - distance; + textVerticalAlign = 'bottom'; + break; + + case 'insideBottomRight': + x += width - distance; + y += height - distance; + textAlign = 'right'; + textVerticalAlign = 'bottom'; + break; + } + + return { + x: x, + y: y, + textAlign: textAlign, + textVerticalAlign: textVerticalAlign + }; +} +/** + * Show ellipsis if overflow. + * + * @public + * @param {string} text + * @param {string} containerWidth + * @param {string} font + * @param {number} [ellipsis='...'] + * @param {Object} [options] + * @param {number} [options.maxIterations=3] + * @param {number} [options.minChar=0] If truncate result are less + * then minChar, ellipsis will not show, which is + * better for user hint in some cases. + * @param {number} [options.placeholder=''] When all truncated, use the placeholder. + * @return {string} + */ + + +function truncateText(text, containerWidth, font, ellipsis, options) { + if (!containerWidth) { + return ''; + } + + var textLines = (text + '').split('\n'); + options = prepareTruncateOptions(containerWidth, font, ellipsis, options); // FIXME + // It is not appropriate that every line has '...' when truncate multiple lines. + + for (var i = 0, len = textLines.length; i < len; i++) { + textLines[i] = truncateSingleLine(textLines[i], options); + } + + return textLines.join('\n'); +} + +function prepareTruncateOptions(containerWidth, font, ellipsis, options) { + options = extend({}, options); + options.font = font; + var ellipsis = retrieve2(ellipsis, '...'); + options.maxIterations = retrieve2(options.maxIterations, 2); + var minChar = options.minChar = retrieve2(options.minChar, 0); // FIXME + // Other languages? + + options.cnCharWidth = getWidth('国', font); // FIXME + // Consider proportional font? + + var ascCharWidth = options.ascCharWidth = getWidth('a', font); + options.placeholder = retrieve2(options.placeholder, ''); // Example 1: minChar: 3, text: 'asdfzxcv', truncate result: 'asdf', but not: 'a...'. + // Example 2: minChar: 3, text: '维度', truncate result: '维', but not: '...'. + + var contentWidth = containerWidth = Math.max(0, containerWidth - 1); // Reserve some gap. + + for (var i = 0; i < minChar && contentWidth >= ascCharWidth; i++) { + contentWidth -= ascCharWidth; + } + + var ellipsisWidth = getWidth(ellipsis); + + if (ellipsisWidth > contentWidth) { + ellipsis = ''; + ellipsisWidth = 0; + } + + contentWidth = containerWidth - ellipsisWidth; + options.ellipsis = ellipsis; + options.ellipsisWidth = ellipsisWidth; + options.contentWidth = contentWidth; + options.containerWidth = containerWidth; + return options; +} + +function truncateSingleLine(textLine, options) { + var containerWidth = options.containerWidth; + var font = options.font; + var contentWidth = options.contentWidth; + + if (!containerWidth) { + return ''; + } + + var lineWidth = getWidth(textLine, font); + + if (lineWidth <= containerWidth) { + return textLine; + } + + for (var j = 0;; j++) { + if (lineWidth <= contentWidth || j >= options.maxIterations) { + textLine += options.ellipsis; + break; + } + + var subLength = j === 0 ? estimateLength(textLine, contentWidth, options.ascCharWidth, options.cnCharWidth) : lineWidth > 0 ? Math.floor(textLine.length * contentWidth / lineWidth) : 0; + textLine = textLine.substr(0, subLength); + lineWidth = getWidth(textLine, font); + } + + if (textLine === '') { + textLine = options.placeholder; + } + + return textLine; +} + +function estimateLength(text, contentWidth, ascCharWidth, cnCharWidth) { + var width = 0; + var i = 0; + + for (var len = text.length; i < len && width < contentWidth; i++) { + var charCode = text.charCodeAt(i); + width += 0 <= charCode && charCode <= 127 ? ascCharWidth : cnCharWidth; + } + + return i; +} +/** + * @public + * @param {string} font + * @return {number} line height + */ + + +function getLineHeight(font) { + // FIXME A rough approach. + return getWidth('国', font); +} +/** + * @public + * @param {string} text + * @param {string} font + * @return {Object} width + */ + + +function measureText(text, font) { + return methods.measureText(text, font); +} // Avoid assign to an exported variable, for transforming to cjs. + + +methods.measureText = function (text, font) { + var ctx = getContext(); + ctx.font = font || DEFAULT_FONT; + return ctx.measureText(text); +}; +/** + * @public + * @param {string} text + * @param {string} font + * @param {Object} [truncate] + * @return {Object} block: {lineHeight, lines, height, outerHeight} + * Notice: for performance, do not calculate outerWidth util needed. + */ + + +function parsePlainText(text, font, padding, truncate) { + text != null && (text += ''); + var lineHeight = getLineHeight(font); + var lines = text ? text.split('\n') : []; + var height = lines.length * lineHeight; + var outerHeight = height; + + if (padding) { + outerHeight += padding[0] + padding[2]; + } + + if (text && truncate) { + var truncOuterHeight = truncate.outerHeight; + var truncOuterWidth = truncate.outerWidth; + + if (truncOuterHeight != null && outerHeight > truncOuterHeight) { + text = ''; + lines = []; + } else if (truncOuterWidth != null) { + var options = prepareTruncateOptions(truncOuterWidth - (padding ? padding[1] + padding[3] : 0), font, truncate.ellipsis, { + minChar: truncate.minChar, + placeholder: truncate.placeholder + }); // FIXME + // It is not appropriate that every line has '...' when truncate multiple lines. + + for (var i = 0, len = lines.length; i < len; i++) { + lines[i] = truncateSingleLine(lines[i], options); + } + } + } + + return { + lines: lines, + height: height, + outerHeight: outerHeight, + lineHeight: lineHeight + }; +} +/** + * For example: 'some text {a|some text}other text{b|some text}xxx{c|}xxx' + * Also consider 'bbbb{a|xxx\nzzz}xxxx\naaaa'. + * + * @public + * @param {string} text + * @param {Object} style + * @return {Object} block + * { + * width, + * height, + * lines: [{ + * lineHeight, + * width, + * tokens: [[{ + * styleName, + * text, + * width, // include textPadding + * height, // include textPadding + * textWidth, // pure text width + * textHeight, // pure text height + * lineHeihgt, + * font, + * textAlign, + * textVerticalAlign + * }], [...], ...] + * }, ...] + * } + * If styleName is undefined, it is plain text. + */ + + +function parseRichText(text, style) { + var contentBlock = { + lines: [], + width: 0, + height: 0 + }; + text != null && (text += ''); + + if (!text) { + return contentBlock; + } + + var lastIndex = STYLE_REG.lastIndex = 0; + var result; + + while ((result = STYLE_REG.exec(text)) != null) { + var matchedIndex = result.index; + + if (matchedIndex > lastIndex) { + pushTokens(contentBlock, text.substring(lastIndex, matchedIndex)); + } + + pushTokens(contentBlock, result[2], result[1]); + lastIndex = STYLE_REG.lastIndex; + } + + if (lastIndex < text.length) { + pushTokens(contentBlock, text.substring(lastIndex, text.length)); + } + + var lines = contentBlock.lines; + var contentHeight = 0; + var contentWidth = 0; // For `textWidth: 100%` + + var pendingList = []; + var stlPadding = style.textPadding; + var truncate = style.truncate; + var truncateWidth = truncate && truncate.outerWidth; + var truncateHeight = truncate && truncate.outerHeight; + + if (stlPadding) { + truncateWidth != null && (truncateWidth -= stlPadding[1] + stlPadding[3]); + truncateHeight != null && (truncateHeight -= stlPadding[0] + stlPadding[2]); + } // Calculate layout info of tokens. + + + for (var i = 0; i < lines.length; i++) { + var line = lines[i]; + var lineHeight = 0; + var lineWidth = 0; + + for (var j = 0; j < line.tokens.length; j++) { + var token = line.tokens[j]; + var tokenStyle = token.styleName && style.rich[token.styleName] || {}; // textPadding should not inherit from style. + + var textPadding = token.textPadding = tokenStyle.textPadding; // textFont has been asigned to font by `normalizeStyle`. + + var font = token.font = tokenStyle.font || style.font; // textHeight can be used when textVerticalAlign is specified in token. + + var tokenHeight = token.textHeight = retrieve2( // textHeight should not be inherited, consider it can be specified + // as box height of the block. + tokenStyle.textHeight, getLineHeight(font)); + textPadding && (tokenHeight += textPadding[0] + textPadding[2]); + token.height = tokenHeight; + token.lineHeight = retrieve3(tokenStyle.textLineHeight, style.textLineHeight, tokenHeight); + token.textAlign = tokenStyle && tokenStyle.textAlign || style.textAlign; + token.textVerticalAlign = tokenStyle && tokenStyle.textVerticalAlign || 'middle'; + + if (truncateHeight != null && contentHeight + token.lineHeight > truncateHeight) { + return { + lines: [], + width: 0, + height: 0 + }; + } + + token.textWidth = getWidth(token.text, font); + var tokenWidth = tokenStyle.textWidth; + var tokenWidthNotSpecified = tokenWidth == null || tokenWidth === 'auto'; // Percent width, can be `100%`, can be used in drawing separate + // line when box width is needed to be auto. + + if (typeof tokenWidth === 'string' && tokenWidth.charAt(tokenWidth.length - 1) === '%') { + token.percentWidth = tokenWidth; + pendingList.push(token); + tokenWidth = 0; // Do not truncate in this case, because there is no user case + // and it is too complicated. + } else { + if (tokenWidthNotSpecified) { + tokenWidth = token.textWidth; // FIXME: If image is not loaded and textWidth is not specified, calling + // `getBoundingRect()` will not get correct result. + + var textBackgroundColor = tokenStyle.textBackgroundColor; + var bgImg = textBackgroundColor && textBackgroundColor.image; // Use cases: + // (1) If image is not loaded, it will be loaded at render phase and call + // `dirty()` and `textBackgroundColor.image` will be replaced with the loaded + // image, and then the right size will be calculated here at the next tick. + // See `graphic/helper/text.js`. + // (2) If image loaded, and `textBackgroundColor.image` is image src string, + // use `imageHelper.findExistImage` to find cached image. + // `imageHelper.findExistImage` will always be called here before + // `imageHelper.createOrUpdateImage` in `graphic/helper/text.js#renderRichText` + // which ensures that image will not be rendered before correct size calcualted. + + if (bgImg) { + bgImg = imageHelper.findExistImage(bgImg); + + if (imageHelper.isImageReady(bgImg)) { + tokenWidth = Math.max(tokenWidth, bgImg.width * tokenHeight / bgImg.height); + } + } + } + + var paddingW = textPadding ? textPadding[1] + textPadding[3] : 0; + tokenWidth += paddingW; + var remianTruncWidth = truncateWidth != null ? truncateWidth - lineWidth : null; + + if (remianTruncWidth != null && remianTruncWidth < tokenWidth) { + if (!tokenWidthNotSpecified || remianTruncWidth < paddingW) { + token.text = ''; + token.textWidth = tokenWidth = 0; + } else { + token.text = truncateText(token.text, remianTruncWidth - paddingW, font, truncate.ellipsis, { + minChar: truncate.minChar + }); + token.textWidth = getWidth(token.text, font); + tokenWidth = token.textWidth + paddingW; + } + } + } + + lineWidth += token.width = tokenWidth; + tokenStyle && (lineHeight = Math.max(lineHeight, token.lineHeight)); + } + + line.width = lineWidth; + line.lineHeight = lineHeight; + contentHeight += lineHeight; + contentWidth = Math.max(contentWidth, lineWidth); + } + + contentBlock.outerWidth = contentBlock.width = retrieve2(style.textWidth, contentWidth); + contentBlock.outerHeight = contentBlock.height = retrieve2(style.textHeight, contentHeight); + + if (stlPadding) { + contentBlock.outerWidth += stlPadding[1] + stlPadding[3]; + contentBlock.outerHeight += stlPadding[0] + stlPadding[2]; + } + + for (var i = 0; i < pendingList.length; i++) { + var token = pendingList[i]; + var percentWidth = token.percentWidth; // Should not base on outerWidth, because token can not be placed out of padding. + + token.width = parseInt(percentWidth, 10) / 100 * contentWidth; + } + + return contentBlock; +} + +function pushTokens(block, str, styleName) { + var isEmptyStr = str === ''; + var strs = str.split('\n'); + var lines = block.lines; + + for (var i = 0; i < strs.length; i++) { + var text = strs[i]; + var token = { + styleName: styleName, + text: text, + isLineHolder: !text && !isEmptyStr + }; // The first token should be appended to the last line. + + if (!i) { + var tokens = (lines[lines.length - 1] || (lines[0] = { + tokens: [] + })).tokens; // Consider cases: + // (1) ''.split('\n') => ['', '\n', ''], the '' at the first item + // (which is a placeholder) should be replaced by new token. + // (2) A image backage, where token likes {a|}. + // (3) A redundant '' will affect textAlign in line. + // (4) tokens with the same tplName should not be merged, because + // they should be displayed in different box (with border and padding). + + var tokensLen = tokens.length; + tokensLen === 1 && tokens[0].isLineHolder ? tokens[0] = token : // Consider text is '', only insert when it is the "lineHolder" or + // "emptyStr". Otherwise a redundant '' will affect textAlign in line. + (text || !tokensLen || isEmptyStr) && tokens.push(token); + } // Other tokens always start a new line. + else { + // If there is '', insert it as a placeholder. + lines.push({ + tokens: [token] + }); + } + } +} + +function makeFont(style) { + // FIXME in node-canvas fontWeight is before fontStyle + // Use `fontSize` `fontFamily` to check whether font properties are defined. + return (style.fontSize || style.fontFamily) && [style.fontStyle, style.fontWeight, (style.fontSize || 12) + 'px', // If font properties are defined, `fontFamily` should not be ignored. + style.fontFamily || 'sans-serif'].join(' ') || style.textFont || style.font; +} + +exports.DEFAULT_FONT = DEFAULT_FONT; +exports.$override = $override; +exports.getWidth = getWidth; +exports.getBoundingRect = getBoundingRect; +exports.adjustTextX = adjustTextX; +exports.adjustTextY = adjustTextY; +exports.adjustTextPositionOnRect = adjustTextPositionOnRect; +exports.truncateText = truncateText; +exports.getLineHeight = getLineHeight; +exports.measureText = measureText; +exports.parsePlainText = parsePlainText; +exports.parseRichText = parseRichText; +exports.makeFont = makeFont; + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + +var curve = __webpack_require__(4); + +var vec2 = __webpack_require__(2); + +var bbox = __webpack_require__(49); + +var BoundingRect = __webpack_require__(3); + +var _config = __webpack_require__(19); + +var dpr = _config.devicePixelRatio; + +/** + * Path 代理,可以在`buildPath`中用于替代`ctx`, 会保存每个path操作的命令到pathCommands属性中 + * 可以用于 isInsidePath 判断以及获取boundingRect + * + * @module zrender/core/PathProxy + * @author Yi Shen (http://www.github.com/pissang) + */ +// TODO getTotalLength, getPointAtLength +var CMD = { + M: 1, + L: 2, + C: 3, + Q: 4, + A: 5, + Z: 6, + // Rect + R: 7 +}; // var CMD_MEM_SIZE = { +// M: 3, +// L: 3, +// C: 7, +// Q: 5, +// A: 9, +// R: 5, +// Z: 1 +// }; + +var min = []; +var max = []; +var min2 = []; +var max2 = []; +var mathMin = Math.min; +var mathMax = Math.max; +var mathCos = Math.cos; +var mathSin = Math.sin; +var mathSqrt = Math.sqrt; +var mathAbs = Math.abs; +var hasTypedArray = typeof Float32Array != 'undefined'; +/** + * @alias module:zrender/core/PathProxy + * @constructor + */ + +var PathProxy = function (notSaveData) { + this._saveData = !(notSaveData || false); + + if (this._saveData) { + /** + * Path data. Stored as flat array + * @type {Array.} + */ + this.data = []; + } + + this._ctx = null; +}; +/** + * 快速计算Path包围盒(并不是最小包围盒) + * @return {Object} + */ + + +PathProxy.prototype = { + constructor: PathProxy, + _xi: 0, + _yi: 0, + _x0: 0, + _y0: 0, + // Unit x, Unit y. Provide for avoiding drawing that too short line segment + _ux: 0, + _uy: 0, + _len: 0, + _lineDash: null, + _dashOffset: 0, + _dashIdx: 0, + _dashSum: 0, + + /** + * @readOnly + */ + setScale: function (sx, sy) { + this._ux = mathAbs(1 / dpr / sx) || 0; + this._uy = mathAbs(1 / dpr / sy) || 0; + }, + getContext: function () { + return this._ctx; + }, + + /** + * @param {CanvasRenderingContext2D} ctx + * @return {module:zrender/core/PathProxy} + */ + beginPath: function (ctx) { + this._ctx = ctx; + ctx && ctx.beginPath(); + ctx && (this.dpr = ctx.dpr); // Reset + + if (this._saveData) { + this._len = 0; + } + + if (this._lineDash) { + this._lineDash = null; + this._dashOffset = 0; + } + + return this; + }, + + /** + * @param {number} x + * @param {number} y + * @return {module:zrender/core/PathProxy} + */ + moveTo: function (x, y) { + this.addData(CMD.M, x, y); + this._ctx && this._ctx.moveTo(x, y); // x0, y0, xi, yi 是记录在 _dashedXXXXTo 方法中使用 + // xi, yi 记录当前点, x0, y0 在 closePath 的时候回到起始点。 + // 有可能在 beginPath 之后直接调用 lineTo,这时候 x0, y0 需要 + // 在 lineTo 方法中记录,这里先不考虑这种情况,dashed line 也只在 IE10- 中不支持 + + this._x0 = x; + this._y0 = y; + this._xi = x; + this._yi = y; + return this; + }, + + /** + * @param {number} x + * @param {number} y + * @return {module:zrender/core/PathProxy} + */ + lineTo: function (x, y) { + var exceedUnit = mathAbs(x - this._xi) > this._ux || mathAbs(y - this._yi) > this._uy // Force draw the first segment + || this._len < 5; + this.addData(CMD.L, x, y); + + if (this._ctx && exceedUnit) { + this._needsDash() ? this._dashedLineTo(x, y) : this._ctx.lineTo(x, y); + } + + if (exceedUnit) { + this._xi = x; + this._yi = y; + } + + return this; + }, + + /** + * @param {number} x1 + * @param {number} y1 + * @param {number} x2 + * @param {number} y2 + * @param {number} x3 + * @param {number} y3 + * @return {module:zrender/core/PathProxy} + */ + bezierCurveTo: function (x1, y1, x2, y2, x3, y3) { + this.addData(CMD.C, x1, y1, x2, y2, x3, y3); + + if (this._ctx) { + this._needsDash() ? this._dashedBezierTo(x1, y1, x2, y2, x3, y3) : this._ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3); + } + + this._xi = x3; + this._yi = y3; + return this; + }, + + /** + * @param {number} x1 + * @param {number} y1 + * @param {number} x2 + * @param {number} y2 + * @return {module:zrender/core/PathProxy} + */ + quadraticCurveTo: function (x1, y1, x2, y2) { + this.addData(CMD.Q, x1, y1, x2, y2); + + if (this._ctx) { + this._needsDash() ? this._dashedQuadraticTo(x1, y1, x2, y2) : this._ctx.quadraticCurveTo(x1, y1, x2, y2); + } + + this._xi = x2; + this._yi = y2; + return this; + }, + + /** + * @param {number} cx + * @param {number} cy + * @param {number} r + * @param {number} startAngle + * @param {number} endAngle + * @param {boolean} anticlockwise + * @return {module:zrender/core/PathProxy} + */ + arc: function (cx, cy, r, startAngle, endAngle, anticlockwise) { + this.addData(CMD.A, cx, cy, r, r, startAngle, endAngle - startAngle, 0, anticlockwise ? 0 : 1); + this._ctx && this._ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise); + this._xi = mathCos(endAngle) * r + cx; + this._yi = mathSin(endAngle) * r + cx; + return this; + }, + // TODO + arcTo: function (x1, y1, x2, y2, radius) { + if (this._ctx) { + this._ctx.arcTo(x1, y1, x2, y2, radius); + } + + return this; + }, + // TODO + rect: function (x, y, w, h) { + this._ctx && this._ctx.rect(x, y, w, h); + this.addData(CMD.R, x, y, w, h); + return this; + }, + + /** + * @return {module:zrender/core/PathProxy} + */ + closePath: function () { + this.addData(CMD.Z); + var ctx = this._ctx; + var x0 = this._x0; + var y0 = this._y0; + + if (ctx) { + this._needsDash() && this._dashedLineTo(x0, y0); + ctx.closePath(); + } + + this._xi = x0; + this._yi = y0; + return this; + }, + + /** + * Context 从外部传入,因为有可能是 rebuildPath 完之后再 fill。 + * stroke 同样 + * @param {CanvasRenderingContext2D} ctx + * @return {module:zrender/core/PathProxy} + */ + fill: function (ctx) { + ctx && ctx.fill(); + this.toStatic(); + }, + + /** + * @param {CanvasRenderingContext2D} ctx + * @return {module:zrender/core/PathProxy} + */ + stroke: function (ctx) { + ctx && ctx.stroke(); + this.toStatic(); + }, + + /** + * 必须在其它绘制命令前调用 + * Must be invoked before all other path drawing methods + * @return {module:zrender/core/PathProxy} + */ + setLineDash: function (lineDash) { + if (lineDash instanceof Array) { + this._lineDash = lineDash; + this._dashIdx = 0; + var lineDashSum = 0; + + for (var i = 0; i < lineDash.length; i++) { + lineDashSum += lineDash[i]; + } + + this._dashSum = lineDashSum; + } + + return this; + }, + + /** + * 必须在其它绘制命令前调用 + * Must be invoked before all other path drawing methods + * @return {module:zrender/core/PathProxy} + */ + setLineDashOffset: function (offset) { + this._dashOffset = offset; + return this; + }, + + /** + * + * @return {boolean} + */ + len: function () { + return this._len; + }, + + /** + * 直接设置 Path 数据 + */ + setData: function (data) { + var len = data.length; + + if (!(this.data && this.data.length == len) && hasTypedArray) { + this.data = new Float32Array(len); + } + + for (var i = 0; i < len; i++) { + this.data[i] = data[i]; + } + + this._len = len; + }, + + /** + * 添加子路径 + * @param {module:zrender/core/PathProxy|Array.} path + */ + appendPath: function (path) { + if (!(path instanceof Array)) { + path = [path]; + } + + var len = path.length; + var appendSize = 0; + var offset = this._len; + + for (var i = 0; i < len; i++) { + appendSize += path[i].len(); + } + + if (hasTypedArray && this.data instanceof Float32Array) { + this.data = new Float32Array(offset + appendSize); + } + + for (var i = 0; i < len; i++) { + var appendPathData = path[i].data; + + for (var k = 0; k < appendPathData.length; k++) { + this.data[offset++] = appendPathData[k]; + } + } + + this._len = offset; + }, + + /** + * 填充 Path 数据。 + * 尽量复用而不申明新的数组。大部分图形重绘的指令数据长度都是不变的。 + */ + addData: function (cmd) { + if (!this._saveData) { + return; + } + + var data = this.data; + + if (this._len + arguments.length > data.length) { + // 因为之前的数组已经转换成静态的 Float32Array + // 所以不够用时需要扩展一个新的动态数组 + this._expandData(); + + data = this.data; + } + + for (var i = 0; i < arguments.length; i++) { + data[this._len++] = arguments[i]; + } + + this._prevCmd = cmd; + }, + _expandData: function () { + // Only if data is Float32Array + if (!(this.data instanceof Array)) { + var newData = []; + + for (var i = 0; i < this._len; i++) { + newData[i] = this.data[i]; + } + + this.data = newData; + } + }, + + /** + * If needs js implemented dashed line + * @return {boolean} + * @private + */ + _needsDash: function () { + return this._lineDash; + }, + _dashedLineTo: function (x1, y1) { + var dashSum = this._dashSum; + var offset = this._dashOffset; + var lineDash = this._lineDash; + var ctx = this._ctx; + var x0 = this._xi; + var y0 = this._yi; + var dx = x1 - x0; + var dy = y1 - y0; + var dist = mathSqrt(dx * dx + dy * dy); + var x = x0; + var y = y0; + var dash; + var nDash = lineDash.length; + var idx; + dx /= dist; + dy /= dist; + + if (offset < 0) { + // Convert to positive offset + offset = dashSum + offset; + } + + offset %= dashSum; + x -= offset * dx; + y -= offset * dy; + + while (dx > 0 && x <= x1 || dx < 0 && x >= x1 || dx == 0 && (dy > 0 && y <= y1 || dy < 0 && y >= y1)) { + idx = this._dashIdx; + dash = lineDash[idx]; + x += dx * dash; + y += dy * dash; + this._dashIdx = (idx + 1) % nDash; // Skip positive offset + + if (dx > 0 && x < x0 || dx < 0 && x > x0 || dy > 0 && y < y0 || dy < 0 && y > y0) { + continue; + } + + ctx[idx % 2 ? 'moveTo' : 'lineTo'](dx >= 0 ? mathMin(x, x1) : mathMax(x, x1), dy >= 0 ? mathMin(y, y1) : mathMax(y, y1)); + } // Offset for next lineTo + + + dx = x - x1; + dy = y - y1; + this._dashOffset = -mathSqrt(dx * dx + dy * dy); + }, + // Not accurate dashed line to + _dashedBezierTo: function (x1, y1, x2, y2, x3, y3) { + var dashSum = this._dashSum; + var offset = this._dashOffset; + var lineDash = this._lineDash; + var ctx = this._ctx; + var x0 = this._xi; + var y0 = this._yi; + var t; + var dx; + var dy; + var cubicAt = curve.cubicAt; + var bezierLen = 0; + var idx = this._dashIdx; + var nDash = lineDash.length; + var x; + var y; + var tmpLen = 0; + + if (offset < 0) { + // Convert to positive offset + offset = dashSum + offset; + } + + offset %= dashSum; // Bezier approx length + + for (t = 0; t < 1; t += 0.1) { + dx = cubicAt(x0, x1, x2, x3, t + 0.1) - cubicAt(x0, x1, x2, x3, t); + dy = cubicAt(y0, y1, y2, y3, t + 0.1) - cubicAt(y0, y1, y2, y3, t); + bezierLen += mathSqrt(dx * dx + dy * dy); + } // Find idx after add offset + + + for (; idx < nDash; idx++) { + tmpLen += lineDash[idx]; + + if (tmpLen > offset) { + break; + } + } + + t = (tmpLen - offset) / bezierLen; + + while (t <= 1) { + x = cubicAt(x0, x1, x2, x3, t); + y = cubicAt(y0, y1, y2, y3, t); // Use line to approximate dashed bezier + // Bad result if dash is long + + idx % 2 ? ctx.moveTo(x, y) : ctx.lineTo(x, y); + t += lineDash[idx] / bezierLen; + idx = (idx + 1) % nDash; + } // Finish the last segment and calculate the new offset + + + idx % 2 !== 0 && ctx.lineTo(x3, y3); + dx = x3 - x; + dy = y3 - y; + this._dashOffset = -mathSqrt(dx * dx + dy * dy); + }, + _dashedQuadraticTo: function (x1, y1, x2, y2) { + // Convert quadratic to cubic using degree elevation + var x3 = x2; + var y3 = y2; + x2 = (x2 + 2 * x1) / 3; + y2 = (y2 + 2 * y1) / 3; + x1 = (this._xi + 2 * x1) / 3; + y1 = (this._yi + 2 * y1) / 3; + + this._dashedBezierTo(x1, y1, x2, y2, x3, y3); + }, + + /** + * 转成静态的 Float32Array 减少堆内存占用 + * Convert dynamic array to static Float32Array + */ + toStatic: function () { + var data = this.data; + + if (data instanceof Array) { + data.length = this._len; + + if (hasTypedArray) { + this.data = new Float32Array(data); + } + } + }, + + /** + * @return {module:zrender/core/BoundingRect} + */ + getBoundingRect: function () { + min[0] = min[1] = min2[0] = min2[1] = Number.MAX_VALUE; + max[0] = max[1] = max2[0] = max2[1] = -Number.MAX_VALUE; + var data = this.data; + var xi = 0; + var yi = 0; + var x0 = 0; + var y0 = 0; + + for (var i = 0; i < data.length;) { + var cmd = data[i++]; + + if (i == 1) { + // 如果第一个命令是 L, C, Q + // 则 previous point 同绘制命令的第一个 point + // + // 第一个命令为 Arc 的情况下会在后面特殊处理 + xi = data[i]; + yi = data[i + 1]; + x0 = xi; + y0 = yi; + } + + switch (cmd) { + case CMD.M: + // moveTo 命令重新创建一个新的 subpath, 并且更新新的起点 + // 在 closePath 的时候使用 + x0 = data[i++]; + y0 = data[i++]; + xi = x0; + yi = y0; + min2[0] = x0; + min2[1] = y0; + max2[0] = x0; + max2[1] = y0; + break; + + case CMD.L: + bbox.fromLine(xi, yi, data[i], data[i + 1], min2, max2); + xi = data[i++]; + yi = data[i++]; + break; + + case CMD.C: + bbox.fromCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], min2, max2); + xi = data[i++]; + yi = data[i++]; + break; + + case CMD.Q: + bbox.fromQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], min2, max2); + xi = data[i++]; + yi = data[i++]; + break; + + case CMD.A: + // TODO Arc 判断的开销比较大 + var cx = data[i++]; + var cy = data[i++]; + var rx = data[i++]; + var ry = data[i++]; + var startAngle = data[i++]; + var endAngle = data[i++] + startAngle; // TODO Arc 旋转 + + var psi = data[i++]; + var anticlockwise = 1 - data[i++]; + + if (i == 1) { + // 直接使用 arc 命令 + // 第一个命令起点还未定义 + x0 = mathCos(startAngle) * rx + cx; + y0 = mathSin(startAngle) * ry + cy; + } + + bbox.fromArc(cx, cy, rx, ry, startAngle, endAngle, anticlockwise, min2, max2); + xi = mathCos(endAngle) * rx + cx; + yi = mathSin(endAngle) * ry + cy; + break; + + case CMD.R: + x0 = xi = data[i++]; + y0 = yi = data[i++]; + var width = data[i++]; + var height = data[i++]; // Use fromLine + + bbox.fromLine(x0, y0, x0 + width, y0 + height, min2, max2); + break; + + case CMD.Z: + xi = x0; + yi = y0; + break; + } // Union + + + vec2.min(min, min, min2); + vec2.max(max, max, max2); + } // No data + + + if (i === 0) { + min[0] = min[1] = max[0] = max[1] = 0; + } + + return new BoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]); + }, + + /** + * Rebuild path from current data + * Rebuild path will not consider javascript implemented line dash. + * @param {CanvasRenderingContext2D} ctx + */ + rebuildPath: function (ctx) { + var d = this.data; + var x0, y0; + var xi, yi; + var x, y; + var ux = this._ux; + var uy = this._uy; + var len = this._len; + + for (var i = 0; i < len;) { + var cmd = d[i++]; + + if (i == 1) { + // 如果第一个命令是 L, C, Q + // 则 previous point 同绘制命令的第一个 point + // + // 第一个命令为 Arc 的情况下会在后面特殊处理 + xi = d[i]; + yi = d[i + 1]; + x0 = xi; + y0 = yi; + } + + switch (cmd) { + case CMD.M: + x0 = xi = d[i++]; + y0 = yi = d[i++]; + ctx.moveTo(xi, yi); + break; + + case CMD.L: + x = d[i++]; + y = d[i++]; // Not draw too small seg between + + if (mathAbs(x - xi) > ux || mathAbs(y - yi) > uy || i === len - 1) { + ctx.lineTo(x, y); + xi = x; + yi = y; + } + + break; + + case CMD.C: + ctx.bezierCurveTo(d[i++], d[i++], d[i++], d[i++], d[i++], d[i++]); + xi = d[i - 2]; + yi = d[i - 1]; + break; + + case CMD.Q: + ctx.quadraticCurveTo(d[i++], d[i++], d[i++], d[i++]); + xi = d[i - 2]; + yi = d[i - 1]; + break; + + case CMD.A: + var cx = d[i++]; + var cy = d[i++]; + var rx = d[i++]; + var ry = d[i++]; + var theta = d[i++]; + var dTheta = d[i++]; + var psi = d[i++]; + var fs = d[i++]; + var r = rx > ry ? rx : ry; + var scaleX = rx > ry ? 1 : rx / ry; + var scaleY = rx > ry ? ry / rx : 1; + var isEllipse = Math.abs(rx - ry) > 1e-3; + var endAngle = theta + dTheta; + + if (isEllipse) { + ctx.translate(cx, cy); + ctx.rotate(psi); + ctx.scale(scaleX, scaleY); + ctx.arc(0, 0, r, theta, endAngle, 1 - fs); + ctx.scale(1 / scaleX, 1 / scaleY); + ctx.rotate(-psi); + ctx.translate(-cx, -cy); + } else { + ctx.arc(cx, cy, r, theta, endAngle, 1 - fs); + } + + if (i == 1) { + // 直接使用 arc 命令 + // 第一个命令起点还未定义 + x0 = mathCos(theta) * rx + cx; + y0 = mathSin(theta) * ry + cy; + } + + xi = mathCos(endAngle) * rx + cx; + yi = mathSin(endAngle) * ry + cy; + break; + + case CMD.R: + x0 = xi = d[i]; + y0 = yi = d[i + 1]; + ctx.rect(d[i++], d[i++], d[i++], d[i++]); + break; + + case CMD.Z: + ctx.closePath(); + xi = x0; + yi = y0; + } + } + } +}; +PathProxy.CMD = CMD; +var _default = PathProxy; +module.exports = _default; + +/***/ }), +/* 7 */ +/***/ (function(module, exports) { + +module.exports = __WEBPACK_EXTERNAL_MODULE_7__; + +/***/ }), +/* 8 */ +/***/ (function(module, exports) { + +/** + * 3x2矩阵操作类 + * @exports zrender/tool/matrix + */ +var ArrayCtor = typeof Float32Array === 'undefined' ? Array : Float32Array; +/** + * 创建一个单位矩阵 + * @return {Float32Array|Array.} + */ + +function create() { + var out = new ArrayCtor(6); + identity(out); + return out; +} +/** + * 设置矩阵为单位矩阵 + * @param {Float32Array|Array.} out + */ + + +function identity(out) { + out[0] = 1; + out[1] = 0; + out[2] = 0; + out[3] = 1; + out[4] = 0; + out[5] = 0; + return out; +} +/** + * 复制矩阵 + * @param {Float32Array|Array.} out + * @param {Float32Array|Array.} m + */ + + +function copy(out, m) { + out[0] = m[0]; + out[1] = m[1]; + out[2] = m[2]; + out[3] = m[3]; + out[4] = m[4]; + out[5] = m[5]; + return out; +} +/** + * 矩阵相乘 + * @param {Float32Array|Array.} out + * @param {Float32Array|Array.} m1 + * @param {Float32Array|Array.} m2 + */ + + +function mul(out, m1, m2) { + // Consider matrix.mul(m, m2, m); + // where out is the same as m2. + // So use temp variable to escape error. + var out0 = m1[0] * m2[0] + m1[2] * m2[1]; + var out1 = m1[1] * m2[0] + m1[3] * m2[1]; + var out2 = m1[0] * m2[2] + m1[2] * m2[3]; + var out3 = m1[1] * m2[2] + m1[3] * m2[3]; + var out4 = m1[0] * m2[4] + m1[2] * m2[5] + m1[4]; + var out5 = m1[1] * m2[4] + m1[3] * m2[5] + m1[5]; + out[0] = out0; + out[1] = out1; + out[2] = out2; + out[3] = out3; + out[4] = out4; + out[5] = out5; + return out; +} +/** + * 平移变换 + * @param {Float32Array|Array.} out + * @param {Float32Array|Array.} a + * @param {Float32Array|Array.} v + */ + + +function translate(out, a, v) { + out[0] = a[0]; + out[1] = a[1]; + out[2] = a[2]; + out[3] = a[3]; + out[4] = a[4] + v[0]; + out[5] = a[5] + v[1]; + return out; +} +/** + * 旋转变换 + * @param {Float32Array|Array.} out + * @param {Float32Array|Array.} a + * @param {number} rad + */ + + +function rotate(out, a, rad) { + var aa = a[0]; + var ac = a[2]; + var atx = a[4]; + var ab = a[1]; + var ad = a[3]; + var aty = a[5]; + var st = Math.sin(rad); + var ct = Math.cos(rad); + out[0] = aa * ct + ab * st; + out[1] = -aa * st + ab * ct; + out[2] = ac * ct + ad * st; + out[3] = -ac * st + ct * ad; + out[4] = ct * atx + st * aty; + out[5] = ct * aty - st * atx; + return out; +} +/** + * 缩放变换 + * @param {Float32Array|Array.} out + * @param {Float32Array|Array.} a + * @param {Float32Array|Array.} v + */ + + +function scale(out, a, v) { + var vx = v[0]; + var vy = v[1]; + out[0] = a[0] * vx; + out[1] = a[1] * vy; + out[2] = a[2] * vx; + out[3] = a[3] * vy; + out[4] = a[4] * vx; + out[5] = a[5] * vy; + return out; +} +/** + * 求逆矩阵 + * @param {Float32Array|Array.} out + * @param {Float32Array|Array.} a + */ + + +function invert(out, a) { + var aa = a[0]; + var ac = a[2]; + var atx = a[4]; + var ab = a[1]; + var ad = a[3]; + var aty = a[5]; + var det = aa * ad - ab * ac; + + if (!det) { + return null; + } + + det = 1.0 / det; + out[0] = ad * det; + out[1] = -ab * det; + out[2] = -ac * det; + out[3] = aa * det; + out[4] = (ac * aty - ad * atx) * det; + out[5] = (ab * atx - aa * aty) * det; + return out; +} + +exports.create = create; +exports.identity = identity; +exports.copy = copy; +exports.mul = mul; +exports.translate = translate; +exports.rotate = rotate; +exports.scale = scale; +exports.invert = invert; + +/***/ }), +/* 9 */ +/***/ (function(module, exports, __webpack_require__) { + +var zrUtil = __webpack_require__(0); + +var RADIAN_EPSILON = 1e-4; + +function _trim(str) { + return str.replace(/^\s+/, '').replace(/\s+$/, ''); +} +/** + * Linear mapping a value from domain to range + * @memberOf module:echarts/util/number + * @param {(number|Array.)} val + * @param {Array.} domain Domain extent domain[0] can be bigger than domain[1] + * @param {Array.} range Range extent range[0] can be bigger than range[1] + * @param {boolean} clamp + * @return {(number|Array.} + */ + + +function linearMap(val, domain, range, clamp) { + var subDomain = domain[1] - domain[0]; + var subRange = range[1] - range[0]; + + if (subDomain === 0) { + return subRange === 0 ? range[0] : (range[0] + range[1]) / 2; + } // Avoid accuracy problem in edge, such as + // 146.39 - 62.83 === 83.55999999999999. + // See echarts/test/ut/spec/util/number.js#linearMap#accuracyError + // It is a little verbose for efficiency considering this method + // is a hotspot. + + + if (clamp) { + if (subDomain > 0) { + if (val <= domain[0]) { + return range[0]; + } else if (val >= domain[1]) { + return range[1]; + } + } else { + if (val >= domain[0]) { + return range[0]; + } else if (val <= domain[1]) { + return range[1]; + } + } + } else { + if (val === domain[0]) { + return range[0]; + } + + if (val === domain[1]) { + return range[1]; + } + } + + return (val - domain[0]) / subDomain * subRange + range[0]; +} +/** + * Convert a percent string to absolute number. + * Returns NaN if percent is not a valid string or number + * @memberOf module:echarts/util/number + * @param {string|number} percent + * @param {number} all + * @return {number} + */ + + +function parsePercent(percent, all) { + switch (percent) { + case 'center': + case 'middle': + percent = '50%'; + break; + + case 'left': + case 'top': + percent = '0%'; + break; + + case 'right': + case 'bottom': + percent = '100%'; + break; + } + + if (typeof percent === 'string') { + if (_trim(percent).match(/%$/)) { + return parseFloat(percent) / 100 * all; + } + + return parseFloat(percent); + } + + return percent == null ? NaN : +percent; +} +/** + * (1) Fix rounding error of float numbers. + * (2) Support return string to avoid scientific notation like '3.5e-7'. + * + * @param {number} x + * @param {number} [precision] + * @param {boolean} [returnStr] + * @return {number|string} + */ + + +function round(x, precision, returnStr) { + if (precision == null) { + precision = 10; + } // Avoid range error + + + precision = Math.min(Math.max(0, precision), 20); + x = (+x).toFixed(precision); + return returnStr ? x : +x; +} + +function asc(arr) { + arr.sort(function (a, b) { + return a - b; + }); + return arr; +} +/** + * Get precision + * @param {number} val + */ + + +function getPrecision(val) { + val = +val; + + if (isNaN(val)) { + return 0; + } // It is much faster than methods converting number to string as follows + // var tmp = val.toString(); + // return tmp.length - 1 - tmp.indexOf('.'); + // especially when precision is low + + + var e = 1; + var count = 0; + + while (Math.round(val * e) / e !== val) { + e *= 10; + count++; + } + + return count; +} +/** + * @param {string|number} val + * @return {number} + */ + + +function getPrecisionSafe(val) { + var str = val.toString(); // Consider scientific notation: '3.4e-12' '3.4e+12' + + var eIndex = str.indexOf('e'); + + if (eIndex > 0) { + var precision = +str.slice(eIndex + 1); + return precision < 0 ? -precision : 0; + } else { + var dotIndex = str.indexOf('.'); + return dotIndex < 0 ? 0 : str.length - 1 - dotIndex; + } +} +/** + * Minimal dicernible data precisioin according to a single pixel. + * + * @param {Array.} dataExtent + * @param {Array.} pixelExtent + * @return {number} precision + */ + + +function getPixelPrecision(dataExtent, pixelExtent) { + var log = Math.log; + var LN10 = Math.LN10; + var dataQuantity = Math.floor(log(dataExtent[1] - dataExtent[0]) / LN10); + var sizeQuantity = Math.round(log(Math.abs(pixelExtent[1] - pixelExtent[0])) / LN10); // toFixed() digits argument must be between 0 and 20. + + var precision = Math.min(Math.max(-dataQuantity + sizeQuantity, 0), 20); + return !isFinite(precision) ? 20 : precision; +} +/** + * Get a data of given precision, assuring the sum of percentages + * in valueList is 1. + * The largest remainer method is used. + * https://en.wikipedia.org/wiki/Largest_remainder_method + * + * @param {Array.} valueList a list of all data + * @param {number} idx index of the data to be processed in valueList + * @param {number} precision integer number showing digits of precision + * @return {number} percent ranging from 0 to 100 + */ + + +function getPercentWithPrecision(valueList, idx, precision) { + if (!valueList[idx]) { + return 0; + } + + var sum = zrUtil.reduce(valueList, function (acc, val) { + return acc + (isNaN(val) ? 0 : val); + }, 0); + + if (sum === 0) { + return 0; + } + + var digits = Math.pow(10, precision); + var votesPerQuota = zrUtil.map(valueList, function (val) { + return (isNaN(val) ? 0 : val) / sum * digits * 100; + }); + var targetSeats = digits * 100; + var seats = zrUtil.map(votesPerQuota, function (votes) { + // Assign automatic seats. + return Math.floor(votes); + }); + var currentSum = zrUtil.reduce(seats, function (acc, val) { + return acc + val; + }, 0); + var remainder = zrUtil.map(votesPerQuota, function (votes, idx) { + return votes - seats[idx]; + }); // Has remainding votes. + + while (currentSum < targetSeats) { + // Find next largest remainder. + var max = Number.NEGATIVE_INFINITY; + var maxId = null; + + for (var i = 0, len = remainder.length; i < len; ++i) { + if (remainder[i] > max) { + max = remainder[i]; + maxId = i; + } + } // Add a vote to max remainder. + + + ++seats[maxId]; + remainder[maxId] = 0; + ++currentSum; + } + + return seats[idx] / digits; +} // Number.MAX_SAFE_INTEGER, ie do not support. + + +var MAX_SAFE_INTEGER = 9007199254740991; +/** + * To 0 - 2 * PI, considering negative radian. + * @param {number} radian + * @return {number} + */ + +function remRadian(radian) { + var pi2 = Math.PI * 2; + return (radian % pi2 + pi2) % pi2; +} +/** + * @param {type} radian + * @return {boolean} + */ + + +function isRadianAroundZero(val) { + return val > -RADIAN_EPSILON && val < RADIAN_EPSILON; +} + +var TIME_REG = /^(?:(\d{4})(?:[-\/](\d{1,2})(?:[-\/](\d{1,2})(?:[T ](\d{1,2})(?::(\d\d)(?::(\d\d)(?:[.,](\d+))?)?)?(Z|[\+\-]\d\d:?\d\d)?)?)?)?)?$/; // jshint ignore:line + +/** + * @param {string|Date|number} value These values can be accepted: + * + An instance of Date, represent a time in its own time zone. + * + Or string in a subset of ISO 8601, only including: + * + only year, month, date: '2012-03', '2012-03-01', '2012-03-01 05', '2012-03-01 05:06', + * + separated with T or space: '2012-03-01T12:22:33.123', '2012-03-01 12:22:33.123', + * + time zone: '2012-03-01T12:22:33Z', '2012-03-01T12:22:33+8000', '2012-03-01T12:22:33-05:00', + * all of which will be treated as local time if time zone is not specified + * (see ). + * + Or other string format, including (all of which will be treated as loacal time): + * '2012', '2012-3-1', '2012/3/1', '2012/03/01', + * '2009/6/12 2:00', '2009/6/12 2:05:08', '2009/6/12 2:05:08.123' + * + a timestamp, which represent a time in UTC. + * @return {Date} date + */ + +function parseDate(value) { + if (value instanceof Date) { + return value; + } else if (typeof value === 'string') { + // Different browsers parse date in different way, so we parse it manually. + // Some other issues: + // new Date('1970-01-01') is UTC, + // new Date('1970/01/01') and new Date('1970-1-01') is local. + // See issue #3623 + var match = TIME_REG.exec(value); + + if (!match) { + // return Invalid Date. + return new Date(NaN); + } // Use local time when no timezone offset specifed. + + + if (!match[8]) { + // match[n] can only be string or undefined. + // But take care of '12' + 1 => '121'. + return new Date(+match[1], +(match[2] || 1) - 1, +match[3] || 1, +match[4] || 0, +(match[5] || 0), +match[6] || 0, +match[7] || 0); + } // Timezoneoffset of Javascript Date has considered DST (Daylight Saving Time, + // https://tc39.github.io/ecma262/#sec-daylight-saving-time-adjustment). + // For example, system timezone is set as "Time Zone: America/Toronto", + // then these code will get different result: + // `new Date(1478411999999).getTimezoneOffset(); // get 240` + // `new Date(1478412000000).getTimezoneOffset(); // get 300` + // So we should not use `new Date`, but use `Date.UTC`. + else { + var hour = +match[4] || 0; + + if (match[8].toUpperCase() !== 'Z') { + hour -= match[8].slice(0, 3); + } + + return new Date(Date.UTC(+match[1], +(match[2] || 1) - 1, +match[3] || 1, hour, +(match[5] || 0), +match[6] || 0, +match[7] || 0)); + } + } else if (value == null) { + return new Date(NaN); + } + + return new Date(Math.round(value)); +} +/** + * Quantity of a number. e.g. 0.1, 1, 10, 100 + * + * @param {number} val + * @return {number} + */ + + +function quantity(val) { + return Math.pow(10, quantityExponent(val)); +} + +function quantityExponent(val) { + return Math.floor(Math.log(val) / Math.LN10); +} +/** + * find a “nice” number approximately equal to x. Round the number if round = true, + * take ceiling if round = false. The primary observation is that the “nicest” + * numbers in decimal are 1, 2, and 5, and all power-of-ten multiples of these numbers. + * + * See "Nice Numbers for Graph Labels" of Graphic Gems. + * + * @param {number} val Non-negative value. + * @param {boolean} round + * @return {number} + */ + + +function nice(val, round) { + var exponent = quantityExponent(val); + var exp10 = Math.pow(10, exponent); + var f = val / exp10; // 1 <= f < 10 + + var nf; + + if (round) { + if (f < 1.5) { + nf = 1; + } else if (f < 2.5) { + nf = 2; + } else if (f < 4) { + nf = 3; + } else if (f < 7) { + nf = 5; + } else { + nf = 10; + } + } else { + if (f < 1) { + nf = 1; + } else if (f < 2) { + nf = 2; + } else if (f < 3) { + nf = 3; + } else if (f < 5) { + nf = 5; + } else { + nf = 10; + } + } + + val = nf * exp10; // Fix 3 * 0.1 === 0.30000000000000004 issue (see IEEE 754). + // 20 is the uppper bound of toFixed. + + return exponent >= -20 ? +val.toFixed(exponent < 0 ? -exponent : 0) : val; +} +/** + * Order intervals asc, and split them when overlap. + * expect(numberUtil.reformIntervals([ + * {interval: [18, 62], close: [1, 1]}, + * {interval: [-Infinity, -70], close: [0, 0]}, + * {interval: [-70, -26], close: [1, 1]}, + * {interval: [-26, 18], close: [1, 1]}, + * {interval: [62, 150], close: [1, 1]}, + * {interval: [106, 150], close: [1, 1]}, + * {interval: [150, Infinity], close: [0, 0]} + * ])).toEqual([ + * {interval: [-Infinity, -70], close: [0, 0]}, + * {interval: [-70, -26], close: [1, 1]}, + * {interval: [-26, 18], close: [0, 1]}, + * {interval: [18, 62], close: [0, 1]}, + * {interval: [62, 150], close: [0, 1]}, + * {interval: [150, Infinity], close: [0, 0]} + * ]); + * @param {Array.} list, where `close` mean open or close + * of the interval, and Infinity can be used. + * @return {Array.} The origin list, which has been reformed. + */ + + +function reformIntervals(list) { + list.sort(function (a, b) { + return littleThan(a, b, 0) ? -1 : 1; + }); + var curr = -Infinity; + var currClose = 1; + + for (var i = 0; i < list.length;) { + var interval = list[i].interval; + var close = list[i].close; + + for (var lg = 0; lg < 2; lg++) { + if (interval[lg] <= curr) { + interval[lg] = curr; + close[lg] = !lg ? 1 - currClose : 1; + } + + curr = interval[lg]; + currClose = close[lg]; + } + + if (interval[0] === interval[1] && close[0] * close[1] !== 1) { + list.splice(i, 1); + } else { + i++; + } + } + + return list; + + function littleThan(a, b, lg) { + return a.interval[lg] < b.interval[lg] || a.interval[lg] === b.interval[lg] && (a.close[lg] - b.close[lg] === (!lg ? 1 : -1) || !lg && littleThan(a, b, 1)); + } +} +/** + * parseFloat NaNs numeric-cast false positives (null|true|false|"") + * ...but misinterprets leading-number strings, particularly hex literals ("0x...") + * subtraction forces infinities to NaN + * + * @param {*} v + * @return {boolean} + */ + + +function isNumeric(v) { + return v - parseFloat(v) >= 0; +} + +exports.linearMap = linearMap; +exports.parsePercent = parsePercent; +exports.round = round; +exports.asc = asc; +exports.getPrecision = getPrecision; +exports.getPrecisionSafe = getPrecisionSafe; +exports.getPixelPrecision = getPixelPrecision; +exports.getPercentWithPrecision = getPercentWithPrecision; +exports.MAX_SAFE_INTEGER = MAX_SAFE_INTEGER; +exports.remRadian = remRadian; +exports.isRadianAroundZero = isRadianAroundZero; +exports.parseDate = parseDate; +exports.quantity = quantity; +exports.nice = nice; +exports.reformIntervals = reformIntervals; +exports.isNumeric = isNumeric; + +/***/ }), +/* 10 */ +/***/ (function(module, exports, __webpack_require__) { + +var LRU = __webpack_require__(14); + +var globalImageCache = new LRU(50); +/** + * @param {string|HTMLImageElement|HTMLCanvasElement|Canvas} newImageOrSrc + * @return {HTMLImageElement|HTMLCanvasElement|Canvas} image + */ + +function findExistImage(newImageOrSrc) { + if (typeof newImageOrSrc === 'string') { + var cachedImgObj = globalImageCache.get(newImageOrSrc); + return cachedImgObj && cachedImgObj.image; + } else { + return newImageOrSrc; + } +} +/** + * Caution: User should cache loaded images, but not just count on LRU. + * Consider if required images more than LRU size, will dead loop occur? + * + * @param {string|HTMLImageElement|HTMLCanvasElement|Canvas} newImageOrSrc + * @param {HTMLImageElement|HTMLCanvasElement|Canvas} image Existent image. + * @param {module:zrender/Element} [hostEl] For calling `dirty`. + * @param {Function} [cb] params: (image, cbPayload) + * @param {Object} [cbPayload] Payload on cb calling. + * @return {HTMLImageElement|HTMLCanvasElement|Canvas} image + */ + + +function createOrUpdateImage(newImageOrSrc, image, hostEl, cb, cbPayload) { + if (!newImageOrSrc) { + return image; + } else if (typeof newImageOrSrc === 'string') { + // Image should not be loaded repeatly. + if (image && image.__zrImageSrc === newImageOrSrc || !hostEl) { + return image; + } // Only when there is no existent image or existent image src + // is different, this method is responsible for load. + + + var cachedImgObj = globalImageCache.get(newImageOrSrc); + var pendingWrap = { + hostEl: hostEl, + cb: cb, + cbPayload: cbPayload + }; + + if (cachedImgObj) { + image = cachedImgObj.image; + !isImageReady(image) && cachedImgObj.pending.push(pendingWrap); + } else { + !image && (image = new Image()); + image.onload = imageOnLoad; + globalImageCache.put(newImageOrSrc, image.__cachedImgObj = { + image: image, + pending: [pendingWrap] + }); + image.src = image.__zrImageSrc = newImageOrSrc; + } + + return image; + } // newImageOrSrc is an HTMLImageElement or HTMLCanvasElement or Canvas + else { + return newImageOrSrc; + } +} + +function imageOnLoad() { + var cachedImgObj = this.__cachedImgObj; + this.onload = this.__cachedImgObj = null; + + for (var i = 0; i < cachedImgObj.pending.length; i++) { + var pendingWrap = cachedImgObj.pending[i]; + var cb = pendingWrap.cb; + cb && cb(this, pendingWrap.cbPayload); + pendingWrap.hostEl.dirty(); + } + + cachedImgObj.pending.length = 0; +} + +function isImageReady(image) { + return image && image.width && image.height; +} + +exports.findExistImage = findExistImage; +exports.createOrUpdateImage = createOrUpdateImage; +exports.isImageReady = isImageReady; + +/***/ }), +/* 11 */ +/***/ (function(module, exports, __webpack_require__) { + +var zrUtil = __webpack_require__(0); + +// TODO Parse shadow style +// TODO Only shallow path support +function _default(properties) { + // Normalize + for (var i = 0; i < properties.length; i++) { + if (!properties[i][1]) { + properties[i][1] = properties[i][0]; + } + } + + return function (model, excludes, includes) { + var style = {}; + + for (var i = 0; i < properties.length; i++) { + var propName = properties[i][1]; + + if (excludes && zrUtil.indexOf(excludes, propName) >= 0 || includes && zrUtil.indexOf(includes, propName) < 0) { + continue; + } + + var val = model.getShallow(propName); + + if (val != null) { + style[properties[i][0]] = val; + } + } + + return style; + }; +} + +module.exports = _default; + +/***/ }), +/* 12 */ +/***/ (function(module, exports, __webpack_require__) { + +var zrUtil = __webpack_require__(0); + +var Style = __webpack_require__(40); + +var Element = __webpack_require__(16); + +var RectText = __webpack_require__(48); + +/** + * 可绘制的图形基类 + * Base class of all displayable graphic objects + * @module zrender/graphic/Displayable + */ + +/** + * @alias module:zrender/graphic/Displayable + * @extends module:zrender/Element + * @extends module:zrender/graphic/mixin/RectText + */ +function Displayable(opts) { + opts = opts || {}; + Element.call(this, opts); // Extend properties + + for (var name in opts) { + if (opts.hasOwnProperty(name) && name !== 'style') { + this[name] = opts[name]; + } + } + /** + * @type {module:zrender/graphic/Style} + */ + + + this.style = new Style(opts.style, this); + this._rect = null; // Shapes for cascade clipping. + + this.__clipPaths = []; // FIXME Stateful must be mixined after style is setted + // Stateful.call(this, opts); +} + +Displayable.prototype = { + constructor: Displayable, + type: 'displayable', + + /** + * Displayable 是否为脏,Painter 中会根据该标记判断是否需要是否需要重新绘制 + * Dirty flag. From which painter will determine if this displayable object needs brush + * @name module:zrender/graphic/Displayable#__dirty + * @type {boolean} + */ + __dirty: true, + + /** + * 图形是否可见,为true时不绘制图形,但是仍能触发鼠标事件 + * If ignore drawing of the displayable object. Mouse event will still be triggered + * @name module:/zrender/graphic/Displayable#invisible + * @type {boolean} + * @default false + */ + invisible: false, + + /** + * @name module:/zrender/graphic/Displayable#z + * @type {number} + * @default 0 + */ + z: 0, + + /** + * @name module:/zrender/graphic/Displayable#z + * @type {number} + * @default 0 + */ + z2: 0, + + /** + * z层level,决定绘画在哪层canvas中 + * @name module:/zrender/graphic/Displayable#zlevel + * @type {number} + * @default 0 + */ + zlevel: 0, + + /** + * 是否可拖拽 + * @name module:/zrender/graphic/Displayable#draggable + * @type {boolean} + * @default false + */ + draggable: false, + + /** + * 是否正在拖拽 + * @name module:/zrender/graphic/Displayable#draggable + * @type {boolean} + * @default false + */ + dragging: false, + + /** + * 是否相应鼠标事件 + * @name module:/zrender/graphic/Displayable#silent + * @type {boolean} + * @default false + */ + silent: false, + + /** + * If enable culling + * @type {boolean} + * @default false + */ + culling: false, + + /** + * Mouse cursor when hovered + * @name module:/zrender/graphic/Displayable#cursor + * @type {string} + */ + cursor: 'pointer', + + /** + * If hover area is bounding rect + * @name module:/zrender/graphic/Displayable#rectHover + * @type {string} + */ + rectHover: false, + + /** + * Render the element progressively when the value >= 0, + * usefull for large data. + * @type {number} + */ + progressive: -1, + beforeBrush: function (ctx) {}, + afterBrush: function (ctx) {}, + + /** + * 图形绘制方法 + * @param {CanvasRenderingContext2D} ctx + */ + // Interface + brush: function (ctx, prevEl) {}, + + /** + * 获取最小包围盒 + * @return {module:zrender/core/BoundingRect} + */ + // Interface + getBoundingRect: function () {}, + + /** + * 判断坐标 x, y 是否在图形上 + * If displayable element contain coord x, y + * @param {number} x + * @param {number} y + * @return {boolean} + */ + contain: function (x, y) { + return this.rectContain(x, y); + }, + + /** + * @param {Function} cb + * @param {} context + */ + traverse: function (cb, context) { + cb.call(context, this); + }, + + /** + * 判断坐标 x, y 是否在图形的包围盒上 + * If bounding rect of element contain coord x, y + * @param {number} x + * @param {number} y + * @return {boolean} + */ + rectContain: function (x, y) { + var coord = this.transformCoordToLocal(x, y); + var rect = this.getBoundingRect(); + return rect.contain(coord[0], coord[1]); + }, + + /** + * 标记图形元素为脏,并且在下一帧重绘 + * Mark displayable element dirty and refresh next frame + */ + dirty: function () { + this.__dirty = true; + this._rect = null; + this.__zr && this.__zr.refresh(); + }, + + /** + * 图形是否会触发事件 + * If displayable object binded any event + * @return {boolean} + */ + // TODO, 通过 bind 绑定的事件 + // isSilent: function () { + // return !( + // this.hoverable || this.draggable + // || this.onmousemove || this.onmouseover || this.onmouseout + // || this.onmousedown || this.onmouseup || this.onclick + // || this.ondragenter || this.ondragover || this.ondragleave + // || this.ondrop + // ); + // }, + + /** + * Alias for animate('style') + * @param {boolean} loop + */ + animateStyle: function (loop) { + return this.animate('style', loop); + }, + attrKV: function (key, value) { + if (key !== 'style') { + Element.prototype.attrKV.call(this, key, value); + } else { + this.style.set(value); + } + }, + + /** + * @param {Object|string} key + * @param {*} value + */ + setStyle: function (key, value) { + this.style.set(key, value); + this.dirty(false); + return this; + }, + + /** + * Use given style object + * @param {Object} obj + */ + useStyle: function (obj) { + this.style = new Style(obj, this); + this.dirty(false); + return this; + } +}; +zrUtil.inherits(Displayable, Element); +zrUtil.mixin(Displayable, RectText); // zrUtil.mixin(Displayable, Stateful); + +var _default = Displayable; +module.exports = _default; + +/***/ }), +/* 13 */ +/***/ (function(module, exports, __webpack_require__) { + +var zrUtil = __webpack_require__(0); + +var textContain = __webpack_require__(5); + +var numberUtil = __webpack_require__(9); + +/** + * 每三位默认加,格式化 + * @param {string|number} x + * @return {string} + */ +function addCommas(x) { + if (isNaN(x)) { + return '-'; + } + + x = (x + '').split('.'); + return x[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g, '$1,') + (x.length > 1 ? '.' + x[1] : ''); +} +/** + * @param {string} str + * @param {boolean} [upperCaseFirst=false] + * @return {string} str + */ + + +function toCamelCase(str, upperCaseFirst) { + str = (str || '').toLowerCase().replace(/-(.)/g, function (match, group1) { + return group1.toUpperCase(); + }); + + if (upperCaseFirst && str) { + str = str.charAt(0).toUpperCase() + str.slice(1); + } + + return str; +} + +var normalizeCssArray = zrUtil.normalizeCssArray; + +function encodeHTML(source) { + return String(source).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"').replace(/'/g, '''); +} + +var TPL_VAR_ALIAS = ['a', 'b', 'c', 'd', 'e', 'f', 'g']; + +var wrapVar = function (varName, seriesIdx) { + return '{' + varName + (seriesIdx == null ? '' : seriesIdx) + '}'; +}; +/** + * Template formatter + * @param {string} tpl + * @param {Array.|Object} paramsList + * @param {boolean} [encode=false] + * @return {string} + */ + + +function formatTpl(tpl, paramsList, encode) { + if (!zrUtil.isArray(paramsList)) { + paramsList = [paramsList]; + } + + var seriesLen = paramsList.length; + + if (!seriesLen) { + return ''; + } + + var $vars = paramsList[0].$vars || []; + + for (var i = 0; i < $vars.length; i++) { + var alias = TPL_VAR_ALIAS[i]; + var val = wrapVar(alias, 0); + tpl = tpl.replace(wrapVar(alias), encode ? encodeHTML(val) : val); + } + + for (var seriesIdx = 0; seriesIdx < seriesLen; seriesIdx++) { + for (var k = 0; k < $vars.length; k++) { + var val = paramsList[seriesIdx][$vars[k]]; + tpl = tpl.replace(wrapVar(TPL_VAR_ALIAS[k], seriesIdx), encode ? encodeHTML(val) : val); + } + } + + return tpl; +} +/** + * simple Template formatter + * + * @param {string} tpl + * @param {Object} param + * @param {boolean} [encode=false] + * @return {string} + */ + + +function formatTplSimple(tpl, param, encode) { + zrUtil.each(param, function (value, key) { + tpl = tpl.replace('{' + key + '}', encode ? encodeHTML(value) : value); + }); + return tpl; +} +/** + * @param {string} color + * @param {string} [extraCssText] + * @return {string} + */ + + +function getTooltipMarker(color, extraCssText) { + return color ? '' : ''; +} +/** + * @param {string} str + * @return {string} + * @inner + */ + + +var s2d = function (str) { + return str < 10 ? '0' + str : str; +}; +/** + * ISO Date format + * @param {string} tpl + * @param {number} value + * @param {boolean} [isUTC=false] Default in local time. + * see `module:echarts/scale/Time` + * and `module:echarts/util/number#parseDate`. + * @inner + */ + + +function formatTime(tpl, value, isUTC) { + if (tpl === 'week' || tpl === 'month' || tpl === 'quarter' || tpl === 'half-year' || tpl === 'year') { + tpl = 'MM-dd\nyyyy'; + } + + var date = numberUtil.parseDate(value); + var utc = isUTC ? 'UTC' : ''; + var y = date['get' + utc + 'FullYear'](); + var M = date['get' + utc + 'Month']() + 1; + var d = date['get' + utc + 'Date'](); + var h = date['get' + utc + 'Hours'](); + var m = date['get' + utc + 'Minutes'](); + var s = date['get' + utc + 'Seconds'](); + tpl = tpl.replace('MM', s2d(M)).replace('M', M).replace('yyyy', y).replace('yy', y % 100).replace('dd', s2d(d)).replace('d', d).replace('hh', s2d(h)).replace('h', h).replace('mm', s2d(m)).replace('m', m).replace('ss', s2d(s)).replace('s', s); + return tpl; +} +/** + * Capital first + * @param {string} str + * @return {string} + */ + + +function capitalFirst(str) { + return str ? str.charAt(0).toUpperCase() + str.substr(1) : str; +} + +var truncateText = textContain.truncateText; +var getTextRect = textContain.getBoundingRect; +exports.addCommas = addCommas; +exports.toCamelCase = toCamelCase; +exports.normalizeCssArray = normalizeCssArray; +exports.encodeHTML = encodeHTML; +exports.formatTpl = formatTpl; +exports.formatTplSimple = formatTplSimple; +exports.getTooltipMarker = getTooltipMarker; +exports.formatTime = formatTime; +exports.capitalFirst = capitalFirst; +exports.truncateText = truncateText; +exports.getTextRect = getTextRect; + +/***/ }), +/* 14 */ +/***/ (function(module, exports) { + +// Simple LRU cache use doubly linked list +// @module zrender/core/LRU + +/** + * Simple double linked list. Compared with array, it has O(1) remove operation. + * @constructor + */ +var LinkedList = function () { + /** + * @type {module:zrender/core/LRU~Entry} + */ + this.head = null; + /** + * @type {module:zrender/core/LRU~Entry} + */ + + this.tail = null; + this._len = 0; +}; + +var linkedListProto = LinkedList.prototype; +/** + * Insert a new value at the tail + * @param {} val + * @return {module:zrender/core/LRU~Entry} + */ + +linkedListProto.insert = function (val) { + var entry = new Entry(val); + this.insertEntry(entry); + return entry; +}; +/** + * Insert an entry at the tail + * @param {module:zrender/core/LRU~Entry} entry + */ + + +linkedListProto.insertEntry = function (entry) { + if (!this.head) { + this.head = this.tail = entry; + } else { + this.tail.next = entry; + entry.prev = this.tail; + entry.next = null; + this.tail = entry; + } + + this._len++; +}; +/** + * Remove entry. + * @param {module:zrender/core/LRU~Entry} entry + */ + + +linkedListProto.remove = function (entry) { + var prev = entry.prev; + var next = entry.next; + + if (prev) { + prev.next = next; + } else { + // Is head + this.head = next; + } + + if (next) { + next.prev = prev; + } else { + // Is tail + this.tail = prev; + } + + entry.next = entry.prev = null; + this._len--; +}; +/** + * @return {number} + */ + + +linkedListProto.len = function () { + return this._len; +}; +/** + * Clear list + */ + + +linkedListProto.clear = function () { + this.head = this.tail = null; + this._len = 0; +}; +/** + * @constructor + * @param {} val + */ + + +var Entry = function (val) { + /** + * @type {} + */ + this.value = val; + /** + * @type {module:zrender/core/LRU~Entry} + */ + + this.next; + /** + * @type {module:zrender/core/LRU~Entry} + */ + + this.prev; +}; +/** + * LRU Cache + * @constructor + * @alias module:zrender/core/LRU + */ + + +var LRU = function (maxSize) { + this._list = new LinkedList(); + this._map = {}; + this._maxSize = maxSize || 10; + this._lastRemovedEntry = null; +}; + +var LRUProto = LRU.prototype; +/** + * @param {string} key + * @param {} value + * @return {} Removed value + */ + +LRUProto.put = function (key, value) { + var list = this._list; + var map = this._map; + var removed = null; + + if (map[key] == null) { + var len = list.len(); // Reuse last removed entry + + var entry = this._lastRemovedEntry; + + if (len >= this._maxSize && len > 0) { + // Remove the least recently used + var leastUsedEntry = list.head; + list.remove(leastUsedEntry); + delete map[leastUsedEntry.key]; + removed = leastUsedEntry.value; + this._lastRemovedEntry = leastUsedEntry; + } + + if (entry) { + entry.value = value; + } else { + entry = new Entry(value); + } + + entry.key = key; + list.insertEntry(entry); + map[key] = entry; + } + + return removed; +}; +/** + * @param {string} key + * @return {} + */ + + +LRUProto.get = function (key) { + var entry = this._map[key]; + var list = this._list; + + if (entry != null) { + // Put the latest used entry in the tail + if (entry !== list.tail) { + list.remove(entry); + list.insertEntry(entry); + } + + return entry.value; + } +}; +/** + * Clear the cache + */ + + +LRUProto.clear = function () { + this._list.clear(); + + this._map = {}; +}; + +var _default = LRU; +module.exports = _default; + +/***/ }), +/* 15 */ +/***/ (function(module, exports) { + +/** + * echarts设备环境识别 + * + * @desc echarts基于Canvas,纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据统计图表。 + * @author firede[firede@firede.us] + * @desc thanks zepto. + */ +var env = {}; + +if (typeof navigator === 'undefined') { + // In node + env = { + browser: {}, + os: {}, + node: true, + // Assume canvas is supported + canvasSupported: true, + svgSupported: true + }; +} else { + env = detect(navigator.userAgent); +} + +var _default = env; // Zepto.js +// (c) 2010-2013 Thomas Fuchs +// Zepto.js may be freely distributed under the MIT license. + +function detect(ua) { + var os = {}; + var browser = {}; // var webkit = ua.match(/Web[kK]it[\/]{0,1}([\d.]+)/); + // var android = ua.match(/(Android);?[\s\/]+([\d.]+)?/); + // var ipad = ua.match(/(iPad).*OS\s([\d_]+)/); + // var ipod = ua.match(/(iPod)(.*OS\s([\d_]+))?/); + // var iphone = !ipad && ua.match(/(iPhone\sOS)\s([\d_]+)/); + // var webos = ua.match(/(webOS|hpwOS)[\s\/]([\d.]+)/); + // var touchpad = webos && ua.match(/TouchPad/); + // var kindle = ua.match(/Kindle\/([\d.]+)/); + // var silk = ua.match(/Silk\/([\d._]+)/); + // var blackberry = ua.match(/(BlackBerry).*Version\/([\d.]+)/); + // var bb10 = ua.match(/(BB10).*Version\/([\d.]+)/); + // var rimtabletos = ua.match(/(RIM\sTablet\sOS)\s([\d.]+)/); + // var playbook = ua.match(/PlayBook/); + // var chrome = ua.match(/Chrome\/([\d.]+)/) || ua.match(/CriOS\/([\d.]+)/); + + var firefox = ua.match(/Firefox\/([\d.]+)/); // var safari = webkit && ua.match(/Mobile\//) && !chrome; + // var webview = ua.match(/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/) && !chrome; + + var ie = ua.match(/MSIE\s([\d.]+)/) // IE 11 Trident/7.0; rv:11.0 + || ua.match(/Trident\/.+?rv:(([\d.]+))/); + var edge = ua.match(/Edge\/([\d.]+)/); // IE 12 and 12+ + + var weChat = /micromessenger/i.test(ua); // Todo: clean this up with a better OS/browser seperation: + // - discern (more) between multiple browsers on android + // - decide if kindle fire in silk mode is android or not + // - Firefox on Android doesn't specify the Android version + // - possibly devide in os, device and browser hashes + // if (browser.webkit = !!webkit) browser.version = webkit[1]; + // if (android) os.android = true, os.version = android[2]; + // if (iphone && !ipod) os.ios = os.iphone = true, os.version = iphone[2].replace(/_/g, '.'); + // if (ipad) os.ios = os.ipad = true, os.version = ipad[2].replace(/_/g, '.'); + // if (ipod) os.ios = os.ipod = true, os.version = ipod[3] ? ipod[3].replace(/_/g, '.') : null; + // if (webos) os.webos = true, os.version = webos[2]; + // if (touchpad) os.touchpad = true; + // if (blackberry) os.blackberry = true, os.version = blackberry[2]; + // if (bb10) os.bb10 = true, os.version = bb10[2]; + // if (rimtabletos) os.rimtabletos = true, os.version = rimtabletos[2]; + // if (playbook) browser.playbook = true; + // if (kindle) os.kindle = true, os.version = kindle[1]; + // if (silk) browser.silk = true, browser.version = silk[1]; + // if (!silk && os.android && ua.match(/Kindle Fire/)) browser.silk = true; + // if (chrome) browser.chrome = true, browser.version = chrome[1]; + + if (firefox) { + browser.firefox = true; + browser.version = firefox[1]; + } // if (safari && (ua.match(/Safari/) || !!os.ios)) browser.safari = true; + // if (webview) browser.webview = true; + + + if (ie) { + browser.ie = true; + browser.version = ie[1]; + } + + if (edge) { + browser.edge = true; + browser.version = edge[1]; + } // It is difficult to detect WeChat in Win Phone precisely, because ua can + // not be set on win phone. So we do not consider Win Phone. + + + if (weChat) { + browser.weChat = true; + } // os.tablet = !!(ipad || playbook || (android && !ua.match(/Mobile/)) || + // (firefox && ua.match(/Tablet/)) || (ie && !ua.match(/Phone/) && ua.match(/Touch/))); + // os.phone = !!(!os.tablet && !os.ipod && (android || iphone || webos || + // (chrome && ua.match(/Android/)) || (chrome && ua.match(/CriOS\/([\d.]+)/)) || + // (firefox && ua.match(/Mobile/)) || (ie && ua.match(/Touch/)))); + + + return { + browser: browser, + os: os, + node: false, + // 原生canvas支持,改极端点了 + // canvasSupported : !(browser.ie && parseFloat(browser.version) < 9) + canvasSupported: !!document.createElement('canvas').getContext, + svgSupported: typeof SVGRect !== 'undefined', + // @see + // works on most browsers + // IE10/11 does not support touch event, and MS Edge supports them but not by + // default, so we dont check navigator.maxTouchPoints for them here. + touchEventsSupported: 'ontouchstart' in window && !browser.ie && !browser.edge, + // . + pointerEventsSupported: 'onpointerdown' in window // Firefox supports pointer but not by default, only MS browsers are reliable on pointer + // events currently. So we dont use that on other browsers unless tested sufficiently. + // Although IE 10 supports pointer event, it use old style and is different from the + // standard. So we exclude that. (IE 10 is hardly used on touch device) + && (browser.edge || browser.ie && browser.version >= 11) + }; +} + +module.exports = _default; + +/***/ }), +/* 16 */ +/***/ (function(module, exports, __webpack_require__) { + +var guid = __webpack_require__(41); + +var Eventful = __webpack_require__(42); + +var Transformable = __webpack_require__(17); + +var Animatable = __webpack_require__(43); + +var zrUtil = __webpack_require__(0); + +/** + * @alias module:zrender/Element + * @constructor + * @extends {module:zrender/mixin/Animatable} + * @extends {module:zrender/mixin/Transformable} + * @extends {module:zrender/mixin/Eventful} + */ +var Element = function (opts) { + // jshint ignore:line + Transformable.call(this, opts); + Eventful.call(this, opts); + Animatable.call(this, opts); + /** + * 画布元素ID + * @type {string} + */ + + this.id = opts.id || guid(); +}; + +Element.prototype = { + /** + * 元素类型 + * Element type + * @type {string} + */ + type: 'element', + + /** + * 元素名字 + * Element name + * @type {string} + */ + name: '', + + /** + * ZRender 实例对象,会在 element 添加到 zrender 实例中后自动赋值 + * ZRender instance will be assigned when element is associated with zrender + * @name module:/zrender/Element#__zr + * @type {module:zrender/ZRender} + */ + __zr: null, + + /** + * 图形是否忽略,为true时忽略图形的绘制以及事件触发 + * If ignore drawing and events of the element object + * @name module:/zrender/Element#ignore + * @type {boolean} + * @default false + */ + ignore: false, + + /** + * 用于裁剪的路径(shape),所有 Group 内的路径在绘制时都会被这个路径裁剪 + * 该路径会继承被裁减对象的变换 + * @type {module:zrender/graphic/Path} + * @see http://www.w3.org/TR/2dcontext/#clipping-region + * @readOnly + */ + clipPath: null, + + /** + * Drift element + * @param {number} dx dx on the global space + * @param {number} dy dy on the global space + */ + drift: function (dx, dy) { + switch (this.draggable) { + case 'horizontal': + dy = 0; + break; + + case 'vertical': + dx = 0; + break; + } + + var m = this.transform; + + if (!m) { + m = this.transform = [1, 0, 0, 1, 0, 0]; + } + + m[4] += dx; + m[5] += dy; + this.decomposeTransform(); + this.dirty(false); + }, + + /** + * Hook before update + */ + beforeUpdate: function () {}, + + /** + * Hook after update + */ + afterUpdate: function () {}, + + /** + * Update each frame + */ + update: function () { + this.updateTransform(); + }, + + /** + * @param {Function} cb + * @param {} context + */ + traverse: function (cb, context) {}, + + /** + * @protected + */ + attrKV: function (key, value) { + if (key === 'position' || key === 'scale' || key === 'origin') { + // Copy the array + if (value) { + var target = this[key]; + + if (!target) { + target = this[key] = []; + } + + target[0] = value[0]; + target[1] = value[1]; + } + } else { + this[key] = value; + } + }, + + /** + * Hide the element + */ + hide: function () { + this.ignore = true; + this.__zr && this.__zr.refresh(); + }, + + /** + * Show the element + */ + show: function () { + this.ignore = false; + this.__zr && this.__zr.refresh(); + }, + + /** + * @param {string|Object} key + * @param {*} value + */ + attr: function (key, value) { + if (typeof key === 'string') { + this.attrKV(key, value); + } else if (zrUtil.isObject(key)) { + for (var name in key) { + if (key.hasOwnProperty(name)) { + this.attrKV(name, key[name]); + } + } + } + + this.dirty(false); + return this; + }, + + /** + * @param {module:zrender/graphic/Path} clipPath + */ + setClipPath: function (clipPath) { + var zr = this.__zr; + + if (zr) { + clipPath.addSelfToZr(zr); + } // Remove previous clip path + + + if (this.clipPath && this.clipPath !== clipPath) { + this.removeClipPath(); + } + + this.clipPath = clipPath; + clipPath.__zr = zr; + clipPath.__clipTarget = this; + this.dirty(false); + }, + + /** + */ + removeClipPath: function () { + var clipPath = this.clipPath; + + if (clipPath) { + if (clipPath.__zr) { + clipPath.removeSelfFromZr(clipPath.__zr); + } + + clipPath.__zr = null; + clipPath.__clipTarget = null; + this.clipPath = null; + this.dirty(false); + } + }, + + /** + * Add self from zrender instance. + * Not recursively because it will be invoked when element added to storage. + * @param {module:zrender/ZRender} zr + */ + addSelfToZr: function (zr) { + this.__zr = zr; // 添加动画 + + var animators = this.animators; + + if (animators) { + for (var i = 0; i < animators.length; i++) { + zr.animation.addAnimator(animators[i]); + } + } + + if (this.clipPath) { + this.clipPath.addSelfToZr(zr); + } + }, + + /** + * Remove self from zrender instance. + * Not recursively because it will be invoked when element added to storage. + * @param {module:zrender/ZRender} zr + */ + removeSelfFromZr: function (zr) { + this.__zr = null; // 移除动画 + + var animators = this.animators; + + if (animators) { + for (var i = 0; i < animators.length; i++) { + zr.animation.removeAnimator(animators[i]); + } + } + + if (this.clipPath) { + this.clipPath.removeSelfFromZr(zr); + } + } +}; +zrUtil.mixin(Element, Animatable); +zrUtil.mixin(Element, Transformable); +zrUtil.mixin(Element, Eventful); +var _default = Element; +module.exports = _default; + +/***/ }), +/* 17 */ +/***/ (function(module, exports, __webpack_require__) { + +var matrix = __webpack_require__(8); + +var vector = __webpack_require__(2); + +/** + * 提供变换扩展 + * @module zrender/mixin/Transformable + * @author pissang (https://www.github.com/pissang) + */ +var mIdentity = matrix.identity; +var EPSILON = 5e-5; + +function isNotAroundZero(val) { + return val > EPSILON || val < -EPSILON; +} +/** + * @alias module:zrender/mixin/Transformable + * @constructor + */ + + +var Transformable = function (opts) { + opts = opts || {}; // If there are no given position, rotation, scale + + if (!opts.position) { + /** + * 平移 + * @type {Array.} + * @default [0, 0] + */ + this.position = [0, 0]; + } + + if (opts.rotation == null) { + /** + * 旋转 + * @type {Array.} + * @default 0 + */ + this.rotation = 0; + } + + if (!opts.scale) { + /** + * 缩放 + * @type {Array.} + * @default [1, 1] + */ + this.scale = [1, 1]; + } + /** + * 旋转和缩放的原点 + * @type {Array.} + * @default null + */ + + + this.origin = this.origin || null; +}; + +var transformableProto = Transformable.prototype; +transformableProto.transform = null; +/** + * 判断是否需要有坐标变换 + * 如果有坐标变换, 则从position, rotation, scale以及父节点的transform计算出自身的transform矩阵 + */ + +transformableProto.needLocalTransform = function () { + return isNotAroundZero(this.rotation) || isNotAroundZero(this.position[0]) || isNotAroundZero(this.position[1]) || isNotAroundZero(this.scale[0] - 1) || isNotAroundZero(this.scale[1] - 1); +}; + +transformableProto.updateTransform = function () { + var parent = this.parent; + var parentHasTransform = parent && parent.transform; + var needLocalTransform = this.needLocalTransform(); + var m = this.transform; + + if (!(needLocalTransform || parentHasTransform)) { + m && mIdentity(m); + return; + } + + m = m || matrix.create(); + + if (needLocalTransform) { + this.getLocalTransform(m); + } else { + mIdentity(m); + } // 应用父节点变换 + + + if (parentHasTransform) { + if (needLocalTransform) { + matrix.mul(m, parent.transform, m); + } else { + matrix.copy(m, parent.transform); + } + } // 保存这个变换矩阵 + + + this.transform = m; + this.invTransform = this.invTransform || matrix.create(); + matrix.invert(this.invTransform, m); +}; + +transformableProto.getLocalTransform = function (m) { + return Transformable.getLocalTransform(this, m); +}; +/** + * 将自己的transform应用到context上 + * @param {CanvasRenderingContext2D} ctx + */ + + +transformableProto.setTransform = function (ctx) { + var m = this.transform; + var dpr = ctx.dpr || 1; + + if (m) { + ctx.setTransform(dpr * m[0], dpr * m[1], dpr * m[2], dpr * m[3], dpr * m[4], dpr * m[5]); + } else { + ctx.setTransform(dpr, 0, 0, dpr, 0, 0); + } +}; + +transformableProto.restoreTransform = function (ctx) { + var dpr = ctx.dpr || 1; + ctx.setTransform(dpr, 0, 0, dpr, 0, 0); +}; + +var tmpTransform = []; +/** + * 分解`transform`矩阵到`position`, `rotation`, `scale` + */ + +transformableProto.decomposeTransform = function () { + if (!this.transform) { + return; + } + + var parent = this.parent; + var m = this.transform; + + if (parent && parent.transform) { + // Get local transform and decompose them to position, scale, rotation + matrix.mul(tmpTransform, parent.invTransform, m); + m = tmpTransform; + } + + var sx = m[0] * m[0] + m[1] * m[1]; + var sy = m[2] * m[2] + m[3] * m[3]; + var position = this.position; + var scale = this.scale; + + if (isNotAroundZero(sx - 1)) { + sx = Math.sqrt(sx); + } + + if (isNotAroundZero(sy - 1)) { + sy = Math.sqrt(sy); + } + + if (m[0] < 0) { + sx = -sx; + } + + if (m[3] < 0) { + sy = -sy; + } + + position[0] = m[4]; + position[1] = m[5]; + scale[0] = sx; + scale[1] = sy; + this.rotation = Math.atan2(-m[1] / sy, m[0] / sx); +}; +/** + * Get global scale + * @return {Array.} + */ + + +transformableProto.getGlobalScale = function () { + var m = this.transform; + + if (!m) { + return [1, 1]; + } + + var sx = Math.sqrt(m[0] * m[0] + m[1] * m[1]); + var sy = Math.sqrt(m[2] * m[2] + m[3] * m[3]); + + if (m[0] < 0) { + sx = -sx; + } + + if (m[3] < 0) { + sy = -sy; + } + + return [sx, sy]; +}; +/** + * 变换坐标位置到 shape 的局部坐标空间 + * @method + * @param {number} x + * @param {number} y + * @return {Array.} + */ + + +transformableProto.transformCoordToLocal = function (x, y) { + var v2 = [x, y]; + var invTransform = this.invTransform; + + if (invTransform) { + vector.applyTransform(v2, v2, invTransform); + } + + return v2; +}; +/** + * 变换局部坐标位置到全局坐标空间 + * @method + * @param {number} x + * @param {number} y + * @return {Array.} + */ + + +transformableProto.transformCoordToGlobal = function (x, y) { + var v2 = [x, y]; + var transform = this.transform; + + if (transform) { + vector.applyTransform(v2, v2, transform); + } + + return v2; +}; +/** + * @static + * @param {Object} target + * @param {Array.} target.origin + * @param {number} target.rotation + * @param {Array.} target.position + * @param {Array.} [m] + */ + + +Transformable.getLocalTransform = function (target, m) { + m = m || []; + mIdentity(m); + var origin = target.origin; + var scale = target.scale || [1, 1]; + var rotation = target.rotation || 0; + var position = target.position || [0, 0]; + + if (origin) { + // Translate to origin + m[4] -= origin[0]; + m[5] -= origin[1]; + } + + matrix.scale(m, m, scale); + + if (rotation) { + matrix.rotate(m, m, rotation); + } + + if (origin) { + // Translate back from origin + m[4] += origin[0]; + m[5] += origin[1]; + } + + m[4] += position[0]; + m[5] += position[1]; + return m; +}; + +var _default = Transformable; +module.exports = _default; + +/***/ }), +/* 18 */ +/***/ (function(module, exports, __webpack_require__) { + +var LRU = __webpack_require__(14); + +var kCSSColorTable = { + 'transparent': [0, 0, 0, 0], + 'aliceblue': [240, 248, 255, 1], + 'antiquewhite': [250, 235, 215, 1], + 'aqua': [0, 255, 255, 1], + 'aquamarine': [127, 255, 212, 1], + 'azure': [240, 255, 255, 1], + 'beige': [245, 245, 220, 1], + 'bisque': [255, 228, 196, 1], + 'black': [0, 0, 0, 1], + 'blanchedalmond': [255, 235, 205, 1], + 'blue': [0, 0, 255, 1], + 'blueviolet': [138, 43, 226, 1], + 'brown': [165, 42, 42, 1], + 'burlywood': [222, 184, 135, 1], + 'cadetblue': [95, 158, 160, 1], + 'chartreuse': [127, 255, 0, 1], + 'chocolate': [210, 105, 30, 1], + 'coral': [255, 127, 80, 1], + 'cornflowerblue': [100, 149, 237, 1], + 'cornsilk': [255, 248, 220, 1], + 'crimson': [220, 20, 60, 1], + 'cyan': [0, 255, 255, 1], + 'darkblue': [0, 0, 139, 1], + 'darkcyan': [0, 139, 139, 1], + 'darkgoldenrod': [184, 134, 11, 1], + 'darkgray': [169, 169, 169, 1], + 'darkgreen': [0, 100, 0, 1], + 'darkgrey': [169, 169, 169, 1], + 'darkkhaki': [189, 183, 107, 1], + 'darkmagenta': [139, 0, 139, 1], + 'darkolivegreen': [85, 107, 47, 1], + 'darkorange': [255, 140, 0, 1], + 'darkorchid': [153, 50, 204, 1], + 'darkred': [139, 0, 0, 1], + 'darksalmon': [233, 150, 122, 1], + 'darkseagreen': [143, 188, 143, 1], + 'darkslateblue': [72, 61, 139, 1], + 'darkslategray': [47, 79, 79, 1], + 'darkslategrey': [47, 79, 79, 1], + 'darkturquoise': [0, 206, 209, 1], + 'darkviolet': [148, 0, 211, 1], + 'deeppink': [255, 20, 147, 1], + 'deepskyblue': [0, 191, 255, 1], + 'dimgray': [105, 105, 105, 1], + 'dimgrey': [105, 105, 105, 1], + 'dodgerblue': [30, 144, 255, 1], + 'firebrick': [178, 34, 34, 1], + 'floralwhite': [255, 250, 240, 1], + 'forestgreen': [34, 139, 34, 1], + 'fuchsia': [255, 0, 255, 1], + 'gainsboro': [220, 220, 220, 1], + 'ghostwhite': [248, 248, 255, 1], + 'gold': [255, 215, 0, 1], + 'goldenrod': [218, 165, 32, 1], + 'gray': [128, 128, 128, 1], + 'green': [0, 128, 0, 1], + 'greenyellow': [173, 255, 47, 1], + 'grey': [128, 128, 128, 1], + 'honeydew': [240, 255, 240, 1], + 'hotpink': [255, 105, 180, 1], + 'indianred': [205, 92, 92, 1], + 'indigo': [75, 0, 130, 1], + 'ivory': [255, 255, 240, 1], + 'khaki': [240, 230, 140, 1], + 'lavender': [230, 230, 250, 1], + 'lavenderblush': [255, 240, 245, 1], + 'lawngreen': [124, 252, 0, 1], + 'lemonchiffon': [255, 250, 205, 1], + 'lightblue': [173, 216, 230, 1], + 'lightcoral': [240, 128, 128, 1], + 'lightcyan': [224, 255, 255, 1], + 'lightgoldenrodyellow': [250, 250, 210, 1], + 'lightgray': [211, 211, 211, 1], + 'lightgreen': [144, 238, 144, 1], + 'lightgrey': [211, 211, 211, 1], + 'lightpink': [255, 182, 193, 1], + 'lightsalmon': [255, 160, 122, 1], + 'lightseagreen': [32, 178, 170, 1], + 'lightskyblue': [135, 206, 250, 1], + 'lightslategray': [119, 136, 153, 1], + 'lightslategrey': [119, 136, 153, 1], + 'lightsteelblue': [176, 196, 222, 1], + 'lightyellow': [255, 255, 224, 1], + 'lime': [0, 255, 0, 1], + 'limegreen': [50, 205, 50, 1], + 'linen': [250, 240, 230, 1], + 'magenta': [255, 0, 255, 1], + 'maroon': [128, 0, 0, 1], + 'mediumaquamarine': [102, 205, 170, 1], + 'mediumblue': [0, 0, 205, 1], + 'mediumorchid': [186, 85, 211, 1], + 'mediumpurple': [147, 112, 219, 1], + 'mediumseagreen': [60, 179, 113, 1], + 'mediumslateblue': [123, 104, 238, 1], + 'mediumspringgreen': [0, 250, 154, 1], + 'mediumturquoise': [72, 209, 204, 1], + 'mediumvioletred': [199, 21, 133, 1], + 'midnightblue': [25, 25, 112, 1], + 'mintcream': [245, 255, 250, 1], + 'mistyrose': [255, 228, 225, 1], + 'moccasin': [255, 228, 181, 1], + 'navajowhite': [255, 222, 173, 1], + 'navy': [0, 0, 128, 1], + 'oldlace': [253, 245, 230, 1], + 'olive': [128, 128, 0, 1], + 'olivedrab': [107, 142, 35, 1], + 'orange': [255, 165, 0, 1], + 'orangered': [255, 69, 0, 1], + 'orchid': [218, 112, 214, 1], + 'palegoldenrod': [238, 232, 170, 1], + 'palegreen': [152, 251, 152, 1], + 'paleturquoise': [175, 238, 238, 1], + 'palevioletred': [219, 112, 147, 1], + 'papayawhip': [255, 239, 213, 1], + 'peachpuff': [255, 218, 185, 1], + 'peru': [205, 133, 63, 1], + 'pink': [255, 192, 203, 1], + 'plum': [221, 160, 221, 1], + 'powderblue': [176, 224, 230, 1], + 'purple': [128, 0, 128, 1], + 'red': [255, 0, 0, 1], + 'rosybrown': [188, 143, 143, 1], + 'royalblue': [65, 105, 225, 1], + 'saddlebrown': [139, 69, 19, 1], + 'salmon': [250, 128, 114, 1], + 'sandybrown': [244, 164, 96, 1], + 'seagreen': [46, 139, 87, 1], + 'seashell': [255, 245, 238, 1], + 'sienna': [160, 82, 45, 1], + 'silver': [192, 192, 192, 1], + 'skyblue': [135, 206, 235, 1], + 'slateblue': [106, 90, 205, 1], + 'slategray': [112, 128, 144, 1], + 'slategrey': [112, 128, 144, 1], + 'snow': [255, 250, 250, 1], + 'springgreen': [0, 255, 127, 1], + 'steelblue': [70, 130, 180, 1], + 'tan': [210, 180, 140, 1], + 'teal': [0, 128, 128, 1], + 'thistle': [216, 191, 216, 1], + 'tomato': [255, 99, 71, 1], + 'turquoise': [64, 224, 208, 1], + 'violet': [238, 130, 238, 1], + 'wheat': [245, 222, 179, 1], + 'white': [255, 255, 255, 1], + 'whitesmoke': [245, 245, 245, 1], + 'yellow': [255, 255, 0, 1], + 'yellowgreen': [154, 205, 50, 1] +}; + +function clampCssByte(i) { + // Clamp to integer 0 .. 255. + i = Math.round(i); // Seems to be what Chrome does (vs truncation). + + return i < 0 ? 0 : i > 255 ? 255 : i; +} + +function clampCssAngle(i) { + // Clamp to integer 0 .. 360. + i = Math.round(i); // Seems to be what Chrome does (vs truncation). + + return i < 0 ? 0 : i > 360 ? 360 : i; +} + +function clampCssFloat(f) { + // Clamp to float 0.0 .. 1.0. + return f < 0 ? 0 : f > 1 ? 1 : f; +} + +function parseCssInt(str) { + // int or percentage. + if (str.length && str.charAt(str.length - 1) === '%') { + return clampCssByte(parseFloat(str) / 100 * 255); + } + + return clampCssByte(parseInt(str, 10)); +} + +function parseCssFloat(str) { + // float or percentage. + if (str.length && str.charAt(str.length - 1) === '%') { + return clampCssFloat(parseFloat(str) / 100); + } + + return clampCssFloat(parseFloat(str)); +} + +function cssHueToRgb(m1, m2, h) { + if (h < 0) { + h += 1; + } else if (h > 1) { + h -= 1; + } + + if (h * 6 < 1) { + return m1 + (m2 - m1) * h * 6; + } + + if (h * 2 < 1) { + return m2; + } + + if (h * 3 < 2) { + return m1 + (m2 - m1) * (2 / 3 - h) * 6; + } + + return m1; +} + +function lerpNumber(a, b, p) { + return a + (b - a) * p; +} + +function setRgba(out, r, g, b, a) { + out[0] = r; + out[1] = g; + out[2] = b; + out[3] = a; + return out; +} + +function copyRgba(out, a) { + out[0] = a[0]; + out[1] = a[1]; + out[2] = a[2]; + out[3] = a[3]; + return out; +} + +var colorCache = new LRU(20); +var lastRemovedArr = null; + +function putToCache(colorStr, rgbaArr) { + // Reuse removed array + if (lastRemovedArr) { + copyRgba(lastRemovedArr, rgbaArr); + } + + lastRemovedArr = colorCache.put(colorStr, lastRemovedArr || rgbaArr.slice()); +} +/** + * @param {string} colorStr + * @param {Array.} out + * @return {Array.} + * @memberOf module:zrender/util/color + */ + + +function parse(colorStr, rgbaArr) { + if (!colorStr) { + return; + } + + rgbaArr = rgbaArr || []; + var cached = colorCache.get(colorStr); + + if (cached) { + return copyRgba(rgbaArr, cached); + } // colorStr may be not string + + + colorStr = colorStr + ''; // Remove all whitespace, not compliant, but should just be more accepting. + + var str = colorStr.replace(/ /g, '').toLowerCase(); // Color keywords (and transparent) lookup. + + if (str in kCSSColorTable) { + copyRgba(rgbaArr, kCSSColorTable[str]); + putToCache(colorStr, rgbaArr); + return rgbaArr; + } // #abc and #abc123 syntax. + + + if (str.charAt(0) === '#') { + if (str.length === 4) { + var iv = parseInt(str.substr(1), 16); // TODO(deanm): Stricter parsing. + + if (!(iv >= 0 && iv <= 0xfff)) { + setRgba(rgbaArr, 0, 0, 0, 1); + return; // Covers NaN. + } + + setRgba(rgbaArr, (iv & 0xf00) >> 4 | (iv & 0xf00) >> 8, iv & 0xf0 | (iv & 0xf0) >> 4, iv & 0xf | (iv & 0xf) << 4, 1); + putToCache(colorStr, rgbaArr); + return rgbaArr; + } else if (str.length === 7) { + var iv = parseInt(str.substr(1), 16); // TODO(deanm): Stricter parsing. + + if (!(iv >= 0 && iv <= 0xffffff)) { + setRgba(rgbaArr, 0, 0, 0, 1); + return; // Covers NaN. + } + + setRgba(rgbaArr, (iv & 0xff0000) >> 16, (iv & 0xff00) >> 8, iv & 0xff, 1); + putToCache(colorStr, rgbaArr); + return rgbaArr; + } + + return; + } + + var op = str.indexOf('('), + ep = str.indexOf(')'); + + if (op !== -1 && ep + 1 === str.length) { + var fname = str.substr(0, op); + var params = str.substr(op + 1, ep - (op + 1)).split(','); + var alpha = 1; // To allow case fallthrough. + + switch (fname) { + case 'rgba': + if (params.length !== 4) { + setRgba(rgbaArr, 0, 0, 0, 1); + return; + } + + alpha = parseCssFloat(params.pop()); + // jshint ignore:line + // Fall through. + + case 'rgb': + if (params.length !== 3) { + setRgba(rgbaArr, 0, 0, 0, 1); + return; + } + + setRgba(rgbaArr, parseCssInt(params[0]), parseCssInt(params[1]), parseCssInt(params[2]), alpha); + putToCache(colorStr, rgbaArr); + return rgbaArr; + + case 'hsla': + if (params.length !== 4) { + setRgba(rgbaArr, 0, 0, 0, 1); + return; + } + + params[3] = parseCssFloat(params[3]); + hsla2rgba(params, rgbaArr); + putToCache(colorStr, rgbaArr); + return rgbaArr; + + case 'hsl': + if (params.length !== 3) { + setRgba(rgbaArr, 0, 0, 0, 1); + return; + } + + hsla2rgba(params, rgbaArr); + putToCache(colorStr, rgbaArr); + return rgbaArr; + + default: + return; + } + } + + setRgba(rgbaArr, 0, 0, 0, 1); + return; +} +/** + * @param {Array.} hsla + * @param {Array.} rgba + * @return {Array.} rgba + */ + + +function hsla2rgba(hsla, rgba) { + var h = (parseFloat(hsla[0]) % 360 + 360) % 360 / 360; // 0 .. 1 + // NOTE(deanm): According to the CSS spec s/l should only be + // percentages, but we don't bother and let float or percentage. + + var s = parseCssFloat(hsla[1]); + var l = parseCssFloat(hsla[2]); + var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s; + var m1 = l * 2 - m2; + rgba = rgba || []; + setRgba(rgba, clampCssByte(cssHueToRgb(m1, m2, h + 1 / 3) * 255), clampCssByte(cssHueToRgb(m1, m2, h) * 255), clampCssByte(cssHueToRgb(m1, m2, h - 1 / 3) * 255), 1); + + if (hsla.length === 4) { + rgba[3] = hsla[3]; + } + + return rgba; +} +/** + * @param {Array.} rgba + * @return {Array.} hsla + */ + + +function rgba2hsla(rgba) { + if (!rgba) { + return; + } // RGB from 0 to 255 + + + var R = rgba[0] / 255; + var G = rgba[1] / 255; + var B = rgba[2] / 255; + var vMin = Math.min(R, G, B); // Min. value of RGB + + var vMax = Math.max(R, G, B); // Max. value of RGB + + var delta = vMax - vMin; // Delta RGB value + + var L = (vMax + vMin) / 2; + var H; + var S; // HSL results from 0 to 1 + + if (delta === 0) { + H = 0; + S = 0; + } else { + if (L < 0.5) { + S = delta / (vMax + vMin); + } else { + S = delta / (2 - vMax - vMin); + } + + var deltaR = ((vMax - R) / 6 + delta / 2) / delta; + var deltaG = ((vMax - G) / 6 + delta / 2) / delta; + var deltaB = ((vMax - B) / 6 + delta / 2) / delta; + + if (R === vMax) { + H = deltaB - deltaG; + } else if (G === vMax) { + H = 1 / 3 + deltaR - deltaB; + } else if (B === vMax) { + H = 2 / 3 + deltaG - deltaR; + } + + if (H < 0) { + H += 1; + } + + if (H > 1) { + H -= 1; + } + } + + var hsla = [H * 360, S, L]; + + if (rgba[3] != null) { + hsla.push(rgba[3]); + } + + return hsla; +} +/** + * @param {string} color + * @param {number} level + * @return {string} + * @memberOf module:zrender/util/color + */ + + +function lift(color, level) { + var colorArr = parse(color); + + if (colorArr) { + for (var i = 0; i < 3; i++) { + if (level < 0) { + colorArr[i] = colorArr[i] * (1 - level) | 0; + } else { + colorArr[i] = (255 - colorArr[i]) * level + colorArr[i] | 0; + } + } + + return stringify(colorArr, colorArr.length === 4 ? 'rgba' : 'rgb'); + } +} +/** + * @param {string} color + * @return {string} + * @memberOf module:zrender/util/color + */ + + +function toHex(color) { + var colorArr = parse(color); + + if (colorArr) { + return ((1 << 24) + (colorArr[0] << 16) + (colorArr[1] << 8) + +colorArr[2]).toString(16).slice(1); + } +} +/** + * Map value to color. Faster than lerp methods because color is represented by rgba array. + * @param {number} normalizedValue A float between 0 and 1. + * @param {Array.>} colors List of rgba color array + * @param {Array.} [out] Mapped gba color array + * @return {Array.} will be null/undefined if input illegal. + */ + + +function fastLerp(normalizedValue, colors, out) { + if (!(colors && colors.length) || !(normalizedValue >= 0 && normalizedValue <= 1)) { + return; + } + + out = out || []; + var value = normalizedValue * (colors.length - 1); + var leftIndex = Math.floor(value); + var rightIndex = Math.ceil(value); + var leftColor = colors[leftIndex]; + var rightColor = colors[rightIndex]; + var dv = value - leftIndex; + out[0] = clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv)); + out[1] = clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv)); + out[2] = clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv)); + out[3] = clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv)); + return out; +} +/** + * @deprecated + */ + + +var fastMapToColor = fastLerp; +/** + * @param {number} normalizedValue A float between 0 and 1. + * @param {Array.} colors Color list. + * @param {boolean=} fullOutput Default false. + * @return {(string|Object)} Result color. If fullOutput, + * return {color: ..., leftIndex: ..., rightIndex: ..., value: ...}, + * @memberOf module:zrender/util/color + */ + +function lerp(normalizedValue, colors, fullOutput) { + if (!(colors && colors.length) || !(normalizedValue >= 0 && normalizedValue <= 1)) { + return; + } + + var value = normalizedValue * (colors.length - 1); + var leftIndex = Math.floor(value); + var rightIndex = Math.ceil(value); + var leftColor = parse(colors[leftIndex]); + var rightColor = parse(colors[rightIndex]); + var dv = value - leftIndex; + var color = stringify([clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv)), clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv)), clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv)), clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv))], 'rgba'); + return fullOutput ? { + color: color, + leftIndex: leftIndex, + rightIndex: rightIndex, + value: value + } : color; +} +/** + * @deprecated + */ + + +var mapToColor = lerp; +/** + * @param {string} color + * @param {number=} h 0 ~ 360, ignore when null. + * @param {number=} s 0 ~ 1, ignore when null. + * @param {number=} l 0 ~ 1, ignore when null. + * @return {string} Color string in rgba format. + * @memberOf module:zrender/util/color + */ + +function modifyHSL(color, h, s, l) { + color = parse(color); + + if (color) { + color = rgba2hsla(color); + h != null && (color[0] = clampCssAngle(h)); + s != null && (color[1] = parseCssFloat(s)); + l != null && (color[2] = parseCssFloat(l)); + return stringify(hsla2rgba(color), 'rgba'); + } +} +/** + * @param {string} color + * @param {number=} alpha 0 ~ 1 + * @return {string} Color string in rgba format. + * @memberOf module:zrender/util/color + */ + + +function modifyAlpha(color, alpha) { + color = parse(color); + + if (color && alpha != null) { + color[3] = clampCssFloat(alpha); + return stringify(color, 'rgba'); + } +} +/** + * @param {Array.} arrColor like [12,33,44,0.4] + * @param {string} type 'rgba', 'hsva', ... + * @return {string} Result color. (If input illegal, return undefined). + */ + + +function stringify(arrColor, type) { + if (!arrColor || !arrColor.length) { + return; + } + + var colorStr = arrColor[0] + ',' + arrColor[1] + ',' + arrColor[2]; + + if (type === 'rgba' || type === 'hsva' || type === 'hsla') { + colorStr += ',' + arrColor[3]; + } + + return type + '(' + colorStr + ')'; +} + +exports.parse = parse; +exports.lift = lift; +exports.toHex = toHex; +exports.fastLerp = fastLerp; +exports.fastMapToColor = fastMapToColor; +exports.lerp = lerp; +exports.mapToColor = mapToColor; +exports.modifyHSL = modifyHSL; +exports.modifyAlpha = modifyAlpha; +exports.stringify = stringify; + +/***/ }), +/* 19 */ +/***/ (function(module, exports) { + +var dpr = 1; // If in browser environment + +if (typeof window !== 'undefined') { + dpr = Math.max(window.devicePixelRatio || 1, 1); +} +/** + * config默认配置项 + * @exports zrender/config + * @author Kener (@Kener-林峰, kener.linfeng@gmail.com) + */ + +/** + * debug日志选项:catchBrushException为true下有效 + * 0 : 不生成debug数据,发布用 + * 1 : 异常抛出,调试用 + * 2 : 控制台输出,调试用 + */ + + +var debugMode = 0; // retina 屏幕优化 + +var devicePixelRatio = dpr; +exports.debugMode = debugMode; +exports.devicePixelRatio = devicePixelRatio; + +/***/ }), +/* 20 */ +/***/ (function(module, exports, __webpack_require__) { + +var _util = __webpack_require__(0); + +var retrieve2 = _util.retrieve2; +var retrieve3 = _util.retrieve3; +var each = _util.each; +var normalizeCssArray = _util.normalizeCssArray; +var isString = _util.isString; +var isObject = _util.isObject; + +var textContain = __webpack_require__(5); + +var roundRectHelper = __webpack_require__(21); + +var imageHelper = __webpack_require__(10); + +// TODO: Have not support 'start', 'end' yet. +var VALID_TEXT_ALIGN = { + left: 1, + right: 1, + center: 1 +}; +var VALID_TEXT_VERTICAL_ALIGN = { + top: 1, + bottom: 1, + middle: 1 +}; +/** + * @param {module:zrender/graphic/Style} style + * @return {module:zrender/graphic/Style} The input style. + */ + +function normalizeTextStyle(style) { + normalizeStyle(style); + each(style.rich, normalizeStyle); + return style; +} + +function normalizeStyle(style) { + if (style) { + style.font = textContain.makeFont(style); + var textAlign = style.textAlign; + textAlign === 'middle' && (textAlign = 'center'); + style.textAlign = textAlign == null || VALID_TEXT_ALIGN[textAlign] ? textAlign : 'left'; // Compatible with textBaseline. + + var textVerticalAlign = style.textVerticalAlign || style.textBaseline; + textVerticalAlign === 'center' && (textVerticalAlign = 'middle'); + style.textVerticalAlign = textVerticalAlign == null || VALID_TEXT_VERTICAL_ALIGN[textVerticalAlign] ? textVerticalAlign : 'top'; + var textPadding = style.textPadding; + + if (textPadding) { + style.textPadding = normalizeCssArray(style.textPadding); + } + } +} +/** + * @param {CanvasRenderingContext2D} ctx + * @param {string} text + * @param {module:zrender/graphic/Style} style + * @param {Object|boolean} [rect] {x, y, width, height} + * If set false, rect text is not used. + */ + + +function renderText(hostEl, ctx, text, style, rect) { + style.rich ? renderRichText(hostEl, ctx, text, style, rect) : renderPlainText(hostEl, ctx, text, style, rect); +} + +function renderPlainText(hostEl, ctx, text, style, rect) { + var font = setCtx(ctx, 'font', style.font || textContain.DEFAULT_FONT); + var textPadding = style.textPadding; + var contentBlock = hostEl.__textCotentBlock; + + if (!contentBlock || hostEl.__dirty) { + contentBlock = hostEl.__textCotentBlock = textContain.parsePlainText(text, font, textPadding, style.truncate); + } + + var outerHeight = contentBlock.outerHeight; + var textLines = contentBlock.lines; + var lineHeight = contentBlock.lineHeight; + var boxPos = getBoxPosition(outerHeight, style, rect); + var baseX = boxPos.baseX; + var baseY = boxPos.baseY; + var textAlign = boxPos.textAlign; + var textVerticalAlign = boxPos.textVerticalAlign; // Origin of textRotation should be the base point of text drawing. + + applyTextRotation(ctx, style, rect, baseX, baseY); + var boxY = textContain.adjustTextY(baseY, outerHeight, textVerticalAlign); + var textX = baseX; + var textY = boxY; + var needDrawBg = needDrawBackground(style); + + if (needDrawBg || textPadding) { + // Consider performance, do not call getTextWidth util necessary. + var textWidth = textContain.getWidth(text, font); + var outerWidth = textWidth; + textPadding && (outerWidth += textPadding[1] + textPadding[3]); + var boxX = textContain.adjustTextX(baseX, outerWidth, textAlign); + needDrawBg && drawBackground(hostEl, ctx, style, boxX, boxY, outerWidth, outerHeight); + + if (textPadding) { + textX = getTextXForPadding(baseX, textAlign, textPadding); + textY += textPadding[0]; + } + } + + setCtx(ctx, 'textAlign', textAlign || 'left'); // Force baseline to be "middle". Otherwise, if using "top", the + // text will offset downward a little bit in font "Microsoft YaHei". + + setCtx(ctx, 'textBaseline', 'middle'); // Always set shadowBlur and shadowOffset to avoid leak from displayable. + + setCtx(ctx, 'shadowBlur', style.textShadowBlur || 0); + setCtx(ctx, 'shadowColor', style.textShadowColor || 'transparent'); + setCtx(ctx, 'shadowOffsetX', style.textShadowOffsetX || 0); + setCtx(ctx, 'shadowOffsetY', style.textShadowOffsetY || 0); // `textBaseline` is set as 'middle'. + + textY += lineHeight / 2; + var textStrokeWidth = style.textStrokeWidth; + var textStroke = getStroke(style.textStroke, textStrokeWidth); + var textFill = getFill(style.textFill); + + if (textStroke) { + setCtx(ctx, 'lineWidth', textStrokeWidth); + setCtx(ctx, 'strokeStyle', textStroke); + } + + if (textFill) { + setCtx(ctx, 'fillStyle', textFill); + } + + for (var i = 0; i < textLines.length; i++) { + // Fill after stroke so the outline will not cover the main part. + textStroke && ctx.strokeText(textLines[i], textX, textY); + textFill && ctx.fillText(textLines[i], textX, textY); + textY += lineHeight; + } +} + +function renderRichText(hostEl, ctx, text, style, rect) { + var contentBlock = hostEl.__textCotentBlock; + + if (!contentBlock || hostEl.__dirty) { + contentBlock = hostEl.__textCotentBlock = textContain.parseRichText(text, style); + } + + drawRichText(hostEl, ctx, contentBlock, style, rect); +} + +function drawRichText(hostEl, ctx, contentBlock, style, rect) { + var contentWidth = contentBlock.width; + var outerWidth = contentBlock.outerWidth; + var outerHeight = contentBlock.outerHeight; + var textPadding = style.textPadding; + var boxPos = getBoxPosition(outerHeight, style, rect); + var baseX = boxPos.baseX; + var baseY = boxPos.baseY; + var textAlign = boxPos.textAlign; + var textVerticalAlign = boxPos.textVerticalAlign; // Origin of textRotation should be the base point of text drawing. + + applyTextRotation(ctx, style, rect, baseX, baseY); + var boxX = textContain.adjustTextX(baseX, outerWidth, textAlign); + var boxY = textContain.adjustTextY(baseY, outerHeight, textVerticalAlign); + var xLeft = boxX; + var lineTop = boxY; + + if (textPadding) { + xLeft += textPadding[3]; + lineTop += textPadding[0]; + } + + var xRight = xLeft + contentWidth; + needDrawBackground(style) && drawBackground(hostEl, ctx, style, boxX, boxY, outerWidth, outerHeight); + + for (var i = 0; i < contentBlock.lines.length; i++) { + var line = contentBlock.lines[i]; + var tokens = line.tokens; + var tokenCount = tokens.length; + var lineHeight = line.lineHeight; + var usedWidth = line.width; + var leftIndex = 0; + var lineXLeft = xLeft; + var lineXRight = xRight; + var rightIndex = tokenCount - 1; + var token; + + while (leftIndex < tokenCount && (token = tokens[leftIndex], !token.textAlign || token.textAlign === 'left')) { + placeToken(hostEl, ctx, token, style, lineHeight, lineTop, lineXLeft, 'left'); + usedWidth -= token.width; + lineXLeft += token.width; + leftIndex++; + } + + while (rightIndex >= 0 && (token = tokens[rightIndex], token.textAlign === 'right')) { + placeToken(hostEl, ctx, token, style, lineHeight, lineTop, lineXRight, 'right'); + usedWidth -= token.width; + lineXRight -= token.width; + rightIndex--; + } // The other tokens are placed as textAlign 'center' if there is enough space. + + + lineXLeft += (contentWidth - (lineXLeft - xLeft) - (xRight - lineXRight) - usedWidth) / 2; + + while (leftIndex <= rightIndex) { + token = tokens[leftIndex]; // Consider width specified by user, use 'center' rather than 'left'. + + placeToken(hostEl, ctx, token, style, lineHeight, lineTop, lineXLeft + token.width / 2, 'center'); + lineXLeft += token.width; + leftIndex++; + } + + lineTop += lineHeight; + } +} + +function applyTextRotation(ctx, style, rect, x, y) { + // textRotation only apply in RectText. + if (rect && style.textRotation) { + var origin = style.textOrigin; + + if (origin === 'center') { + x = rect.width / 2 + rect.x; + y = rect.height / 2 + rect.y; + } else if (origin) { + x = origin[0] + rect.x; + y = origin[1] + rect.y; + } + + ctx.translate(x, y); // Positive: anticlockwise + + ctx.rotate(-style.textRotation); + ctx.translate(-x, -y); + } +} + +function placeToken(hostEl, ctx, token, style, lineHeight, lineTop, x, textAlign) { + var tokenStyle = style.rich[token.styleName] || {}; // 'ctx.textBaseline' is always set as 'middle', for sake of + // the bias of "Microsoft YaHei". + + var textVerticalAlign = token.textVerticalAlign; + var y = lineTop + lineHeight / 2; + + if (textVerticalAlign === 'top') { + y = lineTop + token.height / 2; + } else if (textVerticalAlign === 'bottom') { + y = lineTop + lineHeight - token.height / 2; + } + + !token.isLineHolder && needDrawBackground(tokenStyle) && drawBackground(hostEl, ctx, tokenStyle, textAlign === 'right' ? x - token.width : textAlign === 'center' ? x - token.width / 2 : x, y - token.height / 2, token.width, token.height); + var textPadding = token.textPadding; + + if (textPadding) { + x = getTextXForPadding(x, textAlign, textPadding); + y -= token.height / 2 - textPadding[2] - token.textHeight / 2; + } + + setCtx(ctx, 'shadowBlur', retrieve3(tokenStyle.textShadowBlur, style.textShadowBlur, 0)); + setCtx(ctx, 'shadowColor', tokenStyle.textShadowColor || style.textShadowColor || 'transparent'); + setCtx(ctx, 'shadowOffsetX', retrieve3(tokenStyle.textShadowOffsetX, style.textShadowOffsetX, 0)); + setCtx(ctx, 'shadowOffsetY', retrieve3(tokenStyle.textShadowOffsetY, style.textShadowOffsetY, 0)); + setCtx(ctx, 'textAlign', textAlign); // Force baseline to be "middle". Otherwise, if using "top", the + // text will offset downward a little bit in font "Microsoft YaHei". + + setCtx(ctx, 'textBaseline', 'middle'); + setCtx(ctx, 'font', token.font || textContain.DEFAULT_FONT); + var textStroke = getStroke(tokenStyle.textStroke || style.textStroke, textStrokeWidth); + var textFill = getFill(tokenStyle.textFill || style.textFill); + var textStrokeWidth = retrieve2(tokenStyle.textStrokeWidth, style.textStrokeWidth); // Fill after stroke so the outline will not cover the main part. + + if (textStroke) { + setCtx(ctx, 'lineWidth', textStrokeWidth); + setCtx(ctx, 'strokeStyle', textStroke); + ctx.strokeText(token.text, x, y); + } + + if (textFill) { + setCtx(ctx, 'fillStyle', textFill); + ctx.fillText(token.text, x, y); + } +} + +function needDrawBackground(style) { + return style.textBackgroundColor || style.textBorderWidth && style.textBorderColor; +} // style: {textBackgroundColor, textBorderWidth, textBorderColor, textBorderRadius} +// shape: {x, y, width, height} + + +function drawBackground(hostEl, ctx, style, x, y, width, height) { + var textBackgroundColor = style.textBackgroundColor; + var textBorderWidth = style.textBorderWidth; + var textBorderColor = style.textBorderColor; + var isPlainBg = isString(textBackgroundColor); + setCtx(ctx, 'shadowBlur', style.textBoxShadowBlur || 0); + setCtx(ctx, 'shadowColor', style.textBoxShadowColor || 'transparent'); + setCtx(ctx, 'shadowOffsetX', style.textBoxShadowOffsetX || 0); + setCtx(ctx, 'shadowOffsetY', style.textBoxShadowOffsetY || 0); + + if (isPlainBg || textBorderWidth && textBorderColor) { + ctx.beginPath(); + var textBorderRadius = style.textBorderRadius; + + if (!textBorderRadius) { + ctx.rect(x, y, width, height); + } else { + roundRectHelper.buildPath(ctx, { + x: x, + y: y, + width: width, + height: height, + r: textBorderRadius + }); + } + + ctx.closePath(); + } + + if (isPlainBg) { + setCtx(ctx, 'fillStyle', textBackgroundColor); + ctx.fill(); + } else if (isObject(textBackgroundColor)) { + var image = textBackgroundColor.image; + image = imageHelper.createOrUpdateImage(image, null, hostEl, onBgImageLoaded, textBackgroundColor); + + if (image && imageHelper.isImageReady(image)) { + ctx.drawImage(image, x, y, width, height); + } + } + + if (textBorderWidth && textBorderColor) { + setCtx(ctx, 'lineWidth', textBorderWidth); + setCtx(ctx, 'strokeStyle', textBorderColor); + ctx.stroke(); + } +} + +function onBgImageLoaded(image, textBackgroundColor) { + // Replace image, so that `contain/text.js#parseRichText` + // will get correct result in next tick. + textBackgroundColor.image = image; +} + +function getBoxPosition(blockHeiht, style, rect) { + var baseX = style.x || 0; + var baseY = style.y || 0; + var textAlign = style.textAlign; + var textVerticalAlign = style.textVerticalAlign; // Text position represented by coord + + if (rect) { + var textPosition = style.textPosition; + + if (textPosition instanceof Array) { + // Percent + baseX = rect.x + parsePercent(textPosition[0], rect.width); + baseY = rect.y + parsePercent(textPosition[1], rect.height); + } else { + var res = textContain.adjustTextPositionOnRect(textPosition, rect, style.textDistance); + baseX = res.x; + baseY = res.y; // Default align and baseline when has textPosition + + textAlign = textAlign || res.textAlign; + textVerticalAlign = textVerticalAlign || res.textVerticalAlign; + } // textOffset is only support in RectText, otherwise + // we have to adjust boundingRect for textOffset. + + + var textOffset = style.textOffset; + + if (textOffset) { + baseX += textOffset[0]; + baseY += textOffset[1]; + } + } + + return { + baseX: baseX, + baseY: baseY, + textAlign: textAlign, + textVerticalAlign: textVerticalAlign + }; +} + +function setCtx(ctx, prop, value) { + // FIXME ??? performance try + // if (ctx.__currentValues[prop] !== value) { + // ctx[prop] = ctx.__currentValues[prop] = value; + ctx[prop] = value; // } + + return ctx[prop]; +} +/** + * @param {string} [stroke] If specified, do not check style.textStroke. + * @param {string} [lineWidth] If specified, do not check style.textStroke. + * @param {number} style + */ + + +function getStroke(stroke, lineWidth) { + return stroke == null || lineWidth <= 0 || stroke === 'transparent' || stroke === 'none' ? null // TODO pattern and gradient? + : stroke.image || stroke.colorStops ? '#000' : stroke; +} + +function getFill(fill) { + return fill == null || fill === 'none' ? null // TODO pattern and gradient? + : fill.image || fill.colorStops ? '#000' : fill; +} + +function parsePercent(value, maxValue) { + if (typeof value === 'string') { + if (value.lastIndexOf('%') >= 0) { + return parseFloat(value) / 100 * maxValue; + } + + return parseFloat(value); + } + + return value; +} + +function getTextXForPadding(x, textAlign, textPadding) { + return textAlign === 'right' ? x - textPadding[1] : textAlign === 'center' ? x + textPadding[3] / 2 - textPadding[1] / 2 : x + textPadding[3]; +} +/** + * @param {string} text + * @param {module:zrender/Style} style + * @return {boolean} + */ + + +function needDrawText(text, style) { + return text != null && (text || style.textBackgroundColor || style.textBorderWidth && style.textBorderColor || style.textPadding); +} + +exports.normalizeTextStyle = normalizeTextStyle; +exports.renderText = renderText; +exports.getStroke = getStroke; +exports.getFill = getFill; +exports.needDrawText = needDrawText; + +/***/ }), +/* 21 */ +/***/ (function(module, exports) { + +function buildPath(ctx, shape) { + var x = shape.x; + var y = shape.y; + var width = shape.width; + var height = shape.height; + var r = shape.r; + var r1; + var r2; + var r3; + var r4; // Convert width and height to positive for better borderRadius + + if (width < 0) { + x = x + width; + width = -width; + } + + if (height < 0) { + y = y + height; + height = -height; + } + + if (typeof r === 'number') { + r1 = r2 = r3 = r4 = r; + } else if (r instanceof Array) { + if (r.length === 1) { + r1 = r2 = r3 = r4 = r[0]; + } else if (r.length === 2) { + r1 = r3 = r[0]; + r2 = r4 = r[1]; + } else if (r.length === 3) { + r1 = r[0]; + r2 = r4 = r[1]; + r3 = r[2]; + } else { + r1 = r[0]; + r2 = r[1]; + r3 = r[2]; + r4 = r[3]; + } + } else { + r1 = r2 = r3 = r4 = 0; + } + + var total; + + if (r1 + r2 > width) { + total = r1 + r2; + r1 *= width / total; + r2 *= width / total; + } + + if (r3 + r4 > width) { + total = r3 + r4; + r3 *= width / total; + r4 *= width / total; + } + + if (r2 + r3 > height) { + total = r2 + r3; + r2 *= height / total; + r3 *= height / total; + } + + if (r1 + r4 > height) { + total = r1 + r4; + r1 *= height / total; + r4 *= height / total; + } + + ctx.moveTo(x + r1, y); + ctx.lineTo(x + width - r2, y); + r2 !== 0 && ctx.quadraticCurveTo(x + width, y, x + width, y + r2); + ctx.lineTo(x + width, y + height - r3); + r3 !== 0 && ctx.quadraticCurveTo(x + width, y + height, x + width - r3, y + height); + ctx.lineTo(x + r4, y + height); + r4 !== 0 && ctx.quadraticCurveTo(x, y + height, x, y + height - r4); + ctx.lineTo(x, y + r1); + r1 !== 0 && ctx.quadraticCurveTo(x, y, x + r1, y); +} + +exports.buildPath = buildPath; + +/***/ }), +/* 22 */ +/***/ (function(module, exports) { + +var PI2 = Math.PI * 2; + +function normalizeRadian(angle) { + angle %= PI2; + + if (angle < 0) { + angle += PI2; + } + + return angle; +} + +exports.normalizeRadian = normalizeRadian; + +/***/ }), +/* 23 */ +/***/ (function(module, exports, __webpack_require__) { + +var smoothSpline = __webpack_require__(66); + +var smoothBezier = __webpack_require__(67); + +function buildPath(ctx, shape, closePath) { + var points = shape.points; + var smooth = shape.smooth; + + if (points && points.length >= 2) { + if (smooth && smooth !== 'spline') { + var controlPoints = smoothBezier(points, smooth, closePath, shape.smoothConstraint); + ctx.moveTo(points[0][0], points[0][1]); + var len = points.length; + + for (var i = 0; i < (closePath ? len : len - 1); i++) { + var cp1 = controlPoints[i * 2]; + var cp2 = controlPoints[i * 2 + 1]; + var p = points[(i + 1) % len]; + ctx.bezierCurveTo(cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]); + } + } else { + if (smooth === 'spline') { + points = smoothSpline(points, closePath); + } + + ctx.moveTo(points[0][0], points[0][1]); + + for (var i = 1, l = points.length; i < l; i++) { + ctx.lineTo(points[i][0], points[i][1]); + } + } + + closePath && ctx.closePath(); + } +} + +exports.buildPath = buildPath; + +/***/ }), +/* 24 */ +/***/ (function(module, exports) { + +/** + * @param {Array.} colorStops + */ +var Gradient = function (colorStops) { + this.colorStops = colorStops || []; +}; + +Gradient.prototype = { + constructor: Gradient, + addColorStop: function (offset, color) { + this.colorStops.push({ + offset: offset, + color: color + }); + } +}; +var _default = Gradient; +module.exports = _default; + +/***/ }), +/* 25 */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__(26); + +/***/ }), +/* 26 */ +/***/ (function(module, exports, __webpack_require__) { + +var echarts = __webpack_require__(7); +var layoutUtil = __webpack_require__(27); + +__webpack_require__(28); +__webpack_require__(77); + +var wordCloudLayoutHelper = __webpack_require__(78); + +if (!wordCloudLayoutHelper.isSupported) { + throw new Error('Sorry your browser not support wordCloud'); +} + +// https://github.com/timdream/wordcloud2.js/blob/c236bee60436e048949f9becc4f0f67bd832dc5c/index.js#L233 +function updateCanvasMask(maskCanvas) { + var ctx = maskCanvas.getContext('2d'); + var imageData = ctx.getImageData( + 0, 0, maskCanvas.width, maskCanvas.height); + var newImageData = ctx.createImageData(imageData); + + var toneSum = 0; + var toneCnt = 0; + for (var i = 0; i < imageData.data.length; i += 4) { + var alpha = imageData.data[i + 3]; + if (alpha > 128) { + var tone = imageData.data[i] + + imageData.data[i + 1] + + imageData.data[i + 2]; + toneSum += tone; + ++toneCnt; + } + } + var threshold = toneSum / toneCnt; + + for (var i = 0; i < imageData.data.length; i += 4) { + var tone = imageData.data[i] + + imageData.data[i + 1] + + imageData.data[i + 2]; + var alpha = imageData.data[i + 3]; + + if (alpha < 128 || tone > threshold) { + // Area not to draw + newImageData.data[i] = 0; + newImageData.data[i + 1] = 0; + newImageData.data[i + 2] = 0; + newImageData.data[i + 3] = 0; + } + else { + // Area to draw + // The color must be same with backgroundColor + newImageData.data[i] = 255; + newImageData.data[i + 1] = 255; + newImageData.data[i + 2] = 255; + newImageData.data[i + 3] = 255; + } + } + + ctx.putImageData(newImageData, 0, 0); +} + +echarts.registerLayout(function (ecModel, api) { + ecModel.eachSeriesByType('wordCloud', function (seriesModel) { + var gridRect = layoutUtil.getLayoutRect( + seriesModel.getBoxLayoutParams(), { + width: api.getWidth(), + height: api.getHeight() + } + ); + var data = seriesModel.getData(); + + var canvas = document.createElement('canvas'); + canvas.width = gridRect.width; + canvas.height = gridRect.height; + + var ctx = canvas.getContext('2d'); + var maskImage = seriesModel.get('maskImage'); + if (maskImage) { + try { + ctx.drawImage(maskImage, 0, 0, canvas.width, canvas.height); + updateCanvasMask(canvas); + } + catch (e) { + console.error('Invalid mask image'); + console.error(e.toString()); + } + } + + var sizeRange = seriesModel.get('sizeRange'); + var rotationRange = seriesModel.get('rotationRange'); + var valueExtent = data.getDataExtent('value'); + + var DEGREE_TO_RAD = Math.PI / 180; + var gridSize = seriesModel.get('gridSize'); + wordCloudLayoutHelper(canvas, { + list: data.mapArray('value', function (value, idx) { + var itemModel = data.getItemModel(idx); + return [ + data.getName(idx), + itemModel.get('textStyle.normal.textSize', true) + || echarts.number.linearMap(value, valueExtent, sizeRange), + idx + ]; + }).sort(function (a, b) { + // Sort from large to small in case there is no more room for more words + return b[1] - a[1]; + }), + fontFamily: seriesModel.get('textStyle.normal.fontFamily') + || seriesModel.get('textStyle.emphasis.fontFamily') + || ecModel.get('textStyle.fontFamily'), + fontWeight: seriesModel.get('textStyle.normal.fontWeight') + || seriesModel.get('textStyle.emphasis.fontWeight') + || ecModel.get('textStyle.fontWeight'), + gridSize: gridSize, + + ellipticity: gridRect.height / gridRect.width, + + minRotation: rotationRange[0] * DEGREE_TO_RAD, + maxRotation: rotationRange[1] * DEGREE_TO_RAD, + + clearCanvas: !maskImage, + + rotateRatio: 1, + + rotationStep: seriesModel.get('rotationStep') * DEGREE_TO_RAD, + + drawOutOfBound: seriesModel.get('drawOutOfBound'), + + shuffle: false, + + shape: seriesModel.get('shape') + }); + + function onWordCloudDrawn(e) { + var item = e.detail.item; + if (e.detail.drawn && seriesModel.layoutInstance.ondraw) { + e.detail.drawn.gx += gridRect.x / gridSize; + e.detail.drawn.gy += gridRect.y / gridSize; + seriesModel.layoutInstance.ondraw( + item[0], item[1], item[2], e.detail.drawn + ); + } + } + + canvas.addEventListener('wordclouddrawn', onWordCloudDrawn); + + if (seriesModel.layoutInstance) { + // Dispose previous + seriesModel.layoutInstance.dispose(); + } + + seriesModel.layoutInstance = { + ondraw: null, + + dispose: function () { + canvas.removeEventListener('wordclouddrawn', onWordCloudDrawn); + // Abort + canvas.addEventListener('wordclouddrawn', function (e) { + // Prevent default to cancle the event and stop the loop + e.preventDefault(); + }); + } + }; + }); +}); + +echarts.registerPreprocessor(function (option) { + var series = (option || {}).series; + !echarts.util.isArray(series) && (series = series ? [series] : []); + + var compats = ['shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY']; + + echarts.util.each(series, function (seriesItem) { + if (seriesItem && seriesItem.type === 'wordCloud') { + var textStyle = seriesItem.textStyle || {}; + + compatTextStyle(textStyle.normal); + compatTextStyle(textStyle.emphasis); + } + }); + + function compatTextStyle(textStyle) { + textStyle && echarts.util.each(compats, function (key) { + if (textStyle.hasOwnProperty(key)) { + textStyle['text' + echarts.format.capitalFirst(key)] = textStyle[key]; + } + }); + } +}); + + +/***/ }), +/* 27 */ +/***/ (function(module, exports, __webpack_require__) { + +var zrUtil = __webpack_require__(0); + +var BoundingRect = __webpack_require__(3); + +var _number = __webpack_require__(9); + +var parsePercent = _number.parsePercent; + +var formatUtil = __webpack_require__(13); + +// Layout helpers for each component positioning +var each = zrUtil.each; +/** + * @public + */ + +var LOCATION_PARAMS = ['left', 'right', 'top', 'bottom', 'width', 'height']; +/** + * @public + */ + +var HV_NAMES = [['width', 'left', 'right'], ['height', 'top', 'bottom']]; + +function boxLayout(orient, group, gap, maxWidth, maxHeight) { + var x = 0; + var y = 0; + + if (maxWidth == null) { + maxWidth = Infinity; + } + + if (maxHeight == null) { + maxHeight = Infinity; + } + + var currentLineMaxSize = 0; + group.eachChild(function (child, idx) { + var position = child.position; + var rect = child.getBoundingRect(); + var nextChild = group.childAt(idx + 1); + var nextChildRect = nextChild && nextChild.getBoundingRect(); + var nextX; + var nextY; + + if (orient === 'horizontal') { + var moveX = rect.width + (nextChildRect ? -nextChildRect.x + rect.x : 0); + nextX = x + moveX; // Wrap when width exceeds maxWidth or meet a `newline` group + // FIXME compare before adding gap? + + if (nextX > maxWidth || child.newline) { + x = 0; + nextX = moveX; + y += currentLineMaxSize + gap; + currentLineMaxSize = rect.height; + } else { + // FIXME: consider rect.y is not `0`? + currentLineMaxSize = Math.max(currentLineMaxSize, rect.height); + } + } else { + var moveY = rect.height + (nextChildRect ? -nextChildRect.y + rect.y : 0); + nextY = y + moveY; // Wrap when width exceeds maxHeight or meet a `newline` group + + if (nextY > maxHeight || child.newline) { + x += currentLineMaxSize + gap; + y = 0; + nextY = moveY; + currentLineMaxSize = rect.width; + } else { + currentLineMaxSize = Math.max(currentLineMaxSize, rect.width); + } + } + + if (child.newline) { + return; + } + + position[0] = x; + position[1] = y; + orient === 'horizontal' ? x = nextX + gap : y = nextY + gap; + }); +} +/** + * VBox or HBox layouting + * @param {string} orient + * @param {module:zrender/container/Group} group + * @param {number} gap + * @param {number} [width=Infinity] + * @param {number} [height=Infinity] + */ + + +var box = boxLayout; +/** + * VBox layouting + * @param {module:zrender/container/Group} group + * @param {number} gap + * @param {number} [width=Infinity] + * @param {number} [height=Infinity] + */ + +var vbox = zrUtil.curry(boxLayout, 'vertical'); +/** + * HBox layouting + * @param {module:zrender/container/Group} group + * @param {number} gap + * @param {number} [width=Infinity] + * @param {number} [height=Infinity] + */ + +var hbox = zrUtil.curry(boxLayout, 'horizontal'); +/** + * If x or x2 is not specified or 'center' 'left' 'right', + * the width would be as long as possible. + * If y or y2 is not specified or 'middle' 'top' 'bottom', + * the height would be as long as possible. + * + * @param {Object} positionInfo + * @param {number|string} [positionInfo.x] + * @param {number|string} [positionInfo.y] + * @param {number|string} [positionInfo.x2] + * @param {number|string} [positionInfo.y2] + * @param {Object} containerRect {width, height} + * @param {string|number} margin + * @return {Object} {width, height} + */ + +function getAvailableSize(positionInfo, containerRect, margin) { + var containerWidth = containerRect.width; + var containerHeight = containerRect.height; + var x = parsePercent(positionInfo.x, containerWidth); + var y = parsePercent(positionInfo.y, containerHeight); + var x2 = parsePercent(positionInfo.x2, containerWidth); + var y2 = parsePercent(positionInfo.y2, containerHeight); + (isNaN(x) || isNaN(parseFloat(positionInfo.x))) && (x = 0); + (isNaN(x2) || isNaN(parseFloat(positionInfo.x2))) && (x2 = containerWidth); + (isNaN(y) || isNaN(parseFloat(positionInfo.y))) && (y = 0); + (isNaN(y2) || isNaN(parseFloat(positionInfo.y2))) && (y2 = containerHeight); + margin = formatUtil.normalizeCssArray(margin || 0); + return { + width: Math.max(x2 - x - margin[1] - margin[3], 0), + height: Math.max(y2 - y - margin[0] - margin[2], 0) + }; +} +/** + * Parse position info. + * + * @param {Object} positionInfo + * @param {number|string} [positionInfo.left] + * @param {number|string} [positionInfo.top] + * @param {number|string} [positionInfo.right] + * @param {number|string} [positionInfo.bottom] + * @param {number|string} [positionInfo.width] + * @param {number|string} [positionInfo.height] + * @param {number|string} [positionInfo.aspect] Aspect is width / height + * @param {Object} containerRect + * @param {string|number} [margin] + * + * @return {module:zrender/core/BoundingRect} + */ + + +function getLayoutRect(positionInfo, containerRect, margin) { + margin = formatUtil.normalizeCssArray(margin || 0); + var containerWidth = containerRect.width; + var containerHeight = containerRect.height; + var left = parsePercent(positionInfo.left, containerWidth); + var top = parsePercent(positionInfo.top, containerHeight); + var right = parsePercent(positionInfo.right, containerWidth); + var bottom = parsePercent(positionInfo.bottom, containerHeight); + var width = parsePercent(positionInfo.width, containerWidth); + var height = parsePercent(positionInfo.height, containerHeight); + var verticalMargin = margin[2] + margin[0]; + var horizontalMargin = margin[1] + margin[3]; + var aspect = positionInfo.aspect; // If width is not specified, calculate width from left and right + + if (isNaN(width)) { + width = containerWidth - right - horizontalMargin - left; + } + + if (isNaN(height)) { + height = containerHeight - bottom - verticalMargin - top; + } + + if (aspect != null) { + // If width and height are not given + // 1. Graph should not exceeds the container + // 2. Aspect must be keeped + // 3. Graph should take the space as more as possible + // FIXME + // Margin is not considered, because there is no case that both + // using margin and aspect so far. + if (isNaN(width) && isNaN(height)) { + if (aspect > containerWidth / containerHeight) { + width = containerWidth * 0.8; + } else { + height = containerHeight * 0.8; + } + } // Calculate width or height with given aspect + + + if (isNaN(width)) { + width = aspect * height; + } + + if (isNaN(height)) { + height = width / aspect; + } + } // If left is not specified, calculate left from right and width + + + if (isNaN(left)) { + left = containerWidth - right - width - horizontalMargin; + } + + if (isNaN(top)) { + top = containerHeight - bottom - height - verticalMargin; + } // Align left and top + + + switch (positionInfo.left || positionInfo.right) { + case 'center': + left = containerWidth / 2 - width / 2 - margin[3]; + break; + + case 'right': + left = containerWidth - width - horizontalMargin; + break; + } + + switch (positionInfo.top || positionInfo.bottom) { + case 'middle': + case 'center': + top = containerHeight / 2 - height / 2 - margin[0]; + break; + + case 'bottom': + top = containerHeight - height - verticalMargin; + break; + } // If something is wrong and left, top, width, height are calculated as NaN + + + left = left || 0; + top = top || 0; + + if (isNaN(width)) { + // Width may be NaN if only one value is given except width + width = containerWidth - horizontalMargin - left - (right || 0); + } + + if (isNaN(height)) { + // Height may be NaN if only one value is given except height + height = containerHeight - verticalMargin - top - (bottom || 0); + } + + var rect = new BoundingRect(left + margin[3], top + margin[0], width, height); + rect.margin = margin; + return rect; +} +/** + * Position a zr element in viewport + * Group position is specified by either + * {left, top}, {right, bottom} + * If all properties exists, right and bottom will be igonred. + * + * Logic: + * 1. Scale (against origin point in parent coord) + * 2. Rotate (against origin point in parent coord) + * 3. Traslate (with el.position by this method) + * So this method only fixes the last step 'Traslate', which does not affect + * scaling and rotating. + * + * If be called repeatly with the same input el, the same result will be gotten. + * + * @param {module:zrender/Element} el Should have `getBoundingRect` method. + * @param {Object} positionInfo + * @param {number|string} [positionInfo.left] + * @param {number|string} [positionInfo.top] + * @param {number|string} [positionInfo.right] + * @param {number|string} [positionInfo.bottom] + * @param {number|string} [positionInfo.width] Only for opt.boundingModel: 'raw' + * @param {number|string} [positionInfo.height] Only for opt.boundingModel: 'raw' + * @param {Object} containerRect + * @param {string|number} margin + * @param {Object} [opt] + * @param {Array.} [opt.hv=[1,1]] Only horizontal or only vertical. + * @param {Array.} [opt.boundingMode='all'] + * Specify how to calculate boundingRect when locating. + * 'all': Position the boundingRect that is transformed and uioned + * both itself and its descendants. + * This mode simplies confine the elements in the bounding + * of their container (e.g., using 'right: 0'). + * 'raw': Position the boundingRect that is not transformed and only itself. + * This mode is useful when you want a element can overflow its + * container. (Consider a rotated circle needs to be located in a corner.) + * In this mode positionInfo.width/height can only be number. + */ + + +function positionElement(el, positionInfo, containerRect, margin, opt) { + var h = !opt || !opt.hv || opt.hv[0]; + var v = !opt || !opt.hv || opt.hv[1]; + var boundingMode = opt && opt.boundingMode || 'all'; + + if (!h && !v) { + return; + } + + var rect; + + if (boundingMode === 'raw') { + rect = el.type === 'group' ? new BoundingRect(0, 0, +positionInfo.width || 0, +positionInfo.height || 0) : el.getBoundingRect(); + } else { + rect = el.getBoundingRect(); + + if (el.needLocalTransform()) { + var transform = el.getLocalTransform(); // Notice: raw rect may be inner object of el, + // which should not be modified. + + rect = rect.clone(); + rect.applyTransform(transform); + } + } // The real width and height can not be specified but calculated by the given el. + + + positionInfo = getLayoutRect(zrUtil.defaults({ + width: rect.width, + height: rect.height + }, positionInfo), containerRect, margin); // Because 'tranlate' is the last step in transform + // (see zrender/core/Transformable#getLocalTransfrom), + // we can just only modify el.position to get final result. + + var elPos = el.position; + var dx = h ? positionInfo.x - rect.x : 0; + var dy = v ? positionInfo.y - rect.y : 0; + el.attr('position', boundingMode === 'raw' ? [dx, dy] : [elPos[0] + dx, elPos[1] + dy]); +} +/** + * @param {Object} option Contains some of the properties in HV_NAMES. + * @param {number} hvIdx 0: horizontal; 1: vertical. + */ + + +function sizeCalculable(option, hvIdx) { + return option[HV_NAMES[hvIdx][0]] != null || option[HV_NAMES[hvIdx][1]] != null && option[HV_NAMES[hvIdx][2]] != null; +} +/** + * Consider Case: + * When defulat option has {left: 0, width: 100}, and we set {right: 0} + * through setOption or media query, using normal zrUtil.merge will cause + * {right: 0} does not take effect. + * + * @example + * ComponentModel.extend({ + * init: function () { + * ... + * var inputPositionParams = layout.getLayoutParams(option); + * this.mergeOption(inputPositionParams); + * }, + * mergeOption: function (newOption) { + * newOption && zrUtil.merge(thisOption, newOption, true); + * layout.mergeLayoutParam(thisOption, newOption); + * } + * }); + * + * @param {Object} targetOption + * @param {Object} newOption + * @param {Object|string} [opt] + * @param {boolean|Array.} [opt.ignoreSize=false] Used for the components + * that width (or height) should not be calculated by left and right (or top and bottom). + */ + + +function mergeLayoutParam(targetOption, newOption, opt) { + !zrUtil.isObject(opt) && (opt = {}); + var ignoreSize = opt.ignoreSize; + !zrUtil.isArray(ignoreSize) && (ignoreSize = [ignoreSize, ignoreSize]); + var hResult = merge(HV_NAMES[0], 0); + var vResult = merge(HV_NAMES[1], 1); + copy(HV_NAMES[0], targetOption, hResult); + copy(HV_NAMES[1], targetOption, vResult); + + function merge(names, hvIdx) { + var newParams = {}; + var newValueCount = 0; + var merged = {}; + var mergedValueCount = 0; + var enoughParamNumber = 2; + each(names, function (name) { + merged[name] = targetOption[name]; + }); + each(names, function (name) { + // Consider case: newOption.width is null, which is + // set by user for removing width setting. + hasProp(newOption, name) && (newParams[name] = merged[name] = newOption[name]); + hasValue(newParams, name) && newValueCount++; + hasValue(merged, name) && mergedValueCount++; + }); + + if (ignoreSize[hvIdx]) { + // Only one of left/right is premitted to exist. + if (hasValue(newOption, names[1])) { + merged[names[2]] = null; + } else if (hasValue(newOption, names[2])) { + merged[names[1]] = null; + } + + return merged; + } // Case: newOption: {width: ..., right: ...}, + // or targetOption: {right: ...} and newOption: {width: ...}, + // There is no conflict when merged only has params count + // little than enoughParamNumber. + + + if (mergedValueCount === enoughParamNumber || !newValueCount) { + return merged; + } // Case: newOption: {width: ..., right: ...}, + // Than we can make sure user only want those two, and ignore + // all origin params in targetOption. + else if (newValueCount >= enoughParamNumber) { + return newParams; + } else { + // Chose another param from targetOption by priority. + for (var i = 0; i < names.length; i++) { + var name = names[i]; + + if (!hasProp(newParams, name) && hasProp(targetOption, name)) { + newParams[name] = targetOption[name]; + break; + } + } + + return newParams; + } + } + + function hasProp(obj, name) { + return obj.hasOwnProperty(name); + } + + function hasValue(obj, name) { + return obj[name] != null && obj[name] !== 'auto'; + } + + function copy(names, target, source) { + each(names, function (name) { + target[name] = source[name]; + }); + } +} +/** + * Retrieve 'left', 'right', 'top', 'bottom', 'width', 'height' from object. + * @param {Object} source + * @return {Object} Result contains those props. + */ + + +function getLayoutParams(source) { + return copyLayoutParams({}, source); +} +/** + * Retrieve 'left', 'right', 'top', 'bottom', 'width', 'height' from object. + * @param {Object} source + * @return {Object} Result contains those props. + */ + + +function copyLayoutParams(target, source) { + source && target && each(LOCATION_PARAMS, function (name) { + source.hasOwnProperty(name) && (target[name] = source[name]); + }); + return target; +} + +exports.LOCATION_PARAMS = LOCATION_PARAMS; +exports.HV_NAMES = HV_NAMES; +exports.box = box; +exports.vbox = vbox; +exports.hbox = hbox; +exports.getAvailableSize = getAvailableSize; +exports.getLayoutRect = getLayoutRect; +exports.positionElement = positionElement; +exports.sizeCalculable = sizeCalculable; +exports.mergeLayoutParam = mergeLayoutParam; +exports.getLayoutParams = getLayoutParams; +exports.copyLayoutParams = copyLayoutParams; + +/***/ }), +/* 28 */ +/***/ (function(module, exports, __webpack_require__) { + +var completeDimensions = __webpack_require__(29); +var echarts = __webpack_require__(7); + +echarts.extendSeriesModel({ + + type: 'series.wordCloud', + + visualColorAccessPath: 'textStyle.normal.color', + + optionUpdated: function () { + var option = this.option; + option.gridSize = Math.max(Math.floor(option.gridSize), 4); + }, + + getInitialData: function (option, ecModel) { + var dimensions = completeDimensions(['value'], option.data); + var list = new echarts.List(dimensions, this); + list.initData(option.data); + return list; + }, + + // Most of options are from https://github.com/timdream/wordcloud2.js/blob/gh-pages/API.md + defaultOption: { + + maskImage: null, + + // Shape can be 'circle', 'cardioid', 'diamond', 'triangle-forward', 'triangle', 'pentagon', 'star' + shape: 'circle', + + left: 'center', + + top: 'center', + + width: '70%', + + height: '80%', + + sizeRange: [12, 60], + + rotationRange: [-90, 90], + + rotationStep: 45, + + gridSize: 8, + + drawOutOfBound: false, + + textStyle: { + normal: { + fontWeight: 'normal' + } + } + } +}); + + +/***/ }), +/* 29 */ +/***/ (function(module, exports, __webpack_require__) { + +var zrUtil = __webpack_require__(0); + +var _model = __webpack_require__(30); + +var normalizeToArray = _model.normalizeToArray; + +/** + * Complete dimensions by data (guess dimension). + */ +var each = zrUtil.each; +var isString = zrUtil.isString; +var defaults = zrUtil.defaults; +var OTHER_DIMS = { + tooltip: 1, + label: 1, + itemName: 1 +}; +/** + * Complete the dimensions array, by user defined `dimension` and `encode`, + * and guessing from the data structure. + * If no 'value' dimension specified, the first no-named dimension will be + * named as 'value'. + * + * @param {Array.} sysDims Necessary dimensions, like ['x', 'y'], which + * provides not only dim template, but also default order. + * `name` of each item provides default coord name. + * [{dimsDef: []}, ...] can be specified to give names. + * @param {Array} data Data list. [[1, 2, 3], [2, 3, 4]]. + * @param {Object} [opt] + * @param {Array.} [opt.dimsDef] option.series.dimensions User defined dimensions + * For example: ['asdf', {name, type}, ...]. + * @param {Object} [opt.encodeDef] option.series.encode {x: 2, y: [3, 1], tooltip: [1, 2], label: 3} + * @param {string} [opt.extraPrefix] Prefix of name when filling the left dimensions. + * @param {string} [opt.extraFromZero] If specified, extra dim names will be: + * extraPrefix + 0, extraPrefix + extraBaseIndex + 1 ... + * If not specified, extra dim names will be: + * extraPrefix, extraPrefix + 0, extraPrefix + 1 ... + * @param {number} [opt.dimCount] If not specified, guess by the first data item. + * @return {Array.} [{ + * name: string mandatory, + * coordDim: string mandatory, + * coordDimIndex: number mandatory, + * type: string optional, + * tooltipName: string optional, + * otherDims: { + * tooltip: number optional, + * label: number optional + * }, + * isExtraCoord: boolean true or undefined. + * other props ... + * }] + */ + +function completeDimensions(sysDims, data, opt) { + data = data || []; + opt = opt || {}; + sysDims = (sysDims || []).slice(); + var dimsDef = (opt.dimsDef || []).slice(); + var encodeDef = zrUtil.createHashMap(opt.encodeDef); + var dataDimNameMap = zrUtil.createHashMap(); + var coordDimNameMap = zrUtil.createHashMap(); // var valueCandidate; + + var result = []; + var dimCount = opt.dimCount; + + if (dimCount == null) { + var value0 = retrieveValue(data[0]); + dimCount = Math.max(zrUtil.isArray(value0) && value0.length || 1, sysDims.length, dimsDef.length); + each(sysDims, function (sysDimItem) { + var sysDimItemDimsDef = sysDimItem.dimsDef; + sysDimItemDimsDef && (dimCount = Math.max(dimCount, sysDimItemDimsDef.length)); + }); + } // Apply user defined dims (`name` and `type`) and init result. + + + for (var i = 0; i < dimCount; i++) { + var dimDefItem = isString(dimsDef[i]) ? { + name: dimsDef[i] + } : dimsDef[i] || {}; + var userDimName = dimDefItem.name; + var resultItem = result[i] = { + otherDims: {} + }; // Name will be applied later for avoiding duplication. + + if (userDimName != null && dataDimNameMap.get(userDimName) == null) { + // Only if `series.dimensions` is defined in option, tooltipName + // will be set, and dimension will be diplayed vertically in + // tooltip by default. + resultItem.name = resultItem.tooltipName = userDimName; + dataDimNameMap.set(userDimName, i); + } + + dimDefItem.type != null && (resultItem.type = dimDefItem.type); + } // Set `coordDim` and `coordDimIndex` by `encodeDef` and normalize `encodeDef`. + + + encodeDef.each(function (dataDims, coordDim) { + dataDims = encodeDef.set(coordDim, normalizeToArray(dataDims).slice()); + each(dataDims, function (resultDimIdx, coordDimIndex) { + // The input resultDimIdx can be dim name or index. + isString(resultDimIdx) && (resultDimIdx = dataDimNameMap.get(resultDimIdx)); + + if (resultDimIdx != null && resultDimIdx < dimCount) { + dataDims[coordDimIndex] = resultDimIdx; + applyDim(result[resultDimIdx], coordDim, coordDimIndex); + } + }); + }); // Apply templetes and default order from `sysDims`. + + var availDimIdx = 0; + each(sysDims, function (sysDimItem, sysDimIndex) { + var coordDim; + var sysDimItem; + var sysDimItemDimsDef; + var sysDimItemOtherDims; + + if (isString(sysDimItem)) { + coordDim = sysDimItem; + sysDimItem = {}; + } else { + coordDim = sysDimItem.name; + sysDimItem = zrUtil.clone(sysDimItem); // `coordDimIndex` should not be set directly. + + sysDimItemDimsDef = sysDimItem.dimsDef; + sysDimItemOtherDims = sysDimItem.otherDims; + sysDimItem.name = sysDimItem.coordDim = sysDimItem.coordDimIndex = sysDimItem.dimsDef = sysDimItem.otherDims = null; + } + + var dataDims = normalizeToArray(encodeDef.get(coordDim)); // dimensions provides default dim sequences. + + if (!dataDims.length) { + for (var i = 0; i < (sysDimItemDimsDef && sysDimItemDimsDef.length || 1); i++) { + while (availDimIdx < result.length && result[availDimIdx].coordDim != null) { + availDimIdx++; + } + + availDimIdx < result.length && dataDims.push(availDimIdx++); + } + } // Apply templates. + + + each(dataDims, function (resultDimIdx, coordDimIndex) { + var resultItem = result[resultDimIdx]; + applyDim(defaults(resultItem, sysDimItem), coordDim, coordDimIndex); + + if (resultItem.name == null && sysDimItemDimsDef) { + resultItem.name = resultItem.tooltipName = sysDimItemDimsDef[coordDimIndex]; + } + + sysDimItemOtherDims && defaults(resultItem.otherDims, sysDimItemOtherDims); + }); + }); // Make sure the first extra dim is 'value'. + + var extra = opt.extraPrefix || 'value'; // Set dim `name` and other `coordDim` and other props. + + for (var resultDimIdx = 0; resultDimIdx < dimCount; resultDimIdx++) { + var resultItem = result[resultDimIdx] = result[resultDimIdx] || {}; + var coordDim = resultItem.coordDim; + coordDim == null && (resultItem.coordDim = genName(extra, coordDimNameMap, opt.extraFromZero), resultItem.coordDimIndex = 0, resultItem.isExtraCoord = true); + resultItem.name == null && (resultItem.name = genName(resultItem.coordDim, dataDimNameMap)); + resultItem.type == null && guessOrdinal(data, resultDimIdx) && (resultItem.type = 'ordinal'); + } + + return result; + + function applyDim(resultItem, coordDim, coordDimIndex) { + if (OTHER_DIMS[coordDim]) { + resultItem.otherDims[coordDim] = coordDimIndex; + } else { + resultItem.coordDim = coordDim; + resultItem.coordDimIndex = coordDimIndex; + coordDimNameMap.set(coordDim, true); + } + } + + function genName(name, map, fromZero) { + if (fromZero || map.get(name) != null) { + var i = 0; + + while (map.get(name + i) != null) { + i++; + } + + name += i; + } + + map.set(name, true); + return name; + } +} // The rule should not be complex, otherwise user might not +// be able to known where the data is wrong. + + +var guessOrdinal = completeDimensions.guessOrdinal = function (data, dimIndex) { + for (var i = 0, len = data.length; i < len; i++) { + var value = retrieveValue(data[i]); + + if (!zrUtil.isArray(value)) { + return false; + } + + var value = value[dimIndex]; // Consider usage convenience, '1', '2' will be treated as "number". + // `isFinit('')` get `true`. + + if (value != null && isFinite(value) && value !== '') { + return false; + } else if (isString(value) && value !== '-') { + return true; + } + } + + return false; +}; + +function retrieveValue(o) { + return zrUtil.isArray(o) ? o : zrUtil.isObject(o) ? o.value : o; +} + +var _default = completeDimensions; +module.exports = _default; + +/***/ }), +/* 30 */ +/***/ (function(module, exports, __webpack_require__) { + +var zrUtil = __webpack_require__(0); + +var formatUtil = __webpack_require__(13); + +var nubmerUtil = __webpack_require__(9); + +var Model = __webpack_require__(31); + +var each = zrUtil.each; +var isObject = zrUtil.isObject; +/** + * If value is not array, then translate it to array. + * @param {*} value + * @return {Array} [value] or value + */ + +function normalizeToArray(value) { + return value instanceof Array ? value : value == null ? [] : [value]; +} +/** + * Sync default option between normal and emphasis like `position` and `show` + * In case some one will write code like + * label: { + * normal: { + * show: false, + * position: 'outside', + * fontSize: 18 + * }, + * emphasis: { + * show: true + * } + * } + * @param {Object} opt + * @param {Array.} subOpts + */ + + +function defaultEmphasis(opt, subOpts) { + if (opt) { + var emphasisOpt = opt.emphasis = opt.emphasis || {}; + var normalOpt = opt.normal = opt.normal || {}; // Default emphasis option from normal + + for (var i = 0, len = subOpts.length; i < len; i++) { + var subOptName = subOpts[i]; + + if (!emphasisOpt.hasOwnProperty(subOptName) && normalOpt.hasOwnProperty(subOptName)) { + emphasisOpt[subOptName] = normalOpt[subOptName]; + } + } + } +} + +var TEXT_STYLE_OPTIONS = ['fontStyle', 'fontWeight', 'fontSize', 'fontFamily', 'rich', 'tag', 'color', 'textBorderColor', 'textBorderWidth', 'width', 'height', 'lineHeight', 'align', 'verticalAlign', 'baseline', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY', 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY', 'backgroundColor', 'borderColor', 'borderWidth', 'borderRadius', 'padding']; // modelUtil.LABEL_OPTIONS = modelUtil.TEXT_STYLE_OPTIONS.concat([ +// 'position', 'offset', 'rotate', 'origin', 'show', 'distance', 'formatter', +// 'fontStyle', 'fontWeight', 'fontSize', 'fontFamily', +// // FIXME: deprecated, check and remove it. +// 'textStyle' +// ]); + +/** + * data could be [12, 2323, {value: 223}, [1221, 23], {value: [2, 23]}] + * This helper method retieves value from data. + * @param {string|number|Date|Array|Object} dataItem + * @return {number|string|Date|Array.} + */ + +function getDataItemValue(dataItem) { + // Performance sensitive. + return dataItem && (dataItem.value == null ? dataItem : dataItem.value); +} +/** + * data could be [12, 2323, {value: 223}, [1221, 23], {value: [2, 23]}] + * This helper method determine if dataItem has extra option besides value + * @param {string|number|Date|Array|Object} dataItem + */ + + +function isDataItemOption(dataItem) { + return isObject(dataItem) && !(dataItem instanceof Array); // // markLine data can be array + // && !(dataItem[0] && isObject(dataItem[0]) && !(dataItem[0] instanceof Array)); +} +/** + * This helper method convert value in data. + * @param {string|number|Date} value + * @param {Object|string} [dimInfo] If string (like 'x'), dimType defaults 'number'. + */ + + +function converDataValue(value, dimInfo) { + // Performance sensitive. + var dimType = dimInfo && dimInfo.type; + + if (dimType === 'ordinal') { + return value; + } + + if (dimType === 'time' // spead up when using timestamp + && typeof value !== 'number' && value != null && value !== '-') { + value = +nubmerUtil.parseDate(value); + } // dimType defaults 'number'. + // If dimType is not ordinal and value is null or undefined or NaN or '-', + // parse to NaN. + + + return value == null || value === '' ? NaN : +value; // If string (like '-'), using '+' parse to NaN +} +/** + * Create a model proxy to be used in tooltip for edge data, markLine data, markPoint data. + * @param {module:echarts/data/List} data + * @param {Object} opt + * @param {string} [opt.seriesIndex] + * @param {Object} [opt.name] + * @param {Object} [opt.mainType] + * @param {Object} [opt.subType] + */ + + +function createDataFormatModel(data, opt) { + var model = new Model(); + zrUtil.mixin(model, dataFormatMixin); + model.seriesIndex = opt.seriesIndex; + model.name = opt.name || ''; + model.mainType = opt.mainType; + model.subType = opt.subType; + + model.getData = function () { + return data; + }; + + return model; +} // PENDING A little ugly + + +var dataFormatMixin = { + /** + * Get params for formatter + * @param {number} dataIndex + * @param {string} [dataType] + * @return {Object} + */ + getDataParams: function (dataIndex, dataType) { + var data = this.getData(dataType); + var rawValue = this.getRawValue(dataIndex, dataType); + var rawDataIndex = data.getRawIndex(dataIndex); + var name = data.getName(dataIndex, true); + var itemOpt = data.getRawDataItem(dataIndex); + var color = data.getItemVisual(dataIndex, 'color'); + return { + componentType: this.mainType, + componentSubType: this.subType, + seriesType: this.mainType === 'series' ? this.subType : null, + seriesIndex: this.seriesIndex, + seriesId: this.id, + seriesName: this.name, + name: name, + dataIndex: rawDataIndex, + data: itemOpt, + dataType: dataType, + value: rawValue, + color: color, + marker: formatUtil.getTooltipMarker(color), + // Param name list for mapping `a`, `b`, `c`, `d`, `e` + $vars: ['seriesName', 'name', 'value'] + }; + }, + + /** + * Format label + * @param {number} dataIndex + * @param {string} [status='normal'] 'normal' or 'emphasis' + * @param {string} [dataType] + * @param {number} [dimIndex] + * @param {string} [labelProp='label'] + * @return {string} + */ + getFormattedLabel: function (dataIndex, status, dataType, dimIndex, labelProp) { + status = status || 'normal'; + var data = this.getData(dataType); + var itemModel = data.getItemModel(dataIndex); + var params = this.getDataParams(dataIndex, dataType); + + if (dimIndex != null && params.value instanceof Array) { + params.value = params.value[dimIndex]; + } + + var formatter = itemModel.get([labelProp || 'label', status, 'formatter']); + + if (typeof formatter === 'function') { + params.status = status; + return formatter(params); + } else if (typeof formatter === 'string') { + return formatUtil.formatTpl(formatter, params); + } + }, + + /** + * Get raw value in option + * @param {number} idx + * @param {string} [dataType] + * @return {Object} + */ + getRawValue: function (idx, dataType) { + var data = this.getData(dataType); + var dataItem = data.getRawDataItem(idx); + + if (dataItem != null) { + return isObject(dataItem) && !(dataItem instanceof Array) ? dataItem.value : dataItem; + } + }, + + /** + * Should be implemented. + * @param {number} dataIndex + * @param {boolean} [multipleSeries=false] + * @param {number} [dataType] + * @return {string} tooltip string + */ + formatTooltip: zrUtil.noop +}; +/** + * Mapping to exists for merge. + * + * @public + * @param {Array.|Array.} exists + * @param {Object|Array.} newCptOptions + * @return {Array.} Result, like [{exist: ..., option: ...}, {}], + * index of which is the same as exists. + */ + +function mappingToExists(exists, newCptOptions) { + // Mapping by the order by original option (but not order of + // new option) in merge mode. Because we should ensure + // some specified index (like xAxisIndex) is consistent with + // original option, which is easy to understand, espatially in + // media query. And in most case, merge option is used to + // update partial option but not be expected to change order. + newCptOptions = (newCptOptions || []).slice(); + var result = zrUtil.map(exists || [], function (obj, index) { + return { + exist: obj + }; + }); // Mapping by id or name if specified. + + each(newCptOptions, function (cptOption, index) { + if (!isObject(cptOption)) { + return; + } // id has highest priority. + + + for (var i = 0; i < result.length; i++) { + if (!result[i].option // Consider name: two map to one. + && cptOption.id != null && result[i].exist.id === cptOption.id + '') { + result[i].option = cptOption; + newCptOptions[index] = null; + return; + } + } + + for (var i = 0; i < result.length; i++) { + var exist = result[i].exist; + + if (!result[i].option // Consider name: two map to one. + // Can not match when both ids exist but different. + && (exist.id == null || cptOption.id == null) && cptOption.name != null && !isIdInner(cptOption) && !isIdInner(exist) && exist.name === cptOption.name + '') { + result[i].option = cptOption; + newCptOptions[index] = null; + return; + } + } + }); // Otherwise mapping by index. + + each(newCptOptions, function (cptOption, index) { + if (!isObject(cptOption)) { + return; + } + + var i = 0; + + for (; i < result.length; i++) { + var exist = result[i].exist; + + if (!result[i].option // Existing model that already has id should be able to + // mapped to (because after mapping performed model may + // be assigned with a id, whish should not affect next + // mapping), except those has inner id. + && !isIdInner(exist) // Caution: + // Do not overwrite id. But name can be overwritten, + // because axis use name as 'show label text'. + // 'exist' always has id and name and we dont + // need to check it. + && cptOption.id == null) { + result[i].option = cptOption; + break; + } + } + + if (i >= result.length) { + result.push({ + option: cptOption + }); + } + }); + return result; +} +/** + * Make id and name for mapping result (result of mappingToExists) + * into `keyInfo` field. + * + * @public + * @param {Array.} Result, like [{exist: ..., option: ...}, {}], + * which order is the same as exists. + * @return {Array.} The input. + */ + + +function makeIdAndName(mapResult) { + // We use this id to hash component models and view instances + // in echarts. id can be specified by user, or auto generated. + // The id generation rule ensures new view instance are able + // to mapped to old instance when setOption are called in + // no-merge mode. So we generate model id by name and plus + // type in view id. + // name can be duplicated among components, which is convenient + // to specify multi components (like series) by one name. + // Ensure that each id is distinct. + var idMap = zrUtil.createHashMap(); + each(mapResult, function (item, index) { + var existCpt = item.exist; + existCpt && idMap.set(existCpt.id, item); + }); + each(mapResult, function (item, index) { + var opt = item.option; + zrUtil.assert(!opt || opt.id == null || !idMap.get(opt.id) || idMap.get(opt.id) === item, 'id duplicates: ' + (opt && opt.id)); + opt && opt.id != null && idMap.set(opt.id, item); + !item.keyInfo && (item.keyInfo = {}); + }); // Make name and id. + + each(mapResult, function (item, index) { + var existCpt = item.exist; + var opt = item.option; + var keyInfo = item.keyInfo; + + if (!isObject(opt)) { + return; + } // name can be overwitten. Consider case: axis.name = '20km'. + // But id generated by name will not be changed, which affect + // only in that case: setOption with 'not merge mode' and view + // instance will be recreated, which can be accepted. + + + keyInfo.name = opt.name != null ? opt.name + '' : existCpt ? existCpt.name : '\0-'; // name may be displayed on screen, so use '-'. + + if (existCpt) { + keyInfo.id = existCpt.id; + } else if (opt.id != null) { + keyInfo.id = opt.id + ''; + } else { + // Consider this situatoin: + // optionA: [{name: 'a'}, {name: 'a'}, {..}] + // optionB [{..}, {name: 'a'}, {name: 'a'}] + // Series with the same name between optionA and optionB + // should be mapped. + var idNum = 0; + + do { + keyInfo.id = '\0' + keyInfo.name + '\0' + idNum++; + } while (idMap.get(keyInfo.id)); + } + + idMap.set(keyInfo.id, item); + }); +} +/** + * @public + * @param {Object} cptOption + * @return {boolean} + */ + + +function isIdInner(cptOption) { + return isObject(cptOption) && cptOption.id && (cptOption.id + '').indexOf('\0_ec_\0') === 0; +} +/** + * A helper for removing duplicate items between batchA and batchB, + * and in themselves, and categorize by series. + * + * @param {Array.} batchA Like: [{seriesId: 2, dataIndex: [32, 4, 5]}, ...] + * @param {Array.} batchB Like: [{seriesId: 2, dataIndex: [32, 4, 5]}, ...] + * @return {Array., Array.>} result: [resultBatchA, resultBatchB] + */ + + +function compressBatches(batchA, batchB) { + var mapA = {}; + var mapB = {}; + makeMap(batchA || [], mapA); + makeMap(batchB || [], mapB, mapA); + return [mapToArray(mapA), mapToArray(mapB)]; + + function makeMap(sourceBatch, map, otherMap) { + for (var i = 0, len = sourceBatch.length; i < len; i++) { + var seriesId = sourceBatch[i].seriesId; + var dataIndices = normalizeToArray(sourceBatch[i].dataIndex); + var otherDataIndices = otherMap && otherMap[seriesId]; + + for (var j = 0, lenj = dataIndices.length; j < lenj; j++) { + var dataIndex = dataIndices[j]; + + if (otherDataIndices && otherDataIndices[dataIndex]) { + otherDataIndices[dataIndex] = null; + } else { + (map[seriesId] || (map[seriesId] = {}))[dataIndex] = 1; + } + } + } + } + + function mapToArray(map, isData) { + var result = []; + + for (var i in map) { + if (map.hasOwnProperty(i) && map[i] != null) { + if (isData) { + result.push(+i); + } else { + var dataIndices = mapToArray(map[i], true); + dataIndices.length && result.push({ + seriesId: i, + dataIndex: dataIndices + }); + } + } + } + + return result; + } +} +/** + * @param {module:echarts/data/List} data + * @param {Object} payload Contains dataIndex (means rawIndex) / dataIndexInside / name + * each of which can be Array or primary type. + * @return {number|Array.} dataIndex If not found, return undefined/null. + */ + + +function queryDataIndex(data, payload) { + if (payload.dataIndexInside != null) { + return payload.dataIndexInside; + } else if (payload.dataIndex != null) { + return zrUtil.isArray(payload.dataIndex) ? zrUtil.map(payload.dataIndex, function (value) { + return data.indexOfRawIndex(value); + }) : data.indexOfRawIndex(payload.dataIndex); + } else if (payload.name != null) { + return zrUtil.isArray(payload.name) ? zrUtil.map(payload.name, function (value) { + return data.indexOfName(value); + }) : data.indexOfName(payload.name); + } +} +/** + * Enable property storage to any host object. + * Notice: Serialization is not supported. + * + * For example: + * var get = modelUitl.makeGetter(); + * + * function some(hostObj) { + * get(hostObj)._someProperty = 1212; + * ... + * } + * + * @return {Function} + */ + + +var makeGetter = function () { + var index = 0; + return function () { + var key = '\0__ec_prop_getter_' + index++; + return function (hostObj) { + return hostObj[key] || (hostObj[key] = {}); + }; + }; +}(); +/** + * @param {module:echarts/model/Global} ecModel + * @param {string|Object} finder + * If string, e.g., 'geo', means {geoIndex: 0}. + * If Object, could contain some of these properties below: + * { + * seriesIndex, seriesId, seriesName, + * geoIndex, geoId, geoName, + * bmapIndex, bmapId, bmapName, + * xAxisIndex, xAxisId, xAxisName, + * yAxisIndex, yAxisId, yAxisName, + * gridIndex, gridId, gridName, + * ... (can be extended) + * } + * Each properties can be number|string|Array.|Array. + * For example, a finder could be + * { + * seriesIndex: 3, + * geoId: ['aa', 'cc'], + * gridName: ['xx', 'rr'] + * } + * xxxIndex can be set as 'all' (means all xxx) or 'none' (means not specify) + * If nothing or null/undefined specified, return nothing. + * @param {Object} [opt] + * @param {string} [opt.defaultMainType] + * @param {Array.} [opt.includeMainTypes] + * @return {Object} result like: + * { + * seriesModels: [seriesModel1, seriesModel2], + * seriesModel: seriesModel1, // The first model + * geoModels: [geoModel1, geoModel2], + * geoModel: geoModel1, // The first model + * ... + * } + */ + + +function parseFinder(ecModel, finder, opt) { + if (zrUtil.isString(finder)) { + var obj = {}; + obj[finder + 'Index'] = 0; + finder = obj; + } + + var defaultMainType = opt && opt.defaultMainType; + + if (defaultMainType && !has(finder, defaultMainType + 'Index') && !has(finder, defaultMainType + 'Id') && !has(finder, defaultMainType + 'Name')) { + finder[defaultMainType + 'Index'] = 0; + } + + var result = {}; + each(finder, function (value, key) { + var value = finder[key]; // Exclude 'dataIndex' and other illgal keys. + + if (key === 'dataIndex' || key === 'dataIndexInside') { + result[key] = value; + return; + } + + var parsedKey = key.match(/^(\w+)(Index|Id|Name)$/) || []; + var mainType = parsedKey[1]; + var queryType = (parsedKey[2] || '').toLowerCase(); + + if (!mainType || !queryType || value == null || queryType === 'index' && value === 'none' || opt && opt.includeMainTypes && zrUtil.indexOf(opt.includeMainTypes, mainType) < 0) { + return; + } + + var queryParam = { + mainType: mainType + }; + + if (queryType !== 'index' || value !== 'all') { + queryParam[queryType] = value; + } + + var models = ecModel.queryComponents(queryParam); + result[mainType + 'Models'] = models; + result[mainType + 'Model'] = models[0]; + }); + return result; +} +/** + * @see {module:echarts/data/helper/completeDimensions} + * @param {module:echarts/data/List} data + * @param {string|number} dataDim + * @return {string} + */ + + +function dataDimToCoordDim(data, dataDim) { + var dimensions = data.dimensions; + dataDim = data.getDimension(dataDim); + + for (var i = 0; i < dimensions.length; i++) { + var dimItem = data.getDimensionInfo(dimensions[i]); + + if (dimItem.name === dataDim) { + return dimItem.coordDim; + } + } +} +/** + * @see {module:echarts/data/helper/completeDimensions} + * @param {module:echarts/data/List} data + * @param {string} coordDim + * @return {Array.} data dimensions on the coordDim. + */ + + +function coordDimToDataDim(data, coordDim) { + var dataDim = []; + each(data.dimensions, function (dimName) { + var dimItem = data.getDimensionInfo(dimName); + + if (dimItem.coordDim === coordDim) { + dataDim[dimItem.coordDimIndex] = dimItem.name; + } + }); + return dataDim; +} +/** + * @see {module:echarts/data/helper/completeDimensions} + * @param {module:echarts/data/List} data + * @param {string} otherDim Can be `otherDims` + * like 'label' or 'tooltip'. + * @return {Array.} data dimensions on the otherDim. + */ + + +function otherDimToDataDim(data, otherDim) { + var dataDim = []; + each(data.dimensions, function (dimName) { + var dimItem = data.getDimensionInfo(dimName); + var otherDims = dimItem.otherDims; + var dimIndex = otherDims[otherDim]; + + if (dimIndex != null && dimIndex !== false) { + dataDim[dimIndex] = dimItem.name; + } + }); + return dataDim; +} + +function has(obj, prop) { + return obj && obj.hasOwnProperty(prop); +} + +exports.normalizeToArray = normalizeToArray; +exports.defaultEmphasis = defaultEmphasis; +exports.TEXT_STYLE_OPTIONS = TEXT_STYLE_OPTIONS; +exports.getDataItemValue = getDataItemValue; +exports.isDataItemOption = isDataItemOption; +exports.converDataValue = converDataValue; +exports.createDataFormatModel = createDataFormatModel; +exports.dataFormatMixin = dataFormatMixin; +exports.mappingToExists = mappingToExists; +exports.makeIdAndName = makeIdAndName; +exports.isIdInner = isIdInner; +exports.compressBatches = compressBatches; +exports.queryDataIndex = queryDataIndex; +exports.makeGetter = makeGetter; +exports.parseFinder = parseFinder; +exports.dataDimToCoordDim = dataDimToCoordDim; +exports.coordDimToDataDim = coordDimToDataDim; +exports.otherDimToDataDim = otherDimToDataDim; + +/***/ }), +/* 31 */ +/***/ (function(module, exports, __webpack_require__) { + +var zrUtil = __webpack_require__(0); + +var env = __webpack_require__(15); + +var clazzUtil = __webpack_require__(32); + +var lineStyleMixin = __webpack_require__(35); + +var areaStyleMixin = __webpack_require__(36); + +var textStyleMixin = __webpack_require__(37); + +var itemStyleMixin = __webpack_require__(76); + +/** + * @module echarts/model/Model + */ +var mixin = zrUtil.mixin; +/** + * @alias module:echarts/model/Model + * @constructor + * @param {Object} option + * @param {module:echarts/model/Model} [parentModel] + * @param {module:echarts/model/Global} [ecModel] + */ + +function Model(option, parentModel, ecModel) { + /** + * @type {module:echarts/model/Model} + * @readOnly + */ + this.parentModel = parentModel; + /** + * @type {module:echarts/model/Global} + * @readOnly + */ + + this.ecModel = ecModel; + /** + * @type {Object} + * @protected + */ + + this.option = option; // Simple optimization + // if (this.init) { + // if (arguments.length <= 4) { + // this.init(option, parentModel, ecModel, extraOpt); + // } + // else { + // this.init.apply(this, arguments); + // } + // } +} + +Model.prototype = { + constructor: Model, + + /** + * Model 的初始化函数 + * @param {Object} option + */ + init: null, + + /** + * 从新的 Option merge + */ + mergeOption: function (option) { + zrUtil.merge(this.option, option, true); + }, + + /** + * @param {string|Array.} path + * @param {boolean} [ignoreParent=false] + * @return {*} + */ + get: function (path, ignoreParent) { + if (path == null) { + return this.option; + } + + return doGet(this.option, this.parsePath(path), !ignoreParent && getParent(this, path)); + }, + + /** + * @param {string} key + * @param {boolean} [ignoreParent=false] + * @return {*} + */ + getShallow: function (key, ignoreParent) { + var option = this.option; + var val = option == null ? option : option[key]; + var parentModel = !ignoreParent && getParent(this, key); + + if (val == null && parentModel) { + val = parentModel.getShallow(key); + } + + return val; + }, + + /** + * @param {string|Array.} [path] + * @param {module:echarts/model/Model} [parentModel] + * @return {module:echarts/model/Model} + */ + getModel: function (path, parentModel) { + var obj = path == null ? this.option : doGet(this.option, path = this.parsePath(path)); + var thisParentModel; + parentModel = parentModel || (thisParentModel = getParent(this, path)) && thisParentModel.getModel(path); + return new Model(obj, parentModel, this.ecModel); + }, + + /** + * If model has option + */ + isEmpty: function () { + return this.option == null; + }, + restoreData: function () {}, + // Pending + clone: function () { + var Ctor = this.constructor; + return new Ctor(zrUtil.clone(this.option)); + }, + setReadOnly: function (properties) { + clazzUtil.setReadOnly(this, properties); + }, + // If path is null/undefined, return null/undefined. + parsePath: function (path) { + if (typeof path === 'string') { + path = path.split('.'); + } + + return path; + }, + + /** + * @param {Function} getParentMethod + * param {Array.|string} path + * return {module:echarts/model/Model} + */ + customizeGetParent: function (getParentMethod) { + clazzUtil.set(this, 'getParent', getParentMethod); + }, + isAnimationEnabled: function () { + if (!env.node) { + if (this.option.animation != null) { + return !!this.option.animation; + } else if (this.parentModel) { + return this.parentModel.isAnimationEnabled(); + } + } + } +}; + +function doGet(obj, pathArr, parentModel) { + for (var i = 0; i < pathArr.length; i++) { + // Ignore empty + if (!pathArr[i]) { + continue; + } // obj could be number/string/... (like 0) + + + obj = obj && typeof obj === 'object' ? obj[pathArr[i]] : null; + + if (obj == null) { + break; + } + } + + if (obj == null && parentModel) { + obj = parentModel.get(pathArr); + } + + return obj; +} // `path` can be null/undefined + + +function getParent(model, path) { + var getParentMethod = clazzUtil.get(model, 'getParent'); + return getParentMethod ? getParentMethod.call(model, path) : model.parentModel; +} // Enable Model.extend. + + +clazzUtil.enableClassExtend(Model); +mixin(Model, lineStyleMixin); +mixin(Model, areaStyleMixin); +mixin(Model, textStyleMixin); +mixin(Model, itemStyleMixin); +var _default = Model; +module.exports = _default; + +/***/ }), +/* 32 */ +/***/ (function(module, exports, __webpack_require__) { + +var _config = __webpack_require__(33); + +var __DEV__ = _config.__DEV__; + +var zrUtil = __webpack_require__(0); + +var TYPE_DELIMITER = '.'; +var IS_CONTAINER = '___EC__COMPONENT__CONTAINER___'; +var MEMBER_PRIFIX = '\0ec_\0'; +/** + * Hide private class member. + * The same behavior as `host[name] = value;` (can be right-value) + * @public + */ + +function set(host, name, value) { + return host[MEMBER_PRIFIX + name] = value; +} +/** + * Hide private class member. + * The same behavior as `host[name];` + * @public + */ + + +function get(host, name) { + return host[MEMBER_PRIFIX + name]; +} +/** + * For hidden private class member. + * The same behavior as `host.hasOwnProperty(name);` + * @public + */ + + +function hasOwn(host, name) { + return host.hasOwnProperty(MEMBER_PRIFIX + name); +} +/** + * Notice, parseClassType('') should returns {main: '', sub: ''} + * @public + */ + + +function parseClassType(componentType) { + var ret = { + main: '', + sub: '' + }; + + if (componentType) { + componentType = componentType.split(TYPE_DELIMITER); + ret.main = componentType[0] || ''; + ret.sub = componentType[1] || ''; + } + + return ret; +} +/** + * @public + */ + + +function checkClassType(componentType) { + zrUtil.assert(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(componentType), 'componentType "' + componentType + '" illegal'); +} +/** + * @public + */ + + +function enableClassExtend(RootClass, mandatoryMethods) { + RootClass.$constructor = RootClass; + + RootClass.extend = function (proto) { + var superClass = this; + + var ExtendedClass = function () { + if (!proto.$constructor) { + superClass.apply(this, arguments); + } else { + proto.$constructor.apply(this, arguments); + } + }; + + zrUtil.extend(ExtendedClass.prototype, proto); + ExtendedClass.extend = this.extend; + ExtendedClass.superCall = superCall; + ExtendedClass.superApply = superApply; + zrUtil.inherits(ExtendedClass, this); + ExtendedClass.superClass = superClass; + return ExtendedClass; + }; +} // superCall should have class info, which can not be fetch from 'this'. +// Consider this case: +// class A has method f, +// class B inherits class A, overrides method f, f call superApply('f'), +// class C inherits class B, do not overrides method f, +// then when method of class C is called, dead loop occured. + + +function superCall(context, methodName) { + var args = zrUtil.slice(arguments, 2); + return this.superClass.prototype[methodName].apply(context, args); +} + +function superApply(context, methodName, args) { + return this.superClass.prototype[methodName].apply(context, args); +} +/** + * @param {Object} entity + * @param {Object} options + * @param {boolean} [options.registerWhenExtend] + * @public + */ + + +function enableClassManagement(entity, options) { + options = options || {}; + /** + * Component model classes + * key: componentType, + * value: + * componentClass, when componentType is 'xxx' + * or Object., when componentType is 'xxx.yy' + * @type {Object} + */ + + var storage = {}; + + entity.registerClass = function (Clazz, componentType) { + if (componentType) { + checkClassType(componentType); + componentType = parseClassType(componentType); + + if (!componentType.sub) { + storage[componentType.main] = Clazz; + } else if (componentType.sub !== IS_CONTAINER) { + var container = makeContainer(componentType); + container[componentType.sub] = Clazz; + } + } + + return Clazz; + }; + + entity.getClass = function (componentMainType, subType, throwWhenNotFound) { + var Clazz = storage[componentMainType]; + + if (Clazz && Clazz[IS_CONTAINER]) { + Clazz = subType ? Clazz[subType] : null; + } + + if (throwWhenNotFound && !Clazz) { + throw new Error(!subType ? componentMainType + '.' + 'type should be specified.' : 'Component ' + componentMainType + '.' + (subType || '') + ' not exists. Load it first.'); + } + + return Clazz; + }; + + entity.getClassesByMainType = function (componentType) { + componentType = parseClassType(componentType); + var result = []; + var obj = storage[componentType.main]; + + if (obj && obj[IS_CONTAINER]) { + zrUtil.each(obj, function (o, type) { + type !== IS_CONTAINER && result.push(o); + }); + } else { + result.push(obj); + } + + return result; + }; + + entity.hasClass = function (componentType) { + // Just consider componentType.main. + componentType = parseClassType(componentType); + return !!storage[componentType.main]; + }; + /** + * @return {Array.} Like ['aa', 'bb'], but can not be ['aa.xx'] + */ + + + entity.getAllClassMainTypes = function () { + var types = []; + zrUtil.each(storage, function (obj, type) { + types.push(type); + }); + return types; + }; + /** + * If a main type is container and has sub types + * @param {string} mainType + * @return {boolean} + */ + + + entity.hasSubTypes = function (componentType) { + componentType = parseClassType(componentType); + var obj = storage[componentType.main]; + return obj && obj[IS_CONTAINER]; + }; + + entity.parseClassType = parseClassType; + + function makeContainer(componentType) { + var container = storage[componentType.main]; + + if (!container || !container[IS_CONTAINER]) { + container = storage[componentType.main] = {}; + container[IS_CONTAINER] = true; + } + + return container; + } + + if (options.registerWhenExtend) { + var originalExtend = entity.extend; + + if (originalExtend) { + entity.extend = function (proto) { + var ExtendedClass = originalExtend.call(this, proto); + return entity.registerClass(ExtendedClass, proto.type); + }; + } + } + + return entity; +} +/** + * @param {string|Array.} properties + */ + + +function setReadOnly(obj, properties) {// FIXME It seems broken in IE8 simulation of IE11 + // if (!zrUtil.isArray(properties)) { + // properties = properties != null ? [properties] : []; + // } + // zrUtil.each(properties, function (prop) { + // var value = obj[prop]; + // Object.defineProperty + // && Object.defineProperty(obj, prop, { + // value: value, writable: false + // }); + // zrUtil.isArray(obj[prop]) + // && Object.freeze + // && Object.freeze(obj[prop]); + // }); +} + +exports.set = set; +exports.get = get; +exports.hasOwn = hasOwn; +exports.parseClassType = parseClassType; +exports.enableClassExtend = enableClassExtend; +exports.enableClassManagement = enableClassManagement; +exports.setReadOnly = setReadOnly; + +/***/ }), +/* 33 */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(global) {// (1) The code `if (__DEV__) ...` can be removed by build tool. +// (2) If intend to use `__DEV__`, this module should be imported. Use a global +// variable `__DEV__` may cause that miss the declaration (see #6535), or the +// declaration is behind of the using position (for example in `Model.extent`, +// And tools like rollup can not analysis the dependency if not import). +var dev; // In browser + +if (typeof window !== 'undefined') { + dev = window.__DEV__; +} // In node +else if (typeof global !== 'undefined') { + dev = global.__DEV__; + } + +if (typeof dev === 'undefined') { + dev = true; +} + +var __DEV__ = dev; +exports.__DEV__ = __DEV__; +/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(34))) + +/***/ }), +/* 34 */ +/***/ (function(module, exports) { + +var g; + +// This works in non-strict mode +g = (function() { + return this; +})(); + +try { + // This works if eval is allowed (see CSP) + g = g || Function("return this")() || (1,eval)("this"); +} catch(e) { + // This works if the window reference is available + if(typeof window === "object") + g = window; +} + +// g can still be undefined, but nothing to do about it... +// We return undefined, instead of nothing here, so it's +// easier to handle this case. if(!global) { ...} + +module.exports = g; + + +/***/ }), +/* 35 */ +/***/ (function(module, exports, __webpack_require__) { + +var makeStyleMapper = __webpack_require__(11); + +var getLineStyle = makeStyleMapper([['lineWidth', 'width'], ['stroke', 'color'], ['opacity'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor']]); +var _default = { + getLineStyle: function (excludes) { + var style = getLineStyle(this, excludes); + var lineDash = this.getLineDash(style.lineWidth); + lineDash && (style.lineDash = lineDash); + return style; + }, + getLineDash: function (lineWidth) { + if (lineWidth == null) { + lineWidth = 1; + } + + var lineType = this.get('type'); + var dotSize = Math.max(lineWidth, 2); + var dashSize = lineWidth * 4; + return lineType === 'solid' || lineType == null ? null : lineType === 'dashed' ? [dashSize, dashSize] : [dotSize, dotSize]; + } +}; +module.exports = _default; + +/***/ }), +/* 36 */ +/***/ (function(module, exports, __webpack_require__) { + +var makeStyleMapper = __webpack_require__(11); + +var getAreaStyle = makeStyleMapper([['fill', 'color'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['opacity'], ['shadowColor']]); +var _default = { + getAreaStyle: function (excludes, includes) { + return getAreaStyle(this, excludes, includes); + } +}; +module.exports = _default; + +/***/ }), +/* 37 */ +/***/ (function(module, exports, __webpack_require__) { + +var textContain = __webpack_require__(5); + +var graphicUtil = __webpack_require__(38); + +var PATH_COLOR = ['textStyle', 'color']; +var _default = { + /** + * Get color property or get color from option.textStyle.color + * @param {boolean} [isEmphasis] + * @return {string} + */ + getTextColor: function (isEmphasis) { + var ecModel = this.ecModel; + return this.getShallow('color') || (!isEmphasis && ecModel ? ecModel.get(PATH_COLOR) : null); + }, + + /** + * Create font string from fontStyle, fontWeight, fontSize, fontFamily + * @return {string} + */ + getFont: function () { + return graphicUtil.getFont({ + fontStyle: this.getShallow('fontStyle'), + fontWeight: this.getShallow('fontWeight'), + fontSize: this.getShallow('fontSize'), + fontFamily: this.getShallow('fontFamily') + }, this.ecModel); + }, + getTextRect: function (text) { + return textContain.getBoundingRect(text, this.getFont(), this.getShallow('align'), this.getShallow('verticalAlign') || this.getShallow('baseline'), this.getShallow('padding'), this.getShallow('rich'), this.getShallow('truncateText')); + } +}; +module.exports = _default; + +/***/ }), +/* 38 */ +/***/ (function(module, exports, __webpack_require__) { + +var zrUtil = __webpack_require__(0); + +var pathTool = __webpack_require__(39); + +var colorTool = __webpack_require__(18); + +var matrix = __webpack_require__(8); + +var vector = __webpack_require__(2); + +var Path = __webpack_require__(1); + +var Transformable = __webpack_require__(17); + +var Image = __webpack_require__(58); + +exports.Image = Image; + +var Group = __webpack_require__(59); + +exports.Group = Group; + +var Text = __webpack_require__(60); + +exports.Text = Text; + +var Circle = __webpack_require__(61); + +exports.Circle = Circle; + +var Sector = __webpack_require__(62); + +exports.Sector = Sector; + +var Ring = __webpack_require__(64); + +exports.Ring = Ring; + +var Polygon = __webpack_require__(65); + +exports.Polygon = Polygon; + +var Polyline = __webpack_require__(68); + +exports.Polyline = Polyline; + +var Rect = __webpack_require__(69); + +exports.Rect = Rect; + +var Line = __webpack_require__(70); + +exports.Line = Line; + +var BezierCurve = __webpack_require__(71); + +exports.BezierCurve = BezierCurve; + +var Arc = __webpack_require__(72); + +exports.Arc = Arc; + +var CompoundPath = __webpack_require__(73); + +exports.CompoundPath = CompoundPath; + +var LinearGradient = __webpack_require__(74); + +exports.LinearGradient = LinearGradient; + +var RadialGradient = __webpack_require__(75); + +exports.RadialGradient = RadialGradient; + +var BoundingRect = __webpack_require__(3); + +exports.BoundingRect = BoundingRect; +var round = Math.round; +var mathMax = Math.max; +var mathMin = Math.min; +var EMPTY_OBJ = {}; +/** + * Extend shape with parameters + */ + +function extendShape(opts) { + return Path.extend(opts); +} +/** + * Extend path + */ + + +function extendPath(pathData, opts) { + return pathTool.extendFromString(pathData, opts); +} +/** + * Create a path element from path data string + * @param {string} pathData + * @param {Object} opts + * @param {module:zrender/core/BoundingRect} rect + * @param {string} [layout=cover] 'center' or 'cover' + */ + + +function makePath(pathData, opts, rect, layout) { + var path = pathTool.createFromString(pathData, opts); + var boundingRect = path.getBoundingRect(); + + if (rect) { + if (layout === 'center') { + rect = centerGraphic(rect, boundingRect); + } + + resizePath(path, rect); + } + + return path; +} +/** + * Create a image element from image url + * @param {string} imageUrl image url + * @param {Object} opts options + * @param {module:zrender/core/BoundingRect} rect constrain rect + * @param {string} [layout=cover] 'center' or 'cover' + */ + + +function makeImage(imageUrl, rect, layout) { + var path = new Image({ + style: { + image: imageUrl, + x: rect.x, + y: rect.y, + width: rect.width, + height: rect.height + }, + onload: function (img) { + if (layout === 'center') { + var boundingRect = { + width: img.width, + height: img.height + }; + path.setStyle(centerGraphic(rect, boundingRect)); + } + } + }); + return path; +} +/** + * Get position of centered element in bounding box. + * + * @param {Object} rect element local bounding box + * @param {Object} boundingRect constraint bounding box + * @return {Object} element position containing x, y, width, and height + */ + + +function centerGraphic(rect, boundingRect) { + // Set rect to center, keep width / height ratio. + var aspect = boundingRect.width / boundingRect.height; + var width = rect.height * aspect; + var height; + + if (width <= rect.width) { + height = rect.height; + } else { + width = rect.width; + height = width / aspect; + } + + var cx = rect.x + rect.width / 2; + var cy = rect.y + rect.height / 2; + return { + x: cx - width / 2, + y: cy - height / 2, + width: width, + height: height + }; +} + +var mergePath = pathTool.mergePath; +/** + * Resize a path to fit the rect + * @param {module:zrender/graphic/Path} path + * @param {Object} rect + */ + +function resizePath(path, rect) { + if (!path.applyTransform) { + return; + } + + var pathRect = path.getBoundingRect(); + var m = pathRect.calculateTransform(rect); + path.applyTransform(m); +} +/** + * Sub pixel optimize line for canvas + * + * @param {Object} param + * @param {Object} [param.shape] + * @param {number} [param.shape.x1] + * @param {number} [param.shape.y1] + * @param {number} [param.shape.x2] + * @param {number} [param.shape.y2] + * @param {Object} [param.style] + * @param {number} [param.style.lineWidth] + * @return {Object} Modified param + */ + + +function subPixelOptimizeLine(param) { + var shape = param.shape; + var lineWidth = param.style.lineWidth; + + if (round(shape.x1 * 2) === round(shape.x2 * 2)) { + shape.x1 = shape.x2 = subPixelOptimize(shape.x1, lineWidth, true); + } + + if (round(shape.y1 * 2) === round(shape.y2 * 2)) { + shape.y1 = shape.y2 = subPixelOptimize(shape.y1, lineWidth, true); + } + + return param; +} +/** + * Sub pixel optimize rect for canvas + * + * @param {Object} param + * @param {Object} [param.shape] + * @param {number} [param.shape.x] + * @param {number} [param.shape.y] + * @param {number} [param.shape.width] + * @param {number} [param.shape.height] + * @param {Object} [param.style] + * @param {number} [param.style.lineWidth] + * @return {Object} Modified param + */ + + +function subPixelOptimizeRect(param) { + var shape = param.shape; + var lineWidth = param.style.lineWidth; + var originX = shape.x; + var originY = shape.y; + var originWidth = shape.width; + var originHeight = shape.height; + shape.x = subPixelOptimize(shape.x, lineWidth, true); + shape.y = subPixelOptimize(shape.y, lineWidth, true); + shape.width = Math.max(subPixelOptimize(originX + originWidth, lineWidth, false) - shape.x, originWidth === 0 ? 0 : 1); + shape.height = Math.max(subPixelOptimize(originY + originHeight, lineWidth, false) - shape.y, originHeight === 0 ? 0 : 1); + return param; +} +/** + * Sub pixel optimize for canvas + * + * @param {number} position Coordinate, such as x, y + * @param {number} lineWidth Should be nonnegative integer. + * @param {boolean=} positiveOrNegative Default false (negative). + * @return {number} Optimized position. + */ + + +function subPixelOptimize(position, lineWidth, positiveOrNegative) { + // Assure that (position + lineWidth / 2) is near integer edge, + // otherwise line will be fuzzy in canvas. + var doubledPosition = round(position * 2); + return (doubledPosition + round(lineWidth)) % 2 === 0 ? doubledPosition / 2 : (doubledPosition + (positiveOrNegative ? 1 : -1)) / 2; +} + +function hasFillOrStroke(fillOrStroke) { + return fillOrStroke != null && fillOrStroke != 'none'; +} + +function liftColor(color) { + return typeof color === 'string' ? colorTool.lift(color, -0.1) : color; +} +/** + * @private + */ + + +function cacheElementStl(el) { + if (el.__hoverStlDirty) { + var stroke = el.style.stroke; + var fill = el.style.fill; // Create hoverStyle on mouseover + + var hoverStyle = el.__hoverStl; + hoverStyle.fill = hoverStyle.fill || (hasFillOrStroke(fill) ? liftColor(fill) : null); + hoverStyle.stroke = hoverStyle.stroke || (hasFillOrStroke(stroke) ? liftColor(stroke) : null); + var normalStyle = {}; + + for (var name in hoverStyle) { + // See comment in `doSingleEnterHover`. + if (hoverStyle[name] != null) { + normalStyle[name] = el.style[name]; + } + } + + el.__normalStl = normalStyle; + el.__hoverStlDirty = false; + } +} +/** + * @private + */ + + +function doSingleEnterHover(el) { + if (el.__isHover) { + return; + } + + cacheElementStl(el); + + if (el.useHoverLayer) { + el.__zr && el.__zr.addHover(el, el.__hoverStl); + } else { + var style = el.style; + var insideRollbackOpt = style.insideRollbackOpt; // Consider case: only `position: 'top'` is set on emphasis, then text + // color should be returned to `autoColor`, rather than remain '#fff'. + // So we should rollback then apply again after style merging. + + insideRollbackOpt && rollbackInsideStyle(style); // styles can be: + // { + // label: { + // normal: { + // show: false, + // position: 'outside', + // fontSize: 18 + // }, + // emphasis: { + // show: true + // } + // } + // }, + // where properties of `emphasis` may not appear in `normal`. We previously use + // module:echarts/util/model#defaultEmphasis to merge `normal` to `emphasis`. + // But consider rich text and setOption in merge mode, it is impossible to cover + // all properties in merge. So we use merge mode when setting style here, where + // only properties that is not `null/undefined` can be set. The disadventage: + // null/undefined can not be used to remove style any more in `emphasis`. + + style.extendFrom(el.__hoverStl); // Do not save `insideRollback`. + + if (insideRollbackOpt) { + applyInsideStyle(style, style.insideOriginalTextPosition, insideRollbackOpt); // textFill may be rollbacked to null. + + if (style.textFill == null) { + style.textFill = insideRollbackOpt.autoColor; + } + } + + el.dirty(false); + el.z2 += 1; + } + + el.__isHover = true; +} +/** + * @inner + */ + + +function doSingleLeaveHover(el) { + if (!el.__isHover) { + return; + } + + var normalStl = el.__normalStl; + + if (el.useHoverLayer) { + el.__zr && el.__zr.removeHover(el); + } else { + // Consider null/undefined value, should use + // `setStyle` but not `extendFrom(stl, true)`. + normalStl && el.setStyle(normalStl); + el.z2 -= 1; + } + + el.__isHover = false; +} +/** + * @inner + */ + + +function doEnterHover(el) { + el.type === 'group' ? el.traverse(function (child) { + if (child.type !== 'group') { + doSingleEnterHover(child); + } + }) : doSingleEnterHover(el); +} + +function doLeaveHover(el) { + el.type === 'group' ? el.traverse(function (child) { + if (child.type !== 'group') { + doSingleLeaveHover(child); + } + }) : doSingleLeaveHover(el); +} +/** + * @inner + */ + + +function setElementHoverStl(el, hoverStl) { + // If element has sepcified hoverStyle, then use it instead of given hoverStyle + // Often used when item group has a label element and it's hoverStyle is different + el.__hoverStl = el.hoverStyle || hoverStl || {}; + el.__hoverStlDirty = true; + + if (el.__isHover) { + cacheElementStl(el); + } +} +/** + * @inner + */ + + +function onElementMouseOver(e) { + if (this.__hoverSilentOnTouch && e.zrByTouch) { + return; + } // Only if element is not in emphasis status + + + !this.__isEmphasis && doEnterHover(this); +} +/** + * @inner + */ + + +function onElementMouseOut(e) { + if (this.__hoverSilentOnTouch && e.zrByTouch) { + return; + } // Only if element is not in emphasis status + + + !this.__isEmphasis && doLeaveHover(this); +} +/** + * @inner + */ + + +function enterEmphasis() { + this.__isEmphasis = true; + doEnterHover(this); +} +/** + * @inner + */ + + +function leaveEmphasis() { + this.__isEmphasis = false; + doLeaveHover(this); +} +/** + * Set hover style of element. + * This method can be called repeatly without side-effects. + * @param {module:zrender/Element} el + * @param {Object} [hoverStyle] + * @param {Object} [opt] + * @param {boolean} [opt.hoverSilentOnTouch=false] + * In touch device, mouseover event will be trigger on touchstart event + * (see module:zrender/dom/HandlerProxy). By this mechanism, we can + * conviniently use hoverStyle when tap on touch screen without additional + * code for compatibility. + * But if the chart/component has select feature, which usually also use + * hoverStyle, there might be conflict between 'select-highlight' and + * 'hover-highlight' especially when roam is enabled (see geo for example). + * In this case, hoverSilentOnTouch should be used to disable hover-highlight + * on touch device. + */ + + +function setHoverStyle(el, hoverStyle, opt) { + el.__hoverSilentOnTouch = opt && opt.hoverSilentOnTouch; + el.type === 'group' ? el.traverse(function (child) { + if (child.type !== 'group') { + setElementHoverStl(child, hoverStyle); + } + }) : setElementHoverStl(el, hoverStyle); // Duplicated function will be auto-ignored, see Eventful.js. + + el.on('mouseover', onElementMouseOver).on('mouseout', onElementMouseOut); // Emphasis, normal can be triggered manually + + el.on('emphasis', enterEmphasis).on('normal', leaveEmphasis); +} +/** + * @param {Object|module:zrender/graphic/Style} normalStyle + * @param {Object} emphasisStyle + * @param {module:echarts/model/Model} normalModel + * @param {module:echarts/model/Model} emphasisModel + * @param {Object} opt Check `opt` of `setTextStyleCommon` to find other props. + * @param {Object} [opt.defaultText] + * @param {module:echarts/model/Model} [opt.labelFetcher] Fetch text by + * `opt.labelFetcher.getFormattedLabel(opt.labelDataIndex, 'normal'/'emphasis', null, opt.labelDimIndex)` + * @param {module:echarts/model/Model} [opt.labelDataIndex] Fetch text by + * `opt.textFetcher.getFormattedLabel(opt.labelDataIndex, 'normal'/'emphasis', null, opt.labelDimIndex)` + * @param {module:echarts/model/Model} [opt.labelDimIndex] Fetch text by + * `opt.textFetcher.getFormattedLabel(opt.labelDataIndex, 'normal'/'emphasis', null, opt.labelDimIndex)` + * @param {Object} [normalSpecified] + * @param {Object} [emphasisSpecified] + */ + + +function setLabelStyle(normalStyle, emphasisStyle, normalModel, emphasisModel, opt, normalSpecified, emphasisSpecified) { + opt = opt || EMPTY_OBJ; + var labelFetcher = opt.labelFetcher; + var labelDataIndex = opt.labelDataIndex; + var labelDimIndex = opt.labelDimIndex; // This scenario, `label.normal.show = true; label.emphasis.show = false`, + // is not supported util someone requests. + + var showNormal = normalModel.getShallow('show'); + var showEmphasis = emphasisModel.getShallow('show'); // Consider performance, only fetch label when necessary. + // If `normal.show` is `false` and `emphasis.show` is `true` and `emphasis.formatter` is not set, + // label should be displayed, where text is fetched by `normal.formatter` or `opt.defaultText`. + + var baseText = showNormal || showEmphasis ? zrUtil.retrieve2(labelFetcher ? labelFetcher.getFormattedLabel(labelDataIndex, 'normal', null, labelDimIndex) : null, opt.defaultText) : null; + var normalStyleText = showNormal ? baseText : null; + var emphasisStyleText = showEmphasis ? zrUtil.retrieve2(labelFetcher ? labelFetcher.getFormattedLabel(labelDataIndex, 'emphasis', null, labelDimIndex) : null, baseText) : null; // Optimize: If style.text is null, text will not be drawn. + + if (normalStyleText != null || emphasisStyleText != null) { + // Always set `textStyle` even if `normalStyle.text` is null, because default + // values have to be set on `normalStyle`. + // If we set default values on `emphasisStyle`, consider case: + // Firstly, `setOption(... label: {normal: {text: null}, emphasis: {show: true}} ...);` + // Secondly, `setOption(... label: {noraml: {show: true, text: 'abc', color: 'red'} ...);` + // Then the 'red' will not work on emphasis. + setTextStyle(normalStyle, normalModel, normalSpecified, opt); + setTextStyle(emphasisStyle, emphasisModel, emphasisSpecified, opt, true); + } + + normalStyle.text = normalStyleText; + emphasisStyle.text = emphasisStyleText; +} +/** + * Set basic textStyle properties. + * @param {Object|module:zrender/graphic/Style} textStyle + * @param {module:echarts/model/Model} model + * @param {Object} [specifiedTextStyle] Can be overrided by settings in model. + * @param {Object} [opt] See `opt` of `setTextStyleCommon`. + * @param {boolean} [isEmphasis] + */ + + +function setTextStyle(textStyle, textStyleModel, specifiedTextStyle, opt, isEmphasis) { + setTextStyleCommon(textStyle, textStyleModel, opt, isEmphasis); + specifiedTextStyle && zrUtil.extend(textStyle, specifiedTextStyle); + textStyle.host && textStyle.host.dirty && textStyle.host.dirty(false); + return textStyle; +} +/** + * Set text option in the style. + * @deprecated + * @param {Object} textStyle + * @param {module:echarts/model/Model} labelModel + * @param {string|boolean} defaultColor Default text color. + * If set as false, it will be processed as a emphasis style. + */ + + +function setText(textStyle, labelModel, defaultColor) { + var opt = { + isRectText: true + }; + var isEmphasis; + + if (defaultColor === false) { + isEmphasis = true; + } else { + // Support setting color as 'auto' to get visual color. + opt.autoColor = defaultColor; + } + + setTextStyleCommon(textStyle, labelModel, opt, isEmphasis); + textStyle.host && textStyle.host.dirty && textStyle.host.dirty(false); +} +/** + * { + * disableBox: boolean, Whether diable drawing box of block (outer most). + * isRectText: boolean, + * autoColor: string, specify a color when color is 'auto', + * for textFill, textStroke, textBackgroundColor, and textBorderColor. + * If autoColor specified, it is used as default textFill. + * useInsideStyle: + * `true`: Use inside style (textFill, textStroke, textStrokeWidth) + * if `textFill` is not specified. + * `false`: Do not use inside style. + * `null/undefined`: use inside style if `isRectText` is true and + * `textFill` is not specified and textPosition contains `'inside'`. + * forceRich: boolean + * } + */ + + +function setTextStyleCommon(textStyle, textStyleModel, opt, isEmphasis) { + // Consider there will be abnormal when merge hover style to normal style if given default value. + opt = opt || EMPTY_OBJ; + + if (opt.isRectText) { + var textPosition = textStyleModel.getShallow('position') || (isEmphasis ? null : 'inside'); // 'outside' is not a valid zr textPostion value, but used + // in bar series, and magric type should be considered. + + textPosition === 'outside' && (textPosition = 'top'); + textStyle.textPosition = textPosition; + textStyle.textOffset = textStyleModel.getShallow('offset'); + var labelRotate = textStyleModel.getShallow('rotate'); + labelRotate != null && (labelRotate *= Math.PI / 180); + textStyle.textRotation = labelRotate; + textStyle.textDistance = zrUtil.retrieve2(textStyleModel.getShallow('distance'), isEmphasis ? null : 5); + } + + var ecModel = textStyleModel.ecModel; + var globalTextStyle = ecModel && ecModel.option.textStyle; // Consider case: + // { + // data: [{ + // value: 12, + // label: { + // normal: { + // rich: { + // // no 'a' here but using parent 'a'. + // } + // } + // } + // }], + // rich: { + // a: { ... } + // } + // } + + var richItemNames = getRichItemNames(textStyleModel); + var richResult; + + if (richItemNames) { + richResult = {}; + + for (var name in richItemNames) { + if (richItemNames.hasOwnProperty(name)) { + // Cascade is supported in rich. + var richTextStyle = textStyleModel.getModel(['rich', name]); // In rich, never `disableBox`. + + setTokenTextStyle(richResult[name] = {}, richTextStyle, globalTextStyle, opt, isEmphasis); + } + } + } + + textStyle.rich = richResult; + setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isEmphasis, true); + + if (opt.forceRich && !opt.textStyle) { + opt.textStyle = {}; + } + + return textStyle; +} // Consider case: +// { +// data: [{ +// value: 12, +// label: { +// normal: { +// rich: { +// // no 'a' here but using parent 'a'. +// } +// } +// } +// }], +// rich: { +// a: { ... } +// } +// } + + +function getRichItemNames(textStyleModel) { + // Use object to remove duplicated names. + var richItemNameMap; + + while (textStyleModel && textStyleModel !== textStyleModel.ecModel) { + var rich = (textStyleModel.option || EMPTY_OBJ).rich; + + if (rich) { + richItemNameMap = richItemNameMap || {}; + + for (var name in rich) { + if (rich.hasOwnProperty(name)) { + richItemNameMap[name] = 1; + } + } + } + + textStyleModel = textStyleModel.parentModel; + } + + return richItemNameMap; +} + +function setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isEmphasis, isBlock) { + // In merge mode, default value should not be given. + globalTextStyle = !isEmphasis && globalTextStyle || EMPTY_OBJ; + textStyle.textFill = getAutoColor(textStyleModel.getShallow('color'), opt) || globalTextStyle.color; + textStyle.textStroke = getAutoColor(textStyleModel.getShallow('textBorderColor'), opt) || globalTextStyle.textBorderColor; + textStyle.textStrokeWidth = zrUtil.retrieve2(textStyleModel.getShallow('textBorderWidth'), globalTextStyle.textBorderWidth); + + if (!isEmphasis) { + if (isBlock) { + // Always set `insideRollback`, for clearing previous. + var originalTextPosition = textStyle.textPosition; + textStyle.insideRollback = applyInsideStyle(textStyle, originalTextPosition, opt); // Save original textPosition, because style.textPosition will be repalced by + // real location (like [10, 30]) in zrender. + + textStyle.insideOriginalTextPosition = originalTextPosition; + textStyle.insideRollbackOpt = opt; + } // Set default finally. + + + if (textStyle.textFill == null) { + textStyle.textFill = opt.autoColor; + } + } // Do not use `getFont` here, because merge should be supported, where + // part of these properties may be changed in emphasis style, and the + // others should remain their original value got from normal style. + + + textStyle.fontStyle = textStyleModel.getShallow('fontStyle') || globalTextStyle.fontStyle; + textStyle.fontWeight = textStyleModel.getShallow('fontWeight') || globalTextStyle.fontWeight; + textStyle.fontSize = textStyleModel.getShallow('fontSize') || globalTextStyle.fontSize; + textStyle.fontFamily = textStyleModel.getShallow('fontFamily') || globalTextStyle.fontFamily; + textStyle.textAlign = textStyleModel.getShallow('align'); + textStyle.textVerticalAlign = textStyleModel.getShallow('verticalAlign') || textStyleModel.getShallow('baseline'); + textStyle.textLineHeight = textStyleModel.getShallow('lineHeight'); + textStyle.textWidth = textStyleModel.getShallow('width'); + textStyle.textHeight = textStyleModel.getShallow('height'); + textStyle.textTag = textStyleModel.getShallow('tag'); + + if (!isBlock || !opt.disableBox) { + textStyle.textBackgroundColor = getAutoColor(textStyleModel.getShallow('backgroundColor'), opt); + textStyle.textPadding = textStyleModel.getShallow('padding'); + textStyle.textBorderColor = getAutoColor(textStyleModel.getShallow('borderColor'), opt); + textStyle.textBorderWidth = textStyleModel.getShallow('borderWidth'); + textStyle.textBorderRadius = textStyleModel.getShallow('borderRadius'); + textStyle.textBoxShadowColor = textStyleModel.getShallow('shadowColor'); + textStyle.textBoxShadowBlur = textStyleModel.getShallow('shadowBlur'); + textStyle.textBoxShadowOffsetX = textStyleModel.getShallow('shadowOffsetX'); + textStyle.textBoxShadowOffsetY = textStyleModel.getShallow('shadowOffsetY'); + } + + textStyle.textShadowColor = textStyleModel.getShallow('textShadowColor') || globalTextStyle.textShadowColor; + textStyle.textShadowBlur = textStyleModel.getShallow('textShadowBlur') || globalTextStyle.textShadowBlur; + textStyle.textShadowOffsetX = textStyleModel.getShallow('textShadowOffsetX') || globalTextStyle.textShadowOffsetX; + textStyle.textShadowOffsetY = textStyleModel.getShallow('textShadowOffsetY') || globalTextStyle.textShadowOffsetY; +} + +function getAutoColor(color, opt) { + return color !== 'auto' ? color : opt && opt.autoColor ? opt.autoColor : null; +} + +function applyInsideStyle(textStyle, textPosition, opt) { + var useInsideStyle = opt.useInsideStyle; + var insideRollback; + + if (textStyle.textFill == null && useInsideStyle !== false && (useInsideStyle === true || opt.isRectText && textPosition // textPosition can be [10, 30] + && typeof textPosition === 'string' && textPosition.indexOf('inside') >= 0)) { + insideRollback = { + textFill: null, + textStroke: textStyle.textStroke, + textStrokeWidth: textStyle.textStrokeWidth + }; + textStyle.textFill = '#fff'; // Consider text with #fff overflow its container. + + if (textStyle.textStroke == null) { + textStyle.textStroke = opt.autoColor; + textStyle.textStrokeWidth == null && (textStyle.textStrokeWidth = 2); + } + } + + return insideRollback; +} + +function rollbackInsideStyle(style) { + var insideRollback = style.insideRollback; + + if (insideRollback) { + style.textFill = insideRollback.textFill; + style.textStroke = insideRollback.textStroke; + style.textStrokeWidth = insideRollback.textStrokeWidth; + } +} + +function getFont(opt, ecModel) { + // ecModel or default text style model. + var gTextStyleModel = ecModel || ecModel.getModel('textStyle'); + return [// FIXME in node-canvas fontWeight is before fontStyle + opt.fontStyle || gTextStyleModel && gTextStyleModel.getShallow('fontStyle') || '', opt.fontWeight || gTextStyleModel && gTextStyleModel.getShallow('fontWeight') || '', (opt.fontSize || gTextStyleModel && gTextStyleModel.getShallow('fontSize') || 12) + 'px', opt.fontFamily || gTextStyleModel && gTextStyleModel.getShallow('fontFamily') || 'sans-serif'].join(' '); +} + +function animateOrSetProps(isUpdate, el, props, animatableModel, dataIndex, cb) { + if (typeof dataIndex === 'function') { + cb = dataIndex; + dataIndex = null; + } // Do not check 'animation' property directly here. Consider this case: + // animation model is an `itemModel`, whose does not have `isAnimationEnabled` + // but its parent model (`seriesModel`) does. + + + var animationEnabled = animatableModel && animatableModel.isAnimationEnabled(); + + if (animationEnabled) { + var postfix = isUpdate ? 'Update' : ''; + var duration = animatableModel.getShallow('animationDuration' + postfix); + var animationEasing = animatableModel.getShallow('animationEasing' + postfix); + var animationDelay = animatableModel.getShallow('animationDelay' + postfix); + + if (typeof animationDelay === 'function') { + animationDelay = animationDelay(dataIndex, animatableModel.getAnimationDelayParams ? animatableModel.getAnimationDelayParams(el, dataIndex) : null); + } + + if (typeof duration === 'function') { + duration = duration(dataIndex); + } + + duration > 0 ? el.animateTo(props, duration, animationDelay || 0, animationEasing, cb, !!cb) : (el.stopAnimation(), el.attr(props), cb && cb()); + } else { + el.stopAnimation(); + el.attr(props); + cb && cb(); + } +} +/** + * Update graphic element properties with or without animation according to the + * configuration in series. + * + * Caution: this method will stop previous animation. + * So if do not use this method to one element twice before + * animation starts, unless you know what you are doing. + * + * @param {module:zrender/Element} el + * @param {Object} props + * @param {module:echarts/model/Model} [animatableModel] + * @param {number} [dataIndex] + * @param {Function} [cb] + * @example + * graphic.updateProps(el, { + * position: [100, 100] + * }, seriesModel, dataIndex, function () { console.log('Animation done!'); }); + * // Or + * graphic.updateProps(el, { + * position: [100, 100] + * }, seriesModel, function () { console.log('Animation done!'); }); + */ + + +function updateProps(el, props, animatableModel, dataIndex, cb) { + animateOrSetProps(true, el, props, animatableModel, dataIndex, cb); +} +/** + * Init graphic element properties with or without animation according to the + * configuration in series. + * + * Caution: this method will stop previous animation. + * So if do not use this method to one element twice before + * animation starts, unless you know what you are doing. + * + * @param {module:zrender/Element} el + * @param {Object} props + * @param {module:echarts/model/Model} [animatableModel] + * @param {number} [dataIndex] + * @param {Function} cb + */ + + +function initProps(el, props, animatableModel, dataIndex, cb) { + animateOrSetProps(false, el, props, animatableModel, dataIndex, cb); +} +/** + * Get transform matrix of target (param target), + * in coordinate of its ancestor (param ancestor) + * + * @param {module:zrender/mixin/Transformable} target + * @param {module:zrender/mixin/Transformable} [ancestor] + */ + + +function getTransform(target, ancestor) { + var mat = matrix.identity([]); + + while (target && target !== ancestor) { + matrix.mul(mat, target.getLocalTransform(), mat); + target = target.parent; + } + + return mat; +} +/** + * Apply transform to an vertex. + * @param {Array.} target [x, y] + * @param {Array.|TypedArray.|Object} transform Can be: + * + Transform matrix: like [1, 0, 0, 1, 0, 0] + * + {position, rotation, scale}, the same as `zrender/Transformable`. + * @param {boolean=} invert Whether use invert matrix. + * @return {Array.} [x, y] + */ + + +function applyTransform(target, transform, invert) { + if (transform && !zrUtil.isArrayLike(transform)) { + transform = Transformable.getLocalTransform(transform); + } + + if (invert) { + transform = matrix.invert([], transform); + } + + return vector.applyTransform([], target, transform); +} +/** + * @param {string} direction 'left' 'right' 'top' 'bottom' + * @param {Array.} transform Transform matrix: like [1, 0, 0, 1, 0, 0] + * @param {boolean=} invert Whether use invert matrix. + * @return {string} Transformed direction. 'left' 'right' 'top' 'bottom' + */ + + +function transformDirection(direction, transform, invert) { + // Pick a base, ensure that transform result will not be (0, 0). + var hBase = transform[4] === 0 || transform[5] === 0 || transform[0] === 0 ? 1 : Math.abs(2 * transform[4] / transform[0]); + var vBase = transform[4] === 0 || transform[5] === 0 || transform[2] === 0 ? 1 : Math.abs(2 * transform[4] / transform[2]); + var vertex = [direction === 'left' ? -hBase : direction === 'right' ? hBase : 0, direction === 'top' ? -vBase : direction === 'bottom' ? vBase : 0]; + vertex = applyTransform(vertex, transform, invert); + return Math.abs(vertex[0]) > Math.abs(vertex[1]) ? vertex[0] > 0 ? 'right' : 'left' : vertex[1] > 0 ? 'bottom' : 'top'; +} +/** + * Apply group transition animation from g1 to g2. + * If no animatableModel, no animation. + */ + + +function groupTransition(g1, g2, animatableModel, cb) { + if (!g1 || !g2) { + return; + } + + function getElMap(g) { + var elMap = {}; + g.traverse(function (el) { + if (!el.isGroup && el.anid) { + elMap[el.anid] = el; + } + }); + return elMap; + } + + function getAnimatableProps(el) { + var obj = { + position: vector.clone(el.position), + rotation: el.rotation + }; + + if (el.shape) { + obj.shape = zrUtil.extend({}, el.shape); + } + + return obj; + } + + var elMap1 = getElMap(g1); + g2.traverse(function (el) { + if (!el.isGroup && el.anid) { + var oldEl = elMap1[el.anid]; + + if (oldEl) { + var newProp = getAnimatableProps(el); + el.attr(getAnimatableProps(oldEl)); + updateProps(el, newProp, animatableModel, el.dataIndex); + } // else { + // if (el.previousProps) { + // graphic.updateProps + // } + // } + + } + }); +} +/** + * @param {Array.>} points Like: [[23, 44], [53, 66], ...] + * @param {Object} rect {x, y, width, height} + * @return {Array.>} A new clipped points. + */ + + +function clipPointsByRect(points, rect) { + return zrUtil.map(points, function (point) { + var x = point[0]; + x = mathMax(x, rect.x); + x = mathMin(x, rect.x + rect.width); + var y = point[1]; + y = mathMax(y, rect.y); + y = mathMin(y, rect.y + rect.height); + return [x, y]; + }); +} +/** + * @param {Object} targetRect {x, y, width, height} + * @param {Object} rect {x, y, width, height} + * @return {Object} A new clipped rect. If rect size are negative, return undefined. + */ + + +function clipRectByRect(targetRect, rect) { + var x = mathMax(targetRect.x, rect.x); + var x2 = mathMin(targetRect.x + targetRect.width, rect.x + rect.width); + var y = mathMax(targetRect.y, rect.y); + var y2 = mathMin(targetRect.y + targetRect.height, rect.y + rect.height); + + if (x2 >= x && y2 >= y) { + return { + x: x, + y: y, + width: x2 - x, + height: y2 - y + }; + } +} +/** + * @param {string} iconStr Support 'image://' or 'path://' or direct svg path. + * @param {Object} [opt] Properties of `module:zrender/Element`, except `style`. + * @param {Object} [rect] {x, y, width, height} + * @return {module:zrender/Element} Icon path or image element. + */ + + +function createIcon(iconStr, opt, rect) { + opt = zrUtil.extend({ + rectHover: true + }, opt); + var style = opt.style = { + strokeNoScale: true + }; + rect = rect || { + x: -1, + y: -1, + width: 2, + height: 2 + }; + + if (iconStr) { + return iconStr.indexOf('image://') === 0 ? (style.image = iconStr.slice(8), zrUtil.defaults(style, rect), new Image(opt)) : makePath(iconStr.replace('path://', ''), opt, rect, 'center'); + } +} + +exports.extendShape = extendShape; +exports.extendPath = extendPath; +exports.makePath = makePath; +exports.makeImage = makeImage; +exports.mergePath = mergePath; +exports.resizePath = resizePath; +exports.subPixelOptimizeLine = subPixelOptimizeLine; +exports.subPixelOptimizeRect = subPixelOptimizeRect; +exports.subPixelOptimize = subPixelOptimize; +exports.setHoverStyle = setHoverStyle; +exports.setLabelStyle = setLabelStyle; +exports.setTextStyle = setTextStyle; +exports.setText = setText; +exports.getFont = getFont; +exports.updateProps = updateProps; +exports.initProps = initProps; +exports.getTransform = getTransform; +exports.applyTransform = applyTransform; +exports.transformDirection = transformDirection; +exports.groupTransition = groupTransition; +exports.clipPointsByRect = clipPointsByRect; +exports.clipRectByRect = clipRectByRect; +exports.createIcon = createIcon; + +/***/ }), +/* 39 */ +/***/ (function(module, exports, __webpack_require__) { + +var Path = __webpack_require__(1); + +var PathProxy = __webpack_require__(6); + +var transformPath = __webpack_require__(57); + +// command chars +var cc = ['m', 'M', 'l', 'L', 'v', 'V', 'h', 'H', 'z', 'Z', 'c', 'C', 'q', 'Q', 't', 'T', 's', 'S', 'a', 'A']; +var mathSqrt = Math.sqrt; +var mathSin = Math.sin; +var mathCos = Math.cos; +var PI = Math.PI; + +var vMag = function (v) { + return Math.sqrt(v[0] * v[0] + v[1] * v[1]); +}; + +var vRatio = function (u, v) { + return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v)); +}; + +var vAngle = function (u, v) { + return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vRatio(u, v)); +}; + +function processArc(x1, y1, x2, y2, fa, fs, rx, ry, psiDeg, cmd, path) { + var psi = psiDeg * (PI / 180.0); + var xp = mathCos(psi) * (x1 - x2) / 2.0 + mathSin(psi) * (y1 - y2) / 2.0; + var yp = -1 * mathSin(psi) * (x1 - x2) / 2.0 + mathCos(psi) * (y1 - y2) / 2.0; + var lambda = xp * xp / (rx * rx) + yp * yp / (ry * ry); + + if (lambda > 1) { + rx *= mathSqrt(lambda); + ry *= mathSqrt(lambda); + } + + var f = (fa === fs ? -1 : 1) * mathSqrt((rx * rx * (ry * ry) - rx * rx * (yp * yp) - ry * ry * (xp * xp)) / (rx * rx * (yp * yp) + ry * ry * (xp * xp))) || 0; + var cxp = f * rx * yp / ry; + var cyp = f * -ry * xp / rx; + var cx = (x1 + x2) / 2.0 + mathCos(psi) * cxp - mathSin(psi) * cyp; + var cy = (y1 + y2) / 2.0 + mathSin(psi) * cxp + mathCos(psi) * cyp; + var theta = vAngle([1, 0], [(xp - cxp) / rx, (yp - cyp) / ry]); + var u = [(xp - cxp) / rx, (yp - cyp) / ry]; + var v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry]; + var dTheta = vAngle(u, v); + + if (vRatio(u, v) <= -1) { + dTheta = PI; + } + + if (vRatio(u, v) >= 1) { + dTheta = 0; + } + + if (fs === 0 && dTheta > 0) { + dTheta = dTheta - 2 * PI; + } + + if (fs === 1 && dTheta < 0) { + dTheta = dTheta + 2 * PI; + } + + path.addData(cmd, cx, cy, rx, ry, theta, dTheta, psi, fs); +} + +function createPathProxyFromString(data) { + if (!data) { + return []; + } // command string + + + var cs = data.replace(/-/g, ' -').replace(/ /g, ' ').replace(/ /g, ',').replace(/,,/g, ','); + var n; // create pipes so that we can split the data + + for (n = 0; n < cc.length; n++) { + cs = cs.replace(new RegExp(cc[n], 'g'), '|' + cc[n]); + } // create array + + + var arr = cs.split('|'); // init context point + + var cpx = 0; + var cpy = 0; + var path = new PathProxy(); + var CMD = PathProxy.CMD; + var prevCmd; + + for (n = 1; n < arr.length; n++) { + var str = arr[n]; + var c = str.charAt(0); + var off = 0; + var p = str.slice(1).replace(/e,-/g, 'e-').split(','); + var cmd; + + if (p.length > 0 && p[0] === '') { + p.shift(); + } + + for (var i = 0; i < p.length; i++) { + p[i] = parseFloat(p[i]); + } + + while (off < p.length && !isNaN(p[off])) { + if (isNaN(p[0])) { + break; + } + + var ctlPtx; + var ctlPty; + var rx; + var ry; + var psi; + var fa; + var fs; + var x1 = cpx; + var y1 = cpy; // convert l, H, h, V, and v to L + + switch (c) { + case 'l': + cpx += p[off++]; + cpy += p[off++]; + cmd = CMD.L; + path.addData(cmd, cpx, cpy); + break; + + case 'L': + cpx = p[off++]; + cpy = p[off++]; + cmd = CMD.L; + path.addData(cmd, cpx, cpy); + break; + + case 'm': + cpx += p[off++]; + cpy += p[off++]; + cmd = CMD.M; + path.addData(cmd, cpx, cpy); + c = 'l'; + break; + + case 'M': + cpx = p[off++]; + cpy = p[off++]; + cmd = CMD.M; + path.addData(cmd, cpx, cpy); + c = 'L'; + break; + + case 'h': + cpx += p[off++]; + cmd = CMD.L; + path.addData(cmd, cpx, cpy); + break; + + case 'H': + cpx = p[off++]; + cmd = CMD.L; + path.addData(cmd, cpx, cpy); + break; + + case 'v': + cpy += p[off++]; + cmd = CMD.L; + path.addData(cmd, cpx, cpy); + break; + + case 'V': + cpy = p[off++]; + cmd = CMD.L; + path.addData(cmd, cpx, cpy); + break; + + case 'C': + cmd = CMD.C; + path.addData(cmd, p[off++], p[off++], p[off++], p[off++], p[off++], p[off++]); + cpx = p[off - 2]; + cpy = p[off - 1]; + break; + + case 'c': + cmd = CMD.C; + path.addData(cmd, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy); + cpx += p[off - 2]; + cpy += p[off - 1]; + break; + + case 'S': + ctlPtx = cpx; + ctlPty = cpy; + var len = path.len(); + var pathData = path.data; + + if (prevCmd === CMD.C) { + ctlPtx += cpx - pathData[len - 4]; + ctlPty += cpy - pathData[len - 3]; + } + + cmd = CMD.C; + x1 = p[off++]; + y1 = p[off++]; + cpx = p[off++]; + cpy = p[off++]; + path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy); + break; + + case 's': + ctlPtx = cpx; + ctlPty = cpy; + var len = path.len(); + var pathData = path.data; + + if (prevCmd === CMD.C) { + ctlPtx += cpx - pathData[len - 4]; + ctlPty += cpy - pathData[len - 3]; + } + + cmd = CMD.C; + x1 = cpx + p[off++]; + y1 = cpy + p[off++]; + cpx += p[off++]; + cpy += p[off++]; + path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy); + break; + + case 'Q': + x1 = p[off++]; + y1 = p[off++]; + cpx = p[off++]; + cpy = p[off++]; + cmd = CMD.Q; + path.addData(cmd, x1, y1, cpx, cpy); + break; + + case 'q': + x1 = p[off++] + cpx; + y1 = p[off++] + cpy; + cpx += p[off++]; + cpy += p[off++]; + cmd = CMD.Q; + path.addData(cmd, x1, y1, cpx, cpy); + break; + + case 'T': + ctlPtx = cpx; + ctlPty = cpy; + var len = path.len(); + var pathData = path.data; + + if (prevCmd === CMD.Q) { + ctlPtx += cpx - pathData[len - 4]; + ctlPty += cpy - pathData[len - 3]; + } + + cpx = p[off++]; + cpy = p[off++]; + cmd = CMD.Q; + path.addData(cmd, ctlPtx, ctlPty, cpx, cpy); + break; + + case 't': + ctlPtx = cpx; + ctlPty = cpy; + var len = path.len(); + var pathData = path.data; + + if (prevCmd === CMD.Q) { + ctlPtx += cpx - pathData[len - 4]; + ctlPty += cpy - pathData[len - 3]; + } + + cpx += p[off++]; + cpy += p[off++]; + cmd = CMD.Q; + path.addData(cmd, ctlPtx, ctlPty, cpx, cpy); + break; + + case 'A': + rx = p[off++]; + ry = p[off++]; + psi = p[off++]; + fa = p[off++]; + fs = p[off++]; + x1 = cpx, y1 = cpy; + cpx = p[off++]; + cpy = p[off++]; + cmd = CMD.A; + processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path); + break; + + case 'a': + rx = p[off++]; + ry = p[off++]; + psi = p[off++]; + fa = p[off++]; + fs = p[off++]; + x1 = cpx, y1 = cpy; + cpx += p[off++]; + cpy += p[off++]; + cmd = CMD.A; + processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path); + break; + } + } + + if (c === 'z' || c === 'Z') { + cmd = CMD.Z; + path.addData(cmd); + } + + prevCmd = cmd; + } + + path.toStatic(); + return path; +} // TODO Optimize double memory cost problem + + +function createPathOptions(str, opts) { + var pathProxy = createPathProxyFromString(str); + opts = opts || {}; + + opts.buildPath = function (path) { + if (path.setData) { + path.setData(pathProxy.data); // Svg and vml renderer don't have context + + var ctx = path.getContext(); + + if (ctx) { + path.rebuildPath(ctx); + } + } else { + var ctx = path; + pathProxy.rebuildPath(ctx); + } + }; + + opts.applyTransform = function (m) { + transformPath(pathProxy, m); + this.dirty(true); + }; + + return opts; +} +/** + * Create a Path object from path string data + * http://www.w3.org/TR/SVG/paths.html#PathData + * @param {Object} opts Other options + */ + + +function createFromString(str, opts) { + return new Path(createPathOptions(str, opts)); +} +/** + * Create a Path class from path string data + * @param {string} str + * @param {Object} opts Other options + */ + + +function extendFromString(str, opts) { + return Path.extend(createPathOptions(str, opts)); +} +/** + * Merge multiple paths + */ +// TODO Apply transform +// TODO stroke dash +// TODO Optimize double memory cost problem + + +function mergePath(pathEls, opts) { + var pathList = []; + var len = pathEls.length; + + for (var i = 0; i < len; i++) { + var pathEl = pathEls[i]; + + if (!pathEl.path) { + pathEl.createPathProxy(); + } + + if (pathEl.__dirtyPath) { + pathEl.buildPath(pathEl.path, pathEl.shape, true); + } + + pathList.push(pathEl.path); + } + + var pathBundle = new Path(opts); // Need path proxy. + + pathBundle.createPathProxy(); + + pathBundle.buildPath = function (path) { + path.appendPath(pathList); // Svg and vml renderer don't have context + + var ctx = path.getContext(); + + if (ctx) { + path.rebuildPath(ctx); + } + }; + + return pathBundle; +} + +exports.createFromString = createFromString; +exports.extendFromString = extendFromString; +exports.mergePath = mergePath; + +/***/ }), +/* 40 */ +/***/ (function(module, exports) { + +var STYLE_COMMON_PROPS = [['shadowBlur', 0], ['shadowOffsetX', 0], ['shadowOffsetY', 0], ['shadowColor', '#000'], ['lineCap', 'butt'], ['lineJoin', 'miter'], ['miterLimit', 10]]; // var SHADOW_PROPS = STYLE_COMMON_PROPS.slice(0, 4); +// var LINE_PROPS = STYLE_COMMON_PROPS.slice(4); + +var Style = function (opts, host) { + this.extendFrom(opts, false); + this.host = host; +}; + +function createLinearGradient(ctx, obj, rect) { + var x = obj.x == null ? 0 : obj.x; + var x2 = obj.x2 == null ? 1 : obj.x2; + var y = obj.y == null ? 0 : obj.y; + var y2 = obj.y2 == null ? 0 : obj.y2; + + if (!obj.global) { + x = x * rect.width + rect.x; + x2 = x2 * rect.width + rect.x; + y = y * rect.height + rect.y; + y2 = y2 * rect.height + rect.y; + } + + var canvasGradient = ctx.createLinearGradient(x, y, x2, y2); + return canvasGradient; +} + +function createRadialGradient(ctx, obj, rect) { + var width = rect.width; + var height = rect.height; + var min = Math.min(width, height); + var x = obj.x == null ? 0.5 : obj.x; + var y = obj.y == null ? 0.5 : obj.y; + var r = obj.r == null ? 0.5 : obj.r; + + if (!obj.global) { + x = x * width + rect.x; + y = y * height + rect.y; + r = r * min; + } + + var canvasGradient = ctx.createRadialGradient(x, y, 0, x, y, r); + return canvasGradient; +} + +Style.prototype = { + constructor: Style, + + /** + * @type {module:zrender/graphic/Displayable} + */ + host: null, + + /** + * @type {string} + */ + fill: '#000', + + /** + * @type {string} + */ + stroke: null, + + /** + * @type {number} + */ + opacity: 1, + + /** + * @type {Array.} + */ + lineDash: null, + + /** + * @type {number} + */ + lineDashOffset: 0, + + /** + * @type {number} + */ + shadowBlur: 0, + + /** + * @type {number} + */ + shadowOffsetX: 0, + + /** + * @type {number} + */ + shadowOffsetY: 0, + + /** + * @type {number} + */ + lineWidth: 1, + + /** + * If stroke ignore scale + * @type {Boolean} + */ + strokeNoScale: false, + // Bounding rect text configuration + // Not affected by element transform + + /** + * @type {string} + */ + text: null, + + /** + * If `fontSize` or `fontFamily` exists, `font` will be reset by + * `fontSize`, `fontStyle`, `fontWeight`, `fontFamily`. + * So do not visit it directly in upper application (like echarts), + * but use `contain/text#makeFont` instead. + * @type {string} + */ + font: null, + + /** + * The same as font. Use font please. + * @deprecated + * @type {string} + */ + textFont: null, + + /** + * It helps merging respectively, rather than parsing an entire font string. + * @type {string} + */ + fontStyle: null, + + /** + * It helps merging respectively, rather than parsing an entire font string. + * @type {string} + */ + fontWeight: null, + + /** + * It helps merging respectively, rather than parsing an entire font string. + * Should be 12 but not '12px'. + * @type {number} + */ + fontSize: null, + + /** + * It helps merging respectively, rather than parsing an entire font string. + * @type {string} + */ + fontFamily: null, + + /** + * Reserved for special functinality, like 'hr'. + * @type {string} + */ + textTag: null, + + /** + * @type {string} + */ + textFill: '#000', + + /** + * @type {string} + */ + textStroke: null, + + /** + * @type {number} + */ + textWidth: null, + + /** + * Only for textBackground. + * @type {number} + */ + textHeight: null, + + /** + * textStroke may be set as some color as a default + * value in upper applicaion, where the default value + * of textStrokeWidth should be 0 to make sure that + * user can choose to do not use text stroke. + * @type {number} + */ + textStrokeWidth: 0, + + /** + * @type {number} + */ + textLineHeight: null, + + /** + * 'inside', 'left', 'right', 'top', 'bottom' + * [x, y] + * Based on x, y of rect. + * @type {string|Array.} + * @default 'inside' + */ + textPosition: 'inside', + + /** + * If not specified, use the boundingRect of a `displayable`. + * @type {Object} + */ + textRect: null, + + /** + * [x, y] + * @type {Array.} + */ + textOffset: null, + + /** + * @type {string} + */ + textAlign: null, + + /** + * @type {string} + */ + textVerticalAlign: null, + + /** + * @type {number} + */ + textDistance: 5, + + /** + * @type {string} + */ + textShadowColor: 'transparent', + + /** + * @type {number} + */ + textShadowBlur: 0, + + /** + * @type {number} + */ + textShadowOffsetX: 0, + + /** + * @type {number} + */ + textShadowOffsetY: 0, + + /** + * @type {string} + */ + textBoxShadowColor: 'transparent', + + /** + * @type {number} + */ + textBoxShadowBlur: 0, + + /** + * @type {number} + */ + textBoxShadowOffsetX: 0, + + /** + * @type {number} + */ + textBoxShadowOffsetY: 0, + + /** + * Whether transform text. + * Only useful in Path and Image element + * @type {boolean} + */ + transformText: false, + + /** + * Text rotate around position of Path or Image + * Only useful in Path and Image element and transformText is false. + */ + textRotation: 0, + + /** + * Text origin of text rotation, like [10, 40]. + * Based on x, y of rect. + * Useful in label rotation of circular symbol. + * By default, this origin is textPosition. + * Can be 'center'. + * @type {string|Array.} + */ + textOrigin: null, + + /** + * @type {string} + */ + textBackgroundColor: null, + + /** + * @type {string} + */ + textBorderColor: null, + + /** + * @type {number} + */ + textBorderWidth: 0, + + /** + * @type {number} + */ + textBorderRadius: 0, + + /** + * Can be `2` or `[2, 4]` or `[2, 3, 4, 5]` + * @type {number|Array.} + */ + textPadding: null, + + /** + * Text styles for rich text. + * @type {Object} + */ + rich: null, + + /** + * {outerWidth, outerHeight, ellipsis, placeholder} + * @type {Object} + */ + truncate: null, + + /** + * https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation + * @type {string} + */ + blend: null, + + /** + * @param {CanvasRenderingContext2D} ctx + */ + bind: function (ctx, el, prevEl) { + var style = this; + var prevStyle = prevEl && prevEl.style; + var firstDraw = !prevStyle; + + for (var i = 0; i < STYLE_COMMON_PROPS.length; i++) { + var prop = STYLE_COMMON_PROPS[i]; + var styleName = prop[0]; + + if (firstDraw || style[styleName] !== prevStyle[styleName]) { + // FIXME Invalid property value will cause style leak from previous element. + ctx[styleName] = style[styleName] || prop[1]; + } + } + + if (firstDraw || style.fill !== prevStyle.fill) { + ctx.fillStyle = style.fill; + } + + if (firstDraw || style.stroke !== prevStyle.stroke) { + ctx.strokeStyle = style.stroke; + } + + if (firstDraw || style.opacity !== prevStyle.opacity) { + ctx.globalAlpha = style.opacity == null ? 1 : style.opacity; + } + + if (firstDraw || style.blend !== prevStyle.blend) { + ctx.globalCompositeOperation = style.blend || 'source-over'; + } + + if (this.hasStroke()) { + var lineWidth = style.lineWidth; + ctx.lineWidth = lineWidth / (this.strokeNoScale && el && el.getLineScale ? el.getLineScale() : 1); + } + }, + hasFill: function () { + var fill = this.fill; + return fill != null && fill !== 'none'; + }, + hasStroke: function () { + var stroke = this.stroke; + return stroke != null && stroke !== 'none' && this.lineWidth > 0; + }, + + /** + * Extend from other style + * @param {zrender/graphic/Style} otherStyle + * @param {boolean} overwrite true: overwrirte any way. + * false: overwrite only when !target.hasOwnProperty + * others: overwrite when property is not null/undefined. + */ + extendFrom: function (otherStyle, overwrite) { + if (otherStyle) { + for (var name in otherStyle) { + if (otherStyle.hasOwnProperty(name) && (overwrite === true || (overwrite === false ? !this.hasOwnProperty(name) : otherStyle[name] != null))) { + this[name] = otherStyle[name]; + } + } + } + }, + + /** + * Batch setting style with a given object + * @param {Object|string} obj + * @param {*} [obj] + */ + set: function (obj, value) { + if (typeof obj === 'string') { + this[obj] = value; + } else { + this.extendFrom(obj, true); + } + }, + + /** + * Clone + * @return {zrender/graphic/Style} [description] + */ + clone: function () { + var newStyle = new this.constructor(); + newStyle.extendFrom(this, true); + return newStyle; + }, + getGradient: function (ctx, obj, rect) { + var method = obj.type === 'radial' ? createRadialGradient : createLinearGradient; + var canvasGradient = method(ctx, obj, rect); + var colorStops = obj.colorStops; + + for (var i = 0; i < colorStops.length; i++) { + canvasGradient.addColorStop(colorStops[i].offset, colorStops[i].color); + } + + return canvasGradient; + } +}; +var styleProto = Style.prototype; + +for (var i = 0; i < STYLE_COMMON_PROPS.length; i++) { + var prop = STYLE_COMMON_PROPS[i]; + + if (!(prop[0] in styleProto)) { + styleProto[prop[0]] = prop[1]; + } +} // Provide for others + + +Style.getGradient = styleProto.getGradient; +var _default = Style; +module.exports = _default; + +/***/ }), +/* 41 */ +/***/ (function(module, exports) { + +/** + * zrender: 生成唯一id + * + * @author errorrik (errorrik@gmail.com) + */ +var idStart = 0x0907; + +function _default() { + return idStart++; +} + +module.exports = _default; + +/***/ }), +/* 42 */ +/***/ (function(module, exports) { + +/** + * 事件扩展 + * @module zrender/mixin/Eventful + * @author Kener (@Kener-林峰, kener.linfeng@gmail.com) + * pissang (https://www.github.com/pissang) + */ +var arrySlice = Array.prototype.slice; +/** + * 事件分发器 + * @alias module:zrender/mixin/Eventful + * @constructor + */ + +var Eventful = function () { + this._$handlers = {}; +}; + +Eventful.prototype = { + constructor: Eventful, + + /** + * 单次触发绑定,trigger后销毁 + * + * @param {string} event 事件名 + * @param {Function} handler 响应函数 + * @param {Object} context + */ + one: function (event, handler, context) { + var _h = this._$handlers; + + if (!handler || !event) { + return this; + } + + if (!_h[event]) { + _h[event] = []; + } + + for (var i = 0; i < _h[event].length; i++) { + if (_h[event][i].h === handler) { + return this; + } + } + + _h[event].push({ + h: handler, + one: true, + ctx: context || this + }); + + return this; + }, + + /** + * 绑定事件 + * @param {string} event 事件名 + * @param {Function} handler 事件处理函数 + * @param {Object} [context] + */ + on: function (event, handler, context) { + var _h = this._$handlers; + + if (!handler || !event) { + return this; + } + + if (!_h[event]) { + _h[event] = []; + } + + for (var i = 0; i < _h[event].length; i++) { + if (_h[event][i].h === handler) { + return this; + } + } + + _h[event].push({ + h: handler, + one: false, + ctx: context || this + }); + + return this; + }, + + /** + * 是否绑定了事件 + * @param {string} event + * @return {boolean} + */ + isSilent: function (event) { + var _h = this._$handlers; + return _h[event] && _h[event].length; + }, + + /** + * 解绑事件 + * @param {string} event 事件名 + * @param {Function} [handler] 事件处理函数 + */ + off: function (event, handler) { + var _h = this._$handlers; + + if (!event) { + this._$handlers = {}; + return this; + } + + if (handler) { + if (_h[event]) { + var newList = []; + + for (var i = 0, l = _h[event].length; i < l; i++) { + if (_h[event][i]['h'] != handler) { + newList.push(_h[event][i]); + } + } + + _h[event] = newList; + } + + if (_h[event] && _h[event].length === 0) { + delete _h[event]; + } + } else { + delete _h[event]; + } + + return this; + }, + + /** + * 事件分发 + * + * @param {string} type 事件类型 + */ + trigger: function (type) { + if (this._$handlers[type]) { + var args = arguments; + var argLen = args.length; + + if (argLen > 3) { + args = arrySlice.call(args, 1); + } + + var _h = this._$handlers[type]; + var len = _h.length; + + for (var i = 0; i < len;) { + // Optimize advise from backbone + switch (argLen) { + case 1: + _h[i]['h'].call(_h[i]['ctx']); + + break; + + case 2: + _h[i]['h'].call(_h[i]['ctx'], args[1]); + + break; + + case 3: + _h[i]['h'].call(_h[i]['ctx'], args[1], args[2]); + + break; + + default: + // have more than 2 given arguments + _h[i]['h'].apply(_h[i]['ctx'], args); + + break; + } + + if (_h[i]['one']) { + _h.splice(i, 1); + + len--; + } else { + i++; + } + } + } + + return this; + }, + + /** + * 带有context的事件分发, 最后一个参数是事件回调的context + * @param {string} type 事件类型 + */ + triggerWithContext: function (type) { + if (this._$handlers[type]) { + var args = arguments; + var argLen = args.length; + + if (argLen > 4) { + args = arrySlice.call(args, 1, args.length - 1); + } + + var ctx = args[args.length - 1]; + var _h = this._$handlers[type]; + var len = _h.length; + + for (var i = 0; i < len;) { + // Optimize advise from backbone + switch (argLen) { + case 1: + _h[i]['h'].call(ctx); + + break; + + case 2: + _h[i]['h'].call(ctx, args[1]); + + break; + + case 3: + _h[i]['h'].call(ctx, args[1], args[2]); + + break; + + default: + // have more than 2 given arguments + _h[i]['h'].apply(ctx, args); + + break; + } + + if (_h[i]['one']) { + _h.splice(i, 1); + + len--; + } else { + i++; + } + } + } + + return this; + } +}; // 对象可以通过 onxxxx 绑定事件 + +/** + * @event module:zrender/mixin/Eventful#onclick + * @type {Function} + * @default null + */ + +/** + * @event module:zrender/mixin/Eventful#onmouseover + * @type {Function} + * @default null + */ + +/** + * @event module:zrender/mixin/Eventful#onmouseout + * @type {Function} + * @default null + */ + +/** + * @event module:zrender/mixin/Eventful#onmousemove + * @type {Function} + * @default null + */ + +/** + * @event module:zrender/mixin/Eventful#onmousewheel + * @type {Function} + * @default null + */ + +/** + * @event module:zrender/mixin/Eventful#onmousedown + * @type {Function} + * @default null + */ + +/** + * @event module:zrender/mixin/Eventful#onmouseup + * @type {Function} + * @default null + */ + +/** + * @event module:zrender/mixin/Eventful#ondrag + * @type {Function} + * @default null + */ + +/** + * @event module:zrender/mixin/Eventful#ondragstart + * @type {Function} + * @default null + */ + +/** + * @event module:zrender/mixin/Eventful#ondragend + * @type {Function} + * @default null + */ + +/** + * @event module:zrender/mixin/Eventful#ondragenter + * @type {Function} + * @default null + */ + +/** + * @event module:zrender/mixin/Eventful#ondragleave + * @type {Function} + * @default null + */ + +/** + * @event module:zrender/mixin/Eventful#ondragover + * @type {Function} + * @default null + */ + +/** + * @event module:zrender/mixin/Eventful#ondrop + * @type {Function} + * @default null + */ + +var _default = Eventful; +module.exports = _default; + +/***/ }), +/* 43 */ +/***/ (function(module, exports, __webpack_require__) { + +var Animator = __webpack_require__(44); + +var log = __webpack_require__(47); + +var _util = __webpack_require__(0); + +var isString = _util.isString; +var isFunction = _util.isFunction; +var isObject = _util.isObject; +var isArrayLike = _util.isArrayLike; +var indexOf = _util.indexOf; + +/** + * @alias modue:zrender/mixin/Animatable + * @constructor + */ +var Animatable = function () { + /** + * @type {Array.} + * @readOnly + */ + this.animators = []; +}; + +Animatable.prototype = { + constructor: Animatable, + + /** + * 动画 + * + * @param {string} path The path to fetch value from object, like 'a.b.c'. + * @param {boolean} [loop] Whether to loop animation. + * @return {module:zrender/animation/Animator} + * @example: + * el.animate('style', false) + * .when(1000, {x: 10} ) + * .done(function(){ // Animation done }) + * .start() + */ + animate: function (path, loop) { + var target; + var animatingShape = false; + var el = this; + var zr = this.__zr; + + if (path) { + var pathSplitted = path.split('.'); + var prop = el; // If animating shape + + animatingShape = pathSplitted[0] === 'shape'; + + for (var i = 0, l = pathSplitted.length; i < l; i++) { + if (!prop) { + continue; + } + + prop = prop[pathSplitted[i]]; + } + + if (prop) { + target = prop; + } + } else { + target = el; + } + + if (!target) { + log('Property "' + path + '" is not existed in element ' + el.id); + return; + } + + var animators = el.animators; + var animator = new Animator(target, loop); + animator.during(function (target) { + el.dirty(animatingShape); + }).done(function () { + // FIXME Animator will not be removed if use `Animator#stop` to stop animation + animators.splice(indexOf(animators, animator), 1); + }); + animators.push(animator); // If animate after added to the zrender + + if (zr) { + zr.animation.addAnimator(animator); + } + + return animator; + }, + + /** + * 停止动画 + * @param {boolean} forwardToLast If move to last frame before stop + */ + stopAnimation: function (forwardToLast) { + var animators = this.animators; + var len = animators.length; + + for (var i = 0; i < len; i++) { + animators[i].stop(forwardToLast); + } + + animators.length = 0; + return this; + }, + + /** + * Caution: this method will stop previous animation. + * So do not use this method to one element twice before + * animation starts, unless you know what you are doing. + * @param {Object} target + * @param {number} [time=500] Time in ms + * @param {string} [easing='linear'] + * @param {number} [delay=0] + * @param {Function} [callback] + * @param {Function} [forceAnimate] Prevent stop animation and callback + * immediently when target values are the same as current values. + * + * @example + * // Animate position + * el.animateTo({ + * position: [10, 10] + * }, function () { // done }) + * + * // Animate shape, style and position in 100ms, delayed 100ms, with cubicOut easing + * el.animateTo({ + * shape: { + * width: 500 + * }, + * style: { + * fill: 'red' + * } + * position: [10, 10] + * }, 100, 100, 'cubicOut', function () { // done }) + */ + // TODO Return animation key + animateTo: function (target, time, delay, easing, callback, forceAnimate) { + // animateTo(target, time, easing, callback); + if (isString(delay)) { + callback = easing; + easing = delay; + delay = 0; + } // animateTo(target, time, delay, callback); + else if (isFunction(easing)) { + callback = easing; + easing = 'linear'; + delay = 0; + } // animateTo(target, time, callback); + else if (isFunction(delay)) { + callback = delay; + delay = 0; + } // animateTo(target, callback) + else if (isFunction(time)) { + callback = time; + time = 500; + } // animateTo(target) + else if (!time) { + time = 500; + } // Stop all previous animations + + + this.stopAnimation(); + + this._animateToShallow('', this, target, time, delay); // Animators may be removed immediately after start + // if there is nothing to animate + + + var animators = this.animators.slice(); + var count = animators.length; + + function done() { + count--; + + if (!count) { + callback && callback(); + } + } // No animators. This should be checked before animators[i].start(), + // because 'done' may be executed immediately if no need to animate. + + + if (!count) { + callback && callback(); + } // Start after all animators created + // Incase any animator is done immediately when all animation properties are not changed + + + for (var i = 0; i < animators.length; i++) { + animators[i].done(done).start(easing, forceAnimate); + } + }, + + /** + * @private + * @param {string} path='' + * @param {Object} source=this + * @param {Object} target + * @param {number} [time=500] + * @param {number} [delay=0] + * + * @example + * // Animate position + * el._animateToShallow({ + * position: [10, 10] + * }) + * + * // Animate shape, style and position in 100ms, delayed 100ms + * el._animateToShallow({ + * shape: { + * width: 500 + * }, + * style: { + * fill: 'red' + * } + * position: [10, 10] + * }, 100, 100) + */ + _animateToShallow: function (path, source, target, time, delay) { + var objShallow = {}; + var propertyCount = 0; + + for (var name in target) { + if (!target.hasOwnProperty(name)) { + continue; + } + + if (source[name] != null) { + if (isObject(target[name]) && !isArrayLike(target[name])) { + this._animateToShallow(path ? path + '.' + name : name, source[name], target[name], time, delay); + } else { + objShallow[name] = target[name]; + propertyCount++; + } + } else if (target[name] != null) { + // Attr directly if not has property + // FIXME, if some property not needed for element ? + if (!path) { + this.attr(name, target[name]); + } else { + // Shape or style + var props = {}; + props[path] = {}; + props[path][name] = target[name]; + this.attr(props); + } + } + } + + if (propertyCount > 0) { + this.animate(path, false).when(time == null ? 500 : time, objShallow).delay(delay || 0); + } + + return this; + } +}; +var _default = Animatable; +module.exports = _default; + +/***/ }), +/* 44 */ +/***/ (function(module, exports, __webpack_require__) { + +var Clip = __webpack_require__(45); + +var color = __webpack_require__(18); + +var _util = __webpack_require__(0); + +var isArrayLike = _util.isArrayLike; + +/** + * @module echarts/animation/Animator + */ +var arraySlice = Array.prototype.slice; + +function defaultGetter(target, key) { + return target[key]; +} + +function defaultSetter(target, key, value) { + target[key] = value; +} +/** + * @param {number} p0 + * @param {number} p1 + * @param {number} percent + * @return {number} + */ + + +function interpolateNumber(p0, p1, percent) { + return (p1 - p0) * percent + p0; +} +/** + * @param {string} p0 + * @param {string} p1 + * @param {number} percent + * @return {string} + */ + + +function interpolateString(p0, p1, percent) { + return percent > 0.5 ? p1 : p0; +} +/** + * @param {Array} p0 + * @param {Array} p1 + * @param {number} percent + * @param {Array} out + * @param {number} arrDim + */ + + +function interpolateArray(p0, p1, percent, out, arrDim) { + var len = p0.length; + + if (arrDim == 1) { + for (var i = 0; i < len; i++) { + out[i] = interpolateNumber(p0[i], p1[i], percent); + } + } else { + var len2 = len && p0[0].length; + + for (var i = 0; i < len; i++) { + for (var j = 0; j < len2; j++) { + out[i][j] = interpolateNumber(p0[i][j], p1[i][j], percent); + } + } + } +} // arr0 is source array, arr1 is target array. +// Do some preprocess to avoid error happened when interpolating from arr0 to arr1 + + +function fillArr(arr0, arr1, arrDim) { + var arr0Len = arr0.length; + var arr1Len = arr1.length; + + if (arr0Len !== arr1Len) { + // FIXME Not work for TypedArray + var isPreviousLarger = arr0Len > arr1Len; + + if (isPreviousLarger) { + // Cut the previous + arr0.length = arr1Len; + } else { + // Fill the previous + for (var i = arr0Len; i < arr1Len; i++) { + arr0.push(arrDim === 1 ? arr1[i] : arraySlice.call(arr1[i])); + } + } + } // Handling NaN value + + + var len2 = arr0[0] && arr0[0].length; + + for (var i = 0; i < arr0.length; i++) { + if (arrDim === 1) { + if (isNaN(arr0[i])) { + arr0[i] = arr1[i]; + } + } else { + for (var j = 0; j < len2; j++) { + if (isNaN(arr0[i][j])) { + arr0[i][j] = arr1[i][j]; + } + } + } + } +} +/** + * @param {Array} arr0 + * @param {Array} arr1 + * @param {number} arrDim + * @return {boolean} + */ + + +function isArraySame(arr0, arr1, arrDim) { + if (arr0 === arr1) { + return true; + } + + var len = arr0.length; + + if (len !== arr1.length) { + return false; + } + + if (arrDim === 1) { + for (var i = 0; i < len; i++) { + if (arr0[i] !== arr1[i]) { + return false; + } + } + } else { + var len2 = arr0[0].length; + + for (var i = 0; i < len; i++) { + for (var j = 0; j < len2; j++) { + if (arr0[i][j] !== arr1[i][j]) { + return false; + } + } + } + } + + return true; +} +/** + * Catmull Rom interpolate array + * @param {Array} p0 + * @param {Array} p1 + * @param {Array} p2 + * @param {Array} p3 + * @param {number} t + * @param {number} t2 + * @param {number} t3 + * @param {Array} out + * @param {number} arrDim + */ + + +function catmullRomInterpolateArray(p0, p1, p2, p3, t, t2, t3, out, arrDim) { + var len = p0.length; + + if (arrDim == 1) { + for (var i = 0; i < len; i++) { + out[i] = catmullRomInterpolate(p0[i], p1[i], p2[i], p3[i], t, t2, t3); + } + } else { + var len2 = p0[0].length; + + for (var i = 0; i < len; i++) { + for (var j = 0; j < len2; j++) { + out[i][j] = catmullRomInterpolate(p0[i][j], p1[i][j], p2[i][j], p3[i][j], t, t2, t3); + } + } + } +} +/** + * Catmull Rom interpolate number + * @param {number} p0 + * @param {number} p1 + * @param {number} p2 + * @param {number} p3 + * @param {number} t + * @param {number} t2 + * @param {number} t3 + * @return {number} + */ + + +function catmullRomInterpolate(p0, p1, p2, p3, t, t2, t3) { + var v0 = (p2 - p0) * 0.5; + var v1 = (p3 - p1) * 0.5; + return (2 * (p1 - p2) + v0 + v1) * t3 + (-3 * (p1 - p2) - 2 * v0 - v1) * t2 + v0 * t + p1; +} + +function cloneValue(value) { + if (isArrayLike(value)) { + var len = value.length; + + if (isArrayLike(value[0])) { + var ret = []; + + for (var i = 0; i < len; i++) { + ret.push(arraySlice.call(value[i])); + } + + return ret; + } + + return arraySlice.call(value); + } + + return value; +} + +function rgba2String(rgba) { + rgba[0] = Math.floor(rgba[0]); + rgba[1] = Math.floor(rgba[1]); + rgba[2] = Math.floor(rgba[2]); + return 'rgba(' + rgba.join(',') + ')'; +} + +function getArrayDim(keyframes) { + var lastValue = keyframes[keyframes.length - 1].value; + return isArrayLike(lastValue && lastValue[0]) ? 2 : 1; +} + +function createTrackClip(animator, easing, oneTrackDone, keyframes, propName, forceAnimate) { + var getter = animator._getter; + var setter = animator._setter; + var useSpline = easing === 'spline'; + var trackLen = keyframes.length; + + if (!trackLen) { + return; + } // Guess data type + + + var firstVal = keyframes[0].value; + var isValueArray = isArrayLike(firstVal); + var isValueColor = false; + var isValueString = false; // For vertices morphing + + var arrDim = isValueArray ? getArrayDim(keyframes) : 0; + var trackMaxTime; // Sort keyframe as ascending + + keyframes.sort(function (a, b) { + return a.time - b.time; + }); + trackMaxTime = keyframes[trackLen - 1].time; // Percents of each keyframe + + var kfPercents = []; // Value of each keyframe + + var kfValues = []; + var prevValue = keyframes[0].value; + var isAllValueEqual = true; + + for (var i = 0; i < trackLen; i++) { + kfPercents.push(keyframes[i].time / trackMaxTime); // Assume value is a color when it is a string + + var value = keyframes[i].value; // Check if value is equal, deep check if value is array + + if (!(isValueArray && isArraySame(value, prevValue, arrDim) || !isValueArray && value === prevValue)) { + isAllValueEqual = false; + } + + prevValue = value; // Try converting a string to a color array + + if (typeof value == 'string') { + var colorArray = color.parse(value); + + if (colorArray) { + value = colorArray; + isValueColor = true; + } else { + isValueString = true; + } + } + + kfValues.push(value); + } + + if (!forceAnimate && isAllValueEqual) { + return; + } + + var lastValue = kfValues[trackLen - 1]; // Polyfill array and NaN value + + for (var i = 0; i < trackLen - 1; i++) { + if (isValueArray) { + fillArr(kfValues[i], lastValue, arrDim); + } else { + if (isNaN(kfValues[i]) && !isNaN(lastValue) && !isValueString && !isValueColor) { + kfValues[i] = lastValue; + } + } + } + + isValueArray && fillArr(getter(animator._target, propName), lastValue, arrDim); // Cache the key of last frame to speed up when + // animation playback is sequency + + var lastFrame = 0; + var lastFramePercent = 0; + var start; + var w; + var p0; + var p1; + var p2; + var p3; + + if (isValueColor) { + var rgba = [0, 0, 0, 0]; + } + + var onframe = function (target, percent) { + // Find the range keyframes + // kf1-----kf2---------current--------kf3 + // find kf2 and kf3 and do interpolation + var frame; // In the easing function like elasticOut, percent may less than 0 + + if (percent < 0) { + frame = 0; + } else if (percent < lastFramePercent) { + // Start from next key + // PENDING start from lastFrame ? + start = Math.min(lastFrame + 1, trackLen - 1); + + for (frame = start; frame >= 0; frame--) { + if (kfPercents[frame] <= percent) { + break; + } + } // PENDING really need to do this ? + + + frame = Math.min(frame, trackLen - 2); + } else { + for (frame = lastFrame; frame < trackLen; frame++) { + if (kfPercents[frame] > percent) { + break; + } + } + + frame = Math.min(frame - 1, trackLen - 2); + } + + lastFrame = frame; + lastFramePercent = percent; + var range = kfPercents[frame + 1] - kfPercents[frame]; + + if (range === 0) { + return; + } else { + w = (percent - kfPercents[frame]) / range; + } + + if (useSpline) { + p1 = kfValues[frame]; + p0 = kfValues[frame === 0 ? frame : frame - 1]; + p2 = kfValues[frame > trackLen - 2 ? trackLen - 1 : frame + 1]; + p3 = kfValues[frame > trackLen - 3 ? trackLen - 1 : frame + 2]; + + if (isValueArray) { + catmullRomInterpolateArray(p0, p1, p2, p3, w, w * w, w * w * w, getter(target, propName), arrDim); + } else { + var value; + + if (isValueColor) { + value = catmullRomInterpolateArray(p0, p1, p2, p3, w, w * w, w * w * w, rgba, 1); + value = rgba2String(rgba); + } else if (isValueString) { + // String is step(0.5) + return interpolateString(p1, p2, w); + } else { + value = catmullRomInterpolate(p0, p1, p2, p3, w, w * w, w * w * w); + } + + setter(target, propName, value); + } + } else { + if (isValueArray) { + interpolateArray(kfValues[frame], kfValues[frame + 1], w, getter(target, propName), arrDim); + } else { + var value; + + if (isValueColor) { + interpolateArray(kfValues[frame], kfValues[frame + 1], w, rgba, 1); + value = rgba2String(rgba); + } else if (isValueString) { + // String is step(0.5) + return interpolateString(kfValues[frame], kfValues[frame + 1], w); + } else { + value = interpolateNumber(kfValues[frame], kfValues[frame + 1], w); + } + + setter(target, propName, value); + } + } + }; + + var clip = new Clip({ + target: animator._target, + life: trackMaxTime, + loop: animator._loop, + delay: animator._delay, + onframe: onframe, + ondestroy: oneTrackDone + }); + + if (easing && easing !== 'spline') { + clip.easing = easing; + } + + return clip; +} +/** + * @alias module:zrender/animation/Animator + * @constructor + * @param {Object} target + * @param {boolean} loop + * @param {Function} getter + * @param {Function} setter + */ + + +var Animator = function (target, loop, getter, setter) { + this._tracks = {}; + this._target = target; + this._loop = loop || false; + this._getter = getter || defaultGetter; + this._setter = setter || defaultSetter; + this._clipCount = 0; + this._delay = 0; + this._doneList = []; + this._onframeList = []; + this._clipList = []; +}; + +Animator.prototype = { + /** + * 设置动画关键帧 + * @param {number} time 关键帧时间,单位是ms + * @param {Object} props 关键帧的属性值,key-value表示 + * @return {module:zrender/animation/Animator} + */ + when: function (time + /* ms */ + , props) { + var tracks = this._tracks; + + for (var propName in props) { + if (!props.hasOwnProperty(propName)) { + continue; + } + + if (!tracks[propName]) { + tracks[propName] = []; // Invalid value + + var value = this._getter(this._target, propName); + + if (value == null) { + // zrLog('Invalid property ' + propName); + continue; + } // If time is 0 + // Then props is given initialize value + // Else + // Initialize value from current prop value + + + if (time !== 0) { + tracks[propName].push({ + time: 0, + value: cloneValue(value) + }); + } + } + + tracks[propName].push({ + time: time, + value: props[propName] + }); + } + + return this; + }, + + /** + * 添加动画每一帧的回调函数 + * @param {Function} callback + * @return {module:zrender/animation/Animator} + */ + during: function (callback) { + this._onframeList.push(callback); + + return this; + }, + pause: function () { + for (var i = 0; i < this._clipList.length; i++) { + this._clipList[i].pause(); + } + + this._paused = true; + }, + resume: function () { + for (var i = 0; i < this._clipList.length; i++) { + this._clipList[i].resume(); + } + + this._paused = false; + }, + isPaused: function () { + return !!this._paused; + }, + _doneCallback: function () { + // Clear all tracks + this._tracks = {}; // Clear all clips + + this._clipList.length = 0; + var doneList = this._doneList; + var len = doneList.length; + + for (var i = 0; i < len; i++) { + doneList[i].call(this); + } + }, + + /** + * 开始执行动画 + * @param {string|Function} [easing] + * 动画缓动函数,详见{@link module:zrender/animation/easing} + * @param {boolean} forceAnimate + * @return {module:zrender/animation/Animator} + */ + start: function (easing, forceAnimate) { + var self = this; + var clipCount = 0; + + var oneTrackDone = function () { + clipCount--; + + if (!clipCount) { + self._doneCallback(); + } + }; + + var lastClip; + + for (var propName in this._tracks) { + if (!this._tracks.hasOwnProperty(propName)) { + continue; + } + + var clip = createTrackClip(this, easing, oneTrackDone, this._tracks[propName], propName, forceAnimate); + + if (clip) { + this._clipList.push(clip); + + clipCount++; // If start after added to animation + + if (this.animation) { + this.animation.addClip(clip); + } + + lastClip = clip; + } + } // Add during callback on the last clip + + + if (lastClip) { + var oldOnFrame = lastClip.onframe; + + lastClip.onframe = function (target, percent) { + oldOnFrame(target, percent); + + for (var i = 0; i < self._onframeList.length; i++) { + self._onframeList[i](target, percent); + } + }; + } // This optimization will help the case that in the upper application + // the view may be refreshed frequently, where animation will be + // called repeatly but nothing changed. + + + if (!clipCount) { + this._doneCallback(); + } + + return this; + }, + + /** + * 停止动画 + * @param {boolean} forwardToLast If move to last frame before stop + */ + stop: function (forwardToLast) { + var clipList = this._clipList; + var animation = this.animation; + + for (var i = 0; i < clipList.length; i++) { + var clip = clipList[i]; + + if (forwardToLast) { + // Move to last frame before stop + clip.onframe(this._target, 1); + } + + animation && animation.removeClip(clip); + } + + clipList.length = 0; + }, + + /** + * 设置动画延迟开始的时间 + * @param {number} time 单位ms + * @return {module:zrender/animation/Animator} + */ + delay: function (time) { + this._delay = time; + return this; + }, + + /** + * 添加动画结束的回调 + * @param {Function} cb + * @return {module:zrender/animation/Animator} + */ + done: function (cb) { + if (cb) { + this._doneList.push(cb); + } + + return this; + }, + + /** + * @return {Array.} + */ + getClips: function () { + return this._clipList; + } +}; +var _default = Animator; +module.exports = _default; + +/***/ }), +/* 45 */ +/***/ (function(module, exports, __webpack_require__) { + +var easingFuncs = __webpack_require__(46); + +/** + * 动画主控制器 + * @config target 动画对象,可以是数组,如果是数组的话会批量分发onframe等事件 + * @config life(1000) 动画时长 + * @config delay(0) 动画延迟时间 + * @config loop(true) + * @config gap(0) 循环的间隔时间 + * @config onframe + * @config easing(optional) + * @config ondestroy(optional) + * @config onrestart(optional) + * + * TODO pause + */ +function Clip(options) { + this._target = options.target; // 生命周期 + + this._life = options.life || 1000; // 延时 + + this._delay = options.delay || 0; // 开始时间 + // this._startTime = new Date().getTime() + this._delay;// 单位毫秒 + + this._initialized = false; // 是否循环 + + this.loop = options.loop == null ? false : options.loop; + this.gap = options.gap || 0; + this.easing = options.easing || 'Linear'; + this.onframe = options.onframe; + this.ondestroy = options.ondestroy; + this.onrestart = options.onrestart; + this._pausedTime = 0; + this._paused = false; +} + +Clip.prototype = { + constructor: Clip, + step: function (globalTime, deltaTime) { + // Set startTime on first step, or _startTime may has milleseconds different between clips + // PENDING + if (!this._initialized) { + this._startTime = globalTime + this._delay; + this._initialized = true; + } + + if (this._paused) { + this._pausedTime += deltaTime; + return; + } + + var percent = (globalTime - this._startTime - this._pausedTime) / this._life; // 还没开始 + + if (percent < 0) { + return; + } + + percent = Math.min(percent, 1); + var easing = this.easing; + var easingFunc = typeof easing == 'string' ? easingFuncs[easing] : easing; + var schedule = typeof easingFunc === 'function' ? easingFunc(percent) : percent; + this.fire('frame', schedule); // 结束 + + if (percent == 1) { + if (this.loop) { + this.restart(globalTime); // 重新开始周期 + // 抛出而不是直接调用事件直到 stage.update 后再统一调用这些事件 + + return 'restart'; + } // 动画完成将这个控制器标识为待删除 + // 在Animation.update中进行批量删除 + + + this._needsRemove = true; + return 'destroy'; + } + + return null; + }, + restart: function (globalTime) { + var remainder = (globalTime - this._startTime - this._pausedTime) % this._life; + this._startTime = globalTime - remainder + this.gap; + this._pausedTime = 0; + this._needsRemove = false; + }, + fire: function (eventType, arg) { + eventType = 'on' + eventType; + + if (this[eventType]) { + this[eventType](this._target, arg); + } + }, + pause: function () { + this._paused = true; + }, + resume: function () { + this._paused = false; + } +}; +var _default = Clip; +module.exports = _default; + +/***/ }), +/* 46 */ +/***/ (function(module, exports) { + +/** + * 缓动代码来自 https://github.com/sole/tween.js/blob/master/src/Tween.js + * @see http://sole.github.io/tween.js/examples/03_graphs.html + * @exports zrender/animation/easing + */ +var easing = { + /** + * @param {number} k + * @return {number} + */ + linear: function (k) { + return k; + }, + + /** + * @param {number} k + * @return {number} + */ + quadraticIn: function (k) { + return k * k; + }, + + /** + * @param {number} k + * @return {number} + */ + quadraticOut: function (k) { + return k * (2 - k); + }, + + /** + * @param {number} k + * @return {number} + */ + quadraticInOut: function (k) { + if ((k *= 2) < 1) { + return 0.5 * k * k; + } + + return -0.5 * (--k * (k - 2) - 1); + }, + // 三次方的缓动(t^3) + + /** + * @param {number} k + * @return {number} + */ + cubicIn: function (k) { + return k * k * k; + }, + + /** + * @param {number} k + * @return {number} + */ + cubicOut: function (k) { + return --k * k * k + 1; + }, + + /** + * @param {number} k + * @return {number} + */ + cubicInOut: function (k) { + if ((k *= 2) < 1) { + return 0.5 * k * k * k; + } + + return 0.5 * ((k -= 2) * k * k + 2); + }, + // 四次方的缓动(t^4) + + /** + * @param {number} k + * @return {number} + */ + quarticIn: function (k) { + return k * k * k * k; + }, + + /** + * @param {number} k + * @return {number} + */ + quarticOut: function (k) { + return 1 - --k * k * k * k; + }, + + /** + * @param {number} k + * @return {number} + */ + quarticInOut: function (k) { + if ((k *= 2) < 1) { + return 0.5 * k * k * k * k; + } + + return -0.5 * ((k -= 2) * k * k * k - 2); + }, + // 五次方的缓动(t^5) + + /** + * @param {number} k + * @return {number} + */ + quinticIn: function (k) { + return k * k * k * k * k; + }, + + /** + * @param {number} k + * @return {number} + */ + quinticOut: function (k) { + return --k * k * k * k * k + 1; + }, + + /** + * @param {number} k + * @return {number} + */ + quinticInOut: function (k) { + if ((k *= 2) < 1) { + return 0.5 * k * k * k * k * k; + } + + return 0.5 * ((k -= 2) * k * k * k * k + 2); + }, + // 正弦曲线的缓动(sin(t)) + + /** + * @param {number} k + * @return {number} + */ + sinusoidalIn: function (k) { + return 1 - Math.cos(k * Math.PI / 2); + }, + + /** + * @param {number} k + * @return {number} + */ + sinusoidalOut: function (k) { + return Math.sin(k * Math.PI / 2); + }, + + /** + * @param {number} k + * @return {number} + */ + sinusoidalInOut: function (k) { + return 0.5 * (1 - Math.cos(Math.PI * k)); + }, + // 指数曲线的缓动(2^t) + + /** + * @param {number} k + * @return {number} + */ + exponentialIn: function (k) { + return k === 0 ? 0 : Math.pow(1024, k - 1); + }, + + /** + * @param {number} k + * @return {number} + */ + exponentialOut: function (k) { + return k === 1 ? 1 : 1 - Math.pow(2, -10 * k); + }, + + /** + * @param {number} k + * @return {number} + */ + exponentialInOut: function (k) { + if (k === 0) { + return 0; + } + + if (k === 1) { + return 1; + } + + if ((k *= 2) < 1) { + return 0.5 * Math.pow(1024, k - 1); + } + + return 0.5 * (-Math.pow(2, -10 * (k - 1)) + 2); + }, + // 圆形曲线的缓动(sqrt(1-t^2)) + + /** + * @param {number} k + * @return {number} + */ + circularIn: function (k) { + return 1 - Math.sqrt(1 - k * k); + }, + + /** + * @param {number} k + * @return {number} + */ + circularOut: function (k) { + return Math.sqrt(1 - --k * k); + }, + + /** + * @param {number} k + * @return {number} + */ + circularInOut: function (k) { + if ((k *= 2) < 1) { + return -0.5 * (Math.sqrt(1 - k * k) - 1); + } + + return 0.5 * (Math.sqrt(1 - (k -= 2) * k) + 1); + }, + // 创建类似于弹簧在停止前来回振荡的动画 + + /** + * @param {number} k + * @return {number} + */ + elasticIn: function (k) { + var s; + var a = 0.1; + var p = 0.4; + + if (k === 0) { + return 0; + } + + if (k === 1) { + return 1; + } + + if (!a || a < 1) { + a = 1; + s = p / 4; + } else { + s = p * Math.asin(1 / a) / (2 * Math.PI); + } + + return -(a * Math.pow(2, 10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p)); + }, + + /** + * @param {number} k + * @return {number} + */ + elasticOut: function (k) { + var s; + var a = 0.1; + var p = 0.4; + + if (k === 0) { + return 0; + } + + if (k === 1) { + return 1; + } + + if (!a || a < 1) { + a = 1; + s = p / 4; + } else { + s = p * Math.asin(1 / a) / (2 * Math.PI); + } + + return a * Math.pow(2, -10 * k) * Math.sin((k - s) * (2 * Math.PI) / p) + 1; + }, + + /** + * @param {number} k + * @return {number} + */ + elasticInOut: function (k) { + var s; + var a = 0.1; + var p = 0.4; + + if (k === 0) { + return 0; + } + + if (k === 1) { + return 1; + } + + if (!a || a < 1) { + a = 1; + s = p / 4; + } else { + s = p * Math.asin(1 / a) / (2 * Math.PI); + } + + if ((k *= 2) < 1) { + return -0.5 * (a * Math.pow(2, 10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p)); + } + + return a * Math.pow(2, -10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p) * 0.5 + 1; + }, + // 在某一动画开始沿指示的路径进行动画处理前稍稍收回该动画的移动 + + /** + * @param {number} k + * @return {number} + */ + backIn: function (k) { + var s = 1.70158; + return k * k * ((s + 1) * k - s); + }, + + /** + * @param {number} k + * @return {number} + */ + backOut: function (k) { + var s = 1.70158; + return --k * k * ((s + 1) * k + s) + 1; + }, + + /** + * @param {number} k + * @return {number} + */ + backInOut: function (k) { + var s = 1.70158 * 1.525; + + if ((k *= 2) < 1) { + return 0.5 * (k * k * ((s + 1) * k - s)); + } + + return 0.5 * ((k -= 2) * k * ((s + 1) * k + s) + 2); + }, + // 创建弹跳效果 + + /** + * @param {number} k + * @return {number} + */ + bounceIn: function (k) { + return 1 - easing.bounceOut(1 - k); + }, + + /** + * @param {number} k + * @return {number} + */ + bounceOut: function (k) { + if (k < 1 / 2.75) { + return 7.5625 * k * k; + } else if (k < 2 / 2.75) { + return 7.5625 * (k -= 1.5 / 2.75) * k + 0.75; + } else if (k < 2.5 / 2.75) { + return 7.5625 * (k -= 2.25 / 2.75) * k + 0.9375; + } else { + return 7.5625 * (k -= 2.625 / 2.75) * k + 0.984375; + } + }, + + /** + * @param {number} k + * @return {number} + */ + bounceInOut: function (k) { + if (k < 0.5) { + return easing.bounceIn(k * 2) * 0.5; + } + + return easing.bounceOut(k * 2 - 1) * 0.5 + 0.5; + } +}; +var _default = easing; +module.exports = _default; + +/***/ }), +/* 47 */ +/***/ (function(module, exports, __webpack_require__) { + +var _config = __webpack_require__(19); + +var debugMode = _config.debugMode; + +var log = function () {}; + +if (debugMode === 1) { + log = function () { + for (var k in arguments) { + throw new Error(arguments[k]); + } + }; +} else if (debugMode > 1) { + log = function () { + for (var k in arguments) { + console.log(arguments[k]); + } + }; +} + +var _default = log; +module.exports = _default; + +/***/ }), +/* 48 */ +/***/ (function(module, exports, __webpack_require__) { + +var textHelper = __webpack_require__(20); + +var BoundingRect = __webpack_require__(3); + +/** + * Mixin for drawing text in a element bounding rect + * @module zrender/mixin/RectText + */ +var tmpRect = new BoundingRect(); + +var RectText = function () {}; + +RectText.prototype = { + constructor: RectText, + + /** + * Draw text in a rect with specified position. + * @param {CanvasRenderingContext2D} ctx + * @param {Object} rect Displayable rect + */ + drawRectText: function (ctx, rect) { + var style = this.style; + rect = style.textRect || rect; // Optimize, avoid normalize every time. + + this.__dirty && textHelper.normalizeTextStyle(style, true); + var text = style.text; // Convert to string + + text != null && (text += ''); + + if (!textHelper.needDrawText(text, style)) { + return; + } // FIXME + + + ctx.save(); // Transform rect to view space + + var transform = this.transform; + + if (!style.transformText) { + if (transform) { + tmpRect.copy(rect); + tmpRect.applyTransform(transform); + rect = tmpRect; + } + } else { + this.setTransform(ctx); + } // transformText and textRotation can not be used at the same time. + + + textHelper.renderText(this, ctx, text, style, rect); + ctx.restore(); + } +}; +var _default = RectText; +module.exports = _default; + +/***/ }), +/* 49 */ +/***/ (function(module, exports, __webpack_require__) { + +var vec2 = __webpack_require__(2); + +var curve = __webpack_require__(4); + +/** + * @author Yi Shen(https://github.com/pissang) + */ +var mathMin = Math.min; +var mathMax = Math.max; +var mathSin = Math.sin; +var mathCos = Math.cos; +var PI2 = Math.PI * 2; +var start = vec2.create(); +var end = vec2.create(); +var extremity = vec2.create(); +/** + * 从顶点数组中计算出最小包围盒,写入`min`和`max`中 + * @module zrender/core/bbox + * @param {Array} points 顶点数组 + * @param {number} min + * @param {number} max + */ + +function fromPoints(points, min, max) { + if (points.length === 0) { + return; + } + + var p = points[0]; + var left = p[0]; + var right = p[0]; + var top = p[1]; + var bottom = p[1]; + var i; + + for (i = 1; i < points.length; i++) { + p = points[i]; + left = mathMin(left, p[0]); + right = mathMax(right, p[0]); + top = mathMin(top, p[1]); + bottom = mathMax(bottom, p[1]); + } + + min[0] = left; + min[1] = top; + max[0] = right; + max[1] = bottom; +} +/** + * @memberOf module:zrender/core/bbox + * @param {number} x0 + * @param {number} y0 + * @param {number} x1 + * @param {number} y1 + * @param {Array.} min + * @param {Array.} max + */ + + +function fromLine(x0, y0, x1, y1, min, max) { + min[0] = mathMin(x0, x1); + min[1] = mathMin(y0, y1); + max[0] = mathMax(x0, x1); + max[1] = mathMax(y0, y1); +} + +var xDim = []; +var yDim = []; +/** + * 从三阶贝塞尔曲线(p0, p1, p2, p3)中计算出最小包围盒,写入`min`和`max`中 + * @memberOf module:zrender/core/bbox + * @param {number} x0 + * @param {number} y0 + * @param {number} x1 + * @param {number} y1 + * @param {number} x2 + * @param {number} y2 + * @param {number} x3 + * @param {number} y3 + * @param {Array.} min + * @param {Array.} max + */ + +function fromCubic(x0, y0, x1, y1, x2, y2, x3, y3, min, max) { + var cubicExtrema = curve.cubicExtrema; + var cubicAt = curve.cubicAt; + var i; + var n = cubicExtrema(x0, x1, x2, x3, xDim); + min[0] = Infinity; + min[1] = Infinity; + max[0] = -Infinity; + max[1] = -Infinity; + + for (i = 0; i < n; i++) { + var x = cubicAt(x0, x1, x2, x3, xDim[i]); + min[0] = mathMin(x, min[0]); + max[0] = mathMax(x, max[0]); + } + + n = cubicExtrema(y0, y1, y2, y3, yDim); + + for (i = 0; i < n; i++) { + var y = cubicAt(y0, y1, y2, y3, yDim[i]); + min[1] = mathMin(y, min[1]); + max[1] = mathMax(y, max[1]); + } + + min[0] = mathMin(x0, min[0]); + max[0] = mathMax(x0, max[0]); + min[0] = mathMin(x3, min[0]); + max[0] = mathMax(x3, max[0]); + min[1] = mathMin(y0, min[1]); + max[1] = mathMax(y0, max[1]); + min[1] = mathMin(y3, min[1]); + max[1] = mathMax(y3, max[1]); +} +/** + * 从二阶贝塞尔曲线(p0, p1, p2)中计算出最小包围盒,写入`min`和`max`中 + * @memberOf module:zrender/core/bbox + * @param {number} x0 + * @param {number} y0 + * @param {number} x1 + * @param {number} y1 + * @param {number} x2 + * @param {number} y2 + * @param {Array.} min + * @param {Array.} max + */ + + +function fromQuadratic(x0, y0, x1, y1, x2, y2, min, max) { + var quadraticExtremum = curve.quadraticExtremum; + var quadraticAt = curve.quadraticAt; // Find extremities, where derivative in x dim or y dim is zero + + var tx = mathMax(mathMin(quadraticExtremum(x0, x1, x2), 1), 0); + var ty = mathMax(mathMin(quadraticExtremum(y0, y1, y2), 1), 0); + var x = quadraticAt(x0, x1, x2, tx); + var y = quadraticAt(y0, y1, y2, ty); + min[0] = mathMin(x0, x2, x); + min[1] = mathMin(y0, y2, y); + max[0] = mathMax(x0, x2, x); + max[1] = mathMax(y0, y2, y); +} +/** + * 从圆弧中计算出最小包围盒,写入`min`和`max`中 + * @method + * @memberOf module:zrender/core/bbox + * @param {number} x + * @param {number} y + * @param {number} rx + * @param {number} ry + * @param {number} startAngle + * @param {number} endAngle + * @param {number} anticlockwise + * @param {Array.} min + * @param {Array.} max + */ + + +function fromArc(x, y, rx, ry, startAngle, endAngle, anticlockwise, min, max) { + var vec2Min = vec2.min; + var vec2Max = vec2.max; + var diff = Math.abs(startAngle - endAngle); + + if (diff % PI2 < 1e-4 && diff > 1e-4) { + // Is a circle + min[0] = x - rx; + min[1] = y - ry; + max[0] = x + rx; + max[1] = y + ry; + return; + } + + start[0] = mathCos(startAngle) * rx + x; + start[1] = mathSin(startAngle) * ry + y; + end[0] = mathCos(endAngle) * rx + x; + end[1] = mathSin(endAngle) * ry + y; + vec2Min(min, start, end); + vec2Max(max, start, end); // Thresh to [0, Math.PI * 2] + + startAngle = startAngle % PI2; + + if (startAngle < 0) { + startAngle = startAngle + PI2; + } + + endAngle = endAngle % PI2; + + if (endAngle < 0) { + endAngle = endAngle + PI2; + } + + if (startAngle > endAngle && !anticlockwise) { + endAngle += PI2; + } else if (startAngle < endAngle && anticlockwise) { + startAngle += PI2; + } + + if (anticlockwise) { + var tmp = endAngle; + endAngle = startAngle; + startAngle = tmp; + } // var number = 0; + // var step = (anticlockwise ? -Math.PI : Math.PI) / 2; + + + for (var angle = 0; angle < endAngle; angle += Math.PI / 2) { + if (angle > startAngle) { + extremity[0] = mathCos(angle) * rx + x; + extremity[1] = mathSin(angle) * ry + y; + vec2Min(min, extremity, min); + vec2Max(max, extremity, max); + } + } +} + +exports.fromPoints = fromPoints; +exports.fromLine = fromLine; +exports.fromCubic = fromCubic; +exports.fromQuadratic = fromQuadratic; +exports.fromArc = fromArc; + +/***/ }), +/* 50 */ +/***/ (function(module, exports, __webpack_require__) { + +var PathProxy = __webpack_require__(6); + +var line = __webpack_require__(51); + +var cubic = __webpack_require__(52); + +var quadratic = __webpack_require__(53); + +var arc = __webpack_require__(54); + +var _util = __webpack_require__(22); + +var normalizeRadian = _util.normalizeRadian; + +var curve = __webpack_require__(4); + +var windingLine = __webpack_require__(55); + +var CMD = PathProxy.CMD; +var PI2 = Math.PI * 2; +var EPSILON = 1e-4; + +function isAroundEqual(a, b) { + return Math.abs(a - b) < EPSILON; +} // 临时数组 + + +var roots = [-1, -1, -1]; +var extrema = [-1, -1]; + +function swapExtrema() { + var tmp = extrema[0]; + extrema[0] = extrema[1]; + extrema[1] = tmp; +} + +function windingCubic(x0, y0, x1, y1, x2, y2, x3, y3, x, y) { + // Quick reject + if (y > y0 && y > y1 && y > y2 && y > y3 || y < y0 && y < y1 && y < y2 && y < y3) { + return 0; + } + + var nRoots = curve.cubicRootAt(y0, y1, y2, y3, y, roots); + + if (nRoots === 0) { + return 0; + } else { + var w = 0; + var nExtrema = -1; + var y0_, y1_; + + for (var i = 0; i < nRoots; i++) { + var t = roots[i]; // Avoid winding error when intersection point is the connect point of two line of polygon + + var unit = t === 0 || t === 1 ? 0.5 : 1; + var x_ = curve.cubicAt(x0, x1, x2, x3, t); + + if (x_ < x) { + // Quick reject + continue; + } + + if (nExtrema < 0) { + nExtrema = curve.cubicExtrema(y0, y1, y2, y3, extrema); + + if (extrema[1] < extrema[0] && nExtrema > 1) { + swapExtrema(); + } + + y0_ = curve.cubicAt(y0, y1, y2, y3, extrema[0]); + + if (nExtrema > 1) { + y1_ = curve.cubicAt(y0, y1, y2, y3, extrema[1]); + } + } + + if (nExtrema == 2) { + // 分成三段单调函数 + if (t < extrema[0]) { + w += y0_ < y0 ? unit : -unit; + } else if (t < extrema[1]) { + w += y1_ < y0_ ? unit : -unit; + } else { + w += y3 < y1_ ? unit : -unit; + } + } else { + // 分成两段单调函数 + if (t < extrema[0]) { + w += y0_ < y0 ? unit : -unit; + } else { + w += y3 < y0_ ? unit : -unit; + } + } + } + + return w; + } +} + +function windingQuadratic(x0, y0, x1, y1, x2, y2, x, y) { + // Quick reject + if (y > y0 && y > y1 && y > y2 || y < y0 && y < y1 && y < y2) { + return 0; + } + + var nRoots = curve.quadraticRootAt(y0, y1, y2, y, roots); + + if (nRoots === 0) { + return 0; + } else { + var t = curve.quadraticExtremum(y0, y1, y2); + + if (t >= 0 && t <= 1) { + var w = 0; + var y_ = curve.quadraticAt(y0, y1, y2, t); + + for (var i = 0; i < nRoots; i++) { + // Remove one endpoint. + var unit = roots[i] === 0 || roots[i] === 1 ? 0.5 : 1; + var x_ = curve.quadraticAt(x0, x1, x2, roots[i]); + + if (x_ < x) { + // Quick reject + continue; + } + + if (roots[i] < t) { + w += y_ < y0 ? unit : -unit; + } else { + w += y2 < y_ ? unit : -unit; + } + } + + return w; + } else { + // Remove one endpoint. + var unit = roots[0] === 0 || roots[0] === 1 ? 0.5 : 1; + var x_ = curve.quadraticAt(x0, x1, x2, roots[0]); + + if (x_ < x) { + // Quick reject + return 0; + } + + return y2 < y0 ? unit : -unit; + } + } +} // TODO +// Arc 旋转 + + +function windingArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y) { + y -= cy; + + if (y > r || y < -r) { + return 0; + } + + var tmp = Math.sqrt(r * r - y * y); + roots[0] = -tmp; + roots[1] = tmp; + var diff = Math.abs(startAngle - endAngle); + + if (diff < 1e-4) { + return 0; + } + + if (diff % PI2 < 1e-4) { + // Is a circle + startAngle = 0; + endAngle = PI2; + var dir = anticlockwise ? 1 : -1; + + if (x >= roots[0] + cx && x <= roots[1] + cx) { + return dir; + } else { + return 0; + } + } + + if (anticlockwise) { + var tmp = startAngle; + startAngle = normalizeRadian(endAngle); + endAngle = normalizeRadian(tmp); + } else { + startAngle = normalizeRadian(startAngle); + endAngle = normalizeRadian(endAngle); + } + + if (startAngle > endAngle) { + endAngle += PI2; + } + + var w = 0; + + for (var i = 0; i < 2; i++) { + var x_ = roots[i]; + + if (x_ + cx > x) { + var angle = Math.atan2(y, x_); + var dir = anticlockwise ? 1 : -1; + + if (angle < 0) { + angle = PI2 + angle; + } + + if (angle >= startAngle && angle <= endAngle || angle + PI2 >= startAngle && angle + PI2 <= endAngle) { + if (angle > Math.PI / 2 && angle < Math.PI * 1.5) { + dir = -dir; + } + + w += dir; + } + } + } + + return w; +} + +function containPath(data, lineWidth, isStroke, x, y) { + var w = 0; + var xi = 0; + var yi = 0; + var x0 = 0; + var y0 = 0; + + for (var i = 0; i < data.length;) { + var cmd = data[i++]; // Begin a new subpath + + if (cmd === CMD.M && i > 1) { + // Close previous subpath + if (!isStroke) { + w += windingLine(xi, yi, x0, y0, x, y); + } // 如果被任何一个 subpath 包含 + // if (w !== 0) { + // return true; + // } + + } + + if (i == 1) { + // 如果第一个命令是 L, C, Q + // 则 previous point 同绘制命令的第一个 point + // + // 第一个命令为 Arc 的情况下会在后面特殊处理 + xi = data[i]; + yi = data[i + 1]; + x0 = xi; + y0 = yi; + } + + switch (cmd) { + case CMD.M: + // moveTo 命令重新创建一个新的 subpath, 并且更新新的起点 + // 在 closePath 的时候使用 + x0 = data[i++]; + y0 = data[i++]; + xi = x0; + yi = y0; + break; + + case CMD.L: + if (isStroke) { + if (line.containStroke(xi, yi, data[i], data[i + 1], lineWidth, x, y)) { + return true; + } + } else { + // NOTE 在第一个命令为 L, C, Q 的时候会计算出 NaN + w += windingLine(xi, yi, data[i], data[i + 1], x, y) || 0; + } + + xi = data[i++]; + yi = data[i++]; + break; + + case CMD.C: + if (isStroke) { + if (cubic.containStroke(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) { + return true; + } + } else { + w += windingCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y) || 0; + } + + xi = data[i++]; + yi = data[i++]; + break; + + case CMD.Q: + if (isStroke) { + if (quadratic.containStroke(xi, yi, data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) { + return true; + } + } else { + w += windingQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y) || 0; + } + + xi = data[i++]; + yi = data[i++]; + break; + + case CMD.A: + // TODO Arc 判断的开销比较大 + var cx = data[i++]; + var cy = data[i++]; + var rx = data[i++]; + var ry = data[i++]; + var theta = data[i++]; + var dTheta = data[i++]; // TODO Arc 旋转 + + var psi = data[i++]; + var anticlockwise = 1 - data[i++]; + var x1 = Math.cos(theta) * rx + cx; + var y1 = Math.sin(theta) * ry + cy; // 不是直接使用 arc 命令 + + if (i > 1) { + w += windingLine(xi, yi, x1, y1, x, y); + } else { + // 第一个命令起点还未定义 + x0 = x1; + y0 = y1; + } // zr 使用scale来模拟椭圆, 这里也对x做一定的缩放 + + + var _x = (x - cx) * ry / rx + cx; + + if (isStroke) { + if (arc.containStroke(cx, cy, ry, theta, theta + dTheta, anticlockwise, lineWidth, _x, y)) { + return true; + } + } else { + w += windingArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y); + } + + xi = Math.cos(theta + dTheta) * rx + cx; + yi = Math.sin(theta + dTheta) * ry + cy; + break; + + case CMD.R: + x0 = xi = data[i++]; + y0 = yi = data[i++]; + var width = data[i++]; + var height = data[i++]; + var x1 = x0 + width; + var y1 = y0 + height; + + if (isStroke) { + if (line.containStroke(x0, y0, x1, y0, lineWidth, x, y) || line.containStroke(x1, y0, x1, y1, lineWidth, x, y) || line.containStroke(x1, y1, x0, y1, lineWidth, x, y) || line.containStroke(x0, y1, x0, y0, lineWidth, x, y)) { + return true; + } + } else { + // FIXME Clockwise ? + w += windingLine(x1, y0, x1, y1, x, y); + w += windingLine(x0, y1, x0, y0, x, y); + } + + break; + + case CMD.Z: + if (isStroke) { + if (line.containStroke(xi, yi, x0, y0, lineWidth, x, y)) { + return true; + } + } else { + // Close a subpath + w += windingLine(xi, yi, x0, y0, x, y); // 如果被任何一个 subpath 包含 + // FIXME subpaths may overlap + // if (w !== 0) { + // return true; + // } + } + + xi = x0; + yi = y0; + break; + } + } + + if (!isStroke && !isAroundEqual(yi, y0)) { + w += windingLine(xi, yi, x0, y0, x, y) || 0; + } + + return w !== 0; +} + +function contain(pathData, x, y) { + return containPath(pathData, 0, false, x, y); +} + +function containStroke(pathData, lineWidth, x, y) { + return containPath(pathData, lineWidth, true, x, y); +} + +exports.contain = contain; +exports.containStroke = containStroke; + +/***/ }), +/* 51 */ +/***/ (function(module, exports) { + +/** + * 线段包含判断 + * @param {number} x0 + * @param {number} y0 + * @param {number} x1 + * @param {number} y1 + * @param {number} lineWidth + * @param {number} x + * @param {number} y + * @return {boolean} + */ +function containStroke(x0, y0, x1, y1, lineWidth, x, y) { + if (lineWidth === 0) { + return false; + } + + var _l = lineWidth; + var _a = 0; + var _b = x0; // Quick reject + + if (y > y0 + _l && y > y1 + _l || y < y0 - _l && y < y1 - _l || x > x0 + _l && x > x1 + _l || x < x0 - _l && x < x1 - _l) { + return false; + } + + if (x0 !== x1) { + _a = (y0 - y1) / (x0 - x1); + _b = (x0 * y1 - x1 * y0) / (x0 - x1); + } else { + return Math.abs(x - x0) <= _l / 2; + } + + var tmp = _a * x - y + _b; + + var _s = tmp * tmp / (_a * _a + 1); + + return _s <= _l / 2 * _l / 2; +} + +exports.containStroke = containStroke; + +/***/ }), +/* 52 */ +/***/ (function(module, exports, __webpack_require__) { + +var curve = __webpack_require__(4); + +/** + * 三次贝塞尔曲线描边包含判断 + * @param {number} x0 + * @param {number} y0 + * @param {number} x1 + * @param {number} y1 + * @param {number} x2 + * @param {number} y2 + * @param {number} x3 + * @param {number} y3 + * @param {number} lineWidth + * @param {number} x + * @param {number} y + * @return {boolean} + */ +function containStroke(x0, y0, x1, y1, x2, y2, x3, y3, lineWidth, x, y) { + if (lineWidth === 0) { + return false; + } + + var _l = lineWidth; // Quick reject + + if (y > y0 + _l && y > y1 + _l && y > y2 + _l && y > y3 + _l || y < y0 - _l && y < y1 - _l && y < y2 - _l && y < y3 - _l || x > x0 + _l && x > x1 + _l && x > x2 + _l && x > x3 + _l || x < x0 - _l && x < x1 - _l && x < x2 - _l && x < x3 - _l) { + return false; + } + + var d = curve.cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, null); + return d <= _l / 2; +} + +exports.containStroke = containStroke; + +/***/ }), +/* 53 */ +/***/ (function(module, exports, __webpack_require__) { + +var _curve = __webpack_require__(4); + +var quadraticProjectPoint = _curve.quadraticProjectPoint; + +/** + * 二次贝塞尔曲线描边包含判断 + * @param {number} x0 + * @param {number} y0 + * @param {number} x1 + * @param {number} y1 + * @param {number} x2 + * @param {number} y2 + * @param {number} lineWidth + * @param {number} x + * @param {number} y + * @return {boolean} + */ +function containStroke(x0, y0, x1, y1, x2, y2, lineWidth, x, y) { + if (lineWidth === 0) { + return false; + } + + var _l = lineWidth; // Quick reject + + if (y > y0 + _l && y > y1 + _l && y > y2 + _l || y < y0 - _l && y < y1 - _l && y < y2 - _l || x > x0 + _l && x > x1 + _l && x > x2 + _l || x < x0 - _l && x < x1 - _l && x < x2 - _l) { + return false; + } + + var d = quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, null); + return d <= _l / 2; +} + +exports.containStroke = containStroke; + +/***/ }), +/* 54 */ +/***/ (function(module, exports, __webpack_require__) { + +var _util = __webpack_require__(22); + +var normalizeRadian = _util.normalizeRadian; +var PI2 = Math.PI * 2; +/** + * 圆弧描边包含判断 + * @param {number} cx + * @param {number} cy + * @param {number} r + * @param {number} startAngle + * @param {number} endAngle + * @param {boolean} anticlockwise + * @param {number} lineWidth + * @param {number} x + * @param {number} y + * @return {Boolean} + */ + +function containStroke(cx, cy, r, startAngle, endAngle, anticlockwise, lineWidth, x, y) { + if (lineWidth === 0) { + return false; + } + + var _l = lineWidth; + x -= cx; + y -= cy; + var d = Math.sqrt(x * x + y * y); + + if (d - _l > r || d + _l < r) { + return false; + } + + if (Math.abs(startAngle - endAngle) % PI2 < 1e-4) { + // Is a circle + return true; + } + + if (anticlockwise) { + var tmp = startAngle; + startAngle = normalizeRadian(endAngle); + endAngle = normalizeRadian(tmp); + } else { + startAngle = normalizeRadian(startAngle); + endAngle = normalizeRadian(endAngle); + } + + if (startAngle > endAngle) { + endAngle += PI2; + } + + var angle = Math.atan2(y, x); + + if (angle < 0) { + angle += PI2; + } + + return angle >= startAngle && angle <= endAngle || angle + PI2 >= startAngle && angle + PI2 <= endAngle; +} + +exports.containStroke = containStroke; + +/***/ }), +/* 55 */ +/***/ (function(module, exports) { + +function windingLine(x0, y0, x1, y1, x, y) { + if (y > y0 && y > y1 || y < y0 && y < y1) { + return 0; + } // Ignore horizontal line + + + if (y1 === y0) { + return 0; + } + + var dir = y1 < y0 ? 1 : -1; + var t = (y - y0) / (y1 - y0); // Avoid winding error when intersection point is the connect point of two line of polygon + + if (t === 1 || t === 0) { + dir = y1 < y0 ? 0.5 : -0.5; + } + + var x_ = t * (x1 - x0) + x0; + return x_ > x ? dir : 0; +} + +module.exports = windingLine; + +/***/ }), +/* 56 */ +/***/ (function(module, exports) { + +var Pattern = function (image, repeat) { + // Should do nothing more in this constructor. Because gradient can be + // declard by `color: {image: ...}`, where this constructor will not be called. + this.image = image; + this.repeat = repeat; // Can be cloned + + this.type = 'pattern'; +}; + +Pattern.prototype.getCanvasPattern = function (ctx) { + return ctx.createPattern(this.image, this.repeat || 'repeat'); +}; + +var _default = Pattern; +module.exports = _default; + +/***/ }), +/* 57 */ +/***/ (function(module, exports, __webpack_require__) { + +var PathProxy = __webpack_require__(6); + +var _vector = __webpack_require__(2); + +var v2ApplyTransform = _vector.applyTransform; +var CMD = PathProxy.CMD; +var points = [[], [], []]; +var mathSqrt = Math.sqrt; +var mathAtan2 = Math.atan2; + +function _default(path, m) { + var data = path.data; + var cmd; + var nPoint; + var i; + var j; + var k; + var p; + var M = CMD.M; + var C = CMD.C; + var L = CMD.L; + var R = CMD.R; + var A = CMD.A; + var Q = CMD.Q; + + for (i = 0, j = 0; i < data.length;) { + cmd = data[i++]; + j = i; + nPoint = 0; + + switch (cmd) { + case M: + nPoint = 1; + break; + + case L: + nPoint = 1; + break; + + case C: + nPoint = 3; + break; + + case Q: + nPoint = 2; + break; + + case A: + var x = m[4]; + var y = m[5]; + var sx = mathSqrt(m[0] * m[0] + m[1] * m[1]); + var sy = mathSqrt(m[2] * m[2] + m[3] * m[3]); + var angle = mathAtan2(-m[1] / sy, m[0] / sx); // cx + + data[i] *= sx; + data[i++] += x; // cy + + data[i] *= sy; + data[i++] += y; // Scale rx and ry + // FIXME Assume psi is 0 here + + data[i++] *= sx; + data[i++] *= sy; // Start angle + + data[i++] += angle; // end angle + + data[i++] += angle; // FIXME psi + + i += 2; + j = i; + break; + + case R: + // x0, y0 + p[0] = data[i++]; + p[1] = data[i++]; + v2ApplyTransform(p, p, m); + data[j++] = p[0]; + data[j++] = p[1]; // x1, y1 + + p[0] += data[i++]; + p[1] += data[i++]; + v2ApplyTransform(p, p, m); + data[j++] = p[0]; + data[j++] = p[1]; + } + + for (k = 0; k < nPoint; k++) { + var p = points[k]; + p[0] = data[i++]; + p[1] = data[i++]; + v2ApplyTransform(p, p, m); // Write back + + data[j++] = p[0]; + data[j++] = p[1]; + } + } +} + +module.exports = _default; + +/***/ }), +/* 58 */ +/***/ (function(module, exports, __webpack_require__) { + +var Displayable = __webpack_require__(12); + +var BoundingRect = __webpack_require__(3); + +var zrUtil = __webpack_require__(0); + +var imageHelper = __webpack_require__(10); + +/** + * @alias zrender/graphic/Image + * @extends module:zrender/graphic/Displayable + * @constructor + * @param {Object} opts + */ +function ZImage(opts) { + Displayable.call(this, opts); +} + +ZImage.prototype = { + constructor: ZImage, + type: 'image', + brush: function (ctx, prevEl) { + var style = this.style; + var src = style.image; // Must bind each time + + style.bind(ctx, this, prevEl); + var image = this._image = imageHelper.createOrUpdateImage(src, this._image, this, this.onload); + + if (!image || !imageHelper.isImageReady(image)) { + return; + } // 图片已经加载完成 + // if (image.nodeName.toUpperCase() == 'IMG') { + // if (!image.complete) { + // return; + // } + // } + // Else is canvas + + + var x = style.x || 0; + var y = style.y || 0; + var width = style.width; + var height = style.height; + var aspect = image.width / image.height; + + if (width == null && height != null) { + // Keep image/height ratio + width = height * aspect; + } else if (height == null && width != null) { + height = width / aspect; + } else if (width == null && height == null) { + width = image.width; + height = image.height; + } // 设置transform + + + this.setTransform(ctx); + + if (style.sWidth && style.sHeight) { + var sx = style.sx || 0; + var sy = style.sy || 0; + ctx.drawImage(image, sx, sy, style.sWidth, style.sHeight, x, y, width, height); + } else if (style.sx && style.sy) { + var sx = style.sx; + var sy = style.sy; + var sWidth = width - sx; + var sHeight = height - sy; + ctx.drawImage(image, sx, sy, sWidth, sHeight, x, y, width, height); + } else { + ctx.drawImage(image, x, y, width, height); + } + + this.restoreTransform(ctx); // Draw rect text + + if (style.text != null) { + this.drawRectText(ctx, this.getBoundingRect()); + } + }, + getBoundingRect: function () { + var style = this.style; + + if (!this._rect) { + this._rect = new BoundingRect(style.x || 0, style.y || 0, style.width || 0, style.height || 0); + } + + return this._rect; + } +}; +zrUtil.inherits(ZImage, Displayable); +var _default = ZImage; +module.exports = _default; + +/***/ }), +/* 59 */ +/***/ (function(module, exports, __webpack_require__) { + +var zrUtil = __webpack_require__(0); + +var Element = __webpack_require__(16); + +var BoundingRect = __webpack_require__(3); + +/** + * Group是一个容器,可以插入子节点,Group的变换也会被应用到子节点上 + * @module zrender/graphic/Group + * @example + * var Group = require('zrender/container/Group'); + * var Circle = require('zrender/graphic/shape/Circle'); + * var g = new Group(); + * g.position[0] = 100; + * g.position[1] = 100; + * g.add(new Circle({ + * style: { + * x: 100, + * y: 100, + * r: 20, + * } + * })); + * zr.add(g); + */ + +/** + * @alias module:zrender/graphic/Group + * @constructor + * @extends module:zrender/mixin/Transformable + * @extends module:zrender/mixin/Eventful + */ +var Group = function (opts) { + opts = opts || {}; + Element.call(this, opts); + + for (var key in opts) { + if (opts.hasOwnProperty(key)) { + this[key] = opts[key]; + } + } + + this._children = []; + this.__storage = null; + this.__dirty = true; +}; + +Group.prototype = { + constructor: Group, + isGroup: true, + + /** + * @type {string} + */ + type: 'group', + + /** + * 所有子孙元素是否响应鼠标事件 + * @name module:/zrender/container/Group#silent + * @type {boolean} + * @default false + */ + silent: false, + + /** + * @return {Array.} + */ + children: function () { + return this._children.slice(); + }, + + /** + * 获取指定 index 的儿子节点 + * @param {number} idx + * @return {module:zrender/Element} + */ + childAt: function (idx) { + return this._children[idx]; + }, + + /** + * 获取指定名字的儿子节点 + * @param {string} name + * @return {module:zrender/Element} + */ + childOfName: function (name) { + var children = this._children; + + for (var i = 0; i < children.length; i++) { + if (children[i].name === name) { + return children[i]; + } + } + }, + + /** + * @return {number} + */ + childCount: function () { + return this._children.length; + }, + + /** + * 添加子节点到最后 + * @param {module:zrender/Element} child + */ + add: function (child) { + if (child && child !== this && child.parent !== this) { + this._children.push(child); + + this._doAdd(child); + } + + return this; + }, + + /** + * 添加子节点在 nextSibling 之前 + * @param {module:zrender/Element} child + * @param {module:zrender/Element} nextSibling + */ + addBefore: function (child, nextSibling) { + if (child && child !== this && child.parent !== this && nextSibling && nextSibling.parent === this) { + var children = this._children; + var idx = children.indexOf(nextSibling); + + if (idx >= 0) { + children.splice(idx, 0, child); + + this._doAdd(child); + } + } + + return this; + }, + _doAdd: function (child) { + if (child.parent) { + child.parent.remove(child); + } + + child.parent = this; + var storage = this.__storage; + var zr = this.__zr; + + if (storage && storage !== child.__storage) { + storage.addToStorage(child); + + if (child instanceof Group) { + child.addChildrenToStorage(storage); + } + } + + zr && zr.refresh(); + }, + + /** + * 移除子节点 + * @param {module:zrender/Element} child + */ + remove: function (child) { + var zr = this.__zr; + var storage = this.__storage; + var children = this._children; + var idx = zrUtil.indexOf(children, child); + + if (idx < 0) { + return this; + } + + children.splice(idx, 1); + child.parent = null; + + if (storage) { + storage.delFromStorage(child); + + if (child instanceof Group) { + child.delChildrenFromStorage(storage); + } + } + + zr && zr.refresh(); + return this; + }, + + /** + * 移除所有子节点 + */ + removeAll: function () { + var children = this._children; + var storage = this.__storage; + var child; + var i; + + for (i = 0; i < children.length; i++) { + child = children[i]; + + if (storage) { + storage.delFromStorage(child); + + if (child instanceof Group) { + child.delChildrenFromStorage(storage); + } + } + + child.parent = null; + } + + children.length = 0; + return this; + }, + + /** + * 遍历所有子节点 + * @param {Function} cb + * @param {} context + */ + eachChild: function (cb, context) { + var children = this._children; + + for (var i = 0; i < children.length; i++) { + var child = children[i]; + cb.call(context, child, i); + } + + return this; + }, + + /** + * 深度优先遍历所有子孙节点 + * @param {Function} cb + * @param {} context + */ + traverse: function (cb, context) { + for (var i = 0; i < this._children.length; i++) { + var child = this._children[i]; + cb.call(context, child); + + if (child.type === 'group') { + child.traverse(cb, context); + } + } + + return this; + }, + addChildrenToStorage: function (storage) { + for (var i = 0; i < this._children.length; i++) { + var child = this._children[i]; + storage.addToStorage(child); + + if (child instanceof Group) { + child.addChildrenToStorage(storage); + } + } + }, + delChildrenFromStorage: function (storage) { + for (var i = 0; i < this._children.length; i++) { + var child = this._children[i]; + storage.delFromStorage(child); + + if (child instanceof Group) { + child.delChildrenFromStorage(storage); + } + } + }, + dirty: function () { + this.__dirty = true; + this.__zr && this.__zr.refresh(); + return this; + }, + + /** + * @return {module:zrender/core/BoundingRect} + */ + getBoundingRect: function (includeChildren) { + // TODO Caching + var rect = null; + var tmpRect = new BoundingRect(0, 0, 0, 0); + var children = includeChildren || this._children; + var tmpMat = []; + + for (var i = 0; i < children.length; i++) { + var child = children[i]; + + if (child.ignore || child.invisible) { + continue; + } + + var childRect = child.getBoundingRect(); + var transform = child.getLocalTransform(tmpMat); // TODO + // The boundingRect cacluated by transforming original + // rect may be bigger than the actual bundingRect when rotation + // is used. (Consider a circle rotated aginst its center, where + // the actual boundingRect should be the same as that not be + // rotated.) But we can not find better approach to calculate + // actual boundingRect yet, considering performance. + + if (transform) { + tmpRect.copy(childRect); + tmpRect.applyTransform(transform); + rect = rect || tmpRect.clone(); + rect.union(tmpRect); + } else { + rect = rect || childRect.clone(); + rect.union(childRect); + } + } + + return rect || tmpRect; + } +}; +zrUtil.inherits(Group, Element); +var _default = Group; +module.exports = _default; + +/***/ }), +/* 60 */ +/***/ (function(module, exports, __webpack_require__) { + +var Displayable = __webpack_require__(12); + +var zrUtil = __webpack_require__(0); + +var textContain = __webpack_require__(5); + +var textHelper = __webpack_require__(20); + +/** + * @alias zrender/graphic/Text + * @extends module:zrender/graphic/Displayable + * @constructor + * @param {Object} opts + */ +var Text = function (opts) { + // jshint ignore:line + Displayable.call(this, opts); +}; + +Text.prototype = { + constructor: Text, + type: 'text', + brush: function (ctx, prevEl) { + var style = this.style; // Optimize, avoid normalize every time. + + this.__dirty && textHelper.normalizeTextStyle(style, true); // Use props with prefix 'text'. + + style.fill = style.stroke = style.shadowBlur = style.shadowColor = style.shadowOffsetX = style.shadowOffsetY = null; + var text = style.text; // Convert to string + + text != null && (text += ''); // Always bind style + + style.bind(ctx, this, prevEl); + + if (!textHelper.needDrawText(text, style)) { + return; + } + + this.setTransform(ctx); + textHelper.renderText(this, ctx, text, style); + this.restoreTransform(ctx); + }, + getBoundingRect: function () { + var style = this.style; // Optimize, avoid normalize every time. + + this.__dirty && textHelper.normalizeTextStyle(style, true); + + if (!this._rect) { + var text = style.text; + text != null ? text += '' : text = ''; + var rect = textContain.getBoundingRect(style.text + '', style.font, style.textAlign, style.textVerticalAlign, style.textPadding, style.rich); + rect.x += style.x || 0; + rect.y += style.y || 0; + + if (textHelper.getStroke(style.textStroke, style.textStrokeWidth)) { + var w = style.textStrokeWidth; + rect.x -= w / 2; + rect.y -= w / 2; + rect.width += w; + rect.height += w; + } + + this._rect = rect; + } + + return this._rect; + } +}; +zrUtil.inherits(Text, Displayable); +var _default = Text; +module.exports = _default; + +/***/ }), +/* 61 */ +/***/ (function(module, exports, __webpack_require__) { + +var Path = __webpack_require__(1); + +/** + * 圆形 + * @module zrender/shape/Circle + */ +var _default = Path.extend({ + type: 'circle', + shape: { + cx: 0, + cy: 0, + r: 0 + }, + buildPath: function (ctx, shape, inBundle) { + // Better stroking in ShapeBundle + // Always do it may have performence issue ( fill may be 2x more cost) + if (inBundle) { + ctx.moveTo(shape.cx + shape.r, shape.cy); + } // else { + // if (ctx.allocate && !ctx.data.length) { + // ctx.allocate(ctx.CMD_MEM_SIZE.A); + // } + // } + // Better stroking in ShapeBundle + // ctx.moveTo(shape.cx + shape.r, shape.cy); + + + ctx.arc(shape.cx, shape.cy, shape.r, 0, Math.PI * 2, true); + } +}); + +module.exports = _default; + +/***/ }), +/* 62 */ +/***/ (function(module, exports, __webpack_require__) { + +var Path = __webpack_require__(1); + +var fixClipWithShadow = __webpack_require__(63); + +/** + * 扇形 + * @module zrender/graphic/shape/Sector + */ +var _default = Path.extend({ + type: 'sector', + shape: { + cx: 0, + cy: 0, + r0: 0, + r: 0, + startAngle: 0, + endAngle: Math.PI * 2, + clockwise: true + }, + brush: fixClipWithShadow(Path.prototype.brush), + buildPath: function (ctx, shape) { + var x = shape.cx; + var y = shape.cy; + var r0 = Math.max(shape.r0 || 0, 0); + var r = Math.max(shape.r, 0); + var startAngle = shape.startAngle; + var endAngle = shape.endAngle; + var clockwise = shape.clockwise; + var unitX = Math.cos(startAngle); + var unitY = Math.sin(startAngle); + ctx.moveTo(unitX * r0 + x, unitY * r0 + y); + ctx.lineTo(unitX * r + x, unitY * r + y); + ctx.arc(x, y, r, startAngle, endAngle, !clockwise); + ctx.lineTo(Math.cos(endAngle) * r0 + x, Math.sin(endAngle) * r0 + y); + + if (r0 !== 0) { + ctx.arc(x, y, r0, endAngle, startAngle, clockwise); + } + + ctx.closePath(); + } +}); + +module.exports = _default; + +/***/ }), +/* 63 */ +/***/ (function(module, exports, __webpack_require__) { + +var env = __webpack_require__(15); + +// Fix weird bug in some version of IE11 (like 11.0.9600.178**), +// where exception "unexpected call to method or property access" +// might be thrown when calling ctx.fill or ctx.stroke after a path +// whose area size is zero is drawn and ctx.clip() is called and +// shadowBlur is set. See #4572, #3112, #5777. +// (e.g., +// ctx.moveTo(10, 10); +// ctx.lineTo(20, 10); +// ctx.closePath(); +// ctx.clip(); +// ctx.shadowBlur = 10; +// ... +// ctx.fill(); +// ) +var shadowTemp = [['shadowBlur', 0], ['shadowColor', '#000'], ['shadowOffsetX', 0], ['shadowOffsetY', 0]]; + +function _default(orignalBrush) { + // version string can be: '11.0' + return env.browser.ie && env.browser.version >= 11 ? function () { + var clipPaths = this.__clipPaths; + var style = this.style; + var modified; + + if (clipPaths) { + for (var i = 0; i < clipPaths.length; i++) { + var clipPath = clipPaths[i]; + var shape = clipPath && clipPath.shape; + var type = clipPath && clipPath.type; + + if (shape && (type === 'sector' && shape.startAngle === shape.endAngle || type === 'rect' && (!shape.width || !shape.height))) { + for (var j = 0; j < shadowTemp.length; j++) { + // It is save to put shadowTemp static, because shadowTemp + // will be all modified each item brush called. + shadowTemp[j][2] = style[shadowTemp[j][0]]; + style[shadowTemp[j][0]] = shadowTemp[j][1]; + } + + modified = true; + break; + } + } + } + + orignalBrush.apply(this, arguments); + + if (modified) { + for (var j = 0; j < shadowTemp.length; j++) { + style[shadowTemp[j][0]] = shadowTemp[j][2]; + } + } + } : orignalBrush; +} + +module.exports = _default; + +/***/ }), +/* 64 */ +/***/ (function(module, exports, __webpack_require__) { + +var Path = __webpack_require__(1); + +/** + * 圆环 + * @module zrender/graphic/shape/Ring + */ +var _default = Path.extend({ + type: 'ring', + shape: { + cx: 0, + cy: 0, + r: 0, + r0: 0 + }, + buildPath: function (ctx, shape) { + var x = shape.cx; + var y = shape.cy; + var PI2 = Math.PI * 2; + ctx.moveTo(x + shape.r, y); + ctx.arc(x, y, shape.r, 0, PI2, false); + ctx.moveTo(x + shape.r0, y); + ctx.arc(x, y, shape.r0, 0, PI2, true); + } +}); + +module.exports = _default; + +/***/ }), +/* 65 */ +/***/ (function(module, exports, __webpack_require__) { + +var Path = __webpack_require__(1); + +var polyHelper = __webpack_require__(23); + +/** + * 多边形 + * @module zrender/shape/Polygon + */ +var _default = Path.extend({ + type: 'polygon', + shape: { + points: null, + smooth: false, + smoothConstraint: null + }, + buildPath: function (ctx, shape) { + polyHelper.buildPath(ctx, shape, true); + } +}); + +module.exports = _default; + +/***/ }), +/* 66 */ +/***/ (function(module, exports, __webpack_require__) { + +var _vector = __webpack_require__(2); + +var v2Distance = _vector.distance; + +/** + * Catmull-Rom spline 插值折线 + * @module zrender/shape/util/smoothSpline + * @author pissang (https://www.github.com/pissang) + * Kener (@Kener-林峰, kener.linfeng@gmail.com) + * errorrik (errorrik@gmail.com) + */ + +/** + * @inner + */ +function interpolate(p0, p1, p2, p3, t, t2, t3) { + var v0 = (p2 - p0) * 0.5; + var v1 = (p3 - p1) * 0.5; + return (2 * (p1 - p2) + v0 + v1) * t3 + (-3 * (p1 - p2) - 2 * v0 - v1) * t2 + v0 * t + p1; +} +/** + * @alias module:zrender/shape/util/smoothSpline + * @param {Array} points 线段顶点数组 + * @param {boolean} isLoop + * @return {Array} + */ + + +function _default(points, isLoop) { + var len = points.length; + var ret = []; + var distance = 0; + + for (var i = 1; i < len; i++) { + distance += v2Distance(points[i - 1], points[i]); + } + + var segs = distance / 2; + segs = segs < len ? len : segs; + + for (var i = 0; i < segs; i++) { + var pos = i / (segs - 1) * (isLoop ? len : len - 1); + var idx = Math.floor(pos); + var w = pos - idx; + var p0; + var p1 = points[idx % len]; + var p2; + var p3; + + if (!isLoop) { + p0 = points[idx === 0 ? idx : idx - 1]; + p2 = points[idx > len - 2 ? len - 1 : idx + 1]; + p3 = points[idx > len - 3 ? len - 1 : idx + 2]; + } else { + p0 = points[(idx - 1 + len) % len]; + p2 = points[(idx + 1) % len]; + p3 = points[(idx + 2) % len]; + } + + var w2 = w * w; + var w3 = w * w2; + ret.push([interpolate(p0[0], p1[0], p2[0], p3[0], w, w2, w3), interpolate(p0[1], p1[1], p2[1], p3[1], w, w2, w3)]); + } + + return ret; +} + +module.exports = _default; + +/***/ }), +/* 67 */ +/***/ (function(module, exports, __webpack_require__) { + +var _vector = __webpack_require__(2); + +var v2Min = _vector.min; +var v2Max = _vector.max; +var v2Scale = _vector.scale; +var v2Distance = _vector.distance; +var v2Add = _vector.add; +var v2Clone = _vector.clone; +var v2Sub = _vector.sub; + +/** + * 贝塞尔平滑曲线 + * @module zrender/shape/util/smoothBezier + * @author pissang (https://www.github.com/pissang) + * Kener (@Kener-林峰, kener.linfeng@gmail.com) + * errorrik (errorrik@gmail.com) + */ + +/** + * 贝塞尔平滑曲线 + * @alias module:zrender/shape/util/smoothBezier + * @param {Array} points 线段顶点数组 + * @param {number} smooth 平滑等级, 0-1 + * @param {boolean} isLoop + * @param {Array} constraint 将计算出来的控制点约束在一个包围盒内 + * 比如 [[0, 0], [100, 100]], 这个包围盒会与 + * 整个折线的包围盒做一个并集用来约束控制点。 + * @param {Array} 计算出来的控制点数组 + */ +function _default(points, smooth, isLoop, constraint) { + var cps = []; + var v = []; + var v1 = []; + var v2 = []; + var prevPoint; + var nextPoint; + var min, max; + + if (constraint) { + min = [Infinity, Infinity]; + max = [-Infinity, -Infinity]; + + for (var i = 0, len = points.length; i < len; i++) { + v2Min(min, min, points[i]); + v2Max(max, max, points[i]); + } // 与指定的包围盒做并集 + + + v2Min(min, min, constraint[0]); + v2Max(max, max, constraint[1]); + } + + for (var i = 0, len = points.length; i < len; i++) { + var point = points[i]; + + if (isLoop) { + prevPoint = points[i ? i - 1 : len - 1]; + nextPoint = points[(i + 1) % len]; + } else { + if (i === 0 || i === len - 1) { + cps.push(v2Clone(points[i])); + continue; + } else { + prevPoint = points[i - 1]; + nextPoint = points[i + 1]; + } + } + + v2Sub(v, nextPoint, prevPoint); // use degree to scale the handle length + + v2Scale(v, v, smooth); + var d0 = v2Distance(point, prevPoint); + var d1 = v2Distance(point, nextPoint); + var sum = d0 + d1; + + if (sum !== 0) { + d0 /= sum; + d1 /= sum; + } + + v2Scale(v1, v, -d0); + v2Scale(v2, v, d1); + var cp0 = v2Add([], point, v1); + var cp1 = v2Add([], point, v2); + + if (constraint) { + v2Max(cp0, cp0, min); + v2Min(cp0, cp0, max); + v2Max(cp1, cp1, min); + v2Min(cp1, cp1, max); + } + + cps.push(cp0); + cps.push(cp1); + } + + if (isLoop) { + cps.push(cps.shift()); + } + + return cps; +} + +module.exports = _default; + +/***/ }), +/* 68 */ +/***/ (function(module, exports, __webpack_require__) { + +var Path = __webpack_require__(1); + +var polyHelper = __webpack_require__(23); + +/** + * @module zrender/graphic/shape/Polyline + */ +var _default = Path.extend({ + type: 'polyline', + shape: { + points: null, + smooth: false, + smoothConstraint: null + }, + style: { + stroke: '#000', + fill: null + }, + buildPath: function (ctx, shape) { + polyHelper.buildPath(ctx, shape, false); + } +}); + +module.exports = _default; + +/***/ }), +/* 69 */ +/***/ (function(module, exports, __webpack_require__) { + +var Path = __webpack_require__(1); + +var roundRectHelper = __webpack_require__(21); + +/** + * 矩形 + * @module zrender/graphic/shape/Rect + */ +var _default = Path.extend({ + type: 'rect', + shape: { + // 左上、右上、右下、左下角的半径依次为r1、r2、r3、r4 + // r缩写为1 相当于 [1, 1, 1, 1] + // r缩写为[1] 相当于 [1, 1, 1, 1] + // r缩写为[1, 2] 相当于 [1, 2, 1, 2] + // r缩写为[1, 2, 3] 相当于 [1, 2, 3, 2] + r: 0, + x: 0, + y: 0, + width: 0, + height: 0 + }, + buildPath: function (ctx, shape) { + var x = shape.x; + var y = shape.y; + var width = shape.width; + var height = shape.height; + + if (!shape.r) { + ctx.rect(x, y, width, height); + } else { + roundRectHelper.buildPath(ctx, shape); + } + + ctx.closePath(); + return; + } +}); + +module.exports = _default; + +/***/ }), +/* 70 */ +/***/ (function(module, exports, __webpack_require__) { + +var Path = __webpack_require__(1); + +/** + * 直线 + * @module zrender/graphic/shape/Line + */ +var _default = Path.extend({ + type: 'line', + shape: { + // Start point + x1: 0, + y1: 0, + // End point + x2: 0, + y2: 0, + percent: 1 + }, + style: { + stroke: '#000', + fill: null + }, + buildPath: function (ctx, shape) { + var x1 = shape.x1; + var y1 = shape.y1; + var x2 = shape.x2; + var y2 = shape.y2; + var percent = shape.percent; + + if (percent === 0) { + return; + } + + ctx.moveTo(x1, y1); + + if (percent < 1) { + x2 = x1 * (1 - percent) + x2 * percent; + y2 = y1 * (1 - percent) + y2 * percent; + } + + ctx.lineTo(x2, y2); + }, + + /** + * Get point at percent + * @param {number} percent + * @return {Array.} + */ + pointAt: function (p) { + var shape = this.shape; + return [shape.x1 * (1 - p) + shape.x2 * p, shape.y1 * (1 - p) + shape.y2 * p]; + } +}); + +module.exports = _default; + +/***/ }), +/* 71 */ +/***/ (function(module, exports, __webpack_require__) { + +var Path = __webpack_require__(1); + +var vec2 = __webpack_require__(2); + +var _curve = __webpack_require__(4); + +var quadraticSubdivide = _curve.quadraticSubdivide; +var cubicSubdivide = _curve.cubicSubdivide; +var quadraticAt = _curve.quadraticAt; +var cubicAt = _curve.cubicAt; +var quadraticDerivativeAt = _curve.quadraticDerivativeAt; +var cubicDerivativeAt = _curve.cubicDerivativeAt; + +/** + * 贝塞尔曲线 + * @module zrender/shape/BezierCurve + */ +var out = []; + +function someVectorAt(shape, t, isTangent) { + var cpx2 = shape.cpx2; + var cpy2 = shape.cpy2; + + if (cpx2 === null || cpy2 === null) { + return [(isTangent ? cubicDerivativeAt : cubicAt)(shape.x1, shape.cpx1, shape.cpx2, shape.x2, t), (isTangent ? cubicDerivativeAt : cubicAt)(shape.y1, shape.cpy1, shape.cpy2, shape.y2, t)]; + } else { + return [(isTangent ? quadraticDerivativeAt : quadraticAt)(shape.x1, shape.cpx1, shape.x2, t), (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.y1, shape.cpy1, shape.y2, t)]; + } +} + +var _default = Path.extend({ + type: 'bezier-curve', + shape: { + x1: 0, + y1: 0, + x2: 0, + y2: 0, + cpx1: 0, + cpy1: 0, + // cpx2: 0, + // cpy2: 0 + // Curve show percent, for animating + percent: 1 + }, + style: { + stroke: '#000', + fill: null + }, + buildPath: function (ctx, shape) { + var x1 = shape.x1; + var y1 = shape.y1; + var x2 = shape.x2; + var y2 = shape.y2; + var cpx1 = shape.cpx1; + var cpy1 = shape.cpy1; + var cpx2 = shape.cpx2; + var cpy2 = shape.cpy2; + var percent = shape.percent; + + if (percent === 0) { + return; + } + + ctx.moveTo(x1, y1); + + if (cpx2 == null || cpy2 == null) { + if (percent < 1) { + quadraticSubdivide(x1, cpx1, x2, percent, out); + cpx1 = out[1]; + x2 = out[2]; + quadraticSubdivide(y1, cpy1, y2, percent, out); + cpy1 = out[1]; + y2 = out[2]; + } + + ctx.quadraticCurveTo(cpx1, cpy1, x2, y2); + } else { + if (percent < 1) { + cubicSubdivide(x1, cpx1, cpx2, x2, percent, out); + cpx1 = out[1]; + cpx2 = out[2]; + x2 = out[3]; + cubicSubdivide(y1, cpy1, cpy2, y2, percent, out); + cpy1 = out[1]; + cpy2 = out[2]; + y2 = out[3]; + } + + ctx.bezierCurveTo(cpx1, cpy1, cpx2, cpy2, x2, y2); + } + }, + + /** + * Get point at percent + * @param {number} t + * @return {Array.} + */ + pointAt: function (t) { + return someVectorAt(this.shape, t, false); + }, + + /** + * Get tangent at percent + * @param {number} t + * @return {Array.} + */ + tangentAt: function (t) { + var p = someVectorAt(this.shape, t, true); + return vec2.normalize(p, p); + } +}); + +module.exports = _default; + +/***/ }), +/* 72 */ +/***/ (function(module, exports, __webpack_require__) { + +var Path = __webpack_require__(1); + +/** + * 圆弧 + * @module zrender/graphic/shape/Arc + */ +var _default = Path.extend({ + type: 'arc', + shape: { + cx: 0, + cy: 0, + r: 0, + startAngle: 0, + endAngle: Math.PI * 2, + clockwise: true + }, + style: { + stroke: '#000', + fill: null + }, + buildPath: function (ctx, shape) { + var x = shape.cx; + var y = shape.cy; + var r = Math.max(shape.r, 0); + var startAngle = shape.startAngle; + var endAngle = shape.endAngle; + var clockwise = shape.clockwise; + var unitX = Math.cos(startAngle); + var unitY = Math.sin(startAngle); + ctx.moveTo(unitX * r + x, unitY * r + y); + ctx.arc(x, y, r, startAngle, endAngle, !clockwise); + } +}); + +module.exports = _default; + +/***/ }), +/* 73 */ +/***/ (function(module, exports, __webpack_require__) { + +var Path = __webpack_require__(1); + +// CompoundPath to improve performance +var _default = Path.extend({ + type: 'compound', + shape: { + paths: null + }, + _updatePathDirty: function () { + var dirtyPath = this.__dirtyPath; + var paths = this.shape.paths; + + for (var i = 0; i < paths.length; i++) { + // Mark as dirty if any subpath is dirty + dirtyPath = dirtyPath || paths[i].__dirtyPath; + } + + this.__dirtyPath = dirtyPath; + this.__dirty = this.__dirty || dirtyPath; + }, + beforeBrush: function () { + this._updatePathDirty(); + + var paths = this.shape.paths || []; + var scale = this.getGlobalScale(); // Update path scale + + for (var i = 0; i < paths.length; i++) { + if (!paths[i].path) { + paths[i].createPathProxy(); + } + + paths[i].path.setScale(scale[0], scale[1]); + } + }, + buildPath: function (ctx, shape) { + var paths = shape.paths || []; + + for (var i = 0; i < paths.length; i++) { + paths[i].buildPath(ctx, paths[i].shape, true); + } + }, + afterBrush: function () { + var paths = this.shape.paths || []; + + for (var i = 0; i < paths.length; i++) { + paths[i].__dirtyPath = false; + } + }, + getBoundingRect: function () { + this._updatePathDirty(); + + return Path.prototype.getBoundingRect.call(this); + } +}); + +module.exports = _default; + +/***/ }), +/* 74 */ +/***/ (function(module, exports, __webpack_require__) { + +var zrUtil = __webpack_require__(0); + +var Gradient = __webpack_require__(24); + +/** + * x, y, x2, y2 are all percent from 0 to 1 + * @param {number} [x=0] + * @param {number} [y=0] + * @param {number} [x2=1] + * @param {number} [y2=0] + * @param {Array.} colorStops + * @param {boolean} [globalCoord=false] + */ +var LinearGradient = function (x, y, x2, y2, colorStops, globalCoord) { + // Should do nothing more in this constructor. Because gradient can be + // declard by `color: {type: 'linear', colorStops: ...}`, where + // this constructor will not be called. + this.x = x == null ? 0 : x; + this.y = y == null ? 0 : y; + this.x2 = x2 == null ? 1 : x2; + this.y2 = y2 == null ? 0 : y2; // Can be cloned + + this.type = 'linear'; // If use global coord + + this.global = globalCoord || false; + Gradient.call(this, colorStops); +}; + +LinearGradient.prototype = { + constructor: LinearGradient +}; +zrUtil.inherits(LinearGradient, Gradient); +var _default = LinearGradient; +module.exports = _default; + +/***/ }), +/* 75 */ +/***/ (function(module, exports, __webpack_require__) { + +var zrUtil = __webpack_require__(0); + +var Gradient = __webpack_require__(24); + +/** + * x, y, r are all percent from 0 to 1 + * @param {number} [x=0.5] + * @param {number} [y=0.5] + * @param {number} [r=0.5] + * @param {Array.} [colorStops] + * @param {boolean} [globalCoord=false] + */ +var RadialGradient = function (x, y, r, colorStops, globalCoord) { + // Should do nothing more in this constructor. Because gradient can be + // declard by `color: {type: 'radial', colorStops: ...}`, where + // this constructor will not be called. + this.x = x == null ? 0.5 : x; + this.y = y == null ? 0.5 : y; + this.r = r == null ? 0.5 : r; // Can be cloned + + this.type = 'radial'; // If use global coord + + this.global = globalCoord || false; + Gradient.call(this, colorStops); +}; + +RadialGradient.prototype = { + constructor: RadialGradient +}; +zrUtil.inherits(RadialGradient, Gradient); +var _default = RadialGradient; +module.exports = _default; + +/***/ }), +/* 76 */ +/***/ (function(module, exports, __webpack_require__) { + +var makeStyleMapper = __webpack_require__(11); + +var getItemStyle = makeStyleMapper([['fill', 'color'], ['stroke', 'borderColor'], ['lineWidth', 'borderWidth'], ['opacity'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor'], ['textPosition'], ['textAlign']]); +var _default = { + getItemStyle: function (excludes, includes) { + var style = getItemStyle(this, excludes, includes); + var lineDash = this.getBorderLineDash(); + lineDash && (style.lineDash = lineDash); + return style; + }, + getBorderLineDash: function () { + var lineType = this.get('borderType'); + return lineType === 'solid' || lineType == null ? null : lineType === 'dashed' ? [5, 5] : [1, 1]; + } +}; +module.exports = _default; + +/***/ }), +/* 77 */ +/***/ (function(module, exports, __webpack_require__) { + +var echarts = __webpack_require__(7); + +function getShallow(model, path) { + return model && model.getShallow(path); +} + +echarts.extendChartView({ + + type: 'wordCloud', + + render: function (seriesModel, ecModel, api) { + var group = this.group; + group.removeAll(); + + var data = seriesModel.getData(); + + var gridSize = seriesModel.get('gridSize'); + + seriesModel.layoutInstance.ondraw = function (text, size, dataIdx, drawn) { + var itemModel = data.getItemModel(dataIdx); + var textStyleModel = itemModel.getModel('textStyle.normal'); + var emphasisTextStyleModel = itemModel.getModel('textStyle.emphasis'); + + var textEl = new echarts.graphic.Text({ + style: echarts.graphic.setTextStyle({}, textStyleModel, { + x: drawn.info.fillTextOffsetX, + y: drawn.info.fillTextOffsetY + size * 0.5, + text: text, + textBaseline: 'middle', + textFill: data.getItemVisual(dataIdx, 'color'), + fontSize: size + }), + scale: [1 / drawn.info.mu, 1 / drawn.info.mu], + position: [ + (drawn.gx + drawn.info.gw / 2) * gridSize, + (drawn.gy + drawn.info.gh / 2) * gridSize + ], + rotation: drawn.rot + }); + + group.add(textEl); + + data.setItemGraphicEl(dataIdx, textEl); + + echarts.graphic.setHoverStyle( + textEl, + echarts.graphic.setTextStyle({}, emphasisTextStyleModel, null, {forMerge: true}, true) + ); + }; + + this._model = seriesModel; + }, + + remove: function () { + this.group.removeAll(); + + this._model.layoutInstance.dispose(); + }, + + dispose: function () { + this._model.layoutInstance.dispose(); + } +}); + + +/***/ }), +/* 78 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! + * wordcloud2.js + * http://timdream.org/wordcloud2.js/ + * + * Copyright 2011 - 2013 Tim Chien + * Released under the MIT license + */ + + + +// setImmediate +if (!window.setImmediate) { + window.setImmediate = (function setupSetImmediate() { + return window.msSetImmediate || + window.webkitSetImmediate || + window.mozSetImmediate || + window.oSetImmediate || + (function setupSetZeroTimeout() { + if (!window.postMessage || !window.addEventListener) { + return null; + } + + var callbacks = [undefined]; + var message = 'zero-timeout-message'; + + // Like setTimeout, but only takes a function argument. There's + // no time argument (always zero) and no arguments (you have to + // use a closure). + var setZeroTimeout = function setZeroTimeout(callback) { + var id = callbacks.length; + callbacks.push(callback); + window.postMessage(message + id.toString(36), '*'); + + return id; + }; + + window.addEventListener('message', function setZeroTimeoutMessage(evt) { + // Skipping checking event source, retarded IE confused this window + // object with another in the presence of iframe + if (typeof evt.data !== 'string' || + evt.data.substr(0, message.length) !== message/* || + evt.source !== window */) { + return; + } + + evt.stopImmediatePropagation(); + + var id = parseInt(evt.data.substr(message.length), 36); + if (!callbacks[id]) { + return; + } + + callbacks[id](); + callbacks[id] = undefined; + }, true); + + /* specify clearImmediate() here since we need the scope */ + window.clearImmediate = function clearZeroTimeout(id) { + if (!callbacks[id]) { + return; + } + + callbacks[id] = undefined; + }; + + return setZeroTimeout; + })() || + // fallback + function setImmediateFallback(fn) { + window.setTimeout(fn, 0); + }; + })(); +} + +if (!window.clearImmediate) { + window.clearImmediate = (function setupClearImmediate() { + return window.msClearImmediate || + window.webkitClearImmediate || + window.mozClearImmediate || + window.oClearImmediate || + // "clearZeroTimeout" is implement on the previous block || + // fallback + function clearImmediateFallback(timer) { + window.clearTimeout(timer); + }; + })(); +} + +(function(global) { + + // Check if WordCloud can run on this browser + var isSupported = (function isSupported() { + var canvas = document.createElement('canvas'); + if (!canvas || !canvas.getContext) { + return false; + } + + var ctx = canvas.getContext('2d'); + if (!ctx.getImageData) { + return false; + } + if (!ctx.fillText) { + return false; + } + + if (!Array.prototype.some) { + return false; + } + if (!Array.prototype.push) { + return false; + } + + return true; + }()); + + // Find out if the browser impose minium font size by + // drawing small texts on a canvas and measure it's width. + var minFontSize = (function getMinFontSize() { + if (!isSupported) { + return; + } + + var ctx = document.createElement('canvas').getContext('2d'); + + // start from 20 + var size = 20; + + // two sizes to measure + var hanWidth, mWidth; + + while (size) { + ctx.font = size.toString(10) + 'px sans-serif'; + if ((ctx.measureText('\uFF37').width === hanWidth) && + (ctx.measureText('m').width) === mWidth) { + return (size + 1); + } + + hanWidth = ctx.measureText('\uFF37').width; + mWidth = ctx.measureText('m').width; + + size--; + } + + return 0; + })(); + + // Based on http://jsfromhell.com/array/shuffle + var shuffleArray = function shuffleArray(arr) { + for (var j, x, i = arr.length; i; + j = Math.floor(Math.random() * i), + x = arr[--i], arr[i] = arr[j], + arr[j] = x) {} + return arr; + }; + + var WordCloud = function WordCloud(elements, options) { + if (!isSupported) { + return; + } + + if (!Array.isArray(elements)) { + elements = [elements]; + } + + elements.forEach(function(el, i) { + if (typeof el === 'string') { + elements[i] = document.getElementById(el); + if (!elements[i]) { + throw 'The element id specified is not found.'; + } + } else if (!el.tagName && !el.appendChild) { + throw 'You must pass valid HTML elements, or ID of the element.'; + } + }); + + /* Default values to be overwritten by options object */ + var settings = { + list: [], + fontFamily: '"Trebuchet MS", "Heiti TC", "微軟正黑體", ' + + '"Arial Unicode MS", "Droid Fallback Sans", sans-serif', + fontWeight: 'normal', + color: 'random-dark', + minSize: 0, // 0 to disable + weightFactor: 1, + clearCanvas: true, + backgroundColor: '#fff', // opaque white = rgba(255, 255, 255, 1) + + gridSize: 8, + drawOutOfBound: false, + origin: null, + + drawMask: false, + maskColor: 'rgba(255,0,0,0.3)', + maskGapWidth: 0.3, + + wait: 0, + abortThreshold: 0, // disabled + abort: function noop() {}, + + minRotation: - Math.PI / 2, + maxRotation: Math.PI / 2, + rotationStep: 0.1, + + shuffle: true, + rotateRatio: 0.1, + + shape: 'circle', + ellipticity: 0.65, + + classes: null, + + hover: null, + click: null + }; + + if (options) { + for (var key in options) { + if (key in settings) { + settings[key] = options[key]; + } + } + } + + /* Convert weightFactor into a function */ + if (typeof settings.weightFactor !== 'function') { + var factor = settings.weightFactor; + settings.weightFactor = function weightFactor(pt) { + return pt * factor; //in px + }; + } + + /* Convert shape into a function */ + if (typeof settings.shape !== 'function') { + switch (settings.shape) { + case 'circle': + /* falls through */ + default: + // 'circle' is the default and a shortcut in the code loop. + settings.shape = 'circle'; + break; + + case 'cardioid': + settings.shape = function shapeCardioid(theta) { + return 1 - Math.sin(theta); + }; + break; + + /* + To work out an X-gon, one has to calculate "m", + where 1/(cos(2*PI/X)+m*sin(2*PI/X)) = 1/(cos(0)+m*sin(0)) + http://www.wolframalpha.com/input/?i=1%2F%28cos%282*PI%2FX%29%2Bm*sin%28 + 2*PI%2FX%29%29+%3D+1%2F%28cos%280%29%2Bm*sin%280%29%29 + Copy the solution into polar equation r = 1/(cos(t') + m*sin(t')) + where t' equals to mod(t, 2PI/X); + */ + + case 'diamond': + case 'square': + // http://www.wolframalpha.com/input/?i=plot+r+%3D+1%2F%28cos%28mod+ + // %28t%2C+PI%2F2%29%29%2Bsin%28mod+%28t%2C+PI%2F2%29%29%29%2C+t+%3D + // +0+..+2*PI + settings.shape = function shapeSquare(theta) { + var thetaPrime = theta % (2 * Math.PI / 4); + return 1 / (Math.cos(thetaPrime) + Math.sin(thetaPrime)); + }; + break; + + case 'triangle-forward': + // http://www.wolframalpha.com/input/?i=plot+r+%3D+1%2F%28cos%28mod+ + // %28t%2C+2*PI%2F3%29%29%2Bsqrt%283%29sin%28mod+%28t%2C+2*PI%2F3%29 + // %29%29%2C+t+%3D+0+..+2*PI + settings.shape = function shapeTriangle(theta) { + var thetaPrime = theta % (2 * Math.PI / 3); + return 1 / (Math.cos(thetaPrime) + + Math.sqrt(3) * Math.sin(thetaPrime)); + }; + break; + + case 'triangle': + case 'triangle-upright': + settings.shape = function shapeTriangle(theta) { + var thetaPrime = (theta + Math.PI * 3 / 2) % (2 * Math.PI / 3); + return 1 / (Math.cos(thetaPrime) + + Math.sqrt(3) * Math.sin(thetaPrime)); + }; + break; + + case 'pentagon': + settings.shape = function shapePentagon(theta) { + var thetaPrime = (theta + 0.955) % (2 * Math.PI / 5); + return 1 / (Math.cos(thetaPrime) + + 0.726543 * Math.sin(thetaPrime)); + }; + break; + + case 'star': + settings.shape = function shapeStar(theta) { + var thetaPrime = (theta + 0.955) % (2 * Math.PI / 10); + if ((theta + 0.955) % (2 * Math.PI / 5) - (2 * Math.PI / 10) >= 0) { + return 1 / (Math.cos((2 * Math.PI / 10) - thetaPrime) + + 3.07768 * Math.sin((2 * Math.PI / 10) - thetaPrime)); + } else { + return 1 / (Math.cos(thetaPrime) + + 3.07768 * Math.sin(thetaPrime)); + } + }; + break; + } + } + + /* Make sure gridSize is a whole number and is not smaller than 4px */ + settings.gridSize = Math.max(Math.floor(settings.gridSize), 4); + + /* shorthand */ + var g = settings.gridSize; + var maskRectWidth = g - settings.maskGapWidth; + + /* normalize rotation settings */ + var rotationRange = Math.abs(settings.maxRotation - settings.minRotation); + var minRotation = Math.min(settings.maxRotation, settings.minRotation); + var rotationStep = settings.rotationStep; + + /* information/object available to all functions, set when start() */ + var grid, // 2d array containing filling information + ngx, ngy, // width and height of the grid + center, // position of the center of the cloud + maxRadius; + + /* timestamp for measuring each putWord() action */ + var escapeTime; + + /* function for getting the color of the text */ + var getTextColor; + function random_hsl_color(min, max) { + return 'hsl(' + + (Math.random() * 360).toFixed() + ',' + + (Math.random() * 30 + 70).toFixed() + '%,' + + (Math.random() * (max - min) + min).toFixed() + '%)'; + } + switch (settings.color) { + case 'random-dark': + getTextColor = function getRandomDarkColor() { + return random_hsl_color(10, 50); + }; + break; + + case 'random-light': + getTextColor = function getRandomLightColor() { + return random_hsl_color(50, 90); + }; + break; + + default: + if (typeof settings.color === 'function') { + getTextColor = settings.color; + } + break; + } + + /* function for getting the classes of the text */ + var getTextClasses = null; + if (typeof settings.classes === 'function') { + getTextClasses = settings.classes; + } + + /* Interactive */ + var interactive = false; + var infoGrid = []; + var hovered; + + var getInfoGridFromMouseTouchEvent = + function getInfoGridFromMouseTouchEvent(evt) { + var canvas = evt.currentTarget; + var rect = canvas.getBoundingClientRect(); + var clientX; + var clientY; + /** Detect if touches are available */ + if (evt.touches) { + clientX = evt.touches[0].clientX; + clientY = evt.touches[0].clientY; + } else { + clientX = evt.clientX; + clientY = evt.clientY; + } + var eventX = clientX - rect.left; + var eventY = clientY - rect.top; + + var x = Math.floor(eventX * ((canvas.width / rect.width) || 1) / g); + var y = Math.floor(eventY * ((canvas.height / rect.height) || 1) / g); + + return infoGrid[x][y]; + }; + + var wordcloudhover = function wordcloudhover(evt) { + var info = getInfoGridFromMouseTouchEvent(evt); + + if (hovered === info) { + return; + } + + hovered = info; + if (!info) { + settings.hover(undefined, undefined, evt); + + return; + } + + settings.hover(info.item, info.dimension, evt); + + }; + + var wordcloudclick = function wordcloudclick(evt) { + var info = getInfoGridFromMouseTouchEvent(evt); + if (!info) { + return; + } + + settings.click(info.item, info.dimension, evt); + evt.preventDefault(); + }; + + /* Get points on the grid for a given radius away from the center */ + var pointsAtRadius = []; + var getPointsAtRadius = function getPointsAtRadius(radius) { + if (pointsAtRadius[radius]) { + return pointsAtRadius[radius]; + } + + // Look for these number of points on each radius + var T = radius * 8; + + // Getting all the points at this radius + var t = T; + var points = []; + + if (radius === 0) { + points.push([center[0], center[1], 0]); + } + + while (t--) { + // distort the radius to put the cloud in shape + var rx = 1; + if (settings.shape !== 'circle') { + rx = settings.shape(t / T * 2 * Math.PI); // 0 to 1 + } + + // Push [x, y, t]; t is used solely for getTextColor() + points.push([ + center[0] + radius * rx * Math.cos(-t / T * 2 * Math.PI), + center[1] + radius * rx * Math.sin(-t / T * 2 * Math.PI) * + settings.ellipticity, + t / T * 2 * Math.PI]); + } + + pointsAtRadius[radius] = points; + return points; + }; + + /* Return true if we had spent too much time */ + var exceedTime = function exceedTime() { + return ((settings.abortThreshold > 0) && + ((new Date()).getTime() - escapeTime > settings.abortThreshold)); + }; + + /* Get the deg of rotation according to settings, and luck. */ + var getRotateDeg = function getRotateDeg() { + if (settings.rotateRatio === 0) { + return 0; + } + + if (Math.random() > settings.rotateRatio) { + return 0; + } + + if (rotationRange === 0) { + return minRotation; + } + + return minRotation + Math.round(Math.random() * rotationRange / rotationStep) * rotationStep; + }; + + var getTextInfo = function getTextInfo(word, weight, rotateDeg) { + // calculate the acutal font size + // fontSize === 0 means weightFactor function wants the text skipped, + // and size < minSize means we cannot draw the text. + var debug = false; + var fontSize = settings.weightFactor(weight); + if (fontSize <= settings.minSize) { + return false; + } + + // Scale factor here is to make sure fillText is not limited by + // the minium font size set by browser. + // It will always be 1 or 2n. + var mu = 1; + if (fontSize < minFontSize) { + mu = (function calculateScaleFactor() { + var mu = 2; + while (mu * fontSize < minFontSize) { + mu += 2; + } + return mu; + })(); + } + + var fcanvas = document.createElement('canvas'); + var fctx = fcanvas.getContext('2d', { willReadFrequently: true }); + + fctx.font = settings.fontWeight + ' ' + + (fontSize * mu).toString(10) + 'px ' + settings.fontFamily; + + // Estimate the dimension of the text with measureText(). + var fw = fctx.measureText(word).width / mu; + var fh = Math.max(fontSize * mu, + fctx.measureText('m').width, + fctx.measureText('\uFF37').width) / mu; + + // Create a boundary box that is larger than our estimates, + // so text don't get cut of (it sill might) + var boxWidth = fw + fh * 2; + var boxHeight = fh * 3; + var fgw = Math.ceil(boxWidth / g); + var fgh = Math.ceil(boxHeight / g); + boxWidth = fgw * g; + boxHeight = fgh * g; + + // Calculate the proper offsets to make the text centered at + // the preferred position. + + // This is simply half of the width. + var fillTextOffsetX = - fw / 2; + // Instead of moving the box to the exact middle of the preferred + // position, for Y-offset we move 0.4 instead, so Latin alphabets look + // vertical centered. + var fillTextOffsetY = - fh * 0.4; + + // Calculate the actual dimension of the canvas, considering the rotation. + var cgh = Math.ceil((boxWidth * Math.abs(Math.sin(rotateDeg)) + + boxHeight * Math.abs(Math.cos(rotateDeg))) / g); + var cgw = Math.ceil((boxWidth * Math.abs(Math.cos(rotateDeg)) + + boxHeight * Math.abs(Math.sin(rotateDeg))) / g); + var width = cgw * g; + var height = cgh * g; + + fcanvas.setAttribute('width', width); + fcanvas.setAttribute('height', height); + + if (debug) { + // Attach fcanvas to the DOM + document.body.appendChild(fcanvas); + // Save it's state so that we could restore and draw the grid correctly. + fctx.save(); + } + + // Scale the canvas with |mu|. + fctx.scale(1 / mu, 1 / mu); + fctx.translate(width * mu / 2, height * mu / 2); + fctx.rotate(- rotateDeg); + + // Once the width/height is set, ctx info will be reset. + // Set it again here. + fctx.font = settings.fontWeight + ' ' + + (fontSize * mu).toString(10) + 'px ' + settings.fontFamily; + + // Fill the text into the fcanvas. + // XXX: We cannot because textBaseline = 'top' here because + // Firefox and Chrome uses different default line-height for canvas. + // Please read https://bugzil.la/737852#c6. + // Here, we use textBaseline = 'middle' and draw the text at exactly + // 0.5 * fontSize lower. + fctx.fillStyle = '#000'; + fctx.textBaseline = 'middle'; + fctx.fillText(word, fillTextOffsetX * mu, + (fillTextOffsetY + fontSize * 0.5) * mu); + + // Get the pixels of the text + var imageData = fctx.getImageData(0, 0, width, height).data; + + if (exceedTime()) { + return false; + } + + if (debug) { + // Draw the box of the original estimation + fctx.strokeRect(fillTextOffsetX * mu, + fillTextOffsetY, fw * mu, fh * mu); + fctx.restore(); + } + + // Read the pixels and save the information to the occupied array + var occupied = []; + var gx = cgw, gy, x, y; + var bounds = [cgh / 2, cgw / 2, cgh / 2, cgw / 2]; + while (gx--) { + gy = cgh; + while (gy--) { + y = g; + singleGridLoop: { + while (y--) { + x = g; + while (x--) { + if (imageData[((gy * g + y) * width + + (gx * g + x)) * 4 + 3]) { + occupied.push([gx, gy]); + + if (gx < bounds[3]) { + bounds[3] = gx; + } + if (gx > bounds[1]) { + bounds[1] = gx; + } + if (gy < bounds[0]) { + bounds[0] = gy; + } + if (gy > bounds[2]) { + bounds[2] = gy; + } + + if (debug) { + fctx.fillStyle = 'rgba(255, 0, 0, 0.5)'; + fctx.fillRect(gx * g, gy * g, g - 0.5, g - 0.5); + } + break singleGridLoop; + } + } + } + if (debug) { + fctx.fillStyle = 'rgba(0, 0, 255, 0.5)'; + fctx.fillRect(gx * g, gy * g, g - 0.5, g - 0.5); + } + } + } + } + + if (debug) { + fctx.fillStyle = 'rgba(0, 255, 0, 0.5)'; + fctx.fillRect(bounds[3] * g, + bounds[0] * g, + (bounds[1] - bounds[3] + 1) * g, + (bounds[2] - bounds[0] + 1) * g); + } + + // Return information needed to create the text on the real canvas + return { + mu: mu, + occupied: occupied, + bounds: bounds, + gw: cgw, + gh: cgh, + fillTextOffsetX: fillTextOffsetX, + fillTextOffsetY: fillTextOffsetY, + fillTextWidth: fw, + fillTextHeight: fh, + fontSize: fontSize + }; + }; + + /* Determine if there is room available in the given dimension */ + var canFitText = function canFitText(gx, gy, gw, gh, occupied) { + // Go through the occupied points, + // return false if the space is not available. + var i = occupied.length; + while (i--) { + var px = gx + occupied[i][0]; + var py = gy + occupied[i][1]; + + if (px >= ngx || py >= ngy || px < 0 || py < 0) { + if (!settings.drawOutOfBound) { + return false; + } + continue; + } + + if (!grid[px][py]) { + return false; + } + } + return true; + }; + + /* Actually draw the text on the grid */ + var drawText = function drawText(gx, gy, info, word, weight, + distance, theta, rotateDeg, attributes) { + + var fontSize = info.fontSize; + var color; + if (getTextColor) { + color = getTextColor(word, weight, fontSize, distance, theta); + } else { + color = settings.color; + } + + var classes; + if (getTextClasses) { + classes = getTextClasses(word, weight, fontSize, distance, theta); + } else { + classes = settings.classes; + } + + var dimension; + var bounds = info.bounds; + dimension = { + x: (gx + bounds[3]) * g, + y: (gy + bounds[0]) * g, + w: (bounds[1] - bounds[3] + 1) * g, + h: (bounds[2] - bounds[0] + 1) * g + }; + + elements.forEach(function(el) { + if (el.getContext) { + var ctx = el.getContext('2d'); + var mu = info.mu; + + // Save the current state before messing it + ctx.save(); + ctx.scale(1 / mu, 1 / mu); + + ctx.font = settings.fontWeight + ' ' + + (fontSize * mu).toString(10) + 'px ' + settings.fontFamily; + ctx.fillStyle = color; + + // Translate the canvas position to the origin coordinate of where + // the text should be put. + ctx.translate((gx + info.gw / 2) * g * mu, + (gy + info.gh / 2) * g * mu); + + if (rotateDeg !== 0) { + ctx.rotate(- rotateDeg); + } + + // Finally, fill the text. + + // XXX: We cannot because textBaseline = 'top' here because + // Firefox and Chrome uses different default line-height for canvas. + // Please read https://bugzil.la/737852#c6. + // Here, we use textBaseline = 'middle' and draw the text at exactly + // 0.5 * fontSize lower. + ctx.textBaseline = 'middle'; + ctx.fillText(word, info.fillTextOffsetX * mu, + (info.fillTextOffsetY + fontSize * 0.5) * mu); + + // The below box is always matches how s are positioned + /* ctx.strokeRect(info.fillTextOffsetX, info.fillTextOffsetY, + info.fillTextWidth, info.fillTextHeight); */ + + // Restore the state. + ctx.restore(); + } else { + // drawText on DIV element + var span = document.createElement('span'); + var transformRule = ''; + transformRule = 'rotate(' + (- rotateDeg / Math.PI * 180) + 'deg) '; + if (info.mu !== 1) { + transformRule += + 'translateX(-' + (info.fillTextWidth / 4) + 'px) ' + + 'scale(' + (1 / info.mu) + ')'; + } + var styleRules = { + 'position': 'absolute', + 'display': 'block', + 'font': settings.fontWeight + ' ' + + (fontSize * info.mu) + 'px ' + settings.fontFamily, + 'left': ((gx + info.gw / 2) * g + info.fillTextOffsetX) + 'px', + 'top': ((gy + info.gh / 2) * g + info.fillTextOffsetY) + 'px', + 'width': info.fillTextWidth + 'px', + 'height': info.fillTextHeight + 'px', + 'lineHeight': fontSize + 'px', + 'whiteSpace': 'nowrap', + 'transform': transformRule, + 'webkitTransform': transformRule, + 'msTransform': transformRule, + 'transformOrigin': '50% 40%', + 'webkitTransformOrigin': '50% 40%', + 'msTransformOrigin': '50% 40%' + }; + if (color) { + styleRules.color = color; + } + span.textContent = word; + for (var cssProp in styleRules) { + span.style[cssProp] = styleRules[cssProp]; + } + if (attributes) { + for (var attribute in attributes) { + span.setAttribute(attribute, attributes[attribute]); + } + } + if (classes) { + span.className += classes; + } + el.appendChild(span); + } + }); + }; + + /* Help function to updateGrid */ + var fillGridAt = function fillGridAt(x, y, drawMask, dimension, item) { + if (x >= ngx || y >= ngy || x < 0 || y < 0) { + return; + } + + grid[x][y] = false; + + if (drawMask) { + var ctx = elements[0].getContext('2d'); + ctx.fillRect(x * g, y * g, maskRectWidth, maskRectWidth); + } + + if (interactive) { + infoGrid[x][y] = { item: item, dimension: dimension }; + } + }; + + /* Update the filling information of the given space with occupied points. + Draw the mask on the canvas if necessary. */ + var updateGrid = function updateGrid(gx, gy, gw, gh, info, item) { + var occupied = info.occupied; + var drawMask = settings.drawMask; + var ctx; + if (drawMask) { + ctx = elements[0].getContext('2d'); + ctx.save(); + ctx.fillStyle = settings.maskColor; + } + + var dimension; + if (interactive) { + var bounds = info.bounds; + dimension = { + x: (gx + bounds[3]) * g, + y: (gy + bounds[0]) * g, + w: (bounds[1] - bounds[3] + 1) * g, + h: (bounds[2] - bounds[0] + 1) * g + }; + } + + var i = occupied.length; + while (i--) { + var px = gx + occupied[i][0]; + var py = gy + occupied[i][1]; + + if (px >= ngx || py >= ngy || px < 0 || py < 0) { + continue; + } + + fillGridAt(px, py, drawMask, dimension, item); + } + + if (drawMask) { + ctx.restore(); + } + }; + + /* putWord() processes each item on the list, + calculate it's size and determine it's position, and actually + put it on the canvas. */ + var putWord = function putWord(item) { + var word, weight, attributes; + if (Array.isArray(item)) { + word = item[0]; + weight = item[1]; + } else { + word = item.word; + weight = item.weight; + attributes = item.attributes; + } + var rotateDeg = getRotateDeg(); + + // get info needed to put the text onto the canvas + var info = getTextInfo(word, weight, rotateDeg); + + // not getting the info means we shouldn't be drawing this one. + if (!info) { + return false; + } + + if (exceedTime()) { + return false; + } + + // If drawOutOfBound is set to false, + // skip the loop if we have already know the bounding box of + // word is larger than the canvas. + if (!settings.drawOutOfBound) { + var bounds = info.bounds; + if ((bounds[1] - bounds[3] + 1) > ngx || + (bounds[2] - bounds[0] + 1) > ngy) { + return false; + } + } + + // Determine the position to put the text by + // start looking for the nearest points + var r = maxRadius + 1; + + var tryToPutWordAtPoint = function(gxy) { + var gx = Math.floor(gxy[0] - info.gw / 2); + var gy = Math.floor(gxy[1] - info.gh / 2); + var gw = info.gw; + var gh = info.gh; + + // If we cannot fit the text at this position, return false + // and go to the next position. + if (!canFitText(gx, gy, gw, gh, info.occupied)) { + return false; + } + + // Actually put the text on the canvas + drawText(gx, gy, info, word, weight, + (maxRadius - r), gxy[2], rotateDeg, attributes); + + // Mark the spaces on the grid as filled + updateGrid(gx, gy, gw, gh, info, item); + + return { + gx: gx, + gy: gy, + rot: rotateDeg, + info: info + }; + }; + + while (r--) { + var points = getPointsAtRadius(maxRadius - r); + + if (settings.shuffle) { + points = [].concat(points); + shuffleArray(points); + } + + // Try to fit the words by looking at each point. + // array.some() will stop and return true + // when putWordAtPoint() returns true. + for (var i = 0; i < points.length; i++) { + var res = tryToPutWordAtPoint(points[i]); + if (res) { + return res; + } + } + + // var drawn = points.some(tryToPutWordAtPoint); + // if (drawn) { + // // leave putWord() and return true + // return true; + // } + } + // we tried all distances but text won't fit, return null + return null; + }; + + /* Send DOM event to all elements. Will stop sending event and return + if the previous one is canceled (for cancelable events). */ + var sendEvent = function sendEvent(type, cancelable, detail) { + if (cancelable) { + return !elements.some(function(el) { + var evt = document.createEvent('CustomEvent'); + evt.initCustomEvent(type, true, cancelable, detail || {}); + return !el.dispatchEvent(evt); + }, this); + } else { + elements.forEach(function(el) { + var evt = document.createEvent('CustomEvent'); + evt.initCustomEvent(type, true, cancelable, detail || {}); + el.dispatchEvent(evt); + }, this); + } + }; + + /* Start drawing on a canvas */ + var start = function start() { + // For dimensions, clearCanvas etc., + // we only care about the first element. + var canvas = elements[0]; + + if (canvas.getContext) { + ngx = Math.ceil(canvas.width / g); + ngy = Math.ceil(canvas.height / g); + } else { + var rect = canvas.getBoundingClientRect(); + ngx = Math.ceil(rect.width / g); + ngy = Math.ceil(rect.height / g); + } + + // Sending a wordcloudstart event which cause the previous loop to stop. + // Do nothing if the event is canceled. + if (!sendEvent('wordcloudstart', true)) { + return; + } + + // Determine the center of the word cloud + center = (settings.origin) ? + [settings.origin[0]/g, settings.origin[1]/g] : + [ngx / 2, ngy / 2]; + + // Maxium radius to look for space + maxRadius = Math.floor(Math.sqrt(ngx * ngx + ngy * ngy)); + + /* Clear the canvas only if the clearCanvas is set, + if not, update the grid to the current canvas state */ + grid = []; + + var gx, gy, i; + if (!canvas.getContext || settings.clearCanvas) { + elements.forEach(function(el) { + if (el.getContext) { + var ctx = el.getContext('2d'); + ctx.fillStyle = settings.backgroundColor; + ctx.clearRect(0, 0, ngx * (g + 1), ngy * (g + 1)); + ctx.fillRect(0, 0, ngx * (g + 1), ngy * (g + 1)); + } else { + el.textContent = ''; + el.style.backgroundColor = settings.backgroundColor; + el.style.position = 'relative'; + } + }); + + /* fill the grid with empty state */ + gx = ngx; + while (gx--) { + grid[gx] = []; + gy = ngy; + while (gy--) { + grid[gx][gy] = true; + } + } + } else { + /* Determine bgPixel by creating + another canvas and fill the specified background color. */ + var bctx = document.createElement('canvas').getContext('2d'); + + bctx.fillStyle = settings.backgroundColor; + bctx.fillRect(0, 0, 1, 1); + var bgPixel = bctx.getImageData(0, 0, 1, 1).data; + + /* Read back the pixels of the canvas we got to tell which part of the + canvas is empty. + (no clearCanvas only works with a canvas, not divs) */ + var imageData = + canvas.getContext('2d').getImageData(0, 0, ngx * g, ngy * g).data; + + gx = ngx; + var x, y; + while (gx--) { + grid[gx] = []; + gy = ngy; + while (gy--) { + y = g; + singleGridLoop: while (y--) { + x = g; + while (x--) { + i = 4; + while (i--) { + if (imageData[((gy * g + y) * ngx * g + + (gx * g + x)) * 4 + i] !== bgPixel[i]) { + grid[gx][gy] = false; + break singleGridLoop; + } + } + } + } + if (grid[gx][gy] !== false) { + grid[gx][gy] = true; + } + } + } + + imageData = bctx = bgPixel = undefined; + } + + // fill the infoGrid with empty state if we need it + if (settings.hover || settings.click) { + + interactive = true; + + /* fill the grid with empty state */ + gx = ngx + 1; + while (gx--) { + infoGrid[gx] = []; + } + + if (settings.hover) { + canvas.addEventListener('mousemove', wordcloudhover); + } + + if (settings.click) { + canvas.addEventListener('click', wordcloudclick); + canvas.addEventListener('touchstart', wordcloudclick); + canvas.addEventListener('touchend', function (e) { + e.preventDefault(); + }); + canvas.style.webkitTapHighlightColor = 'rgba(0, 0, 0, 0)'; + } + + canvas.addEventListener('wordcloudstart', function stopInteraction() { + canvas.removeEventListener('wordcloudstart', stopInteraction); + + canvas.removeEventListener('mousemove', wordcloudhover); + canvas.removeEventListener('click', wordcloudclick); + hovered = undefined; + }); + } + + i = 0; + var loopingFunction, stoppingFunction; + if (settings.wait !== 0) { + loopingFunction = window.setTimeout; + stoppingFunction = window.clearTimeout; + } else { + loopingFunction = window.setImmediate; + stoppingFunction = window.clearImmediate; + } + + var addEventListener = function addEventListener(type, listener) { + elements.forEach(function(el) { + el.addEventListener(type, listener); + }, this); + }; + + var removeEventListener = function removeEventListener(type, listener) { + elements.forEach(function(el) { + el.removeEventListener(type, listener); + }, this); + }; + + var anotherWordCloudStart = function anotherWordCloudStart() { + removeEventListener('wordcloudstart', anotherWordCloudStart); + stoppingFunction(timer); + }; + + addEventListener('wordcloudstart', anotherWordCloudStart); + + var timer = loopingFunction(function loop() { + if (i >= settings.list.length) { + stoppingFunction(timer); + sendEvent('wordcloudstop', false); + removeEventListener('wordcloudstart', anotherWordCloudStart); + + return; + } + escapeTime = (new Date()).getTime(); + var drawn = putWord(settings.list[i]); + var canceled = !sendEvent('wordclouddrawn', true, { + item: settings.list[i], drawn: drawn }); + if (exceedTime() || canceled) { + stoppingFunction(timer); + settings.abort(); + sendEvent('wordcloudabort', false); + sendEvent('wordcloudstop', false); + removeEventListener('wordcloudstart', anotherWordCloudStart); + return; + } + i++; + timer = loopingFunction(loop, settings.wait); + }, settings.wait); + }; + + // All set, start the drawing + start(); + }; + + WordCloud.isSupported = isSupported; + WordCloud.minFontSize = minFontSize; + + // Expose the library as an AMD module + if (true) { + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function() { return WordCloud; }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), + __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } else if (typeof module !== 'undefined' && module.exports) { + module.exports = WordCloud; + } else { + global.WordCloud = WordCloud; + } + +})(this); //jshint ignore:line + +/***/ }) +/******/ ]); +}); \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/js/echarts.min.js b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/js/echarts.min.js new file mode 100644 index 00000000..a51bc61a --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/js/echarts.min.js @@ -0,0 +1,22 @@ + +/* +* Licensed to the Apache Software Foundation (ASF) under one +* or more contributor license agreements. See the NOTICE file +* distributed with this work for additional information +* regarding copyright ownership. The ASF licenses this file +* to you 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. +*/ + + +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e(t.echarts={})}(this,function(t){"use strict";function e(t,e){"createCanvas"===t&&(v_=null),g_[t]=e}function i(t){if(null==t||"object"!=typeof t)return t;var e=t,n=l_.call(t);if("[object Array]"===n){if(!O(t)){e=[];for(var o=0,a=t.length;oO_||t<-O_}function vt(t){this._target=t.target,this._life=t.life||1e3,this._delay=t.delay||0,this._initialized=!1,this.loop=null!=t.loop&&t.loop,this.gap=t.gap||0,this.easing=t.easing||"Linear",this.onframe=t.onframe,this.ondestroy=t.ondestroy,this.onrestart=t.onrestart,this._pausedTime=0,this._paused=!1}function yt(t){return(t=Math.round(t))<0?0:t>255?255:t}function xt(t){return(t=Math.round(t))<0?0:t>360?360:t}function _t(t){return t<0?0:t>1?1:t}function wt(t){return yt(t.length&&"%"===t.charAt(t.length-1)?parseFloat(t)/100*255:parseInt(t,10))}function bt(t){return _t(t.length&&"%"===t.charAt(t.length-1)?parseFloat(t)/100:parseFloat(t))}function St(t,e,i){return i<0?i+=1:i>1&&(i-=1),6*i<1?t+(e-t)*i*6:2*i<1?e:3*i<2?t+(e-t)*(2/3-i)*6:t}function Mt(t,e,i){return t+(e-t)*i}function It(t,e,i,n,o){return t[0]=e,t[1]=i,t[2]=n,t[3]=o,t}function Tt(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function Dt(t,e){X_&&Tt(X_,e),X_=U_.put(t,X_||e.slice())}function At(t,e){if(t){e=e||[];var i=U_.get(t);if(i)return Tt(e,i);var n=(t+="").replace(/ /g,"").toLowerCase();if(n in Z_)return Tt(e,Z_[n]),Dt(t,e),e;if("#"!==n.charAt(0)){var o=n.indexOf("("),a=n.indexOf(")");if(-1!==o&&a+1===n.length){var r=n.substr(0,o),s=n.substr(o+1,a-(o+1)).split(","),l=1;switch(r){case"rgba":if(4!==s.length)return void It(e,0,0,0,1);l=bt(s.pop());case"rgb":return 3!==s.length?void It(e,0,0,0,1):(It(e,wt(s[0]),wt(s[1]),wt(s[2]),l),Dt(t,e),e);case"hsla":return 4!==s.length?void It(e,0,0,0,1):(s[3]=bt(s[3]),Ct(s,e),Dt(t,e),e);case"hsl":return 3!==s.length?void It(e,0,0,0,1):(Ct(s,e),Dt(t,e),e);default:return}}It(e,0,0,0,1)}else{if(4===n.length)return(u=parseInt(n.substr(1),16))>=0&&u<=4095?(It(e,(3840&u)>>4|(3840&u)>>8,240&u|(240&u)>>4,15&u|(15&u)<<4,1),Dt(t,e),e):void It(e,0,0,0,1);if(7===n.length){var u=parseInt(n.substr(1),16);return u>=0&&u<=16777215?(It(e,(16711680&u)>>16,(65280&u)>>8,255&u,1),Dt(t,e),e):void It(e,0,0,0,1)}}}}function Ct(t,e){var i=(parseFloat(t[0])%360+360)%360/360,n=bt(t[1]),o=bt(t[2]),a=o<=.5?o*(n+1):o+n-o*n,r=2*o-a;return e=e||[],It(e,yt(255*St(r,a,i+1/3)),yt(255*St(r,a,i)),yt(255*St(r,a,i-1/3)),1),4===t.length&&(e[3]=t[3]),e}function Lt(t){if(t){var e,i,n=t[0]/255,o=t[1]/255,a=t[2]/255,r=Math.min(n,o,a),s=Math.max(n,o,a),l=s-r,u=(s+r)/2;if(0===l)e=0,i=0;else{i=u<.5?l/(s+r):l/(2-s-r);var h=((s-n)/6+l/2)/l,c=((s-o)/6+l/2)/l,d=((s-a)/6+l/2)/l;n===s?e=d-c:o===s?e=1/3+h-d:a===s&&(e=2/3+c-h),e<0&&(e+=1),e>1&&(e-=1)}var f=[360*e,i,u];return null!=t[3]&&f.push(t[3]),f}}function kt(t,e){var i=At(t);if(i){for(var n=0;n<3;n++)i[n]=e<0?i[n]*(1-e)|0:(255-i[n])*e+i[n]|0,i[n]>255?i[n]=255:t[n]<0&&(i[n]=0);return zt(i,4===i.length?"rgba":"rgb")}}function Pt(t){var e=At(t);if(e)return((1<<24)+(e[0]<<16)+(e[1]<<8)+ +e[2]).toString(16).slice(1)}function Nt(t,e,i){if(e&&e.length&&t>=0&&t<=1){i=i||[];var n=t*(e.length-1),o=Math.floor(n),a=Math.ceil(n),r=e[o],s=e[a],l=n-o;return i[0]=yt(Mt(r[0],s[0],l)),i[1]=yt(Mt(r[1],s[1],l)),i[2]=yt(Mt(r[2],s[2],l)),i[3]=_t(Mt(r[3],s[3],l)),i}}function Ot(t,e,i){if(e&&e.length&&t>=0&&t<=1){var n=t*(e.length-1),o=Math.floor(n),a=Math.ceil(n),r=At(e[o]),s=At(e[a]),l=n-o,u=zt([yt(Mt(r[0],s[0],l)),yt(Mt(r[1],s[1],l)),yt(Mt(r[2],s[2],l)),_t(Mt(r[3],s[3],l))],"rgba");return i?{color:u,leftIndex:o,rightIndex:a,value:n}:u}}function Et(t,e,i,n){if(t=At(t))return t=Lt(t),null!=e&&(t[0]=xt(e)),null!=i&&(t[1]=bt(i)),null!=n&&(t[2]=bt(n)),zt(Ct(t),"rgba")}function Rt(t,e){if((t=At(t))&&null!=e)return t[3]=_t(e),zt(t,"rgba")}function zt(t,e){if(t&&t.length){var i=t[0]+","+t[1]+","+t[2];return"rgba"!==e&&"hsva"!==e&&"hsla"!==e||(i+=","+t[3]),e+"("+i+")"}}function Bt(t,e){return t[e]}function Vt(t,e,i){t[e]=i}function Gt(t,e,i){return(e-t)*i+t}function Wt(t,e,i){return i>.5?e:t}function Ft(t,e,i,n,o){var a=t.length;if(1==o)for(s=0;so)t.length=o;else for(r=n;r=0&&!(m[i]<=e);i--);i=Math.min(i,u-2)}else{for(i=L;ie);i++);i=Math.min(i-1,u-2)}L=i,k=e;var n=m[i+1]-m[i];if(0!==n)if(I=(e-m[i])/n,l)if(D=v[i],T=v[0===i?i:i-1],A=v[i>u-2?u-1:i+1],C=v[i>u-3?u-1:i+2],d)Ut(T,D,A,C,I,I*I,I*I*I,r(t,o),g);else{if(f)a=Ut(T,D,A,C,I,I*I,I*I*I,P,1),a=Yt(P);else{if(p)return Wt(D,A,I);a=Xt(T,D,A,C,I,I*I,I*I*I)}s(t,o,a)}else if(d)Ft(v[i],v[i+1],I,r(t,o),g);else{var a;if(f)Ft(v[i],v[i+1],I,P,1),a=Yt(P);else{if(p)return Wt(v[i],v[i+1],I);a=Gt(v[i],v[i+1],I)}s(t,o,a)}},ondestroy:i});return e&&"spline"!==e&&(N.easing=e),N}}}function $t(t,e,i,n){i<0&&(t+=i,i=-i),n<0&&(e+=n,n=-n),this.x=t,this.y=e,this.width=i,this.height=n}function Jt(t){for(var e=0;t>=lw;)e|=1&t,t>>=1;return t+e}function Qt(t,e,i,n){var o=e+1;if(o===i)return 1;if(n(t[o++],t[e])<0){for(;o=0;)o++;return o-e}function te(t,e,i){for(i--;e>>1])<0?l=a:s=a+1;var u=n-s;switch(u){case 3:t[s+3]=t[s+2];case 2:t[s+2]=t[s+1];case 1:t[s+1]=t[s];break;default:for(;u>0;)t[s+u]=t[s+u-1],u--}t[s]=r}}function ie(t,e,i,n,o,a){var r=0,s=0,l=1;if(a(t,e[i+o])>0){for(s=n-o;l0;)r=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s),r+=o,l+=o}else{for(s=o+1;ls&&(l=s);var u=r;r=o-l,l=o-u}for(r++;r>>1);a(t,e[i+h])>0?r=h+1:l=h}return l}function ne(t,e,i,n,o,a){var r=0,s=0,l=1;if(a(t,e[i+o])<0){for(s=o+1;ls&&(l=s);var u=r;r=o-l,l=o-u}else{for(s=n-o;l=0;)r=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s),r+=o,l+=o}for(r++;r>>1);a(t,e[i+h])<0?l=h:r=h+1}return l}function oe(t,e){function i(i){var s=a[i],u=r[i],h=a[i+1],c=r[i+1];r[i]=u+c,i===l-3&&(a[i+1]=a[i+2],r[i+1]=r[i+2]),l--;var d=ne(t[h],t,s,u,0,e);s+=d,0!==(u-=d)&&0!==(c=ie(t[s+u-1],t,h,c,c-1,e))&&(u<=c?n(s,u,h,c):o(s,u,h,c))}function n(i,n,o,a){var r=0;for(r=0;r=uw||f>=uw);if(p)break;g<0&&(g=0),g+=2}if((s=g)<1&&(s=1),1===n){for(r=0;r=0;r--)t[f+r]=t[d+r];if(0===n){v=!0;break}}if(t[c--]=u[h--],1==--a){v=!0;break}if(0!=(m=a-ie(t[l],u,0,a,a-1,e))){for(a-=m,f=(c-=m)+1,d=(h-=m)+1,r=0;r=uw||m>=uw);if(v)break;p<0&&(p=0),p+=2}if((s=p)<1&&(s=1),1===a){for(f=(c-=n)+1,d=(l-=n)+1,r=n-1;r>=0;r--)t[f+r]=t[d+r];t[c]=u[h]}else{if(0===a)throw new Error;for(d=c-(a-1),r=0;r=0;r--)t[f+r]=t[d+r];t[c]=u[h]}else for(d=c-(a-1),r=0;r1;){var t=l-2;if(t>=1&&r[t-1]<=r[t]+r[t+1]||t>=2&&r[t-2]<=r[t]+r[t-1])r[t-1]r[t+1])break;i(t)}},this.forceMergeRuns=function(){for(;l>1;){var t=l-2;t>0&&r[t-1]s&&(l=s),ee(t,i,i+l,i+a,e),a=l}r.pushRun(i,a),r.mergeRuns(),o-=a,i+=a}while(0!==o);r.forceMergeRuns()}}function re(t,e){return t.zlevel===e.zlevel?t.z===e.z?t.z2-e.z2:t.z-e.z:t.zlevel-e.zlevel}function se(t,e,i){var n=null==e.x?0:e.x,o=null==e.x2?1:e.x2,a=null==e.y?0:e.y,r=null==e.y2?0:e.y2;return e.global||(n=n*i.width+i.x,o=o*i.width+i.x,a=a*i.height+i.y,r=r*i.height+i.y),n=isNaN(n)?0:n,o=isNaN(o)?1:o,a=isNaN(a)?0:a,r=isNaN(r)?0:r,t.createLinearGradient(n,a,o,r)}function le(t,e,i){var n=i.width,o=i.height,a=Math.min(n,o),r=null==e.x?.5:e.x,s=null==e.y?.5:e.y,l=null==e.r?.5:e.r;return e.global||(r=r*n+i.x,s=s*o+i.y,l*=a),t.createRadialGradient(r,s,0,r,s,l)}function ue(){return!1}function he(t,e,i){var n=m_(),o=e.getWidth(),a=e.getHeight(),r=n.style;return r&&(r.position="absolute",r.left=0,r.top=0,r.width=o+"px",r.height=a+"px",n.setAttribute("data-zr-dom-id",t)),n.width=o*i,n.height=a*i,n}function ce(t){if("string"==typeof t){var e=ww.get(t);return e&&e.image}return t}function de(t,e,i,n,o){if(t){if("string"==typeof t){if(e&&e.__zrImageSrc===t||!i)return e;var a=ww.get(t),r={hostEl:i,cb:n,cbPayload:o};return a?!pe(e=a.image)&&a.pending.push(r):(!e&&(e=new Image),e.onload=fe,ww.put(t,e.__cachedImgObj={image:e,pending:[r]}),e.src=e.__zrImageSrc=t),e}return t}return e}function fe(){var t=this.__cachedImgObj;this.onload=this.__cachedImgObj=null;for(var e=0;eMw&&(Sw=0,bw={}),Sw++,bw[i]=o,o}function me(t,e,i,n,o,a,r){return a?ye(t,e,i,n,o,a,r):ve(t,e,i,n,o,r)}function ve(t,e,i,n,o,a){var r=Ae(t,e,o,a),s=ge(t,e);o&&(s+=o[1]+o[3]);var l=r.outerHeight,u=new $t(xe(0,s,i),_e(0,l,n),s,l);return u.lineHeight=r.lineHeight,u}function ye(t,e,i,n,o,a,r){var s=Ce(t,{rich:a,truncate:r,font:e,textAlign:i,textPadding:o}),l=s.outerWidth,u=s.outerHeight;return new $t(xe(0,l,i),_e(0,u,n),l,u)}function xe(t,e,i){return"right"===i?t-=e:"center"===i&&(t-=e/2),t}function _e(t,e,i){return"middle"===i?t-=e/2:"bottom"===i&&(t-=e),t}function we(t,e,i){var n=e.x,o=e.y,a=e.height,r=e.width,s=a/2,l="left",u="top";switch(t){case"left":n-=i,o+=s,l="right",u="middle";break;case"right":n+=i+r,o+=s,u="middle";break;case"top":n+=r/2,o-=i,l="center",u="bottom";break;case"bottom":n+=r/2,o+=a+i,l="center";break;case"inside":n+=r/2,o+=s,l="center",u="middle";break;case"insideLeft":n+=i,o+=s,u="middle";break;case"insideRight":n+=r-i,o+=s,l="right",u="middle";break;case"insideTop":n+=r/2,o+=i,l="center";break;case"insideBottom":n+=r/2,o+=a-i,l="center",u="bottom";break;case"insideTopLeft":n+=i,o+=i;break;case"insideTopRight":n+=r-i,o+=i,l="right";break;case"insideBottomLeft":n+=i,o+=a-i,u="bottom";break;case"insideBottomRight":n+=r-i,o+=a-i,l="right",u="bottom"}return{x:n,y:o,textAlign:l,textVerticalAlign:u}}function be(t,e,i,n,o){if(!e)return"";var a=(t+"").split("\n");o=Se(e,i,n,o);for(var r=0,s=a.length;r=r;l++)s-=r;var u=ge(i);return u>s&&(i="",u=0),s=t-u,n.ellipsis=i,n.ellipsisWidth=u,n.contentWidth=s,n.containerWidth=t,n}function Me(t,e){var i=e.containerWidth,n=e.font,o=e.contentWidth;if(!i)return"";var a=ge(t,n);if(a<=i)return t;for(var r=0;;r++){if(a<=o||r>=e.maxIterations){t+=e.ellipsis;break}var s=0===r?Ie(t,o,e.ascCharWidth,e.cnCharWidth):a>0?Math.floor(t.length*o/a):0;a=ge(t=t.substr(0,s),n)}return""===t&&(t=e.placeholder),t}function Ie(t,e,i,n){for(var o=0,a=0,r=t.length;al)t="",a=[];else if(null!=u)for(var h=Se(u-(i?i[1]+i[3]:0),e,n.ellipsis,{minChar:n.minChar,placeholder:n.placeholder}),c=0,d=a.length;co&&Le(i,t.substring(o,a)),Le(i,n[2],n[1]),o=Iw.lastIndex}of)return{lines:[],width:0,height:0};k.textWidth=ge(k.text,_);var b=y.textWidth,S=null==b||"auto"===b;if("string"==typeof b&&"%"===b.charAt(b.length-1))k.percentWidth=b,u.push(k),b=0;else{if(S){b=k.textWidth;var M=y.textBackgroundColor,I=M&&M.image;I&&pe(I=ce(I))&&(b=Math.max(b,I.width*w/I.height))}var T=x?x[1]+x[3]:0;b+=T;var C=null!=d?d-m:null;null!=C&&Cl&&(i*=l/(c=i+n),n*=l/c),o+a>l&&(o*=l/(c=o+a),a*=l/c),n+o>u&&(n*=u/(c=n+o),o*=u/c),i+a>u&&(i*=u/(c=i+a),a*=u/c),t.moveTo(r+i,s),t.lineTo(r+l-n,s),0!==n&&t.arc(r+l-n,s+n,n,-Math.PI/2,0),t.lineTo(r+l,s+u-o),0!==o&&t.arc(r+l-o,s+u-o,o,0,Math.PI/2),t.lineTo(r+a,s+u),0!==a&&t.arc(r+a,s+u-a,a,Math.PI/2,Math.PI),t.lineTo(r,s+i),0!==i&&t.arc(r+i,s+i,i,Math.PI,1.5*Math.PI)}function Ne(t){return Oe(t),d(t.rich,Oe),t}function Oe(t){if(t){t.font=ke(t);var e=t.textAlign;"middle"===e&&(e="center"),t.textAlign=null==e||Aw[e]?e:"left";var i=t.textVerticalAlign||t.textBaseline;"center"===i&&(i="middle"),t.textVerticalAlign=null==i||Cw[i]?i:"top",t.textPadding&&(t.textPadding=L(t.textPadding))}}function Ee(t,e,i,n,o){n.rich?ze(t,e,i,n,o):Re(t,e,i,n,o)}function Re(t,e,i,n,o){var a=Ue(e,"font",n.font||Tw),r=n.textPadding,s=t.__textCotentBlock;s&&!t.__dirty||(s=t.__textCotentBlock=Ae(i,a,r,n.truncate));var l=s.outerHeight,u=s.lines,h=s.lineHeight,c=Ze(l,n,o),d=c.baseX,f=c.baseY,p=c.textAlign,g=c.textVerticalAlign;Ve(e,n,o,d,f);var m=_e(f,l,g),v=d,y=m,x=We(n);if(x||r){var _=ge(i,a);r&&(_+=r[1]+r[3]);var w=xe(d,_,p);x&&Fe(t,e,n,w,m,_,l),r&&(v=qe(d,p,r),y+=r[0])}Ue(e,"textAlign",p||"left"),Ue(e,"textBaseline","middle"),Ue(e,"shadowBlur",n.textShadowBlur||0),Ue(e,"shadowColor",n.textShadowColor||"transparent"),Ue(e,"shadowOffsetX",n.textShadowOffsetX||0),Ue(e,"shadowOffsetY",n.textShadowOffsetY||0),y+=h/2;var b=n.textStrokeWidth,S=Xe(n.textStroke,b),M=je(n.textFill);S&&(Ue(e,"lineWidth",b),Ue(e,"strokeStyle",S)),M&&Ue(e,"fillStyle",M);for(var I=0;I=0&&"right"===(_=b[C]).textAlign;)Ge(t,e,_,n,M,v,A,"right"),I-=_.width,A-=_.width,C--;for(D+=(a-(D-m)-(y-A)-I)/2;T<=C;)Ge(t,e,_=b[T],n,M,v,D+_.width/2,"center"),D+=_.width,T++;v+=M}}function Ve(t,e,i,n,o){if(i&&e.textRotation){var a=e.textOrigin;"center"===a?(n=i.width/2+i.x,o=i.height/2+i.y):a&&(n=a[0]+i.x,o=a[1]+i.y),t.translate(n,o),t.rotate(-e.textRotation),t.translate(-n,-o)}}function Ge(t,e,i,n,o,a,r,s){var l=n.rich[i.styleName]||{},u=i.textVerticalAlign,h=a+o/2;"top"===u?h=a+i.height/2:"bottom"===u&&(h=a+o-i.height/2),!i.isLineHolder&&We(l)&&Fe(t,e,l,"right"===s?r-i.width:"center"===s?r-i.width/2:r,h-i.height/2,i.width,i.height);var c=i.textPadding;c&&(r=qe(r,s,c),h-=i.height/2-c[2]-i.textHeight/2),Ue(e,"shadowBlur",A(l.textShadowBlur,n.textShadowBlur,0)),Ue(e,"shadowColor",l.textShadowColor||n.textShadowColor||"transparent"),Ue(e,"shadowOffsetX",A(l.textShadowOffsetX,n.textShadowOffsetX,0)),Ue(e,"shadowOffsetY",A(l.textShadowOffsetY,n.textShadowOffsetY,0)),Ue(e,"textAlign",s),Ue(e,"textBaseline","middle"),Ue(e,"font",i.font||Tw);var d=Xe(l.textStroke||n.textStroke,p),f=je(l.textFill||n.textFill),p=D(l.textStrokeWidth,n.textStrokeWidth);d&&(Ue(e,"lineWidth",p),Ue(e,"strokeStyle",d),e.strokeText(i.text,r,h)),f&&(Ue(e,"fillStyle",f),e.fillText(i.text,r,h))}function We(t){return t.textBackgroundColor||t.textBorderWidth&&t.textBorderColor}function Fe(t,e,i,n,o,a,r){var s=i.textBackgroundColor,l=i.textBorderWidth,u=i.textBorderColor,h=_(s);if(Ue(e,"shadowBlur",i.textBoxShadowBlur||0),Ue(e,"shadowColor",i.textBoxShadowColor||"transparent"),Ue(e,"shadowOffsetX",i.textBoxShadowOffsetX||0),Ue(e,"shadowOffsetY",i.textBoxShadowOffsetY||0),h||l&&u){e.beginPath();var c=i.textBorderRadius;c?Pe(e,{x:n,y:o,width:a,height:r,r:c}):e.rect(n,o,a,r),e.closePath()}if(h)Ue(e,"fillStyle",s),e.fill();else if(w(s)){var d=s.image;(d=de(d,null,t,He,s))&&pe(d)&&e.drawImage(d,n,o,a,r)}l&&u&&(Ue(e,"lineWidth",l),Ue(e,"strokeStyle",u),e.stroke())}function He(t,e){e.image=t}function Ze(t,e,i){var n=e.x||0,o=e.y||0,a=e.textAlign,r=e.textVerticalAlign;if(i){var s=e.textPosition;if(s instanceof Array)n=i.x+Ye(s[0],i.width),o=i.y+Ye(s[1],i.height);else{var l=we(s,i,e.textDistance);n=l.x,o=l.y,a=a||l.textAlign,r=r||l.textVerticalAlign}var u=e.textOffset;u&&(n+=u[0],o+=u[1])}return{baseX:n,baseY:o,textAlign:a,textVerticalAlign:r}}function Ue(t,e,i){return t[e]=dw(t,e,i),t[e]}function Xe(t,e){return null==t||e<=0||"transparent"===t||"none"===t?null:t.image||t.colorStops?"#000":t}function je(t){return null==t||"none"===t?null:t.image||t.colorStops?"#000":t}function Ye(t,e){return"string"==typeof t?t.lastIndexOf("%")>=0?parseFloat(t)/100*e:parseFloat(t):t}function qe(t,e,i){return"right"===e?t-i[1]:"center"===e?t+i[3]/2-i[1]/2:t+i[3]}function Ke(t,e){return null!=t&&(t||e.textBackgroundColor||e.textBorderWidth&&e.textBorderColor||e.textPadding)}function $e(t){t=t||{},nw.call(this,t);for(var e in t)t.hasOwnProperty(e)&&"style"!==e&&(this[e]=t[e]);this.style=new pw(t.style,this),this._rect=null,this.__clipPaths=[]}function Je(t){$e.call(this,t)}function Qe(t){return parseInt(t,10)}function ti(t){return!!t&&(!!t.__builtin__||"function"==typeof t.resize&&"function"==typeof t.refresh)}function ei(t,e,i){return Pw.copy(t.getBoundingRect()),t.transform&&Pw.applyTransform(t.transform),Nw.width=e,Nw.height=i,!Pw.intersect(Nw)}function ii(t,e){if(t==e)return!1;if(!t||!e||t.length!==e.length)return!0;for(var i=0;i=0){var o="touchend"!=n?e.targetTouches[0]:e.changedTouches[0];o&&ri(t,o,e,i)}else ri(t,e,e,i),e.zrDelta=e.wheelDelta?e.wheelDelta/120:-(e.detail||0)/3;var a=e.button;return null==e.which&&void 0!==a&&Rw.test(e.type)&&(e.which=1&a?1:2&a?3:4&a?2:0),e}function ui(t,e,i){Ew?t.addEventListener(e,i):t.attachEvent("on"+e,i)}function hi(t,e,i){Ew?t.removeEventListener(e,i):t.detachEvent("on"+e,i)}function ci(t){return t.which>1}function di(t){var e=t[1][0]-t[0][0],i=t[1][1]-t[0][1];return Math.sqrt(e*e+i*i)}function fi(t){return[(t[0][0]+t[1][0])/2,(t[0][1]+t[1][1])/2]}function pi(t){return"mousewheel"===t&&a_.browser.firefox?"DOMMouseScroll":t}function gi(t,e,i){var n=t._gestureMgr;"start"===i&&n.clear();var o=n.recognize(e,t.handler.findHover(e.zrX,e.zrY,null).target,t.dom);if("end"===i&&n.clear(),o){var a=o.type;e.gestureEvent=a,t.handler.dispatchToElement({target:o.target},a,o.event)}}function mi(t){t._touching=!0,clearTimeout(t._touchTimer),t._touchTimer=setTimeout(function(){t._touching=!1},700)}function vi(t){var e=t.pointerType;return"pen"===e||"touch"===e}function yi(t){function e(t,e){return function(){if(!e._touching)return t.apply(e,arguments)}}d(Fw,function(e){t._handlers[e]=m(Uw[e],t)}),d(Zw,function(e){t._handlers[e]=m(Uw[e],t)}),d(Ww,function(i){t._handlers[i]=e(Uw[i],t)})}function xi(t){function e(e,i){d(e,function(e){ui(t,pi(e),i._handlers[e])},i)}D_.call(this),this.dom=t,this._touching=!1,this._touchTimer,this._gestureMgr=new Vw,this._handlers={},yi(this),a_.pointerEventsSupported?e(Zw,this):(a_.touchEventsSupported&&e(Fw,this),e(Ww,this))}function _i(t,e){var i=new Kw(n_(),t,e);return qw[i.id]=i,i}function wi(t,e){Yw[t]=e}function bi(t){delete qw[t]}function Si(t){return t instanceof Array?t:null==t?[]:[t]}function Mi(t,e,i){if(t){t[e]=t[e]||{},t.emphasis=t.emphasis||{},t.emphasis[e]=t.emphasis[e]||{};for(var n=0,o=i.length;n=i.length&&i.push({option:t})}}),i}function Ai(t){var e=R();Jw(t,function(t,i){var n=t.exist;n&&e.set(n.id,t)}),Jw(t,function(t,i){var n=t.option;k(!n||null==n.id||!e.get(n.id)||e.get(n.id)===t,"id duplicates: "+(n&&n.id)),n&&null!=n.id&&e.set(n.id,t),!t.keyInfo&&(t.keyInfo={})}),Jw(t,function(t,i){var n=t.exist,o=t.option,a=t.keyInfo;if(Qw(o)){if(a.name=null!=o.name?o.name+"":n?n.name:eb+i,n)a.id=n.id;else if(null!=o.id)a.id=o.id+"";else{var r=0;do{a.id="\0"+a.name+"\0"+r++}while(e.get(a.id))}e.set(a.id,t)}})}function Ci(t){var e=t.name;return!(!e||!e.indexOf(eb))}function Li(t){return Qw(t)&&t.id&&0===(t.id+"").indexOf("\0_ec_\0")}function ki(t,e){function i(t,e,i){for(var n=0,o=t.length;n-pb&&tpb||t<-pb}function ji(t,e,i,n,o){var a=1-o;return a*a*(a*t+3*o*e)+o*o*(o*n+3*a*i)}function Yi(t,e,i,n,o){var a=1-o;return 3*(((e-t)*a+2*(i-e)*o)*a+(n-i)*o*o)}function qi(t,e,i,n,o,a){var r=n+3*(e-i)-t,s=3*(i-2*e+t),l=3*(e-t),u=t-o,h=s*s-3*r*l,c=s*l-9*r*u,d=l*l-3*s*u,f=0;if(Ui(h)&&Ui(c))Ui(s)?a[0]=0:(M=-l/s)>=0&&M<=1&&(a[f++]=M);else{var p=c*c-4*h*d;if(Ui(p)){var g=c/h,m=-g/2;(M=-s/r+g)>=0&&M<=1&&(a[f++]=M),m>=0&&m<=1&&(a[f++]=m)}else if(p>0){var v=fb(p),y=h*s+1.5*r*(-c+v),x=h*s+1.5*r*(-c-v);(M=(-s-((y=y<0?-db(-y,vb):db(y,vb))+(x=x<0?-db(-x,vb):db(x,vb))))/(3*r))>=0&&M<=1&&(a[f++]=M)}else{var _=(2*h*s-3*r*c)/(2*fb(h*h*h)),w=Math.acos(_)/3,b=fb(h),S=Math.cos(w),M=(-s-2*b*S)/(3*r),m=(-s+b*(S+mb*Math.sin(w)))/(3*r),I=(-s+b*(S-mb*Math.sin(w)))/(3*r);M>=0&&M<=1&&(a[f++]=M),m>=0&&m<=1&&(a[f++]=m),I>=0&&I<=1&&(a[f++]=I)}}return f}function Ki(t,e,i,n,o){var a=6*i-12*e+6*t,r=9*e+3*n-3*t-9*i,s=3*e-3*t,l=0;if(Ui(r))Xi(a)&&(c=-s/a)>=0&&c<=1&&(o[l++]=c);else{var u=a*a-4*r*s;if(Ui(u))o[0]=-a/(2*r);else if(u>0){var h=fb(u),c=(-a+h)/(2*r),d=(-a-h)/(2*r);c>=0&&c<=1&&(o[l++]=c),d>=0&&d<=1&&(o[l++]=d)}}return l}function $i(t,e,i,n,o,a){var r=(e-t)*o+t,s=(i-e)*o+e,l=(n-i)*o+i,u=(s-r)*o+r,h=(l-s)*o+s,c=(h-u)*o+u;a[0]=t,a[1]=r,a[2]=u,a[3]=c,a[4]=c,a[5]=h,a[6]=l,a[7]=n}function Ji(t,e,i,n,o,a,r,s,l,u,h){var c,d,f,p,g,m=.005,v=1/0;yb[0]=l,yb[1]=u;for(var y=0;y<1;y+=.05)xb[0]=ji(t,i,o,r,y),xb[1]=ji(e,n,a,s,y),(p=M_(yb,xb))=0&&p=0&&c<=1&&(o[l++]=c);else{var u=r*r-4*a*s;if(Ui(u))(c=-r/(2*a))>=0&&c<=1&&(o[l++]=c);else if(u>0){var h=fb(u),c=(-r+h)/(2*a),d=(-r-h)/(2*a);c>=0&&c<=1&&(o[l++]=c),d>=0&&d<=1&&(o[l++]=d)}}return l}function nn(t,e,i){var n=t+i-2*e;return 0===n?.5:(t-e)/n}function on(t,e,i,n,o){var a=(e-t)*n+t,r=(i-e)*n+e,s=(r-a)*n+a;o[0]=t,o[1]=a,o[2]=s,o[3]=s,o[4]=r,o[5]=i}function an(t,e,i,n,o,a,r,s,l){var u,h=.005,c=1/0;yb[0]=r,yb[1]=s;for(var d=0;d<1;d+=.05)xb[0]=Qi(t,i,o,d),xb[1]=Qi(e,n,a,d),(m=M_(yb,xb))=0&&m1e-4)return s[0]=t-i,s[1]=e-n,l[0]=t+i,void(l[1]=e+n);if(Tb[0]=Mb(o)*i+t,Tb[1]=Sb(o)*n+e,Db[0]=Mb(a)*i+t,Db[1]=Sb(a)*n+e,u(s,Tb,Db),h(l,Tb,Db),(o%=Ib)<0&&(o+=Ib),(a%=Ib)<0&&(a+=Ib),o>a&&!r?a+=Ib:oo&&(Ab[0]=Mb(f)*i+t,Ab[1]=Sb(f)*n+e,u(s,Ab,s),h(l,Ab,l))}function cn(t,e,i,n,o,a,r){if(0===o)return!1;var s=o,l=0,u=t;if(r>e+s&&r>n+s||rt+s&&a>i+s||ae+c&&h>n+c&&h>a+c&&h>s+c||ht+c&&u>i+c&&u>o+c&&u>r+c||ue+u&&l>n+u&&l>a+u||lt+u&&s>i+u&&s>o+u||si||h+uo&&(o+=Ub);var d=Math.atan2(l,s);return d<0&&(d+=Ub),d>=n&&d<=o||d+Ub>=n&&d+Ub<=o}function mn(t,e,i,n,o,a){if(a>e&&a>n||ao?r:0}function vn(t,e){return Math.abs(t-e)e&&u>n&&u>a&&u>s||u1&&yn(),c=ji(e,n,a,s,Kb[0]),p>1&&(d=ji(e,n,a,s,Kb[1]))),2==p?me&&s>n&&s>a||s=0&&u<=1){for(var h=0,c=Qi(e,n,a,u),d=0;di||s<-i)return 0;u=Math.sqrt(i*i-s*s);qb[0]=-u,qb[1]=u;var l=Math.abs(n-o);if(l<1e-4)return 0;if(l%jb<1e-4){n=0,o=jb;p=a?1:-1;return r>=qb[0]+t&&r<=qb[1]+t?p:0}if(a){var u=n;n=pn(o),o=pn(u)}else n=pn(n),o=pn(o);n>o&&(o+=jb);for(var h=0,c=0;c<2;c++){var d=qb[c];if(d+t>r){var f=Math.atan2(s,d),p=a?1:-1;f<0&&(f=jb+f),(f>=n&&f<=o||f+jb>=n&&f+jb<=o)&&(f>Math.PI/2&&f<1.5*Math.PI&&(p=-p),h+=p)}}return h}function bn(t,e,i,n,o){for(var a=0,r=0,s=0,l=0,u=0,h=0;h1&&(i||(a+=mn(r,s,l,u,n,o))),1==h&&(l=r=t[h],u=s=t[h+1]),c){case Xb.M:r=l=t[h++],s=u=t[h++];break;case Xb.L:if(i){if(cn(r,s,t[h],t[h+1],e,n,o))return!0}else a+=mn(r,s,t[h],t[h+1],n,o)||0;r=t[h++],s=t[h++];break;case Xb.C:if(i){if(dn(r,s,t[h++],t[h++],t[h++],t[h++],t[h],t[h+1],e,n,o))return!0}else a+=xn(r,s,t[h++],t[h++],t[h++],t[h++],t[h],t[h+1],n,o)||0;r=t[h++],s=t[h++];break;case Xb.Q:if(i){if(fn(r,s,t[h++],t[h++],t[h],t[h+1],e,n,o))return!0}else a+=_n(r,s,t[h++],t[h++],t[h],t[h+1],n,o)||0;r=t[h++],s=t[h++];break;case Xb.A:var d=t[h++],f=t[h++],p=t[h++],g=t[h++],m=t[h++],v=t[h++],y=(t[h++],1-t[h++]),x=Math.cos(m)*p+d,_=Math.sin(m)*g+f;h>1?a+=mn(r,s,x,_,n,o):(l=x,u=_);var w=(n-d)*g/p+d;if(i){if(gn(d,f,g,m,m+v,y,e,w,o))return!0}else a+=wn(d,f,g,m,m+v,y,w,o);r=Math.cos(m+v)*p+d,s=Math.sin(m+v)*g+f;break;case Xb.R:l=r=t[h++],u=s=t[h++];var x=l+t[h++],_=u+t[h++];if(i){if(cn(l,u,x,u,e,n,o)||cn(x,u,x,_,e,n,o)||cn(x,_,l,_,e,n,o)||cn(l,_,l,u,e,n,o))return!0}else a+=mn(x,u,x,_,n,o),a+=mn(l,_,l,u,n,o);break;case Xb.Z:if(i){if(cn(r,s,l,u,e,n,o))return!0}else a+=mn(r,s,l,u,n,o);r=l,s=u}}return i||vn(s,u)||(a+=mn(r,s,l,u,n,o)||0),0!==a}function Sn(t,e,i){return bn(t,0,!1,e,i)}function Mn(t,e,i,n){return bn(t,e,!0,i,n)}function In(t){$e.call(this,t),this.path=null}function Tn(t,e,i,n,o,a,r,s,l,u,h){var c=l*(uS/180),d=lS(c)*(t-i)/2+sS(c)*(e-n)/2,f=-1*sS(c)*(t-i)/2+lS(c)*(e-n)/2,p=d*d/(r*r)+f*f/(s*s);p>1&&(r*=rS(p),s*=rS(p));var g=(o===a?-1:1)*rS((r*r*(s*s)-r*r*(f*f)-s*s*(d*d))/(r*r*(f*f)+s*s*(d*d)))||0,m=g*r*f/s,v=g*-s*d/r,y=(t+i)/2+lS(c)*m-sS(c)*v,x=(e+n)/2+sS(c)*m+lS(c)*v,_=dS([1,0],[(d-m)/r,(f-v)/s]),w=[(d-m)/r,(f-v)/s],b=[(-1*d-m)/r,(-1*f-v)/s],S=dS(w,b);cS(w,b)<=-1&&(S=uS),cS(w,b)>=1&&(S=0),0===a&&S>0&&(S-=2*uS),1===a&&S<0&&(S+=2*uS),h.addData(u,y,x,r,s,_,S,c,a)}function Dn(t){if(!t)return[];var e,i=t.replace(/-/g," -").replace(/ /g," ").replace(/ /g,",").replace(/,,/g,",");for(e=0;e0&&""===f[0]&&f.shift();for(var p=0;p=2){if(o&&"spline"!==o){var a=_S(n,o,i,e.smoothConstraint);t.moveTo(n[0][0],n[0][1]);for(var r=n.length,s=0;s<(i?r:r-1);s++){var l=a[2*s],u=a[2*s+1],h=n[(s+1)%r];t.bezierCurveTo(l[0],l[1],u[0],u[1],h[0],h[1])}}else{"spline"===o&&(n=xS(n,i)),t.moveTo(n[0][0],n[0][1]);for(var s=1,c=n.length;s=0)&&(n={textFill:null,textStroke:t.textStroke,textStrokeWidth:t.textStrokeWidth},t.textFill="#fff",null==t.textStroke&&(t.textStroke=i.autoColor,null==t.textStrokeWidth&&(t.textStrokeWidth=2))),n}function uo(t){var e=t.insideRollback;e&&(t.textFill=e.textFill,t.textStroke=e.textStroke,t.textStrokeWidth=e.textStrokeWidth)}function ho(t,e){var i=e||e.getModel("textStyle");return P([t.fontStyle||i&&i.getShallow("fontStyle")||"",t.fontWeight||i&&i.getShallow("fontWeight")||"",(t.fontSize||i&&i.getShallow("fontSize")||12)+"px",t.fontFamily||i&&i.getShallow("fontFamily")||"sans-serif"].join(" "))}function co(t,e,i,n,o,a){if("function"==typeof o&&(a=o,o=null),n&&n.isAnimationEnabled()){var r=t?"Update":"",s=n.getShallow("animationDuration"+r),l=n.getShallow("animationEasing"+r),u=n.getShallow("animationDelay"+r);"function"==typeof u&&(u=u(o,n.getAnimationDelayParams?n.getAnimationDelayParams(e,o):null)),"function"==typeof s&&(s=s(o)),s>0?e.animateTo(i,s,u||0,l,a,!!a):(e.stopAnimation(),e.attr(i),a&&a())}else e.stopAnimation(),e.attr(i),a&&a()}function fo(t,e,i,n,o){co(!0,t,e,i,n,o)}function po(t,e,i,n,o){co(!1,t,e,i,n,o)}function go(t,e){for(var i=lt([]);t&&t!==e;)ht(i,t.getLocalTransform(),i),t=t.parent;return i}function mo(t,e,i){return e&&!c(e)&&(e=E_.getLocalTransform(e)),i&&(e=pt([],e)),Q([],t,e)}function vo(t,e,i){var n=0===e[4]||0===e[5]||0===e[0]?1:Math.abs(2*e[4]/e[0]),o=0===e[4]||0===e[5]||0===e[2]?1:Math.abs(2*e[4]/e[2]),a=["left"===t?-n:"right"===t?n:0,"top"===t?-o:"bottom"===t?o:0];return a=mo(a,e,i),Math.abs(a[0])>Math.abs(a[1])?a[0]>0?"right":"left":a[1]>0?"bottom":"top"}function yo(t,e,i,n){function o(t){var e={position:W(t.position),rotation:t.rotation};return t.shape&&(e.shape=a({},t.shape)),e}if(t&&e){var r=function(t){var e={};return t.traverse(function(t){!t.isGroup&&t.anid&&(e[t.anid]=t)}),e}(t);e.traverse(function(t){if(!t.isGroup&&t.anid){var e=r[t.anid];if(e){var n=o(t);t.attr(o(e)),fo(t,n,i,t.dataIndex)}}})}}function xo(t,e){return f(t,function(t){var i=t[0];i=OS(i,e.x),i=ES(i,e.x+e.width);var n=t[1];return n=OS(n,e.y),n=ES(n,e.y+e.height),[i,n]})}function _o(t,e,i){var n=(e=a({rectHover:!0},e)).style={strokeNoScale:!0};if(i=i||{x:-1,y:-1,width:2,height:2},t)return 0===t.indexOf("image://")?(n.image=t.slice(8),r(n,i),new Je(e)):Rn(t.replace("path://",""),e,i,"center")}function wo(t,e,i){this.parentModel=e,this.ecModel=i,this.option=t}function bo(t,e,i){for(var n=0;n0){if(t<=e[0])return i[0];if(t>=e[1])return i[1]}else{if(t>=e[0])return i[0];if(t<=e[1])return i[1]}else{if(t===e[0])return i[0];if(t===e[1])return i[1]}return(t-e[0])/o*a+i[0]}function Do(t,e){switch(t){case"center":case"middle":t="50%";break;case"left":case"top":t="0%";break;case"right":case"bottom":t="100%"}return"string"==typeof t?Io(t).match(/%$/)?parseFloat(t)/100*e:parseFloat(t):null==t?NaN:+t}function Ao(t,e,i){return null==e&&(e=10),e=Math.min(Math.max(0,e),20),t=(+t).toFixed(e),i?t:+t}function Co(t){return t.sort(function(t,e){return t-e}),t}function Lo(t){if(t=+t,isNaN(t))return 0;for(var e=1,i=0;Math.round(t*e)/e!==t;)e*=10,i++;return i}function ko(t){var e=t.toString(),i=e.indexOf("e");if(i>0){var n=+e.slice(i+1);return n<0?-n:0}var o=e.indexOf(".");return o<0?0:e.length-1-o}function Po(t,e){var i=Math.log,n=Math.LN10,o=Math.floor(i(t[1]-t[0])/n),a=Math.round(i(Math.abs(e[1]-e[0]))/n),r=Math.min(Math.max(-o+a,0),20);return isFinite(r)?r:20}function No(t,e,i){if(!t[e])return 0;var n=p(t,function(t,e){return t+(isNaN(e)?0:e)},0);if(0===n)return 0;for(var o=Math.pow(10,i),a=f(t,function(t){return(isNaN(t)?0:t)/n*o*100}),r=100*o,s=f(a,function(t){return Math.floor(t)}),l=p(s,function(t,e){return t+e},0),u=f(a,function(t,e){return t-s[e]});lh&&(h=u[d],c=d);++s[c],u[c]=0,++l}return s[e]/o}function Oo(t){var e=2*Math.PI;return(t%e+e)%e}function Eo(t){return t>-XS&&t=-20?+t.toFixed(n<0?-n:0):t}function Go(t){function e(t,i,n){return t.interval[n]=0}function Fo(t){return isNaN(t)?"-":(t=(t+"").split("."))[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(t.length>1?"."+t[1]:"")}function Ho(t,e){return t=(t||"").toLowerCase().replace(/-(.)/g,function(t,e){return e.toUpperCase()}),e&&t&&(t=t.charAt(0).toUpperCase()+t.slice(1)),t}function Zo(t){return null==t?"":(t+"").replace($S,function(t,e){return JS[e]})}function Uo(t,e,i){y(e)||(e=[e]);var n=e.length;if(!n)return"";for(var o=e[0].$vars||[],a=0;a':'':""}function Yo(t,e){return t+="","0000".substr(0,e-t.length)+t}function qo(t,e,i){"week"!==t&&"month"!==t&&"quarter"!==t&&"half-year"!==t&&"year"!==t||(t="MM-dd\nyyyy");var n=Ro(e),o=i?"UTC":"",a=n["get"+o+"FullYear"](),r=n["get"+o+"Month"]()+1,s=n["get"+o+"Date"](),l=n["get"+o+"Hours"](),u=n["get"+o+"Minutes"](),h=n["get"+o+"Seconds"](),c=n["get"+o+"Milliseconds"]();return t=t.replace("MM",Yo(r,2)).replace("M",r).replace("yyyy",a).replace("yy",a%100).replace("dd",Yo(s,2)).replace("d",s).replace("hh",Yo(l,2)).replace("h",l).replace("mm",Yo(u,2)).replace("m",u).replace("ss",Yo(h,2)).replace("s",h).replace("SSS",Yo(c,3))}function Ko(t){return t?t.charAt(0).toUpperCase()+t.substr(1):t}function $o(t,e,i,n,o){var a=0,r=0;null==n&&(n=1/0),null==o&&(o=1/0);var s=0;e.eachChild(function(l,u){var h,c,d=l.position,f=l.getBoundingRect(),p=e.childAt(u+1),g=p&&p.getBoundingRect();if("horizontal"===t){var m=f.width+(g?-g.x+f.x:0);(h=a+m)>n||l.newline?(a=0,h=m,r+=s+i,s=f.height):s=Math.max(s,f.height)}else{var v=f.height+(g?-g.y+f.y:0);(c=r+v)>o||l.newline?(a+=s+i,r=0,c=v,s=f.width):s=Math.max(s,f.width)}l.newline||(d[0]=a,d[1]=r,"horizontal"===t?a=h+i:r=c+i)})}function Jo(t,e,i){var n=e.width,o=e.height,a=Do(t.x,n),r=Do(t.y,o),s=Do(t.x2,n),l=Do(t.y2,o);return(isNaN(a)||isNaN(parseFloat(t.x)))&&(a=0),(isNaN(s)||isNaN(parseFloat(t.x2)))&&(s=n),(isNaN(r)||isNaN(parseFloat(t.y)))&&(r=0),(isNaN(l)||isNaN(parseFloat(t.y2)))&&(l=o),i=KS(i||0),{width:Math.max(s-a-i[1]-i[3],0),height:Math.max(l-r-i[0]-i[2],0)}}function Qo(t,e,i){i=KS(i||0);var n=e.width,o=e.height,a=Do(t.left,n),r=Do(t.top,o),s=Do(t.right,n),l=Do(t.bottom,o),u=Do(t.width,n),h=Do(t.height,o),c=i[2]+i[0],d=i[1]+i[3],f=t.aspect;switch(isNaN(u)&&(u=n-s-d-a),isNaN(h)&&(h=o-l-c-r),null!=f&&(isNaN(u)&&isNaN(h)&&(f>n/o?u=.8*n:h=.8*o),isNaN(u)&&(u=f*h),isNaN(h)&&(h=u/f)),isNaN(a)&&(a=n-s-u-d),isNaN(r)&&(r=o-l-h-c),t.left||t.right){case"center":a=n/2-u/2-i[3];break;case"right":a=n-u-d}switch(t.top||t.bottom){case"middle":case"center":r=o/2-h/2-i[0];break;case"bottom":r=o-h-c}a=a||0,r=r||0,isNaN(u)&&(u=n-d-a-(s||0)),isNaN(h)&&(h=o-c-r-(l||0));var p=new $t(a+i[3],r+i[0],u,h);return p.margin=i,p}function ta(t,e,i,n,o){var a=!o||!o.hv||o.hv[0],s=!o||!o.hv||o.hv[1],l=o&&o.boundingMode||"all";if(a||s){var u;if("raw"===l)u="group"===t.type?new $t(0,0,+e.width||0,+e.height||0):t.getBoundingRect();else if(u=t.getBoundingRect(),t.needLocalTransform()){var h=t.getLocalTransform();(u=u.clone()).applyTransform(h)}e=Qo(r({width:u.width,height:u.height},e),i,n);var c=t.position,d=a?e.x-u.x:0,f=s?e.y-u.y:0;t.attr("position","raw"===l?[d,f]:[c[0]+d,c[1]+f])}}function ea(t,e){return null!=t[rM[e][0]]||null!=t[rM[e][1]]&&null!=t[rM[e][2]]}function ia(t,e,i){function n(i,n){var r={},l=0,u={},h=0;if(oM(i,function(e){u[e]=t[e]}),oM(i,function(t){o(e,t)&&(r[t]=u[t]=e[t]),a(r,t)&&l++,a(u,t)&&h++}),s[n])return a(e,i[1])?u[i[2]]=null:a(e,i[2])&&(u[i[1]]=null),u;if(2!==h&&l){if(l>=2)return r;for(var c=0;ce)return t[n];return t[i-1]}function ra(t){var e=t.get("coordinateSystem"),i={coordSysName:e,coordSysDims:[],axisMap:R(),categoryAxisMap:R()},n=gM[e];if(n)return n(t,i,i.axisMap,i.categoryAxisMap),i}function sa(t){return"category"===t.get("type")}function la(t){this.fromDataset=t.fromDataset,this.data=t.data||(t.sourceFormat===xM?{}:[]),this.sourceFormat=t.sourceFormat||_M,this.seriesLayoutBy=t.seriesLayoutBy||bM,this.dimensionsDefine=t.dimensionsDefine,this.encodeDefine=t.encodeDefine&&R(t.encodeDefine),this.startIndex=t.startIndex||0,this.dimensionsDetectCount=t.dimensionsDetectCount}function ua(t){var e=t.option.source,i=_M;if(S(e))i=wM;else if(y(e))for(var n=0,o=e.length;n=e:"max"===i?t<=e:t===e}function Oa(t,e){return t.join(",")===e.join(",")}function Ea(t,e){CM(e=e||{},function(e,i){if(null!=e){var n=t[i];if(hM.hasClass(i)){e=Si(e);var o=Di(n=Si(n),e);t[i]=kM(o,function(t){return t.option&&t.exist?PM(t.exist,t.option,!0):t.exist||t.option})}else t[i]=PM(n,e,!0)}})}function Ra(t){var e=t&&t.itemStyle;if(e)for(var i=0,o=RM.length;i=0;p--){var g=t[p];if(s||(d=g.data.rawIndexOf(g.stackedByDimension,c)),d>=0){var m=g.data.getByRawIndex(g.stackResultDimension,d);if(h>=0&&m>0||h<=0&&m<0){h+=m,f=m;break}}}return n[0]=h,n[1]=f,n});r.hostModel.setData(l),e.data=l})}function Ya(t,e){la.isInstance(t)||(t=la.seriesDataToSource(t)),this._source=t;var i=this._data=t.data,n=t.sourceFormat;n===wM&&(this._offset=0,this._dimSize=e,this._data=i),a(this,FM[n===vM?n+"_"+t.seriesLayoutBy:n])}function qa(){return this._data.length}function Ka(t){return this._data[t]}function $a(t){for(var e=0;ee.outputData.count()&&e.model.getRawData().cloneShallow(e.outputData)}function dr(t,e){d(t.CHANGABLE_METHODS,function(i){t.wrapMethod(i,v(fr,e))})}function fr(t){var e=pr(t);e&&e.setOutputEnd(this.count())}function pr(t){var e=(t.ecModel||{}).scheduler,i=e&&e.getPipeline(t.uid);if(i){var n=i.currentTask;if(n){var o=n.agentStubMap;o&&(n=o.get(t.uid))}return n}}function gr(){this.group=new sw,this.uid=Mo("viewChart"),this.renderTask=nr({plan:yr,reset:xr}),this.renderTask.context={view:this}}function mr(t,e){if(t&&(t.trigger(e),"group"===t.type))for(var i=0;i=0?n():c=setTimeout(n,-a),u=o};return d.clear=function(){c&&(clearTimeout(c),c=null)},d.debounceNextCall=function(t){l=t},d}function wr(t,e,i,n){var o=t[e];if(o){var a=o[oI]||o,r=o[rI];if(o[aI]!==i||r!==n){if(null==i||!n)return t[e]=a;(o=t[e]=_r(a,i,"debounce"===n))[oI]=a,o[rI]=n,o[aI]=i}return o}}function br(t,e){var i=t[e];i&&i[oI]&&(t[e]=i[oI])}function Sr(t,e,i,n){this.ecInstance=t,this.api=e,this.unfinished;var i=this._dataProcessorHandlers=i.slice(),n=this._visualHandlers=n.slice();this._allHandlers=i.concat(n),this._stageTaskMap=R()}function Mr(t,e,i,n,o){function a(t,e){return t.setDirty&&(!t.dirtyMap||t.dirtyMap.get(e.__pipeline.id))}o=o||{};var r;d(e,function(e,s){if(!o.visualType||o.visualType===e.visualType){var l=t._stageTaskMap.get(e.uid),u=l.seriesTaskMap,h=l.overallTask;if(h){var c,d=h.agentStubMap;d.each(function(t){a(o,t)&&(t.dirty(),c=!0)}),c&&h.dirty(),dI(h,n);var f=t.getPerformArgs(h,o.block);d.each(function(t){t.perform(f)}),r|=h.perform(f)}else u&&u.each(function(s,l){a(o,s)&&s.dirty();var u=t.getPerformArgs(s,o.block);u.skip=!e.performRawSeries&&i.isSeriesFiltered(s.context.model),dI(s,n),r|=s.perform(u)})}}),t.unfinished|=r}function Ir(t,e,i,n,o){function a(i){var a=i.uid,s=r.get(a)||r.set(a,nr({plan:kr,reset:Pr,count:Or}));s.context={model:i,ecModel:n,api:o,useClearVisual:e.isVisual&&!e.isLayout,plan:e.plan,reset:e.reset,scheduler:t},Er(t,i,s)}var r=i.seriesTaskMap||(i.seriesTaskMap=R()),s=e.seriesType,l=e.getTargetSeries;e.createOnAllSeries?n.eachRawSeries(a):s?n.eachRawSeriesByType(s,a):l&&l(n,o).each(a);var u=t._pipelineMap;r.each(function(t,e){u.get(e)||(t.dispose(),r.removeKey(e))})}function Tr(t,e,i,n,o){function a(e){var i=e.uid,n=s.get(i);n||(n=s.set(i,nr({reset:Ar,onDirty:Lr})),r.dirty()),n.context={model:e,overallProgress:h,modifyOutputEnd:c},n.agent=r,n.__block=h,Er(t,e,n)}var r=i.overallTask=i.overallTask||nr({reset:Dr});r.context={ecModel:n,api:o,overallReset:e.overallReset,scheduler:t};var s=r.agentStubMap=r.agentStubMap||R(),l=e.seriesType,u=e.getTargetSeries,h=!0,c=e.modifyOutputEnd;l?n.eachRawSeriesByType(l,a):u?u(n,o).each(a):(h=!1,d(n.getSeries(),a));var f=t._pipelineMap;s.each(function(t,e){f.get(e)||(t.dispose(),r.dirty(),s.removeKey(e))})}function Dr(t){t.overallReset(t.ecModel,t.api,t.payload)}function Ar(t,e){return t.overallProgress&&Cr}function Cr(){this.agent.dirty(),this.getDownstream().dirty()}function Lr(){this.agent&&this.agent.dirty()}function kr(t){return t.plan&&t.plan(t.model,t.ecModel,t.api,t.payload)}function Pr(t){t.useClearVisual&&t.data.clearAllVisual();var e=t.resetDefines=Si(t.reset(t.model,t.ecModel,t.api,t.payload));return e.length>1?f(e,function(t,e){return Nr(e)}):fI}function Nr(t){return function(e,i){var n=i.data,o=i.resetDefines[t];if(o&&o.dataEach)for(var a=e.start;ae.get("hoverLayerThreshold")&&!a_.node&&i.traverse(function(t){t.isGroup||(t.useHoverLayer=!0)})}function is(t,e){var i=t.get("blendMode")||null;e.group.traverse(function(t){t.isGroup||t.style.blend!==i&&t.setStyle("blend",i),t.eachPendingDisplayable&&t.eachPendingDisplayable(function(t){t.setStyle("blend",i)})})}function ns(t,e){var i=t.get("z"),n=t.get("zlevel");e.group.traverse(function(t){"group"!==t.type&&(null!=i&&(t.z=i),null!=n&&(t.zlevel=n))})}function os(t){var e=t._coordSysMgr;return a(new Aa(t),{getCoordinateSystems:m(e.getCoordinateSystems,e),getComponentByElement:function(e){for(;e;){var i=e.__ecComponentInfo;if(null!=i)return t._model.getComponent(i.mainType,i.index);e=e.parent}}})}function as(t){function e(t,e){for(var n=0;n65535?nT:oT}function Cs(t){var e=t.constructor;return e===Array?t.slice():new e(t)}function Ls(t,e){d(aT.concat(e.__wrappedMethods||[]),function(i){e.hasOwnProperty(i)&&(t[i]=e[i])}),t.__wrappedMethods=e.__wrappedMethods,d(rT,function(n){t[n]=i(e[n])}),t._calculationInfo=a(e._calculationInfo)}function ks(t){var e=t._invertedIndicesMap;d(e,function(i,n){var o=t._dimensionInfos[n].ordinalMeta;if(o){i=e[n]=new nT(o.categories.length);for(a=0;a=0?this._indices[t]:-1}function Es(t,e){var i=t._idList[e];return null==i&&(i=Ps(t,t._idDimIdx,e)),null==i&&(i=eT+e),i}function Rs(t){return y(t)||(t=[t]),t}function zs(t,e){var i=t.dimensions,n=new sT(f(i,t.getDimensionInfo,t),t.hostModel);Ls(n,t);for(var o=n._storage={},a=t._storage,r=0;r=0?(o[s]=Bs(a[s]),n._rawExtent[s]=Vs(),n._extent[s]=null):o[s]=a[s])}return n}function Bs(t){for(var e=new Array(t.length),i=0;in&&(r=o.interval=n);var s=o.intervalPrecision=tl(r);return il(o.niceTickExtent=[pT(Math.ceil(t[0]/r)*r,s),pT(Math.floor(t[1]/r)*r,s)],t),o}function tl(t){return ko(t)+2}function el(t,e,i){t[e]=Math.max(Math.min(t[e],i[1]),i[0])}function il(t,e){!isFinite(t[0])&&(t[0]=e[0]),!isFinite(t[1])&&(t[1]=e[1]),el(t,0,e),el(t,1,e),t[0]>t[1]&&(t[0]=t[1])}function nl(t,e,i,n){var o=[];if(!t)return o;e[0]1e4)return[];return e[1]>(o.length?o[o.length-1]:i[1])&&o.push(e[1]),o}function ol(t){return t.get("stack")||vT+t.seriesIndex}function al(t){return t.dim+t.index}function rl(t){var e=[],i=t.axis;if("category"===i.type){for(var n=i.getBandWidth(),o=0;o=0?"p":"n",b=m;p&&(o[r][_]||(o[r][_]={p:m,n:m}),b=o[r][_][w]);var S,M,I,T;if(g)S=b,M=(D=i.dataToPoint([x,_]))[1]+l,I=D[0]-m,T=u,Math.abs(I)=0||i?e.toGlobalCoord(e.dataToCoord(0)):e.getGlobalExtent()[0]}function gl(t,e){return CT(t,AT(e))}function ml(t,e){var i,n,o,a=t.type,r=e.getMin(),s=e.getMax(),l=null!=r,u=null!=s,h=t.getExtent();"ordinal"===a?i=e.getCategories().length:(y(n=e.get("boundaryGap"))||(n=[n||0,n||0]),"boolean"==typeof n[0]&&(n=[0,0]),n[0]=Do(n[0],1),n[1]=Do(n[1],1),o=h[1]-h[0]||Math.abs(h[0])),null==r&&(r="ordinal"===a?i?0:NaN:h[0]-n[0]*o),null==s&&(s="ordinal"===a?i?i-1:NaN:h[1]+n[1]*o),"dataMin"===r?r=h[0]:"function"==typeof r&&(r=r({min:h[0],max:h[1]})),"dataMax"===s?s=h[1]:"function"==typeof s&&(s=s({min:h[0],max:h[1]})),(null==r||!isFinite(r))&&(r=NaN),(null==s||!isFinite(s))&&(s=NaN),t.setBlank(I(r)||I(s)||"ordinal"===a&&!t.getOrdinalMeta().categories.length),e.getNeedCrossZero()&&(r>0&&s>0&&!l&&(r=0),r<0&&s<0&&!u&&(s=0));var c=e.ecModel;if(c&&"time"===a){var f,p=sl("bar",c);if(d(p,function(t){f|=t.getBaseAxis()===e.axis}),f){var g=ll(p),m=vl(r,s,e,g);r=m.min,s=m.max}}return[r,s]}function vl(t,e,i,n){var o=i.axis.getExtent(),a=o[1]-o[0],r=hl(n,i.axis);if(void 0===r)return{min:t,max:e};var s=1/0;d(r,function(t){s=Math.min(t.offset,s)});var l=-1/0;d(r,function(t){l=Math.max(t.offset+t.width,l)}),s=Math.abs(s),l=Math.abs(l);var u=s+l,h=e-t,c=h/(1-(s+l)/a)-h;return e+=c*(l/u),t-=c*(s/u),{min:t,max:e}}function yl(t,e){var i=ml(t,e),n=null!=e.getMin(),o=null!=e.getMax(),a=e.get("splitNumber");"log"===t.type&&(t.base=e.get("logBase"));var r=t.type;t.setExtent(i[0],i[1]),t.niceExtent({splitNumber:a,fixMin:n,fixMax:o,minInterval:"interval"===r||"time"===r?e.get("minInterval"):null,maxInterval:"interval"===r||"time"===r?e.get("maxInterval"):null});var s=e.get("interval");null!=s&&t.setInterval&&t.setInterval(s)}function xl(t,e){if(e=e||t.get("type"))switch(e){case"category":return new fT(t.getOrdinalMeta?t.getOrdinalMeta():t.getCategories(),[1/0,-1/0]);case"value":return new mT;default:return(qs.getClass(e)||mT).create(t)}}function _l(t){var e=t.scale.getExtent(),i=e[0],n=e[1];return!(i>0&&n>0||i<0&&n<0)}function wl(t){var e=t.getLabelModel().get("formatter"),i="category"===t.type?t.scale.getExtent()[0]:null;return"string"==typeof e?e=function(t){return function(e){return t.replace("{value}",null!=e?e:"")}}(e):"function"==typeof e?function(n,o){return null!=i&&(o=n-i),e(bl(t,n),o)}:function(e){return t.scale.getLabel(e)}}function bl(t,e){return"category"===t.type?t.scale.getLabel(e):e}function Sl(t){var e=t.model,i=t.scale;if(e.get("axisLabel.show")&&!i.isBlank()){var n,o,a="category"===t.type,r=i.getExtent();o=a?i.count():(n=i.getTicks()).length;var s,l=t.getLabelModel(),u=wl(t),h=1;o>40&&(h=Math.ceil(o/40));for(var c=0;c>1^-(1&s),l=l>>1^-(1&l),o=s+=o,a=l+=a,n.push([s/i,l/i])}return n}function Pl(t){return"category"===t.type?Ol(t):zl(t)}function Nl(t,e){return"category"===t.type?Rl(t,e):{ticks:t.scale.getTicks()}}function Ol(t){var e=t.getLabelModel(),i=El(t,e);return!e.get("show")||t.scale.isBlank()?{labels:[],labelCategoryInterval:i.labelCategoryInterval}:i}function El(t,e){var i=Bl(t,"labels"),n=Xl(e),o=Vl(i,n);if(o)return o;var a,r;return a=x(n)?Ul(t,n):Zl(t,r="auto"===n?Wl(t):n),Gl(i,n,{labels:a,labelCategoryInterval:r})}function Rl(t,e){var i=Bl(t,"ticks"),n=Xl(e),o=Vl(i,n);if(o)return o;var a,r;if(e.get("show")&&!t.scale.isBlank()||(a=[]),x(n))a=Ul(t,n,!0);else if("auto"===n){var s=El(t,t.getLabelModel());r=s.labelCategoryInterval,a=f(s.labels,function(t){return t.tickValue})}else a=Zl(t,r=n,!0);return Gl(i,n,{ticks:a,tickCategoryInterval:r})}function zl(t){var e=t.scale.getTicks(),i=wl(t);return{labels:f(e,function(e,n){return{formattedLabel:i(e,n),rawLabel:t.scale.getLabel(e),tickValue:e}})}}function Bl(t,e){return jT(t)[e]||(jT(t)[e]=[])}function Vl(t,e){for(var i=0;i40&&(s=Math.max(1,Math.floor(r/40)));for(var l=a[0],u=t.dataToCoord(l+1)-t.dataToCoord(l),h=Math.abs(u*Math.cos(n)),c=Math.abs(u*Math.sin(n)),d=0,f=0;l<=a[1];l+=s){var p=0,g=0,m=me(i(l),e.font,"center","top");p=1.3*m.width,g=1.3*m.height,d=Math.max(d,p,7),f=Math.max(f,g,7)}var v=d/h,y=f/c;isNaN(v)&&(v=1/0),isNaN(y)&&(y=1/0);var x=Math.max(0,Math.floor(Math.min(v,y))),_=jT(t.model),w=_.lastAutoInterval,b=_.lastTickCount;return null!=w&&null!=b&&Math.abs(w-x)<=1&&Math.abs(b-r)<=1&&w>x?x=w:(_.lastTickCount=r,_.lastAutoInterval=x),x}function Hl(t){var e=t.getLabelModel();return{axisRotate:t.getRotate?t.getRotate():t.isHorizontal&&!t.isHorizontal()?90:0,labelRotate:e.get("rotate")||0,font:e.getFont()}}function Zl(t,e,i){function n(t){l.push(i?t:{formattedLabel:o(t),rawLabel:a.getLabel(t),tickValue:t})}var o=wl(t),a=t.scale,r=a.getExtent(),s=t.getLabelModel(),l=[],u=Math.max((e||0)+1,1),h=r[0],c=a.count();0!==h&&u>1&&c/u>2&&(h=Math.round(Math.ceil(h/u)*u));var d={min:s.get("showMinLabel"),max:s.get("showMaxLabel")};d.min&&h!==r[0]&&n(r[0]);for(var f=h;f<=r[1];f+=u)n(f);return d.max&&f!==r[1]&&n(r[1]),l}function Ul(t,e,i){var n=t.scale,o=wl(t),a=[];return d(n.getTicks(),function(t){var r=n.getLabel(t);e(t,r)&&a.push(i?t:{formattedLabel:o(t),rawLabel:r,tickValue:t})}),a}function Xl(t){var e=t.get("interval");return null==e?"auto":e}function jl(t,e){var i=(t[1]-t[0])/e/2;t[0]+=i,t[1]-=i}function Yl(t,e,i,n,o){function a(t,e){return h?t>e:t0&&(t.coord-=u/(2*(e+1)))}),s={coord:e[r-1].coord+u},e.push(s)}var h=l[0]>l[1];a(e[0].coord,l[0])&&(o?e[0].coord=l[0]:e.shift()),o&&a(l[0],e[0].coord)&&e.unshift({coord:l[0]}),a(l[1],s.coord)&&(o?s.coord=l[1]:e.pop()),o&&a(s.coord,l[1])&&e.push({coord:l[1]})}}function ql(t,e){var i=t.mapDimension("defaultedLabel",!0),n=i.length;if(1===n)return er(t,e,i[0]);if(n){for(var o=[],a=0;a0?i=n[0]:n[1]<0&&(i=n[1]),i}function au(t,e,i,n){var o=NaN;t.stacked&&(o=i.get(i.getCalculationInfo("stackedOverDimension"),n)),isNaN(o)&&(o=t.valueStart);var a=t.baseDataOffset,r=[];return r[a]=i.get(t.baseDim,n),r[1-a]=o,e.dataToPoint(r)}function ru(t,e){var i=[];return e.diff(t).add(function(t){i.push({cmd:"+",idx:t})}).update(function(t,e){i.push({cmd:"=",idx:e,idx1:t})}).remove(function(t){i.push({cmd:"-",idx:t})}).execute(),i}function su(t){return isNaN(t[0])||isNaN(t[1])}function lu(t,e,i,n,o,a,r,s,l,u,h){return"none"!==u&&u?uu.apply(this,arguments):hu.apply(this,arguments)}function uu(t,e,i,n,o,a,r,s,l,u,h){for(var c=0,d=i,f=0;f=o||d<0)break;if(su(p)){if(h){d+=a;continue}break}if(d===i)t[a>0?"moveTo":"lineTo"](p[0],p[1]);else if(l>0){var g=e[c],m="y"===u?1:0,v=(p[m]-g[m])*l;uD(cD,g),cD[m]=g[m]+v,uD(dD,p),dD[m]=p[m]-v,t.bezierCurveTo(cD[0],cD[1],dD[0],dD[1],p[0],p[1])}else t.lineTo(p[0],p[1]);c=d,d+=a}return f}function hu(t,e,i,n,o,a,r,s,l,u,h){for(var c=0,d=i,f=0;f=o||d<0)break;if(su(p)){if(h){d+=a;continue}break}if(d===i)t[a>0?"moveTo":"lineTo"](p[0],p[1]),uD(cD,p);else if(l>0){var g=d+a,m=e[g];if(h)for(;m&&su(e[g]);)m=e[g+=a];var v=.5,y=e[c];if(!(m=e[g])||su(m))uD(dD,p);else{su(m)&&!h&&(m=p),U(hD,m,y);var x,_;if("x"===u||"y"===u){var w="x"===u?0:1;x=Math.abs(p[w]-y[w]),_=Math.abs(p[w]-m[w])}else x=S_(p,y),_=S_(p,m);lD(dD,p,hD,-l*(1-(v=_/(_+x))))}rD(cD,cD,s),sD(cD,cD,r),rD(dD,dD,s),sD(dD,dD,r),t.bezierCurveTo(cD[0],cD[1],dD[0],dD[1],p[0],p[1]),lD(cD,p,hD,l*v)}else t.lineTo(p[0],p[1]);c=d,d+=a}return f}function cu(t,e){var i=[1/0,1/0],n=[-1/0,-1/0];if(e)for(var o=0;on[0]&&(n[0]=a[0]),a[1]>n[1]&&(n[1]=a[1])}return{min:e?i:n,max:e?n:i}}function du(t,e){if(t.length===e.length){for(var i=0;ie[0]?1:-1;e[0]+=n*i,e[1]-=n*i}return e}function gu(t,e,i){if(!i.valueDim)return[];for(var n=[],o=0,a=e.count();oa[1]&&a.reverse();var r=o.getExtent(),s=Math.PI/180;i&&(a[0]-=.5,a[1]+=.5);var l=new vS({shape:{cx:Ao(t.cx,1),cy:Ao(t.cy,1),r0:Ao(a[0],1),r:Ao(a[1],1),startAngle:-r[0]*s,endAngle:-r[1]*s,clockwise:o.inverse}});return e&&(l.shape.endAngle=-r[0]*s,po(l,{shape:{endAngle:-r[1]*s}},n)),l}function yu(t,e,i,n){return"polar"===t.type?vu(t,e,i,n):mu(t,e,i,n)}function xu(t,e,i){for(var n=e.getBaseAxis(),o="x"===n.dim||"radius"===n.dim?0:1,a=[],r=0;r=0;a--){var r=i[a].dimension,s=t.dimensions[r],l=t.getDimensionInfo(s);if("x"===(n=l&&l.coordDim)||"y"===n){o=i[a];break}}if(o){var u=e.getAxis(n),h=f(o.stops,function(t){return{coord:u.toGlobalCoord(u.dataToCoord(t.value)),color:t.color}}),c=h.length,p=o.outerColors.slice();c&&h[0].coord>h[c-1].coord&&(h.reverse(),p.reverse());var g=h[0].coord-10,m=h[c-1].coord+10,v=m-g;if(v<.001)return"transparent";d(h,function(t){t.offset=(t.coord-g)/v}),h.push({offset:c?h[c-1].offset:.5,color:p[1]||"transparent"}),h.unshift({offset:c?h[0].offset:.5,color:p[0]||"transparent"});var y=new LS(0,0,0,0,h,!0);return y[n]=g,y[n+"2"]=m,y}}}function wu(t,e,i){var n=t.get("showAllSymbol"),o="auto"===n;if(!n||o){var a=i.getAxesByScale("ordinal")[0];if(a&&(!o||!bu(a,e))){var r=e.mapDimension(a.dim),s={};return d(a.getViewLabels(),function(t){s[t.tickValue]=1}),function(t){return!s.hasOwnProperty(e.get(r,t))}}}}function bu(t,e){var i=t.getExtent(),n=Math.abs(i[1]-i[0])/t.scale.count();isNaN(n)&&(n=0);for(var o=e.count(),a=Math.max(1,Math.round(o/5)),r=0;rn)return!1;return!0}function Su(t){return this._axes[t]}function Mu(t){xD.call(this,t)}function Iu(t,e){return e.type||(e.data?"category":"value")}function Tu(t,e,i){return t.getCoordSysModel()===e}function Du(t,e,i){this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this._initCartesian(t,e,i),this.model=t}function Au(t,e,i){i.getAxesOnZeroOf=function(){return n?[n]:[]};var n,o=t[e],a=i.model,r=a.get("axisLine.onZero"),s=a.get("axisLine.onZeroAxisIndex");if(r)if(null==s){for(var l in o)if(o.hasOwnProperty(l)&&Cu(o[l])){n=o[l];break}}else Cu(o[s])&&(n=o[s])}function Cu(t){return t&&"category"!==t.type&&"time"!==t.type&&_l(t)}function Lu(t,e){var i=t.getExtent(),n=i[0]+i[1];t.toGlobalCoord="x"===t.dim?function(t){return t+e}:function(t){return n-t+e},t.toLocalCoord="x"===t.dim?function(t){return t-e}:function(t){return n-t+e}}function ku(t,e){return f(AD,function(e){return t.getReferringComponents(e)[0]})}function Pu(t){return"cartesian2d"===t.get("coordinateSystem")}function Nu(t){var e={componentType:t.mainType};return e[t.mainType+"Index"]=t.componentIndex,e}function Ou(t,e,i,n){var o,a,r=Oo(i-t.rotation),s=n[0]>n[1],l="start"===e&&!s||"start"!==e&&s;return Eo(r-CD/2)?(a=l?"bottom":"top",o="center"):Eo(r-1.5*CD)?(a=l?"top":"bottom",o="center"):(a="middle",o=r<1.5*CD&&r>CD/2?l?"left":"right":l?"right":"left"),{rotation:r,textAlign:o,textVerticalAlign:a}}function Eu(t){var e=t.get("tooltip");return t.get("silent")||!(t.get("triggerEvent")||e&&e.show)}function Ru(t,e,i){var n=t.get("axisLabel.showMinLabel"),o=t.get("axisLabel.showMaxLabel");e=e||[],i=i||[];var a=e[0],r=e[1],s=e[e.length-1],l=e[e.length-2],u=i[0],h=i[1],c=i[i.length-1],d=i[i.length-2];!1===n?(zu(a),zu(u)):Bu(a,r)&&(n?(zu(r),zu(h)):(zu(a),zu(u))),!1===o?(zu(s),zu(c)):Bu(l,s)&&(o?(zu(l),zu(d)):(zu(s),zu(c)))}function zu(t){t&&(t.ignore=!0)}function Bu(t,e,i){var n=t&&t.getBoundingRect().clone(),o=e&&e.getBoundingRect().clone();if(n&&o){var a=lt([]);return dt(a,a,-t.rotation),n.applyTransform(ht([],a,t.getLocalTransform())),o.applyTransform(ht([],a,e.getLocalTransform())),n.intersect(o)}}function Vu(t){return"middle"===t||"center"===t}function Gu(t,e,i){var n=e.axis;if(e.get("axisTick.show")&&!n.scale.isBlank()){for(var o=e.getModel("axisTick"),a=o.getModel("lineStyle"),s=o.get("length"),l=n.getTicksCoords(),u=[],h=[],c=t._transform,d=[],f=0;f=0||t===e}function Yu(t){var e=qu(t);if(e){var i=e.axisPointerModel,n=e.axis.scale,o=i.option,a=i.get("status"),r=i.get("value");null!=r&&(r=n.parse(r));var s=$u(i);null==a&&(o.status=s?"show":"hide");var l=n.getExtent().slice();l[0]>l[1]&&l.reverse(),(null==r||r>l[1])&&(r=l[1]),r0?"bottom":"top":o.width>0?"left":"right";l||ih(t.style,d,n,u,a,i,p),eo(t,d)}function sh(t,e){var i=t.get(HD)||0;return Math.min(i,Math.abs(e.width),Math.abs(e.height))}function lh(t,e,i){var n=t.getData(),o=[],a=n.getLayout("valueAxisHorizontal")?1:0;o[1-a]=n.getLayout("valueAxisStart");var r=new XD({shape:{points:n.getLayout("largePoints")},incremental:!!i,__startPoint:o,__valueIdx:a});e.add(r),uh(r,t,n)}function uh(t,e,i){var n=i.getVisual("borderColor")||i.getVisual("color"),o=e.getModel("itemStyle").getItemStyle(["color","borderColor"]);t.useStyle(o),t.style.fill=null,t.style.stroke=n,t.style.lineWidth=i.getLayout("barWidth")}function hh(t,e,i,n){var o=e.getData(),a=this.dataIndex,r=o.getName(a),s=e.get("selectedOffset");n.dispatchAction({type:"pieToggleSelect",from:t,name:r,seriesId:e.id}),o.each(function(t){ch(o.getItemGraphicEl(t),o.getItemLayout(t),e.isSelected(o.getName(t)),s,i)})}function ch(t,e,i,n,o){var a=(e.startAngle+e.endAngle)/2,r=Math.cos(a),s=Math.sin(a),l=i?n:0,u=[r*l,s*l];o?t.animate().when(200,{position:u}).start("bounceOut"):t.attr("position",u)}function dh(t,e){function i(){a.ignore=a.hoverIgnore,r.ignore=r.hoverIgnore}function n(){a.ignore=a.normalIgnore,r.ignore=r.normalIgnore}sw.call(this);var o=new vS({z2:2}),a=new bS,r=new fS;this.add(o),this.add(a),this.add(r),this.updateData(t,e,!0),this.on("emphasis",i).on("normal",n).on("mouseover",i).on("mouseout",n)}function fh(t,e,i,n,o,a,r){function s(e,i){for(var n=e;n>=0&&(t[n].y-=i,!(n>0&&t[n].y>t[n-1].y+t[n-1].height));n--);}function l(t,e,i,n,o,a){for(var r=e?Number.MAX_VALUE:0,s=0,l=t.length;s=r&&(d=r-10),!e&&d<=r&&(d=r+10),t[s].x=i+d*a,r=d}}t.sort(function(t,e){return t.y-e.y});for(var u,h=0,c=t.length,d=[],f=[],p=0;pe&&a+1t[a].y+t[a].height)return void s(a,n/2);s(i-1,n/2)}(p,c,-u),h=t[p].y+t[p].height;r-h<0&&s(c-1,h-r);for(p=0;p=i?f.push(t[p]):d.push(t[p]);l(d,!1,e,i,n,o),l(f,!0,e,i,n,o)}function ph(t,e,i,n,o,a){for(var r=[],s=[],l=0;l1?(p.width=l,p.height=l/d):(p.height=l,p.width=l*d),p.y=s[1]-p.height/2,p.x=s[0]-p.width/2}else(a=t.getBoxLayoutParams()).aspect=d,p=Qo(a,{width:u,height:h});this.setViewRect(p.x,p.y,p.width,p.height),this.setCenter(t.get("center")),this.setZoom(t.get("zoom"))}function Th(t,e){d(e.get("geoCoord"),function(e,i){t.addGeoCoord(i,e)})}function Dh(t,e,i){Lh(t)[e]=i}function Ah(t,e,i){var n=Lh(t);n[e]===i&&(n[e]=null)}function Ch(t,e){return!!Lh(t)[e]}function Lh(t){return t[xA]||(t[xA]={})}function kh(t){this.pointerChecker,this._zr=t,this._opt={};var e=m,n=e(Ph,this),o=e(Nh,this),a=e(Oh,this),s=e(Eh,this),l=e(Rh,this);D_.call(this),this.setPointerChecker=function(t){this.pointerChecker=t},this.enable=function(e,u){this.disable(),this._opt=r(i(u)||{},{zoomOnMouseWheel:!0,moveOnMouseMove:!0,preventDefaultMouseMove:!0}),null==e&&(e=!0),!0!==e&&"move"!==e&&"pan"!==e||(t.on("mousedown",n),t.on("mousemove",o),t.on("mouseup",a)),!0!==e&&"scale"!==e&&"zoom"!==e||(t.on("mousewheel",s),t.on("pinch",l))},this.disable=function(){t.off("mousedown",n),t.off("mousemove",o),t.off("mouseup",a),t.off("mousewheel",s),t.off("pinch",l)},this.dispose=this.disable,this.isDragging=function(){return this._dragging},this.isPinching=function(){return this._pinching}}function Ph(t){if(!(ci(t)||t.target&&t.target.draggable)){var e=t.offsetX,i=t.offsetY;this.pointerChecker&&this.pointerChecker(t,e,i)&&(this._x=e,this._y=i,this._dragging=!0)}}function Nh(t){if(!ci(t)&&Bh(this,"moveOnMouseMove",t)&&this._dragging&&"pinch"!==t.gestureEvent&&!Ch(this._zr,"globalPan")){var e=t.offsetX,i=t.offsetY,n=this._x,o=this._y,a=e-n,r=i-o;this._x=e,this._y=i,this._opt.preventDefaultMouseMove&&zw(t.event),this.trigger("pan",a,r,n,o,e,i)}}function Oh(t){ci(t)||(this._dragging=!1)}function Eh(t){if(Bh(this,"zoomOnMouseWheel",t)&&0!==t.wheelDelta){var e=t.wheelDelta>0?1.1:1/1.1;zh.call(this,t,e,t.offsetX,t.offsetY)}}function Rh(t){if(!Ch(this._zr,"globalPan")){var e=t.pinchScale>1?1.1:1/1.1;zh.call(this,t,e,t.pinchX,t.pinchY)}}function zh(t,e,i,n){this.pointerChecker&&this.pointerChecker(t,i,n)&&(zw(t.event),this.trigger("zoom",e,i,n))}function Bh(t,e,i){var n=t._opt[e];return n&&(!_(n)||i.event[n+"Key"])}function Vh(t,e,i){var n=t.target,o=n.position;o[0]+=e,o[1]+=i,n.dirty()}function Gh(t,e,i,n){var o=t.target,a=t.zoomLimit,r=o.position,s=o.scale,l=t.zoom=t.zoom||1;if(l*=e,a){var u=a.min||0,h=a.max||1/0;l=Math.max(Math.min(h,l),u)}var c=l/t.zoom;t.zoom=l,r[0]-=(i-r[0])*(c-1),r[1]-=(n-r[1])*(c-1),s[0]*=c,s[1]*=c,o.dirty()}function Wh(t,e,i){var n=e.getComponentByElement(t.topTarget),o=n&&n.coordinateSystem;return n&&n!==i&&!_A[n.mainType]&&o&&o.model!==i}function Fh(t,e){var i=t.getItemStyle(),n=t.get("areaColor");return null!=n&&(i.fill=n),i}function Hh(t,e,i,n,o){i.off("click"),i.off("mousedown"),e.get("selectedMode")&&(i.on("mousedown",function(){t._mouseDownFlag=!0}),i.on("click",function(a){if(t._mouseDownFlag){t._mouseDownFlag=!1;for(var r=a.target;!r.__regions;)r=r.parent;if(r){var s={type:("geo"===e.mainType?"geo":"map")+"ToggleSelect",batch:f(r.__regions,function(t){return{name:t.name,from:o.uid}})};s[e.mainType+"Id"]=e.id,n.dispatchAction(s),Zh(e,i)}}}))}function Zh(t,e){e.eachChild(function(e){d(e.__regions,function(i){e.trigger(t.isSelected(i.name)?"emphasis":"normal")})})}function Uh(t,e){var i=new sw;this._controller=new kh(t.getZr()),this._controllerHost={target:e?i:null},this.group=i,this._updateGroup=e,this._mouseDownFlag}function Xh(t,e,i){var n=t.getZoom(),o=t.getCenter(),a=e.zoom,r=t.dataToPoint(o);if(null!=e.dx&&null!=e.dy){r[0]-=e.dx,r[1]-=e.dy;o=t.pointToData(r);t.setCenter(o)}if(null!=a){if(i){var s=i.min||0,l=i.max||1/0;a=Math.max(Math.min(n*a,l),s)/n}t.scale[0]*=a,t.scale[1]*=a;var u=t.position,h=(e.originX-u[0])*(a-1),c=(e.originY-u[1])*(a-1);u[0]-=h,u[1]-=c,t.updateTransform();o=t.pointToData(r);t.setCenter(o),t.setZoom(a*n)}return{center:t.getCenter(),zoom:t.getZoom()}}function jh(t,e){var i={};return d(t,function(t){t.each(t.mapDimension("value"),function(e,n){var o="ec-"+t.getName(n);i[o]=i[o]||[],isNaN(e)||i[o].push(e)})}),t[0].map(t[0].mapDimension("value"),function(n,o){for(var a="ec-"+t[0].getName(o),r=0,s=1/0,l=-1/0,u=i[a].length,h=0;h=0;o--){var a=i[o];a.hierNode={defaultAncestor:null,ancestor:a,prelim:0,modifier:0,change:0,shift:0,i:o,thread:null},n.push(a)}}function ac(t,e){var i=t.isExpand?t.children:[],n=t.parentNode.children,o=t.hierNode.i?n[t.hierNode.i-1]:null;if(i.length){hc(t);var a=(i[0].hierNode.prelim+i[i.length-1].hierNode.prelim)/2;o?(t.hierNode.prelim=o.hierNode.prelim+e(t,o),t.hierNode.modifier=t.hierNode.prelim-a):t.hierNode.prelim=a}else o&&(t.hierNode.prelim=o.hierNode.prelim+e(t,o));t.parentNode.hierNode.defaultAncestor=cc(t,o,t.parentNode.hierNode.defaultAncestor||n[0],e)}function rc(t){var e=t.hierNode.prelim+t.parentNode.hierNode.modifier;t.setLayout({x:e},!0),t.hierNode.modifier+=t.parentNode.hierNode.modifier}function sc(t){return arguments.length?t:mc}function lc(t,e){var i={};return t-=Math.PI/2,i.x=e*Math.cos(t),i.y=e*Math.sin(t),i}function uc(t,e){return Qo(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}function hc(t){for(var e=t.children,i=e.length,n=0,o=0;--i>=0;){var a=e[i];a.hierNode.prelim+=n,a.hierNode.modifier+=n,o+=a.hierNode.change,n+=a.hierNode.shift+o}}function cc(t,e,i,n){if(e){for(var o=t,a=t,r=a.parentNode.children[0],s=e,l=o.hierNode.modifier,u=a.hierNode.modifier,h=r.hierNode.modifier,c=s.hierNode.modifier;s=dc(s),a=fc(a),s&&a;){o=dc(o),r=fc(r),o.hierNode.ancestor=t;var d=s.hierNode.prelim+c-a.hierNode.prelim-u+n(s,a);d>0&&(gc(pc(s,t,i),t,d),u+=d,l+=d),c+=s.hierNode.modifier,u+=a.hierNode.modifier,l+=o.hierNode.modifier,h+=r.hierNode.modifier}s&&!dc(o)&&(o.hierNode.thread=s,o.hierNode.modifier+=c-l),a&&!fc(r)&&(r.hierNode.thread=a,r.hierNode.modifier+=u-h,i=t)}return i}function dc(t){var e=t.children;return e.length&&t.isExpand?e[e.length-1]:t.hierNode.thread}function fc(t){var e=t.children;return e.length&&t.isExpand?e[0]:t.hierNode.thread}function pc(t,e,i){return t.hierNode.ancestor.parentNode===e.parentNode?t.hierNode.ancestor:i}function gc(t,e,i){var n=i/(e.hierNode.i-t.hierNode.i);e.hierNode.change-=n,e.hierNode.shift+=i,e.hierNode.modifier+=i,e.hierNode.prelim+=i,t.hierNode.change+=n}function mc(t,e){return t.parentNode===e.parentNode?1:2}function vc(t,e){var i=t.getItemLayout(e);return i&&!isNaN(i.x)&&!isNaN(i.y)&&"none"!==t.getItemVisual(e,"symbol")}function yc(t,e,i){return i.itemModel=e,i.itemStyle=e.getModel("itemStyle").getItemStyle(),i.hoverItemStyle=e.getModel("emphasis.itemStyle").getItemStyle(),i.lineStyle=e.getModel("lineStyle").getLineStyle(),i.labelModel=e.getModel("label"),i.hoverLabelModel=e.getModel("emphasis.label"),!1===t.isExpand&&0!==t.children.length?i.symbolInnerColor=i.itemStyle.fill:i.symbolInnerColor="#fff",i}function xc(t,e,i,n,o,a){var s=!i,l=t.tree.getNodeByDataIndex(e),a=yc(l,l.getModel(),a),u=t.tree.root,h=l.parentNode===u?l:l.parentNode||l,c=t.getItemGraphicEl(h.dataIndex),d=h.getLayout(),f=c?{x:c.position[0],y:c.position[1],rawX:c.__radialOldRawX,rawY:c.__radialOldRawY}:d,p=l.getLayout();s?(i=new Kl(t,e,a)).attr("position",[f.x,f.y]):i.updateData(t,e,a),i.__radialOldRawX=i.__radialRawX,i.__radialOldRawY=i.__radialRawY,i.__radialRawX=p.rawX,i.__radialRawY=p.rawY,n.add(i),t.setItemGraphicEl(e,i),fo(i,{position:[p.x,p.y]},o);var g=i.getSymbolPath();if("radial"===a.layout){var m,v,y=u.children[0],x=y.getLayout(),_=y.children.length;if(p.x===x.x&&!0===l.isExpand){var w={};w.x=(y.children[0].getLayout().x+y.children[_-1].getLayout().x)/2,w.y=(y.children[0].getLayout().y+y.children[_-1].getLayout().y)/2,(m=Math.atan2(w.y-x.y,w.x-x.x))<0&&(m=2*Math.PI+m),(v=w.xx.x)||(m-=Math.PI);var b=v?"left":"right";g.setStyle({textPosition:b,textRotation:-m,textOrigin:"center",verticalAlign:"middle"})}if(l.parentNode&&l.parentNode!==u){var S=i.__edge;S||(S=i.__edge=new TS({shape:wc(a,f,f),style:r({opacity:0},a.lineStyle)})),fo(S,{shape:wc(a,d,p),style:{opacity:1}},o),n.add(S)}}function _c(t,e,i,n,o,a){for(var r,s=t.tree.getNodeByDataIndex(e),l=t.tree.root,a=yc(s,s.getModel(),a),u=s.parentNode===l?s:s.parentNode||s;null==(r=u.getLayout());)u=u.parentNode===l?u:u.parentNode||u;fo(i,{position:[r.x+1,r.y+1]},o,function(){n.remove(i),t.setItemGraphicEl(e,null)}),i.fadeOut(null,{keepLabel:!0});var h=i.__edge;h&&fo(h,{shape:wc(a,r,r),style:{opacity:0}},o,function(){n.remove(h)})}function wc(t,e,i){var n,o,a,r,s=t.orient;if("radial"===t.layout){var l=e.rawX,u=e.rawY,h=i.rawX,c=i.rawY,d=lc(l,u),f=lc(l,u+(c-u)*t.curvature),p=lc(h,c+(u-c)*t.curvature),g=lc(h,c);return{x1:d.x,y1:d.y,x2:g.x,y2:g.y,cpx1:f.x,cpy1:f.y,cpx2:p.x,cpy2:p.y}}var l=e.x,u=e.y,h=i.x,c=i.y;return"LR"!==s&&"RL"!==s||(n=l+(h-l)*t.curvature,o=u,a=h+(l-h)*t.curvature,r=c),"TB"!==s&&"BT"!==s||(n=l,o=u+(c-u)*t.curvature,a=h,r=c+(u-c)*t.curvature),{x1:l,y1:u,x2:h,y2:c,cpx1:n,cpy1:o,cpx2:a,cpy2:r}}function bc(t,e,i){for(var n,o=[t],a=[];n=o.pop();)if(a.push(n),n.isExpand){var r=n.children;if(r.length)for(var s=0;s=0;a--)n.push(o[a])}}function Mc(t,e){var i=uc(t,e);t.layoutInfo=i;var n=t.get("layout"),o=0,a=0,r=null;"radial"===n?(o=2*Math.PI,a=Math.min(i.height,i.width)/2,r=sc(function(t,e){return(t.parentNode===e.parentNode?1:2)/t.depth})):(o=i.width,a=i.height,r=sc());var s=t.getData().tree.root,l=s.children[0];if(l){oc(s),bc(l,ac,r),s.hierNode.modifier=-l.hierNode.prelim,Sc(l,rc);var u=l,h=l,c=l;Sc(l,function(t){var e=t.getLayout().x;eh.getLayout().x&&(h=t),t.depth>c.depth&&(c=t)});var d=u===h?1:r(u,h)/2,f=d-u.getLayout().x,p=0,g=0,m=0,v=0;if("radial"===n)p=o/(h.getLayout().x+d+f),g=a/(c.depth-1||1),Sc(l,function(t){m=(t.getLayout().x+f)*p,v=(t.depth-1)*g;var e=lc(m,v);t.setLayout({x:e.x,y:e.y,rawX:m,rawY:v},!0)});else{var y=t.getOrient();"RL"===y||"LR"===y?(g=a/(h.getLayout().x+d+f),p=o/(c.depth-1||1),Sc(l,function(t){v=(t.getLayout().x+f)*g,m="LR"===y?(t.depth-1)*p:o-(t.depth-1)*p,t.setLayout({x:m,y:v},!0)})):"TB"!==y&&"BT"!==y||(p=o/(h.getLayout().x+d+f),g=a/(c.depth-1||1),Sc(l,function(t){m=(t.getLayout().x+f)*p,v="TB"===y?(t.depth-1)*g:a-(t.depth-1)*g,t.setLayout({x:m,y:v},!0)}))}}}function Ic(t,e,i){if(t&&l(e,t.type)>=0){var n=i.getData().tree.root,o=t.targetNode;if(o&&n.contains(o))return{node:o};var a=t.targetNodeId;if(null!=a&&(o=n.getNodeById(a)))return{node:o}}}function Tc(t){for(var e=[];t;)(t=t.parentNode)&&e.push(t);return e.reverse()}function Dc(t,e){return l(Tc(t),e)>=0}function Ac(t,e){for(var i=[];t;){var n=t.dataIndex;i.push({name:t.name,dataIndex:n,value:e.getRawValue(n)}),t=t.parentNode}return i.reverse(),i}function Cc(t){var e=0;d(t.children,function(t){Cc(t);var i=t.value;y(i)&&(i=i[0]),e+=i});var i=t.value;y(i)&&(i=i[0]),(null==i||isNaN(i))&&(i=e),i<0&&(i=0),y(t.value)?t.value[0]=i:t.value=i}function Lc(t,e){var i=e.get("color");if(i){var n;return d(t=t||[],function(t){var e=new wo(t),i=e.get("color");(e.get("itemStyle.color")||i&&"none"!==i)&&(n=!0)}),n||((t[0]||(t[0]={})).color=i.slice()),t}}function kc(t){this.group=new sw,t.add(this.group)}function Pc(t,e,i,n,o,a){var r=[[o?t:t-IA,e],[t+i,e],[t+i,e+n],[o?t:t-IA,e+n]];return!a&&r.splice(2,0,[t+i+IA,e+n/2]),!o&&r.push([t,e+n/2]),r}function Nc(t,e,i){t.eventData={componentType:"series",componentSubType:"treemap",seriesIndex:e.componentIndex,seriesName:e.name,seriesType:"treemap",selfType:"breadcrumb",nodeData:{dataIndex:i&&i.dataIndex,name:i&&i.name},treePathInfo:i&&Ac(i,e)}}function Oc(){var t,e=[],i={};return{add:function(t,n,o,a,r){return _(a)&&(r=a,a=0),!i[t.id]&&(i[t.id]=1,e.push({el:t,target:n,time:o,delay:a,easing:r}),!0)},done:function(e){return t=e,this},start:function(){for(var n=e.length,o=0,a=e.length;o=0;a--)null==i[a]&&(delete n[e[a]],e.pop())}function Vc(t,e){var i=t.visual,n=[];w(i)?WA(i,function(t){n.push(t)}):null!=i&&n.push(i);var o={color:1,symbol:1};e||1!==n.length||o.hasOwnProperty(t.type)||(n[1]=n[0]),jc(t,n)}function Gc(t){return{applyVisual:function(e,i,n){e=this.mapValueToVisual(e),n("color",t(i("color"),e))},_doMap:Uc([0,1])}}function Wc(t){var e=this.option.visual;return e[Math.round(To(t,[0,1],[0,e.length-1],!0))]||{}}function Fc(t){return function(e,i,n){n(t,this.mapValueToVisual(e))}}function Hc(t){var e=this.option.visual;return e[this.option.loop&&t!==HA?t%e.length:t]}function Zc(){return this.option.visual[0]}function Uc(t){return{linear:function(e){return To(e,t,this.option.visual,!0)},category:Hc,piecewise:function(e,i){var n=Xc.call(this,i);return null==n&&(n=To(e,t,this.option.visual,!0)),n},fixed:Zc}}function Xc(t){var e=this.option,i=e.pieceList;if(e.hasSpecialVisual){var n=i[ZA.findPieceIndex(t,i)];if(n&&n.visual)return n.visual[this.type]}}function jc(t,e){return t.visual=e,"color"===t.type&&(t.parsedVisual=f(e,function(t){return At(t)})),e}function Yc(t,e,i){return t?e<=i:e=o.length||t===o[t.depth])&&qc(t,id(r,h,t,e,g,a),i,n,o,a)})}else l=$c(h),t.setVisual("color",l)}}function Kc(t,e,i,n){var o=a({},e);return d(["color","colorAlpha","colorSaturation"],function(a){var r=t.get(a,!0);null==r&&i&&(r=i[a]),null==r&&(r=e[a]),null==r&&(r=n.get(a)),null!=r&&(o[a]=r)}),o}function $c(t){var e=Qc(t,"color");if(e){var i=Qc(t,"colorAlpha"),n=Qc(t,"colorSaturation");return n&&(e=Et(e,null,null,n)),i&&(e=Rt(e,i)),e}}function Jc(t,e){return null!=e?Et(e,null,null,t):null}function Qc(t,e){var i=t[e];if(null!=i&&"none"!==i)return i}function td(t,e,i,n,o,a){if(a&&a.length){var r=ed(e,"color")||null!=o.color&&"none"!==o.color&&(ed(e,"colorAlpha")||ed(e,"colorSaturation"));if(r){var s=e.get("visualMin"),l=e.get("visualMax"),u=i.dataExtent.slice();null!=s&&su[1]&&(u[1]=l);var h=e.get("colorMappingBy"),c={type:r.name,dataExtent:u,visual:r.range};"color"!==c.type||"index"!==h&&"id"!==h?c.mappingMethod="linear":(c.mappingMethod="category",c.loop=!0);var d=new ZA(c);return d.__drColorMappingBy=h,d}}}function ed(t,e){var i=t.get(e);return jA(i)&&i.length?{name:e,range:i}:null}function id(t,e,i,n,o,r){var s=a({},e);if(o){var l=o.type,u="color"===l&&o.__drColorMappingBy,h="index"===u?n:"id"===u?r.mapIdToIndex(i.getId()):i.getValue(t.get("visualDimension"));s[l]=o.mapValueToVisual(h)}return s}function nd(t,e,i,n){var o,a;if(!t.isRemoved()){var r=t.getLayout();o=r.width,a=r.height;var s=(f=t.getModel()).get(tC),l=f.get(eC)/2,u=fd(f),h=Math.max(s,u),c=s-l,d=h-l,f=t.getModel();t.setLayout({borderWidth:s,upperHeight:h,upperLabelHeight:u},!0);var p=(o=KA(o-2*c,0))*(a=KA(a-c-d,0)),g=od(t,f,p,e,i,n);if(g.length){var m={x:c,y:d,width:o,height:a},v=$A(o,a),y=1/0,x=[];x.area=0;for(var _=0,w=g.length;_=0;l--){var u=o["asc"===n?r-l-1:l].getValue();u/i*es[1]&&(s[1]=e)})}else s=[NaN,NaN];return{sum:n,dataExtent:s}}function ld(t,e,i){for(var n,o=0,a=1/0,r=0,s=t.length;ro&&(o=n));var l=t.area*t.area,u=e*e*i;return l?KA(u*o/l,l/(u*a)):1/0}function ud(t,e,i,n,o){var a=e===i.width?0:1,r=1-a,s=["x","y"],l=["width","height"],u=i[s[a]],h=e?t.area/e:0;(o||h>i[l[r]])&&(h=i[l[r]]);for(var c=0,d=t.length;cjS&&(u=jS),a=s}u=0?n+=u:n-=u:p>=0?n-=u:n+=u}return n}function Ld(t,e){return t.getVisual("opacity")||t.getModel().get(e)}function kd(t,e,i){var n=t.getGraphicEl(),o=Ld(t,e);null!=i&&(null==o&&(o=1),o*=i),n.downplay&&n.downplay(),n.traverse(function(t){"group"!==t.type&&t.setStyle("opacity",o)})}function Pd(t,e){var i=Ld(t,e),n=t.getGraphicEl();n.highlight&&n.highlight(),n.traverse(function(t){"group"!==t.type&&t.setStyle("opacity",i)})}function Nd(t){return t instanceof Array||(t=[t,t]),t}function Od(t){var e=t.coordinateSystem;if(!e||"view"===e.type){var i=t.getGraph();i.eachNode(function(t){var e=t.getModel();t.setLayout([+e.get("x"),+e.get("y")])}),Ed(i)}}function Ed(t){t.eachEdge(function(t){var e=t.getModel().get("lineStyle.curveness")||0,i=W(t.node1.getLayout()),n=W(t.node2.getLayout()),o=[i,n];+e&&o.push([(i[0]+n[0])/2-(i[1]-n[1])*e,(i[1]+n[1])/2-(n[0]-i[0])*e]),t.setLayout(o)})}function Rd(t){var e=t.coordinateSystem;if(!e||"view"===e.type){var i=e.getBoundingRect(),n=t.getData(),o=n.graph,a=0,r=n.getSum("value"),s=2*Math.PI/(r||n.count()),l=i.width/2+i.x,u=i.height/2+i.y,h=Math.min(i.width,i.height)/2;o.eachNode(function(t){var e=t.getValue("value");a+=s*(r?e:1)/2,t.setLayout([h*Math.cos(a)+l,h*Math.sin(a)+u]),a+=s*(r?e:1)/2}),n.setLayout({cx:l,cy:u}),o.eachEdge(function(t){var e,i=t.getModel().get("lineStyle.curveness")||0,n=W(t.node1.getLayout()),o=W(t.node2.getLayout()),a=(n[0]+o[0])/2,r=(n[1]+o[1])/2;+i&&(e=[l*(i*=3)+a*(1-i),u*i+r*(1-i)]),t.setLayout([n,o,e])})}}function zd(t,e,i){for(var n=i.rect,o=n.width,a=n.height,r=[n.x+o/2,n.y+a/2],s=null==i.gravity?.1:i.gravity,l=0;l0?-1:i<0?1:e?-1:1}}function Yd(t,e){return Math.min(e[1],Math.max(e[0],t))}function qd(t,e,i){this._axesMap=R(),this._axesLayout={},this.dimensions=t.dimensions,this._rect,this._model=t,this._init(t,e,i)}function Kd(t,e){return OC(EC(t,e[0]),e[1])}function $d(t,e){var i=e.layoutLength/(e.axisCount-1);return{position:i*t,axisNameAvailableWidth:i,axisLabelShow:!0}}function Jd(t,e){var i,n,o=e.layoutLength,a=e.axisExpandWidth,r=e.axisCount,s=e.axisCollapseWidth,l=e.winInnerIndices,u=s,h=!1;return tqC}function pf(t){var e=t.length-1;return e<0&&(e=0),[t[0],t[e]]}function gf(t,e,i,n){var o=new sw;return o.add(new SS({name:"main",style:xf(i),silent:!0,draggable:!0,cursor:"move",drift:FC(t,e,o,"nswe"),ondragend:FC(df,e,{isEnd:!0})})),HC(n,function(i){o.add(new SS({name:i,style:{opacity:0},draggable:!0,silent:!0,invisible:!0,drift:FC(t,e,o,i),ondragend:FC(df,e,{isEnd:!0})}))}),o}function mf(t,e,i,n){var o=n.brushStyle.lineWidth||0,a=XC(o,KC),r=i[0][0],s=i[1][0],l=r-o/2,u=s-o/2,h=i[0][1],c=i[1][1],d=h-a+o/2,f=c-a+o/2,p=h-r,g=c-s,m=p+o,v=g+o;yf(t,e,"main",r,s,p,g),n.transformable&&(yf(t,e,"w",l,u,a,v),yf(t,e,"e",d,u,a,v),yf(t,e,"n",l,u,m,a),yf(t,e,"s",l,f,m,a),yf(t,e,"nw",l,u,a,a),yf(t,e,"ne",d,u,a,a),yf(t,e,"sw",l,f,a,a),yf(t,e,"se",d,f,a,a))}function vf(t,e){var i=e.__brushOption,n=i.transformable,o=e.childAt(0);o.useStyle(xf(i)),o.attr({silent:!n,cursor:n?"move":"default"}),HC(["w","e","n","s","se","sw","ne","nw"],function(i){var o=e.childOfName(i),a=bf(t,i);o&&o.attr({silent:!n,invisible:!n,cursor:n?QC[a]+"-resize":null})})}function yf(t,e,i,n,o,a,r){var s=e.childOfName(i);s&&s.setShape(Df(Tf(t,e,[[n,o],[n+a,o+r]])))}function xf(t){return r({strokeNoScale:!0},t.brushStyle)}function _f(t,e,i,n){var o=[UC(t,i),UC(e,n)],a=[XC(t,i),XC(e,n)];return[[o[0],a[0]],[o[1],a[1]]]}function wf(t){return go(t.group)}function bf(t,e){if(e.length>1)return("e"===(n=[bf(t,(e=e.split(""))[0]),bf(t,e[1])])[0]||"w"===n[0])&&n.reverse(),n.join("");var i={left:"w",right:"e",top:"n",bottom:"s"},n=vo({w:"left",e:"right",n:"top",s:"bottom"}[e],wf(t));return i[n]}function Sf(t,e,i,n,o,a,r,s){var l=n.__brushOption,u=t(l.range),h=If(i,a,r);HC(o.split(""),function(t){var e=JC[t];u[e[0]][e[1]]+=h[e[0]]}),l.range=e(_f(u[0][0],u[1][0],u[0][1],u[1][1])),sf(i,n),df(i,{isEnd:!1})}function Mf(t,e,i,n,o){var a=e.__brushOption.range,r=If(t,i,n);HC(a,function(t){t[0]+=r[0],t[1]+=r[1]}),sf(t,e),df(t,{isEnd:!1})}function If(t,e,i){var n=t.group,o=n.transformCoordToLocal(e,i),a=n.transformCoordToLocal(0,0);return[o[0]-a[0],o[1]-a[1]]}function Tf(t,e,n){var o=hf(t,e);return o&&!0!==o?o.clipPath(n,t._transform):i(n)}function Df(t){var e=UC(t[0][0],t[1][0]),i=UC(t[0][1],t[1][1]);return{x:e,y:i,width:XC(t[0][0],t[1][0])-e,height:XC(t[0][1],t[1][1])-i}}function Af(t,e,i){if(t._brushType){var n=t._zr,o=t._covers,a=uf(t,e,i);if(!t._dragging)for(var r=0;r=i.length)return e;for(var o=-1,a=e.length,r=i[n++],s={},l={};++o=i.length)return t;var a=[],r=n[o++];return d(t,function(t,i){a.push({key:i,values:e(t,o)})}),r?a.sort(function(t,e){return r(t.key,e.key)}):a}var i=[],n=[];return{key:function(t){return i.push(t),this},sortKeys:function(t){return n[i.length-1]=t,this},entries:function(i){return e(t(i,0),0)}}}function Qf(t,e){return Qo(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}function tp(t,e,i,n,o,a,r){ip(t,e,i,o),ap(t,e,a,n,r),dp(t)}function ep(t){d(t,function(t){var e=gp(t.outEdges,xp),i=gp(t.inEdges,xp),n=Math.max(e,i);t.setLayout({value:n},!0)})}function ip(t,e,i,n){for(var o=[],a=[],r=[],s=[],l=0,u=0;u0;o--)lp(a,r*=.99),sp(a,n,i),hp(a,r),sp(a,n,i)}function rp(t,e,i,n,o){var a=[];d(e,function(t){var e=t.length,i=0;d(t,function(t){i+=t.getLayout().value});var r=(n-(e-1)*o)/i;a.push(r)}),a.sort(function(t,e){return t-e});var r=a[0];d(e,function(t){d(t,function(t,e){t.setLayout({y:e},!0);var i=t.getLayout().value*r;t.setLayout({dy:i},!0)})}),d(i,function(t){var e=+t.getValue()*r;t.setLayout({dy:e},!0)})}function sp(t,e,i){d(t,function(t){var n,o,a,r=0,s=t.length;for(t.sort(vp),a=0;a0){l=n.getLayout().y+o;n.setLayout({y:l},!0)}r=n.getLayout().y+n.getLayout().dy+e}if((o=r-e-i)>0){var l=n.getLayout().y-o;for(n.setLayout({y:l},!0),r=n.getLayout().y,a=s-2;a>=0;--a)(o=(n=t[a]).getLayout().y+n.getLayout().dy+e-r)>0&&(l=n.getLayout().y-o,n.setLayout({y:l},!0)),r=n.getLayout().y}})}function lp(t,e){d(t.slice().reverse(),function(t){d(t,function(t){if(t.outEdges.length){var i=gp(t.outEdges,up)/gp(t.outEdges,xp),n=t.getLayout().y+(i-mp(t))*e;t.setLayout({y:n},!0)}})})}function up(t){return mp(t.node2)*t.getValue()}function hp(t,e){d(t,function(t){d(t,function(t){if(t.inEdges.length){var i=gp(t.inEdges,cp)/gp(t.inEdges,xp),n=t.getLayout().y+(i-mp(t))*e;t.setLayout({y:n},!0)}})})}function cp(t){return mp(t.node1)*t.getValue()}function dp(t){d(t,function(t){t.outEdges.sort(fp),t.inEdges.sort(pp)}),d(t,function(t){var e=0,i=0;d(t.outEdges,function(t){t.setLayout({sy:e},!0),e+=t.getLayout().dy}),d(t.inEdges,function(t){t.setLayout({ty:i},!0),i+=t.getLayout().dy})})}function fp(t,e){return t.node2.getLayout().y-e.node2.getLayout().y}function pp(t,e){return t.node1.getLayout().y-e.node1.getLayout().y}function gp(t,e){for(var i=0,n=t.length,o=-1;++o0?"P":"N",a=n.getVisual("borderColor"+o)||n.getVisual("color"+o),r=i.getModel(vL).getItemStyle(xL);e.useStyle(r),e.style.fill=null,e.style.stroke=a}function kp(t,e,i,n,o){return i>n?-1:i0?t.get(o,e-1)<=n?1:-1:1}function Pp(t,e){var i,n=t.getBaseAxis(),o="category"===n.type?n.getBandWidth():(i=n.getExtent(),Math.abs(i[1]-i[0])/e.count()),a=Do(D(t.get("barMaxWidth"),o),o),r=Do(D(t.get("barMinWidth"),1),o),s=t.get("barWidth");return null!=s?Do(s,o):Math.max(Math.min(o/2,a),r)}function Np(t){return y(t)||(t=[+t,+t]),t}function Op(t,e){t.eachChild(function(t){t.attr({z:e.z,zlevel:e.zlevel,style:{stroke:"stroke"===e.brushType?e.color:null,fill:"fill"===e.brushType?e.color:null}})})}function Ep(t,e){sw.call(this);var i=new Kl(t,e),n=new sw;this.add(i),this.add(n),n.beforeUpdate=function(){this.attr(i.getScale())},this.updateData(t,e)}function Rp(t){var e=t.data;e&&e[0]&&e[0][0]&&e[0][0].coord&&(t.data=f(e,function(t){var e={coords:[t[0].coord,t[1].coord]};return t[0].name&&(e.fromName=t[0].name),t[1].name&&(e.toName=t[1].name),o([e,t[0],t[1]])}))}function zp(t,e,i){sw.call(this),this.add(this.createLine(t,e,i)),this._updateEffectSymbol(t,e)}function Bp(t,e,i){sw.call(this),this._createPolyline(t,e,i)}function Vp(t,e,i){zp.call(this,t,e,i),this._lastFrame=0,this._lastFramePercent=0}function Gp(){this.group=new sw}function Wp(t){return t instanceof Array||(t=[t,t]),t}function Fp(){var t=m_();this.canvas=t,this.blurSize=30,this.pointSize=20,this.maxOpacity=1,this.minOpacity=0,this._gradientPixels={}}function Hp(t,e,i){var n=t[1]-t[0],o=(e=f(e,function(e){return{interval:[(e.interval[0]-t[0])/n,(e.interval[1]-t[0])/n]}})).length,a=0;return function(t){for(n=a;n=0;n--){var r=e[n].interval;if(r[0]<=t&&t<=r[1]){a=n;break}}return n>=0&&n=e[0]&&t<=e[1]}}function Up(t){var e=t.dimensions;return"lng"===e[0]&&"lat"===e[1]}function Xp(t,e,i,n){var o=t.getItemLayout(e),a=i.get("symbolRepeat"),r=i.get("symbolClip"),s=i.get("symbolPosition")||"start",l=(i.get("symbolRotate")||0)*Math.PI/180||0,u=i.get("symbolPatternSize")||2,h=i.isAnimationEnabled(),c={dataIndex:e,layout:o,itemModel:i,symbolType:t.getItemVisual(e,"symbol")||"circle",color:t.getItemVisual(e,"color"),symbolClip:r,symbolRepeat:a,symbolRepeatDirection:i.get("symbolRepeatDirection"),symbolPatternSize:u,rotation:l,animationModel:h?i:null,hoverAnimation:h&&i.get("hoverAnimation"),z2:i.getShallow("z",!0)||0};jp(i,a,o,n,c),qp(t,e,o,a,r,c.boundingLength,c.pxSign,u,n,c),Kp(i,c.symbolScale,l,n,c);var d=c.symbolSize,f=i.get("symbolOffset");return y(f)&&(f=[Do(f[0],d[0]),Do(f[1],d[1])]),$p(i,d,o,a,r,f,s,c.valueLineWidth,c.boundingLength,c.repeatCutLength,n,c),c}function jp(t,e,i,n,o){var a,r=n.valueDim,s=t.get("symbolBoundingData"),l=n.coordSys.getOtherAxis(n.coordSys.getBaseAxis()),u=l.toGlobalCoord(l.dataToCoord(0)),h=1-+(i[r.wh]<=0);if(y(s)){var c=[Yp(l,s[0])-u,Yp(l,s[1])-u];c[1]0?1:a<0?-1:0}function Yp(t,e){return t.toGlobalCoord(t.dataToCoord(t.scale.parse(e)))}function qp(t,e,i,n,o,a,r,s,l,u){var h=l.valueDim,c=l.categoryDim,d=Math.abs(i[c.wh]),f=t.getItemVisual(e,"symbolSize");y(f)?f=f.slice():(null==f&&(f="100%"),f=[f,f]),f[c.index]=Do(f[c.index],d),f[h.index]=Do(f[h.index],n?d:Math.abs(a)),u.symbolSize=f,(u.symbolScale=[f[0]/s,f[1]/s])[h.index]*=(l.isHorizontal?-1:1)*r}function Kp(t,e,i,n,o){var a=t.get(FL)||0;a&&(ZL.attr({scale:e.slice(),rotation:i}),ZL.updateTransform(),a/=ZL.getLineScale(),a*=e[n.valueDim.index]),o.valueLineWidth=a}function $p(t,e,i,n,o,r,s,l,u,h,c,d){var f=c.categoryDim,p=c.valueDim,g=d.pxSign,m=Math.max(e[p.index]+l,0),v=m;if(n){var y=Math.abs(u),x=T(t.get("symbolMargin"),"15%")+"",_=!1;x.lastIndexOf("!")===x.length-1&&(_=!0,x=x.slice(0,x.length-1)),x=Do(x,e[p.index]);var w=Math.max(m+2*x,0),b=_?0:2*x,S=Wo(n),M=S?n:pg((y+b)/w);w=m+2*(x=(y-M*m)/2/(_?M:M-1)),b=_?0:2*x,S||"fixed"===n||(M=h?pg((Math.abs(h)+b)/w):0),v=M*w-b,d.repeatTimes=M,d.symbolMargin=x}var I=g*(v/2),D=d.pathPosition=[];D[f.index]=i[f.wh]/2,D[p.index]="start"===s?I:"end"===s?u-I:u/2,r&&(D[0]+=r[0],D[1]+=r[1]);var A=d.bundlePosition=[];A[f.index]=i[f.xy],A[p.index]=i[p.xy];var C=d.barRectShape=a({},i);C[p.wh]=g*Math.max(Math.abs(i[p.wh]),Math.abs(D[p.index]+I)),C[f.wh]=i[f.wh];var L=d.clipShape={};L[f.xy]=-i[f.xy],L[f.wh]=c.ecSize[f.wh],L[p.xy]=0,L[p.wh]=i[p.wh]}function Jp(t){var e=t.symbolPatternSize,i=Tl(t.symbolType,-e/2,-e/2,e,e,t.color);return i.attr({culling:!0}),"image"!==i.type&&i.setStyle({strokeNoScale:!0}),i}function Qp(t,e,i,n){function o(t){var e=l.slice(),n=i.pxSign,o=t;return("start"===i.symbolRepeatDirection?n>0:n<0)&&(o=h-1-t),e[u.index]=d*(o-h/2+.5)+l[u.index],{position:e,scale:i.symbolScale.slice(),rotation:i.rotation}}var a=t.__pictorialBundle,r=i.symbolSize,s=i.valueLineWidth,l=i.pathPosition,u=e.valueDim,h=i.repeatTimes||0,c=0,d=r[e.valueDim.index]+s+2*i.symbolMargin;for(cg(t,function(t){t.__pictorialAnimationIndex=c,t.__pictorialRepeatTimes=h,c0)],d=t.__pictorialBarRect;ih(d.style,h,a,n,e.seriesModel,o,c),eo(d,h)}function pg(t){var e=Math.round(t);return Math.abs(t-e)<1e-4?e:Math.ceil(t)}function gg(t,e,i){this.dimension="single",this.dimensions=["single"],this._axis=null,this._rect,this._init(t,e,i),this.model=t}function mg(t,e){e=e||{};var i=t.coordinateSystem,n=t.axis,o={},a=n.position,r=n.orient,s=i.getRect(),l=[s.x,s.x+s.width,s.y,s.y+s.height],u={horizontal:{top:l[2],bottom:l[3]},vertical:{left:l[0],right:l[1]}};o.position=["vertical"===r?u.vertical[a]:l[0],"horizontal"===r?u.horizontal[a]:l[3]];var h={horizontal:0,vertical:1};o.rotation=Math.PI/2*h[r];var c={top:-1,bottom:1,right:1,left:-1};o.labelDirection=o.tickDirection=o.nameDirection=c[a],t.get("axisTick.inside")&&(o.tickDirection=-o.tickDirection),T(e.labelInside,t.get("axisLabel.inside"))&&(o.labelDirection=-o.labelDirection);var d=e.rotate;return null==d&&(d=t.get("axisLabel.rotate")),o.labelRotation="top"===a?-d:d,o.z2=1,o}function vg(t,e,i,n,o){var r=t.axis;if(!r.scale.isBlank()&&r.containData(e))if(t.involveSeries){var s=yg(e,t),l=s.payloadBatch,u=s.snapToValue;l[0]&&null==o.seriesIndex&&a(o,l[0]),!n&&t.snap&&r.containData(u)&&null!=u&&(e=u),i.showPointer(t,e,l,o),i.showTooltip(t,s,u)}else i.showPointer(t,e)}function yg(t,e){var i=e.axis,n=i.dim,o=t,a=[],r=Number.MAX_VALUE,s=-1;return $L(e.seriesModels,function(e,l){var u,h,c=e.getData().mapDimension(n,!0);if(e.getAxisTooltipData){var d=e.getAxisTooltipData(c,t,i);h=d.dataIndices,u=d.nestestValue}else{if(!(h=e.getData().indicesOfNearest(c[0],t,"category"===i.type?.5:null)).length)return;u=e.getData().get(c[0],h[0])}if(null!=u&&isFinite(u)){var f=t-u,p=Math.abs(f);p<=r&&((p=0&&s<0)&&(r=p,s=f,o=u,a.length=0),$L(h,function(t){a.push({seriesIndex:e.seriesIndex,dataIndexInside:t,dataIndex:e.getData().getRawIndex(t)})}))}}),{payloadBatch:a,snapToValue:o}}function xg(t,e,i,n){t[e.key]={value:i,payloadBatch:n}}function _g(t,e,i,n){var o=i.payloadBatch,a=e.axis,r=a.model,s=e.axisPointerModel;if(e.triggerTooltip&&o.length){var l=e.coordSys.model,u=Ju(l),h=t.map[u];h||(h=t.map[u]={coordSysId:l.id,coordSysIndex:l.componentIndex,coordSysType:l.type,coordSysMainType:l.mainType,dataByAxis:[]},t.list.push(h)),h.dataByAxis.push({axisDim:a.dim,axisIndex:r.componentIndex,axisType:r.type,axisId:r.id,value:n,valueLabelOpt:{precision:s.get("label.precision"),formatter:s.get("label.formatter")},seriesDataIndices:o.slice()})}}function wg(t,e,i){var n=i.axesInfo=[];$L(e,function(e,i){var o=e.axisPointerModel.option,a=t[i];a?(!e.useHandle&&(o.status="show"),o.value=a.value,o.seriesDataIndices=(a.payloadBatch||[]).slice()):!e.useHandle&&(o.status="hide"),"show"===o.status&&n.push({axisDim:e.axis.dim,axisIndex:e.axis.model.componentIndex,value:o.value})})}function bg(t,e,i,n){if(!Tg(e)&&t.list.length){var o=((t.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};n({type:"showTip",escapeConnect:!0,x:e[0],y:e[1],tooltipOption:i.tooltipOption,position:i.position,dataIndexInside:o.dataIndexInside,dataIndex:o.dataIndex,seriesIndex:o.seriesIndex,dataByCoordSys:t.list})}else n({type:"hideTip"})}function Sg(t,e,i){var n=i.getZr(),o=QL(n).axisPointerLastHighlights||{},a=QL(n).axisPointerLastHighlights={};$L(t,function(t,e){var i=t.axisPointerModel.option;"show"===i.status&&$L(i.seriesDataIndices,function(t){var e=t.seriesIndex+" | "+t.dataIndex;a[e]=t})});var r=[],s=[];d(o,function(t,e){!a[e]&&s.push(t)}),d(a,function(t,e){!o[e]&&r.push(t)}),s.length&&i.dispatchAction({type:"downplay",escapeConnect:!0,batch:s}),r.length&&i.dispatchAction({type:"highlight",escapeConnect:!0,batch:r})}function Mg(t,e){for(var i=0;i<(t||[]).length;i++){var n=t[i];if(e.axis.dim===n.axisDim&&e.axis.model.componentIndex===n.axisIndex)return n}}function Ig(t){var e=t.axis.model,i={},n=i.axisDim=t.axis.dim;return i.axisIndex=i[n+"AxisIndex"]=e.componentIndex,i.axisName=i[n+"AxisName"]=e.name,i.axisId=i[n+"AxisId"]=e.id,i}function Tg(t){return!t||null==t[0]||isNaN(t[0])||null==t[1]||isNaN(t[1])}function Dg(t,e,i){if(!a_.node){var n=e.getZr();tk(n).records||(tk(n).records={}),Ag(n,e),(tk(n).records[t]||(tk(n).records[t]={})).handler=i}}function Ag(t,e){function i(i,n){t.on(i,function(i){var o=Pg(e);ek(tk(t).records,function(t){t&&n(t,i,o.dispatchAction)}),Cg(o.pendings,e)})}tk(t).initialized||(tk(t).initialized=!0,i("click",v(kg,"click")),i("mousemove",v(kg,"mousemove")),i("globalout",Lg))}function Cg(t,e){var i,n=t.showTip.length,o=t.hideTip.length;n?i=t.showTip[n-1]:o&&(i=t.hideTip[o-1]),i&&(i.dispatchAction=null,e.dispatchAction(i))}function Lg(t,e,i){t.handler("leave",null,i)}function kg(t,e,i,n){e.handler(t,i,n)}function Pg(t){var e={showTip:[],hideTip:[]},i=function(n){var o=e[n.type];o?o.push(n):(n.dispatchAction=i,t.dispatchAction(n))};return{dispatchAction:i,pendings:e}}function Ng(t,e){if(!a_.node){var i=e.getZr();(tk(i).records||{})[t]&&(tk(i).records[t]=null)}}function Og(){}function Eg(t,e,i,n){Rg(nk(i).lastProp,n)||(nk(i).lastProp=n,e?fo(i,n,t):(i.stopAnimation(),i.attr(n)))}function Rg(t,e){if(w(t)&&w(e)){var i=!0;return d(e,function(e,n){i=i&&Rg(t[n],e)}),!!i}return t===e}function zg(t,e){t[e.get("label.show")?"show":"hide"]()}function Bg(t){return{position:t.position.slice(),rotation:t.rotation||0}}function Vg(t,e,i){var n=e.get("z"),o=e.get("zlevel");t&&t.traverse(function(t){"group"!==t.type&&(null!=n&&(t.z=n),null!=o&&(t.zlevel=o),t.silent=i)})}function Gg(t){var e,i=t.get("type"),n=t.getModel(i+"Style");return"line"===i?(e=n.getLineStyle()).fill=null:"shadow"===i&&((e=n.getAreaStyle()).stroke=null),e}function Wg(t,e,i,n,o){var a=Hg(i.get("value"),e.axis,e.ecModel,i.get("seriesDataIndices"),{precision:i.get("label.precision"),formatter:i.get("label.formatter")}),r=i.getModel("label"),s=KS(r.get("padding")||0),l=r.getFont(),u=me(a,l),h=o.position,c=u.width+s[1]+s[3],d=u.height+s[0]+s[2],f=o.align;"right"===f&&(h[0]-=c),"center"===f&&(h[0]-=c/2);var p=o.verticalAlign;"bottom"===p&&(h[1]-=d),"middle"===p&&(h[1]-=d/2),Fg(h,c,d,n);var g=r.get("backgroundColor");g&&"auto"!==g||(g=e.get("axisLine.lineStyle.color")),t.label={shape:{x:0,y:0,width:c,height:d,r:r.get("borderRadius")},position:h.slice(),style:{text:a,textFont:l,textFill:r.getTextColor(),textPosition:"inside",fill:g,stroke:r.get("borderColor")||"transparent",lineWidth:r.get("borderWidth")||0,shadowBlur:r.get("shadowBlur"),shadowColor:r.get("shadowColor"),shadowOffsetX:r.get("shadowOffsetX"),shadowOffsetY:r.get("shadowOffsetY")},z2:10}}function Fg(t,e,i,n){var o=n.getWidth(),a=n.getHeight();t[0]=Math.min(t[0]+e,o)-e,t[1]=Math.min(t[1]+i,a)-i,t[0]=Math.max(t[0],0),t[1]=Math.max(t[1],0)}function Hg(t,e,i,n,o){t=e.scale.parse(t);var a=e.scale.getLabel(t,{precision:o.precision}),r=o.formatter;if(r){var s={value:bl(e,t),seriesData:[]};d(n,function(t){var e=i.getSeriesByIndex(t.seriesIndex),n=t.dataIndexInside,o=e&&e.getDataParams(n);o&&s.seriesData.push(o)}),_(r)?a=r.replace("{value}",a):x(r)&&(a=r(s))}return a}function Zg(t,e,i){var n=st();return dt(n,n,i.rotation),ct(n,n,i.position),mo([t.dataToCoord(e),(i.labelOffset||0)+(i.labelDirection||1)*(i.labelMargin||0)],n)}function Ug(t,e,i,n,o,a){var r=LD.innerTextLayout(i.rotation,0,i.labelDirection);i.labelMargin=o.get("label.margin"),Wg(e,n,o,a,{position:Zg(n.axis,t,i),align:r.textAlign,verticalAlign:r.textVerticalAlign})}function Xg(t,e,i){return i=i||0,{x1:t[i],y1:t[1-i],x2:e[i],y2:e[1-i]}}function jg(t,e,i){return i=i||0,{x:t[i],y:t[1-i],width:e[i],height:e[1-i]}}function Yg(t,e,i,n,o,a){return{cx:t,cy:e,r0:i,r:n,startAngle:o,endAngle:a,clockwise:!0}}function qg(t,e){var i={};return i[e.dim+"AxisIndex"]=e.index,t.getCartesian(i)}function Kg(t){return"x"===t.dim?0:1}function $g(t){return t.isHorizontal()?0:1}function Jg(t,e){var i=t.getRect();return[i[lk[e]],i[lk[e]]+i[uk[e]]]}function Qg(t,e,i){var n=new SS({shape:{x:t.x-10,y:t.y-10,width:0,height:t.height+20}});return po(n,{shape:{width:t.width+20,height:t.height+20}},e,i),n}function tm(t,e,i){if(t.count())for(var n,o=e.coordinateSystem,a=e.getLayerSeries(),r=t.mapDimension("single"),s=t.mapDimension("value"),l=f(a,function(e){return f(e.indices,function(e){var i=o.dataToPoint(t.get(r,e));return i[1]=t.get(s,e),i})}),u=em(l),h=u.y0,c=i/u.max,d=a.length,p=a[0].indices.length,g=0;ga&&(a=u),n.push(u)}for(var h=0;ha&&(a=d)}return r.y0=o,r.max=a,r}function im(t){var e=0;d(t.children,function(t){im(t);var i=t.value;y(i)&&(i=i[0]),e+=i});var i=t.value;y(i)&&(i=i[0]),(null==i||isNaN(i))&&(i=e),i<0&&(i=0),y(t.value)?t.value[0]=i:t.value=i}function nm(t,e,i){function n(){r.ignore=r.hoverIgnore}function o(){r.ignore=r.normalIgnore}sw.call(this);var a=new vS({z2:pk});a.seriesIndex=e.seriesIndex;var r=new fS({z2:gk,silent:t.getModel("label").get("silent")});this.add(a),this.add(r),this.updateData(!0,t,"normal",e,i),this.on("emphasis",n).on("normal",o).on("mouseover",n).on("mouseout",o)}function om(t,e,i){var n=t.getVisual("color"),o=t.getVisual("visualMeta");o&&0!==o.length||(n=null);var a=t.getModel("itemStyle").get("color");if(a)return a;if(n)return n;if(0===t.depth)return i.option.color[0];var r=i.option.color.length;return a=i.option.color[am(t)%r]}function am(t){for(var e=t;e.depth>1;)e=e.parentNode;return l(t.getAncestors()[0].children,e)}function rm(t,e,i){return i!==fk.NONE&&(i===fk.SELF?t===e:i===fk.ANCESTOR?t===e||t.isAncestorOf(e):t===e||t.isDescendantOf(e))}function sm(t,e){var i=t.children||[];t.children=lm(i,e),i.length&&d(t.children,function(t){sm(t,e)})}function lm(t,e){if("function"==typeof e)return t.sort(e);var i="asc"===e;return t.sort(function(t,e){var n=(t.getValue()-e.getValue())*(i?1:-1);return 0===n?(t.dataIndex-e.dataIndex)*(i?-1:1):n})}function um(t,e){return e=e||[0,0],f(["x","y"],function(i,n){var o=this.getAxis(i),a=e[n],r=t[n]/2;return"category"===o.type?o.getBandWidth():Math.abs(o.dataToCoord(a-r)-o.dataToCoord(a+r))},this)}function hm(t,e){return e=e||[0,0],f([0,1],function(i){var n=e[i],o=t[i]/2,a=[],r=[];return a[i]=n-o,r[i]=n+o,a[1-i]=r[1-i]=e[1-i],Math.abs(this.dataToPoint(a)[i]-this.dataToPoint(r)[i])},this)}function cm(t,e){var i=this.getAxis(),n=e instanceof Array?e[0]:e,o=(t instanceof Array?t[0]:t)/2;return"category"===i.type?i.getBandWidth():Math.abs(i.dataToCoord(n-o)-i.dataToCoord(n+o))}function dm(t,e){return f(["Radius","Angle"],function(i,n){var o=this["get"+i+"Axis"](),a=e[n],r=t[n]/2,s="dataTo"+i,l="category"===o.type?o.getBandWidth():Math.abs(o[s](a-r)-o[s](a+r));return"Angle"===i&&(l=l*Math.PI/180),l},this)}function fm(t){var e,i=t.type;if("path"===i){var n=t.shape;(e=Rn(n.pathData,null,{x:n.x||0,y:n.y||0,width:n.width||0,height:n.height||0},"center")).__customPathData=t.pathData}else"image"===i?(e=new Je({})).__customImagePath=t.style.image:"text"===i?(e=new fS({})).__customText=t.style.text:e=new(0,BS[i.charAt(0).toUpperCase()+i.slice(1)]);return e.__customGraphicType=i,e.name=t.name,e}function pm(t,e,n,o,a,r){var s={},l=n.style||{};if(n.shape&&(s.shape=i(n.shape)),n.position&&(s.position=n.position.slice()),n.scale&&(s.scale=n.scale.slice()),n.origin&&(s.origin=n.origin.slice()),n.rotation&&(s.rotation=n.rotation),"image"===t.type&&n.style){u=s.style={};d(["x","y","width","height"],function(e){gm(e,u,l,t.style,r)})}if("text"===t.type&&n.style){var u=s.style={};d(["x","y"],function(e){gm(e,u,l,t.style,r)}),!l.hasOwnProperty("textFill")&&l.fill&&(l.textFill=l.fill),!l.hasOwnProperty("textStroke")&&l.stroke&&(l.textStroke=l.stroke)}if("group"!==t.type&&(t.useStyle(l),r)){t.style.opacity=0;var h=l.opacity;null==h&&(h=1),po(t,{style:{opacity:h}},o,e)}r?t.attr(s):fo(t,s,o,e),t.attr({z2:n.z2||0,silent:n.silent}),!1!==n.styleEmphasis&&eo(t,n.styleEmphasis)}function gm(t,e,i,n,o){null==i[t]||o||(e[t]=i[t],i[t]=n[t])}function mm(t,e,i,n){function o(t){null==t&&(t=h),v&&(c=e.getItemModel(t),d=c.getModel(bk),f=c.getModel(Sk),p=e.getItemVisual(t,"color"),v=!1)}var s=t.get("renderItem"),l=t.coordinateSystem,u={};l&&(u=l.prepareCustoms?l.prepareCustoms():Ik[l.type](l));var h,c,d,f,p,g=r({getWidth:n.getWidth,getHeight:n.getHeight,getZr:n.getZr,getDevicePixelRatio:n.getDevicePixelRatio,value:function(t,i){return null==i&&(i=h),e.get(e.getDimension(t||0),i)},style:function(i,n){null==n&&(n=h),o(n);var r=c.getModel(_k).getItemStyle();null!=p&&(r.fill=p);var s=e.getItemVisual(n,"opacity");return null!=s&&(r.opacity=s),no(r,d,null,{autoColor:p,isRectText:!0}),r.text=d.getShallow("show")?D(t.getFormattedLabel(n,"normal"),ql(e,n)):null,i&&a(r,i),r},styleEmphasis:function(i,n){null==n&&(n=h),o(n);var r=c.getModel(wk).getItemStyle();return no(r,f,null,{isRectText:!0},!0),r.text=f.getShallow("show")?A(t.getFormattedLabel(n,"emphasis"),t.getFormattedLabel(n,"normal"),ql(e,n)):null,i&&a(r,i),r},visual:function(t,i){return null==i&&(i=h),e.getItemVisual(i,t)},barLayout:function(t){if(l.getBaseAxis)return rl(r({axis:l.getBaseAxis()},t),n)},currentSeriesIndices:function(){return i.getCurrentSeriesIndices()},font:function(t){return ho(t,i)}},u.api||{}),m={context:{},seriesId:t.id,seriesName:t.name,seriesIndex:t.seriesIndex,coordSys:u.coordSys,dataInsideLength:e.count(),encode:vm(t.getData())},v=!0;return function(t){return h=t,v=!0,s&&s(r({dataIndexInside:t,dataIndex:e.getRawIndex(t)},m),g)||{}}}function vm(t){var e={};return d(t.dimensions,function(i,n){var o=t.getDimensionInfo(i);if(!o.isExtraCoord){var a=o.coordDim;(e[a]=e[a]||[])[o.coordDimIndex]=n}}),e}function ym(t,e,i,n,o,a){return(t=xm(t,e,i,n,o,a))&&a.setItemGraphicEl(e,t),t}function xm(t,e,i,n,o,a){var r=i.type;if(!t||r===t.__customGraphicType||"path"===r&&i.pathData===t.__customPathData||"image"===r&&i.style.image===t.__customImagePath||"text"===r&&i.style.text===t.__customText||(o.remove(t),t=null),null!=r){var s=!t;if(!t&&(t=fm(i)),pm(t,e,i,n,a,s),"group"===r){var l=t.children()||[],u=i.children||[];if(i.diffChildrenByName)_m({oldChildren:l,newChildren:u,dataIndex:e,animatableModel:n,group:t,data:a});else{for(var h=0;hn?t-=l+a:t+=a),null!=r&&(e+u+r>o?e-=u+r:e+=r),[t,e]}function Um(t,e,i,n,o){var a=Xm(i),r=a.width,s=a.height;return t=Math.min(t+r,n)-r,e=Math.min(e+s,o)-s,t=Math.max(t,0),e=Math.max(e,0),[t,e]}function Xm(t){var e=t.clientWidth,i=t.clientHeight;if(document.defaultView&&document.defaultView.getComputedStyle){var n=document.defaultView.getComputedStyle(t);n&&(e+=parseInt(n.paddingLeft,10)+parseInt(n.paddingRight,10)+parseInt(n.borderLeftWidth,10)+parseInt(n.borderRightWidth,10),i+=parseInt(n.paddingTop,10)+parseInt(n.paddingBottom,10)+parseInt(n.borderTopWidth,10)+parseInt(n.borderBottomWidth,10))}return{width:e,height:i}}function jm(t,e,i){var n=i[0],o=i[1],a=0,r=0,s=e.width,l=e.height;switch(t){case"inside":a=e.x+s/2-n/2,r=e.y+l/2-o/2;break;case"top":a=e.x+s/2-n/2,r=e.y-o-5;break;case"bottom":a=e.x+s/2-n/2,r=e.y+l+5;break;case"left":a=e.x-n-5,r=e.y+l/2-o/2;break;case"right":a=e.x+s+5,r=e.y+l/2-o/2}return[a,r]}function Ym(t){return"center"===t||"middle"===t}function qm(t){return t.get("stack")||"__ec_stack_"+t.seriesIndex}function Km(t){return t.dim}function $m(t,e){var i={};d(t,function(t,e){var n=t.getData(),o=t.coordinateSystem.getBaseAxis(),a=o.getExtent(),r="category"===o.type?o.getBandWidth():Math.abs(a[1]-a[0])/n.count(),s=i[Km(o)]||{bandWidth:r,remainedWidth:r,autoWidthCount:0,categoryGap:"20%",gap:"30%",stacks:{}},l=s.stacks;i[Km(o)]=s;var u=qm(t);l[u]||s.autoWidthCount++,l[u]=l[u]||{width:0,maxWidth:0};var h=Do(t.get("barWidth"),r),c=Do(t.get("barMaxWidth"),r),d=t.get("barGap"),f=t.get("barCategoryGap");h&&!l[u].width&&(h=Math.min(s.remainedWidth,h),l[u].width=h,s.remainedWidth-=h),c&&(l[u].maxWidth=c),null!=d&&(s.gap=d),null!=f&&(s.categoryGap=f)});var n={};return d(i,function(t,e){n[e]={};var i=t.stacks,o=t.bandWidth,a=Do(t.categoryGap,o),r=Do(t.gap,1),s=t.remainedWidth,l=t.autoWidthCount,u=(s-a)/(l+(l-1)*r);u=Math.max(u,0),d(i,function(t,e){var i=t.maxWidth;i&&ie[0]&&(e=e.slice().reverse());var n=t.coordToPoint([e[0],i]),o=t.coordToPoint([e[1],i]);return{x1:n[0],y1:n[1],x2:o[0],y2:o[1]}}function av(t){return t.getRadiusAxis().inverse?0:1}function rv(t){var e=t[0],i=t[t.length-1];e&&i&&Math.abs(Math.abs(e.coord-i.coord)-360)<1e-4&&t.pop()}function sv(t,e,i){return{position:[t.cx,t.cy],rotation:i/180*Math.PI,labelDirection:-1,tickDirection:-1,nameDirection:1,labelRotate:e.getModel("axisLabel").get("rotate"),z2:1}}function lv(t,e,i,n,o){var a=e.axis,r=a.dataToCoord(t),s=n.getAngleAxis().getExtent()[0];s=s/180*Math.PI;var l,u,h,c=n.getRadiusAxis().getExtent();if("radius"===a.dim){var d=st();dt(d,d,s),ct(d,d,[n.cx,n.cy]),l=mo([r,-o],d);var f=e.getModel("axisLabel").get("rotate")||0,p=LD.innerTextLayout(s,f*Math.PI/180,-1);u=p.textAlign,h=p.textVerticalAlign}else{var g=c[1];l=n.coordToPoint([g+o,r]);var m=n.cx,v=n.cy;u=Math.abs(l[0]-m)/g<.3?"center":l[0]>m?"left":"right",h=Math.abs(l[1]-v)/g<.3?"middle":l[1]>v?"top":"bottom"}return{position:l,align:u,verticalAlign:h}}function uv(t,e){e.update="updateView",cs(e,function(e,i){var n={};return i.eachComponent({mainType:"geo",query:e},function(i){i[t](e.name),d(i.coordinateSystem.regions,function(t){n[t.name]=i.isSelected(t.name)||!1})}),{selected:n,name:e.name}})}function hv(t){var e={};d(t,function(t){e[t]=1}),t.length=0,d(e,function(e,i){t.push(i)})}function cv(t){if(t)for(var e in t)if(t.hasOwnProperty(e))return!0}function dv(t,e,n){function o(){var t=function(){};return t.prototype.__hidden=t.prototype,new t}var a={};return tP(e,function(e){var r=a[e]=o();tP(t[e],function(t,o){if(ZA.isValidType(o)){var a={type:o,visual:t};n&&n(a,e),r[o]=new ZA(a),"opacity"===o&&((a=i(a)).type="colorAlpha",r.__hidden.__alphaForOpacity=new ZA(a))}})}),a}function fv(t,e,n){var o;d(n,function(t){e.hasOwnProperty(t)&&cv(e[t])&&(o=!0)}),o&&d(n,function(n){e.hasOwnProperty(n)&&cv(e[n])?t[n]=i(e[n]):delete t[n]})}function pv(t,e,i,n,o,a){function r(t){return i.getItemVisual(h,t)}function s(t,e){i.setItemVisual(h,t,e)}function l(t,l){h=null==a?t:l;var c=i.getRawDataItem(h);if(!c||!1!==c.visualMap)for(var d=n.call(o,t),f=e[d],p=u[d],g=0,m=p.length;g1)return!1;var h=wv(i-t,o-t,n-e,a-e)/l;return!(h<0||h>1)}function _v(t){return t<=1e-6&&t>=-1e-6}function wv(t,e,i,n){return t*n-e*i}function bv(t,e,i){var n=this._targetInfoList=[],o={},a=Mv(e,t);iP(lP,function(t,e){(!i||!i.include||nP(i.include,e)>=0)&&t(a,n,o)})}function Sv(t){return t[0]>t[1]&&t.reverse(),t}function Mv(t,e){return Oi(t,e,{includeMainTypes:rP})}function Iv(t,e,i,n){var o=i.getAxis(["x","y"][t]),a=Sv(f([0,1],function(t){return e?o.coordToData(o.toLocalCoord(n[t])):o.toGlobalCoord(o.dataToCoord(n[t]))})),r=[];return r[t]=a,r[1-t]=[NaN,NaN],{values:a,xyMinMax:r}}function Tv(t,e,i,n){return[e[0]-n[t]*i[0],e[1]-n[t]*i[1]]}function Dv(t,e){var i=Av(t),n=Av(e),o=[i[0]/n[0],i[1]/n[1]];return isNaN(o[0])&&(o[0]=1),isNaN(o[1])&&(o[1]=1),o}function Av(t){return t?[t[0][1]-t[0][0],t[1][1]-t[1][0]]:[NaN,NaN]}function Cv(t,e,i,n,o){if(o){var a=t.getZr();a[gP]||(a[pP]||(a[pP]=Lv),wr(a,pP,i,e)(t,n))}}function Lv(t,e){if(!t.isDisposed()){var i=t.getZr();i[gP]=!0,t.dispatchAction({type:"brushSelect",batch:e}),i[gP]=!1}}function kv(t,e,i,n){for(var o=0,a=e.length;o=0}function Uv(t,e,i){function n(t,e){return l(e.nodes,t)>=0}function o(t,n){var o=!1;return e(function(e){d(i(t,e)||[],function(t){n.records[e.name][t]&&(o=!0)})}),o}function a(t,n){n.nodes.push(t),e(function(e){d(i(t,e)||[],function(t){n.records[e.name][t]=!0})})}return function(i){var r={nodes:[],records:{}};if(e(function(t){r.records[t.name]={}}),!i)return r;a(i,r);var s;do{s=!1,t(function(t){!n(t,r)&&o(t,r)&&(a(t,r),s=!0)})}while(s);return r}}function Xv(t,e,i){var n=[1/0,-1/0];return DP(i,function(t){var i=t.getData();i&&DP(i.mapDimension(e,!0),function(t){var e=i.getApproximateExtent(t);e[0]n[1]&&(n[1]=e[1])})}),n[1]0?0:NaN);var r=i.getMax(!0);return null!=r&&"dataMax"!==r&&"function"!=typeof r?e[1]=r:o&&(e[1]=a>0?a-1:NaN),i.get("scale",!0)||(e[0]>0&&(e[0]=0),e[1]<0&&(e[1]=0)),e}function Yv(t,e){var i=t.getAxisModel(),n=t._percentWindow,o=t._valueWindow;if(n){var a=Po(o,[0,500]);a=Math.min(a,20);var r=e||0===n[0]&&100===n[1];i.setRange(r?null:+o[0].toFixed(a),r?null:+o[1].toFixed(a))}}function qv(t){var e=t._minMaxSpan={},i=t._dataZoomModel;DP(["min","max"],function(n){e[n+"Span"]=i.get(n+"Span");var o=i.get(n+"ValueSpan");if(null!=o&&(e[n+"ValueSpan"]=o,null!=(o=t.getAxisModel().axis.scale.parse(o)))){var a=t._dataExtent;e[n+"Span"]=To(a[0]+o,a,[0,100],!0)}})}function Kv(t){var e={};return LP(["start","end","startValue","endValue","throttle"],function(i){t.hasOwnProperty(i)&&(e[i]=t[i])}),e}function $v(t,e){var i=t._rangePropMode,n=t.get("rangeMode");LP([["start","startValue"],["end","endValue"]],function(t,o){var a=null!=e[t[0]],r=null!=e[t[1]];a&&!r?i[o]="percent":!a&&r?i[o]="value":n?i[o]=n[o]:a&&(i[o]="percent")})}function Jv(t){return{x:"y",y:"x",radius:"angle",angle:"radius"}[t]}function Qv(t){return"vertical"===t?"ns-resize":"ew-resize"}function ty(t,e){var i=ny(t),n=e.dataZoomId,o=e.coordId;d(i,function(t,i){var a=t.dataZoomInfos;a[n]&&l(e.allCoordIds,o)<0&&(delete a[n],t.count--)}),ay(i);var a=i[o];a||((a=i[o]={coordId:o,dataZoomInfos:{},count:0}).controller=oy(t,a),a.dispatchAction=v(uy,t)),!a.dataZoomInfos[n]&&a.count++,a.dataZoomInfos[n]=e;var r=hy(a.dataZoomInfos);a.controller.enable(r.controlType,r.opt),a.controller.setPointerChecker(e.containsPoint),wr(a,"dispatchAction",e.throttleRate,"fixRate")}function ey(t,e){var i=ny(t);d(i,function(t){t.controller.dispose();var i=t.dataZoomInfos;i[e]&&(delete i[e],t.count--)}),ay(i)}function iy(t){return t.type+"\0_"+t.id}function ny(t){var e=t.getZr();return e[ZP]||(e[ZP]={})}function oy(t,e){var i=new kh(t.getZr());return i.on("pan",HP(ry,e)),i.on("zoom",HP(sy,e)),i}function ay(t){d(t,function(e,i){e.count||(e.controller.dispose(),delete t[i])})}function ry(t,e,i,n,o,a,r){ly(t,function(s){return s.panGetRange(t.controller,e,i,n,o,a,r)})}function sy(t,e,i,n){ly(t,function(o){return o.zoomGetRange(t.controller,e,i,n)})}function ly(t,e){var i=[];d(t.dataZoomInfos,function(t){var n=e(t);!t.disabled&&n&&i.push({dataZoomId:t.dataZoomId,start:n[0],end:n[1]})}),i.length&&t.dispatchAction(i)}function uy(t,e){t.dispatchAction({type:"dataZoom",batch:e})}function hy(t){var e,i={},n={type_true:2,type_move:1,type_false:0,type_undefined:-1};return d(t,function(t){var o=!t.disabled&&(!t.zoomLock||"move");n["type_"+o]>n["type_"+e]&&(e=o),a(i,t.roamControllerOpt)}),{controlType:e,opt:i}}function cy(t,e){return t&&t.hasOwnProperty&&t.hasOwnProperty(e)}function dy(t,e,i,n){for(var o=e.targetVisuals[n],a=ZA.prepareVisualTypes(o),r={color:t.getData().getVisual("color")},s=0,l=a.length;s=0&&(r[a]=+r[a].toFixed(h)),r}function Dy(t,e){var n=t.getData(),o=t.coordinateSystem;if(e&&!Iy(e)&&!y(e.coord)&&o){var a=o.dimensions,r=Ay(e,n,o,t);if((e=i(e)).type&&MN[e.type]&&r.baseAxis&&r.valueAxis){var s=bN(a,r.baseAxis.dim),l=bN(a,r.valueAxis.dim);e.coord=MN[e.type](n,r.baseDataDim,r.valueDataDim,s,l),e.value=e.coord[l]}else{for(var u=[null!=e.xAxis?e.xAxis:e.radiusAxis,null!=e.yAxis?e.yAxis:e.angleAxis],h=0;h<2;h++)MN[u[h]]&&(u[h]=Py(n,n.mapDimension(a[h]),u[h]));e.coord=u}}return e}function Ay(t,e,i,n){var o={};return null!=t.valueIndex||null!=t.valueDim?(o.valueDataDim=null!=t.valueIndex?e.getDimension(t.valueIndex):t.valueDim,o.valueAxis=i.getAxis(Cy(n,o.valueDataDim)),o.baseAxis=i.getOtherAxis(o.valueAxis),o.baseDataDim=e.mapDimension(o.baseAxis.dim)):(o.baseAxis=n.getBaseAxis(),o.valueAxis=i.getOtherAxis(o.baseAxis),o.baseDataDim=e.mapDimension(o.baseAxis.dim),o.valueDataDim=e.mapDimension(o.valueAxis.dim)),o}function Cy(t,e){var i=t.getData(),n=i.dimensions;e=i.getDimension(e);for(var o=0;o=0)return!0}function sx(t){for(var e=t.split(/\n+/g),i=[],n=f(ax(e.shift()).split(ZN),function(t){return{name:t,data:[]}}),o=0;o=0&&!i[o][n];o--);if(o<0){var a=t.queryComponents({mainType:"dataZoom",subType:"select",id:n})[0];if(a){var r=a.getPercentRange();i[0][n]={dataZoomId:n,start:r[0],end:r[1]}}}}),i.push(e)}function fx(t){var e=mx(t),i=e[e.length-1];e.length>1&&e.pop();var n={};return UN(i,function(t,i){for(var o=e.length-1;o>=0;o--)if(t=e[o][i]){n[i]=t;break}}),n}function px(t){t[XN]=null}function gx(t){return mx(t).length}function mx(t){var e=t[XN];return e||(e=t[XN]=[{}]),e}function vx(t,e,i){(this._brushController=new Qd(i.getZr())).on("brush",m(this._onBrush,this)).mount(),this._isZoomActive}function yx(t){var e={};return d(["xAxisIndex","yAxisIndex"],function(i){e[i]=t[i],null==e[i]&&(e[i]="all"),(!1===e[i]||"none"===e[i])&&(e[i]=[])}),e}function xx(t,e){t.setIconStatus("back",gx(e)>1?"emphasis":"normal")}function _x(t,e,i,n,o){var a=i._isZoomActive;n&&"takeGlobalCursor"===n.type&&(a="dataZoomSelect"===n.key&&n.dataZoomSelectActive),i._isZoomActive=a,t.setIconStatus("zoom",a?"emphasis":"normal");var r=new bv(yx(t.option),e,{include:["grid"]});i._brushController.setPanels(r.makePanelOpts(o,function(t){return t.xAxisDeclared&&!t.yAxisDeclared?"lineX":!t.xAxisDeclared&&t.yAxisDeclared?"lineY":"rect"})).enableBrush(!!a&&{brushType:"auto",brushStyle:{lineWidth:0,fill:"rgba(0,0,0,0.2)"}})}function bx(t){this.model=t}function Sx(t){return QN(t)}function Mx(){if(!iO&&nO){iO=!0;var t=nO.styleSheets;t.length<31?nO.createStyleSheet().addRule(".zrvml","behavior:url(#default#VML)"):t[0].addRule(".zrvml","behavior:url(#default#VML)")}}function Ix(t){return parseInt(t,10)}function Tx(t,e){Mx(),this.root=t,this.storage=e;var i=document.createElement("div"),n=document.createElement("div");i.style.cssText="display:inline-block;overflow:hidden;position:relative;width:300px;height:150px;",n.style.cssText="position:absolute;left:0;top:0;",t.appendChild(i),this._vmlRoot=n,this._vmlViewport=i,this.resize();var o=e.delFromStorage,a=e.addToStorage;e.delFromStorage=function(t){o.call(e,t),t&&t.onRemove&&t.onRemove(n)},e.addToStorage=function(t){t.onAdd&&t.onAdd(n),a.call(e,t)},this._firstPaint=!0}function Dx(t){return function(){ew('In IE8.0 VML mode painter not support method "'+t+'"')}}function Ax(t){return document.createElementNS(zO,t)}function Cx(t){return WO(1e4*t)/1e4}function Lx(t){return t-jO}function kx(t,e){var i=e?t.textFill:t.fill;return null!=i&&i!==GO}function Px(t,e){var i=e?t.textStroke:t.stroke;return null!=i&&i!==GO}function Nx(t,e){e&&Ox(t,"transform","matrix("+VO.call(e,",")+")")}function Ox(t,e,i){(!i||"linear"!==i.type&&"radial"!==i.type)&&("string"==typeof i&&i.indexOf("NaN")>-1&&console.log(i),t.setAttribute(e,i))}function Ex(t,e,i){t.setAttributeNS("http://www.w3.org/1999/xlink",e,i)}function Rx(t,e,i){if(kx(e,i)){var n=i?e.textFill:e.fill;n="transparent"===n?GO:n,"none"!==t.getAttribute("clip-path")&&n===GO&&(n="rgba(0, 0, 0, 0.002)"),Ox(t,"fill",n),Ox(t,"fill-opacity",e.opacity)}else Ox(t,"fill",GO);if(Px(e,i)){var o=i?e.textStroke:e.stroke;Ox(t,"stroke",o="transparent"===o?GO:o),Ox(t,"stroke-width",(i?e.textStrokeWidth:e.lineWidth)/(!i&&e.strokeNoScale?e.host.getLineScale():1)),Ox(t,"paint-order",i?"stroke":"fill"),Ox(t,"stroke-opacity",e.opacity),e.lineDash?(Ox(t,"stroke-dasharray",e.lineDash.join(",")),Ox(t,"stroke-dashoffset",WO(e.lineDashOffset||0))):Ox(t,"stroke-dasharray",""),e.lineCap&&Ox(t,"stroke-linecap",e.lineCap),e.lineJoin&&Ox(t,"stroke-linejoin",e.lineJoin),e.miterLimit&&Ox(t,"stroke-miterlimit",e.miterLimit)}else Ox(t,"stroke",GO)}function zx(t){for(var e=[],i=t.data,n=t.len(),o=0;o=UO||!Lx(g)&&(d>-ZO&&d<0||d>ZO)==!!p;var y=Cx(s+u*HO(c)),x=Cx(l+h*FO(c));m&&(d=p?UO-1e-4:1e-4-UO,v=!0,9===o&&e.push("M",y,x));var _=Cx(s+u*HO(c+d)),w=Cx(l+h*FO(c+d));e.push("A",Cx(u),Cx(h),WO(f*XO),+v,+p,_,w);break;case BO.Z:a="Z";break;case BO.R:var _=Cx(i[o++]),w=Cx(i[o++]),b=Cx(i[o++]),S=Cx(i[o++]);e.push("M",_,w,"L",_+b,w,"L",_+b,w+S,"L",_,w+S,"L",_,w)}a&&e.push(a);for(var M=0;M=11)}}(navigator.userAgent),r_={"[object Function]":1,"[object RegExp]":1,"[object Date]":1,"[object Error]":1,"[object CanvasGradient]":1,"[object CanvasPattern]":1,"[object Image]":1,"[object Canvas]":1},s_={"[object Int8Array]":1,"[object Uint8Array]":1,"[object Uint8ClampedArray]":1,"[object Int16Array]":1,"[object Uint16Array]":1,"[object Int32Array]":1,"[object Uint32Array]":1,"[object Float32Array]":1,"[object Float64Array]":1},l_=Object.prototype.toString,u_=Array.prototype,h_=u_.forEach,c_=u_.filter,d_=u_.slice,f_=u_.map,p_=u_.reduce,g_={},m_=function(){return g_.createCanvas()};g_.createCanvas=function(){return document.createElement("canvas")};var v_,y_="__ec_primitive__";E.prototype={constructor:E,get:function(t){return this.hasOwnProperty(t)?this[t]:null},set:function(t,e){return this[t]=e},each:function(t,e){void 0!==e&&(t=m(t,e));for(var i in this)this.hasOwnProperty(i)&&t(this[i],i)},removeKey:function(t){delete this[t]}};var x_=(Object.freeze||Object)({$override:e,clone:i,merge:n,mergeAll:o,extend:a,defaults:r,createCanvas:m_,getContext:s,indexOf:l,inherits:u,mixin:h,isArrayLike:c,each:d,map:f,reduce:p,filter:g,find:function(t,e,i){if(t&&e)for(var n=0,o=t.length;n3&&(e=T_.call(e,1));for(var n=this._$handlers[t],o=n.length,a=0;a4&&(e=T_.call(e,1,e.length-1));for(var n=e[e.length-1],o=this._$handlers[t],a=o.length,r=0;r=0;a--){var r;if(n[a]!==i&&!n[a].ignore&&(r=rt(n[a],t,e))&&(!o.topTarget&&(o.topTarget=n[a]),r!==A_)){o.target=n[a];break}}return o}},d(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],function(t){L_.prototype[t]=function(e){var i=this.findHover(e.zrX,e.zrY),n=i.target;if("mousedown"===t)this._downEl=n,this._downPoint=[e.zrX,e.zrY],this._upEl=n;else if("mouseup"===t)this._upEl=n;else if("click"===t){if(this._downEl!==this._upEl||!this._downPoint||S_(this._downPoint,[e.zrX,e.zrY])>4)return;this._downPoint=null}this.dispatchToElement(i,t,e)}}),h(L_,D_),h(L_,it);var k_="undefined"==typeof Float32Array?Array:Float32Array,P_=(Object.freeze||Object)({create:st,identity:lt,copy:ut,mul:ht,translate:ct,rotate:dt,scale:ft,invert:pt,clone:gt}),N_=lt,O_=5e-5,E_=function(t){(t=t||{}).position||(this.position=[0,0]),null==t.rotation&&(this.rotation=0),t.scale||(this.scale=[1,1]),this.origin=this.origin||null},R_=E_.prototype;R_.transform=null,R_.needLocalTransform=function(){return mt(this.rotation)||mt(this.position[0])||mt(this.position[1])||mt(this.scale[0]-1)||mt(this.scale[1]-1)},R_.updateTransform=function(){var t=this.parent,e=t&&t.transform,i=this.needLocalTransform(),n=this.transform;i||e?(n=n||st(),i?this.getLocalTransform(n):N_(n),e&&(i?ht(n,t.transform,n):ut(n,t.transform)),this.transform=n,this.invTransform=this.invTransform||st(),pt(this.invTransform,n)):n&&N_(n)},R_.getLocalTransform=function(t){return E_.getLocalTransform(this,t)},R_.setTransform=function(t){var e=this.transform,i=t.dpr||1;e?t.setTransform(i*e[0],i*e[1],i*e[2],i*e[3],i*e[4],i*e[5]):t.setTransform(i,0,0,i,0,0)},R_.restoreTransform=function(t){var e=t.dpr||1;t.setTransform(e,0,0,e,0,0)};var z_=[];R_.decomposeTransform=function(){if(this.transform){var t=this.parent,e=this.transform;t&&t.transform&&(ht(z_,t.invTransform,e),e=z_);var i=e[0]*e[0]+e[1]*e[1],n=e[2]*e[2]+e[3]*e[3],o=this.position,a=this.scale;mt(i-1)&&(i=Math.sqrt(i)),mt(n-1)&&(n=Math.sqrt(n)),e[0]<0&&(i=-i),e[3]<0&&(n=-n),o[0]=e[4],o[1]=e[5],a[0]=i,a[1]=n,this.rotation=Math.atan2(-e[1]/n,e[0]/i)}},R_.getGlobalScale=function(){var t=this.transform;if(!t)return[1,1];var e=Math.sqrt(t[0]*t[0]+t[1]*t[1]),i=Math.sqrt(t[2]*t[2]+t[3]*t[3]);return t[0]<0&&(e=-e),t[3]<0&&(i=-i),[e,i]},R_.transformCoordToLocal=function(t,e){var i=[t,e],n=this.invTransform;return n&&Q(i,i,n),i},R_.transformCoordToGlobal=function(t,e){var i=[t,e],n=this.transform;return n&&Q(i,i,n),i},E_.getLocalTransform=function(t,e){N_(e=e||[]);var i=t.origin,n=t.scale||[1,1],o=t.rotation||0,a=t.position||[0,0];return i&&(e[4]-=i[0],e[5]-=i[1]),ft(e,e,n),o&&dt(e,e,o),i&&(e[4]+=i[0],e[5]+=i[1]),e[4]+=a[0],e[5]+=a[1],e};var B_={linear:function(t){return t},quadraticIn:function(t){return t*t},quadraticOut:function(t){return t*(2-t)},quadraticInOut:function(t){return(t*=2)<1?.5*t*t:-.5*(--t*(t-2)-1)},cubicIn:function(t){return t*t*t},cubicOut:function(t){return--t*t*t+1},cubicInOut:function(t){return(t*=2)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},quarticIn:function(t){return t*t*t*t},quarticOut:function(t){return 1- --t*t*t*t},quarticInOut:function(t){return(t*=2)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)},quinticIn:function(t){return t*t*t*t*t},quinticOut:function(t){return--t*t*t*t*t+1},quinticInOut:function(t){return(t*=2)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},sinusoidalIn:function(t){return 1-Math.cos(t*Math.PI/2)},sinusoidalOut:function(t){return Math.sin(t*Math.PI/2)},sinusoidalInOut:function(t){return.5*(1-Math.cos(Math.PI*t))},exponentialIn:function(t){return 0===t?0:Math.pow(1024,t-1)},exponentialOut:function(t){return 1===t?1:1-Math.pow(2,-10*t)},exponentialInOut:function(t){return 0===t?0:1===t?1:(t*=2)<1?.5*Math.pow(1024,t-1):.5*(2-Math.pow(2,-10*(t-1)))},circularIn:function(t){return 1-Math.sqrt(1-t*t)},circularOut:function(t){return Math.sqrt(1- --t*t)},circularInOut:function(t){return(t*=2)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},elasticIn:function(t){var e,i=.1;return 0===t?0:1===t?1:(!i||i<1?(i=1,e=.1):e=.4*Math.asin(1/i)/(2*Math.PI),-i*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/.4))},elasticOut:function(t){var e,i=.1;return 0===t?0:1===t?1:(!i||i<1?(i=1,e=.1):e=.4*Math.asin(1/i)/(2*Math.PI),i*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/.4)+1)},elasticInOut:function(t){var e,i=.1;return 0===t?0:1===t?1:(!i||i<1?(i=1,e=.1):e=.4*Math.asin(1/i)/(2*Math.PI),(t*=2)<1?i*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/.4)*-.5:i*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/.4)*.5+1)},backIn:function(t){var e=1.70158;return t*t*((e+1)*t-e)},backOut:function(t){var e=1.70158;return--t*t*((e+1)*t+e)+1},backInOut:function(t){var e=2.5949095;return(t*=2)<1?t*t*((e+1)*t-e)*.5:.5*((t-=2)*t*((e+1)*t+e)+2)},bounceIn:function(t){return 1-B_.bounceOut(1-t)},bounceOut:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},bounceInOut:function(t){return t<.5?.5*B_.bounceIn(2*t):.5*B_.bounceOut(2*t-1)+.5}};vt.prototype={constructor:vt,step:function(t,e){if(this._initialized||(this._startTime=t+this._delay,this._initialized=!0),this._paused)this._pausedTime+=e;else{var i=(t-this._startTime-this._pausedTime)/this._life;if(!(i<0)){i=Math.min(i,1);var n=this.easing,o="string"==typeof n?B_[n]:n,a="function"==typeof o?o(i):i;return this.fire("frame",a),1==i?this.loop?(this.restart(t),"restart"):(this._needsRemove=!0,"destroy"):null}}},restart:function(t){var e=(t-this._startTime-this._pausedTime)%this._life;this._startTime=t-e+this.gap,this._pausedTime=0,this._needsRemove=!1},fire:function(t,e){this[t="on"+t]&&this[t](this._target,e)},pause:function(){this._paused=!0},resume:function(){this._paused=!1}};var V_=function(){this.head=null,this.tail=null,this._len=0},G_=V_.prototype;G_.insert=function(t){var e=new W_(t);return this.insertEntry(e),e},G_.insertEntry=function(t){this.head?(this.tail.next=t,t.prev=this.tail,t.next=null,this.tail=t):this.head=this.tail=t,this._len++},G_.remove=function(t){var e=t.prev,i=t.next;e?e.next=i:this.head=i,i?i.prev=e:this.tail=e,t.next=t.prev=null,this._len--},G_.len=function(){return this._len},G_.clear=function(){this.head=this.tail=null,this._len=0};var W_=function(t){this.value=t,this.next,this.prev},F_=function(t){this._list=new V_,this._map={},this._maxSize=t||10,this._lastRemovedEntry=null},H_=F_.prototype;H_.put=function(t,e){var i=this._list,n=this._map,o=null;if(null==n[t]){var a=i.len(),r=this._lastRemovedEntry;if(a>=this._maxSize&&a>0){var s=i.head;i.remove(s),delete n[s.key],o=s.value,this._lastRemovedEntry=s}r?r.value=e:r=new W_(e),r.key=t,i.insertEntry(r),n[t]=r}return o},H_.get=function(t){var e=this._map[t],i=this._list;if(null!=e)return e!==i.tail&&(i.remove(e),i.insertEntry(e)),e.value},H_.clear=function(){this._list.clear(),this._map={}};var Z_={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]},U_=new F_(20),X_=null,j_=Nt,Y_=Ot,q_=(Object.freeze||Object)({parse:At,lift:kt,toHex:Pt,fastLerp:Nt,fastMapToColor:j_,lerp:Ot,mapToColor:Y_,modifyHSL:Et,modifyAlpha:Rt,stringify:zt}),K_=Array.prototype.slice,$_=function(t,e,i,n){this._tracks={},this._target=t,this._loop=e||!1,this._getter=i||Bt,this._setter=n||Vt,this._clipCount=0,this._delay=0,this._doneList=[],this._onframeList=[],this._clipList=[]};$_.prototype={when:function(t,e){var i=this._tracks;for(var n in e)if(e.hasOwnProperty(n)){if(!i[n]){i[n]=[];var o=this._getter(this._target,n);if(null==o)continue;0!==t&&i[n].push({time:0,value:jt(o)})}i[n].push({time:t,value:e[n]})}return this},during:function(t){return this._onframeList.push(t),this},pause:function(){for(var t=0;t0&&this.animate(t,!1).when(null==n?500:n,a).delay(o||0),this}};var nw=function(t){E_.call(this,t),D_.call(this,t),iw.call(this,t),this.id=t.id||n_()};nw.prototype={type:"element",name:"",__zr:null,ignore:!1,clipPath:null,isGroup:!1,drift:function(t,e){switch(this.draggable){case"horizontal":e=0;break;case"vertical":t=0}var i=this.transform;i||(i=this.transform=[1,0,0,1,0,0]),i[4]+=t,i[5]+=e,this.decomposeTransform(),this.dirty(!1)},beforeUpdate:function(){},afterUpdate:function(){},update:function(){this.updateTransform()},traverse:function(t,e){},attrKV:function(t,e){if("position"===t||"scale"===t||"origin"===t){if(e){var i=this[t];i||(i=this[t]=[]),i[0]=e[0],i[1]=e[1]}}else this[t]=e},hide:function(){this.ignore=!0,this.__zr&&this.__zr.refresh()},show:function(){this.ignore=!1,this.__zr&&this.__zr.refresh()},attr:function(t,e){if("string"==typeof t)this.attrKV(t,e);else if(w(t))for(var i in t)t.hasOwnProperty(i)&&this.attrKV(i,t[i]);return this.dirty(!1),this},setClipPath:function(t){var e=this.__zr;e&&t.addSelfToZr(e),this.clipPath&&this.clipPath!==t&&this.removeClipPath(),this.clipPath=t,t.__zr=e,t.__clipTarget=this,this.dirty(!1)},removeClipPath:function(){var t=this.clipPath;t&&(t.__zr&&t.removeSelfFromZr(t.__zr),t.__zr=null,t.__clipTarget=null,this.clipPath=null,this.dirty(!1))},addSelfToZr:function(t){this.__zr=t;var e=this.animators;if(e)for(var i=0;i=i.x&&t<=i.x+i.width&&e>=i.y&&e<=i.y+i.height},clone:function(){return new $t(this.x,this.y,this.width,this.height)},copy:function(t){this.x=t.x,this.y=t.y,this.width=t.width,this.height=t.height},plain:function(){return{x:this.x,y:this.y,width:this.width,height:this.height}}},$t.create=function(t){return new $t(t.x,t.y,t.width,t.height)};var sw=function(t){t=t||{},nw.call(this,t);for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e]);this._children=[],this.__storage=null,this.__dirty=!0};sw.prototype={constructor:sw,isGroup:!0,type:"group",silent:!1,children:function(){return this._children.slice()},childAt:function(t){return this._children[t]},childOfName:function(t){for(var e=this._children,i=0;i=0&&(i.splice(n,0,t),this._doAdd(t))}return this},_doAdd:function(t){t.parent&&t.parent.remove(t),t.parent=this;var e=this.__storage,i=this.__zr;e&&e!==t.__storage&&(e.addToStorage(t),t instanceof sw&&t.addChildrenToStorage(e)),i&&i.refresh()},remove:function(t){var e=this.__zr,i=this.__storage,n=this._children,o=l(n,t);return o<0?this:(n.splice(o,1),t.parent=null,i&&(i.delFromStorage(t),t instanceof sw&&t.delChildrenFromStorage(i)),e&&e.refresh(),this)},removeAll:function(){var t,e,i=this._children,n=this.__storage;for(e=0;e=0&&(this.delFromStorage(t),this._roots.splice(o,1),t instanceof sw&&t.delChildrenFromStorage(this))}},addToStorage:function(t){return t&&(t.__storage=this,t.dirty(!1)),this},delFromStorage:function(t){return t&&(t.__storage=null),this},dispose:function(){this._renderList=this._roots=null},displayableSortFunc:re};var cw={shadowBlur:1,shadowOffsetX:1,shadowOffsetY:1,textShadowBlur:1,textShadowOffsetX:1,textShadowOffsetY:1,textBoxShadowBlur:1,textBoxShadowOffsetX:1,textBoxShadowOffsetY:1},dw=function(t,e,i){return cw.hasOwnProperty(e)?i*=t.dpr:i},fw=[["shadowBlur",0],["shadowOffsetX",0],["shadowOffsetY",0],["shadowColor","#000"],["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]],pw=function(t,e){this.extendFrom(t,!1),this.host=e};pw.prototype={constructor:pw,host:null,fill:"#000",stroke:null,opacity:1,lineDash:null,lineDashOffset:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,lineWidth:1,strokeNoScale:!1,text:null,font:null,textFont:null,fontStyle:null,fontWeight:null,fontSize:null,fontFamily:null,textTag:null,textFill:"#000",textStroke:null,textWidth:null,textHeight:null,textStrokeWidth:0,textLineHeight:null,textPosition:"inside",textRect:null,textOffset:null,textAlign:null,textVerticalAlign:null,textDistance:5,textShadowColor:"transparent",textShadowBlur:0,textShadowOffsetX:0,textShadowOffsetY:0,textBoxShadowColor:"transparent",textBoxShadowBlur:0,textBoxShadowOffsetX:0,textBoxShadowOffsetY:0,transformText:!1,textRotation:0,textOrigin:null,textBackgroundColor:null,textBorderColor:null,textBorderWidth:0,textBorderRadius:0,textPadding:null,rich:null,truncate:null,blend:null,bind:function(t,e,i){for(var n=this,o=i&&i.style,a=!o,r=0;r0},extendFrom:function(t,e){if(t)for(var i in t)!t.hasOwnProperty(i)||!0!==e&&(!1===e?this.hasOwnProperty(i):null==t[i])||(this[i]=t[i])},set:function(t,e){"string"==typeof t?this[t]=e:this.extendFrom(t,!0)},clone:function(){var t=new this.constructor;return t.extendFrom(this,!0),t},getGradient:function(t,e,i){for(var n=("radial"===e.type?le:se)(t,e,i),o=e.colorStops,a=0;a=0&&i.splice(n,1),t.__hoverMir=null},clearHover:function(t){for(var e=this._hoverElements,i=0;i15)break}s.__drawIndex=m,s.__drawIndex0&&t>n[0]){for(r=0;rt);r++);a=i[n[r]]}if(n.splice(r+1,0,t),i[t]=e,!e.virtual)if(a){var l=a.dom;l.nextSibling?s.insertBefore(e.dom,l.nextSibling):s.appendChild(e.dom)}else s.firstChild?s.insertBefore(e.dom,s.firstChild):s.appendChild(e.dom)}else ew("Layer of zlevel "+t+" is not valid")},eachLayer:function(t,e){var i,n,o=this._zlevelList;for(n=0;n0?.01:0),this._needsManuallyCompositing),a.__builtin__||ew("ZLevel "+s+" has been used by unkown layer "+a.id),a!==i&&(a.__used=!0,a.__startIndex!==o&&(a.__dirty=!0),a.__startIndex=o,a.incremental?a.__drawIndex=-1:a.__drawIndex=o,e(o),i=a),r.__dirty&&(a.__dirty=!0,a.incremental&&a.__drawIndex<0&&(a.__drawIndex=o))}e(o),this.eachBuiltinLayer(function(t,e){!t.__used&&t.getElementCount()>0&&(t.__dirty=!0,t.__startIndex=t.__endIndex=t.__drawIndex=0),t.__dirty&&t.__drawIndex<0&&(t.__drawIndex=t.__startIndex)})},clear:function(){return this.eachBuiltinLayer(this._clearLayer),this},_clearLayer:function(t){t.clear()},setBackgroundColor:function(t){this._backgroundColor=t},configLayer:function(t,e){if(e){var i=this._layerConfig;i[t]?n(i[t],e,!0):i[t]=e;for(var o=0;o=0&&this._clips.splice(e,1)},removeAnimator:function(t){for(var e=t.getClips(),i=0;i1&&n&&n.length>1){var a=di(n)/di(o);!isFinite(a)&&(a=1),e.pinchScale=a;var r=fi(n);return e.pinchX=r[0],e.pinchY=r[1],{type:"pinch",target:t[0].target,event:e}}}}},Ww=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],Fw=["touchstart","touchend","touchmove"],Hw={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},Zw=f(Ww,function(t){var e=t.replace("mouse","pointer");return Hw[e]?e:t}),Uw={mousemove:function(t){t=li(this.dom,t),this.trigger("mousemove",t)},mouseout:function(t){var e=(t=li(this.dom,t)).toElement||t.relatedTarget;if(e!=this.dom)for(;e&&9!=e.nodeType;){if(e===this.dom)return;e=e.parentNode}this.trigger("mouseout",t)},touchstart:function(t){(t=li(this.dom,t)).zrByTouch=!0,this._lastTouchMoment=new Date,gi(this,t,"start"),Uw.mousemove.call(this,t),Uw.mousedown.call(this,t),mi(this)},touchmove:function(t){(t=li(this.dom,t)).zrByTouch=!0,gi(this,t,"change"),Uw.mousemove.call(this,t),mi(this)},touchend:function(t){(t=li(this.dom,t)).zrByTouch=!0,gi(this,t,"end"),Uw.mouseup.call(this,t),+new Date-this._lastTouchMoment<300&&Uw.click.call(this,t),mi(this)},pointerdown:function(t){Uw.mousedown.call(this,t)},pointermove:function(t){vi(t)||Uw.mousemove.call(this,t)},pointerup:function(t){Uw.mouseup.call(this,t)},pointerout:function(t){vi(t)||Uw.mouseout.call(this,t)}};d(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],function(t){Uw[t]=function(e){e=li(this.dom,e),this.trigger(t,e)}});var Xw=xi.prototype;Xw.dispose=function(){for(var t=Ww.concat(Fw),e=0;e=0||n&&l(n,r)<0)){var s=e.getShallow(r);null!=s&&(o[t[a][0]]=s)}}return o}},lb=sb([["lineWidth","width"],["stroke","color"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]),ub={getLineStyle:function(t){var e=lb(this,t),i=this.getLineDash(e.lineWidth);return i&&(e.lineDash=i),e},getLineDash:function(t){null==t&&(t=1);var e=this.get("type"),i=Math.max(t,2),n=4*t;return"solid"===e||null==e?null:"dashed"===e?[n,n]:[i,i]}},hb=sb([["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]]),cb={getAreaStyle:function(t,e){return hb(this,t,e)}},db=Math.pow,fb=Math.sqrt,pb=1e-8,gb=1e-4,mb=fb(3),vb=1/3,yb=V(),xb=V(),_b=V(),wb=Math.min,bb=Math.max,Sb=Math.sin,Mb=Math.cos,Ib=2*Math.PI,Tb=V(),Db=V(),Ab=V(),Cb=[],Lb=[],kb={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},Pb=[],Nb=[],Ob=[],Eb=[],Rb=Math.min,zb=Math.max,Bb=Math.cos,Vb=Math.sin,Gb=Math.sqrt,Wb=Math.abs,Fb="undefined"!=typeof Float32Array,Hb=function(t){this._saveData=!t,this._saveData&&(this.data=[]),this._ctx=null};Hb.prototype={constructor:Hb,_xi:0,_yi:0,_x0:0,_y0:0,_ux:0,_uy:0,_len:0,_lineDash:null,_dashOffset:0,_dashIdx:0,_dashSum:0,setScale:function(t,e){this._ux=Wb(1/Q_/t)||0,this._uy=Wb(1/Q_/e)||0},getContext:function(){return this._ctx},beginPath:function(t){return this._ctx=t,t&&t.beginPath(),t&&(this.dpr=t.dpr),this._saveData&&(this._len=0),this._lineDash&&(this._lineDash=null,this._dashOffset=0),this},moveTo:function(t,e){return this.addData(kb.M,t,e),this._ctx&&this._ctx.moveTo(t,e),this._x0=t,this._y0=e,this._xi=t,this._yi=e,this},lineTo:function(t,e){var i=Wb(t-this._xi)>this._ux||Wb(e-this._yi)>this._uy||this._len<5;return this.addData(kb.L,t,e),this._ctx&&i&&(this._needsDash()?this._dashedLineTo(t,e):this._ctx.lineTo(t,e)),i&&(this._xi=t,this._yi=e),this},bezierCurveTo:function(t,e,i,n,o,a){return this.addData(kb.C,t,e,i,n,o,a),this._ctx&&(this._needsDash()?this._dashedBezierTo(t,e,i,n,o,a):this._ctx.bezierCurveTo(t,e,i,n,o,a)),this._xi=o,this._yi=a,this},quadraticCurveTo:function(t,e,i,n){return this.addData(kb.Q,t,e,i,n),this._ctx&&(this._needsDash()?this._dashedQuadraticTo(t,e,i,n):this._ctx.quadraticCurveTo(t,e,i,n)),this._xi=i,this._yi=n,this},arc:function(t,e,i,n,o,a){return this.addData(kb.A,t,e,i,i,n,o-n,0,a?0:1),this._ctx&&this._ctx.arc(t,e,i,n,o,a),this._xi=Bb(o)*i+t,this._yi=Vb(o)*i+t,this},arcTo:function(t,e,i,n,o){return this._ctx&&this._ctx.arcTo(t,e,i,n,o),this},rect:function(t,e,i,n){return this._ctx&&this._ctx.rect(t,e,i,n),this.addData(kb.R,t,e,i,n),this},closePath:function(){this.addData(kb.Z);var t=this._ctx,e=this._x0,i=this._y0;return t&&(this._needsDash()&&this._dashedLineTo(e,i),t.closePath()),this._xi=e,this._yi=i,this},fill:function(t){t&&t.fill(),this.toStatic()},stroke:function(t){t&&t.stroke(),this.toStatic()},setLineDash:function(t){if(t instanceof Array){this._lineDash=t,this._dashIdx=0;for(var e=0,i=0;ie.length&&(this._expandData(),e=this.data);for(var i=0;i0&&f<=t||h<0&&f>=t||0==h&&(c>0&&p<=e||c<0&&p>=e);)f+=h*(i=r[n=this._dashIdx]),p+=c*i,this._dashIdx=(n+1)%g,h>0&&fl||c>0&&pu||s[n%2?"moveTo":"lineTo"](h>=0?Rb(f,t):zb(f,t),c>=0?Rb(p,e):zb(p,e));h=f-t,c=p-e,this._dashOffset=-Gb(h*h+c*c)},_dashedBezierTo:function(t,e,i,n,o,a){var r,s,l,u,h,c=this._dashSum,d=this._dashOffset,f=this._lineDash,p=this._ctx,g=this._xi,m=this._yi,v=ji,y=0,x=this._dashIdx,_=f.length,w=0;for(d<0&&(d=c+d),d%=c,r=0;r<1;r+=.1)s=v(g,t,i,o,r+.1)-v(g,t,i,o,r),l=v(m,e,n,a,r+.1)-v(m,e,n,a,r),y+=Gb(s*s+l*l);for(;x<_&&!((w+=f[x])>d);x++);for(r=(w-d)/y;r<=1;)u=v(g,t,i,o,r),h=v(m,e,n,a,r),x%2?p.moveTo(u,h):p.lineTo(u,h),r+=f[x]/y,x=(x+1)%_;x%2!=0&&p.lineTo(o,a),s=o-u,l=a-h,this._dashOffset=-Gb(s*s+l*l)},_dashedQuadraticTo:function(t,e,i,n){var o=i,a=n;i=(i+2*t)/3,n=(n+2*e)/3,t=(this._xi+2*t)/3,e=(this._yi+2*e)/3,this._dashedBezierTo(t,e,i,n,o,a)},toStatic:function(){var t=this.data;t instanceof Array&&(t.length=this._len,Fb&&(this.data=new Float32Array(t)))},getBoundingRect:function(){Pb[0]=Pb[1]=Ob[0]=Ob[1]=Number.MAX_VALUE,Nb[0]=Nb[1]=Eb[0]=Eb[1]=-Number.MAX_VALUE;for(var t=this.data,e=0,i=0,n=0,o=0,a=0;al||Wb(r-o)>u||c===h-1)&&(t.lineTo(a,r),n=a,o=r);break;case kb.C:t.bezierCurveTo(s[c++],s[c++],s[c++],s[c++],s[c++],s[c++]),n=s[c-2],o=s[c-1];break;case kb.Q:t.quadraticCurveTo(s[c++],s[c++],s[c++],s[c++]),n=s[c-2],o=s[c-1];break;case kb.A:var f=s[c++],p=s[c++],g=s[c++],m=s[c++],v=s[c++],y=s[c++],x=s[c++],_=s[c++],w=g>m?g:m,b=g>m?1:g/m,S=g>m?m/g:1,M=v+y;Math.abs(g-m)>.001?(t.translate(f,p),t.rotate(x),t.scale(b,S),t.arc(0,0,w,v,M,1-_),t.scale(1/b,1/S),t.rotate(-x),t.translate(-f,-p)):t.arc(f,p,w,v,M,1-_),1==c&&(e=Bb(v)*g+f,i=Vb(v)*m+p),n=Bb(M)*g+f,o=Vb(M)*m+p;break;case kb.R:e=n=s[c],i=o=s[c+1],t.rect(s[c++],s[c++],s[c++],s[c++]);break;case kb.Z:t.closePath(),n=e,o=i}}}},Hb.CMD=kb;var Zb=2*Math.PI,Ub=2*Math.PI,Xb=Hb.CMD,jb=2*Math.PI,Yb=1e-4,qb=[-1,-1,-1],Kb=[-1,-1],$b=yw.prototype.getCanvasPattern,Jb=Math.abs,Qb=new Hb(!0);In.prototype={constructor:In,type:"path",__dirtyPath:!0,strokeContainThreshold:5,brush:function(t,e){var i=this.style,n=this.path||Qb,o=i.hasStroke(),a=i.hasFill(),r=i.fill,s=i.stroke,l=a&&!!r.colorStops,u=o&&!!s.colorStops,h=a&&!!r.image,c=o&&!!s.image;if(i.bind(t,this,e),this.setTransform(t),this.__dirty){var d;l&&(d=d||this.getBoundingRect(),this._fillGradient=i.getGradient(t,r,d)),u&&(d=d||this.getBoundingRect(),this._strokeGradient=i.getGradient(t,s,d))}l?t.fillStyle=this._fillGradient:h&&(t.fillStyle=$b.call(r,t)),u?t.strokeStyle=this._strokeGradient:c&&(t.strokeStyle=$b.call(s,t));var f=i.lineDash,p=i.lineDashOffset,g=!!t.setLineDash,m=this.getGlobalScale();n.setScale(m[0],m[1]),this.__dirtyPath||f&&!g&&o?(n.beginPath(t),f&&!g&&(n.setLineDash(f),n.setLineDashOffset(p)),this.buildPath(n,this.shape,!1),this.path&&(this.__dirtyPath=!1)):(t.beginPath(),this.path.rebuildPath(t)),a&&n.fill(t),f&&g&&(t.setLineDash(f),t.lineDashOffset=p),o&&n.stroke(t),f&&g&&t.setLineDash([]),null!=i.text&&(this.restoreTransform(t),this.drawRectText(t,this.getBoundingRect()))},buildPath:function(t,e,i){},createPathProxy:function(){this.path=new Hb},getBoundingRect:function(){var t=this._rect,e=this.style,i=!t;if(i){var n=this.path;n||(n=this.path=new Hb),this.__dirtyPath&&(n.beginPath(),this.buildPath(n,this.shape,!1)),t=n.getBoundingRect()}if(this._rect=t,e.hasStroke()){var o=this._rectWithStroke||(this._rectWithStroke=t.clone());if(this.__dirty||i){o.copy(t);var a=e.lineWidth,r=e.strokeNoScale?this.getLineScale():1;e.hasFill()||(a=Math.max(a,this.strokeContainThreshold||4)),r>1e-10&&(o.width+=a/r,o.height+=a/r,o.x-=a/r/2,o.y-=a/r/2)}return o}return t},contain:function(t,e){var i=this.transformCoordToLocal(t,e),n=this.getBoundingRect(),o=this.style;if(t=i[0],e=i[1],n.contain(t,e)){var a=this.path.data;if(o.hasStroke()){var r=o.lineWidth,s=o.strokeNoScale?this.getLineScale():1;if(s>1e-10&&(o.hasFill()||(r=Math.max(r,this.strokeContainThreshold)),Mn(a,r/s,t,e)))return!0}if(o.hasFill())return Sn(a,t,e)}return!1},dirty:function(t){null==t&&(t=!0),t&&(this.__dirtyPath=t,this._rect=null),this.__dirty=!0,this.__zr&&this.__zr.refresh(),this.__clipTarget&&this.__clipTarget.dirty()},animateShape:function(t){return this.animate("shape",t)},attrKV:function(t,e){"shape"===t?(this.setShape(e),this.__dirtyPath=!0,this._rect=null):$e.prototype.attrKV.call(this,t,e)},setShape:function(t,e){var i=this.shape;if(i){if(w(t))for(var n in t)t.hasOwnProperty(n)&&(i[n]=t[n]);else i[t]=e;this.dirty(!0)}return this},getLineScale:function(){var t=this.transform;return t&&Jb(t[0]-1)>1e-10&&Jb(t[3]-1)>1e-10?Math.sqrt(Jb(t[0]*t[3]-t[2]*t[1])):1}},In.extend=function(t){var e=function(e){In.call(this,e),t.style&&this.style.extendFrom(t.style,!1);var i=t.shape;if(i){this.shape=this.shape||{};var n=this.shape;for(var o in i)!n.hasOwnProperty(o)&&i.hasOwnProperty(o)&&(n[o]=i[o])}t.init&&t.init.call(this,e)};u(e,In);for(var i in t)"style"!==i&&"shape"!==i&&(e.prototype[i]=t[i]);return e},u(In,$e);var tS=Hb.CMD,eS=[[],[],[]],iS=Math.sqrt,nS=Math.atan2,oS=function(t,e){var i,n,o,a,r,s,l=t.data,u=tS.M,h=tS.C,c=tS.L,d=tS.R,f=tS.A,p=tS.Q;for(o=0,a=0;o=11?function(){var e,i=this.__clipPaths,n=this.style;if(i)for(var o=0;oi-2?i-1:c+1],u=t[c>i-3?i-1:c+2]);var p=d*d,g=d*p;n.push([kn(s[0],f[0],l[0],u[0],d,p,g),kn(s[1],f[1],l[1],u[1],d,p,g)])}return n},_S=function(t,e,i,n){var o,a,r,s,l=[],u=[],h=[],c=[];if(n){r=[1/0,1/0],s=[-1/0,-1/0];for(var d=0,f=t.length;d=i&&a>=o)return{x:i,y:o,width:n-i,height:a-o}},createIcon:_o,Group:sw,Image:Je,Text:fS,Circle:pS,Sector:vS,Ring:yS,Polygon:wS,Polyline:bS,Rect:SS,Line:MS,BezierCurve:TS,Arc:DS,IncrementalDisplayable:On,CompoundPath:AS,LinearGradient:LS,RadialGradient:kS,BoundingRect:$t}),VS=["textStyle","color"],GS={getTextColor:function(t){var e=this.ecModel;return this.getShallow("color")||(!t&&e?e.get(VS):null)},getFont:function(){return ho({fontStyle:this.getShallow("fontStyle"),fontWeight:this.getShallow("fontWeight"),fontSize:this.getShallow("fontSize"),fontFamily:this.getShallow("fontFamily")},this.ecModel)},getTextRect:function(t){return me(t,this.getFont(),this.getShallow("align"),this.getShallow("verticalAlign")||this.getShallow("baseline"),this.getShallow("padding"),this.getShallow("rich"),this.getShallow("truncateText"))}},WS=sb([["fill","color"],["stroke","borderColor"],["lineWidth","borderWidth"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"],["textPosition"],["textAlign"]]),FS={getItemStyle:function(t,e){var i=WS(this,t,e),n=this.getBorderLineDash();return n&&(i.lineDash=n),i},getBorderLineDash:function(){var t=this.get("borderType");return"solid"===t||null==t?null:"dashed"===t?[5,5]:[1,1]}},HS=h,ZS=Ni();wo.prototype={constructor:wo,init:null,mergeOption:function(t){n(this.option,t,!0)},get:function(t,e){return null==t?this.option:bo(this.option,this.parsePath(t),!e&&So(this,t))},getShallow:function(t,e){var i=this.option,n=null==i?i:i[t],o=!e&&So(this,t);return null==n&&o&&(n=o.getShallow(t)),n},getModel:function(t,e){var i,n=null==t?this.option:bo(this.option,t=this.parsePath(t));return e=e||(i=So(this,t))&&i.getModel(t),new wo(n,e,this.ecModel)},isEmpty:function(){return null==this.option},restoreData:function(){},clone:function(){return new(0,this.constructor)(i(this.option))},setReadOnly:function(t){},parsePath:function(t){return"string"==typeof t&&(t=t.split(".")),t},customizeGetParent:function(t){ZS(this).getParent=t},isAnimationEnabled:function(){if(!a_.node){if(null!=this.option.animation)return!!this.option.animation;if(this.parentModel)return this.parentModel.isAnimationEnabled()}}},Gi(wo),Wi(wo),HS(wo,ub),HS(wo,cb),HS(wo,GS),HS(wo,FS);var US=0,XS=1e-4,jS=9007199254740991,YS=/^(?:(\d{4})(?:[-\/](\d{1,2})(?:[-\/](\d{1,2})(?:[T ](\d{1,2})(?::(\d\d)(?::(\d\d)(?:[.,](\d+))?)?)?(Z|[\+\-]\d\d:?\d\d)?)?)?)?)?$/,qS=(Object.freeze||Object)({linearMap:To,parsePercent:Do,round:Ao,asc:Co,getPrecision:Lo,getPrecisionSafe:ko,getPixelPrecision:Po,getPercentWithPrecision:No,MAX_SAFE_INTEGER:jS,remRadian:Oo,isRadianAroundZero:Eo,parseDate:Ro,quantity:zo,nice:Vo,reformIntervals:Go,isNumeric:Wo}),KS=L,$S=/([&<>"'])/g,JS={"&":"&","<":"<",">":">",'"':""","'":"'"},QS=["a","b","c","d","e","f","g"],tM=function(t,e){return"{"+t+(null==e?"":e)+"}"},eM=be,iM=me,nM=(Object.freeze||Object)({addCommas:Fo,toCamelCase:Ho,normalizeCssArray:KS,encodeHTML:Zo,formatTpl:Uo,formatTplSimple:Xo,getTooltipMarker:jo,formatTime:qo,capitalFirst:Ko,truncateText:eM,getTextRect:iM}),oM=d,aM=["left","right","top","bottom","width","height"],rM=[["width","left","right"],["height","top","bottom"]],sM=$o,lM=(v($o,"vertical"),v($o,"horizontal"),{getBoxLayoutParams:function(){return{left:this.get("left"),top:this.get("top"),right:this.get("right"),bottom:this.get("bottom"),width:this.get("width"),height:this.get("height")}}}),uM=Ni(),hM=wo.extend({type:"component",id:"",name:"",mainType:"",subType:"",componentIndex:0,defaultOption:null,ecModel:null,dependentModels:[],uid:null,layoutMode:null,$constructor:function(t,e,i,n){wo.call(this,t,e,i,n),this.uid=Mo("ec_cpt_model")},init:function(t,e,i,n){this.mergeDefaultAndTheme(t,i)},mergeDefaultAndTheme:function(t,e){var i=this.layoutMode,o=i?na(t):{};n(t,e.getTheme().get(this.mainType)),n(t,this.getDefaultOption()),i&&ia(t,o,i)},mergeOption:function(t,e){n(this.option,t,!0);var i=this.layoutMode;i&&ia(this.option,t,i)},optionUpdated:function(t,e){},getDefaultOption:function(){var t=uM(this);if(!t.defaultOption){for(var e=[],i=this.constructor;i;){var o=i.prototype.defaultOption;o&&e.push(o),i=i.superClass}for(var a={},r=e.length-1;r>=0;r--)a=n(a,e[r],!0);t.defaultOption=a}return t.defaultOption},getReferringComponents:function(t){return this.ecModel.queryComponents({mainType:t,index:this.get(t+"Index",!0),id:this.get(t+"Id",!0)})}});Zi(hM,{registerWhenExtend:!0}),function(t){var e={};t.registerSubTypeDefaulter=function(t,i){t=Bi(t),e[t.main]=i},t.determineSubType=function(i,n){var o=n.type;if(!o){var a=Bi(i).main;t.hasSubTypes(i)&&e[a]&&(o=e[a](n))}return o}}(hM),function(t,e){function i(t){var i={},a=[];return d(t,function(r){var s=n(i,r),u=o(s.originalDeps=e(r),t);s.entryCount=u.length,0===s.entryCount&&a.push(r),d(u,function(t){l(s.predecessor,t)<0&&s.predecessor.push(t);var e=n(i,t);l(e.successor,t)<0&&e.successor.push(r)})}),{graph:i,noEntryList:a}}function n(t,e){return t[e]||(t[e]={predecessor:[],successor:[]}),t[e]}function o(t,e){var i=[];return d(t,function(t){l(e,t)>=0&&i.push(t)}),i}t.topologicalTravel=function(t,e,n,o){function a(t){s[t].entryCount--,0===s[t].entryCount&&l.push(t)}if(t.length){var r=i(e),s=r.graph,l=r.noEntryList,u={};for(d(t,function(t){u[t]=!0});l.length;){var h=l.pop(),c=s[h],f=!!u[h];f&&(n.call(o,h,c.originalDeps.slice()),delete u[h]),d(c.successor,f?function(t){u[t]=!0,a(t)}:a)}d(u,function(){throw new Error("Circle dependency may exists")})}}}(hM,function(t){var e=[];return d(hM.getClassesByMainType(t),function(t){e=e.concat(t.prototype.dependencies||[])}),e=f(e,function(t){return Bi(t).main}),"dataset"!==t&&l(e,"dataset")<=0&&e.unshift("dataset"),e}),h(hM,lM);var cM="";"undefined"!=typeof navigator&&(cM=navigator.platform||"");var dM={color:["#c23531","#2f4554","#61a0a8","#d48265","#91c7ae","#749f83","#ca8622","#bda29a","#6e7074","#546570","#c4ccd3"],gradientColor:["#f6efa6","#d88273","#bf444c"],textStyle:{fontFamily:cM.match(/^Win/)?"Microsoft YaHei":"sans-serif",fontSize:12,fontStyle:"normal",fontWeight:"normal"},blendMode:null,animation:"auto",animationDuration:1e3,animationDurationUpdate:300,animationEasing:"exponentialOut",animationEasingUpdate:"cubicOut",animationThreshold:2e3,progressiveThreshold:3e3,progressive:400,hoverLayerThreshold:3e3,useUTC:!1},fM=Ni(),pM={clearColorPalette:function(){fM(this).colorIdx=0,fM(this).colorNameMap={}},getColorFromPalette:function(t,e,i){var n=fM(e=e||this),o=n.colorIdx||0,a=n.colorNameMap=n.colorNameMap||{};if(a.hasOwnProperty(t))return a[t];var r=Si(this.get("color",!0)),s=this.get("colorLayer",!0),l=null!=i&&s?aa(s,i):r;if((l=l||r)&&l.length){var u=l[o];return t&&(a[t]=u),n.colorIdx=(o+1)%l.length,u}}},gM={cartesian2d:function(t,e,i,n){var o=t.getReferringComponents("xAxis")[0],a=t.getReferringComponents("yAxis")[0];e.coordSysDims=["x","y"],i.set("x",o),i.set("y",a),sa(o)&&(n.set("x",o),e.firstCategoryDimIndex=0),sa(a)&&(n.set("y",a),e.firstCategoryDimIndex=1)},singleAxis:function(t,e,i,n){var o=t.getReferringComponents("singleAxis")[0];e.coordSysDims=["single"],i.set("single",o),sa(o)&&(n.set("single",o),e.firstCategoryDimIndex=0)},polar:function(t,e,i,n){var o=t.getReferringComponents("polar")[0],a=o.findAxisModel("radiusAxis"),r=o.findAxisModel("angleAxis");e.coordSysDims=["radius","angle"],i.set("radius",a),i.set("angle",r),sa(a)&&(n.set("radius",a),e.firstCategoryDimIndex=0),sa(r)&&(n.set("angle",r),e.firstCategoryDimIndex=1)},geo:function(t,e,i,n){e.coordSysDims=["lng","lat"]},parallel:function(t,e,i,n){var o=t.ecModel,a=o.getComponent("parallel",t.get("parallelIndex")),r=e.coordSysDims=a.dimensions.slice();d(a.parallelAxisIndex,function(t,a){var s=o.getComponent("parallelAxis",t),l=r[a];i.set(l,s),sa(s)&&null==e.firstCategoryDimIndex&&(n.set(l,s),e.firstCategoryDimIndex=a)})}},mM="original",vM="arrayRows",yM="objectRows",xM="keyedColumns",_M="unknown",wM="typedArray",bM="column",SM="row";la.seriesDataToSource=function(t){return new la({data:t,sourceFormat:S(t)?wM:mM,fromDataset:!1})},Wi(la);var MM=Ni(),IM="\0_ec_inner",TM=wo.extend({init:function(t,e,i,n){i=i||{},this.option=null,this._theme=new wo(i),this._optionManager=n},setOption:function(t,e){k(!(IM in t),"please use chart.getOption()"),this._optionManager.setOption(t,e),this.resetOption(null)},resetOption:function(t){var e=!1,i=this._optionManager;if(!t||"recreate"===t){var n=i.mountOption("recreate"===t);this.option&&"recreate"!==t?(this.restoreData(),this.mergeOption(n)):Sa.call(this,n),e=!0}if("timeline"!==t&&"media"!==t||this.restoreData(),!t||"recreate"===t||"timeline"===t){var o=i.getTimelineOption(this);o&&(this.mergeOption(o),e=!0)}if(!t||"recreate"===t||"media"===t){var a=i.getMediaOption(this,this._api);a.length&&d(a,function(t){this.mergeOption(t,e=!0)},this)}return e},mergeOption:function(t){var e=this.option,o=this._componentsMap,r=[];ca(this),d(t,function(t,o){null!=t&&(hM.hasClass(o)?o&&r.push(o):e[o]=null==e[o]?i(t):n(e[o],t,!0))}),hM.topologicalTravel(r,hM.getAllClassMainTypes(),function(i,n){var r=Si(t[i]),s=Di(o.get(i),r);Ai(s),d(s,function(t,e){var n=t.option;w(n)&&(t.keyInfo.mainType=i,t.keyInfo.subType=Ia(i,n,t.exist))});var l=Ma(o,n);e[i]=[],o.set(i,[]),d(s,function(t,n){var r=t.exist,s=t.option;if(k(w(s)||r,"Empty component definition"),s){var u=hM.getClass(i,t.keyInfo.subType,!0);if(r&&r instanceof u)r.name=t.keyInfo.name,r.mergeOption(s,this),r.optionUpdated(s,!1);else{var h=a({dependentModels:l,componentIndex:n},t.keyInfo);a(r=new u(s,this,this,h),h),r.init(s,this,this,h),r.optionUpdated(null,!0)}}else r.mergeOption({},this),r.optionUpdated({},!1);o.get(i)[n]=r,e[i][n]=r.option},this),"series"===i&&Ta(this,o.get("series"))},this),this._seriesIndicesMap=R(this._seriesIndices=this._seriesIndices||[])},getOption:function(){var t=i(this.option);return d(t,function(e,i){if(hM.hasClass(i)){for(var n=(e=Si(e)).length-1;n>=0;n--)Li(e[n])&&e.splice(n,1);t[i]=e}}),delete t[IM],t},getTheme:function(){return this._theme},getComponent:function(t,e){var i=this._componentsMap.get(t);if(i)return i[e||0]},queryComponents:function(t){var e=t.mainType;if(!e)return[];var i=t.index,n=t.id,o=t.name,a=this._componentsMap.get(e);if(!a||!a.length)return[];var r;if(null!=i)y(i)||(i=[i]),r=g(f(i,function(t){return a[t]}),function(t){return!!t});else if(null!=n){var s=y(n);r=g(a,function(t){return s&&l(n,t.id)>=0||!s&&t.id===n})}else if(null!=o){var u=y(o);r=g(a,function(t){return u&&l(o,t.name)>=0||!u&&t.name===o})}else r=a.slice();return Da(r,t)},findComponents:function(t){var e=t.query,i=t.mainType,n=function(t){var e=i+"Index",n=i+"Id",o=i+"Name";return!t||null==t[e]&&null==t[n]&&null==t[o]?null:{mainType:i,index:t[e],id:t[n],name:t[o]}}(e);return function(e){return t.filter?g(e,t.filter):e}(Da(n?this.queryComponents(n):this._componentsMap.get(i),t))},eachComponent:function(t,e,i){var n=this._componentsMap;"function"==typeof t?(i=e,e=t,n.each(function(t,n){d(t,function(t,o){e.call(i,n,t,o)})})):_(t)?d(n.get(t),e,i):w(t)&&d(this.findComponents(t),e,i)},getSeriesByName:function(t){return g(this._componentsMap.get("series"),function(e){return e.name===t})},getSeriesByIndex:function(t){return this._componentsMap.get("series")[t]},getSeriesByType:function(t){return g(this._componentsMap.get("series"),function(e){return e.subType===t})},getSeries:function(){return this._componentsMap.get("series").slice()},getSeriesCount:function(){return this._componentsMap.get("series").length},eachSeries:function(t,e){d(this._seriesIndices,function(i){var n=this._componentsMap.get("series")[i];t.call(e,n,i)},this)},eachRawSeries:function(t,e){d(this._componentsMap.get("series"),t,e)},eachSeriesByType:function(t,e,i){d(this._seriesIndices,function(n){var o=this._componentsMap.get("series")[n];o.subType===t&&e.call(i,o,n)},this)},eachRawSeriesByType:function(t,e,i){return d(this.getSeriesByType(t),e,i)},isSeriesFiltered:function(t){return null==this._seriesIndicesMap.get(t.componentIndex)},getCurrentSeriesIndices:function(){return(this._seriesIndices||[]).slice()},filterSeries:function(t,e){Ta(this,g(this._componentsMap.get("series"),t,e))},restoreData:function(t){var e=this._componentsMap;Ta(this,e.get("series"));var i=[];e.each(function(t,e){i.push(e)}),hM.topologicalTravel(i,hM.getAllClassMainTypes(),function(i,n){d(e.get(i),function(e){("series"!==i||!wa(e,t))&&e.restoreData()})})}});h(TM,pM);var DM=["getDom","getZr","getWidth","getHeight","getDevicePixelRatio","dispatchAction","isDisposed","on","off","getDataURL","getConnectedDataURL","getModel","getOption","getViewOfComponentModel","getViewOfSeriesModel"],AM={};Ca.prototype={constructor:Ca,create:function(t,e){var i=[];d(AM,function(n,o){var a=n.create(t,e);i=i.concat(a||[])}),this._coordinateSystems=i},update:function(t,e){d(this._coordinateSystems,function(i){i.update&&i.update(t,e)})},getCoordinateSystems:function(){return this._coordinateSystems.slice()}},Ca.register=function(t,e){AM[t]=e},Ca.get=function(t){return AM[t]};var CM=d,LM=i,kM=f,PM=n,NM=/^(min|max)?(.+)$/;La.prototype={constructor:La,setOption:function(t,e){t&&d(Si(t.series),function(t){t&&t.data&&S(t.data)&&N(t.data)}),t=LM(t,!0);var i=this._optionBackup,n=ka.call(this,t,e,!i);this._newBaseOption=n.baseOption,i?(Ea(i.baseOption,n.baseOption),n.timelineOptions.length&&(i.timelineOptions=n.timelineOptions),n.mediaList.length&&(i.mediaList=n.mediaList),n.mediaDefault&&(i.mediaDefault=n.mediaDefault)):this._optionBackup=n},mountOption:function(t){var e=this._optionBackup;return this._timelineOptions=kM(e.timelineOptions,LM),this._mediaList=kM(e.mediaList,LM),this._mediaDefault=LM(e.mediaDefault),this._currentMediaIndices=[],LM(t?e.baseOption:this._newBaseOption)},getTimelineOption:function(t){var e,i=this._timelineOptions;if(i.length){var n=t.getComponent("timeline");n&&(e=LM(i[n.getCurrentIndex()],!0))}return e},getMediaOption:function(t){var e=this._api.getWidth(),i=this._api.getHeight(),n=this._mediaList,o=this._mediaDefault,a=[],r=[];if(!n.length&&!o)return r;for(var s=0,l=n.length;s=1)&&(t=1),t}var i=this._upstream,n=t&&t.skip;if(this._dirty&&i){var o=this.context;o.data=o.outputData=i.context.outputData}this.__pipeline&&(this.__pipeline.currentTask=this);var a;this._plan&&!n&&(a=this._plan(this.context));var r=e(this._modBy),s=this._modDataCount||0,l=e(t&&t.modBy),u=t&&t.modDataCount||0;r===l&&s===u||(a="reset");var h;(this._dirty||"reset"===a)&&(this._dirty=!1,h=rr(this,n)),this._modBy=l,this._modDataCount=u;var c=t&&t.step;if(this._dueEnd=i?i._outputDueEnd:this._count?this._count(this.context):1/0,this._progress){var d=this._dueIndex,f=Math.min(null!=c?this._dueIndex+c:1/0,this._dueEnd);if(!n&&(h||d=i?null:t1&&a>0?e:t}};return s}();jM.dirty=function(){this._dirty=!0,this._onDirty&&this._onDirty(this.context)},jM.unfinished=function(){return this._progress&&this._dueIndex1||l&&!r?function(i){function n(t,i){var n=o.getDimensionInfo(i);if(n&&!1!==n.otherDims.tooltip){var a=n.type,l=jo({color:u,type:"subItem"}),h=(r?l+Zo(n.displayName||"-")+": ":"")+Zo("ordinal"===a?t+"":"time"===a?e?"":qo("yyyy/MM/dd hh:mm:ss",t):Fo(t));h&&s.push(h)}}var r=p(i,function(t,e,i){var n=o.getDimensionInfo(i);return t|=n&&!1!==n.tooltip&&null!=n.displayName},0),s=[];return a.length?d(a,function(e){n(er(o,t,e),e)}):d(i,n),(r?"
":"")+s.join(r?"
":", ")}(s):n(r?er(o,t,a[0]):l?s[0]:s),c=jo(u),f=o.getName(t),g=this.name;return Ci(this)||(g=""),g=g?Zo(g)+(e?": ":"
"):"",e?c+g+h:g+c+(f?Zo(f)+": "+h:h)},isAnimationEnabled:function(){if(a_.node)return!1;var t=this.getShallow("animation");return t&&this.getData().count()>this.getShallow("animationThreshold")&&(t=!1),t},restoreData:function(){this.dataTask.dirty()},getColorFromPalette:function(t,e,i){var n=this.ecModel,o=pM.getColorFromPalette.call(this,t,e,i);return o||(o=n.getColorFromPalette(t,e,i)),o},coordDimToDataDim:function(t){return this.getRawData().mapDimension(t,!0)},getProgressive:function(){return this.get("progressive")},getProgressiveThreshold:function(){return this.get("progressiveThreshold")},getAxisTooltipData:null,getTooltipPosition:null,pipeTask:null,preventIncremental:null,pipelineContext:null});h(KM,XM),h(KM,pM);var $M=function(){this.group=new sw,this.uid=Mo("viewComponent")};$M.prototype={constructor:$M,init:function(t,e){},render:function(t,e,i,n){},dispose:function(){}};var JM=$M.prototype;JM.updateView=JM.updateLayout=JM.updateVisual=function(t,e,i,n){},Gi($M),Zi($M,{registerWhenExtend:!0});var QM=function(){var t=Ni();return function(e){var i=t(e),n=e.pipelineContext,o=i.large,a=i.progressiveRender,r=i.large=n.large,s=i.progressiveRender=n.progressiveRender;return!!(o^r||a^s)&&"reset"}},tI=Ni(),eI=QM();gr.prototype={type:"chart",init:function(t,e){},render:function(t,e,i,n){},highlight:function(t,e,i,n){vr(t.getData(),n,"emphasis")},downplay:function(t,e,i,n){vr(t.getData(),n,"normal")},remove:function(t,e){this.group.removeAll()},dispose:function(){},incrementalPrepareRender:null,incrementalRender:null,updateTransform:null};var iI=gr.prototype;iI.updateView=iI.updateLayout=iI.updateVisual=function(t,e,i,n){this.render(t,e,i,n)},Gi(gr),Zi(gr,{registerWhenExtend:!0}),gr.markUpdateMethod=function(t,e){tI(t).updateMethod=e};var nI={incrementalPrepareRender:{progress:function(t,e){e.view.incrementalRender(t,e.model,e.ecModel,e.api,e.payload)}},render:{forceFirstProgress:!0,progress:function(t,e){e.view.render(e.model,e.ecModel,e.api,e.payload)}}},oI="\0__throttleOriginMethod",aI="\0__throttleRate",rI="\0__throttleType",sI={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){var i=t.getData(),n=(t.visualColorAccessPath||"itemStyle.color").split("."),o=t.get(n)||t.getColorFromPalette(t.name,null,e.getSeriesCount());if(i.setVisual("color",o),!e.isSeriesFiltered(t)){"function"!=typeof o||o instanceof CS||i.each(function(e){i.setItemVisual(e,"color",o(t.getDataParams(e)))});return{dataEach:i.hasItemOption?function(t,e){var i=t.getItemModel(e).get(n,!0);null!=i&&t.setItemVisual(e,"color",i)}:null}}}},lI={toolbox:{brush:{title:{rect:"矩形选择",polygon:"圈选",lineX:"横向选择",lineY:"纵向选择",keep:"保持选择",clear:"清除选择"}},dataView:{title:"数据视图",lang:["数据视图","关闭","刷新"]},dataZoom:{title:{zoom:"区域缩放",back:"区域缩放还原"}},magicType:{title:{line:"切换为折线图",bar:"切换为柱状图",stack:"切换为堆叠",tiled:"切换为平铺"}},restore:{title:"还原"},saveAsImage:{title:"保存为图片",lang:["右键另存为图片"]}},series:{typeNames:{pie:"饼图",bar:"柱状图",line:"折线图",scatter:"散点图",effectScatter:"涟漪散点图",radar:"雷达图",tree:"树图",treemap:"矩形树图",boxplot:"箱型图",candlestick:"K线图",k:"K线图",heatmap:"热力图",map:"地图",parallel:"平行坐标图",lines:"线图",graph:"关系图",sankey:"桑基图",funnel:"漏斗图",gauge:"仪表盘图",pictorialBar:"象形柱图",themeRiver:"主题河流图",sunburst:"旭日图"}},aria:{general:{withTitle:"这是一个关于“{title}”的图表。",withoutTitle:"这是一个图表,"},series:{single:{prefix:"",withName:"图表类型是{seriesType},表示{seriesName}。",withoutName:"图表类型是{seriesType}。"},multiple:{prefix:"它由{seriesCount}个图表系列组成。",withName:"第{seriesId}个系列是一个表示{seriesName}的{seriesType},",withoutName:"第{seriesId}个系列是一个{seriesType},",separator:{middle:";",end:"。"}}},data:{allData:"其数据是——",partialData:"其中,前{displayCnt}项是——",withName:"{name}的数据是{value}",withoutName:"{value}",separator:{middle:",",end:""}}}},uI=function(t,e){function i(t,e){if("string"!=typeof t)return t;var i=t;return d(e,function(t,e){i=i.replace(new RegExp("\\{\\s*"+e+"\\s*\\}","g"),t)}),i}function n(t){var e=a.get(t);if(null==e){for(var i=t.split("."),n=lI.aria,o=0;o1?"series.multiple.prefix":"series.single.prefix"),{seriesCount:r}),e.eachSeries(function(t,e){if(e1?"multiple":"single")+".";a=i(a=n(s?u+"withName":u+"withoutName"),{seriesId:t.seriesIndex,seriesName:t.get("name"),seriesType:o(t.subType)});var c=t.getData();window.data=c,c.count()>l?a+=i(n("data.partialData"),{displayCnt:l}):a+=n("data.allData");for(var d=[],p=0;pi.blockIndex?i.step:null,a=n&&n.modDataCount;return{step:o,modBy:null!=a?Math.ceil(a/o):null,modDataCount:a}}},cI.getPipeline=function(t){return this._pipelineMap.get(t)},cI.updateStreamModes=function(t,e){var i=this._pipelineMap.get(t.uid),n=t.getData().count(),o=i.progressiveEnabled&&e.incrementalPrepareRender&&n>=i.threshold,a=t.get("large")&&n>=t.get("largeThreshold"),r="mod"===t.get("progressiveChunkMode")?n:null;t.pipelineContext=i.context={progressiveRender:o,modDataCount:r,large:a}},cI.restorePipelines=function(t){var e=this,i=e._pipelineMap=R();t.eachSeries(function(t){var n=t.getProgressive(),o=t.uid;i.set(o,{id:o,head:null,tail:null,threshold:t.getProgressiveThreshold(),progressiveEnabled:n&&!(t.preventIncremental&&t.preventIncremental()),blockIndex:-1,step:Math.round(n||700),count:0}),Er(e,t,t.dataTask)})},cI.prepareStageTasks=function(){var t=this._stageTaskMap,e=this.ecInstance.getModel(),i=this.api;d(this._allHandlers,function(n){var o=t.get(n.uid)||t.set(n.uid,[]);n.reset&&Ir(this,n,o,e,i),n.overallReset&&Tr(this,n,o,e,i)},this)},cI.prepareView=function(t,e,i,n){var o=t.renderTask,a=o.context;a.model=e,a.ecModel=i,a.api=n,o.__block=!t.incrementalPrepareRender,Er(this,e,o)},cI.performDataProcessorTasks=function(t,e){Mr(this,this._dataProcessorHandlers,t,e,{block:!0})},cI.performVisualTasks=function(t,e,i){Mr(this,this._visualHandlers,t,e,i)},cI.performSeriesTasks=function(t){var e;t.eachSeries(function(t){e|=t.dataTask.perform()}),this.unfinished|=e},cI.plan=function(){this._pipelineMap.each(function(t){var e=t.tail;do{if(e.__block){t.blockIndex=e.__idxInPipeline;break}e=e.getUpstream()}while(e)})};var dI=cI.updatePayload=function(t,e){"remain"!==e&&(t.context.payload=e)},fI=Nr(0);Sr.wrapStageHandler=function(t,e){return x(t)&&(t={overallReset:t,seriesType:Rr(t)}),t.uid=Mo("stageHandler"),e&&(t.visualType=e),t};var pI,gI={},mI={};zr(gI,TM),zr(mI,Aa),gI.eachSeriesByType=gI.eachRawSeriesByType=function(t){pI=t},gI.eachComponent=function(t){"series"===t.mainType&&t.subType&&(pI=t.subType)};var vI=["#37A2DA","#32C5E9","#67E0E3","#9FE6B8","#FFDB5C","#ff9f7f","#fb7293","#E062AE","#E690D1","#e7bcf3","#9d96f5","#8378EA","#96BFFF"],yI={color:vI,colorLayer:[["#37A2DA","#ffd85c","#fd7b5f"],["#37A2DA","#67E0E3","#FFDB5C","#ff9f7f","#E062AE","#9d96f5"],["#37A2DA","#32C5E9","#9FE6B8","#FFDB5C","#ff9f7f","#fb7293","#e7bcf3","#8378EA","#96BFFF"],vI]},xI=["#dd6b66","#759aa0","#e69d87","#8dc1a9","#ea7e53","#eedd78","#73a373","#73b9bc","#7289ab","#91ca8c","#f49f42"],_I={color:xI,backgroundColor:"#333",tooltip:{axisPointer:{lineStyle:{color:"#eee"},crossStyle:{color:"#eee"}}},legend:{textStyle:{color:"#eee"}},textStyle:{color:"#eee"},title:{textStyle:{color:"#eee"}},toolbox:{iconStyle:{normal:{borderColor:"#eee"}}},dataZoom:{textStyle:{color:"#eee"}},visualMap:{textStyle:{color:"#eee"}},timeline:{lineStyle:{color:"#eee"},itemStyle:{normal:{color:xI[1]}},label:{normal:{textStyle:{color:"#eee"}}},controlStyle:{normal:{color:"#eee",borderColor:"#eee"}}},timeAxis:{axisLine:{lineStyle:{color:"#eee"}},axisTick:{lineStyle:{color:"#eee"}},axisLabel:{textStyle:{color:"#eee"}},splitLine:{lineStyle:{type:"dashed",color:"#aaa"}},splitArea:{areaStyle:{color:"#eee"}}},logAxis:{axisLine:{lineStyle:{color:"#eee"}},axisTick:{lineStyle:{color:"#eee"}},axisLabel:{textStyle:{color:"#eee"}},splitLine:{lineStyle:{type:"dashed",color:"#aaa"}},splitArea:{areaStyle:{color:"#eee"}}},valueAxis:{axisLine:{lineStyle:{color:"#eee"}},axisTick:{lineStyle:{color:"#eee"}},axisLabel:{textStyle:{color:"#eee"}},splitLine:{lineStyle:{type:"dashed",color:"#aaa"}},splitArea:{areaStyle:{color:"#eee"}}},categoryAxis:{axisLine:{lineStyle:{color:"#eee"}},axisTick:{lineStyle:{color:"#eee"}},axisLabel:{textStyle:{color:"#eee"}},splitLine:{lineStyle:{type:"dashed",color:"#aaa"}},splitArea:{areaStyle:{color:"#eee"}}},line:{symbol:"circle"},graph:{color:xI},gauge:{title:{textStyle:{color:"#eee"}}},candlestick:{itemStyle:{normal:{color:"#FD1050",color0:"#0CF49B",borderColor:"#FD1050",borderColor0:"#0CF49B"}}}};_I.categoryAxis.splitLine.show=!1,hM.extend({type:"dataset",defaultOption:{seriesLayoutBy:bM,sourceHeader:null,dimensions:null,source:null},optionUpdated:function(){ua(this)}}),$M.extend({type:"dataset"});var wI=k,bI=d,SI=x,MI=w,II=hM.parseClassType,TI={zrender:"4.0.4"},DI=1e3,AI=1e3,CI=3e3,LI={PROCESSOR:{FILTER:DI,STATISTIC:5e3},VISUAL:{LAYOUT:AI,GLOBAL:2e3,CHART:CI,COMPONENT:4e3,BRUSH:5e3}},kI="__flagInMainProcess",PI="__optionUpdated",NI=/^[a-zA-Z0-9_]+$/;Vr.prototype.on=Br("on"),Vr.prototype.off=Br("off"),Vr.prototype.one=Br("one"),h(Vr,D_);var OI=Gr.prototype;OI._onframe=function(){if(!this._disposed){var t=this._scheduler;if(this[PI]){var e=this[PI].silent;this[kI]=!0,Fr(this),EI.update.call(this),this[kI]=!1,this[PI]=!1,Xr.call(this,e),jr.call(this,e)}else if(t.unfinished){var i=1,n=this._model;this._api;t.unfinished=!1;do{var o=+new Date;t.performSeriesTasks(n),t.performDataProcessorTasks(n),Zr(this,n),t.performVisualTasks(n),Qr(this,this._model,0,"remain"),i-=+new Date-o}while(i>0&&t.unfinished);t.unfinished||this._zr.flush()}}},OI.getDom=function(){return this._dom},OI.getZr=function(){return this._zr},OI.setOption=function(t,e,i){var n;if(MI(e)&&(i=e.lazyUpdate,n=e.silent,e=e.notMerge),this[kI]=!0,!this._model||e){var o=new La(this._api),a=this._theme,r=this._model=new TM(null,null,a,o);r.scheduler=this._scheduler,r.init(null,null,a,o)}this._model.setOption(t,GI),i?(this[PI]={silent:n},this[kI]=!1):(Fr(this),EI.update.call(this),this._zr.flush(),this[PI]=!1,this[kI]=!1,Xr.call(this,n),jr.call(this,n))},OI.setTheme=function(){console.log("ECharts#setTheme() is DEPRECATED in ECharts 3.0")},OI.getModel=function(){return this._model},OI.getOption=function(){return this._model&&this._model.getOption()},OI.getWidth=function(){return this._zr.getWidth()},OI.getHeight=function(){return this._zr.getHeight()},OI.getDevicePixelRatio=function(){return this._zr.painter.dpr||window.devicePixelRatio||1},OI.getRenderedCanvas=function(t){if(a_.canvasSupported)return(t=t||{}).pixelRatio=t.pixelRatio||1,t.backgroundColor=t.backgroundColor||this._model.get("backgroundColor"),this._zr.painter.getRenderedCanvas(t)},OI.getSvgDataUrl=function(){if(a_.svgSupported){var t=this._zr;return d(t.storage.getDisplayList(),function(t){t.stopAnimation(!0)}),t.painter.pathToDataUrl()}},OI.getDataURL=function(t){var e=(t=t||{}).excludeComponents,i=this._model,n=[],o=this;bI(e,function(t){i.eachComponent({mainType:t},function(t){var e=o._componentsMap[t.__viewId];e.group.ignore||(n.push(e),e.group.ignore=!0)})});var a="svg"===this._zr.painter.getType()?this.getSvgDataUrl():this.getRenderedCanvas(t).toDataURL("image/"+(t&&t.type||"png"));return bI(n,function(t){t.group.ignore=!1}),a},OI.getConnectedDataURL=function(t){if(a_.canvasSupported){var e=this.group,n=Math.min,o=Math.max;if(XI[e]){var a=1/0,r=1/0,s=-1/0,l=-1/0,u=[],h=t&&t.pixelRatio||1;d(UI,function(h,c){if(h.group===e){var d=h.getRenderedCanvas(i(t)),f=h.getDom().getBoundingClientRect();a=n(f.left,a),r=n(f.top,r),s=o(f.right,s),l=o(f.bottom,l),u.push({dom:d,left:f.left,top:f.top})}});var c=(s*=h)-(a*=h),f=(l*=h)-(r*=h),p=m_();p.width=c,p.height=f;var g=_i(p);return bI(u,function(t){var e=new Je({style:{x:t.left*h-a,y:t.top*h-r,image:t.dom}});g.add(e)}),g.refreshImmediately(),p.toDataURL("image/"+(t&&t.type||"png"))}return this.getDataURL(t)}},OI.convertToPixel=v(Wr,"convertToPixel"),OI.convertFromPixel=v(Wr,"convertFromPixel"),OI.containPixel=function(t,e){var i;return t=Oi(this._model,t),d(t,function(t,n){n.indexOf("Models")>=0&&d(t,function(t){var o=t.coordinateSystem;if(o&&o.containPoint)i|=!!o.containPoint(e);else if("seriesModels"===n){var a=this._chartsMap[t.__viewId];a&&a.containPoint&&(i|=a.containPoint(e,t))}},this)},this),!!i},OI.getVisual=function(t,e){var i=(t=Oi(this._model,t,{defaultMainType:"series"})).seriesModel.getData(),n=t.hasOwnProperty("dataIndexInside")?t.dataIndexInside:t.hasOwnProperty("dataIndex")?i.indexOfRawIndex(t.dataIndex):null;return null!=n?i.getItemVisual(n,e):i.getVisual(e)},OI.getViewOfComponentModel=function(t){return this._componentsMap[t.__viewId]},OI.getViewOfSeriesModel=function(t){return this._chartsMap[t.__viewId]};var EI={prepareAndUpdate:function(t){Fr(this),EI.update.call(this,t)},update:function(t){var e=this._model,i=this._api,n=this._zr,o=this._coordSysMgr,a=this._scheduler;if(e){a.restoreData(e,t),a.performSeriesTasks(e),o.create(e,i),a.performDataProcessorTasks(e,t),Zr(this,e),o.update(e,i),Kr(e),a.performVisualTasks(e,t),$r(this,e,i,t);var r=e.get("backgroundColor")||"transparent";if(a_.canvasSupported)n.setBackgroundColor(r);else{var s=At(r);r=zt(s,"rgb"),0===s[3]&&(r="transparent")}ts(e,i)}},updateTransform:function(t){var e=this._model,i=this,n=this._api;if(e){var o=[];e.eachComponent(function(a,r){var s=i.getViewOfComponentModel(r);if(s&&s.__alive)if(s.updateTransform){var l=s.updateTransform(r,e,n,t);l&&l.update&&o.push(s)}else o.push(s)});var a=R();e.eachSeries(function(o){var r=i._chartsMap[o.__viewId];if(r.updateTransform){var s=r.updateTransform(o,e,n,t);s&&s.update&&a.set(o.uid,1)}else a.set(o.uid,1)}),Kr(e),this._scheduler.performVisualTasks(e,t,{setDirty:!0,dirtyMap:a}),Qr(i,e,0,t,a),ts(e,this._api)}},updateView:function(t){var e=this._model;e&&(gr.markUpdateMethod(t,"updateView"),Kr(e),this._scheduler.performVisualTasks(e,t,{setDirty:!0}),$r(this,this._model,this._api,t),ts(e,this._api))},updateVisual:function(t){EI.update.call(this,t)},updateLayout:function(t){EI.update.call(this,t)}};OI.resize=function(t){this._zr.resize(t);var e=this._model;if(this._loadingFX&&this._loadingFX.resize(),e){var i=e.resetOption("media"),n=t&&t.silent;this[kI]=!0,i&&Fr(this),EI.update.call(this),this[kI]=!1,Xr.call(this,n),jr.call(this,n)}},OI.showLoading=function(t,e){if(MI(t)&&(e=t,t=""),t=t||"default",this.hideLoading(),ZI[t]){var i=ZI[t](this._api,e),n=this._zr;this._loadingFX=i,n.add(i)}},OI.hideLoading=function(){this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null},OI.makeActionFromEvent=function(t){var e=a({},t);return e.type=BI[t.type],e},OI.dispatchAction=function(t,e){MI(e)||(e={silent:!!e}),zI[t.type]&&this._model&&(this[kI]?this._pendingActions.push(t):(Ur.call(this,t,e.silent),e.flush?this._zr.flush(!0):!1!==e.flush&&a_.browser.weChat&&this._throttledZrFlush(),Xr.call(this,e.silent),jr.call(this,e.silent)))},OI.appendData=function(t){var e=t.seriesIndex;this.getModel().getSeriesByIndex(e).appendData(t),this._scheduler.unfinished=!0},OI.on=Br("on"),OI.off=Br("off"),OI.one=Br("one");var RI=["click","dblclick","mouseover","mouseout","mousemove","mousedown","mouseup","globalout","contextmenu"];OI._initEvents=function(){bI(RI,function(t){this._zr.on(t,function(e){var i,n=this.getModel(),o=e.target;if("globalout"===t)i={};else if(o&&null!=o.dataIndex){var r=o.dataModel||n.getSeriesByIndex(o.seriesIndex);i=r&&r.getDataParams(o.dataIndex,o.dataType)||{}}else o&&o.eventData&&(i=a({},o.eventData));i&&(i.event=e,i.type=t,this.trigger(t,i))},this)},this),bI(BI,function(t,e){this._messageCenter.on(e,function(t){this.trigger(e,t)},this)},this)},OI.isDisposed=function(){return this._disposed},OI.clear=function(){this.setOption({series:[]},!0)},OI.dispose=function(){if(!this._disposed){this._disposed=!0,Ri(this.getDom(),qI,"");var t=this._api,e=this._model;bI(this._componentsViews,function(i){i.dispose(e,t)}),bI(this._chartsViews,function(i){i.dispose(e,t)}),this._zr.dispose(),delete UI[this.id]}},h(Gr,D_);var zI={},BI={},VI=[],GI=[],WI=[],FI=[],HI={},ZI={},UI={},XI={},jI=new Date-0,YI=new Date-0,qI="_echarts_instance_",KI={},$I=rs;ps(2e3,sI),us(GM),hs(5e3,function(t){var e=R();t.eachSeries(function(t){var i=t.get("stack");if(i){var n=e.get(i)||e.set(i,[]),o=t.getData(),a={stackResultDimension:o.getCalculationInfo("stackResultDimension"),stackedOverDimension:o.getCalculationInfo("stackedOverDimension"),stackedDimension:o.getCalculationInfo("stackedDimension"),stackedByDimension:o.getCalculationInfo("stackedByDimension"),isStackedByIndex:o.getCalculationInfo("isStackedByIndex"),data:o,seriesModel:t};if(!a.stackedDimension||!a.isStackedByIndex&&!a.stackedByDimension)return;n.length&&o.setCalculationInfo("stackedOnSeries",n[n.length-1].seriesModel),n.push(a)}}),e.each(ja)}),ms("default",function(t,e){r(e=e||{},{text:"loading",color:"#c23531",textColor:"#000",maskColor:"rgba(255, 255, 255, 0.8)",zlevel:0});var i=new SS({style:{fill:e.maskColor},zlevel:e.zlevel,z:1e4}),n=new DS({shape:{startAngle:-hI/2,endAngle:-hI/2+.1,r:10},style:{stroke:e.color,lineCap:"round",lineWidth:5},zlevel:e.zlevel,z:10001}),o=new SS({style:{fill:"none",text:e.text,textPosition:"right",textDistance:10,textFill:e.textColor},zlevel:e.zlevel,z:10001});n.animateShape(!0).when(1e3,{endAngle:3*hI/2}).start("circularInOut"),n.animateShape(!0).when(1e3,{startAngle:3*hI/2}).delay(300).start("circularInOut");var a=new sw;return a.add(n),a.add(o),a.add(i),a.resize=function(){var e=t.getWidth()/2,a=t.getHeight()/2;n.setShape({cx:e,cy:a});var r=n.shape.r;o.setShape({x:e-r,y:a-r,width:2*r,height:2*r}),i.setShape({x:0,y:0,width:t.getWidth(),height:t.getHeight()})},a.resize(),a}),cs({type:"highlight",event:"highlight",update:"highlight"},B),cs({type:"downplay",event:"downplay",update:"downplay"},B),ls("light",yI),ls("dark",_I);var JI={};Ss.prototype={constructor:Ss,add:function(t){return this._add=t,this},update:function(t){return this._update=t,this},remove:function(t){return this._remove=t,this},execute:function(){var t=this._old,e=this._new,i={},n=[],o=[];for(Ms(t,{},n,"_oldKeyGetter",this),Ms(e,i,o,"_newKeyGetter",this),a=0;a=e)){for(var i,n=this._chunkSize,o=this._rawData,a=this._storage,r=this.dimensions,s=r.length,l=this._dimensionInfos,u=this._nameList,h=this._idList,c=this._rawExtent,d=this._nameRepeatCount={},f=this._chunkCount,p=f-1,g=0;gC[1]&&(C[1]=A)}if(!o.pure){var L=u[b];if(w&&null==L)if(null!=w.name)u[b]=L=w.name;else if(null!=i){var k=r[i],P=a[k][S];if(P){L=P[M];var N=l[k].ordinalMeta;N&&N.categories.length&&(L=N.categories[L])}}var O=null==w?null:w.id;null==O&&null!=L&&(d[L]=d[L]||0,O=L,d[L]>0&&(O+="__ec__"+d[L]),d[L]++),null!=O&&(h[b]=O)}}!o.persistent&&o.clean&&o.clean(),this._rawCount=this._count=e,this._extent={},ks(this)}},lT.count=function(){return this._count},lT.getIndices=function(){var t=this._indices;if(t){var e=t.constructor,i=this._count;if(e===Array){n=new e(i);for(o=0;o=0&&e=0&&ea&&(a=s)}return i=[o,a],this._extent[t]=i,i},lT.getApproximateExtent=function(t){return t=this.getDimension(t),this._approximateExtent[t]||this.getDataExtent(t)},lT.setApproximateExtent=function(t,e){e=this.getDimension(e),this._approximateExtent[e]=t.slice()},lT.getCalculationInfo=function(t){return this._calculationInfo[t]},lT.setCalculationInfo=function(t,e){tT(t)?a(this._calculationInfo,t):this._calculationInfo[t]=e},lT.getSum=function(t){var e=0;if(this._storage[t])for(var i=0,n=this.count();i=this._rawCount||t<0)return-1;var e=this._indices,i=e[t];if(null!=i&&it))return a;o=a-1}}return-1},lT.indicesOfNearest=function(t,e,i){var n=[];if(!this._storage[t])return n;null==i&&(i=1/0);for(var o=Number.MAX_VALUE,a=-1,r=0,s=this.count();r=0&&a<0)&&(o=u,a=l,n.length=0),n.push(r))}return n},lT.getRawIndex=Ns,lT.getRawDataItem=function(t){if(this._rawData.persistent)return this._rawData.getItem(this.getRawIndex(t));for(var e=[],i=0;i=l&&w<=u||isNaN(w))&&(a[r++]=c),c++;h=!0}else if(2===n){for(var d=this._storage[s],v=this._storage[e[1]],y=t[e[1]][0],x=t[e[1]][1],f=0;f=l&&w<=u||isNaN(w))&&(b>=y&&b<=x||isNaN(b))&&(a[r++]=c),c++}h=!0}}if(!h)if(1===n)for(m=0;m=l&&w<=u||isNaN(w))&&(a[r++]=M)}else for(m=0;mt[I][1])&&(S=!1)}S&&(a[r++]=this.getRawIndex(m))}return rb[1]&&(b[1]=w)}}}return o},lT.downSample=function(t,e,i,n){for(var o=zs(this,[t]),a=o._storage,r=[],s=Math.floor(1/e),l=a[t],u=this.count(),h=this._chunkSize,c=o._rawExtent[t],d=new(As(this))(u),f=0,p=0;pu-p&&(s=u-p,r.length=s);for(var g=0;gc[1]&&(c[1]=x),d[f++]=_}return o._count=f,o._indices=d,o.getRawIndex=Os,o},lT.getItemModel=function(t){var e=this.hostModel;return new wo(this.getRawDataItem(t),e,e&&e.ecModel)},lT.diff=function(t){var e=this;return new Ss(t?t.getIndices():[],this.getIndices(),function(e){return Es(t,e)},function(t){return Es(e,t)})},lT.getVisual=function(t){var e=this._visual;return e&&e[t]},lT.setVisual=function(t,e){if(tT(t))for(var i in t)t.hasOwnProperty(i)&&this.setVisual(i,t[i]);else this._visual=this._visual||{},this._visual[t]=e},lT.setLayout=function(t,e){if(tT(t))for(var i in t)t.hasOwnProperty(i)&&this.setLayout(i,t[i]);else this._layout[t]=e},lT.getLayout=function(t){return this._layout[t]},lT.getItemLayout=function(t){return this._itemLayouts[t]},lT.setItemLayout=function(t,e,i){this._itemLayouts[t]=i?a(this._itemLayouts[t]||{},e):e},lT.clearItemLayouts=function(){this._itemLayouts.length=0},lT.getItemVisual=function(t,e,i){var n=this._itemVisuals[t],o=n&&n[e];return null!=o||i?o:this.getVisual(e)},lT.setItemVisual=function(t,e,i){var n=this._itemVisuals[t]||{},o=this.hasItemVisual;if(this._itemVisuals[t]=n,tT(e))for(var a in e)e.hasOwnProperty(a)&&(n[a]=e[a],o[a]=!0);else n[e]=i,o[e]=!0},lT.clearAllVisual=function(){this._visual={},this._itemVisuals=[],this.hasItemVisual={}};var uT=function(t){t.seriesIndex=this.seriesIndex,t.dataIndex=this.dataIndex,t.dataType=this.dataType};lT.setItemGraphicEl=function(t,e){var i=this.hostModel;e&&(e.dataIndex=t,e.dataType=this.dataType,e.seriesIndex=i&&i.seriesIndex,"group"===e.type&&e.traverse(uT,e)),this._graphicEls[t]=e},lT.getItemGraphicEl=function(t){return this._graphicEls[t]},lT.eachItemGraphicEl=function(t,e){d(this._graphicEls,function(i,n){i&&t&&t.call(e,i,n)})},lT.cloneShallow=function(t){if(!t){var e=f(this.dimensions,this.getDimensionInfo,this);t=new sT(e,this.hostModel)}if(t._storage=this._storage,Ls(t,this),this._indices){var i=this._indices.constructor;t._indices=new i(this._indices)}else t._indices=null;return t.getRawIndex=t._indices?Os:Ns,t},lT.wrapMethod=function(t,e){var i=this[t];"function"==typeof i&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var t=i.apply(this,arguments);return e.apply(this,[t].concat(C(arguments)))})},lT.TRANSFERABLE_METHODS=["cloneShallow","downSample","map"],lT.CHANGABLE_METHODS=["filterSelf","selectRange"];var hT=function(t,e){return e=e||{},Gs(e.coordDimensions||[],t,{dimsDef:e.dimensionsDefine||t.dimensionsDefine,encodeDef:e.encodeDefine||t.encodeDefine,dimCount:e.dimensionsCount,generateCoord:e.generateCoord,generateCoordCount:e.generateCoordCount})};qs.prototype.parse=function(t){return t},qs.prototype.getSetting=function(t){return this._setting[t]},qs.prototype.contain=function(t){var e=this._extent;return t>=e[0]&&t<=e[1]},qs.prototype.normalize=function(t){var e=this._extent;return e[1]===e[0]?.5:(t-e[0])/(e[1]-e[0])},qs.prototype.scale=function(t){var e=this._extent;return t*(e[1]-e[0])+e[0]},qs.prototype.unionExtent=function(t){var e=this._extent;t[0]e[1]&&(e[1]=t[1])},qs.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},qs.prototype.getExtent=function(){return this._extent.slice()},qs.prototype.setExtent=function(t,e){var i=this._extent;isNaN(t)||(i[0]=t),isNaN(e)||(i[1]=e)},qs.prototype.isBlank=function(){return this._isBlank},qs.prototype.setBlank=function(t){this._isBlank=t},qs.prototype.getLabel=null,Gi(qs),Zi(qs,{registerWhenExtend:!0}),Ks.createByAxisModel=function(t){var e=t.option,i=e.data,n=i&&f(i,Js);return new Ks({categories:n,needCollect:!n,deduplication:!1!==e.dedplication})};var cT=Ks.prototype;cT.getOrdinal=function(t){return $s(this).get(t)},cT.parseAndCollect=function(t){var e,i=this._needCollect;if("string"!=typeof t&&!i)return t;if(i&&!this._deduplication)return e=this.categories.length,this.categories[e]=t,e;var n=$s(this);return null==(e=n.get(t))&&(i?(e=this.categories.length,this.categories[e]=t,n.set(t,e)):e=NaN),e};var dT=qs.prototype,fT=qs.extend({type:"ordinal",init:function(t,e){t&&!y(t)||(t=new Ks({categories:t})),this._ordinalMeta=t,this._extent=e||[0,t.categories.length-1]},parse:function(t){return"string"==typeof t?this._ordinalMeta.getOrdinal(t):Math.round(t)},contain:function(t){return t=this.parse(t),dT.contain.call(this,t)&&null!=this._ordinalMeta.categories[t]},normalize:function(t){return dT.normalize.call(this,this.parse(t))},scale:function(t){return Math.round(dT.scale.call(this,t))},getTicks:function(){for(var t=[],e=this._extent,i=e[0];i<=e[1];)t.push(i),i++;return t},getLabel:function(t){if(!this.isBlank())return this._ordinalMeta.categories[t]},count:function(){return this._extent[1]-this._extent[0]+1},unionExtentFromData:function(t,e){this.unionExtent(t.getApproximateExtent(e))},getOrdinalMeta:function(){return this._ordinalMeta},niceTicks:B,niceExtent:B});fT.create=function(){return new fT};var pT=Ao,gT=Ao,mT=qs.extend({type:"interval",_interval:0,_intervalPrecision:2,setExtent:function(t,e){var i=this._extent;isNaN(t)||(i[0]=parseFloat(t)),isNaN(e)||(i[1]=parseFloat(e))},unionExtent:function(t){var e=this._extent;t[0]e[1]&&(e[1]=t[1]),mT.prototype.setExtent.call(this,e[0],e[1])},getInterval:function(){return this._interval},setInterval:function(t){this._interval=t,this._niceExtent=this._extent.slice(),this._intervalPrecision=tl(t)},getTicks:function(){return nl(this._interval,this._extent,this._niceExtent,this._intervalPrecision)},getLabel:function(t,e){if(null==t)return"";var i=e&&e.precision;return null==i?i=ko(t)||0:"auto"===i&&(i=this._intervalPrecision),t=gT(t,i,!0),Fo(t)},niceTicks:function(t,e,i){t=t||5;var n=this._extent,o=n[1]-n[0];if(isFinite(o)){o<0&&(o=-o,n.reverse());var a=Qs(n,t,e,i);this._intervalPrecision=a.intervalPrecision,this._interval=a.interval,this._niceExtent=a.niceTickExtent}},niceExtent:function(t){var e=this._extent;if(e[0]===e[1])if(0!==e[0]){var i=e[0];t.fixMax?e[0]-=i/2:(e[1]+=i/2,e[0]-=i/2)}else e[1]=1;var n=e[1]-e[0];isFinite(n)||(e[0]=0,e[1]=1),this.niceTicks(t.splitNumber,t.minInterval,t.maxInterval);var o=this._interval;t.fixMin||(e[0]=gT(Math.floor(e[0]/o)*o)),t.fixMax||(e[1]=gT(Math.ceil(e[1]/o)*o))}});mT.create=function(){return new mT};var vT="__ec_stack_",yT="undefined"!=typeof Float32Array?Float32Array:Array,xT={seriesType:"bar",plan:QM(),reset:function(t){if(dl(t)&&fl(t)){var e=t.getData(),i=t.coordinateSystem,n=i.getBaseAxis(),o=i.getOtherAxis(n),a=e.mapDimension(o.dim),r=e.mapDimension(n.dim),s=o.isHorizontal(),l=s?0:1,u=hl(ll([t]),n,t).width;return u>.5||(u=.5),{progress:function(t,e){for(var h,c=new yT(2*t.count),d=[],f=[],p=0;null!=(h=t.next());)f[l]=e.get(a,h),f[1-l]=e.get(r,h),d=i.dataToPoint(f,null,d),c[p++]=d[0],c[p++]=d[1];e.setLayout({largePoints:c,barWidth:u,valueAxisStart:pl(n,o,!1),valueAxisHorizontal:s})}}}}},_T=mT.prototype,wT=Math.ceil,bT=Math.floor,ST=function(t,e,i,n){for(;i>>1;t[o][1]i&&(a=i);var r=IT.length,s=ST(IT,a,0,r),l=IT[Math.min(s,r-1)],u=l[1];"year"===l[0]&&(u*=Vo(o/u/t,!0));var h=this.getSetting("useUTC")?0:60*new Date(+n[0]||+n[1]).getTimezoneOffset()*1e3,c=[Math.round(wT((n[0]-h)/u)*u+h),Math.round(bT((n[1]-h)/u)*u+h)];il(c,n),this._stepLvl=l,this._interval=u,this._niceExtent=c},parse:function(t){return+Ro(t)}});d(["contain","normalize"],function(t){MT.prototype[t]=function(e){return _T[t].call(this,this.parse(e))}});var IT=[["hh:mm:ss",1e3],["hh:mm:ss",5e3],["hh:mm:ss",1e4],["hh:mm:ss",15e3],["hh:mm:ss",3e4],["hh:mm\nMM-dd",6e4],["hh:mm\nMM-dd",3e5],["hh:mm\nMM-dd",6e5],["hh:mm\nMM-dd",9e5],["hh:mm\nMM-dd",18e5],["hh:mm\nMM-dd",36e5],["hh:mm\nMM-dd",72e5],["hh:mm\nMM-dd",216e5],["hh:mm\nMM-dd",432e5],["MM-dd\nyyyy",864e5],["MM-dd\nyyyy",1728e5],["MM-dd\nyyyy",2592e5],["MM-dd\nyyyy",3456e5],["MM-dd\nyyyy",432e6],["MM-dd\nyyyy",5184e5],["week",6048e5],["MM-dd\nyyyy",864e6],["week",12096e5],["week",18144e5],["month",26784e5],["week",36288e5],["month",53568e5],["week",36288e5],["quarter",8208e6],["month",107136e5],["month",13392e6],["half-year",16416e6],["month",214272e5],["month",26784e6],["year",32832e6]];MT.create=function(t){return new MT({useUTC:t.ecModel.get("useUTC")})};var TT=qs.prototype,DT=mT.prototype,AT=ko,CT=Ao,LT=Math.floor,kT=Math.ceil,PT=Math.pow,NT=Math.log,OT=qs.extend({type:"log",base:10,$constructor:function(){qs.apply(this,arguments),this._originalScale=new mT},getTicks:function(){var t=this._originalScale,e=this._extent,i=t.getExtent();return f(DT.getTicks.call(this),function(n){var o=Ao(PT(this.base,n));return o=n===e[0]&&t.__fixMin?gl(o,i[0]):o,o=n===e[1]&&t.__fixMax?gl(o,i[1]):o},this)},getLabel:DT.getLabel,scale:function(t){return t=TT.scale.call(this,t),PT(this.base,t)},setExtent:function(t,e){var i=this.base;t=NT(t)/NT(i),e=NT(e)/NT(i),DT.setExtent.call(this,t,e)},getExtent:function(){var t=this.base,e=TT.getExtent.call(this);e[0]=PT(t,e[0]),e[1]=PT(t,e[1]);var i=this._originalScale,n=i.getExtent();return i.__fixMin&&(e[0]=gl(e[0],n[0])),i.__fixMax&&(e[1]=gl(e[1],n[1])),e},unionExtent:function(t){this._originalScale.unionExtent(t);var e=this.base;t[0]=NT(t[0])/NT(e),t[1]=NT(t[1])/NT(e),TT.unionExtent.call(this,t)},unionExtentFromData:function(t,e){this.unionExtent(t.getApproximateExtent(e))},niceTicks:function(t){t=t||10;var e=this._extent,i=e[1]-e[0];if(!(i===1/0||i<=0)){var n=zo(i);for(t/i*n<=.5&&(n*=10);!isNaN(n)&&Math.abs(n)<1&&Math.abs(n)>0;)n*=10;var o=[Ao(kT(e[0]/n)*n),Ao(LT(e[1]/n)*n)];this._interval=n,this._niceExtent=o}},niceExtent:function(t){DT.niceExtent.call(this,t);var e=this._originalScale;e.__fixMin=t.fixMin,e.__fixMax=t.fixMax}});d(["contain","normalize"],function(t){OT.prototype[t]=function(e){return e=NT(e)/NT(this.base),TT[t].call(this,e)}}),OT.create=function(){return new OT};var ET={getMin:function(t){var e=this.option,i=t||null==e.rangeStart?e.min:e.rangeStart;return this.axis&&null!=i&&"dataMin"!==i&&"function"!=typeof i&&!I(i)&&(i=this.axis.scale.parse(i)),i},getMax:function(t){var e=this.option,i=t||null==e.rangeEnd?e.max:e.rangeEnd;return this.axis&&null!=i&&"dataMax"!==i&&"function"!=typeof i&&!I(i)&&(i=this.axis.scale.parse(i)),i},getNeedCrossZero:function(){var t=this.option;return null==t.rangeStart&&null==t.rangeEnd&&!t.scale},getCoordSysModel:B,setRange:function(t,e){this.option.rangeStart=t,this.option.rangeEnd=e},resetRange:function(){this.option.rangeStart=this.option.rangeEnd=null}},RT=En({type:"triangle",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var i=e.cx,n=e.cy,o=e.width/2,a=e.height/2;t.moveTo(i,n-a),t.lineTo(i+o,n+a),t.lineTo(i-o,n+a),t.closePath()}}),zT=En({type:"diamond",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var i=e.cx,n=e.cy,o=e.width/2,a=e.height/2;t.moveTo(i,n-a),t.lineTo(i+o,n),t.lineTo(i,n+a),t.lineTo(i-o,n),t.closePath()}}),BT=En({type:"pin",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var i=e.x,n=e.y,o=e.width/5*3,a=Math.max(o,e.height),r=o/2,s=r*r/(a-r),l=n-a+r+s,u=Math.asin(s/r),h=Math.cos(u)*r,c=Math.sin(u),d=Math.cos(u),f=.6*r,p=.7*r;t.moveTo(i-h,l+s),t.arc(i,l,r,Math.PI-u,2*Math.PI+u),t.bezierCurveTo(i+h-c*f,l+s+d*f,i,n-p,i,n),t.bezierCurveTo(i,n-p,i-h+c*f,l+s+d*f,i-h,l+s),t.closePath()}}),VT=En({type:"arrow",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var i=e.height,n=e.width,o=e.x,a=e.y,r=n/3*2;t.moveTo(o,a),t.lineTo(o+r,a+i),t.lineTo(o,a+i/4*3),t.lineTo(o-r,a+i),t.lineTo(o,a),t.closePath()}}),GT={line:function(t,e,i,n,o){o.x1=t,o.y1=e+n/2,o.x2=t+i,o.y2=e+n/2},rect:function(t,e,i,n,o){o.x=t,o.y=e,o.width=i,o.height=n},roundRect:function(t,e,i,n,o){o.x=t,o.y=e,o.width=i,o.height=n,o.r=Math.min(i,n)/4},square:function(t,e,i,n,o){var a=Math.min(i,n);o.x=t,o.y=e,o.width=a,o.height=a},circle:function(t,e,i,n,o){o.cx=t+i/2,o.cy=e+n/2,o.r=Math.min(i,n)/2},diamond:function(t,e,i,n,o){o.cx=t+i/2,o.cy=e+n/2,o.width=i,o.height=n},pin:function(t,e,i,n,o){o.x=t+i/2,o.y=e+n/2,o.width=i,o.height=n},arrow:function(t,e,i,n,o){o.x=t+i/2,o.y=e+n/2,o.width=i,o.height=n},triangle:function(t,e,i,n,o){o.cx=t+i/2,o.cy=e+n/2,o.width=i,o.height=n}},WT={};d({line:MS,rect:SS,roundRect:SS,square:SS,circle:pS,diamond:zT,pin:BT,arrow:VT,triangle:RT},function(t,e){WT[e]=new t});var FT=En({type:"symbol",shape:{symbolType:"",x:0,y:0,width:0,height:0},beforeBrush:function(){var t=this.style;"pin"===this.shape.symbolType&&"inside"===t.textPosition&&(t.textPosition=["50%","40%"],t.textAlign="center",t.textVerticalAlign="middle")},buildPath:function(t,e,i){var n=e.symbolType,o=WT[n];"none"!==e.symbolType&&(o||(o=WT[n="rect"]),GT[n](e.x,e.y,e.width,e.height,o.shape),o.buildPath(t,o.shape,i))}}),HT={isDimensionStacked:Zs,enableDataStack:Hs,getStackedDimension:Us},ZT=(Object.freeze||Object)({createList:function(t){return Xs(t.getSource(),t)},getLayoutRect:Qo,dataStack:HT,createScale:function(t,e){var i=e;wo.isInstance(e)||h(i=new wo(e),ET);var n=xl(i);return n.setExtent(t[0],t[1]),yl(n,i),n},mixinAxisModelCommonMethods:function(t){h(t,ET)},completeDimensions:Gs,createDimensions:hT,createSymbol:Tl}),UT=1e-8;Cl.prototype={constructor:Cl,properties:null,getBoundingRect:function(){var t=this._rect;if(t)return t;for(var e=Number.MAX_VALUE,i=[e,e],n=[-e,-e],o=[],a=[],r=this.geometries,s=0;s0}),function(t){var e=t.properties,i=t.geometry,n=i.coordinates,o=[];"Polygon"===i.type&&o.push({type:"polygon",exterior:n[0],interiors:n.slice(1)}),"MultiPolygon"===i.type&&d(n,function(t){t[0]&&o.push({type:"polygon",exterior:t[0],interiors:t.slice(1)})});var a=new Cl(e.name,o,e.cp);return a.properties=e,a})},jT=Ni(),YT=[0,1],qT=function(t,e,i){this.dim=t,this.scale=e,this._extent=i||[0,0],this.inverse=!1,this.onBand=!1};qT.prototype={constructor:qT,contain:function(t){var e=this._extent,i=Math.min(e[0],e[1]),n=Math.max(e[0],e[1]);return t>=i&&t<=n},containData:function(t){return this.contain(this.dataToCoord(t))},getExtent:function(){return this._extent.slice()},getPixelPrecision:function(t){return Po(t||this.scale.getExtent(),this._extent)},setExtent:function(t,e){var i=this._extent;i[0]=t,i[1]=e},dataToCoord:function(t,e){var i=this._extent,n=this.scale;return t=n.normalize(t),this.onBand&&"ordinal"===n.type&&jl(i=i.slice(),n.count()),To(t,YT,i,e)},coordToData:function(t,e){var i=this._extent,n=this.scale;this.onBand&&"ordinal"===n.type&&jl(i=i.slice(),n.count());var o=To(t,i,YT,e);return this.scale.scale(o)},pointToData:function(t,e){},getTicksCoords:function(t){var e=(t=t||{}).tickModel||this.getTickModel(),i=Nl(this,e),n=f(i.ticks,function(t){return{coord:this.dataToCoord(t),tickValue:t}},this),o=e.get("alignWithLabel");return Yl(this,n,i.tickCategoryInterval,o,t.clamp),n},getViewLabels:function(){return Pl(this).labels},getLabelModel:function(){return this.model.getModel("axisLabel")},getTickModel:function(){return this.model.getModel("axisTick")},getBandWidth:function(){var t=this._extent,e=this.scale.getExtent(),i=e[1]-e[0]+(this.onBand?1:0);0===i&&(i=1);var n=Math.abs(t[1]-t[0]);return Math.abs(n)/i},isHorizontal:null,getRotate:null,calculateCategoryInterval:function(){return Fl(this)}};var KT=XT,$T={};d(["map","each","filter","indexOf","inherits","reduce","filter","bind","curry","isArray","isString","isObject","isFunction","extend","defaults","clone","merge"],function(t){$T[t]=x_[t]}),KM.extend({type:"series.line",dependencies:["grid","polar"],getInitialData:function(t,e){return Xs(this.getSource(),this)},defaultOption:{zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,hoverAnimation:!0,clipOverflow:!0,label:{position:"top"},lineStyle:{width:2,type:"solid"},step:!1,smooth:!1,smoothMonotone:null,symbol:"emptyCircle",symbolSize:4,symbolRotate:null,showSymbol:!0,showAllSymbol:"auto",connectNulls:!1,sampling:"none",animationEasing:"linear",progressive:0,hoverLayerThreshold:1/0}});var JT=Kl.prototype,QT=Kl.getSymbolSize=function(t,e){var i=t.getItemVisual(e,"symbolSize");return i instanceof Array?i.slice():[+i,+i]};JT._createSymbol=function(t,e,i,n,o){this.removeAll();var a=Tl(t,-1,-1,2,2,e.getItemVisual(i,"color"),o);a.attr({z2:100,culling:!0,scale:$l(n)}),a.drift=Jl,this._symbolType=t,this.add(a)},JT.stopSymbolAnimation=function(t){this.childAt(0).stopAnimation(t)},JT.getSymbolPath=function(){return this.childAt(0)},JT.getScale=function(){return this.childAt(0).scale},JT.highlight=function(){this.childAt(0).trigger("emphasis")},JT.downplay=function(){this.childAt(0).trigger("normal")},JT.setZ=function(t,e){var i=this.childAt(0);i.zlevel=t,i.z=e},JT.setDraggable=function(t){var e=this.childAt(0);e.draggable=t,e.cursor=t?"move":"pointer"},JT.updateData=function(t,e,i){this.silent=!1;var n=t.getItemVisual(e,"symbol")||"circle",o=t.hostModel,a=QT(t,e),r=n!==this._symbolType;if(r){var s=t.getItemVisual(e,"symbolKeepAspect");this._createSymbol(n,t,e,a,s)}else(l=this.childAt(0)).silent=!1,fo(l,{scale:$l(a)},o,e);if(this._updateCommon(t,e,a,i),r){var l=this.childAt(0),u=i&&i.fadeIn,h={scale:l.scale.slice()};u&&(h.style={opacity:l.style.opacity}),l.scale=[0,0],u&&(l.style.opacity=0),po(l,h,o,e)}this._seriesModel=o};var tD=["itemStyle"],eD=["emphasis","itemStyle"],iD=["label"],nD=["emphasis","label"];JT._updateCommon=function(t,e,i,n){var o=this.childAt(0),r=t.hostModel,s=t.getItemVisual(e,"color");"image"!==o.type&&o.useStyle({strokeNoScale:!0});var l=n&&n.itemStyle,u=n&&n.hoverItemStyle,h=n&&n.symbolRotate,c=n&&n.symbolOffset,d=n&&n.labelModel,f=n&&n.hoverLabelModel,p=n&&n.hoverAnimation,g=n&&n.cursorStyle;if(!n||t.hasItemOption){var m=n&&n.itemModel?n.itemModel:t.getItemModel(e);l=m.getModel(tD).getItemStyle(["color"]),u=m.getModel(eD).getItemStyle(),h=m.getShallow("symbolRotate"),c=m.getShallow("symbolOffset"),d=m.getModel(iD),f=m.getModel(nD),p=m.getShallow("hoverAnimation"),g=m.getShallow("cursor")}else u=a({},u);var v=o.style;o.attr("rotation",(h||0)*Math.PI/180||0),c&&o.attr("position",[Do(c[0],i[0]),Do(c[1],i[1])]),g&&o.attr("cursor",g),o.setColor(s,n&&n.symbolInnerColor),o.setStyle(l);var y=t.getItemVisual(e,"opacity");null!=y&&(v.opacity=y);var x=t.getItemVisual(e,"liftZ"),_=o.__z2Origin;null!=x?null==_&&(o.__z2Origin=o.z2,o.z2+=x):null!=_&&(o.z2=_,o.__z2Origin=null);var w=n&&n.useNameLabel;io(v,u,d,f,{labelFetcher:r,labelDataIndex:e,defaultText:function(e,i){return w?t.getName(e):ql(t,e)},isRectText:!0,autoColor:s}),o.off("mouseover").off("mouseout").off("emphasis").off("normal"),o.hoverStyle=u,eo(o);var b=$l(i);if(p&&r.isAnimationEnabled()){var S=function(){if(!this.incremental){var t=b[1]/b[0];this.animateTo({scale:[Math.max(1.1*b[0],b[0]+3),Math.max(1.1*b[1],b[1]+3*t)]},400,"elasticOut")}},M=function(){this.incremental||this.animateTo({scale:b},400,"elasticOut")};o.on("mouseover",S).on("mouseout",M).on("emphasis",S).on("normal",M)}},JT.fadeOut=function(t,e){var i=this.childAt(0);this.silent=i.silent=!0,!(e&&e.keepLabel)&&(i.style.text=null),fo(i,{style:{opacity:0},scale:[0,0]},this._seriesModel,this.dataIndex,t)},u(Kl,sw);var oD=Ql.prototype;oD.updateData=function(t,e){e=eu(e);var i=this.group,n=t.hostModel,o=this._data,a=this._symbolCtor,r=iu(t);o||i.removeAll(),t.diff(o).add(function(n){var o=t.getItemLayout(n);if(tu(t,o,n,e)){var s=new a(t,n,r);s.attr("position",o),t.setItemGraphicEl(n,s),i.add(s)}}).update(function(s,l){var u=o.getItemGraphicEl(l),h=t.getItemLayout(s);tu(t,h,s,e)?(u?(u.updateData(t,s,r),fo(u,{position:h},n)):(u=new a(t,s)).attr("position",h),i.add(u),t.setItemGraphicEl(s,u)):i.remove(u)}).remove(function(t){var e=o.getItemGraphicEl(t);e&&e.fadeOut(function(){i.remove(e)})}).execute(),this._data=t},oD.isPersistent=function(){return!0},oD.updateLayout=function(){var t=this._data;t&&t.eachItemGraphicEl(function(e,i){var n=t.getItemLayout(i);e.attr("position",n)})},oD.incrementalPrepareUpdate=function(t){this._seriesScope=iu(t),this._data=null,this.group.removeAll()},oD.incrementalUpdate=function(t,e,i){i=eu(i);for(var n=t.start;n0&&su(i[o-1]);o--);for(;n0&&su(i[a-1]);a--);for(;o=0){var r=o.getItemGraphicEl(a);if(!r){var s=o.getItemLayout(a);if(!s)return;(r=new Kl(o,a)).position=s,r.setZ(t.get("zlevel"),t.get("z")),r.ignore=isNaN(s[0])||isNaN(s[1]),r.__temp=!0,o.setItemGraphicEl(a,r),r.stopSymbolAnimation(!0),this.group.add(r)}r.highlight()}else gr.prototype.highlight.call(this,t,e,i,n)},downplay:function(t,e,i,n){var o=t.getData(),a=Pi(o,n);if(null!=a&&a>=0){var r=o.getItemGraphicEl(a);r&&(r.__temp?(o.setItemGraphicEl(a,null),this.group.remove(r)):r.downplay())}else gr.prototype.downplay.call(this,t,e,i,n)},_newPolyline:function(t){var e=this._polyline;return e&&this._lineGroup.remove(e),e=new fD({shape:{points:t},silent:!0,z2:10}),this._lineGroup.add(e),this._polyline=e,e},_newPolygon:function(t,e){var i=this._polygon;return i&&this._lineGroup.remove(i),i=new pD({shape:{points:t,stackedOnPoints:e},silent:!0}),this._lineGroup.add(i),this._polygon=i,i},_updateAnimation:function(t,e,i,n,o,a){var r=this._polyline,s=this._polygon,l=t.hostModel,u=aD(this._data,t,this._stackedOnPoints,e,this._coordSys,i,this._valueOrigin,a),h=u.current,c=u.stackedOnCurrent,d=u.next,f=u.stackedOnNext;o&&(h=xu(u.current,i,o),c=xu(u.stackedOnCurrent,i,o),d=xu(u.next,i,o),f=xu(u.stackedOnNext,i,o)),r.shape.__points=u.current,r.shape.points=h,fo(r,{shape:{points:d}},l),s&&(s.setShape({points:h,stackedOnPoints:c}),fo(s,{shape:{points:d,stackedOnPoints:f}},l));for(var p=[],g=u.status,m=0;me&&(e=t[i]);return isFinite(e)?e:NaN},min:function(t){for(var e=1/0,i=0;ie[1]&&e.reverse(),e},getOtherAxis:function(){this.grid.getOtherAxis()},pointToData:function(t,e){return this.coordToData(this.toLocalCoord(t["x"===this.dim?0:1]),e)},toLocalCoord:null,toGlobalCoord:null},u(_D,qT);var wD={show:!0,zlevel:0,z:0,inverse:!1,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:!0,onZeroAxisIndex:null,lineStyle:{color:"#333",width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15]},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12},splitLine:{show:!0,lineStyle:{color:["#ccc"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.3)","rgba(200,200,200,0.3)"]}}},bD={};bD.categoryAxis=n({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},wD),bD.valueAxis=n({boundaryGap:[0,0],splitNumber:5},wD),bD.timeAxis=r({scale:!0,min:"dataMin",max:"dataMax"},bD.valueAxis),bD.logAxis=r({scale:!0,logBase:10},bD.valueAxis);var SD=["value","category","time","log"],MD=function(t,e,i,a){d(SD,function(r){e.extend({type:t+"Axis."+r,mergeDefaultAndTheme:function(e,o){var a=this.layoutMode,s=a?na(e):{};n(e,o.getTheme().get(r+"Axis")),n(e,this.getDefaultOption()),e.type=i(t,e),a&&ia(e,s,a)},optionUpdated:function(){"category"===this.option.type&&(this.__ordinalMeta=Ks.createByAxisModel(this))},getCategories:function(t){var e=this.option;if("category"===e.type)return t?e.data:this.__ordinalMeta.categories},getOrdinalMeta:function(){return this.__ordinalMeta},defaultOption:o([{},bD[r+"Axis"],a],!0)})}),hM.registerSubTypeDefaulter(t+"Axis",v(i,t))},ID=hM.extend({type:"cartesian2dAxis",axis:null,init:function(){ID.superApply(this,"init",arguments),this.resetRange()},mergeOption:function(){ID.superApply(this,"mergeOption",arguments),this.resetRange()},restoreData:function(){ID.superApply(this,"restoreData",arguments),this.resetRange()},getCoordSysModel:function(){return this.ecModel.queryComponents({mainType:"grid",index:this.option.gridIndex,id:this.option.gridId})[0]}});n(ID.prototype,ET);var TD={offset:0};MD("x",ID,Iu,TD),MD("y",ID,Iu,TD),hM.extend({type:"grid",dependencies:["xAxis","yAxis"],layoutMode:"box",coordinateSystem:null,defaultOption:{show:!1,zlevel:0,z:0,left:"10%",top:60,right:"10%",bottom:60,containLabel:!1,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"}});var DD=Du.prototype;DD.type="grid",DD.axisPointerEnabled=!0,DD.getRect=function(){return this._rect},DD.update=function(t,e){var i=this._axesMap;this._updateScale(t,this.model),d(i.x,function(t){yl(t.scale,t.model)}),d(i.y,function(t){yl(t.scale,t.model)}),d(i.x,function(t){Au(i,"y",t)}),d(i.y,function(t){Au(i,"x",t)}),this.resize(this.model,e)},DD.resize=function(t,e,i){function n(){d(a,function(t){var e=t.isHorizontal(),i=e?[0,o.width]:[0,o.height],n=t.inverse?1:0;t.setExtent(i[n],i[1-n]),Lu(t,e?o.x:o.y)})}var o=Qo(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()});this._rect=o;var a=this._axesList;n(),!i&&t.get("containLabel")&&(d(a,function(t){if(!t.model.get("axisLabel.inside")){var e=Sl(t);if(e){var i=t.isHorizontal()?"height":"width",n=t.model.get("axisLabel.margin");o[i]-=e[i]+n,"top"===t.position?o.y+=e.height+n:"left"===t.position&&(o.x+=e.width+n)}}}),n())},DD.getAxis=function(t,e){var i=this._axesMap[t];if(null!=i){if(null==e)for(var n in i)if(i.hasOwnProperty(n))return i[n];return i[e]}},DD.getAxes=function(){return this._axesList.slice()},DD.getCartesian=function(t,e){if(null!=t&&null!=e){var i="x"+t+"y"+e;return this._coordsMap[i]}w(t)&&(e=t.yAxisIndex,t=t.xAxisIndex);for(var n=0,o=this._coordsList;nu[1]?-1:1,c=["start"===o?u[0]-h*l:"end"===o?u[1]+h*l:(u[0]+u[1])/2,Vu(o)?t.labelOffset+r*l:0],d=e.get("nameRotate");null!=d&&(d=d*CD/180);var f;Vu(o)?n=PD(t.rotation,null!=d?d:t.rotation,r):(n=Ou(t,o,d||0,u),null!=(f=t.axisNameAvailableWidth)&&(f=Math.abs(f/Math.sin(n.rotation)),!isFinite(f)&&(f=null)));var p=s.getFont(),g=e.get("nameTruncate",!0)||{},m=g.ellipsis,v=T(t.nameTruncateMaxWidth,g.maxWidth,f),y=null!=m&&null!=v?eM(i,v,p,m,{minChar:2,placeholder:g.placeholder}):i,x=e.get("tooltip",!0),_=e.mainType,w={componentType:_,name:i,$vars:["name"]};w[_+"Index"]=e.componentIndex;var b=new fS({anid:"name",__fullText:i,__truncatedText:y,position:c,rotation:n.rotation,silent:Eu(e),z2:1,tooltip:x&&x.show?a({content:i,formatter:function(){return i},formatterParams:w},x):null});no(b.style,s,{text:y,textFont:p,textFill:s.getTextColor()||e.get("axisLine.lineStyle.color"),textAlign:n.textAlign,textVerticalAlign:n.textVerticalAlign}),e.get("triggerEvent")&&(b.eventData=Nu(e),b.eventData.targetType="axisName",b.eventData.name=i),this._dumbGroup.add(b),b.updateTransform(),this.group.add(b),b.decomposeTransform()}}},PD=LD.innerTextLayout=function(t,e,i){var n,o,a=Oo(e-t);return Eo(a)?(o=i>0?"top":"bottom",n="center"):Eo(a-CD)?(o=i>0?"bottom":"top",n="center"):(o="middle",n=a>0&&a0?"right":"left":i>0?"left":"right"),{rotation:a,textAlign:n,textVerticalAlign:o}},ND=d,OD=v,ED=ys({type:"axis",_axisPointer:null,axisPointerClass:null,render:function(t,e,i,n){this.axisPointerClass&&Yu(t),ED.superApply(this,"render",arguments),Qu(this,t,0,i,0,!0)},updateAxisPointer:function(t,e,i,n,o){Qu(this,t,0,i,0,!1)},remove:function(t,e){var i=this._axisPointer;i&&i.remove(e),ED.superApply(this,"remove",arguments)},dispose:function(t,e){th(this,e),ED.superApply(this,"dispose",arguments)}}),RD=[];ED.registerAxisPointerClass=function(t,e){RD[t]=e},ED.getAxisPointerClass=function(t){return t&&RD[t]};var zD=["axisLine","axisTickLabel","axisName"],BD=["splitArea","splitLine"],VD=ED.extend({type:"cartesianAxis",axisPointerClass:"CartesianAxisPointer",render:function(t,e,i,n){this.group.removeAll();var o=this._axisGroup;if(this._axisGroup=new sw,this.group.add(this._axisGroup),t.get("show")){var a=t.getCoordSysModel(),r=eh(a,t),s=new LD(t,r);d(zD,s.add,s),this._axisGroup.add(s.getGroup()),d(BD,function(e){t.get(e+".show")&&this["_"+e](t,a)},this),yo(o,this._axisGroup,t),VD.superCall(this,"render",t,e,i,n)}},remove:function(){this._splitAreaColors=null},_splitLine:function(t,e){var i=t.axis;if(!i.scale.isBlank()){var n=t.getModel("splitLine"),o=n.getModel("lineStyle"),a=o.get("color");a=y(a)?a:[a];for(var s=e.coordinateSystem.getRect(),l=i.isHorizontal(),u=0,h=i.getTicksCoords({tickModel:n}),c=[],d=[],f=o.getLineStyle(),p=0;p1){var c;"string"==typeof o?c=vD[o]:"function"==typeof o&&(c=o),c&&t.setData(n.downSample(n.mapDimension(s.dim),1/h,c,yD))}}}}}("line"));var GD=KM.extend({type:"series.__base_bar__",getInitialData:function(t,e){return Xs(this.getSource(),this)},getMarkerPosition:function(t){var e=this.coordinateSystem;if(e){var i=e.dataToPoint(e.clampData(t)),n=this.getData(),o=n.getLayout("offset"),a=n.getLayout("size");return i[e.getBaseAxis().isHorizontal()?0:1]+=o+a/2,i}return[NaN,NaN]},defaultOption:{zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,barMinHeight:0,barMinAngle:0,large:!1,largeThreshold:400,progressive:3e3,progressiveChunkMode:"mod",itemStyle:{},emphasis:{}}});GD.extend({type:"series.bar",dependencies:["grid","polar"],brushSelector:"rect",getProgressive:function(){return!!this.get("large")&&this.get("progressive")},getProgressiveThreshold:function(){var t=this.get("progressiveThreshold"),e=this.get("largeThreshold");return e>t&&(t=e),t}});var WD=sb([["fill","color"],["stroke","borderColor"],["lineWidth","borderWidth"],["stroke","barBorderColor"],["lineWidth","barBorderWidth"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]),FD={getBarItemStyle:function(t){var e=WD(this,t);if(this.getBorderLineDash){var i=this.getBorderLineDash();i&&(e.lineDash=i)}return e}},HD=["itemStyle","barBorderWidth"];a(wo.prototype,FD),_s({type:"bar",render:function(t,e,i){this._updateDrawMode(t);var n=t.get("coordinateSystem");return"cartesian2d"!==n&&"polar"!==n||(this._isLargeDraw?this._renderLarge(t,e,i):this._renderNormal(t,e,i)),this.group},incrementalPrepareRender:function(t,e,i){this._clear(),this._updateDrawMode(t)},incrementalRender:function(t,e,i,n){this._incrementalRenderLarge(t,e)},_updateDrawMode:function(t){var e=t.pipelineContext.large;(null==this._isLargeDraw||e^this._isLargeDraw)&&(this._isLargeDraw=e,this._clear())},_renderNormal:function(t,e,i){var n,o=this.group,a=t.getData(),r=this._data,s=t.coordinateSystem,l=s.getBaseAxis();"cartesian2d"===s.type?n=l.isHorizontal():"polar"===s.type&&(n="angle"===l.dim);var u=t.isAnimationEnabled()?t:null;a.diff(r).add(function(e){if(a.hasValue(e)){var i=a.getItemModel(e),r=UD[s.type](a,e,i),l=ZD[s.type](a,e,i,r,n,u);a.setItemGraphicEl(e,l),o.add(l),rh(l,a,e,i,r,t,n,"polar"===s.type)}}).update(function(e,i){var l=r.getItemGraphicEl(i);if(a.hasValue(e)){var h=a.getItemModel(e),c=UD[s.type](a,e,h);l?fo(l,{shape:c},u,e):l=ZD[s.type](a,e,h,c,n,u,!0),a.setItemGraphicEl(e,l),o.add(l),rh(l,a,e,h,c,t,n,"polar"===s.type)}else o.remove(l)}).remove(function(t){var e=r.getItemGraphicEl(t);"cartesian2d"===s.type?e&&oh(t,u,e):e&&ah(t,u,e)}).execute(),this._data=a},_renderLarge:function(t,e,i){this._clear(),lh(t,this.group)},_incrementalRenderLarge:function(t,e){lh(e,this.group,!0)},dispose:B,remove:function(t){this._clear(t)},_clear:function(t){var e=this.group,i=this._data;t&&t.get("animation")&&i&&!this._isLargeDraw?i.eachItemGraphicEl(function(e){"sector"===e.type?ah(e.dataIndex,t,e):oh(e.dataIndex,t,e)}):e.removeAll(),this._data=null}});var ZD={cartesian2d:function(t,e,i,n,o,r,s){var l=new SS({shape:a({},n)});if(r){var u=l.shape,h=o?"height":"width",c={};u[h]=0,c[h]=n[h],BS[s?"updateProps":"initProps"](l,{shape:c},r,e)}return l},polar:function(t,e,i,n,o,a,s){var l=n.startAngle0?1:-1,r=n.height>0?1:-1;return{x:n.x+a*o/2,y:n.y+r*o/2,width:n.width-a*o,height:n.height-r*o}},polar:function(t,e,i){var n=t.getItemLayout(e);return{cx:n.cx,cy:n.cy,r0:n.r0,r:n.r,startAngle:n.startAngle,endAngle:n.endAngle}}},XD=In.extend({type:"largeBar",shape:{points:[]},buildPath:function(t,e){for(var i=e.points,n=this.__startPoint,o=this.__valueIdx,a=0;a0&&"scale"!==u){var d=o.getItemLayout(0),f=Math.max(i.getWidth(),i.getHeight())/2,p=m(r.removeClipPath,r);r.setClipPath(this._createClipPath(d.cx,d.cy,f,d.startAngle,d.clockwise,p,t))}this._data=o}},dispose:function(){},_createClipPath:function(t,e,i,n,o,a,r){var s=new vS({shape:{cx:t,cy:e,r0:0,r:i,startAngle:n,endAngle:n,clockwise:o}});return po(s,{shape:{endAngle:n+(o?1:-1)*Math.PI*2}},r,a),s},containPoint:function(t,e){var i=e.getData().getItemLayout(0);if(i){var n=t[0]-i.cx,o=t[1]-i.cy,a=Math.sqrt(n*n+o*o);return a<=i.r&&a>=i.r0}}});var $D=function(t,e){d(e,function(e){e.update="updateView",cs(e,function(i,n){var o={};return n.eachComponent({mainType:"series",subType:t,query:i},function(t){t[e.method]&&t[e.method](i.name,i.dataIndex);var n=t.getData();n.each(function(e){var i=n.getName(e);o[i]=t.isSelected(i)||!1})}),{name:i.name,selected:o}})})},JD=function(t){return{getTargetSeries:function(e){var i={},n=R();return e.eachSeriesByType(t,function(t){t.__paletteScope=i,n.set(t.uid,t)}),n},reset:function(t,e){var i=t.getRawData(),n={},o=t.getData();o.each(function(t){var e=o.getRawIndex(t);n[e]=t}),i.each(function(e){var a=n[e],r=null!=a&&o.getItemVisual(a,"color",!0);if(r)i.setItemVisual(e,"color",r);else{var s=i.getItemModel(e).get("itemStyle.color")||t.getColorFromPalette(i.getName(e)||e+"",t.__paletteScope,i.count());i.setItemVisual(e,"color",s),null!=a&&o.setItemVisual(a,"color",s)}})}}},QD=function(t,e,i,n){var o,a,r=t.getData(),s=[],l=!1;r.each(function(i){var n,u,h,c,d=r.getItemLayout(i),f=r.getItemModel(i),p=f.getModel("label"),g=p.get("position")||f.get("emphasis.label.position"),m=f.getModel("labelLine"),v=m.get("length"),y=m.get("length2"),x=(d.startAngle+d.endAngle)/2,_=Math.cos(x),w=Math.sin(x);o=d.cx,a=d.cy;var b="inside"===g||"inner"===g;if("center"===g)n=d.cx,u=d.cy,c="center";else{var S=(b?(d.r+d.r0)/2*_:d.r*_)+o,M=(b?(d.r+d.r0)/2*w:d.r*w)+a;if(n=S+3*_,u=M+3*w,!b){var I=S+_*(v+e-d.r),T=M+w*(v+e-d.r),D=I+(_<0?-1:1)*y,A=T;n=D+(_<0?-5:5),u=A,h=[[S,M],[I,T],[D,A]]}c=b?"center":_>0?"left":"right"}var C=p.getFont(),L=p.get("rotate")?_<0?-x+Math.PI:-x:0,k=me(t.getFormattedLabel(i,"normal")||r.getName(i),C,c,"top");l=!!L,d.label={x:n,y:u,position:g,height:k.height,len:v,len2:y,linePoints:h,textAlign:c,verticalAlign:"middle",rotation:L,inside:b},b||s.push(d.label)}),!l&&t.get("avoidLabelOverlap")&&ph(s,o,a,e,i,n)},tA=2*Math.PI,eA=Math.PI/180,iA=function(t){return{seriesType:t,reset:function(t,e){var i=e.findComponents({mainType:"legend"});if(i&&i.length){var n=t.getData();n.filterSelf(function(t){for(var e=n.getName(t),o=0;o=0;s--){var l=2*s,u=n[l]-a/2,h=n[l+1]-r/2;if(t>=u&&e>=h&&t<=u+a&&e<=h+r)return s}return-1}}),oA=gh.prototype;oA.isPersistent=function(){return!this._incremental},oA.updateData=function(t){this.group.removeAll();var e=new nA({rectHover:!0,cursor:"default"});e.setShape({points:t.getLayout("symbolPoints")}),this._setCommon(e,t),this.group.add(e),this._incremental=null},oA.updateLayout=function(t){if(!this._incremental){var e=t.getLayout("symbolPoints");this.group.eachChild(function(t){if(null!=t.startIndex){var i=2*(t.endIndex-t.startIndex),n=4*t.startIndex*2;e=new Float32Array(e.buffer,n,i)}t.setShape("points",e)})}},oA.incrementalPrepareUpdate=function(t){this.group.removeAll(),this._clearIncremental(),t.count()>2e6?(this._incremental||(this._incremental=new On({silent:!0})),this.group.add(this._incremental)):this._incremental=null},oA.incrementalUpdate=function(t,e){var i;this._incremental?(i=new nA,this._incremental.addDisplayable(i,!0)):((i=new nA({rectHover:!0,cursor:"default",startIndex:t.start,endIndex:t.end})).incremental=!0,this.group.add(i)),i.setShape({points:e.getLayout("symbolPoints")}),this._setCommon(i,e,!!this._incremental)},oA._setCommon=function(t,e,i){var n=e.hostModel,o=e.getVisual("symbolSize");t.setShape("size",o instanceof Array?o:[o,o]),t.symbolProxy=Tl(e.getVisual("symbol"),0,0,0,0),t.setColor=t.symbolProxy.setColor;var a=t.shape.size[0]<4;t.useStyle(n.getModel("itemStyle").getItemStyle(a?["color","shadowBlur","shadowColor"]:["color"]));var r=e.getVisual("color");r&&t.setColor(r),i||(t.seriesIndex=n.seriesIndex,t.on("mousemove",function(e){t.dataIndex=null;var i=t.findDataIndex(e.offsetX,e.offsetY);i>=0&&(t.dataIndex=i+(t.startIndex||0))}))},oA.remove=function(){this._clearIncremental(),this._incremental=null,this.group.removeAll()},oA._clearIncremental=function(){var t=this._incremental;t&&t.clearDisplaybles()},_s({type:"scatter",render:function(t,e,i){var n=t.getData();this._updateSymbolDraw(n,t).updateData(n),this._finished=!0},incrementalPrepareRender:function(t,e,i){var n=t.getData();this._updateSymbolDraw(n,t).incrementalPrepareUpdate(n),this._finished=!1},incrementalRender:function(t,e,i){this._symbolDraw.incrementalUpdate(t,e.getData()),this._finished=t.end===e.getData().count()},updateTransform:function(t,e,i){var n=t.getData();if(this.group.dirty(),!this._finished||n.count()>1e4||!this._symbolDraw.isPersistent())return{update:!0};var o=mD().reset(t);o.progress&&o.progress({start:0,end:n.count()},n),this._symbolDraw.updateLayout(n)},_updateSymbolDraw:function(t,e){var i=this._symbolDraw,n=e.pipelineContext.large;return i&&n===this._isLargeDraw||(i&&i.remove(),i=this._symbolDraw=n?new gh:new Ql,this._isLargeDraw=n,this.group.removeAll()),this.group.add(i.group),i},remove:function(t,e){this._symbolDraw&&this._symbolDraw.remove(!0),this._symbolDraw=null},dispose:function(){}}),ps(gD("scatter","circle")),fs(mD("scatter")),u(mh,qT),vh.prototype.getIndicatorAxes=function(){return this._indicatorAxes},vh.prototype.dataToPoint=function(t,e){var i=this._indicatorAxes[e];return this.coordToPoint(i.dataToCoord(t),e)},vh.prototype.coordToPoint=function(t,e){var i=this._indicatorAxes[e].angle;return[this.cx+t*Math.cos(i),this.cy-t*Math.sin(i)]},vh.prototype.pointToData=function(t){var e=t[0]-this.cx,i=t[1]-this.cy,n=Math.sqrt(e*e+i*i);e/=n,i/=n;for(var o,a=Math.atan2(-i,e),r=1/0,s=-1,l=0;ln[0]&&isFinite(c)&&isFinite(n[0]))}else{r.getTicks().length-1>a&&(u=i(u));var d=Math.round((n[0]+n[1])/2/u)*u,f=Math.round(a/2);r.setExtent(Ao(d-f*u),Ao(d+(a-f)*u)),r.setInterval(u)}})},vh.dimensions=[],vh.create=function(t,e){var i=[];return t.eachComponent("radar",function(n){var o=new vh(n,t,e);i.push(o),n.coordinateSystem=o}),t.eachSeriesByType("radar",function(t){"radar"===t.get("coordinateSystem")&&(t.coordinateSystem=i[t.get("radarIndex")||0])}),i},Ca.register("radar",vh);var aA=bD.valueAxis,rA=(vs({type:"radar",optionUpdated:function(){var t=this.get("boundaryGap"),e=this.get("splitNumber"),o=this.get("scale"),s=this.get("axisLine"),l=this.get("axisTick"),u=this.get("axisLabel"),h=this.get("name"),c=this.get("name.show"),d=this.get("name.formatter"),p=this.get("nameGap"),g=this.get("triggerEvent"),m=f(this.get("indicator")||[],function(f){null!=f.max&&f.max>0&&!f.min?f.min=0:null!=f.min&&f.min<0&&!f.max&&(f.max=0);var m=h;if(null!=f.color&&(m=r({color:f.color},h)),f=n(i(f),{boundaryGap:t,splitNumber:e,scale:o,axisLine:s,axisTick:l,axisLabel:u,name:f.text,nameLocation:"end",nameGap:p,nameTextStyle:m,triggerEvent:g},!1),c||(f.name=""),"string"==typeof d){var v=f.name;f.name=d.replace("{value}",null!=v?v:"")}else"function"==typeof d&&(f.name=d(f.name,f));var y=a(new wo(f,null,this.ecModel),ET);return y.mainType="radar",y.componentIndex=this.componentIndex,y},this);this.getIndicatorModels=function(){return m}},defaultOption:{zlevel:0,z:0,center:["50%","50%"],radius:"75%",startAngle:90,name:{show:!0},boundaryGap:[0,0],splitNumber:5,nameGap:15,scale:!1,shape:"polygon",axisLine:n({lineStyle:{color:"#bbb"}},aA.axisLine),axisLabel:yh(aA.axisLabel,!1),axisTick:yh(aA.axisTick,!1),splitLine:yh(aA.splitLine,!0),splitArea:yh(aA.splitArea,!0),indicator:[]}}),["axisLine","axisTickLabel","axisName"]);ys({type:"radar",render:function(t,e,i){this.group.removeAll(),this._buildAxes(t),this._buildSplitLineAndArea(t)},_buildAxes:function(t){var e=t.coordinateSystem;d(f(e.getIndicatorAxes(),function(t){return new LD(t.model,{position:[e.cx,e.cy],rotation:t.angle,labelDirection:-1,tickDirection:-1,nameDirection:1})}),function(t){d(rA,t.add,t),this.group.add(t.getGroup())},this)},_buildSplitLineAndArea:function(t){function e(t,e,i){var n=i%e.length;return t[n]=t[n]||[],n}var i=t.coordinateSystem,n=i.getIndicatorAxes();if(n.length){var o=t.get("shape"),a=t.getModel("splitLine"),s=t.getModel("splitArea"),l=a.getModel("lineStyle"),u=s.getModel("areaStyle"),h=a.get("show"),c=s.get("show"),p=l.get("color"),g=u.get("color");p=y(p)?p:[p],g=y(g)?g:[g];var m=[],v=[];if("circle"===o)for(var x=n[0].getTicksCoords(),_=i.cx,w=i.cy,b=0;b"+f(i,function(i,n){var o=e.get(e.mapDimension(i.dim),t);return Zo(i.name+" : "+o)}).join("
")},defaultOption:{zlevel:0,z:2,coordinateSystem:"radar",legendHoverLink:!0,radarIndex:0,lineStyle:{width:2,type:"solid"},label:{position:"top"},symbol:"emptyCircle",symbolSize:4}});_s({type:"radar",render:function(t,e,n){function o(t,e){var i=t.getItemVisual(e,"symbol")||"circle",n=t.getItemVisual(e,"color");if("none"!==i){var o=xh(t.getItemVisual(e,"symbolSize")),a=Tl(i,-1,-1,2,2,n);return a.attr({style:{strokeNoScale:!0},z2:100,scale:[o[0]/2,o[1]/2]}),a}}function a(e,i,n,a,r,s){n.removeAll();for(var l=0;l"+Zo(n+" : "+i)},getTooltipPosition:function(t){if(null!=t){var e=this.getData().getName(t),i=this.coordinateSystem,n=i.getRegion(e);return n&&i.dataToPoint(n.center)}},setZoom:function(t){this.option.zoom=t},setCenter:function(t){this.option.center=t},defaultOption:{zlevel:0,z:2,coordinateSystem:"geo",map:"",left:"center",top:"center",aspectScale:.75,showLegendSymbol:!0,dataRangeHoverLink:!0,boundingCoords:null,center:null,zoom:1,scaleLimit:null,label:{show:!1,color:"#000"},itemStyle:{borderWidth:.5,borderColor:"#444",areaColor:"#eee"},emphasis:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{areaColor:"rgba(255,215,0,0.8)"}}}});h(yA,YD);var xA="\0_ec_interaction_mutex";cs({type:"takeGlobalCursor",event:"globalCursorTaken",update:"update"},function(){}),h(kh,D_);var _A={axisPointer:1,tooltip:1,brush:1};Uh.prototype={constructor:Uh,draw:function(t,e,i,n,o){var a="geo"===t.mainType,r=t.getData&&t.getData();a&&e.eachComponent({mainType:"series",subType:"map"},function(e){r||e.getHostGeoModel()!==t||(r=e.getData())});var s=t.coordinateSystem,l=this.group,u=s.scale,h={position:s.position,scale:u};!l.childAt(0)||o?l.attr(h):fo(l,h,t),l.removeAll();var c=["itemStyle"],f=["emphasis","itemStyle"],p=["label"],g=["emphasis","label"],m=R();d(s.regions,function(e){var i=m.get(e.name)||m.set(e.name,new sw),n=new AS({shape:{paths:[]}});i.add(n);var o,s=(C=t.getRegionModel(e.name)||t).getModel(c),h=C.getModel(f),v=Fh(s),y=Fh(h),x=C.getModel(p),_=C.getModel(g);if(r){o=r.indexOfName(e.name);var w=r.getItemVisual(o,"color",!0);w&&(v.fill=w)}d(e.geometries,function(t){if("polygon"===t.type){n.shape.paths.push(new wS({shape:{points:t.exterior}}));for(var e=0;e<(t.interiors?t.interiors.length:0);e++)n.shape.paths.push(new wS({shape:{points:t.interiors[e]}}))}}),n.setStyle(v),n.style.strokeNoScale=!0,n.culling=!0;var b=x.get("show"),S=_.get("show"),M=r&&isNaN(r.get(r.mapDimension("value"),o)),I=r&&r.getItemLayout(o);if(a||M&&(b||S)||I&&I.showLabel){var T,D=a?e.name:o;(!r||o>=0)&&(T=t);var A=new fS({position:e.center.slice(),scale:[1/u[0],1/u[1]],z2:10,silent:!0});io(A.style,A.hoverStyle={},x,_,{labelFetcher:T,labelDataIndex:D,defaultText:e.name,useInsideStyle:!1},{textAlign:"center",textVerticalAlign:"middle"}),i.add(A)}if(r)r.setItemGraphicEl(o,i);else{var C=t.getRegionModel(e.name);n.eventData={componentType:"geo",geoIndex:t.componentIndex,name:e.name,region:C&&C.option||{}}}(i.__regions||(i.__regions=[])).push(e),eo(i,y,{hoverSilentOnTouch:!!t.get("selectedMode")}),l.add(i)}),this._updateController(t,e,i),Hh(this,t,l,i,n),Zh(t,l)},remove:function(){this.group.removeAll(),this._controller.dispose(),this._controllerHost={}},_updateController:function(t,e,i){function n(){var e={type:"geoRoam",componentType:l};return e[l+"Id"]=t.id,e}var o=t.coordinateSystem,r=this._controller,s=this._controllerHost;s.zoomLimit=t.get("scaleLimit"),s.zoom=o.getZoom(),r.enable(t.get("roam")||!1);var l=t.mainType;r.off("pan").on("pan",function(t,e){this._mouseDownFlag=!1,Vh(s,t,e),i.dispatchAction(a(n(),{dx:t,dy:e}))},this),r.off("zoom").on("zoom",function(t,e,o){if(this._mouseDownFlag=!1,Gh(s,t,e,o),i.dispatchAction(a(n(),{zoom:t,originX:e,originY:o})),this._updateGroup){var r=this.group,l=r.scale;r.traverse(function(t){"text"===t.type&&t.attr("scale",[1/l[0],1/l[1]])})}},this),r.setPointerChecker(function(e,n,a){return o.getViewRectAfterRoam().contain(n,a)&&!Wh(e,i,t)})}},_s({type:"map",render:function(t,e,i,n){if(!n||"mapToggleSelect"!==n.type||n.from!==this.uid){var o=this.group;if(o.removeAll(),!t.getHostGeoModel()){if(n&&"geoRoam"===n.type&&"series"===n.componentType&&n.seriesId===t.id)(a=this._mapDraw)&&o.add(a.group);else if(t.needsDrawMap){var a=this._mapDraw||new Uh(i,!0);o.add(a.group),a.draw(t,e,i,this,n),this._mapDraw=a}else this._mapDraw&&this._mapDraw.remove(),this._mapDraw=null;t.get("showLegendSymbol")&&e.getComponent("legend")&&this._renderSymbols(t,e,i)}}},remove:function(){this._mapDraw&&this._mapDraw.remove(),this._mapDraw=null,this.group.removeAll()},dispose:function(){this._mapDraw&&this._mapDraw.remove(),this._mapDraw=null},_renderSymbols:function(t,e,i){var n=t.originalData,o=this.group;n.each(n.mapDimension("value"),function(e,i){if(!isNaN(e)){var a=n.getItemLayout(i);if(a&&a.point){var r=a.point,s=a.offset,l=new pS({style:{fill:t.getData().getVisual("color")},shape:{cx:r[0]+9*s,cy:r[1],r:3},silent:!0,z2:s?8:10});if(!s){var u=t.mainSeries.getData(),h=n.getName(i),c=u.indexOfName(h),d=n.getItemModel(i),f=d.getModel("label"),p=d.getModel("emphasis.label"),g=u.getItemGraphicEl(c),m=D(t.getFormattedLabel(i,"normal"),h),v=D(t.getFormattedLabel(i,"emphasis"),m),y=function(){var t=no({},p,{text:p.get("show")?v:null},{isRectText:!0,useInsideStyle:!1},!0);l.style.extendFrom(t),l.__mapOriginalZ2=l.z2,l.z2+=1},x=function(){no(l.style,f,{text:f.get("show")?m:null,textPosition:f.getShallow("position")||"bottom"},{isRectText:!0,useInsideStyle:!1}),null!=l.__mapOriginalZ2&&(l.z2=l.__mapOriginalZ2,l.__mapOriginalZ2=null)};g.on("mouseover",y).on("mouseout",x).on("emphasis",y).on("normal",x),x()}o.add(l)}}})}}),cs({type:"geoRoam",event:"geoRoam",update:"updateTransform"},function(t,e){var i=t.componentType||"series";e.eachComponent({mainType:i,query:t},function(e){var n=e.coordinateSystem;if("geo"===n.type){var o=Xh(n,t,e.get("scaleLimit"));e.setCenter&&e.setCenter(o.center),e.setZoom&&e.setZoom(o.zoom),"series"===i&&d(e.seriesGroup,function(t){t.setCenter(o.center),t.setZoom(o.zoom)})}})});fs(function(t){var e={};t.eachSeriesByType("map",function(i){var n=i.getMapType();if(!i.getHostGeoModel()&&!e[n]){var o={};d(i.seriesGroup,function(e){var i=e.coordinateSystem,n=e.originalData;e.get("showLegendSymbol")&&t.getComponent("legend")&&n.each(n.mapDimension("value"),function(t,e){var a=n.getName(e),r=i.getRegion(a);if(r&&!isNaN(t)){var s=o[a]||0,l=i.dataToPoint(r.center);o[a]=s+1,n.setItemLayout(e,{point:l,offset:s})}})});var a=i.getData();a.each(function(t){var e=a.getName(t),i=a.getItemLayout(t)||{};i.showLabel=!o[e],a.setItemLayout(t,i)}),e[n]=!0}})}),ps(function(t){t.eachSeriesByType("map",function(t){var e=t.get("color"),i=t.getModel("itemStyle"),n=i.get("areaColor"),o=i.get("color")||e[t.seriesIndex%e.length];t.getData().setVisual({areaColor:n,color:o})})}),hs(LI.PROCESSOR.STATISTIC,function(t){var e={};t.eachSeriesByType("map",function(t){var i=t.getHostGeoModel(),n=i?"o"+i.id:"i"+t.getMapType();(e[n]=e[n]||[]).push(t)}),d(e,function(t,e){for(var i=jh(f(t,function(t){return t.getData()}),t[0].get("mapValueCalculation")),n=0;ne&&(e=n.height)}this.height=e+1},getNodeById:function(t){if(this.getId()===t)return this;for(var e=0,i=this.children,n=i.length;e=0&&this.hostTree.data.setItemLayout(this.dataIndex,t,e)},getLayout:function(){return this.hostTree.data.getItemLayout(this.dataIndex)},getModel:function(t){if(!(this.dataIndex<0)){var e,i=this.hostTree,n=i.data.getItemModel(this.dataIndex),o=this.getLevelModel();return o||0!==this.children.length&&(0===this.children.length||!1!==this.isExpand)||(e=this.getLeavesModel()),n.getModel(t,(o||e||i.hostModel).getModel(t))}},getLevelModel:function(){return(this.hostTree.levelModels||[])[this.depth]},getLeavesModel:function(){return this.hostTree.leavesModel},setVisual:function(t,e){this.dataIndex>=0&&this.hostTree.data.setItemVisual(this.dataIndex,t,e)},getVisual:function(t,e){return this.hostTree.data.getItemVisual(this.dataIndex,t,e)},getRawIndex:function(){return this.hostTree.data.getRawIndex(this.dataIndex)},getId:function(){return this.hostTree.data.getId(this.dataIndex)},isAncestorOf:function(t){for(var e=t.parentNode;e;){if(e===this)return!0;e=e.parentNode}return!1},isDescendantOf:function(t){return t!==this&&t.isAncestorOf(this)}},ic.prototype={constructor:ic,type:"tree",eachNode:function(t,e,i){this.root.eachNode(t,e,i)},getNodeByDataIndex:function(t){var e=this.data.getRawIndex(t);return this._nodes[e]},getNodeByName:function(t){return this.root.getNodeByName(t)},update:function(){for(var t=this.data,e=this._nodes,i=0,n=e.length;ia&&(a=t.depth)});var r=t.expandAndCollapse&&t.initialTreeDepth>=0?t.initialTreeDepth:a;return o.root.eachNode("preorder",function(t){var e=t.hostTree.data.getRawDataItem(t.dataIndex);t.isExpand=e&&null!=e.collapsed?!e.collapsed:t.depth<=r}),o.data},getOrient:function(){var t=this.get("orient");return"horizontal"===t?t="LR":"vertical"===t&&(t="TB"),t},formatTooltip:function(t){for(var e=this.getData().tree,i=e.root.children[0],n=e.getNodeByDataIndex(t),o=n.getValue(),a=n.name;n&&n!==i;)a=n.parentNode.name+"."+a,n=n.parentNode;return Zo(a+(isNaN(o)||null==o?"":" : "+o))},defaultOption:{zlevel:0,z:2,left:"12%",top:"12%",right:"12%",bottom:"12%",layout:"orthogonal",orient:"LR",symbol:"emptyCircle",symbolSize:7,expandAndCollapse:!0,initialTreeDepth:2,lineStyle:{color:"#ccc",width:1.5,curveness:.5},itemStyle:{color:"lightsteelblue",borderColor:"#c23531",borderWidth:1.5},label:{show:!0,color:"#555"},leaves:{label:{show:!0}},animationEasing:"linear",animationDuration:700,animationDurationUpdate:1e3}}),_s({type:"tree",init:function(t,e){this._oldTree,this._mainGroup=new sw,this.group.add(this._mainGroup)},render:function(t,e,i,n){var o=t.getData(),a=t.layoutInfo,r=this._mainGroup,s=t.get("layout");"radial"===s?r.attr("position",[a.x+a.width/2,a.y+a.height/2]):r.attr("position",[a.x,a.y]);var l=this._data,u={expandAndCollapse:t.get("expandAndCollapse"),layout:s,orient:t.getOrient(),curvature:t.get("lineStyle.curveness"),symbolRotate:t.get("symbolRotate"),symbolOffset:t.get("symbolOffset"),hoverAnimation:t.get("hoverAnimation"),useNameLabel:!0,fadeIn:!0};o.diff(l).add(function(e){vc(o,e)&&xc(o,e,null,r,t,u)}).update(function(e,i){var n=l.getItemGraphicEl(i);vc(o,e)?xc(o,e,n,r,t,u):n&&_c(l,i,n,r,t,u)}).remove(function(e){var i=l.getItemGraphicEl(e);i&&_c(l,e,i,r,t,u)}).execute(),!0===u.expandAndCollapse&&o.eachItemGraphicEl(function(e,n){e.off("click").on("click",function(){i.dispatchAction({type:"treeExpandAndCollapse",seriesId:t.id,dataIndex:n})})}),this._data=o},dispose:function(){},remove:function(){this._mainGroup.removeAll(),this._data=null}}),cs({type:"treeExpandAndCollapse",event:"treeExpandAndCollapse",update:"update"},function(t,e){e.eachComponent({mainType:"series",subType:"tree",query:t},function(e){var i=t.dataIndex,n=e.getData().tree.getNodeByDataIndex(i);n.isExpand=!n.isExpand})});ps(gD("tree","circle")),fs(function(t,e){t.eachSeriesByType("tree",function(t){Mc(t,e)})}),KM.extend({type:"series.treemap",layoutMode:"box",dependencies:["grid","polar"],_viewRoot:null,defaultOption:{progressive:0,hoverLayerThreshold:1/0,left:"center",top:"middle",right:null,bottom:null,width:"80%",height:"80%",sort:!0,clipWindow:"origin",squareRatio:.5*(1+Math.sqrt(5)),leafDepth:null,drillDownIcon:"▶",zoomToNodeRatio:.1024,roam:!0,nodeClick:"zoomToNode",animation:!0,animationDurationUpdate:900,animationEasing:"quinticInOut",breadcrumb:{show:!0,height:22,left:"center",top:"bottom",emptyItemWidth:25,itemStyle:{color:"rgba(0,0,0,0.7)",borderColor:"rgba(255,255,255,0.7)",borderWidth:1,shadowColor:"rgba(150,150,150,1)",shadowBlur:3,shadowOffsetX:0,shadowOffsetY:0,textStyle:{color:"#fff"}},emphasis:{textStyle:{}}},label:{show:!0,distance:0,padding:5,position:"inside",color:"#fff",ellipsis:!0},upperLabel:{show:!1,position:[0,"50%"],height:20,color:"#fff",ellipsis:!0,verticalAlign:"middle"},itemStyle:{color:null,colorAlpha:null,colorSaturation:null,borderWidth:0,gapWidth:0,borderColor:"#fff",borderColorSaturation:null},emphasis:{upperLabel:{show:!0,position:[0,"50%"],color:"#fff",ellipsis:!0,verticalAlign:"middle"}},visualDimension:0,visualMin:null,visualMax:null,color:[],colorAlpha:null,colorSaturation:null,colorMappingBy:"index",visibleMin:10,childrenVisibleMin:null,levels:[]},getInitialData:function(t,e){var i={name:t.name,children:t.data};Cc(i);var n=t.levels||[];n=t.levels=Lc(n,e);var o={};return o.levels=n,ic.createTree(i,this,o).data},optionUpdated:function(){this.resetViewRoot()},formatTooltip:function(t){var e=this.getData(),i=this.getRawValue(t),n=Fo(y(i)?i[0]:i);return Zo(e.getName(t)+": "+n)},getDataParams:function(t){var e=KM.prototype.getDataParams.apply(this,arguments),i=this.getData().tree.getNodeByDataIndex(t);return e.treePathInfo=Ac(i,this),e},setLayoutInfo:function(t){this.layoutInfo=this.layoutInfo||{},a(this.layoutInfo,t)},mapIdToIndex:function(t){var e=this._idIndexMap;e||(e=this._idIndexMap=R(),this._idIndexMapCount=0);var i=e.get(t);return null==i&&e.set(t,i=this._idIndexMapCount++),i},getViewRoot:function(){return this._viewRoot},resetViewRoot:function(t){t?this._viewRoot=t:t=this._viewRoot;var e=this.getRawData().tree.root;t&&(t===e||e.contains(t))||(this._viewRoot=e)}});var IA=5;kc.prototype={constructor:kc,render:function(t,e,i,n){var o=t.getModel("breadcrumb"),a=this.group;if(a.removeAll(),o.get("show")&&i){var r=o.getModel("itemStyle"),s=r.getModel("textStyle"),l={pos:{left:o.get("left"),right:o.get("right"),top:o.get("top"),bottom:o.get("bottom")},box:{width:e.getWidth(),height:e.getHeight()},emptyItemWidth:o.get("emptyItemWidth"),totalWidth:0,renderList:[]};this._prepare(i,l,s),this._renderContent(t,l,r,s,n),ta(a,l.pos,l.box)}},_prepare:function(t,e,i){for(var n=t;n;n=n.parentNode){var o=n.getModel().get("name"),a=i.getTextRect(o),r=Math.max(a.width+16,e.emptyItemWidth);e.totalWidth+=r+8,e.renderList.push({node:n,text:o,width:r})}},_renderContent:function(t,e,i,n,o){for(var a=0,s=e.emptyItemWidth,l=t.get("breadcrumb.height"),u=Jo(e.pos,e.box),h=e.totalWidth,c=e.renderList,d=c.length-1;d>=0;d--){var f=c[d],p=f.node,g=f.width,m=f.text;h>u.width&&(h-=g-s,g=s,m=null);var y=new wS({shape:{points:Pc(a,0,g,l,d===c.length-1,0===d)},style:r(i.getItemStyle(),{lineJoin:"bevel",text:m,textFill:n.getTextColor(),textFont:n.getFont()}),z:10,onclick:v(o,p)});this.group.add(y),Nc(y,t,p),a+=g+8}},remove:function(){this.group.removeAll()}};var TA=m,DA=sw,AA=SS,CA=d,LA=["label"],kA=["emphasis","label"],PA=["upperLabel"],NA=["emphasis","upperLabel"],OA=10,EA=1,RA=2,zA=sb([["fill","color"],["stroke","strokeColor"],["lineWidth","strokeWidth"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]),BA=function(t){var e=zA(t);return e.stroke=e.fill=e.lineWidth=null,e};_s({type:"treemap",init:function(t,e){this._containerGroup,this._storage={nodeGroup:[],background:[],content:[]},this._oldTree,this._breadcrumb,this._controller,this._state="ready"},render:function(t,e,i,n){if(!(l(e.findComponents({mainType:"series",subType:"treemap",query:n}),t)<0)){this.seriesModel=t,this.api=i,this.ecModel=e;var o=Ic(n,["treemapZoomToNode","treemapRootToNode"],t),a=n&&n.type,r=t.layoutInfo,s=!this._oldTree,u=this._storage,h="treemapRootToNode"===a&&o&&u?{rootNodeGroup:u.nodeGroup[o.node.getRawIndex()],direction:n.direction}:null,c=this._giveContainerGroup(r),d=this._doRender(c,t,h);s||a&&"treemapZoomToNode"!==a&&"treemapRootToNode"!==a?d.renderFinally():this._doAnimation(c,d,t,h),this._resetController(i),this._renderBreadcrumb(t,i,o)}},_giveContainerGroup:function(t){var e=this._containerGroup;return e||(e=this._containerGroup=new DA,this._initEvents(e),this.group.add(e)),e.attr("position",[t.x,t.y]),e},_doRender:function(t,e,i){function n(t,e,i,o,a){function r(t){return t.getId()}function s(r,s){var l=null!=r?t[r]:null,u=null!=s?e[s]:null,c=h(l,u,i,a);c&&n(l&&l.viewChildren||[],u&&u.viewChildren||[],c,o,a+1)}o?(e=t,CA(t,function(t,e){!t.isRemoved()&&s(e,e)})):new Ss(e,t,r,r).add(s).update(s).remove(v(s,null)).execute()}var o=e.getData().tree,a=this._oldTree,r={nodeGroup:[],background:[],content:[]},s={nodeGroup:[],background:[],content:[]},l=this._storage,u=[],h=v(Ec,e,s,l,i,r,u);n(o.root?[o.root]:[],a&&a.root?[a.root]:[],t,o===a||!a,0);var c=function(t){var e={nodeGroup:[],background:[],content:[]};return t&&CA(t,function(t,i){var n=e[i];CA(t,function(t){t&&(n.push(t),t.__tmWillDelete=1)})}),e}(l);return this._oldTree=o,this._storage=s,{lastsForAnimation:r,willDeleteEls:c,renderFinally:function(){CA(c,function(t){CA(t,function(t){t.parent&&t.parent.remove(t)})}),CA(u,function(t){t.invisible=!0,t.dirty()})}}},_doAnimation:function(t,e,i,n){if(i.get("animation")){var o=i.get("animationDurationUpdate"),r=i.get("animationEasing"),s=Oc();CA(e.willDeleteEls,function(t,e){CA(t,function(t,i){if(!t.invisible){var a,l=t.parent;if(n&&"drillDown"===n.direction)a=l===n.rootNodeGroup?{shape:{x:0,y:0,width:l.__tmNodeWidth,height:l.__tmNodeHeight},style:{opacity:0}}:{style:{opacity:0}};else{var u=0,h=0;l.__tmWillDelete||(u=l.__tmNodeWidth/2,h=l.__tmNodeHeight/2),a="nodeGroup"===e?{position:[u,h],style:{opacity:0}}:{shape:{x:u,y:h,width:0,height:0},style:{opacity:0}}}a&&s.add(t,a,o,r)}})}),CA(this._storage,function(t,i){CA(t,function(t,n){var l=e.lastsForAnimation[i][n],u={};l&&("nodeGroup"===i?l.old&&(u.position=t.position.slice(),t.attr("position",l.old)):(l.old&&(u.shape=a({},t.shape),t.setShape(l.old)),l.fadein?(t.setStyle("opacity",0),u.style={opacity:1}):1!==t.style.opacity&&(u.style={opacity:1})),s.add(t,u,o,r))})},this),this._state="animating",s.done(TA(function(){this._state="ready",e.renderFinally()},this)).start()}},_resetController:function(t){var e=this._controller;e||((e=this._controller=new kh(t.getZr())).enable(this.seriesModel.get("roam")),e.on("pan",TA(this._onPan,this)),e.on("zoom",TA(this._onZoom,this)));var i=new $t(0,0,t.getWidth(),t.getHeight());e.setPointerChecker(function(t,e,n){return i.contain(e,n)})},_clearController:function(){var t=this._controller;t&&(t.dispose(),t=null)},_onPan:function(t,e){if("animating"!==this._state&&(Math.abs(t)>3||Math.abs(e)>3)){var i=this.seriesModel.getData().tree.root;if(!i)return;var n=i.getLayout();if(!n)return;this.api.dispatchAction({type:"treemapMove",from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:n.x+t,y:n.y+e,width:n.width,height:n.height}})}},_onZoom:function(t,e,i){if("animating"!==this._state){var n=this.seriesModel.getData().tree.root;if(!n)return;var o=n.getLayout();if(!o)return;var a=new $t(o.x,o.y,o.width,o.height),r=this.seriesModel.layoutInfo;e-=r.x,i-=r.y;var s=st();ct(s,s,[-e,-i]),ft(s,s,[t,t]),ct(s,s,[e,i]),a.applyTransform(s),this.api.dispatchAction({type:"treemapRender",from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:a.x,y:a.y,width:a.width,height:a.height}})}},_initEvents:function(t){t.on("click",function(t){if("ready"===this._state){var e=this.seriesModel.get("nodeClick",!0);if(e){var i=this.findTarget(t.offsetX,t.offsetY);if(i){var n=i.node;if(n.getLayout().isLeafRoot)this._rootToNode(i);else if("zoomToNode"===e)this._zoomToNode(i);else if("link"===e){var o=n.hostTree.data.getItemModel(n.dataIndex),a=o.get("link",!0),r=o.get("target",!0)||"blank";a&&window.open(a,r)}}}}},this)},_renderBreadcrumb:function(t,e,i){i||(i=null!=t.get("leafDepth",!0)?{node:t.getViewRoot()}:this.findTarget(e.getWidth()/2,e.getHeight()/2))||(i={node:t.getData().tree.root}),(this._breadcrumb||(this._breadcrumb=new kc(this.group))).render(t,e,i.node,TA(function(e){"animating"!==this._state&&(Dc(t.getViewRoot(),e)?this._rootToNode({node:e}):this._zoomToNode({node:e}))},this))},remove:function(){this._clearController(),this._containerGroup&&this._containerGroup.removeAll(),this._storage={nodeGroup:[],background:[],content:[]},this._state="ready",this._breadcrumb&&this._breadcrumb.remove()},dispose:function(){this._clearController()},_zoomToNode:function(t){this.api.dispatchAction({type:"treemapZoomToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:t.node})},_rootToNode:function(t){this.api.dispatchAction({type:"treemapRootToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:t.node})},findTarget:function(t,e){var i;return this.seriesModel.getViewRoot().eachNode({attr:"viewChildren",order:"preorder"},function(n){var o=this._storage.background[n.getRawIndex()];if(o){var a=o.transformCoordToLocal(t,e),r=o.shape;if(!(r.x<=a[0]&&a[0]<=r.x+r.width&&r.y<=a[1]&&a[1]<=r.y+r.height))return!1;i={node:n,offsetX:a[0],offsetY:a[1]}}},this),i}});for(var VA=["treemapZoomToNode","treemapRender","treemapMove"],GA=0;GA=0&&t.call(e,i[o],o)},rC.eachEdge=function(t,e){for(var i=this.edges,n=i.length,o=0;o=0&&i[o].node1.dataIndex>=0&&i[o].node2.dataIndex>=0&&t.call(e,i[o],o)},rC.breadthFirstTraverse=function(t,e,i,n){if(gd.isInstance(e)||(e=this._nodesMap[pd(e)]),e){for(var o="out"===i?"outEdges":"in"===i?"inEdges":"edges",a=0;a=0&&i.node2.dataIndex>=0});for(var o=0,a=n.length;o=0&&this[t][e].setItemVisual(this.dataIndex,i,n)},getVisual:function(i,n){return this[t][e].getItemVisual(this.dataIndex,i,n)},setLayout:function(i,n){this.dataIndex>=0&&this[t][e].setItemLayout(this.dataIndex,i,n)},getLayout:function(){return this[t][e].getItemLayout(this.dataIndex)},getGraphicEl:function(){return this[t][e].getItemGraphicEl(this.dataIndex)},getRawIndex:function(){return this[t][e].getRawIndex(this.dataIndex)}}};h(gd,sC("hostGraph","data")),h(md,sC("hostGraph","edgeData")),aC.Node=gd,aC.Edge=md,Wi(gd),Wi(md);var lC=function(t,e,i,n,o){for(var a=new aC(n),r=0;r "+f)),h++)}var p,g=i.get("coordinateSystem");if("cartesian2d"===g||"polar"===g)p=Xs(t,i);else{var m=Ca.get(g),v=m&&"view"!==m.type?m.dimensions||[]:[];l(v,"value")<0&&v.concat(["value"]);var y=hT(t,{coordDimensions:v});(p=new sT(y,i)).initData(t)}var x=new sT(["value"],i);return x.initData(u,s),o&&o(p,x),Yh({mainData:p,struct:a,structAttr:"graph",datas:{node:p,edge:x},datasAttr:{node:"data",edge:"edgeData"}}),a.update(),a},uC=xs({type:"series.graph",init:function(t){uC.superApply(this,"init",arguments),this.legendDataProvider=function(){return this._categoriesData},this.fillDataTextStyle(t.edges||t.links),this._updateCategoriesData()},mergeOption:function(t){uC.superApply(this,"mergeOption",arguments),this.fillDataTextStyle(t.edges||t.links),this._updateCategoriesData()},mergeDefaultAndTheme:function(t){uC.superApply(this,"mergeDefaultAndTheme",arguments),Mi(t,["edgeLabel"],["show"])},getInitialData:function(t,e){var i=t.edges||t.links||[],n=t.data||t.nodes||[],o=this;if(n&&i)return lC(n,i,this,!0,function(t,i){function n(t){return(t=this.parsePath(t))&&"label"===t[0]?r:t&&"emphasis"===t[0]&&"label"===t[1]?l:this.parentModel}t.wrapMethod("getItemModel",function(t){var e=o._categoriesModels[t.getShallow("category")];return e&&(e.parentModel=t.parentModel,t.parentModel=e),t});var a=o.getModel("edgeLabel"),r=new wo({label:a.option},a.parentModel,e),s=o.getModel("emphasis.edgeLabel"),l=new wo({emphasis:{label:s.option}},s.parentModel,e);i.wrapMethod("getItemModel",function(t){return t.customizeGetParent(n),t})}).data},getGraph:function(){return this.getData().graph},getEdgeData:function(){return this.getGraph().edgeData},getCategoriesData:function(){return this._categoriesData},formatTooltip:function(t,e,i){if("edge"===i){var n=this.getData(),o=this.getDataParams(t,i),a=n.graph.getEdgeByIndex(t),r=n.getName(a.node1.dataIndex),s=n.getName(a.node2.dataIndex),l=[];return null!=r&&l.push(r),null!=s&&l.push(s),l=Zo(l.join(" > ")),o.value&&(l+=" : "+Zo(o.value)),l}return uC.superApply(this,"formatTooltip",arguments)},_updateCategoriesData:function(){var t=f(this.option.categories||[],function(t){return null!=t.value?t:a({value:0},t)}),e=new sT(["value"],this);e.initData(t),this._categoriesData=e,this._categoriesModels=e.mapArray(function(t){return e.getItemModel(t,!0)})},setZoom:function(t){this.option.zoom=t},setCenter:function(t){this.option.center=t},isAnimationEnabled:function(){return uC.superCall(this,"isAnimationEnabled")&&!("force"===this.get("layout")&&this.get("force.layoutAnimation"))},defaultOption:{zlevel:0,z:2,coordinateSystem:"view",legendHoverLink:!0,hoverAnimation:!0,layout:null,focusNodeAdjacency:!1,circular:{rotateLabel:!1},force:{initLayout:null,repulsion:[0,50],gravity:.1,edgeLength:30,layoutAnimation:!0},left:"center",top:"center",symbol:"circle",symbolSize:10,edgeSymbol:["none","none"],edgeSymbolSize:10,edgeLabel:{position:"middle"},draggable:!1,roam:!1,center:null,zoom:1,nodeScaleRatio:.6,label:{show:!1,formatter:"{b}"},itemStyle:{},lineStyle:{color:"#aaa",width:1,curveness:0,opacity:.5},emphasis:{label:{show:!0}}}}),hC=MS.prototype,cC=TS.prototype,dC=En({type:"ec-line",style:{stroke:"#000",fill:null},shape:{x1:0,y1:0,x2:0,y2:0,percent:1,cpx1:null,cpy1:null},buildPath:function(t,e){(vd(e)?hC:cC).buildPath(t,e)},pointAt:function(t){return vd(this.shape)?hC.pointAt.call(this,t):cC.pointAt.call(this,t)},tangentAt:function(t){var e=this.shape,i=vd(e)?[e.x2-e.x1,e.y2-e.y1]:cC.tangentAt.call(this,t);return q(i,i)}}),fC=["fromSymbol","toSymbol"],pC=bd.prototype;pC.beforeUpdate=function(){var t=this,e=t.childOfName("fromSymbol"),i=t.childOfName("toSymbol"),n=t.childOfName("label");if(e||i||!n.ignore){for(var o=1,a=this.parent;a;)a.scale&&(o/=a.scale[0]),a=a.parent;var r=t.childOfName("line");if(this.__dirty||r.__dirty){var s=r.shape.percent,l=r.pointAt(0),u=r.pointAt(s),h=U([],u,l);if(q(h,h),e&&(e.attr("position",l),c=r.tangentAt(0),e.attr("rotation",Math.PI/2-Math.atan2(c[1],c[0])),e.attr("scale",[o*s,o*s])),i){i.attr("position",u);var c=r.tangentAt(1);i.attr("rotation",-Math.PI/2-Math.atan2(c[1],c[0])),i.attr("scale",[o*s,o*s])}if(!n.ignore){n.attr("position",u);var d,f,p,g=5*o;if("end"===n.__position)d=[h[0]*g+u[0],h[1]*g+u[1]],f=h[0]>.8?"left":h[0]<-.8?"right":"center",p=h[1]>.8?"top":h[1]<-.8?"bottom":"middle";else if("middle"===n.__position){var m=s/2,v=[(c=r.tangentAt(m))[1],-c[0]],y=r.pointAt(m);v[1]>0&&(v[0]=-v[0],v[1]=-v[1]),d=[y[0]+v[0]*g,y[1]+v[1]*g],f="center",p="bottom";var x=-Math.atan2(c[1],c[0]);u[0].8?"right":h[0]<-.8?"left":"center",p=h[1]>.8?"bottom":h[1]<-.8?"top":"middle";n.attr({style:{textVerticalAlign:n.__verticalAlign||p,textAlign:n.__textAlign||f},position:d,scale:[o,o]})}}}},pC._createLine=function(t,e,i){var n=t.hostModel,o=_d(t.getItemLayout(e));o.shape.percent=0,po(o,{shape:{percent:1}},n,e),this.add(o);var a=new fS({name:"label"});this.add(a),d(fC,function(i){var n=xd(i,t,e);this.add(n),this[yd(i)]=t.getItemVisual(e,i)},this),this._updateCommonStl(t,e,i)},pC.updateData=function(t,e,i){var n=t.hostModel,o=this.childOfName("line"),a=t.getItemLayout(e),r={shape:{}};wd(r.shape,a),fo(o,r,n,e),d(fC,function(i){var n=t.getItemVisual(e,i),o=yd(i);if(this[o]!==n){this.remove(this.childOfName(i));var a=xd(i,t,e);this.add(a)}this[o]=n},this),this._updateCommonStl(t,e,i)},pC._updateCommonStl=function(t,e,i){var n=t.hostModel,o=this.childOfName("line"),a=i&&i.lineStyle,s=i&&i.hoverLineStyle,l=i&&i.labelModel,u=i&&i.hoverLabelModel;if(!i||t.hasItemOption){var h=t.getItemModel(e);a=h.getModel("lineStyle").getLineStyle(),s=h.getModel("emphasis.lineStyle").getLineStyle(),l=h.getModel("label"),u=h.getModel("emphasis.label")}var c=t.getItemVisual(e,"color"),f=A(t.getItemVisual(e,"opacity"),a.opacity,1);o.useStyle(r({strokeNoScale:!0,fill:"none",stroke:c,opacity:f},a)),o.hoverStyle=s,d(fC,function(t){var e=this.childOfName(t);e&&(e.setColor(c),e.setStyle({opacity:f}))},this);var p,g,m=l.getShallow("show"),v=u.getShallow("show"),y=this.childOfName("label");if((m||v)&&(p=c||"#000",null==(g=n.getFormattedLabel(e,"normal",t.dataType)))){var x=n.getRawValue(e);g=null==x?t.getName(e):isFinite(x)?Ao(x):x}var _=m?g:null,w=v?D(n.getFormattedLabel(e,"emphasis",t.dataType),g):null,b=y.style;null==_&&null==w||(no(y.style,l,{text:_},{autoColor:p}),y.__textAlign=b.textAlign,y.__verticalAlign=b.textVerticalAlign,y.__position=l.get("position")||"middle"),y.hoverStyle=null!=w?{text:w,textFill:u.getTextColor(!0),fontStyle:u.getShallow("fontStyle"),fontWeight:u.getShallow("fontWeight"),fontSize:u.getShallow("fontSize"),fontFamily:u.getShallow("fontFamily")}:{text:null},y.ignore=!m&&!v,eo(this)},pC.highlight=function(){this.trigger("emphasis")},pC.downplay=function(){this.trigger("normal")},pC.updateLayout=function(t,e){this.setLinePoints(t.getItemLayout(e))},pC.setLinePoints=function(t){var e=this.childOfName("line");wd(e.shape,t),e.dirty()},u(bd,sw);var gC=Sd.prototype;gC.isPersistent=function(){return!0},gC.updateData=function(t){var e=this,i=e.group,n=e._lineData;e._lineData=t,n||i.removeAll();var o=Td(t);t.diff(n).add(function(i){Md(e,t,i,o)}).update(function(i,a){Id(e,n,t,a,i,o)}).remove(function(t){i.remove(n.getItemGraphicEl(t))}).execute()},gC.updateLayout=function(){var t=this._lineData;t&&t.eachItemGraphicEl(function(e,i){e.updateLayout(t,i)},this)},gC.incrementalPrepareUpdate=function(t){this._seriesScope=Td(t),this._lineData=null,this.group.removeAll()},gC.incrementalUpdate=function(t,e){for(var i=t.start;i=o/3?1:2),l=e.y-n(r)*a*(a>=o/3?1:2);r=e.angle-Math.PI/2,t.moveTo(s,l),t.lineTo(e.x+i(r)*a,e.y+n(r)*a),t.lineTo(e.x+i(e.angle)*o,e.y+n(e.angle)*o),t.lineTo(e.x-i(r)*a,e.y-n(r)*a),t.lineTo(s,l)}}),DC=2*Math.PI,AC=(gr.extend({type:"gauge",render:function(t,e,i){this.group.removeAll();var n=t.get("axisLine.lineStyle.color"),o=Vd(t,i);this._renderMain(t,e,i,n,o)},dispose:function(){},_renderMain:function(t,e,i,n,o){for(var a=this.group,r=t.getModel("axisLine").getModel("lineStyle"),s=t.get("clockwise"),l=-t.get("startAngle")/180*Math.PI,u=-t.get("endAngle")/180*Math.PI,h=(u-l)%DC,c=l,d=r.get("width"),f=0;f=t&&(0===e?0:n[e-1][0]).4?"bottom":"middle",textAlign:D<-.4?"left":D>.4?"right":"center"},{autoColor:P}),silent:!0}))}if(g.get("show")&&T!==v){for(var N=0;N<=y;N++){var D=Math.cos(w),A=Math.sin(w),O=new MS({shape:{x1:D*c+u,y1:A*c+h,x2:D*(c-_)+u,y2:A*(c-_)+h},silent:!0,style:I});"auto"===I.stroke&&O.setStyle({stroke:n((T+N/y)/v)}),l.add(O),w+=S}w-=S}else w+=b}},_renderPointer:function(t,e,i,n,o,a,r,s){var l=this.group,u=this._data;if(t.get("pointer.show")){var h=[+t.get("min"),+t.get("max")],c=[a,r],d=t.getData(),f=d.mapDimension("value");d.diff(u).add(function(e){var i=new TC({shape:{angle:a}});po(i,{shape:{angle:To(d.get(f,e),h,c,!0)}},t),l.add(i),d.setItemGraphicEl(e,i)}).update(function(e,i){var n=u.getItemGraphicEl(i);fo(n,{shape:{angle:To(d.get(f,e),h,c,!0)}},t),l.add(n),d.setItemGraphicEl(e,n)}).remove(function(t){var e=u.getItemGraphicEl(t);l.remove(e)}).execute(),d.eachItemGraphicEl(function(t,e){var i=d.getItemModel(e),a=i.getModel("pointer");t.setShape({x:o.cx,y:o.cy,width:Do(a.get("width"),o.r),r:Do(a.get("length"),o.r)}),t.useStyle(i.getModel("itemStyle").getItemStyle()),"auto"===t.style.fill&&t.setStyle("fill",n(To(d.get(f,e),h,[0,1],!0))),eo(t,i.getModel("emphasis.itemStyle").getItemStyle())}),this._data=d}else u&&u.eachItemGraphicEl(function(t){l.remove(t)})},_renderTitle:function(t,e,i,n,o){var a=t.getData(),r=a.mapDimension("value"),s=t.getModel("title");if(s.get("show")){var l=s.get("offsetCenter"),u=o.cx+Do(l[0],o.r),h=o.cy+Do(l[1],o.r),c=+t.get("min"),d=+t.get("max"),f=n(To(t.getData().get(r,0),[c,d],[0,1],!0));this.group.add(new fS({silent:!0,style:no({},s,{x:u,y:h,text:a.getName(0),textAlign:"center",textVerticalAlign:"middle"},{autoColor:f,forceRich:!0})}))}},_renderDetail:function(t,e,i,n,o){var a=t.getModel("detail"),r=+t.get("min"),s=+t.get("max");if(a.get("show")){var l=a.get("offsetCenter"),u=o.cx+Do(l[0],o.r),h=o.cy+Do(l[1],o.r),c=Do(a.get("width"),o.r),d=Do(a.get("height"),o.r),f=t.getData(),p=f.get(f.mapDimension("value"),0),g=n(To(p,[r,s],[0,1],!0));this.group.add(new fS({silent:!0,style:no({},a,{x:u,y:h,text:Gd(p,a.get("formatter")),textWidth:isNaN(c)?null:c,textHeight:isNaN(d)?null:d,textAlign:"center",textVerticalAlign:"middle"},{autoColor:g,forceRich:!0})}))}}}),xs({type:"series.funnel",init:function(t){AC.superApply(this,"init",arguments),this.legendDataProvider=function(){return this.getRawData()},this._defaultLabelLine(t)},getInitialData:function(t,e){return jD(this,["value"])},_defaultLabelLine:function(t){Mi(t,"labelLine",["show"]);var e=t.labelLine,i=t.emphasis.labelLine;e.show=e.show&&t.label.show,i.show=i.show&&t.emphasis.label.show},getDataParams:function(t){var e=this.getData(),i=AC.superCall(this,"getDataParams",t),n=e.mapDimension("value"),o=e.getSum(n);return i.percent=o?+(e.get(n,t)/o*100).toFixed(2):0,i.$vars.push("percent"),i},defaultOption:{zlevel:0,z:2,legendHoverLink:!0,left:80,top:60,right:80,bottom:60,minSize:"0%",maxSize:"100%",sort:"descending",gap:0,funnelAlign:"center",label:{show:!0,position:"outer"},labelLine:{show:!0,length:20,lineStyle:{width:1,type:"solid"}},itemStyle:{borderColor:"#fff",borderWidth:1},emphasis:{label:{show:!0}}}})),CC=Wd.prototype,LC=["itemStyle","opacity"];CC.updateData=function(t,e,i){var n=this.childAt(0),o=t.hostModel,a=t.getItemModel(e),s=t.getItemLayout(e),l=t.getItemModel(e).get(LC);l=null==l?1:l,n.useStyle({}),i?(n.setShape({points:s.points}),n.setStyle({opacity:0}),po(n,{style:{opacity:l}},o,e)):fo(n,{style:{opacity:l},shape:{points:s.points}},o,e);var u=a.getModel("itemStyle"),h=t.getItemVisual(e,"color");n.setStyle(r({lineJoin:"round",fill:h},u.getItemStyle(["opacity"]))),n.hoverStyle=u.getModel("emphasis").getItemStyle(),this._updateLabel(t,e),eo(this)},CC._updateLabel=function(t,e){var i=this.childAt(1),n=this.childAt(2),o=t.hostModel,a=t.getItemModel(e),r=t.getItemLayout(e).label,s=t.getItemVisual(e,"color");fo(i,{shape:{points:r.linePoints||r.linePoints}},o,e),fo(n,{style:{x:r.x,y:r.y}},o,e),n.attr({rotation:r.rotation,origin:[r.x,r.y],z2:10});var l=a.getModel("label"),u=a.getModel("emphasis.label"),h=a.getModel("labelLine"),c=a.getModel("emphasis.labelLine"),s=t.getItemVisual(e,"color");io(n.style,n.hoverStyle={},l,u,{labelFetcher:t.hostModel,labelDataIndex:e,defaultText:t.getName(e),autoColor:s,useInsideStyle:!!r.inside},{textAlign:r.textAlign,textVerticalAlign:r.verticalAlign}),n.ignore=n.normalIgnore=!l.get("show"),n.hoverIgnore=!u.get("show"),i.ignore=i.normalIgnore=!h.get("show"),i.hoverIgnore=!c.get("show"),i.setStyle({stroke:s}),i.setStyle(h.getModel("lineStyle").getLineStyle()),i.hoverStyle=c.getModel("lineStyle").getLineStyle()},u(Wd,sw);gr.extend({type:"funnel",render:function(t,e,i){var n=t.getData(),o=this._data,a=this.group;n.diff(o).add(function(t){var e=new Wd(n,t);n.setItemGraphicEl(t,e),a.add(e)}).update(function(t,e){var i=o.getItemGraphicEl(e);i.updateData(n,t),a.add(i),n.setItemGraphicEl(t,i)}).remove(function(t){var e=o.getItemGraphicEl(t);a.remove(e)}).execute(),this._data=n},remove:function(){this.group.removeAll(),this._data=null},dispose:function(){}});ps(JD("funnel")),fs(function(t,e,i){t.eachSeriesByType("funnel",function(t){var i=t.getData(),n=i.mapDimension("value"),o=t.get("sort"),a=Fd(t,e),r=Hd(i,o),s=[Do(t.get("minSize"),a.width),Do(t.get("maxSize"),a.width)],l=i.getDataExtent(n),u=t.get("min"),h=t.get("max");null==u&&(u=Math.min(l[0],0)),null==h&&(h=l[1]);var c=t.get("funnelAlign"),d=t.get("gap"),f=(a.height-d*(i.count()-1))/i.count(),p=a.y,g=function(t,e){var o,r=To(i.get(n,t)||0,[u,h],s,!0);switch(c){case"left":o=a.x;break;case"center":o=a.x+(a.width-r)/2;break;case"right":o=a.x+a.width-r}return[[o,e],[o+r,e]]};"ascending"===o&&(f=-f,d=-d,p+=a.height,r=r.reverse());for(var m=0;ma&&(e[1-n]=e[n]+h.sign*a),e},NC=d,OC=Math.min,EC=Math.max,RC=Math.floor,zC=Math.ceil,BC=Ao,VC=Math.PI;qd.prototype={type:"parallel",constructor:qd,_init:function(t,e,i){var n=t.dimensions,o=t.parallelAxisIndex;NC(n,function(t,i){var n=o[i],a=e.getComponent("parallelAxis",n),r=this._axesMap.set(t,new kC(t,xl(a),[0,0],a.get("type"),n)),s="category"===r.type;r.onBand=s&&a.get("boundaryGap"),r.inverse=a.get("inverse"),a.axis=r,r.model=a,r.coordinateSystem=a.coordinateSystem=this},this)},update:function(t,e){this._updateAxesFromSeries(this._model,t)},containPoint:function(t){var e=this._makeLayoutInfo(),i=e.axisBase,n=e.layoutBase,o=e.pixelDimIndex,a=t[1-o],r=t[o];return a>=i&&a<=i+e.axisLength&&r>=n&&r<=n+e.layoutLength},getModel:function(){return this._model},_updateAxesFromSeries:function(t,e){e.eachSeries(function(i){if(t.contains(i,e)){var n=i.getData();NC(this.dimensions,function(t){var e=this._axesMap.get(t);e.scale.unionExtentFromData(n,n.mapDimension(t)),yl(e.scale,e.model)},this)}},this)},resize:function(t,e){this._rect=Qo(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()}),this._layoutAxes()},getRect:function(){return this._rect},_makeLayoutInfo:function(){var t,e=this._model,i=this._rect,n=["x","y"],o=["width","height"],a=e.get("layout"),r="horizontal"===a?0:1,s=i[o[r]],l=[0,s],u=this.dimensions.length,h=Kd(e.get("axisExpandWidth"),l),c=Kd(e.get("axisExpandCount")||0,[0,u]),d=e.get("axisExpandable")&&u>3&&u>c&&c>1&&h>0&&s>0,f=e.get("axisExpandWindow");f?(t=Kd(f[1]-f[0],l),f[1]=f[0]+t):(t=Kd(h*(c-1),l),(f=[h*(e.get("axisExpandCenter")||RC(u/2))-t/2])[1]=f[0]+t);var p=(s-t)/(u-c);p<3&&(p=0);var g=[RC(BC(f[0]/h,1))+1,zC(BC(f[1]/h,1))-1],m=p/h*f[0];return{layout:a,pixelDimIndex:r,layoutBase:i[n[r]],layoutLength:s,axisBase:i[n[1-r]],axisLength:i[o[1-r]],axisExpandable:d,axisExpandWidth:h,axisCollapseWidth:p,axisExpandWindow:f,axisCount:u,winInnerIndices:g,axisExpandWindow0Pos:m}},_layoutAxes:function(){var t=this._rect,e=this._axesMap,i=this.dimensions,n=this._makeLayoutInfo(),o=n.layout;e.each(function(t){var e=[0,n.axisLength],i=t.inverse?1:0;t.setExtent(e[i],e[1-i])}),NC(i,function(e,i){var a=(n.axisExpandable?Jd:$d)(i,n),r={horizontal:{x:a.position,y:n.axisLength},vertical:{x:0,y:a.position}},s={horizontal:VC/2,vertical:0},l=[r[o].x+t.x,r[o].y+t.y],u=s[o],h=st();dt(h,h,u),ct(h,h,l),this._axesLayout[e]={position:l,rotation:u,transform:h,axisNameAvailableWidth:a.axisNameAvailableWidth,axisLabelShow:a.axisLabelShow,nameTruncateMaxWidth:a.nameTruncateMaxWidth,tickDirection:1,labelDirection:1}},this)},getAxis:function(t){return this._axesMap.get(t)},dataToPoint:function(t,e){return this.axisCoordToPoint(this._axesMap.get(e).dataToCoord(t),e)},eachActiveState:function(t,e,i,n){null==i&&(i=0),null==n&&(n=t.count());var o=this._axesMap,a=this.dimensions,r=[],s=[];d(a,function(e){r.push(t.mapDimension(e)),s.push(o.get(e).model)});for(var l=this.hasAxisBrushed(),u=i;uo*(1-h[0])?(l="jump",r=s-o*(1-h[2])):(r=s-o*h[1])>=0&&(r=s-o*(1-h[1]))<=0&&(r=0),(r*=e.axisExpandWidth/u)?PC(r,n,a,"all"):l="none";else{o=n[1]-n[0];(n=[EC(0,a[1]*s/o-o/2)])[1]=OC(a[1],n[0]+o),n[0]=n[1]-o}return{axisExpandWindow:n,behavior:l}}},Ca.register("parallel",{create:function(t,e){var i=[];return t.eachComponent("parallel",function(n,o){var a=new qd(n,t,e);a.name="parallel_"+o,a.resize(n,e),n.coordinateSystem=a,a.model=n,i.push(a)}),t.eachSeries(function(e){if("parallel"===e.get("coordinateSystem")){var i=t.queryComponents({mainType:"parallel",index:e.get("parallelIndex"),id:e.get("parallelId")})[0];e.coordinateSystem=i.coordinateSystem}}),i}});var GC=hM.extend({type:"baseParallelAxis",axis:null,activeIntervals:[],getAreaSelectStyle:function(){return sb([["fill","color"],["lineWidth","borderWidth"],["stroke","borderColor"],["width","width"],["opacity","opacity"]])(this.getModel("areaSelectStyle"))},setActiveIntervals:function(t){var e=this.activeIntervals=i(t);if(e)for(var n=e.length-1;n>=0;n--)Co(e[n])},getActiveState:function(t){var e=this.activeIntervals;if(!e.length)return"normal";if(null==t||isNaN(t))return"inactive";if(1===e.length){var i=e[0];if(i[0]<=t&&t<=i[1])return"active"}else for(var n=0,o=e.length;n5)return;var n=this._model.coordinateSystem.getSlidedAxisExpandWindow([t.offsetX,t.offsetY]);"none"!==n.behavior&&this._dispatchExpand({axisExpandWindow:n.axisExpandWindow})}this._mouseDownPoint=null},mousemove:function(t){if(!this._mouseDownPoint&&Ff(this,"mousemove")){var e=this._model,i=e.coordinateSystem.getSlidedAxisExpandWindow([t.offsetX,t.offsetY]),n=i.behavior;"jump"===n&&this._throttledDispatchExpand.debounceNextCall(e.get("axisExpandDebounce")),this._throttledDispatchExpand("none"===n?null:{axisExpandWindow:i.axisExpandWindow,animation:"jump"===n&&null})}}};us(function(t){Ud(t),Xd(t)}),KM.extend({type:"series.parallel",dependencies:["parallel"],visualColorAccessPath:"lineStyle.color",getInitialData:function(t,e){var i=this.getSource();return Hf(i,this),Xs(i,this)},getRawIndicesByActiveState:function(t){var e=this.coordinateSystem,i=this.getData(),n=[];return e.eachActiveState(i,function(e,o){t===e&&n.push(i.getRawIndex(o))}),n},defaultOption:{zlevel:0,z:2,coordinateSystem:"parallel",parallelIndex:0,label:{show:!1},inactiveOpacity:.05,activeOpacity:1,lineStyle:{width:1,opacity:.45,type:"solid"},emphasis:{label:{show:!1}},progressive:500,smooth:!1,animationEasing:"linear"}});var sL=.3,lL=(gr.extend({type:"parallel",init:function(){this._dataGroup=new sw,this.group.add(this._dataGroup),this._data,this._initialized},render:function(t,e,i,n){var o=this._dataGroup,a=t.getData(),r=this._data,s=t.coordinateSystem,l=s.dimensions,u=Yf(t);if(a.diff(r).add(function(t){qf(jf(a,o,t,l,s),a,t,u)}).update(function(e,i){var o=r.getItemGraphicEl(i),h=Xf(a,e,l,s);a.setItemGraphicEl(e,o),fo(o,{shape:{points:h}},n&&!1===n.animation?null:t,e),qf(o,a,e,u)}).remove(function(t){var e=r.getItemGraphicEl(t);o.remove(e)}).execute(),!this._initialized){this._initialized=!0;var h=Uf(s,t,function(){setTimeout(function(){o.removeClipPath()})});o.setClipPath(h)}this._data=a},incrementalPrepareRender:function(t,e,i){this._initialized=!0,this._data=null,this._dataGroup.removeAll()},incrementalRender:function(t,e,i){for(var n=e.getData(),o=e.coordinateSystem,a=o.dimensions,r=Yf(e),s=t.start;sn&&(n=e)}),d(e,function(e){var o=new ZA({type:"color",mappingMethod:"linear",dataExtent:[i,n],visual:t.get("color")}).mapValueToVisual(e.getLayout().value);e.setVisual("color",o);var a=e.getModel().get("itemStyle.color");null!=a&&e.setVisual("color",a)})}})});var cL={_baseAxisDim:null,getInitialData:function(t,e){var i,n,o=e.getComponent("xAxis",this.get("xAxisIndex")),a=e.getComponent("yAxis",this.get("yAxisIndex")),r=o.get("type"),s=a.get("type");"category"===r?(t.layout="horizontal",i=o.getOrdinalMeta(),n=!0):"category"===s?(t.layout="vertical",i=a.getOrdinalMeta(),n=!0):t.layout=t.layout||"horizontal";var l=["x","y"],u="horizontal"===t.layout?0:1,h=this._baseAxisDim=l[u],c=l[1-u],f=[o,a],p=f[u].get("type"),g=f[1-u].get("type"),m=t.data;if(m&&n){var v=[];d(m,function(t,e){var i;t.value&&y(t.value)?(i=t.value.slice(),t.value.unshift(e)):y(t)?(i=t.slice(),t.unshift(e)):i=t,v.push(i)}),t.data=v}var x=this.defaultValueDimensions;return jD(this,{coordDimensions:[{name:h,type:Ts(p),ordinalMeta:i,otherDims:{tooltip:!1,itemName:0},dimsDef:["base"]},{name:c,type:Ts(g),dimsDef:x.slice()}],dimensionsCount:x.length+1})},getBaseAxis:function(){var t=this._baseAxisDim;return this.ecModel.getComponent(t+"Axis",this.get(t+"AxisIndex")).axis}};h(KM.extend({type:"series.boxplot",dependencies:["xAxis","yAxis","grid"],defaultValueDimensions:[{name:"min",defaultTooltip:!0},{name:"Q1",defaultTooltip:!0},{name:"median",defaultTooltip:!0},{name:"Q3",defaultTooltip:!0},{name:"max",defaultTooltip:!0}],dimensions:null,defaultOption:{zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,hoverAnimation:!0,layout:null,boxWidth:[7,50],itemStyle:{color:"#fff",borderWidth:1},emphasis:{itemStyle:{borderWidth:2,shadowBlur:5,shadowOffsetX:2,shadowOffsetY:2,shadowColor:"rgba(0,0,0,0.4)"}},animationEasing:"elasticOut",animationDuration:800}}),cL,!0);var dL=["itemStyle"],fL=["emphasis","itemStyle"],pL=(gr.extend({type:"boxplot",render:function(t,e,i){var n=t.getData(),o=this.group,a=this._data;this._data||o.removeAll();var r="horizontal"===t.get("layout")?1:0;n.diff(a).add(function(t){if(n.hasValue(t)){var e=_p(n.getItemLayout(t),n,t,r,!0);n.setItemGraphicEl(t,e),o.add(e)}}).update(function(t,e){var i=a.getItemGraphicEl(e);if(n.hasValue(t)){var s=n.getItemLayout(t);i?wp(s,i,n,t):i=_p(s,n,t,r),o.add(i),n.setItemGraphicEl(t,i)}else o.remove(i)}).remove(function(t){var e=a.getItemGraphicEl(t);e&&o.remove(e)}).execute(),this._data=n},remove:function(t){var e=this.group,i=this._data;this._data=null,i&&i.eachItemGraphicEl(function(t){t&&e.remove(t)})},dispose:B}),In.extend({type:"boxplotBoxPath",shape:{},buildPath:function(t,e){var i=e.points,n=0;for(t.moveTo(i[n][0],i[n][1]),n++;n<4;n++)t.lineTo(i[n][0],i[n][1]);for(t.closePath();n0?ML:IL)}function n(t,e){return e.get(t>0?bL:SL)}var o=t.getData(),a=t.pipelineContext.large;if(o.setVisual({legendSymbol:"roundRect",colorP:i(1,t),colorN:i(-1,t),borderColorP:n(1,t),borderColorN:n(-1,t)}),!e.isSeriesFiltered(t))return!a&&{progress:function(t,e){for(var o;null!=(o=t.next());){var a=e.getItemModel(o),r=e.getItemLayout(o).sign;e.setItemVisual(o,{color:i(r,a),borderColor:n(r,a)})}}}}},DL="undefined"!=typeof Float32Array?Float32Array:Array,AL={seriesType:"candlestick",plan:QM(),reset:function(t){var e=t.coordinateSystem,i=t.getData(),n=Pp(t,i),o=0,a=1,r=["x","y"],s=i.mapDimension(r[o]),l=i.mapDimension(r[a],!0),u=l[0],h=l[1],c=l[2],d=l[3];if(i.setLayout({candleWidth:n,isSimpleBox:n<=1.3}),!(null==s||l.length<4))return{progress:t.pipelineContext.large?function(t,i){for(var n,r,l=new DL(5*t.count),f=0,p=[],g=[];null!=(r=t.next());){var m=i.get(s,r),v=i.get(u,r),y=i.get(h,r),x=i.get(c,r),_=i.get(d,r);isNaN(m)||isNaN(x)||isNaN(_)?(l[f++]=NaN,f+=4):(l[f++]=kp(i,r,v,y,h),p[o]=m,p[a]=x,n=e.dataToPoint(p,null,g),l[f++]=n?n[0]:NaN,l[f++]=n?n[1]:NaN,p[a]=_,n=e.dataToPoint(p,null,g),l[f++]=n?n[1]:NaN)}i.setLayout("largePoints",l)}:function(t,i){function r(t,i){var n=[];return n[o]=i,n[a]=t,isNaN(i)||isNaN(t)?[NaN,NaN]:e.dataToPoint(n)}function l(t,e,i){var a=e.slice(),r=e.slice();a[o]=Fn(a[o]+n/2,1,!1),r[o]=Fn(r[o]-n/2,1,!0),i?t.push(a,r):t.push(r,a)}function f(t){return t[o]=Fn(t[o],1),t}for(var p;null!=(p=t.next());){var g=i.get(s,p),m=i.get(u,p),v=i.get(h,p),y=i.get(c,p),x=i.get(d,p),_=Math.min(m,v),w=Math.max(m,v),b=r(_,g),S=r(w,g),M=r(y,g),I=r(x,g),T=[];l(T,S,0),l(T,b,1),T.push(f(I),f(S),f(M),f(b)),i.setItemLayout(p,{sign:kp(i,p,m,v,h),initBaseline:m>v?S[a]:b[a],ends:T,brushRect:function(t,e,i){var s=r(t,i),l=r(e,i);return s[o]-=n/2,l[o]-=n/2,{x:s[0],y:s[1],width:a?n:l[0]-s[0],height:a?l[1]-s[1]:n}}(y,x,g)})}}}}};us(function(t){t&&y(t.series)&&d(t.series,function(t){w(t)&&"k"===t.type&&(t.type="candlestick")})}),ps(TL),fs(AL),KM.extend({type:"series.effectScatter",dependencies:["grid","polar"],getInitialData:function(t,e){return Xs(this.getSource(),this)},brushSelector:"point",defaultOption:{coordinateSystem:"cartesian2d",zlevel:0,z:2,legendHoverLink:!0,effectType:"ripple",progressive:0,showEffectOn:"render",rippleEffect:{period:4,scale:2.5,brushType:"fill"},symbolSize:10}});var CL=Ep.prototype;CL.stopEffectAnimation=function(){this.childAt(1).removeAll()},CL.startEffectAnimation=function(t){for(var e=t.symbolType,i=t.color,n=this.childAt(1),o=0;o<3;o++){var a=Tl(e,-1,-1,2,2,i);a.attr({style:{strokeNoScale:!0},z2:99,silent:!0,scale:[.5,.5]});var r=-o/3*t.period+t.effectOffset;a.animate("",!0).when(t.period,{scale:[t.rippleScale/2,t.rippleScale/2]}).delay(r).start(),a.animateStyle(!0).when(t.period,{opacity:0}).delay(r).start(),n.add(a)}Op(n,t)},CL.updateEffectAnimation=function(t){for(var e=this._effectCfg,i=this.childAt(1),n=["symbolType","period","rippleScale"],o=0;o "))},preventIncremental:function(){return!!this.get("effect.show")},getProgressive:function(){var t=this.option.progressive;return null==t?this.option.large?1e4:this.get("progressive"):t},getProgressiveThreshold:function(){var t=this.option.progressiveThreshold;return null==t?this.option.large?2e4:this.get("progressiveThreshold"):t},defaultOption:{coordinateSystem:"geo",zlevel:0,z:2,legendHoverLink:!0,hoverAnimation:!0,xAxisIndex:0,yAxisIndex:0,symbol:["none","none"],symbolSize:[10,10],geoIndex:0,effect:{show:!1,period:4,constantSpeed:0,symbol:"circle",symbolSize:3,loop:!0,trailLength:.2},large:!1,largeThreshold:2e3,polyline:!1,label:{show:!1,position:"end"},lineStyle:{opacity:.5}}}),NL=zp.prototype;NL.createLine=function(t,e,i){return new bd(t,e,i)},NL._updateEffectSymbol=function(t,e){var i=t.getItemModel(e).getModel("effect"),n=i.get("symbolSize"),o=i.get("symbol");y(n)||(n=[n,n]);var a=i.get("color")||t.getItemVisual(e,"color"),r=this.childAt(1);this._symbolType!==o&&(this.remove(r),(r=Tl(o,-.5,-.5,1,1,a)).z2=100,r.culling=!0,this.add(r)),r&&(r.setStyle("shadowColor",a),r.setStyle(i.getItemStyle(["color"])),r.attr("scale",n),r.setColor(a),r.attr("scale",n),this._symbolType=o,this._updateEffectAnimation(t,i,e))},NL._updateEffectAnimation=function(t,e,i){var n=this.childAt(1);if(n){var o=this,a=t.getItemLayout(i),r=1e3*e.get("period"),s=e.get("loop"),l=e.get("constantSpeed"),u=T(e.get("delay"),function(e){return e/t.count()*r/3}),h="function"==typeof u;if(n.ignore=!0,this.updateAnimationPoints(n,a),l>0&&(r=this.getLineLength(n)/l*1e3),r!==this._period||s!==this._loop){n.stopAnimation();var c=u;h&&(c=u(i)),n.__t>0&&(c=-r*n.__t),n.__t=0;var d=n.animate("",s).when(r,{__t:1}).delay(c).during(function(){o.updateSymbolPosition(n)});s||d.done(function(){o.remove(n)}),d.start()}this._period=r,this._loop=s}},NL.getLineLength=function(t){return S_(t.__p1,t.__cp1)+S_(t.__cp1,t.__p2)},NL.updateAnimationPoints=function(t,e){t.__p1=e[0],t.__p2=e[1],t.__cp1=e[2]||[(e[0][0]+e[1][0])/2,(e[0][1]+e[1][1])/2]},NL.updateData=function(t,e,i){this.childAt(0).updateData(t,e,i),this._updateEffectSymbol(t,e)},NL.updateSymbolPosition=function(t){var e=t.__p1,i=t.__p2,n=t.__cp1,o=t.__t,a=t.position,r=Qi,s=tn;a[0]=r(e[0],n[0],i[0],o),a[1]=r(e[1],n[1],i[1],o);var l=s(e[0],n[0],i[0],o),u=s(e[1],n[1],i[1],o);t.rotation=-Math.atan2(u,l)-Math.PI/2,t.ignore=!1},NL.updateLayout=function(t,e){this.childAt(0).updateLayout(t,e);var i=t.getItemModel(e).getModel("effect");this._updateEffectAnimation(t,i,e)},u(zp,sw);var OL=Bp.prototype;OL._createPolyline=function(t,e,i){var n=t.getItemLayout(e),o=new bS({shape:{points:n}});this.add(o),this._updateCommonStl(t,e,i)},OL.updateData=function(t,e,i){var n=t.hostModel;fo(this.childAt(0),{shape:{points:t.getItemLayout(e)}},n,e),this._updateCommonStl(t,e,i)},OL._updateCommonStl=function(t,e,i){var n=this.childAt(0),o=t.getItemModel(e),a=t.getItemVisual(e,"color"),s=i&&i.lineStyle,l=i&&i.hoverLineStyle;i&&!t.hasItemOption||(s=o.getModel("lineStyle").getLineStyle(),l=o.getModel("emphasis.lineStyle").getLineStyle()),n.useStyle(r({strokeNoScale:!0,fill:"none",stroke:a},s)),n.hoverStyle=l,eo(this)},OL.updateLayout=function(t,e){this.childAt(0).setShape("points",t.getItemLayout(e))},u(Bp,sw);var EL=Vp.prototype;EL.createLine=function(t,e,i){return new Bp(t,e,i)},EL.updateAnimationPoints=function(t,e){this._points=e;for(var i=[0],n=0,o=1;o=0&&!(n[r]<=e);r--);r=Math.min(r,o-2)}else{for(var r=a;re);r++);r=Math.min(r-1,o-2)}J(t.position,i[r],i[r+1],(e-n[r])/(n[r+1]-n[r]));var s=i[r+1][0]-i[r][0],l=i[r+1][1]-i[r][1];t.rotation=-Math.atan2(l,s)-Math.PI/2,this._lastFrame=r,this._lastFramePercent=e,t.ignore=!1}},u(Vp,zp);var RL=En({shape:{polyline:!1,curveness:0,segs:[]},buildPath:function(t,e){var i=e.segs,n=e.curveness;if(e.polyline)for(r=0;r0){t.moveTo(i[r++],i[r++]);for(var a=1;a0){var c=(s+u)/2-(l-h)*n,d=(l+h)/2-(u-s)*n;t.quadraticCurveTo(c,d,u,h)}else t.lineTo(u,h)}},findDataIndex:function(t,e){var i=this.shape,n=i.segs,o=i.curveness;if(i.polyline)for(var a=0,r=0;r0)for(var l=n[r++],u=n[r++],h=1;h0){if(fn(l,u,(l+c)/2-(u-d)*o,(u+d)/2-(c-l)*o,c,d))return a}else if(cn(l,u,c,d))return a;a++}return-1}}),zL=Gp.prototype;zL.isPersistent=function(){return!this._incremental},zL.updateData=function(t){this.group.removeAll();var e=new RL({rectHover:!0,cursor:"default"});e.setShape({segs:t.getLayout("linesPoints")}),this._setCommon(e,t),this.group.add(e),this._incremental=null},zL.incrementalPrepareUpdate=function(t){this.group.removeAll(),this._clearIncremental(),t.count()>5e5?(this._incremental||(this._incremental=new On({silent:!0})),this.group.add(this._incremental)):this._incremental=null},zL.incrementalUpdate=function(t,e){var i=new RL;i.setShape({segs:e.getLayout("linesPoints")}),this._setCommon(i,e,!!this._incremental),this._incremental?this._incremental.addDisplayable(i,!0):(i.rectHover=!0,i.cursor="default",i.__startIndex=t.start,this.group.add(i))},zL.remove=function(){this._clearIncremental(),this._incremental=null,this.group.removeAll()},zL._setCommon=function(t,e,i){var n=e.hostModel;t.setShape({polyline:n.get("polyline"),curveness:n.get("lineStyle.curveness")}),t.useStyle(n.getModel("lineStyle").getLineStyle()),t.style.strokeNoScale=!0;var o=e.getVisual("color");o&&t.setStyle("stroke",o),t.setStyle("fill"),i||(t.seriesIndex=n.seriesIndex,t.on("mousemove",function(e){t.dataIndex=null;var i=t.findDataIndex(e.offsetX,e.offsetY);i>0&&(t.dataIndex=i+t.__startIndex)}))},zL._clearIncremental=function(){var t=this._incremental;t&&t.clearDisplaybles()};var BL={seriesType:"lines",plan:QM(),reset:function(t){var e=t.coordinateSystem,i=t.get("polyline"),n=t.pipelineContext.large;return{progress:function(o,a){var r=[];if(n){var s,l=o.end-o.start;if(i){for(var u=0,h=o.start;h0){var I=a(v)?s:l;v>0&&(v=v*S+b),x[_++]=I[M],x[_++]=I[M+1],x[_++]=I[M+2],x[_++]=I[M+3]*v*256}else _+=4}return c.putImageData(y,0,0),h},_getBrush:function(){var t=this._brushCanvas||(this._brushCanvas=m_()),e=this.pointSize+this.blurSize,i=2*e;t.width=i,t.height=i;var n=t.getContext("2d");return n.clearRect(0,0,i,i),n.shadowOffsetX=i,n.shadowBlur=this.blurSize,n.shadowColor="#000",n.beginPath(),n.arc(-e,e,this.pointSize,0,2*Math.PI,!0),n.closePath(),n.fill(),t},_getGradient:function(t,e,i){for(var n=this._gradientPixels,o=n[i]||(n[i]=new Uint8ClampedArray(1024)),a=[0,0,0,0],r=0,s=0;s<256;s++)e[i](s/255,!0,a),o[r++]=a[0],o[r++]=a[1],o[r++]=a[2],o[r++]=a[3];return o}},_s({type:"heatmap",render:function(t,e,i){var n;e.eachComponent("visualMap",function(e){e.eachTargetSeries(function(i){i===t&&(n=e)})}),this.group.removeAll(),this._incrementalDisplayable=null;var o=t.coordinateSystem;"cartesian2d"===o.type||"calendar"===o.type?this._renderOnCartesianAndCalendar(t,i,0,t.getData().count()):Up(o)&&this._renderOnGeo(o,t,n,i)},incrementalPrepareRender:function(t,e,i){this.group.removeAll()},incrementalRender:function(t,e,i,n){e.coordinateSystem&&this._renderOnCartesianAndCalendar(e,n,t.start,t.end,!0)},_renderOnCartesianAndCalendar:function(t,e,i,n,o){var r,s,l=t.coordinateSystem;if("cartesian2d"===l.type){var u=l.getAxis("x"),h=l.getAxis("y");r=u.getBandWidth(),s=h.getBandWidth()}for(var c=this.group,d=t.getData(),f=t.getModel("itemStyle").getItemStyle(["color"]),p=t.getModel("emphasis.itemStyle").getItemStyle(),g=t.getModel("label"),m=t.getModel("emphasis.label"),v=l.type,y="cartesian2d"===v?[d.mapDimension("x"),d.mapDimension("y"),d.mapDimension("value")]:[d.mapDimension("time"),d.mapDimension("value")],x=i;x=e.y&&t[1]<=e.y+e.height:i.contain(i.toLocalCoord(t[1]))&&t[0]>=e.y&&t[0]<=e.y+e.height},pointToData:function(t){var e=this.getAxis();return[e.coordToData(e.toLocalCoord(t["horizontal"===e.orient?0:1]))]},dataToPoint:function(t){var e=this.getAxis(),i=this.getRect(),n=[],o="horizontal"===e.orient?0:1;return t instanceof Array&&(t=t[0]),n[o]=e.toGlobalCoord(e.dataToCoord(+t)),n[1-o]=0===o?i.y+i.height/2:i.x+i.width/2,n}},Ca.register("single",{create:function(t,e){var i=[];return t.eachComponent("singleAxis",function(n,o){var a=new gg(n,t,e);a.name="single_"+o,a.resize(n,e),n.coordinateSystem=a,i.push(a)}),t.eachSeries(function(e){if("singleAxis"===e.get("coordinateSystem")){var i=t.queryComponents({mainType:"singleAxis",index:e.get("singleAxisIndex"),id:e.get("singleAxisId")})[0];e.coordinateSystem=i&&i.coordinateSystem}}),i},dimensions:gg.prototype.dimensions});var XL=["axisLine","axisTickLabel","axisName"],jL=ED.extend({type:"singleAxis",axisPointerClass:"SingleAxisPointer",render:function(t,e,i,n){var o=this.group;o.removeAll();var a=mg(t),r=new LD(t,a);d(XL,r.add,r),o.add(r.getGroup()),t.get("splitLine.show")&&this._splitLine(t),jL.superCall(this,"render",t,e,i,n)},_splitLine:function(t){var e=t.axis;if(!e.scale.isBlank()){var i=t.getModel("splitLine"),n=i.getModel("lineStyle"),o=n.get("width"),a=n.get("color");a=a instanceof Array?a:[a];for(var r=t.coordinateSystem.getRect(),s=e.isHorizontal(),l=[],u=0,h=e.getTicksCoords({tickModel:i}),c=[],d=[],f=0;f=0)&&i({type:"updateAxisPointer",currTrigger:t,x:e&&e.offsetX,y:e&&e.offsetY})})},remove:function(t,e){Ng(e.getZr(),"axisPointer"),ik.superApply(this._model,"remove",arguments)},dispose:function(t,e){Ng("axisPointer",e),ik.superApply(this._model,"dispose",arguments)}}),nk=Ni(),ok=i,ak=m;(Og.prototype={_group:null,_lastGraphicKey:null,_handle:null,_dragging:!1,_lastValue:null,_lastStatus:null,_payloadInfo:null,animationThreshold:15,render:function(t,e,i,n){var o=e.get("value"),a=e.get("status");if(this._axisModel=t,this._axisPointerModel=e,this._api=i,n||this._lastValue!==o||this._lastStatus!==a){this._lastValue=o,this._lastStatus=a;var r=this._group,s=this._handle;if(!a||"hide"===a)return r&&r.hide(),void(s&&s.hide());r&&r.show(),s&&s.show();var l={};this.makeElOption(l,o,t,e,i);var u=l.graphicKey;u!==this._lastGraphicKey&&this.clear(i),this._lastGraphicKey=u;var h=this._moveAnimation=this.determineAnimation(t,e);if(r){var c=v(Eg,e,h);this.updatePointerEl(r,l,c,e),this.updateLabelEl(r,l,c,e)}else r=this._group=new sw,this.createPointerEl(r,l,t,e),this.createLabelEl(r,l,t,e),i.getZr().add(r);Vg(r,e,!0),this._renderHandle(o)}},remove:function(t){this.clear(t)},dispose:function(t){this.clear(t)},determineAnimation:function(t,e){var i=e.get("animation"),n=t.axis,o="category"===n.type,a=e.get("snap");if(!a&&!o)return!1;if("auto"===i||null==i){var r=this.animationThreshold;if(o&&n.getBandWidth()>r)return!0;if(a){var s=qu(t).seriesDataCount,l=n.getExtent();return Math.abs(l[0]-l[1])/s>r}return!1}return!0===i},makeElOption:function(t,e,i,n,o){},createPointerEl:function(t,e,i,n){var o=e.pointer;if(o){var a=nk(t).pointerEl=new BS[o.type](ok(e.pointer));t.add(a)}},createLabelEl:function(t,e,i,n){if(e.label){var o=nk(t).labelEl=new SS(ok(e.label));t.add(o),zg(o,n)}},updatePointerEl:function(t,e,i){var n=nk(t).pointerEl;n&&(n.setStyle(e.pointer.style),i(n,{shape:e.pointer.shape}))},updateLabelEl:function(t,e,i,n){var o=nk(t).labelEl;o&&(o.setStyle(e.label.style),i(o,{shape:e.label.shape,position:e.label.position}),zg(o,n))},_renderHandle:function(t){if(!this._dragging&&this.updateHandleTransform){var e=this._axisPointerModel,i=this._api.getZr(),n=this._handle,o=e.getModel("handle"),a=e.get("status");if(!o.get("show")||!a||"hide"===a)return n&&i.remove(n),void(this._handle=null);var r;this._handle||(r=!0,n=this._handle=_o(o.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(t){zw(t.event)},onmousedown:ak(this._onHandleDragMove,this,0,0),drift:ak(this._onHandleDragMove,this),ondragend:ak(this._onHandleDragEnd,this)}),i.add(n)),Vg(n,e,!1);var s=["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"];n.setStyle(o.getItemStyle(null,s));var l=o.get("size");y(l)||(l=[l,l]),n.attr("scale",[l[0]/2,l[1]/2]),wr(this,"_doDispatchAxisPointer",o.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,r)}},_moveHandleToValue:function(t,e){Eg(this._axisPointerModel,!e&&this._moveAnimation,this._handle,Bg(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},_onHandleDragMove:function(t,e){var i=this._handle;if(i){this._dragging=!0;var n=this.updateHandleTransform(Bg(i),[t,e],this._axisModel,this._axisPointerModel);this._payloadInfo=n,i.stopAnimation(),i.attr(Bg(n)),nk(i).lastProp=null,this._doDispatchAxisPointer()}},_doDispatchAxisPointer:function(){if(this._handle){var t=this._payloadInfo,e=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:t.cursorPoint[0],y:t.cursorPoint[1],tooltipOption:t.tooltipOption,axesInfo:[{axisDim:e.axis.dim,axisIndex:e.componentIndex}]})}},_onHandleDragEnd:function(t){if(this._dragging=!1,this._handle){var e=this._axisPointerModel.get("value");this._moveHandleToValue(e),this._api.dispatchAction({type:"hideTip"})}},getHandleTransform:null,updateHandleTransform:null,clear:function(t){this._lastValue=null,this._lastStatus=null;var e=t.getZr(),i=this._group,n=this._handle;e&&i&&(this._lastGraphicKey=null,i&&e.remove(i),n&&e.remove(n),this._group=null,this._handle=null,this._payloadInfo=null)},doClear:function(){},buildLabel:function(t,e,i){return i=i||0,{x:t[i],y:t[1-i],width:e[i],height:e[1-i]}}}).constructor=Og,Gi(Og);var rk=Og.extend({makeElOption:function(t,e,i,n,o){var a=i.axis,r=a.grid,s=n.get("type"),l=qg(r,a).getOtherAxis(a).getGlobalExtent(),u=a.toGlobalCoord(a.dataToCoord(e,!0));if(s&&"none"!==s){var h=Gg(n),c=sk[s](a,u,l,h);c.style=h,t.graphicKey=c.type,t.pointer=c}Ug(e,t,eh(r.model,i),i,n,o)},getHandleTransform:function(t,e,i){var n=eh(e.axis.grid.model,e,{labelInside:!1});return n.labelMargin=i.get("handle.margin"),{position:Zg(e.axis,t,n),rotation:n.rotation+(n.labelDirection<0?Math.PI:0)}},updateHandleTransform:function(t,e,i,n){var o=i.axis,a=o.grid,r=o.getGlobalExtent(!0),s=qg(a,o).getOtherAxis(o).getGlobalExtent(),l="x"===o.dim?0:1,u=t.position;u[l]+=e[l],u[l]=Math.min(r[1],u[l]),u[l]=Math.max(r[0],u[l]);var h=(s[1]+s[0])/2,c=[h,h];c[l]=u[l];var d=[{verticalAlign:"middle"},{align:"center"}];return{position:u,rotation:t.rotation,cursorPoint:c,tooltipOption:d[l]}}}),sk={line:function(t,e,i,n){var o=Xg([e,i[0]],[e,i[1]],Kg(t));return Gn({shape:o,style:n}),{type:"Line",shape:o}},shadow:function(t,e,i,n){var o=Math.max(1,t.getBandWidth()),a=i[1]-i[0];return{type:"Rect",shape:jg([e-o/2,i[0]],[o,a],Kg(t))}}};ED.registerAxisPointerClass("CartesianAxisPointer",rk),us(function(t){if(t){(!t.axisPointer||0===t.axisPointer.length)&&(t.axisPointer={});var e=t.axisPointer.link;e&&!y(e)&&(t.axisPointer.link=[e])}}),hs(LI.PROCESSOR.STATISTIC,function(t,e){t.getComponent("axisPointer").coordSysAxesInfo=Fu(t,e)}),cs({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},function(t,e,i){var n=t.currTrigger,o=[t.x,t.y],a=t,r=t.dispatchAction||m(i.dispatchAction,i),s=e.getComponent("axisPointer").coordSysAxesInfo;if(s){Tg(o)&&(o=KL({seriesIndex:a.seriesIndex,dataIndex:a.dataIndex},e).point);var l=Tg(o),u=a.axesInfo,h=s.axesInfo,c="leave"===n||Tg(o),d={},f={},p={list:[],map:{}},g={showPointer:JL(xg,f),showTooltip:JL(_g,p)};$L(s.coordSysMap,function(t,e){var i=l||t.containPoint(o);$L(s.coordSysAxesInfo[e],function(t,e){var n=t.axis,a=Mg(u,t);if(!c&&i&&(!u||a)){var r=a&&a.value;null!=r||l||(r=n.pointToData(o)),null!=r&&vg(t,r,g,!1,d)}})});var v={};return $L(h,function(t,e){var i=t.linkGroup;i&&!f[e]&&$L(i.axesInfo,function(e,n){var o=f[n];if(e!==t&&o){var a=o.value;i.mapper&&(a=t.axis.scale.parse(i.mapper(a,Ig(e),Ig(t)))),v[t.key]=a}})}),$L(v,function(t,e){vg(h[e],t,g,!0,d)}),wg(f,h,d),bg(p,o,t,r),Sg(h,0,i),d}});var lk=["x","y"],uk=["width","height"],hk=Og.extend({makeElOption:function(t,e,i,n,o){var a=i.axis,r=a.coordinateSystem,s=Jg(r,1-$g(a)),l=r.dataToPoint(e)[0],u=n.get("type");if(u&&"none"!==u){var h=Gg(n),c=ck[u](a,l,s,h);c.style=h,t.graphicKey=c.type,t.pointer=c}Ug(e,t,mg(i),i,n,o)},getHandleTransform:function(t,e,i){var n=mg(e,{labelInside:!1});return n.labelMargin=i.get("handle.margin"),{position:Zg(e.axis,t,n),rotation:n.rotation+(n.labelDirection<0?Math.PI:0)}},updateHandleTransform:function(t,e,i,n){var o=i.axis,a=o.coordinateSystem,r=$g(o),s=Jg(a,r),l=t.position;l[r]+=e[r],l[r]=Math.min(s[1],l[r]),l[r]=Math.max(s[0],l[r]);var u=Jg(a,1-r),h=(u[1]+u[0])/2,c=[h,h];return c[r]=l[r],{position:l,rotation:t.rotation,cursorPoint:c,tooltipOption:{verticalAlign:"middle"}}}}),ck={line:function(t,e,i,n){var o=Xg([e,i[0]],[e,i[1]],$g(t));return Gn({shape:o,style:n}),{type:"Line",shape:o}},shadow:function(t,e,i,n){var o=t.getBandWidth(),a=i[1]-i[0];return{type:"Rect",shape:jg([e-o/2,i[0]],[o,a],$g(t))}}};ED.registerAxisPointerClass("SingleAxisPointer",hk),ys({type:"single"});var dk=KM.extend({type:"series.themeRiver",dependencies:["singleAxis"],nameMap:null,init:function(t){dk.superApply(this,"init",arguments),this.legendDataProvider=function(){return this.getRawData()}},fixData:function(t){for(var e=t.length,i=f(Jf().key(function(t){return t[2]}).entries(t),function(t){return{name:t.key,dataList:t.values}}),n=i.length,o=-1,a=-1,r=0;ro&&(o=s,a=r)}for(var l=0;lMath.PI/2?"right":"left"):x&&"center"!==x?"left"===x?(f=u.r0+y,p>Math.PI/2&&(x="right")):"right"===x&&(f=u.r-y,p>Math.PI/2&&(x="left")):(f=(u.r+u.r0)/2,x="center"),d.attr("style",{text:l,textAlign:x,textVerticalAlign:n("verticalAlign")||"middle",opacity:n("opacity")});var _=f*g+u.cx,w=f*m+u.cy;d.attr("position",[_,w]);var b=n("rotate"),S=0;"radial"===b?(S=-p)<-Math.PI/2&&(S+=Math.PI):"tangential"===b?(S=Math.PI/2-p)>Math.PI/2?S-=Math.PI:S<-Math.PI/2&&(S+=Math.PI):"number"==typeof b&&(S=b*Math.PI/180),d.attr("rotation",S)},mk._initEvents=function(t,e,i,n){t.off("mouseover").off("mouseout").off("emphasis").off("normal");var o=this,a=function(){o.onEmphasis(n)},r=function(){o.onNormal()};i.isAnimationEnabled()&&t.on("mouseover",a).on("mouseout",r).on("emphasis",a).on("normal",r).on("downplay",function(){o.onDownplay()}).on("highlight",function(){o.onHighlight()})},u(nm,sw);gr.extend({type:"sunburst",init:function(){},render:function(t,e,i,n){function o(i,n){if(c||!i||i.getValue()||(i=null),i!==l&&n!==l)if(n&&n.piece)i?(n.piece.updateData(!1,i,"normal",t,e),s.setItemGraphicEl(i.dataIndex,n.piece)):a(n);else if(i){var o=new nm(i,t,e);h.add(o),s.setItemGraphicEl(i.dataIndex,o)}}function a(t){t&&t.piece&&(h.remove(t.piece),t.piece=null)}var r=this;this.seriesModel=t,this.api=i,this.ecModel=e;var s=t.getData(),l=s.tree.root,u=t.getViewRoot(),h=this.group,c=t.get("renderLabelForZeroData"),d=[];u.eachNode(function(t){d.push(t)});var f=this._oldChildren||[];if(function(t,e){function i(t){return t.getId()}function n(i,n){o(null==i?null:t[i],null==n?null:e[n])}0===t.length&&0===e.length||new Ss(e,t,i,i).add(n).update(n).remove(v(n,null)).execute()}(d,f),function(i,n){if(n.depth>0){r.virtualPiece?r.virtualPiece.updateData(!1,i,"normal",t,e):(r.virtualPiece=new nm(i,t,e),h.add(r.virtualPiece)),n.piece._onclickEvent&&n.piece.off("click",n.piece._onclickEvent);var o=function(t){r._rootToNode(n.parentNode)};n.piece._onclickEvent=o,r.virtualPiece.on("click",o)}else r.virtualPiece&&(h.remove(r.virtualPiece),r.virtualPiece=null)}(l,u),n&&n.highlight&&n.highlight.piece){var p=t.getShallow("highlightPolicy");n.highlight.piece.onEmphasis(p)}else if(n&&n.unhighlight){var g=this.virtualPiece;!g&&l.children.length&&(g=l.children[0].piece),g&&g.onNormal()}this._initEvents(),this._oldChildren=d},dispose:function(){},_initEvents:function(){var t=this,e=function(e){var i=!1;t.seriesModel.getViewRoot().eachNode(function(n){if(!i&&n.piece&&n.piece.childAt(0)===e.target){var o=n.getModel().get("nodeClick");if("rootToNode"===o)t._rootToNode(n);else if("link"===o){var a=n.getModel(),r=a.get("link");if(r){var s=a.get("target",!0)||"_blank";window.open(r,s)}}i=!0}})};this.group._onclickEvent&&this.group.off("click",this.group._onclickEvent),this.group.on("click",e),this.group._onclickEvent=e},_rootToNode:function(t){t!==this.seriesModel.getViewRoot()&&this.api.dispatchAction({type:"sunburstRootToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:t})},containPoint:function(t,e){var i=e.getData().getItemLayout(0);if(i){var n=t[0]-i.cx,o=t[1]-i.cy,a=Math.sqrt(n*n+o*o);return a<=i.r&&a>=i.r0}}});var vk="sunburstRootToNode";cs({type:vk,update:"updateView"},function(t,e){e.eachComponent({mainType:"series",subType:"sunburst",query:t},function(e,i){var n=Ic(t,[vk],e);if(n){var o=e.getViewRoot();o&&(t.direction=Dc(o,n.node)?"rollUp":"drillDown"),e.resetViewRoot(n.node)}})});var yk="sunburstHighlight";cs({type:yk,update:"updateView"},function(t,e){e.eachComponent({mainType:"series",subType:"sunburst",query:t},function(e,i){var n=Ic(t,[yk],e);n&&(t.highlight=n.node)})});cs({type:"sunburstUnhighlight",update:"updateView"},function(t,e){e.eachComponent({mainType:"series",subType:"sunburst",query:t},function(e,i){t.unhighlight=!0})});var xk=Math.PI/180;ps(v(JD,"sunburst")),fs(v(function(t,e,i,n){e.eachSeriesByType(t,function(t){var e=t.get("center"),n=t.get("radius");y(n)||(n=[0,n]),y(e)||(e=[e,e]);var o=i.getWidth(),a=i.getHeight(),r=Math.min(o,a),s=Do(e[0],o),l=Do(e[1],a),u=Do(n[0],r/2),h=Do(n[1],r/2),c=-t.get("startAngle")*xk,f=t.get("minAngle")*xk,p=t.getData().tree.root,g=t.getViewRoot(),m=g.depth,v=t.get("sort");null!=v&&sm(g,v);var x=0;d(g.children,function(t){!isNaN(t.getValue())&&x++});var _=g.getValue(),w=Math.PI/(_||x)*2,b=g.depth>0,S=g.height-(b?-1:1),M=(h-u)/(S||1),I=t.get("clockwise"),T=t.get("stillShowZeroSum"),D=I?1:-1,A=function(t,e){if(t){var i=e;if(t!==p){var n=t.getValue(),o=0===_&&T?w:n*w;on[1]&&n.reverse(),{coordSys:{type:"polar",cx:t.cx,cy:t.cy,r:n[1],r0:n[0]},api:{coord:m(function(n){var o=e.dataToRadius(n[0]),a=i.dataToAngle(n[1]),r=t.coordToPoint([o,a]);return r.push(o,a*Math.PI/180),r}),size:m(dm,t)}}},calendar:function(t){var e=t.getRect(),i=t.getRangeInfo();return{coordSys:{type:"calendar",x:e.x,y:e.y,width:e.width,height:e.height,cellWidth:t.getCellWidth(),cellHeight:t.getCellHeight(),rangeInfo:{start:i.start,end:i.end,weeks:i.weeks,dayCount:i.allDay}},api:{coord:function(e,i){return t.dataToPoint(e,i)}}}}};xs({type:"series.custom",dependencies:["grid","polar","geo","singleAxis","calendar"],defaultOption:{coordinateSystem:"cartesian2d",zlevel:0,z:2,legendHoverLink:!0},getInitialData:function(t,e){return Xs(this.getSource(),this)}}),_s({type:"custom",_data:null,render:function(t,e,i){var n=this._data,o=t.getData(),a=this.group,r=mm(t,o,e,i);this.group.removeAll(),o.diff(n).add(function(e){ym(null,e,r(e),t,a,o)}).update(function(e,i){ym(n.getItemGraphicEl(i),e,r(e),t,a,o)}).remove(function(t){var e=n.getItemGraphicEl(t);e&&a.remove(e)}).execute(),this._data=o},incrementalPrepareRender:function(t,e,i){this.group.removeAll(),this._data=null},incrementalRender:function(t,e,i,n){for(var o=e.getData(),a=mm(e,o,i,n),r=t.start;r=0;l--)null==o[l]?o.splice(l,1):delete o[l].$action},_flatten:function(t,e,i){d(t,function(t){if(t){i&&(t.parentOption=i),e.push(t);var n=t.children;"group"===t.type&&n&&this._flatten(n,e,t),delete t.children}},this)},useElOptionsToUpdate:function(){var t=this._elOptionsToUpdate;return this._elOptionsToUpdate=null,t}});ys({type:"graphic",init:function(t,e){this._elMap=R(),this._lastGraphicModel},render:function(t,e,i){t!==this._lastGraphicModel&&this._clear(),this._lastGraphicModel=t,this._updateElements(t,i),this._relocate(t,i)},_updateElements:function(t,e){var i=t.useElOptionsToUpdate();if(i){var n=this._elMap,o=this.group;d(i,function(t){var e=t.$action,i=t.id,a=n.get(i),r=t.parentId,s=null!=r?n.get(r):o;if("text"===t.type){var l=t.style;t.hv&&t.hv[1]&&(l.textVerticalAlign=l.textBaseline=null),!l.hasOwnProperty("textFill")&&l.fill&&(l.textFill=l.fill),!l.hasOwnProperty("textStroke")&&l.stroke&&(l.textStroke=l.stroke)}var u=Tm(t);e&&"merge"!==e?"replace"===e?(Im(a,n),Mm(i,s,u,n)):"remove"===e&&Im(a,n):a?a.attr(u):Mm(i,s,u,n);var h=n.get(i);h&&(h.__ecGraphicWidth=t.width,h.__ecGraphicHeight=t.height)})}},_relocate:function(t,e){for(var i=t.option.elements,n=this.group,o=this._elMap,a=i.length-1;a>=0;a--){var r=i[a],s=o.get(r.id);if(s){var l=s.parent;ta(s,r,l===n?{width:e.getWidth(),height:e.getHeight()}:{width:l.__ecGraphicWidth||0,height:l.__ecGraphicHeight||0},null,{hv:r.hv,boundingMode:r.bounding})}}},_clear:function(){var t=this._elMap;t.each(function(e){Im(e,t)}),this._elMap=R()},dispose:function(){this._clear()}});var Dk=vs({type:"legend.plain",dependencies:["series"],layoutMode:{type:"box",ignoreSize:!0},init:function(t,e,i){this.mergeDefaultAndTheme(t,i),t.selected=t.selected||{}},mergeOption:function(t){Dk.superCall(this,"mergeOption",t)},optionUpdated:function(){this._updateData(this.ecModel);var t=this._data;if(t[0]&&"single"===this.get("selectedMode")){for(var e=!1,i=0;i=0},defaultOption:{zlevel:0,z:4,show:!0,orient:"horizontal",left:"center",top:0,align:"auto",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,inactiveColor:"#ccc",textStyle:{color:"#333"},selectedMode:!0,tooltip:{show:!1}}});cs("legendToggleSelect","legendselectchanged",v(km,"toggleSelected")),cs("legendSelect","legendselected",v(km,"select")),cs("legendUnSelect","legendunselected",v(km,"unSelect"));var Ak=v,Ck=d,Lk=sw,kk=ys({type:"legend.plain",newlineDisabled:!1,init:function(){this.group.add(this._contentGroup=new Lk),this._backgroundEl},getContentGroup:function(){return this._contentGroup},render:function(t,e,i){if(this.resetInner(),t.get("show",!0)){var n=t.get("align");n&&"auto"!==n||(n="right"===t.get("left")&&"vertical"===t.get("orient")?"right":"left"),this.renderInner(n,t,e,i);var o=t.getBoxLayoutParams(),a={width:i.getWidth(),height:i.getHeight()},s=t.get("padding"),l=Qo(o,a,s),u=this.layoutInner(t,n,l),h=Qo(r({width:u.width,height:u.height},o),a,s);this.group.attr("position",[h.x-u.x,h.y-u.y]),this.group.add(this._backgroundEl=Nm(u,t))}},resetInner:function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl)},renderInner:function(t,e,i,n){var o=this.getContentGroup(),a=R(),r=e.get("selectedMode"),s=[];i.eachRawSeries(function(t){!t.get("legendHoverLink")&&s.push(t.id)}),Ck(e.getData(),function(l,u){var h=l.get("name");if(this.newlineDisabled||""!==h&&"\n"!==h){var c=i.getSeriesByName(h)[0];if(!a.get(h))if(c){var d=c.getData(),f=d.getVisual("color");"function"==typeof f&&(f=f(c.getDataParams(0)));var p=d.getVisual("legendSymbol")||"roundRect",g=d.getVisual("symbol");this._createItem(h,u,l,e,p,g,t,f,r).on("click",Ak(Om,h,n)).on("mouseover",Ak(Em,c,null,n,s)).on("mouseout",Ak(Rm,c,null,n,s)),a.set(h,!0)}else i.eachRawSeries(function(i){if(!a.get(h)&&i.legendDataProvider){var o=i.legendDataProvider(),c=o.indexOfName(h);if(c<0)return;var d=o.getItemVisual(c,"color");this._createItem(h,u,l,e,"roundRect",null,t,d,r).on("click",Ak(Om,h,n)).on("mouseover",Ak(Em,i,h,n,s)).on("mouseout",Ak(Rm,i,h,n,s)),a.set(h,!0)}},this)}else o.add(new Lk({newline:!0}))},this)},_createItem:function(t,e,i,n,o,r,s,l,u){var h=n.get("itemWidth"),c=n.get("itemHeight"),d=n.get("inactiveColor"),f=n.get("symbolKeepAspect"),p=n.isSelected(t),g=new Lk,m=i.getModel("textStyle"),v=i.get("icon"),y=i.getModel("tooltip"),x=y.parentModel;if(o=v||o,g.add(Tl(o,0,0,h,c,p?l:d,null==f||f)),!v&&r&&(r!==o||"none"==r)){var _=.8*c;"none"===r&&(r="circle"),g.add(Tl(r,(h-_)/2,(c-_)/2,_,_,p?l:d,null==f||f))}var w="left"===s?h+5:-5,b=s,S=n.get("formatter"),M=t;"string"==typeof S&&S?M=S.replace("{name}",null!=t?t:""):"function"==typeof S&&(M=S(t)),g.add(new fS({style:no({},m,{text:M,x:w,y:c/2,textFill:p?m.getTextColor():d,textAlign:b,textVerticalAlign:"middle"})}));var I=new SS({shape:g.getBoundingRect(),invisible:!0,tooltip:y.get("show")?a({content:t,formatter:x.get("formatter",!0)||function(){return t},formatterParams:{componentType:"legend",legendIndex:n.componentIndex,name:t,$vars:["name"]}},y.option):null});return g.add(I),g.eachChild(function(t){t.silent=!0}),I.silent=!u,this.getContentGroup().add(g),eo(g),g.__legendDataIndex=e,g},layoutInner:function(t,e,i){var n=this.getContentGroup();sM(t.get("orient"),n,t.get("itemGap"),i.width,i.height);var o=n.getBoundingRect();return n.attr("position",[-o.x,-o.y]),this.group.getBoundingRect()}});hs(function(t){var e=t.findComponents({mainType:"legend"});e&&e.length&&t.filterSeries(function(t){for(var i=0;ii[s],f=[-h.x,-h.y];f[r]=n.position[r];var p=[0,0],g=[-c.x,-c.y],m=D(t.get("pageButtonGap",!0),t.get("itemGap",!0));d&&("end"===t.get("pageButtonPosition",!0)?g[r]+=i[s]-c[s]:p[r]+=c[s]+m),g[1-r]+=h[l]/2-c[l]/2,n.attr("position",f),o.attr("position",p),a.attr("position",g);var v=this.group.getBoundingRect();if((v={x:0,y:0})[s]=d?i[s]:h[s],v[l]=Math.max(h[l],c[l]),v[u]=Math.min(0,c[u]+g[1-r]),o.__rectSize=i[s],d){var y={x:0,y:0};y[s]=Math.max(i[s]-c[s]-m,0),y[l]=v[l],o.setClipPath(new SS({shape:y})),o.__rectSize=y[s]}else a.eachChild(function(t){t.attr({invisible:!0,silent:!0})});var x=this._getPageInfo(t);return null!=x.pageIndex&&fo(n,{position:x.contentPosition},!!d&&t),this._updatePageInfoView(t,x),v},_pageGo:function(t,e,i){var n=this._getPageInfo(e)[t];null!=n&&i.dispatchAction({type:"legendScroll",scrollDataIndex:n,legendId:e.id})},_updatePageInfoView:function(t,e){var i=this._controllerGroup;d(["pagePrev","pageNext"],function(n){var o=null!=e[n+"DataIndex"],a=i.childOfName(n);a&&(a.setStyle("fill",o?t.get("pageIconColor",!0):t.get("pageIconInactiveColor",!0)),a.cursor=o?"pointer":"default")});var n=i.childOfName("pageText"),o=t.get("pageFormatter"),a=e.pageIndex,r=null!=a?a+1:0,s=e.pageCount;n&&o&&n.setStyle("text",_(o)?o.replace("{current}",r).replace("{total}",s):o({current:r,total:s}))},_getPageInfo:function(t){function e(t){var e=t.getBoundingRect().clone();return e[f]+=t.position[h],e}var i,n,o,a,r=t.get("scrollDataIndex",!0),s=this.getContentGroup(),l=s.getBoundingRect(),u=this._containerGroup.__rectSize,h=t.getOrient().index,c=Ok[h],d=Ok[1-h],f=Ek[h],p=s.position.slice();this._showController?s.eachChild(function(t){t.__legendDataIndex===r&&(a=t)}):a=s.childAt(0);var g=u?Math.ceil(l[c]/u):0;if(a){var m=a.getBoundingRect(),v=a.position[h]+m[f];p[h]=-v-l[f],i=Math.floor(g*(v+m[f]+u/2)/l[c]),i=l[c]&&g?Math.max(0,Math.min(g-1,i)):-1;var y={x:0,y:0};y[c]=u,y[d]=l[d],y[f]=-p[h]-l[f];var x,_=s.children();if(s.eachChild(function(t,i){var n=e(t);n.intersect(y)&&(null==x&&(x=i),o=t.__legendDataIndex),i===_.length-1&&n[f]+n[c]<=y[f]+y[c]&&(o=null)}),null!=x){var w=e(_[x]);if(y[f]=w[f]+w[c]-y[c],x<=0&&w[f]>=y[f])n=null;else{for(;x>0&&e(_[x-1]).intersect(y);)x--;n=_[x].__legendDataIndex}}}return{contentPosition:p,pageIndex:i,pageCount:g,pagePrevDataIndex:n,pageNextDataIndex:o}}});cs("legendScroll","legendscroll",function(t,e){var i=t.scrollDataIndex;null!=i&&e.eachComponent({mainType:"legend",subType:"scroll",query:t},function(t){t.setScrollDataIndex(i)})}),vs({type:"tooltip",dependencies:["axisPointer"],defaultOption:{zlevel:0,z:8,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove|click",alwaysShowContent:!1,displayMode:"single",confine:!1,showDelay:0,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"rgba(50,50,50,0.7)",borderColor:"#333",borderRadius:4,borderWidth:0,padding:5,extraCssText:"",axisPointer:{type:"line",axis:"auto",animation:"auto",animationDurationUpdate:200,animationEasingUpdate:"exponentialOut",crossStyle:{color:"#999",width:1,type:"dashed",textStyle:{}}},textStyle:{color:"#fff",fontSize:14}}});var zk=d,Bk=Ho,Vk=["","-webkit-","-moz-","-o-"];Wm.prototype={constructor:Wm,_enterable:!0,update:function(){var t=this._container,e=t.currentStyle||document.defaultView.getComputedStyle(t),i=t.style;"absolute"!==i.position&&"absolute"!==e.position&&(i.position="relative")},show:function(t){clearTimeout(this._hideTimeout);var e=this.el;e.style.cssText="position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;"+Gm(t)+";left:"+this._x+"px;top:"+this._y+"px;"+(t.get("extraCssText")||""),e.style.display=e.innerHTML?"block":"none",this._show=!0},setContent:function(t){this.el.innerHTML=null==t?"":t},setEnterable:function(t){this._enterable=t},getSize:function(){var t=this.el;return[t.clientWidth,t.clientHeight]},moveTo:function(t,e){var i,n=this._zr;n&&n.painter&&(i=n.painter.getViewportRootOffset())&&(t+=i.offsetLeft,e+=i.offsetTop);var o=this.el.style;o.left=t+"px",o.top=e+"px",this._x=t,this._y=e},hide:function(){this.el.style.display="none",this._show=!1},hideLater:function(t){!this._show||this._inContent&&this._enterable||(t?(this._hideDelay=t,this._show=!1,this._hideTimeout=setTimeout(m(this.hide,this),t)):this.hide())},isShow:function(){return this._show}};var Gk=m,Wk=d,Fk=Do,Hk=new SS({shape:{x:-1,y:-1,width:2,height:2}});ys({type:"tooltip",init:function(t,e){if(!a_.node){var i=new Wm(e.getDom(),e);this._tooltipContent=i}},render:function(t,e,i){if(!a_.node&&!a_.wxa){this.group.removeAll(),this._tooltipModel=t,this._ecModel=e,this._api=i,this._lastDataByCoordSys=null,this._alwaysShowContent=t.get("alwaysShowContent");var n=this._tooltipContent;n.update(),n.setEnterable(t.get("enterable")),this._initGlobalListener(),this._keepShow()}},_initGlobalListener:function(){var t=this._tooltipModel.get("triggerOn");Dg("itemTooltip",this._api,Gk(function(e,i,n){"none"!==t&&(t.indexOf(e)>=0?this._tryShow(i,n):"leave"===e&&this._hide(n))},this))},_keepShow:function(){var t=this._tooltipModel,e=this._ecModel,i=this._api;if(null!=this._lastX&&null!=this._lastY&&"none"!==t.get("triggerOn")){var n=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout(function(){n.manuallyShowTip(t,e,i,{x:n._lastX,y:n._lastY})})}},manuallyShowTip:function(t,e,i,n){if(n.from!==this.uid&&!a_.node){var o=Hm(n,i);this._ticket="";var a=n.dataByCoordSys;if(n.tooltip&&null!=n.x&&null!=n.y){var r=Hk;r.position=[n.x,n.y],r.update(),r.tooltip=n.tooltip,this._tryShow({offsetX:n.x,offsetY:n.y,target:r},o)}else if(a)this._tryShow({offsetX:n.x,offsetY:n.y,position:n.position,event:{},dataByCoordSys:n.dataByCoordSys,tooltipOption:n.tooltipOption},o);else if(null!=n.seriesIndex){if(this._manuallyAxisShowTip(t,e,i,n))return;var s=KL(n,e),l=s.point[0],u=s.point[1];null!=l&&null!=u&&this._tryShow({offsetX:l,offsetY:u,position:n.position,target:s.el,event:{}},o)}else null!=n.x&&null!=n.y&&(i.dispatchAction({type:"updateAxisPointer",x:n.x,y:n.y}),this._tryShow({offsetX:n.x,offsetY:n.y,position:n.position,target:i.getZr().findHover(n.x,n.y).target,event:{}},o))}},manuallyHideTip:function(t,e,i,n){var o=this._tooltipContent;!this._alwaysShowContent&&this._tooltipModel&&o.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=null,n.from!==this.uid&&this._hide(Hm(n,i))},_manuallyAxisShowTip:function(t,e,i,n){var o=n.seriesIndex,a=n.dataIndex,r=e.getComponent("axisPointer").coordSysAxesInfo;if(null!=o&&null!=a&&null!=r){var s=e.getSeriesByIndex(o);if(s&&"axis"===(t=Fm([s.getData().getItemModel(a),s,(s.coordinateSystem||{}).model,t])).get("trigger"))return i.dispatchAction({type:"updateAxisPointer",seriesIndex:o,dataIndex:a,position:n.position}),!0}},_tryShow:function(t,e){var i=t.target;if(this._tooltipModel){this._lastX=t.offsetX,this._lastY=t.offsetY;var n=t.dataByCoordSys;n&&n.length?this._showAxisTooltip(n,t):i&&null!=i.dataIndex?(this._lastDataByCoordSys=null,this._showSeriesItemTooltip(t,i,e)):i&&i.tooltip?(this._lastDataByCoordSys=null,this._showComponentItemTooltip(t,i,e)):(this._lastDataByCoordSys=null,this._hide(e))}},_showOrMove:function(t,e){var i=t.get("showDelay");e=m(e,this),clearTimeout(this._showTimout),i>0?this._showTimout=setTimeout(e,i):e()},_showAxisTooltip:function(t,e){var i=this._ecModel,n=this._tooltipModel,o=[e.offsetX,e.offsetY],a=[],r=[],s=Fm([e.tooltipOption,n]);Wk(t,function(t){Wk(t.dataByAxis,function(t){var e=i.getComponent(t.axisDim+"Axis",t.axisIndex),n=t.value,o=[];if(e&&null!=n){var s=Hg(n,e.axis,i,t.seriesDataIndices,t.valueLabelOpt);d(t.seriesDataIndices,function(a){var l=i.getSeriesByIndex(a.seriesIndex),u=a.dataIndexInside,h=l&&l.getDataParams(u);h.axisDim=t.axisDim,h.axisIndex=t.axisIndex,h.axisType=t.axisType,h.axisId=t.axisId,h.axisValue=bl(e.axis,n),h.axisValueLabel=s,h&&(r.push(h),o.push(l.formatTooltip(u,!0)))});var l=s;a.push((l?Zo(l)+"
":"")+o.join("
"))}})},this),a.reverse(),a=a.join("

");var l=e.position;this._showOrMove(s,function(){this._updateContentNotChangedOnAxis(t)?this._updatePosition(s,l,o[0],o[1],this._tooltipContent,r):this._showTooltipContent(s,a,r,Math.random(),o[0],o[1],l)})},_showSeriesItemTooltip:function(t,e,i){var n=this._ecModel,o=e.seriesIndex,a=n.getSeriesByIndex(o),r=e.dataModel||a,s=e.dataIndex,l=e.dataType,u=r.getData(),h=Fm([u.getItemModel(s),r,a&&(a.coordinateSystem||{}).model,this._tooltipModel]),c=h.get("trigger");if(null==c||"item"===c){var d=r.getDataParams(s,l),f=r.formatTooltip(s,!1,l),p="item_"+r.name+"_"+s;this._showOrMove(h,function(){this._showTooltipContent(h,f,d,p,t.offsetX,t.offsetY,t.position,t.target)}),i({type:"showTip",dataIndexInside:s,dataIndex:u.getRawIndex(s),seriesIndex:o,from:this.uid})}},_showComponentItemTooltip:function(t,e,i){var n=e.tooltip;if("string"==typeof n){var o=n;n={content:o,formatter:o}}var a=new wo(n,this._tooltipModel,this._ecModel),r=a.get("content"),s=Math.random();this._showOrMove(a,function(){this._showTooltipContent(a,r,a.get("formatterParams")||{},s,t.offsetX,t.offsetY,t.position,e)}),i({type:"showTip",from:this.uid})},_showTooltipContent:function(t,e,i,n,o,a,r,s){if(this._ticket="",t.get("showContent")&&t.get("show")){var l=this._tooltipContent,u=t.get("formatter");r=r||t.get("position");var h=e;if(u&&"string"==typeof u)h=Uo(u,i,!0);else if("function"==typeof u){var c=Gk(function(e,n){e===this._ticket&&(l.setContent(n),this._updatePosition(t,r,o,a,l,i,s))},this);this._ticket=n,h=u(i,n,c)}l.setContent(h),l.show(t),this._updatePosition(t,r,o,a,l,i,s)}},_updatePosition:function(t,e,i,n,o,a,r){var s=this._api.getWidth(),l=this._api.getHeight();e=e||t.get("position");var u=o.getSize(),h=t.get("align"),c=t.get("verticalAlign"),d=r&&r.getBoundingRect().clone();if(r&&d.applyTransform(r.transform),"function"==typeof e&&(e=e([i,n],a,o.el,d,{viewSize:[s,l],contentSize:u.slice()})),y(e))i=Fk(e[0],s),n=Fk(e[1],l);else if(w(e)){e.width=u[0],e.height=u[1];var f=Qo(e,{width:s,height:l});i=f.x,n=f.y,h=null,c=null}else"string"==typeof e&&r?(i=(p=jm(e,d,u))[0],n=p[1]):(i=(p=Zm(i,n,o.el,s,l,h?null:20,c?null:20))[0],n=p[1]);if(h&&(i-=Ym(h)?u[0]/2:"right"===h?u[0]:0),c&&(n-=Ym(c)?u[1]/2:"bottom"===c?u[1]:0),t.get("confine")){var p=Um(i,n,o.el,s,l);i=p[0],n=p[1]}o.moveTo(i,n)},_updateContentNotChangedOnAxis:function(t){var e=this._lastDataByCoordSys,i=!!e&&e.length===t.length;return i&&Wk(e,function(e,n){var o=e.dataByAxis||{},a=(t[n]||{}).dataByAxis||[];(i&=o.length===a.length)&&Wk(o,function(t,e){var n=a[e]||{},o=t.seriesDataIndices||[],r=n.seriesDataIndices||[];(i&=t.value===n.value&&t.axisType===n.axisType&&t.axisId===n.axisId&&o.length===r.length)&&Wk(o,function(t,e){var n=r[e];i&=t.seriesIndex===n.seriesIndex&&t.dataIndex===n.dataIndex})})}),this._lastDataByCoordSys=t,!!i},_hide:function(t){this._lastDataByCoordSys=null,t({type:"hideTip",from:this.uid})},dispose:function(t,e){a_.node||a_.wxa||(this._tooltipContent.hide(),Ng("itemTooltip",e))}}),cs({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},function(){}),cs({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},function(){}),Jm.prototype={constructor:Jm,pointToData:function(t,e){return this.polar.pointToData(t,e)["radius"===this.dim?0:1]},dataToRadius:qT.prototype.dataToCoord,radiusToData:qT.prototype.coordToData},u(Jm,qT),Qm.prototype={constructor:Qm,pointToData:function(t,e){return this.polar.pointToData(t,e)["radius"===this.dim?0:1]},dataToAngle:qT.prototype.dataToCoord,angleToData:qT.prototype.coordToData},u(Qm,qT);var Zk=function(t){this.name=t||"",this.cx=0,this.cy=0,this._radiusAxis=new Jm,this._angleAxis=new Qm,this._radiusAxis.polar=this._angleAxis.polar=this};Zk.prototype={type:"polar",axisPointerEnabled:!0,constructor:Zk,dimensions:["radius","angle"],model:null,containPoint:function(t){var e=this.pointToCoord(t);return this._radiusAxis.contain(e[0])&&this._angleAxis.contain(e[1])},containData:function(t){return this._radiusAxis.containData(t[0])&&this._angleAxis.containData(t[1])},getAxis:function(t){return this["_"+t+"Axis"]},getAxes:function(){return[this._radiusAxis,this._angleAxis]},getAxesByScale:function(t){var e=[],i=this._angleAxis,n=this._radiusAxis;return i.scale.type===t&&e.push(i),n.scale.type===t&&e.push(n),e},getAngleAxis:function(){return this._angleAxis},getRadiusAxis:function(){return this._radiusAxis},getOtherAxis:function(t){var e=this._angleAxis;return t===e?this._radiusAxis:e},getBaseAxis:function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAngleAxis()},getTooltipAxes:function(t){var e=null!=t&&"auto"!==t?this.getAxis(t):this.getBaseAxis();return{baseAxes:[e],otherAxes:[this.getOtherAxis(e)]}},dataToPoint:function(t,e){return this.coordToPoint([this._radiusAxis.dataToRadius(t[0],e),this._angleAxis.dataToAngle(t[1],e)])},pointToData:function(t,e){var i=this.pointToCoord(t);return[this._radiusAxis.radiusToData(i[0],e),this._angleAxis.angleToData(i[1],e)]},pointToCoord:function(t){var e=t[0]-this.cx,i=t[1]-this.cy,n=this.getAngleAxis(),o=n.getExtent(),a=Math.min(o[0],o[1]),r=Math.max(o[0],o[1]);n.inverse?a=r-360:r=a+360;var s=Math.sqrt(e*e+i*i);e/=s,i/=s;for(var l=Math.atan2(-i,e)/Math.PI*180,u=lr;)l+=360*u;return[s,l]},coordToPoint:function(t){var e=t[0],i=t[1]/180*Math.PI;return[Math.cos(i)*e+this.cx,-Math.sin(i)*e+this.cy]}};var Uk=hM.extend({type:"polarAxis",axis:null,getCoordSysModel:function(){return this.ecModel.queryComponents({mainType:"polar",index:this.option.polarIndex,id:this.option.polarId})[0]}});n(Uk.prototype,ET);var Xk={angle:{startAngle:90,clockwise:!0,splitNumber:12,axisLabel:{rotate:!1}},radius:{splitNumber:5}};MD("angle",Uk,tv,Xk.angle),MD("radius",Uk,tv,Xk.radius),vs({type:"polar",dependencies:["polarAxis","angleAxis"],coordinateSystem:null,findAxisModel:function(t){var e;return this.ecModel.eachComponent(t,function(t){t.getCoordSysModel()===this&&(e=t)},this),e},defaultOption:{zlevel:0,z:0,center:["50%","50%"],radius:"80%"}});var jk={dimensions:Zk.prototype.dimensions,create:function(t,e){var i=[];return t.eachComponent("polar",function(t,n){var o=new Zk(n);o.update=iv;var a=o.getRadiusAxis(),r=o.getAngleAxis(),s=t.findAxisModel("radiusAxis"),l=t.findAxisModel("angleAxis");nv(a,s),nv(r,l),ev(o,t,e),i.push(o),t.coordinateSystem=o,o.model=t}),t.eachSeries(function(e){if("polar"===e.get("coordinateSystem")){var i=t.queryComponents({mainType:"polar",index:e.get("polarIndex"),id:e.get("polarId")})[0];e.coordinateSystem=i.coordinateSystem}}),i}};Ca.register("polar",jk);var Yk=["axisLine","axisLabel","axisTick","splitLine","splitArea"];ED.extend({type:"angleAxis",axisPointerClass:"PolarAxisPointer",render:function(t,e){if(this.group.removeAll(),t.get("show")){var n=t.axis,o=n.polar,a=o.getRadiusAxis().getExtent(),r=n.getTicksCoords(),s=f(n.getViewLabels(),function(t){return(t=i(t)).coord=n.dataToCoord(t.tickValue),t});rv(s),rv(r),d(Yk,function(e){!t.get(e+".show")||n.scale.isBlank()&&"axisLine"!==e||this["_"+e](t,o,r,a,s)},this)}},_axisLine:function(t,e,i,n){var o=t.getModel("axisLine.lineStyle"),a=new pS({shape:{cx:e.cx,cy:e.cy,r:n[av(e)]},style:o.getLineStyle(),z2:1,silent:!0});a.style.fill=null,this.group.add(a)},_axisTick:function(t,e,i,n){var o=t.getModel("axisTick"),a=(o.get("inside")?-1:1)*o.get("length"),s=n[av(e)],l=f(i,function(t){return new MS({shape:ov(e,[s,s+a],t.coord)})});this.group.add(zS(l,{style:r(o.getModel("lineStyle").getLineStyle(),{stroke:t.get("axisLine.lineStyle.color")})}))},_axisLabel:function(t,e,i,n,o){var a=t.getCategories(!0),r=t.getModel("axisLabel"),s=r.get("margin");d(o,function(i,o){var l=r,u=i.tickValue,h=n[av(e)],c=e.coordToPoint([h+s,i.coord]),d=e.cx,f=e.cy,p=Math.abs(c[0]-d)/h<.3?"center":c[0]>d?"left":"right",g=Math.abs(c[1]-f)/h<.3?"middle":c[1]>f?"top":"bottom";a&&a[u]&&a[u].textStyle&&(l=new wo(a[u].textStyle,r,r.ecModel));var m=new fS({silent:!0});this.group.add(m),no(m.style,l,{x:c[0],y:c[1],textFill:l.getTextColor()||t.get("axisLine.lineStyle.color"),text:i.formattedLabel,textAlign:p,textVerticalAlign:g})},this)},_splitLine:function(t,e,i,n){var o=t.getModel("splitLine").getModel("lineStyle"),a=o.get("color"),s=0;a=a instanceof Array?a:[a];for(var l=[],u=0;u=0?"p":"n",D=w;_&&(a[l][I]||(a[l][I]={p:w,n:w}),D=a[l][I][T]);var A,C,L,k;if("radius"===d.dim){var P=d.dataToRadius(M)-w,N=s.dataToAngle(I);Math.abs(P)=0},sP.findTargetInfo=function(t,e){for(var i=this._targetInfoList,n=Mv(e,t),o=0;o=0||nP(n,t.getAxis("y").model)>=0)&&a.push(t)}),e.push({panelId:"grid--"+t.id,gridModel:t,coordSysModel:t,coordSys:a[0],coordSyses:a,getPanelRect:hP.grid,xAxisDeclared:r[t.id],yAxisDeclared:s[t.id]})}))},geo:function(t,e){iP(t.geoModels,function(t){var i=t.coordinateSystem;e.push({panelId:"geo--"+t.id,geoModel:t,coordSysModel:t,coordSys:i,coordSyses:[i],getPanelRect:hP.geo})})}},uP=[function(t,e){var i=t.xAxisModel,n=t.yAxisModel,o=t.gridModel;return!o&&i&&(o=i.axis.grid.model),!o&&n&&(o=n.axis.grid.model),o&&o===e.gridModel},function(t,e){var i=t.geoModel;return i&&i===e.geoModel}],hP={grid:function(){return this.coordSys.grid.getRect().clone()},geo:function(){var t=this.coordSys,e=t.getBoundingRect().clone();return e.applyTransform(go(t)),e}},cP={lineX:oP(Iv,0),lineY:oP(Iv,1),rect:function(t,e,i){var n=e[aP[t]]([i[0][0],i[1][0]]),o=e[aP[t]]([i[0][1],i[1][1]]),a=[Sv([n[0],o[0]]),Sv([n[1],o[1]])];return{values:a,xyMinMax:a}},polygon:function(t,e,i){var n=[[1/0,-1/0],[1/0,-1/0]];return{values:f(i,function(i){var o=e[aP[t]](i);return n[0][0]=Math.min(n[0][0],o[0]),n[1][0]=Math.min(n[1][0],o[1]),n[0][1]=Math.max(n[0][1],o[0]),n[1][1]=Math.max(n[1][1],o[1]),o}),xyMinMax:n}}},dP={lineX:oP(Tv,0),lineY:oP(Tv,1),rect:function(t,e,i){return[[t[0][0]-i[0]*e[0][0],t[0][1]-i[0]*e[0][1]],[t[1][0]-i[1]*e[1][0],t[1][1]-i[1]*e[1][1]]]},polygon:function(t,e,i){return f(t,function(t,n){return[t[0]-i[0]*e[n][0],t[1]-i[1]*e[n][1]]})}},fP=["inBrush","outOfBrush"],pP="__ecBrushSelect",gP="__ecInBrushSelectEvent",mP=LI.VISUAL.BRUSH;fs(mP,function(t,e,i){t.eachComponent({mainType:"brush"},function(e){i&&"takeGlobalCursor"===i.type&&e.setBrushOption("brush"===i.key?i.brushOption:{brushType:!1}),(e.brushTargetManager=new bv(e.option,t)).setInputRanges(e.areas,t)})}),ps(mP,function(t,e,n){var o,a,s=[];t.eachComponent({mainType:"brush"},function(e,n){function l(t){return"all"===m||v[t]}function u(t){return!!t.length}function h(t,e){var i=t.coordinateSystem;w|=i.hasAxisBrushed(),l(e)&&i.eachActiveState(t.getData(),function(t,e){"active"===t&&(x[e]=1)})}function c(i,n,o){var a=Pv(i);if(a&&!Nv(e,n)&&(d(b,function(n){a[n.brushType]&&e.brushTargetManager.controlSeries(n,i,t)&&o.push(n),w|=u(o)}),l(n)&&u(o))){var r=i.getData();r.each(function(t){kv(a,o,r,t)&&(x[t]=1)})}}var p={brushId:e.id,brushIndex:n,brushName:e.name,areas:i(e.areas),selected:[]};s.push(p);var g=e.option,m=g.brushLink,v=[],x=[],_=[],w=0;n||(o=g.throttleType,a=g.throttleDelay);var b=f(e.areas,function(t){return Ov(r({boundingRect:vP[t.brushType](t)},t))}),S=dv(e.option,fP,function(t){t.mappingMethod="fixed"});y(m)&&d(m,function(t){v[t]=1}),t.eachSeries(function(t,e){var i=_[e]=[];"parallel"===t.subType?h(t,e):c(t,e,i)}),t.eachSeries(function(t,e){var i={seriesId:t.id,seriesIndex:e,seriesName:t.name,dataIndex:[]};p.selected.push(i);var n=Pv(t),o=_[e],a=t.getData(),r=l(e)?function(t){return x[t]?(i.dataIndex.push(a.getRawIndex(t)),"inBrush"):"outOfBrush"}:function(t){return kv(n,o,a,t)?(i.dataIndex.push(a.getRawIndex(t)),"inBrush"):"outOfBrush"};(l(e)?w:u(o))&&pv(fP,S,a,r)})}),Cv(e,o,a,s,n)});var vP={lineX:B,lineY:B,rect:function(t){return Ev(t.range)},polygon:function(t){for(var e,i=t.range,n=0,o=i.length;ne[0][1]&&(e[0][1]=a[0]),a[1]e[1][1]&&(e[1][1]=a[1])}return e&&Ev(e)}},yP=["#ddd"];vs({type:"brush",dependencies:["geo","grid","xAxis","yAxis","parallel","series"],defaultOption:{toolbox:null,brushLink:null,seriesIndex:"all",geoIndex:null,xAxisIndex:null,yAxisIndex:null,brushType:"rect",brushMode:"single",transformable:!0,brushStyle:{borderWidth:1,color:"rgba(120,140,180,0.3)",borderColor:"rgba(120,140,180,0.8)"},throttleType:"fixRate",throttleDelay:0,removeOnClick:!0,z:1e4},areas:[],brushType:null,brushOption:{},coordInfoList:[],optionUpdated:function(t,e){var i=this.option;!e&&fv(i,t,["inBrush","outOfBrush"]);var n=i.inBrush=i.inBrush||{};i.outOfBrush=i.outOfBrush||{color:yP},n.hasOwnProperty("liftZ")||(n.liftZ=5)},setAreas:function(t){t&&(this.areas=f(t,function(t){return Rv(this.option,t)},this))},setBrushOption:function(t){this.brushOption=Rv(this.option,t),this.brushType=this.brushOption.brushType}});ys({type:"brush",init:function(t,e){this.ecModel=t,this.api=e,this.model,(this._brushController=new Qd(e.getZr())).on("brush",m(this._onBrush,this)).mount()},render:function(t){return this.model=t,zv.apply(this,arguments)},updateTransform:zv,updateView:zv,dispose:function(){this._brushController.dispose()},_onBrush:function(t,e){var n=this.model.id;this.model.brushTargetManager.setOutputRanges(t,this.ecModel),(!e.isEnd||e.removeOnClick)&&this.api.dispatchAction({type:"brush",brushId:n,areas:i(t),$from:n})}}),cs({type:"brush",event:"brush"},function(t,e){e.eachComponent({mainType:"brush",query:t},function(e){e.setAreas(t.areas)})}),cs({type:"brushSelect",event:"brushSelected",update:"none"},function(){});var xP={},_P=lI.toolbox.brush;Gv.defaultOption={show:!0,type:["rect","polygon","lineX","lineY","keep","clear"],icon:{rect:"M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13",polygon:"M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2",lineX:"M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4",lineY:"M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4",keep:"M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z",clear:"M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2"},title:i(_P.title)};var wP=Gv.prototype;wP.render=wP.updateView=function(t,e,i){var n,o,a;e.eachComponent({mainType:"brush"},function(t){n=t.brushType,o=t.brushOption.brushMode||"single",a|=t.areas.length}),this._brushType=n,this._brushMode=o,d(t.get("type",!0),function(e){t.setIconStatus(e,("keep"===e?"multiple"===o:"clear"===e?a:e===n)?"emphasis":"normal")})},wP.getIcons=function(){var t=this.model,e=t.get("icon",!0),i={};return d(t.get("type",!0),function(t){e[t]&&(i[t]=e[t])}),i},wP.onclick=function(t,e,i){var n=this._brushType,o=this._brushMode;"clear"===i?(e.dispatchAction({type:"axisAreaSelect",intervals:[]}),e.dispatchAction({type:"brush",command:"clear",areas:[]})):e.dispatchAction({type:"takeGlobalCursor",key:"brush",brushOption:{brushType:"keep"===i?n:n!==i&&i,brushMode:"keep"===i?"multiple"===o?"single":"multiple":o}})},Bv("brush",Gv),us(function(t,e){var i=t&&t.brush;if(y(i)||(i=i?[i]:[]),i.length){var n=[];d(i,function(t){var e=t.hasOwnProperty("toolbox")?t.toolbox:[];e instanceof Array&&(n=n.concat(e))});var o=t&&t.toolbox;y(o)&&(o=o[0]),o||(o={feature:{}},t.toolbox=[o]);var a=o.feature||(o.feature={}),r=a.brush||(a.brush={}),s=r.type||(r.type=[]);s.push.apply(s,n),hv(s),e&&!s.length&&s.push.apply(s,Qk)}});Wv.prototype={constructor:Wv,type:"calendar",dimensions:["time","value"],getDimensionsInfo:function(){return[{name:"time",type:"time"},"value"]},getRangeInfo:function(){return this._rangeInfo},getModel:function(){return this._model},getRect:function(){return this._rect},getCellWidth:function(){return this._sw},getCellHeight:function(){return this._sh},getOrient:function(){return this._orient},getFirstDayOfWeek:function(){return this._firstDayOfWeek},getDateInfo:function(t){var e=(t=Ro(t)).getFullYear(),i=t.getMonth()+1;i=i<10?"0"+i:i;var n=t.getDate();n=n<10?"0"+n:n;var o=t.getDay();return o=Math.abs((o+7-this.getFirstDayOfWeek())%7),{y:e,m:i,d:n,day:o,time:t.getTime(),formatedDate:e+"-"+i+"-"+n,date:t}},getNextNDay:function(t,e){return 0===(e=e||0)?this.getDateInfo(t):((t=new Date(this.getDateInfo(t).time)).setDate(t.getDate()+e),this.getDateInfo(t))},update:function(t,e){function i(t,e){return null!=t[e]&&"auto"!==t[e]}this._firstDayOfWeek=+this._model.getModel("dayLabel").get("firstDay"),this._orient=this._model.get("orient"),this._lineWidth=this._model.getModel("itemStyle").getItemStyle().lineWidth||0,this._rangeInfo=this._getRangeInfo(this._initRangeOption());var n=this._rangeInfo.weeks||1,o=["width","height"],a=this._model.get("cellSize").slice(),r=this._model.getBoxLayoutParams(),s="horizontal"===this._orient?[n,7]:[7,n];d([0,1],function(t){i(a,t)&&(r[o[t]]=a[t]*s[t])});var l={width:e.getWidth(),height:e.getHeight()},u=this._rect=Qo(r,l);d([0,1],function(t){i(a,t)||(a[t]=u[o[t]]/s[t])}),this._sw=a[0],this._sh=a[1]},dataToPoint:function(t,e){y(t)&&(t=t[0]),null==e&&(e=!0);var i=this.getDateInfo(t),n=this._rangeInfo,o=i.formatedDate;if(e&&!(i.time>=n.start.time&&i.timea.end.time&&t.reverse(),t},_getRangeInfo:function(t){var e;(t=[this.getDateInfo(t[0]),this.getDateInfo(t[1])])[0].time>t[1].time&&(e=!0,t.reverse());var i=Math.floor(t[1].time/864e5)-Math.floor(t[0].time/864e5)+1,n=new Date(t[0].time),o=n.getDate(),a=t[1].date.getDate();if(n.setDate(o+i-1),n.getDate()!==a)for(var r=n.getTime()-t[1].time>0?1:-1;n.getDate()!==a&&(n.getTime()-t[1].time)*r>0;)i-=r,n.setDate(o+i-1);var s=Math.floor((i+t[0].day+6)/7),l=e?1-s:s-1;return e&&t.reverse(),{range:[t[0].formatedDate,t[1].formatedDate],start:t[0],end:t[1],allDay:i,weeks:s,nthWeek:l,fweek:t[0].day,lweek:t[1].day}},_getDateByWeeksAndDay:function(t,e,i){var n=this._getRangeInfo(i);if(t>n.weeks||0===t&&en.lweek)return!1;var o=7*(t-1)-n.fweek+e,a=new Date(n.start.time);return a.setDate(n.start.d+o),this.getDateInfo(a)}},Wv.dimensions=Wv.prototype.dimensions,Wv.getDimensionsInfo=Wv.prototype.getDimensionsInfo,Wv.create=function(t,e){var i=[];return t.eachComponent("calendar",function(n){var o=new Wv(n,t,e);i.push(o),n.coordinateSystem=o}),t.eachSeries(function(t){"calendar"===t.get("coordinateSystem")&&(t.coordinateSystem=i[t.get("calendarIndex")||0])}),i},Ca.register("calendar",Wv);var bP=hM.extend({type:"calendar",coordinateSystem:null,defaultOption:{zlevel:0,z:2,left:80,top:60,cellSize:20,orient:"horizontal",splitLine:{show:!0,lineStyle:{color:"#000",width:1,type:"solid"}},itemStyle:{color:"#fff",borderWidth:1,borderColor:"#ccc"},dayLabel:{show:!0,firstDay:0,position:"start",margin:"50%",nameMap:"en",color:"#000"},monthLabel:{show:!0,position:"start",margin:5,align:"center",nameMap:"en",formatter:null,color:"#000"},yearLabel:{show:!0,position:null,margin:30,formatter:null,color:"#ccc",fontFamily:"sans-serif",fontWeight:"bolder",fontSize:20}},init:function(t,e,i,n){var o=na(t);bP.superApply(this,"init",arguments),Hv(t,o)},mergeOption:function(t,e){bP.superApply(this,"mergeOption",arguments),Hv(this.option,t)}}),SP={EN:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],CN:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},MP={EN:["S","M","T","W","T","F","S"],CN:["日","一","二","三","四","五","六"]};ys({type:"calendar",_tlpoints:null,_blpoints:null,_firstDayOfMonth:null,_firstDayPoints:null,render:function(t,e,i){var n=this.group;n.removeAll();var o=t.coordinateSystem,a=o.getRangeInfo(),r=o.getOrient();this._renderDayRect(t,a,n),this._renderLines(t,a,r,n),this._renderYearText(t,a,r,n),this._renderMonthText(t,r,n),this._renderWeekText(t,a,r,n)},_renderDayRect:function(t,e,i){for(var n=t.coordinateSystem,o=t.getModel("itemStyle").getItemStyle(),a=n.getCellWidth(),r=n.getCellHeight(),s=e.start.time;s<=e.end.time;s=n.getNextNDay(s,1).time){var l=n.dataToRect([s],!1).tl,u=new SS({shape:{x:l[0],y:l[1],width:a,height:r},cursor:"default",style:o});i.add(u)}},_renderLines:function(t,e,i,n){function o(e){a._firstDayOfMonth.push(r.getDateInfo(e)),a._firstDayPoints.push(r.dataToRect([e],!1).tl);var o=a._getLinePointsOfOneWeek(t,e,i);a._tlpoints.push(o[0]),a._blpoints.push(o[o.length-1]),l&&a._drawSplitline(o,s,n)}var a=this,r=t.coordinateSystem,s=t.getModel("splitLine.lineStyle").getLineStyle(),l=t.get("splitLine.show"),u=s.lineWidth;this._tlpoints=[],this._blpoints=[],this._firstDayOfMonth=[],this._firstDayPoints=[];for(var h=e.start,c=0;h.time<=e.end.time;c++){o(h.formatedDate),0===c&&(h=r.getDateInfo(e.start.y+"-"+e.start.m));var d=h.date;d.setMonth(d.getMonth()+1),h=r.getDateInfo(d)}o(r.getNextNDay(e.end.time,1).formatedDate),l&&this._drawSplitline(a._getEdgesPoints(a._tlpoints,u,i),s,n),l&&this._drawSplitline(a._getEdgesPoints(a._blpoints,u,i),s,n)},_getEdgesPoints:function(t,e,i){var n=[t[0].slice(),t[t.length-1].slice()],o="horizontal"===i?0:1;return n[0][o]=n[0][o]-e/2,n[1][o]=n[1][o]+e/2,n},_drawSplitline:function(t,e,i){var n=new bS({z2:20,shape:{points:t},style:e});i.add(n)},_getLinePointsOfOneWeek:function(t,e,i){var n=t.coordinateSystem;e=n.getDateInfo(e);for(var o=[],a=0;a<7;a++){var r=n.getNextNDay(e.time,a),s=n.dataToRect([r.time],!1);o[2*r.day]=s.tl,o[2*r.day+1]=s["horizontal"===i?"bl":"tr"]}return o},_formatterLabel:function(t,e){return"string"==typeof t&&t?Xo(t,e):"function"==typeof t?t(e):e.nameMap},_yearTextPositionControl:function(t,e,i,n,o){e=e.slice();var a=["center","bottom"];"bottom"===n?(e[1]+=o,a=["center","top"]):"left"===n?e[0]-=o:"right"===n?(e[0]+=o,a=["center","top"]):e[1]-=o;var r=0;return"left"!==n&&"right"!==n||(r=Math.PI/2),{rotation:r,position:e,style:{textAlign:a[0],textVerticalAlign:a[1]}}},_renderYearText:function(t,e,i,n){var o=t.getModel("yearLabel");if(o.get("show")){var a=o.get("margin"),r=o.get("position");r||(r="horizontal"!==i?"top":"left");var s=[this._tlpoints[this._tlpoints.length-1],this._blpoints[0]],l=(s[0][0]+s[1][0])/2,u=(s[0][1]+s[1][1])/2,h="horizontal"===i?0:1,c={top:[l,s[h][1]],bottom:[l,s[1-h][1]],left:[s[1-h][0],u],right:[s[h][0],u]},d=e.start.y;+e.end.y>+e.start.y&&(d=d+"-"+e.end.y);var f=o.get("formatter"),p={start:e.start.y,end:e.end.y,nameMap:d},g=this._formatterLabel(f,p),m=new fS({z2:30});no(m.style,o,{text:g}),m.attr(this._yearTextPositionControl(m,c[r],i,r,a)),n.add(m)}},_monthTextPositionControl:function(t,e,i,n,o){var a="left",r="top",s=t[0],l=t[1];return"horizontal"===i?(l+=o,e&&(a="center"),"start"===n&&(r="bottom")):(s+=o,e&&(r="middle"),"start"===n&&(a="right")),{x:s,y:l,textAlign:a,textVerticalAlign:r}},_renderMonthText:function(t,e,i){var n=t.getModel("monthLabel");if(n.get("show")){var o=n.get("nameMap"),r=n.get("margin"),s=n.get("position"),l=n.get("align"),u=[this._tlpoints,this._blpoints];_(o)&&(o=SP[o.toUpperCase()]||[]);var h="start"===s?0:1,c="horizontal"===e?0:1;r="start"===s?-r:r;for(var d="center"===l,f=0;f=r[0]&&t<=r[1]}if(t===this._dataZoomModel){var n=this._dimName,o=this.getTargetSeriesModels(),a=t.get("filterMode"),r=this._valueWindow;"none"!==a&&DP(o,function(t){var e=t.getData(),o=e.mapDimension(n,!0);"weakFilter"===a?e.filterSelf(function(t){for(var i,n,a,s=0;sr[1];if(u&&!h&&!c)return!0;u&&(a=!0),h&&(i=!0),c&&(n=!0)}return a&&i&&n}):DP(o,function(n){if("empty"===a)t.setData(e.map(n,function(t){return i(t)?t:NaN}));else{var o={};o[n]=r,e.selectRange(o)}}),DP(o,function(t){e.setApproximateExtent(r,t)})})}}};var LP=d,kP=TP,PP=vs({type:"dataZoom",dependencies:["xAxis","yAxis","zAxis","radiusAxis","angleAxis","singleAxis","series"],defaultOption:{zlevel:0,z:4,orient:null,xAxisIndex:null,yAxisIndex:null,filterMode:"filter",throttle:null,start:0,end:100,startValue:null,endValue:null,minSpan:null,maxSpan:null,minValueSpan:null,maxValueSpan:null,rangeMode:null},init:function(t,e,i){this._dataIntervalByAxis={},this._dataInfo={},this._axisProxies={},this.textStyleModel,this._autoThrottle=!0,this._rangePropMode=["percent","percent"];var n=Kv(t);this.mergeDefaultAndTheme(t,i),this.doInit(n)},mergeOption:function(t){var e=Kv(t);n(this.option,t,!0),this.doInit(e)},doInit:function(t){var e=this.option;a_.canvasSupported||(e.realtime=!1),this._setDefaultThrottle(t),$v(this,t),LP([["start","startValue"],["end","endValue"]],function(t,i){"value"===this._rangePropMode[i]&&(e[t[0]]=null)},this),this.textStyleModel=this.getModel("textStyle"),this._resetTarget(),this._giveAxisProxies()},_giveAxisProxies:function(){var t=this._axisProxies;this.eachTargetAxis(function(e,i,n,o){var a=this.dependentModels[e.axis][i],r=a.__dzAxisProxy||(a.__dzAxisProxy=new CP(e.name,i,this,o));t[e.name+"_"+i]=r},this)},_resetTarget:function(){var t=this.option,e=this._judgeAutoMode();kP(function(e){var i=e.axisIndex;t[i]=Si(t[i])},this),"axisIndex"===e?this._autoSetAxisIndex():"orient"===e&&this._autoSetOrient()},_judgeAutoMode:function(){var t=this.option,e=!1;kP(function(i){null!=t[i.axisIndex]&&(e=!0)},this);var i=t.orient;return null==i&&e?"orient":e?void 0:(null==i&&(t.orient="horizontal"),"axisIndex")},_autoSetAxisIndex:function(){var t=!0,e=this.get("orient",!0),i=this.option,n=this.dependentModels;if(t){var o="vertical"===e?"y":"x";n[o+"Axis"].length?(i[o+"AxisIndex"]=[0],t=!1):LP(n.singleAxis,function(n){t&&n.get("orient",!0)===e&&(i.singleAxisIndex=[n.componentIndex],t=!1)})}t&&kP(function(e){if(t){var n=[],o=this.dependentModels[e.axis];if(o.length&&!n.length)for(var a=0,r=o.length;a0?100:20}},getFirstTargetAxisModel:function(){var t;return kP(function(e){if(null==t){var i=this.get(e.axisIndex);i.length&&(t=this.dependentModels[e.axis][i[0]])}},this),t},eachTargetAxis:function(t,e){var i=this.ecModel;kP(function(n){LP(this.get(n.axisIndex),function(o){t.call(e,n,o,this,i)},this)},this)},getAxisProxy:function(t,e){return this._axisProxies[t+"_"+e]},getAxisModel:function(t,e){var i=this.getAxisProxy(t,e);return i&&i.getAxisModel()},setRawRange:function(t,e){var i=this.option;LP([["start","startValue"],["end","endValue"]],function(e){null==t[e[0]]&&null==t[e[1]]||(i[e[0]]=t[e[0]],i[e[1]]=t[e[1]])},this),!e&&$v(this,t)},getPercentRange:function(){var t=this.findRepresentativeAxisProxy();if(t)return t.getDataPercentWindow()},getValueRange:function(t,e){if(null!=t||null!=e)return this.getAxisProxy(t,e).getDataValueWindow();var i=this.findRepresentativeAxisProxy();return i?i.getDataValueWindow():void 0},findRepresentativeAxisProxy:function(t){if(t)return t.__dzAxisProxy;var e=this._axisProxies;for(var i in e)if(e.hasOwnProperty(i)&&e[i].hostedBy(this))return e[i];for(var i in e)if(e.hasOwnProperty(i)&&!e[i].hostedBy(this))return e[i]},getRangePropMode:function(){return this._rangePropMode.slice()}}),NP=$M.extend({type:"dataZoom",render:function(t,e,i,n){this.dataZoomModel=t,this.ecModel=e,this.api=i},getTargetCoordInfo:function(){function t(t,e,i,n){for(var o,a=0;a0&&e%g)p+=f;else{var i=null==t||isNaN(t)||""===t,n=i?0:EP(t,a,u,!0);i&&!l&&e?(c.push([c[c.length-1][0],0]),d.push([d[d.length-1][0],0])):!i&&l&&(c.push([p,0]),d.push([p,0])),c.push([p,n]),d.push([p,n]),p+=f,l=i}});var m=this.dataZoomModel;this._displayables.barGroup.add(new wS({shape:{points:c},style:r({fill:m.get("dataBackgroundColor")},m.getModel("dataBackground.areaStyle").getAreaStyle()),silent:!0,z2:-20})),this._displayables.barGroup.add(new bS({shape:{points:d},style:m.getModel("dataBackground.lineStyle").getLineStyle(),silent:!0,z2:-19}))}}},_prepareDataShadowInfo:function(){var t=this.dataZoomModel,e=t.get("showDataShadow");if(!1!==e){var i,n=this.ecModel;return t.eachTargetAxis(function(o,a){d(t.getAxisProxy(o.name,a).getTargetSeriesModels(),function(t){if(!(i||!0!==e&&l(WP,t.get("type"))<0)){var r,s=n.getComponent(o.axis,a).axis,u=Jv(o.name),h=t.coordinateSystem;null!=u&&h.getOtherAxis&&(r=h.getOtherAxis(s).inverse),u=t.getData().mapDimension(u),i={thisAxis:s,series:t,thisDim:o.name,otherDim:u,otherAxisInverse:r}}},this)},this),i}},_renderHandle:function(){var t=this._displayables,e=t.handles=[],i=t.handleLabels=[],n=this._displayables.barGroup,o=this._size,a=this.dataZoomModel;n.add(t.filler=new OP({draggable:!0,cursor:Qv(this._orient),drift:zP(this._onDragMove,this,"all"),onmousemove:function(t){zw(t.event)},ondragstart:zP(this._showDataInfo,this,!0),ondragend:zP(this._onDragEnd,this),onmouseover:zP(this._showDataInfo,this,!0),onmouseout:zP(this._showDataInfo,this,!1),style:{fill:a.get("fillerColor"),textPosition:"inside"}})),n.add(new OP(Wn({silent:!0,shape:{x:0,y:0,width:o[0],height:o[1]},style:{stroke:a.get("dataBackgroundColor")||a.get("borderColor"),lineWidth:1,fill:"rgba(0,0,0,0)"}}))),BP([0,1],function(t){var o=_o(a.get("handleIcon"),{cursor:Qv(this._orient),draggable:!0,drift:zP(this._onDragMove,this,t),onmousemove:function(t){zw(t.event)},ondragend:zP(this._onDragEnd,this),onmouseover:zP(this._showDataInfo,this,!0),onmouseout:zP(this._showDataInfo,this,!1)},{x:-1,y:0,width:2,height:2}),r=o.getBoundingRect();this._handleHeight=Do(a.get("handleSize"),this._size[1]),this._handleWidth=r.width/r.height*this._handleHeight,o.setStyle(a.getModel("handleStyle").getItemStyle());var s=a.get("handleColor");null!=s&&(o.style.fill=s),n.add(e[t]=o);var l=a.textStyleModel;this.group.add(i[t]=new fS({silent:!0,invisible:!0,style:{x:0,y:0,text:"",textVerticalAlign:"middle",textAlign:"center",textFill:l.getTextColor(),textFont:l.getFont()},z2:10}))},this)},_resetInterval:function(){var t=this._range=this.dataZoomModel.getPercentRange(),e=this._getViewExtent();this._handleEnds=[EP(t[0],[0,100],e,!0),EP(t[1],[0,100],e,!0)]},_updateInterval:function(t,e){var i=this.dataZoomModel,n=this._handleEnds,o=this._getViewExtent(),a=i.findRepresentativeAxisProxy().getMinMaxSpan(),r=[0,100];PC(e,n,o,i.get("zoomLock")?"all":t,null!=a.minSpan?EP(a.minSpan,r,o,!0):null,null!=a.maxSpan?EP(a.maxSpan,r,o,!0):null);var s=this._range,l=this._range=RP([EP(n[0],o,r,!0),EP(n[1],o,r,!0)]);return!s||s[0]!==l[0]||s[1]!==l[1]},_updateView:function(t){var e=this._displayables,i=this._handleEnds,n=RP(i.slice()),o=this._size;BP([0,1],function(t){var n=e.handles[t],a=this._handleHeight;n.attr({scale:[a/2,a/2],position:[i[t],o[1]/2-a/2]})},this),e.filler.setShape({x:n[0],y:0,width:n[1]-n[0],height:o[1]}),this._updateDataInfo(t)},_updateDataInfo:function(t){function e(t){var e=go(n.handles[t].parent,this.group),i=vo(0===t?"right":"left",e),s=this._handleWidth/2+GP,l=mo([c[t]+(0===t?-s:s),this._size[1]/2],e);o[t].setStyle({x:l[0],y:l[1],textVerticalAlign:a===VP?"middle":i,textAlign:a===VP?i:"center",text:r[t]})}var i=this.dataZoomModel,n=this._displayables,o=n.handleLabels,a=this._orient,r=["",""];if(i.get("showDetail")){var s=i.findRepresentativeAxisProxy();if(s){var l=s.getAxisModel().axis,u=this._range,h=t?s.calculateDataWindow({start:u[0],end:u[1]}).valueWindow:s.getDataValueWindow();r=[this._formatLabel(h[0],l),this._formatLabel(h[1],l)]}}var c=RP(this._handleEnds.slice());e.call(this,0),e.call(this,1)},_formatLabel:function(t,e){var i=this.dataZoomModel,n=i.get("labelFormatter"),o=i.get("labelPrecision");null!=o&&"auto"!==o||(o=e.getPixelPrecision());var a=null==t||isNaN(t)?"":"category"===e.type||"time"===e.type?e.scale.getLabel(Math.round(t)):t.toFixed(Math.min(o,20));return x(n)?n(t,a):_(n)?n.replace("{value}",a):a},_showDataInfo:function(t){t=this._dragging||t;var e=this._displayables.handleLabels;e[0].attr("invisible",!t),e[1].attr("invisible",!t)},_onDragMove:function(t,e,i){this._dragging=!0;var n=mo([e,i],this._displayables.barGroup.getLocalTransform(),!0),o=this._updateInterval(t,n[0]),a=this.dataZoomModel.get("realtime");this._updateView(!a),o&&a&&this._dispatchZoomAction()},_onDragEnd:function(){this._dragging=!1,this._showDataInfo(!1),!this.dataZoomModel.get("realtime")&&this._dispatchZoomAction()},_onClickPanelClick:function(t){var e=this._size,i=this._displayables.barGroup.transformCoordToLocal(t.offsetX,t.offsetY);if(!(i[0]<0||i[0]>e[0]||i[1]<0||i[1]>e[1])){var n=this._handleEnds,o=(n[0]+n[1])/2,a=this._updateInterval("all",i[0]-o);this._updateView(),a&&this._dispatchZoomAction()}},_dispatchZoomAction:function(){var t=this._range;this.api.dispatchAction({type:"dataZoom",from:this.uid,dataZoomId:this.dataZoomModel.id,start:t[0],end:t[1]})},_findCoordRect:function(){var t;if(BP(this.getTargetCoordInfo(),function(e){if(!t&&e.length){var i=e[0].model.coordinateSystem;t=i.getRect&&i.getRect()}}),!t){var e=this.api.getWidth(),i=this.api.getHeight();t={x:.2*e,y:.2*i,width:.6*e,height:.6*i}}return t}});PP.extend({type:"dataZoom.inside",defaultOption:{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,preventDefaultMouseMove:!0}});var HP=v,ZP="\0_ec_dataZoom_roams",UP=m,XP=NP.extend({type:"dataZoom.inside",init:function(t,e){this._range},render:function(t,e,i,n){XP.superApply(this,"render",arguments),this._range=t.getPercentRange(),d(this.getTargetCoordInfo(),function(e,n){var o=f(e,function(t){return iy(t.model)});d(e,function(e){var a=e.model,r=t.option;ty(i,{coordId:iy(a),allCoordIds:o,containsPoint:function(t,e,i){return a.coordinateSystem.containPoint([e,i])},dataZoomId:t.id,throttleRate:t.get("throttle",!0),panGetRange:UP(this._onPan,this,e,n),zoomGetRange:UP(this._onZoom,this,e,n),zoomLock:r.zoomLock,disabled:r.disabled,roamControllerOpt:{zoomOnMouseWheel:r.zoomOnMouseWheel,moveOnMouseMove:r.moveOnMouseMove,preventDefaultMouseMove:r.preventDefaultMouseMove}})},this)},this)},dispose:function(){ey(this.api,this.dataZoomModel.id),XP.superApply(this,"dispose",arguments),this._range=null},_onPan:function(t,e,i,n,o,a,r,s,l){var u=this._range,h=u.slice(),c=t.axisModels[0];if(c){var d=jP[e]([a,r],[s,l],c,i,t),f=d.signal*(h[1]-h[0])*d.pixel/d.pixelLength;return PC(f,h,[0,100],"all"),this._range=h,u[0]!==h[0]||u[1]!==h[1]?h:void 0}},_onZoom:function(t,e,i,n,o,a){var r=this._range,s=r.slice(),l=t.axisModels[0];if(l){var u=jP[e](null,[o,a],l,i,t),h=(u.signal>0?u.pixelStart+u.pixelLength-u.pixel:u.pixel-u.pixelStart)/u.pixelLength*(s[1]-s[0])+s[0];n=Math.max(1/n,0),s[0]=(s[0]-h)*n+h,s[1]=(s[1]-h)*n+h;var c=this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();return PC(0,s,[0,100],0,c.minSpan,c.maxSpan),this._range=s,r[0]!==s[0]||r[1]!==s[1]?s:void 0}}}),jP={grid:function(t,e,i,n,o){var a=i.axis,r={},s=o.model.coordinateSystem.getRect();return t=t||[0,0],"x"===a.dim?(r.pixel=e[0]-t[0],r.pixelLength=s.width,r.pixelStart=s.x,r.signal=a.inverse?1:-1):(r.pixel=e[1]-t[1],r.pixelLength=s.height,r.pixelStart=s.y,r.signal=a.inverse?-1:1),r},polar:function(t,e,i,n,o){var a=i.axis,r={},s=o.model.coordinateSystem,l=s.getRadiusAxis().getExtent(),u=s.getAngleAxis().getExtent();return t=t?s.pointToCoord(t):[0,0],e=s.pointToCoord(e),"radiusAxis"===i.mainType?(r.pixel=e[0]-t[0],r.pixelLength=l[1]-l[0],r.pixelStart=l[0],r.signal=a.inverse?1:-1):(r.pixel=e[1]-t[1],r.pixelLength=u[1]-u[0],r.pixelStart=u[0],r.signal=a.inverse?-1:1),r},singleAxis:function(t,e,i,n,o){var a=i.axis,r=o.model.coordinateSystem.getRect(),s={};return t=t||[0,0],"horizontal"===a.orient?(s.pixel=e[0]-t[0],s.pixelLength=r.width,s.pixelStart=r.x,s.signal=a.inverse?1:-1):(s.pixel=e[1]-t[1],s.pixelLength=r.height,s.pixelStart=r.y,s.signal=a.inverse?-1:1),s}};hs({getTargetSeries:function(t){var e=R();return t.eachComponent("dataZoom",function(t){t.eachTargetAxis(function(t,i,n){d(n.getAxisProxy(t.name,i).getTargetSeriesModels(),function(t){e.set(t.uid,t)})})}),e},modifyOutputEnd:!0,overallReset:function(t,e){t.eachComponent("dataZoom",function(t){t.eachTargetAxis(function(t,i,n){n.getAxisProxy(t.name,i).reset(n,e)}),t.eachTargetAxis(function(t,i,n){n.getAxisProxy(t.name,i).filterData(n,e)})}),t.eachComponent("dataZoom",function(t){var e=t.findRepresentativeAxisProxy(),i=e.getDataPercentWindow(),n=e.getDataValueWindow();t.setRawRange({start:i[0],end:i[1],startValue:n[0],endValue:n[1]},!0)})}}),cs("dataZoom",function(t,e){var i=Uv(m(e.eachComponent,e,"dataZoom"),TP,function(t,e){return t.get(e.axisIndex)}),n=[];e.eachComponent({mainType:"dataZoom",query:t},function(t,e){n.push.apply(n,i(t).nodes)}),d(n,function(e,i){e.setRawRange({start:t.start,end:t.end,startValue:t.startValue,endValue:t.endValue})})});var YP=d,qP=function(t){var e=t&&t.visualMap;y(e)||(e=e?[e]:[]),YP(e,function(t){if(t){cy(t,"splitList")&&!cy(t,"pieces")&&(t.pieces=t.splitList,delete t.splitList);var e=t.pieces;e&&y(e)&&YP(e,function(t){w(t)&&(cy(t,"start")&&!cy(t,"min")&&(t.min=t.start),cy(t,"end")&&!cy(t,"max")&&(t.max=t.end))})}})};hM.registerSubTypeDefaulter("visualMap",function(t){return t.categories||(t.pieces?t.pieces.length>0:t.splitNumber>0)&&!t.calculable?"piecewise":"continuous"});var KP=LI.VISUAL.COMPONENT;ps(KP,{createOnAllSeries:!0,reset:function(t,e){var i=[];return e.eachComponent("visualMap",function(e){var n=t.pipelineContext;!e.isTargetSeries(t)||n&&n.large||i.push(gv(e.stateList,e.targetVisuals,m(e.getValueState,e),e.getDataDimension(t.getData())))}),i}}),ps(KP,{createOnAllSeries:!0,reset:function(t,e){var i=t.getData(),n=[];e.eachComponent("visualMap",function(e){if(e.isTargetSeries(t)){var o=e.getVisualMeta(m(dy,null,t,e))||{stops:[],outerColors:[]},a=e.getDataDimension(i),r=i.getDimensionInfo(a);null!=r&&(o.dimension=r.index,n.push(o))}}),t.getData().setVisual("visualMeta",n)}});var $P={get:function(t,e,n){var o=i((JP[t]||{})[e]);return n&&y(o)?o[o.length-1]:o}},JP={color:{active:["#006edd","#e0ffff"],inactive:["rgba(0,0,0,0)"]},colorHue:{active:[0,360],inactive:[0,0]},colorSaturation:{active:[.3,1],inactive:[0,0]},colorLightness:{active:[.9,.5],inactive:[0,0]},colorAlpha:{active:[.3,1],inactive:[0,0]},opacity:{active:[.3,1],inactive:[0,0]},symbol:{active:["circle","roundRect","diamond"],inactive:["none"]},symbolSize:{active:[10,50],inactive:[0,0]}},QP=ZA.mapVisual,tN=ZA.eachVisual,eN=y,iN=d,nN=Co,oN=To,aN=B,rN=vs({type:"visualMap",dependencies:["series"],stateList:["inRange","outOfRange"],replacableOptionKeys:["inRange","outOfRange","target","controller","color"],dataBound:[-1/0,1/0],layoutMode:{type:"box",ignoreSize:!0},defaultOption:{show:!0,zlevel:0,z:4,seriesIndex:"all",min:0,max:200,dimension:null,inRange:null,outOfRange:null,left:0,right:null,top:null,bottom:0,itemWidth:null,itemHeight:null,inverse:!1,orient:"vertical",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",contentColor:"#5793f3",inactiveColor:"#aaa",borderWidth:0,padding:5,textGap:10,precision:0,color:null,formatter:null,text:null,textStyle:{color:"#333"}},init:function(t,e,i){this._dataExtent,this.targetVisuals={},this.controllerVisuals={},this.textStyleModel,this.itemSize,this.mergeDefaultAndTheme(t,i)},optionUpdated:function(t,e){var i=this.option;a_.canvasSupported||(i.realtime=!1),!e&&fv(i,t,this.replacableOptionKeys),this.textStyleModel=this.getModel("textStyle"),this.resetItemSize(),this.completeVisualOption()},resetVisual:function(t){var e=this.stateList;t=m(t,this),this.controllerVisuals=dv(this.option.controller,e,t),this.targetVisuals=dv(this.option.target,e,t)},getTargetSeriesIndices:function(){var t=this.option.seriesIndex,e=[];return null==t||"all"===t?this.ecModel.eachSeries(function(t,i){e.push(i)}):e=Si(t),e},eachTargetSeries:function(t,e){d(this.getTargetSeriesIndices(),function(i){t.call(e,this.ecModel.getSeriesByIndex(i))},this)},isTargetSeries:function(t){var e=!1;return this.eachTargetSeries(function(i){i===t&&(e=!0)}),e},formatValueText:function(t,e,i){function n(t){return t===l[0]?"min":t===l[1]?"max":(+t).toFixed(Math.min(s,20))}var o,a,r=this.option,s=r.precision,l=this.dataBound,u=r.formatter;return i=i||["<",">"],y(t)&&(t=t.slice(),o=!0),a=e?t:o?[n(t[0]),n(t[1])]:n(t),_(u)?u.replace("{value}",o?a[0]:a).replace("{value2}",o?a[1]:a):x(u)?o?u(t[0],t[1]):u(t):o?t[0]===l[0]?i[0]+" "+a[1]:t[1]===l[1]?i[1]+" "+a[0]:a[0]+" - "+a[1]:a},resetExtent:function(){var t=this.option,e=nN([t.min,t.max]);this._dataExtent=e},getDataDimension:function(t){var e=this.option.dimension,i=t.dimensions;if(null!=e||i.length){if(null!=e)return t.getDimension(e);for(var n=t.dimensions,o=n.length-1;o>=0;o--){var a=n[o];if(!t.getDimensionInfo(a).isCalculationCoord)return a}}},getExtent:function(){return this._dataExtent.slice()},completeVisualOption:function(){function t(t){eN(o.color)&&!t.inRange&&(t.inRange={color:o.color.slice().reverse()}),t.inRange=t.inRange||{color:e.get("gradientColor")},iN(this.stateList,function(e){var i=t[e];if(_(i)){var n=$P.get(i,"active",l);n?(t[e]={},t[e][i]=n):delete t[e]}},this)}var e=this.ecModel,o=this.option,a={inRange:o.inRange,outOfRange:o.outOfRange},r=o.target||(o.target={}),s=o.controller||(o.controller={});n(r,a),n(s,a);var l=this.isCategory();t.call(this,r),t.call(this,s),function(t,e,i){var n=t[e],o=t[i];n&&!o&&(o=t[i]={},iN(n,function(t,e){if(ZA.isValidType(e)){var i=$P.get(e,"inactive",l);null!=i&&(o[e]=i,"color"!==e||o.hasOwnProperty("opacity")||o.hasOwnProperty("colorAlpha")||(o.opacity=[0,0]))}}))}.call(this,r,"inRange","outOfRange"),function(t){var e=(t.inRange||{}).symbol||(t.outOfRange||{}).symbol,n=(t.inRange||{}).symbolSize||(t.outOfRange||{}).symbolSize,o=this.get("inactiveColor");iN(this.stateList,function(a){var r=this.itemSize,s=t[a];s||(s=t[a]={color:l?o:[o]}),null==s.symbol&&(s.symbol=e&&i(e)||(l?"roundRect":["roundRect"])),null==s.symbolSize&&(s.symbolSize=n&&i(n)||(l?r[0]:[r[0],r[0]])),s.symbol=QP(s.symbol,function(t){return"none"===t||"square"===t?"roundRect":t});var u=s.symbolSize;if(null!=u){var h=-1/0;tN(u,function(t){t>h&&(h=t)}),s.symbolSize=QP(u,function(t){return oN(t,[0,h],[0,r[0]],!0)})}},this)}.call(this,s)},resetItemSize:function(){this.itemSize=[parseFloat(this.get("itemWidth")),parseFloat(this.get("itemHeight"))]},isCategory:function(){return!!this.option.categories},setSelected:aN,getValueState:aN,getVisualMeta:aN}),sN=[20,140],lN=rN.extend({type:"visualMap.continuous",defaultOption:{align:"auto",calculable:!1,range:null,realtime:!0,itemHeight:null,itemWidth:null,hoverLink:!0,hoverLinkDataSize:null,hoverLinkOnHandle:null},optionUpdated:function(t,e){lN.superApply(this,"optionUpdated",arguments),this.resetExtent(),this.resetVisual(function(t){t.mappingMethod="linear",t.dataExtent=this.getExtent()}),this._resetRange()},resetItemSize:function(){lN.superApply(this,"resetItemSize",arguments);var t=this.itemSize;"horizontal"===this._orient&&t.reverse(),(null==t[0]||isNaN(t[0]))&&(t[0]=sN[0]),(null==t[1]||isNaN(t[1]))&&(t[1]=sN[1])},_resetRange:function(){var t=this.getExtent(),e=this.option.range;!e||e.auto?(t.auto=1,this.option.range=t):y(e)&&(e[0]>e[1]&&e.reverse(),e[0]=Math.max(e[0],t[0]),e[1]=Math.min(e[1],t[1]))},completeVisualOption:function(){rN.prototype.completeVisualOption.apply(this,arguments),d(this.stateList,function(t){var e=this.option.controller[t].symbolSize;e&&e[0]!==e[1]&&(e[0]=0)},this)},setSelected:function(t){this.option.range=t.slice(),this._resetRange()},getSelected:function(){var t=this.getExtent(),e=Co((this.get("range")||[]).slice());return e[0]>t[1]&&(e[0]=t[1]),e[1]>t[1]&&(e[1]=t[1]),e[0]=i[1]||t<=e[1])?"inRange":"outOfRange"},findTargetDataIndices:function(t){var e=[];return this.eachTargetSeries(function(i){var n=[],o=i.getData();o.each(this.getDataDimension(o),function(e,i){t[0]<=e&&e<=t[1]&&n.push(i)},this),e.push({seriesId:i.id,dataIndex:n})},this),e},getVisualMeta:function(t){function e(e,i){o.push({value:e,color:t(e,i)})}for(var i=fy(0,0,this.getExtent()),n=fy(0,0,this.option.range.slice()),o=[],a=0,r=0,s=n.length,l=i.length;rt[1])break;i.push({color:this.getControllerVisual(a,"color",e),offset:o/100})}return i.push({color:this.getControllerVisual(t[1],"color",e),offset:1}),i},_createBarPoints:function(t,e){var i=this.visualMapModel.itemSize;return[[i[0]-e[0],t[0]],[i[0],t[0]],[i[0],t[1]],[i[0]-e[1],t[1]]]},_createBarGroup:function(t){var e=this._orient,i=this.visualMapModel.get("inverse");return new sw("horizontal"!==e||i?"horizontal"===e&&i?{scale:"bottom"===t?[-1,1]:[1,1],rotation:-Math.PI/2}:"vertical"!==e||i?{scale:"left"===t?[1,1]:[-1,1]}:{scale:"left"===t?[1,-1]:[-1,-1]}:{scale:"bottom"===t?[1,1]:[-1,1],rotation:Math.PI/2})},_updateHandle:function(t,e){if(this._useHandle){var i=this._shapes,n=this.visualMapModel,o=i.handleThumbs,a=i.handleLabels;cN([0,1],function(r){var s=o[r];s.setStyle("fill",e.handlesColor[r]),s.position[1]=t[r];var l=mo(i.handleLabelPoints[r],go(s,this.group));a[r].setStyle({x:l[0],y:l[1],text:n.formatValueText(this._dataInterval[r]),textVerticalAlign:"middle",textAlign:this._applyTransform("horizontal"===this._orient?0===r?"bottom":"top":"left",i.barGroup)})},this)}},_showIndicator:function(t,e,i,n){var o=this.visualMapModel,a=o.getExtent(),r=o.itemSize,s=[0,r[1]],l=hN(t,a,s,!0),u=this._shapes,h=u.indicator;if(h){h.position[1]=l,h.attr("invisible",!1),h.setShape("points",yy(!!i,n,l,r[1]));var c={convertOpacityToAlpha:!0},d=this.getControllerVisual(t,"color",c);h.setStyle("fill",d);var f=mo(u.indicatorLabelPoint,go(h,this.group)),p=u.indicatorLabel;p.attr("invisible",!1);var g=this._applyTransform("left",u.barGroup),m=this._orient;p.setStyle({text:(i||"")+o.formatValueText(e),textVerticalAlign:"horizontal"===m?g:"middle",textAlign:"horizontal"===m?"center":g,x:f[0],y:f[1]})}},_enableHoverLinkToSeries:function(){var t=this;this._shapes.barGroup.on("mousemove",function(e){if(t._hovering=!0,!t._dragging){var i=t.visualMapModel.itemSize,n=t._applyTransform([e.offsetX,e.offsetY],t._shapes.barGroup,!0,!0);n[1]=dN(fN(0,n[1]),i[1]),t._doHoverLinkToSeries(n[1],0<=n[0]&&n[0]<=i[0])}}).on("mouseout",function(){t._hovering=!1,!t._dragging&&t._clearHoverLinkToSeries()})},_enableHoverLinkFromSeries:function(){var t=this.api.getZr();this.visualMapModel.option.hoverLink?(t.on("mouseover",this._hoverLinkFromSeriesMouseOver,this),t.on("mouseout",this._hideIndicator,this)):this._clearHoverLinkFromSeries()},_doHoverLinkToSeries:function(t,e){var i=this.visualMapModel,n=i.itemSize;if(i.option.hoverLink){var o=[0,n[1]],a=i.getExtent();t=dN(fN(o[0],t),o[1]);var r=xy(i,a,o),s=[t-r,t+r],l=hN(t,o,a,!0),u=[hN(s[0],o,a,!0),hN(s[1],o,a,!0)];s[0]o[1]&&(u[1]=1/0),e&&(u[0]===-1/0?this._showIndicator(l,u[1],"< ",r):u[1]===1/0?this._showIndicator(l,u[0],"> ",r):this._showIndicator(l,l,"≈ ",r));var h=this._hoverLinkDataIndices,c=[];(e||_y(i))&&(c=this._hoverLinkDataIndices=i.findTargetDataIndices(u));var d=ki(h,c);this._dispatchHighDown("downplay",gy(d[0])),this._dispatchHighDown("highlight",gy(d[1]))}},_hoverLinkFromSeriesMouseOver:function(t){var e=t.target,i=this.visualMapModel;if(e&&null!=e.dataIndex){var n=this.ecModel.getSeriesByIndex(e.seriesIndex);if(i.isTargetSeries(n)){var o=n.getData(e.dataType),a=o.get(i.getDataDimension(o),e.dataIndex,!0);isNaN(a)||this._showIndicator(a,a)}}},_hideIndicator:function(){var t=this._shapes;t.indicator&&t.indicator.attr("invisible",!0),t.indicatorLabel&&t.indicatorLabel.attr("invisible",!0)},_clearHoverLinkToSeries:function(){this._hideIndicator();var t=this._hoverLinkDataIndices;this._dispatchHighDown("downplay",gy(t)),t.length=0},_clearHoverLinkFromSeries:function(){this._hideIndicator();var t=this.api.getZr();t.off("mouseover",this._hoverLinkFromSeriesMouseOver),t.off("mouseout",this._hideIndicator)},_applyTransform:function(t,e,i,n){var o=go(e,n?null:this.group);return BS[y(t)?"applyTransform":"transformDirection"](t,o,i)},_dispatchHighDown:function(t,e){e&&e.length&&this.api.dispatchAction({type:t,batch:e})},dispose:function(){this._clearHoverLinkFromSeries(),this._clearHoverLinkToSeries()},remove:function(){this._clearHoverLinkFromSeries(),this._clearHoverLinkToSeries()}});cs({type:"selectDataRange",event:"dataRangeSelected",update:"update"},function(t,e){e.eachComponent({mainType:"visualMap",query:t},function(e){e.setSelected(t.selected)})}),us(qP);var vN=rN.extend({type:"visualMap.piecewise",defaultOption:{selected:null,minOpen:!1,maxOpen:!1,align:"auto",itemWidth:20,itemHeight:14,itemSymbol:"roundRect",pieceList:null,categories:null,splitNumber:5,selectedMode:"multiple",itemGap:10,hoverLink:!0,showLabel:null},optionUpdated:function(t,e){vN.superApply(this,"optionUpdated",arguments),this._pieceList=[],this.resetExtent();var n=this._mode=this._determineMode();yN[this._mode].call(this),this._resetSelected(t,e);var o=this.option.categories;this.resetVisual(function(t,e){"categories"===n?(t.mappingMethod="category",t.categories=i(o)):(t.dataExtent=this.getExtent(),t.mappingMethod="piecewise",t.pieceList=f(this._pieceList,function(t){var t=i(t);return"inRange"!==e&&(t.visual=null),t}))})},completeVisualOption:function(){function t(t,e,i){return t&&t[e]&&(w(t[e])?t[e].hasOwnProperty(i):t[e]===i)}var e=this.option,i={},n=ZA.listVisualTypes(),o=this.isCategory();d(e.pieces,function(t){d(n,function(e){t.hasOwnProperty(e)&&(i[e]=1)})}),d(i,function(i,n){var a=0;d(this.stateList,function(i){a|=t(e,i,n)||t(e.target,i,n)},this),!a&&d(this.stateList,function(t){(e[t]||(e[t]={}))[n]=$P.get(n,"inRange"===t?"active":"inactive",o)})},this),rN.prototype.completeVisualOption.apply(this,arguments)},_resetSelected:function(t,e){var i=this.option,n=this._pieceList,o=(e?i:t).selected||{};if(i.selected=o,d(n,function(t,e){var i=this.getSelectedMapKey(t);o.hasOwnProperty(i)||(o[i]=!0)},this),"single"===i.selectedMode){var a=!1;d(n,function(t,e){var i=this.getSelectedMapKey(t);o[i]&&(a?o[i]=!1:a=!0)},this)}},getSelectedMapKey:function(t){return"categories"===this._mode?t.value+"":t.index+""},getPieceList:function(){return this._pieceList},_determineMode:function(){var t=this.option;return t.pieces&&t.pieces.length>0?"pieces":this.option.categories?"categories":"splitNumber"},setSelected:function(t){this.option.selected=i(t)},getValueState:function(t){var e=ZA.findPieceIndex(t,this._pieceList);return null!=e&&this.option.selected[this.getSelectedMapKey(this._pieceList[e])]?"inRange":"outOfRange"},findTargetDataIndices:function(t){var e=[];return this.eachTargetSeries(function(i){var n=[],o=i.getData();o.each(this.getDataDimension(o),function(e,i){ZA.findPieceIndex(e,this._pieceList)===t&&n.push(i)},this),e.push({seriesId:i.id,dataIndex:n})},this),e},getRepresentValue:function(t){var e;if(this.isCategory())e=t.value;else if(null!=t.value)e=t.value;else{var i=t.interval||[];e=i[0]===-1/0&&i[1]===1/0?0:(i[0]+i[1])/2}return e},getVisualMeta:function(t){function e(e,a){var r=o.getRepresentValue({interval:e});a||(a=o.getValueState(r));var s=t(r,a);e[0]===-1/0?n[0]=s:e[1]===1/0?n[1]=s:i.push({value:e[0],color:s},{value:e[1],color:s})}if(!this.isCategory()){var i=[],n=[],o=this,a=this._pieceList.slice();if(a.length){var r=a[0].interval[0];r!==-1/0&&a.unshift({interval:[-1/0,r]}),(r=a[a.length-1].interval[1])!==1/0&&a.push({interval:[r,1/0]})}else a.push({interval:[-1/0,1/0]});var s=-1/0;return d(a,function(t){var i=t.interval;i&&(i[0]>s&&e([s,i[0]],"outOfRange"),e(i.slice()),s=i[1])},this),{stops:i,outerColors:n}}}}),yN={splitNumber:function(){var t=this.option,e=this._pieceList,i=Math.min(t.precision,20),n=this.getExtent(),o=t.splitNumber;o=Math.max(parseInt(o,10),1),t.splitNumber=o;for(var a=(n[1]-n[0])/o;+a.toFixed(i)!==a&&i<5;)i++;t.precision=i,a=+a.toFixed(i);var r=0;t.minOpen&&e.push({index:r++,interval:[-1/0,n[0]],close:[0,0]});for(var s=n[0],l=r+o;r","≥"][e[0]]];t.text=t.text||this.formatValueText(null!=t.value?t.value:t.interval,!1,i)},this)}};uN.extend({type:"visualMap.piecewise",doRender:function(){var t=this.group;t.removeAll();var e=this.visualMapModel,i=e.get("textGap"),n=e.textStyleModel,o=n.getFont(),a=n.getTextColor(),r=this._getItemAlign(),s=e.itemSize,l=this._getViewData(),u=l.endsText,h=T(e.get("showLabel",!0),!u);u&&this._renderEndsText(t,u[0],s,h,r),d(l.viewPieceList,function(n){var l=n.piece,u=new sw;u.onclick=m(this._onItemClick,this,l),this._enableHoverLink(u,n.indexInModelPieceList);var c=e.getRepresentValue(l);if(this._createItemSymbol(u,c,[0,0,s[0],s[1]]),h){var d=this.visualMapModel.getValueState(c);u.add(new fS({style:{x:"right"===r?-i:s[0]+i,y:s[1]/2,text:l.text,textVerticalAlign:"middle",textAlign:r,textFont:o,textFill:a,opacity:"outOfRange"===d?.5:1}}))}t.add(u)},this),u&&this._renderEndsText(t,u[1],s,h,r),sM(e.get("orient"),t,e.get("itemGap")),this.renderBackground(t),this.positionGroup(t)},_enableHoverLink:function(t,e){function i(t){var i=this.visualMapModel;i.option.hoverLink&&this.api.dispatchAction({type:t,batch:gy(i.findTargetDataIndices(e))})}t.on("mouseover",m(i,this,"highlight")).on("mouseout",m(i,this,"downplay"))},_getItemAlign:function(){var t=this.visualMapModel,e=t.option;if("vertical"===e.orient)return py(t,this.api,t.itemSize);var i=e.align;return i&&"auto"!==i||(i="left"),i},_renderEndsText:function(t,e,i,n,o){if(e){var a=new sw,r=this.visualMapModel.textStyleModel;a.add(new fS({style:{x:n?"right"===o?i[0]:0:i[0]/2,y:i[1]/2,textVerticalAlign:"middle",textAlign:n?o:"center",text:e,textFont:r.getFont(),textFill:r.getTextColor()}})),t.add(a)}},_getViewData:function(){var t=this.visualMapModel,e=f(t.getPieceList(),function(t,e){return{piece:t,indexInModelPieceList:e}}),i=t.get("text"),n=t.get("orient"),o=t.get("inverse");return("horizontal"===n?o:!o)?e.reverse():i&&(i=i.slice().reverse()),{viewPieceList:e,endsText:i}},_createItemSymbol:function(t,e,i){t.add(Tl(this.getControllerVisual(e,"symbol"),i[0],i[1],i[2],i[3],this.getControllerVisual(e,"color")))},_onItemClick:function(t){var e=this.visualMapModel,n=e.option,o=i(n.selected),a=e.getSelectedMapKey(t);"single"===n.selectedMode?(o[a]=!0,d(o,function(t,e){o[e]=e===a})):o[a]=!o[a],this.api.dispatchAction({type:"selectDataRange",from:this.uid,visualMapId:this.visualMapModel.id,selected:o})}});us(qP);var xN=Fo,_N=Zo,wN=vs({type:"marker",dependencies:["series","grid","polar","geo"],init:function(t,e,i,n){this.mergeDefaultAndTheme(t,i),this.mergeOption(t,i,n.createdBySelf,!0)},isAnimationEnabled:function(){if(a_.node)return!1;var t=this.__hostSeries;return this.getShallow("animation")&&t&&t.isAnimationEnabled()},mergeOption:function(t,e,i,n){var o=this.constructor,r=this.mainType+"Model";i||e.eachSeries(function(t){var i=t.get(this.mainType,!0),s=t[r];i&&i.data?(s?s.mergeOption(i,e,!0):(n&&Sy(i),d(i.data,function(t){t instanceof Array?(Sy(t[0]),Sy(t[1])):Sy(t)}),a(s=new o(i,this,e),{mainType:this.mainType,seriesIndex:t.seriesIndex,name:t.name,createdBySelf:!0}),s.__hostSeries=t),t[r]=s):t[r]=null},this)},formatTooltip:function(t){var e=this.getData(),i=this.getRawValue(t),n=y(i)?f(i,xN).join(", "):xN(i),o=e.getName(t),a=_N(this.name);return(null!=i||o)&&(a+="
"),o&&(a+=_N(o),null!=i&&(a+=" : ")),null!=i&&(a+=_N(n)),a},getData:function(){return this._data},setData:function(t){this._data=t}});h(wN,XM),wN.extend({type:"markPoint",defaultOption:{zlevel:0,z:5,symbol:"pin",symbolSize:50,tooltip:{trigger:"item"},label:{show:!0,position:"inside"},itemStyle:{borderWidth:2},emphasis:{label:{show:!0}}}});var bN=l,SN=v,MN={min:SN(Ty,"min"),max:SN(Ty,"max"),average:SN(Ty,"average")},IN=ys({type:"marker",init:function(){this.markerGroupMap=R()},render:function(t,e,i){var n=this.markerGroupMap;n.each(function(t){t.__keep=!1});var o=this.type+"Model";e.eachSeries(function(t){var n=t[o];n&&this.renderSeries(t,n,e,i)},this),n.each(function(t){!t.__keep&&this.group.remove(t.group)},this)},renderSeries:function(){}});IN.extend({type:"markPoint",updateTransform:function(t,e,i){e.eachSeries(function(t){var e=t.markPointModel;e&&(Ny(e.getData(),t,i),this.markerGroupMap.get(t.id).updateLayout(e))},this)},renderSeries:function(t,e,i,n){var o=t.coordinateSystem,a=t.id,r=t.getData(),s=this.markerGroupMap,l=s.get(a)||s.set(a,new Ql),u=Oy(o,t,e);e.setData(u),Ny(e.getData(),t,n),u.each(function(t){var i=u.getItemModel(t),n=i.getShallow("symbolSize");"function"==typeof n&&(n=n(e.getRawValue(t),e.getDataParams(t))),u.setItemVisual(t,{symbolSize:n,color:i.get("itemStyle.color")||r.getVisual("color"),symbol:i.getShallow("symbol")})}),l.updateData(u),this.group.add(l.group),u.eachItemGraphicEl(function(t){t.traverse(function(t){t.dataModel=e})}),l.__keep=!0,l.group.silent=e.get("silent")||t.get("silent")}}),us(function(t){t.markPoint=t.markPoint||{}}),wN.extend({type:"markLine",defaultOption:{zlevel:0,z:5,symbol:["circle","arrow"],symbolSize:[8,16],precision:2,tooltip:{trigger:"item"},label:{show:!0,position:"end"},lineStyle:{type:"dashed"},emphasis:{label:{show:!0},lineStyle:{width:3}},animationEasing:"linear"}});var TN=function(t,e,o,r){var s=t.getData(),l=r.type;if(!y(r)&&("min"===l||"max"===l||"average"===l||"median"===l||null!=r.xAxis||null!=r.yAxis)){var u,h;if(null!=r.yAxis||null!=r.xAxis)u=null!=r.yAxis?"y":"x",e.getAxis(u),h=T(r.yAxis,r.xAxis);else{var c=Ay(r,s,e,t);u=c.valueDataDim,c.valueAxis,h=Py(s,u,l)}var d="x"===u?0:1,f=1-d,p=i(r),g={};p.type=null,p.coord=[],g.coord=[],p.coord[f]=-1/0,g.coord[f]=1/0;var m=o.get("precision");m>=0&&"number"==typeof h&&(h=+h.toFixed(Math.min(m,20))),p.coord[d]=g.coord[d]=h,r=[p,g,{type:l,valueIndex:r.valueIndex,value:h}]}return r=[Dy(t,r[0]),Dy(t,r[1]),a({},r[2])],r[2].type=r[2].type||"",n(r[2],r[0]),n(r[2],r[1]),r};IN.extend({type:"markLine",updateTransform:function(t,e,i){e.eachSeries(function(t){var e=t.markLineModel;if(e){var n=e.getData(),o=e.__from,a=e.__to;o.each(function(e){By(o,e,!0,t,i),By(a,e,!1,t,i)}),n.each(function(t){n.setItemLayout(t,[o.getItemLayout(t),a.getItemLayout(t)])}),this.markerGroupMap.get(t.id).updateLayout()}},this)},renderSeries:function(t,e,i,n){function o(e,i,o){var a=e.getItemModel(i);By(e,i,o,t,n),e.setItemVisual(i,{symbolSize:a.get("symbolSize")||g[o?0:1],symbol:a.get("symbol",!0)||p[o?0:1],color:a.get("itemStyle.color")||s.getVisual("color")})}var a=t.coordinateSystem,r=t.id,s=t.getData(),l=this.markerGroupMap,u=l.get(r)||l.set(r,new Sd);this.group.add(u.group);var h=Vy(a,t,e),c=h.from,d=h.to,f=h.line;e.__from=c,e.__to=d,e.setData(f);var p=e.get("symbol"),g=e.get("symbolSize");y(p)||(p=[p,p]),"number"==typeof g&&(g=[g,g]),h.from.each(function(t){o(c,t,!0),o(d,t,!1)}),f.each(function(t){var e=f.getItemModel(t).get("lineStyle.color");f.setItemVisual(t,{color:e||c.getItemVisual(t,"color")}),f.setItemLayout(t,[c.getItemLayout(t),d.getItemLayout(t)]),f.setItemVisual(t,{fromSymbolSize:c.getItemVisual(t,"symbolSize"),fromSymbol:c.getItemVisual(t,"symbol"),toSymbolSize:d.getItemVisual(t,"symbolSize"),toSymbol:d.getItemVisual(t,"symbol")})}),u.updateData(f),h.line.eachItemGraphicEl(function(t,i){t.traverse(function(t){t.dataModel=e})}),u.__keep=!0,u.group.silent=e.get("silent")||t.get("silent")}}),us(function(t){t.markLine=t.markLine||{}}),wN.extend({type:"markArea",defaultOption:{zlevel:0,z:1,tooltip:{trigger:"item"},animation:!1,label:{show:!0,position:"top"},itemStyle:{borderWidth:0},emphasis:{label:{show:!0,position:"top"}}}});var DN=function(t,e,i,n){var a=Dy(t,n[0]),r=Dy(t,n[1]),s=T,l=a.coord,u=r.coord;l[0]=s(l[0],-1/0),l[1]=s(l[1],-1/0),u[0]=s(u[0],1/0),u[1]=s(u[1],1/0);var h=o([{},a,r]);return h.coord=[a.coord,r.coord],h.x0=a.x,h.y0=a.y,h.x1=r.x,h.y1=r.y,h},AN=[["x0","y0"],["x1","y0"],["x1","y1"],["x0","y1"]];IN.extend({type:"markArea",updateTransform:function(t,e,i){e.eachSeries(function(t){var e=t.markAreaModel;if(e){var n=e.getData();n.each(function(e){var o=f(AN,function(o){return Hy(n,e,o,t,i)});n.setItemLayout(e,o),n.getItemGraphicEl(e).setShape("points",o)})}},this)},renderSeries:function(t,e,i,n){var o=t.coordinateSystem,a=t.id,s=t.getData(),l=this.markerGroupMap,u=l.get(a)||l.set(a,{group:new sw});this.group.add(u.group),u.__keep=!0;var h=Zy(o,t,e);e.setData(h),h.each(function(e){h.setItemLayout(e,f(AN,function(i){return Hy(h,e,i,t,n)})),h.setItemVisual(e,{color:s.getVisual("color")})}),h.diff(u.__data).add(function(t){var e=new wS({shape:{points:h.getItemLayout(t)}});h.setItemGraphicEl(t,e),u.group.add(e)}).update(function(t,i){var n=u.__data.getItemGraphicEl(i);fo(n,{shape:{points:h.getItemLayout(t)}},e,t),u.group.add(n),h.setItemGraphicEl(t,n)}).remove(function(t){var e=u.__data.getItemGraphicEl(t);u.group.remove(e)}).execute(),h.eachItemGraphicEl(function(t,i){var n=h.getItemModel(i),o=n.getModel("label"),a=n.getModel("emphasis.label"),s=h.getItemVisual(i,"color");t.useStyle(r(n.getModel("itemStyle").getItemStyle(),{fill:Rt(s,.4),stroke:s})),t.hoverStyle=n.getModel("emphasis.itemStyle").getItemStyle(),io(t.style,t.hoverStyle,o,a,{labelFetcher:e,labelDataIndex:i,defaultText:h.getName(i)||"",isRectText:!0,autoColor:s}),eo(t,{}),t.dataModel=e}),u.__data=h,u.group.silent=e.get("silent")||t.get("silent")}}),us(function(t){t.markArea=t.markArea||{}});hM.registerSubTypeDefaulter("timeline",function(){return"slider"}),cs({type:"timelineChange",event:"timelineChanged",update:"prepareAndUpdate"},function(t,e){var i=e.getComponent("timeline");return i&&null!=t.currentIndex&&(i.setCurrentIndex(t.currentIndex),!i.get("loop",!0)&&i.isIndexMax()&&i.setPlayState(!1)),e.resetOption("timeline"),r({currentIndex:i.option.currentIndex},t)}),cs({type:"timelinePlayChange",event:"timelinePlayChanged",update:"update"},function(t,e){var i=e.getComponent("timeline");i&&null!=t.playState&&i.setPlayState(t.playState)});var CN=hM.extend({type:"timeline",layoutMode:"box",defaultOption:{zlevel:0,z:4,show:!0,axisType:"time",realtime:!0,left:"20%",top:null,right:"20%",bottom:0,width:null,height:40,padding:5,controlPosition:"left",autoPlay:!1,rewind:!1,loop:!0,playInterval:2e3,currentIndex:0,itemStyle:{},label:{color:"#000"},data:[]},init:function(t,e,i){this._data,this._names,this.mergeDefaultAndTheme(t,i),this._initData()},mergeOption:function(t){CN.superApply(this,"mergeOption",arguments),this._initData()},setCurrentIndex:function(t){null==t&&(t=this.option.currentIndex);var e=this._data.count();this.option.loop?t=(t%e+e)%e:(t>=e&&(t=e-1),t<0&&(t=0)),this.option.currentIndex=t},getCurrentIndex:function(){return this.option.currentIndex},isIndexMax:function(){return this.getCurrentIndex()>=this._data.count()-1},setPlayState:function(t){this.option.autoPlay=!!t},getPlayState:function(){return!!this.option.autoPlay},_initData:function(){var t=this.option,e=t.data||[],n=t.axisType,o=this._names=[];if("category"===n){var a=[];d(e,function(t,e){var n,r=Ii(t);w(t)?(n=i(t)).value=e:n=e,a.push(n),_(r)||null!=r&&!isNaN(r)||(r=""),o.push(r+"")}),e=a}var r={category:"ordinal",time:"time"}[n]||"number";(this._data=new sT([{name:"value",type:r}],this)).initData(e,o)},getData:function(){return this._data},getCategories:function(){if("category"===this.get("axisType"))return this._names.slice()}});h(CN.extend({type:"timeline.slider",defaultOption:{backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,orient:"horizontal",inverse:!1,tooltip:{trigger:"item"},symbol:"emptyCircle",symbolSize:10,lineStyle:{show:!0,width:2,color:"#304654"},label:{position:"auto",show:!0,interval:"auto",rotate:0,color:"#304654"},itemStyle:{color:"#304654",borderWidth:1},checkpointStyle:{symbol:"circle",symbolSize:13,color:"#c23531",borderWidth:5,borderColor:"rgba(194,53,49, 0.5)",animation:!0,animationDuration:300,animationEasing:"quinticInOut"},controlStyle:{show:!0,showPlayBtn:!0,showPrevBtn:!0,showNextBtn:!0,itemSize:22,itemGap:12,position:"left",playIcon:"path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z",stopIcon:"path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z",nextIcon:"path://M18.6,50.8l22.5-22.5c0.2-0.2,0.3-0.4,0.3-0.7c0-0.3-0.1-0.5-0.3-0.7L18.7,4.4c-0.1-0.1-0.2-0.3-0.2-0.5 c0-0.4,0.3-0.8,0.8-0.8c0.2,0,0.5,0.1,0.6,0.3l23.5,23.5l0,0c0.2,0.2,0.3,0.4,0.3,0.7c0,0.3-0.1,0.5-0.3,0.7l-0.1,0.1L19.7,52 c-0.1,0.1-0.3,0.2-0.5,0.2c-0.4,0-0.8-0.3-0.8-0.8C18.4,51.2,18.5,51,18.6,50.8z",prevIcon:"path://M43,52.8L20.4,30.3c-0.2-0.2-0.3-0.4-0.3-0.7c0-0.3,0.1-0.5,0.3-0.7L42.9,6.4c0.1-0.1,0.2-0.3,0.2-0.5 c0-0.4-0.3-0.8-0.8-0.8c-0.2,0-0.5,0.1-0.6,0.3L18.3,28.8l0,0c-0.2,0.2-0.3,0.4-0.3,0.7c0,0.3,0.1,0.5,0.3,0.7l0.1,0.1L41.9,54 c0.1,0.1,0.3,0.2,0.5,0.2c0.4,0,0.8-0.3,0.8-0.8C43.2,53.2,43.1,53,43,52.8z",color:"#304654",borderColor:"#304654",borderWidth:1},emphasis:{label:{show:!0,color:"#c23531"},itemStyle:{color:"#c23531"},controlStyle:{color:"#c23531",borderColor:"#c23531",borderWidth:2}},data:[]}}),XM);var LN=$M.extend({type:"timeline"}),kN=function(t,e,i,n){qT.call(this,t,e,i),this.type=n||"value",this.model=null};kN.prototype={constructor:kN,getLabelModel:function(){return this.model.getModel("label")},isHorizontal:function(){return"horizontal"===this.model.get("orient")}},u(kN,qT);var PN=m,NN=d,ON=Math.PI;LN.extend({type:"timeline.slider",init:function(t,e){this.api=e,this._axis,this._viewRect,this._timer,this._currentPointer,this._mainGroup,this._labelGroup},render:function(t,e,i,n){if(this.model=t,this.api=i,this.ecModel=e,this.group.removeAll(),t.get("show",!0)){var o=this._layout(t,i),a=this._createGroup("mainGroup"),r=this._createGroup("labelGroup"),s=this._axis=this._createAxis(o,t);t.formatTooltip=function(t){return Zo(s.scale.getLabel(t))},NN(["AxisLine","AxisTick","Control","CurrentPointer"],function(e){this["_render"+e](o,a,s,t)},this),this._renderAxisLabel(o,r,s,t),this._position(o,t)}this._doPlayStop()},remove:function(){this._clearTimer(),this.group.removeAll()},dispose:function(){this._clearTimer()},_layout:function(t,e){var i=t.get("label.position"),n=t.get("orient"),o=Yy(t,e);null==i||"auto"===i?i="horizontal"===n?o.y+o.height/2=0||"+"===i?"left":"right"},r={horizontal:i>=0||"+"===i?"top":"bottom",vertical:"middle"},s={horizontal:0,vertical:ON/2},l="vertical"===n?o.height:o.width,u=t.getModel("controlStyle"),h=u.get("show",!0),c=h?u.get("itemSize"):0,d=h?u.get("itemGap"):0,f=c+d,p=t.get("label.rotate")||0;p=p*ON/180;var g,m,v,y,x=u.get("position",!0),_=h&&u.get("showPlayBtn",!0),w=h&&u.get("showPrevBtn",!0),b=h&&u.get("showNextBtn",!0),S=0,M=l;return"left"===x||"bottom"===x?(_&&(g=[0,0],S+=f),w&&(m=[S,0],S+=f),b&&(v=[M-c,0],M-=f)):(_&&(g=[M-c,0],M-=f),w&&(m=[0,0],S+=f),b&&(v=[M-c,0],M-=f)),y=[S,M],t.get("inverse")&&y.reverse(),{viewRect:o,mainLength:l,orient:n,rotation:s[n],labelRotation:p,labelPosOpt:i,labelAlign:t.get("label.align")||a[n],labelBaseline:t.get("label.verticalAlign")||t.get("label.baseline")||r[n],playPosition:g,prevBtnPosition:m,nextBtnPosition:v,axisExtent:y,controlSize:c,controlGap:d}},_position:function(t,e){function i(t){var e=t.position;t.origin=[c[0][0]-e[0],c[1][0]-e[1]]}function n(t){return[[t.x,t.x+t.width],[t.y,t.y+t.height]]}function o(t,e,i,n,o){t[n]+=i[n][o]-e[n][o]}var a=this._mainGroup,r=this._labelGroup,s=t.viewRect;if("vertical"===t.orient){var l=st(),u=s.x,h=s.y+s.height;ct(l,l,[-u,-h]),dt(l,l,-ON/2),ct(l,l,[u,h]),(s=s.clone()).applyTransform(l)}var c=n(s),d=n(a.getBoundingRect()),f=n(r.getBoundingRect()),p=a.position,g=r.position;g[0]=p[0]=c[0][0];var m=t.labelPosOpt;if(isNaN(m))o(p,d,c,1,v="+"===m?0:1),o(g,f,c,1,1-v);else{var v=m>=0?0:1;o(p,d,c,1,v),g[1]=p[1]+m}a.attr("position",p),r.attr("position",g),a.rotation=r.rotation=t.rotation,i(a),i(r)},_createAxis:function(t,e){var i=e.getData(),n=e.get("axisType"),o=xl(e,n);o.getTicks=function(){return i.mapArray(["value"],function(t){return t})};var a=i.getDataExtent("value");o.setExtent(a[0],a[1]),o.niceTicks();var r=new kN("value",o,t.axisExtent,n);return r.model=e,r},_createGroup:function(t){var e=this["_"+t]=new sw;return this.group.add(e),e},_renderAxisLine:function(t,e,i,n){var o=i.getExtent();n.get("lineStyle.show")&&e.add(new MS({shape:{x1:o[0],y1:0,x2:o[1],y2:0},style:a({lineCap:"round"},n.getModel("lineStyle").getLineStyle()),silent:!0,z2:1}))},_renderAxisTick:function(t,e,i,n){var o=n.getData(),a=i.scale.getTicks();NN(a,function(t){var a=i.dataToCoord(t),r=o.getItemModel(t),s=r.getModel("itemStyle"),l=r.getModel("emphasis.itemStyle"),u={position:[a,0],onclick:PN(this._changeTimeline,this,t)},h=Ky(r,s,e,u);eo(h,l.getItemStyle()),r.get("tooltip")?(h.dataIndex=t,h.dataModel=n):h.dataIndex=h.dataModel=null},this)},_renderAxisLabel:function(t,e,i,n){if(i.getLabelModel().get("show")){var o=n.getData(),a=i.getViewLabels();NN(a,function(n){var a=n.tickValue,r=o.getItemModel(a),s=r.getModel("label"),l=r.getModel("emphasis.label"),u=i.dataToCoord(n.tickValue),h=new fS({position:[u,0],rotation:t.labelRotation-t.rotation,onclick:PN(this._changeTimeline,this,a),silent:!1});no(h.style,s,{text:n.formattedLabel,textAlign:t.labelAlign,textVerticalAlign:t.labelBaseline}),e.add(h),eo(h,no({},l))},this)}},_renderControl:function(t,e,i,n){function o(t,i,o,h){if(t){var c=qy(n,i,u,{position:t,origin:[a/2,0],rotation:h?-r:0,rectHover:!0,style:s,onclick:o});e.add(c),eo(c,l)}}var a=t.controlSize,r=t.rotation,s=n.getModel("controlStyle").getItemStyle(),l=n.getModel("emphasis.controlStyle").getItemStyle(),u=[0,-a/2,a,a],h=n.getPlayState(),c=n.get("inverse",!0);o(t.nextBtnPosition,"controlStyle.nextIcon",PN(this._changeTimeline,this,c?"-":"+")),o(t.prevBtnPosition,"controlStyle.prevIcon",PN(this._changeTimeline,this,c?"+":"-")),o(t.playPosition,"controlStyle."+(h?"stopIcon":"playIcon"),PN(this._handlePlayClick,this,!h),!0)},_renderCurrentPointer:function(t,e,i,n){var o=n.getData(),a=n.getCurrentIndex(),r=o.getItemModel(a).getModel("checkpointStyle"),s=this,l={onCreate:function(t){t.draggable=!0,t.drift=PN(s._handlePointerDrag,s),t.ondragend=PN(s._handlePointerDragend,s),$y(t,a,i,n,!0)},onUpdate:function(t){$y(t,a,i,n)}};this._currentPointer=Ky(r,r,this._mainGroup,{},this._currentPointer,l)},_handlePlayClick:function(t){this._clearTimer(),this.api.dispatchAction({type:"timelinePlayChange",playState:t,from:this.uid})},_handlePointerDrag:function(t,e,i){this._clearTimer(),this._pointerChangeTimeline([i.offsetX,i.offsetY])},_handlePointerDragend:function(t){this._pointerChangeTimeline([t.offsetX,t.offsetY],!0)},_pointerChangeTimeline:function(t,e){var i=this._toAxisCoord(t)[0],n=Co(this._axis.getExtent().slice());i>n[1]&&(i=n[1]),ii.getHeight()&&(n.textPosition="top",l=!0);var u=l?-5-o.height:s+8;a+o.width/2>i.getWidth()?(n.textPosition=["100%",u],n.textAlign="right"):a-o.width/2<0&&(n.textPosition=[0,u],n.textAlign="left")}})}},updateView:function(t,e,i,n){d(this._features,function(t){t.updateView&&t.updateView(t.model,e,i,n)})},remove:function(t,e){d(this._features,function(i){i.remove&&i.remove(t,e)}),this.group.removeAll()},dispose:function(t,e){d(this._features,function(i){i.dispose&&i.dispose(t,e)})}});var RN=lI.toolbox.saveAsImage;Qy.defaultOption={show:!0,icon:"M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0",title:RN.title,type:"png",name:"",excludeComponents:["toolbox"],pixelRatio:1,lang:RN.lang.slice()},Qy.prototype.unusable=!a_.canvasSupported,Qy.prototype.onclick=function(t,e){var i=this.model,n=i.get("name")||t.get("title.0.text")||"echarts",o=document.createElement("a"),a=i.get("type",!0)||"png";o.download=n+"."+a,o.target="_blank";var r=e.getConnectedDataURL({type:a,backgroundColor:i.get("backgroundColor",!0)||t.get("backgroundColor")||"#fff",excludeComponents:i.get("excludeComponents"),pixelRatio:i.get("pixelRatio")});if(o.href=r,"function"!=typeof MouseEvent||a_.browser.ie||a_.browser.edge)if(window.navigator.msSaveOrOpenBlob){for(var s=atob(r.split(",")[1]),l=s.length,u=new Uint8Array(l);l--;)u[l]=s.charCodeAt(l);var h=new Blob([u]);window.navigator.msSaveOrOpenBlob(h,n+"."+a)}else{var c=i.get("lang"),d='';window.open().document.write(d)}else{var f=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1});o.dispatchEvent(f)}},Bv("saveAsImage",Qy);var zN=lI.toolbox.magicType;tx.defaultOption={show:!0,type:[],icon:{line:"M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4",bar:"M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7",stack:"M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z",tiled:"M2.3,2.2h22.8V25H2.3V2.2z M35,2.2h22.8V25H35V2.2zM2.3,35h22.8v22.8H2.3V35z M35,35h22.8v22.8H35V35z"},title:i(zN.title),option:{},seriesIndex:{}};var BN=tx.prototype;BN.getIcons=function(){var t=this.model,e=t.get("icon"),i={};return d(t.get("type"),function(t){e[t]&&(i[t]=e[t])}),i};var VN={line:function(t,e,i,o){if("bar"===t)return n({id:e,type:"line",data:i.get("data"),stack:i.get("stack"),markPoint:i.get("markPoint"),markLine:i.get("markLine")},o.get("option.line")||{},!0)},bar:function(t,e,i,o){if("line"===t)return n({id:e,type:"bar",data:i.get("data"),stack:i.get("stack"),markPoint:i.get("markPoint"),markLine:i.get("markLine")},o.get("option.bar")||{},!0)},stack:function(t,e,i,o){if("line"===t||"bar"===t)return n({id:e,stack:"__ec_magicType_stack__"},o.get("option.stack")||{},!0)},tiled:function(t,e,i,o){if("line"===t||"bar"===t)return n({id:e,stack:""},o.get("option.tiled")||{},!0)}},GN=[["line","bar"],["stack","tiled"]];BN.onclick=function(t,e,i){var n=this.model,o=n.get("seriesIndex."+i);if(VN[i]){var a={series:[]};d(GN,function(t){l(t,i)>=0&&d(t,function(t){n.setIconStatus(t,"normal")})}),n.setIconStatus(i,"emphasis"),t.eachComponent({mainType:"series",query:null==o?null:{seriesIndex:o}},function(e){var o=e.subType,s=e.id,l=VN[i](o,s,e,n);l&&(r(l,e.option),a.series.push(l));var u=e.coordinateSystem;if(u&&"cartesian2d"===u.type&&("line"===i||"bar"===i)){var h=u.getAxesByScale("ordinal")[0];if(h){var c=h.dim+"Axis",d=t.queryComponents({mainType:c,index:e.get(name+"Index"),id:e.get(name+"Id")})[0].componentIndex;a[c]=a[c]||[];for(var f=0;f<=d;f++)a[c][d]=a[c][d]||{};a[c][d].boundaryGap="bar"===i}}}),e.dispatchAction({type:"changeMagicType",currentType:i,newOption:a})}},cs({type:"changeMagicType",event:"magicTypeChanged",update:"prepareAndUpdate"},function(t,e){e.mergeOption(t.newOption)}),Bv("magicType",tx);var WN=lI.toolbox.dataView,FN=new Array(60).join("-"),HN="\t",ZN=new RegExp("["+HN+"]+","g");hx.defaultOption={show:!0,readOnly:!1,optionToContent:null,contentToOption:null,icon:"M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28",title:i(WN.title),lang:i(WN.lang),backgroundColor:"#fff",textColor:"#000",textareaColor:"#fff",textareaBorderColor:"#333",buttonColor:"#c23531",buttonTextColor:"#fff"},hx.prototype.onclick=function(t,e){function i(){n.removeChild(a),x._dom=null}var n=e.getDom(),o=this.model;this._dom&&n.removeChild(this._dom);var a=document.createElement("div");a.style.cssText="position:absolute;left:5px;top:5px;bottom:5px;right:5px;",a.style.backgroundColor=o.get("backgroundColor")||"#fff";var r=document.createElement("h4"),s=o.get("lang")||[];r.innerHTML=s[0]||o.get("title"),r.style.cssText="margin: 10px 20px;",r.style.color=o.get("textColor");var l=document.createElement("div"),u=document.createElement("textarea");l.style.cssText="display:block;width:100%;overflow:auto;";var h=o.get("optionToContent"),c=o.get("contentToOption"),d=ox(t);if("function"==typeof h){var f=h(e.getOption());"string"==typeof f?l.innerHTML=f:M(f)&&l.appendChild(f)}else l.appendChild(u),u.readOnly=o.get("readOnly"),u.style.cssText="width:100%;height:100%;font-family:monospace;font-size:14px;line-height:1.6rem;",u.style.color=o.get("textColor"),u.style.borderColor=o.get("textareaBorderColor"),u.style.backgroundColor=o.get("textareaColor"),u.value=d.value;var p=d.meta,g=document.createElement("div");g.style.cssText="position:absolute;bottom:0;left:0;right:0;";var m="float:right;margin-right:20px;border:none;cursor:pointer;padding:2px 5px;font-size:12px;border-radius:3px",v=document.createElement("div"),y=document.createElement("div");m+=";background-color:"+o.get("buttonColor"),m+=";color:"+o.get("buttonTextColor");var x=this;ui(v,"click",i),ui(y,"click",function(){var t;try{t="function"==typeof c?c(l,e.getOption()):ux(u.value,p)}catch(t){throw i(),new Error("Data view format error "+t)}t&&e.dispatchAction({type:"changeDataView",newOption:t}),i()}),v.innerHTML=s[1],y.innerHTML=s[2],y.style.cssText=m,v.style.cssText=m,!o.get("readOnly")&&g.appendChild(y),g.appendChild(v),ui(u,"keydown",function(t){if(9===(t.keyCode||t.which)){var e=this.value,i=this.selectionStart,n=this.selectionEnd;this.value=e.substring(0,i)+HN+e.substring(n),this.selectionStart=this.selectionEnd=i+1,zw(t)}}),a.appendChild(r),a.appendChild(l),a.appendChild(g),l.style.height=n.clientHeight-80+"px",n.appendChild(a),this._dom=a},hx.prototype.remove=function(t,e){this._dom&&e.getDom().removeChild(this._dom)},hx.prototype.dispose=function(t,e){this.remove(t,e)},Bv("dataView",hx),cs({type:"changeDataView",event:"dataViewChanged",update:"prepareAndUpdate"},function(t,e){var i=[];d(t.newOption.series,function(t){var n=e.getSeriesByName(t.name)[0];if(n){var o=n.get("data");i.push({name:t.name,data:cx(t.data,o)})}else i.push(a({type:"scatter"},t))}),e.mergeOption(r({series:i},t.newOption))});var UN=d,XN="\0_ec_hist_store";PP.extend({type:"dataZoom.select"}),NP.extend({type:"dataZoom.select"});var jN=lI.toolbox.dataZoom,YN=d,qN="\0_ec_\0toolbox-dataZoom_";vx.defaultOption={show:!0,icon:{zoom:"M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1",back:"M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26"},title:i(jN.title)};var KN=vx.prototype;KN.render=function(t,e,i,n){this.model=t,this.ecModel=e,this.api=i,_x(t,e,this,n,i),xx(t,e)},KN.onclick=function(t,e,i){$N[i].call(this)},KN.remove=function(t,e){this._brushController.unmount()},KN.dispose=function(t,e){this._brushController.dispose()};var $N={zoom:function(){var t=!this._isZoomActive;this.api.dispatchAction({type:"takeGlobalCursor",key:"dataZoomSelect",dataZoomSelectActive:t})},back:function(){this._dispatchZoomAction(fx(this.ecModel))}};KN._onBrush=function(t,e){function i(t,e,i){var r=e.getAxis(t),s=r.model,l=n(t,s,a),u=l.findRepresentativeAxisProxy(s).getMinMaxSpan();null==u.minValueSpan&&null==u.maxValueSpan||(i=PC(0,i.slice(),r.scale.getExtent(),0,u.minValueSpan,u.maxValueSpan)),l&&(o[l.id]={dataZoomId:l.id,startValue:i[0],endValue:i[1]})}function n(t,e,i){var n;return i.eachComponent({mainType:"dataZoom",subType:"select"},function(i){i.getAxisModel(t,e.componentIndex)&&(n=i)}),n}if(e.isEnd&&t.length){var o={},a=this.ecModel;this._brushController.updateCovers([]),new bv(yx(this.model.option),a,{include:["grid"]}).matchOutputRanges(t,a,function(t,e,n){if("cartesian2d"===n.type){var o=t.brushType;"rect"===o?(i("x",n,e[0]),i("y",n,e[1])):i({lineX:"x",lineY:"y"}[o],n,e)}}),dx(a,o),this._dispatchZoomAction(o)}},KN._dispatchZoomAction=function(t){var e=[];YN(t,function(t,n){e.push(i(t))}),e.length&&this.api.dispatchAction({type:"dataZoom",from:this.uid,batch:e})},Bv("dataZoom",vx),us(function(t){function e(t,e){if(e){var o=t+"Index",a=e[o];null==a||"all"==a||y(a)||(a=!1===a||"none"===a?[]:[a]),i(t,function(e,i){if(null==a||"all"==a||-1!==l(a,i)){var r={type:"select",$fromToolbox:!0,id:qN+t+i};r[o]=i,n.push(r)}})}}function i(e,i){var n=t[e];y(n)||(n=n?[n]:[]),YN(n,i)}if(t){var n=t.dataZoom||(t.dataZoom=[]);y(n)||(t.dataZoom=n=[n]);var o=t.toolbox;if(o&&(y(o)&&(o=o[0]),o&&o.feature)){var a=o.feature.dataZoom;e("xAxis",a),e("yAxis",a)}}});var JN=lI.toolbox.restore;bx.defaultOption={show:!0,icon:"M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5",title:JN.title},bx.prototype.onclick=function(t,e,i){px(t),e.dispatchAction({type:"restore",from:this.uid})},Bv("restore",bx),cs({type:"restore",event:"restore",update:"prepareAndUpdate"},function(t,e){e.resetOption("recreate")});var QN,tO="urn:schemas-microsoft-com:vml",eO="undefined"==typeof window?null:window,iO=!1,nO=eO&&eO.document;if(nO&&!a_.canvasSupported)try{!nO.namespaces.zrvml&&nO.namespaces.add("zrvml",tO),QN=function(t){return nO.createElement("')}}catch(t){QN=function(t){return nO.createElement("<"+t+' xmlns="'+tO+'" class="zrvml">')}}var oO=Hb.CMD,aO=Math.round,rO=Math.sqrt,sO=Math.abs,lO=Math.cos,uO=Math.sin,hO=Math.max;if(!a_.canvasSupported){var cO=21600,dO=cO/2,fO=function(t){t.style.cssText="position:absolute;left:0;top:0;width:1px;height:1px;",t.coordsize=cO+","+cO,t.coordorigin="0,0"},pO=function(t){return String(t).replace(/&/g,"&").replace(/"/g,""")},gO=function(t,e,i){return"rgb("+[t,e,i].join(",")+")"},mO=function(t,e){e&&t&&e.parentNode!==t&&t.appendChild(e)},vO=function(t,e){e&&t&&e.parentNode===t&&t.removeChild(e)},yO=function(t,e,i){return 1e5*(parseFloat(t)||0)+1e3*(parseFloat(e)||0)+i},xO=function(t,e){return"string"==typeof t?t.lastIndexOf("%")>=0?parseFloat(t)/100*e:parseFloat(t):t},_O=function(t,e,i){var n=At(e);i=+i,isNaN(i)&&(i=1),n&&(t.color=gO(n[0],n[1],n[2]),t.opacity=i*n[3])},wO=function(t){var e=At(t);return[gO(e[0],e[1],e[2]),e[3]]},bO=function(t,e,i){var n=e.fill;if(null!=n)if(n instanceof CS){var o,a=0,r=[0,0],s=0,l=1,u=i.getBoundingRect(),h=u.width,c=u.height;if("linear"===n.type){o="gradient";var d=i.transform,f=[n.x*h,n.y*c],p=[n.x2*h,n.y2*c];d&&(Q(f,f,d),Q(p,p,d));var g=p[0]-f[0],m=p[1]-f[1];(a=180*Math.atan2(g,m)/Math.PI)<0&&(a+=360),a<1e-6&&(a=0)}else{o="gradientradial";var f=[n.x*h,n.y*c],d=i.transform,v=i.scale,y=h,x=c;r=[(f[0]-u.x)/y,(f[1]-u.y)/x],d&&Q(f,f,d),y/=v[0]*cO,x/=v[1]*cO;var _=hO(y,x);s=0/_,l=2*n.r/_-s}var w=n.colorStops.slice();w.sort(function(t,e){return t.offset-e.offset});for(var b=w.length,S=[],M=[],I=0;I=2){var A=S[0][0],C=S[1][0],L=S[0][1]*e.opacity,k=S[1][1]*e.opacity;t.type=o,t.method="none",t.focus="100%",t.angle=a,t.color=A,t.color2=C,t.colors=M.join(","),t.opacity=k,t.opacity2=L}"radial"===o&&(t.focusposition=r.join(","))}else _O(t,n,e.opacity)},SO=function(t,e){null!=e.lineDash&&(t.dashstyle=e.lineDash.join(" ")),null==e.stroke||e.stroke instanceof CS||_O(t,e.stroke,e.opacity)},MO=function(t,e,i,n){var o="fill"==e,a=t.getElementsByTagName(e)[0];null!=i[e]&&"none"!==i[e]&&(o||!o&&i.lineWidth)?(t[o?"filled":"stroked"]="true",i[e]instanceof CS&&vO(t,a),a||(a=Sx(e)),o?bO(a,i,n):SO(a,i),mO(t,a)):(t[o?"filled":"stroked"]="false",vO(t,a))},IO=[[],[],[]],TO=function(t,e){var i,n,o,a,r,s,l=oO.M,u=oO.C,h=oO.L,c=oO.A,d=oO.Q,f=[],p=t.data,g=t.len();for(a=0;a.01?N&&(O+=.0125):Math.abs(E-A)<1e-4?N&&OD?x-=.0125:x+=.0125:N&&EA?y+=.0125:y-=.0125),f.push(R,aO(((D-C)*M+b)*cO-dO),",",aO(((A-L)*I+S)*cO-dO),",",aO(((D+C)*M+b)*cO-dO),",",aO(((A+L)*I+S)*cO-dO),",",aO((O*M+b)*cO-dO),",",aO((E*I+S)*cO-dO),",",aO((y*M+b)*cO-dO),",",aO((x*I+S)*cO-dO)),r=y,s=x;break;case oO.R:var z=IO[0],B=IO[1];z[0]=p[a++],z[1]=p[a++],B[0]=z[0]+p[a++],B[1]=z[1]+p[a++],e&&(Q(z,z,e),Q(B,B,e)),z[0]=aO(z[0]*cO-dO),B[0]=aO(B[0]*cO-dO),z[1]=aO(z[1]*cO-dO),B[1]=aO(B[1]*cO-dO),f.push(" m ",z[0],",",z[1]," l ",B[0],",",z[1]," l ",B[0],",",B[1]," l ",z[0],",",B[1]);break;case oO.Z:f.push(" x ")}if(i>0){f.push(n);for(var V=0;V100&&(LO=0,CO={});var i,n=kO.style;try{n.font=t,i=n.fontFamily.split(",")[0]}catch(t){}e={style:n.fontStyle||"normal",variant:n.fontVariant||"normal",weight:n.fontWeight||"normal",size:0|parseFloat(n.fontSize||12),family:i||"Microsoft YaHei"},CO[t]=e,LO++}return e};!function(t,e){Dw[t]=e}("measureText",function(t,e){var i=nO;AO||((AO=i.createElement("div")).style.cssText="position:absolute;top:-20000px;left:0;padding:0;margin:0;border:none;white-space:pre;",nO.body.appendChild(AO));try{AO.style.font=e}catch(t){}return AO.innerHTML="",AO.appendChild(i.createTextNode(t)),{width:AO.offsetWidth}});for(var NO=new $t,OO=[kw,$e,Je,In,fS],EO=0;EO=o&&u+1>=a){for(var h=[],c=0;c=o&&c+1>=a)return Gx(0,s.components);l[i]=s}else l[i]=void 0}r++}();if(d)return d}},pushComponent:function(t,e,i){var n=t[t.length-1];n&&n.added===e&&n.removed===i?t[t.length-1]={count:n.count+1,added:e,removed:i}:t.push({count:1,added:e,removed:i})},extractCommon:function(t,e,i,n){for(var o=e.length,a=i.length,r=t.newPos,s=r-n,l=0;r+1=0;--n)if(e[n]===t)return!0;return!1}),i):null:i[0]},Fx.prototype.update=function(t,e){if(t){var i=this.getDefs(!1);if(t[this._domName]&&i.contains(t[this._domName]))"function"==typeof e&&e(t);else{var n=this.add(t);n&&(t[this._domName]=n)}}},Fx.prototype.addDom=function(t){this.getDefs(!0).appendChild(t)},Fx.prototype.removeDom=function(t){var e=this.getDefs(!1);e&&t[this._domName]&&(e.removeChild(t[this._domName]),t[this._domName]=null)},Fx.prototype.getDoms=function(){var t=this.getDefs(!1);if(!t)return[];var e=[];return d(this._tagNames,function(i){var n=t.getElementsByTagName(i);e=e.concat([].slice.call(n))}),e},Fx.prototype.markAllUnused=function(){var t=this;d(this.getDoms(),function(e){e[t._markLabel]="0"})},Fx.prototype.markUsed=function(t){t&&(t[this._markLabel]="1")},Fx.prototype.removeUnused=function(){var t=this.getDefs(!1);if(t){var e=this;d(this.getDoms(),function(i){"1"!==i[e._markLabel]&&t.removeChild(i)})}},Fx.prototype.getSvgProxy=function(t){return t instanceof In?YO:t instanceof Je?qO:t instanceof fS?KO:YO},Fx.prototype.getTextSvgElement=function(t){return t.__textSvgEl},Fx.prototype.getSvgElement=function(t){return t.__svgEl},u(Hx,Fx),Hx.prototype.addWithoutUpdate=function(t,e){if(e&&e.style){var i=this;d(["fill","stroke"],function(n){if(e.style[n]&&("linear"===e.style[n].type||"radial"===e.style[n].type)){var o,a=e.style[n],r=i.getDefs(!0);a._dom?(o=a._dom,r.contains(a._dom)||i.addDom(o)):o=i.add(a),i.markUsed(e);var s=o.getAttribute("id");t.setAttribute(n,"url(#"+s+")")}})}},Hx.prototype.add=function(t){var e;if("linear"===t.type)e=this.createElement("linearGradient");else{if("radial"!==t.type)return ew("Illegal gradient type."),null;e=this.createElement("radialGradient")}return t.id=t.id||this.nextId++,e.setAttribute("id","zr"+this._zrId+"-gradient-"+t.id),this.updateDom(t,e),this.addDom(e),e},Hx.prototype.update=function(t){var e=this;Fx.prototype.update.call(this,t,function(){var i=t.type,n=t._dom.tagName;"linear"===i&&"linearGradient"===n||"radial"===i&&"radialGradient"===n?e.updateDom(t,t._dom):(e.removeDom(t),e.add(t))})},Hx.prototype.updateDom=function(t,e){if("linear"===t.type)e.setAttribute("x1",t.x),e.setAttribute("y1",t.y),e.setAttribute("x2",t.x2),e.setAttribute("y2",t.y2);else{if("radial"!==t.type)return void ew("Illegal gradient type.");e.setAttribute("cx",t.x),e.setAttribute("cy",t.y),e.setAttribute("r",t.r)}t.global?e.setAttribute("gradientUnits","userSpaceOnUse"):e.setAttribute("gradientUnits","objectBoundingBox"),e.innerHTML="";for(var i=t.colorStops,n=0,o=i.length;n0){var n,o,a=this.getDefs(!0),r=e[0],s=i?"_textDom":"_dom";r[s]?(o=r[s].getAttribute("id"),n=r[s],a.contains(n)||a.appendChild(n)):(o="zr"+this._zrId+"-clip-"+this.nextId,++this.nextId,(n=this.createElement("clipPath")).setAttribute("id",o),a.appendChild(n),r[s]=n);var l=this.getSvgProxy(r);if(r.transform&&r.parent.invTransform&&!i){var u=Array.prototype.slice.call(r.transform);ht(r.transform,r.parent.invTransform,r.transform),l.brush(r),r.transform=u}else l.brush(r);var h=this.getSvgElement(r);n.innerHTML="",n.appendChild(h.cloneNode()),t.setAttribute("clip-path","url(#"+o+")"),e.length>1&&this.updateDom(n,e.slice(1),i)}else t&&t.setAttribute("clip-path","none")},Zx.prototype.markUsed=function(t){var e=this;t.__clipPaths&&t.__clipPaths.length>0&&d(t.__clipPaths,function(t){t._dom&&Fx.prototype.markUsed.call(e,t._dom),t._textDom&&Fx.prototype.markUsed.call(e,t._textDom)})},u(Ux,Fx),Ux.prototype.addWithoutUpdate=function(t,e){if(e&&Xx(e.style)){var i,n=e.style;n._shadowDom?(i=n._shadowDom,this.getDefs(!0).contains(n._shadowDom)||this.addDom(i)):i=this.add(e),this.markUsed(e);var o=i.getAttribute("id");t.style.filter="url(#"+o+")"}},Ux.prototype.add=function(t){var e=this.createElement("filter"),i=t.style;return i._shadowDomId=i._shadowDomId||this.nextId++,e.setAttribute("id","zr"+this._zrId+"-shadow-"+i._shadowDomId),this.updateDom(t,e),this.addDom(e),e},Ux.prototype.update=function(t,e){var i=e.style;if(Xx(i)){var n=this;Fx.prototype.update.call(this,e,function(t){n.updateDom(e,t._shadowDom)})}else this.remove(t,i)},Ux.prototype.remove=function(t,e){null!=e._shadowDomId&&(this.removeDom(e),t.style.filter="")},Ux.prototype.updateDom=function(t,e){var i=e.getElementsByTagName("feDropShadow");i=0===i.length?this.createElement("feDropShadow"):i[0];var n,o,a,r,s=t.style,l=t.scale?t.scale[0]||1:1,u=t.scale?t.scale[1]||1:1;if(s.shadowBlur||s.shadowOffsetX||s.shadowOffsetY)n=s.shadowOffsetX||0,o=s.shadowOffsetY||0,a=s.shadowBlur,r=s.shadowColor;else{if(!s.textShadowBlur)return void this.removeDom(e,s);n=s.textShadowOffsetX||0,o=s.textShadowOffsetY||0,a=s.textShadowBlur,r=s.textShadowColor}i.setAttribute("dx",n/l),i.setAttribute("dy",o/u),i.setAttribute("flood-color",r);var h=a/2/l+" "+a/2/u;i.setAttribute("stdDeviation",h),e.setAttribute("x","-100%"),e.setAttribute("y","-100%"),e.setAttribute("width",Math.ceil(a/2*200)+"%"),e.setAttribute("height",Math.ceil(a/2*200)+"%"),e.appendChild(i),s._shadowDom=e},Ux.prototype.markUsed=function(t){var e=t.style;e&&e._shadowDom&&Fx.prototype.markUsed.call(this,e._shadowDom)};var eE=function(t,e,i,n){this.root=t,this.storage=e,this._opts=i=a({},i||{});var o=Ax("svg");o.setAttribute("xmlns","http://www.w3.org/2000/svg"),o.setAttribute("version","1.1"),o.setAttribute("baseProfile","full"),o.style.cssText="user-select:none;position:absolute;left:0;top:0;",this.gradientManager=new Hx(n,o),this.clipPathManager=new Zx(n,o),this.shadowManager=new Ux(n,o);var r=document.createElement("div");r.style.cssText="overflow:hidden;position:relative",this._svgRoot=o,this._viewport=r,t.appendChild(r),r.appendChild(o),this.resize(i.width,i.height),this._visibleList=[]};eE.prototype={constructor:eE,getType:function(){return"svg"},getViewportRoot:function(){return this._viewport},getViewportRootOffset:function(){var t=this.getViewportRoot();if(t)return{offsetLeft:t.offsetLeft||0,offsetTop:t.offsetTop||0}},refresh:function(){var t=this.storage.getDisplayList(!0);this._paintList(t)},setBackgroundColor:function(t){this._viewport.style.background=t},_paintList:function(t){this.gradientManager.markAllUnused(),this.clipPathManager.markAllUnused(),this.shadowManager.markAllUnused();var e,i=this._svgRoot,n=this._visibleList,o=t.length,a=[];for(e=0;e=0;--n)if(e[n]===t)return!0;return!1}),i):null:i[0]},resize:function(t,e){var i=this._viewport;i.style.display="none";var n=this._opts;if(null!=t&&(n.width=t),null!=e&&(n.height=e),t=this._getSize(0),e=this._getSize(1),i.style.display="",this._width!==t||this._height!==e){this._width=t,this._height=e;var o=i.style;o.width=t+"px",o.height=e+"px";var a=this._svgRoot;a.setAttribute("width",t),a.setAttribute("height",e)}},getWidth:function(){return this._width},getHeight:function(){return this._height},_getSize:function(t){var e=this._opts,i=["width","height"][t],n=["clientWidth","clientHeight"][t],o=["paddingLeft","paddingTop"][t],a=["paddingRight","paddingBottom"][t];if(null!=e[i]&&"auto"!==e[i])return parseFloat(e[i]);var r=this.root,s=document.defaultView.getComputedStyle(r);return(r[n]||jx(s[i])||jx(r.style[i]))-(jx(s[o])||0)-(jx(s[a])||0)|0},dispose:function(){this.root.innerHTML="",this._svgRoot=this._viewport=this.storage=null},clear:function(){this._viewport&&this.root.removeChild(this._viewport)},pathToDataUrl:function(){return this.refresh(),"data:image/svg+xml;charset=UTF-8,"+this._svgRoot.outerHTML}},d(["getLayer","insertLayer","eachLayer","eachBuiltinLayer","eachOtherLayer","getLayers","modLayer","delLayer","clearLayer","toDataURL","pathToImage"],function(t){eE.prototype[t]=e_(t)}),wi("svg",eE),t.version="4.1.0",t.dependencies=TI,t.PRIORITY=LI,t.init=function(t,e,i){var n=ss(t);if(n)return n;var o=new Gr(t,e,i);return o.id="ec_"+jI++,UI[o.id]=o,Ri(t,qI,o.id),as(o),o},t.connect=function(t){if(y(t)){var e=t;t=null,bI(e,function(e){null!=e.group&&(t=e.group)}),t=t||"g_"+YI++,bI(e,function(e){e.group=t})}return XI[t]=!0,t},t.disConnect=rs,t.disconnect=$I,t.dispose=function(t){"string"==typeof t?t=UI[t]:t instanceof Gr||(t=ss(t)),t instanceof Gr&&!t.isDisposed()&&t.dispose()},t.getInstanceByDom=ss,t.getInstanceById=function(t){return UI[t]},t.registerTheme=ls,t.registerPreprocessor=us,t.registerProcessor=hs,t.registerPostUpdate=function(t){WI.push(t)},t.registerAction=cs,t.registerCoordinateSystem=ds,t.getCoordinateSystemDimensions=function(t){var e=Ca.get(t);if(e)return e.getDimensionsInfo?e.getDimensionsInfo():e.dimensions.slice()},t.registerLayout=fs,t.registerVisual=ps,t.registerLoading=ms,t.extendComponentModel=vs,t.extendComponentView=ys,t.extendSeriesModel=xs,t.extendChartView=_s,t.setCanvasCreator=function(t){e("createCanvas",t)},t.registerMap=function(t,e,i){e.geoJson&&!e.features&&(i=e.specialAreas,e=e.geoJson),"string"==typeof e&&(e="undefined"!=typeof JSON&&JSON.parse?JSON.parse(e):new Function("return ("+e+");")()),KI[t]={geoJson:e,specialAreas:i}},t.getMap=ws,t.dataTool=JI,t.zrender=$w,t.graphic=BS,t.number=qS,t.format=nM,t.throttle=_r,t.helper=ZT,t.matrix=P_,t.vector=I_,t.color=q_,t.parseGeoJSON=XT,t.parseGeoJson=KT,t.util=$T,t.List=sT,t.Model=wo,t.Axis=qT,t.env=a_}); diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/js/geoCoord.js b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/js/geoCoord.js new file mode 100644 index 00000000..4382341a --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/js/geoCoord.js @@ -0,0 +1,116 @@ +var geoCoordMap = { + '上海': [121.4648,31.2891], + '东莞': [113.8953,22.901], + '东营': [118.7073,37.5513], + '中山': [113.4229,22.478], + '临汾': [111.4783,36.1615], + '临沂': [118.3118,35.2936], + '丹东': [124.541,40.4242], + '丽水': [119.5642,28.1854], + '乌鲁木齐': [87.9236,43.5883], + '佛山': [112.8955,23.1097], + '保定': [115.0488,39.0948], + '兰州': [103.5901,36.3043], + '包头': [110.3467,41.4899], + '北京': [116.4551,40.2539], + '北海': [109.314,21.6211], + '南京': [118.8062,31.9208], + '南宁': [108.479,23.1152], + '南昌': [116.0046,28.6633], + '南通': [121.1023,32.1625], + '厦门': [118.1689,24.6478], + '台州': [121.1353,28.6688], + '合肥': [117.29,32.0581], + '呼和浩特': [111.4124,40.4901], + '咸阳': [108.4131,34.8706], + '哈尔滨': [127.9688,45.368], + '唐山': [118.4766,39.6826], + '嘉兴': [120.9155,30.6354], + '大同': [113.7854,39.8035], + '大连': [122.2229,39.4409], + '天津': [117.4219,39.4189], + '太原': [112.3352,37.9413], + '威海': [121.9482,37.1393], + '宁波': [121.5967,29.6466], + '宝鸡': [107.1826,34.3433], + '宿迁': [118.5535,33.7775], + '常州': [119.4543,31.5582], + '广州': [113.5107,23.2196], + '廊坊': [116.521,39.0509], + '延安': [109.1052,36.4252], + '张家口': [115.1477,40.8527], + '徐州': [117.5208,34.3268], + '德州': [116.6858,37.2107], + '惠州': [114.6204,23.1647], + '成都': [103.9526,30.7617], + '扬州': [119.4653,32.8162], + '承德': [117.5757,41.4075], + '拉萨': [91.1865,30.1465], + '无锡': [120.3442,31.5527], + '日照': [119.2786,35.5023], + '昆明': [102.9199,25.4663], + '杭州': [119.5313,29.8773], + '枣庄': [117.323,34.8926], + '柳州': [109.3799,24.9774], + '株洲': [113.5327,27.0319], + '武汉': [114.3896,30.6628], + '汕头': [117.1692,23.3405], + '江门': [112.6318,22.1484], + '沈阳': [123.1238,42.1216], + '沧州': [116.8286,38.2104], + '河源': [114.917,23.9722], + '泉州': [118.3228,25.1147], + '泰安': [117.0264,36.0516], + '泰州': [120.0586,32.5525], + '济南': [117.1582,36.8701], + '济宁': [116.8286,35.3375], + '海口': [110.3893,19.8516], + '淄博': [118.0371,36.6064], + '淮安': [118.927,33.4039], + '深圳': [114.5435,22.5439], + '清远': [112.9175,24.3292], + '温州': [120.498,27.8119], + '渭南': [109.7864,35.0299], + '湖州': [119.8608,30.7782], + '湘潭': [112.5439,27.7075], + '滨州': [117.8174,37.4963], + '潍坊': [119.0918,36.524], + '烟台': [120.7397,37.5128], + '玉溪': [101.9312,23.8898], + '珠海': [113.7305,22.1155], + '盐城': [120.2234,33.5577], + '盘锦': [121.9482,41.0449], + '石家庄': [114.4995,38.1006], + '福州': [119.4543,25.9222], + '秦皇岛': [119.2126,40.0232], + '绍兴': [120.564,29.7565], + '聊城': [115.9167,36.4032], + '肇庆': [112.1265,23.5822], + '舟山': [122.2559,30.2234], + '苏州': [120.6519,31.3989], + '莱芜': [117.6526,36.2714], + '菏泽': [115.6201,35.2057], + '营口': [122.4316,40.4297], + '葫芦岛': [120.1575,40.578], + '衡水': [115.8838,37.7161], + '衢州': [118.6853,28.8666], + '西宁': [101.4038,36.8207], + '西安': [109.1162,34.2004], + '贵阳': [106.6992,26.7682], + '连云港': [119.1248,34.552], + '邢台': [114.8071,37.2821], + '邯郸': [114.4775,36.535], + '郑州': [113.4668,34.6234], + '鄂尔多斯': [108.9734,39.2487], + '重庆': [107.7539,30.1904], + '金华': [120.0037,29.1028], + '铜川': [109.0393,35.1947], + '银川': [106.3586,38.1775], + '镇江': [119.4763,31.9702], + '长春': [125.8154,44.2584], + '长沙': [113.0823,28.2568], + '长治': [112.8625,36.4746], + '阳泉': [113.4778,38.0951], + '青岛': [120.4651,36.3373], + '韶关': [113.7964,24.7028] +}; \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/js/jquery.easyui.min.js b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/js/jquery.easyui.min.js new file mode 100644 index 00000000..b6edf3fe --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/js/jquery.easyui.min.js @@ -0,0 +1,14780 @@ +/** + * jQuery EasyUI 1.4.5 + * + * Copyright (c) 2009-2016 www.jeasyui.com. All rights reserved. + * + * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php + * To use it on other terms please contact us: info@jeasyui.com + * + */ +(function($){ +$.easyui={indexOfArray:function(a,o,id){ +for(var i=0,_1=a.length;i<_1;i++){ +if(id==undefined){ +if(a[i]==o){ +return i; +} +}else{ +if(a[i][o]==id){ +return i; +} +} +} +return -1; +},removeArrayItem:function(a,o,id){ +if(typeof o=="string"){ +for(var i=0,_2=a.length;i<_2;i++){ +if(a[i][o]==id){ +a.splice(i,1); +return; +} +} +}else{ +var _3=this.indexOfArray(a,o); +if(_3!=-1){ +a.splice(_3,1); +} +} +},addArrayItem:function(a,o,r){ +var _4=this.indexOfArray(a,o,r?r[o]:undefined); +if(_4==-1){ +a.push(r?r:o); +}else{ +a[_4]=r?r:o; +} +},getArrayItem:function(a,o,id){ +var _5=this.indexOfArray(a,o,id); +return _5==-1?null:a[_5]; +},forEach:function(_6,_7,_8){ +var _9=[]; +for(var i=0;i<_6.length;i++){ +_9.push(_6[i]); +} +while(_9.length){ +var _a=_9.shift(); +if(_8(_a)==false){ +return; +} +if(_7&&_a.children){ +for(var i=_a.children.length-1;i>=0;i--){ +_9.unshift(_a.children[i]); +} +} +} +}}; +$.parser={auto:true,onComplete:function(_b){ +},plugins:["draggable","droppable","resizable","pagination","tooltip","linkbutton","menu","menubutton","splitbutton","switchbutton","progressbar","tree","textbox","filebox","combo","combobox","combotree","combogrid","numberbox","validatebox","searchbox","spinner","numberspinner","timespinner","datetimespinner","calendar","datebox","datetimebox","slider","layout","panel","datagrid","propertygrid","treegrid","datalist","tabs","accordion","window","dialog","form"],parse:function(_c){ +var aa=[]; +for(var i=0;i<$.parser.plugins.length;i++){ +var _d=$.parser.plugins[i]; +var r=$(".easyui-"+_d,_c); +if(r.length){ +if(r[_d]){ +r.each(function(){ +$(this)[_d]($.data(this,"options")||{}); +}); +}else{ +aa.push({name:_d,jq:r}); +} +} +} +if(aa.length&&window.easyloader){ +var _e=[]; +for(var i=0;i=0){ +v=Math.floor((_12.width()-_13)*v/100); +}else{ +v=Math.floor((_12.height()-_13)*v/100); +} +}else{ +v=parseInt(v)||undefined; +} +return v; +},parseOptions:function(_15,_16){ +var t=$(_15); +var _17={}; +var s=$.trim(t.attr("data-options")); +if(s){ +if(s.substring(0,1)!="{"){ +s="{"+s+"}"; +} +_17=(new Function("return "+s))(); +} +$.map(["width","height","left","top","minWidth","maxWidth","minHeight","maxHeight"],function(p){ +var pv=$.trim(_15.style[p]||""); +if(pv){ +if(pv.indexOf("%")==-1){ +pv=parseInt(pv); +if(isNaN(pv)){ +pv=undefined; +} +} +_17[p]=pv; +} +}); +if(_16){ +var _18={}; +for(var i=0;i<_16.length;i++){ +var pp=_16[i]; +if(typeof pp=="string"){ +_18[pp]=t.attr(pp); +}else{ +for(var _19 in pp){ +var _1a=pp[_19]; +if(_1a=="boolean"){ +_18[_19]=t.attr(_19)?(t.attr(_19)=="true"):undefined; +}else{ +if(_1a=="number"){ +_18[_19]=t.attr(_19)=="0"?0:parseFloat(t.attr(_19))||undefined; +} +} +} +} +} +$.extend(_17,_18); +} +return _17; +}}; +$(function(){ +var d=$("
").appendTo("body"); +$._boxModel=d.outerWidth()!=100; +d.remove(); +d=$("
").appendTo("body"); +$._positionFixed=(d.css("position")=="fixed"); +d.remove(); +if(!window.easyloader&&$.parser.auto){ +$.parser.parse(); +} +}); +$.fn._outerWidth=function(_1b){ +if(_1b==undefined){ +if(this[0]==window){ +return this.width()||document.body.clientWidth; +} +return this.outerWidth()||0; +} +return this._size("width",_1b); +}; +$.fn._outerHeight=function(_1c){ +if(_1c==undefined){ +if(this[0]==window){ +return this.height()||document.body.clientHeight; +} +return this.outerHeight()||0; +} +return this._size("height",_1c); +}; +$.fn._scrollLeft=function(_1d){ +if(_1d==undefined){ +return this.scrollLeft(); +}else{ +return this.each(function(){ +$(this).scrollLeft(_1d); +}); +} +}; +$.fn._propAttr=$.fn.prop||$.fn.attr; +$.fn._size=function(_1e,_1f){ +if(typeof _1e=="string"){ +if(_1e=="clear"){ +return this.each(function(){ +$(this).css({width:"",minWidth:"",maxWidth:"",height:"",minHeight:"",maxHeight:""}); +}); +}else{ +if(_1e=="fit"){ +return this.each(function(){ +_20(this,this.tagName=="BODY"?$("body"):$(this).parent(),true); +}); +}else{ +if(_1e=="unfit"){ +return this.each(function(){ +_20(this,$(this).parent(),false); +}); +}else{ +if(_1f==undefined){ +return _21(this[0],_1e); +}else{ +return this.each(function(){ +_21(this,_1e,_1f); +}); +} +} +} +} +}else{ +return this.each(function(){ +_1f=_1f||$(this).parent(); +$.extend(_1e,_20(this,_1f,_1e.fit)||{}); +var r1=_22(this,"width",_1f,_1e); +var r2=_22(this,"height",_1f,_1e); +if(r1||r2){ +$(this).addClass("easyui-fluid"); +}else{ +$(this).removeClass("easyui-fluid"); +} +}); +} +function _20(_23,_24,fit){ +if(!_24.length){ +return false; +} +var t=$(_23)[0]; +var p=_24[0]; +var _25=p.fcount||0; +if(fit){ +if(!t.fitted){ +t.fitted=true; +p.fcount=_25+1; +$(p).addClass("panel-noscroll"); +if(p.tagName=="BODY"){ +$("html").addClass("panel-fit"); +} +} +return {width:($(p).width()||1),height:($(p).height()||1)}; +}else{ +if(t.fitted){ +t.fitted=false; +p.fcount=_25-1; +if(p.fcount==0){ +$(p).removeClass("panel-noscroll"); +if(p.tagName=="BODY"){ +$("html").removeClass("panel-fit"); +} +} +} +return false; +} +}; +function _22(_26,_27,_28,_29){ +var t=$(_26); +var p=_27; +var p1=p.substr(0,1).toUpperCase()+p.substr(1); +var min=$.parser.parseValue("min"+p1,_29["min"+p1],_28); +var max=$.parser.parseValue("max"+p1,_29["max"+p1],_28); +var val=$.parser.parseValue(p,_29[p],_28); +var _2a=(String(_29[p]||"").indexOf("%")>=0?true:false); +if(!isNaN(val)){ +var v=Math.min(Math.max(val,min||0),max||99999); +if(!_2a){ +_29[p]=v; +} +t._size("min"+p1,""); +t._size("max"+p1,""); +t._size(p,v); +}else{ +t._size(p,""); +t._size("min"+p1,min); +t._size("max"+p1,max); +} +return _2a||_29.fit; +}; +function _21(_2b,_2c,_2d){ +var t=$(_2b); +if(_2d==undefined){ +_2d=parseInt(_2b.style[_2c]); +if(isNaN(_2d)){ +return undefined; +} +if($._boxModel){ +_2d+=_2e(); +} +return _2d; +}else{ +if(_2d===""){ +t.css(_2c,""); +}else{ +if($._boxModel){ +_2d-=_2e(); +if(_2d<0){ +_2d=0; +} +} +t.css(_2c,_2d+"px"); +} +} +function _2e(){ +if(_2c.toLowerCase().indexOf("width")>=0){ +return t.outerWidth()-t.width(); +}else{ +return t.outerHeight()-t.height(); +} +}; +}; +}; +})(jQuery); +(function($){ +var _2f=null; +var _30=null; +var _31=false; +function _32(e){ +if(e.touches.length!=1){ +return; +} +if(!_31){ +_31=true; +dblClickTimer=setTimeout(function(){ +_31=false; +},500); +}else{ +clearTimeout(dblClickTimer); +_31=false; +_33(e,"dblclick"); +} +_2f=setTimeout(function(){ +_33(e,"contextmenu",3); +},1000); +_33(e,"mousedown"); +if($.fn.draggable.isDragging||$.fn.resizable.isResizing){ +e.preventDefault(); +} +}; +function _34(e){ +if(e.touches.length!=1){ +return; +} +if(_2f){ +clearTimeout(_2f); +} +_33(e,"mousemove"); +if($.fn.draggable.isDragging||$.fn.resizable.isResizing){ +e.preventDefault(); +} +}; +function _35(e){ +if(_2f){ +clearTimeout(_2f); +} +_33(e,"mouseup"); +if($.fn.draggable.isDragging||$.fn.resizable.isResizing){ +e.preventDefault(); +} +}; +function _33(e,_36,_37){ +var _38=new $.Event(_36); +_38.pageX=e.changedTouches[0].pageX; +_38.pageY=e.changedTouches[0].pageY; +_38.which=_37||1; +$(e.target).trigger(_38); +}; +if(document.addEventListener){ +document.addEventListener("touchstart",_32,true); +document.addEventListener("touchmove",_34,true); +document.addEventListener("touchend",_35,true); +} +})(jQuery); +(function($){ +function _39(e){ +var _3a=$.data(e.data.target,"draggable"); +var _3b=_3a.options; +var _3c=_3a.proxy; +var _3d=e.data; +var _3e=_3d.startLeft+e.pageX-_3d.startX; +var top=_3d.startTop+e.pageY-_3d.startY; +if(_3c){ +if(_3c.parent()[0]==document.body){ +if(_3b.deltaX!=null&&_3b.deltaX!=undefined){ +_3e=e.pageX+_3b.deltaX; +}else{ +_3e=e.pageX-e.data.offsetWidth; +} +if(_3b.deltaY!=null&&_3b.deltaY!=undefined){ +top=e.pageY+_3b.deltaY; +}else{ +top=e.pageY-e.data.offsetHeight; +} +}else{ +if(_3b.deltaX!=null&&_3b.deltaX!=undefined){ +_3e+=e.data.offsetWidth+_3b.deltaX; +} +if(_3b.deltaY!=null&&_3b.deltaY!=undefined){ +top+=e.data.offsetHeight+_3b.deltaY; +} +} +} +if(e.data.parent!=document.body){ +_3e+=$(e.data.parent).scrollLeft(); +top+=$(e.data.parent).scrollTop(); +} +if(_3b.axis=="h"){ +_3d.left=_3e; +}else{ +if(_3b.axis=="v"){ +_3d.top=top; +}else{ +_3d.left=_3e; +_3d.top=top; +} +} +}; +function _3f(e){ +var _40=$.data(e.data.target,"draggable"); +var _41=_40.options; +var _42=_40.proxy; +if(!_42){ +_42=$(e.data.target); +} +_42.css({left:e.data.left,top:e.data.top}); +$("body").css("cursor",_41.cursor); +}; +function _43(e){ +if(!$.fn.draggable.isDragging){ +return false; +} +var _44=$.data(e.data.target,"draggable"); +var _45=_44.options; +var _46=$(".droppable").filter(function(){ +return e.data.target!=this; +}).filter(function(){ +var _47=$.data(this,"droppable").options.accept; +if(_47){ +return $(_47).filter(function(){ +return this==e.data.target; +}).length>0; +}else{ +return true; +} +}); +_44.droppables=_46; +var _48=_44.proxy; +if(!_48){ +if(_45.proxy){ +if(_45.proxy=="clone"){ +_48=$(e.data.target).clone().insertAfter(e.data.target); +}else{ +_48=_45.proxy.call(e.data.target,e.data.target); +} +_44.proxy=_48; +}else{ +_48=$(e.data.target); +} +} +_48.css("position","absolute"); +_39(e); +_3f(e); +_45.onStartDrag.call(e.data.target,e); +return false; +}; +function _49(e){ +if(!$.fn.draggable.isDragging){ +return false; +} +var _4a=$.data(e.data.target,"draggable"); +_39(e); +if(_4a.options.onDrag.call(e.data.target,e)!=false){ +_3f(e); +} +var _4b=e.data.target; +_4a.droppables.each(function(){ +var _4c=$(this); +if(_4c.droppable("options").disabled){ +return; +} +var p2=_4c.offset(); +if(e.pageX>p2.left&&e.pageXp2.top&&e.pageYp2.left&&e.pageXp2.top&&e.pageY_62.options.edge; +}; +}); +}; +$.fn.draggable.methods={options:function(jq){ +return $.data(jq[0],"draggable").options; +},proxy:function(jq){ +return $.data(jq[0],"draggable").proxy; +},enable:function(jq){ +return jq.each(function(){ +$(this).draggable({disabled:false}); +}); +},disable:function(jq){ +return jq.each(function(){ +$(this).draggable({disabled:true}); +}); +}}; +$.fn.draggable.parseOptions=function(_67){ +var t=$(_67); +return $.extend({},$.parser.parseOptions(_67,["cursor","handle","axis",{"revert":"boolean","deltaX":"number","deltaY":"number","edge":"number","delay":"number"}]),{disabled:(t.attr("disabled")?true:undefined)}); +}; +$.fn.draggable.defaults={proxy:null,revert:false,cursor:"move",deltaX:null,deltaY:null,handle:null,disabled:false,edge:0,axis:null,delay:100,onBeforeDrag:function(e){ +},onStartDrag:function(e){ +},onDrag:function(e){ +},onStopDrag:function(e){ +}}; +$.fn.draggable.isDragging=false; +})(jQuery); +(function($){ +function _68(_69){ +$(_69).addClass("droppable"); +$(_69).bind("_dragenter",function(e,_6a){ +$.data(_69,"droppable").options.onDragEnter.apply(_69,[e,_6a]); +}); +$(_69).bind("_dragleave",function(e,_6b){ +$.data(_69,"droppable").options.onDragLeave.apply(_69,[e,_6b]); +}); +$(_69).bind("_dragover",function(e,_6c){ +$.data(_69,"droppable").options.onDragOver.apply(_69,[e,_6c]); +}); +$(_69).bind("_drop",function(e,_6d){ +$.data(_69,"droppable").options.onDrop.apply(_69,[e,_6d]); +}); +}; +$.fn.droppable=function(_6e,_6f){ +if(typeof _6e=="string"){ +return $.fn.droppable.methods[_6e](this,_6f); +} +_6e=_6e||{}; +return this.each(function(){ +var _70=$.data(this,"droppable"); +if(_70){ +$.extend(_70.options,_6e); +}else{ +_68(this); +$.data(this,"droppable",{options:$.extend({},$.fn.droppable.defaults,$.fn.droppable.parseOptions(this),_6e)}); +} +}); +}; +$.fn.droppable.methods={options:function(jq){ +return $.data(jq[0],"droppable").options; +},enable:function(jq){ +return jq.each(function(){ +$(this).droppable({disabled:false}); +}); +},disable:function(jq){ +return jq.each(function(){ +$(this).droppable({disabled:true}); +}); +}}; +$.fn.droppable.parseOptions=function(_71){ +var t=$(_71); +return $.extend({},$.parser.parseOptions(_71,["accept"]),{disabled:(t.attr("disabled")?true:undefined)}); +}; +$.fn.droppable.defaults={accept:null,disabled:false,onDragEnter:function(e,_72){ +},onDragOver:function(e,_73){ +},onDragLeave:function(e,_74){ +},onDrop:function(e,_75){ +}}; +})(jQuery); +(function($){ +$.fn.resizable=function(_76,_77){ +if(typeof _76=="string"){ +return $.fn.resizable.methods[_76](this,_77); +} +function _78(e){ +var _79=e.data; +var _7a=$.data(_79.target,"resizable").options; +if(_79.dir.indexOf("e")!=-1){ +var _7b=_79.startWidth+e.pageX-_79.startX; +_7b=Math.min(Math.max(_7b,_7a.minWidth),_7a.maxWidth); +_79.width=_7b; +} +if(_79.dir.indexOf("s")!=-1){ +var _7c=_79.startHeight+e.pageY-_79.startY; +_7c=Math.min(Math.max(_7c,_7a.minHeight),_7a.maxHeight); +_79.height=_7c; +} +if(_79.dir.indexOf("w")!=-1){ +var _7b=_79.startWidth-e.pageX+_79.startX; +_7b=Math.min(Math.max(_7b,_7a.minWidth),_7a.maxWidth); +_79.width=_7b; +_79.left=_79.startLeft+_79.startWidth-_79.width; +} +if(_79.dir.indexOf("n")!=-1){ +var _7c=_79.startHeight-e.pageY+_79.startY; +_7c=Math.min(Math.max(_7c,_7a.minHeight),_7a.maxHeight); +_79.height=_7c; +_79.top=_79.startTop+_79.startHeight-_79.height; +} +}; +function _7d(e){ +var _7e=e.data; +var t=$(_7e.target); +t.css({left:_7e.left,top:_7e.top}); +if(t.outerWidth()!=_7e.width){ +t._outerWidth(_7e.width); +} +if(t.outerHeight()!=_7e.height){ +t._outerHeight(_7e.height); +} +}; +function _7f(e){ +$.fn.resizable.isResizing=true; +$.data(e.data.target,"resizable").options.onStartResize.call(e.data.target,e); +return false; +}; +function _80(e){ +_78(e); +if($.data(e.data.target,"resizable").options.onResize.call(e.data.target,e)!=false){ +_7d(e); +} +return false; +}; +function _81(e){ +$.fn.resizable.isResizing=false; +_78(e,true); +_7d(e); +$.data(e.data.target,"resizable").options.onStopResize.call(e.data.target,e); +$(document).unbind(".resizable"); +$("body").css("cursor",""); +return false; +}; +return this.each(function(){ +var _82=null; +var _83=$.data(this,"resizable"); +if(_83){ +$(this).unbind(".resizable"); +_82=$.extend(_83.options,_76||{}); +}else{ +_82=$.extend({},$.fn.resizable.defaults,$.fn.resizable.parseOptions(this),_76||{}); +$.data(this,"resizable",{options:_82}); +} +if(_82.disabled==true){ +return; +} +$(this).bind("mousemove.resizable",{target:this},function(e){ +if($.fn.resizable.isResizing){ +return; +} +var dir=_84(e); +if(dir==""){ +$(e.data.target).css("cursor",""); +}else{ +$(e.data.target).css("cursor",dir+"-resize"); +} +}).bind("mouseleave.resizable",{target:this},function(e){ +$(e.data.target).css("cursor",""); +}).bind("mousedown.resizable",{target:this},function(e){ +var dir=_84(e); +if(dir==""){ +return; +} +function _85(css){ +var val=parseInt($(e.data.target).css(css)); +if(isNaN(val)){ +return 0; +}else{ +return val; +} +}; +var _86={target:e.data.target,dir:dir,startLeft:_85("left"),startTop:_85("top"),left:_85("left"),top:_85("top"),startX:e.pageX,startY:e.pageY,startWidth:$(e.data.target).outerWidth(),startHeight:$(e.data.target).outerHeight(),width:$(e.data.target).outerWidth(),height:$(e.data.target).outerHeight(),deltaWidth:$(e.data.target).outerWidth()-$(e.data.target).width(),deltaHeight:$(e.data.target).outerHeight()-$(e.data.target).height()}; +$(document).bind("mousedown.resizable",_86,_7f); +$(document).bind("mousemove.resizable",_86,_80); +$(document).bind("mouseup.resizable",_86,_81); +$("body").css("cursor",dir+"-resize"); +}); +function _84(e){ +var tt=$(e.data.target); +var dir=""; +var _87=tt.offset(); +var _88=tt.outerWidth(); +var _89=tt.outerHeight(); +var _8a=_82.edge; +if(e.pageY>_87.top&&e.pageY<_87.top+_8a){ +dir+="n"; +}else{ +if(e.pageY<_87.top+_89&&e.pageY>_87.top+_89-_8a){ +dir+="s"; +} +} +if(e.pageX>_87.left&&e.pageX<_87.left+_8a){ +dir+="w"; +}else{ +if(e.pageX<_87.left+_88&&e.pageX>_87.left+_88-_8a){ +dir+="e"; +} +} +var _8b=_82.handles.split(","); +for(var i=0;i<_8b.length;i++){ +var _8c=_8b[i].replace(/(^\s*)|(\s*$)/g,""); +if(_8c=="all"||_8c==dir){ +return dir; +} +} +return ""; +}; +}); +}; +$.fn.resizable.methods={options:function(jq){ +return $.data(jq[0],"resizable").options; +},enable:function(jq){ +return jq.each(function(){ +$(this).resizable({disabled:false}); +}); +},disable:function(jq){ +return jq.each(function(){ +$(this).resizable({disabled:true}); +}); +}}; +$.fn.resizable.parseOptions=function(_8d){ +var t=$(_8d); +return $.extend({},$.parser.parseOptions(_8d,["handles",{minWidth:"number",minHeight:"number",maxWidth:"number",maxHeight:"number",edge:"number"}]),{disabled:(t.attr("disabled")?true:undefined)}); +}; +$.fn.resizable.defaults={disabled:false,handles:"n, e, s, w, ne, se, sw, nw, all",minWidth:10,minHeight:10,maxWidth:10000,maxHeight:10000,edge:5,onStartResize:function(e){ +},onResize:function(e){ +},onStopResize:function(e){ +}}; +$.fn.resizable.isResizing=false; +})(jQuery); +(function($){ +function _8e(_8f,_90){ +var _91=$.data(_8f,"linkbutton").options; +if(_90){ +$.extend(_91,_90); +} +if(_91.width||_91.height||_91.fit){ +var btn=$(_8f); +var _92=btn.parent(); +var _93=btn.is(":visible"); +if(!_93){ +var _94=$("
").insertBefore(_8f); +var _95={position:btn.css("position"),display:btn.css("display"),left:btn.css("left")}; +btn.appendTo("body"); +btn.css({position:"absolute",display:"inline-block",left:-20000}); +} +btn._size(_91,_92); +var _96=btn.find(".l-btn-left"); +_96.css("margin-top",0); +_96.css("margin-top",parseInt((btn.height()-_96.height())/2)+"px"); +if(!_93){ +btn.insertAfter(_94); +btn.css(_95); +_94.remove(); +} +} +}; +function _97(_98){ +var _99=$.data(_98,"linkbutton").options; +var t=$(_98).empty(); +t.addClass("l-btn").removeClass("l-btn-plain l-btn-selected l-btn-plain-selected l-btn-outline"); +t.removeClass("l-btn-small l-btn-medium l-btn-large").addClass("l-btn-"+_99.size); +if(_99.plain){ +t.addClass("l-btn-plain"); +} +if(_99.outline){ +t.addClass("l-btn-outline"); +} +if(_99.selected){ +t.addClass(_99.plain?"l-btn-selected l-btn-plain-selected":"l-btn-selected"); +} +t.attr("group",_99.group||""); +t.attr("id",_99.id||""); +var _9a=$("").appendTo(t); +if(_99.text){ +$("").html(_99.text).appendTo(_9a); +}else{ +$(" ").appendTo(_9a); +} +if(_99.iconCls){ +$(" ").addClass(_99.iconCls).appendTo(_9a); +_9a.addClass("l-btn-icon-"+_99.iconAlign); +} +t.unbind(".linkbutton").bind("focus.linkbutton",function(){ +if(!_99.disabled){ +$(this).addClass("l-btn-focus"); +} +}).bind("blur.linkbutton",function(){ +$(this).removeClass("l-btn-focus"); +}).bind("click.linkbutton",function(){ +if(!_99.disabled){ +if(_99.toggle){ +if(_99.selected){ +$(this).linkbutton("unselect"); +}else{ +$(this).linkbutton("select"); +} +} +_99.onClick.call(this); +} +}); +_9b(_98,_99.selected); +_9c(_98,_99.disabled); +}; +function _9b(_9d,_9e){ +var _9f=$.data(_9d,"linkbutton").options; +if(_9e){ +if(_9f.group){ +$("a.l-btn[group=\""+_9f.group+"\"]").each(function(){ +var o=$(this).linkbutton("options"); +if(o.toggle){ +$(this).removeClass("l-btn-selected l-btn-plain-selected"); +o.selected=false; +} +}); +} +$(_9d).addClass(_9f.plain?"l-btn-selected l-btn-plain-selected":"l-btn-selected"); +_9f.selected=true; +}else{ +if(!_9f.group){ +$(_9d).removeClass("l-btn-selected l-btn-plain-selected"); +_9f.selected=false; +} +} +}; +function _9c(_a0,_a1){ +var _a2=$.data(_a0,"linkbutton"); +var _a3=_a2.options; +$(_a0).removeClass("l-btn-disabled l-btn-plain-disabled"); +if(_a1){ +_a3.disabled=true; +var _a4=$(_a0).attr("href"); +if(_a4){ +_a2.href=_a4; +$(_a0).attr("href","javascript:void(0)"); +} +if(_a0.onclick){ +_a2.onclick=_a0.onclick; +_a0.onclick=null; +} +_a3.plain?$(_a0).addClass("l-btn-disabled l-btn-plain-disabled"):$(_a0).addClass("l-btn-disabled"); +}else{ +_a3.disabled=false; +if(_a2.href){ +$(_a0).attr("href",_a2.href); +} +if(_a2.onclick){ +_a0.onclick=_a2.onclick; +} +} +}; +$.fn.linkbutton=function(_a5,_a6){ +if(typeof _a5=="string"){ +return $.fn.linkbutton.methods[_a5](this,_a6); +} +_a5=_a5||{}; +return this.each(function(){ +var _a7=$.data(this,"linkbutton"); +if(_a7){ +$.extend(_a7.options,_a5); +}else{ +$.data(this,"linkbutton",{options:$.extend({},$.fn.linkbutton.defaults,$.fn.linkbutton.parseOptions(this),_a5)}); +$(this).removeAttr("disabled"); +$(this).bind("_resize",function(e,_a8){ +if($(this).hasClass("easyui-fluid")||_a8){ +_8e(this); +} +return false; +}); +} +_97(this); +_8e(this); +}); +}; +$.fn.linkbutton.methods={options:function(jq){ +return $.data(jq[0],"linkbutton").options; +},resize:function(jq,_a9){ +return jq.each(function(){ +_8e(this,_a9); +}); +},enable:function(jq){ +return jq.each(function(){ +_9c(this,false); +}); +},disable:function(jq){ +return jq.each(function(){ +_9c(this,true); +}); +},select:function(jq){ +return jq.each(function(){ +_9b(this,true); +}); +},unselect:function(jq){ +return jq.each(function(){ +_9b(this,false); +}); +}}; +$.fn.linkbutton.parseOptions=function(_aa){ +var t=$(_aa); +return $.extend({},$.parser.parseOptions(_aa,["id","iconCls","iconAlign","group","size","text",{plain:"boolean",toggle:"boolean",selected:"boolean",outline:"boolean"}]),{disabled:(t.attr("disabled")?true:undefined),text:($.trim(t.html())||undefined),iconCls:(t.attr("icon")||t.attr("iconCls"))}); +}; +$.fn.linkbutton.defaults={id:null,disabled:false,toggle:false,selected:false,outline:false,group:null,plain:false,text:"",iconCls:null,iconAlign:"left",size:"small",onClick:function(){ +}}; +})(jQuery); +(function($){ +function _ab(_ac){ +var _ad=$.data(_ac,"pagination"); +var _ae=_ad.options; +var bb=_ad.bb={}; +var _af=$(_ac).addClass("pagination").html("
"); +var tr=_af.find("tr"); +var aa=$.extend([],_ae.layout); +if(!_ae.showPageList){ +_b0(aa,"list"); +} +if(!_ae.showRefresh){ +_b0(aa,"refresh"); +} +if(aa[0]=="sep"){ +aa.shift(); +} +if(aa[aa.length-1]=="sep"){ +aa.pop(); +} +for(var _b1=0;_b1"); +ps.bind("change",function(){ +_ae.pageSize=parseInt($(this).val()); +_ae.onChangePageSize.call(_ac,_ae.pageSize); +_b8(_ac,_ae.pageNumber); +}); +for(var i=0;i<_ae.pageList.length;i++){ +$("").text(_ae.pageList[i]).appendTo(ps); +} +$("").append(ps).appendTo(tr); +}else{ +if(_b2=="sep"){ +$("
").appendTo(tr); +}else{ +if(_b2=="first"){ +bb.first=_b3("first"); +}else{ +if(_b2=="prev"){ +bb.prev=_b3("prev"); +}else{ +if(_b2=="next"){ +bb.next=_b3("next"); +}else{ +if(_b2=="last"){ +bb.last=_b3("last"); +}else{ +if(_b2=="manual"){ +$("").html(_ae.beforePageText).appendTo(tr).wrap(""); +bb.num=$("").appendTo(tr).wrap(""); +bb.num.unbind(".pagination").bind("keydown.pagination",function(e){ +if(e.keyCode==13){ +var _b4=parseInt($(this).val())||1; +_b8(_ac,_b4); +return false; +} +}); +bb.after=$("").appendTo(tr).wrap(""); +}else{ +if(_b2=="refresh"){ +bb.refresh=_b3("refresh"); +}else{ +if(_b2=="links"){ +$("").appendTo(tr); +} +} +} +} +} +} +} +} +} +} +if(_ae.buttons){ +$("
").appendTo(tr); +if($.isArray(_ae.buttons)){ +for(var i=0;i<_ae.buttons.length;i++){ +var btn=_ae.buttons[i]; +if(btn=="-"){ +$("
").appendTo(tr); +}else{ +var td=$("").appendTo(tr); +var a=$("").appendTo(td); +a[0].onclick=eval(btn.handler||function(){ +}); +a.linkbutton($.extend({},btn,{plain:true})); +} +} +}else{ +var td=$("").appendTo(tr); +$(_ae.buttons).appendTo(td).show(); +} +} +$("
").appendTo(_af); +$("
").appendTo(_af); +function _b3(_b5){ +var btn=_ae.nav[_b5]; +var a=$("").appendTo(tr); +a.wrap(""); +a.linkbutton({iconCls:btn.iconCls,plain:true}).unbind(".pagination").bind("click.pagination",function(){ +btn.handler.call(_ac); +}); +return a; +}; +function _b0(aa,_b6){ +var _b7=$.inArray(_b6,aa); +if(_b7>=0){ +aa.splice(_b7,1); +} +return aa; +}; +}; +function _b8(_b9,_ba){ +var _bb=$.data(_b9,"pagination").options; +_bc(_b9,{pageNumber:_ba}); +_bb.onSelectPage.call(_b9,_bb.pageNumber,_bb.pageSize); +}; +function _bc(_bd,_be){ +var _bf=$.data(_bd,"pagination"); +var _c0=_bf.options; +var bb=_bf.bb; +$.extend(_c0,_be||{}); +var ps=$(_bd).find("select.pagination-page-list"); +if(ps.length){ +ps.val(_c0.pageSize+""); +_c0.pageSize=parseInt(ps.val()); +} +var _c1=Math.ceil(_c0.total/_c0.pageSize)||1; +if(_c0.pageNumber<1){ +_c0.pageNumber=1; +} +if(_c0.pageNumber>_c1){ +_c0.pageNumber=_c1; +} +if(_c0.total==0){ +_c0.pageNumber=0; +_c1=0; +} +if(bb.num){ +bb.num.val(_c0.pageNumber); +} +if(bb.after){ +bb.after.html(_c0.afterPageText.replace(/{pages}/,_c1)); +} +var td=$(_bd).find("td.pagination-links"); +if(td.length){ +td.empty(); +var _c2=_c0.pageNumber-Math.floor(_c0.links/2); +if(_c2<1){ +_c2=1; +} +var _c3=_c2+_c0.links-1; +if(_c3>_c1){ +_c3=_c1; +} +_c2=_c3-_c0.links+1; +if(_c2<1){ +_c2=1; +} +for(var i=_c2;i<=_c3;i++){ +var a=$("").appendTo(td); +a.linkbutton({plain:true,text:i}); +if(i==_c0.pageNumber){ +a.linkbutton("select"); +}else{ +a.unbind(".pagination").bind("click.pagination",{pageNumber:i},function(e){ +_b8(_bd,e.data.pageNumber); +}); +} +} +} +var _c4=_c0.displayMsg; +_c4=_c4.replace(/{from}/,_c0.total==0?0:_c0.pageSize*(_c0.pageNumber-1)+1); +_c4=_c4.replace(/{to}/,Math.min(_c0.pageSize*(_c0.pageNumber),_c0.total)); +_c4=_c4.replace(/{total}/,_c0.total); +$(_bd).find("div.pagination-info").html(_c4); +if(bb.first){ +bb.first.linkbutton({disabled:((!_c0.total)||_c0.pageNumber==1)}); +} +if(bb.prev){ +bb.prev.linkbutton({disabled:((!_c0.total)||_c0.pageNumber==1)}); +} +if(bb.next){ +bb.next.linkbutton({disabled:(_c0.pageNumber==_c1)}); +} +if(bb.last){ +bb.last.linkbutton({disabled:(_c0.pageNumber==_c1)}); +} +_c5(_bd,_c0.loading); +}; +function _c5(_c6,_c7){ +var _c8=$.data(_c6,"pagination"); +var _c9=_c8.options; +_c9.loading=_c7; +if(_c9.showRefresh&&_c8.bb.refresh){ +_c8.bb.refresh.linkbutton({iconCls:(_c9.loading?"pagination-loading":"pagination-load")}); +} +}; +$.fn.pagination=function(_ca,_cb){ +if(typeof _ca=="string"){ +return $.fn.pagination.methods[_ca](this,_cb); +} +_ca=_ca||{}; +return this.each(function(){ +var _cc; +var _cd=$.data(this,"pagination"); +if(_cd){ +_cc=$.extend(_cd.options,_ca); +}else{ +_cc=$.extend({},$.fn.pagination.defaults,$.fn.pagination.parseOptions(this),_ca); +$.data(this,"pagination",{options:_cc}); +} +_ab(this); +_bc(this); +}); +}; +$.fn.pagination.methods={options:function(jq){ +return $.data(jq[0],"pagination").options; +},loading:function(jq){ +return jq.each(function(){ +_c5(this,true); +}); +},loaded:function(jq){ +return jq.each(function(){ +_c5(this,false); +}); +},refresh:function(jq,_ce){ +return jq.each(function(){ +_bc(this,_ce); +}); +},select:function(jq,_cf){ +return jq.each(function(){ +_b8(this,_cf); +}); +}}; +$.fn.pagination.parseOptions=function(_d0){ +var t=$(_d0); +return $.extend({},$.parser.parseOptions(_d0,[{total:"number",pageSize:"number",pageNumber:"number",links:"number"},{loading:"boolean",showPageList:"boolean",showRefresh:"boolean"}]),{pageList:(t.attr("pageList")?eval(t.attr("pageList")):undefined)}); +}; +$.fn.pagination.defaults={total:1,pageSize:10,pageNumber:1,pageList:[10,20,30,50],loading:false,buttons:null,showPageList:true,showRefresh:true,links:10,layout:["list","sep","first","prev","sep","manual","sep","next","last","sep","refresh"],onSelectPage:function(_d1,_d2){ +},onBeforeRefresh:function(_d3,_d4){ +},onRefresh:function(_d5,_d6){ +},onChangePageSize:function(_d7){ +},beforePageText:"Page",afterPageText:"of {pages}",displayMsg:"Displaying {from} to {to} of {total} items",nav:{first:{iconCls:"pagination-first",handler:function(){ +var _d8=$(this).pagination("options"); +if(_d8.pageNumber>1){ +$(this).pagination("select",1); +} +}},prev:{iconCls:"pagination-prev",handler:function(){ +var _d9=$(this).pagination("options"); +if(_d9.pageNumber>1){ +$(this).pagination("select",_d9.pageNumber-1); +} +}},next:{iconCls:"pagination-next",handler:function(){ +var _da=$(this).pagination("options"); +var _db=Math.ceil(_da.total/_da.pageSize); +if(_da.pageNumber<_db){ +$(this).pagination("select",_da.pageNumber+1); +} +}},last:{iconCls:"pagination-last",handler:function(){ +var _dc=$(this).pagination("options"); +var _dd=Math.ceil(_dc.total/_dc.pageSize); +if(_dc.pageNumber<_dd){ +$(this).pagination("select",_dd); +} +}},refresh:{iconCls:"pagination-refresh",handler:function(){ +var _de=$(this).pagination("options"); +if(_de.onBeforeRefresh.call(this,_de.pageNumber,_de.pageSize)!=false){ +$(this).pagination("select",_de.pageNumber); +_de.onRefresh.call(this,_de.pageNumber,_de.pageSize); +} +}}}}; +})(jQuery); +(function($){ +function _df(_e0){ +var _e1=$(_e0); +_e1.addClass("tree"); +return _e1; +}; +function _e2(_e3){ +var _e4=$.data(_e3,"tree").options; +$(_e3).unbind().bind("mouseover",function(e){ +var tt=$(e.target); +var _e5=tt.closest("div.tree-node"); +if(!_e5.length){ +return; +} +_e5.addClass("tree-node-hover"); +if(tt.hasClass("tree-hit")){ +if(tt.hasClass("tree-expanded")){ +tt.addClass("tree-expanded-hover"); +}else{ +tt.addClass("tree-collapsed-hover"); +} +} +e.stopPropagation(); +}).bind("mouseout",function(e){ +var tt=$(e.target); +var _e6=tt.closest("div.tree-node"); +if(!_e6.length){ +return; +} +_e6.removeClass("tree-node-hover"); +if(tt.hasClass("tree-hit")){ +if(tt.hasClass("tree-expanded")){ +tt.removeClass("tree-expanded-hover"); +}else{ +tt.removeClass("tree-collapsed-hover"); +} +} +e.stopPropagation(); +}).bind("click",function(e){ +var tt=$(e.target); +var _e7=tt.closest("div.tree-node"); +if(!_e7.length){ +return; +} +if(tt.hasClass("tree-hit")){ +_145(_e3,_e7[0]); +return false; +}else{ +if(tt.hasClass("tree-checkbox")){ +_10c(_e3,_e7[0]); +return false; +}else{ +_188(_e3,_e7[0]); +_e4.onClick.call(_e3,_ea(_e3,_e7[0])); +} +} +e.stopPropagation(); +}).bind("dblclick",function(e){ +var _e8=$(e.target).closest("div.tree-node"); +if(!_e8.length){ +return; +} +_188(_e3,_e8[0]); +_e4.onDblClick.call(_e3,_ea(_e3,_e8[0])); +e.stopPropagation(); +}).bind("contextmenu",function(e){ +var _e9=$(e.target).closest("div.tree-node"); +if(!_e9.length){ +return; +} +_e4.onContextMenu.call(_e3,e,_ea(_e3,_e9[0])); +e.stopPropagation(); +}); +}; +function _eb(_ec){ +var _ed=$.data(_ec,"tree").options; +_ed.dnd=false; +var _ee=$(_ec).find("div.tree-node"); +_ee.draggable("disable"); +_ee.css("cursor","pointer"); +}; +function _ef(_f0){ +var _f1=$.data(_f0,"tree"); +var _f2=_f1.options; +var _f3=_f1.tree; +_f1.disabledNodes=[]; +_f2.dnd=true; +_f3.find("div.tree-node").draggable({disabled:false,revert:true,cursor:"pointer",proxy:function(_f4){ +var p=$("
").appendTo("body"); +p.html(" "+$(_f4).find(".tree-title").html()); +p.hide(); +return p; +},deltaX:15,deltaY:15,onBeforeDrag:function(e){ +if(_f2.onBeforeDrag.call(_f0,_ea(_f0,this))==false){ +return false; +} +if($(e.target).hasClass("tree-hit")||$(e.target).hasClass("tree-checkbox")){ +return false; +} +if(e.which!=1){ +return false; +} +var _f5=$(this).find("span.tree-indent"); +if(_f5.length){ +e.data.offsetWidth-=_f5.length*_f5.width(); +} +},onStartDrag:function(e){ +$(this).next("ul").find("div.tree-node").each(function(){ +$(this).droppable("disable"); +_f1.disabledNodes.push(this); +}); +$(this).draggable("proxy").css({left:-10000,top:-10000}); +_f2.onStartDrag.call(_f0,_ea(_f0,this)); +var _f6=_ea(_f0,this); +if(_f6.id==undefined){ +_f6.id="easyui_tree_node_id_temp"; +_12c(_f0,_f6); +} +_f1.draggingNodeId=_f6.id; +},onDrag:function(e){ +var x1=e.pageX,y1=e.pageY,x2=e.data.startX,y2=e.data.startY; +var d=Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)); +if(d>3){ +$(this).draggable("proxy").show(); +} +this.pageY=e.pageY; +},onStopDrag:function(){ +for(var i=0;i<_f1.disabledNodes.length;i++){ +$(_f1.disabledNodes[i]).droppable("enable"); +} +_f1.disabledNodes=[]; +var _f7=_182(_f0,_f1.draggingNodeId); +if(_f7&&_f7.id=="easyui_tree_node_id_temp"){ +_f7.id=""; +_12c(_f0,_f7); +} +_f2.onStopDrag.call(_f0,_f7); +}}).droppable({accept:"div.tree-node",onDragEnter:function(e,_f8){ +if(_f2.onDragEnter.call(_f0,this,_f9(_f8))==false){ +_fa(_f8,false); +$(this).removeClass("tree-node-append tree-node-top tree-node-bottom"); +$(this).droppable("disable"); +_f1.disabledNodes.push(this); +} +},onDragOver:function(e,_fb){ +if($(this).droppable("options").disabled){ +return; +} +var _fc=_fb.pageY; +var top=$(this).offset().top; +var _fd=top+$(this).outerHeight(); +_fa(_fb,true); +$(this).removeClass("tree-node-append tree-node-top tree-node-bottom"); +if(_fc>top+(_fd-top)/2){ +if(_fd-_fc<5){ +$(this).addClass("tree-node-bottom"); +}else{ +$(this).addClass("tree-node-append"); +} +}else{ +if(_fc-top<5){ +$(this).addClass("tree-node-top"); +}else{ +$(this).addClass("tree-node-append"); +} +} +if(_f2.onDragOver.call(_f0,this,_f9(_fb))==false){ +_fa(_fb,false); +$(this).removeClass("tree-node-append tree-node-top tree-node-bottom"); +$(this).droppable("disable"); +_f1.disabledNodes.push(this); +} +},onDragLeave:function(e,_fe){ +_fa(_fe,false); +$(this).removeClass("tree-node-append tree-node-top tree-node-bottom"); +_f2.onDragLeave.call(_f0,this,_f9(_fe)); +},onDrop:function(e,_ff){ +var dest=this; +var _100,_101; +if($(this).hasClass("tree-node-append")){ +_100=_102; +_101="append"; +}else{ +_100=_103; +_101=$(this).hasClass("tree-node-top")?"top":"bottom"; +} +if(_f2.onBeforeDrop.call(_f0,dest,_f9(_ff),_101)==false){ +$(this).removeClass("tree-node-append tree-node-top tree-node-bottom"); +return; +} +_100(_ff,dest,_101); +$(this).removeClass("tree-node-append tree-node-top tree-node-bottom"); +}}); +function _f9(_104,pop){ +return $(_104).closest("ul.tree").tree(pop?"pop":"getData",_104); +}; +function _fa(_105,_106){ +var icon=$(_105).draggable("proxy").find("span.tree-dnd-icon"); +icon.removeClass("tree-dnd-yes tree-dnd-no").addClass(_106?"tree-dnd-yes":"tree-dnd-no"); +}; +function _102(_107,dest){ +if(_ea(_f0,dest).state=="closed"){ +_13d(_f0,dest,function(){ +_108(); +}); +}else{ +_108(); +} +function _108(){ +var node=_f9(_107,true); +$(_f0).tree("append",{parent:dest,data:[node]}); +_f2.onDrop.call(_f0,dest,node,"append"); +}; +}; +function _103(_109,dest,_10a){ +var _10b={}; +if(_10a=="top"){ +_10b.before=dest; +}else{ +_10b.after=dest; +} +var node=_f9(_109,true); +_10b.data=node; +$(_f0).tree("insert",_10b); +_f2.onDrop.call(_f0,dest,node,_10a); +}; +}; +function _10c(_10d,_10e,_10f,_110){ +var _111=$.data(_10d,"tree"); +var opts=_111.options; +if(!opts.checkbox){ +return; +} +var _112=_ea(_10d,_10e); +if(!_112.checkState){ +return; +} +var ck=$(_10e).find(".tree-checkbox"); +if(_10f==undefined){ +if(ck.hasClass("tree-checkbox1")){ +_10f=false; +}else{ +if(ck.hasClass("tree-checkbox0")){ +_10f=true; +}else{ +if(_112._checked==undefined){ +_112._checked=$(_10e).find(".tree-checkbox").hasClass("tree-checkbox1"); +} +_10f=!_112._checked; +} +} +} +_112._checked=_10f; +if(_10f){ +if(ck.hasClass("tree-checkbox1")){ +return; +} +}else{ +if(ck.hasClass("tree-checkbox0")){ +return; +} +} +if(!_110){ +if(opts.onBeforeCheck.call(_10d,_112,_10f)==false){ +return; +} +} +if(opts.cascadeCheck){ +_113(_10d,_112,_10f); +_114(_10d,_112); +}else{ +_115(_10d,_112,_10f?"1":"0"); +} +if(!_110){ +opts.onCheck.call(_10d,_112,_10f); +} +}; +function _113(_116,_117,_118){ +var opts=$.data(_116,"tree").options; +var flag=_118?1:0; +_115(_116,_117,flag); +if(opts.deepCheck){ +$.easyui.forEach(_117.children||[],true,function(n){ +_115(_116,n,flag); +}); +}else{ +var _119=[]; +if(_117.children&&_117.children.length){ +_119.push(_117); +} +$.easyui.forEach(_117.children||[],true,function(n){ +if(!n.hidden){ +_115(_116,n,flag); +if(n.children&&n.children.length){ +_119.push(n); +} +} +}); +for(var i=_119.length-1;i>=0;i--){ +var node=_119[i]; +_115(_116,node,_11a(node)); +} +} +}; +function _115(_11b,_11c,flag){ +var opts=$.data(_11b,"tree").options; +if(!_11c.checkState||flag==undefined){ +return; +} +if(_11c.hidden&&!opts.deepCheck){ +return; +} +var ck=$("#"+_11c.domId).find(".tree-checkbox"); +_11c.checkState=["unchecked","checked","indeterminate"][flag]; +_11c.checked=(_11c.checkState=="checked"); +ck.removeClass("tree-checkbox0 tree-checkbox1 tree-checkbox2"); +ck.addClass("tree-checkbox"+flag); +}; +function _114(_11d,_11e){ +var pd=_11f(_11d,$("#"+_11e.domId)[0]); +if(pd){ +_115(_11d,pd,_11a(pd)); +_114(_11d,pd); +} +}; +function _11a(row){ +var c0=0; +var c1=0; +var len=0; +$.easyui.forEach(row.children||[],false,function(r){ +if(r.checkState){ +len++; +if(r.checkState=="checked"){ +c1++; +}else{ +if(r.checkState=="unchecked"){ +c0++; +} +} +} +}); +if(len==0){ +return undefined; +} +var flag=0; +if(c0==len){ +flag=0; +}else{ +if(c1==len){ +flag=1; +}else{ +flag=2; +} +} +return flag; +}; +function _120(_121,_122){ +var opts=$.data(_121,"tree").options; +if(!opts.checkbox){ +return; +} +var node=$(_122); +var ck=node.find(".tree-checkbox"); +var _123=_ea(_121,_122); +if(opts.view.hasCheckbox(_121,_123)){ +if(!ck.length){ +_123.checkState=_123.checkState||"unchecked"; +$("").insertBefore(node.find(".tree-title")); +} +if(_123.checkState=="checked"){ +_10c(_121,_122,true,true); +}else{ +if(_123.checkState=="unchecked"){ +_10c(_121,_122,false,true); +}else{ +var flag=_11a(_123); +if(flag===0){ +_10c(_121,_122,false,true); +}else{ +if(flag===1){ +_10c(_121,_122,true,true); +} +} +} +} +}else{ +ck.remove(); +_123.checkState=undefined; +_123.checked=undefined; +_114(_121,_123); +} +}; +function _124(_125,ul,data,_126,_127){ +var _128=$.data(_125,"tree"); +var opts=_128.options; +var _129=$(ul).prevAll("div.tree-node:first"); +data=opts.loadFilter.call(_125,data,_129[0]); +var _12a=_12b(_125,"domId",_129.attr("id")); +if(!_126){ +_12a?_12a.children=data:_128.data=data; +$(ul).empty(); +}else{ +if(_12a){ +_12a.children?_12a.children=_12a.children.concat(data):_12a.children=data; +}else{ +_128.data=_128.data.concat(data); +} +} +opts.view.render.call(opts.view,_125,ul,data); +if(opts.dnd){ +_ef(_125); +} +if(_12a){ +_12c(_125,_12a); +} +for(var i=0;i<_128.tmpIds.length;i++){ +_10c(_125,$("#"+_128.tmpIds[i])[0],true,true); +} +_128.tmpIds=[]; +setTimeout(function(){ +_12d(_125,_125); +},0); +if(!_127){ +opts.onLoadSuccess.call(_125,_12a,data); +} +}; +function _12d(_12e,ul,_12f){ +var opts=$.data(_12e,"tree").options; +if(opts.lines){ +$(_12e).addClass("tree-lines"); +}else{ +$(_12e).removeClass("tree-lines"); +return; +} +if(!_12f){ +_12f=true; +$(_12e).find("span.tree-indent").removeClass("tree-line tree-join tree-joinbottom"); +$(_12e).find("div.tree-node").removeClass("tree-node-last tree-root-first tree-root-one"); +var _130=$(_12e).tree("getRoots"); +if(_130.length>1){ +$(_130[0].target).addClass("tree-root-first"); +}else{ +if(_130.length==1){ +$(_130[0].target).addClass("tree-root-one"); +} +} +} +$(ul).children("li").each(function(){ +var node=$(this).children("div.tree-node"); +var ul=node.next("ul"); +if(ul.length){ +if($(this).next().length){ +_131(node); +} +_12d(_12e,ul,_12f); +}else{ +_132(node); +} +}); +var _133=$(ul).children("li:last").children("div.tree-node").addClass("tree-node-last"); +_133.children("span.tree-join").removeClass("tree-join").addClass("tree-joinbottom"); +function _132(node,_134){ +var icon=node.find("span.tree-icon"); +icon.prev("span.tree-indent").addClass("tree-join"); +}; +function _131(node){ +var _135=node.find("span.tree-indent, span.tree-hit").length; +node.next().find("div.tree-node").each(function(){ +$(this).children("span:eq("+(_135-1)+")").addClass("tree-line"); +}); +}; +}; +function _136(_137,ul,_138,_139){ +var opts=$.data(_137,"tree").options; +_138=$.extend({},opts.queryParams,_138||{}); +var _13a=null; +if(_137!=ul){ +var node=$(ul).prev(); +_13a=_ea(_137,node[0]); +} +if(opts.onBeforeLoad.call(_137,_13a,_138)==false){ +return; +} +var _13b=$(ul).prev().children("span.tree-folder"); +_13b.addClass("tree-loading"); +var _13c=opts.loader.call(_137,_138,function(data){ +_13b.removeClass("tree-loading"); +_124(_137,ul,data); +if(_139){ +_139(); +} +},function(){ +_13b.removeClass("tree-loading"); +opts.onLoadError.apply(_137,arguments); +if(_139){ +_139(); +} +}); +if(_13c==false){ +_13b.removeClass("tree-loading"); +} +}; +function _13d(_13e,_13f,_140){ +var opts=$.data(_13e,"tree").options; +var hit=$(_13f).children("span.tree-hit"); +if(hit.length==0){ +return; +} +if(hit.hasClass("tree-expanded")){ +return; +} +var node=_ea(_13e,_13f); +if(opts.onBeforeExpand.call(_13e,node)==false){ +return; +} +hit.removeClass("tree-collapsed tree-collapsed-hover").addClass("tree-expanded"); +hit.next().addClass("tree-folder-open"); +var ul=$(_13f).next(); +if(ul.length){ +if(opts.animate){ +ul.slideDown("normal",function(){ +node.state="open"; +opts.onExpand.call(_13e,node); +if(_140){ +_140(); +} +}); +}else{ +ul.css("display","block"); +node.state="open"; +opts.onExpand.call(_13e,node); +if(_140){ +_140(); +} +} +}else{ +var _141=$("
    ").insertAfter(_13f); +_136(_13e,_141[0],{id:node.id},function(){ +if(_141.is(":empty")){ +_141.remove(); +} +if(opts.animate){ +_141.slideDown("normal",function(){ +node.state="open"; +opts.onExpand.call(_13e,node); +if(_140){ +_140(); +} +}); +}else{ +_141.css("display","block"); +node.state="open"; +opts.onExpand.call(_13e,node); +if(_140){ +_140(); +} +} +}); +} +}; +function _142(_143,_144){ +var opts=$.data(_143,"tree").options; +var hit=$(_144).children("span.tree-hit"); +if(hit.length==0){ +return; +} +if(hit.hasClass("tree-collapsed")){ +return; +} +var node=_ea(_143,_144); +if(opts.onBeforeCollapse.call(_143,node)==false){ +return; +} +hit.removeClass("tree-expanded tree-expanded-hover").addClass("tree-collapsed"); +hit.next().removeClass("tree-folder-open"); +var ul=$(_144).next(); +if(opts.animate){ +ul.slideUp("normal",function(){ +node.state="closed"; +opts.onCollapse.call(_143,node); +}); +}else{ +ul.css("display","none"); +node.state="closed"; +opts.onCollapse.call(_143,node); +} +}; +function _145(_146,_147){ +var hit=$(_147).children("span.tree-hit"); +if(hit.length==0){ +return; +} +if(hit.hasClass("tree-expanded")){ +_142(_146,_147); +}else{ +_13d(_146,_147); +} +}; +function _148(_149,_14a){ +var _14b=_14c(_149,_14a); +if(_14a){ +_14b.unshift(_ea(_149,_14a)); +} +for(var i=0;i<_14b.length;i++){ +_13d(_149,_14b[i].target); +} +}; +function _14d(_14e,_14f){ +var _150=[]; +var p=_11f(_14e,_14f); +while(p){ +_150.unshift(p); +p=_11f(_14e,p.target); +} +for(var i=0;i<_150.length;i++){ +_13d(_14e,_150[i].target); +} +}; +function _151(_152,_153){ +var c=$(_152).parent(); +while(c[0].tagName!="BODY"&&c.css("overflow-y")!="auto"){ +c=c.parent(); +} +var n=$(_153); +var ntop=n.offset().top; +if(c[0].tagName!="BODY"){ +var ctop=c.offset().top; +if(ntopctop+c.outerHeight()-18){ +c.scrollTop(c.scrollTop()+ntop+n.outerHeight()-ctop-c.outerHeight()+18); +} +} +}else{ +c.scrollTop(ntop); +} +}; +function _154(_155,_156){ +var _157=_14c(_155,_156); +if(_156){ +_157.unshift(_ea(_155,_156)); +} +for(var i=0;i<_157.length;i++){ +_142(_155,_157[i].target); +} +}; +function _158(_159,_15a){ +var node=$(_15a.parent); +var data=_15a.data; +if(!data){ +return; +} +data=$.isArray(data)?data:[data]; +if(!data.length){ +return; +} +var ul; +if(node.length==0){ +ul=$(_159); +}else{ +if(_15b(_159,node[0])){ +var _15c=node.find("span.tree-icon"); +_15c.removeClass("tree-file").addClass("tree-folder tree-folder-open"); +var hit=$("").insertBefore(_15c); +if(hit.prev().length){ +hit.prev().remove(); +} +} +ul=node.next(); +if(!ul.length){ +ul=$("
      ").insertAfter(node); +} +} +_124(_159,ul[0],data,true,true); +}; +function _15d(_15e,_15f){ +var ref=_15f.before||_15f.after; +var _160=_11f(_15e,ref); +var data=_15f.data; +if(!data){ +return; +} +data=$.isArray(data)?data:[data]; +if(!data.length){ +return; +} +_158(_15e,{parent:(_160?_160.target:null),data:data}); +var _161=_160?_160.children:$(_15e).tree("getRoots"); +for(var i=0;i<_161.length;i++){ +if(_161[i].domId==$(ref).attr("id")){ +for(var j=data.length-1;j>=0;j--){ +_161.splice((_15f.before?i:(i+1)),0,data[j]); +} +_161.splice(_161.length-data.length,data.length); +break; +} +} +var li=$(); +for(var i=0;i").prependTo(node); +node.next().remove(); +} +_12c(_163,_165); +} +_12d(_163,_163); +function del(_166){ +var id=$(_166).attr("id"); +var _167=_11f(_163,_166); +var cc=_167?_167.children:$.data(_163,"tree").data; +for(var i=0;i").appendTo(nt); +_191.val(node.text).focus(); +_191.width(_190+20); +_191._outerHeight(18); +_191.bind("click",function(e){ +return false; +}).bind("mousedown",function(e){ +e.stopPropagation(); +}).bind("mousemove",function(e){ +e.stopPropagation(); +}).bind("keydown",function(e){ +if(e.keyCode==13){ +_192(_18e,_18f); +return false; +}else{ +if(e.keyCode==27){ +_196(_18e,_18f); +return false; +} +} +}).bind("blur",function(e){ +e.stopPropagation(); +_192(_18e,_18f); +}); +}; +function _192(_193,_194){ +var opts=$.data(_193,"tree").options; +$(_194).css("position",""); +var _195=$(_194).find("input.tree-editor"); +var val=_195.val(); +_195.remove(); +var node=_ea(_193,_194); +node.text=val; +_12c(_193,node); +opts.onAfterEdit.call(_193,node); +}; +function _196(_197,_198){ +var opts=$.data(_197,"tree").options; +$(_198).css("position",""); +$(_198).find("input.tree-editor").remove(); +var node=_ea(_197,_198); +_12c(_197,node); +opts.onCancelEdit.call(_197,node); +}; +function _199(_19a,q){ +var _19b=$.data(_19a,"tree"); +var opts=_19b.options; +var ids={}; +$.easyui.forEach(_19b.data,true,function(node){ +if(opts.filter.call(_19a,q,node)){ +$("#"+node.domId).removeClass("tree-node-hidden"); +ids[node.domId]=1; +node.hidden=false; +}else{ +$("#"+node.domId).addClass("tree-node-hidden"); +node.hidden=true; +} +}); +for(var id in ids){ +_19c(id); +} +function _19c(_19d){ +var p=$(_19a).tree("getParent",$("#"+_19d)[0]); +while(p){ +$(p.target).removeClass("tree-node-hidden"); +p.hidden=false; +p=$(_19a).tree("getParent",p.target); +} +}; +}; +$.fn.tree=function(_19e,_19f){ +if(typeof _19e=="string"){ +return $.fn.tree.methods[_19e](this,_19f); +} +var _19e=_19e||{}; +return this.each(function(){ +var _1a0=$.data(this,"tree"); +var opts; +if(_1a0){ +opts=$.extend(_1a0.options,_19e); +_1a0.options=opts; +}else{ +opts=$.extend({},$.fn.tree.defaults,$.fn.tree.parseOptions(this),_19e); +$.data(this,"tree",{options:opts,tree:_df(this),data:[],tmpIds:[]}); +var data=$.fn.tree.parseData(this); +if(data.length){ +_124(this,this,data); +} +} +_e2(this); +if(opts.data){ +_124(this,this,$.extend(true,[],opts.data)); +} +_136(this,this); +}); +}; +$.fn.tree.methods={options:function(jq){ +return $.data(jq[0],"tree").options; +},loadData:function(jq,data){ +return jq.each(function(){ +_124(this,this,data); +}); +},getNode:function(jq,_1a1){ +return _ea(jq[0],_1a1); +},getData:function(jq,_1a2){ +return _17d(jq[0],_1a2); +},reload:function(jq,_1a3){ +return jq.each(function(){ +if(_1a3){ +var node=$(_1a3); +var hit=node.children("span.tree-hit"); +hit.removeClass("tree-expanded tree-expanded-hover").addClass("tree-collapsed"); +node.next().remove(); +_13d(this,_1a3); +}else{ +$(this).empty(); +_136(this,this); +} +}); +},getRoot:function(jq,_1a4){ +return _16a(jq[0],_1a4); +},getRoots:function(jq){ +return _16e(jq[0]); +},getParent:function(jq,_1a5){ +return _11f(jq[0],_1a5); +},getChildren:function(jq,_1a6){ +return _14c(jq[0],_1a6); +},getChecked:function(jq,_1a7){ +return _177(jq[0],_1a7); +},getSelected:function(jq){ +return _17b(jq[0]); +},isLeaf:function(jq,_1a8){ +return _15b(jq[0],_1a8); +},find:function(jq,id){ +return _182(jq[0],id); +},select:function(jq,_1a9){ +return jq.each(function(){ +_188(this,_1a9); +}); +},check:function(jq,_1aa){ +return jq.each(function(){ +_10c(this,_1aa,true); +}); +},uncheck:function(jq,_1ab){ +return jq.each(function(){ +_10c(this,_1ab,false); +}); +},collapse:function(jq,_1ac){ +return jq.each(function(){ +_142(this,_1ac); +}); +},expand:function(jq,_1ad){ +return jq.each(function(){ +_13d(this,_1ad); +}); +},collapseAll:function(jq,_1ae){ +return jq.each(function(){ +_154(this,_1ae); +}); +},expandAll:function(jq,_1af){ +return jq.each(function(){ +_148(this,_1af); +}); +},expandTo:function(jq,_1b0){ +return jq.each(function(){ +_14d(this,_1b0); +}); +},scrollTo:function(jq,_1b1){ +return jq.each(function(){ +_151(this,_1b1); +}); +},toggle:function(jq,_1b2){ +return jq.each(function(){ +_145(this,_1b2); +}); +},append:function(jq,_1b3){ +return jq.each(function(){ +_158(this,_1b3); +}); +},insert:function(jq,_1b4){ +return jq.each(function(){ +_15d(this,_1b4); +}); +},remove:function(jq,_1b5){ +return jq.each(function(){ +_162(this,_1b5); +}); +},pop:function(jq,_1b6){ +var node=jq.tree("getData",_1b6); +jq.tree("remove",_1b6); +return node; +},update:function(jq,_1b7){ +return jq.each(function(){ +_12c(this,$.extend({},_1b7,{checkState:_1b7.checked?"checked":(_1b7.checked===false?"unchecked":undefined)})); +}); +},enableDnd:function(jq){ +return jq.each(function(){ +_ef(this); +}); +},disableDnd:function(jq){ +return jq.each(function(){ +_eb(this); +}); +},beginEdit:function(jq,_1b8){ +return jq.each(function(){ +_18d(this,_1b8); +}); +},endEdit:function(jq,_1b9){ +return jq.each(function(){ +_192(this,_1b9); +}); +},cancelEdit:function(jq,_1ba){ +return jq.each(function(){ +_196(this,_1ba); +}); +},doFilter:function(jq,q){ +return jq.each(function(){ +_199(this,q); +}); +}}; +$.fn.tree.parseOptions=function(_1bb){ +var t=$(_1bb); +return $.extend({},$.parser.parseOptions(_1bb,["url","method",{checkbox:"boolean",cascadeCheck:"boolean",onlyLeafCheck:"boolean"},{animate:"boolean",lines:"boolean",dnd:"boolean"}])); +}; +$.fn.tree.parseData=function(_1bc){ +var data=[]; +_1bd(data,$(_1bc)); +return data; +function _1bd(aa,tree){ +tree.children("li").each(function(){ +var node=$(this); +var item=$.extend({},$.parser.parseOptions(this,["id","iconCls","state"]),{checked:(node.attr("checked")?true:undefined)}); +item.text=node.children("span").html(); +if(!item.text){ +item.text=node.html(); +} +var _1be=node.children("ul"); +if(_1be.length){ +item.children=[]; +_1bd(item.children,_1be); +} +aa.push(item); +}); +}; +}; +var _1bf=1; +var _1c0={render:function(_1c1,ul,data){ +var _1c2=$.data(_1c1,"tree"); +var opts=_1c2.options; +var _1c3=$(ul).prev(".tree-node"); +var _1c4=_1c3.length?$(_1c1).tree("getNode",_1c3[0]):null; +var _1c5=_1c3.find("span.tree-indent, span.tree-hit").length; +var cc=_1c6.call(this,_1c5,data); +$(ul).append(cc.join("")); +function _1c6(_1c7,_1c8){ +var cc=[]; +for(var i=0;i<_1c8.length;i++){ +var item=_1c8[i]; +if(item.state!="open"&&item.state!="closed"){ +item.state="open"; +} +item.domId="_easyui_tree_"+_1bf++; +cc.push("
    • "); +cc.push("
      "); +for(var j=0;j<_1c7;j++){ +cc.push(""); +} +if(item.state=="closed"){ +cc.push(""); +cc.push(""); +}else{ +if(item.children&&item.children.length){ +cc.push(""); +cc.push(""); +}else{ +cc.push(""); +cc.push(""); +} +} +if(this.hasCheckbox(_1c1,item)){ +var flag=0; +if(_1c4&&_1c4.checkState=="checked"&&opts.cascadeCheck){ +flag=1; +item.checked=true; +}else{ +if(item.checked){ +$.easyui.addArrayItem(_1c2.tmpIds,item.domId); +} +} +item.checkState=flag?"checked":"unchecked"; +cc.push(""); +}else{ +item.checkState=undefined; +item.checked=undefined; +} +cc.push(""+opts.formatter.call(_1c1,item)+""); +cc.push("
      "); +if(item.children&&item.children.length){ +var tmp=_1c6.call(this,_1c7+1,item.children); +cc.push("
        "); +cc=cc.concat(tmp); +cc.push("
      "); +} +cc.push("
    • "); +} +return cc; +}; +},hasCheckbox:function(_1c9,item){ +var _1ca=$.data(_1c9,"tree"); +var opts=_1ca.options; +if(opts.checkbox){ +if($.isFunction(opts.checkbox)){ +if(opts.checkbox.call(_1c9,item)){ +return true; +}else{ +return false; +} +}else{ +if(opts.onlyLeafCheck){ +if(item.state=="open"&&!(item.children&&item.children.length)){ +return true; +} +}else{ +return true; +} +} +} +return false; +}}; +$.fn.tree.defaults={url:null,method:"post",animate:false,checkbox:false,cascadeCheck:true,onlyLeafCheck:false,lines:false,dnd:false,data:null,queryParams:{},formatter:function(node){ +return node.text; +},filter:function(q,node){ +var qq=[]; +$.map($.isArray(q)?q:[q],function(q){ +q=$.trim(q); +if(q){ +qq.push(q); +} +}); +for(var i=0;i=0){ +return true; +} +} +return !qq.length; +},loader:function(_1cc,_1cd,_1ce){ +var opts=$(this).tree("options"); +if(!opts.url){ +return false; +} +$.ajax({type:opts.method,url:opts.url,data:_1cc,dataType:"json",success:function(data){ +_1cd(data); +},error:function(){ +_1ce.apply(this,arguments); +}}); +},loadFilter:function(data,_1cf){ +return data; +},view:_1c0,onBeforeLoad:function(node,_1d0){ +},onLoadSuccess:function(node,data){ +},onLoadError:function(){ +},onClick:function(node){ +},onDblClick:function(node){ +},onBeforeExpand:function(node){ +},onExpand:function(node){ +},onBeforeCollapse:function(node){ +},onCollapse:function(node){ +},onBeforeCheck:function(node,_1d1){ +},onCheck:function(node,_1d2){ +},onBeforeSelect:function(node){ +},onSelect:function(node){ +},onContextMenu:function(e,node){ +},onBeforeDrag:function(node){ +},onStartDrag:function(node){ +},onStopDrag:function(node){ +},onDragEnter:function(_1d3,_1d4){ +},onDragOver:function(_1d5,_1d6){ +},onDragLeave:function(_1d7,_1d8){ +},onBeforeDrop:function(_1d9,_1da,_1db){ +},onDrop:function(_1dc,_1dd,_1de){ +},onBeforeEdit:function(node){ +},onAfterEdit:function(node){ +},onCancelEdit:function(node){ +}}; +})(jQuery); +(function($){ +function init(_1df){ +$(_1df).addClass("progressbar"); +$(_1df).html("
      "); +$(_1df).bind("_resize",function(e,_1e0){ +if($(this).hasClass("easyui-fluid")||_1e0){ +_1e1(_1df); +} +return false; +}); +return $(_1df); +}; +function _1e1(_1e2,_1e3){ +var opts=$.data(_1e2,"progressbar").options; +var bar=$.data(_1e2,"progressbar").bar; +if(_1e3){ +opts.width=_1e3; +} +bar._size(opts); +bar.find("div.progressbar-text").css("width",bar.width()); +bar.find("div.progressbar-text,div.progressbar-value").css({height:bar.height()+"px",lineHeight:bar.height()+"px"}); +}; +$.fn.progressbar=function(_1e4,_1e5){ +if(typeof _1e4=="string"){ +var _1e6=$.fn.progressbar.methods[_1e4]; +if(_1e6){ +return _1e6(this,_1e5); +} +} +_1e4=_1e4||{}; +return this.each(function(){ +var _1e7=$.data(this,"progressbar"); +if(_1e7){ +$.extend(_1e7.options,_1e4); +}else{ +_1e7=$.data(this,"progressbar",{options:$.extend({},$.fn.progressbar.defaults,$.fn.progressbar.parseOptions(this),_1e4),bar:init(this)}); +} +$(this).progressbar("setValue",_1e7.options.value); +_1e1(this); +}); +}; +$.fn.progressbar.methods={options:function(jq){ +return $.data(jq[0],"progressbar").options; +},resize:function(jq,_1e8){ +return jq.each(function(){ +_1e1(this,_1e8); +}); +},getValue:function(jq){ +return $.data(jq[0],"progressbar").options.value; +},setValue:function(jq,_1e9){ +if(_1e9<0){ +_1e9=0; +} +if(_1e9>100){ +_1e9=100; +} +return jq.each(function(){ +var opts=$.data(this,"progressbar").options; +var text=opts.text.replace(/{value}/,_1e9); +var _1ea=opts.value; +opts.value=_1e9; +$(this).find("div.progressbar-value").width(_1e9+"%"); +$(this).find("div.progressbar-text").html(text); +if(_1ea!=_1e9){ +opts.onChange.call(this,_1e9,_1ea); +} +}); +}}; +$.fn.progressbar.parseOptions=function(_1eb){ +return $.extend({},$.parser.parseOptions(_1eb,["width","height","text",{value:"number"}])); +}; +$.fn.progressbar.defaults={width:"auto",height:22,value:0,text:"{value}%",onChange:function(_1ec,_1ed){ +}}; +})(jQuery); +(function($){ +function init(_1ee){ +$(_1ee).addClass("tooltip-f"); +}; +function _1ef(_1f0){ +var opts=$.data(_1f0,"tooltip").options; +$(_1f0).unbind(".tooltip").bind(opts.showEvent+".tooltip",function(e){ +$(_1f0).tooltip("show",e); +}).bind(opts.hideEvent+".tooltip",function(e){ +$(_1f0).tooltip("hide",e); +}).bind("mousemove.tooltip",function(e){ +if(opts.trackMouse){ +opts.trackMouseX=e.pageX; +opts.trackMouseY=e.pageY; +$(_1f0).tooltip("reposition"); +} +}); +}; +function _1f1(_1f2){ +var _1f3=$.data(_1f2,"tooltip"); +if(_1f3.showTimer){ +clearTimeout(_1f3.showTimer); +_1f3.showTimer=null; +} +if(_1f3.hideTimer){ +clearTimeout(_1f3.hideTimer); +_1f3.hideTimer=null; +} +}; +function _1f4(_1f5){ +var _1f6=$.data(_1f5,"tooltip"); +if(!_1f6||!_1f6.tip){ +return; +} +var opts=_1f6.options; +var tip=_1f6.tip; +var pos={left:-100000,top:-100000}; +if($(_1f5).is(":visible")){ +pos=_1f7(opts.position); +if(opts.position=="top"&&pos.top<0){ +pos=_1f7("bottom"); +}else{ +if((opts.position=="bottom")&&(pos.top+tip._outerHeight()>$(window)._outerHeight()+$(document).scrollTop())){ +pos=_1f7("top"); +} +} +if(pos.left<0){ +if(opts.position=="left"){ +pos=_1f7("right"); +}else{ +$(_1f5).tooltip("arrow").css("left",tip._outerWidth()/2+pos.left); +pos.left=0; +} +}else{ +if(pos.left+tip._outerWidth()>$(window)._outerWidth()+$(document)._scrollLeft()){ +if(opts.position=="right"){ +pos=_1f7("left"); +}else{ +var left=pos.left; +pos.left=$(window)._outerWidth()+$(document)._scrollLeft()-tip._outerWidth(); +$(_1f5).tooltip("arrow").css("left",tip._outerWidth()/2-(pos.left-left)); +} +} +} +} +tip.css({left:pos.left,top:pos.top,zIndex:(opts.zIndex!=undefined?opts.zIndex:($.fn.window?$.fn.window.defaults.zIndex++:""))}); +opts.onPosition.call(_1f5,pos.left,pos.top); +function _1f7(_1f8){ +opts.position=_1f8||"bottom"; +tip.removeClass("tooltip-top tooltip-bottom tooltip-left tooltip-right").addClass("tooltip-"+opts.position); +var left,top; +if(opts.trackMouse){ +t=$(); +left=opts.trackMouseX+opts.deltaX; +top=opts.trackMouseY+opts.deltaY; +}else{ +var t=$(_1f5); +left=t.offset().left+opts.deltaX; +top=t.offset().top+opts.deltaY; +} +switch(opts.position){ +case "right": +left+=t._outerWidth()+12+(opts.trackMouse?12:0); +top-=(tip._outerHeight()-t._outerHeight())/2; +break; +case "left": +left-=tip._outerWidth()+12+(opts.trackMouse?12:0); +top-=(tip._outerHeight()-t._outerHeight())/2; +break; +case "top": +left-=(tip._outerWidth()-t._outerWidth())/2; +top-=tip._outerHeight()+12+(opts.trackMouse?12:0); +break; +case "bottom": +left-=(tip._outerWidth()-t._outerWidth())/2; +top+=t._outerHeight()+12+(opts.trackMouse?12:0); +break; +} +return {left:left,top:top}; +}; +}; +function _1f9(_1fa,e){ +var _1fb=$.data(_1fa,"tooltip"); +var opts=_1fb.options; +var tip=_1fb.tip; +if(!tip){ +tip=$("
      "+"
      "+"
      "+"
      "+"
      ").appendTo("body"); +_1fb.tip=tip; +_1fc(_1fa); +} +_1f1(_1fa); +_1fb.showTimer=setTimeout(function(){ +$(_1fa).tooltip("reposition"); +tip.show(); +opts.onShow.call(_1fa,e); +var _1fd=tip.children(".tooltip-arrow-outer"); +var _1fe=tip.children(".tooltip-arrow"); +var bc="border-"+opts.position+"-color"; +_1fd.add(_1fe).css({borderTopColor:"",borderBottomColor:"",borderLeftColor:"",borderRightColor:""}); +_1fd.css(bc,tip.css(bc)); +_1fe.css(bc,tip.css("backgroundColor")); +},opts.showDelay); +}; +function _1ff(_200,e){ +var _201=$.data(_200,"tooltip"); +if(_201&&_201.tip){ +_1f1(_200); +_201.hideTimer=setTimeout(function(){ +_201.tip.hide(); +_201.options.onHide.call(_200,e); +},_201.options.hideDelay); +} +}; +function _1fc(_202,_203){ +var _204=$.data(_202,"tooltip"); +var opts=_204.options; +if(_203){ +opts.content=_203; +} +if(!_204.tip){ +return; +} +var cc=typeof opts.content=="function"?opts.content.call(_202):opts.content; +_204.tip.children(".tooltip-content").html(cc); +opts.onUpdate.call(_202,cc); +}; +function _205(_206){ +var _207=$.data(_206,"tooltip"); +if(_207){ +_1f1(_206); +var opts=_207.options; +if(_207.tip){ +_207.tip.remove(); +} +if(opts._title){ +$(_206).attr("title",opts._title); +} +$.removeData(_206,"tooltip"); +$(_206).unbind(".tooltip").removeClass("tooltip-f"); +opts.onDestroy.call(_206); +} +}; +$.fn.tooltip=function(_208,_209){ +if(typeof _208=="string"){ +return $.fn.tooltip.methods[_208](this,_209); +} +_208=_208||{}; +return this.each(function(){ +var _20a=$.data(this,"tooltip"); +if(_20a){ +$.extend(_20a.options,_208); +}else{ +$.data(this,"tooltip",{options:$.extend({},$.fn.tooltip.defaults,$.fn.tooltip.parseOptions(this),_208)}); +init(this); +} +_1ef(this); +_1fc(this); +}); +}; +$.fn.tooltip.methods={options:function(jq){ +return $.data(jq[0],"tooltip").options; +},tip:function(jq){ +return $.data(jq[0],"tooltip").tip; +},arrow:function(jq){ +return jq.tooltip("tip").children(".tooltip-arrow-outer,.tooltip-arrow"); +},show:function(jq,e){ +return jq.each(function(){ +_1f9(this,e); +}); +},hide:function(jq,e){ +return jq.each(function(){ +_1ff(this,e); +}); +},update:function(jq,_20b){ +return jq.each(function(){ +_1fc(this,_20b); +}); +},reposition:function(jq){ +return jq.each(function(){ +_1f4(this); +}); +},destroy:function(jq){ +return jq.each(function(){ +_205(this); +}); +}}; +$.fn.tooltip.parseOptions=function(_20c){ +var t=$(_20c); +var opts=$.extend({},$.parser.parseOptions(_20c,["position","showEvent","hideEvent","content",{trackMouse:"boolean",deltaX:"number",deltaY:"number",showDelay:"number",hideDelay:"number"}]),{_title:t.attr("title")}); +t.attr("title",""); +if(!opts.content){ +opts.content=opts._title; +} +return opts; +}; +$.fn.tooltip.defaults={position:"bottom",content:null,trackMouse:false,deltaX:0,deltaY:0,showEvent:"mouseenter",hideEvent:"mouseleave",showDelay:200,hideDelay:100,onShow:function(e){ +},onHide:function(e){ +},onUpdate:function(_20d){ +},onPosition:function(left,top){ +},onDestroy:function(){ +}}; +})(jQuery); +(function($){ +$.fn._remove=function(){ +return this.each(function(){ +$(this).remove(); +try{ +this.outerHTML=""; +} +catch(err){ +} +}); +}; +function _20e(node){ +node._remove(); +}; +function _20f(_210,_211){ +var _212=$.data(_210,"panel"); +var opts=_212.options; +var _213=_212.panel; +var _214=_213.children(".panel-header"); +var _215=_213.children(".panel-body"); +var _216=_213.children(".panel-footer"); +if(_211){ +$.extend(opts,{width:_211.width,height:_211.height,minWidth:_211.minWidth,maxWidth:_211.maxWidth,minHeight:_211.minHeight,maxHeight:_211.maxHeight,left:_211.left,top:_211.top}); +} +_213._size(opts); +_214.add(_215)._outerWidth(_213.width()); +if(!isNaN(parseInt(opts.height))){ +_215._outerHeight(_213.height()-_214._outerHeight()-_216._outerHeight()); +}else{ +_215.css("height",""); +var min=$.parser.parseValue("minHeight",opts.minHeight,_213.parent()); +var max=$.parser.parseValue("maxHeight",opts.maxHeight,_213.parent()); +var _217=_214._outerHeight()+_216._outerHeight()+_213._outerHeight()-_213.height(); +_215._size("minHeight",min?(min-_217):""); +_215._size("maxHeight",max?(max-_217):""); +} +_213.css({height:"",minHeight:"",maxHeight:"",left:opts.left,top:opts.top}); +opts.onResize.apply(_210,[opts.width,opts.height]); +$(_210).panel("doLayout"); +}; +function _218(_219,_21a){ +var opts=$.data(_219,"panel").options; +var _21b=$.data(_219,"panel").panel; +if(_21a){ +if(_21a.left!=null){ +opts.left=_21a.left; +} +if(_21a.top!=null){ +opts.top=_21a.top; +} +} +_21b.css({left:opts.left,top:opts.top}); +opts.onMove.apply(_219,[opts.left,opts.top]); +}; +function _21c(_21d){ +$(_21d).addClass("panel-body")._size("clear"); +var _21e=$("
      ").insertBefore(_21d); +_21e[0].appendChild(_21d); +_21e.bind("_resize",function(e,_21f){ +if($(this).hasClass("easyui-fluid")||_21f){ +_20f(_21d); +} +return false; +}); +return _21e; +}; +function _220(_221){ +var _222=$.data(_221,"panel"); +var opts=_222.options; +var _223=_222.panel; +_223.css(opts.style); +_223.addClass(opts.cls); +_224(); +_225(); +var _226=$(_221).panel("header"); +var body=$(_221).panel("body"); +var _227=$(_221).siblings(".panel-footer"); +if(opts.border){ +_226.removeClass("panel-header-noborder"); +body.removeClass("panel-body-noborder"); +_227.removeClass("panel-footer-noborder"); +}else{ +_226.addClass("panel-header-noborder"); +body.addClass("panel-body-noborder"); +_227.addClass("panel-footer-noborder"); +} +_226.addClass(opts.headerCls); +body.addClass(opts.bodyCls); +$(_221).attr("id",opts.id||""); +if(opts.content){ +$(_221).panel("clear"); +$(_221).html(opts.content); +$.parser.parse($(_221)); +} +function _224(){ +if(opts.noheader||(!opts.title&&!opts.header)){ +_20e(_223.children(".panel-header")); +_223.children(".panel-body").addClass("panel-body-noheader"); +}else{ +if(opts.header){ +$(opts.header).addClass("panel-header").prependTo(_223); +}else{ +var _228=_223.children(".panel-header"); +if(!_228.length){ +_228=$("
      ").prependTo(_223); +} +if(!$.isArray(opts.tools)){ +_228.find("div.panel-tool .panel-tool-a").appendTo(opts.tools); +} +_228.empty(); +var _229=$("
      ").html(opts.title).appendTo(_228); +if(opts.iconCls){ +_229.addClass("panel-with-icon"); +$("
      ").addClass(opts.iconCls).appendTo(_228); +} +var tool=$("
      ").appendTo(_228); +tool.bind("click",function(e){ +e.stopPropagation(); +}); +if(opts.tools){ +if($.isArray(opts.tools)){ +$.map(opts.tools,function(t){ +_22a(tool,t.iconCls,eval(t.handler)); +}); +}else{ +$(opts.tools).children().each(function(){ +$(this).addClass($(this).attr("iconCls")).addClass("panel-tool-a").appendTo(tool); +}); +} +} +if(opts.collapsible){ +_22a(tool,"panel-tool-collapse",function(){ +if(opts.collapsed==true){ +_248(_221,true); +}else{ +_23b(_221,true); +} +}); +} +if(opts.minimizable){ +_22a(tool,"panel-tool-min",function(){ +_24e(_221); +}); +} +if(opts.maximizable){ +_22a(tool,"panel-tool-max",function(){ +if(opts.maximized==true){ +_251(_221); +}else{ +_23a(_221); +} +}); +} +if(opts.closable){ +_22a(tool,"panel-tool-close",function(){ +_23c(_221); +}); +} +} +_223.children("div.panel-body").removeClass("panel-body-noheader"); +} +}; +function _22a(c,icon,_22b){ +var a=$("").addClass(icon).appendTo(c); +a.bind("click",_22b); +}; +function _225(){ +if(opts.footer){ +$(opts.footer).addClass("panel-footer").appendTo(_223); +$(_221).addClass("panel-body-nobottom"); +}else{ +_223.children(".panel-footer").remove(); +$(_221).removeClass("panel-body-nobottom"); +} +}; +}; +function _22c(_22d,_22e){ +var _22f=$.data(_22d,"panel"); +var opts=_22f.options; +if(_230){ +opts.queryParams=_22e; +} +if(!opts.href){ +return; +} +if(!_22f.isLoaded||!opts.cache){ +var _230=$.extend({},opts.queryParams); +if(opts.onBeforeLoad.call(_22d,_230)==false){ +return; +} +_22f.isLoaded=false; +$(_22d).panel("clear"); +if(opts.loadingMessage){ +$(_22d).html($("
      ").html(opts.loadingMessage)); +} +opts.loader.call(_22d,_230,function(data){ +var _231=opts.extractor.call(_22d,data); +$(_22d).html(_231); +$.parser.parse($(_22d)); +opts.onLoad.apply(_22d,arguments); +_22f.isLoaded=true; +},function(){ +opts.onLoadError.apply(_22d,arguments); +}); +} +}; +function _232(_233){ +var t=$(_233); +t.find(".combo-f").each(function(){ +$(this).combo("destroy"); +}); +t.find(".m-btn").each(function(){ +$(this).menubutton("destroy"); +}); +t.find(".s-btn").each(function(){ +$(this).splitbutton("destroy"); +}); +t.find(".tooltip-f").each(function(){ +$(this).tooltip("destroy"); +}); +t.children("div").each(function(){ +$(this)._size("unfit"); +}); +t.empty(); +}; +function _234(_235){ +$(_235).panel("doLayout",true); +}; +function _236(_237,_238){ +var opts=$.data(_237,"panel").options; +var _239=$.data(_237,"panel").panel; +if(_238!=true){ +if(opts.onBeforeOpen.call(_237)==false){ +return; +} +} +_239.stop(true,true); +if($.isFunction(opts.openAnimation)){ +opts.openAnimation.call(_237,cb); +}else{ +switch(opts.openAnimation){ +case "slide": +_239.slideDown(opts.openDuration,cb); +break; +case "fade": +_239.fadeIn(opts.openDuration,cb); +break; +case "show": +_239.show(opts.openDuration,cb); +break; +default: +_239.show(); +cb(); +} +} +function cb(){ +opts.closed=false; +opts.minimized=false; +var tool=_239.children(".panel-header").find("a.panel-tool-restore"); +if(tool.length){ +opts.maximized=true; +} +opts.onOpen.call(_237); +if(opts.maximized==true){ +opts.maximized=false; +_23a(_237); +} +if(opts.collapsed==true){ +opts.collapsed=false; +_23b(_237); +} +if(!opts.collapsed){ +_22c(_237); +_234(_237); +} +}; +}; +function _23c(_23d,_23e){ +var opts=$.data(_23d,"panel").options; +var _23f=$.data(_23d,"panel").panel; +if(_23e!=true){ +if(opts.onBeforeClose.call(_23d)==false){ +return; +} +} +_23f.stop(true,true); +_23f._size("unfit"); +if($.isFunction(opts.closeAnimation)){ +opts.closeAnimation.call(_23d,cb); +}else{ +switch(opts.closeAnimation){ +case "slide": +_23f.slideUp(opts.closeDuration,cb); +break; +case "fade": +_23f.fadeOut(opts.closeDuration,cb); +break; +case "hide": +_23f.hide(opts.closeDuration,cb); +break; +default: +_23f.hide(); +cb(); +} +} +function cb(){ +opts.closed=true; +opts.onClose.call(_23d); +}; +}; +function _240(_241,_242){ +var _243=$.data(_241,"panel"); +var opts=_243.options; +var _244=_243.panel; +if(_242!=true){ +if(opts.onBeforeDestroy.call(_241)==false){ +return; +} +} +$(_241).panel("clear").panel("clear","footer"); +_20e(_244); +opts.onDestroy.call(_241); +}; +function _23b(_245,_246){ +var opts=$.data(_245,"panel").options; +var _247=$.data(_245,"panel").panel; +var body=_247.children(".panel-body"); +var tool=_247.children(".panel-header").find("a.panel-tool-collapse"); +if(opts.collapsed==true){ +return; +} +body.stop(true,true); +if(opts.onBeforeCollapse.call(_245)==false){ +return; +} +tool.addClass("panel-tool-expand"); +if(_246==true){ +body.slideUp("normal",function(){ +opts.collapsed=true; +opts.onCollapse.call(_245); +}); +}else{ +body.hide(); +opts.collapsed=true; +opts.onCollapse.call(_245); +} +}; +function _248(_249,_24a){ +var opts=$.data(_249,"panel").options; +var _24b=$.data(_249,"panel").panel; +var body=_24b.children(".panel-body"); +var tool=_24b.children(".panel-header").find("a.panel-tool-collapse"); +if(opts.collapsed==false){ +return; +} +body.stop(true,true); +if(opts.onBeforeExpand.call(_249)==false){ +return; +} +tool.removeClass("panel-tool-expand"); +if(_24a==true){ +body.slideDown("normal",function(){ +opts.collapsed=false; +opts.onExpand.call(_249); +_22c(_249); +_234(_249); +}); +}else{ +body.show(); +opts.collapsed=false; +opts.onExpand.call(_249); +_22c(_249); +_234(_249); +} +}; +function _23a(_24c){ +var opts=$.data(_24c,"panel").options; +var _24d=$.data(_24c,"panel").panel; +var tool=_24d.children(".panel-header").find("a.panel-tool-max"); +if(opts.maximized==true){ +return; +} +tool.addClass("panel-tool-restore"); +if(!$.data(_24c,"panel").original){ +$.data(_24c,"panel").original={width:opts.width,height:opts.height,left:opts.left,top:opts.top,fit:opts.fit}; +} +opts.left=0; +opts.top=0; +opts.fit=true; +_20f(_24c); +opts.minimized=false; +opts.maximized=true; +opts.onMaximize.call(_24c); +}; +function _24e(_24f){ +var opts=$.data(_24f,"panel").options; +var _250=$.data(_24f,"panel").panel; +_250._size("unfit"); +_250.hide(); +opts.minimized=true; +opts.maximized=false; +opts.onMinimize.call(_24f); +}; +function _251(_252){ +var opts=$.data(_252,"panel").options; +var _253=$.data(_252,"panel").panel; +var tool=_253.children(".panel-header").find("a.panel-tool-max"); +if(opts.maximized==false){ +return; +} +_253.show(); +tool.removeClass("panel-tool-restore"); +$.extend(opts,$.data(_252,"panel").original); +_20f(_252); +opts.minimized=false; +opts.maximized=false; +$.data(_252,"panel").original=null; +opts.onRestore.call(_252); +}; +function _254(_255,_256){ +$.data(_255,"panel").options.title=_256; +$(_255).panel("header").find("div.panel-title").html(_256); +}; +var _257=null; +$(window).unbind(".panel").bind("resize.panel",function(){ +if(_257){ +clearTimeout(_257); +} +_257=setTimeout(function(){ +var _258=$("body.layout"); +if(_258.length){ +_258.layout("resize"); +$("body").children(".easyui-fluid:visible").each(function(){ +$(this).triggerHandler("_resize"); +}); +}else{ +$("body").panel("doLayout"); +} +_257=null; +},100); +}); +$.fn.panel=function(_259,_25a){ +if(typeof _259=="string"){ +return $.fn.panel.methods[_259](this,_25a); +} +_259=_259||{}; +return this.each(function(){ +var _25b=$.data(this,"panel"); +var opts; +if(_25b){ +opts=$.extend(_25b.options,_259); +_25b.isLoaded=false; +}else{ +opts=$.extend({},$.fn.panel.defaults,$.fn.panel.parseOptions(this),_259); +$(this).attr("title",""); +_25b=$.data(this,"panel",{options:opts,panel:_21c(this),isLoaded:false}); +} +_220(this); +$(this).show(); +if(opts.doSize==true){ +_25b.panel.css("display","block"); +_20f(this); +} +if(opts.closed==true||opts.minimized==true){ +_25b.panel.hide(); +}else{ +_236(this); +} +}); +}; +$.fn.panel.methods={options:function(jq){ +return $.data(jq[0],"panel").options; +},panel:function(jq){ +return $.data(jq[0],"panel").panel; +},header:function(jq){ +return $.data(jq[0],"panel").panel.children(".panel-header"); +},footer:function(jq){ +return jq.panel("panel").children(".panel-footer"); +},body:function(jq){ +return $.data(jq[0],"panel").panel.children(".panel-body"); +},setTitle:function(jq,_25c){ +return jq.each(function(){ +_254(this,_25c); +}); +},open:function(jq,_25d){ +return jq.each(function(){ +_236(this,_25d); +}); +},close:function(jq,_25e){ +return jq.each(function(){ +_23c(this,_25e); +}); +},destroy:function(jq,_25f){ +return jq.each(function(){ +_240(this,_25f); +}); +},clear:function(jq,type){ +return jq.each(function(){ +_232(type=="footer"?$(this).panel("footer"):this); +}); +},refresh:function(jq,href){ +return jq.each(function(){ +var _260=$.data(this,"panel"); +_260.isLoaded=false; +if(href){ +if(typeof href=="string"){ +_260.options.href=href; +}else{ +_260.options.queryParams=href; +} +} +_22c(this); +}); +},resize:function(jq,_261){ +return jq.each(function(){ +_20f(this,_261); +}); +},doLayout:function(jq,all){ +return jq.each(function(){ +_262(this,"body"); +_262($(this).siblings(".panel-footer")[0],"footer"); +function _262(_263,type){ +if(!_263){ +return; +} +var _264=_263==$("body")[0]; +var s=$(_263).find("div.panel:visible,div.accordion:visible,div.tabs-container:visible,div.layout:visible,.easyui-fluid:visible").filter(function(_265,el){ +var p=$(el).parents(".panel-"+type+":first"); +return _264?p.length==0:p[0]==_263; +}); +s.each(function(){ +$(this).triggerHandler("_resize",[all||false]); +}); +}; +}); +},move:function(jq,_266){ +return jq.each(function(){ +_218(this,_266); +}); +},maximize:function(jq){ +return jq.each(function(){ +_23a(this); +}); +},minimize:function(jq){ +return jq.each(function(){ +_24e(this); +}); +},restore:function(jq){ +return jq.each(function(){ +_251(this); +}); +},collapse:function(jq,_267){ +return jq.each(function(){ +_23b(this,_267); +}); +},expand:function(jq,_268){ +return jq.each(function(){ +_248(this,_268); +}); +}}; +$.fn.panel.parseOptions=function(_269){ +var t=$(_269); +var hh=t.children(".panel-header,header"); +var ff=t.children(".panel-footer,footer"); +return $.extend({},$.parser.parseOptions(_269,["id","width","height","left","top","title","iconCls","cls","headerCls","bodyCls","tools","href","method","header","footer",{cache:"boolean",fit:"boolean",border:"boolean",noheader:"boolean"},{collapsible:"boolean",minimizable:"boolean",maximizable:"boolean"},{closable:"boolean",collapsed:"boolean",minimized:"boolean",maximized:"boolean",closed:"boolean"},"openAnimation","closeAnimation",{openDuration:"number",closeDuration:"number"},]),{loadingMessage:(t.attr("loadingMessage")!=undefined?t.attr("loadingMessage"):undefined),header:(hh.length?hh.removeClass("panel-header"):undefined),footer:(ff.length?ff.removeClass("panel-footer"):undefined)}); +}; +$.fn.panel.defaults={id:null,title:null,iconCls:null,width:"auto",height:"auto",left:null,top:null,cls:null,headerCls:null,bodyCls:null,style:{},href:null,cache:true,fit:false,border:true,doSize:true,noheader:false,content:null,collapsible:false,minimizable:false,maximizable:false,closable:false,collapsed:false,minimized:false,maximized:false,closed:false,openAnimation:false,openDuration:400,closeAnimation:false,closeDuration:400,tools:null,footer:null,header:null,queryParams:{},method:"get",href:null,loadingMessage:"Loading...",loader:function(_26a,_26b,_26c){ +var opts=$(this).panel("options"); +if(!opts.href){ +return false; +} +$.ajax({type:opts.method,url:opts.href,cache:false,data:_26a,dataType:"html",success:function(data){ +_26b(data); +},error:function(){ +_26c.apply(this,arguments); +}}); +},extractor:function(data){ +var _26d=/]*>((.|[\n\r])*)<\/body>/im; +var _26e=_26d.exec(data); +if(_26e){ +return _26e[1]; +}else{ +return data; +} +},onBeforeLoad:function(_26f){ +},onLoad:function(){ +},onLoadError:function(){ +},onBeforeOpen:function(){ +},onOpen:function(){ +},onBeforeClose:function(){ +},onClose:function(){ +},onBeforeDestroy:function(){ +},onDestroy:function(){ +},onResize:function(_270,_271){ +},onMove:function(left,top){ +},onMaximize:function(){ +},onRestore:function(){ +},onMinimize:function(){ +},onBeforeCollapse:function(){ +},onBeforeExpand:function(){ +},onCollapse:function(){ +},onExpand:function(){ +}}; +})(jQuery); +(function($){ +function _272(_273,_274){ +var _275=$.data(_273,"window"); +if(_274){ +if(_274.left!=null){ +_275.options.left=_274.left; +} +if(_274.top!=null){ +_275.options.top=_274.top; +} +} +$(_273).panel("move",_275.options); +if(_275.shadow){ +_275.shadow.css({left:_275.options.left,top:_275.options.top}); +} +}; +function _276(_277,_278){ +var opts=$.data(_277,"window").options; +var pp=$(_277).window("panel"); +var _279=pp._outerWidth(); +if(opts.inline){ +var _27a=pp.parent(); +opts.left=Math.ceil((_27a.width()-_279)/2+_27a.scrollLeft()); +}else{ +opts.left=Math.ceil(($(window)._outerWidth()-_279)/2+$(document).scrollLeft()); +} +if(_278){ +_272(_277); +} +}; +function _27b(_27c,_27d){ +var opts=$.data(_27c,"window").options; +var pp=$(_27c).window("panel"); +var _27e=pp._outerHeight(); +if(opts.inline){ +var _27f=pp.parent(); +opts.top=Math.ceil((_27f.height()-_27e)/2+_27f.scrollTop()); +}else{ +opts.top=Math.ceil(($(window)._outerHeight()-_27e)/2+$(document).scrollTop()); +} +if(_27d){ +_272(_27c); +} +}; +function _280(_281){ +var _282=$.data(_281,"window"); +var opts=_282.options; +var win=$(_281).panel($.extend({},_282.options,{border:false,doSize:true,closed:true,cls:"window "+(!opts.border?"window-thinborder window-noborder ":(opts.border=="thin"?"window-thinborder ":""))+(opts.cls||""),headerCls:"window-header "+(opts.headerCls||""),bodyCls:"window-body "+(opts.noheader?"window-body-noheader ":" ")+(opts.bodyCls||""),onBeforeDestroy:function(){ +if(opts.onBeforeDestroy.call(_281)==false){ +return false; +} +if(_282.shadow){ +_282.shadow.remove(); +} +if(_282.mask){ +_282.mask.remove(); +} +},onClose:function(){ +if(_282.shadow){ +_282.shadow.hide(); +} +if(_282.mask){ +_282.mask.hide(); +} +opts.onClose.call(_281); +},onOpen:function(){ +if(_282.mask){ +_282.mask.css($.extend({display:"block",zIndex:$.fn.window.defaults.zIndex++},$.fn.window.getMaskSize(_281))); +} +if(_282.shadow){ +_282.shadow.css({display:"block",zIndex:$.fn.window.defaults.zIndex++,left:opts.left,top:opts.top,width:_282.window._outerWidth(),height:_282.window._outerHeight()}); +} +_282.window.css("z-index",$.fn.window.defaults.zIndex++); +opts.onOpen.call(_281); +},onResize:function(_283,_284){ +var _285=$(this).panel("options"); +$.extend(opts,{width:_285.width,height:_285.height,left:_285.left,top:_285.top}); +if(_282.shadow){ +_282.shadow.css({left:opts.left,top:opts.top,width:_282.window._outerWidth(),height:_282.window._outerHeight()}); +} +opts.onResize.call(_281,_283,_284); +},onMinimize:function(){ +if(_282.shadow){ +_282.shadow.hide(); +} +if(_282.mask){ +_282.mask.hide(); +} +_282.options.onMinimize.call(_281); +},onBeforeCollapse:function(){ +if(opts.onBeforeCollapse.call(_281)==false){ +return false; +} +if(_282.shadow){ +_282.shadow.hide(); +} +},onExpand:function(){ +if(_282.shadow){ +_282.shadow.show(); +} +opts.onExpand.call(_281); +}})); +_282.window=win.panel("panel"); +if(_282.mask){ +_282.mask.remove(); +} +if(opts.modal){ +_282.mask=$("
      ").insertAfter(_282.window); +} +if(_282.shadow){ +_282.shadow.remove(); +} +if(opts.shadow){ +_282.shadow=$("
      ").insertAfter(_282.window); +} +var _286=opts.closed; +if(opts.left==null){ +_276(_281); +} +if(opts.top==null){ +_27b(_281); +} +_272(_281); +if(!_286){ +win.window("open"); +} +}; +function _287(_288){ +var _289=$.data(_288,"window"); +_289.window.draggable({handle:">div.panel-header>div.panel-title",disabled:_289.options.draggable==false,onBeforeDrag:function(e){ +if(_289.mask){ +_289.mask.css("z-index",$.fn.window.defaults.zIndex++); +} +if(_289.shadow){ +_289.shadow.css("z-index",$.fn.window.defaults.zIndex++); +} +_289.window.css("z-index",$.fn.window.defaults.zIndex++); +},onStartDrag:function(e){ +if(!_289.proxy){ +_289.proxy=$("
      ").insertAfter(_289.window); +} +_289.proxy.css({display:"none",zIndex:$.fn.window.defaults.zIndex++,left:e.data.left,top:e.data.top}); +_289.proxy._outerWidth(_289.window._outerWidth()); +_289.proxy._outerHeight(_289.window._outerHeight()); +setTimeout(function(){ +if(_289.proxy){ +_289.proxy.show(); +} +},500); +},onDrag:function(e){ +_289.proxy.css({display:"block",left:e.data.left,top:e.data.top}); +return false; +},onStopDrag:function(e){ +_289.options.left=e.data.left; +_289.options.top=e.data.top; +$(_288).window("move"); +_289.proxy.remove(); +_289.proxy=null; +}}); +_289.window.resizable({disabled:_289.options.resizable==false,onStartResize:function(e){ +if(_289.pmask){ +_289.pmask.remove(); +} +_289.pmask=$("
      ").insertAfter(_289.window); +_289.pmask.css({zIndex:$.fn.window.defaults.zIndex++,left:e.data.left,top:e.data.top,width:_289.window._outerWidth(),height:_289.window._outerHeight()}); +if(_289.proxy){ +_289.proxy.remove(); +} +_289.proxy=$("
      ").insertAfter(_289.window); +_289.proxy.css({zIndex:$.fn.window.defaults.zIndex++,left:e.data.left,top:e.data.top}); +_289.proxy._outerWidth(e.data.width)._outerHeight(e.data.height); +},onResize:function(e){ +_289.proxy.css({left:e.data.left,top:e.data.top}); +_289.proxy._outerWidth(e.data.width); +_289.proxy._outerHeight(e.data.height); +return false; +},onStopResize:function(e){ +$(_288).window("resize",e.data); +_289.pmask.remove(); +_289.pmask=null; +_289.proxy.remove(); +_289.proxy=null; +}}); +}; +$(window).resize(function(){ +$("body>div.window-mask").css({width:$(window)._outerWidth(),height:$(window)._outerHeight()}); +setTimeout(function(){ +$("body>div.window-mask").css($.fn.window.getMaskSize()); +},50); +}); +$.fn.window=function(_28a,_28b){ +if(typeof _28a=="string"){ +var _28c=$.fn.window.methods[_28a]; +if(_28c){ +return _28c(this,_28b); +}else{ +return this.panel(_28a,_28b); +} +} +_28a=_28a||{}; +return this.each(function(){ +var _28d=$.data(this,"window"); +if(_28d){ +$.extend(_28d.options,_28a); +}else{ +_28d=$.data(this,"window",{options:$.extend({},$.fn.window.defaults,$.fn.window.parseOptions(this),_28a)}); +if(!_28d.options.inline){ +document.body.appendChild(this); +} +} +_280(this); +_287(this); +}); +}; +$.fn.window.methods={options:function(jq){ +var _28e=jq.panel("options"); +var _28f=$.data(jq[0],"window").options; +return $.extend(_28f,{closed:_28e.closed,collapsed:_28e.collapsed,minimized:_28e.minimized,maximized:_28e.maximized}); +},window:function(jq){ +return $.data(jq[0],"window").window; +},move:function(jq,_290){ +return jq.each(function(){ +_272(this,_290); +}); +},hcenter:function(jq){ +return jq.each(function(){ +_276(this,true); +}); +},vcenter:function(jq){ +return jq.each(function(){ +_27b(this,true); +}); +},center:function(jq){ +return jq.each(function(){ +_276(this); +_27b(this); +_272(this); +}); +}}; +$.fn.window.getMaskSize=function(_291){ +var _292=$(_291).data("window"); +var _293=(_292&&_292.options.inline); +return {width:(_293?"100%":$(document).width()),height:(_293?"100%":$(document).height())}; +}; +$.fn.window.parseOptions=function(_294){ +return $.extend({},$.fn.panel.parseOptions(_294),$.parser.parseOptions(_294,[{draggable:"boolean",resizable:"boolean",shadow:"boolean",modal:"boolean",inline:"boolean"}])); +}; +$.fn.window.defaults=$.extend({},$.fn.panel.defaults,{zIndex:9000,draggable:true,resizable:true,shadow:true,modal:false,border:true,inline:false,title:"New Window",collapsible:true,minimizable:true,maximizable:true,closable:true,closed:false}); +})(jQuery); +(function($){ +function _295(_296){ +var opts=$.data(_296,"dialog").options; +opts.inited=false; +$(_296).window($.extend({},opts,{onResize:function(w,h){ +if(opts.inited){ +_29b(this); +opts.onResize.call(this,w,h); +} +}})); +var win=$(_296).window("window"); +if(opts.toolbar){ +if($.isArray(opts.toolbar)){ +$(_296).siblings("div.dialog-toolbar").remove(); +var _297=$("
      ").appendTo(win); +var tr=_297.find("tr"); +for(var i=0;i
      ").appendTo(tr); +}else{ +var td=$("").appendTo(tr); +var tool=$("").appendTo(td); +tool[0].onclick=eval(btn.handler||function(){ +}); +tool.linkbutton($.extend({},btn,{plain:true})); +} +} +}else{ +$(opts.toolbar).addClass("dialog-toolbar").appendTo(win); +$(opts.toolbar).show(); +} +}else{ +$(_296).siblings("div.dialog-toolbar").remove(); +} +if(opts.buttons){ +if($.isArray(opts.buttons)){ +$(_296).siblings("div.dialog-button").remove(); +var _298=$("
      ").appendTo(win); +for(var i=0;i").appendTo(_298); +if(p.handler){ +_299[0].onclick=p.handler; +} +_299.linkbutton(p); +} +}else{ +$(opts.buttons).addClass("dialog-button").appendTo(win); +$(opts.buttons).show(); +} +}else{ +$(_296).siblings("div.dialog-button").remove(); +} +opts.inited=true; +var _29a=opts.closed; +win.show(); +$(_296).window("resize"); +if(_29a){ +win.hide(); +} +}; +function _29b(_29c,_29d){ +var t=$(_29c); +var opts=t.dialog("options"); +var _29e=opts.noheader; +var tb=t.siblings(".dialog-toolbar"); +var bb=t.siblings(".dialog-button"); +tb.insertBefore(_29c).css({borderTopWidth:(_29e?1:0),top:(_29e?tb.length:0)}); +bb.insertAfter(_29c); +tb.add(bb)._outerWidth(t._outerWidth()).find(".easyui-fluid:visible").each(function(){ +$(this).triggerHandler("_resize"); +}); +var _29f=tb._outerHeight()+bb._outerHeight(); +if(!isNaN(parseInt(opts.height))){ +t._outerHeight(t._outerHeight()-_29f); +}else{ +var _2a0=t._size("min-height"); +if(_2a0){ +t._size("min-height",_2a0-_29f); +} +var _2a1=t._size("max-height"); +if(_2a1){ +t._size("max-height",_2a1-_29f); +} +} +var _2a2=$.data(_29c,"window").shadow; +if(_2a2){ +var cc=t.panel("panel"); +_2a2.css({width:cc._outerWidth(),height:cc._outerHeight()}); +} +}; +$.fn.dialog=function(_2a3,_2a4){ +if(typeof _2a3=="string"){ +var _2a5=$.fn.dialog.methods[_2a3]; +if(_2a5){ +return _2a5(this,_2a4); +}else{ +return this.window(_2a3,_2a4); +} +} +_2a3=_2a3||{}; +return this.each(function(){ +var _2a6=$.data(this,"dialog"); +if(_2a6){ +$.extend(_2a6.options,_2a3); +}else{ +$.data(this,"dialog",{options:$.extend({},$.fn.dialog.defaults,$.fn.dialog.parseOptions(this),_2a3)}); +} +_295(this); +}); +}; +$.fn.dialog.methods={options:function(jq){ +var _2a7=$.data(jq[0],"dialog").options; +var _2a8=jq.panel("options"); +$.extend(_2a7,{width:_2a8.width,height:_2a8.height,left:_2a8.left,top:_2a8.top,closed:_2a8.closed,collapsed:_2a8.collapsed,minimized:_2a8.minimized,maximized:_2a8.maximized}); +return _2a7; +},dialog:function(jq){ +return jq.window("window"); +}}; +$.fn.dialog.parseOptions=function(_2a9){ +var t=$(_2a9); +return $.extend({},$.fn.window.parseOptions(_2a9),$.parser.parseOptions(_2a9,["toolbar","buttons"]),{toolbar:(t.children(".dialog-toolbar").length?t.children(".dialog-toolbar").removeClass("dialog-toolbar"):undefined),buttons:(t.children(".dialog-button").length?t.children(".dialog-button").removeClass("dialog-button"):undefined)}); +}; +$.fn.dialog.defaults=$.extend({},$.fn.window.defaults,{title:"New Dialog",collapsible:false,minimizable:false,maximizable:false,resizable:false,toolbar:null,buttons:null}); +})(jQuery); +(function($){ +function _2aa(){ +$(document).unbind(".messager").bind("keydown.messager",function(e){ +if(e.keyCode==27){ +$("body").children("div.messager-window").children("div.messager-body").each(function(){ +$(this).dialog("close"); +}); +}else{ +if(e.keyCode==9){ +var win=$("body").children("div.messager-window"); +if(!win.length){ +return; +} +var _2ab=win.find(".messager-input,.messager-button .l-btn"); +for(var i=0;i<_2ab.length;i++){ +if($(_2ab[i]).is(":focus")){ +$(_2ab[i>=_2ab.length-1?0:i+1]).focus(); +return false; +} +} +}else{ +if(e.keyCode==13){ +var _2ac=$(e.target).closest("input.messager-input"); +if(_2ac.length){ +var dlg=_2ac.closest(".messager-body"); +_2ad(dlg,_2ac.val()); +} +} +} +} +}); +}; +function _2ae(){ +$(document).unbind(".messager"); +}; +function _2af(_2b0){ +var opts=$.extend({},$.messager.defaults,{modal:false,shadow:false,draggable:false,resizable:false,closed:true,style:{left:"",top:"",right:0,zIndex:$.fn.window.defaults.zIndex++,bottom:-document.body.scrollTop-document.documentElement.scrollTop},title:"",width:250,height:100,minHeight:0,showType:"slide",showSpeed:600,content:_2b0.msg,timeout:4000},_2b0); +var dlg=$("
      ").appendTo("body"); +dlg.dialog($.extend({},opts,{noheader:(opts.title?false:true),openAnimation:(opts.showType),closeAnimation:(opts.showType=="show"?"hide":opts.showType),openDuration:opts.showSpeed,closeDuration:opts.showSpeed,onOpen:function(){ +dlg.dialog("dialog").hover(function(){ +if(opts.timer){ +clearTimeout(opts.timer); +} +},function(){ +_2b1(); +}); +_2b1(); +function _2b1(){ +if(opts.timeout>0){ +opts.timer=setTimeout(function(){ +if(dlg.length&&dlg.data("dialog")){ +dlg.dialog("close"); +} +},opts.timeout); +} +}; +if(_2b0.onOpen){ +_2b0.onOpen.call(this); +}else{ +opts.onOpen.call(this); +} +},onClose:function(){ +if(opts.timer){ +clearTimeout(opts.timer); +} +if(_2b0.onClose){ +_2b0.onClose.call(this); +}else{ +opts.onClose.call(this); +} +dlg.dialog("destroy"); +}})); +dlg.dialog("dialog").css(opts.style); +dlg.dialog("open"); +return dlg; +}; +function _2b2(_2b3){ +_2aa(); +var dlg=$("
      ").appendTo("body"); +dlg.dialog($.extend({},_2b3,{noheader:(_2b3.title?false:true),onClose:function(){ +_2ae(); +if(_2b3.onClose){ +_2b3.onClose.call(this); +} +setTimeout(function(){ +dlg.dialog("destroy"); +},100); +}})); +var win=dlg.dialog("dialog").addClass("messager-window"); +win.find(".dialog-button").addClass("messager-button").find("a:first").focus(); +return dlg; +}; +function _2ad(dlg,_2b4){ +dlg.dialog("close"); +dlg.dialog("options").fn(_2b4); +}; +$.messager={show:function(_2b5){ +return _2af(_2b5); +},alert:function(_2b6,msg,icon,fn){ +var opts=typeof _2b6=="object"?_2b6:{title:_2b6,msg:msg,icon:icon,fn:fn}; +var cls=opts.icon?"messager-icon messager-"+opts.icon:""; +opts=$.extend({},$.messager.defaults,{content:"
      "+"
      "+opts.msg+"
      "+"
      "},opts); +if(!opts.buttons){ +opts.buttons=[{text:opts.ok,onClick:function(){ +_2ad(dlg); +}}]; +} +var dlg=_2b2(opts); +return dlg; +},confirm:function(_2b7,msg,fn){ +var opts=typeof _2b7=="object"?_2b7:{title:_2b7,msg:msg,fn:fn}; +opts=$.extend({},$.messager.defaults,{content:"
      "+"
      "+opts.msg+"
      "+"
      "},opts); +if(!opts.buttons){ +opts.buttons=[{text:opts.ok,onClick:function(){ +_2ad(dlg,true); +}},{text:opts.cancel,onClick:function(){ +_2ad(dlg,false); +}}]; +} +var dlg=_2b2(opts); +return dlg; +},prompt:function(_2b8,msg,fn){ +var opts=typeof _2b8=="object"?_2b8:{title:_2b8,msg:msg,fn:fn}; +opts=$.extend({},$.messager.defaults,{content:"
      "+"
      "+opts.msg+"
      "+"
      "+"
      "+"
      "},opts); +if(!opts.buttons){ +opts.buttons=[{text:opts.ok,onClick:function(){ +_2ad(dlg,dlg.find(".messager-input").val()); +}},{text:opts.cancel,onClick:function(){ +_2ad(dlg); +}}]; +} +var dlg=_2b2(opts); +dlg.find(".messager-input").focus(); +return dlg; +},progress:function(_2b9){ +var _2ba={bar:function(){ +return $("body>div.messager-window").find("div.messager-p-bar"); +},close:function(){ +var dlg=$("body>div.messager-window>div.messager-body:has(div.messager-progress)"); +if(dlg.length){ +dlg.dialog("close"); +} +}}; +if(typeof _2b9=="string"){ +var _2bb=_2ba[_2b9]; +return _2bb(); +} +_2b9=_2b9||{}; +var opts=$.extend({},{title:"",minHeight:0,content:undefined,msg:"",text:undefined,interval:300},_2b9); +var dlg=_2b2($.extend({},$.messager.defaults,{content:"
      "+opts.msg+"
      ",closable:false,doSize:false},opts,{onClose:function(){ +if(this.timer){ +clearInterval(this.timer); +} +if(_2b9.onClose){ +_2b9.onClose.call(this); +}else{ +$.messager.defaults.onClose.call(this); +} +}})); +var bar=dlg.find("div.messager-p-bar"); +bar.progressbar({text:opts.text}); +dlg.dialog("resize"); +if(opts.interval){ +dlg[0].timer=setInterval(function(){ +var v=bar.progressbar("getValue"); +v+=10; +if(v>100){ +v=0; +} +bar.progressbar("setValue",v); +},opts.interval); +} +return dlg; +}}; +$.messager.defaults=$.extend({},$.fn.dialog.defaults,{ok:"Ok",cancel:"Cancel",width:300,height:"auto",minHeight:150,modal:true,collapsible:false,minimizable:false,maximizable:false,resizable:false,fn:function(){ +}}); +})(jQuery); +(function($){ +function _2bc(_2bd,_2be){ +var _2bf=$.data(_2bd,"accordion"); +var opts=_2bf.options; +var _2c0=_2bf.panels; +var cc=$(_2bd); +if(_2be){ +$.extend(opts,{width:_2be.width,height:_2be.height}); +} +cc._size(opts); +var _2c1=0; +var _2c2="auto"; +var _2c3=cc.find(">.panel>.accordion-header"); +if(_2c3.length){ +_2c1=$(_2c3[0]).css("height","")._outerHeight(); +} +if(!isNaN(parseInt(opts.height))){ +_2c2=cc.height()-_2c1*_2c3.length; +} +_2c4(true,_2c2-_2c4(false)+1); +function _2c4(_2c5,_2c6){ +var _2c7=0; +for(var i=0;i<_2c0.length;i++){ +var p=_2c0[i]; +var h=p.panel("header")._outerHeight(_2c1); +if(p.panel("options").collapsible==_2c5){ +var _2c8=isNaN(_2c6)?undefined:(_2c6+_2c1*h.length); +p.panel("resize",{width:cc.width(),height:(_2c5?_2c8:undefined)}); +_2c7+=p.panel("panel").outerHeight()-_2c1*h.length; +} +} +return _2c7; +}; +}; +function _2c9(_2ca,_2cb,_2cc,all){ +var _2cd=$.data(_2ca,"accordion").panels; +var pp=[]; +for(var i=0;i<_2cd.length;i++){ +var p=_2cd[i]; +if(_2cb){ +if(p.panel("options")[_2cb]==_2cc){ +pp.push(p); +} +}else{ +if(p[0]==$(_2cc)[0]){ +return i; +} +} +} +if(_2cb){ +return all?pp:(pp.length?pp[0]:null); +}else{ +return -1; +} +}; +function _2ce(_2cf){ +return _2c9(_2cf,"collapsed",false,true); +}; +function _2d0(_2d1){ +var pp=_2ce(_2d1); +return pp.length?pp[0]:null; +}; +function _2d2(_2d3,_2d4){ +return _2c9(_2d3,null,_2d4); +}; +function _2d5(_2d6,_2d7){ +var _2d8=$.data(_2d6,"accordion").panels; +if(typeof _2d7=="number"){ +if(_2d7<0||_2d7>=_2d8.length){ +return null; +}else{ +return _2d8[_2d7]; +} +} +return _2c9(_2d6,"title",_2d7); +}; +function _2d9(_2da){ +var opts=$.data(_2da,"accordion").options; +var cc=$(_2da); +if(opts.border){ +cc.removeClass("accordion-noborder"); +}else{ +cc.addClass("accordion-noborder"); +} +}; +function init(_2db){ +var _2dc=$.data(_2db,"accordion"); +var cc=$(_2db); +cc.addClass("accordion"); +_2dc.panels=[]; +cc.children("div").each(function(){ +var opts=$.extend({},$.parser.parseOptions(this),{selected:($(this).attr("selected")?true:undefined)}); +var pp=$(this); +_2dc.panels.push(pp); +_2de(_2db,pp,opts); +}); +cc.bind("_resize",function(e,_2dd){ +if($(this).hasClass("easyui-fluid")||_2dd){ +_2bc(_2db); +} +return false; +}); +}; +function _2de(_2df,pp,_2e0){ +var opts=$.data(_2df,"accordion").options; +pp.panel($.extend({},{collapsible:true,minimizable:false,maximizable:false,closable:false,doSize:false,collapsed:true,headerCls:"accordion-header",bodyCls:"accordion-body"},_2e0,{onBeforeExpand:function(){ +if(_2e0.onBeforeExpand){ +if(_2e0.onBeforeExpand.call(this)==false){ +return false; +} +} +if(!opts.multiple){ +var all=$.grep(_2ce(_2df),function(p){ +return p.panel("options").collapsible; +}); +for(var i=0;i").addClass("accordion-collapse accordion-expand").appendTo(tool); +t.bind("click",function(){ +_2e4(pp); +return false; +}); +pp.panel("options").collapsible?t.show():t.hide(); +_2e3.click(function(){ +_2e4(pp); +return false; +}); +function _2e4(p){ +var _2e5=p.panel("options"); +if(_2e5.collapsible){ +var _2e6=_2d2(_2df,p); +if(_2e5.collapsed){ +_2e7(_2df,_2e6); +}else{ +_2e8(_2df,_2e6); +} +} +}; +}; +function _2e7(_2e9,_2ea){ +var p=_2d5(_2e9,_2ea); +if(!p){ +return; +} +_2eb(_2e9); +var opts=$.data(_2e9,"accordion").options; +p.panel("expand",opts.animate); +}; +function _2e8(_2ec,_2ed){ +var p=_2d5(_2ec,_2ed); +if(!p){ +return; +} +_2eb(_2ec); +var opts=$.data(_2ec,"accordion").options; +p.panel("collapse",opts.animate); +}; +function _2ee(_2ef){ +var opts=$.data(_2ef,"accordion").options; +var p=_2c9(_2ef,"selected",true); +if(p){ +_2f0(_2d2(_2ef,p)); +}else{ +_2f0(opts.selected); +} +function _2f0(_2f1){ +var _2f2=opts.animate; +opts.animate=false; +_2e7(_2ef,_2f1); +opts.animate=_2f2; +}; +}; +function _2eb(_2f3){ +var _2f4=$.data(_2f3,"accordion").panels; +for(var i=0;i<_2f4.length;i++){ +_2f4[i].stop(true,true); +} +}; +function add(_2f5,_2f6){ +var _2f7=$.data(_2f5,"accordion"); +var opts=_2f7.options; +var _2f8=_2f7.panels; +if(_2f6.selected==undefined){ +_2f6.selected=true; +} +_2eb(_2f5); +var pp=$("
      ").appendTo(_2f5); +_2f8.push(pp); +_2de(_2f5,pp,_2f6); +_2bc(_2f5); +opts.onAdd.call(_2f5,_2f6.title,_2f8.length-1); +if(_2f6.selected){ +_2e7(_2f5,_2f8.length-1); +} +}; +function _2f9(_2fa,_2fb){ +var _2fc=$.data(_2fa,"accordion"); +var opts=_2fc.options; +var _2fd=_2fc.panels; +_2eb(_2fa); +var _2fe=_2d5(_2fa,_2fb); +var _2ff=_2fe.panel("options").title; +var _300=_2d2(_2fa,_2fe); +if(!_2fe){ +return; +} +if(opts.onBeforeRemove.call(_2fa,_2ff,_300)==false){ +return; +} +_2fd.splice(_300,1); +_2fe.panel("destroy"); +if(_2fd.length){ +_2bc(_2fa); +var curr=_2d0(_2fa); +if(!curr){ +_2e7(_2fa,0); +} +} +opts.onRemove.call(_2fa,_2ff,_300); +}; +$.fn.accordion=function(_301,_302){ +if(typeof _301=="string"){ +return $.fn.accordion.methods[_301](this,_302); +} +_301=_301||{}; +return this.each(function(){ +var _303=$.data(this,"accordion"); +if(_303){ +$.extend(_303.options,_301); +}else{ +$.data(this,"accordion",{options:$.extend({},$.fn.accordion.defaults,$.fn.accordion.parseOptions(this),_301),accordion:$(this).addClass("accordion"),panels:[]}); +init(this); +} +_2d9(this); +_2bc(this); +_2ee(this); +}); +}; +$.fn.accordion.methods={options:function(jq){ +return $.data(jq[0],"accordion").options; +},panels:function(jq){ +return $.data(jq[0],"accordion").panels; +},resize:function(jq,_304){ +return jq.each(function(){ +_2bc(this,_304); +}); +},getSelections:function(jq){ +return _2ce(jq[0]); +},getSelected:function(jq){ +return _2d0(jq[0]); +},getPanel:function(jq,_305){ +return _2d5(jq[0],_305); +},getPanelIndex:function(jq,_306){ +return _2d2(jq[0],_306); +},select:function(jq,_307){ +return jq.each(function(){ +_2e7(this,_307); +}); +},unselect:function(jq,_308){ +return jq.each(function(){ +_2e8(this,_308); +}); +},add:function(jq,_309){ +return jq.each(function(){ +add(this,_309); +}); +},remove:function(jq,_30a){ +return jq.each(function(){ +_2f9(this,_30a); +}); +}}; +$.fn.accordion.parseOptions=function(_30b){ +var t=$(_30b); +return $.extend({},$.parser.parseOptions(_30b,["width","height",{fit:"boolean",border:"boolean",animate:"boolean",multiple:"boolean",selected:"number"}])); +}; +$.fn.accordion.defaults={width:"auto",height:"auto",fit:false,border:true,animate:true,multiple:false,selected:0,onSelect:function(_30c,_30d){ +},onUnselect:function(_30e,_30f){ +},onAdd:function(_310,_311){ +},onBeforeRemove:function(_312,_313){ +},onRemove:function(_314,_315){ +}}; +})(jQuery); +(function($){ +function _316(c){ +var w=0; +$(c).children().each(function(){ +w+=$(this).outerWidth(true); +}); +return w; +}; +function _317(_318){ +var opts=$.data(_318,"tabs").options; +if(opts.tabPosition=="left"||opts.tabPosition=="right"||!opts.showHeader){ +return; +} +var _319=$(_318).children("div.tabs-header"); +var tool=_319.children("div.tabs-tool:not(.tabs-tool-hidden)"); +var _31a=_319.children("div.tabs-scroller-left"); +var _31b=_319.children("div.tabs-scroller-right"); +var wrap=_319.children("div.tabs-wrap"); +var _31c=_319.outerHeight(); +if(opts.plain){ +_31c-=_31c-_319.height(); +} +tool._outerHeight(_31c); +var _31d=_316(_319.find("ul.tabs")); +var _31e=_319.width()-tool._outerWidth(); +if(_31d>_31e){ +_31a.add(_31b).show()._outerHeight(_31c); +if(opts.toolPosition=="left"){ +tool.css({left:_31a.outerWidth(),right:""}); +wrap.css({marginLeft:_31a.outerWidth()+tool._outerWidth(),marginRight:_31b._outerWidth(),width:_31e-_31a.outerWidth()-_31b.outerWidth()}); +}else{ +tool.css({left:"",right:_31b.outerWidth()}); +wrap.css({marginLeft:_31a.outerWidth(),marginRight:_31b.outerWidth()+tool._outerWidth(),width:_31e-_31a.outerWidth()-_31b.outerWidth()}); +} +}else{ +_31a.add(_31b).hide(); +if(opts.toolPosition=="left"){ +tool.css({left:0,right:""}); +wrap.css({marginLeft:tool._outerWidth(),marginRight:0,width:_31e}); +}else{ +tool.css({left:"",right:0}); +wrap.css({marginLeft:0,marginRight:tool._outerWidth(),width:_31e}); +} +} +}; +function _31f(_320){ +var opts=$.data(_320,"tabs").options; +var _321=$(_320).children("div.tabs-header"); +if(opts.tools){ +if(typeof opts.tools=="string"){ +$(opts.tools).addClass("tabs-tool").appendTo(_321); +$(opts.tools).show(); +}else{ +_321.children("div.tabs-tool").remove(); +var _322=$("
      ").appendTo(_321); +var tr=_322.find("tr"); +for(var i=0;i").appendTo(tr); +var tool=$("").appendTo(td); +tool[0].onclick=eval(opts.tools[i].handler||function(){ +}); +tool.linkbutton($.extend({},opts.tools[i],{plain:true})); +} +} +}else{ +_321.children("div.tabs-tool").remove(); +} +}; +function _323(_324,_325){ +var _326=$.data(_324,"tabs"); +var opts=_326.options; +var cc=$(_324); +if(!opts.doSize){ +return; +} +if(_325){ +$.extend(opts,{width:_325.width,height:_325.height}); +} +cc._size(opts); +var _327=cc.children("div.tabs-header"); +var _328=cc.children("div.tabs-panels"); +var wrap=_327.find("div.tabs-wrap"); +var ul=wrap.find(".tabs"); +ul.children("li").removeClass("tabs-first tabs-last"); +ul.children("li:first").addClass("tabs-first"); +ul.children("li:last").addClass("tabs-last"); +if(opts.tabPosition=="left"||opts.tabPosition=="right"){ +_327._outerWidth(opts.showHeader?opts.headerWidth:0); +_328._outerWidth(cc.width()-_327.outerWidth()); +_327.add(_328)._size("height",isNaN(parseInt(opts.height))?"":cc.height()); +wrap._outerWidth(_327.width()); +ul._outerWidth(wrap.width()).css("height",""); +}else{ +_327.children("div.tabs-scroller-left,div.tabs-scroller-right,div.tabs-tool:not(.tabs-tool-hidden)").css("display",opts.showHeader?"block":"none"); +_327._outerWidth(cc.width()).css("height",""); +if(opts.showHeader){ +_327.css("background-color",""); +wrap.css("height",""); +}else{ +_327.css("background-color","transparent"); +_327._outerHeight(0); +wrap._outerHeight(0); +} +ul._outerHeight(opts.tabHeight).css("width",""); +ul._outerHeight(ul.outerHeight()-ul.height()-1+opts.tabHeight).css("width",""); +_328._size("height",isNaN(parseInt(opts.height))?"":(cc.height()-_327.outerHeight())); +_328._size("width",cc.width()); +} +if(_326.tabs.length){ +var d1=ul.outerWidth(true)-ul.width(); +var li=ul.children("li:first"); +var d2=li.outerWidth(true)-li.width(); +var _329=_327.width()-_327.children(".tabs-tool:not(.tabs-tool-hidden)")._outerWidth(); +var _32a=Math.floor((_329-d1-d2*_326.tabs.length)/_326.tabs.length); +$.map(_326.tabs,function(p){ +_32b(p,(opts.justified&&$.inArray(opts.tabPosition,["top","bottom"])>=0)?_32a:undefined); +}); +if(opts.justified&&$.inArray(opts.tabPosition,["top","bottom"])>=0){ +var _32c=_329-d1-_316(ul); +_32b(_326.tabs[_326.tabs.length-1],_32a+_32c); +} +} +_317(_324); +function _32b(p,_32d){ +var _32e=p.panel("options"); +var p_t=_32e.tab.find("a.tabs-inner"); +var _32d=_32d?_32d:(parseInt(_32e.tabWidth||opts.tabWidth||undefined)); +if(_32d){ +p_t._outerWidth(_32d); +}else{ +p_t.css("width",""); +} +p_t._outerHeight(opts.tabHeight); +p_t.css("lineHeight",p_t.height()+"px"); +p_t.find(".easyui-fluid:visible").triggerHandler("_resize"); +}; +}; +function _32f(_330){ +var opts=$.data(_330,"tabs").options; +var tab=_331(_330); +if(tab){ +var _332=$(_330).children("div.tabs-panels"); +var _333=opts.width=="auto"?"auto":_332.width(); +var _334=opts.height=="auto"?"auto":_332.height(); +tab.panel("resize",{width:_333,height:_334}); +} +}; +function _335(_336){ +var tabs=$.data(_336,"tabs").tabs; +var cc=$(_336).addClass("tabs-container"); +var _337=$("
      ").insertBefore(cc); +cc.children("div").each(function(){ +_337[0].appendChild(this); +}); +cc[0].appendChild(_337[0]); +$("
      "+"
      "+"
      "+"
      "+"
        "+"
        "+"
        ").prependTo(_336); +cc.children("div.tabs-panels").children("div").each(function(i){ +var opts=$.extend({},$.parser.parseOptions(this),{disabled:($(this).attr("disabled")?true:undefined),selected:($(this).attr("selected")?true:undefined)}); +_344(_336,opts,$(this)); +}); +cc.children("div.tabs-header").find(".tabs-scroller-left, .tabs-scroller-right").hover(function(){ +$(this).addClass("tabs-scroller-over"); +},function(){ +$(this).removeClass("tabs-scroller-over"); +}); +cc.bind("_resize",function(e,_338){ +if($(this).hasClass("easyui-fluid")||_338){ +_323(_336); +_32f(_336); +} +return false; +}); +}; +function _339(_33a){ +var _33b=$.data(_33a,"tabs"); +var opts=_33b.options; +$(_33a).children("div.tabs-header").unbind().bind("click",function(e){ +if($(e.target).hasClass("tabs-scroller-left")){ +$(_33a).tabs("scrollBy",-opts.scrollIncrement); +}else{ +if($(e.target).hasClass("tabs-scroller-right")){ +$(_33a).tabs("scrollBy",opts.scrollIncrement); +}else{ +var li=$(e.target).closest("li"); +if(li.hasClass("tabs-disabled")){ +return false; +} +var a=$(e.target).closest("a.tabs-close"); +if(a.length){ +_35d(_33a,_33c(li)); +}else{ +if(li.length){ +var _33d=_33c(li); +var _33e=_33b.tabs[_33d].panel("options"); +if(_33e.collapsible){ +_33e.closed?_354(_33a,_33d):_371(_33a,_33d); +}else{ +_354(_33a,_33d); +} +} +} +return false; +} +} +}).bind("contextmenu",function(e){ +var li=$(e.target).closest("li"); +if(li.hasClass("tabs-disabled")){ +return; +} +if(li.length){ +opts.onContextMenu.call(_33a,e,li.find("span.tabs-title").html(),_33c(li)); +} +}); +function _33c(li){ +var _33f=0; +li.parent().children("li").each(function(i){ +if(li[0]==this){ +_33f=i; +return false; +} +}); +return _33f; +}; +}; +function _340(_341){ +var opts=$.data(_341,"tabs").options; +var _342=$(_341).children("div.tabs-header"); +var _343=$(_341).children("div.tabs-panels"); +_342.removeClass("tabs-header-top tabs-header-bottom tabs-header-left tabs-header-right"); +_343.removeClass("tabs-panels-top tabs-panels-bottom tabs-panels-left tabs-panels-right"); +if(opts.tabPosition=="top"){ +_342.insertBefore(_343); +}else{ +if(opts.tabPosition=="bottom"){ +_342.insertAfter(_343); +_342.addClass("tabs-header-bottom"); +_343.addClass("tabs-panels-top"); +}else{ +if(opts.tabPosition=="left"){ +_342.addClass("tabs-header-left"); +_343.addClass("tabs-panels-right"); +}else{ +if(opts.tabPosition=="right"){ +_342.addClass("tabs-header-right"); +_343.addClass("tabs-panels-left"); +} +} +} +} +if(opts.plain==true){ +_342.addClass("tabs-header-plain"); +}else{ +_342.removeClass("tabs-header-plain"); +} +_342.removeClass("tabs-header-narrow").addClass(opts.narrow?"tabs-header-narrow":""); +var tabs=_342.find(".tabs"); +tabs.removeClass("tabs-pill").addClass(opts.pill?"tabs-pill":""); +tabs.removeClass("tabs-narrow").addClass(opts.narrow?"tabs-narrow":""); +tabs.removeClass("tabs-justified").addClass(opts.justified?"tabs-justified":""); +if(opts.border==true){ +_342.removeClass("tabs-header-noborder"); +_343.removeClass("tabs-panels-noborder"); +}else{ +_342.addClass("tabs-header-noborder"); +_343.addClass("tabs-panels-noborder"); +} +opts.doSize=true; +}; +function _344(_345,_346,pp){ +_346=_346||{}; +var _347=$.data(_345,"tabs"); +var tabs=_347.tabs; +if(_346.index==undefined||_346.index>tabs.length){ +_346.index=tabs.length; +} +if(_346.index<0){ +_346.index=0; +} +var ul=$(_345).children("div.tabs-header").find("ul.tabs"); +var _348=$(_345).children("div.tabs-panels"); +var tab=$("
      • "+""+""+""+""+"
      • "); +if(!pp){ +pp=$("
        "); +} +if(_346.index>=tabs.length){ +tab.appendTo(ul); +pp.appendTo(_348); +tabs.push(pp); +}else{ +tab.insertBefore(ul.children("li:eq("+_346.index+")")); +pp.insertBefore(_348.children("div.panel:eq("+_346.index+")")); +tabs.splice(_346.index,0,pp); +} +pp.panel($.extend({},_346,{tab:tab,border:false,noheader:true,closed:true,doSize:false,iconCls:(_346.icon?_346.icon:undefined),onLoad:function(){ +if(_346.onLoad){ +_346.onLoad.call(this,arguments); +} +_347.options.onLoad.call(_345,$(this)); +},onBeforeOpen:function(){ +if(_346.onBeforeOpen){ +if(_346.onBeforeOpen.call(this)==false){ +return false; +} +} +var p=$(_345).tabs("getSelected"); +if(p){ +if(p[0]!=this){ +$(_345).tabs("unselect",_34f(_345,p)); +p=$(_345).tabs("getSelected"); +if(p){ +return false; +} +}else{ +_32f(_345); +return false; +} +} +var _349=$(this).panel("options"); +_349.tab.addClass("tabs-selected"); +var wrap=$(_345).find(">div.tabs-header>div.tabs-wrap"); +var left=_349.tab.position().left; +var _34a=left+_349.tab.outerWidth(); +if(left<0||_34a>wrap.width()){ +var _34b=left-(wrap.width()-_349.tab.width())/2; +$(_345).tabs("scrollBy",_34b); +}else{ +$(_345).tabs("scrollBy",0); +} +var _34c=$(this).panel("panel"); +_34c.css("display","block"); +_32f(_345); +_34c.css("display","none"); +},onOpen:function(){ +if(_346.onOpen){ +_346.onOpen.call(this); +} +var _34d=$(this).panel("options"); +_347.selectHis.push(_34d.title); +_347.options.onSelect.call(_345,_34d.title,_34f(_345,this)); +},onBeforeClose:function(){ +if(_346.onBeforeClose){ +if(_346.onBeforeClose.call(this)==false){ +return false; +} +} +$(this).panel("options").tab.removeClass("tabs-selected"); +},onClose:function(){ +if(_346.onClose){ +_346.onClose.call(this); +} +var _34e=$(this).panel("options"); +_347.options.onUnselect.call(_345,_34e.title,_34f(_345,this)); +}})); +$(_345).tabs("update",{tab:pp,options:pp.panel("options"),type:"header"}); +}; +function _350(_351,_352){ +var _353=$.data(_351,"tabs"); +var opts=_353.options; +if(_352.selected==undefined){ +_352.selected=true; +} +_344(_351,_352); +opts.onAdd.call(_351,_352.title,_352.index); +if(_352.selected){ +_354(_351,_352.index); +} +}; +function _355(_356,_357){ +_357.type=_357.type||"all"; +var _358=$.data(_356,"tabs").selectHis; +var pp=_357.tab; +var opts=pp.panel("options"); +var _359=opts.title; +$.extend(opts,_357.options,{iconCls:(_357.options.icon?_357.options.icon:undefined)}); +if(_357.type=="all"||_357.type=="body"){ +pp.panel(); +} +if(_357.type=="all"||_357.type=="header"){ +var tab=opts.tab; +if(opts.header){ +tab.find(".tabs-inner").html($(opts.header)); +}else{ +var _35a=tab.find("span.tabs-title"); +var _35b=tab.find("span.tabs-icon"); +_35a.html(opts.title); +_35b.attr("class","tabs-icon"); +tab.find("a.tabs-close").remove(); +if(opts.closable){ +_35a.addClass("tabs-closable"); +$("").appendTo(tab); +}else{ +_35a.removeClass("tabs-closable"); +} +if(opts.iconCls){ +_35a.addClass("tabs-with-icon"); +_35b.addClass(opts.iconCls); +}else{ +_35a.removeClass("tabs-with-icon"); +} +if(opts.tools){ +var _35c=tab.find("span.tabs-p-tool"); +if(!_35c.length){ +var _35c=$("").insertAfter(tab.find("a.tabs-inner")); +} +if($.isArray(opts.tools)){ +_35c.empty(); +for(var i=0;i").appendTo(_35c); +t.addClass(opts.tools[i].iconCls); +if(opts.tools[i].handler){ +t.bind("click",{handler:opts.tools[i].handler},function(e){ +if($(this).parents("li").hasClass("tabs-disabled")){ +return; +} +e.data.handler.call(this); +}); +} +} +}else{ +$(opts.tools).children().appendTo(_35c); +} +var pr=_35c.children().length*12; +if(opts.closable){ +pr+=8; +}else{ +pr-=3; +_35c.css("right","5px"); +} +_35a.css("padding-right",pr+"px"); +}else{ +tab.find("span.tabs-p-tool").remove(); +_35a.css("padding-right",""); +} +} +if(_359!=opts.title){ +for(var i=0;i<_358.length;i++){ +if(_358[i]==_359){ +_358[i]=opts.title; +} +} +} +} +if(opts.disabled){ +opts.tab.addClass("tabs-disabled"); +}else{ +opts.tab.removeClass("tabs-disabled"); +} +_323(_356); +$.data(_356,"tabs").options.onUpdate.call(_356,opts.title,_34f(_356,pp)); +}; +function _35d(_35e,_35f){ +var opts=$.data(_35e,"tabs").options; +var tabs=$.data(_35e,"tabs").tabs; +var _360=$.data(_35e,"tabs").selectHis; +if(!_361(_35e,_35f)){ +return; +} +var tab=_362(_35e,_35f); +var _363=tab.panel("options").title; +var _364=_34f(_35e,tab); +if(opts.onBeforeClose.call(_35e,_363,_364)==false){ +return; +} +var tab=_362(_35e,_35f,true); +tab.panel("options").tab.remove(); +tab.panel("destroy"); +opts.onClose.call(_35e,_363,_364); +_323(_35e); +for(var i=0;i<_360.length;i++){ +if(_360[i]==_363){ +_360.splice(i,1); +i--; +} +} +var _365=_360.pop(); +if(_365){ +_354(_35e,_365); +}else{ +if(tabs.length){ +_354(_35e,0); +} +} +}; +function _362(_366,_367,_368){ +var tabs=$.data(_366,"tabs").tabs; +if(typeof _367=="number"){ +if(_367<0||_367>=tabs.length){ +return null; +}else{ +var tab=tabs[_367]; +if(_368){ +tabs.splice(_367,1); +} +return tab; +} +} +for(var i=0;i.tabs-header>.tabs-tool"); +if(_37c){ +tool.removeClass("tabs-tool-hidden").show(); +}else{ +tool.addClass("tabs-tool-hidden").hide(); +} +$(_37b).tabs("resize").tabs("scrollBy",0); +}; +$.fn.tabs=function(_37d,_37e){ +if(typeof _37d=="string"){ +return $.fn.tabs.methods[_37d](this,_37e); +} +_37d=_37d||{}; +return this.each(function(){ +var _37f=$.data(this,"tabs"); +if(_37f){ +$.extend(_37f.options,_37d); +}else{ +$.data(this,"tabs",{options:$.extend({},$.fn.tabs.defaults,$.fn.tabs.parseOptions(this),_37d),tabs:[],selectHis:[]}); +_335(this); +} +_31f(this); +_340(this); +_323(this); +_339(this); +_36b(this); +}); +}; +$.fn.tabs.methods={options:function(jq){ +var cc=jq[0]; +var opts=$.data(cc,"tabs").options; +var s=_331(cc); +opts.selected=s?_34f(cc,s):-1; +return opts; +},tabs:function(jq){ +return $.data(jq[0],"tabs").tabs; +},resize:function(jq,_380){ +return jq.each(function(){ +_323(this,_380); +_32f(this); +}); +},add:function(jq,_381){ +return jq.each(function(){ +_350(this,_381); +}); +},close:function(jq,_382){ +return jq.each(function(){ +_35d(this,_382); +}); +},getTab:function(jq,_383){ +return _362(jq[0],_383); +},getTabIndex:function(jq,tab){ +return _34f(jq[0],tab); +},getSelected:function(jq){ +return _331(jq[0]); +},select:function(jq,_384){ +return jq.each(function(){ +_354(this,_384); +}); +},unselect:function(jq,_385){ +return jq.each(function(){ +_371(this,_385); +}); +},exists:function(jq,_386){ +return _361(jq[0],_386); +},update:function(jq,_387){ +return jq.each(function(){ +_355(this,_387); +}); +},enableTab:function(jq,_388){ +return jq.each(function(){ +var opts=$(this).tabs("getTab",_388).panel("options"); +opts.tab.removeClass("tabs-disabled"); +opts.disabled=false; +}); +},disableTab:function(jq,_389){ +return jq.each(function(){ +var opts=$(this).tabs("getTab",_389).panel("options"); +opts.tab.addClass("tabs-disabled"); +opts.disabled=true; +}); +},showHeader:function(jq){ +return jq.each(function(){ +_377(this,true); +}); +},hideHeader:function(jq){ +return jq.each(function(){ +_377(this,false); +}); +},showTool:function(jq){ +return jq.each(function(){ +_37a(this,true); +}); +},hideTool:function(jq){ +return jq.each(function(){ +_37a(this,false); +}); +},scrollBy:function(jq,_38a){ +return jq.each(function(){ +var opts=$(this).tabs("options"); +var wrap=$(this).find(">div.tabs-header>div.tabs-wrap"); +var pos=Math.min(wrap._scrollLeft()+_38a,_38b()); +wrap.animate({scrollLeft:pos},opts.scrollDuration); +function _38b(){ +var w=0; +var ul=wrap.children("ul"); +ul.children("li").each(function(){ +w+=$(this).outerWidth(true); +}); +return w-wrap.width()+(ul.outerWidth()-ul.width()); +}; +}); +}}; +$.fn.tabs.parseOptions=function(_38c){ +return $.extend({},$.parser.parseOptions(_38c,["tools","toolPosition","tabPosition",{fit:"boolean",border:"boolean",plain:"boolean"},{headerWidth:"number",tabWidth:"number",tabHeight:"number",selected:"number"},{showHeader:"boolean",justified:"boolean",narrow:"boolean",pill:"boolean"}])); +}; +$.fn.tabs.defaults={width:"auto",height:"auto",headerWidth:150,tabWidth:"auto",tabHeight:27,selected:0,showHeader:true,plain:false,fit:false,border:true,justified:false,narrow:false,pill:false,tools:null,toolPosition:"right",tabPosition:"top",scrollIncrement:100,scrollDuration:400,onLoad:function(_38d){ +},onSelect:function(_38e,_38f){ +},onUnselect:function(_390,_391){ +},onBeforeClose:function(_392,_393){ +},onClose:function(_394,_395){ +},onAdd:function(_396,_397){ +},onUpdate:function(_398,_399){ +},onContextMenu:function(e,_39a,_39b){ +}}; +})(jQuery); +(function($){ +var _39c=false; +function _39d(_39e,_39f){ +var _3a0=$.data(_39e,"layout"); +var opts=_3a0.options; +var _3a1=_3a0.panels; +var cc=$(_39e); +if(_39f){ +$.extend(opts,{width:_39f.width,height:_39f.height}); +} +if(_39e.tagName.toLowerCase()=="body"){ +cc._size("fit"); +}else{ +cc._size(opts); +} +var cpos={top:0,left:0,width:cc.width(),height:cc.height()}; +_3a2(_3a3(_3a1.expandNorth)?_3a1.expandNorth:_3a1.north,"n"); +_3a2(_3a3(_3a1.expandSouth)?_3a1.expandSouth:_3a1.south,"s"); +_3a4(_3a3(_3a1.expandEast)?_3a1.expandEast:_3a1.east,"e"); +_3a4(_3a3(_3a1.expandWest)?_3a1.expandWest:_3a1.west,"w"); +_3a1.center.panel("resize",cpos); +function _3a2(pp,type){ +if(!pp.length||!_3a3(pp)){ +return; +} +var opts=pp.panel("options"); +pp.panel("resize",{width:cc.width(),height:opts.height}); +var _3a5=pp.panel("panel").outerHeight(); +pp.panel("move",{left:0,top:(type=="n"?0:cc.height()-_3a5)}); +cpos.height-=_3a5; +if(type=="n"){ +cpos.top+=_3a5; +if(!opts.split&&opts.border){ +cpos.top--; +} +} +if(!opts.split&&opts.border){ +cpos.height++; +} +}; +function _3a4(pp,type){ +if(!pp.length||!_3a3(pp)){ +return; +} +var opts=pp.panel("options"); +pp.panel("resize",{width:opts.width,height:cpos.height}); +var _3a6=pp.panel("panel").outerWidth(); +pp.panel("move",{left:(type=="e"?cc.width()-_3a6:0),top:cpos.top}); +cpos.width-=_3a6; +if(type=="w"){ +cpos.left+=_3a6; +if(!opts.split&&opts.border){ +cpos.left--; +} +} +if(!opts.split&&opts.border){ +cpos.width++; +} +}; +}; +function init(_3a7){ +var cc=$(_3a7); +cc.addClass("layout"); +function _3a8(cc){ +var opts=cc.layout("options"); +var _3a9=opts.onAdd; +opts.onAdd=function(){ +}; +cc.children("div").each(function(){ +var _3aa=$.fn.layout.parsePanelOptions(this); +if("north,south,east,west,center".indexOf(_3aa.region)>=0){ +_3ac(_3a7,_3aa,this); +} +}); +opts.onAdd=_3a9; +}; +cc.children("form").length?_3a8(cc.children("form")):_3a8(cc); +cc.append("
        "); +cc.bind("_resize",function(e,_3ab){ +if($(this).hasClass("easyui-fluid")||_3ab){ +_39d(_3a7); +} +return false; +}); +}; +function _3ac(_3ad,_3ae,el){ +_3ae.region=_3ae.region||"center"; +var _3af=$.data(_3ad,"layout").panels; +var cc=$(_3ad); +var dir=_3ae.region; +if(_3af[dir].length){ +return; +} +var pp=$(el); +if(!pp.length){ +pp=$("
        ").appendTo(cc); +} +var _3b0=$.extend({},$.fn.layout.paneldefaults,{width:(pp.length?parseInt(pp[0].style.width)||pp.outerWidth():"auto"),height:(pp.length?parseInt(pp[0].style.height)||pp.outerHeight():"auto"),doSize:false,collapsible:true,onOpen:function(){ +var tool=$(this).panel("header").children("div.panel-tool"); +tool.children("a.panel-tool-collapse").hide(); +var _3b1={north:"up",south:"down",east:"right",west:"left"}; +if(!_3b1[dir]){ +return; +} +var _3b2="layout-button-"+_3b1[dir]; +var t=tool.children("a."+_3b2); +if(!t.length){ +t=$("").addClass(_3b2).appendTo(tool); +t.bind("click",{dir:dir},function(e){ +_3be(_3ad,e.data.dir); +return false; +}); +} +$(this).panel("options").collapsible?t.show():t.hide(); +}},_3ae,{cls:((_3ae.cls||"")+" layout-panel layout-panel-"+dir),bodyCls:((_3ae.bodyCls||"")+" layout-body")}); +pp.panel(_3b0); +_3af[dir]=pp; +var _3b3={north:"s",south:"n",east:"w",west:"e"}; +var _3b4=pp.panel("panel"); +if(pp.panel("options").split){ +_3b4.addClass("layout-split-"+dir); +} +_3b4.resizable($.extend({},{handles:(_3b3[dir]||""),disabled:(!pp.panel("options").split),onStartResize:function(e){ +_39c=true; +if(dir=="north"||dir=="south"){ +var _3b5=$(">div.layout-split-proxy-v",_3ad); +}else{ +var _3b5=$(">div.layout-split-proxy-h",_3ad); +} +var top=0,left=0,_3b6=0,_3b7=0; +var pos={display:"block"}; +if(dir=="north"){ +pos.top=parseInt(_3b4.css("top"))+_3b4.outerHeight()-_3b5.height(); +pos.left=parseInt(_3b4.css("left")); +pos.width=_3b4.outerWidth(); +pos.height=_3b5.height(); +}else{ +if(dir=="south"){ +pos.top=parseInt(_3b4.css("top")); +pos.left=parseInt(_3b4.css("left")); +pos.width=_3b4.outerWidth(); +pos.height=_3b5.height(); +}else{ +if(dir=="east"){ +pos.top=parseInt(_3b4.css("top"))||0; +pos.left=parseInt(_3b4.css("left"))||0; +pos.width=_3b5.width(); +pos.height=_3b4.outerHeight(); +}else{ +if(dir=="west"){ +pos.top=parseInt(_3b4.css("top"))||0; +pos.left=_3b4.outerWidth()-_3b5.width(); +pos.width=_3b5.width(); +pos.height=_3b4.outerHeight(); +} +} +} +} +_3b5.css(pos); +$("
        ").css({left:0,top:0,width:cc.width(),height:cc.height()}).appendTo(cc); +},onResize:function(e){ +if(dir=="north"||dir=="south"){ +var _3b8=$(">div.layout-split-proxy-v",_3ad); +_3b8.css("top",e.pageY-$(_3ad).offset().top-_3b8.height()/2); +}else{ +var _3b8=$(">div.layout-split-proxy-h",_3ad); +_3b8.css("left",e.pageX-$(_3ad).offset().left-_3b8.width()/2); +} +return false; +},onStopResize:function(e){ +cc.children("div.layout-split-proxy-v,div.layout-split-proxy-h").hide(); +pp.panel("resize",e.data); +_39d(_3ad); +_39c=false; +cc.find(">div.layout-mask").remove(); +}},_3ae)); +cc.layout("options").onAdd.call(_3ad,dir); +}; +function _3b9(_3ba,_3bb){ +var _3bc=$.data(_3ba,"layout").panels; +if(_3bc[_3bb].length){ +_3bc[_3bb].panel("destroy"); +_3bc[_3bb]=$(); +var _3bd="expand"+_3bb.substring(0,1).toUpperCase()+_3bb.substring(1); +if(_3bc[_3bd]){ +_3bc[_3bd].panel("destroy"); +_3bc[_3bd]=undefined; +} +$(_3ba).layout("options").onRemove.call(_3ba,_3bb); +} +}; +function _3be(_3bf,_3c0,_3c1){ +if(_3c1==undefined){ +_3c1="normal"; +} +var _3c2=$.data(_3bf,"layout").panels; +var p=_3c2[_3c0]; +var _3c3=p.panel("options"); +if(_3c3.onBeforeCollapse.call(p)==false){ +return; +} +var _3c4="expand"+_3c0.substring(0,1).toUpperCase()+_3c0.substring(1); +if(!_3c2[_3c4]){ +_3c2[_3c4]=_3c5(_3c0); +var ep=_3c2[_3c4].panel("panel"); +if(!_3c3.expandMode){ +ep.css("cursor","default"); +}else{ +ep.bind("click",function(){ +if(_3c3.expandMode=="dock"){ +_3d0(_3bf,_3c0); +}else{ +p.panel("expand",false).panel("open"); +var _3c6=_3c7(); +p.panel("resize",_3c6.collapse); +p.panel("panel").animate(_3c6.expand,function(){ +$(this).unbind(".layout").bind("mouseleave.layout",{region:_3c0},function(e){ +if(_39c==true){ +return; +} +if($("body>div.combo-p>div.combo-panel:visible").length){ +return; +} +_3be(_3bf,e.data.region); +}); +$(_3bf).layout("options").onExpand.call(_3bf,_3c0); +}); +} +return false; +}); +} +} +var _3c8=_3c7(); +if(!_3a3(_3c2[_3c4])){ +_3c2.center.panel("resize",_3c8.resizeC); +} +p.panel("panel").animate(_3c8.collapse,_3c1,function(){ +p.panel("collapse",false).panel("close"); +_3c2[_3c4].panel("open").panel("resize",_3c8.expandP); +$(this).unbind(".layout"); +$(_3bf).layout("options").onCollapse.call(_3bf,_3c0); +}); +function _3c5(dir){ +var _3c9={"east":"left","west":"right","north":"down","south":"up"}; +var isns=(_3c3.region=="north"||_3c3.region=="south"); +var icon="layout-button-"+_3c9[dir]; +var p=$("
        ").appendTo(_3bf); +p.panel($.extend({},$.fn.layout.paneldefaults,{cls:("layout-expand layout-expand-"+dir),title:" ",iconCls:(_3c3.hideCollapsedContent?null:_3c3.iconCls),closed:true,minWidth:0,minHeight:0,doSize:false,region:_3c3.region,collapsedSize:_3c3.collapsedSize,noheader:(!isns&&_3c3.hideExpandTool),tools:((isns&&_3c3.hideExpandTool)?null:[{iconCls:icon,handler:function(){ +_3d0(_3bf,_3c0); +return false; +}}])})); +if(!_3c3.hideCollapsedContent){ +var _3ca=typeof _3c3.collapsedContent=="function"?_3c3.collapsedContent.call(p[0],_3c3.title):_3c3.collapsedContent; +isns?p.panel("setTitle",_3ca):p.html(_3ca); +} +p.panel("panel").hover(function(){ +$(this).addClass("layout-expand-over"); +},function(){ +$(this).removeClass("layout-expand-over"); +}); +return p; +}; +function _3c7(){ +var cc=$(_3bf); +var _3cb=_3c2.center.panel("options"); +var _3cc=_3c3.collapsedSize; +if(_3c0=="east"){ +var _3cd=p.panel("panel")._outerWidth(); +var _3ce=_3cb.width+_3cd-_3cc; +if(_3c3.split||!_3c3.border){ +_3ce++; +} +return {resizeC:{width:_3ce},expand:{left:cc.width()-_3cd},expandP:{top:_3cb.top,left:cc.width()-_3cc,width:_3cc,height:_3cb.height},collapse:{left:cc.width(),top:_3cb.top,height:_3cb.height}}; +}else{ +if(_3c0=="west"){ +var _3cd=p.panel("panel")._outerWidth(); +var _3ce=_3cb.width+_3cd-_3cc; +if(_3c3.split||!_3c3.border){ +_3ce++; +} +return {resizeC:{width:_3ce,left:_3cc-1},expand:{left:0},expandP:{left:0,top:_3cb.top,width:_3cc,height:_3cb.height},collapse:{left:-_3cd,top:_3cb.top,height:_3cb.height}}; +}else{ +if(_3c0=="north"){ +var _3cf=p.panel("panel")._outerHeight(); +var hh=_3cb.height; +if(!_3a3(_3c2.expandNorth)){ +hh+=_3cf-_3cc+((_3c3.split||!_3c3.border)?1:0); +} +_3c2.east.add(_3c2.west).add(_3c2.expandEast).add(_3c2.expandWest).panel("resize",{top:_3cc-1,height:hh}); +return {resizeC:{top:_3cc-1,height:hh},expand:{top:0},expandP:{top:0,left:0,width:cc.width(),height:_3cc},collapse:{top:-_3cf,width:cc.width()}}; +}else{ +if(_3c0=="south"){ +var _3cf=p.panel("panel")._outerHeight(); +var hh=_3cb.height; +if(!_3a3(_3c2.expandSouth)){ +hh+=_3cf-_3cc+((_3c3.split||!_3c3.border)?1:0); +} +_3c2.east.add(_3c2.west).add(_3c2.expandEast).add(_3c2.expandWest).panel("resize",{height:hh}); +return {resizeC:{height:hh},expand:{top:cc.height()-_3cf},expandP:{top:cc.height()-_3cc,left:0,width:cc.width(),height:_3cc},collapse:{top:cc.height(),width:cc.width()}}; +} +} +} +} +}; +}; +function _3d0(_3d1,_3d2){ +var _3d3=$.data(_3d1,"layout").panels; +var p=_3d3[_3d2]; +var _3d4=p.panel("options"); +if(_3d4.onBeforeExpand.call(p)==false){ +return; +} +var _3d5="expand"+_3d2.substring(0,1).toUpperCase()+_3d2.substring(1); +if(_3d3[_3d5]){ +_3d3[_3d5].panel("close"); +p.panel("panel").stop(true,true); +p.panel("expand",false).panel("open"); +var _3d6=_3d7(); +p.panel("resize",_3d6.collapse); +p.panel("panel").animate(_3d6.expand,function(){ +_39d(_3d1); +$(_3d1).layout("options").onExpand.call(_3d1,_3d2); +}); +} +function _3d7(){ +var cc=$(_3d1); +var _3d8=_3d3.center.panel("options"); +if(_3d2=="east"&&_3d3.expandEast){ +return {collapse:{left:cc.width(),top:_3d8.top,height:_3d8.height},expand:{left:cc.width()-p.panel("panel")._outerWidth()}}; +}else{ +if(_3d2=="west"&&_3d3.expandWest){ +return {collapse:{left:-p.panel("panel")._outerWidth(),top:_3d8.top,height:_3d8.height},expand:{left:0}}; +}else{ +if(_3d2=="north"&&_3d3.expandNorth){ +return {collapse:{top:-p.panel("panel")._outerHeight(),width:cc.width()},expand:{top:0}}; +}else{ +if(_3d2=="south"&&_3d3.expandSouth){ +return {collapse:{top:cc.height(),width:cc.width()},expand:{top:cc.height()-p.panel("panel")._outerHeight()}}; +} +} +} +} +}; +}; +function _3a3(pp){ +if(!pp){ +return false; +} +if(pp.length){ +return pp.panel("panel").is(":visible"); +}else{ +return false; +} +}; +function _3d9(_3da){ +var _3db=$.data(_3da,"layout"); +var opts=_3db.options; +var _3dc=_3db.panels; +var _3dd=opts.onCollapse; +opts.onCollapse=function(){ +}; +_3de("east"); +_3de("west"); +_3de("north"); +_3de("south"); +opts.onCollapse=_3dd; +function _3de(_3df){ +var p=_3dc[_3df]; +if(p.length&&p.panel("options").collapsed){ +_3be(_3da,_3df,0); +} +}; +}; +function _3e0(_3e1,_3e2,_3e3){ +var p=$(_3e1).layout("panel",_3e2); +p.panel("options").split=_3e3; +var cls="layout-split-"+_3e2; +var _3e4=p.panel("panel").removeClass(cls); +if(_3e3){ +_3e4.addClass(cls); +} +_3e4.resizable({disabled:(!_3e3)}); +_39d(_3e1); +}; +$.fn.layout=function(_3e5,_3e6){ +if(typeof _3e5=="string"){ +return $.fn.layout.methods[_3e5](this,_3e6); +} +_3e5=_3e5||{}; +return this.each(function(){ +var _3e7=$.data(this,"layout"); +if(_3e7){ +$.extend(_3e7.options,_3e5); +}else{ +var opts=$.extend({},$.fn.layout.defaults,$.fn.layout.parseOptions(this),_3e5); +$.data(this,"layout",{options:opts,panels:{center:$(),north:$(),south:$(),east:$(),west:$()}}); +init(this); +} +_39d(this); +_3d9(this); +}); +}; +$.fn.layout.methods={options:function(jq){ +return $.data(jq[0],"layout").options; +},resize:function(jq,_3e8){ +return jq.each(function(){ +_39d(this,_3e8); +}); +},panel:function(jq,_3e9){ +return $.data(jq[0],"layout").panels[_3e9]; +},collapse:function(jq,_3ea){ +return jq.each(function(){ +_3be(this,_3ea); +}); +},expand:function(jq,_3eb){ +return jq.each(function(){ +_3d0(this,_3eb); +}); +},add:function(jq,_3ec){ +return jq.each(function(){ +_3ac(this,_3ec); +_39d(this); +if($(this).layout("panel",_3ec.region).panel("options").collapsed){ +_3be(this,_3ec.region,0); +} +}); +},remove:function(jq,_3ed){ +return jq.each(function(){ +_3b9(this,_3ed); +_39d(this); +}); +},split:function(jq,_3ee){ +return jq.each(function(){ +_3e0(this,_3ee,true); +}); +},unsplit:function(jq,_3ef){ +return jq.each(function(){ +_3e0(this,_3ef,false); +}); +}}; +$.fn.layout.parseOptions=function(_3f0){ +return $.extend({},$.parser.parseOptions(_3f0,[{fit:"boolean"}])); +}; +$.fn.layout.defaults={fit:false,onExpand:function(_3f1){ +},onCollapse:function(_3f2){ +},onAdd:function(_3f3){ +},onRemove:function(_3f4){ +}}; +$.fn.layout.parsePanelOptions=function(_3f5){ +var t=$(_3f5); +return $.extend({},$.fn.panel.parseOptions(_3f5),$.parser.parseOptions(_3f5,["region",{split:"boolean",collpasedSize:"number",minWidth:"number",minHeight:"number",maxWidth:"number",maxHeight:"number"}])); +}; +$.fn.layout.paneldefaults=$.extend({},$.fn.panel.defaults,{region:null,split:false,collapsedSize:28,expandMode:"float",hideExpandTool:false,hideCollapsedContent:true,collapsedContent:function(_3f6){ +var p=$(this); +var opts=p.panel("options"); +if(opts.region=="north"||opts.region=="south"){ +return _3f6; +} +var size=opts.collapsedSize-2; +var left=(size-16)/2; +left=size-left; +var cc=[]; +if(opts.iconCls){ +cc.push("
        "); +} +cc.push("
        "); +cc.push(_3f6); +cc.push("
        "); +return cc.join(""); +},minWidth:10,minHeight:10,maxWidth:10000,maxHeight:10000}); +})(jQuery); +(function($){ +$(function(){ +$(document).unbind(".menu").bind("mousedown.menu",function(e){ +var m=$(e.target).closest("div.menu,div.combo-p"); +if(m.length){ +return; +} +$("body>div.menu-top:visible").not(".menu-inline").menu("hide"); +_3f7($("body>div.menu:visible").not(".menu-inline")); +}); +}); +function init(_3f8){ +var opts=$.data(_3f8,"menu").options; +$(_3f8).addClass("menu-top"); +opts.inline?$(_3f8).addClass("menu-inline"):$(_3f8).appendTo("body"); +$(_3f8).bind("_resize",function(e,_3f9){ +if($(this).hasClass("easyui-fluid")||_3f9){ +$(_3f8).menu("resize",_3f8); +} +return false; +}); +var _3fa=_3fb($(_3f8)); +for(var i=0;i<_3fa.length;i++){ +_3fc(_3fa[i]); +} +function _3fb(menu){ +var _3fd=[]; +menu.addClass("menu"); +_3fd.push(menu); +if(!menu.hasClass("menu-content")){ +menu.children("div").each(function(){ +var _3fe=$(this).children("div"); +if(_3fe.length){ +_3fe.appendTo("body"); +this.submenu=_3fe; +var mm=_3fb(_3fe); +_3fd=_3fd.concat(mm); +} +}); +} +return _3fd; +}; +function _3fc(menu){ +var wh=$.parser.parseOptions(menu[0],["width","height"]); +menu[0].originalHeight=wh.height||0; +if(menu.hasClass("menu-content")){ +menu[0].originalWidth=wh.width||menu._outerWidth(); +}else{ +menu[0].originalWidth=wh.width||0; +menu.children("div").each(function(){ +var item=$(this); +var _3ff=$.extend({},$.parser.parseOptions(this,["name","iconCls","href",{separator:"boolean"}]),{disabled:(item.attr("disabled")?true:undefined)}); +if(_3ff.separator){ +item.addClass("menu-sep"); +} +if(!item.hasClass("menu-sep")){ +item[0].itemName=_3ff.name||""; +item[0].itemHref=_3ff.href||""; +var text=item.addClass("menu-item").html(); +item.empty().append($("
        ").html(text)); +if(_3ff.iconCls){ +$("
        ").addClass(_3ff.iconCls).appendTo(item); +} +if(_3ff.disabled){ +_400(_3f8,item[0],true); +} +if(item[0].submenu){ +$("
        ").appendTo(item); +} +_401(_3f8,item); +} +}); +$("
        ").prependTo(menu); +} +_402(_3f8,menu); +if(!menu.hasClass("menu-inline")){ +menu.hide(); +} +_403(_3f8,menu); +}; +}; +function _402(_404,menu){ +var opts=$.data(_404,"menu").options; +var _405=menu.attr("style")||""; +menu.css({display:"block",left:-10000,height:"auto",overflow:"hidden"}); +menu.find(".menu-item").each(function(){ +$(this)._outerHeight(opts.itemHeight); +$(this).find(".menu-text").css({height:(opts.itemHeight-2)+"px",lineHeight:(opts.itemHeight-2)+"px"}); +}); +menu.removeClass("menu-noline").addClass(opts.noline?"menu-noline":""); +var _406=menu[0].originalWidth||"auto"; +if(isNaN(parseInt(_406))){ +_406=0; +menu.find("div.menu-text").each(function(){ +if(_406<$(this)._outerWidth()){ +_406=$(this)._outerWidth(); +} +}); +_406+=40; +} +var _407=menu.outerHeight(); +var _408=menu[0].originalHeight||"auto"; +if(isNaN(parseInt(_408))){ +_408=_407; +if(menu.hasClass("menu-top")&&opts.alignTo){ +var at=$(opts.alignTo); +var h1=at.offset().top-$(document).scrollTop(); +var h2=$(window)._outerHeight()+$(document).scrollTop()-at.offset().top-at._outerHeight(); +_408=Math.min(_408,Math.max(h1,h2)); +}else{ +if(_408>$(window)._outerHeight()){ +_408=$(window).height(); +} +} +} +menu.attr("style",_405); +menu._size({fit:(menu[0]==_404?opts.fit:false),width:_406,minWidth:opts.minWidth,height:_408}); +menu.css("overflow",menu.outerHeight()<_407?"auto":"hidden"); +menu.children("div.menu-line")._outerHeight(_407-2); +}; +function _403(_409,menu){ +if(menu.hasClass("menu-inline")){ +return; +} +var _40a=$.data(_409,"menu"); +menu.unbind(".menu").bind("mouseenter.menu",function(){ +if(_40a.timer){ +clearTimeout(_40a.timer); +_40a.timer=null; +} +}).bind("mouseleave.menu",function(){ +if(_40a.options.hideOnUnhover){ +_40a.timer=setTimeout(function(){ +_40b(_409,$(_409).hasClass("menu-inline")); +},_40a.options.duration); +} +}); +}; +function _401(_40c,item){ +if(!item.hasClass("menu-item")){ +return; +} +item.unbind(".menu"); +item.bind("click.menu",function(){ +if($(this).hasClass("menu-item-disabled")){ +return; +} +if(!this.submenu){ +_40b(_40c,$(_40c).hasClass("menu-inline")); +var href=this.itemHref; +if(href){ +location.href=href; +} +} +$(this).trigger("mouseenter"); +var item=$(_40c).menu("getItem",this); +$.data(_40c,"menu").options.onClick.call(_40c,item); +}).bind("mouseenter.menu",function(e){ +item.siblings().each(function(){ +if(this.submenu){ +_3f7(this.submenu); +} +$(this).removeClass("menu-active"); +}); +item.addClass("menu-active"); +if($(this).hasClass("menu-item-disabled")){ +item.addClass("menu-active-disabled"); +return; +} +var _40d=item[0].submenu; +if(_40d){ +$(_40c).menu("show",{menu:_40d,parent:item}); +} +}).bind("mouseleave.menu",function(e){ +item.removeClass("menu-active menu-active-disabled"); +var _40e=item[0].submenu; +if(_40e){ +if(e.pageX>=parseInt(_40e.css("left"))){ +item.addClass("menu-active"); +}else{ +_3f7(_40e); +} +}else{ +item.removeClass("menu-active"); +} +}); +}; +function _40b(_40f,_410){ +var _411=$.data(_40f,"menu"); +if(_411){ +if($(_40f).is(":visible")){ +_3f7($(_40f)); +if(_410){ +$(_40f).show(); +}else{ +_411.options.onHide.call(_40f); +} +} +} +return false; +}; +function _412(_413,_414){ +_414=_414||{}; +var left,top; +var opts=$.data(_413,"menu").options; +var menu=$(_414.menu||_413); +$(_413).menu("resize",menu[0]); +if(menu.hasClass("menu-top")){ +$.extend(opts,_414); +left=opts.left; +top=opts.top; +if(opts.alignTo){ +var at=$(opts.alignTo); +left=at.offset().left; +top=at.offset().top+at._outerHeight(); +if(opts.align=="right"){ +left+=at.outerWidth()-menu.outerWidth(); +} +} +if(left+menu.outerWidth()>$(window)._outerWidth()+$(document)._scrollLeft()){ +left=$(window)._outerWidth()+$(document).scrollLeft()-menu.outerWidth()-5; +} +if(left<0){ +left=0; +} +top=_415(top,opts.alignTo); +}else{ +var _416=_414.parent; +left=_416.offset().left+_416.outerWidth()-2; +if(left+menu.outerWidth()+5>$(window)._outerWidth()+$(document).scrollLeft()){ +left=_416.offset().left-menu.outerWidth()+2; +} +top=_415(_416.offset().top-3); +} +function _415(top,_417){ +if(top+menu.outerHeight()>$(window)._outerHeight()+$(document).scrollTop()){ +if(_417){ +top=$(_417).offset().top-menu._outerHeight(); +}else{ +top=$(window)._outerHeight()+$(document).scrollTop()-menu.outerHeight(); +} +} +if(top<0){ +top=0; +} +return top; +}; +menu.css(opts.position.call(_413,menu[0],left,top)); +menu.show(0,function(){ +if(!menu[0].shadow){ +menu[0].shadow=$("
        ").insertAfter(menu); +} +menu[0].shadow.css({display:(menu.hasClass("menu-inline")?"none":"block"),zIndex:$.fn.menu.defaults.zIndex++,left:menu.css("left"),top:menu.css("top"),width:menu.outerWidth(),height:menu.outerHeight()}); +menu.css("z-index",$.fn.menu.defaults.zIndex++); +if(menu.hasClass("menu-top")){ +opts.onShow.call(_413); +} +}); +}; +function _3f7(menu){ +if(menu&&menu.length){ +_418(menu); +menu.find("div.menu-item").each(function(){ +if(this.submenu){ +_3f7(this.submenu); +} +$(this).removeClass("menu-active"); +}); +} +function _418(m){ +m.stop(true,true); +if(m[0].shadow){ +m[0].shadow.hide(); +} +m.hide(); +}; +}; +function _419(_41a,text){ +var _41b=null; +var tmp=$("
        "); +function find(menu){ +menu.children("div.menu-item").each(function(){ +var item=$(_41a).menu("getItem",this); +var s=tmp.empty().html(item.text).text(); +if(text==$.trim(s)){ +_41b=item; +}else{ +if(this.submenu&&!_41b){ +find(this.submenu); +} +} +}); +}; +find($(_41a)); +tmp.remove(); +return _41b; +}; +function _400(_41c,_41d,_41e){ +var t=$(_41d); +if(!t.hasClass("menu-item")){ +return; +} +if(_41e){ +t.addClass("menu-item-disabled"); +if(_41d.onclick){ +_41d.onclick1=_41d.onclick; +_41d.onclick=null; +} +}else{ +t.removeClass("menu-item-disabled"); +if(_41d.onclick1){ +_41d.onclick=_41d.onclick1; +_41d.onclick1=null; +} +} +}; +function _41f(_420,_421){ +var opts=$.data(_420,"menu").options; +var menu=$(_420); +if(_421.parent){ +if(!_421.parent.submenu){ +var _422=$("
        ").appendTo("body"); +_422.hide(); +_421.parent.submenu=_422; +$("
        ").appendTo(_421.parent); +} +menu=_421.parent.submenu; +} +if(_421.separator){ +var item=$("
        ").appendTo(menu); +}else{ +var item=$("
        ").appendTo(menu); +$("
        ").html(_421.text).appendTo(item); +} +if(_421.iconCls){ +$("
        ").addClass(_421.iconCls).appendTo(item); +} +if(_421.id){ +item.attr("id",_421.id); +} +if(_421.name){ +item[0].itemName=_421.name; +} +if(_421.href){ +item[0].itemHref=_421.href; +} +if(_421.onclick){ +if(typeof _421.onclick=="string"){ +item.attr("onclick",_421.onclick); +}else{ +item[0].onclick=eval(_421.onclick); +} +} +if(_421.handler){ +item[0].onclick=eval(_421.handler); +} +if(_421.disabled){ +_400(_420,item[0],true); +} +_401(_420,item); +_403(_420,menu); +_402(_420,menu); +}; +function _423(_424,_425){ +function _426(el){ +if(el.submenu){ +el.submenu.children("div.menu-item").each(function(){ +_426(this); +}); +var _427=el.submenu[0].shadow; +if(_427){ +_427.remove(); +} +el.submenu.remove(); +} +$(el).remove(); +}; +var menu=$(_425).parent(); +_426(_425); +_402(_424,menu); +}; +function _428(_429,_42a,_42b){ +var menu=$(_42a).parent(); +if(_42b){ +$(_42a).show(); +}else{ +$(_42a).hide(); +} +_402(_429,menu); +}; +function _42c(_42d){ +$(_42d).children("div.menu-item").each(function(){ +_423(_42d,this); +}); +if(_42d.shadow){ +_42d.shadow.remove(); +} +$(_42d).remove(); +}; +$.fn.menu=function(_42e,_42f){ +if(typeof _42e=="string"){ +return $.fn.menu.methods[_42e](this,_42f); +} +_42e=_42e||{}; +return this.each(function(){ +var _430=$.data(this,"menu"); +if(_430){ +$.extend(_430.options,_42e); +}else{ +_430=$.data(this,"menu",{options:$.extend({},$.fn.menu.defaults,$.fn.menu.parseOptions(this),_42e)}); +init(this); +} +$(this).css({left:_430.options.left,top:_430.options.top}); +}); +}; +$.fn.menu.methods={options:function(jq){ +return $.data(jq[0],"menu").options; +},show:function(jq,pos){ +return jq.each(function(){ +_412(this,pos); +}); +},hide:function(jq){ +return jq.each(function(){ +_40b(this); +}); +},destroy:function(jq){ +return jq.each(function(){ +_42c(this); +}); +},setText:function(jq,_431){ +return jq.each(function(){ +$(_431.target).children("div.menu-text").html(_431.text); +}); +},setIcon:function(jq,_432){ +return jq.each(function(){ +$(_432.target).children("div.menu-icon").remove(); +if(_432.iconCls){ +$("
        ").addClass(_432.iconCls).appendTo(_432.target); +} +}); +},getItem:function(jq,_433){ +var t=$(_433); +var item={target:_433,id:t.attr("id"),text:$.trim(t.children("div.menu-text").html()),disabled:t.hasClass("menu-item-disabled"),name:_433.itemName,href:_433.itemHref,onclick:_433.onclick}; +var icon=t.children("div.menu-icon"); +if(icon.length){ +var cc=[]; +var aa=icon.attr("class").split(" "); +for(var i=0;i").addClass(opts.cls.arrow).appendTo(_43e); +$("").addClass("m-btn-line").appendTo(_43e); +} +$(_43d).menubutton("resize"); +if(opts.menu){ +$(opts.menu).menu({duration:opts.duration}); +var _43f=$(opts.menu).menu("options"); +var _440=_43f.onShow; +var _441=_43f.onHide; +$.extend(_43f,{onShow:function(){ +var _442=$(this).menu("options"); +var btn=$(_442.alignTo); +var opts=btn.menubutton("options"); +btn.addClass((opts.plain==true)?opts.cls.btn2:opts.cls.btn1); +_440.call(this); +},onHide:function(){ +var _443=$(this).menu("options"); +var btn=$(_443.alignTo); +var opts=btn.menubutton("options"); +btn.removeClass((opts.plain==true)?opts.cls.btn2:opts.cls.btn1); +_441.call(this); +}}); +} +}; +function _444(_445){ +var opts=$.data(_445,"menubutton").options; +var btn=$(_445); +var t=btn.find("."+opts.cls.trigger); +if(!t.length){ +t=btn; +} +t.unbind(".menubutton"); +var _446=null; +t.bind("click.menubutton",function(){ +if(!_447()){ +_448(_445); +return false; +} +}).bind("mouseenter.menubutton",function(){ +if(!_447()){ +_446=setTimeout(function(){ +_448(_445); +},opts.duration); +return false; +} +}).bind("mouseleave.menubutton",function(){ +if(_446){ +clearTimeout(_446); +} +$(opts.menu).triggerHandler("mouseleave"); +}); +function _447(){ +return $(_445).linkbutton("options").disabled; +}; +}; +function _448(_449){ +var opts=$(_449).menubutton("options"); +if(opts.disabled||!opts.menu){ +return; +} +$("body>div.menu-top").menu("hide"); +var btn=$(_449); +var mm=$(opts.menu); +if(mm.length){ +mm.menu("options").alignTo=btn; +mm.menu("show",{alignTo:btn,align:opts.menuAlign}); +} +btn.blur(); +}; +$.fn.menubutton=function(_44a,_44b){ +if(typeof _44a=="string"){ +var _44c=$.fn.menubutton.methods[_44a]; +if(_44c){ +return _44c(this,_44b); +}else{ +return this.linkbutton(_44a,_44b); +} +} +_44a=_44a||{}; +return this.each(function(){ +var _44d=$.data(this,"menubutton"); +if(_44d){ +$.extend(_44d.options,_44a); +}else{ +$.data(this,"menubutton",{options:$.extend({},$.fn.menubutton.defaults,$.fn.menubutton.parseOptions(this),_44a)}); +$(this).removeAttr("disabled"); +} +init(this); +_444(this); +}); +}; +$.fn.menubutton.methods={options:function(jq){ +var _44e=jq.linkbutton("options"); +return $.extend($.data(jq[0],"menubutton").options,{toggle:_44e.toggle,selected:_44e.selected,disabled:_44e.disabled}); +},destroy:function(jq){ +return jq.each(function(){ +var opts=$(this).menubutton("options"); +if(opts.menu){ +$(opts.menu).menu("destroy"); +} +$(this).remove(); +}); +}}; +$.fn.menubutton.parseOptions=function(_44f){ +var t=$(_44f); +return $.extend({},$.fn.linkbutton.parseOptions(_44f),$.parser.parseOptions(_44f,["menu",{plain:"boolean",hasDownArrow:"boolean",duration:"number"}])); +}; +$.fn.menubutton.defaults=$.extend({},$.fn.linkbutton.defaults,{plain:true,hasDownArrow:true,menu:null,menuAlign:"left",duration:100,cls:{btn1:"m-btn-active",btn2:"m-btn-plain-active",arrow:"m-btn-downarrow",trigger:"m-btn"}}); +})(jQuery); +(function($){ +function init(_450){ +var opts=$.data(_450,"splitbutton").options; +$(_450).menubutton(opts); +$(_450).addClass("s-btn"); +}; +$.fn.splitbutton=function(_451,_452){ +if(typeof _451=="string"){ +var _453=$.fn.splitbutton.methods[_451]; +if(_453){ +return _453(this,_452); +}else{ +return this.menubutton(_451,_452); +} +} +_451=_451||{}; +return this.each(function(){ +var _454=$.data(this,"splitbutton"); +if(_454){ +$.extend(_454.options,_451); +}else{ +$.data(this,"splitbutton",{options:$.extend({},$.fn.splitbutton.defaults,$.fn.splitbutton.parseOptions(this),_451)}); +$(this).removeAttr("disabled"); +} +init(this); +}); +}; +$.fn.splitbutton.methods={options:function(jq){ +var _455=jq.menubutton("options"); +var _456=$.data(jq[0],"splitbutton").options; +$.extend(_456,{disabled:_455.disabled,toggle:_455.toggle,selected:_455.selected}); +return _456; +}}; +$.fn.splitbutton.parseOptions=function(_457){ +var t=$(_457); +return $.extend({},$.fn.linkbutton.parseOptions(_457),$.parser.parseOptions(_457,["menu",{plain:"boolean",duration:"number"}])); +}; +$.fn.splitbutton.defaults=$.extend({},$.fn.linkbutton.defaults,{plain:true,menu:null,duration:100,cls:{btn1:"m-btn-active s-btn-active",btn2:"m-btn-plain-active s-btn-plain-active",arrow:"m-btn-downarrow",trigger:"m-btn-line"}}); +})(jQuery); +(function($){ +function init(_458){ +var _459=$(""+""+""+""+""+""+""+"").insertAfter(_458); +var t=$(_458); +t.addClass("switchbutton-f").hide(); +var name=t.attr("name"); +if(name){ +t.removeAttr("name").attr("switchbuttonName",name); +_459.find(".switchbutton-value").attr("name",name); +} +_459.bind("_resize",function(e,_45a){ +if($(this).hasClass("easyui-fluid")||_45a){ +_45b(_458); +} +return false; +}); +return _459; +}; +function _45b(_45c,_45d){ +var _45e=$.data(_45c,"switchbutton"); +var opts=_45e.options; +var _45f=_45e.switchbutton; +if(_45d){ +$.extend(opts,_45d); +} +var _460=_45f.is(":visible"); +if(!_460){ +_45f.appendTo("body"); +} +_45f._size(opts); +var w=_45f.width(); +var h=_45f.height(); +var w=_45f.outerWidth(); +var h=_45f.outerHeight(); +var _461=parseInt(opts.handleWidth)||_45f.height(); +var _462=w*2-_461; +_45f.find(".switchbutton-inner").css({width:_462+"px",height:h+"px",lineHeight:h+"px"}); +_45f.find(".switchbutton-handle")._outerWidth(_461)._outerHeight(h).css({marginLeft:-_461/2+"px"}); +_45f.find(".switchbutton-on").css({width:(w-_461/2)+"px",textIndent:(opts.reversed?"":"-")+_461/2+"px"}); +_45f.find(".switchbutton-off").css({width:(w-_461/2)+"px",textIndent:(opts.reversed?"-":"")+_461/2+"px"}); +opts.marginWidth=w-_461; +_463(_45c,opts.checked,false); +if(!_460){ +_45f.insertAfter(_45c); +} +}; +function _464(_465){ +var _466=$.data(_465,"switchbutton"); +var opts=_466.options; +var _467=_466.switchbutton; +var _468=_467.find(".switchbutton-inner"); +var on=_468.find(".switchbutton-on").html(opts.onText); +var off=_468.find(".switchbutton-off").html(opts.offText); +var _469=_468.find(".switchbutton-handle").html(opts.handleText); +if(opts.reversed){ +off.prependTo(_468); +on.insertAfter(_469); +}else{ +on.prependTo(_468); +off.insertAfter(_469); +} +_467.find(".switchbutton-value")._propAttr("checked",opts.checked); +_467.removeClass("switchbutton-disabled").addClass(opts.disabled?"switchbutton-disabled":""); +_467.removeClass("switchbutton-reversed").addClass(opts.reversed?"switchbutton-reversed":""); +_463(_465,opts.checked); +_46a(_465,opts.readonly); +$(_465).switchbutton("setValue",opts.value); +}; +function _463(_46b,_46c,_46d){ +var _46e=$.data(_46b,"switchbutton"); +var opts=_46e.options; +opts.checked=_46c; +var _46f=_46e.switchbutton.find(".switchbutton-inner"); +var _470=_46f.find(".switchbutton-on"); +var _471=opts.reversed?(opts.checked?opts.marginWidth:0):(opts.checked?0:opts.marginWidth); +var dir=_470.css("float").toLowerCase(); +var css={}; +css["margin-"+dir]=-_471+"px"; +_46d?_46f.animate(css,200):_46f.css(css); +var _472=_46f.find(".switchbutton-value"); +var ck=_472.is(":checked"); +$(_46b).add(_472)._propAttr("checked",opts.checked); +if(ck!=opts.checked){ +opts.onChange.call(_46b,opts.checked); +} +}; +function _473(_474,_475){ +var _476=$.data(_474,"switchbutton"); +var opts=_476.options; +var _477=_476.switchbutton; +var _478=_477.find(".switchbutton-value"); +if(_475){ +opts.disabled=true; +$(_474).add(_478).attr("disabled","disabled"); +_477.addClass("switchbutton-disabled"); +}else{ +opts.disabled=false; +$(_474).add(_478).removeAttr("disabled"); +_477.removeClass("switchbutton-disabled"); +} +}; +function _46a(_479,mode){ +var _47a=$.data(_479,"switchbutton"); +var opts=_47a.options; +opts.readonly=mode==undefined?true:mode; +_47a.switchbutton.removeClass("switchbutton-readonly").addClass(opts.readonly?"switchbutton-readonly":""); +}; +function _47b(_47c){ +var _47d=$.data(_47c,"switchbutton"); +var opts=_47d.options; +_47d.switchbutton.unbind(".switchbutton").bind("click.switchbutton",function(){ +if(!opts.disabled&&!opts.readonly){ +_463(_47c,opts.checked?false:true,true); +} +}); +}; +$.fn.switchbutton=function(_47e,_47f){ +if(typeof _47e=="string"){ +return $.fn.switchbutton.methods[_47e](this,_47f); +} +_47e=_47e||{}; +return this.each(function(){ +var _480=$.data(this,"switchbutton"); +if(_480){ +$.extend(_480.options,_47e); +}else{ +_480=$.data(this,"switchbutton",{options:$.extend({},$.fn.switchbutton.defaults,$.fn.switchbutton.parseOptions(this),_47e),switchbutton:init(this)}); +} +_480.options.originalChecked=_480.options.checked; +_464(this); +_45b(this); +_47b(this); +}); +}; +$.fn.switchbutton.methods={options:function(jq){ +var _481=jq.data("switchbutton"); +return $.extend(_481.options,{value:_481.switchbutton.find(".switchbutton-value").val()}); +},resize:function(jq,_482){ +return jq.each(function(){ +_45b(this,_482); +}); +},enable:function(jq){ +return jq.each(function(){ +_473(this,false); +}); +},disable:function(jq){ +return jq.each(function(){ +_473(this,true); +}); +},readonly:function(jq,mode){ +return jq.each(function(){ +_46a(this,mode); +}); +},check:function(jq){ +return jq.each(function(){ +_463(this,true); +}); +},uncheck:function(jq){ +return jq.each(function(){ +_463(this,false); +}); +},clear:function(jq){ +return jq.each(function(){ +_463(this,false); +}); +},reset:function(jq){ +return jq.each(function(){ +var opts=$(this).switchbutton("options"); +_463(this,opts.originalChecked); +}); +},setValue:function(jq,_483){ +return jq.each(function(){ +$(this).val(_483); +$.data(this,"switchbutton").switchbutton.find(".switchbutton-value").val(_483); +}); +}}; +$.fn.switchbutton.parseOptions=function(_484){ +var t=$(_484); +return $.extend({},$.parser.parseOptions(_484,["onText","offText","handleText",{handleWidth:"number",reversed:"boolean"}]),{value:(t.val()||undefined),checked:(t.attr("checked")?true:undefined),disabled:(t.attr("disabled")?true:undefined),readonly:(t.attr("readonly")?true:undefined)}); +}; +$.fn.switchbutton.defaults={handleWidth:"auto",width:60,height:26,checked:false,disabled:false,readonly:false,reversed:false,onText:"ON",offText:"OFF",handleText:"",value:"on",onChange:function(_485){ +}}; +})(jQuery); +(function($){ +function init(_486){ +$(_486).addClass("validatebox-text"); +}; +function _487(_488){ +var _489=$.data(_488,"validatebox"); +_489.validating=false; +if(_489.timer){ +clearTimeout(_489.timer); +} +$(_488).tooltip("destroy"); +$(_488).unbind(); +$(_488).remove(); +}; +function _48a(_48b){ +var opts=$.data(_48b,"validatebox").options; +$(_48b).unbind(".validatebox"); +if(opts.novalidate||opts.disabled){ +return; +} +for(var _48c in opts.events){ +$(_48b).bind(_48c+".validatebox",{target:_48b},opts.events[_48c]); +} +}; +function _48d(e){ +var _48e=e.data.target; +var _48f=$.data(_48e,"validatebox"); +var opts=_48f.options; +if($(_48e).attr("readonly")){ +return; +} +_48f.validating=true; +_48f.value=opts.val(_48e); +(function(){ +if(_48f.validating){ +var _490=opts.val(_48e); +if(_48f.value!=_490){ +_48f.value=_490; +if(_48f.timer){ +clearTimeout(_48f.timer); +} +_48f.timer=setTimeout(function(){ +$(_48e).validatebox("validate"); +},opts.delay); +}else{ +if(_48f.message){ +opts.err(_48e,_48f.message); +} +} +setTimeout(arguments.callee,opts.interval); +} +})(); +}; +function _491(e){ +var _492=e.data.target; +var _493=$.data(_492,"validatebox"); +var opts=_493.options; +_493.validating=false; +if(_493.timer){ +clearTimeout(_493.timer); +_493.timer=undefined; +} +if(opts.validateOnBlur){ +$(_492).validatebox("validate"); +} +opts.err(_492,_493.message,"hide"); +}; +function _494(e){ +var _495=e.data.target; +var _496=$.data(_495,"validatebox"); +_496.options.err(_495,_496.message,"show"); +}; +function _497(e){ +var _498=e.data.target; +var _499=$.data(_498,"validatebox"); +if(!_499.validating){ +_499.options.err(_498,_499.message,"hide"); +} +}; +function _49a(_49b,_49c,_49d){ +var _49e=$.data(_49b,"validatebox"); +var opts=_49e.options; +var t=$(_49b); +if(_49d=="hide"||!_49c){ +t.tooltip("hide"); +}else{ +if(t.is(":focus")||_49d=="show"){ +t.tooltip($.extend({},opts.tipOptions,{content:_49c,position:opts.tipPosition,deltaX:opts.deltaX})).tooltip("show"); +} +} +}; +function _49f(_4a0){ +var _4a1=$.data(_4a0,"validatebox"); +var opts=_4a1.options; +var box=$(_4a0); +opts.onBeforeValidate.call(_4a0); +var _4a2=_4a3(); +_4a2?box.removeClass("validatebox-invalid"):box.addClass("validatebox-invalid"); +opts.err(_4a0,_4a1.message); +opts.onValidate.call(_4a0,_4a2); +return _4a2; +function _4a4(msg){ +_4a1.message=msg; +}; +function _4a5(_4a6,_4a7){ +var _4a8=opts.val(_4a0); +var _4a9=/([a-zA-Z_]+)(.*)/.exec(_4a6); +var rule=opts.rules[_4a9[1]]; +if(rule&&_4a8){ +var _4aa=_4a7||opts.validParams||eval(_4a9[2]); +if(!rule["validator"].call(_4a0,_4a8,_4aa)){ +var _4ab=rule["message"]; +if(_4aa){ +for(var i=0;i<_4aa.length;i++){ +_4ab=_4ab.replace(new RegExp("\\{"+i+"\\}","g"),_4aa[i]); +} +} +_4a4(opts.invalidMessage||_4ab); +return false; +} +} +return true; +}; +function _4a3(){ +_4a4(""); +if(!opts._validateOnCreate){ +setTimeout(function(){ +opts._validateOnCreate=true; +},0); +return true; +} +if(opts.novalidate||opts.disabled){ +return true; +} +if(opts.required){ +if(opts.val(_4a0)==""){ +_4a4(opts.missingMessage); +return false; +} +} +if(opts.validType){ +if($.isArray(opts.validType)){ +for(var i=0;i=_4be[0]&&len<=_4be[1]; +},message:"Please enter a value between {0} and {1}."},remote:{validator:function(_4bf,_4c0){ +var data={}; +data[_4c0[1]]=_4bf; +var _4c1=$.ajax({url:_4c0[0],dataType:"json",data:data,async:false,cache:false,type:"post"}).responseText; +return _4c1=="true"; +},message:"Please fix this field."}},onBeforeValidate:function(){ +},onValidate:function(_4c2){ +}}; +})(jQuery); +(function($){ +function init(_4c3){ +$(_4c3).addClass("textbox-f").hide(); +var span=$(""+""+""+"").insertAfter(_4c3); +var name=$(_4c3).attr("name"); +if(name){ +span.find("input.textbox-value").attr("name",name); +$(_4c3).removeAttr("name").attr("textboxName",name); +} +return span; +}; +function _4c4(_4c5){ +var _4c6=$.data(_4c5,"textbox"); +var opts=_4c6.options; +var tb=_4c6.textbox; +tb.find(".textbox-text").remove(); +if(opts.multiline){ +$("").prependTo(tb); +}else{ +$("").prependTo(tb); +} +tb.find(".textbox-addon").remove(); +var bb=opts.icons?$.extend(true,[],opts.icons):[]; +if(opts.iconCls){ +bb.push({iconCls:opts.iconCls,disabled:true}); +} +if(bb.length){ +var bc=$("").prependTo(tb); +bc.addClass("textbox-addon-"+opts.iconAlign); +for(var i=0;i"); +} +} +tb.find(".textbox-button").remove(); +if(opts.buttonText||opts.buttonIcon){ +var btn=$("").prependTo(tb); +btn.addClass("textbox-button-"+opts.buttonAlign).linkbutton({text:opts.buttonText,iconCls:opts.buttonIcon}); +} +_4c7(_4c5); +_4c8(_4c5,opts.disabled); +_4c9(_4c5,opts.readonly); +}; +function _4ca(_4cb){ +var tb=$.data(_4cb,"textbox").textbox; +tb.find(".textbox-text").validatebox("destroy"); +tb.remove(); +$(_4cb).remove(); +}; +function _4cc(_4cd,_4ce){ +var _4cf=$.data(_4cd,"textbox"); +var opts=_4cf.options; +var tb=_4cf.textbox; +var _4d0=tb.parent(); +if(_4ce){ +opts.width=_4ce; +} +if(isNaN(parseInt(opts.width))){ +var c=$(_4cd).clone(); +c.css("visibility","hidden"); +c.insertAfter(_4cd); +opts.width=c.outerWidth(); +c.remove(); +} +var _4d1=tb.is(":visible"); +if(!_4d1){ +tb.appendTo("body"); +} +var _4d2=tb.find(".textbox-text"); +var btn=tb.find(".textbox-button"); +var _4d3=tb.find(".textbox-addon"); +var _4d4=_4d3.find(".textbox-icon"); +tb._size(opts,_4d0); +btn.linkbutton("resize",{height:tb.height()}); +btn.css({left:(opts.buttonAlign=="left"?0:""),right:(opts.buttonAlign=="right"?0:"")}); +_4d3.css({left:(opts.iconAlign=="left"?(opts.buttonAlign=="left"?btn._outerWidth():0):""),right:(opts.iconAlign=="right"?(opts.buttonAlign=="right"?btn._outerWidth():0):"")}); +_4d4.css({width:opts.iconWidth+"px",height:tb.height()+"px"}); +_4d2.css({paddingLeft:(_4cd.style.paddingLeft||""),paddingRight:(_4cd.style.paddingRight||""),marginLeft:_4d5("left"),marginRight:_4d5("right")}); +if(opts.multiline){ +_4d2.css({paddingTop:(_4cd.style.paddingTop||""),paddingBottom:(_4cd.style.paddingBottom||"")}); +_4d2._outerHeight(tb.height()); +}else{ +_4d2.css({paddingTop:0,paddingBottom:0,height:tb.height()+"px",lineHeight:tb.height()+"px"}); +} +_4d2._outerWidth(tb.width()-_4d4.length*opts.iconWidth-btn._outerWidth()); +if(!_4d1){ +tb.insertAfter(_4cd); +} +opts.onResize.call(_4cd,opts.width,opts.height); +function _4d5(_4d6){ +return (opts.iconAlign==_4d6?_4d3._outerWidth():0)+(opts.buttonAlign==_4d6?btn._outerWidth():0); +}; +}; +function _4c7(_4d7){ +var opts=$(_4d7).textbox("options"); +var _4d8=$(_4d7).textbox("textbox"); +_4d8.validatebox($.extend({},opts,{deltaX:$(_4d7).textbox("getTipX"),onBeforeValidate:function(){ +opts.onBeforeValidate.call(_4d7); +var box=$(this); +if(!box.is(":focus")){ +opts.oldInputValue=box.val(); +box.val(opts.value); +} +},onValidate:function(_4d9){ +var box=$(this); +if(opts.oldInputValue!=undefined){ +box.val(opts.oldInputValue); +opts.oldInputValue=undefined; +} +var tb=box.parent(); +if(_4d9){ +tb.removeClass("textbox-invalid"); +}else{ +tb.addClass("textbox-invalid"); +} +opts.onValidate.call(_4d7,_4d9); +}})); +}; +function _4da(_4db){ +var _4dc=$.data(_4db,"textbox"); +var opts=_4dc.options; +var tb=_4dc.textbox; +var _4dd=tb.find(".textbox-text"); +_4dd.attr("placeholder",opts.prompt); +_4dd.unbind(".textbox"); +if(!opts.disabled&&!opts.readonly){ +_4dd.bind("blur.textbox",function(e){ +if(!tb.hasClass("textbox-focused")){ +return; +} +opts.value=$(this).val(); +if(opts.value==""){ +$(this).val(opts.prompt).addClass("textbox-prompt"); +}else{ +$(this).removeClass("textbox-prompt"); +} +tb.removeClass("textbox-focused"); +}).bind("focus.textbox",function(e){ +if(tb.hasClass("textbox-focused")){ +return; +} +if($(this).val()!=opts.value){ +$(this).val(opts.value); +} +$(this).removeClass("textbox-prompt"); +tb.addClass("textbox-focused"); +}); +for(var _4de in opts.inputEvents){ +_4dd.bind(_4de+".textbox",{target:_4db},opts.inputEvents[_4de]); +} +} +var _4df=tb.find(".textbox-addon"); +_4df.unbind().bind("click",{target:_4db},function(e){ +var icon=$(e.target).closest("a.textbox-icon:not(.textbox-icon-disabled)"); +if(icon.length){ +var _4e0=parseInt(icon.attr("icon-index")); +var conf=opts.icons[_4e0]; +if(conf&&conf.handler){ +conf.handler.call(icon[0],e); +opts.onClickIcon.call(_4db,_4e0); +} +} +}); +_4df.find(".textbox-icon").each(function(_4e1){ +var conf=opts.icons[_4e1]; +var icon=$(this); +if(!conf||conf.disabled||opts.disabled||opts.readonly){ +icon.addClass("textbox-icon-disabled"); +}else{ +icon.removeClass("textbox-icon-disabled"); +} +}); +var btn=tb.find(".textbox-button"); +btn.unbind(".textbox").bind("click.textbox",function(){ +if(!btn.linkbutton("options").disabled){ +opts.onClickButton.call(_4db); +} +}); +btn.linkbutton((opts.disabled||opts.readonly)?"disable":"enable"); +tb.unbind(".textbox").bind("_resize.textbox",function(e,_4e2){ +if($(this).hasClass("easyui-fluid")||_4e2){ +_4cc(_4db); +} +return false; +}); +}; +function _4c8(_4e3,_4e4){ +var _4e5=$.data(_4e3,"textbox"); +var opts=_4e5.options; +var tb=_4e5.textbox; +var _4e6=tb.find(".textbox-text"); +var ss=$(_4e3).add(tb.find(".textbox-value")); +opts.disabled=_4e4; +if(opts.disabled){ +_4e6.validatebox("disable"); +tb.addClass("textbox-disabled"); +ss.attr("disabled","disabled"); +}else{ +_4e6.validatebox("enable"); +tb.removeClass("textbox-disabled"); +ss.removeAttr("disabled"); +} +}; +function _4c9(_4e7,mode){ +var _4e8=$.data(_4e7,"textbox"); +var opts=_4e8.options; +var tb=_4e8.textbox; +var _4e9=tb.find(".textbox-text"); +_4e9.validatebox("readonly",mode); +opts.readonly=_4e9.validatebox("options").readonly; +tb.removeClass("textbox-readonly").addClass(opts.readonly?"textbox-readonly":""); +}; +$.fn.textbox=function(_4ea,_4eb){ +if(typeof _4ea=="string"){ +var _4ec=$.fn.textbox.methods[_4ea]; +if(_4ec){ +return _4ec(this,_4eb); +}else{ +return this.each(function(){ +var _4ed=$(this).textbox("textbox"); +_4ed.validatebox(_4ea,_4eb); +}); +} +} +_4ea=_4ea||{}; +return this.each(function(){ +var _4ee=$.data(this,"textbox"); +if(_4ee){ +$.extend(_4ee.options,_4ea); +if(_4ea.value!=undefined){ +_4ee.options.originalValue=_4ea.value; +} +}else{ +_4ee=$.data(this,"textbox",{options:$.extend({},$.fn.textbox.defaults,$.fn.textbox.parseOptions(this),_4ea),textbox:init(this)}); +_4ee.options.originalValue=_4ee.options.value; +} +_4c4(this); +_4da(this); +_4cc(this); +$(this).textbox("initValue",_4ee.options.value); +}); +}; +$.fn.textbox.methods={options:function(jq){ +return $.data(jq[0],"textbox").options; +},cloneFrom:function(jq,from){ +return jq.each(function(){ +var t=$(this); +if(t.data("textbox")){ +return; +} +if(!$(from).data("textbox")){ +$(from).textbox(); +} +var name=t.attr("name")||""; +t.addClass("textbox-f").hide(); +t.removeAttr("name").attr("textboxName",name); +var span=$(from).next().clone().insertAfter(t); +span.find("input.textbox-value").attr("name",name); +$.data(this,"textbox",{options:$.extend(true,{},$(from).textbox("options")),textbox:span}); +var _4ef=$(from).textbox("button"); +if(_4ef.length){ +t.textbox("button").linkbutton($.extend(true,{},_4ef.linkbutton("options"))); +} +_4da(this); +_4c7(this); +}); +},textbox:function(jq){ +return $.data(jq[0],"textbox").textbox.find(".textbox-text"); +},button:function(jq){ +return $.data(jq[0],"textbox").textbox.find(".textbox-button"); +},destroy:function(jq){ +return jq.each(function(){ +_4ca(this); +}); +},resize:function(jq,_4f0){ +return jq.each(function(){ +_4cc(this,_4f0); +}); +},disable:function(jq){ +return jq.each(function(){ +_4c8(this,true); +_4da(this); +}); +},enable:function(jq){ +return jq.each(function(){ +_4c8(this,false); +_4da(this); +}); +},readonly:function(jq,mode){ +return jq.each(function(){ +_4c9(this,mode); +_4da(this); +}); +},isValid:function(jq){ +return jq.textbox("textbox").validatebox("isValid"); +},clear:function(jq){ +return jq.each(function(){ +$(this).textbox("setValue",""); +}); +},setText:function(jq,_4f1){ +return jq.each(function(){ +var opts=$(this).textbox("options"); +var _4f2=$(this).textbox("textbox"); +_4f1=_4f1==undefined?"":String(_4f1); +if($(this).textbox("getText")!=_4f1){ +_4f2.val(_4f1); +} +opts.value=_4f1; +if(!_4f2.is(":focus")){ +if(_4f1){ +_4f2.removeClass("textbox-prompt"); +}else{ +_4f2.val(opts.prompt).addClass("textbox-prompt"); +} +} +$(this).textbox("validate"); +}); +},initValue:function(jq,_4f3){ +return jq.each(function(){ +var _4f4=$.data(this,"textbox"); +_4f4.options.value=""; +$(this).textbox("setText",_4f3); +_4f4.textbox.find(".textbox-value").val(_4f3); +$(this).val(_4f3); +}); +},setValue:function(jq,_4f5){ +return jq.each(function(){ +var opts=$.data(this,"textbox").options; +var _4f6=$(this).textbox("getValue"); +$(this).textbox("initValue",_4f5); +if(_4f6!=_4f5){ +opts.onChange.call(this,_4f5,_4f6); +$(this).closest("form").trigger("_change",[this]); +} +}); +},getText:function(jq){ +var _4f7=jq.textbox("textbox"); +if(_4f7.is(":focus")){ +return _4f7.val(); +}else{ +return jq.textbox("options").value; +} +},getValue:function(jq){ +return jq.data("textbox").textbox.find(".textbox-value").val(); +},reset:function(jq){ +return jq.each(function(){ +var opts=$(this).textbox("options"); +$(this).textbox("setValue",opts.originalValue); +}); +},getIcon:function(jq,_4f8){ +return jq.data("textbox").textbox.find(".textbox-icon:eq("+_4f8+")"); +},getTipX:function(jq){ +var _4f9=jq.data("textbox"); +var opts=_4f9.options; +var tb=_4f9.textbox; +var _4fa=tb.find(".textbox-text"); +var _4fb=tb.find(".textbox-addon")._outerWidth(); +var _4fc=tb.find(".textbox-button")._outerWidth(); +if(opts.tipPosition=="right"){ +return (opts.iconAlign=="right"?_4fb:0)+(opts.buttonAlign=="right"?_4fc:0)+1; +}else{ +if(opts.tipPosition=="left"){ +return (opts.iconAlign=="left"?-_4fb:0)+(opts.buttonAlign=="left"?-_4fc:0)-1; +}else{ +return _4fb/2*(opts.iconAlign=="right"?1:-1); +} +} +}}; +$.fn.textbox.parseOptions=function(_4fd){ +var t=$(_4fd); +return $.extend({},$.fn.validatebox.parseOptions(_4fd),$.parser.parseOptions(_4fd,["prompt","iconCls","iconAlign","buttonText","buttonIcon","buttonAlign",{multiline:"boolean",iconWidth:"number"}]),{value:(t.val()||undefined),type:(t.attr("type")?t.attr("type"):undefined)}); +}; +$.fn.textbox.defaults=$.extend({},$.fn.validatebox.defaults,{width:"auto",height:22,prompt:"",value:"",type:"text",multiline:false,icons:[],iconCls:null,iconAlign:"right",iconWidth:18,buttonText:"",buttonIcon:null,buttonAlign:"right",inputEvents:{blur:function(e){ +var t=$(e.data.target); +var opts=t.textbox("options"); +t.textbox("setValue",opts.value); +},keydown:function(e){ +if(e.keyCode==13){ +var t=$(e.data.target); +t.textbox("setValue",t.textbox("getText")); +} +}},onChange:function(_4fe,_4ff){ +},onResize:function(_500,_501){ +},onClickButton:function(){ +},onClickIcon:function(_502){ +}}); +})(jQuery); +(function($){ +var _503=0; +function _504(_505){ +var _506=$.data(_505,"filebox"); +var opts=_506.options; +opts.fileboxId="filebox_file_id_"+(++_503); +$(_505).addClass("filebox-f").textbox(opts); +$(_505).textbox("textbox").attr("readonly","readonly"); +_506.filebox=$(_505).next().addClass("filebox"); +var file=_507(_505); +var btn=$(_505).filebox("button"); +if(btn.length){ +$("").appendTo(btn); +if(btn.linkbutton("options").disabled){ +file.attr("disabled","disabled"); +}else{ +file.removeAttr("disabled"); +} +} +}; +function _507(_508){ +var _509=$.data(_508,"filebox"); +var opts=_509.options; +_509.filebox.find(".textbox-value").remove(); +opts.oldValue=""; +var file=$("").appendTo(_509.filebox); +file.attr("id",opts.fileboxId).attr("name",$(_508).attr("textboxName")||""); +file.attr("accept",opts.accept); +if(opts.multiple){ +file.attr("multiple","multiple"); +} +file.change(function(){ +var _50a=this.value; +if(this.files){ +_50a=$.map(this.files,function(file){ +return file.name; +}).join(opts.separator); +} +$(_508).filebox("setText",_50a); +opts.onChange.call(_508,_50a,opts.oldValue); +opts.oldValue=_50a; +}); +return file; +}; +$.fn.filebox=function(_50b,_50c){ +if(typeof _50b=="string"){ +var _50d=$.fn.filebox.methods[_50b]; +if(_50d){ +return _50d(this,_50c); +}else{ +return this.textbox(_50b,_50c); +} +} +_50b=_50b||{}; +return this.each(function(){ +var _50e=$.data(this,"filebox"); +if(_50e){ +$.extend(_50e.options,_50b); +}else{ +$.data(this,"filebox",{options:$.extend({},$.fn.filebox.defaults,$.fn.filebox.parseOptions(this),_50b)}); +} +_504(this); +}); +}; +$.fn.filebox.methods={options:function(jq){ +var opts=jq.textbox("options"); +return $.extend($.data(jq[0],"filebox").options,{width:opts.width,value:opts.value,originalValue:opts.originalValue,disabled:opts.disabled,readonly:opts.readonly}); +},clear:function(jq){ +return jq.each(function(){ +$(this).textbox("clear"); +_507(this); +}); +},reset:function(jq){ +return jq.each(function(){ +$(this).filebox("clear"); +}); +}}; +$.fn.filebox.parseOptions=function(_50f){ +var t=$(_50f); +return $.extend({},$.fn.textbox.parseOptions(_50f),$.parser.parseOptions(_50f,["accept","separator"]),{multiple:(t.attr("multiple")?true:undefined)}); +}; +$.fn.filebox.defaults=$.extend({},$.fn.textbox.defaults,{buttonIcon:null,buttonText:"Choose File",buttonAlign:"right",inputEvents:{},accept:"",separator:",",multiple:false}); +})(jQuery); +(function($){ +function _510(_511){ +var _512=$.data(_511,"searchbox"); +var opts=_512.options; +var _513=$.extend(true,[],opts.icons); +_513.push({iconCls:"searchbox-button",handler:function(e){ +var t=$(e.data.target); +var opts=t.searchbox("options"); +opts.searcher.call(e.data.target,t.searchbox("getValue"),t.searchbox("getName")); +}}); +_514(); +var _515=_516(); +$(_511).addClass("searchbox-f").textbox($.extend({},opts,{icons:_513,buttonText:(_515?_515.text:"")})); +$(_511).attr("searchboxName",$(_511).attr("textboxName")); +_512.searchbox=$(_511).next(); +_512.searchbox.addClass("searchbox"); +_517(_515); +function _514(){ +if(opts.menu){ +_512.menu=$(opts.menu).menu(); +var _518=_512.menu.menu("options"); +var _519=_518.onClick; +_518.onClick=function(item){ +_517(item); +_519.call(this,item); +}; +}else{ +if(_512.menu){ +_512.menu.menu("destroy"); +} +_512.menu=null; +} +}; +function _516(){ +if(_512.menu){ +var item=_512.menu.children("div.menu-item:first"); +_512.menu.children("div.menu-item").each(function(){ +var _51a=$.extend({},$.parser.parseOptions(this),{selected:($(this).attr("selected")?true:undefined)}); +if(_51a.selected){ +item=$(this); +return false; +} +}); +return _512.menu.menu("getItem",item[0]); +}else{ +return null; +} +}; +function _517(item){ +if(!item){ +return; +} +$(_511).textbox("button").menubutton({text:item.text,iconCls:(item.iconCls||null),menu:_512.menu,menuAlign:opts.buttonAlign,plain:false}); +_512.searchbox.find("input.textbox-value").attr("name",item.name||item.text); +$(_511).searchbox("resize"); +}; +}; +$.fn.searchbox=function(_51b,_51c){ +if(typeof _51b=="string"){ +var _51d=$.fn.searchbox.methods[_51b]; +if(_51d){ +return _51d(this,_51c); +}else{ +return this.textbox(_51b,_51c); +} +} +_51b=_51b||{}; +return this.each(function(){ +var _51e=$.data(this,"searchbox"); +if(_51e){ +$.extend(_51e.options,_51b); +}else{ +$.data(this,"searchbox",{options:$.extend({},$.fn.searchbox.defaults,$.fn.searchbox.parseOptions(this),_51b)}); +} +_510(this); +}); +}; +$.fn.searchbox.methods={options:function(jq){ +var opts=jq.textbox("options"); +return $.extend($.data(jq[0],"searchbox").options,{width:opts.width,value:opts.value,originalValue:opts.originalValue,disabled:opts.disabled,readonly:opts.readonly}); +},menu:function(jq){ +return $.data(jq[0],"searchbox").menu; +},getName:function(jq){ +return $.data(jq[0],"searchbox").searchbox.find("input.textbox-value").attr("name"); +},selectName:function(jq,name){ +return jq.each(function(){ +var menu=$.data(this,"searchbox").menu; +if(menu){ +menu.children("div.menu-item").each(function(){ +var item=menu.menu("getItem",this); +if(item.name==name){ +$(this).triggerHandler("click"); +return false; +} +}); +} +}); +},destroy:function(jq){ +return jq.each(function(){ +var menu=$(this).searchbox("menu"); +if(menu){ +menu.menu("destroy"); +} +$(this).textbox("destroy"); +}); +}}; +$.fn.searchbox.parseOptions=function(_51f){ +var t=$(_51f); +return $.extend({},$.fn.textbox.parseOptions(_51f),$.parser.parseOptions(_51f,["menu"]),{searcher:(t.attr("searcher")?eval(t.attr("searcher")):undefined)}); +}; +$.fn.searchbox.defaults=$.extend({},$.fn.textbox.defaults,{inputEvents:$.extend({},$.fn.textbox.defaults.inputEvents,{keydown:function(e){ +if(e.keyCode==13){ +e.preventDefault(); +var t=$(e.data.target); +var opts=t.searchbox("options"); +t.searchbox("setValue",$(this).val()); +opts.searcher.call(e.data.target,t.searchbox("getValue"),t.searchbox("getName")); +return false; +} +}}),buttonAlign:"left",menu:null,searcher:function(_520,name){ +}}); +})(jQuery); +(function($){ +function _521(_522,_523){ +var opts=$.data(_522,"form").options; +$.extend(opts,_523||{}); +var _524=$.extend({},opts.queryParams); +if(opts.onSubmit.call(_522,_524)==false){ +return; +} +var _525=$(_522).find(".textbox-text:focus"); +_525.triggerHandler("blur"); +_525.focus(); +if(opts.iframe){ +_526(_522,_524); +}else{ +if(window.FormData!==undefined){ +_527(_522,_524); +}else{ +_526(_522,_524); +} +} +}; +function _526(_528,_529){ +var opts=$.data(_528,"form").options; +var _52a="easyui_frame_"+(new Date().getTime()); +var _52b=$("").appendTo("body"); +_52b.attr("src",window.ActiveXObject?"javascript:false":"about:blank"); +_52b.css({position:"absolute",top:-1000,left:-1000}); +_52b.bind("load",cb); +_52c(_529); +function _52c(_52d){ +var form=$(_528); +if(opts.url){ +form.attr("action",opts.url); +} +var t=form.attr("target"),a=form.attr("action"); +form.attr("target",_52a); +var _52e=$(); +try{ +for(var n in _52d){ +var _52f=$("").val(_52d[n]).appendTo(form); +_52e=_52e.add(_52f); +} +_530(); +form[0].submit(); +} +finally{ +form.attr("action",a); +t?form.attr("target",t):form.removeAttr("target"); +_52e.remove(); +} +}; +function _530(){ +var f=$("#"+_52a); +if(!f.length){ +return; +} +try{ +var s=f.contents()[0].readyState; +if(s&&s.toLowerCase()=="uninitialized"){ +setTimeout(_530,100); +} +} +catch(e){ +cb(); +} +}; +var _531=10; +function cb(){ +var f=$("#"+_52a); +if(!f.length){ +return; +} +f.unbind(); +var data=""; +try{ +var body=f.contents().find("body"); +data=body.html(); +if(data==""){ +if(--_531){ +setTimeout(cb,100); +return; +} +} +var ta=body.find(">textarea"); +if(ta.length){ +data=ta.val(); +}else{ +var pre=body.find(">pre"); +if(pre.length){ +data=pre.html(); +} +} +} +catch(e){ +} +opts.success.call(_528,data); +setTimeout(function(){ +f.unbind(); +f.remove(); +},100); +}; +}; +function _527(_532,_533){ +var opts=$.data(_532,"form").options; +var _534=new FormData($(_532)[0]); +for(var name in _533){ +_534.append(name,_533[name]); +} +$.ajax({url:opts.url,type:"post",xhr:function(){ +var xhr=$.ajaxSettings.xhr(); +if(xhr.upload){ +xhr.upload.addEventListener("progress",function(e){ +if(e.lengthComputable){ +var _535=e.total; +var _536=e.loaded||e.position; +var _537=Math.ceil(_536*100/_535); +opts.onProgress.call(_532,_537); +} +},false); +} +return xhr; +},data:_534,dataType:"html",cache:false,contentType:false,processData:false,complete:function(res){ +opts.success.call(_532,res.responseText); +}}); +}; +function load(_538,data){ +var opts=$.data(_538,"form").options; +if(typeof data=="string"){ +var _539={}; +if(opts.onBeforeLoad.call(_538,_539)==false){ +return; +} +$.ajax({url:data,data:_539,dataType:"json",success:function(data){ +_53a(data); +},error:function(){ +opts.onLoadError.apply(_538,arguments); +}}); +}else{ +_53a(data); +} +function _53a(data){ +var form=$(_538); +for(var name in data){ +var val=data[name]; +if(!_53b(name,val)){ +if(!_53c(name,val)){ +form.find("input[name=\""+name+"\"]").val(val); +form.find("textarea[name=\""+name+"\"]").val(val); +form.find("select[name=\""+name+"\"]").val(val); +} +} +} +opts.onLoadSuccess.call(_538,data); +form.form("validate"); +}; +function _53b(name,val){ +var cc=$(_538).find("[switchbuttonName=\""+name+"\"]"); +if(cc.length){ +cc.switchbutton("uncheck"); +cc.each(function(){ +if(_53d($(this).switchbutton("options").value,val)){ +$(this).switchbutton("check"); +} +}); +return true; +} +cc=$(_538).find("input[name=\""+name+"\"][type=radio], input[name=\""+name+"\"][type=checkbox]"); +if(cc.length){ +cc._propAttr("checked",false); +cc.each(function(){ +if(_53d($(this).val(),val)){ +$(this)._propAttr("checked",true); +} +}); +return true; +} +return false; +}; +function _53d(v,val){ +if(v==String(val)||$.inArray(v,$.isArray(val)?val:[val])>=0){ +return true; +}else{ +return false; +} +}; +function _53c(name,val){ +var _53e=$(_538).find("[textboxName=\""+name+"\"],[sliderName=\""+name+"\"]"); +if(_53e.length){ +for(var i=0;i=0;i--){ +var type=opts.fieldTypes[i]; +var _543=form.find("."+type+"-f"); +if(_543.length&&_543[type]){ +_543[type]("clear"); +} +} +form.form("validate"); +}; +function _544(_545){ +_545.reset(); +var form=$(_545); +var opts=$.data(_545,"form").options; +for(var i=opts.fieldTypes.length-1;i>=0;i--){ +var type=opts.fieldTypes[i]; +var _546=form.find("."+type+"-f"); +if(_546.length&&_546[type]){ +_546[type]("reset"); +} +} +form.form("validate"); +}; +function _547(_548){ +var _549=$.data(_548,"form").options; +$(_548).unbind(".form"); +if(_549.ajax){ +$(_548).bind("submit.form",function(){ +setTimeout(function(){ +_521(_548,_549); +},0); +return false; +}); +} +$(_548).bind("_change.form",function(e,t){ +_549.onChange.call(this,t); +}).bind("change.form",function(e){ +var t=e.target; +if(!$(t).hasClass("textbox-text")){ +_549.onChange.call(this,t); +} +}); +_54a(_548,_549.novalidate); +}; +function _54b(_54c,_54d){ +_54d=_54d||{}; +var _54e=$.data(_54c,"form"); +if(_54e){ +$.extend(_54e.options,_54d); +}else{ +$.data(_54c,"form",{options:$.extend({},$.fn.form.defaults,$.fn.form.parseOptions(_54c),_54d)}); +} +}; +function _54f(_550){ +if($.fn.validatebox){ +var t=$(_550); +t.find(".validatebox-text:not(:disabled)").validatebox("validate"); +var _551=t.find(".validatebox-invalid"); +_551.filter(":not(:disabled):first").focus(); +return _551.length==0; +} +return true; +}; +function _54a(_552,_553){ +var opts=$.data(_552,"form").options; +opts.novalidate=_553; +$(_552).find(".validatebox-text:not(:disabled)").validatebox(_553?"disableValidation":"enableValidation"); +}; +$.fn.form=function(_554,_555){ +if(typeof _554=="string"){ +this.each(function(){ +_54b(this); +}); +return $.fn.form.methods[_554](this,_555); +} +return this.each(function(){ +_54b(this,_554); +_547(this); +}); +}; +$.fn.form.methods={options:function(jq){ +return $.data(jq[0],"form").options; +},submit:function(jq,_556){ +return jq.each(function(){ +_521(this,_556); +}); +},load:function(jq,data){ +return jq.each(function(){ +load(this,data); +}); +},clear:function(jq){ +return jq.each(function(){ +_540(this); +}); +},reset:function(jq){ +return jq.each(function(){ +_544(this); +}); +},validate:function(jq){ +return _54f(jq[0]); +},disableValidation:function(jq){ +return jq.each(function(){ +_54a(this,true); +}); +},enableValidation:function(jq){ +return jq.each(function(){ +_54a(this,false); +}); +},resetValidation:function(jq){ +return jq.each(function(){ +$(this).find(".validatebox-text:not(:disabled)").validatebox("resetValidation"); +}); +}}; +$.fn.form.parseOptions=function(_557){ +var t=$(_557); +return $.extend({},$.parser.parseOptions(_557,[{ajax:"boolean"}]),{url:(t.attr("action")?t.attr("action"):undefined)}); +}; +$.fn.form.defaults={fieldTypes:["combobox","combotree","combogrid","datetimebox","datebox","combo","datetimespinner","timespinner","numberspinner","spinner","slider","searchbox","numberbox","textbox","switchbutton"],novalidate:false,ajax:true,iframe:true,url:null,queryParams:{},onSubmit:function(_558){ +return $(this).form("validate"); +},onProgress:function(_559){ +},success:function(data){ +},onBeforeLoad:function(_55a){ +},onLoadSuccess:function(data){ +},onLoadError:function(){ +},onChange:function(_55b){ +}}; +})(jQuery); +(function($){ +function _55c(_55d){ +var _55e=$.data(_55d,"numberbox"); +var opts=_55e.options; +$(_55d).addClass("numberbox-f").textbox(opts); +$(_55d).textbox("textbox").css({imeMode:"disabled"}); +$(_55d).attr("numberboxName",$(_55d).attr("textboxName")); +_55e.numberbox=$(_55d).next(); +_55e.numberbox.addClass("numberbox"); +var _55f=opts.parser.call(_55d,opts.value); +var _560=opts.formatter.call(_55d,_55f); +$(_55d).numberbox("initValue",_55f).numberbox("setText",_560); +}; +function _561(_562,_563){ +var _564=$.data(_562,"numberbox"); +var opts=_564.options; +var _563=opts.parser.call(_562,_563); +var text=opts.formatter.call(_562,_563); +opts.value=_563; +$(_562).textbox("setText",text).textbox("setValue",_563); +text=opts.formatter.call(_562,$(_562).textbox("getValue")); +$(_562).textbox("setText",text); +}; +$.fn.numberbox=function(_565,_566){ +if(typeof _565=="string"){ +var _567=$.fn.numberbox.methods[_565]; +if(_567){ +return _567(this,_566); +}else{ +return this.textbox(_565,_566); +} +} +_565=_565||{}; +return this.each(function(){ +var _568=$.data(this,"numberbox"); +if(_568){ +$.extend(_568.options,_565); +}else{ +_568=$.data(this,"numberbox",{options:$.extend({},$.fn.numberbox.defaults,$.fn.numberbox.parseOptions(this),_565)}); +} +_55c(this); +}); +}; +$.fn.numberbox.methods={options:function(jq){ +var opts=jq.data("textbox")?jq.textbox("options"):{}; +return $.extend($.data(jq[0],"numberbox").options,{width:opts.width,originalValue:opts.originalValue,disabled:opts.disabled,readonly:opts.readonly}); +},fix:function(jq){ +return jq.each(function(){ +$(this).numberbox("setValue",$(this).numberbox("getText")); +}); +},setValue:function(jq,_569){ +return jq.each(function(){ +_561(this,_569); +}); +},clear:function(jq){ +return jq.each(function(){ +$(this).textbox("clear"); +$(this).numberbox("options").value=""; +}); +},reset:function(jq){ +return jq.each(function(){ +$(this).textbox("reset"); +$(this).numberbox("setValue",$(this).numberbox("getValue")); +}); +}}; +$.fn.numberbox.parseOptions=function(_56a){ +var t=$(_56a); +return $.extend({},$.fn.textbox.parseOptions(_56a),$.parser.parseOptions(_56a,["decimalSeparator","groupSeparator","suffix",{min:"number",max:"number",precision:"number"}]),{prefix:(t.attr("prefix")?t.attr("prefix"):undefined)}); +}; +$.fn.numberbox.defaults=$.extend({},$.fn.textbox.defaults,{inputEvents:{keypress:function(e){ +var _56b=e.data.target; +var opts=$(_56b).numberbox("options"); +return opts.filter.call(_56b,e); +},blur:function(e){ +var _56c=e.data.target; +$(_56c).numberbox("setValue",$(_56c).numberbox("getText")); +},keydown:function(e){ +if(e.keyCode==13){ +var _56d=e.data.target; +$(_56d).numberbox("setValue",$(_56d).numberbox("getText")); +} +}},min:null,max:null,precision:0,decimalSeparator:".",groupSeparator:"",prefix:"",suffix:"",filter:function(e){ +var opts=$(this).numberbox("options"); +var s=$(this).numberbox("getText"); +if(e.which==13){ +return true; +} +if(e.which==45){ +return (s.indexOf("-")==-1?true:false); +} +var c=String.fromCharCode(e.which); +if(c==opts.decimalSeparator){ +return (s.indexOf(c)==-1?true:false); +}else{ +if(c==opts.groupSeparator){ +return true; +}else{ +if((e.which>=48&&e.which<=57&&e.ctrlKey==false&&e.shiftKey==false)||e.which==0||e.which==8){ +return true; +}else{ +if(e.ctrlKey==true&&(e.which==99||e.which==118)){ +return true; +}else{ +return false; +} +} +} +} +},formatter:function(_56e){ +if(!_56e){ +return _56e; +} +_56e=_56e+""; +var opts=$(this).numberbox("options"); +var s1=_56e,s2=""; +var dpos=_56e.indexOf("."); +if(dpos>=0){ +s1=_56e.substring(0,dpos); +s2=_56e.substring(dpos+1,_56e.length); +} +if(opts.groupSeparator){ +var p=/(\d+)(\d{3})/; +while(p.test(s1)){ +s1=s1.replace(p,"$1"+opts.groupSeparator+"$2"); +} +} +if(s2){ +return opts.prefix+s1+opts.decimalSeparator+s2+opts.suffix; +}else{ +return opts.prefix+s1+opts.suffix; +} +},parser:function(s){ +s=s+""; +var opts=$(this).numberbox("options"); +if(parseFloat(s)!=s){ +if(opts.prefix){ +s=$.trim(s.replace(new RegExp("\\"+$.trim(opts.prefix),"g"),"")); +} +if(opts.suffix){ +s=$.trim(s.replace(new RegExp("\\"+$.trim(opts.suffix),"g"),"")); +} +if(opts.groupSeparator){ +s=$.trim(s.replace(new RegExp("\\"+opts.groupSeparator,"g"),"")); +} +if(opts.decimalSeparator){ +s=$.trim(s.replace(new RegExp("\\"+opts.decimalSeparator,"g"),".")); +} +s=s.replace(/\s/g,""); +} +var val=parseFloat(s).toFixed(opts.precision); +if(isNaN(val)){ +val=""; +}else{ +if(typeof (opts.min)=="number"&&valopts.max){ +val=opts.max.toFixed(opts.precision); +} +} +} +return val; +}}); +})(jQuery); +(function($){ +function _56f(_570,_571){ +var opts=$.data(_570,"calendar").options; +var t=$(_570); +if(_571){ +$.extend(opts,{width:_571.width,height:_571.height}); +} +t._size(opts,t.parent()); +t.find(".calendar-body")._outerHeight(t.height()-t.find(".calendar-header")._outerHeight()); +if(t.find(".calendar-menu").is(":visible")){ +_572(_570); +} +}; +function init(_573){ +$(_573).addClass("calendar").html("
        "+"
        "+"
        "+"
        "+"
        "+"
        "+""+"
        "+"
        "+"
        "+"
        "+"
        "+""+""+""+"
        "+"
        "+"
        "+"
        "+"
        "); +$(_573).bind("_resize",function(e,_574){ +if($(this).hasClass("easyui-fluid")||_574){ +_56f(_573); +} +return false; +}); +}; +function _575(_576){ +var opts=$.data(_576,"calendar").options; +var menu=$(_576).find(".calendar-menu"); +menu.find(".calendar-menu-year").unbind(".calendar").bind("keypress.calendar",function(e){ +if(e.keyCode==13){ +_577(true); +} +}); +$(_576).unbind(".calendar").bind("mouseover.calendar",function(e){ +var t=_578(e.target); +if(t.hasClass("calendar-nav")||t.hasClass("calendar-text")||(t.hasClass("calendar-day")&&!t.hasClass("calendar-disabled"))){ +t.addClass("calendar-nav-hover"); +} +}).bind("mouseout.calendar",function(e){ +var t=_578(e.target); +if(t.hasClass("calendar-nav")||t.hasClass("calendar-text")||(t.hasClass("calendar-day")&&!t.hasClass("calendar-disabled"))){ +t.removeClass("calendar-nav-hover"); +} +}).bind("click.calendar",function(e){ +var t=_578(e.target); +if(t.hasClass("calendar-menu-next")||t.hasClass("calendar-nextyear")){ +_579(1); +}else{ +if(t.hasClass("calendar-menu-prev")||t.hasClass("calendar-prevyear")){ +_579(-1); +}else{ +if(t.hasClass("calendar-menu-month")){ +menu.find(".calendar-selected").removeClass("calendar-selected"); +t.addClass("calendar-selected"); +_577(true); +}else{ +if(t.hasClass("calendar-prevmonth")){ +_57a(-1); +}else{ +if(t.hasClass("calendar-nextmonth")){ +_57a(1); +}else{ +if(t.hasClass("calendar-text")){ +if(menu.is(":visible")){ +menu.hide(); +}else{ +_572(_576); +} +}else{ +if(t.hasClass("calendar-day")){ +if(t.hasClass("calendar-disabled")){ +return; +} +var _57b=opts.current; +t.closest("div.calendar-body").find(".calendar-selected").removeClass("calendar-selected"); +t.addClass("calendar-selected"); +var _57c=t.attr("abbr").split(","); +var y=parseInt(_57c[0]); +var m=parseInt(_57c[1]); +var d=parseInt(_57c[2]); +opts.current=new Date(y,m-1,d); +opts.onSelect.call(_576,opts.current); +if(!_57b||_57b.getTime()!=opts.current.getTime()){ +opts.onChange.call(_576,opts.current,_57b); +} +if(opts.year!=y||opts.month!=m){ +opts.year=y; +opts.month=m; +show(_576); +} +} +} +} +} +} +} +} +}); +function _578(t){ +var day=$(t).closest(".calendar-day"); +if(day.length){ +return day; +}else{ +return $(t); +} +}; +function _577(_57d){ +var menu=$(_576).find(".calendar-menu"); +var year=menu.find(".calendar-menu-year").val(); +var _57e=menu.find(".calendar-selected").attr("abbr"); +if(!isNaN(year)){ +opts.year=parseInt(year); +opts.month=parseInt(_57e); +show(_576); +} +if(_57d){ +menu.hide(); +} +}; +function _579(_57f){ +opts.year+=_57f; +show(_576); +menu.find(".calendar-menu-year").val(opts.year); +}; +function _57a(_580){ +opts.month+=_580; +if(opts.month>12){ +opts.year++; +opts.month=1; +}else{ +if(opts.month<1){ +opts.year--; +opts.month=12; +} +} +show(_576); +menu.find("td.calendar-selected").removeClass("calendar-selected"); +menu.find("td:eq("+(opts.month-1)+")").addClass("calendar-selected"); +}; +}; +function _572(_581){ +var opts=$.data(_581,"calendar").options; +$(_581).find(".calendar-menu").show(); +if($(_581).find(".calendar-menu-month-inner").is(":empty")){ +$(_581).find(".calendar-menu-month-inner").empty(); +var t=$("
        ").appendTo($(_581).find(".calendar-menu-month-inner")); +var idx=0; +for(var i=0;i<3;i++){ +var tr=$("").appendTo(t); +for(var j=0;j<4;j++){ +$("").html(opts.months[idx++]).attr("abbr",idx).appendTo(tr); +} +} +} +var body=$(_581).find(".calendar-body"); +var sele=$(_581).find(".calendar-menu"); +var _582=sele.find(".calendar-menu-year-inner"); +var _583=sele.find(".calendar-menu-month-inner"); +_582.find("input").val(opts.year).focus(); +_583.find("td.calendar-selected").removeClass("calendar-selected"); +_583.find("td:eq("+(opts.month-1)+")").addClass("calendar-selected"); +sele._outerWidth(body._outerWidth()); +sele._outerHeight(body._outerHeight()); +_583._outerHeight(sele.height()-_582._outerHeight()); +}; +function _584(_585,year,_586){ +var opts=$.data(_585,"calendar").options; +var _587=[]; +var _588=new Date(year,_586,0).getDate(); +for(var i=1;i<=_588;i++){ +_587.push([year,_586,i]); +} +var _589=[],week=[]; +var _58a=-1; +while(_587.length>0){ +var date=_587.shift(); +week.push(date); +var day=new Date(date[0],date[1]-1,date[2]).getDay(); +if(_58a==day){ +day=0; +}else{ +if(day==(opts.firstDay==0?7:opts.firstDay)-1){ +_589.push(week); +week=[]; +} +} +_58a=day; +} +if(week.length){ +_589.push(week); +} +var _58b=_589[0]; +if(_58b.length<7){ +while(_58b.length<7){ +var _58c=_58b[0]; +var date=new Date(_58c[0],_58c[1]-1,_58c[2]-1); +_58b.unshift([date.getFullYear(),date.getMonth()+1,date.getDate()]); +} +}else{ +var _58c=_58b[0]; +var week=[]; +for(var i=1;i<=7;i++){ +var date=new Date(_58c[0],_58c[1]-1,_58c[2]-i); +week.unshift([date.getFullYear(),date.getMonth()+1,date.getDate()]); +} +_589.unshift(week); +} +var _58d=_589[_589.length-1]; +while(_58d.length<7){ +var _58e=_58d[_58d.length-1]; +var date=new Date(_58e[0],_58e[1]-1,_58e[2]+1); +_58d.push([date.getFullYear(),date.getMonth()+1,date.getDate()]); +} +if(_589.length<6){ +var _58e=_58d[_58d.length-1]; +var week=[]; +for(var i=1;i<=7;i++){ +var date=new Date(_58e[0],_58e[1]-1,_58e[2]+i); +week.push([date.getFullYear(),date.getMonth()+1,date.getDate()]); +} +_589.push(week); +} +return _589; +}; +function show(_58f){ +var opts=$.data(_58f,"calendar").options; +if(opts.current&&!opts.validator.call(_58f,opts.current)){ +opts.current=null; +} +var now=new Date(); +var _590=now.getFullYear()+","+(now.getMonth()+1)+","+now.getDate(); +var _591=opts.current?(opts.current.getFullYear()+","+(opts.current.getMonth()+1)+","+opts.current.getDate()):""; +var _592=6-opts.firstDay; +var _593=_592+1; +if(_592>=7){ +_592-=7; +} +if(_593>=7){ +_593-=7; +} +$(_58f).find(".calendar-title span").html(opts.months[opts.month-1]+" "+opts.year); +var body=$(_58f).find("div.calendar-body"); +body.children("table").remove(); +var data=[""]; +data.push(""); +for(var i=opts.firstDay;i"+opts.weeks[i]+""); +} +for(var i=0;i"+opts.weeks[i]+""); +} +data.push(""); +data.push(""); +var _594=_584(_58f,opts.year,opts.month); +for(var i=0;i<_594.length;i++){ +var week=_594[i]; +var cls=""; +if(i==0){ +cls="calendar-first"; +}else{ +if(i==_594.length-1){ +cls="calendar-last"; +} +} +data.push(""); +for(var j=0;j"+d+""); +} +data.push(""); +} +data.push(""); +data.push("
        "); +body.append(data.join("")); +body.children("table.calendar-dtable").prependTo(body); +opts.onNavigate.call(_58f,opts.year,opts.month); +}; +$.fn.calendar=function(_598,_599){ +if(typeof _598=="string"){ +return $.fn.calendar.methods[_598](this,_599); +} +_598=_598||{}; +return this.each(function(){ +var _59a=$.data(this,"calendar"); +if(_59a){ +$.extend(_59a.options,_598); +}else{ +_59a=$.data(this,"calendar",{options:$.extend({},$.fn.calendar.defaults,$.fn.calendar.parseOptions(this),_598)}); +init(this); +} +if(_59a.options.border==false){ +$(this).addClass("calendar-noborder"); +} +_56f(this); +_575(this); +show(this); +$(this).find("div.calendar-menu").hide(); +}); +}; +$.fn.calendar.methods={options:function(jq){ +return $.data(jq[0],"calendar").options; +},resize:function(jq,_59b){ +return jq.each(function(){ +_56f(this,_59b); +}); +},moveTo:function(jq,date){ +return jq.each(function(){ +if(!date){ +var now=new Date(); +$(this).calendar({year:now.getFullYear(),month:now.getMonth()+1,current:date}); +return; +} +var opts=$(this).calendar("options"); +if(opts.validator.call(this,date)){ +var _59c=opts.current; +$(this).calendar({year:date.getFullYear(),month:date.getMonth()+1,current:date}); +if(!_59c||_59c.getTime()!=date.getTime()){ +opts.onChange.call(this,opts.current,_59c); +} +} +}); +}}; +$.fn.calendar.parseOptions=function(_59d){ +var t=$(_59d); +return $.extend({},$.parser.parseOptions(_59d,[{firstDay:"number",fit:"boolean",border:"boolean"}])); +}; +$.fn.calendar.defaults={width:180,height:180,fit:false,border:true,firstDay:0,weeks:["S","M","T","W","T","F","S"],months:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],year:new Date().getFullYear(),month:new Date().getMonth()+1,current:(function(){ +var d=new Date(); +return new Date(d.getFullYear(),d.getMonth(),d.getDate()); +})(),formatter:function(date){ +return date.getDate(); +},styler:function(date){ +return ""; +},validator:function(date){ +return true; +},onSelect:function(date){ +},onChange:function(_59e,_59f){ +},onNavigate:function(year,_5a0){ +}}; +})(jQuery); +(function($){ +function _5a1(_5a2){ +var _5a3=$.data(_5a2,"spinner"); +var opts=_5a3.options; +var _5a4=$.extend(true,[],opts.icons); +_5a4.push({iconCls:"spinner-arrow",handler:function(e){ +_5a5(e); +}}); +$(_5a2).addClass("spinner-f").textbox($.extend({},opts,{icons:_5a4})); +var _5a6=$(_5a2).textbox("getIcon",_5a4.length-1); +_5a6.append(""); +_5a6.append(""); +$(_5a2).attr("spinnerName",$(_5a2).attr("textboxName")); +_5a3.spinner=$(_5a2).next(); +_5a3.spinner.addClass("spinner"); +}; +function _5a5(e){ +var _5a7=e.data.target; +var opts=$(_5a7).spinner("options"); +var up=$(e.target).closest("a.spinner-arrow-up"); +if(up.length){ +opts.spin.call(_5a7,false); +opts.onSpinUp.call(_5a7); +$(_5a7).spinner("validate"); +} +var down=$(e.target).closest("a.spinner-arrow-down"); +if(down.length){ +opts.spin.call(_5a7,true); +opts.onSpinDown.call(_5a7); +$(_5a7).spinner("validate"); +} +}; +$.fn.spinner=function(_5a8,_5a9){ +if(typeof _5a8=="string"){ +var _5aa=$.fn.spinner.methods[_5a8]; +if(_5aa){ +return _5aa(this,_5a9); +}else{ +return this.textbox(_5a8,_5a9); +} +} +_5a8=_5a8||{}; +return this.each(function(){ +var _5ab=$.data(this,"spinner"); +if(_5ab){ +$.extend(_5ab.options,_5a8); +}else{ +_5ab=$.data(this,"spinner",{options:$.extend({},$.fn.spinner.defaults,$.fn.spinner.parseOptions(this),_5a8)}); +} +_5a1(this); +}); +}; +$.fn.spinner.methods={options:function(jq){ +var opts=jq.textbox("options"); +return $.extend($.data(jq[0],"spinner").options,{width:opts.width,value:opts.value,originalValue:opts.originalValue,disabled:opts.disabled,readonly:opts.readonly}); +}}; +$.fn.spinner.parseOptions=function(_5ac){ +return $.extend({},$.fn.textbox.parseOptions(_5ac),$.parser.parseOptions(_5ac,["min","max",{increment:"number"}])); +}; +$.fn.spinner.defaults=$.extend({},$.fn.textbox.defaults,{min:null,max:null,increment:1,spin:function(down){ +},onSpinUp:function(){ +},onSpinDown:function(){ +}}); +})(jQuery); +(function($){ +function _5ad(_5ae){ +$(_5ae).addClass("numberspinner-f"); +var opts=$.data(_5ae,"numberspinner").options; +$(_5ae).numberbox(opts).spinner(opts); +$(_5ae).numberbox("setValue",opts.value); +}; +function _5af(_5b0,down){ +var opts=$.data(_5b0,"numberspinner").options; +var v=parseFloat($(_5b0).numberbox("getValue")||opts.value)||0; +if(down){ +v-=opts.increment; +}else{ +v+=opts.increment; +} +$(_5b0).numberbox("setValue",v); +}; +$.fn.numberspinner=function(_5b1,_5b2){ +if(typeof _5b1=="string"){ +var _5b3=$.fn.numberspinner.methods[_5b1]; +if(_5b3){ +return _5b3(this,_5b2); +}else{ +return this.numberbox(_5b1,_5b2); +} +} +_5b1=_5b1||{}; +return this.each(function(){ +var _5b4=$.data(this,"numberspinner"); +if(_5b4){ +$.extend(_5b4.options,_5b1); +}else{ +$.data(this,"numberspinner",{options:$.extend({},$.fn.numberspinner.defaults,$.fn.numberspinner.parseOptions(this),_5b1)}); +} +_5ad(this); +}); +}; +$.fn.numberspinner.methods={options:function(jq){ +var opts=jq.numberbox("options"); +return $.extend($.data(jq[0],"numberspinner").options,{width:opts.width,value:opts.value,originalValue:opts.originalValue,disabled:opts.disabled,readonly:opts.readonly}); +}}; +$.fn.numberspinner.parseOptions=function(_5b5){ +return $.extend({},$.fn.spinner.parseOptions(_5b5),$.fn.numberbox.parseOptions(_5b5),{}); +}; +$.fn.numberspinner.defaults=$.extend({},$.fn.spinner.defaults,$.fn.numberbox.defaults,{spin:function(down){ +_5af(this,down); +}}); +})(jQuery); +(function($){ +function _5b6(_5b7){ +var _5b8=0; +if(typeof _5b7.selectionStart=="number"){ +_5b8=_5b7.selectionStart; +}else{ +if(_5b7.createTextRange){ +var _5b9=_5b7.createTextRange(); +var s=document.selection.createRange(); +s.setEndPoint("StartToStart",_5b9); +_5b8=s.text.length; +} +} +return _5b8; +}; +function _5ba(_5bb,_5bc,end){ +if(_5bb.setSelectionRange){ +_5bb.setSelectionRange(_5bc,end); +}else{ +if(_5bb.createTextRange){ +var _5bd=_5bb.createTextRange(); +_5bd.collapse(); +_5bd.moveEnd("character",end); +_5bd.moveStart("character",_5bc); +_5bd.select(); +} +} +}; +function _5be(_5bf){ +var opts=$.data(_5bf,"timespinner").options; +$(_5bf).addClass("timespinner-f").spinner(opts); +var _5c0=opts.formatter.call(_5bf,opts.parser.call(_5bf,opts.value)); +$(_5bf).timespinner("initValue",_5c0); +}; +function _5c1(e){ +var _5c2=e.data.target; +var opts=$.data(_5c2,"timespinner").options; +var _5c3=_5b6(this); +for(var i=0;i=_5c4[0]&&_5c3<=_5c4[1]){ +_5c5(_5c2,i); +return; +} +} +}; +function _5c5(_5c6,_5c7){ +var opts=$.data(_5c6,"timespinner").options; +if(_5c7!=undefined){ +opts.highlight=_5c7; +} +var _5c8=opts.selections[opts.highlight]; +if(_5c8){ +var tb=$(_5c6).timespinner("textbox"); +_5ba(tb[0],_5c8[0],_5c8[1]); +tb.focus(); +} +}; +function _5c9(_5ca,_5cb){ +var opts=$.data(_5ca,"timespinner").options; +var _5cb=opts.parser.call(_5ca,_5cb); +var text=opts.formatter.call(_5ca,_5cb); +$(_5ca).spinner("setValue",text); +}; +function _5cc(_5cd,down){ +var opts=$.data(_5cd,"timespinner").options; +var s=$(_5cd).timespinner("getValue"); +var _5ce=opts.selections[opts.highlight]; +var s1=s.substring(0,_5ce[0]); +var s2=s.substring(_5ce[0],_5ce[1]); +var s3=s.substring(_5ce[1]); +var v=s1+((parseInt(s2,10)||0)+opts.increment*(down?-1:1))+s3; +$(_5cd).timespinner("setValue",v); +_5c5(_5cd); +}; +$.fn.timespinner=function(_5cf,_5d0){ +if(typeof _5cf=="string"){ +var _5d1=$.fn.timespinner.methods[_5cf]; +if(_5d1){ +return _5d1(this,_5d0); +}else{ +return this.spinner(_5cf,_5d0); +} +} +_5cf=_5cf||{}; +return this.each(function(){ +var _5d2=$.data(this,"timespinner"); +if(_5d2){ +$.extend(_5d2.options,_5cf); +}else{ +$.data(this,"timespinner",{options:$.extend({},$.fn.timespinner.defaults,$.fn.timespinner.parseOptions(this),_5cf)}); +} +_5be(this); +}); +}; +$.fn.timespinner.methods={options:function(jq){ +var opts=jq.data("spinner")?jq.spinner("options"):{}; +return $.extend($.data(jq[0],"timespinner").options,{width:opts.width,value:opts.value,originalValue:opts.originalValue,disabled:opts.disabled,readonly:opts.readonly}); +},setValue:function(jq,_5d3){ +return jq.each(function(){ +_5c9(this,_5d3); +}); +},getHours:function(jq){ +var opts=$.data(jq[0],"timespinner").options; +var vv=jq.timespinner("getValue").split(opts.separator); +return parseInt(vv[0],10); +},getMinutes:function(jq){ +var opts=$.data(jq[0],"timespinner").options; +var vv=jq.timespinner("getValue").split(opts.separator); +return parseInt(vv[1],10); +},getSeconds:function(jq){ +var opts=$.data(jq[0],"timespinner").options; +var vv=jq.timespinner("getValue").split(opts.separator); +return parseInt(vv[2],10)||0; +}}; +$.fn.timespinner.parseOptions=function(_5d4){ +return $.extend({},$.fn.spinner.parseOptions(_5d4),$.parser.parseOptions(_5d4,["separator",{showSeconds:"boolean",highlight:"number"}])); +}; +$.fn.timespinner.defaults=$.extend({},$.fn.spinner.defaults,{inputEvents:$.extend({},$.fn.spinner.defaults.inputEvents,{click:function(e){ +_5c1.call(this,e); +},blur:function(e){ +var t=$(e.data.target); +t.timespinner("setValue",t.timespinner("getText")); +},keydown:function(e){ +if(e.keyCode==13){ +var t=$(e.data.target); +t.timespinner("setValue",t.timespinner("getText")); +} +}}),formatter:function(date){ +if(!date){ +return ""; +} +var opts=$(this).timespinner("options"); +var tt=[_5d5(date.getHours()),_5d5(date.getMinutes())]; +if(opts.showSeconds){ +tt.push(_5d5(date.getSeconds())); +} +return tt.join(opts.separator); +function _5d5(_5d6){ +return (_5d6<10?"0":"")+_5d6; +}; +},parser:function(s){ +var opts=$(this).timespinner("options"); +var date=_5d7(s); +if(date){ +var min=_5d7(opts.min); +var max=_5d7(opts.max); +if(min&&min>date){ +date=min; +} +if(max&&max"]; +for(var i=0;i<_5ec.length;i++){ +_5eb.cache[_5ec[i][0]]={width:_5ec[i][1]}; +} +var _5ed=0; +for(var s in _5eb.cache){ +var item=_5eb.cache[s]; +item.index=_5ed++; +ss.push(s+"{width:"+item.width+"}"); +} +ss.push(""); +$(ss.join("\n")).appendTo(cc); +cc.children("style[easyui]:not(:last)").remove(); +},getRule:function(_5ee){ +var _5ef=cc.children("style[easyui]:last")[0]; +var _5f0=_5ef.styleSheet?_5ef.styleSheet:(_5ef.sheet||document.styleSheets[document.styleSheets.length-1]); +var _5f1=_5f0.cssRules||_5f0.rules; +return _5f1[_5ee]; +},set:function(_5f2,_5f3){ +var item=_5eb.cache[_5f2]; +if(item){ +item.width=_5f3; +var rule=this.getRule(item.index); +if(rule){ +rule.style["width"]=_5f3; +} +} +},remove:function(_5f4){ +var tmp=[]; +for(var s in _5eb.cache){ +if(s.indexOf(_5f4)==-1){ +tmp.push([s,_5eb.cache[s].width]); +} +} +_5eb.cache={}; +this.add(tmp); +},dirty:function(_5f5){ +if(_5f5){ +_5eb.dirty.push(_5f5); +} +},clean:function(){ +for(var i=0;i<_5eb.dirty.length;i++){ +this.remove(_5eb.dirty[i]); +} +_5eb.dirty=[]; +}}; +}; +function _5f6(_5f7,_5f8){ +var _5f9=$.data(_5f7,"datagrid"); +var opts=_5f9.options; +var _5fa=_5f9.panel; +if(_5f8){ +$.extend(opts,_5f8); +} +if(opts.fit==true){ +var p=_5fa.panel("panel").parent(); +opts.width=p.width(); +opts.height=p.height(); +} +_5fa.panel("resize",opts); +}; +function _5fb(_5fc){ +var _5fd=$.data(_5fc,"datagrid"); +var opts=_5fd.options; +var dc=_5fd.dc; +var wrap=_5fd.panel; +var _5fe=wrap.width(); +var _5ff=wrap.height(); +var view=dc.view; +var _600=dc.view1; +var _601=dc.view2; +var _602=_600.children("div.datagrid-header"); +var _603=_601.children("div.datagrid-header"); +var _604=_602.find("table"); +var _605=_603.find("table"); +view.width(_5fe); +var _606=_602.children("div.datagrid-header-inner").show(); +_600.width(_606.find("table").width()); +if(!opts.showHeader){ +_606.hide(); +} +_601.width(_5fe-_600._outerWidth()); +_600.children()._outerWidth(_600.width()); +_601.children()._outerWidth(_601.width()); +var all=_602.add(_603).add(_604).add(_605); +all.css("height",""); +var hh=Math.max(_604.height(),_605.height()); +all._outerHeight(hh); +dc.body1.add(dc.body2).children("table.datagrid-btable-frozen").css({position:"absolute",top:dc.header2._outerHeight()}); +var _607=dc.body2.children("table.datagrid-btable-frozen")._outerHeight(); +var _608=_607+_603._outerHeight()+_601.children(".datagrid-footer")._outerHeight(); +wrap.children(":not(.datagrid-view,.datagrid-mask,.datagrid-mask-msg)").each(function(){ +_608+=$(this)._outerHeight(); +}); +var _609=wrap.outerHeight()-wrap.height(); +var _60a=wrap._size("minHeight")||""; +var _60b=wrap._size("maxHeight")||""; +_600.add(_601).children("div.datagrid-body").css({marginTop:_607,height:(isNaN(parseInt(opts.height))?"":(_5ff-_608)),minHeight:(_60a?_60a-_609-_608:""),maxHeight:(_60b?_60b-_609-_608:"")}); +view.height(_601.height()); +}; +function _60c(_60d,_60e,_60f){ +var rows=$.data(_60d,"datagrid").data.rows; +var opts=$.data(_60d,"datagrid").options; +var dc=$.data(_60d,"datagrid").dc; +if(!dc.body1.is(":empty")&&(!opts.nowrap||opts.autoRowHeight||_60f)){ +if(_60e!=undefined){ +var tr1=opts.finder.getTr(_60d,_60e,"body",1); +var tr2=opts.finder.getTr(_60d,_60e,"body",2); +_610(tr1,tr2); +}else{ +var tr1=opts.finder.getTr(_60d,0,"allbody",1); +var tr2=opts.finder.getTr(_60d,0,"allbody",2); +_610(tr1,tr2); +if(opts.showFooter){ +var tr1=opts.finder.getTr(_60d,0,"allfooter",1); +var tr2=opts.finder.getTr(_60d,0,"allfooter",2); +_610(tr1,tr2); +} +} +} +_5fb(_60d); +if(opts.height=="auto"){ +var _611=dc.body1.parent(); +var _612=dc.body2; +var _613=_614(_612); +var _615=_613.height; +if(_613.width>_612.width()){ +_615+=18; +} +_615-=parseInt(_612.css("marginTop"))||0; +_611.height(_615); +_612.height(_615); +dc.view.height(dc.view2.height()); +} +dc.body2.triggerHandler("scroll"); +function _610(trs1,trs2){ +for(var i=0;i"); +} +_61d(true); +_61d(false); +_5fb(_61a); +function _61d(_61e){ +var _61f=_61e?1:2; +var tr=opts.finder.getTr(_61a,_61b,"body",_61f); +(_61e?dc.body1:dc.body2).children("table.datagrid-btable-frozen").append(tr); +}; +}; +function _620(_621,_622){ +function _623(){ +var _624=[]; +var _625=[]; +$(_621).children("thead").each(function(){ +var opt=$.parser.parseOptions(this,[{frozen:"boolean"}]); +$(this).find("tr").each(function(){ +var cols=[]; +$(this).find("th").each(function(){ +var th=$(this); +var col=$.extend({},$.parser.parseOptions(this,["id","field","align","halign","order","width",{sortable:"boolean",checkbox:"boolean",resizable:"boolean",fixed:"boolean"},{rowspan:"number",colspan:"number"}]),{title:(th.html()||undefined),hidden:(th.attr("hidden")?true:undefined),formatter:(th.attr("formatter")?eval(th.attr("formatter")):undefined),styler:(th.attr("styler")?eval(th.attr("styler")):undefined),sorter:(th.attr("sorter")?eval(th.attr("sorter")):undefined)}); +if(col.width&&String(col.width).indexOf("%")==-1){ +col.width=parseInt(col.width); +} +if(th.attr("editor")){ +var s=$.trim(th.attr("editor")); +if(s.substr(0,1)=="{"){ +col.editor=eval("("+s+")"); +}else{ +col.editor=s; +} +} +cols.push(col); +}); +opt.frozen?_624.push(cols):_625.push(cols); +}); +}); +return [_624,_625]; +}; +var _626=$("
        "+"
        "+"
        "+"
        "+"
        "+"
        "+"
        "+"
        "+"
        "+"
        "+""+"
        "+"
        "+"
        "+"
        "+"
        "+"
        "+"
        "+"
        "+""+"
        "+"
        "+"
        "+"
        ").insertAfter(_621); +_626.panel({doSize:false,cls:"datagrid"}); +$(_621).addClass("datagrid-f").hide().appendTo(_626.children("div.datagrid-view")); +var cc=_623(); +var view=_626.children("div.datagrid-view"); +var _627=view.children("div.datagrid-view1"); +var _628=view.children("div.datagrid-view2"); +return {panel:_626,frozenColumns:cc[0],columns:cc[1],dc:{view:view,view1:_627,view2:_628,header1:_627.children("div.datagrid-header").children("div.datagrid-header-inner"),header2:_628.children("div.datagrid-header").children("div.datagrid-header-inner"),body1:_627.children("div.datagrid-body").children("div.datagrid-body-inner"),body2:_628.children("div.datagrid-body"),footer1:_627.children("div.datagrid-footer").children("div.datagrid-footer-inner"),footer2:_628.children("div.datagrid-footer").children("div.datagrid-footer-inner")}}; +}; +function _629(_62a){ +var _62b=$.data(_62a,"datagrid"); +var opts=_62b.options; +var dc=_62b.dc; +var _62c=_62b.panel; +_62b.ss=$(_62a).datagrid("createStyleSheet"); +_62c.panel($.extend({},opts,{id:null,doSize:false,onResize:function(_62d,_62e){ +if($.data(_62a,"datagrid")){ +_5fb(_62a); +$(_62a).datagrid("fitColumns"); +opts.onResize.call(_62c,_62d,_62e); +} +},onExpand:function(){ +if($.data(_62a,"datagrid")){ +$(_62a).datagrid("fixRowHeight").datagrid("fitColumns"); +opts.onExpand.call(_62c); +} +}})); +_62b.rowIdPrefix="datagrid-row-r"+(++_5e1); +_62b.cellClassPrefix="datagrid-cell-c"+_5e1; +_62f(dc.header1,opts.frozenColumns,true); +_62f(dc.header2,opts.columns,false); +_630(); +dc.header1.add(dc.header2).css("display",opts.showHeader?"block":"none"); +dc.footer1.add(dc.footer2).css("display",opts.showFooter?"block":"none"); +if(opts.toolbar){ +if($.isArray(opts.toolbar)){ +$("div.datagrid-toolbar",_62c).remove(); +var tb=$("
        ").prependTo(_62c); +var tr=tb.find("tr"); +for(var i=0;i
        ").appendTo(tr); +}else{ +var td=$("").appendTo(tr); +var tool=$("").appendTo(td); +tool[0].onclick=eval(btn.handler||function(){ +}); +tool.linkbutton($.extend({},btn,{plain:true})); +} +} +}else{ +$(opts.toolbar).addClass("datagrid-toolbar").prependTo(_62c); +$(opts.toolbar).show(); +} +}else{ +$("div.datagrid-toolbar",_62c).remove(); +} +$("div.datagrid-pager",_62c).remove(); +if(opts.pagination){ +var _631=$("
        "); +if(opts.pagePosition=="bottom"){ +_631.appendTo(_62c); +}else{ +if(opts.pagePosition=="top"){ +_631.addClass("datagrid-pager-top").prependTo(_62c); +}else{ +var ptop=$("
        ").prependTo(_62c); +_631.appendTo(_62c); +_631=_631.add(ptop); +} +} +_631.pagination({total:(opts.pageNumber*opts.pageSize),pageNumber:opts.pageNumber,pageSize:opts.pageSize,pageList:opts.pageList,onSelectPage:function(_632,_633){ +opts.pageNumber=_632||1; +opts.pageSize=_633; +_631.pagination("refresh",{pageNumber:_632,pageSize:_633}); +_670(_62a); +}}); +opts.pageSize=_631.pagination("options").pageSize; +} +function _62f(_634,_635,_636){ +if(!_635){ +return; +} +$(_634).show(); +$(_634).empty(); +var _637=[]; +var _638=[]; +var _639=[]; +if(opts.sortName){ +_637=opts.sortName.split(","); +_638=opts.sortOrder.split(","); +} +var t=$("
        ").appendTo(_634); +for(var i=0;i<_635.length;i++){ +var tr=$("").appendTo($("tbody",t)); +var cols=_635[i]; +for(var j=0;j").appendTo(tr); +if(col.checkbox){ +td.attr("field",col.field); +$("
        ").html("").appendTo(td); +}else{ +if(col.field){ +td.attr("field",col.field); +td.append("
        "); +td.find("span:first").html(col.title); +var cell=td.find("div.datagrid-cell"); +var pos=_5e2(_637,col.field); +if(pos>=0){ +cell.addClass("datagrid-sort-"+_638[pos]); +} +if(col.sortable){ +cell.addClass("datagrid-sort"); +} +if(col.resizable==false){ +cell.attr("resizable","false"); +} +if(col.width){ +var _63a=$.parser.parseValue("width",col.width,dc.view,opts.scrollbarSize); +cell._outerWidth(_63a-1); +col.boxWidth=parseInt(cell[0].style.width); +col.deltaWidth=_63a-col.boxWidth; +}else{ +col.auto=true; +} +cell.css("text-align",(col.halign||col.align||"")); +col.cellClass=_62b.cellClassPrefix+"-"+col.field.replace(/[\.|\s]/g,"-"); +cell.addClass(col.cellClass).css("width",""); +}else{ +$("
        ").html(col.title).appendTo(td); +} +} +if(col.hidden){ +td.hide(); +_639.push(col.field); +} +} +} +if(_636&&opts.rownumbers){ +var td=$("
        "); +if($("tr",t).length==0){ +td.wrap("").parent().appendTo($("tbody",t)); +}else{ +td.prependTo($("tr:first",t)); +} +} +for(var i=0;i<_639.length;i++){ +_672(_62a,_639[i],-1); +} +}; +function _630(){ +var _63b=[]; +var _63c=_63d(_62a,true).concat(_63d(_62a)); +for(var i=0;i<_63c.length;i++){ +var col=_63e(_62a,_63c[i]); +if(col&&!col.checkbox){ +_63b.push(["."+col.cellClass,col.boxWidth?col.boxWidth+"px":"auto"]); +} +} +_62b.ss.add(_63b); +_62b.ss.dirty(_62b.cellSelectorPrefix); +_62b.cellSelectorPrefix="."+_62b.cellClassPrefix; +}; +}; +function _63f(_640){ +var _641=$.data(_640,"datagrid"); +var _642=_641.panel; +var opts=_641.options; +var dc=_641.dc; +var _643=dc.header1.add(dc.header2); +_643.find("input[type=checkbox]").unbind(".datagrid").bind("click.datagrid",function(e){ +if(opts.singleSelect&&opts.selectOnCheck){ +return false; +} +if($(this).is(":checked")){ +_6e7(_640); +}else{ +_6ed(_640); +} +e.stopPropagation(); +}); +var _644=_643.find("div.datagrid-cell"); +_644.closest("td").unbind(".datagrid").bind("mouseenter.datagrid",function(){ +if(_641.resizing){ +return; +} +$(this).addClass("datagrid-header-over"); +}).bind("mouseleave.datagrid",function(){ +$(this).removeClass("datagrid-header-over"); +}).bind("contextmenu.datagrid",function(e){ +var _645=$(this).attr("field"); +opts.onHeaderContextMenu.call(_640,e,_645); +}); +_644.unbind(".datagrid").bind("click.datagrid",function(e){ +var p1=$(this).offset().left+5; +var p2=$(this).offset().left+$(this)._outerWidth()-5; +if(e.pageXp1){ +_665(_640,$(this).parent().attr("field")); +} +}).bind("dblclick.datagrid",function(e){ +var p1=$(this).offset().left+5; +var p2=$(this).offset().left+$(this)._outerWidth()-5; +var cond=opts.resizeHandle=="right"?(e.pageX>p2):(opts.resizeHandle=="left"?(e.pageXp2)); +if(cond){ +var _646=$(this).parent().attr("field"); +var col=_63e(_640,_646); +if(col.resizable==false){ +return; +} +$(_640).datagrid("autoSizeColumn",_646); +col.auto=false; +} +}); +var _647=opts.resizeHandle=="right"?"e":(opts.resizeHandle=="left"?"w":"e,w"); +_644.each(function(){ +$(this).resizable({handles:_647,disabled:($(this).attr("resizable")?$(this).attr("resizable")=="false":false),minWidth:25,onStartResize:function(e){ +_641.resizing=true; +_643.css("cursor",$("body").css("cursor")); +if(!_641.proxy){ +_641.proxy=$("
        ").appendTo(dc.view); +} +_641.proxy.css({left:e.pageX-$(_642).offset().left-1,display:"none"}); +setTimeout(function(){ +if(_641.proxy){ +_641.proxy.show(); +} +},500); +},onResize:function(e){ +_641.proxy.css({left:e.pageX-$(_642).offset().left-1,display:"block"}); +return false; +},onStopResize:function(e){ +_643.css("cursor",""); +$(this).css("height",""); +var _648=$(this).parent().attr("field"); +var col=_63e(_640,_648); +col.width=$(this)._outerWidth(); +col.boxWidth=col.width-col.deltaWidth; +col.auto=undefined; +$(this).css("width",""); +$(_640).datagrid("fixColumnSize",_648); +_641.proxy.remove(); +_641.proxy=null; +if($(this).parents("div:first.datagrid-header").parent().hasClass("datagrid-view1")){ +_5fb(_640); +} +$(_640).datagrid("fitColumns"); +opts.onResizeColumn.call(_640,_648,col.width); +setTimeout(function(){ +_641.resizing=false; +},0); +}}); +}); +var bb=dc.body1.add(dc.body2); +bb.unbind(); +for(var _649 in opts.rowEvents){ +bb.bind(_649,opts.rowEvents[_649]); +} +dc.body1.bind("mousewheel DOMMouseScroll",function(e){ +e.preventDefault(); +var e1=e.originalEvent||window.event; +var _64a=e1.wheelDelta||e1.detail*(-1); +if("deltaY" in e1){ +_64a=e1.deltaY*-1; +} +var dg=$(e.target).closest("div.datagrid-view").children(".datagrid-f"); +var dc=dg.data("datagrid").dc; +dc.body2.scrollTop(dc.body2.scrollTop()-_64a); +}); +dc.body2.bind("scroll",function(){ +var b1=dc.view1.children("div.datagrid-body"); +b1.scrollTop($(this).scrollTop()); +var c1=dc.body1.children(":first"); +var c2=dc.body2.children(":first"); +if(c1.length&&c2.length){ +var top1=c1.offset().top; +var top2=c2.offset().top; +if(top1!=top2){ +b1.scrollTop(b1.scrollTop()+top1-top2); +} +} +dc.view2.children("div.datagrid-header,div.datagrid-footer")._scrollLeft($(this)._scrollLeft()); +dc.body2.children("table.datagrid-btable-frozen").css("left",-$(this)._scrollLeft()); +}); +}; +function _64b(_64c){ +return function(e){ +var tr=_64d(e.target); +if(!tr){ +return; +} +var _64e=_64f(tr); +if($.data(_64e,"datagrid").resizing){ +return; +} +var _650=_651(tr); +if(_64c){ +_652(_64e,_650); +}else{ +var opts=$.data(_64e,"datagrid").options; +opts.finder.getTr(_64e,_650).removeClass("datagrid-row-over"); +} +}; +}; +function _653(e){ +var tr=_64d(e.target); +if(!tr){ +return; +} +var _654=_64f(tr); +var opts=$.data(_654,"datagrid").options; +var _655=_651(tr); +var tt=$(e.target); +if(tt.parent().hasClass("datagrid-cell-check")){ +if(opts.singleSelect&&opts.selectOnCheck){ +tt._propAttr("checked",!tt.is(":checked")); +_656(_654,_655); +}else{ +if(tt.is(":checked")){ +tt._propAttr("checked",false); +_656(_654,_655); +}else{ +tt._propAttr("checked",true); +_657(_654,_655); +} +} +}else{ +var row=opts.finder.getRow(_654,_655); +var td=tt.closest("td[field]",tr); +if(td.length){ +var _658=td.attr("field"); +opts.onClickCell.call(_654,_655,_658,row[_658]); +} +if(opts.singleSelect==true){ +_659(_654,_655); +}else{ +if(opts.ctrlSelect){ +if(e.ctrlKey){ +if(tr.hasClass("datagrid-row-selected")){ +_65a(_654,_655); +}else{ +_659(_654,_655); +} +}else{ +if(e.shiftKey){ +$(_654).datagrid("clearSelections"); +var _65b=Math.min(opts.lastSelectedIndex||0,_655); +var _65c=Math.max(opts.lastSelectedIndex||0,_655); +for(var i=_65b;i<=_65c;i++){ +_659(_654,i); +} +}else{ +$(_654).datagrid("clearSelections"); +_659(_654,_655); +opts.lastSelectedIndex=_655; +} +} +}else{ +if(tr.hasClass("datagrid-row-selected")){ +_65a(_654,_655); +}else{ +_659(_654,_655); +} +} +} +opts.onClickRow.apply(_654,_5e5(_654,[_655,row])); +} +}; +function _65d(e){ +var tr=_64d(e.target); +if(!tr){ +return; +} +var _65e=_64f(tr); +var opts=$.data(_65e,"datagrid").options; +var _65f=_651(tr); +var row=opts.finder.getRow(_65e,_65f); +var td=$(e.target).closest("td[field]",tr); +if(td.length){ +var _660=td.attr("field"); +opts.onDblClickCell.call(_65e,_65f,_660,row[_660]); +} +opts.onDblClickRow.apply(_65e,_5e5(_65e,[_65f,row])); +}; +function _661(e){ +var tr=_64d(e.target); +if(tr){ +var _662=_64f(tr); +var opts=$.data(_662,"datagrid").options; +var _663=_651(tr); +var row=opts.finder.getRow(_662,_663); +opts.onRowContextMenu.call(_662,e,_663,row); +}else{ +var body=_64d(e.target,".datagrid-body"); +if(body){ +var _662=_64f(body); +var opts=$.data(_662,"datagrid").options; +opts.onRowContextMenu.call(_662,e,-1,null); +} +} +}; +function _64f(t){ +return $(t).closest("div.datagrid-view").children(".datagrid-f")[0]; +}; +function _64d(t,_664){ +var tr=$(t).closest(_664||"tr.datagrid-row"); +if(tr.length&&tr.parent().length){ +return tr; +}else{ +return undefined; +} +}; +function _651(tr){ +if(tr.attr("datagrid-row-index")){ +return parseInt(tr.attr("datagrid-row-index")); +}else{ +return tr.attr("node-id"); +} +}; +function _665(_666,_667){ +var _668=$.data(_666,"datagrid"); +var opts=_668.options; +_667=_667||{}; +var _669={sortName:opts.sortName,sortOrder:opts.sortOrder}; +if(typeof _667=="object"){ +$.extend(_669,_667); +} +var _66a=[]; +var _66b=[]; +if(_669.sortName){ +_66a=_669.sortName.split(","); +_66b=_669.sortOrder.split(","); +} +if(typeof _667=="string"){ +var _66c=_667; +var col=_63e(_666,_66c); +if(!col.sortable||_668.resizing){ +return; +} +var _66d=col.order||"asc"; +var pos=_5e2(_66a,_66c); +if(pos>=0){ +var _66e=_66b[pos]=="asc"?"desc":"asc"; +if(opts.multiSort&&_66e==_66d){ +_66a.splice(pos,1); +_66b.splice(pos,1); +}else{ +_66b[pos]=_66e; +} +}else{ +if(opts.multiSort){ +_66a.push(_66c); +_66b.push(_66d); +}else{ +_66a=[_66c]; +_66b=[_66d]; +} +} +_669.sortName=_66a.join(","); +_669.sortOrder=_66b.join(","); +} +if(opts.onBeforeSortColumn.call(_666,_669.sortName,_669.sortOrder)==false){ +return; +} +$.extend(opts,_669); +var dc=_668.dc; +var _66f=dc.header1.add(dc.header2); +_66f.find("div.datagrid-cell").removeClass("datagrid-sort-asc datagrid-sort-desc"); +for(var i=0;i<_66a.length;i++){ +var col=_63e(_666,_66a[i]); +_66f.find("div."+col.cellClass).addClass("datagrid-sort-"+_66b[i]); +} +if(opts.remoteSort){ +_670(_666); +}else{ +_671(_666,$(_666).datagrid("getData")); +} +opts.onSortColumn.call(_666,opts.sortName,opts.sortOrder); +}; +function _672(_673,_674,_675){ +_676(true); +_676(false); +function _676(_677){ +var aa=_678(_673,_677); +if(aa.length){ +var _679=aa[aa.length-1]; +var _67a=_5e2(_679,_674); +if(_67a>=0){ +for(var _67b=0;_67b=_680.find("table").width()){ +dc.body2.css("overflow-x","hidden"); +} +function _683(){ +if(!opts.fitColumns){ +return; +} +if(!_67f.leftWidth){ +_67f.leftWidth=0; +} +var _684=0; +var cc=[]; +var _685=_63d(_67e,false); +for(var i=0;i<_685.length;i++){ +var col=_63e(_67e,_685[i]); +if(_686(col)){ +_684+=col.width; +cc.push({field:col.field,col:col,addingWidth:0}); +} +} +if(!_684){ +return; +} +cc[cc.length-1].addingWidth-=_67f.leftWidth; +var _687=_680.children("div.datagrid-header-inner").show(); +var _688=_680.width()-_680.find("table").width()-opts.scrollbarSize+_67f.leftWidth; +var rate=_688/_684; +if(!opts.showHeader){ +_687.hide(); +} +for(var i=0;i0){ +c.col.boxWidth+=c.addingWidth; +c.col.width+=c.addingWidth; +} +} +_67f.leftWidth=_688; +$(_67e).datagrid("fixColumnSize"); +}; +function _682(){ +var _68a=false; +var _68b=_63d(_67e,true).concat(_63d(_67e,false)); +$.map(_68b,function(_68c){ +var col=_63e(_67e,_68c); +if(String(col.width||"").indexOf("%")>=0){ +var _68d=$.parser.parseValue("width",col.width,dc.view,opts.scrollbarSize)-col.deltaWidth; +if(_68d>0){ +col.boxWidth=_68d; +_68a=true; +} +} +}); +if(_68a){ +$(_67e).datagrid("fixColumnSize"); +} +}; +function _681(fit){ +var _68e=dc.header1.add(dc.header2).find(".datagrid-cell-group"); +if(_68e.length){ +_68e.each(function(){ +$(this)._outerWidth(fit?$(this).parent().width():10); +}); +if(fit){ +_5fb(_67e); +} +} +}; +function _686(col){ +if(String(col.width||"").indexOf("%")>=0){ +return false; +} +if(!col.hidden&&!col.checkbox&&!col.auto&&!col.fixed){ +return true; +} +}; +}; +function _68f(_690,_691){ +var _692=$.data(_690,"datagrid"); +var opts=_692.options; +var dc=_692.dc; +var tmp=$("
        ").appendTo("body"); +if(_691){ +_5f6(_691); +$(_690).datagrid("fitColumns"); +}else{ +var _693=false; +var _694=_63d(_690,true).concat(_63d(_690,false)); +for(var i=0;i<_694.length;i++){ +var _691=_694[i]; +var col=_63e(_690,_691); +if(col.auto){ +_5f6(_691); +_693=true; +} +} +if(_693){ +$(_690).datagrid("fitColumns"); +} +} +tmp.remove(); +function _5f6(_695){ +var _696=dc.view.find("div.datagrid-header td[field=\""+_695+"\"] div.datagrid-cell"); +_696.css("width",""); +var col=$(_690).datagrid("getColumnOption",_695); +col.width=undefined; +col.boxWidth=undefined; +col.auto=true; +$(_690).datagrid("fixColumnSize",_695); +var _697=Math.max(_698("header"),_698("allbody"),_698("allfooter"))+1; +_696._outerWidth(_697-1); +col.width=_697; +col.boxWidth=parseInt(_696[0].style.width); +col.deltaWidth=_697-col.boxWidth; +_696.css("width",""); +$(_690).datagrid("fixColumnSize",_695); +opts.onResizeColumn.call(_690,_695,col.width); +function _698(type){ +var _699=0; +if(type=="header"){ +_699=_69a(_696); +}else{ +opts.finder.getTr(_690,0,type).find("td[field=\""+_695+"\"] div.datagrid-cell").each(function(){ +var w=_69a($(this)); +if(_699=0){ +var _6b3=col.field||col.id||""; +for(var c=0;c<(col.colspan||1);c++){ +for(var r=0;r<(col.rowspan||1);r++){ +aa[_6b0+r][_6b1]=_6b3; +} +_6b1++; +} +} +}); +} +return aa; +function _6af(){ +var _6b4=0; +$.map(_6ad[0]||[],function(col){ +_6b4+=col.colspan||1; +}); +return _6b4; +}; +function _6b2(a){ +for(var i=0;ib?1:-1); +}; +r=_6bb(r1[sn],r2[sn])*(so=="asc"?1:-1); +if(r!=0){ +return r; +} +} +return r; +}); +} +if(opts.view.onBeforeRender){ +opts.view.onBeforeRender.call(opts.view,_6b7,data.rows); +} +opts.view.render.call(opts.view,_6b7,dc.body2,false); +opts.view.render.call(opts.view,_6b7,dc.body1,true); +if(opts.showFooter){ +opts.view.renderFooter.call(opts.view,_6b7,dc.footer2,false); +opts.view.renderFooter.call(opts.view,_6b7,dc.footer1,true); +} +if(opts.view.onAfterRender){ +opts.view.onAfterRender.call(opts.view,_6b7); +} +_6b8.ss.clean(); +var _6bc=$(_6b7).datagrid("getPager"); +if(_6bc.length){ +var _6bd=_6bc.pagination("options"); +if(_6bd.total!=data.total){ +_6bc.pagination("refresh",{total:data.total}); +if(opts.pageNumber!=_6bd.pageNumber&&_6bd.pageNumber>0){ +opts.pageNumber=_6bd.pageNumber; +_670(_6b7); +} +} +} +_60c(_6b7); +dc.body2.triggerHandler("scroll"); +$(_6b7).datagrid("setSelectionState"); +$(_6b7).datagrid("autoSizeColumn"); +opts.onLoadSuccess.call(_6b7,data); +}; +function _6be(_6bf){ +var _6c0=$.data(_6bf,"datagrid"); +var opts=_6c0.options; +var dc=_6c0.dc; +dc.header1.add(dc.header2).find("input[type=checkbox]")._propAttr("checked",false); +if(opts.idField){ +var _6c1=$.data(_6bf,"treegrid")?true:false; +var _6c2=opts.onSelect; +var _6c3=opts.onCheck; +opts.onSelect=opts.onCheck=function(){ +}; +var rows=opts.finder.getRows(_6bf); +for(var i=0;i_6d4.height()-18){ +_6d4.scrollTop(_6d4.scrollTop()+top+tr._outerHeight()-_6d4.height()+18); +} +} +} +}; +function _652(_6d6,_6d7){ +var _6d8=$.data(_6d6,"datagrid"); +var opts=_6d8.options; +opts.finder.getTr(_6d6,_6d8.highlightIndex).removeClass("datagrid-row-over"); +opts.finder.getTr(_6d6,_6d7).addClass("datagrid-row-over"); +_6d8.highlightIndex=_6d7; +}; +function _659(_6d9,_6da,_6db){ +var _6dc=$.data(_6d9,"datagrid"); +var opts=_6dc.options; +var row=opts.finder.getRow(_6d9,_6da); +if(opts.onBeforeSelect.apply(_6d9,_5e5(_6d9,[_6da,row]))==false){ +return; +} +if(opts.singleSelect){ +_6dd(_6d9,true); +_6dc.selectedRows=[]; +} +if(!_6db&&opts.checkOnSelect){ +_656(_6d9,_6da,true); +} +if(opts.idField){ +_5e4(_6dc.selectedRows,opts.idField,row); +} +opts.finder.getTr(_6d9,_6da).addClass("datagrid-row-selected"); +opts.onSelect.apply(_6d9,_5e5(_6d9,[_6da,row])); +_6cf(_6d9,_6da); +}; +function _65a(_6de,_6df,_6e0){ +var _6e1=$.data(_6de,"datagrid"); +var dc=_6e1.dc; +var opts=_6e1.options; +var row=opts.finder.getRow(_6de,_6df); +if(opts.onBeforeUnselect.apply(_6de,_5e5(_6de,[_6df,row]))==false){ +return; +} +if(!_6e0&&opts.checkOnSelect){ +_657(_6de,_6df,true); +} +opts.finder.getTr(_6de,_6df).removeClass("datagrid-row-selected"); +if(opts.idField){ +_5e3(_6e1.selectedRows,opts.idField,row[opts.idField]); +} +opts.onUnselect.apply(_6de,_5e5(_6de,[_6df,row])); +}; +function _6e2(_6e3,_6e4){ +var _6e5=$.data(_6e3,"datagrid"); +var opts=_6e5.options; +var rows=opts.finder.getRows(_6e3); +var _6e6=$.data(_6e3,"datagrid").selectedRows; +if(!_6e4&&opts.checkOnSelect){ +_6e7(_6e3,true); +} +opts.finder.getTr(_6e3,"","allbody").addClass("datagrid-row-selected"); +if(opts.idField){ +for(var _6e8=0;_6e8"); +cell.children("table").bind("click dblclick contextmenu",function(e){ +e.stopPropagation(); +}); +$.data(cell[0],"datagrid.editor",{actions:_71e,target:_71e.init(cell.find("td"),_71d),field:_71b,type:_71c,oldHtml:_71f}); +} +} +}); +_60c(_719,_71a,true); +}; +function _710(_721,_722){ +var opts=$.data(_721,"datagrid").options; +var tr=opts.finder.getTr(_721,_722); +tr.children("td").each(function(){ +var cell=$(this).find("div.datagrid-editable"); +if(cell.length){ +var ed=$.data(cell[0],"datagrid.editor"); +if(ed.actions.destroy){ +ed.actions.destroy(ed.target); +} +cell.html(ed.oldHtml); +$.removeData(cell[0],"datagrid.editor"); +cell.removeClass("datagrid-editable"); +cell.css("width",""); +} +}); +}; +function _703(_723,_724){ +var tr=$.data(_723,"datagrid").options.finder.getTr(_723,_724); +if(!tr.hasClass("datagrid-row-editing")){ +return true; +} +var vbox=tr.find(".validatebox-text"); +vbox.validatebox("validate"); +vbox.trigger("mouseleave"); +var _725=tr.find(".validatebox-invalid"); +return _725.length==0; +}; +function _726(_727,_728){ +var _729=$.data(_727,"datagrid").insertedRows; +var _72a=$.data(_727,"datagrid").deletedRows; +var _72b=$.data(_727,"datagrid").updatedRows; +if(!_728){ +var rows=[]; +rows=rows.concat(_729); +rows=rows.concat(_72a); +rows=rows.concat(_72b); +return rows; +}else{ +if(_728=="inserted"){ +return _729; +}else{ +if(_728=="deleted"){ +return _72a; +}else{ +if(_728=="updated"){ +return _72b; +} +} +} +} +return []; +}; +function _72c(_72d,_72e){ +var _72f=$.data(_72d,"datagrid"); +var opts=_72f.options; +var data=_72f.data; +var _730=_72f.insertedRows; +var _731=_72f.deletedRows; +$(_72d).datagrid("cancelEdit",_72e); +var row=opts.finder.getRow(_72d,_72e); +if(_5e2(_730,row)>=0){ +_5e3(_730,row); +}else{ +_731.push(row); +} +_5e3(_72f.selectedRows,opts.idField,row[opts.idField]); +_5e3(_72f.checkedRows,opts.idField,row[opts.idField]); +opts.view.deleteRow.call(opts.view,_72d,_72e); +if(opts.height=="auto"){ +_60c(_72d); +} +$(_72d).datagrid("getPager").pagination("refresh",{total:data.total}); +}; +function _732(_733,_734){ +var data=$.data(_733,"datagrid").data; +var view=$.data(_733,"datagrid").options.view; +var _735=$.data(_733,"datagrid").insertedRows; +view.insertRow.call(view,_733,_734.index,_734.row); +_735.push(_734.row); +$(_733).datagrid("getPager").pagination("refresh",{total:data.total}); +}; +function _736(_737,row){ +var data=$.data(_737,"datagrid").data; +var view=$.data(_737,"datagrid").options.view; +var _738=$.data(_737,"datagrid").insertedRows; +view.insertRow.call(view,_737,null,row); +_738.push(row); +$(_737).datagrid("getPager").pagination("refresh",{total:data.total}); +}; +function _739(_73a,_73b){ +var _73c=$.data(_73a,"datagrid"); +var opts=_73c.options; +var row=opts.finder.getRow(_73a,_73b.index); +var _73d=false; +_73b.row=_73b.row||{}; +for(var _73e in _73b.row){ +if(row[_73e]!==_73b.row[_73e]){ +_73d=true; +break; +} +} +if(_73d){ +if(_5e2(_73c.insertedRows,row)==-1){ +if(_5e2(_73c.updatedRows,row)==-1){ +_73c.updatedRows.push(row); +} +} +opts.view.updateRow.call(opts.view,_73a,_73b.index,_73b.row); +} +}; +function _73f(_740){ +var _741=$.data(_740,"datagrid"); +var data=_741.data; +var rows=data.rows; +var _742=[]; +for(var i=0;i=0){ +(_74f=="s"?_659:_656)(_746,_750,true); +} +} +}; +for(var i=0;i0){ +$(this).datagrid("loadData",data); +}else{ +opts.view.renderEmptyRow(this); +$(this).datagrid("autoSizeColumn"); +} +} +_670(this); +}); +}; +function _760(_761){ +var _762={}; +$.map(_761,function(name){ +_762[name]=_763(name); +}); +return _762; +function _763(name){ +function isA(_764){ +return $.data($(_764)[0],name)!=undefined; +}; +return {init:function(_765,_766){ +var _767=$("").appendTo(_765); +if(_767[name]&&name!="text"){ +return _767[name](_766); +}else{ +return _767; +} +},destroy:function(_768){ +if(isA(_768,name)){ +$(_768)[name]("destroy"); +} +},getValue:function(_769){ +if(isA(_769,name)){ +var opts=$(_769)[name]("options"); +if(opts.multiple){ +return $(_769)[name]("getValues").join(opts.separator); +}else{ +return $(_769)[name]("getValue"); +} +}else{ +return $(_769).val(); +} +},setValue:function(_76a,_76b){ +if(isA(_76a,name)){ +var opts=$(_76a)[name]("options"); +if(opts.multiple){ +if(_76b){ +$(_76a)[name]("setValues",_76b.split(opts.separator)); +}else{ +$(_76a)[name]("clear"); +} +}else{ +$(_76a)[name]("setValue",_76b); +} +}else{ +$(_76a).val(_76b); +} +},resize:function(_76c,_76d){ +if(isA(_76c,name)){ +$(_76c)[name]("resize",_76d); +}else{ +$(_76c)._outerWidth(_76d)._outerHeight(22); +} +}}; +}; +}; +var _76e=$.extend({},_760(["text","textbox","numberbox","numberspinner","combobox","combotree","combogrid","datebox","datetimebox","timespinner","datetimespinner"]),{textarea:{init:function(_76f,_770){ +var _771=$("").appendTo(_76f); +return _771; +},getValue:function(_772){ +return $(_772).val(); +},setValue:function(_773,_774){ +$(_773).val(_774); +},resize:function(_775,_776){ +$(_775)._outerWidth(_776); +}},checkbox:{init:function(_777,_778){ +var _779=$("").appendTo(_777); +_779.val(_778.on); +_779.attr("offval",_778.off); +return _779; +},getValue:function(_77a){ +if($(_77a).is(":checked")){ +return $(_77a).val(); +}else{ +return $(_77a).attr("offval"); +} +},setValue:function(_77b,_77c){ +var _77d=false; +if($(_77b).val()==_77c){ +_77d=true; +} +$(_77b)._propAttr("checked",_77d); +}},validatebox:{init:function(_77e,_77f){ +var _780=$("").appendTo(_77e); +_780.validatebox(_77f); +return _780; +},destroy:function(_781){ +$(_781).validatebox("destroy"); +},getValue:function(_782){ +return $(_782).val(); +},setValue:function(_783,_784){ +$(_783).val(_784); +},resize:function(_785,_786){ +$(_785)._outerWidth(_786)._outerHeight(22); +}}}); +$.fn.datagrid.methods={options:function(jq){ +var _787=$.data(jq[0],"datagrid").options; +var _788=$.data(jq[0],"datagrid").panel.panel("options"); +var opts=$.extend(_787,{width:_788.width,height:_788.height,closed:_788.closed,collapsed:_788.collapsed,minimized:_788.minimized,maximized:_788.maximized}); +return opts; +},setSelectionState:function(jq){ +return jq.each(function(){ +_6be(this); +}); +},createStyleSheet:function(jq){ +return _5e7(jq[0]); +},getPanel:function(jq){ +return $.data(jq[0],"datagrid").panel; +},getPager:function(jq){ +return $.data(jq[0],"datagrid").panel.children("div.datagrid-pager"); +},getColumnFields:function(jq,_789){ +return _63d(jq[0],_789); +},getColumnOption:function(jq,_78a){ +return _63e(jq[0],_78a); +},resize:function(jq,_78b){ +return jq.each(function(){ +_5f6(this,_78b); +}); +},load:function(jq,_78c){ +return jq.each(function(){ +var opts=$(this).datagrid("options"); +if(typeof _78c=="string"){ +opts.url=_78c; +_78c=null; +} +opts.pageNumber=1; +var _78d=$(this).datagrid("getPager"); +_78d.pagination("refresh",{pageNumber:1}); +_670(this,_78c); +}); +},reload:function(jq,_78e){ +return jq.each(function(){ +var opts=$(this).datagrid("options"); +if(typeof _78e=="string"){ +opts.url=_78e; +_78e=null; +} +_670(this,_78e); +}); +},reloadFooter:function(jq,_78f){ +return jq.each(function(){ +var opts=$.data(this,"datagrid").options; +var dc=$.data(this,"datagrid").dc; +if(_78f){ +$.data(this,"datagrid").footer=_78f; +} +if(opts.showFooter){ +opts.view.renderFooter.call(opts.view,this,dc.footer2,false); +opts.view.renderFooter.call(opts.view,this,dc.footer1,true); +if(opts.view.onAfterRender){ +opts.view.onAfterRender.call(opts.view,this); +} +$(this).datagrid("fixRowHeight"); +} +}); +},loading:function(jq){ +return jq.each(function(){ +var opts=$.data(this,"datagrid").options; +$(this).datagrid("getPager").pagination("loading"); +if(opts.loadMsg){ +var _790=$(this).datagrid("getPanel"); +if(!_790.children("div.datagrid-mask").length){ +$("
        ").appendTo(_790); +var msg=$("
        ").html(opts.loadMsg).appendTo(_790); +msg._outerHeight(40); +msg.css({marginLeft:(-msg.outerWidth()/2),lineHeight:(msg.height()+"px")}); +} +} +}); +},loaded:function(jq){ +return jq.each(function(){ +$(this).datagrid("getPager").pagination("loaded"); +var _791=$(this).datagrid("getPanel"); +_791.children("div.datagrid-mask-msg").remove(); +_791.children("div.datagrid-mask").remove(); +}); +},fitColumns:function(jq){ +return jq.each(function(){ +_67d(this); +}); +},fixColumnSize:function(jq,_792){ +return jq.each(function(){ +_69b(this,_792); +}); +},fixRowHeight:function(jq,_793){ +return jq.each(function(){ +_60c(this,_793); +}); +},freezeRow:function(jq,_794){ +return jq.each(function(){ +_619(this,_794); +}); +},autoSizeColumn:function(jq,_795){ +return jq.each(function(){ +_68f(this,_795); +}); +},loadData:function(jq,data){ +return jq.each(function(){ +_671(this,data); +_73f(this); +}); +},getData:function(jq){ +return $.data(jq[0],"datagrid").data; +},getRows:function(jq){ +return $.data(jq[0],"datagrid").data.rows; +},getFooterRows:function(jq){ +return $.data(jq[0],"datagrid").footer; +},getRowIndex:function(jq,id){ +return _6c6(jq[0],id); +},getChecked:function(jq){ +return _6cc(jq[0]); +},getSelected:function(jq){ +var rows=_6c9(jq[0]); +return rows.length>0?rows[0]:null; +},getSelections:function(jq){ +return _6c9(jq[0]); +},clearSelections:function(jq){ +return jq.each(function(){ +var _796=$.data(this,"datagrid"); +var _797=_796.selectedRows; +var _798=_796.checkedRows; +_797.splice(0,_797.length); +_6dd(this); +if(_796.options.checkOnSelect){ +_798.splice(0,_798.length); +} +}); +},clearChecked:function(jq){ +return jq.each(function(){ +var _799=$.data(this,"datagrid"); +var _79a=_799.selectedRows; +var _79b=_799.checkedRows; +_79b.splice(0,_79b.length); +_6ed(this); +if(_799.options.selectOnCheck){ +_79a.splice(0,_79a.length); +} +}); +},scrollTo:function(jq,_79c){ +return jq.each(function(){ +_6cf(this,_79c); +}); +},highlightRow:function(jq,_79d){ +return jq.each(function(){ +_652(this,_79d); +_6cf(this,_79d); +}); +},selectAll:function(jq){ +return jq.each(function(){ +_6e2(this); +}); +},unselectAll:function(jq){ +return jq.each(function(){ +_6dd(this); +}); +},selectRow:function(jq,_79e){ +return jq.each(function(){ +_659(this,_79e); +}); +},selectRecord:function(jq,id){ +return jq.each(function(){ +var opts=$.data(this,"datagrid").options; +if(opts.idField){ +var _79f=_6c6(this,id); +if(_79f>=0){ +$(this).datagrid("selectRow",_79f); +} +} +}); +},unselectRow:function(jq,_7a0){ +return jq.each(function(){ +_65a(this,_7a0); +}); +},checkRow:function(jq,_7a1){ +return jq.each(function(){ +_656(this,_7a1); +}); +},uncheckRow:function(jq,_7a2){ +return jq.each(function(){ +_657(this,_7a2); +}); +},checkAll:function(jq){ +return jq.each(function(){ +_6e7(this); +}); +},uncheckAll:function(jq){ +return jq.each(function(){ +_6ed(this); +}); +},beginEdit:function(jq,_7a3){ +return jq.each(function(){ +_6fe(this,_7a3); +}); +},endEdit:function(jq,_7a4){ +return jq.each(function(){ +_704(this,_7a4,false); +}); +},cancelEdit:function(jq,_7a5){ +return jq.each(function(){ +_704(this,_7a5,true); +}); +},getEditors:function(jq,_7a6){ +return _711(jq[0],_7a6); +},getEditor:function(jq,_7a7){ +return _715(jq[0],_7a7); +},refreshRow:function(jq,_7a8){ +return jq.each(function(){ +var opts=$.data(this,"datagrid").options; +opts.view.refreshRow.call(opts.view,this,_7a8); +}); +},validateRow:function(jq,_7a9){ +return _703(jq[0],_7a9); +},updateRow:function(jq,_7aa){ +return jq.each(function(){ +_739(this,_7aa); +}); +},appendRow:function(jq,row){ +return jq.each(function(){ +_736(this,row); +}); +},insertRow:function(jq,_7ab){ +return jq.each(function(){ +_732(this,_7ab); +}); +},deleteRow:function(jq,_7ac){ +return jq.each(function(){ +_72c(this,_7ac); +}); +},getChanges:function(jq,_7ad){ +return _726(jq[0],_7ad); +},acceptChanges:function(jq){ +return jq.each(function(){ +_743(this); +}); +},rejectChanges:function(jq){ +return jq.each(function(){ +_745(this); +}); +},mergeCells:function(jq,_7ae){ +return jq.each(function(){ +_757(this,_7ae); +}); +},showColumn:function(jq,_7af){ +return jq.each(function(){ +var col=$(this).datagrid("getColumnOption",_7af); +if(col.hidden){ +col.hidden=false; +$(this).datagrid("getPanel").find("td[field=\""+_7af+"\"]").show(); +_672(this,_7af,1); +$(this).datagrid("fitColumns"); +} +}); +},hideColumn:function(jq,_7b0){ +return jq.each(function(){ +var col=$(this).datagrid("getColumnOption",_7b0); +if(!col.hidden){ +col.hidden=true; +$(this).datagrid("getPanel").find("td[field=\""+_7b0+"\"]").hide(); +_672(this,_7b0,-1); +$(this).datagrid("fitColumns"); +} +}); +},sort:function(jq,_7b1){ +return jq.each(function(){ +_665(this,_7b1); +}); +},gotoPage:function(jq,_7b2){ +return jq.each(function(){ +var _7b3=this; +var page,cb; +if(typeof _7b2=="object"){ +page=_7b2.page; +cb=_7b2.callback; +}else{ +page=_7b2; +} +$(_7b3).datagrid("options").pageNumber=page; +$(_7b3).datagrid("getPager").pagination("refresh",{pageNumber:page}); +_670(_7b3,null,function(){ +if(cb){ +cb.call(_7b3,page); +} +}); +}); +}}; +$.fn.datagrid.parseOptions=function(_7b4){ +var t=$(_7b4); +return $.extend({},$.fn.panel.parseOptions(_7b4),$.parser.parseOptions(_7b4,["url","toolbar","idField","sortName","sortOrder","pagePosition","resizeHandle",{sharedStyleSheet:"boolean",fitColumns:"boolean",autoRowHeight:"boolean",striped:"boolean",nowrap:"boolean"},{rownumbers:"boolean",singleSelect:"boolean",ctrlSelect:"boolean",checkOnSelect:"boolean",selectOnCheck:"boolean"},{pagination:"boolean",pageSize:"number",pageNumber:"number"},{multiSort:"boolean",remoteSort:"boolean",showHeader:"boolean",showFooter:"boolean"},{scrollbarSize:"number"}]),{pageList:(t.attr("pageList")?eval(t.attr("pageList")):undefined),loadMsg:(t.attr("loadMsg")!=undefined?t.attr("loadMsg"):undefined),rowStyler:(t.attr("rowStyler")?eval(t.attr("rowStyler")):undefined)}); +}; +$.fn.datagrid.parseData=function(_7b5){ +var t=$(_7b5); +var data={total:0,rows:[]}; +var _7b6=t.datagrid("getColumnFields",true).concat(t.datagrid("getColumnFields",false)); +t.find("tbody tr").each(function(){ +data.total++; +var row={}; +$.extend(row,$.parser.parseOptions(this,["iconCls","state"])); +for(var i=0;i<_7b6.length;i++){ +row[_7b6[i]]=$(this).find("td:eq("+i+")").html(); +} +data.rows.push(row); +}); +return data; +}; +var _7b7={render:function(_7b8,_7b9,_7ba){ +var rows=$(_7b8).datagrid("getRows"); +$(_7b9).html(this.renderTable(_7b8,0,rows,_7ba)); +},renderFooter:function(_7bb,_7bc,_7bd){ +var opts=$.data(_7bb,"datagrid").options; +var rows=$.data(_7bb,"datagrid").footer||[]; +var _7be=$(_7bb).datagrid("getColumnFields",_7bd); +var _7bf=[""]; +for(var i=0;i"); +_7bf.push(this.renderRow.call(this,_7bb,_7be,_7bd,i,rows[i])); +_7bf.push(""); +} +_7bf.push("
        "); +$(_7bc).html(_7bf.join("")); +},renderTable:function(_7c0,_7c1,rows,_7c2){ +var _7c3=$.data(_7c0,"datagrid"); +var opts=_7c3.options; +if(_7c2){ +if(!(opts.rownumbers||(opts.frozenColumns&&opts.frozenColumns.length))){ +return ""; +} +} +var _7c4=$(_7c0).datagrid("getColumnFields",_7c2); +var _7c5=[""]; +for(var i=0;i"); +_7c5.push(this.renderRow.call(this,_7c0,_7c4,_7c2,_7c1,row)); +_7c5.push(""); +_7c1++; +} +_7c5.push("
        "); +return _7c5.join(""); +},renderRow:function(_7c8,_7c9,_7ca,_7cb,_7cc){ +var opts=$.data(_7c8,"datagrid").options; +var cc=[]; +if(_7ca&&opts.rownumbers){ +var _7cd=_7cb+1; +if(opts.pagination){ +_7cd+=(opts.pageNumber-1)*opts.pageSize; +} +cc.push("
        "+_7cd+"
        "); +} +for(var i=0;i<_7c9.length;i++){ +var _7ce=_7c9[i]; +var col=$(_7c8).datagrid("getColumnOption",_7ce); +if(col){ +var _7cf=_7cc[_7ce]; +var css=col.styler?(col.styler(_7cf,_7cc,_7cb)||""):""; +var cs=this.getStyleValue(css); +var cls=cs.c?"class=\""+cs.c+"\"":""; +var _7d0=col.hidden?"style=\"display:none;"+cs.s+"\"":(cs.s?"style=\""+cs.s+"\"":""); +cc.push(""); +var _7d0=""; +if(!col.checkbox){ +if(col.align){ +_7d0+="text-align:"+col.align+";"; +} +if(!opts.nowrap){ +_7d0+="white-space:normal;height:auto;"; +}else{ +if(opts.autoRowHeight){ +_7d0+="height:auto;"; +} +} +} +cc.push("
        "); +if(col.checkbox){ +cc.push(""); +}else{ +if(col.formatter){ +cc.push(col.formatter(_7cf,_7cc,_7cb)); +}else{ +cc.push(_7cf); +} +} +cc.push("
        "); +cc.push(""); +} +} +return cc.join(""); +},getStyleValue:function(css){ +var _7d1=""; +var _7d2=""; +if(typeof css=="string"){ +_7d2=css; +}else{ +if(css){ +_7d1=css["class"]||""; +_7d2=css["style"]||""; +} +} +return {c:_7d1,s:_7d2}; +},refreshRow:function(_7d3,_7d4){ +this.updateRow.call(this,_7d3,_7d4,{}); +},updateRow:function(_7d5,_7d6,row){ +var opts=$.data(_7d5,"datagrid").options; +var _7d7=opts.finder.getRow(_7d5,_7d6); +var _7d8=_7d9.call(this,_7d6); +$.extend(_7d7,row); +var _7da=_7d9.call(this,_7d6); +var _7db=_7d8.c; +var _7dc=_7da.s; +var _7dd="datagrid-row "+(_7d6%2&&opts.striped?"datagrid-row-alt ":" ")+_7da.c; +function _7d9(_7de){ +var css=opts.rowStyler?opts.rowStyler.call(_7d5,_7de,_7d7):""; +return this.getStyleValue(css); +}; +function _7df(_7e0){ +var _7e1=$(_7d5).datagrid("getColumnFields",_7e0); +var tr=opts.finder.getTr(_7d5,_7d6,"body",(_7e0?1:2)); +var _7e2=tr.find("div.datagrid-cell-check input[type=checkbox]").is(":checked"); +tr.html(this.renderRow.call(this,_7d5,_7e1,_7e0,_7d6,_7d7)); +tr.attr("style",_7dc).removeClass(_7db).addClass(_7dd); +if(_7e2){ +tr.find("div.datagrid-cell-check input[type=checkbox]")._propAttr("checked",true); +} +}; +_7df.call(this,true); +_7df.call(this,false); +$(_7d5).datagrid("fixRowHeight",_7d6); +},insertRow:function(_7e3,_7e4,row){ +var _7e5=$.data(_7e3,"datagrid"); +var opts=_7e5.options; +var dc=_7e5.dc; +var data=_7e5.data; +if(_7e4==undefined||_7e4==null){ +_7e4=data.rows.length; +} +if(_7e4>data.rows.length){ +_7e4=data.rows.length; +} +function _7e6(_7e7){ +var _7e8=_7e7?1:2; +for(var i=data.rows.length-1;i>=_7e4;i--){ +var tr=opts.finder.getTr(_7e3,i,"body",_7e8); +tr.attr("datagrid-row-index",i+1); +tr.attr("id",_7e5.rowIdPrefix+"-"+_7e8+"-"+(i+1)); +if(_7e7&&opts.rownumbers){ +var _7e9=i+2; +if(opts.pagination){ +_7e9+=(opts.pageNumber-1)*opts.pageSize; +} +tr.find("div.datagrid-cell-rownumber").html(_7e9); +} +if(opts.striped){ +tr.removeClass("datagrid-row-alt").addClass((i+1)%2?"datagrid-row-alt":""); +} +} +}; +function _7ea(_7eb){ +var _7ec=_7eb?1:2; +var _7ed=$(_7e3).datagrid("getColumnFields",_7eb); +var _7ee=_7e5.rowIdPrefix+"-"+_7ec+"-"+_7e4; +var tr=""; +if(_7e4>=data.rows.length){ +if(data.rows.length){ +opts.finder.getTr(_7e3,"","last",_7ec).after(tr); +}else{ +var cc=_7eb?dc.body1:dc.body2; +cc.html(""+tr+"
        "); +} +}else{ +opts.finder.getTr(_7e3,_7e4+1,"body",_7ec).before(tr); +} +}; +_7e6.call(this,true); +_7e6.call(this,false); +_7ea.call(this,true); +_7ea.call(this,false); +data.total+=1; +data.rows.splice(_7e4,0,row); +this.refreshRow.call(this,_7e3,_7e4); +},deleteRow:function(_7ef,_7f0){ +var _7f1=$.data(_7ef,"datagrid"); +var opts=_7f1.options; +var data=_7f1.data; +function _7f2(_7f3){ +var _7f4=_7f3?1:2; +for(var i=_7f0+1;itable>tbody>tr[datagrid-row-index="+_803+"]"); +} +return tr; +}else{ +if(type=="footer"){ +return (_804==1?dc.footer1:dc.footer2).find(">table>tbody>tr[datagrid-row-index="+_803+"]"); +}else{ +if(type=="selected"){ +return (_804==1?dc.body1:dc.body2).find(">table>tbody>tr.datagrid-row-selected"); +}else{ +if(type=="highlight"){ +return (_804==1?dc.body1:dc.body2).find(">table>tbody>tr.datagrid-row-over"); +}else{ +if(type=="checked"){ +return (_804==1?dc.body1:dc.body2).find(">table>tbody>tr.datagrid-row-checked"); +}else{ +if(type=="editing"){ +return (_804==1?dc.body1:dc.body2).find(">table>tbody>tr.datagrid-row-editing"); +}else{ +if(type=="last"){ +return (_804==1?dc.body1:dc.body2).find(">table>tbody>tr[datagrid-row-index]:last"); +}else{ +if(type=="allbody"){ +return (_804==1?dc.body1:dc.body2).find(">table>tbody>tr[datagrid-row-index]"); +}else{ +if(type=="allfooter"){ +return (_804==1?dc.footer1:dc.footer2).find(">table>tbody>tr[datagrid-row-index]"); +} +} +} +} +} +} +} +} +} +} +},getRow:function(_806,p){ +var _807=(typeof p=="object")?p.attr("datagrid-row-index"):p; +return $.data(_806,"datagrid").data.rows[parseInt(_807)]; +},getRows:function(_808){ +return $(_808).datagrid("getRows"); +}},view:_7b7,onBeforeLoad:function(_809){ +},onLoadSuccess:function(){ +},onLoadError:function(){ +},onClickRow:function(_80a,_80b){ +},onDblClickRow:function(_80c,_80d){ +},onClickCell:function(_80e,_80f,_810){ +},onDblClickCell:function(_811,_812,_813){ +},onBeforeSortColumn:function(sort,_814){ +},onSortColumn:function(sort,_815){ +},onResizeColumn:function(_816,_817){ +},onBeforeSelect:function(_818,_819){ +},onSelect:function(_81a,_81b){ +},onBeforeUnselect:function(_81c,_81d){ +},onUnselect:function(_81e,_81f){ +},onSelectAll:function(rows){ +},onUnselectAll:function(rows){ +},onBeforeCheck:function(_820,_821){ +},onCheck:function(_822,_823){ +},onBeforeUncheck:function(_824,_825){ +},onUncheck:function(_826,_827){ +},onCheckAll:function(rows){ +},onUncheckAll:function(rows){ +},onBeforeEdit:function(_828,_829){ +},onBeginEdit:function(_82a,_82b){ +},onEndEdit:function(_82c,_82d,_82e){ +},onAfterEdit:function(_82f,_830,_831){ +},onCancelEdit:function(_832,_833){ +},onHeaderContextMenu:function(e,_834){ +},onRowContextMenu:function(e,_835,_836){ +}}); +})(jQuery); +(function($){ +var _837; +$(document).unbind(".propertygrid").bind("mousedown.propertygrid",function(e){ +var p=$(e.target).closest("div.datagrid-view,div.combo-panel"); +if(p.length){ +return; +} +_838(_837); +_837=undefined; +}); +function _839(_83a){ +var _83b=$.data(_83a,"propertygrid"); +var opts=$.data(_83a,"propertygrid").options; +$(_83a).datagrid($.extend({},opts,{cls:"propertygrid",view:(opts.showGroup?opts.groupView:opts.view),onBeforeEdit:function(_83c,row){ +if(opts.onBeforeEdit.call(_83a,_83c,row)==false){ +return false; +} +var dg=$(this); +var row=dg.datagrid("getRows")[_83c]; +var col=dg.datagrid("getColumnOption","value"); +col.editor=row.editor; +},onClickCell:function(_83d,_83e,_83f){ +if(_837!=this){ +_838(_837); +_837=this; +} +if(opts.editIndex!=_83d){ +_838(_837); +$(this).datagrid("beginEdit",_83d); +var ed=$(this).datagrid("getEditor",{index:_83d,field:_83e}); +if(!ed){ +ed=$(this).datagrid("getEditor",{index:_83d,field:"value"}); +} +if(ed){ +var t=$(ed.target); +var _840=t.data("textbox")?t.textbox("textbox"):t; +_840.focus(); +opts.editIndex=_83d; +} +} +opts.onClickCell.call(_83a,_83d,_83e,_83f); +},loadFilter:function(data){ +_838(this); +return opts.loadFilter.call(this,data); +}})); +}; +function _838(_841){ +var t=$(_841); +if(!t.length){ +return; +} +var opts=$.data(_841,"propertygrid").options; +opts.finder.getTr(_841,null,"editing").each(function(){ +var _842=parseInt($(this).attr("datagrid-row-index")); +if(t.datagrid("validateRow",_842)){ +t.datagrid("endEdit",_842); +}else{ +t.datagrid("cancelEdit",_842); +} +}); +opts.editIndex=undefined; +}; +$.fn.propertygrid=function(_843,_844){ +if(typeof _843=="string"){ +var _845=$.fn.propertygrid.methods[_843]; +if(_845){ +return _845(this,_844); +}else{ +return this.datagrid(_843,_844); +} +} +_843=_843||{}; +return this.each(function(){ +var _846=$.data(this,"propertygrid"); +if(_846){ +$.extend(_846.options,_843); +}else{ +var opts=$.extend({},$.fn.propertygrid.defaults,$.fn.propertygrid.parseOptions(this),_843); +opts.frozenColumns=$.extend(true,[],opts.frozenColumns); +opts.columns=$.extend(true,[],opts.columns); +$.data(this,"propertygrid",{options:opts}); +} +_839(this); +}); +}; +$.fn.propertygrid.methods={options:function(jq){ +return $.data(jq[0],"propertygrid").options; +}}; +$.fn.propertygrid.parseOptions=function(_847){ +return $.extend({},$.fn.datagrid.parseOptions(_847),$.parser.parseOptions(_847,[{showGroup:"boolean"}])); +}; +var _848=$.extend({},$.fn.datagrid.defaults.view,{render:function(_849,_84a,_84b){ +var _84c=[]; +var _84d=this.groups; +for(var i=0;i<_84d.length;i++){ +_84c.push(this.renderGroup.call(this,_849,i,_84d[i],_84b)); +} +$(_84a).html(_84c.join("")); +},renderGroup:function(_84e,_84f,_850,_851){ +var _852=$.data(_84e,"datagrid"); +var opts=_852.options; +var _853=$(_84e).datagrid("getColumnFields",_851); +var _854=[]; +_854.push("
        "); +if((_851&&(opts.rownumbers||opts.frozenColumns.length))||(!_851&&!(opts.rownumbers||opts.frozenColumns.length))){ +_854.push(""); +_854.push(" "); +_854.push(""); +} +if(!_851){ +_854.push(""); +_854.push(opts.groupFormatter.call(_84e,_850.value,_850.rows)); +_854.push(""); +} +_854.push("
        "); +_854.push(""); +var _855=_850.startIndex; +for(var j=0;j<_850.rows.length;j++){ +var css=opts.rowStyler?opts.rowStyler.call(_84e,_855,_850.rows[j]):""; +var _856=""; +var _857=""; +if(typeof css=="string"){ +_857=css; +}else{ +if(css){ +_856=css["class"]||""; +_857=css["style"]||""; +} +} +var cls="class=\"datagrid-row "+(_855%2&&opts.striped?"datagrid-row-alt ":" ")+_856+"\""; +var _858=_857?"style=\""+_857+"\"":""; +var _859=_852.rowIdPrefix+"-"+(_851?1:2)+"-"+_855; +_854.push(""); +_854.push(this.renderRow.call(this,_84e,_853,_851,_855,_850.rows[j])); +_854.push(""); +_855++; +} +_854.push("
        "); +return _854.join(""); +},bindEvents:function(_85a){ +var _85b=$.data(_85a,"datagrid"); +var dc=_85b.dc; +var body=dc.body1.add(dc.body2); +var _85c=($.data(body[0],"events")||$._data(body[0],"events")).click[0].handler; +body.unbind("click").bind("click",function(e){ +var tt=$(e.target); +var _85d=tt.closest("span.datagrid-row-expander"); +if(_85d.length){ +var _85e=_85d.closest("div.datagrid-group").attr("group-index"); +if(_85d.hasClass("datagrid-row-collapse")){ +$(_85a).datagrid("collapseGroup",_85e); +}else{ +$(_85a).datagrid("expandGroup",_85e); +} +}else{ +_85c(e); +} +e.stopPropagation(); +}); +},onBeforeRender:function(_85f,rows){ +var _860=$.data(_85f,"datagrid"); +var opts=_860.options; +_861(); +var _862=[]; +for(var i=0;i"+".datagrid-group{height:"+opts.groupHeight+"px;overflow:hidden;font-weight:bold;border-bottom:1px solid #ccc;}"+".datagrid-group-title,.datagrid-group-expander{display:inline-block;vertical-align:bottom;height:100%;line-height:"+opts.groupHeight+"px;padding:0 4px;}"+".datagrid-group-expander{width:"+opts.expanderWidth+"px;text-align:center;padding:0}"+".datagrid-row-expander{margin:"+Math.floor((opts.groupHeight-16)/2)+"px 0;display:inline-block;width:16px;height:16px;cursor:pointer}"+""); +} +}; +}}); +$.extend($.fn.datagrid.methods,{groups:function(jq){ +return jq.datagrid("options").view.groups; +},expandGroup:function(jq,_869){ +return jq.each(function(){ +var view=$.data(this,"datagrid").dc.view; +var _86a=view.find(_869!=undefined?"div.datagrid-group[group-index=\""+_869+"\"]":"div.datagrid-group"); +var _86b=_86a.find("span.datagrid-row-expander"); +if(_86b.hasClass("datagrid-row-expand")){ +_86b.removeClass("datagrid-row-expand").addClass("datagrid-row-collapse"); +_86a.next("table").show(); +} +$(this).datagrid("fixRowHeight"); +}); +},collapseGroup:function(jq,_86c){ +return jq.each(function(){ +var view=$.data(this,"datagrid").dc.view; +var _86d=view.find(_86c!=undefined?"div.datagrid-group[group-index=\""+_86c+"\"]":"div.datagrid-group"); +var _86e=_86d.find("span.datagrid-row-expander"); +if(_86e.hasClass("datagrid-row-collapse")){ +_86e.removeClass("datagrid-row-collapse").addClass("datagrid-row-expand"); +_86d.next("table").hide(); +} +$(this).datagrid("fixRowHeight"); +}); +}}); +$.extend(_848,{refreshGroupTitle:function(_86f,_870){ +var _871=$.data(_86f,"datagrid"); +var opts=_871.options; +var dc=_871.dc; +var _872=this.groups[_870]; +var span=dc.body2.children("div.datagrid-group[group-index="+_870+"]").find("span.datagrid-group-title"); +span.html(opts.groupFormatter.call(_86f,_872.value,_872.rows)); +},insertRow:function(_873,_874,row){ +var _875=$.data(_873,"datagrid"); +var opts=_875.options; +var dc=_875.dc; +var _876=null; +var _877; +if(!_875.data.rows.length){ +$(_873).datagrid("loadData",[row]); +return; +} +for(var i=0;i_876.startIndex+_876.rows.length){ +_874=_876.startIndex+_876.rows.length; +} +} +$.fn.datagrid.defaults.view.insertRow.call(this,_873,_874,row); +if(_874>=_876.startIndex+_876.rows.length){ +_878(_874,true); +_878(_874,false); +} +_876.rows.splice(_874-_876.startIndex,0,row); +}else{ +_876={value:row[opts.groupField],rows:[row],startIndex:_875.data.rows.length}; +_877=this.groups.length; +dc.body1.append(this.renderGroup.call(this,_873,_877,_876,true)); +dc.body2.append(this.renderGroup.call(this,_873,_877,_876,false)); +this.groups.push(_876); +_875.data.rows.push(row); +} +this.refreshGroupTitle(_873,_877); +function _878(_879,_87a){ +var _87b=_87a?1:2; +var _87c=opts.finder.getTr(_873,_879-1,"body",_87b); +var tr=opts.finder.getTr(_873,_879,"body",_87b); +tr.insertAfter(_87c); +}; +},updateRow:function(_87d,_87e,row){ +var opts=$.data(_87d,"datagrid").options; +$.fn.datagrid.defaults.view.updateRow.call(this,_87d,_87e,row); +var tb=opts.finder.getTr(_87d,_87e,"body",2).closest("table.datagrid-btable"); +var _87f=parseInt(tb.prev().attr("group-index")); +this.refreshGroupTitle(_87d,_87f); +},deleteRow:function(_880,_881){ +var _882=$.data(_880,"datagrid"); +var opts=_882.options; +var dc=_882.dc; +var body=dc.body1.add(dc.body2); +var tb=opts.finder.getTr(_880,_881,"body",2).closest("table.datagrid-btable"); +var _883=parseInt(tb.prev().attr("group-index")); +$.fn.datagrid.defaults.view.deleteRow.call(this,_880,_881); +var _884=this.groups[_883]; +if(_884.rows.length>1){ +_884.rows.splice(_881-_884.startIndex,1); +this.refreshGroupTitle(_880,_883); +}else{ +body.children("div.datagrid-group[group-index="+_883+"]").remove(); +for(var i=_883+1;i").insertBefore(tr.find(".tree-title")); +} +if(row.checkState=="checked"){ +_8a6(_8ba,_8bb,true,true); +}else{ +if(row.checkState=="unchecked"){ +_8a6(_8ba,_8bb,false,true); +}else{ +var flag=_8b8(row); +if(flag===0){ +_8a6(_8ba,_8bb,false,true); +}else{ +if(flag===1){ +_8a6(_8ba,_8bb,true,true); +} +} +} +} +}else{ +ck.remove(); +row.checkState=undefined; +row.checked=undefined; +_8af(_8ba,row); +} +}; +function _8bc(_8bd,_8be){ +var opts=$.data(_8bd,"treegrid").options; +var tr1=opts.finder.getTr(_8bd,_8be,"body",1); +var tr2=opts.finder.getTr(_8bd,_8be,"body",2); +var _8bf=$(_8bd).datagrid("getColumnFields",true).length+(opts.rownumbers?1:0); +var _8c0=$(_8bd).datagrid("getColumnFields",false).length; +_8c1(tr1,_8bf); +_8c1(tr2,_8c0); +function _8c1(tr,_8c2){ +$(""+""+"
        "+""+"").insertAfter(tr); +}; +}; +function _8c3(_8c4,_8c5,data,_8c6,_8c7){ +var _8c8=$.data(_8c4,"treegrid"); +var opts=_8c8.options; +var dc=_8c8.dc; +data=opts.loadFilter.call(_8c4,data,_8c5); +var node=find(_8c4,_8c5); +if(node){ +var _8c9=opts.finder.getTr(_8c4,_8c5,"body",1); +var _8ca=opts.finder.getTr(_8c4,_8c5,"body",2); +var cc1=_8c9.next("tr.treegrid-tr-tree").children("td").children("div"); +var cc2=_8ca.next("tr.treegrid-tr-tree").children("td").children("div"); +if(!_8c6){ +node.children=[]; +} +}else{ +var cc1=dc.body1; +var cc2=dc.body2; +if(!_8c6){ +_8c8.data=[]; +} +} +if(!_8c6){ +cc1.empty(); +cc2.empty(); +} +if(opts.view.onBeforeRender){ +opts.view.onBeforeRender.call(opts.view,_8c4,_8c5,data); +} +opts.view.render.call(opts.view,_8c4,cc1,true); +opts.view.render.call(opts.view,_8c4,cc2,false); +if(opts.showFooter){ +opts.view.renderFooter.call(opts.view,_8c4,dc.footer1,true); +opts.view.renderFooter.call(opts.view,_8c4,dc.footer2,false); +} +if(opts.view.onAfterRender){ +opts.view.onAfterRender.call(opts.view,_8c4); +} +if(!_8c5&&opts.pagination){ +var _8cb=$.data(_8c4,"treegrid").total; +var _8cc=$(_8c4).datagrid("getPager"); +if(_8cc.pagination("options").total!=_8cb){ +_8cc.pagination({total:_8cb}); +} +} +_897(_8c4); +_89f(_8c4); +$(_8c4).treegrid("showLines"); +$(_8c4).treegrid("setSelectionState"); +$(_8c4).treegrid("autoSizeColumn"); +if(!_8c7){ +opts.onLoadSuccess.call(_8c4,node,data); +} +}; +function _896(_8cd,_8ce,_8cf,_8d0,_8d1){ +var opts=$.data(_8cd,"treegrid").options; +var body=$(_8cd).datagrid("getPanel").find("div.datagrid-body"); +if(_8ce==undefined&&opts.queryParams){ +opts.queryParams.id=undefined; +} +if(_8cf){ +opts.queryParams=_8cf; +} +var _8d2=$.extend({},opts.queryParams); +if(opts.pagination){ +$.extend(_8d2,{page:opts.pageNumber,rows:opts.pageSize}); +} +if(opts.sortName){ +$.extend(_8d2,{sort:opts.sortName,order:opts.sortOrder}); +} +var row=find(_8cd,_8ce); +if(opts.onBeforeLoad.call(_8cd,row,_8d2)==false){ +return; +} +var _8d3=body.find("tr[node-id=\""+_8ce+"\"] span.tree-folder"); +_8d3.addClass("tree-loading"); +$(_8cd).treegrid("loading"); +var _8d4=opts.loader.call(_8cd,_8d2,function(data){ +_8d3.removeClass("tree-loading"); +$(_8cd).treegrid("loaded"); +_8c3(_8cd,_8ce,data,_8d0); +if(_8d1){ +_8d1(); +} +},function(){ +_8d3.removeClass("tree-loading"); +$(_8cd).treegrid("loaded"); +opts.onLoadError.apply(_8cd,arguments); +if(_8d1){ +_8d1(); +} +}); +if(_8d4==false){ +_8d3.removeClass("tree-loading"); +$(_8cd).treegrid("loaded"); +} +}; +function _8d5(_8d6){ +var _8d7=_8d8(_8d6); +return _8d7.length?_8d7[0]:null; +}; +function _8d8(_8d9){ +return $.data(_8d9,"treegrid").data; +}; +function _8b7(_8da,_8db){ +var row=find(_8da,_8db); +if(row._parentId){ +return find(_8da,row._parentId); +}else{ +return null; +} +}; +function _89b(_8dc,_8dd){ +var data=$.data(_8dc,"treegrid").data; +if(_8dd){ +var _8de=find(_8dc,_8dd); +data=_8de?(_8de.children||[]):[]; +} +var _8df=[]; +$.easyui.forEach(data,true,function(node){ +_8df.push(node); +}); +return _8df; +}; +function _8e0(_8e1,_8e2){ +var opts=$.data(_8e1,"treegrid").options; +var tr=opts.finder.getTr(_8e1,_8e2); +var node=tr.children("td[field=\""+opts.treeField+"\"]"); +return node.find("span.tree-indent,span.tree-hit").length; +}; +function find(_8e3,_8e4){ +var _8e5=$.data(_8e3,"treegrid"); +var opts=_8e5.options; +var _8e6=null; +$.easyui.forEach(_8e5.data,true,function(node){ +if(node[opts.idField]==_8e4){ +_8e6=node; +return false; +} +}); +return _8e6; +}; +function _8e7(_8e8,_8e9){ +var opts=$.data(_8e8,"treegrid").options; +var row=find(_8e8,_8e9); +var tr=opts.finder.getTr(_8e8,_8e9); +var hit=tr.find("span.tree-hit"); +if(hit.length==0){ +return; +} +if(hit.hasClass("tree-collapsed")){ +return; +} +if(opts.onBeforeCollapse.call(_8e8,row)==false){ +return; +} +hit.removeClass("tree-expanded tree-expanded-hover").addClass("tree-collapsed"); +hit.next().removeClass("tree-folder-open"); +row.state="closed"; +tr=tr.next("tr.treegrid-tr-tree"); +var cc=tr.children("td").children("div"); +if(opts.animate){ +cc.slideUp("normal",function(){ +$(_8e8).treegrid("autoSizeColumn"); +_897(_8e8,_8e9); +opts.onCollapse.call(_8e8,row); +}); +}else{ +cc.hide(); +$(_8e8).treegrid("autoSizeColumn"); +_897(_8e8,_8e9); +opts.onCollapse.call(_8e8,row); +} +}; +function _8ea(_8eb,_8ec){ +var opts=$.data(_8eb,"treegrid").options; +var tr=opts.finder.getTr(_8eb,_8ec); +var hit=tr.find("span.tree-hit"); +var row=find(_8eb,_8ec); +if(hit.length==0){ +return; +} +if(hit.hasClass("tree-expanded")){ +return; +} +if(opts.onBeforeExpand.call(_8eb,row)==false){ +return; +} +hit.removeClass("tree-collapsed tree-collapsed-hover").addClass("tree-expanded"); +hit.next().addClass("tree-folder-open"); +var _8ed=tr.next("tr.treegrid-tr-tree"); +if(_8ed.length){ +var cc=_8ed.children("td").children("div"); +_8ee(cc); +}else{ +_8bc(_8eb,row[opts.idField]); +var _8ed=tr.next("tr.treegrid-tr-tree"); +var cc=_8ed.children("td").children("div"); +cc.hide(); +var _8ef=$.extend({},opts.queryParams||{}); +_8ef.id=row[opts.idField]; +_896(_8eb,row[opts.idField],_8ef,true,function(){ +if(cc.is(":empty")){ +_8ed.remove(); +}else{ +_8ee(cc); +} +}); +} +function _8ee(cc){ +row.state="open"; +if(opts.animate){ +cc.slideDown("normal",function(){ +$(_8eb).treegrid("autoSizeColumn"); +_897(_8eb,_8ec); +opts.onExpand.call(_8eb,row); +}); +}else{ +cc.show(); +$(_8eb).treegrid("autoSizeColumn"); +_897(_8eb,_8ec); +opts.onExpand.call(_8eb,row); +} +}; +}; +function _8a5(_8f0,_8f1){ +var opts=$.data(_8f0,"treegrid").options; +var tr=opts.finder.getTr(_8f0,_8f1); +var hit=tr.find("span.tree-hit"); +if(hit.hasClass("tree-expanded")){ +_8e7(_8f0,_8f1); +}else{ +_8ea(_8f0,_8f1); +} +}; +function _8f2(_8f3,_8f4){ +var opts=$.data(_8f3,"treegrid").options; +var _8f5=_89b(_8f3,_8f4); +if(_8f4){ +_8f5.unshift(find(_8f3,_8f4)); +} +for(var i=0;i<_8f5.length;i++){ +_8e7(_8f3,_8f5[i][opts.idField]); +} +}; +function _8f6(_8f7,_8f8){ +var opts=$.data(_8f7,"treegrid").options; +var _8f9=_89b(_8f7,_8f8); +if(_8f8){ +_8f9.unshift(find(_8f7,_8f8)); +} +for(var i=0;i<_8f9.length;i++){ +_8ea(_8f7,_8f9[i][opts.idField]); +} +}; +function _8fa(_8fb,_8fc){ +var opts=$.data(_8fb,"treegrid").options; +var ids=[]; +var p=_8b7(_8fb,_8fc); +while(p){ +var id=p[opts.idField]; +ids.unshift(id); +p=_8b7(_8fb,id); +} +for(var i=0;i").insertBefore(_900); +if(hit.prev().length){ +hit.prev().remove(); +} +} +} +_8c3(_8fe,_8ff.parent,_8ff.data,true,true); +}; +function _901(_902,_903){ +var ref=_903.before||_903.after; +var opts=$.data(_902,"treegrid").options; +var _904=_8b7(_902,ref); +_8fd(_902,{parent:(_904?_904[opts.idField]:null),data:[_903.data]}); +var _905=_904?_904.children:$(_902).treegrid("getRoots"); +for(var i=0;i<_905.length;i++){ +if(_905[i][opts.idField]==ref){ +var _906=_905[_905.length-1]; +_905.splice(_903.before?i:(i+1),0,_906); +_905.splice(_905.length-1,1); +break; +} +} +_907(true); +_907(false); +_89f(_902); +$(_902).treegrid("showLines"); +function _907(_908){ +var _909=_908?1:2; +var tr=opts.finder.getTr(_902,_903.data[opts.idField],"body",_909); +var _90a=tr.closest("table.datagrid-btable"); +tr=tr.parent().children(); +var dest=opts.finder.getTr(_902,ref,"body",_909); +if(_903.before){ +tr.insertBefore(dest); +}else{ +var sub=dest.next("tr.treegrid-tr-tree"); +tr.insertAfter(sub.length?sub:dest); +} +_90a.remove(); +}; +}; +function _90b(_90c,_90d){ +var _90e=$.data(_90c,"treegrid"); +var opts=_90e.options; +var prow=_8b7(_90c,_90d); +$(_90c).datagrid("deleteRow",_90d); +$.easyui.removeArrayItem(_90e.checkedRows,opts.idField,_90d); +_89f(_90c); +if(prow){ +_8b9(_90c,prow[opts.idField]); +} +_90e.total-=1; +$(_90c).datagrid("getPager").pagination("refresh",{total:_90e.total}); +$(_90c).treegrid("showLines"); +}; +function _90f(_910){ +var t=$(_910); +var opts=t.treegrid("options"); +if(opts.lines){ +t.treegrid("getPanel").addClass("tree-lines"); +}else{ +t.treegrid("getPanel").removeClass("tree-lines"); +return; +} +t.treegrid("getPanel").find("span.tree-indent").removeClass("tree-line tree-join tree-joinbottom"); +t.treegrid("getPanel").find("div.datagrid-cell").removeClass("tree-node-last tree-root-first tree-root-one"); +var _911=t.treegrid("getRoots"); +if(_911.length>1){ +_912(_911[0]).addClass("tree-root-first"); +}else{ +if(_911.length==1){ +_912(_911[0]).addClass("tree-root-one"); +} +} +_913(_911); +_914(_911); +function _913(_915){ +$.map(_915,function(node){ +if(node.children&&node.children.length){ +_913(node.children); +}else{ +var cell=_912(node); +cell.find(".tree-icon").prev().addClass("tree-join"); +} +}); +if(_915.length){ +var cell=_912(_915[_915.length-1]); +cell.addClass("tree-node-last"); +cell.find(".tree-join").removeClass("tree-join").addClass("tree-joinbottom"); +} +}; +function _914(_916){ +$.map(_916,function(node){ +if(node.children&&node.children.length){ +_914(node.children); +} +}); +for(var i=0;i<_916.length-1;i++){ +var node=_916[i]; +var _917=t.treegrid("getLevel",node[opts.idField]); +var tr=opts.finder.getTr(_910,node[opts.idField]); +var cc=tr.next().find("tr.datagrid-row td[field=\""+opts.treeField+"\"] div.datagrid-cell"); +cc.find("span:eq("+(_917-1)+")").addClass("tree-line"); +} +}; +function _912(node){ +var tr=opts.finder.getTr(_910,node[opts.idField]); +var cell=tr.find("td[field=\""+opts.treeField+"\"] div.datagrid-cell"); +return cell; +}; +}; +$.fn.treegrid=function(_918,_919){ +if(typeof _918=="string"){ +var _91a=$.fn.treegrid.methods[_918]; +if(_91a){ +return _91a(this,_919); +}else{ +return this.datagrid(_918,_919); +} +} +_918=_918||{}; +return this.each(function(){ +var _91b=$.data(this,"treegrid"); +if(_91b){ +$.extend(_91b.options,_918); +}else{ +_91b=$.data(this,"treegrid",{options:$.extend({},$.fn.treegrid.defaults,$.fn.treegrid.parseOptions(this),_918),data:[],checkedRows:[],tmpIds:[]}); +} +_886(this); +if(_91b.options.data){ +$(this).treegrid("loadData",_91b.options.data); +} +_896(this); +}); +}; +$.fn.treegrid.methods={options:function(jq){ +return $.data(jq[0],"treegrid").options; +},resize:function(jq,_91c){ +return jq.each(function(){ +$(this).datagrid("resize",_91c); +}); +},fixRowHeight:function(jq,_91d){ +return jq.each(function(){ +_897(this,_91d); +}); +},loadData:function(jq,data){ +return jq.each(function(){ +_8c3(this,data.parent,data); +}); +},load:function(jq,_91e){ +return jq.each(function(){ +$(this).treegrid("options").pageNumber=1; +$(this).treegrid("getPager").pagination({pageNumber:1}); +$(this).treegrid("reload",_91e); +}); +},reload:function(jq,id){ +return jq.each(function(){ +var opts=$(this).treegrid("options"); +var _91f={}; +if(typeof id=="object"){ +_91f=id; +}else{ +_91f=$.extend({},opts.queryParams); +_91f.id=id; +} +if(_91f.id){ +var node=$(this).treegrid("find",_91f.id); +if(node.children){ +node.children.splice(0,node.children.length); +} +opts.queryParams=_91f; +var tr=opts.finder.getTr(this,_91f.id); +tr.next("tr.treegrid-tr-tree").remove(); +tr.find("span.tree-hit").removeClass("tree-expanded tree-expanded-hover").addClass("tree-collapsed"); +_8ea(this,_91f.id); +}else{ +_896(this,null,_91f); +} +}); +},reloadFooter:function(jq,_920){ +return jq.each(function(){ +var opts=$.data(this,"treegrid").options; +var dc=$.data(this,"datagrid").dc; +if(_920){ +$.data(this,"treegrid").footer=_920; +} +if(opts.showFooter){ +opts.view.renderFooter.call(opts.view,this,dc.footer1,true); +opts.view.renderFooter.call(opts.view,this,dc.footer2,false); +if(opts.view.onAfterRender){ +opts.view.onAfterRender.call(opts.view,this); +} +$(this).treegrid("fixRowHeight"); +} +}); +},getData:function(jq){ +return $.data(jq[0],"treegrid").data; +},getFooterRows:function(jq){ +return $.data(jq[0],"treegrid").footer; +},getRoot:function(jq){ +return _8d5(jq[0]); +},getRoots:function(jq){ +return _8d8(jq[0]); +},getParent:function(jq,id){ +return _8b7(jq[0],id); +},getChildren:function(jq,id){ +return _89b(jq[0],id); +},getLevel:function(jq,id){ +return _8e0(jq[0],id); +},find:function(jq,id){ +return find(jq[0],id); +},isLeaf:function(jq,id){ +var opts=$.data(jq[0],"treegrid").options; +var tr=opts.finder.getTr(jq[0],id); +var hit=tr.find("span.tree-hit"); +return hit.length==0; +},select:function(jq,id){ +return jq.each(function(){ +$(this).datagrid("selectRow",id); +}); +},unselect:function(jq,id){ +return jq.each(function(){ +$(this).datagrid("unselectRow",id); +}); +},collapse:function(jq,id){ +return jq.each(function(){ +_8e7(this,id); +}); +},expand:function(jq,id){ +return jq.each(function(){ +_8ea(this,id); +}); +},toggle:function(jq,id){ +return jq.each(function(){ +_8a5(this,id); +}); +},collapseAll:function(jq,id){ +return jq.each(function(){ +_8f2(this,id); +}); +},expandAll:function(jq,id){ +return jq.each(function(){ +_8f6(this,id); +}); +},expandTo:function(jq,id){ +return jq.each(function(){ +_8fa(this,id); +}); +},append:function(jq,_921){ +return jq.each(function(){ +_8fd(this,_921); +}); +},insert:function(jq,_922){ +return jq.each(function(){ +_901(this,_922); +}); +},remove:function(jq,id){ +return jq.each(function(){ +_90b(this,id); +}); +},pop:function(jq,id){ +var row=jq.treegrid("find",id); +jq.treegrid("remove",id); +return row; +},refresh:function(jq,id){ +return jq.each(function(){ +var opts=$.data(this,"treegrid").options; +opts.view.refreshRow.call(opts.view,this,id); +}); +},update:function(jq,_923){ +return jq.each(function(){ +var opts=$.data(this,"treegrid").options; +var row=_923.row; +opts.view.updateRow.call(opts.view,this,_923.id,row); +if(row.checked!=undefined){ +row=find(this,_923.id); +$.extend(row,{checkState:row.checked?"checked":(row.checked===false?"unchecked":undefined)}); +_8b9(this,_923.id); +} +}); +},beginEdit:function(jq,id){ +return jq.each(function(){ +$(this).datagrid("beginEdit",id); +$(this).treegrid("fixRowHeight",id); +}); +},endEdit:function(jq,id){ +return jq.each(function(){ +$(this).datagrid("endEdit",id); +}); +},cancelEdit:function(jq,id){ +return jq.each(function(){ +$(this).datagrid("cancelEdit",id); +}); +},showLines:function(jq){ +return jq.each(function(){ +_90f(this); +}); +},setSelectionState:function(jq){ +return jq.each(function(){ +$(this).datagrid("setSelectionState"); +var _924=$(this).data("treegrid"); +for(var i=0;i<_924.tmpIds.length;i++){ +_8a6(this,_924.tmpIds[i],true,true); +} +_924.tmpIds=[]; +}); +},getCheckedNodes:function(jq,_925){ +_925=_925||"checked"; +var rows=[]; +$.easyui.forEach(jq.data("treegrid").checkedRows,false,function(row){ +if(row.checkState==_925){ +rows.push(row); +} +}); +return rows; +},checkNode:function(jq,id){ +return jq.each(function(){ +_8a6(this,id,true); +}); +},uncheckNode:function(jq,id){ +return jq.each(function(){ +_8a6(this,id,false); +}); +},clearChecked:function(jq){ +return jq.each(function(){ +var _926=this; +var opts=$(_926).treegrid("options"); +$(_926).datagrid("clearChecked"); +$.map($(_926).treegrid("getCheckedNodes"),function(row){ +_8a6(_926,row[opts.idField],false,true); +}); +}); +}}; +$.fn.treegrid.parseOptions=function(_927){ +return $.extend({},$.fn.datagrid.parseOptions(_927),$.parser.parseOptions(_927,["treeField",{checkbox:"boolean",cascadeCheck:"boolean",onlyLeafCheck:"boolean"},{animate:"boolean"}])); +}; +var _928=$.extend({},$.fn.datagrid.defaults.view,{render:function(_929,_92a,_92b){ +var opts=$.data(_929,"treegrid").options; +var _92c=$(_929).datagrid("getColumnFields",_92b); +var _92d=$.data(_929,"datagrid").rowIdPrefix; +if(_92b){ +if(!(opts.rownumbers||(opts.frozenColumns&&opts.frozenColumns.length))){ +return; +} +} +var view=this; +if(this.treeNodes&&this.treeNodes.length){ +var _92e=_92f.call(this,_92b,this.treeLevel,this.treeNodes); +$(_92a).append(_92e.join("")); +} +function _92f(_930,_931,_932){ +var _933=$(_929).treegrid("getParent",_932[0][opts.idField]); +var _934=(_933?_933.children.length:$(_929).treegrid("getRoots").length)-_932.length; +var _935=[""]; +for(var i=0;i<_932.length;i++){ +var row=_932[i]; +if(row.state!="open"&&row.state!="closed"){ +row.state="open"; +} +var css=opts.rowStyler?opts.rowStyler.call(_929,row):""; +var cs=this.getStyleValue(css); +var cls="class=\"datagrid-row "+(_934++%2&&opts.striped?"datagrid-row-alt ":" ")+cs.c+"\""; +var _936=cs.s?"style=\""+cs.s+"\"":""; +var _937=_92d+"-"+(_930?1:2)+"-"+row[opts.idField]; +_935.push(""); +_935=_935.concat(view.renderRow.call(view,_929,_92c,_930,_931,row)); +_935.push(""); +if(row.children&&row.children.length){ +var tt=_92f.call(this,_930,_931+1,row.children); +var v=row.state=="closed"?"none":"block"; +_935.push(""); +} +} +_935.push("
        "); +_935=_935.concat(tt); +_935.push("
        "); +return _935; +}; +},renderFooter:function(_938,_939,_93a){ +var opts=$.data(_938,"treegrid").options; +var rows=$.data(_938,"treegrid").footer||[]; +var _93b=$(_938).datagrid("getColumnFields",_93a); +var _93c=[""]; +for(var i=0;i"); +_93c.push(this.renderRow.call(this,_938,_93b,_93a,0,row)); +_93c.push(""); +} +_93c.push("
        "); +$(_939).html(_93c.join("")); +},renderRow:function(_93d,_93e,_93f,_940,row){ +var _941=$.data(_93d,"treegrid"); +var opts=_941.options; +var cc=[]; +if(_93f&&opts.rownumbers){ +cc.push("
        0
        "); +} +for(var i=0;i<_93e.length;i++){ +var _942=_93e[i]; +var col=$(_93d).datagrid("getColumnOption",_942); +if(col){ +var css=col.styler?(col.styler(row[_942],row)||""):""; +var cs=this.getStyleValue(css); +var cls=cs.c?"class=\""+cs.c+"\"":""; +var _943=col.hidden?"style=\"display:none;"+cs.s+"\"":(cs.s?"style=\""+cs.s+"\"":""); +cc.push(""); +var _943=""; +if(!col.checkbox){ +if(col.align){ +_943+="text-align:"+col.align+";"; +} +if(!opts.nowrap){ +_943+="white-space:normal;height:auto;"; +}else{ +if(opts.autoRowHeight){ +_943+="height:auto;"; +} +} +} +cc.push("
        "); +if(col.checkbox){ +if(row.checked){ +cc.push(""); +}else{ +var val=null; +if(col.formatter){ +val=col.formatter(row[_942],row); +}else{ +val=row[_942]; +} +if(_942==opts.treeField){ +for(var j=0;j<_940;j++){ +cc.push(""); +} +if(row.state=="closed"){ +cc.push(""); +cc.push(""); +}else{ +if(row.children&&row.children.length){ +cc.push(""); +cc.push(""); +}else{ +cc.push(""); +cc.push(""); +} +} +if(this.hasCheckbox(_93d,row)){ +var flag=0; +var crow=$.easyui.getArrayItem(_941.checkedRows,opts.idField,row[opts.idField]); +if(crow){ +flag=crow.checkState=="checked"?1:2; +}else{ +var prow=$.easyui.getArrayItem(_941.checkedRows,opts.idField,row._parentId); +if(prow&&prow.checkState=="checked"&&opts.cascadeCheck){ +flag=1; +row.checked=true; +$.easyui.addArrayItem(_941.checkedRows,opts.idField,row); +}else{ +if(row.checked){ +$.easyui.addArrayItem(_941.tmpIds,row[opts.idField]); +} +} +row.checkState=flag?"checked":"unchecked"; +} +cc.push(""); +}else{ +row.checkState=undefined; +row.checked=undefined; +} +cc.push(""+val+""); +}else{ +cc.push(val); +} +} +cc.push("
        "); +cc.push(""); +} +} +return cc.join(""); +},hasCheckbox:function(_944,row){ +var opts=$.data(_944,"treegrid").options; +if(opts.checkbox){ +if($.isFunction(opts.checkbox)){ +if(opts.checkbox.call(_944,row)){ +return true; +}else{ +return false; +} +}else{ +if(opts.onlyLeafCheck){ +if(row.state=="open"&&!(row.children&&row.children.length)){ +return true; +} +}else{ +return true; +} +} +} +return false; +},refreshRow:function(_945,id){ +this.updateRow.call(this,_945,id,{}); +},updateRow:function(_946,id,row){ +var opts=$.data(_946,"treegrid").options; +var _947=$(_946).treegrid("find",id); +$.extend(_947,row); +var _948=$(_946).treegrid("getLevel",id)-1; +var _949=opts.rowStyler?opts.rowStyler.call(_946,_947):""; +var _94a=$.data(_946,"datagrid").rowIdPrefix; +var _94b=_947[opts.idField]; +function _94c(_94d){ +var _94e=$(_946).treegrid("getColumnFields",_94d); +var tr=opts.finder.getTr(_946,id,"body",(_94d?1:2)); +var _94f=tr.find("div.datagrid-cell-rownumber").html(); +var _950=tr.find("div.datagrid-cell-check input[type=checkbox]").is(":checked"); +tr.html(this.renderRow(_946,_94e,_94d,_948,_947)); +tr.attr("style",_949||""); +tr.find("div.datagrid-cell-rownumber").html(_94f); +if(_950){ +tr.find("div.datagrid-cell-check input[type=checkbox]")._propAttr("checked",true); +} +if(_94b!=id){ +tr.attr("id",_94a+"-"+(_94d?1:2)+"-"+_94b); +tr.attr("node-id",_94b); +} +}; +_94c.call(this,true); +_94c.call(this,false); +$(_946).treegrid("fixRowHeight",id); +},deleteRow:function(_951,id){ +var opts=$.data(_951,"treegrid").options; +var tr=opts.finder.getTr(_951,id); +tr.next("tr.treegrid-tr-tree").remove(); +tr.remove(); +var _952=del(id); +if(_952){ +if(_952.children.length==0){ +tr=opts.finder.getTr(_951,_952[opts.idField]); +tr.next("tr.treegrid-tr-tree").remove(); +var cell=tr.children("td[field=\""+opts.treeField+"\"]").children("div.datagrid-cell"); +cell.find(".tree-icon").removeClass("tree-folder").addClass("tree-file"); +cell.find(".tree-hit").remove(); +$("").prependTo(cell); +} +} +function del(id){ +var cc; +var _953=$(_951).treegrid("getParent",id); +if(_953){ +cc=_953.children; +}else{ +cc=$(_951).treegrid("getData"); +} +for(var i=0;ib?1:-1); +}; +r=_95e(r1[sn],r2[sn])*(so=="asc"?1:-1); +if(r!=0){ +return r; +} +} +return r; +}); +for(var i=0;i"); +if(!_981){ +_984.push(""); +_984.push(opts.groupFormatter.call(_97e,_980.value,_980.rows)); +_984.push(""); +} +_984.push("
        "); +_984.push(this.renderTable(_97e,_980.startIndex,_980.rows,_981)); +return _984.join(""); +},groupRows:function(_985,rows){ +var _986=$.data(_985,"datagrid"); +var opts=_986.options; +var _987=[]; +for(var i=0;idiv.combo-p>div.combo-panel:visible").panel("close"); +}); +}); +function _997(_998){ +var _999=$.data(_998,"combo"); +var opts=_999.options; +if(!_999.panel){ +_999.panel=$("
        ").appendTo("body"); +_999.panel.panel({minWidth:opts.panelMinWidth,maxWidth:opts.panelMaxWidth,minHeight:opts.panelMinHeight,maxHeight:opts.panelMaxHeight,doSize:false,closed:true,cls:"combo-p",style:{position:"absolute",zIndex:10},onOpen:function(){ +var _99a=$(this).panel("options").comboTarget; +var _99b=$.data(_99a,"combo"); +if(_99b){ +_99b.options.onShowPanel.call(_99a); +} +},onBeforeClose:function(){ +_996(this); +},onClose:function(){ +var _99c=$(this).panel("options").comboTarget; +var _99d=$(_99c).data("combo"); +if(_99d){ +_99d.options.onHidePanel.call(_99c); +} +}}); +} +var _99e=$.extend(true,[],opts.icons); +if(opts.hasDownArrow){ +_99e.push({iconCls:"combo-arrow",handler:function(e){ +_9a2(e.data.target); +}}); +} +$(_998).addClass("combo-f").textbox($.extend({},opts,{icons:_99e,onChange:function(){ +}})); +$(_998).attr("comboName",$(_998).attr("textboxName")); +_999.combo=$(_998).next(); +_999.combo.addClass("combo"); +}; +function _99f(_9a0){ +var _9a1=$.data(_9a0,"combo"); +var opts=_9a1.options; +var p=_9a1.panel; +if(p.is(":visible")){ +p.panel("close"); +} +if(!opts.cloned){ +p.panel("destroy"); +} +$(_9a0).textbox("destroy"); +}; +function _9a2(_9a3){ +var _9a4=$.data(_9a3,"combo").panel; +if(_9a4.is(":visible")){ +_9a5(_9a3); +}else{ +var p=$(_9a3).closest("div.combo-panel"); +$("div.combo-panel:visible").not(_9a4).not(p).panel("close"); +$(_9a3).combo("showPanel"); +} +$(_9a3).combo("textbox").focus(); +}; +function _996(_9a6){ +$(_9a6).find(".combo-f").each(function(){ +var p=$(this).combo("panel"); +if(p.is(":visible")){ +p.panel("close"); +} +}); +}; +function _9a7(e){ +var _9a8=e.data.target; +var _9a9=$.data(_9a8,"combo"); +var opts=_9a9.options; +var _9aa=_9a9.panel; +if(!opts.editable){ +_9a2(_9a8); +}else{ +var p=$(_9a8).closest("div.combo-panel"); +$("div.combo-panel:visible").not(_9aa).not(p).panel("close"); +} +}; +function _9ab(e){ +var _9ac=e.data.target; +var t=$(_9ac); +var _9ad=t.data("combo"); +var opts=t.combo("options"); +switch(e.keyCode){ +case 38: +opts.keyHandler.up.call(_9ac,e); +break; +case 40: +opts.keyHandler.down.call(_9ac,e); +break; +case 37: +opts.keyHandler.left.call(_9ac,e); +break; +case 39: +opts.keyHandler.right.call(_9ac,e); +break; +case 13: +e.preventDefault(); +opts.keyHandler.enter.call(_9ac,e); +return false; +case 9: +case 27: +_9a5(_9ac); +break; +default: +if(opts.editable){ +if(_9ad.timer){ +clearTimeout(_9ad.timer); +} +_9ad.timer=setTimeout(function(){ +var q=t.combo("getText"); +if(_9ad.previousText!=q){ +_9ad.previousText=q; +t.combo("showPanel"); +opts.keyHandler.query.call(_9ac,q,e); +t.combo("validate"); +} +},opts.delay); +} +} +}; +function _9ae(_9af){ +var _9b0=$.data(_9af,"combo"); +var _9b1=_9b0.combo; +var _9b2=_9b0.panel; +var opts=$(_9af).combo("options"); +var _9b3=_9b2.panel("options"); +_9b3.comboTarget=_9af; +if(_9b3.closed){ +_9b2.panel("panel").show().css({zIndex:($.fn.menu?$.fn.menu.defaults.zIndex++:($.fn.window?$.fn.window.defaults.zIndex++:99)),left:-999999}); +_9b2.panel("resize",{width:(opts.panelWidth?opts.panelWidth:_9b1._outerWidth()),height:opts.panelHeight}); +_9b2.panel("panel").hide(); +_9b2.panel("open"); +} +(function(){ +if(_9b2.is(":visible")){ +_9b2.panel("move",{left:_9b4(),top:_9b5()}); +setTimeout(arguments.callee,200); +} +})(); +function _9b4(){ +var left=_9b1.offset().left; +if(opts.panelAlign=="right"){ +left+=_9b1._outerWidth()-_9b2._outerWidth(); +} +if(left+_9b2._outerWidth()>$(window)._outerWidth()+$(document).scrollLeft()){ +left=$(window)._outerWidth()+$(document).scrollLeft()-_9b2._outerWidth(); +} +if(left<0){ +left=0; +} +return left; +}; +function _9b5(){ +var top=_9b1.offset().top+_9b1._outerHeight(); +if(top+_9b2._outerHeight()>$(window)._outerHeight()+$(document).scrollTop()){ +top=_9b1.offset().top-_9b2._outerHeight(); +} +if(top<$(document).scrollTop()){ +top=_9b1.offset().top+_9b1._outerHeight(); +} +return top; +}; +}; +function _9a5(_9b6){ +var _9b7=$.data(_9b6,"combo").panel; +_9b7.panel("close"); +}; +function _9b8(_9b9,text){ +var _9ba=$.data(_9b9,"combo"); +var _9bb=$(_9b9).textbox("getText"); +if(_9bb!=text){ +$(_9b9).textbox("setText",text); +_9ba.previousText=text; +} +}; +function _9bc(_9bd){ +var _9be=[]; +var _9bf=$.data(_9bd,"combo").combo; +_9bf.find(".textbox-value").each(function(){ +_9be.push($(this).val()); +}); +return _9be; +}; +function _9c0(_9c1,_9c2){ +var _9c3=$.data(_9c1,"combo"); +var opts=_9c3.options; +var _9c4=_9c3.combo; +if(!$.isArray(_9c2)){ +_9c2=_9c2.split(opts.separator); +} +var _9c5=_9bc(_9c1); +_9c4.find(".textbox-value").remove(); +var name=$(_9c1).attr("textboxName")||""; +for(var i=0;i<_9c2.length;i++){ +var _9c6=$("").appendTo(_9c4); +_9c6.attr("name",name); +if(opts.disabled){ +_9c6.attr("disabled","disabled"); +} +_9c6.val(_9c2[i]); +} +var _9c7=(function(){ +if(_9c5.length!=_9c2.length){ +return true; +} +var a1=$.extend(true,[],_9c5); +var a2=$.extend(true,[],_9c2); +a1.sort(); +a2.sort(); +for(var i=0;i_9e1.height()){ +var h=_9e1.scrollTop()+item.position().top+item.outerHeight()-_9e1.height(); +_9e1.scrollTop(h); +} +} +} +_9e1.triggerHandler("scroll"); +}; +function nav(_9e2,dir){ +var opts=$.data(_9e2,"combobox").options; +var _9e3=$(_9e2).combobox("panel"); +var item=_9e3.children("div.combobox-item-hover"); +if(!item.length){ +item=_9e3.children("div.combobox-item-selected"); +} +item.removeClass("combobox-item-hover"); +var _9e4="div.combobox-item:visible:not(.combobox-item-disabled):first"; +var _9e5="div.combobox-item:visible:not(.combobox-item-disabled):last"; +if(!item.length){ +item=_9e3.children(dir=="next"?_9e4:_9e5); +}else{ +if(dir=="next"){ +item=item.nextAll(_9e4); +if(!item.length){ +item=_9e3.children(_9e4); +} +}else{ +item=item.prevAll(_9e4); +if(!item.length){ +item=_9e3.children(_9e5); +} +} +} +if(item.length){ +item.addClass("combobox-item-hover"); +var row=opts.finder.getRow(_9e2,item); +if(row){ +$(_9e2).combobox("scrollTo",row[opts.valueField]); +if(opts.selectOnNavigation){ +_9e6(_9e2,row[opts.valueField]); +} +} +} +}; +function _9e6(_9e7,_9e8,_9e9){ +var opts=$.data(_9e7,"combobox").options; +var _9ea=$(_9e7).combo("getValues"); +if($.inArray(_9e8+"",_9ea)==-1){ +if(opts.multiple){ +_9ea.push(_9e8); +}else{ +_9ea=[_9e8]; +} +_9eb(_9e7,_9ea,_9e9); +opts.onSelect.call(_9e7,opts.finder.getRow(_9e7,_9e8)); +} +}; +function _9ec(_9ed,_9ee){ +var opts=$.data(_9ed,"combobox").options; +var _9ef=$(_9ed).combo("getValues"); +var _9f0=$.inArray(_9ee+"",_9ef); +if(_9f0>=0){ +_9ef.splice(_9f0,1); +_9eb(_9ed,_9ef); +opts.onUnselect.call(_9ed,opts.finder.getRow(_9ed,_9ee)); +} +}; +function _9eb(_9f1,_9f2,_9f3){ +var opts=$.data(_9f1,"combobox").options; +var _9f4=$(_9f1).combo("panel"); +if(!$.isArray(_9f2)){ +_9f2=_9f2.split(opts.separator); +} +if(!opts.multiple){ +_9f2=_9f2.length?[_9f2[0]]:[""]; +} +_9f4.find("div.combobox-item-selected").removeClass("combobox-item-selected"); +var _9f5=null; +var vv=[],ss=[]; +for(var i=0;i<_9f2.length;i++){ +var v=_9f2[i]; +var s=v; +opts.finder.getEl(_9f1,v).addClass("combobox-item-selected"); +var row=opts.finder.getRow(_9f1,v); +if(row){ +s=row[opts.textField]; +_9f5=row; +} +vv.push(v); +ss.push(s); +} +if(!_9f3){ +$(_9f1).combo("setText",ss.join(opts.separator)); +} +if(opts.showItemIcon){ +var tb=$(_9f1).combobox("textbox"); +tb.removeClass("textbox-bgicon "+opts.textboxIconCls); +if(_9f5&&_9f5.iconCls){ +tb.addClass("textbox-bgicon "+_9f5.iconCls); +opts.textboxIconCls=_9f5.iconCls; +} +} +$(_9f1).combo("setValues",vv); +_9f4.triggerHandler("scroll"); +}; +function _9f6(_9f7,data,_9f8){ +var _9f9=$.data(_9f7,"combobox"); +var opts=_9f9.options; +_9f9.data=opts.loadFilter.call(_9f7,data); +opts.view.render.call(opts.view,_9f7,$(_9f7).combo("panel"),_9f9.data); +var vv=$(_9f7).combobox("getValues"); +$.easyui.forEach(_9f9.data,false,function(row){ +if(row["selected"]){ +$.easyui.addArrayItem(vv,row[opts.valueField]+""); +} +}); +if(opts.multiple){ +_9eb(_9f7,vv,_9f8); +}else{ +_9eb(_9f7,vv.length?[vv[vv.length-1]]:[],_9f8); +} +opts.onLoadSuccess.call(_9f7,data); +}; +function _9fa(_9fb,url,_9fc,_9fd){ +var opts=$.data(_9fb,"combobox").options; +if(url){ +opts.url=url; +} +_9fc=$.extend({},opts.queryParams,_9fc||{}); +if(opts.onBeforeLoad.call(_9fb,_9fc)==false){ +return; +} +opts.loader.call(_9fb,_9fc,function(data){ +_9f6(_9fb,data,_9fd); +},function(){ +opts.onLoadError.apply(this,arguments); +}); +}; +function _9fe(_9ff,q){ +var _a00=$.data(_9ff,"combobox"); +var opts=_a00.options; +var qq=opts.multiple?q.split(opts.separator):[q]; +if(opts.mode=="remote"){ +_a01(qq); +_9fa(_9ff,null,{q:q},true); +}else{ +var _a02=$(_9ff).combo("panel"); +_a02.find("div.combobox-item-selected,div.combobox-item-hover").removeClass("combobox-item-selected combobox-item-hover"); +_a02.find("div.combobox-item,div.combobox-group").hide(); +var data=_a00.data; +var vv=[]; +$.map(qq,function(q){ +q=$.trim(q); +var _a03=q; +var _a04=undefined; +for(var i=0;i=0){ +vv.push(v); +} +}); +t.combobox("setValues",vv); +if(!opts.multiple){ +t.combobox("hidePanel"); +} +}; +function _a09(_a0a){ +var _a0b=$.data(_a0a,"combobox"); +var opts=_a0b.options; +$(_a0a).addClass("combobox-f"); +$(_a0a).combo($.extend({},opts,{onShowPanel:function(){ +$(this).combo("panel").find("div.combobox-item:hidden,div.combobox-group:hidden").show(); +_9eb(this,$(this).combobox("getValues"),true); +$(this).combobox("scrollTo",$(this).combobox("getValue")); +opts.onShowPanel.call(this); +}})); +$(_a0a).combo("panel").unbind().bind("mouseover",function(e){ +$(this).children("div.combobox-item-hover").removeClass("combobox-item-hover"); +var item=$(e.target).closest("div.combobox-item"); +if(!item.hasClass("combobox-item-disabled")){ +item.addClass("combobox-item-hover"); +} +e.stopPropagation(); +}).bind("mouseout",function(e){ +$(e.target).closest("div.combobox-item").removeClass("combobox-item-hover"); +e.stopPropagation(); +}).bind("click",function(e){ +var _a0c=$(this).panel("options").comboTarget; +var item=$(e.target).closest("div.combobox-item"); +if(!item.length||item.hasClass("combobox-item-disabled")){ +return; +} +var row=opts.finder.getRow(_a0c,item); +if(!row){ +return; +} +var _a0d=row[opts.valueField]; +if(opts.multiple){ +if(item.hasClass("combobox-item-selected")){ +_9ec(_a0c,_a0d); +}else{ +_9e6(_a0c,_a0d); +} +}else{ +_9e6(_a0c,_a0d); +$(_a0c).combo("hidePanel"); +} +e.stopPropagation(); +}).bind("scroll",function(){ +if(opts.groupPosition=="sticky"){ +var _a0e=$(this).panel("options").comboTarget; +var _a0f=$(this).children(".combobox-stick"); +if(!_a0f.length){ +_a0f=$("
        ").appendTo(this); +} +_a0f.hide(); +$(this).children(".combobox-group:visible").each(function(){ +var g=$(this); +var _a10=opts.finder.getGroup(_a0e,g); +var _a11=_a0b.data[_a10.startIndex+_a10.count-1]; +var last=opts.finder.getEl(_a0e,_a11[opts.valueField]); +if(g.position().top<0&&last.position().top>0){ +_a0f.show().html(g.html()); +return false; +} +}); +} +}); +}; +$.fn.combobox=function(_a12,_a13){ +if(typeof _a12=="string"){ +var _a14=$.fn.combobox.methods[_a12]; +if(_a14){ +return _a14(this,_a13); +}else{ +return this.combo(_a12,_a13); +} +} +_a12=_a12||{}; +return this.each(function(){ +var _a15=$.data(this,"combobox"); +if(_a15){ +$.extend(_a15.options,_a12); +}else{ +_a15=$.data(this,"combobox",{options:$.extend({},$.fn.combobox.defaults,$.fn.combobox.parseOptions(this),_a12),data:[]}); +} +_a09(this); +if(_a15.options.data){ +_9f6(this,_a15.options.data); +}else{ +var data=$.fn.combobox.parseData(this); +if(data.length){ +_9f6(this,data); +} +} +_9fa(this); +}); +}; +$.fn.combobox.methods={options:function(jq){ +var _a16=jq.combo("options"); +return $.extend($.data(jq[0],"combobox").options,{width:_a16.width,height:_a16.height,originalValue:_a16.originalValue,disabled:_a16.disabled,readonly:_a16.readonly}); +},cloneFrom:function(jq,from){ +return jq.each(function(){ +$(this).combo("cloneFrom",from); +$.data(this,"combobox",$(from).data("combobox")); +$(this).addClass("combobox-f").attr("comboboxName",$(this).attr("textboxName")); +}); +},getData:function(jq){ +return $.data(jq[0],"combobox").data; +},setValues:function(jq,_a17){ +return jq.each(function(){ +_9eb(this,_a17); +}); +},setValue:function(jq,_a18){ +return jq.each(function(){ +_9eb(this,$.isArray(_a18)?_a18:[_a18]); +}); +},clear:function(jq){ +return jq.each(function(){ +$(this).combo("clear"); +var _a19=$(this).combo("panel"); +_a19.find("div.combobox-item-selected").removeClass("combobox-item-selected"); +}); +},reset:function(jq){ +return jq.each(function(){ +var opts=$(this).combobox("options"); +if(opts.multiple){ +$(this).combobox("setValues",opts.originalValue); +}else{ +$(this).combobox("setValue",opts.originalValue); +} +}); +},loadData:function(jq,data){ +return jq.each(function(){ +_9f6(this,data); +}); +},reload:function(jq,url){ +return jq.each(function(){ +if(typeof url=="string"){ +_9fa(this,url); +}else{ +if(url){ +var opts=$(this).combobox("options"); +opts.queryParams=url; +} +_9fa(this); +} +}); +},select:function(jq,_a1a){ +return jq.each(function(){ +_9e6(this,_a1a); +}); +},unselect:function(jq,_a1b){ +return jq.each(function(){ +_9ec(this,_a1b); +}); +},scrollTo:function(jq,_a1c){ +return jq.each(function(){ +_9de(this,_a1c); +}); +}}; +$.fn.combobox.parseOptions=function(_a1d){ +var t=$(_a1d); +return $.extend({},$.fn.combo.parseOptions(_a1d),$.parser.parseOptions(_a1d,["valueField","textField","groupField","groupPosition","mode","method","url",{showItemIcon:"boolean"}])); +}; +$.fn.combobox.parseData=function(_a1e){ +var data=[]; +var opts=$(_a1e).combobox("options"); +$(_a1e).children().each(function(){ +if(this.tagName.toLowerCase()=="optgroup"){ +var _a1f=$(this).attr("label"); +$(this).children().each(function(){ +_a20(this,_a1f); +}); +}else{ +_a20(this); +} +}); +return data; +function _a20(el,_a21){ +var t=$(el); +var row={}; +row[opts.valueField]=t.attr("value")!=undefined?t.attr("value"):t.text(); +row[opts.textField]=t.text(); +row["selected"]=t.is(":selected"); +row["disabled"]=t.is(":disabled"); +if(_a21){ +opts.groupField=opts.groupField||"group"; +row[opts.groupField]=_a21; +} +data.push(row); +}; +}; +var _a22=0; +var _a23={render:function(_a24,_a25,data){ +var _a26=$.data(_a24,"combobox"); +var opts=_a26.options; +_a22++; +_a26.itemIdPrefix="_easyui_combobox_i"+_a22; +_a26.groupIdPrefix="_easyui_combobox_g"+_a22; +_a26.groups=[]; +var dd=[]; +var _a27=undefined; +for(var i=0;i"); +dd.push(opts.groupFormatter?opts.groupFormatter.call(_a24,g):g); +dd.push("
        "); +}else{ +_a26.groups[_a26.groups.length-1].count++; +} +}else{ +_a27=undefined; +} +var cls="combobox-item"+(row.disabled?" combobox-item-disabled":"")+(g?" combobox-gitem":""); +dd.push("
        "); +if(opts.showItemIcon&&row.iconCls){ +dd.push(""); +} +dd.push(opts.formatter?opts.formatter.call(_a24,row):s); +dd.push("
        "); +} +$(_a25).html(dd.join("")); +}}; +$.fn.combobox.defaults=$.extend({},$.fn.combo.defaults,{valueField:"value",textField:"text",groupPosition:"static",groupField:null,groupFormatter:function(_a28){ +return _a28; +},mode:"local",method:"post",url:null,data:null,queryParams:{},showItemIcon:false,view:_a23,keyHandler:{up:function(e){ +nav(this,"prev"); +e.preventDefault(); +},down:function(e){ +nav(this,"next"); +e.preventDefault(); +},left:function(e){ +},right:function(e){ +},enter:function(e){ +_a05(this); +},query:function(q,e){ +_9fe(this,q); +}},filter:function(q,row){ +var opts=$(this).combobox("options"); +return row[opts.textField].toLowerCase().indexOf(q.toLowerCase())>=0; +},formatter:function(row){ +var opts=$(this).combobox("options"); +return row[opts.textField]; +},loader:function(_a29,_a2a,_a2b){ +var opts=$(this).combobox("options"); +if(!opts.url){ +return false; +} +$.ajax({type:opts.method,url:opts.url,data:_a29,dataType:"json",success:function(data){ +_a2a(data); +},error:function(){ +_a2b.apply(this,arguments); +}}); +},loadFilter:function(data){ +return data; +},finder:{getEl:function(_a2c,_a2d){ +var _a2e=_9da(_a2c,_a2d); +var id=$.data(_a2c,"combobox").itemIdPrefix+"_"+_a2e; +return $("#"+id); +},getGroupEl:function(_a2f,_a30){ +var _a31=$.data(_a2f,"combobox"); +var _a32=$.easyui.indexOfArray(_a31.groups,"value",_a30); +var id=_a31.groupIdPrefix+"_"+_a32; +return $("#"+id); +},getGroup:function(_a33,p){ +var _a34=$.data(_a33,"combobox"); +var _a35=p.attr("id").substr(_a34.groupIdPrefix.length+1); +return _a34.groups[parseInt(_a35)]; +},getRow:function(_a36,p){ +var _a37=$.data(_a36,"combobox"); +var _a38=(p instanceof $)?p.attr("id").substr(_a37.itemIdPrefix.length+1):_9da(_a36,p); +return _a37.data[parseInt(_a38)]; +}},onBeforeLoad:function(_a39){ +},onLoadSuccess:function(){ +},onLoadError:function(){ +},onSelect:function(_a3a){ +},onUnselect:function(_a3b){ +}}); +})(jQuery); +(function($){ +function _a3c(_a3d){ +var _a3e=$.data(_a3d,"combotree"); +var opts=_a3e.options; +var tree=_a3e.tree; +$(_a3d).addClass("combotree-f"); +$(_a3d).combo($.extend({},opts,{onShowPanel:function(){ +if(opts.editable){ +tree.tree("doFilter",""); +} +opts.onShowPanel.call(this); +}})); +var _a3f=$(_a3d).combo("panel"); +if(!tree){ +tree=$("
          ").appendTo(_a3f); +_a3e.tree=tree; +} +tree.tree($.extend({},opts,{checkbox:opts.multiple,onLoadSuccess:function(node,data){ +var _a40=$(_a3d).combotree("getValues"); +if(opts.multiple){ +$.map(tree.tree("getChecked"),function(node){ +$.easyui.addArrayItem(_a40,node.id); +}); +} +_a45(_a3d,_a40,_a3e.remainText); +opts.onLoadSuccess.call(this,node,data); +},onClick:function(node){ +if(opts.multiple){ +$(this).tree(node.checked?"uncheck":"check",node.target); +}else{ +$(_a3d).combo("hidePanel"); +} +_a3e.remainText=false; +_a42(_a3d); +opts.onClick.call(this,node); +},onCheck:function(node,_a41){ +_a3e.remainText=false; +_a42(_a3d); +opts.onCheck.call(this,node,_a41); +}})); +}; +function _a42(_a43){ +var _a44=$.data(_a43,"combotree"); +var opts=_a44.options; +var tree=_a44.tree; +var vv=[]; +if(opts.multiple){ +vv=$.map(tree.tree("getChecked"),function(node){ +return node.id; +}); +}else{ +var node=tree.tree("getSelected"); +if(node){ +vv.push(node.id); +} +} +vv=vv.concat(opts.unselectedValues); +_a45(_a43,vv,_a44.remainText); +}; +function _a45(_a46,_a47,_a48){ +var _a49=$.data(_a46,"combotree"); +var opts=_a49.options; +var tree=_a49.tree; +var _a4a=tree.tree("options"); +var _a4b=_a4a.onBeforeCheck; +var _a4c=_a4a.onCheck; +var _a4d=_a4a.onSelect; +_a4a.onBeforeCheck=_a4a.onCheck=_a4a.onSelect=function(){ +}; +if(!$.isArray(_a47)){ +_a47=_a47.split(opts.separator); +} +if(!opts.multiple){ +_a47=_a47.length?[_a47[0]]:[""]; +} +var vv=$.map(_a47,function(_a4e){ +return String(_a4e); +}); +tree.find("div.tree-node-selected").removeClass("tree-node-selected"); +$.map(tree.tree("getChecked"),function(node){ +if($.inArray(String(node.id),vv)==-1){ +tree.tree("uncheck",node.target); +} +}); +var ss=[]; +opts.unselectedValues=[]; +$.map(vv,function(v){ +var node=tree.tree("find",v); +if(node){ +tree.tree("check",node.target).tree("select",node.target); +ss.push(node.text); +}else{ +ss.push(_a4f(v,opts.mappingRows)||v); +opts.unselectedValues.push(v); +} +}); +if(opts.multiple){ +$.map(tree.tree("getChecked"),function(node){ +var id=String(node.id); +if($.inArray(id,vv)==-1){ +vv.push(id); +ss.push(node.text); +} +}); +} +_a4a.onBeforeCheck=_a4b; +_a4a.onCheck=_a4c; +_a4a.onSelect=_a4d; +if(!_a48){ +var s=ss.join(opts.separator); +if($(_a46).combo("getText")!=s){ +$(_a46).combo("setText",s); +} +} +$(_a46).combo("setValues",vv); +function _a4f(_a50,a){ +var item=$.easyui.getArrayItem(a,"id",_a50); +return item?item.text:undefined; +}; +}; +function _a51(_a52,q){ +var _a53=$.data(_a52,"combotree"); +var opts=_a53.options; +var tree=_a53.tree; +_a53.remainText=true; +tree.tree("doFilter",opts.multiple?q.split(opts.separator):q); +}; +function _a54(_a55){ +var _a56=$.data(_a55,"combotree"); +_a56.remainText=false; +$(_a55).combotree("setValues",$(_a55).combotree("getValues")); +$(_a55).combotree("hidePanel"); +}; +$.fn.combotree=function(_a57,_a58){ +if(typeof _a57=="string"){ +var _a59=$.fn.combotree.methods[_a57]; +if(_a59){ +return _a59(this,_a58); +}else{ +return this.combo(_a57,_a58); +} +} +_a57=_a57||{}; +return this.each(function(){ +var _a5a=$.data(this,"combotree"); +if(_a5a){ +$.extend(_a5a.options,_a57); +}else{ +$.data(this,"combotree",{options:$.extend({},$.fn.combotree.defaults,$.fn.combotree.parseOptions(this),_a57)}); +} +_a3c(this); +}); +}; +$.fn.combotree.methods={options:function(jq){ +var _a5b=jq.combo("options"); +return $.extend($.data(jq[0],"combotree").options,{width:_a5b.width,height:_a5b.height,originalValue:_a5b.originalValue,disabled:_a5b.disabled,readonly:_a5b.readonly}); +},clone:function(jq,_a5c){ +var t=jq.combo("clone",_a5c); +t.data("combotree",{options:$.extend(true,{},jq.combotree("options")),tree:jq.combotree("tree")}); +return t; +},tree:function(jq){ +return $.data(jq[0],"combotree").tree; +},loadData:function(jq,data){ +return jq.each(function(){ +var opts=$.data(this,"combotree").options; +opts.data=data; +var tree=$.data(this,"combotree").tree; +tree.tree("loadData",data); +}); +},reload:function(jq,url){ +return jq.each(function(){ +var opts=$.data(this,"combotree").options; +var tree=$.data(this,"combotree").tree; +if(url){ +opts.url=url; +} +tree.tree({url:opts.url}); +}); +},setValues:function(jq,_a5d){ +return jq.each(function(){ +var opts=$(this).combotree("options"); +if($.isArray(_a5d)){ +_a5d=$.map(_a5d,function(_a5e){ +if(_a5e&&typeof _a5e=="object"){ +$.easyui.addArrayItem(opts.mappingRows,"id",_a5e); +return _a5e.id; +}else{ +return _a5e; +} +}); +} +_a45(this,_a5d); +}); +},setValue:function(jq,_a5f){ +return jq.each(function(){ +$(this).combotree("setValues",$.isArray(_a5f)?_a5f:[_a5f]); +}); +},clear:function(jq){ +return jq.each(function(){ +$(this).combotree("setValues",[]); +}); +},reset:function(jq){ +return jq.each(function(){ +var opts=$(this).combotree("options"); +if(opts.multiple){ +$(this).combotree("setValues",opts.originalValue); +}else{ +$(this).combotree("setValue",opts.originalValue); +} +}); +}}; +$.fn.combotree.parseOptions=function(_a60){ +return $.extend({},$.fn.combo.parseOptions(_a60),$.fn.tree.parseOptions(_a60)); +}; +$.fn.combotree.defaults=$.extend({},$.fn.combo.defaults,$.fn.tree.defaults,{editable:false,unselectedValues:[],mappingRows:[],keyHandler:{up:function(e){ +},down:function(e){ +},left:function(e){ +},right:function(e){ +},enter:function(e){ +_a54(this); +},query:function(q,e){ +_a51(this,q); +}}}); +})(jQuery); +(function($){ +function _a61(_a62){ +var _a63=$.data(_a62,"combogrid"); +var opts=_a63.options; +var grid=_a63.grid; +$(_a62).addClass("combogrid-f").combo($.extend({},opts,{onShowPanel:function(){ +var p=$(this).combogrid("panel"); +var _a64=p.outerHeight()-p.height(); +var _a65=p._size("minHeight"); +var _a66=p._size("maxHeight"); +var dg=$(this).combogrid("grid"); +dg.datagrid("resize",{width:"100%",height:(isNaN(parseInt(opts.panelHeight))?"auto":"100%"),minHeight:(_a65?_a65-_a64:""),maxHeight:(_a66?_a66-_a64:"")}); +var row=dg.datagrid("getSelected"); +if(row){ +dg.datagrid("scrollTo",dg.datagrid("getRowIndex",row)); +} +opts.onShowPanel.call(this); +}})); +var _a67=$(_a62).combo("panel"); +if(!grid){ +grid=$("
          ").appendTo(_a67); +_a63.grid=grid; +} +grid.datagrid($.extend({},opts,{border:false,singleSelect:(!opts.multiple),onLoadSuccess:function(data){ +var _a68=$(_a62).combo("getValues"); +var _a69=opts.onSelect; +opts.onSelect=function(){ +}; +_a6f(_a62,_a68,_a63.remainText); +opts.onSelect=_a69; +opts.onLoadSuccess.apply(_a62,arguments); +},onClickRow:_a6a,onSelect:function(_a6b,row){ +_a6c(); +opts.onSelect.call(this,_a6b,row); +},onUnselect:function(_a6d,row){ +_a6c(); +opts.onUnselect.call(this,_a6d,row); +},onSelectAll:function(rows){ +_a6c(); +opts.onSelectAll.call(this,rows); +},onUnselectAll:function(rows){ +if(opts.multiple){ +_a6c(); +} +opts.onUnselectAll.call(this,rows); +}})); +function _a6a(_a6e,row){ +_a63.remainText=false; +_a6c(); +if(!opts.multiple){ +$(_a62).combo("hidePanel"); +} +opts.onClickRow.call(this,_a6e,row); +}; +function _a6c(){ +var vv=$.map(grid.datagrid("getSelections"),function(row){ +return row[opts.idField]; +}); +vv=vv.concat(opts.unselectedValues); +_a6f(_a62,vv,_a63.remainText); +}; +}; +function nav(_a70,dir){ +var _a71=$.data(_a70,"combogrid"); +var opts=_a71.options; +var grid=_a71.grid; +var _a72=grid.datagrid("getRows").length; +if(!_a72){ +return; +} +var tr=opts.finder.getTr(grid[0],null,"highlight"); +if(!tr.length){ +tr=opts.finder.getTr(grid[0],null,"selected"); +} +var _a73; +if(!tr.length){ +_a73=(dir=="next"?0:_a72-1); +}else{ +var _a73=parseInt(tr.attr("datagrid-row-index")); +_a73+=(dir=="next"?1:-1); +if(_a73<0){ +_a73=_a72-1; +} +if(_a73>=_a72){ +_a73=0; +} +} +grid.datagrid("highlightRow",_a73); +if(opts.selectOnNavigation){ +_a71.remainText=false; +grid.datagrid("selectRow",_a73); +} +}; +function _a6f(_a74,_a75,_a76){ +var _a77=$.data(_a74,"combogrid"); +var opts=_a77.options; +var grid=_a77.grid; +var _a78=$(_a74).combo("getValues"); +var _a79=$(_a74).combo("options"); +var _a7a=_a79.onChange; +_a79.onChange=function(){ +}; +var _a7b=grid.datagrid("options"); +var _a7c=_a7b.onSelect; +var _a7d=_a7b.onUnselectAll; +_a7b.onSelect=_a7b.onUnselectAll=function(){ +}; +if(!$.isArray(_a75)){ +_a75=_a75.split(opts.separator); +} +if(!opts.multiple){ +_a75=_a75.length?[_a75[0]]:[""]; +} +var vv=$.map(_a75,function(_a7e){ +return String(_a7e); +}); +vv=$.grep(vv,function(v,_a7f){ +return _a7f===$.inArray(v,vv); +}); +var _a80=$.grep(grid.datagrid("getSelections"),function(row,_a81){ +return $.inArray(String(row[opts.idField]),vv)>=0; +}); +grid.datagrid("clearSelections"); +grid.data("datagrid").selectedRows=_a80; +var ss=[]; +opts.unselectedValues=[]; +$.map(vv,function(v){ +var _a82=grid.datagrid("getRowIndex",v); +if(_a82>=0){ +grid.datagrid("selectRow",_a82); +}else{ +opts.unselectedValues.push(v); +} +ss.push(_a83(v,grid.datagrid("getRows"))||_a83(v,_a80)||_a83(v,opts.mappingRows)||v); +}); +$(_a74).combo("setValues",_a78); +_a79.onChange=_a7a; +_a7b.onSelect=_a7c; +_a7b.onUnselectAll=_a7d; +if(!_a76){ +var s=ss.join(opts.separator); +if($(_a74).combo("getText")!=s){ +$(_a74).combo("setText",s); +} +} +$(_a74).combo("setValues",_a75); +function _a83(_a84,a){ +var item=$.easyui.getArrayItem(a,opts.idField,_a84); +return item?item[opts.textField]:undefined; +}; +}; +function _a85(_a86,q){ +var _a87=$.data(_a86,"combogrid"); +var opts=_a87.options; +var grid=_a87.grid; +_a87.remainText=true; +if(opts.multiple&&!q){ +_a6f(_a86,[],true); +}else{ +_a6f(_a86,[q],true); +} +if(opts.mode=="remote"){ +grid.datagrid("clearSelections"); +grid.datagrid("load",$.extend({},opts.queryParams,{q:q})); +}else{ +if(!q){ +return; +} +grid.datagrid("clearSelections").datagrid("highlightRow",-1); +var rows=grid.datagrid("getRows"); +var qq=opts.multiple?q.split(opts.separator):[q]; +$.map(qq,function(q){ +q=$.trim(q); +if(q){ +$.map(rows,function(row,i){ +if(q==row[opts.textField]){ +grid.datagrid("selectRow",i); +}else{ +if(opts.filter.call(_a86,q,row)){ +grid.datagrid("highlightRow",i); +} +} +}); +} +}); +} +}; +function _a88(_a89){ +var _a8a=$.data(_a89,"combogrid"); +var opts=_a8a.options; +var grid=_a8a.grid; +var tr=opts.finder.getTr(grid[0],null,"highlight"); +_a8a.remainText=false; +if(tr.length){ +var _a8b=parseInt(tr.attr("datagrid-row-index")); +if(opts.multiple){ +if(tr.hasClass("datagrid-row-selected")){ +grid.datagrid("unselectRow",_a8b); +}else{ +grid.datagrid("selectRow",_a8b); +} +}else{ +grid.datagrid("selectRow",_a8b); +} +} +var vv=[]; +$.map(grid.datagrid("getSelections"),function(row){ +vv.push(row[opts.idField]); +}); +$(_a89).combogrid("setValues",vv); +if(!opts.multiple){ +$(_a89).combogrid("hidePanel"); +} +}; +$.fn.combogrid=function(_a8c,_a8d){ +if(typeof _a8c=="string"){ +var _a8e=$.fn.combogrid.methods[_a8c]; +if(_a8e){ +return _a8e(this,_a8d); +}else{ +return this.combo(_a8c,_a8d); +} +} +_a8c=_a8c||{}; +return this.each(function(){ +var _a8f=$.data(this,"combogrid"); +if(_a8f){ +$.extend(_a8f.options,_a8c); +}else{ +_a8f=$.data(this,"combogrid",{options:$.extend({},$.fn.combogrid.defaults,$.fn.combogrid.parseOptions(this),_a8c)}); +} +_a61(this); +}); +}; +$.fn.combogrid.methods={options:function(jq){ +var _a90=jq.combo("options"); +return $.extend($.data(jq[0],"combogrid").options,{width:_a90.width,height:_a90.height,originalValue:_a90.originalValue,disabled:_a90.disabled,readonly:_a90.readonly}); +},grid:function(jq){ +return $.data(jq[0],"combogrid").grid; +},setValues:function(jq,_a91){ +return jq.each(function(){ +var opts=$(this).combogrid("options"); +if($.isArray(_a91)){ +_a91=$.map(_a91,function(_a92){ +if(_a92&&typeof _a92=="object"){ +$.easyui.addArrayItem(opts.mappingRows,opts.idField,_a92); +return _a92[opts.idField]; +}else{ +return _a92; +} +}); +} +_a6f(this,_a91); +}); +},setValue:function(jq,_a93){ +return jq.each(function(){ +$(this).combogrid("setValues",$.isArray(_a93)?_a93:[_a93]); +}); +},clear:function(jq){ +return jq.each(function(){ +$(this).combogrid("setValues",[]); +}); +},reset:function(jq){ +return jq.each(function(){ +var opts=$(this).combogrid("options"); +if(opts.multiple){ +$(this).combogrid("setValues",opts.originalValue); +}else{ +$(this).combogrid("setValue",opts.originalValue); +} +}); +}}; +$.fn.combogrid.parseOptions=function(_a94){ +var t=$(_a94); +return $.extend({},$.fn.combo.parseOptions(_a94),$.fn.datagrid.parseOptions(_a94),$.parser.parseOptions(_a94,["idField","textField","mode"])); +}; +$.fn.combogrid.defaults=$.extend({},$.fn.combo.defaults,$.fn.datagrid.defaults,{height:22,loadMsg:null,idField:null,textField:null,unselectedValues:[],mappingRows:[],mode:"local",keyHandler:{up:function(e){ +nav(this,"prev"); +e.preventDefault(); +},down:function(e){ +nav(this,"next"); +e.preventDefault(); +},left:function(e){ +},right:function(e){ +},enter:function(e){ +_a88(this); +},query:function(q,e){ +_a85(this,q); +}},filter:function(q,row){ +var opts=$(this).combogrid("options"); +return (row[opts.textField]||"").toLowerCase().indexOf(q.toLowerCase())>=0; +}}); +})(jQuery); +(function($){ +function _a95(_a96){ +var _a97=$.data(_a96,"datebox"); +var opts=_a97.options; +$(_a96).addClass("datebox-f").combo($.extend({},opts,{onShowPanel:function(){ +_a98(this); +_a99(this); +_a9a(this); +_aa8(this,$(this).datebox("getText"),true); +opts.onShowPanel.call(this); +}})); +if(!_a97.calendar){ +var _a9b=$(_a96).combo("panel").css("overflow","hidden"); +_a9b.panel("options").onBeforeDestroy=function(){ +var c=$(this).find(".calendar-shared"); +if(c.length){ +c.insertBefore(c[0].pholder); +} +}; +var cc=$("
          ").prependTo(_a9b); +if(opts.sharedCalendar){ +var c=$(opts.sharedCalendar); +if(!c[0].pholder){ +c[0].pholder=$("
          ").insertAfter(c); +} +c.addClass("calendar-shared").appendTo(cc); +if(!c.hasClass("calendar")){ +c.calendar(); +} +_a97.calendar=c; +}else{ +_a97.calendar=$("
          ").appendTo(cc).calendar(); +} +$.extend(_a97.calendar.calendar("options"),{fit:true,border:false,onSelect:function(date){ +var _a9c=this.target; +var opts=$(_a9c).datebox("options"); +_aa8(_a9c,opts.formatter.call(_a9c,date)); +$(_a9c).combo("hidePanel"); +opts.onSelect.call(_a9c,date); +}}); +} +$(_a96).combo("textbox").parent().addClass("datebox"); +$(_a96).datebox("initValue",opts.value); +function _a98(_a9d){ +var opts=$(_a9d).datebox("options"); +var _a9e=$(_a9d).combo("panel"); +_a9e.unbind(".datebox").bind("click.datebox",function(e){ +if($(e.target).hasClass("datebox-button-a")){ +var _a9f=parseInt($(e.target).attr("datebox-button-index")); +opts.buttons[_a9f].handler.call(e.target,_a9d); +} +}); +}; +function _a99(_aa0){ +var _aa1=$(_aa0).combo("panel"); +if(_aa1.children("div.datebox-button").length){ +return; +} +var _aa2=$("
          ").appendTo(_aa1); +var tr=_aa2.find("tr"); +for(var i=0;i").appendTo(tr); +var btn=opts.buttons[i]; +var t=$("").html($.isFunction(btn.text)?btn.text(_aa0):btn.text).appendTo(td); +t.attr("datebox-button-index",i); +} +tr.find("td").css("width",(100/opts.buttons.length)+"%"); +}; +function _a9a(_aa3){ +var _aa4=$(_aa3).combo("panel"); +var cc=_aa4.children("div.datebox-calendar-inner"); +_aa4.children()._outerWidth(_aa4.width()); +_a97.calendar.appendTo(cc); +_a97.calendar[0].target=_aa3; +if(opts.panelHeight!="auto"){ +var _aa5=_aa4.height(); +_aa4.children().not(cc).each(function(){ +_aa5-=$(this).outerHeight(); +}); +cc._outerHeight(_aa5); +} +_a97.calendar.calendar("resize"); +}; +}; +function _aa6(_aa7,q){ +_aa8(_aa7,q,true); +}; +function _aa9(_aaa){ +var _aab=$.data(_aaa,"datebox"); +var opts=_aab.options; +var _aac=_aab.calendar.calendar("options").current; +if(_aac){ +_aa8(_aaa,opts.formatter.call(_aaa,_aac)); +$(_aaa).combo("hidePanel"); +} +}; +function _aa8(_aad,_aae,_aaf){ +var _ab0=$.data(_aad,"datebox"); +var opts=_ab0.options; +var _ab1=_ab0.calendar; +_ab1.calendar("moveTo",opts.parser.call(_aad,_aae)); +if(_aaf){ +$(_aad).combo("setValue",_aae); +}else{ +if(_aae){ +_aae=opts.formatter.call(_aad,_ab1.calendar("options").current); +} +$(_aad).combo("setText",_aae).combo("setValue",_aae); +} +}; +$.fn.datebox=function(_ab2,_ab3){ +if(typeof _ab2=="string"){ +var _ab4=$.fn.datebox.methods[_ab2]; +if(_ab4){ +return _ab4(this,_ab3); +}else{ +return this.combo(_ab2,_ab3); +} +} +_ab2=_ab2||{}; +return this.each(function(){ +var _ab5=$.data(this,"datebox"); +if(_ab5){ +$.extend(_ab5.options,_ab2); +}else{ +$.data(this,"datebox",{options:$.extend({},$.fn.datebox.defaults,$.fn.datebox.parseOptions(this),_ab2)}); +} +_a95(this); +}); +}; +$.fn.datebox.methods={options:function(jq){ +var _ab6=jq.combo("options"); +return $.extend($.data(jq[0],"datebox").options,{width:_ab6.width,height:_ab6.height,originalValue:_ab6.originalValue,disabled:_ab6.disabled,readonly:_ab6.readonly}); +},cloneFrom:function(jq,from){ +return jq.each(function(){ +$(this).combo("cloneFrom",from); +$.data(this,"datebox",{options:$.extend(true,{},$(from).datebox("options")),calendar:$(from).datebox("calendar")}); +$(this).addClass("datebox-f"); +}); +},calendar:function(jq){ +return $.data(jq[0],"datebox").calendar; +},initValue:function(jq,_ab7){ +return jq.each(function(){ +var opts=$(this).datebox("options"); +var _ab8=opts.value; +if(_ab8){ +_ab8=opts.formatter.call(this,opts.parser.call(this,_ab8)); +} +$(this).combo("initValue",_ab8).combo("setText",_ab8); +}); +},setValue:function(jq,_ab9){ +return jq.each(function(){ +_aa8(this,_ab9); +}); +},reset:function(jq){ +return jq.each(function(){ +var opts=$(this).datebox("options"); +$(this).datebox("setValue",opts.originalValue); +}); +}}; +$.fn.datebox.parseOptions=function(_aba){ +return $.extend({},$.fn.combo.parseOptions(_aba),$.parser.parseOptions(_aba,["sharedCalendar"])); +}; +$.fn.datebox.defaults=$.extend({},$.fn.combo.defaults,{panelWidth:180,panelHeight:"auto",sharedCalendar:null,keyHandler:{up:function(e){ +},down:function(e){ +},left:function(e){ +},right:function(e){ +},enter:function(e){ +_aa9(this); +},query:function(q,e){ +_aa6(this,q); +}},currentText:"Today",closeText:"Close",okText:"Ok",buttons:[{text:function(_abb){ +return $(_abb).datebox("options").currentText; +},handler:function(_abc){ +var now=new Date(); +$(_abc).datebox("calendar").calendar({year:now.getFullYear(),month:now.getMonth()+1,current:new Date(now.getFullYear(),now.getMonth(),now.getDate())}); +_aa9(_abc); +}},{text:function(_abd){ +return $(_abd).datebox("options").closeText; +},handler:function(_abe){ +$(this).closest("div.combo-panel").panel("close"); +}}],formatter:function(date){ +var y=date.getFullYear(); +var m=date.getMonth()+1; +var d=date.getDate(); +return (m<10?("0"+m):m)+"/"+(d<10?("0"+d):d)+"/"+y; +},parser:function(s){ +if(!s){ +return new Date(); +} +var ss=s.split("/"); +var m=parseInt(ss[0],10); +var d=parseInt(ss[1],10); +var y=parseInt(ss[2],10); +if(!isNaN(y)&&!isNaN(m)&&!isNaN(d)){ +return new Date(y,m-1,d); +}else{ +return new Date(); +} +},onSelect:function(date){ +}}); +})(jQuery); +(function($){ +function _abf(_ac0){ +var _ac1=$.data(_ac0,"datetimebox"); +var opts=_ac1.options; +$(_ac0).datebox($.extend({},opts,{onShowPanel:function(){ +var _ac2=$(this).datetimebox("getValue"); +_ac8(this,_ac2,true); +opts.onShowPanel.call(this); +},formatter:$.fn.datebox.defaults.formatter,parser:$.fn.datebox.defaults.parser})); +$(_ac0).removeClass("datebox-f").addClass("datetimebox-f"); +$(_ac0).datebox("calendar").calendar({onSelect:function(date){ +opts.onSelect.call(this.target,date); +}}); +if(!_ac1.spinner){ +var _ac3=$(_ac0).datebox("panel"); +var p=$("
          ").insertAfter(_ac3.children("div.datebox-calendar-inner")); +_ac1.spinner=p.children("input"); +} +_ac1.spinner.timespinner({width:opts.spinnerWidth,showSeconds:opts.showSeconds,separator:opts.timeSeparator}); +$(_ac0).datetimebox("initValue",opts.value); +}; +function _ac4(_ac5){ +var c=$(_ac5).datetimebox("calendar"); +var t=$(_ac5).datetimebox("spinner"); +var date=c.calendar("options").current; +return new Date(date.getFullYear(),date.getMonth(),date.getDate(),t.timespinner("getHours"),t.timespinner("getMinutes"),t.timespinner("getSeconds")); +}; +function _ac6(_ac7,q){ +_ac8(_ac7,q,true); +}; +function _ac9(_aca){ +var opts=$.data(_aca,"datetimebox").options; +var date=_ac4(_aca); +_ac8(_aca,opts.formatter.call(_aca,date)); +$(_aca).combo("hidePanel"); +}; +function _ac8(_acb,_acc,_acd){ +var opts=$.data(_acb,"datetimebox").options; +$(_acb).combo("setValue",_acc); +if(!_acd){ +if(_acc){ +var date=opts.parser.call(_acb,_acc); +$(_acb).combo("setText",opts.formatter.call(_acb,date)); +$(_acb).combo("setValue",opts.formatter.call(_acb,date)); +}else{ +$(_acb).combo("setText",_acc); +} +} +var date=opts.parser.call(_acb,_acc); +$(_acb).datetimebox("calendar").calendar("moveTo",date); +$(_acb).datetimebox("spinner").timespinner("setValue",_ace(date)); +function _ace(date){ +function _acf(_ad0){ +return (_ad0<10?"0":"")+_ad0; +}; +var tt=[_acf(date.getHours()),_acf(date.getMinutes())]; +if(opts.showSeconds){ +tt.push(_acf(date.getSeconds())); +} +return tt.join($(_acb).datetimebox("spinner").timespinner("options").separator); +}; +}; +$.fn.datetimebox=function(_ad1,_ad2){ +if(typeof _ad1=="string"){ +var _ad3=$.fn.datetimebox.methods[_ad1]; +if(_ad3){ +return _ad3(this,_ad2); +}else{ +return this.datebox(_ad1,_ad2); +} +} +_ad1=_ad1||{}; +return this.each(function(){ +var _ad4=$.data(this,"datetimebox"); +if(_ad4){ +$.extend(_ad4.options,_ad1); +}else{ +$.data(this,"datetimebox",{options:$.extend({},$.fn.datetimebox.defaults,$.fn.datetimebox.parseOptions(this),_ad1)}); +} +_abf(this); +}); +}; +$.fn.datetimebox.methods={options:function(jq){ +var _ad5=jq.datebox("options"); +return $.extend($.data(jq[0],"datetimebox").options,{originalValue:_ad5.originalValue,disabled:_ad5.disabled,readonly:_ad5.readonly}); +},cloneFrom:function(jq,from){ +return jq.each(function(){ +$(this).datebox("cloneFrom",from); +$.data(this,"datetimebox",{options:$.extend(true,{},$(from).datetimebox("options")),spinner:$(from).datetimebox("spinner")}); +$(this).removeClass("datebox-f").addClass("datetimebox-f"); +}); +},spinner:function(jq){ +return $.data(jq[0],"datetimebox").spinner; +},initValue:function(jq,_ad6){ +return jq.each(function(){ +var opts=$(this).datetimebox("options"); +var _ad7=opts.value; +if(_ad7){ +_ad7=opts.formatter.call(this,opts.parser.call(this,_ad7)); +} +$(this).combo("initValue",_ad7).combo("setText",_ad7); +}); +},setValue:function(jq,_ad8){ +return jq.each(function(){ +_ac8(this,_ad8); +}); +},reset:function(jq){ +return jq.each(function(){ +var opts=$(this).datetimebox("options"); +$(this).datetimebox("setValue",opts.originalValue); +}); +}}; +$.fn.datetimebox.parseOptions=function(_ad9){ +var t=$(_ad9); +return $.extend({},$.fn.datebox.parseOptions(_ad9),$.parser.parseOptions(_ad9,["timeSeparator","spinnerWidth",{showSeconds:"boolean"}])); +}; +$.fn.datetimebox.defaults=$.extend({},$.fn.datebox.defaults,{spinnerWidth:"100%",showSeconds:true,timeSeparator:":",keyHandler:{up:function(e){ +},down:function(e){ +},left:function(e){ +},right:function(e){ +},enter:function(e){ +_ac9(this); +},query:function(q,e){ +_ac6(this,q); +}},buttons:[{text:function(_ada){ +return $(_ada).datetimebox("options").currentText; +},handler:function(_adb){ +var opts=$(_adb).datetimebox("options"); +_ac8(_adb,opts.formatter.call(_adb,new Date())); +$(_adb).datetimebox("hidePanel"); +}},{text:function(_adc){ +return $(_adc).datetimebox("options").okText; +},handler:function(_add){ +_ac9(_add); +}},{text:function(_ade){ +return $(_ade).datetimebox("options").closeText; +},handler:function(_adf){ +$(_adf).datetimebox("hidePanel"); +}}],formatter:function(date){ +var h=date.getHours(); +var M=date.getMinutes(); +var s=date.getSeconds(); +function _ae0(_ae1){ +return (_ae1<10?"0":"")+_ae1; +}; +var _ae2=$(this).datetimebox("spinner").timespinner("options").separator; +var r=$.fn.datebox.defaults.formatter(date)+" "+_ae0(h)+_ae2+_ae0(M); +if($(this).datetimebox("options").showSeconds){ +r+=_ae2+_ae0(s); +} +return r; +},parser:function(s){ +if($.trim(s)==""){ +return new Date(); +} +var dt=s.split(" "); +var d=$.fn.datebox.defaults.parser(dt[0]); +if(dt.length<2){ +return d; +} +var _ae3=$(this).datetimebox("spinner").timespinner("options").separator; +var tt=dt[1].split(_ae3); +var hour=parseInt(tt[0],10)||0; +var _ae4=parseInt(tt[1],10)||0; +var _ae5=parseInt(tt[2],10)||0; +return new Date(d.getFullYear(),d.getMonth(),d.getDate(),hour,_ae4,_ae5); +}}); +})(jQuery); +(function($){ +function init(_ae6){ +var _ae7=$("
          "+"
          "+""+""+"
          "+"
          "+"
          "+"
          "+""+"
          ").insertAfter(_ae6); +var t=$(_ae6); +t.addClass("slider-f").hide(); +var name=t.attr("name"); +if(name){ +_ae7.find("input.slider-value").attr("name",name); +t.removeAttr("name").attr("sliderName",name); +} +_ae7.bind("_resize",function(e,_ae8){ +if($(this).hasClass("easyui-fluid")||_ae8){ +_ae9(_ae6); +} +return false; +}); +return _ae7; +}; +function _ae9(_aea,_aeb){ +var _aec=$.data(_aea,"slider"); +var opts=_aec.options; +var _aed=_aec.slider; +if(_aeb){ +if(_aeb.width){ +opts.width=_aeb.width; +} +if(_aeb.height){ +opts.height=_aeb.height; +} +} +_aed._size(opts); +if(opts.mode=="h"){ +_aed.css("height",""); +_aed.children("div").css("height",""); +}else{ +_aed.css("width",""); +_aed.children("div").css("width",""); +_aed.children("div.slider-rule,div.slider-rulelabel,div.slider-inner")._outerHeight(_aed._outerHeight()); +} +_aee(_aea); +}; +function _aef(_af0){ +var _af1=$.data(_af0,"slider"); +var opts=_af1.options; +var _af2=_af1.slider; +var aa=opts.mode=="h"?opts.rule:opts.rule.slice(0).reverse(); +if(opts.reversed){ +aa=aa.slice(0).reverse(); +} +_af3(aa); +function _af3(aa){ +var rule=_af2.find("div.slider-rule"); +var _af4=_af2.find("div.slider-rulelabel"); +rule.empty(); +_af4.empty(); +for(var i=0;i").appendTo(rule); +span.css((opts.mode=="h"?"left":"top"),_af5); +if(aa[i]!="|"){ +span=$("").appendTo(_af4); +span.html(aa[i]); +if(opts.mode=="h"){ +span.css({left:_af5,marginLeft:-Math.round(span.outerWidth()/2)}); +}else{ +span.css({top:_af5,marginTop:-Math.round(span.outerHeight()/2)}); +} +} +} +}; +}; +function _af6(_af7){ +var _af8=$.data(_af7,"slider"); +var opts=_af8.options; +var _af9=_af8.slider; +_af9.removeClass("slider-h slider-v slider-disabled"); +_af9.addClass(opts.mode=="h"?"slider-h":"slider-v"); +_af9.addClass(opts.disabled?"slider-disabled":""); +var _afa=_af9.find(".slider-inner"); +_afa.html(""+""); +if(opts.range){ +_afa.append(""+""); +} +_af9.find("a.slider-handle").draggable({axis:opts.mode,cursor:"pointer",disabled:opts.disabled,onDrag:function(e){ +var left=e.data.left; +var _afb=_af9.width(); +if(opts.mode!="h"){ +left=e.data.top; +_afb=_af9.height(); +} +if(left<0||left>_afb){ +return false; +}else{ +_afc(left,this); +return false; +} +},onStartDrag:function(){ +_af8.isDragging=true; +opts.onSlideStart.call(_af7,opts.value); +},onStopDrag:function(e){ +_afc(opts.mode=="h"?e.data.left:e.data.top,this); +opts.onSlideEnd.call(_af7,opts.value); +opts.onComplete.call(_af7,opts.value); +_af8.isDragging=false; +}}); +_af9.find("div.slider-inner").unbind(".slider").bind("mousedown.slider",function(e){ +if(_af8.isDragging||opts.disabled){ +return; +} +var pos=$(this).offset(); +_afc(opts.mode=="h"?(e.pageX-pos.left):(e.pageY-pos.top)); +opts.onComplete.call(_af7,opts.value); +}); +function _afc(pos,_afd){ +var _afe=_aff(_af7,pos); +var s=Math.abs(_afe%opts.step); +if(s0; +if(_afe<=v2&&_b00){ +v1=_afe; +}else{ +if(_afe>=v1&&(!_b00)){ +v2=_afe; +} +} +}else{ +if(_afev2){ +v2=_afe; +}else{ +_afeopts.max){ +_b08=opts.max; +} +var _b09=$("").appendTo(_b05); +_b09.attr("name",name); +_b09.val(_b08); +_b07.push(_b08); +var _b0a=_b05.find(".slider-handle:eq("+i+")"); +var tip=_b0a.next(); +var pos=_b0b(_b02,_b08); +if(opts.showTip){ +tip.show(); +tip.html(opts.tipFormatter.call(_b02,_b08)); +}else{ +tip.hide(); +} +if(opts.mode=="h"){ +var _b0c="left:"+pos+"px;"; +_b0a.attr("style",_b0c); +tip.attr("style",_b0c+"margin-left:"+(-Math.round(tip.outerWidth()/2))+"px"); +}else{ +var _b0c="top:"+pos+"px;"; +_b0a.attr("style",_b0c); +tip.attr("style",_b0c+"margin-left:"+(-Math.round(tip.outerWidth()))+"px"); +} +} +opts.value=opts.range?_b07:_b07[0]; +$(_b02).val(opts.range?_b07.join(opts.separator):_b07[0]); +if(_b06.join(",")!=_b07.join(",")){ +opts.onChange.call(_b02,opts.value,(opts.range?_b06:_b06[0])); +} +}; +function _aee(_b0d){ +var opts=$.data(_b0d,"slider").options; +var fn=opts.onChange; +opts.onChange=function(){ +}; +_b01(_b0d,opts.value); +opts.onChange=fn; +}; +function _b0b(_b0e,_b0f){ +var _b10=$.data(_b0e,"slider"); +var opts=_b10.options; +var _b11=_b10.slider; +var size=opts.mode=="h"?_b11.width():_b11.height(); +var pos=opts.converter.toPosition.call(_b0e,_b0f,size); +if(opts.mode=="v"){ +pos=_b11.height()-pos; +} +if(opts.reversed){ +pos=size-pos; +} +return pos.toFixed(0); +}; +function _aff(_b12,pos){ +var _b13=$.data(_b12,"slider"); +var opts=_b13.options; +var _b14=_b13.slider; +var size=opts.mode=="h"?_b14.width():_b14.height(); +var pos=opts.mode=="h"?(opts.reversed?(size-pos):pos):(opts.reversed?pos:(size-pos)); +var _b15=opts.converter.toValue.call(_b12,pos,size); +return _b15.toFixed(0); +}; +$.fn.slider=function(_b16,_b17){ +if(typeof _b16=="string"){ +return $.fn.slider.methods[_b16](this,_b17); +} +_b16=_b16||{}; +return this.each(function(){ +var _b18=$.data(this,"slider"); +if(_b18){ +$.extend(_b18.options,_b16); +}else{ +_b18=$.data(this,"slider",{options:$.extend({},$.fn.slider.defaults,$.fn.slider.parseOptions(this),_b16),slider:init(this)}); +$(this).removeAttr("disabled"); +} +var opts=_b18.options; +opts.min=parseFloat(opts.min); +opts.max=parseFloat(opts.max); +if(opts.range){ +if(!$.isArray(opts.value)){ +opts.value=$.map(String(opts.value).split(opts.separator),function(v){ +return parseFloat(v); +}); +} +if(opts.value.length<2){ +opts.value.push(opts.max); +} +}else{ +opts.value=parseFloat(opts.value); +} +opts.step=parseFloat(opts.step); +opts.originalValue=opts.value; +_af6(this); +_aef(this); +_ae9(this); +}); +}; +$.fn.slider.methods={options:function(jq){ +return $.data(jq[0],"slider").options; +},destroy:function(jq){ +return jq.each(function(){ +$.data(this,"slider").slider.remove(); +$(this).remove(); +}); +},resize:function(jq,_b19){ +return jq.each(function(){ +_ae9(this,_b19); +}); +},getValue:function(jq){ +return jq.slider("options").value; +},getValues:function(jq){ +return jq.slider("options").value; +},setValue:function(jq,_b1a){ +return jq.each(function(){ +_b01(this,[_b1a]); +}); +},setValues:function(jq,_b1b){ +return jq.each(function(){ +_b01(this,_b1b); +}); +},clear:function(jq){ +return jq.each(function(){ +var opts=$(this).slider("options"); +_b01(this,opts.range?[opts.min,opts.max]:[opts.min]); +}); +},reset:function(jq){ +return jq.each(function(){ +var opts=$(this).slider("options"); +$(this).slider(opts.range?"setValues":"setValue",opts.originalValue); +}); +},enable:function(jq){ +return jq.each(function(){ +$.data(this,"slider").options.disabled=false; +_af6(this); +}); +},disable:function(jq){ +return jq.each(function(){ +$.data(this,"slider").options.disabled=true; +_af6(this); +}); +}}; +$.fn.slider.parseOptions=function(_b1c){ +var t=$(_b1c); +return $.extend({},$.parser.parseOptions(_b1c,["width","height","mode",{reversed:"boolean",showTip:"boolean",range:"boolean",min:"number",max:"number",step:"number"}]),{value:(t.val()||undefined),disabled:(t.attr("disabled")?true:undefined),rule:(t.attr("rule")?eval(t.attr("rule")):undefined)}); +}; +$.fn.slider.defaults={width:"auto",height:"auto",mode:"h",reversed:false,showTip:false,disabled:false,range:false,value:0,separator:",",min:0,max:100,step:1,rule:[],tipFormatter:function(_b1d){ +return _b1d; +},converter:{toPosition:function(_b1e,size){ +var opts=$(this).slider("options"); +return (_b1e-opts.min)/(opts.max-opts.min)*size; +},toValue:function(pos,size){ +var opts=$(this).slider("options"); +return opts.min+(opts.max-opts.min)*(pos/size); +}},onChange:function(_b1f,_b20){ +},onSlideStart:function(_b21){ +},onSlideEnd:function(_b22){ +},onComplete:function(_b23){ +}}; +})(jQuery); + diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/js/jquery.min.js b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/js/jquery.min.js new file mode 100644 index 00000000..a0cff0f9 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template1/js/jquery.min.js @@ -0,0 +1,5759 @@ +/*! jQuery v1.11.3 | (c) 2005, 2015 jQuery Foundation, Inc. | 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 = c.slice, + e = c.concat, + f = c.push, + g = c.indexOf, + h = {}, + i = h.toString, + j = h.hasOwnProperty, + k = {}, + l = "1.11.3", + m = function(a, b) { + return new m.fn.init(a, b); + }, + n = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, + o = /^-ms-/, + p = /-([\da-z])/gi, + q = function(a, b) { + return b.toUpperCase(); + }; + (m.fn = m.prototype = { + jquery: l, + constructor: m, + selector: "", + length: 0, + toArray: function() { + return d.call(this); + }, + get: function(a) { + return null != a + ? 0 > a + ? this[a + this.length] + : this[a] + : d.call(this); + }, + pushStack: function(a) { + var b = m.merge(this.constructor(), a); + return (b.prevObject = this), (b.context = this.context), b; + }, + each: function(a, b) { + return m.each(this, a, b); + }, + map: function(a) { + return this.pushStack( + m.map(this, function(b, c) { + return a.call(b, c, b); + }) + ); + }, + slice: function() { + return this.pushStack(d.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(null); + }, + push: f, + sort: c.sort, + splice: c.splice + }), + (m.extend = m.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 || m.isFunction(g) || (g = {}), + h === i && ((g = this), h--); + i > h; + h++ + ) + if (null != (e = arguments[h])) + for (d in e) + (a = g[d]), + (c = e[d]), + g !== c && + (j && c && (m.isPlainObject(c) || (b = m.isArray(c))) + ? (b + ? ((b = !1), (f = a && m.isArray(a) ? a : [])) + : (f = a && m.isPlainObject(a) ? a : {}), + (g[d] = m.extend(j, f, c))) + : void 0 !== c && (g[d] = c)); + return g; + }), + m.extend({ + expando: "jQuery" + (l + Math.random()).replace(/\D/g, ""), + isReady: !0, + error: function(a) { + throw new Error(a); + }, + noop: function() {}, + isFunction: function(a) { + return "function" === m.type(a); + }, + isArray: + Array.isArray || + function(a) { + return "array" === m.type(a); + }, + isWindow: function(a) { + return null != a && a == a.window; + }, + isNumeric: function(a) { + return !m.isArray(a) && a - parseFloat(a) + 1 >= 0; + }, + isEmptyObject: function(a) { + var b; + for (b in a) return !1; + return !0; + }, + isPlainObject: function(a) { + var b; + if (!a || "object" !== m.type(a) || a.nodeType || m.isWindow(a)) + return !1; + try { + if ( + a.constructor && + !j.call(a, "constructor") && + !j.call(a.constructor.prototype, "isPrototypeOf") + ) + return !1; + } catch (c) { + return !1; + } + if (k.ownLast) for (b in a) return j.call(a, b); + for (b in a); + return void 0 === b || j.call(a, b); + }, + type: function(a) { + return null == a + ? a + "" + : "object" == typeof a || "function" == typeof a + ? h[i.call(a)] || "object" + : typeof a; + }, + globalEval: function(b) { + b && + m.trim(b) && + (a.execScript || + function(b) { + a.eval.call(a, b); + })(b); + }, + camelCase: function(a) { + return a.replace(o, "ms-").replace(p, q); + }, + nodeName: function(a, b) { + return a.nodeName && a.nodeName.toLowerCase() === b.toLowerCase(); + }, + each: function(a, b, c) { + var d, + e = 0, + f = a.length, + g = r(a); + if (c) { + if (g) { + for (; f > e; e++) if (((d = b.apply(a[e], c)), d === !1)) break; + } else for (e in a) if (((d = b.apply(a[e], c)), d === !1)) break; + } else if (g) { + for (; f > e; e++) if (((d = b.call(a[e], e, a[e])), d === !1)) break; + } else for (e in a) if (((d = b.call(a[e], e, a[e])), d === !1)) break; + return a; + }, + trim: function(a) { + return null == a ? "" : (a + "").replace(n, ""); + }, + makeArray: function(a, b) { + var c = b || []; + return ( + null != a && + (r(Object(a)) + ? m.merge(c, "string" == typeof a ? [a] : a) + : f.call(c, a)), + c + ); + }, + inArray: function(a, b, c) { + var d; + if (b) { + if (g) return g.call(b, a, c); + for ( + d = b.length, c = c ? (0 > c ? Math.max(0, d + c) : c) : 0; + d > c; + c++ + ) + if (c in b && b[c] === a) return c; + } + return -1; + }, + merge: function(a, b) { + var c = +b.length, + d = 0, + e = a.length; + while (c > d) a[e++] = b[d++]; + if (c !== c) while (void 0 !== b[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, + f = 0, + g = a.length, + h = r(a), + i = []; + if (h) for (; g > f; f++) (d = b(a[f], f, c)), null != d && i.push(d); + else for (f in a) (d = b(a[f], f, c)), null != d && i.push(d); + return e.apply([], i); + }, + guid: 1, + proxy: function(a, b) { + var c, e, f; + return ( + "string" == typeof b && ((f = a[b]), (b = a), (a = f)), + m.isFunction(a) + ? ((c = d.call(arguments, 2)), + (e = function() { + return a.apply(b || this, c.concat(d.call(arguments))); + }), + (e.guid = a.guid = a.guid || m.guid++), + e) + : void 0 + ); + }, + now: function() { + return +new Date(); + }, + support: k + }), + m.each( + "Boolean Number String Function Array Date RegExp Object Error".split( + " " + ), + function(a, b) { + h["[object " + b + "]"] = b.toLowerCase(); + } + ); + function r(a) { + var b = "length" in a && a.length, + c = m.type(a); + return "function" === c || m.isWindow(a) + ? !1 + : 1 === a.nodeType && b + ? !0 + : "array" === c || + 0 === b || + ("number" == typeof b && b > 0 && b - 1 in a); + } + var s = (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 = ha(), + z = ha(), + A = ha(), + 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 = M.replace("w", "w#"), + O = + "\\[" + + L + + "*(" + + M + + ")(?:" + + L + + "*([*^$|!~]?=)" + + L + + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + + N + + "))|)" + + L + + "*\\]", + P = + ":(" + + M + + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + + O + + ")*)|.*)\\)|)", + Q = new RegExp(L + "+", "g"), + R = new RegExp("^" + L + "+|((?:^|[^\\\\])(?:\\\\.)*)" + L + "+$", "g"), + S = new RegExp("^" + L + "*," + L + "*"), + T = new RegExp("^" + L + "*([>+~]|" + L + ")" + L + "*"), + U = new RegExp("=" + L + "*([^\\]'\"]*?)" + L + "*\\]", "g"), + V = new RegExp(P), + W = new RegExp("^" + N + "$"), + X = { + ID: new RegExp("^#(" + M + ")"), + CLASS: new RegExp("^\\.(" + M + ")"), + TAG: new RegExp("^(" + M.replace("w", "w*") + ")"), + ATTR: new RegExp("^" + O), + PSEUDO: new RegExp("^" + P), + 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" + ) + }, + Y = /^(?:input|select|textarea|button)$/i, + Z = /^h\d$/i, + $ = /^[^{]+\{\s*\[native \w/, + _ = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + aa = /[+~]/, + ba = /'|\\/g, + ca = new RegExp("\\\\([\\da-f]{1,6}" + L + "?|(" + L + ")|.)", "ig"), + da = 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); + }, + ea = function() { + m(); + }; + try { + H.apply((E = I.call(v.childNodes)), v.childNodes), + E[v.childNodes.length].nodeType; + } catch (fa) { + 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 ga(a, b, d, e) { + var f, h, j, k, l, o, r, s, w, x; + if ( + ((b ? b.ownerDocument || b : v) !== n && m(b), + (b = b || n), + (d = d || []), + (k = b.nodeType), + "string" != typeof a || !a || (1 !== k && 9 !== k && 11 !== k)) + ) + return d; + if (!e && p) { + if (11 !== k && (f = _.exec(a))) + if ((j = f[1])) { + if (9 === k) { + if (((h = b.getElementById(j)), !h || !h.parentNode)) return d; + if (h.id === j) return d.push(h), d; + } else if ( + b.ownerDocument && + (h = b.ownerDocument.getElementById(j)) && + t(b, h) && + h.id === j + ) + return d.push(h), d; + } else { + if (f[2]) return H.apply(d, b.getElementsByTagName(a)), d; + if ((j = f[3]) && c.getElementsByClassName) + return H.apply(d, b.getElementsByClassName(j)), d; + } + if (c.qsa && (!q || !q.test(a))) { + if ( + ((s = r = u), + (w = b), + (x = 1 !== k && a), + 1 === k && "object" !== b.nodeName.toLowerCase()) + ) { + (o = g(a)), + (r = b.getAttribute("id")) + ? (s = r.replace(ba, "\\$&")) + : b.setAttribute("id", s), + (s = "[id='" + s + "'] "), + (l = o.length); + while (l--) o[l] = s + ra(o[l]); + (w = (aa.test(a) && pa(b.parentNode)) || b), (x = o.join(",")); + } + if (x) + try { + return H.apply(d, w.querySelectorAll(x)), d; + } catch (y) { + } finally { + r || b.removeAttribute("id"); + } + } + } + return i(a.replace(R, "$1"), b, d, e); + } + function ha() { + var a = []; + function b(c, e) { + return ( + a.push(c + " ") > d.cacheLength && delete b[a.shift()], + (b[c + " "] = e) + ); + } + return b; + } + function ia(a) { + return (a[u] = !0), a; + } + function ja(a) { + var b = n.createElement("div"); + try { + return !!a(b); + } catch (c) { + return !1; + } finally { + b.parentNode && b.parentNode.removeChild(b), (b = null); + } + } + function ka(a, b) { + var c = a.split("|"), + e = a.length; + while (e--) d.attrHandle[c[e]] = b; + } + function la(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 ma(a) { + return function(b) { + var c = b.nodeName.toLowerCase(); + return "input" === c && b.type === a; + }; + } + function na(a) { + return function(b) { + var c = b.nodeName.toLowerCase(); + return ("input" === c || "button" === c) && b.type === a; + }; + } + function oa(a) { + return ia(function(b) { + return ( + (b = +b), + ia(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 pa(a) { + return a && "undefined" != typeof a.getElementsByTagName && a; + } + (c = ga.support = {}), + (f = ga.isXML = function(a) { + var b = a && (a.ownerDocument || a).documentElement; + return b ? "HTML" !== b.nodeName : !1; + }), + (m = ga.setDocument = function(a) { + var b, + e, + g = a ? a.ownerDocument || a : v; + return g !== n && 9 === g.nodeType && g.documentElement + ? ((n = g), + (o = g.documentElement), + (e = g.defaultView), + e && + e !== e.top && + (e.addEventListener + ? e.addEventListener("unload", ea, !1) + : e.attachEvent && e.attachEvent("onunload", ea)), + (p = !f(g)), + (c.attributes = ja(function(a) { + return (a.className = "i"), !a.getAttribute("className"); + })), + (c.getElementsByTagName = ja(function(a) { + return ( + a.appendChild(g.createComment("")), + !a.getElementsByTagName("*").length + ); + })), + (c.getElementsByClassName = $.test(g.getElementsByClassName)), + (c.getById = ja(function(a) { + return ( + (o.appendChild(a).id = u), + !g.getElementsByName || !g.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.parentNode ? [c] : []; + } + }), + (d.filter.ID = function(a) { + var b = a.replace(ca, da); + return function(a) { + return a.getAttribute("id") === b; + }; + })) + : (delete d.find.ID, + (d.filter.ID = function(a) { + var b = a.replace(ca, da); + 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 p ? b.getElementsByClassName(a) : void 0; + }), + (r = []), + (q = []), + (c.qsa = $.test(g.querySelectorAll)) && + (ja(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(".#.+[+~]"); + }), + ja(function(a) { + var b = g.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 = $.test( + (s = + o.matches || + o.webkitMatchesSelector || + o.mozMatchesSelector || + o.oMatchesSelector || + o.msMatchesSelector) + )) && + ja(function(a) { + (c.disconnectedMatch = s.call(a, "div")), + s.call(a, "[s!='']:x"), + r.push("!=", P); + }), + (q = q.length && new RegExp(q.join("|"))), + (r = r.length && new RegExp(r.join("|"))), + (b = $.test(o.compareDocumentPosition)), + (t = + b || $.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 === g || (a.ownerDocument === v && t(v, a)) + ? -1 + : b === g || (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, + h = [a], + i = [b]; + if (!e || !f) + return a === g + ? -1 + : b === g + ? 1 + : e + ? -1 + : f + ? 1 + : k + ? J(k, a) - J(k, b) + : 0; + if (e === f) return la(a, b); + c = a; + while ((c = c.parentNode)) h.unshift(c); + c = b; + while ((c = c.parentNode)) i.unshift(c); + while (h[d] === i[d]) d++; + return d + ? la(h[d], i[d]) + : h[d] === v + ? -1 + : i[d] === v + ? 1 + : 0; + }), + g) + : n; + }), + (ga.matches = function(a, b) { + return ga(a, null, null, b); + }), + (ga.matchesSelector = function(a, b) { + if ( + ((a.ownerDocument || a) !== n && m(a), + (b = b.replace(U, "='$1']")), + !(!c.matchesSelector || !p || (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 ga(b, n, null, [a]).length > 0; + }), + (ga.contains = function(a, b) { + return (a.ownerDocument || a) !== n && m(a), t(a, b); + }), + (ga.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; + }), + (ga.error = function(a) { + throw new Error("Syntax error, unrecognized expression: " + a); + }), + (ga.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 = ga.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 = ga.selectors = { + cacheLength: 50, + createPseudo: ia, + match: X, + 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(ca, da)), + (a[3] = (a[3] || a[4] || a[5] || "").replace(ca, da)), + "~=" === 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] || ga.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] && ga.error(a[0]), + a + ); + }, + PSEUDO: function(a) { + var b, + c = !a[6] && a[2]; + return X.CHILD.test(a[0]) + ? null + : (a[3] + ? (a[2] = a[4] || a[5] || "") + : c && + V.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(ca, da).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 = ga.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(Q, " ") + " ").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; + if (q) { + if (f) { + while (p) { + l = b; + while ((l = l[p])) + if ( + h + ? l.nodeName.toLowerCase() === r + : 1 === l.nodeType + ) + return !1; + o = p = "only" === a && !o && "nextSibling"; + } + return !0; + } + if (((o = [g ? q.firstChild : q.lastChild]), g && s)) { + (k = q[u] || (q[u] = {})), + (j = k[a] || []), + (n = j[0] === w && j[1]), + (m = j[0] === w && j[2]), + (l = n && q.childNodes[n]); + while ((l = (++n && l && l[p]) || (m = n = 0) || o.pop())) + if (1 === l.nodeType && ++m && l === b) { + k[a] = [w, n, m]; + break; + } + } else if ( + s && + (j = (b[u] || (b[u] = {}))[a]) && + j[0] === w + ) + m = j[1]; + else + while ((l = (++n && l && l[p]) || (m = n = 0) || o.pop())) + if ( + (h + ? l.nodeName.toLowerCase() === r + : 1 === l.nodeType) && + ++m && + (s && ((l[u] || (l[u] = {}))[a] = [w, m]), l === b) + ) + break; + return (m -= e), m === d || (m % d === 0 && m / d >= 0); + } + }; + }, + PSEUDO: function(a, b) { + var c, + e = + d.pseudos[a] || + d.setFilters[a.toLowerCase()] || + ga.error("unsupported pseudo: " + a); + return e[u] + ? e(b) + : e.length > 1 + ? ((c = [a, a, "", b]), + d.setFilters.hasOwnProperty(a.toLowerCase()) + ? ia(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: ia(function(a) { + var b = [], + c = [], + d = h(a.replace(R, "$1")); + return d[u] + ? ia(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: ia(function(a) { + return function(b) { + return ga(a, b).length > 0; + }; + }), + contains: ia(function(a) { + return ( + (a = a.replace(ca, da)), + function(b) { + return (b.textContent || b.innerText || e(b)).indexOf(a) > -1; + } + ); + }), + lang: ia(function(a) { + return ( + W.test(a || "") || ga.error("unsupported lang: " + a), + (a = a.replace(ca, da).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 Z.test(a.nodeName); + }, + input: function(a) { + return Y.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: oa(function() { + return [0]; + }), + last: oa(function(a, b) { + return [b - 1]; + }), + eq: oa(function(a, b, c) { + return [0 > c ? c + b : c]; + }), + even: oa(function(a, b) { + for (var c = 0; b > c; c += 2) a.push(c); + return a; + }), + odd: oa(function(a, b) { + for (var c = 1; b > c; c += 2) a.push(c); + return a; + }), + lt: oa(function(a, b, c) { + for (var d = 0 > c ? c + b : c; --d >= 0; ) a.push(d); + return a; + }), + gt: oa(function(a, b, c) { + for (var d = 0 > c ? c + b : c; ++d < b; ) a.push(d); + return a; + }) + } + }), + (d.pseudos.nth = d.pseudos.eq); + for (b in { radio: !0, checkbox: !0, file: !0, password: !0, image: !0 }) + d.pseudos[b] = ma(b); + for (b in { submit: !0, reset: !0 }) d.pseudos[b] = na(b); + function qa() {} + (qa.prototype = d.filters = d.pseudos), + (d.setFilters = new qa()), + (g = ga.tokenize = function(a, b) { + var c, + e, + f, + g, + h, + i, + j, + k = z[a + " "]; + if (k) return b ? 0 : k.slice(0); + (h = a), (i = []), (j = d.preFilter); + while (h) { + (!c || (e = S.exec(h))) && + (e && (h = h.slice(e[0].length) || h), i.push((f = []))), + (c = !1), + (e = T.exec(h)) && + ((c = e.shift()), + f.push({ value: c, type: e[0].replace(R, " ") }), + (h = h.slice(c.length))); + for (g in d.filter) + !(e = X[g].exec(h)) || + (j[g] && !(e = j[g](e))) || + ((c = e.shift()), + f.push({ value: c, type: g, matches: e }), + (h = h.slice(c.length))); + if (!c) break; + } + return b ? h.length : h ? ga.error(a) : z(a, i).slice(0); + }); + function ra(a) { + for (var b = 0, c = a.length, d = ""; c > b; b++) d += a[b].value; + return d; + } + function sa(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 = [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 ( + ((i = b[u] || (b[u] = {})), + (h = i[d]) && h[0] === w && h[1] === f) + ) + return (j[2] = h[2]); + if (((i[d] = j), (j[2] = a(b, c, g)))) return !0; + } + }; + } + function ta(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 ua(a, b, c) { + for (var d = 0, e = b.length; e > d; d++) ga(a, b[d], c); + return c; + } + function va(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 wa(a, b, c, d, e, f) { + return ( + d && !d[u] && (d = wa(d)), + e && !e[u] && (e = wa(e, f)), + ia(function(f, g, h, i) { + var j, + k, + l, + m = [], + n = [], + o = g.length, + p = f || ua(b || "*", h.nodeType ? [h] : h, []), + q = !a || (!f && b) ? p : va(p, m, a, h, i), + r = c ? (e || (f ? a : o || d) ? [] : g) : q; + if ((c && c(q, r, h, i), d)) { + (j = va(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 = va(r === g ? r.splice(o, r.length) : r)), e ? e(null, g, r, i) : H.apply(g, r); + }) + ); + } + function xa(a) { + for ( + var b, + c, + e, + f = a.length, + g = d.relative[a[0].type], + h = g || d.relative[" "], + i = g ? 1 : 0, + k = sa( + function(a) { + return a === b; + }, + h, + !0 + ), + l = sa( + 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 = [sa(ta(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 wa( + i > 1 && ta(m), + i > 1 && + ra( + a + .slice(0, i - 1) + .concat({ value: " " === a[i - 2].type ? "*" : "" }) + ).replace(R, "$1"), + c, + e > i && xa(a.slice(i, e)), + f > e && xa((a = a.slice(e))), + f > e && ra(a) + ); + } + m.push(c); + } + return ta(m); + } + function ya(a, b) { + var c = b.length > 0, + e = a.length > 0, + f = function(f, g, h, i, k) { + var l, + m, + o, + p = 0, + q = "0", + r = f && [], + s = [], + t = j, + u = f || (e && d.find.TAG("*", k)), + v = (w += null == t ? 1 : Math.random() || 0.1), + x = u.length; + for (k && (j = g !== n && g); q !== x && null != (l = u[q]); q++) { + if (e && l) { + m = 0; + while ((o = a[m++])) + if (o(l, g, h)) { + i.push(l); + break; + } + k && (w = v); + } + c && ((l = !o && l) && p--, f && r.push(l)); + } + if (((p += q), c && q !== p)) { + m = 0; + while ((o = b[m++])) o(r, s, g, h); + if (f) { + if (p > 0) while (q--) r[q] || s[q] || (s[q] = F.call(i)); + s = va(s); + } + H.apply(i, s), + k && !f && s.length > 0 && p + b.length > 1 && ga.uniqueSort(i); + } + return k && ((w = v), (j = t)), r; + }; + return c ? ia(f) : f; + } + return ( + (h = ga.compile = function(a, b) { + var c, + d = [], + e = [], + f = A[a + " "]; + if (!f) { + b || (b = g(a)), (c = b.length); + while (c--) (f = xa(b[c])), f[u] ? d.push(f) : e.push(f); + (f = A(a, ya(e, d))), (f.selector = a); + } + return f; + }), + (i = ga.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(ca, da), b) || [])[0]), !b) + ) + return e; + n && (b = b.parentNode), (a = a.slice(j.shift().value.length)); + } + i = X.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(ca, da), + (aa.test(j[0].type) && pa(b.parentNode)) || b + )) + ) { + if ((j.splice(i, 1), (a = f.length && ra(j)), !a)) + return H.apply(e, f), e; + break; + } + } + } + return ( + (n || h(a, o))(f, b, !p, e, (aa.test(a) && pa(b.parentNode)) || b), e + ); + }), + (c.sortStable = + u + .split("") + .sort(B) + .join("") === u), + (c.detectDuplicates = !!l), + m(), + (c.sortDetached = ja(function(a) { + return 1 & a.compareDocumentPosition(n.createElement("div")); + })), + ja(function(a) { + return ( + (a.innerHTML = ""), + "#" === a.firstChild.getAttribute("href") + ); + }) || + ka("type|href|height|width", function(a, b, c) { + return c + ? void 0 + : a.getAttribute(b, "type" === b.toLowerCase() ? 1 : 2); + }), + (c.attributes && + ja(function(a) { + return ( + (a.innerHTML = ""), + a.firstChild.setAttribute("value", ""), + "" === a.firstChild.getAttribute("value") + ); + })) || + ka("value", function(a, b, c) { + return c || "input" !== a.nodeName.toLowerCase() + ? void 0 + : a.defaultValue; + }), + ja(function(a) { + return null == a.getAttribute("disabled"); + }) || + ka(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; + }), + ga + ); + })(a); + (m.find = s), + (m.expr = s.selectors), + (m.expr[":"] = m.expr.pseudos), + (m.unique = s.uniqueSort), + (m.text = s.getText), + (m.isXMLDoc = s.isXML), + (m.contains = s.contains); + var t = m.expr.match.needsContext, + u = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, + v = /^.[^:#\[\.,]*$/; + function w(a, b, c) { + if (m.isFunction(b)) + return m.grep(a, function(a, d) { + return !!b.call(a, d, a) !== c; + }); + if (b.nodeType) + return m.grep(a, function(a) { + return (a === b) !== c; + }); + if ("string" == typeof b) { + if (v.test(b)) return m.filter(b, a, c); + b = m.filter(b, a); + } + return m.grep(a, function(a) { + return m.inArray(a, b) >= 0 !== c; + }); + } + (m.filter = function(a, b, c) { + var d = b[0]; + return ( + c && (a = ":not(" + a + ")"), + 1 === b.length && 1 === d.nodeType + ? m.find.matchesSelector(d, a) + ? [d] + : [] + : m.find.matches( + a, + m.grep(b, function(a) { + return 1 === a.nodeType; + }) + ) + ); + }), + m.fn.extend({ + find: function(a) { + var b, + c = [], + d = this, + e = d.length; + if ("string" != typeof a) + return this.pushStack( + m(a).filter(function() { + for (b = 0; e > b; b++) if (m.contains(d[b], this)) return !0; + }) + ); + for (b = 0; e > b; b++) m.find(a, d[b], c); + return ( + (c = this.pushStack(e > 1 ? m.unique(c) : c)), + (c.selector = this.selector ? this.selector + " " + a : a), + c + ); + }, + filter: function(a) { + return this.pushStack(w(this, a || [], !1)); + }, + not: function(a) { + return this.pushStack(w(this, a || [], !0)); + }, + is: function(a) { + return !!w(this, "string" == typeof a && t.test(a) ? m(a) : a || [], !1) + .length; + } + }); + var x, + y = a.document, + z = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, + A = (m.fn.init = function(a, b) { + var c, d; + if (!a) return this; + if ("string" == typeof a) { + if ( + ((c = + "<" === a.charAt(0) && + ">" === a.charAt(a.length - 1) && + a.length >= 3 + ? [null, a, null] + : z.exec(a)), + !c || (!c[1] && b)) + ) + return !b || b.jquery + ? (b || x).find(a) + : this.constructor(b).find(a); + if (c[1]) { + if ( + ((b = b instanceof m ? b[0] : b), + m.merge( + this, + m.parseHTML(c[1], b && b.nodeType ? b.ownerDocument || b : y, !0) + ), + u.test(c[1]) && m.isPlainObject(b)) + ) + for (c in b) + m.isFunction(this[c]) ? this[c](b[c]) : this.attr(c, b[c]); + return this; + } + if (((d = y.getElementById(c[2])), d && d.parentNode)) { + if (d.id !== c[2]) return x.find(a); + (this.length = 1), (this[0] = d); + } + return (this.context = y), (this.selector = a), this; + } + return a.nodeType + ? ((this.context = this[0] = a), (this.length = 1), this) + : m.isFunction(a) + ? "undefined" != typeof x.ready + ? x.ready(a) + : a(m) + : (void 0 !== a.selector && + ((this.selector = a.selector), (this.context = a.context)), + m.makeArray(a, this)); + }); + (A.prototype = m.fn), (x = m(y)); + var B = /^(?:parents|prev(?:Until|All))/, + C = { children: !0, contents: !0, next: !0, prev: !0 }; + m.extend({ + dir: function(a, b, c) { + var d = [], + e = a[b]; + while ( + e && + 9 !== e.nodeType && + (void 0 === c || 1 !== e.nodeType || !m(e).is(c)) + ) + 1 === e.nodeType && d.push(e), (e = e[b]); + return d; + }, + sibling: function(a, b) { + for (var c = []; a; a = a.nextSibling) + 1 === a.nodeType && a !== b && c.push(a); + return c; + } + }), + m.fn.extend({ + has: function(a) { + var b, + c = m(a, this), + d = c.length; + return this.filter(function() { + for (b = 0; d > b; b++) if (m.contains(this, c[b])) return !0; + }); + }, + closest: function(a, b) { + for ( + var c, + d = 0, + e = this.length, + f = [], + g = t.test(a) || "string" != typeof a ? m(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 && m.find.matchesSelector(c, a)) + ) { + f.push(c); + break; + } + return this.pushStack(f.length > 1 ? m.unique(f) : f); + }, + index: function(a) { + return a + ? "string" == typeof a + ? m.inArray(this[0], m(a)) + : m.inArray(a.jquery ? a[0] : a, this) + : this[0] && this[0].parentNode + ? this.first().prevAll().length + : -1; + }, + add: function(a, b) { + return this.pushStack(m.unique(m.merge(this.get(), m(a, b)))); + }, + addBack: function(a) { + return this.add( + null == a ? this.prevObject : this.prevObject.filter(a) + ); + } + }); + function D(a, b) { + do a = a[b]; + while (a && 1 !== a.nodeType); + return a; + } + m.each( + { + parent: function(a) { + var b = a.parentNode; + return b && 11 !== b.nodeType ? b : null; + }, + parents: function(a) { + return m.dir(a, "parentNode"); + }, + parentsUntil: function(a, b, c) { + return m.dir(a, "parentNode", c); + }, + next: function(a) { + return D(a, "nextSibling"); + }, + prev: function(a) { + return D(a, "previousSibling"); + }, + nextAll: function(a) { + return m.dir(a, "nextSibling"); + }, + prevAll: function(a) { + return m.dir(a, "previousSibling"); + }, + nextUntil: function(a, b, c) { + return m.dir(a, "nextSibling", c); + }, + prevUntil: function(a, b, c) { + return m.dir(a, "previousSibling", c); + }, + siblings: function(a) { + return m.sibling((a.parentNode || {}).firstChild, a); + }, + children: function(a) { + return m.sibling(a.firstChild); + }, + contents: function(a) { + return m.nodeName(a, "iframe") + ? a.contentDocument || a.contentWindow.document + : m.merge([], a.childNodes); + } + }, + function(a, b) { + m.fn[a] = function(c, d) { + var e = m.map(this, b, c); + return ( + "Until" !== a.slice(-5) && (d = c), + d && "string" == typeof d && (e = m.filter(d, e)), + this.length > 1 && + (C[a] || (e = m.unique(e)), B.test(a) && (e = e.reverse())), + this.pushStack(e) + ); + }; + } + ); + var E = /\S+/g, + F = {}; + function G(a) { + var b = (F[a] = {}); + return ( + m.each(a.match(E) || [], function(a, c) { + b[c] = !0; + }), + b + ); + } + (m.Callbacks = function(a) { + a = "string" == typeof a ? F[a] || G(a) : m.extend({}, a); + var b, + c, + d, + e, + f, + g, + h = [], + i = !a.once && [], + j = function(l) { + for ( + c = a.memory && l, d = !0, f = g || 0, g = 0, e = h.length, b = !0; + h && e > f; + f++ + ) + if (h[f].apply(l[0], l[1]) === !1 && a.stopOnFalse) { + c = !1; + break; + } + (b = !1), + h && (i ? i.length && j(i.shift()) : c ? (h = []) : k.disable()); + }, + k = { + add: function() { + if (h) { + var d = h.length; + !(function f(b) { + m.each(b, function(b, c) { + var d = m.type(c); + "function" === d + ? (a.unique && k.has(c)) || h.push(c) + : c && c.length && "string" !== d && f(c); + }); + })(arguments), + b ? (e = h.length) : c && ((g = d), j(c)); + } + return this; + }, + remove: function() { + return ( + h && + m.each(arguments, function(a, c) { + var d; + while ((d = m.inArray(c, h, d)) > -1) + h.splice(d, 1), b && (e >= d && e--, f >= d && f--); + }), + this + ); + }, + has: function(a) { + return a ? m.inArray(a, h) > -1 : !(!h || !h.length); + }, + empty: function() { + return (h = []), (e = 0), this; + }, + disable: function() { + return (h = i = c = void 0), this; + }, + disabled: function() { + return !h; + }, + lock: function() { + return (i = void 0), c || k.disable(), this; + }, + locked: function() { + return !i; + }, + fireWith: function(a, c) { + return ( + !h || + (d && !i) || + ((c = c || []), + (c = [a, c.slice ? c.slice() : c]), + b ? i.push(c) : j(c)), + this + ); + }, + fire: function() { + return k.fireWith(this, arguments), this; + }, + fired: function() { + return !!d; + } + }; + return k; + }), + m.extend({ + Deferred: function(a) { + var b = [ + ["resolve", "done", m.Callbacks("once memory"), "resolved"], + ["reject", "fail", m.Callbacks("once memory"), "rejected"], + ["notify", "progress", m.Callbacks("memory")] + ], + c = "pending", + d = { + state: function() { + return c; + }, + always: function() { + return e.done(arguments).fail(arguments), this; + }, + then: function() { + var a = arguments; + return m + .Deferred(function(c) { + m.each(b, function(b, f) { + var g = m.isFunction(a[b]) && a[b]; + e[f[1]](function() { + var a = g && g.apply(this, arguments); + a && m.isFunction(a.promise) + ? a + .promise() + .done(c.resolve) + .fail(c.reject) + .progress(c.notify) + : c[f[0] + "With"]( + this === d ? c.promise() : this, + g ? [a] : arguments + ); + }); + }), + (a = null); + }) + .promise(); + }, + promise: function(a) { + return null != a ? m.extend(a, d) : d; + } + }, + e = {}; + return ( + (d.pipe = d.then), + m.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 = d.call(arguments), + e = c.length, + f = 1 !== e || (a && m.isFunction(a.promise)) ? e : 0, + g = 1 === f ? a : m.Deferred(), + h = function(a, b, c) { + return function(e) { + (b[a] = this), + (c[a] = arguments.length > 1 ? d.call(arguments) : e), + c === i ? g.notifyWith(b, c) : --f || g.resolveWith(b, c); + }; + }, + i, + j, + k; + if (e > 1) + for (i = new Array(e), j = new Array(e), k = new Array(e); e > b; b++) + c[b] && m.isFunction(c[b].promise) + ? c[b] + .promise() + .done(h(b, k, c)) + .fail(g.reject) + .progress(h(b, j, i)) + : --f; + return f || g.resolveWith(k, c), g.promise(); + } + }); + var H; + (m.fn.ready = function(a) { + return m.ready.promise().done(a), this; + }), + m.extend({ + isReady: !1, + readyWait: 1, + holdReady: function(a) { + a ? m.readyWait++ : m.ready(!0); + }, + ready: function(a) { + if (a === !0 ? !--m.readyWait : !m.isReady) { + if (!y.body) return setTimeout(m.ready); + (m.isReady = !0), + (a !== !0 && --m.readyWait > 0) || + (H.resolveWith(y, [m]), + m.fn.triggerHandler && + (m(y).triggerHandler("ready"), m(y).off("ready"))); + } + } + }); + function I() { + y.addEventListener + ? (y.removeEventListener("DOMContentLoaded", J, !1), + a.removeEventListener("load", J, !1)) + : (y.detachEvent("onreadystatechange", J), a.detachEvent("onload", J)); + } + function J() { + (y.addEventListener || + "load" === event.type || + "complete" === y.readyState) && + (I(), m.ready()); + } + m.ready.promise = function(b) { + if (!H) + if (((H = m.Deferred()), "complete" === y.readyState)) + setTimeout(m.ready); + else if (y.addEventListener) + y.addEventListener("DOMContentLoaded", J, !1), + a.addEventListener("load", J, !1); + else { + y.attachEvent("onreadystatechange", J), a.attachEvent("onload", J); + var c = !1; + try { + c = null == a.frameElement && y.documentElement; + } catch (d) {} + c && + c.doScroll && + !(function e() { + if (!m.isReady) { + try { + c.doScroll("left"); + } catch (a) { + return setTimeout(e, 50); + } + I(), m.ready(); + } + })(); + } + return H.promise(b); + }; + var K = "undefined", + L; + for (L in m(k)) break; + (k.ownLast = "0" !== L), + (k.inlineBlockNeedsLayout = !1), + m(function() { + var a, b, c, d; + (c = y.getElementsByTagName("body")[0]), + c && + c.style && + ((b = y.createElement("div")), + (d = y.createElement("div")), + (d.style.cssText = + "position:absolute;border:0;width:0;height:0;top:0;left:-9999px"), + c.appendChild(d).appendChild(b), + typeof b.style.zoom !== K && + ((b.style.cssText = + "display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1"), + (k.inlineBlockNeedsLayout = a = 3 === b.offsetWidth), + a && (c.style.zoom = 1)), + c.removeChild(d)); + }), + (function() { + var a = y.createElement("div"); + if (null == k.deleteExpando) { + k.deleteExpando = !0; + try { + delete a.test; + } catch (b) { + k.deleteExpando = !1; + } + } + a = null; + })(), + (m.acceptData = function(a) { + var b = m.noData[(a.nodeName + " ").toLowerCase()], + c = +a.nodeType || 1; + return 1 !== c && 9 !== c + ? !1 + : !b || (b !== !0 && a.getAttribute("classid") === b); + }); + var M = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + N = /([A-Z])/g; + function O(a, b, c) { + if (void 0 === c && 1 === a.nodeType) { + var d = "data-" + b.replace(N, "-$1").toLowerCase(); + if (((c = a.getAttribute(d)), "string" == typeof c)) { + try { + c = + "true" === c + ? !0 + : "false" === c + ? !1 + : "null" === c + ? null + : +c + "" === c + ? +c + : M.test(c) + ? m.parseJSON(c) + : c; + } catch (e) {} + m.data(a, b, c); + } else c = void 0; + } + return c; + } + function P(a) { + var b; + for (b in a) + if (("data" !== b || !m.isEmptyObject(a[b])) && "toJSON" !== b) return !1; + + return !0; + } + function Q(a, b, d, e) { + if (m.acceptData(a)) { + var f, + g, + h = m.expando, + i = a.nodeType, + j = i ? m.cache : a, + k = i ? a[h] : a[h] && h; + if ( + (k && j[k] && (e || j[k].data)) || + void 0 !== d || + "string" != typeof b + ) + return ( + k || (k = i ? (a[h] = c.pop() || m.guid++) : h), + j[k] || (j[k] = i ? {} : { toJSON: m.noop }), + ("object" == typeof b || "function" == typeof b) && + (e + ? (j[k] = m.extend(j[k], b)) + : (j[k].data = m.extend(j[k].data, b))), + (g = j[k]), + e || (g.data || (g.data = {}), (g = g.data)), + void 0 !== d && (g[m.camelCase(b)] = d), + "string" == typeof b + ? ((f = g[b]), null == f && (f = g[m.camelCase(b)])) + : (f = g), + f + ); + } + } + function R(a, b, c) { + if (m.acceptData(a)) { + var d, + e, + f = a.nodeType, + g = f ? m.cache : a, + h = f ? a[m.expando] : m.expando; + if (g[h]) { + if (b && (d = c ? g[h] : g[h].data)) { + m.isArray(b) + ? (b = b.concat(m.map(b, m.camelCase))) + : b in d + ? (b = [b]) + : ((b = m.camelCase(b)), (b = b in d ? [b] : b.split(" "))), + (e = b.length); + while (e--) delete d[b[e]]; + if (c ? !P(d) : !m.isEmptyObject(d)) return; + } + (c || (delete g[h].data, P(g[h]))) && + (f + ? m.cleanData([a], !0) + : k.deleteExpando || g != g.window + ? delete g[h] + : (g[h] = null)); + } + } + } + m.extend({ + cache: {}, + noData: { + "applet ": !0, + "embed ": !0, + "object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" + }, + hasData: function(a) { + return ( + (a = a.nodeType ? m.cache[a[m.expando]] : a[m.expando]), !!a && !P(a) + ); + }, + data: function(a, b, c) { + return Q(a, b, c); + }, + removeData: function(a, b) { + return R(a, b); + }, + _data: function(a, b, c) { + return Q(a, b, c, !0); + }, + _removeData: function(a, b) { + return R(a, b, !0); + } + }), + m.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 = m.data(f)), 1 === f.nodeType && !m._data(f, "parsedAttrs")) + ) { + c = g.length; + while (c--) + g[c] && + ((d = g[c].name), + 0 === d.indexOf("data-") && + ((d = m.camelCase(d.slice(5))), O(f, d, e[d]))); + m._data(f, "parsedAttrs", !0); + } + return e; + } + return "object" == typeof a + ? this.each(function() { + m.data(this, a); + }) + : arguments.length > 1 + ? this.each(function() { + m.data(this, a, b); + }) + : f + ? O(f, a, m.data(f, a)) + : void 0; + }, + removeData: function(a) { + return this.each(function() { + m.removeData(this, a); + }); + } + }), + m.extend({ + queue: function(a, b, c) { + var d; + return a + ? ((b = (b || "fx") + "queue"), + (d = m._data(a, b)), + c && + (!d || m.isArray(c) + ? (d = m._data(a, b, m.makeArray(c))) + : d.push(c)), + d || []) + : void 0; + }, + dequeue: function(a, b) { + b = b || "fx"; + var c = m.queue(a, b), + d = c.length, + e = c.shift(), + f = m._queueHooks(a, b), + g = function() { + m.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 ( + m._data(a, c) || + m._data(a, c, { + empty: m.Callbacks("once memory").add(function() { + m._removeData(a, b + "queue"), m._removeData(a, c); + }) + }) + ); + } + }), + m.fn.extend({ + queue: function(a, b) { + var c = 2; + return ( + "string" != typeof a && ((b = a), (a = "fx"), c--), + arguments.length < c + ? m.queue(this[0], a) + : void 0 === b + ? this + : this.each(function() { + var c = m.queue(this, a, b); + m._queueHooks(this, a), + "fx" === a && "inprogress" !== c[0] && m.dequeue(this, a); + }) + ); + }, + dequeue: function(a) { + return this.each(function() { + m.dequeue(this, a); + }); + }, + clearQueue: function(a) { + return this.queue(a || "fx", []); + }, + promise: function(a, b) { + var c, + d = 1, + e = m.Deferred(), + f = this, + g = this.length, + h = function() { + --d || e.resolveWith(f, [f]); + }; + "string" != typeof a && ((b = a), (a = void 0)), (a = a || "fx"); + while (g--) + (c = m._data(f[g], a + "queueHooks")), + c && c.empty && (d++, c.empty.add(h)); + return h(), e.promise(b); + } + }); + var S = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, + T = ["Top", "Right", "Bottom", "Left"], + U = function(a, b) { + return ( + (a = b || a), + "none" === m.css(a, "display") || !m.contains(a.ownerDocument, a) + ); + }, + V = (m.access = function(a, b, c, d, e, f, g) { + var h = 0, + i = a.length, + j = null == c; + if ("object" === m.type(c)) { + e = !0; + for (h in c) m.access(a, b, h, c[h], !0, f, g); + } else if ( + void 0 !== d && + ((e = !0), + m.isFunction(d) || (g = !0), + j && + (g + ? (b.call(a, d), (b = null)) + : ((j = b), + (b = function(a, b, c) { + return j.call(m(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; + }), + W = /^(?:checkbox|radio)$/i; + !(function() { + var a = y.createElement("input"), + b = y.createElement("div"), + c = y.createDocumentFragment(); + if ( + ((b.innerHTML = + "
          a"), + (k.leadingWhitespace = 3 === b.firstChild.nodeType), + (k.tbody = !b.getElementsByTagName("tbody").length), + (k.htmlSerialize = !!b.getElementsByTagName("link").length), + (k.html5Clone = + "<:nav>" !== y.createElement("nav").cloneNode(!0).outerHTML), + (a.type = "checkbox"), + (a.checked = !0), + c.appendChild(a), + (k.appendChecked = a.checked), + (b.innerHTML = ""), + (k.noCloneChecked = !!b.cloneNode(!0).lastChild.defaultValue), + c.appendChild(b), + (b.innerHTML = ""), + (k.checkClone = b.cloneNode(!0).cloneNode(!0).lastChild.checked), + (k.noCloneEvent = !0), + b.attachEvent && + (b.attachEvent("onclick", function() { + k.noCloneEvent = !1; + }), + b.cloneNode(!0).click()), + null == k.deleteExpando) + ) { + k.deleteExpando = !0; + try { + delete b.test; + } catch (d) { + k.deleteExpando = !1; + } + } + })(), + (function() { + var b, + c, + d = y.createElement("div"); + for (b in { submit: !0, change: !0, focusin: !0 }) + (c = "on" + b), + (k[b + "Bubbles"] = c in a) || + (d.setAttribute(c, "t"), + (k[b + "Bubbles"] = d.attributes[c].expando === !1)); + d = null; + })(); + var X = /^(?:input|select|textarea)$/i, + Y = /^key/, + Z = /^(?:mouse|pointer|contextmenu)|click/, + $ = /^(?:focusinfocus|focusoutblur)$/, + _ = /^([^.]*)(?:\.(.+)|)$/; + function aa() { + return !0; + } + function ba() { + return !1; + } + function ca() { + try { + return y.activeElement; + } catch (a) {} + } + (m.event = { + global: {}, + add: function(a, b, c, d, e) { + var f, + g, + h, + i, + j, + k, + l, + n, + o, + p, + q, + r = m._data(a); + if (r) { + c.handler && ((i = c), (c = i.handler), (e = i.selector)), + c.guid || (c.guid = m.guid++), + (g = r.events) || (g = r.events = {}), + (k = r.handle) || + ((k = r.handle = function(a) { + return typeof m === K || (a && m.event.triggered === a.type) + ? void 0 + : m.event.dispatch.apply(k.elem, arguments); + }), + (k.elem = a)), + (b = (b || "").match(E) || [""]), + (h = b.length); + while (h--) + (f = _.exec(b[h]) || []), + (o = q = f[1]), + (p = (f[2] || "").split(".").sort()), + o && + ((j = m.event.special[o] || {}), + (o = (e ? j.delegateType : j.bindType) || o), + (j = m.event.special[o] || {}), + (l = m.extend( + { + type: o, + origType: q, + data: d, + handler: c, + guid: c.guid, + selector: e, + needsContext: e && m.expr.match.needsContext.test(e), + namespace: p.join(".") + }, + i + )), + (n = g[o]) || + ((n = g[o] = []), + (n.delegateCount = 0), + (j.setup && j.setup.call(a, d, p, k) !== !1) || + (a.addEventListener + ? a.addEventListener(o, k, !1) + : a.attachEvent && a.attachEvent("on" + o, k))), + j.add && + (j.add.call(a, l), l.handler.guid || (l.handler.guid = c.guid)), + e ? n.splice(n.delegateCount++, 0, l) : n.push(l), + (m.event.global[o] = !0)); + a = null; + } + }, + remove: function(a, b, c, d, e) { + var f, + g, + h, + i, + j, + k, + l, + n, + o, + p, + q, + r = m.hasData(a) && m._data(a); + if (r && (k = r.events)) { + (b = (b || "").match(E) || [""]), (j = b.length); + while (j--) + if ( + ((h = _.exec(b[j]) || []), + (o = q = h[1]), + (p = (h[2] || "").split(".").sort()), + o) + ) { + (l = m.event.special[o] || {}), + (o = (d ? l.delegateType : l.bindType) || o), + (n = k[o] || []), + (h = + h[2] && + new RegExp("(^|\\.)" + p.join("\\.(?:.*\\.|)") + "(\\.|$)")), + (i = f = n.length); + while (f--) + (g = n[f]), + (!e && q !== g.origType) || + (c && c.guid !== g.guid) || + (h && !h.test(g.namespace)) || + (d && d !== g.selector && ("**" !== d || !g.selector)) || + (n.splice(f, 1), + g.selector && n.delegateCount--, + l.remove && l.remove.call(a, g)); + i && + !n.length && + ((l.teardown && l.teardown.call(a, p, r.handle) !== !1) || + m.removeEvent(a, o, r.handle), + delete k[o]); + } else for (o in k) m.event.remove(a, o + b[j], c, d, !0); + m.isEmptyObject(k) && (delete r.handle, m._removeData(a, "events")); + } + }, + trigger: function(b, c, d, e) { + var f, + g, + h, + i, + k, + l, + n, + o = [d || y], + p = j.call(b, "type") ? b.type : b, + q = j.call(b, "namespace") ? b.namespace.split(".") : []; + if ( + ((h = l = d = d || y), + 3 !== d.nodeType && + 8 !== d.nodeType && + !$.test(p + m.event.triggered) && + (p.indexOf(".") >= 0 && + ((q = p.split(".")), (p = q.shift()), q.sort()), + (g = p.indexOf(":") < 0 && "on" + p), + (b = b[m.expando] ? b : new m.Event(p, "object" == typeof b && b)), + (b.isTrigger = e ? 2 : 3), + (b.namespace = q.join(".")), + (b.namespace_re = b.namespace + ? new RegExp("(^|\\.)" + q.join("\\.(?:.*\\.|)") + "(\\.|$)") + : null), + (b.result = void 0), + b.target || (b.target = d), + (c = null == c ? [b] : m.makeArray(c, [b])), + (k = m.event.special[p] || {}), + e || !k.trigger || k.trigger.apply(d, c) !== !1)) + ) { + if (!e && !k.noBubble && !m.isWindow(d)) { + for ( + i = k.delegateType || p, $.test(i + p) || (h = h.parentNode); + h; + h = h.parentNode + ) + o.push(h), (l = h); + l === (d.ownerDocument || y) && + o.push(l.defaultView || l.parentWindow || a); + } + n = 0; + while ((h = o[n++]) && !b.isPropagationStopped()) + (b.type = n > 1 ? i : k.bindType || p), + (f = (m._data(h, "events") || {})[b.type] && m._data(h, "handle")), + f && f.apply(h, c), + (f = g && h[g]), + f && + f.apply && + m.acceptData(h) && + ((b.result = f.apply(h, c)), + b.result === !1 && b.preventDefault()); + if ( + ((b.type = p), + !e && + !b.isDefaultPrevented() && + (!k._default || k._default.apply(o.pop(), c) === !1) && + m.acceptData(d) && + g && + d[p] && + !m.isWindow(d)) + ) { + (l = d[g]), l && (d[g] = null), (m.event.triggered = p); + try { + d[p](); + } catch (r) {} + (m.event.triggered = void 0), l && (d[g] = l); + } + return b.result; + } + }, + dispatch: function(a) { + a = m.event.fix(a); + var b, + c, + e, + f, + g, + h = [], + i = d.call(arguments), + j = (m._data(this, "events") || {})[a.type] || [], + k = m.event.special[a.type] || {}; + if ( + ((i[0] = a), + (a.delegateTarget = this), + !k.preDispatch || k.preDispatch.call(this, a) !== !1) + ) { + (h = m.event.handlers.call(this, a, j)), (b = 0); + while ((f = h[b++]) && !a.isPropagationStopped()) { + (a.currentTarget = f.elem), (g = 0); + while ((e = f.handlers[g++]) && !a.isImmediatePropagationStopped()) + (!a.namespace_re || a.namespace_re.test(e.namespace)) && + ((a.handleObj = e), + (a.data = e.data), + (c = ( + (m.event.special[e.origType] || {}).handle || e.handler + ).apply(f.elem, i)), + void 0 !== c && + (a.result = c) === !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 && (!a.button || "click" !== a.type)) + for (; i != this; i = i.parentNode || this) + if (1 === i.nodeType && (i.disabled !== !0 || "click" !== a.type)) { + for (e = [], f = 0; h > f; f++) + (d = b[f]), + (c = d.selector + " "), + void 0 === e[c] && + (e[c] = d.needsContext + ? m(c, this).index(i) >= 0 + : m.find(c, this, null, [i]).length), + e[c] && e.push(d); + e.length && g.push({ elem: i, handlers: e }); + } + return h < b.length && g.push({ elem: this, handlers: b.slice(h) }), g; + }, + fix: function(a) { + if (a[m.expando]) return a; + var b, + c, + d, + e = a.type, + f = a, + g = this.fixHooks[e]; + g || + (this.fixHooks[e] = g = Z.test(e) + ? this.mouseHooks + : Y.test(e) + ? this.keyHooks + : {}), + (d = g.props ? this.props.concat(g.props) : this.props), + (a = new m.Event(f)), + (b = d.length); + while (b--) (c = d[b]), (a[c] = f[c]); + return ( + a.target || (a.target = f.srcElement || y), + 3 === a.target.nodeType && (a.target = a.target.parentNode), + (a.metaKey = !!a.metaKey), + g.filter ? g.filter(a, f) : a + ); + }, + props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split( + " " + ), + fixHooks: {}, + keyHooks: { + props: "char charCode key keyCode".split(" "), + filter: function(a, b) { + return ( + null == a.which && + (a.which = null != b.charCode ? b.charCode : b.keyCode), + a + ); + } + }, + mouseHooks: { + props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split( + " " + ), + filter: function(a, b) { + var c, + d, + e, + f = b.button, + g = b.fromElement; + return ( + null == a.pageX && + null != b.clientX && + ((d = a.target.ownerDocument || y), + (e = d.documentElement), + (c = d.body), + (a.pageX = + b.clientX + + ((e && e.scrollLeft) || (c && c.scrollLeft) || 0) - + ((e && e.clientLeft) || (c && c.clientLeft) || 0)), + (a.pageY = + b.clientY + + ((e && e.scrollTop) || (c && c.scrollTop) || 0) - + ((e && e.clientTop) || (c && c.clientTop) || 0))), + !a.relatedTarget && + g && + (a.relatedTarget = g === a.target ? b.toElement : g), + a.which || + void 0 === f || + (a.which = 1 & f ? 1 : 2 & f ? 3 : 4 & f ? 2 : 0), + a + ); + } + }, + special: { + load: { noBubble: !0 }, + focus: { + trigger: function() { + if (this !== ca() && this.focus) + try { + return this.focus(), !1; + } catch (a) {} + }, + delegateType: "focusin" + }, + blur: { + trigger: function() { + return this === ca() && this.blur ? (this.blur(), !1) : void 0; + }, + delegateType: "focusout" + }, + click: { + trigger: function() { + return m.nodeName(this, "input") && + "checkbox" === this.type && + this.click + ? (this.click(), !1) + : void 0; + }, + _default: function(a) { + return m.nodeName(a.target, "a"); + } + }, + beforeunload: { + postDispatch: function(a) { + void 0 !== a.result && + a.originalEvent && + (a.originalEvent.returnValue = a.result); + } + } + }, + simulate: function(a, b, c, d) { + var e = m.extend(new m.Event(), c, { + type: a, + isSimulated: !0, + originalEvent: {} + }); + d ? m.event.trigger(e, null, b) : m.event.dispatch.call(b, e), + e.isDefaultPrevented() && c.preventDefault(); + } + }), + (m.removeEvent = y.removeEventListener + ? function(a, b, c) { + a.removeEventListener && a.removeEventListener(b, c, !1); + } + : function(a, b, c) { + var d = "on" + b; + a.detachEvent && + (typeof a[d] === K && (a[d] = null), a.detachEvent(d, c)); + }), + (m.Event = function(a, b) { + return this instanceof m.Event + ? (a && a.type + ? ((this.originalEvent = a), + (this.type = a.type), + (this.isDefaultPrevented = + a.defaultPrevented || + (void 0 === a.defaultPrevented && a.returnValue === !1) + ? aa + : ba)) + : (this.type = a), + b && m.extend(this, b), + (this.timeStamp = (a && a.timeStamp) || m.now()), + void (this[m.expando] = !0)) + : new m.Event(a, b); + }), + (m.Event.prototype = { + isDefaultPrevented: ba, + isPropagationStopped: ba, + isImmediatePropagationStopped: ba, + preventDefault: function() { + var a = this.originalEvent; + (this.isDefaultPrevented = aa), + a && (a.preventDefault ? a.preventDefault() : (a.returnValue = !1)); + }, + stopPropagation: function() { + var a = this.originalEvent; + (this.isPropagationStopped = aa), + a && + (a.stopPropagation && a.stopPropagation(), (a.cancelBubble = !0)); + }, + stopImmediatePropagation: function() { + var a = this.originalEvent; + (this.isImmediatePropagationStopped = aa), + a && a.stopImmediatePropagation && a.stopImmediatePropagation(), + this.stopPropagation(); + } + }), + m.each( + { + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" + }, + function(a, b) { + m.event.special[a] = { + delegateType: b, + bindType: b, + handle: function(a) { + var c, + d = this, + e = a.relatedTarget, + f = a.handleObj; + return ( + (!e || (e !== d && !m.contains(d, e))) && + ((a.type = f.origType), + (c = f.handler.apply(this, arguments)), + (a.type = b)), + c + ); + } + }; + } + ), + k.submitBubbles || + (m.event.special.submit = { + setup: function() { + return m.nodeName(this, "form") + ? !1 + : void m.event.add(this, "click._submit keypress._submit", function( + a + ) { + var b = a.target, + c = + m.nodeName(b, "input") || m.nodeName(b, "button") + ? b.form + : void 0; + c && + !m._data(c, "submitBubbles") && + (m.event.add(c, "submit._submit", function(a) { + a._submit_bubble = !0; + }), + m._data(c, "submitBubbles", !0)); + }); + }, + postDispatch: function(a) { + a._submit_bubble && + (delete a._submit_bubble, + this.parentNode && + !a.isTrigger && + m.event.simulate("submit", this.parentNode, a, !0)); + }, + teardown: function() { + return m.nodeName(this, "form") + ? !1 + : void m.event.remove(this, "._submit"); + } + }), + k.changeBubbles || + (m.event.special.change = { + setup: function() { + return X.test(this.nodeName) + ? (("checkbox" === this.type || "radio" === this.type) && + (m.event.add(this, "propertychange._change", function(a) { + "checked" === a.originalEvent.propertyName && + (this._just_changed = !0); + }), + m.event.add(this, "click._change", function(a) { + this._just_changed && + !a.isTrigger && + (this._just_changed = !1), + m.event.simulate("change", this, a, !0); + })), + !1) + : void m.event.add(this, "beforeactivate._change", function(a) { + var b = a.target; + X.test(b.nodeName) && + !m._data(b, "changeBubbles") && + (m.event.add(b, "change._change", function(a) { + !this.parentNode || + a.isSimulated || + a.isTrigger || + m.event.simulate("change", this.parentNode, a, !0); + }), + m._data(b, "changeBubbles", !0)); + }); + }, + handle: function(a) { + var b = a.target; + return this !== b || + a.isSimulated || + a.isTrigger || + ("radio" !== b.type && "checkbox" !== b.type) + ? a.handleObj.handler.apply(this, arguments) + : void 0; + }, + teardown: function() { + return m.event.remove(this, "._change"), !X.test(this.nodeName); + } + }), + k.focusinBubbles || + m.each({ focus: "focusin", blur: "focusout" }, function(a, b) { + var c = function(a) { + m.event.simulate(b, a.target, m.event.fix(a), !0); + }; + m.event.special[b] = { + setup: function() { + var d = this.ownerDocument || this, + e = m._data(d, b); + e || d.addEventListener(a, c, !0), m._data(d, b, (e || 0) + 1); + }, + teardown: function() { + var d = this.ownerDocument || this, + e = m._data(d, b) - 1; + e + ? m._data(d, b, e) + : (d.removeEventListener(a, c, !0), m._removeData(d, b)); + } + }; + }), + m.fn.extend({ + on: function(a, b, c, d, e) { + var f, g; + if ("object" == typeof a) { + "string" != typeof b && ((c = c || b), (b = void 0)); + for (f in a) this.on(f, b, c, a[f], e); + return this; + } + if ( + (null == c && null == d + ? ((d = b), (c = b = void 0)) + : null == d && + ("string" == typeof b + ? ((d = c), (c = void 0)) + : ((d = c), (c = b), (b = void 0))), + d === !1) + ) + d = ba; + else if (!d) return this; + return ( + 1 === e && + ((g = d), + (d = function(a) { + return m().off(a), g.apply(this, arguments); + }), + (d.guid = g.guid || (g.guid = m.guid++))), + this.each(function() { + m.event.add(this, a, d, c, b); + }) + ); + }, + one: function(a, b, c, d) { + return this.on(a, b, c, d, 1); + }, + off: function(a, b, c) { + var d, e; + if (a && a.preventDefault && a.handleObj) + return ( + (d = a.handleObj), + m(a.delegateTarget).off( + d.namespace ? d.origType + "." + d.namespace : d.origType, + d.selector, + d.handler + ), + this + ); + if ("object" == typeof a) { + for (e in a) this.off(e, b, a[e]); + return this; + } + return ( + (b === !1 || "function" == typeof b) && ((c = b), (b = void 0)), + c === !1 && (c = ba), + this.each(function() { + m.event.remove(this, a, c, b); + }) + ); + }, + trigger: function(a, b) { + return this.each(function() { + m.event.trigger(a, b, this); + }); + }, + triggerHandler: function(a, b) { + var c = this[0]; + return c ? m.event.trigger(a, b, c, !0) : void 0; + } + }); + function da(a) { + var b = ea.split("|"), + c = a.createDocumentFragment(); + if (c.createElement) while (b.length) c.createElement(b.pop()); + return c; + } + var ea = + "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", + fa = / jQuery\d+="(?:null|\d+)"/g, + ga = new RegExp("<(?:" + ea + ")[\\s/>]", "i"), + ha = /^\s+/, + ia = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, + ja = /<([\w:]+)/, + ka = /\s*$/g, + ra = { + option: [1, ""], + legend: [1, "
          ", "
          "], + area: [1, "", ""], + param: [1, "", ""], + thead: [1, "", "
          "], + tr: [2, "", "
          "], + col: [2, "", "
          "], + td: [3, "", "
          "], + _default: k.htmlSerialize ? [0, "", ""] : [1, "X
          ", "
          "] + }, + sa = da(y), + ta = sa.appendChild(y.createElement("div")); + (ra.optgroup = ra.option), + (ra.tbody = ra.tfoot = ra.colgroup = ra.caption = ra.thead), + (ra.th = ra.td); + function ua(a, b) { + var c, + d, + e = 0, + f = + typeof a.getElementsByTagName !== K + ? a.getElementsByTagName(b || "*") + : typeof a.querySelectorAll !== K + ? a.querySelectorAll(b || "*") + : void 0; + if (!f) + for (f = [], c = a.childNodes || a; null != (d = c[e]); e++) + !b || m.nodeName(d, b) ? f.push(d) : m.merge(f, ua(d, b)); + return void 0 === b || (b && m.nodeName(a, b)) ? m.merge([a], f) : f; + } + function va(a) { + W.test(a.type) && (a.defaultChecked = a.checked); + } + function wa(a, b) { + return m.nodeName(a, "table") && + m.nodeName(11 !== b.nodeType ? b : b.firstChild, "tr") + ? a.getElementsByTagName("tbody")[0] || + a.appendChild(a.ownerDocument.createElement("tbody")) + : a; + } + function xa(a) { + return (a.type = (null !== m.find.attr(a, "type")) + "/" + a.type), a; + } + function ya(a) { + var b = pa.exec(a.type); + return b ? (a.type = b[1]) : a.removeAttribute("type"), a; + } + function za(a, b) { + for (var c, d = 0; null != (c = a[d]); d++) + m._data(c, "globalEval", !b || m._data(b[d], "globalEval")); + } + function Aa(a, b) { + if (1 === b.nodeType && m.hasData(a)) { + var c, + d, + e, + f = m._data(a), + g = m._data(b, f), + h = f.events; + if (h) { + delete g.handle, (g.events = {}); + for (c in h) + for (d = 0, e = h[c].length; e > d; d++) m.event.add(b, c, h[c][d]); + } + g.data && (g.data = m.extend({}, g.data)); + } + } + function Ba(a, b) { + var c, d, e; + if (1 === b.nodeType) { + if (((c = b.nodeName.toLowerCase()), !k.noCloneEvent && b[m.expando])) { + e = m._data(b); + for (d in e.events) m.removeEvent(b, d, e.handle); + b.removeAttribute(m.expando); + } + "script" === c && b.text !== a.text + ? ((xa(b).text = a.text), ya(b)) + : "object" === c + ? (b.parentNode && (b.outerHTML = a.outerHTML), + k.html5Clone && + a.innerHTML && + !m.trim(b.innerHTML) && + (b.innerHTML = a.innerHTML)) + : "input" === c && W.test(a.type) + ? ((b.defaultChecked = b.checked = a.checked), + b.value !== a.value && (b.value = a.value)) + : "option" === c + ? (b.defaultSelected = b.selected = a.defaultSelected) + : ("input" === c || "textarea" === c) && + (b.defaultValue = a.defaultValue); + } + } + m.extend({ + clone: function(a, b, c) { + var d, + e, + f, + g, + h, + i = m.contains(a.ownerDocument, a); + if ( + (k.html5Clone || m.isXMLDoc(a) || !ga.test("<" + a.nodeName + ">") + ? (f = a.cloneNode(!0)) + : ((ta.innerHTML = a.outerHTML), ta.removeChild((f = ta.firstChild))), + !( + (k.noCloneEvent && k.noCloneChecked) || + (1 !== a.nodeType && 11 !== a.nodeType) || + m.isXMLDoc(a) + )) + ) + for (d = ua(f), h = ua(a), g = 0; null != (e = h[g]); ++g) + d[g] && Ba(e, d[g]); + if (b) + if (c) + for (h = h || ua(a), d = d || ua(f), g = 0; null != (e = h[g]); g++) + Aa(e, d[g]); + else Aa(a, f); + return ( + (d = ua(f, "script")), + d.length > 0 && za(d, !i && ua(a, "script")), + (d = h = e = null), + f + ); + }, + buildFragment: function(a, b, c, d) { + for ( + var e, f, g, h, i, j, l, n = a.length, o = da(b), p = [], q = 0; + n > q; + q++ + ) + if (((f = a[q]), f || 0 === f)) + if ("object" === m.type(f)) m.merge(p, f.nodeType ? [f] : f); + else if (la.test(f)) { + (h = h || o.appendChild(b.createElement("div"))), + (i = (ja.exec(f) || ["", ""])[1].toLowerCase()), + (l = ra[i] || ra._default), + (h.innerHTML = l[1] + f.replace(ia, "<$1>") + l[2]), + (e = l[0]); + while (e--) h = h.lastChild; + if ( + (!k.leadingWhitespace && + ha.test(f) && + p.push(b.createTextNode(ha.exec(f)[0])), + !k.tbody) + ) { + (f = + "table" !== i || ka.test(f) + ? "" !== l[1] || ka.test(f) + ? 0 + : h + : h.firstChild), + (e = f && f.childNodes.length); + while (e--) + m.nodeName((j = f.childNodes[e]), "tbody") && + !j.childNodes.length && + f.removeChild(j); + } + m.merge(p, h.childNodes), (h.textContent = ""); + while (h.firstChild) h.removeChild(h.firstChild); + h = o.lastChild; + } else p.push(b.createTextNode(f)); + h && o.removeChild(h), + k.appendChecked || m.grep(ua(p, "input"), va), + (q = 0); + while ((f = p[q++])) + if ( + (!d || -1 === m.inArray(f, d)) && + ((g = m.contains(f.ownerDocument, f)), + (h = ua(o.appendChild(f), "script")), + g && za(h), + c) + ) { + e = 0; + while ((f = h[e++])) oa.test(f.type || "") && c.push(f); + } + return (h = null), o; + }, + cleanData: function(a, b) { + for ( + var d, + e, + f, + g, + h = 0, + i = m.expando, + j = m.cache, + l = k.deleteExpando, + n = m.event.special; + null != (d = a[h]); + h++ + ) + if ((b || m.acceptData(d)) && ((f = d[i]), (g = f && j[f]))) { + if (g.events) + for (e in g.events) + n[e] ? m.event.remove(d, e) : m.removeEvent(d, e, g.handle); + j[f] && + (delete j[f], + l + ? delete d[i] + : typeof d.removeAttribute !== K + ? d.removeAttribute(i) + : (d[i] = null), + c.push(f)); + } + } + }), + m.fn.extend({ + text: function(a) { + return V( + this, + function(a) { + return void 0 === a + ? m.text(this) + : this.empty().append( + ((this[0] && this[0].ownerDocument) || y).createTextNode(a) + ); + }, + null, + a, + arguments.length + ); + }, + append: function() { + return this.domManip(arguments, function(a) { + if ( + 1 === this.nodeType || + 11 === this.nodeType || + 9 === this.nodeType + ) { + var b = wa(this, a); + b.appendChild(a); + } + }); + }, + prepend: function() { + return this.domManip(arguments, function(a) { + if ( + 1 === this.nodeType || + 11 === this.nodeType || + 9 === this.nodeType + ) { + var b = wa(this, a); + b.insertBefore(a, b.firstChild); + } + }); + }, + before: function() { + return this.domManip(arguments, function(a) { + this.parentNode && this.parentNode.insertBefore(a, this); + }); + }, + after: function() { + return this.domManip(arguments, function(a) { + this.parentNode && this.parentNode.insertBefore(a, this.nextSibling); + }); + }, + remove: function(a, b) { + for ( + var c, d = a ? m.filter(a, this) : this, e = 0; + null != (c = d[e]); + e++ + ) + b || 1 !== c.nodeType || m.cleanData(ua(c)), + c.parentNode && + (b && m.contains(c.ownerDocument, c) && za(ua(c, "script")), + c.parentNode.removeChild(c)); + return this; + }, + empty: function() { + for (var a, b = 0; null != (a = this[b]); b++) { + 1 === a.nodeType && m.cleanData(ua(a, !1)); + while (a.firstChild) a.removeChild(a.firstChild); + a.options && m.nodeName(a, "select") && (a.options.length = 0); + } + return this; + }, + clone: function(a, b) { + return ( + (a = null == a ? !1 : a), + (b = null == b ? a : b), + this.map(function() { + return m.clone(this, a, b); + }) + ); + }, + html: function(a) { + return V( + this, + function(a) { + var b = this[0] || {}, + c = 0, + d = this.length; + if (void 0 === a) + return 1 === b.nodeType ? b.innerHTML.replace(fa, "") : void 0; + if ( + !( + "string" != typeof a || + ma.test(a) || + (!k.htmlSerialize && ga.test(a)) || + (!k.leadingWhitespace && ha.test(a)) || + ra[(ja.exec(a) || ["", ""])[1].toLowerCase()] + ) + ) { + a = a.replace(ia, "<$1>"); + try { + for (; d > c; c++) + (b = this[c] || {}), + 1 === b.nodeType && + (m.cleanData(ua(b, !1)), (b.innerHTML = a)); + b = 0; + } catch (e) {} + } + b && this.empty().append(a); + }, + null, + a, + arguments.length + ); + }, + replaceWith: function() { + var a = arguments[0]; + return ( + this.domManip(arguments, function(b) { + (a = this.parentNode), + m.cleanData(ua(this)), + a && a.replaceChild(b, this); + }), + a && (a.length || a.nodeType) ? this : this.remove() + ); + }, + detach: function(a) { + return this.remove(a, !0); + }, + domManip: function(a, b) { + a = e.apply([], a); + var c, + d, + f, + g, + h, + i, + j = 0, + l = this.length, + n = this, + o = l - 1, + p = a[0], + q = m.isFunction(p); + if (q || (l > 1 && "string" == typeof p && !k.checkClone && na.test(p))) + return this.each(function(c) { + var d = n.eq(c); + q && (a[0] = p.call(this, c, d.html())), d.domManip(a, b); + }); + if ( + l && + ((i = m.buildFragment(a, this[0].ownerDocument, !1, this)), + (c = i.firstChild), + 1 === i.childNodes.length && (i = c), + c) + ) { + for (g = m.map(ua(i, "script"), xa), f = g.length; l > j; j++) + (d = i), + j !== o && + ((d = m.clone(d, !0, !0)), f && m.merge(g, ua(d, "script"))), + b.call(this[j], d, j); + if (f) + for ( + h = g[g.length - 1].ownerDocument, m.map(g, ya), j = 0; + f > j; + j++ + ) + (d = g[j]), + oa.test(d.type || "") && + !m._data(d, "globalEval") && + m.contains(h, d) && + (d.src + ? m._evalUrl && m._evalUrl(d.src) + : m.globalEval( + (d.text || d.textContent || d.innerHTML || "").replace( + qa, + "" + ) + )); + i = c = null; + } + return this; + } + }), + m.each( + { + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" + }, + function(a, b) { + m.fn[a] = function(a) { + for (var c, d = 0, e = [], g = m(a), h = g.length - 1; h >= d; d++) + (c = d === h ? this : this.clone(!0)), + m(g[d])[b](c), + f.apply(e, c.get()); + return this.pushStack(e); + }; + } + ); + var Ca, + Da = {}; + function Ea(b, c) { + var d, + e = m(c.createElement(b)).appendTo(c.body), + f = + a.getDefaultComputedStyle && (d = a.getDefaultComputedStyle(e[0])) + ? d.display + : m.css(e[0], "display"); + return e.detach(), f; + } + function Fa(a) { + var b = y, + c = Da[a]; + return ( + c || + ((c = Ea(a, b)), + ("none" !== c && c) || + ((Ca = ( + Ca || m("';break;case 3:b.title=!1,b.closeBtn=!1,-1===b.icon&&0===b.icon,f.closeAll("loading");break;case 4:j||(b.content=[b.content,"body"]),b.follow=b.content[1],b.content=b.content[0]+'',b.title=!1,b.shade=!1,b.fix=!1,b.tips="object"==typeof b.tips?b.tips:[b.tips,!0],b.tipsMore||f.closeAll("tips")}a.vessel(j,function(d,e){c("body").append(d[0]),j?function(){2==b.type||4==b.type?function(){c("body").append(d[1])}():function(){i.parents("."+h[0])[0]||(i.show().addClass("layui-layer-wrap").wrap(d[1]),c("#"+h[0]+g).find("."+h[5]).before(e))}()}():c("body").append(d[1]),a.layero=c("#"+h[0]+g),b.scrollbar||h.html.css("overflow","hidden").attr("layer-full",g)}).auto(g),2==b.type&&f.ie6&&a.layero.find("iframe").attr("src",i[0]),c(document).off("keydown",e.enter).on("keydown",e.enter),a.layero.on("keydown",function(a){c(document).off("keydown",e.enter)}),4==b.type?a.tips():a.offset(),b.fix&&d.on("resize",function(){a.offset(),(/^\d+%$/.test(b.area[0])||/^\d+%$/.test(b.area[1]))&&a.auto(g),4==b.type&&a.tips()}),b.time<=0||setTimeout(function(){f.close(a.index)},b.time),a.move().callback()},g.pt.auto=function(a){function b(a){a=g.find(a),a.height(i[1]-j-k-2*(0|parseFloat(a.css("padding"))))}var e=this,f=e.config,g=c("#"+h[0]+a);""===f.area[0]&&f.maxWidth>0&&(/MSIE 7/.test(navigator.userAgent)&&f.btn&&g.width(g.innerWidth()),g.outerWidth()>f.maxWidth&&g.width(f.maxWidth));var i=[g.innerWidth(),g.innerHeight()],j=g.find(h[1]).outerHeight()||0,k=g.find("."+h[6]).outerHeight()||0;switch(f.type){case 2:b("iframe");break;default:""===f.area[1]?f.fix&&i[1]>=d.height()&&(i[1]=d.height(),b("."+h[5])):b("."+h[5])}return e},g.pt.offset=function(){var a=this,b=a.config,c=a.layero,e=[c.outerWidth(),c.outerHeight()],f="object"==typeof b.offset;a.offsetTop=(d.height()-e[1])/2,a.offsetLeft=(d.width()-e[0])/2,f?(a.offsetTop=b.offset[0],a.offsetLeft=b.offset[1]||a.offsetLeft):"auto"!==b.offset&&(a.offsetTop=b.offset,"rb"===b.offset&&(a.offsetTop=d.height()-e[1],a.offsetLeft=d.width()-e[0])),b.fix||(a.offsetTop=/%$/.test(a.offsetTop)?d.height()*parseFloat(a.offsetTop)/100:parseFloat(a.offsetTop),a.offsetLeft=/%$/.test(a.offsetLeft)?d.width()*parseFloat(a.offsetLeft)/100:parseFloat(a.offsetLeft),a.offsetTop+=d.scrollTop(),a.offsetLeft+=d.scrollLeft()),c.css({top:a.offsetTop,left:a.offsetLeft})},g.pt.tips=function(){var a=this,b=a.config,e=a.layero,f=[e.outerWidth(),e.outerHeight()],g=c(b.follow);g[0]||(g=c("body"));var i={width:g.outerWidth(),height:g.outerHeight(),top:g.offset().top,left:g.offset().left},j=e.find(".layui-layer-TipsG"),k=b.tips[0];b.tips[1]||j.remove(),i.autoLeft=function(){i.left+f[0]-d.width()>0?(i.tipLeft=i.left+i.width-f[0],j.css({right:12,left:"auto"})):i.tipLeft=i.left},i.where=[function(){i.autoLeft(),i.tipTop=i.top-f[1]-10,j.removeClass("layui-layer-TipsB").addClass("layui-layer-TipsT").css("border-right-color",b.tips[1])},function(){i.tipLeft=i.left+i.width+10,i.tipTop=i.top,j.removeClass("layui-layer-TipsL").addClass("layui-layer-TipsR").css("border-bottom-color",b.tips[1])},function(){i.autoLeft(),i.tipTop=i.top+i.height+10,j.removeClass("layui-layer-TipsT").addClass("layui-layer-TipsB").css("border-right-color",b.tips[1])},function(){i.tipLeft=i.left-f[0]-10,i.tipTop=i.top,j.removeClass("layui-layer-TipsR").addClass("layui-layer-TipsL").css("border-bottom-color",b.tips[1])}],i.where[k-1](),1===k?i.top-(d.scrollTop()+f[1]+16)<0&&i.where[2]():2===k?d.width()-(i.left+i.width+f[0]+16)>0||i.where[3]():3===k?i.top-d.scrollTop()+i.height+f[1]+16-d.height()>0&&i.where[0]():4===k&&f[0]+16-i.left>0&&i.where[1](),e.find("."+h[5]).css({"background-color":b.tips[1],"padding-right":b.closeBtn?"30px":""}),e.css({left:i.tipLeft,top:i.tipTop})},g.pt.move=function(){var a=this,b=a.config,e={setY:0,moveLayer:function(){var a=e.layero,b=parseInt(a.css("margin-left")),c=parseInt(e.move.css("left"));0===b||(c-=b),"fixed"!==a.css("position")&&(c-=a.parent().offset().left,e.setY=0),a.css({left:c,top:parseInt(e.move.css("top"))-e.setY})}},f=a.layero.find(b.move);return b.move&&f.attr("move","ok"),f.css({cursor:b.move?"move":"auto"}),c(b.move).on("mousedown",function(a){if(a.preventDefault(),"ok"===c(this).attr("move")){e.ismove=!0,e.layero=c(this).parents("."+h[0]);var f=e.layero.offset().left,g=e.layero.offset().top,i=e.layero.outerWidth()-6,j=e.layero.outerHeight()-6;c("#layui-layer-moves")[0]||c("body").append('
          '),e.move=c("#layui-layer-moves"),b.moveType&&e.move.css({visibility:"hidden"}),e.moveX=a.pageX-e.move.position().left,e.moveY=a.pageY-e.move.position().top,"fixed"!==e.layero.css("position")||(e.setY=d.scrollTop())}}),c(document).mousemove(function(a){if(e.ismove){var c=a.pageX-e.moveX,f=a.pageY-e.moveY;if(a.preventDefault(),!b.moveOut){e.setY=d.scrollTop();var g=d.width()-e.move.outerWidth(),h=e.setY;0>c&&(c=0),c>g&&(c=g),h>f&&(f=h),f>d.height()-e.move.outerHeight()+e.setY&&(f=d.height()-e.move.outerHeight()+e.setY)}e.move.css({left:c,top:f}),b.moveType&&e.moveLayer(),c=f=g=h=null}}).mouseup(function(){try{e.ismove&&(e.moveLayer(),e.move.remove(),b.moveEnd&&b.moveEnd()),e.ismove=!1}catch(a){e.ismove=!1}}),a},g.pt.callback=function(){function a(){var a=g.cancel&&g.cancel(b.index);a===!1||f.close(b.index)}var b=this,d=b.layero,g=b.config;b.openLayer(),g.success&&(2==g.type?d.find("iframe").on("load",function(){g.success(d,b.index)}):g.success(d,b.index)),f.ie6&&b.IE6(d),d.find("."+h[6]).children("a").on("click",function(){var e=c(this).index();g["btn"+(e+1)]&&g["btn"+(e+1)](b.index,d),0===e?g.yes?g.yes(b.index,d):f.close(b.index):1===e?a():g["btn"+(e+1)]||f.close(b.index)}),d.find("."+h[7]).on("click",a),g.shadeClose&&c("#layui-layer-shade"+b.index).on("click",function(){f.close(b.index)}),d.find(".layui-layer-min").on("click",function(){f.min(b.index,g),g.min&&g.min(d)}),d.find(".layui-layer-max").on("click",function(){c(this).hasClass("layui-layer-maxmin")?(f.restore(b.index),g.restore&&g.restore(d)):(f.full(b.index,g),g.full&&g.full(d))}),g.end&&(e.end[b.index]=g.end)},e.reselect=function(){c.each(c("select"),function(a,b){var d=c(this);d.parents("."+h[0])[0]||1==d.attr("layer")&&c("."+h[0]).length<1&&d.removeAttr("layer").show(),d=null})},g.pt.IE6=function(a){function b(){a.css({top:f+(e.config.fix?d.scrollTop():0)})}var e=this,f=a.offset().top;b(),d.scroll(b),c("select").each(function(a,b){var d=c(this);d.parents("."+h[0])[0]||"none"===d.css("display")||d.attr({layer:"1"}).hide(),d=null})},g.pt.openLayer=function(){var a=this;f.zIndex=a.config.zIndex,f.setTop=function(a){var b=function(){f.zIndex++,a.css("z-index",f.zIndex+1)};return f.zIndex=parseInt(a[0].style.zIndex),a.on("mousedown",b),f.zIndex}},e.record=function(a){var b=[a.outerWidth(),a.outerHeight(),a.position().top,a.position().left+parseFloat(a.css("margin-left"))];a.find(".layui-layer-max").addClass("layui-layer-maxmin"),a.attr({area:b})},e.rescollbar=function(a){h.html.attr("layer-full")==a&&(h.html[0].style.removeProperty?h.html[0].style.removeProperty("overflow"):h.html[0].style.removeAttribute("overflow"),h.html.removeAttr("layer-full"))},a.layer=f,f.getChildFrame=function(a,b){return b=b||c("."+h[4]).attr("times"),c("#"+h[0]+b).find("iframe").contents().find(a)},f.getFrameIndex=function(a){return c("#"+a).parents("."+h[4]).attr("times")},f.iframeAuto=function(a){if(a){var b=f.getChildFrame("html",a).outerHeight(),d=c("#"+h[0]+a),e=d.find(h[1]).outerHeight()||0,g=d.find("."+h[6]).outerHeight()||0;d.css({height:b+e+g}),d.find("iframe").css({height:b})}},f.iframeSrc=function(a,b){c("#"+h[0]+a).find("iframe").attr("src",b)},f.style=function(a,b){var d=c("#"+h[0]+a),f=d.attr("type"),g=d.find(h[1]).outerHeight()||0,i=d.find("."+h[6]).outerHeight()||0;(f===e.type[1]||f===e.type[2])&&(d.css(b),f===e.type[2]&&d.find("iframe").css({height:parseFloat(b.height)-g-i}))},f.min=function(a,b){var d=c("#"+h[0]+a),g=d.find(h[1]).outerHeight()||0;e.record(d),f.style(a,{width:180,height:g,overflow:"hidden"}),d.find(".layui-layer-min").hide(),"page"===d.attr("type")&&d.find(h[4]).hide(),e.rescollbar(a)},f.restore=function(a){var b=c("#"+h[0]+a),d=b.attr("area").split(",");b.attr("type");f.style(a,{width:parseFloat(d[0]),height:parseFloat(d[1]),top:parseFloat(d[2]),left:parseFloat(d[3]),overflow:"visible"}),b.find(".layui-layer-max").removeClass("layui-layer-maxmin"),b.find(".layui-layer-min").show(),"page"===b.attr("type")&&b.find(h[4]).show(),e.rescollbar(a)},f.full=function(a){var b,g=c("#"+h[0]+a);e.record(g),h.html.attr("layer-full")||h.html.css("overflow","hidden").attr("layer-full",a),clearTimeout(b),b=setTimeout(function(){var b="fixed"===g.css("position");f.style(a,{top:b?0:d.scrollTop(),left:b?0:d.scrollLeft(),width:d.width(),height:d.height()}),g.find(".layui-layer-min").hide()},100)},f.title=function(a,b){var d=c("#"+h[0]+(b||f.index)).find(h[1]);d.html(a)},f.close=function(a){var b=c("#"+h[0]+a),d=b.attr("type");if(b[0]){if(d===e.type[1]&&"object"===b.attr("conType")){b.children(":not(."+h[5]+")").remove();for(var g=0;2>g;g++)b.find(".layui-layer-wrap").unwrap().hide()}else{if(d===e.type[2])try{var i=c("#"+h[4]+a)[0];i.contentWindow.document.write(""),i.contentWindow.close(),b.find("."+h[5])[0].removeChild(i)}catch(j){}b[0].innerHTML="",b.remove()}c("#layui-layer-moves, #layui-layer-shade"+a).remove(),f.ie6&&e.reselect(),e.rescollbar(a),c(document).off("keydown",e.enter),"function"==typeof e.end[a]&&e.end[a](),delete e.end[a]}},f.closeAll=function(a){c.each(c("."+h[0]),function(){var b=c(this),d=a?b.attr("type")===a:1;d&&f.close(b.attr("times")),d=null})},e.run=function(){c=jQuery,d=c(a),h.html=c("html"),f.open=function(a){var b=new g(a);return b.index}},"function"==typeof define?define(function(){return e.run(),f}):function(){e.run(),f.use("skin/layer.css")}()}(window); diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/layim/data/chatlog.json b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/layim/data/chatlog.json new file mode 100644 index 00000000..13954d79 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/layim/data/chatlog.json @@ -0,0 +1,30 @@ +{ + "status": 1, + "msg": "ok", + "data": [ + { + "id": "100001", + "name": "Beaut-zihan", + "time": "10:23", + "face": "img/a1.jpg" + }, + { + "id": "100002", + "name": "慕容晓晓", + "time": "昨天", + "face": "img/a2.jpg" + }, + { + "id": "1000033", + "name": "乔峰", + "time": "2014-4.22", + "face": "img/a3.jpg" + }, + { + "id": "10000333", + "name": "高圆圆", + "time": "2014-4.21", + "face": "img/a4.jpg" + } + ] +} diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/layim/data/friend.json b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/layim/data/friend.json new file mode 100644 index 00000000..13a2b658 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/layim/data/friend.json @@ -0,0 +1,107 @@ +{ + "status": 1, + "msg": "ok", + "data": [ + { + "name": "销售部", + "nums": 36, + "id": 1, + "item": [ + { + "id": "100001", + "name": "郭敬明", + "face": "img/a5.jpg" + }, + { + "id": "100002", + "name": "作家崔成浩", + "face": "img/a6.jpg" + }, + { + "id": "1000022", + "name": "韩寒", + "face": "img/a7.jpg" + }, + { + "id": "10000222", + "name": "范爷", + "face": "img/a8.jpg" + }, + { + "id": "100002222", + "name": "小马哥", + "face": "img/a9.jpg" + } + ] + }, + { + "name": "大学同窗", + "nums": 16, + "id": 2, + "item": [ + { + "id": "1000033", + "name": "苏醒", + "face": "img/a9.jpg" + }, + { + "id": "10000333", + "name": "马云", + "face": "img/a8.jpg" + }, + { + "id": "100003", + "name": "鬼脚七", + "face": "img/a7.jpg" + }, + { + "id": "100004", + "name": "谢楠", + "face": "img/a6.jpg" + }, + { + "id": "100005", + "name": "徐峥", + "face": "img/a5.jpg" + } + ] + }, + { + "name": "H+后台主题", + "nums": 38, + "id": 3, + "item": [ + { + "id": "100006", + "name": "柏雪近在它香", + "face": "img/a4.jpg" + }, + { + "id": "100007", + "name": "罗昌平", + "face": "img/a3.jpg" + }, + { + "id": "100008", + "name": "Crystal影子", + "face": "img/a2.jpg" + }, + { + "id": "100009", + "name": "艺小想", + "face": "img/a1.jpg" + }, + { + "id": "100010", + "name": "天猫", + "face": "img/a8.jpg" + }, + { + "id": "100011", + "name": "张泉灵", + "face": "img/a7.jpg" + } + ] + } + ] +} diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/layim/data/group.json b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/layim/data/group.json new file mode 100644 index 00000000..3352f656 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/layim/data/group.json @@ -0,0 +1,57 @@ +{ + "status": 1, + "msg": "ok", + "data": [ + { + "name": "H+交流群", + "nums": 36, + "id": 1, + "item": [ + { + "id": "101", + "name": "H+ Bug反馈", + "face": "http://tp2.sinaimg.cn/2211874245/180/40050524279/0" + }, + { + "id": "102", + "name": "H+ 技术交流", + "face": "http://tp3.sinaimg.cn/1820711170/180/1286855219/1" + } + ] + }, + { + "name": "Bootstrap", + "nums": 16, + "id": 2, + "item": [ + { + "id": "103", + "name": "Bootstrap中文", + "face": "http://tp2.sinaimg.cn/2211874245/180/40050524279/0" + }, + { + "id": "104", + "name": "Bootstrap资源", + "face": "http://tp3.sinaimg.cn/1820711170/180/1286855219/1" + } + ] + }, + { + "name": "WebApp", + "nums": 106, + "id": 3, + "item": [ + { + "id": "105", + "name": "移动开发", + "face": "http://tp2.sinaimg.cn/2211874245/180/40050524279/0" + }, + { + "id": "106", + "name": "H5前言", + "face": "http://tp3.sinaimg.cn/1820711170/180/1286855219/1" + } + ] + } + ] +} diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/layim/data/groups.json b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/layim/data/groups.json new file mode 100644 index 00000000..fd0464ad --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/layim/data/groups.json @@ -0,0 +1,56 @@ +{ + "status": 1, + "msg": "ok", + "data": [ + { + "id": "100001", + "name": "無言的蒁説", + "face": "img/a1.jpg" + }, + { + "id": "100002", + "name": "婷宝奢侈品", + "face": "img/a2.jpg" + }, + { + "id": "100003", + "name": "忆恨思爱", + "face": "img/a3.jpg" + }, + { + "id": "100004", + "name": "天涯奥拓慢", + "face": "img/a4.jpg" + }, + { + "id": "100005", + "name": "雨落无声的天空", + "face": "img/a5.jpg" + }, + { + "id": "100006", + "name": "李越LycorisRadiate", + "face": "img/a6.jpg" + }, + { + "id": "100007", + "name": "冯胖妞张直丑", + "face": "img/a7.jpg" + }, + { + "id": "100008", + "name": "陈龙hmmm", + "face": "img/a8.jpg" + }, + { + "id": "100009", + "name": "别闹哥胆儿小", + "face": "img/a9.jpg" + }, + { + "id": "100010", + "name": "锅锅锅锅萌哒哒 ", + "face": "img/a10.jpg" + } + ] +} diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/layim/layim.css b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/layim/layim.css new file mode 100644 index 00000000..ec8e4b5d --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/layim/layim.css @@ -0,0 +1,151 @@ + +body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,input,button,textarea,p,blockquote,th,td,form{margin:0; padding:0;} +input,button,textarea,select,optgroup,option{font-family:inherit; font-size:inherit; font-style:inherit; font-weight:inherit; outline: 0;} +li{list-style:none;} +.xxim_icon, .xxim_main i, .layim_chatbox i{position:absolute;} +.loading{background:url(loading.gif) no-repeat center center;} +.layim_chatbox a, .layim_chatbox a:hover{color:#343434; text-decoration:none; } +.layim_zero{position:absolute; width:0; height:0; border-style:dashed; border-color:transparent; overflow:hidden;} + +.xxim_main{position:fixed; right:1px; bottom:1px; width:230px; border:1px solid #BEBEBE; background-color:#fff; font-size:12px; box-shadow: 0 0 10px rgba(0,0,0,.2); z-index:99999999} +.layim_chatbox textarea{resize:none;} +.xxim_main em, .xxim_main i, .layim_chatbox em, .layim_chatbox i{font-style:normal; font-weight:400;} +.xxim_main h5{font-size:100%; font-weight:400;} + +/* 搜索栏 */ +.xxim_search{position:relative; padding-left:40px; height:40px; border-bottom:1px solid #DCDCDC; background-color:#fff;} +.xxim_search i{left:10px; top:12px; width:16px; height:16px;font-size: 16px;color:#999;} +.xxim_search input{border:none; background:none; width: 180px; margin-top:10px; line-height:20px;} +.xxim_search span{display:none; position:absolute; right:10px; top:10px; height:18px; line-height:18px;width:18px;text-align: center;background-color:#AFAFAF; color:#fff; cursor:pointer; border-radius:2px; font-size:12px; font-weight:900;} +.xxim_search span:hover{background-color:#FCBE00;} + +/* 主面板tab */ +.xxim_tabs{height:45px; border-bottom:1px solid #DBDBDB; background-color:#F4F4F4; font-size:0;} +.xxim_tabs span{position:relative; display:inline-block; *display:inline; *zoom:1; vertical-align:top; width:76px; height:45px; border-right:1px solid #DBDBDB; cursor:pointer; font-size:12px;} +.xxim_tabs span i{top:12px; left:50%; width:20px; margin-left:-10px; height:20px;font-size:20px;color:#ccc;} +.xxim_tabs .xxim_tabnow{height:46px; background-color:#fff;} +.xxim_tabs .xxim_tabnow i{color:#1ab394;} +.xxim_tabs .xxim_latechat{border-right:none;} +.xxim_tabs .xxim_tabfriend i{width:14px; margin-left:-7px;} + +/* 主面板列表 */ +.xxim_list{display:none; height:350px; padding:5px 0; overflow:hidden;} +.xxim_list:hover{ overflow-y:auto;} +.xxim_list h5{position:relative; padding-left:32px; height:26px; line-height:26px; cursor:pointer; color:#000; font-size:0;} +.xxim_list h5 span{display:inline-block; *display:inline; *zoom:1; vertical-align:top; max-width:140px; overflow:hidden; text-overflow: ellipsis; white-space:nowrap; font-size:12px;} +.xxim_list h5 i{left:15px; top:8px; width:10px; height:10px;font-size:10px;color:#666;} +.xxim_list h5 *{font-size:12px;} +.xxim_list .xxim_chatlist{display:none;} +.xxim_list .xxim_liston h5 i{width:8px; height:7px;} +.xxim_list .xxim_liston .xxim_chatlist{display:block;} +.xxim_chatlist {} +.xxim_chatlist li{position:relative; height:40px; line-height:30px; padding:5px 10px; font-size:0; cursor:pointer;} +.xxim_chatlist li:hover{background-color:#F2F4F8} +.xxim_chatlist li *{display:inline-block; *display:inline; *zoom:1; vertical-align:top; font-size:12px;} +.xxim_chatlist li span{padding-left:10px; max-width:120px; overflow:hidden; text-overflow: ellipsis; white-space:nowrap;} +.xxim_chatlist li img{width:30px; height:30px;} +.xxim_chatlist li .xxim_time{position:absolute; right:10px; color:#999;} +.xxim_list .xxim_errormsg{text-align:center; margin:50px 0; color:#999;} +.xxim_searchmain{position:absolute; width:230px; height:491px; left:0; top:41px; z-index:10; background-color:#fff;} + +/* 主面板底部 */ +.xxim_bottom{height:34px; border-top:1px solid #D0DCF3; background-color:#F2F4F8;} +.xxim_expend{border-left:1px solid #D0DCF3; border-bottom:1px solid #D0DCF3;} +.xxim_bottom li{position:relative; width:50px; height:32px; line-height:32px; float:left; border-right:1px solid #D0DCF3; cursor:pointer;} +.xxim_bottom li i{ top:9px;} +.xxim_bottom .xxim_hide{border-right:none;} +.xxim_bottom .xxim_online{width:72px; padding-left:35px;} +.xxim_online i{left:13px; width:14px; height:14px;font-size:14px;color:#FFA00A;} +.xxim_setonline{display:none; position:absolute; left:-79px; bottom:-1px; border:1px solid #DCDCDC; background-color:#fff;} +.xxim_setonline span{position:relative; display:block; width:32px;width: 77px; padding:0 10px 0 35px;} +.xxim_setonline span:hover{background-color:#F2F4F8;} +.xxim_offline .xxim_nowstate, .xxim_setoffline i{color:#999;} +.xxim_mymsg i{left:18px; width:14px; height:14px;font-size: 14px;} +.xxim_mymsg a{position:absolute; left:0; top:0; width:50px; height:32px;} +.xxim_seter i{left:18px; width:14px; height:14px;font-size: 14px;} +.xxim_hide i{left:18px; width:14px; height:14px;font-size: 14px;} +.xxim_show i{} +.xxim_bottom .xxim_on{position:absolute; left:-17px; top:50%; width:16px;text-align: center;color:#999;line-height: 97px; height:97px; margin-top:-49px;border:solid 1px #BEBEBE;border-right: none; background:#F2F4F8;} +.xxim_bottom .xxim_off{} + +/* 聊天窗口 */ +.layim_chatbox{width:620px; border:1px solid #BEBEBE; background-color:#fff; font-size:12px; box-shadow: 0 0 10px rgba(0,0,0,.2);} +.layim_chatbox h6{position:relative; height:40px; border-bottom:1px solid #D9D9D9; background-color:#FCFDFA} +.layim_move{position:absolute; height:40px; width: 620px; z-index:0;} +.layim_face{position:absolute; bottom:-1px; left:10px; width:64px; height:64px;padding:1px;background: #fff; border:1px solid #ccc;} +.layim_face img{width:60px; height:60px;} +.layim_names{position:absolute; left:90px; max-width:300px; line-height:40px; color:#000; overflow:hidden; text-overflow: ellipsis; white-space:nowrap; font-size:14px;} +.layim_rightbtn{position:absolute; right:15px; top:12px; font-size:20px;} +.layim_rightbtn i{position:relative; width:16px; height:16px; display:inline-block; *display:inline; *zoom:1; vertical-align:top; cursor:pointer; transition: all .3s;text-align: center;line-height: 16px;} +.layim_rightbtn .layim_close{background: #FFA00A;color:#fff;} +.layim_rightbtn .layim_close:hover{-webkit-transform: rotate(180deg); -moz-transform: rotate(180deg);} +.layim_rightbtn .layer_setmin{margin-right:5px;color:#999;font-size:14px;font-weight: 700;} +.layim_chat, .layim_chatmore,.layim_groups{height:450px; overflow:hidden;} +.layim_chatmore{display:none; float:left; width:135px; border-right:1px solid #BEBEBE; background-color:#F2F2F2} +.layim_chatlist li, .layim_groups li{position:relative; height:30px; line-height:30px; padding:0 10px; overflow:hidden; text-overflow: ellipsis; white-space:nowrap; cursor:pointer;} +.layim_chatlist li{padding:0 20px 0 10px;} +.layim_chatlist li:hover{background-color:#E3E3E3;} +.layim_chatlist li span{display:inline-block; *display:inline; *zoom:1; vertical-align:top; width:90px; overflow:hidden; text-overflow: ellipsis; white-space:nowrap;} +.layim_chatlist li em{display:none; position:absolute; top:6px; right:10px; height:18px; line-height:18px;width:18px;text-align: center;font-size:14px;font-weight:900; border-radius:3px;} +.layim_chatlist li em:hover{background-color: #FCBE00; color:#fff;} +.layim_chatlist .layim_chatnow,.layim_chatlist .layim_chatnow:hover{/*border-top:1px solid #D9D9D9; border-bottom:1px solid #D9D9D9;*/ background-color:#fff;} +.layim_chat{} +.layim_chatarea{height:280px;} +.layim_chatview{display:none; height:280px; overflow:hidden;} +.layim_chatmore:hover, .layim_groups:hover, .layim_chatview:hover{overflow-y:auto;} +.layim_chatview li{margin-bottom:10px; clear:both; *zoom:1;} +.layim_chatview li:after{content:'\20'; clear:both; *zoom:1; display:block; height:0;} + +.layim_chatthis{display:block;} +.layim_chatuser{float:left; padding:15px; font-size:0;} +.layim_chatuser *{display:inline-block; *display:inline; *zoom:1; vertical-align:top; line-height:30px; font-size:12px; padding-right:10px;} +.layim_chatuser img{width:30px; height:30px;padding-right: 0;margin-right: 15px;} +.layim_chatuser .layim_chatname{max-width:230px; overflow:hidden; text-overflow: ellipsis; white-space:nowrap;} +.layim_chatuser .layim_chattime{color:#999; padding-left:10px;} +.layim_chatsay{position:relative; float:left; margin:0 15px; padding:10px; line-height:20px; background-color:#F3F3F3; border-radius:3px; clear:both;} +.layim_chatsay .layim_zero{left:5px; top:-8px; border-width:8px; border-right-style:solid; border-right-color:#F3F3F3;} +.layim_chateme .layim_chatuser{float:right;} +.layim_chateme .layim_chatuser *{padding-right:0; padding-left:10px;} +.layim_chateme .layim_chatuser img{margin-left:15px;padding-left: 0;} +.layim_chateme .layim_chatsay .layim_zero{left:auto; right:10px;} +.layim_chateme .layim_chatuser .layim_chattime{padding-left:0; padding-right:10px;} +.layim_chateme .layim_chatsay{float:right; background-color:#EBFBE3} +.layim_chateme .layim_zero{border-right-color:#EBFBE3;} +.layim_groups{display:none; float:right; width:130px; border-left:1px solid #D9D9D9; background-color:#fff;} +.layim_groups ul{display:none;} +.layim_groups ul.layim_groupthis{display:block;} +.layim_groups li *{display:inline-block; *display:inline; *zoom:1; vertical-align:top; margin-right:10px;} +.layim_groups li img{width:20px; height:20px; margin-top:5px;} +.layim_groups li span{max-width:80px; overflow:hidden; text-overflow: ellipsis; white-space:nowrap;} +.layim_groups li:hover{background-color:#F3F3F3;} +.layim_groups .layim_errors{text-align:center; color:#999;} +.layim_tool{position:relative; height:35px; line-height:35px; padding-left:10px; background-color:#F3F3F3;} +.layim_tool i{position:relative; top:10px; display:inline-block; *display:inline; *zoom:1; vertical-align:top; width:16px; height:16px; margin-right:10px; cursor:pointer;font-size:16px;color:#999;font-weight: 700;} +.layim_tool i:hover{color:#FFA00A;} +.layim_tool .layim_seechatlog{position:absolute; right:15px;} +.layim_tool .layim_seechatlog i{} +.layim_write{display:block; border:none; width:98%; height:90px; line-height:20px; margin:5px auto 0;} +.layim_send{position:relative; height:40px; background-color:#F3F3F3;} +.layim_sendbtn{position:absolute; height:26px; line-height:26px; right:10px; top:8px; padding:0 40px 0 20px; background-color:#FFA00A; color:#fff; border-radius:3px; cursor:pointer;} +.layim_enter{position:absolute; right:0; border-left:1px solid #FFB94F; width:24px; height:26px;} +.layim_enter:hover{background-color:#E68A00; border-radius:0 3px 3px 0;} +.layim_enter .layim_zero{left:7px; top:11px; border-width:5px; border-top-style:solid; border-top-color:#FFE0B3;} +.layim_sendtype{display:none; position:absolute; right:10px; bottom:37px; border:1px solid #D9D9D9; background-color:#fff; text-align:left;} +.layim_sendtype span{display:block; line-height:24px; padding:0 10px 0 25px; cursor:pointer;} +.layim_sendtype span:hover{background-color:#F3F3F3;} +.layim_sendtype span i{left:5px;} + +.layim_min{display:none; position:absolute; left:-190px; bottom:-1px; width:160px; height:32px; line-height:32px; padding:0 10px; overflow:hidden; text-overflow: ellipsis; white-space:nowrap; border:1px solid #ccc; box-shadow: 0 0 5px rgba(0,0,75,.2); background-color:#FCFDFA; cursor:pointer;} + + + + + + + + + + + + + diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/layim/layim.js b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/layim/layim.js new file mode 100644 index 00000000..52f0083f --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/layim/layim.js @@ -0,0 +1,630 @@ +/* + + @Name: layui WebIM 1.0.0 + @Author:贤心 + @Date: 2014-04-25 + @Blog: http://sentsin.com + + */ + +;!function(win, undefined){ + +var config = { + msgurl: 'mailbox.html?msg=', + chatlogurl: 'mailbox.html?user=', + aniTime: 200, + right: -232, + api: { + friend: 'js/plugins/layer/layim/data/friend.json', //好友列表接口 + group: 'js/plugins/layer/layim/data/group.json', //群组列表接口 + chatlog: 'js/plugins/layer/layim/data/chatlog.json', //聊天记录接口 + groups: 'js/plugins/layer/layim/data/groups.json', //群组成员接口 + sendurl: '' //发送消息接口 + }, + user: { //当前用户信息 + name: '游客', + face: 'img/a1.jpg' + }, + + //自动回复内置文案,也可动态读取数据库配置 + autoReplay: [ + '您好,我现在有事不在,一会再和您联系。', + '你没发错吧?', + '洗澡中,请勿打扰,偷窥请购票,个体四十,团体八折,订票电话:一般人我不告诉他!', + '你好,我是主人的美女秘书,有什么事就跟我说吧,等他回来我会转告他的。', + '我正在拉磨,没法招呼您,因为我们家毛驴去动物保护协会把我告了,说我剥夺它休产假的权利。', + '<(@ ̄︶ ̄@)>', + '你要和我说话?你真的要和我说话?你确定自己想说吗?你一定非说不可吗?那你说吧,这是自动回复。', + '主人正在开机自检,键盘鼠标看好机会出去凉快去了,我是他的电冰箱,我打字比较慢,你慢慢说,别急……', + '(*^__^*) 嘻嘻,是贤心吗?' + ], + + + chating: {}, + hosts: (function(){ + var dk = location.href.match(/\:\d+/); + dk = dk ? dk[0] : ''; + return 'http://' + document.domain + dk + '/'; + })(), + json: function(url, data, callback, error){ + return $.ajax({ + type: 'POST', + url: url, + data: data, + dataType: 'json', + success: callback, + error: error + }); + }, + stopMP: function(e){ + e ? e.stopPropagation() : e.cancelBubble = true; + } +}, dom = [$(window), $(document), $('html'), $('body')], xxim = {}; + +//主界面tab +xxim.tabs = function(index){ + var node = xxim.node; + node.tabs.eq(index).addClass('xxim_tabnow').siblings().removeClass('xxim_tabnow'); + node.list.eq(index).show().siblings('.xxim_list').hide(); + if(node.list.eq(index).find('li').length === 0){ + xxim.getDates(index); + } +}; + +//节点 +xxim.renode = function(){ + var node = xxim.node = { + tabs: $('#xxim_tabs>span'), + list: $('.xxim_list'), + online: $('.xxim_online'), + setonline: $('.xxim_setonline'), + onlinetex: $('#xxim_onlinetex'), + xximon: $('#xxim_on'), + layimFooter: $('#xxim_bottom'), + xximHide: $('#xxim_hide'), + xximSearch: $('#xxim_searchkey'), + searchMian: $('#xxim_searchmain'), + closeSearch: $('#xxim_closesearch'), + layimMin: $('#layim_min') + }; +}; + +//主界面缩放 +xxim.expend = function(){ + var node = xxim.node; + if(xxim.layimNode.attr('state') !== '1'){ + xxim.layimNode.stop().animate({right: config.right}, config.aniTime, function(){ + node.xximon.addClass('xxim_off'); + try{ + localStorage.layimState = 1; + }catch(e){} + xxim.layimNode.attr({state: 1}); + node.layimFooter.addClass('xxim_expend').stop().animate({marginLeft: config.right}, config.aniTime/2); + node.xximHide.addClass('xxim_show'); + }); + } else { + xxim.layimNode.stop().animate({right: 1}, config.aniTime, function(){ + node.xximon.removeClass('xxim_off'); + try{ + localStorage.layimState = 2; + }catch(e){} + xxim.layimNode.removeAttr('state'); + node.layimFooter.removeClass('xxim_expend'); + node.xximHide.removeClass('xxim_show'); + }); + node.layimFooter.stop().animate({marginLeft: 0}, config.aniTime); + } +}; + +//初始化窗口格局 +xxim.layinit = function(){ + var node = xxim.node; + + //主界面 + try{ + /* + if(!localStorage.layimState){ + config.aniTime = 0; + localStorage.layimState = 1; + } + */ + if(localStorage.layimState === '1'){ + xxim.layimNode.attr({state: 1}).css({right: config.right}); + node.xximon.addClass('xxim_off'); + node.layimFooter.addClass('xxim_expend').css({marginLeft: config.right}); + node.xximHide.addClass('xxim_show'); + } + }catch(e){ + //layer.msg(e.message, 5, -1); + } +}; + +//聊天窗口 +xxim.popchat = function(param){ + var node = xxim.node, log = {}; + + log.success = function(layero){ + layer.setMove(); + + xxim.chatbox = layero.find('#layim_chatbox'); + log.chatlist = xxim.chatbox.find('.layim_chatmore>ul'); + + log.chatlist.html('
        • '+ param.name +'×
        • ') + xxim.tabchat(param, xxim.chatbox); + + //最小化聊天窗 + xxim.chatbox.find('.layer_setmin').on('click', function(){ + var indexs = layero.attr('times'); + layero.hide(); + node.layimMin.text(xxim.nowchat.name).show(); + }); + + //关闭窗口 + xxim.chatbox.find('.layim_close').on('click', function(){ + var indexs = layero.attr('times'); + layer.close(indexs); + xxim.chatbox = null; + config.chating = {}; + config.chatings = 0; + }); + + //关闭某个聊天 + log.chatlist.on('mouseenter', 'li', function(){ + $(this).find('em').show(); + }).on('mouseleave', 'li', function(){ + $(this).find('em').hide(); + }); + log.chatlist.on('click', 'li em', function(e){ + var parents = $(this).parent(), dataType = parents.attr('type'); + var dataId = parents.attr('data-id'), index = parents.index(); + var chatlist = log.chatlist.find('li'), indexs; + + config.stopMP(e); + + delete config.chating[dataType + dataId]; + config.chatings--; + + parents.remove(); + $('#layim_area'+ dataType + dataId).remove(); + if(dataType === 'group'){ + $('#layim_group'+ dataType + dataId).remove(); + } + + if(parents.hasClass('layim_chatnow')){ + if(index === config.chatings){ + indexs = index - 1; + } else { + indexs = index + 1; + } + xxim.tabchat(config.chating[chatlist.eq(indexs).attr('type') + chatlist.eq(indexs).attr('data-id')]); + } + + if(log.chatlist.find('li').length === 1){ + log.chatlist.parent().hide(); + } + }); + + //聊天选项卡 + log.chatlist.on('click', 'li', function(){ + var othis = $(this), dataType = othis.attr('type'), dataId = othis.attr('data-id'); + xxim.tabchat(config.chating[dataType + dataId]); + }); + + //发送热键切换 + log.sendType = $('#layim_sendtype'), log.sendTypes = log.sendType.find('span'); + $('#layim_enter').on('click', function(e){ + config.stopMP(e); + log.sendType.show(); + }); + log.sendTypes.on('click', function(){ + log.sendTypes.find('i').text('') + $(this).find('i').text('√'); + }); + + xxim.transmit(); + }; + + log.html = '
          ' + +'
          ' + +'' + +' ' + +' '+ param.name +'' + +' ' + +' ' + +' ×' + +' ' + +'
          ' + +'
          ' + +'
            ' + +'
            ' + +'
            ' + +'
            ' + +'
            ' + +'
              ' + +'
              ' + +'
              ' + +' ' + +' ' + +' ' + +' 聊天记录' + +'
              ' + +' ' + +'
              ' + +'
              发送
              ' + +'
              ' + +' 按Enter键发送' + +' 按Ctrl+Enter键发送' + +'
              ' + +'
              ' + +'
              ' + +'
              '; + + if(config.chatings < 1){ + $.layer({ + type: 1, + border: [0], + title: false, + shade: [0], + area: ['620px', '493px'], + move: '.layim_chatbox .layim_move', + moveType: 1, + closeBtn: false, + offset: [(($(window).height() - 493)/2)+'px', ''], + page: { + html: log.html + }, success: function(layero){ + log.success(layero); + } + }) + } else { + log.chatmore = xxim.chatbox.find('#layim_chatmore'); + log.chatarea = xxim.chatbox.find('#layim_chatarea'); + + log.chatmore.show(); + + log.chatmore.find('ul>li').removeClass('layim_chatnow'); + log.chatmore.find('ul').append('
            • '+ param.name +'×
            • '); + + log.chatarea.find('.layim_chatview').removeClass('layim_chatthis'); + log.chatarea.append('
                '); + + xxim.tabchat(param); + } + + //群组 + log.chatgroup = xxim.chatbox.find('#layim_groups'); + if(param.type === 'group'){ + log.chatgroup.find('ul').removeClass('layim_groupthis'); + log.chatgroup.append('
                  '); + xxim.getGroups(param); + } + //点击群员切换聊天窗 + log.chatgroup.on('click', 'ul>li', function(){ + xxim.popchatbox($(this)); + }); +}; + +//定位到某个聊天队列 +xxim.tabchat = function(param){ + var node = xxim.node, log = {}, keys = param.type + param.id; + xxim.nowchat = param; + + xxim.chatbox.find('#layim_user'+ keys).addClass('layim_chatnow').siblings().removeClass('layim_chatnow'); + xxim.chatbox.find('#layim_area'+ keys).addClass('layim_chatthis').siblings().removeClass('layim_chatthis'); + xxim.chatbox.find('#layim_group'+ keys).addClass('layim_groupthis').siblings().removeClass('layim_groupthis'); + + xxim.chatbox.find('.layim_face>img').attr('src', param.face); + xxim.chatbox.find('.layim_face, .layim_names').attr('href', param.href); + xxim.chatbox.find('.layim_names').text(param.name); + + xxim.chatbox.find('.layim_seechatlog').attr('href', config.chatlogurl + param.id); + + log.groups = xxim.chatbox.find('.layim_groups'); + if(param.type === 'group'){ + log.groups.show(); + } else { + log.groups.hide(); + } + + $('#layim_write').focus(); + +}; + +//弹出聊天窗 +xxim.popchatbox = function(othis){ + var node = xxim.node, dataId = othis.attr('data-id'), param = { + id: dataId, //用户ID + type: othis.attr('type'), + name: othis.find('.xxim_onename').text(), //用户名 + face: othis.find('.xxim_oneface').attr('src'), //用户头像 + href: 'profile.html?user=' + dataId //用户主页 + }, key = param.type + dataId; + if(!config.chating[key]){ + xxim.popchat(param); + config.chatings++; + } else { + xxim.tabchat(param); + } + config.chating[key] = param; + + var chatbox = $('#layim_chatbox'); + if(chatbox[0]){ + node.layimMin.hide(); + chatbox.parents('.xubox_layer').show(); + } +}; + +//请求群员 +xxim.getGroups = function(param){ + var keys = param.type + param.id, str = '', + groupss = xxim.chatbox.find('#layim_group'+ keys); + groupss.addClass('loading'); + config.json(config.api.groups, {}, function(datas){ + if(datas.status === 1){ + var ii = 0, lens = datas.data.length; + if(lens > 0){ + for(; ii < lens; ii++){ + str += '
                • '+ datas.data[ii].name +'
                • '; + } + } else { + str = '
                • 没有群员
                • '; + } + + } else { + str = '
                • '+ datas.msg +'
                • '; + } + groupss.removeClass('loading'); + groupss.html(str); + }, function(){ + groupss.removeClass('loading'); + groupss.html('
                • 请求异常
                • '); + }); +}; + +//消息传输 +xxim.transmit = function(){ + var node = xxim.node, log = {}; + node.sendbtn = $('#layim_sendbtn'); + node.imwrite = $('#layim_write'); + + //发送 + log.send = function(){ + var data = { + content: node.imwrite.val(), + id: xxim.nowchat.id, + sign_key: '', //密匙 + _: +new Date + }; + + if(data.content.replace(/\s/g, '') === ''){ + layer.tips('说点啥呗!', '#layim_write', 2); + node.imwrite.focus(); + } else { + //此处皆为模拟 + var keys = xxim.nowchat.type + xxim.nowchat.id; + + //聊天模版 + log.html = function(param, type){ + return '
                • ' + +'
                  ' + + function(){ + if(type === 'me'){ + return ''+ param.time +'' + +''+ param.name +'' + +''; + } else { + return '' + +''+ param.name +'' + +''+ param.time +''; + } + }() + +'
                  ' + +'
                  '+ param.content +'
                  ' + +'
                • '; + }; + + log.imarea = xxim.chatbox.find('#layim_area'+ keys); + + log.imarea.append(log.html({ + time: '2014-04-26 0:37', + name: config.user.name, + face: config.user.face, + content: data.content + }, 'me')); + node.imwrite.val('').focus(); + log.imarea.scrollTop(log.imarea[0].scrollHeight); + + setTimeout(function(){ + log.imarea.append(log.html({ + time: '2014-04-26 0:38', + name: xxim.nowchat.name, + face: xxim.nowchat.face, + content: config.autoReplay[(Math.random()*config.autoReplay.length) | 0] + })); + log.imarea.scrollTop(log.imarea[0].scrollHeight); + }, 500); + + /* + that.json(config.api.sendurl, data, function(datas){ + + }); + */ + } + + }; + node.sendbtn.on('click', log.send); + + node.imwrite.keyup(function(e){ + if(e.keyCode === 13){ + log.send(); + } + }); +}; + +//事件 +xxim.event = function(){ + var node = xxim.node; + + //主界面tab + node.tabs.eq(0).addClass('xxim_tabnow'); + node.tabs.on('click', function(){ + var othis = $(this), index = othis.index(); + xxim.tabs(index); + }); + + //列表展收 + node.list.on('click', 'h5', function(){ + var othis = $(this), chat = othis.siblings('.xxim_chatlist'), parentss = othis.find("i"); + if(parentss.hasClass('fa-caret-down')){ + chat.hide(); + parentss.attr('class','fa fa-caret-right'); + } else { + chat.show(); + parentss.attr('class','fa fa-caret-down'); + } + }); + + //设置在线隐身 + node.online.on('click', function(e){ + config.stopMP(e); + node.setonline.show(); + }); + node.setonline.find('span').on('click', function(e){ + var index = $(this).index(); + config.stopMP(e); + if(index === 0){ + node.onlinetex.html('在线'); + node.online.removeClass('xxim_offline'); + } else if(index === 1) { + node.onlinetex.html('隐身'); + node.online.addClass('xxim_offline'); + } + node.setonline.hide(); + }); + + node.xximon.on('click', xxim.expend); + node.xximHide.on('click', xxim.expend); + + //搜索 + node.xximSearch.keyup(function(){ + var val = $(this).val().replace(/\s/g, ''); + if(val !== ''){ + node.searchMian.show(); + node.closeSearch.show(); + //此处的搜索ajax参考xxim.getDates + node.list.eq(3).html('
                • 没有符合条件的结果
                • '); + } else { + node.searchMian.hide(); + node.closeSearch.hide(); + } + }); + node.closeSearch.on('click', function(){ + $(this).hide(); + node.searchMian.hide(); + node.xximSearch.val('').focus(); + }); + + //弹出聊天窗 + config.chatings = 0; + node.list.on('click', '.xxim_childnode', function(){ + var othis = $(this); + xxim.popchatbox(othis); + }); + + //点击最小化栏 + node.layimMin.on('click', function(){ + $(this).hide(); + $('#layim_chatbox').parents('.xubox_layer').show(); + }); + + + //document事件 + dom[1].on('click', function(){ + node.setonline.hide(); + $('#layim_sendtype').hide(); + }); +}; + +//请求列表数据 +xxim.getDates = function(index){ + var api = [config.api.friend, config.api.group, config.api.chatlog], + node = xxim.node, myf = node.list.eq(index); + myf.addClass('loading'); + config.json(api[index], {}, function(datas){ + if(datas.status === 1){ + var i = 0, myflen = datas.data.length, str = '', item; + if(myflen > 1){ + if(index !== 2){ + for(; i < myflen; i++){ + str += '
                • ' + +'
                  '+ datas.data[i].name +'('+ datas.data[i].nums +')
                  ' + +'
                    '; + item = datas.data[i].item; + for(var j = 0; j < item.length; j++){ + str += '
                  • '+ item[j].name +'
                  • '; + } + str += '
                • '; + } + } else { + str += '
                • ' + +'
                    '; + for(; i < myflen; i++){ + str += '
                  • '+ datas.data[i].name +''+ datas.data[i].time +'
                  • '; + } + str += '
                • '; + } + myf.html(str); + } else { + myf.html('
                • 没有任何数据
                • '); + } + myf.removeClass('loading'); + } else { + myf.html('
                • '+ datas.msg +'
                • '); + } + }, function(){ + myf.html('
                • 请求失败
                • '); + myf.removeClass('loading'); + }); +}; + +//渲染骨架 +xxim.view = (function(){ + var xximNode = xxim.layimNode = $('
                  ' + +'
                  ' + +' ' + +'
                  ' + +'
                    ' + +'
                      ' + +'
                        ' + +'
                          ' + +'
                          ' + +'
                            ' + +'
                          • ' + +'在线' + +'
                            ' + +'在线' + +'隐身' + +'
                            ' + +'
                          • ' + +'
                          • ' + +'
                          • ' + +'' + +'
                            ' + + +'
                            ' + +'
                          • ' + +'
                          • ' + +'
                          • ' + +'
                            ' + +'
                          ' + +'
                          '); + dom[3].append(xximNode); + + xxim.renode(); + xxim.getDates(0); + xxim.event(); + xxim.layinit(); +}()); + +}(window); + diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/layim/loading.gif b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/layim/loading.gif new file mode 100644 index 00000000..059b1ac3 Binary files /dev/null and b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/layim/loading.gif differ diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/default/icon-ext.png b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/default/icon-ext.png new file mode 100644 index 00000000..bbbb669b Binary files /dev/null and b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/default/icon-ext.png differ diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/default/icon.png b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/default/icon.png new file mode 100644 index 00000000..b5c8f1e1 Binary files /dev/null and b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/default/icon.png differ diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/default/icon_ext.png b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/default/icon_ext.png new file mode 100644 index 00000000..8baee597 Binary files /dev/null and b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/default/icon_ext.png differ diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/default/loading-0.gif b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/default/loading-0.gif new file mode 100644 index 00000000..6f3c9539 Binary files /dev/null and b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/default/loading-0.gif differ diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/default/loading-1.gif b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/default/loading-1.gif new file mode 100644 index 00000000..db3a483e Binary files /dev/null and b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/default/loading-1.gif differ diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/default/loading-2.gif b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/default/loading-2.gif new file mode 100644 index 00000000..5bb90fd6 Binary files /dev/null and b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/default/loading-2.gif differ diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/default/textbg.png b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/default/textbg.png new file mode 100644 index 00000000..ad1040c4 Binary files /dev/null and b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/default/textbg.png differ diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/default/xubox_ico0.png b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/default/xubox_ico0.png new file mode 100644 index 00000000..7754a47f Binary files /dev/null and b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/default/xubox_ico0.png differ diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/default/xubox_loading0.gif b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/default/xubox_loading0.gif new file mode 100644 index 00000000..6f3c9539 Binary files /dev/null and b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/default/xubox_loading0.gif differ diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/default/xubox_loading1.gif b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/default/xubox_loading1.gif new file mode 100644 index 00000000..db3a483e Binary files /dev/null and b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/default/xubox_loading1.gif differ diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/default/xubox_loading2.gif b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/default/xubox_loading2.gif new file mode 100644 index 00000000..5bb90fd6 Binary files /dev/null and b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/default/xubox_loading2.gif differ diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/default/xubox_loading3.gif b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/default/xubox_loading3.gif new file mode 100644 index 00000000..fbe57be3 Binary files /dev/null and b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/default/xubox_loading3.gif differ diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/default/xubox_title0.png b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/default/xubox_title0.png new file mode 100644 index 00000000..4ffbe315 Binary files /dev/null and b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/default/xubox_title0.png differ diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/layer.css b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/layer.css new file mode 100644 index 00000000..c6bc0004 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/layer.css @@ -0,0 +1,7 @@ +/*! + + @Name: layer's style + @Author: 贤心 + @Blog: sentsin.com + + */*html{background-image:url(about:blank);background-attachment:fixed}html #layui_layer_skinlayercss{display:none;position:absolute;width:1989px}.layui-layer,.layui-layer-shade{position:fixed;_position:absolute;pointer-events:auto}.layui-layer-shade{top:0;left:0;width:100%;height:100%;_height:expression(document.body.offsetHeight+"px")}.layui-layer{top:150px;left:50%;margin:0;padding:0;background-color:#fff;-webkit-background-clip:content;box-shadow:1px 1px 50px rgba(0,0,0,.3);border-radius:2px;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.3s;animation-duration:.3s}.layui-layer-close{position:absolute}.layui-layer-content{position:relative}.layui-layer-border{border:1px solid #B2B2B2;border:1px solid rgba(0,0,0,.3);box-shadow:1px 1px 5px rgba(0,0,0,.2)}.layui-layer-moves{position:absolute;border:3px solid #666;border:3px solid rgba(0,0,0,.5);cursor:move;background-color:#fff;background-color:rgba(255,255,255,.3);filter:alpha(opacity=50)}.layui-layer-load{background:url(default/loading-0.gif) center center no-repeat #fff}.layui-layer-ico{background:url(default/icon.png) no-repeat}.layui-layer-btn a,.layui-layer-dialog .layui-layer-ico,.layui-layer-setwin a{display:inline-block;*display:inline;*zoom:1;vertical-align:top}@-webkit-keyframes bounceIn{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes bounceIn{0%{opacity:0;-webkit-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}.layui-anim{-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes bounceOut{100%{opacity:0;-webkit-transform:scale(.7);transform:scale(.7)}30%{-webkit-transform:scale(1.03);transform:scale(1.03)}0%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes bounceOut{100%{opacity:0;-webkit-transform:scale(.7);-ms-transform:scale(.7);transform:scale(.7)}30%{-webkit-transform:scale(1.03);-ms-transform:scale(1.03);transform:scale(1.03)}0%{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}.layui-anim-close{-webkit-animation-name:bounceOut;animation-name:bounceOut;-webkit-animation-duration:.2s;animation-duration:.2s}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);-ms-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateY(60px);-ms-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.layui-anim-01{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px);transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px);-ms-transform:translateY(2000px);transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}.layui-anim-02{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateX(48px);transform:scale(.475) translateX(48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);-ms-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateX(48px);-ms-transform:scale(.475) translateX(48px);transform:scale(.475) translateX(48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.layui-anim-03{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg);transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;-webkit-transform:translateX(0) rotate(0);transform:translateX(0) rotate(0)}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg);-ms-transform:translateX(-100%) rotate(-120deg);transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;-webkit-transform:translateX(0) rotate(0);-ms-transform:translateX(0) rotate(0);transform:translateX(0) rotate(0)}}.layui-anim-04{-webkit-animation-name:rollIn;animation-name:rollIn}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.layui-anim-05{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes shake{0%,100%{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,100%{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);-ms-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);-ms-transform:translateX(10px);transform:translateX(10px)}}.layui-anim-06{-webkit-animation-name:shake;animation-name:shake}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.layui-layer-title{padding:0 80px 0 20px;height:42px;line-height:42px;border-bottom:1px solid #eee;font-size:14px;color:#333;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:#F8F8F8}.layui-layer-setwin{position:absolute;right:15px;*right:0;top:15px;font-size:0;line-height:initial}.layui-layer-setwin a{position:relative;width:16px;height:16px;margin-left:10px;font-size:12px;_overflow:hidden}.layui-layer-setwin .layui-layer-min cite{position:absolute;width:14px;height:2px;left:0;top:50%;margin-top:-1px;background-color:#2E2D3C;cursor:pointer;_overflow:hidden}.layui-layer-setwin .layui-layer-min:hover cite{background-color:#2D93CA}.layui-layer-setwin .layui-layer-max{background-position:-32px -40px}.layui-layer-setwin .layui-layer-max:hover{background-position:-16px -40px}.layui-layer-setwin .layui-layer-maxmin{background-position:-65px -40px}.layui-layer-setwin .layui-layer-maxmin:hover{background-position:-49px -40px}.layui-layer-setwin .layui-layer-close1{background-position:0 -40px;cursor:pointer}.layui-layer-setwin .layui-layer-close1:hover{opacity:.7}.layui-layer-setwin .layui-layer-close2{position:absolute;right:-28px;top:-28px;width:30px;height:30px;margin-left:0;background-position:-150px -31px;*right:-18px;_display:none}.layui-layer-setwin .layui-layer-close2:hover{background-position:-181px -31px}.layui-layer-btn{text-align:right;padding:0 10px 12px;pointer-events:auto}.layui-layer-btn a{height:28px;line-height:28px;margin:0 6px;padding:0 15px;border:1px solid #dedede;background-color:#f1f1f1;color:#333;border-radius:2px;font-weight:400;cursor:pointer;text-decoration:none}.layui-layer-btn a:hover{opacity:.9;text-decoration:none}.layui-layer-btn a:active{opacity:.7}.layui-layer-btn .layui-layer-btn0{border-color:#4898d5;background-color:#2e8ded;color:#fff}.layui-layer-dialog{min-width:260px}.layui-layer-dialog .layui-layer-content{position:relative;padding:20px;line-height:24px;word-break:break-all;font-size:14px;overflow:auto}.layui-layer-dialog .layui-layer-content .layui-layer-ico{position:absolute;top:16px;left:15px;_left:-40px;width:30px;height:30px}.layui-layer-ico1{background-position:-30px 0}.layui-layer-ico2{background-position:-60px 0}.layui-layer-ico3{background-position:-90px 0}.layui-layer-ico4{background-position:-120px 0}.layui-layer-ico5{background-position:-150px 0}.layui-layer-ico6{background-position:-180px 0}.layui-layer-rim{border:6px solid #8D8D8D;border:6px solid rgba(0,0,0,.3);border-radius:5px;box-shadow:none}.layui-layer-msg{min-width:180px;border:1px solid #D3D4D3;box-shadow:none}.layui-layer-hui{min-width:100px;background-color:#000;filter:alpha(opacity=60);background-color:rgba(0,0,0,.6);color:#fff;border:none}.layui-layer-hui .layui-layer-content{padding:12px 25px;text-align:center}.layui-layer-dialog .layui-layer-padding{padding:20px 20px 20px 55px;text-align:left}.layui-layer-page .layui-layer-content{position:relative;overflow:auto}.layui-layer-iframe .layui-layer-btn,.layui-layer-page .layui-layer-btn{padding-top:10px}.layui-layer-nobg{background:0 0}.layui-layer-iframe .layui-layer-content{overflow:hidden}.layui-layer-iframe iframe{display:block;width:100%}.layui-layer-loading{border-radius:100%;background:0 0;box-shadow:none;border:none}.layui-layer-loading .layui-layer-content{width:60px;height:24px;background:url(default/loading-0.gif) no-repeat}.layui-layer-loading .layui-layer-loading1{width:37px;height:37px;background:url(default/loading-1.gif) no-repeat}.layui-layer-ico16,.layui-layer-loading .layui-layer-loading2{width:32px;height:32px;background:url(default/loading-2.gif) no-repeat}.layui-layer-tips{background:0 0;box-shadow:none;border:none}.layui-layer-tips .layui-layer-content{position:relative;line-height:22px;min-width:12px;padding:5px 10px;font-size:12px;_float:left;border-radius:3px;box-shadow:1px 1px 3px rgba(0,0,0,.3);background-color:#F90;color:#fff}.layui-layer-tips .layui-layer-close{right:-2px;top:-1px}.layui-layer-tips i.layui-layer-TipsG{position:absolute;width:0;height:0;border-width:8px;border-color:transparent;border-style:dashed;*overflow:hidden}.layui-layer-tips i.layui-layer-TipsB,.layui-layer-tips i.layui-layer-TipsT{left:5px;border-right-style:solid;border-right-color:#F90}.layui-layer-tips i.layui-layer-TipsT{bottom:-8px}.layui-layer-tips i.layui-layer-TipsB{top:-8px}.layui-layer-tips i.layui-layer-TipsL,.layui-layer-tips i.layui-layer-TipsR{top:1px;border-bottom-style:solid;border-bottom-color:#F90}.layui-layer-tips i.layui-layer-TipsR{left:-8px}.layui-layer-tips i.layui-layer-TipsL{right:-8px}.layui-layer-lan[type=dialog]{min-width:280px}.layui-layer-lan .layui-layer-title{background:#4476A7;color:#fff;border:none}.layui-layer-lan .layui-layer-lan .layui-layer-btn{padding:10px;text-align:right;border-top:1px solid #E9E7E7}.layui-layer-lan .layui-layer-btn a{background:#BBB5B5;border:none}.layui-layer-lan .layui-layer-btn .layui-layer-btn1{background:#C9C5C5}.layui-layer-molv .layui-layer-title{background:#009f95;color:#fff;border:none}.layui-layer-molv .layui-layer-btn a{background:#009f95}.layui-layer-molv .layui-layer-btn .layui-layer-btn1{background:#92B8B1} diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/layer.ext.css b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/layer.ext.css new file mode 100644 index 00000000..95c9bb4b --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/layer.ext.css @@ -0,0 +1,8 @@ +/*! + + @Name: layer拓展样式 + @Date: 2012.12.13 + @Author: 贤心 + @blog: sentsin.com + + */.layui-layer-imgbar,.layui-layer-imgtit a,.layui-layer-tab .layui-layer-title span{text-overflow:ellipsis;white-space:nowrap}.layui-layer-iconext{background:url(default/icon-ext.png) no-repeat}html #layui_layer_skinlayerextcss{display:none;position:absolute;width:1989px}.layui-layer-prompt .layui-layer-input{display:block;width:220px;height:30px;margin:0 auto;line-height:30px;padding:0 5px;border:1px solid #ccc;box-shadow:1px 1px 5px rgba(0,0,0,.1) inset;color:#333}.layui-layer-prompt textarea.layui-layer-input{width:300px;height:100px;line-height:20px}.layui-layer-tab{box-shadow:1px 1px 50px rgba(0,0,0,.4)}.layui-layer-tab .layui-layer-title{padding-left:0;border-bottom:1px solid #ccc;background-color:#eee;overflow:visible}.layui-layer-tab .layui-layer-title span{position:relative;float:left;min-width:80px;max-width:260px;padding:0 20px;text-align:center;cursor:default;overflow:hidden}.layui-layer-tab .layui-layer-title span.layui-layer-tabnow{height:43px;border-left:1px solid #ccc;border-right:1px solid #ccc;background-color:#fff;z-index:10}.layui-layer-tab .layui-layer-title span:first-child{border-left:none}.layui-layer-tabmain{line-height:24px;clear:both}.layui-layer-tabmain .layui-layer-tabli{display:none}.layui-layer-tabmain .layui-layer-tabli.xubox_tab_layer{display:block}.xubox_tabclose{position:absolute;right:10px;top:5px;cursor:pointer}.layui-layer-photos{-webkit-animation-duration:1s;animation-duration:1s;background:url(default/xubox_loading1.gif) center center no-repeat #000}.layui-layer-photos .layui-layer-content{overflow:hidden;text-align:center}.layui-layer-photos .layui-layer-phimg img{position:relative;width:100%;display:inline-block;*display:inline;*zoom:1;vertical-align:top}.layui-layer-imgbar,.layui-layer-imguide{display:none}.layui-layer-imgnext,.layui-layer-imgprev{position:absolute;top:50%;width:27px;_width:44px;height:44px;margin-top:-22px;outline:0;blr:expression(this.onFocus=this.blur())}.layui-layer-imgprev{left:10px;background-position:-5px -5px;_background-position:-70px -5px}.layui-layer-imgprev:hover{background-position:-33px -5px;_background-position:-120px -5px}.layui-layer-imgnext{right:10px;_right:8px;background-position:-5px -50px;_background-position:-70px -50px}.layui-layer-imgnext:hover{background-position:-33px -50px;_background-position:-120px -50px}.layui-layer-imgbar{position:absolute;left:0;bottom:0;width:100%;height:32px;line-height:32px;background-color:rgba(0,0,0,.8);background-color:#000\9;filter:Alpha(opacity=80);color:#fff;overflow:hidden;font-size:0}.layui-layer-imgtit *{display:inline-block;*display:inline;*zoom:1;vertical-align:top;font-size:12px}.layui-layer-imgtit a{max-width:65%;overflow:hidden;color:#fff}.layui-layer-imgtit a:hover{color:#fff;text-decoration:underline}.layui-layer-imgtit em{padding-left:10px;font-style:normal} diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/moon/default.png b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/moon/default.png new file mode 100644 index 00000000..77dfaf30 Binary files /dev/null and b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/moon/default.png differ diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/moon/style.css b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/moon/style.css new file mode 100644 index 00000000..8a00dc32 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/layer/skin/moon/style.css @@ -0,0 +1,141 @@ +/* + * layer皮肤 + * 作者:一☆隐☆一 + * QQ:9073194 + * 请保留这里的信息 谢谢!虽然你不保留我也不能把你怎么样! + */ + +html #layui_layer_skinmoonstylecss { + display: none; + position: absolute; + width: 1989px; +} +body .layer-ext-moon[type="dialog"] { + min-width: 320px; +} +body .layer-ext-moon-msg[type="dialog"]{min-width:200px;} +body .layer-ext-moon .layui-layer-title { + background: #f6f6f6; + color: #212a31; + font-size: 16px; + font-weight: bold; + height: 46px; + line-height: 46px; +} + + + +body .layer-ext-moon .layui-layer-content .layui-layer-ico { + height: 32px; + width: 32px; + top:18.5px; +} +body .layer-ext-moon .layui-layer-ico0 { + background: url(default.png) no-repeat -96px 0; + ; +} +body .layer-ext-moon .layui-layer-ico1 { + background: url(default.png) no-repeat -224px 0; + ; +} +body .layer-ext-moon .layui-layer-ico2 { + background: url(default.png) no-repeat -192px 0; +} +body .layer-ext-moon .layui-layer-ico3 { + background: url(default.png) no-repeat -160px 0; +} +body .layer-ext-moon .layui-layer-ico4 { + background: url(default.png) no-repeat -320px 0; +} +body .layer-ext-moon .layui-layer-ico5 { + background: url(default.png) no-repeat -288px 0; +} +body .layer-ext-moon .layui-layer-ico6 { + background: url(default.png) -256px 0; +} +body .layer-ext-moon .layui-layer-ico7 { + background: url(default.png) no-repeat -128px 0; +} +body .layer-ext-moon .layui-layer-setwin { + top: 15px; + right: 15px; +} +body .layer-ext-moon .layui-layer-setwin a { + width: 16px; + height: 16px; +} +body .layer-ext-moon .layui-layer-setwin .layui-layer-min cite:hover { + background-color: #56abe4; +} +body .layer-ext-moon .layui-layer-setwin .layui-layer-max { + background: url(default.png) no-repeat -80px 0; +} +body .layer-ext-moon .layui-layer-setwin .layui-layer-max:hover { + background: url(default.png) no-repeat -64px 0; +} +body .layer-ext-moon .layui-layer-setwin .layui-layer-maxmin { + background: url(default.png) no-repeat -32px 0; +} +body .layer-ext-moon .layui-layer-setwin .layui-layer-maxmin:hover { + background: url(default.png) no-repeat -16px 0; +} +body .layer-ext-moon .layui-layer-setwin .layui-layer-close1,body .layer-ext-moon .layui-layer-setwin .layui-layer-close2 { + background: url(default.png) 0 0; +} +body .layer-ext-moon .layui-layer-setwin .layui-layer-close1:hover,body .layer-ext-moon .layui-layer-setwin .layui-layer-close2:hover { + background: url(default.png) -48px 0; +} +body .layer-ext-moon .layui-layer-padding{padding-top: 24px;} +body .layer-ext-moon .layui-layer-btn { + padding: 15px 0; + background: #f0f4f7; + border-top: 1px #c7c7c7 solid; +} +body .layer-ext-moon .layui-layer-btn a { + font-size: 12px; + font-weight: normal; + margin: 0 3px; + margin-right: 7px; + margin-left: 7px; + padding: 6px 20px; + color: #fff; + border: 1px solid #0064b6; + background: #0071ce; + border-radius: 3px; + display: inline-block; + height: 20px; + line-height: 20px; + text-align: center; + vertical-align: middle; + background-repeat: no-repeat; + text-decoration: none; + outline: none; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + box-sizing: content-box; +} +body .layer-ext-moon .layui-layer-btn .layui-layer-btn0 { + background: #0071ce; +} +body .layer-ext-moon .layui-layer-btn .layui-layer-btn1 { + background: #fff; + color: #404a58; + border: 1px solid #c0c4cd; + border-radius: 3px; +} +body .layer-ext-moon .layui-layer-btn .layui-layer-btn2 { + background: #f60; + color: #fff; + border: 1px solid #f60; + border-radius: 3px; +} +body .layer-ext-moon .layui-layer-btn .layui-layer-btn3 { + background: #f00; + color: #fff; + border: 1px solid #f00; + border-radius: 3px; +} + +body .layer-ext-moon .layui-layer-title span.layui-layer-tabnow{ + height:46px; +} diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/pop_base.js b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/pop_base.js new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/pop_base.js @@ -0,0 +1 @@ + diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/rem.js b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/rem.js new file mode 100644 index 00000000..766679c1 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/static/bigscreen/template2/js/rem.js @@ -0,0 +1,16 @@ + (function (doc, win) { + var docEl = doc.documentElement, + resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize', + recalc = function () { + var clientWidth = docEl.clientWidth; + if (!clientWidth) return; + if (clientWidth >= 1920) { + docEl.style.fontSize = '100px'; //1rem = 100px + } else { + docEl.style.fontSize = 100 * (clientWidth / 1920) + 'px'; + } + }; + if (!doc.addEventListener) return; + win.addEventListener(resizeEvt, recalc, false); + doc.addEventListener('DOMContentLoaded', recalc, false); + })(document, window); \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/templates/bigscreen/template1/index.ftl b/jeecg-boot/jeecg-boot-module-system/src/main/resources/templates/bigscreen/template1/index.ftl new file mode 100644 index 00000000..dadbed85 --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/templates/bigscreen/template1/index.ftl @@ -0,0 +1,225 @@ +<#assign base=springMacroRequestContext.getContextUrl("")> + + + + + + + + + JEECG-boot大屏指挥室 + + + + + + + + + + + + + + +
                          + +
                          + 最后刷新时间:2018-05-06 23:13.24 +
                          + + + +
                          +
                          +
                          +
                          + + + +
                          +
                          +   +
                          + + + +
                          + + + +
                          + + + +
                          +
                          +   +
                          + + + +
                          +
                          +   +
                          + + + +
                          +
                          +   +
                          + + + +
                          +
                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                          2018/04/25产品投诉物流投诉售后投诉
                          质量服务质量服务质量服务
                          已处理484848484848
                          处理中343434343434
                          未处理30282826258
                          合计30282826258
                          总计226544
                          +
                          +
                          +   +
                          + + + +
                          +
                          +   +
                          + + + + + + + + + + > + + +
                          + + + + + + + + + + + + + + + + + + + + + + + + + +
                          用户名称:
                          登录密码:
                           如无需修改密码,请留空
                          用户类型: + +
                          用户状态: +    + +
                          用户说明: + +
                          +
                          + + + + + \ No newline at end of file diff --git a/jeecg-boot/jeecg-boot-module-system/src/main/resources/templates/bigscreen/template2/index.ftl b/jeecg-boot/jeecg-boot-module-system/src/main/resources/templates/bigscreen/template2/index.ftl new file mode 100644 index 00000000..823484bb --- /dev/null +++ b/jeecg-boot/jeecg-boot-module-system/src/main/resources/templates/bigscreen/template2/index.ftl @@ -0,0 +1,677 @@ + +<#assign base=springMacroRequestContext.getContextUrl("")> + + + + + + + + + + + 智慧物流服务中心-首页 + + + +
                          +
                          +
                          +
                          +
                          当前到件量
                          +

                          123,456,789

                          +
                          +
                          +
                          +
                          +
                          派件入库量占比
                          +
                          +
                          +
                          +
                          +
                          + +
                          +
                          +
                          +
                          +
                          +
                          +
                          广东省寄派件数据
                          + + +
                          +
                          +
                          +
                          +
                          + 派件 +
                          +
                            +
                          • 派件
                          • +
                          • 寄件
                          • +
                          +
                          +
                          +
                          + 公司 +
                          +
                            +
                          • 公司
                          • +
                          • 顺丰
                          • +
                          • 京东
                          • +
                          • EMS
                          • +
                          +
                          +
                          +
                          + 快件类型 +
                          +
                            +
                          • 快件类型
                          • +
                          • 文件
                          • +
                          • 物品
                          • +
                          +
                          +
                          +
                          +
                          +
                          +
                          +
                          +
                          +

                          智慧物流服务中心

                          +
                          +
                          +
                          +
                          +

                          00:00:00

                          +

                          +
                          +
                          + +
                          +

                          多云

                          +

                          16-22℃

                          +

                          深圳市南山区

                          +
                          +
                          +
                          + +
                          +
                            +
                          • 派件
                          • +
                          • 寄件
                          • +
                          +
                          +
                          +
                          + 公司 +
                          +
                            +
                          • 公司
                          • +
                          • 顺丰
                          • +
                          • 京东
                          • +
                          • EMS
                          • +
                          +
                          +
                          +
                          + 快件类型 +
                          +
                            +
                          • 快件类型
                          • +
                          • 文件
                          • +
                          • 物品
                          • +
                          +
                          +
                          +
                          +
                          +
                          +
                          +
                          +
                          +
                          +
                          +

                          全网到珠海

                          +
                            +
                          • 全网
                          • +
                          • ABCDE
                          • +
                          • FGHIJ
                          • +
                          • KLMNO
                          • +
                          • PQRST
                          • +
                          • UVWXYZ
                          • +
                          +
                            + +
                          +
                          +
                            +
                          • +

                            城市

                            +

                            派件

                            +
                          • + +
                          +
                          + + +
                          +
                          +
                          + +
                          +
                          +
                          +
                          +
                          派件数据
                          + + +
                          +

                          单位:件

                          +
                          +
                          +
                          + +
                          +
                          +
                          +

                          收入数据支出数据

                          + + +
                          +
                          +

                          123,456.5元

                          +
                          +
                          + + +
                          +
                          + + +
                          +
                          +
                          +
                          +
                          +
                          + +
                          +
                          +
                          +

                          今日值班:

                          +

                          负责人:

                          +
                          +
                          +
                          +
                          +
                          +
                          +
                          + +

                          当前到件量

                          +
                          +

                          123,456,789

                          +
                          +
                          + +
                          + +

                          派件入库量占比

                          +
                          +
                          +
                          +
                          +
                          +
                          +
                          +
                          + +
                          + +

                          广东省寄派件数据

                          +
                          +
                          +
                          + 派件 +
                          +
                            +
                          • 派件
                          • +
                          • 寄件
                          • +
                          +
                          +
                          +
                          + 公司 +
                          +
                            +
                          • 公司
                          • +
                          • 顺丰
                          • +
                          • 京东
                          • +
                          • EMS
                          • +
                          +
                          +
                          +
                          + 快件类型 +
                          +
                            +
                          • 快件类型
                          • +
                          • 文件
                          • +
                          • 物品
                          • +
                          +
                          +
                          +
                          +
                          +
                          +
                          + +
                          + +
                          +
                          +
                            +
                          • 派件
                          • +
                          • 寄件
                          • +
                          +
                          +
                          +
                          + 公司 +
                          +
                            +
                          • 公司
                          • +
                          • 顺丰
                          • +
                          • 京东
                          • +
                          • EMS
                          • +
                          +
                          +
                          +
                          + 快件类型 +
                          +
                            +
                          • 快件类型
                          • +
                          • 文件
                          • +
                          • 物品
                          • +
                          +
                          +
                          +
                          +
                          +
                          +
                          +
                          +
                          +

                          派件数据

                          + +
                          +
                          +
                          + +
                          +
                          +

                          + +
                          +
                          +
                          + + +
                          +
                          + + +
                          +
                          +
                          +
                          +

                          +
                          +
                          +
                          +
                          +
                          +

                          全网到珠海

                          +
                            +
                          • 全网
                          • +
                          • ABCDE
                          • +
                          • FGHIJ
                          • +
                          • KLMNO
                          • +
                          • PQRST
                          • +
                          • UVWXYZ
                          • +
                          +
                            + +
                          +
                          +
                            +
                          • +

                            城市

                            +

                            派件

                            +
                          • + +
                          + +
                          +
                          +
                          +
                          + +

                          设置

                          +
                          +
                          + +
                          + + +
                          +
                          +
                          + + + + +
                          +
                          + + + + + +
                          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                          值班人排班日期负责人操作
                          1111
                          1111
                          1111
                          1111
                          1111
                          1111
                          1111
                          +
                          + +

                          0/0

                          + + + +
                          +
                          +
                          日期已存在!
                          + +
                          +
                          + + + + + + + + + + + + + \ No newline at end of file diff --git a/jeecg-boot/pom.xml b/jeecg-boot/pom.xml index c3c890a2..2f18eeeb 100644 --- a/jeecg-boot/pom.xml +++ b/jeecg-boot/pom.xml @@ -2,7 +2,7 @@ 4.0.0 org.jeecgframework.boot jeecg-boot-parent - 2.1.2 + 2.1.3 pom @@ -51,7 +51,7 @@ - 2.1.2 + 2.1.3 1.8 UTF-8 UTF-8 @@ -238,6 +238,21 @@ swagger-models 1.5.22 + + org.hibernate + hibernate-re + 5.2.13 + + + org.hibernate + hibernate-core + + + commons-collections + commons-collections + + + @@ -288,23 +303,7 @@ aliyun-java-sdk-core ${aliyun-java-sdk-core.version} - - - org.jeecgframework.boot - online-form - 2.1.2 - - - org.hibernate - hibernate-core - - - commons-collections - commons-collections - - - - + org.apache.httpcomponents @@ -345,11 +344,7 @@ - + org.apache.maven.plugins maven-compiler-plugin