Commit 0510497d4f048e584b3e6484f60fc7ec44399939

Authored by 徐烜
2 parents 09005289 302f8556

Merge branch 'minhang' of http://222.66.0.204:8090//panzhaov5/bsth_control into minhang

Too many changes to show.

To preserve performance only 17 of 66 files are displayed.

@@ -18,21 +18,19 @@ @@ -18,21 +18,19 @@
18 <groupId>org.springframework.boot</groupId> 18 <groupId>org.springframework.boot</groupId>
19 <artifactId>spring-boot-starter-web</artifactId> 19 <artifactId>spring-boot-starter-web</artifactId>
20 </dependency> 20 </dependency>
21 - 21 +
22 <dependency> 22 <dependency>
23 - <groupId>org.springframework.boot</groupId>  
24 - <artifactId>spring-boot-starter-tomcat</artifactId>  
25 - <scope>provided</scope>  
26 - </dependency>  
27 - 23 + <groupId>org.springframework.boot</groupId>
  24 + <artifactId>spring-boot-starter-tomcat</artifactId>
  25 + <scope>provided</scope>
  26 + </dependency>
  27 +
28 <dependency> 28 <dependency>
29 <groupId>org.springframework.boot</groupId> 29 <groupId>org.springframework.boot</groupId>
30 <artifactId>spring-boot-starter-security</artifactId> 30 <artifactId>spring-boot-starter-security</artifactId>
31 </dependency> 31 </dependency>
32 -<!-- <dependency>  
33 - <groupId>org.springframework.security</groupId>  
34 - <artifactId>spring-security-config</artifactId>  
35 - </dependency> --> 32 + <!-- <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-config</artifactId>
  33 + </dependency> -->
36 <dependency> 34 <dependency>
37 <groupId>org.springframework.boot</groupId> 35 <groupId>org.springframework.boot</groupId>
38 <artifactId>spring-boot-starter-data-jpa</artifactId> 36 <artifactId>spring-boot-starter-data-jpa</artifactId>
@@ -68,27 +66,32 @@ @@ -68,27 +66,32 @@
68 <artifactId>fastjson</artifactId> 66 <artifactId>fastjson</artifactId>
69 <version>1.2.4</version> 67 <version>1.2.4</version>
70 </dependency> 68 </dependency>
71 - 69 +
72 <dependency> 70 <dependency>
73 - <groupId>org.apache.httpcomponents</groupId>  
74 - <artifactId>httpclient</artifactId>  
75 - </dependency> 71 + <groupId>org.apache.httpcomponents</groupId>
  72 + <artifactId>httpclient</artifactId>
  73 + </dependency>
76 74
77 <dependency> 75 <dependency>
78 <groupId>commons-dbcp</groupId> 76 <groupId>commons-dbcp</groupId>
79 <artifactId>commons-dbcp</artifactId> 77 <artifactId>commons-dbcp</artifactId>
80 </dependency> 78 </dependency>
81 - <dependency>  
82 - <groupId>commons-lang</groupId>  
83 - <artifactId>commons-lang</artifactId>  
84 - <version>2.6</version>  
85 - </dependency> 79 + <dependency>
  80 + <groupId>commons-lang</groupId>
  81 + <artifactId>commons-lang</artifactId>
  82 + <version>2.6</version>
  83 + </dependency>
86 <dependency> 84 <dependency>
87 <groupId>org.apache.commons</groupId> 85 <groupId>org.apache.commons</groupId>
88 <artifactId>commons-lang3</artifactId> 86 <artifactId>commons-lang3</artifactId>
89 <version>3.4</version> 87 <version>3.4</version>
90 </dependency> 88 </dependency>
91 <dependency> 89 <dependency>
  90 + <groupId>commons-fileupload</groupId>
  91 + <artifactId>commons-fileupload</artifactId>
  92 + <version>1.2.2</version>
  93 + </dependency>
  94 + <dependency>
92 <groupId>commons-io</groupId> 95 <groupId>commons-io</groupId>
93 <artifactId>commons-io</artifactId> 96 <artifactId>commons-io</artifactId>
94 <version>2.4</version> 97 <version>2.4</version>
@@ -111,38 +114,38 @@ @@ -111,38 +114,38 @@
111 </dependency> 114 </dependency>
112 <!-- ftp文件上传包 --> 115 <!-- ftp文件上传包 -->
113 <dependency> 116 <dependency>
114 - <groupId>commons-net</groupId>  
115 - <artifactId>commons-net</artifactId>  
116 - <version>3.5</version> 117 + <groupId>commons-net</groupId>
  118 + <artifactId>commons-net</artifactId>
  119 + <version>3.5</version>
  120 + </dependency>
  121 + <dependency>
  122 + <groupId>org.apache.commons</groupId>
  123 + <artifactId>commons-compress</artifactId>
  124 + <version>1.3</version>
  125 + </dependency>
  126 + <!-- drools 6依赖 -->
  127 + <dependency>
  128 + <groupId>org.kie</groupId>
  129 + <artifactId>kie-api</artifactId>
117 </dependency> 130 </dependency>
118 <dependency> 131 <dependency>
119 - <groupId>org.apache.commons</groupId>  
120 - <artifactId>commons-compress</artifactId>  
121 - <version>1.3</version> 132 + <groupId>org.drools</groupId>
  133 + <artifactId>drools-compiler</artifactId>
  134 + </dependency>
  135 +
  136 + <!-- springboot测试 -->
  137 + <dependency>
  138 + <groupId>org.springframework.boot</groupId>
  139 + <artifactId>spring-boot-starter-test</artifactId>
  140 + <scope>test</scope>
122 </dependency> 141 </dependency>
123 - <!-- drools 6依赖 -->  
124 - <dependency>  
125 - <groupId>org.kie</groupId>  
126 - <artifactId>kie-api</artifactId>  
127 - </dependency>  
128 - <dependency>  
129 - <groupId>org.drools</groupId>  
130 - <artifactId>drools-compiler</artifactId>  
131 - </dependency>  
132 142
133 - <!-- springboot测试 -->  
134 - <dependency>  
135 - <groupId>org.springframework.boot</groupId>  
136 - <artifactId>spring-boot-starter-test</artifactId>  
137 - <scope>test</scope>  
138 - </dependency>  
139 -  
140 - <dependency> 143 + <dependency>
141 <groupId>c3p0</groupId> 144 <groupId>c3p0</groupId>
142 <artifactId>c3p0</artifactId> 145 <artifactId>c3p0</artifactId>
143 <version>0.9.1.2</version> 146 <version>0.9.1.2</version>
144 </dependency> 147 </dependency>
145 - 148 +
146 <!-- 图表 --> 149 <!-- 图表 -->
147 <dependency> 150 <dependency>
148 <groupId>com.google.code.gson</groupId> 151 <groupId>com.google.code.gson</groupId>
@@ -155,82 +158,79 @@ @@ -155,82 +158,79 @@
155 <version>2.1.8</version> 158 <version>2.1.8</version>
156 </dependency> 159 </dependency>
157 160
158 - <dependency>  
159 - <groupId>org.apache.tika</groupId>  
160 - <artifactId>tika-core</artifactId>  
161 - <version>1.7</version>  
162 - </dependency> 161 + <dependency>
  162 + <groupId>org.apache.tika</groupId>
  163 + <artifactId>tika-core</artifactId>
  164 + <version>1.7</version>
  165 + </dependency>
  166 +
  167 + <!-- pentaho kettle 依赖 -->
  168 + <dependency>
  169 + <groupId>com.pentaho.kettle</groupId>
  170 + <artifactId>kettle-core</artifactId>
  171 + <version>6.0.1.0-386</version>
  172 + </dependency>
  173 + <dependency>
  174 + <groupId>com.pentaho.kettle</groupId>
  175 + <artifactId>kettle-engine</artifactId>
  176 + <version>6.0.1.0-386</version>
  177 + </dependency>
  178 + <dependency>
  179 + <groupId>com.pentaho.kettle</groupId>
  180 + <artifactId>metastore</artifactId>
  181 + <version>6.0.1.0-386</version>
  182 + </dependency>
  183 + <dependency>
  184 + <groupId>com.pentaho.kettle</groupId>
  185 + <artifactId>vfs2</artifactId>
  186 + <version>2.1-20150824</version>
  187 + </dependency>
  188 + <dependency>
  189 + <groupId>net.sourceforge.jexcelapi</groupId>
  190 + <artifactId>jxl</artifactId>
  191 + <version>2.6.12</version>
  192 + </dependency>
  193 + <dependency>
  194 + <groupId>rhino</groupId>
  195 + <artifactId>js</artifactId>
  196 + <version>1.7R2</version>
  197 + </dependency>
  198 + <dependency>
  199 + <groupId>javax.mail</groupId>
  200 + <artifactId>mail</artifactId>
  201 + <version>1.4.7</version>
  202 + </dependency>
163 203
164 - <!-- pentaho kettle 依赖 -->  
165 - <dependency>  
166 - <groupId>com.pentaho.kettle</groupId>  
167 - <artifactId>kettle-core</artifactId>  
168 - <version>6.0.1.0-386</version>  
169 - </dependency>  
170 - <dependency>  
171 - <groupId>com.pentaho.kettle</groupId>  
172 - <artifactId>kettle-engine</artifactId>  
173 - <version>6.0.1.0-386</version>  
174 - </dependency>  
175 - <dependency>  
176 - <groupId>com.pentaho.kettle</groupId>  
177 - <artifactId>metastore</artifactId>  
178 - <version>6.0.1.0-386</version>  
179 - </dependency>  
180 - <dependency>  
181 - <groupId>com.pentaho.kettle</groupId>  
182 - <artifactId>vfs2</artifactId>  
183 - <version>2.1-20150824</version>  
184 - </dependency>  
185 - <dependency>  
186 - <groupId>net.sourceforge.jexcelapi</groupId>  
187 - <artifactId>jxl</artifactId>  
188 - <version>2.6.12</version>  
189 - </dependency>  
190 - <dependency>  
191 - <groupId>rhino</groupId>  
192 - <artifactId>js</artifactId>  
193 - <version>1.7R2</version>  
194 - </dependency>  
195 - <dependency>  
196 - <groupId>javax.mail</groupId>  
197 - <artifactId>mail</artifactId>  
198 - <version>1.4.7</version>  
199 - </dependency> 204 + <dependency>
  205 + <groupId>com.github.axet</groupId>
  206 + <artifactId>kaptcha</artifactId>
  207 + <version>0.0.9</version>
  208 + </dependency>
200 209
201 <dependency> 210 <dependency>
202 - <groupId>com.github.axet</groupId>  
203 - <artifactId>kaptcha</artifactId>  
204 - <version>0.0.9</version>  
205 - </dependency>  
206 -  
207 - <dependency>  
208 - <groupId>commons-codec</groupId>  
209 - <artifactId>commons-codec</artifactId>  
210 - <version>1.4</version>  
211 - <scope>compile</scope>  
212 - </dependency>  
213 - <dependency>  
214 - <groupId>org.bouncycastle</groupId>  
215 - <artifactId>bcprov-jdk15on</artifactId>  
216 - <version>1.52</version>  
217 - </dependency>  
218 - <dependency>  
219 - <groupId>axis</groupId>  
220 - <artifactId>axis</artifactId>  
221 - <version>1.4</version>  
222 - </dependency>  
223 - <dependency>  
224 - <groupId>javax.xml</groupId>  
225 - <artifactId>jaxrpc-api</artifactId>  
226 - <version>1.1</version> 211 + <groupId>commons-codec</groupId>
  212 + <artifactId>commons-codec</artifactId>
  213 + <version>1.4</version>
  214 + <scope>compile</scope>
  215 + </dependency>
  216 + <dependency>
  217 + <groupId>org.bouncycastle</groupId>
  218 + <artifactId>bcprov-jdk15on</artifactId>
  219 + <version>1.52</version>
  220 + </dependency>
  221 + <dependency>
  222 + <groupId>axis</groupId>
  223 + <artifactId>axis</artifactId>
  224 + <version>1.4</version>
  225 + </dependency>
  226 + <dependency>
  227 + <groupId>javax.xml</groupId>
  228 + <artifactId>jaxrpc-api</artifactId>
  229 + <version>1.1</version>
227 </dependency> 230 </dependency>
228 231
229 -<!-- <dependency>  
230 - <groupId>org.springframework.boot</groupId>  
231 - <artifactId>spring-boot-devtools</artifactId>  
232 - <optional>true</optional>  
233 - </dependency>--> 232 + <!-- <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId>
  233 + <optional>true</optional> </dependency> -->
234 <dependency> 234 <dependency>
235 <groupId>com.vividsolutions</groupId> 235 <groupId>com.vividsolutions</groupId>
236 <artifactId>jts</artifactId> 236 <artifactId>jts</artifactId>
@@ -239,18 +239,18 @@ @@ -239,18 +239,18 @@
239 239
240 </dependencies> 240 </dependencies>
241 241
242 - <dependencyManagement>  
243 - <dependencies>  
244 - <!-- drools 6依赖 -->  
245 - <dependency>  
246 - <groupId>org.drools</groupId>  
247 - <artifactId>drools-bom</artifactId>  
248 - <type>pom</type>  
249 - <version>6.3.0.Final</version>  
250 - <scope>import</scope>  
251 - </dependency>  
252 - </dependencies>  
253 - </dependencyManagement> 242 + <dependencyManagement>
  243 + <dependencies>
  244 + <!-- drools 6依赖 -->
  245 + <dependency>
  246 + <groupId>org.drools</groupId>
  247 + <artifactId>drools-bom</artifactId>
  248 + <type>pom</type>
  249 + <version>6.3.0.Final</version>
  250 + <scope>import</scope>
  251 + </dependency>
  252 + </dependencies>
  253 + </dependencyManagement>
254 254
255 <build> 255 <build>
256 <plugins> 256 <plugins>
@@ -304,8 +304,8 @@ @@ -304,8 +304,8 @@
304 <url>http://repo.spring.io/milestone</url> 304 <url>http://repo.spring.io/milestone</url>
305 </pluginRepository> 305 </pluginRepository>
306 </pluginRepositories> 306 </pluginRepositories>
307 - 307 +
308 <properties> 308 <properties>
309 - <start-class>com.bsth.Application</start-class> 309 + <start-class>com.bsth.Application</start-class>
310 </properties> 310 </properties>
311 </project> 311 </project>
src/main/java/com/bsth/controller/oil/JdlController.java 0 → 100644
  1 +package com.bsth.controller.oil;
  2 +
  3 +import java.io.File;
  4 +import java.util.HashMap;
  5 +import java.util.Map;
  6 +
  7 +import org.springframework.beans.factory.annotation.Autowired;
  8 +import org.springframework.web.bind.annotation.RequestMapping;
  9 +import org.springframework.web.bind.annotation.RequestMethod;
  10 +import org.springframework.web.bind.annotation.RequestParam;
  11 +import org.springframework.web.bind.annotation.RestController;
  12 +import org.springframework.web.multipart.MultipartFile;
  13 +import org.springframework.web.servlet.ModelAndView;
  14 +
  15 +import com.alibaba.fastjson.JSON;
  16 +import com.alibaba.fastjson.JSONArray;
  17 +import com.alibaba.fastjson.JSONObject;
  18 +import com.bsth.controller.BaseController;
  19 +import com.bsth.entity.oil.Jdl;
  20 +import com.bsth.service.oil.JdlService;
  21 +import com.google.common.io.Files;
  22 +
  23 +@RestController
  24 +@RequestMapping("jdl")
  25 +public class JdlController extends BaseController<Jdl, Integer> {
  26 +
  27 + @Autowired
  28 + JdlService jdlService;
  29 +
  30 + public String getDataImportClasspath(){
  31 + return this.getClass().getResource("/").getPath() + "/static/pages/electricity/jdl";
  32 + }
  33 +
  34 + @RequestMapping(value = "/uploadFile",method = RequestMethod.POST)
  35 + public String uploadFile(MultipartFile file, String gsbm_, String gsName,
  36 + String fgsbm_, String fgsName) throws Exception{
  37 + Map<String, Object> map = new HashMap<String, Object>();
  38 +// File ktrfile = new File(this.getClass().getResource(getDataImportKtrClasspath()).toURI());
  39 +// System.out.println(ktrfile.getAbsolutePath());
  40 + System.out.println(file.getSize());
  41 + File newFile = new File(
  42 + getDataImportClasspath() + File.separator +
  43 + file.getOriginalFilename());
  44 + Files.write(file.getBytes(), newFile);
  45 + String result = jdlService.importExcel(newFile, gsbm_, gsName, fgsbm_, fgsName);
  46 + return "{\"result\":" + "\""+result+"\"}";
  47 + }
  48 +
  49 + @RequestMapping(value = "/query",method = RequestMethod.GET)
  50 + public Map<String, Object> query(@RequestParam Map<String, Object> map) throws Exception{
  51 + return jdlService.query(map);
  52 + }
  53 +
  54 +}
src/main/java/com/bsth/controller/realcontrol/ScheduleRealInfoController.java
@@ -449,4 +449,9 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -449,4 +449,9 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
449 public List<SchedulePlanInfo> currentSchedulePlan(@RequestParam String lineCode){ 449 public List<SchedulePlanInfo> currentSchedulePlan(@RequestParam String lineCode){
450 return scheduleRealInfoService.currentSchedulePlan(lineCode); 450 return scheduleRealInfoService.currentSchedulePlan(lineCode);
451 } 451 }
  452 +
  453 + @RequestMapping(value = "lpChangeMulti", method = RequestMethod.POST)
  454 + public Map<String, Object> lpChangeMulti(@RequestParam String leftIdx, @RequestParam String rightIdx){
  455 + return scheduleRealInfoService.lpChangeMulti(leftIdx, rightIdx);
  456 + }
452 } 457 }
src/main/java/com/bsth/controller/realcontrol/dto/LpData.java 0 → 100644
  1 +package com.bsth.controller.realcontrol.dto;
  2 +
  3 +import com.bsth.entity.realcontrol.ScheduleRealInfo;
  4 +
  5 +/**
  6 + * 路牌相关的数据(换路牌时要换的字段)
  7 + * Created by panzhao on 2017/3/2.
  8 + */
  9 +public class LpData {
  10 +
  11 + public LpData(ScheduleRealInfo sch) {
  12 + this.jGh = sch.getjGh();
  13 + this.jName = sch.getjName();
  14 + this.sGh = sch.getsGh();
  15 + this.sName = sch.getsName();
  16 + this.nbbm = sch.getClZbh();
  17 +
  18 + this.fcsj = sch.getFcsjActualTime();
  19 + this.zdsj = sch.getZdsjActualTime();
  20 + }
  21 +
  22 + public void appendTo(ScheduleRealInfo sch) {
  23 + sch.setjGh(this.jGh);
  24 + sch.setjName(this.jName);
  25 + sch.setsGh(this.sGh);
  26 + sch.setsName(this.sName);
  27 + sch.setClZbh(this.nbbm);
  28 +
  29 + if (this.fcsj != null)
  30 + sch.setFcsjActualAll(this.fcsj);
  31 + if (this.zdsj != null)
  32 + sch.setZdsjActualAll(this.zdsj);
  33 + }
  34 +
  35 + /**
  36 + * 驾驶员
  37 + */
  38 + private String jGh;
  39 + private String jName;
  40 +
  41 + /**
  42 + * 售票员
  43 + */
  44 + private String sGh;
  45 + private String sName;
  46 +
  47 + /**
  48 + * 车辆自编号
  49 + */
  50 + private String nbbm;
  51 +
  52 + /**
  53 + * 实际发车时间
  54 + */
  55 + private Long fcsj;
  56 +
  57 + /**
  58 + * 实际终点时间
  59 + */
  60 + private Long zdsj;
  61 +
  62 + public String getjGh() {
  63 + return jGh;
  64 + }
  65 +
  66 + public void setjGh(String jGh) {
  67 + this.jGh = jGh;
  68 + }
  69 +
  70 + public String getjName() {
  71 + return jName;
  72 + }
  73 +
  74 + public void setjName(String jName) {
  75 + this.jName = jName;
  76 + }
  77 +
  78 + public String getsGh() {
  79 + return sGh;
  80 + }
  81 +
  82 + public void setsGh(String sGh) {
  83 + this.sGh = sGh;
  84 + }
  85 +
  86 + public String getsName() {
  87 + return sName;
  88 + }
  89 +
  90 + public void setsName(String sName) {
  91 + this.sName = sName;
  92 + }
  93 +
  94 + public String getNbbm() {
  95 + return nbbm;
  96 + }
  97 +
  98 + public void setNbbm(String nbbm) {
  99 + this.nbbm = nbbm;
  100 + }
  101 +
  102 + public Long getFcsj() {
  103 + return fcsj;
  104 + }
  105 +
  106 + public void setFcsj(Long fcsj) {
  107 + this.fcsj = fcsj;
  108 + }
  109 +
  110 + public Long getZdsj() {
  111 + return zdsj;
  112 + }
  113 +
  114 + public void setZdsj(Long zdsj) {
  115 + this.zdsj = zdsj;
  116 + }
  117 +}
src/main/java/com/bsth/entity/oil/Jdl.java
@@ -21,10 +21,12 @@ public class Jdl { @@ -21,10 +21,12 @@ public class Jdl {
21 private String gsName; 21 private String gsName;
22 private String fgsBm; 22 private String fgsBm;
23 private String fgsName; 23 private String fgsName;
24 - private String clZbh; 24 + private String nbbm;
25 private Double jdl = 0.0; 25 private Double jdl = 0.0;
26 private String jdz; 26 private String jdz;
27 private String remarks; 27 private String remarks;
  28 + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
  29 + private Date createrDate;
28 30
29 31
30 public Integer getId() { 32 public Integer getId() {
@@ -63,11 +65,11 @@ public class Jdl { @@ -63,11 +65,11 @@ public class Jdl {
63 public void setFgsName(String fgsName) { 65 public void setFgsName(String fgsName) {
64 this.fgsName = fgsName; 66 this.fgsName = fgsName;
65 } 67 }
66 - public String getClZbh() {  
67 - return clZbh; 68 + public String getNbbm() {
  69 + return nbbm;
68 } 70 }
69 - public void setClZbh(String clZbh) {  
70 - this.clZbh = clZbh; 71 + public void setNbbm(String nbbm) {
  72 + this.nbbm = nbbm;
71 } 73 }
72 public Double getJdl() { 74 public Double getJdl() {
73 return jdl; 75 return jdl;
@@ -87,5 +89,11 @@ public class Jdl { @@ -87,5 +89,11 @@ public class Jdl {
87 public void setRemarks(String remarks) { 89 public void setRemarks(String remarks) {
88 this.remarks = remarks; 90 this.remarks = remarks;
89 } 91 }
  92 + public Date getCreaterDate() {
  93 + return createrDate;
  94 + }
  95 + public void setCreaterDate(Date createrDate) {
  96 + this.createrDate = createrDate;
  97 + }
90 98
91 } 99 }
src/main/java/com/bsth/repository/oil/JdlRepository.java 0 → 100644
  1 +package com.bsth.repository.oil;
  2 +
  3 +
  4 +import java.util.List;
  5 +
  6 +import org.springframework.data.jpa.repository.Modifying;
  7 +import org.springframework.data.jpa.repository.Query;
  8 +import org.springframework.stereotype.Repository;
  9 +import org.springframework.transaction.annotation.Transactional;
  10 +
  11 +import com.bsth.entity.oil.Jdl;
  12 +import com.bsth.repository.BaseRepository;
  13 +
  14 +@Repository
  15 +public interface JdlRepository extends BaseRepository<Jdl, Integer>{
  16 +
  17 + @Transactional
  18 + @Modifying
  19 + @Query(value="INSERT INTO bsth_c_jdl("+
  20 + "gs_bm, gs_name, fgs_bm, fgs_name, rq, nbbm, jdl, jdz, remarks, creater_date)" +
  21 + " VALUES(" +
  22 + "?1,?2,?3,?4,str_to_date(?5,'%Y-%m-%d'),?6,?7,?8,?9,str_to_date(?10,'%Y-%m-%d %H:%i:%s'))", nativeQuery=true)
  23 + void insertData(String gsbm, String gsName, String fgsbm, String fgsName, String rq, String nbbm, String jdl, String jdz, String remarks, String createrDate);
  24 +
  25 + @Transactional
  26 + @Modifying
  27 + @Query(value="SELECT * FROM bsth_c_jdl where gs_bm = ?1 and fgs_bm = ?2 and rq = ?3 and nbbm like %?4%",nativeQuery=true)
  28 + List<Jdl> query(String gsbm, String fgsbm, String rq, String nbbm);
  29 +
  30 + @Transactional
  31 + @Modifying
  32 + @Query(value="SELECT jdl FROM bsth_c_jdl where gs_bm = ?1 and fgs_bm = ?2 and rq = ?3 and nbbm = ?4 and jdz = ?5",nativeQuery=true)
  33 + List<Double> queryBySame(String gsbm, String fgsbm, String rq, String nbbm, String jdz);
  34 +
  35 + @Transactional
  36 + @Modifying
  37 + @Query(value="UPDATE bsth_c_jdl set jdl = ?1 where gs_bm = ?2 and fgs_bm = ?3 and rq = ?4 and nbbm = ?5 and jdz = ?6",nativeQuery=true)
  38 + void UpdateJdl(String jdl, String gsbm, String fgsbm, String rq, String nbbm, String jdz);
  39 +
  40 +}
src/main/java/com/bsth/service/impl/StationServiceImpl.java
@@ -758,7 +758,7 @@ public class StationServiceImpl extends BaseServiceImpl&lt;Station, Integer&gt; implem @@ -758,7 +758,7 @@ public class StationServiceImpl extends BaseServiceImpl&lt;Station, Integer&gt; implem
758 String bsectionVector = "LINESTRING(" + sectionsBpoints + ")"; 758 String bsectionVector = "LINESTRING(" + sectionsBpoints + ")";
759 759
760 // 城建坐标点集合 760 // 城建坐标点集合
761 - String csectionVector = ""; 761 + String csectionVector = null;
762 762
763 // 路段类型 763 // 路段类型
764 String sectionType = ""; 764 String sectionType = "";
src/main/java/com/bsth/service/oil/JdlService.java 0 → 100644
  1 +package com.bsth.service.oil;
  2 +
  3 +import java.io.File;
  4 +import java.util.Map;
  5 +
  6 +import com.bsth.entity.oil.Jdl;
  7 +import com.bsth.service.BaseService;
  8 +
  9 +public interface JdlService extends BaseService<Jdl, Integer> {
  10 +
  11 + public String importExcel(File file, String gsbm_, String gsName, String fgsbm, String fgsName);
  12 +
  13 + public Map<String, Object> query(Map<String, Object> map);
  14 +
  15 +}
src/main/java/com/bsth/service/oil/impl/JdlServiceImpl.java 0 → 100644
  1 +package com.bsth.service.oil.impl;
  2 +
  3 +import java.io.File;
  4 +import java.io.FileInputStream;
  5 +import java.text.DecimalFormat;
  6 +import java.text.SimpleDateFormat;
  7 +import java.util.ArrayList;
  8 +import java.util.Date;
  9 +import java.util.HashMap;
  10 +import java.util.Iterator;
  11 +import java.util.List;
  12 +import java.util.Map;
  13 +
  14 +import org.apache.poi.hssf.usermodel.HSSFCell;
  15 +import org.apache.poi.hssf.usermodel.HSSFRow;
  16 +import org.apache.poi.hssf.usermodel.HSSFSheet;
  17 +import org.apache.poi.hssf.usermodel.HSSFWorkbook;
  18 +import org.apache.poi.poifs.filesystem.POIFSFileSystem;
  19 +import org.springframework.beans.factory.annotation.Autowired;
  20 +import org.springframework.stereotype.Service;
  21 +
  22 +import com.bsth.entity.oil.Jdl;
  23 +import com.bsth.repository.oil.JdlRepository;
  24 +import com.bsth.service.impl.BaseServiceImpl;
  25 +import com.bsth.service.oil.JdlService;
  26 +import com.bsth.util.ReportUtils;
  27 +
  28 +@Service
  29 +public class JdlServiceImpl extends BaseServiceImpl<Jdl, Integer> implements JdlService {
  30 +
  31 + @Autowired
  32 + JdlRepository repository;
  33 +
  34 + @Override
  35 + public String importExcel(File file, String gsbm, String gsName, String fgsbm, String fgsName) {
  36 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  37 + SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  38 + DecimalFormat df = new DecimalFormat("######0.00");
  39 + List<String> textList = new ArrayList<String>();
  40 + try {
  41 + POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(file));
  42 + HSSFWorkbook wb = new HSSFWorkbook(fs);
  43 + HSSFSheet sheet = wb.getSheetAt(0);
  44 + // 取得总行数
  45 + int rowNum = sheet.getLastRowNum() + 1;
  46 + // 取得总列数
  47 + int cellNum = sheet.getRow(0).getLastCellNum();
  48 + HSSFRow row = null;
  49 + HSSFCell cell = null;
  50 + for(int i = 2; i < rowNum; i++){
  51 + row = sheet.getRow(i);
  52 + if (row == null){
  53 + continue;
  54 + }
  55 + String text = "";
  56 + for(int j = 0; j < cellNum; j++){
  57 + cell = row.getCell(j);
  58 + if(cell == null){
  59 + text += ",";
  60 + continue;
  61 + }
  62 + text += cell.getStringCellValue() + ",";
  63 + }
  64 + String[] split = (text+";").split(",");
  65 + String str = "";
  66 + for(int j = 0; j < split.length && j < 5; j++){
  67 + str += split[j];
  68 + }
  69 + if(str.trim().length() == 0)
  70 + continue;
  71 + textList.add(text + ";");
  72 + }
  73 + for(int i = 0; i < textList.size(); i++){
  74 + String text = textList.get(i);
  75 + String[] split = text.split(",");
  76 + String rq = split[0];
  77 + String nbbm = split[1];
  78 + double jdl = Double.valueOf(split[2].trim().length()!=0?split[2]:"0");
  79 + String jdz = split[3];
  80 + String remarks = split[4];
  81 + if(rq.trim().length() == 0){
  82 + rq = sdf.format(new Date());
  83 + }
  84 +
  85 + List<Double> jdl_ = repository.queryBySame(gsbm, fgsbm, rq, nbbm, jdz);
  86 +
  87 + if(jdl_.size() == 0){
  88 + repository.insertData(gsbm, gsName, fgsbm, fgsName, rq, nbbm,
  89 + df.format(jdl), jdz, remarks, sd.format(new Date()));
  90 + }else{
  91 + jdl += jdl_.get(0);
  92 + repository.UpdateJdl(df.format(jdl), gsbm, fgsbm, rq, nbbm, jdz);
  93 + }
  94 + }
  95 + wb.close();
  96 + fs.close();
  97 + } catch (Exception e) {
  98 + // TODO Auto-generated catch block
  99 + e.printStackTrace();
  100 + return "文件导入失败";
  101 + } finally {
  102 + file.delete();
  103 + }
  104 + return "文件导入成功";
  105 + }
  106 +
  107 + @Override
  108 + public Map<String, Object> query(Map<String, Object> map) {
  109 + Map<String, Object> modelMap = new HashMap<String, Object>();
  110 + String gsbm = map.get("gsbm").toString();
  111 + String fgsbm = map.get("fgsbm").toString();
  112 + String rq = map.get("rq").toString();
  113 + String nbbm = map.get("nbbm").toString();
  114 + Integer page = Integer.valueOf(map.containsKey("page")?map.get("page").toString():"0");
  115 + List<Jdl> query = repository.query(gsbm, fgsbm, rq, nbbm);
  116 +
  117 + if(!map.containsKey("type")){
  118 +
  119 + int end = (page+1)*10>query.size()?query.size():(page+1)*10;
  120 + modelMap.put("dataList", query.subList(page*10, end));
  121 + modelMap.put("totalPages", query.size()%10>0?query.size()/10+1:query.size()/10);
  122 +
  123 + } else if(map.get("type").toString().equals("export")){
  124 + SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),
  125 + sdfSimple = new SimpleDateFormat("yyyyMMdd");
  126 +
  127 + List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
  128 + for(Jdl jdl : query){
  129 + Map<String, Object> m = new HashMap<String, Object>();
  130 + m.put("rq", sdfMonth.format(jdl.getRq()));
  131 + m.put("nbbm", jdl.getNbbm());
  132 + m.put("jdl", jdl.getJdl());
  133 + m.put("jdz", jdl.getJdz());
  134 + m.put("remarks", jdl.getRemarks());
  135 + list.add(m);
  136 + }
  137 +
  138 + List<Iterator<?>> listI = new ArrayList<Iterator<?>>();
  139 + Map<String, Object> m = new HashMap<String, Object>();
  140 + ReportUtils ee = new ReportUtils();
  141 + try {
  142 + listI.add(list.iterator());
  143 + String path = this.getClass().getResource("/").getPath()+"static/pages/forms/";
  144 + ee.excelReplace(listI, new Object[] { m }, path+"mould/export_Jdl.xls",
  145 + path+"export/车辆充电量" + sdfSimple.format(sdfMonth.parse(rq)) + ".xls");
  146 + } catch (Exception e) {
  147 + // TODO: handle exception
  148 + e.printStackTrace();
  149 + }
  150 + }
  151 + return modelMap;
  152 + }
  153 +
  154 +}
src/main/java/com/bsth/service/realcontrol/ScheduleRealInfoService.java
@@ -151,4 +151,8 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L @@ -151,4 +151,8 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L
151 Map<String, Object> exportWaybillMore(Map<String, Object> map); 151 Map<String, Object> exportWaybillMore(Map<String, Object> map);
152 152
153 List<SchedulePlanInfo> currentSchedulePlan(String lineCode); 153 List<SchedulePlanInfo> currentSchedulePlan(String lineCode);
  154 +
  155 + Map<String,Object> lpChangeMulti(String leftIdx, String rightIdx);
  156 +
  157 + void lpChange(ScheduleRealInfo leftSch, ScheduleRealInfo rightSch);
154 } 158 }
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject; @@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject;
6 import com.bsth.common.ResponseCode; 6 import com.bsth.common.ResponseCode;
7 import com.bsth.controller.realcontrol.dto.ChangePersonCar; 7 import com.bsth.controller.realcontrol.dto.ChangePersonCar;
8 import com.bsth.controller.realcontrol.dto.DfsjChange; 8 import com.bsth.controller.realcontrol.dto.DfsjChange;
  9 +import com.bsth.controller.realcontrol.dto.LpData;
9 import com.bsth.data.BasicData; 10 import com.bsth.data.BasicData;
10 import com.bsth.data.LineConfigData; 11 import com.bsth.data.LineConfigData;
11 import com.bsth.data.arrival.ArrivalData_GPS; 12 import com.bsth.data.arrival.ArrivalData_GPS;
@@ -3247,4 +3248,50 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -3247,4 +3248,50 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
3247 } 3248 }
3248 return rs; 3249 return rs;
3249 } 3250 }
  3251 +
  3252 +
  3253 + @Override
  3254 + public Map<String, Object> lpChangeMulti(String leftIdx, String rightIdx) {
  3255 + Map<String, Object> rs = new HashMap<>();
  3256 + List<ScheduleRealInfo> ts = new ArrayList<>();
  3257 + try {
  3258 + List<String> leftList = Splitter.on(",").splitToList(leftIdx);
  3259 + List<String> rightList = Splitter.on(",").splitToList(rightIdx);
  3260 + if(leftList.size() != rightList.size()){
  3261 + rs.put("status", ResponseCode.ERROR);
  3262 + rs.put("msg", "不对称的对调!");
  3263 + return rs;
  3264 + }
  3265 +
  3266 + ScheduleRealInfo leftSch, rightSch;
  3267 + for(int i = 0; i < leftList.size(); i ++){
  3268 + leftSch = dayOfSchedule.get(Long.parseLong(leftList.get(i)));
  3269 + rightSch = dayOfSchedule.get(Long.parseLong(rightList.get(i)));
  3270 +
  3271 + //调换路牌
  3272 + lpChange(leftSch, rightSch);
  3273 +
  3274 + ts.add(leftSch);
  3275 + ts.add(rightSch);
  3276 + }
  3277 +
  3278 + rs.put("status", ResponseCode.SUCCESS);
  3279 + rs.put("ts", ts);
  3280 + }catch(Exception e){
  3281 + logger.error("", e);
  3282 + rs.put("status", ResponseCode.ERROR);
  3283 + rs.put("msg", e.getMessage());
  3284 + }
  3285 +
  3286 + return rs;
  3287 + }
  3288 +
  3289 + @Override
  3290 + public void lpChange(ScheduleRealInfo leftSch, ScheduleRealInfo rightSch) {
  3291 + LpData leftData = new LpData(leftSch);
  3292 + LpData rightData = new LpData(rightSch);
  3293 +
  3294 + leftData.appendTo(rightSch);
  3295 + rightData.appendTo(leftSch);
  3296 + }
3250 } 3297 }
3251 \ No newline at end of file 3298 \ No newline at end of file
src/main/resources/logback.xml
@@ -6,10 +6,11 @@ @@ -6,10 +6,11 @@
6 <property name="LOG_BASE" value="E:/bsth_control_logs" /> 6 <property name="LOG_BASE" value="E:/bsth_control_logs" />
7 <!-- 控制台输出 --> 7 <!-- 控制台输出 -->
8 <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 8 <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
9 - 9 +
10 <layout class="ch.qos.logback.classic.PatternLayout"> 10 <layout class="ch.qos.logback.classic.PatternLayout">
11 <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 --> 11 <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
12 - <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%file:%line] %-5level -%msg%n 12 + <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%file:%line] %-5level
  13 + -%msg%n
13 </pattern> 14 </pattern>
14 </layout> 15 </layout>
15 </appender> 16 </appender>
@@ -28,14 +29,15 @@ @@ -28,14 +29,15 @@
28 <encoder> 29 <encoder>
29 <pattern>%msg%n</pattern> 30 <pattern>%msg%n</pattern>
30 </encoder> 31 </encoder>
31 - 32 +
32 <layout class="ch.qos.logback.classic.PatternLayout"> 33 <layout class="ch.qos.logback.classic.PatternLayout">
33 <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 --> 34 <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
34 - <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%file:%line] %-5level -%msg%n 35 + <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [%file:%line] %-5level
  36 + -%msg%n
35 </pattern> 37 </pattern>
36 </layout> 38 </layout>
37 </appender> 39 </appender>
38 - 40 +
39 <!-- 访问日志 --> 41 <!-- 访问日志 -->
40 <appender name="ACCESS" 42 <appender name="ACCESS"
41 class="ch.qos.logback.core.rolling.RollingFileAppender"> 43 class="ch.qos.logback.core.rolling.RollingFileAppender">
@@ -47,19 +49,20 @@ @@ -47,19 +49,20 @@
47 <maxFileSize>100MB</maxFileSize> 49 <maxFileSize>100MB</maxFileSize>
48 </timeBasedFileNamingAndTriggeringPolicy> 50 </timeBasedFileNamingAndTriggeringPolicy>
49 </rollingPolicy> 51 </rollingPolicy>
50 - 52 +
51 <layout class="ch.qos.logback.classic.PatternLayout"> 53 <layout class="ch.qos.logback.classic.PatternLayout">
52 <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 --> 54 <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
53 <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level -%msg%n 55 <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level -%msg%n
54 </pattern> 56 </pattern>
55 </layout> 57 </layout>
56 </appender> 58 </appender>
57 - <logger name="com.bsth.filter.AccessLogFilter" level="INFO" additivity="false">  
58 - <appender-ref ref="ACCESS" />  
59 - </logger>  
60 -  
61 - <!-- 和网关通讯日志日志 -->  
62 - <appender name="GATEWAY" 59 + <logger name="com.bsth.filter.AccessLogFilter" level="INFO"
  60 + additivity="false">
  61 + <appender-ref ref="ACCESS" />
  62 + </logger>
  63 +
  64 + <!-- 和网关通讯日志日志 -->
  65 + <appender name="GATEWAY"
63 class="ch.qos.logback.core.rolling.RollingFileAppender"> 66 class="ch.qos.logback.core.rolling.RollingFileAppender">
64 <file>${LOG_BASE}/gateway/gateway.log</file> 67 <file>${LOG_BASE}/gateway/gateway.log</file>
65 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 68 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
@@ -69,24 +72,27 @@ @@ -69,24 +72,27 @@
69 <maxFileSize>100MB</maxFileSize> 72 <maxFileSize>100MB</maxFileSize>
70 </timeBasedFileNamingAndTriggeringPolicy> 73 </timeBasedFileNamingAndTriggeringPolicy>
71 </rollingPolicy> 74 </rollingPolicy>
72 - 75 +
73 <layout class="ch.qos.logback.classic.PatternLayout"> 76 <layout class="ch.qos.logback.classic.PatternLayout">
74 <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%file:%line] %-5level -%msg%n 77 <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%file:%line] %-5level -%msg%n
75 </pattern> 78 </pattern>
76 </layout> 79 </layout>
77 </appender> 80 </appender>
78 - <logger name="com.bsth.service.directive.DirectiveServiceImpl" level="INFO" additivity="false" >  
79 - <appender-ref ref="GATEWAY" />  
80 - </logger>  
81 - <logger name="com.bsth.controller.directive.UpstreamEntrance" level="INFO" additivity="false" >  
82 - <appender-ref ref="GATEWAY" />  
83 - </logger>  
84 - <logger name="com.bsth.data.directive.GatewayHttpUtils" level="INFO" additivity="false" >  
85 - <appender-ref ref="GATEWAY" />  
86 - </logger>  
87 - 81 + <logger name="com.bsth.service.directive.DirectiveServiceImpl"
  82 + level="INFO" additivity="false">
  83 + <appender-ref ref="GATEWAY" />
  84 + </logger>
  85 + <logger name="com.bsth.controller.directive.UpstreamEntrance"
  86 + level="INFO" additivity="false">
  87 + <appender-ref ref="GATEWAY" />
  88 + </logger>
  89 + <logger name="com.bsth.data.directive.GatewayHttpUtils" level="INFO"
  90 + additivity="false">
  91 + <appender-ref ref="GATEWAY" />
  92 + </logger>
  93 +
88 <!-- 运管处接口日志 --> 94 <!-- 运管处接口日志 -->
89 - <appender name="TRAFFIC" 95 + <appender name="TRAFFIC"
90 class="ch.qos.logback.core.rolling.RollingFileAppender"> 96 class="ch.qos.logback.core.rolling.RollingFileAppender">
91 <file>${LOG_BASE}/traffic/traffic.log</file> 97 <file>${LOG_BASE}/traffic/traffic.log</file>
92 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 98 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
@@ -96,57 +102,60 @@ @@ -96,57 +102,60 @@
96 <maxFileSize>100MB</maxFileSize> 102 <maxFileSize>100MB</maxFileSize>
97 </timeBasedFileNamingAndTriggeringPolicy> 103 </timeBasedFileNamingAndTriggeringPolicy>
98 </rollingPolicy> 104 </rollingPolicy>
99 - 105 +
100 <layout class="ch.qos.logback.classic.PatternLayout"> 106 <layout class="ch.qos.logback.classic.PatternLayout">
101 <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%file:%line] %-5level -%msg%n 107 <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%file:%line] %-5level -%msg%n
102 </pattern> 108 </pattern>
103 </layout> 109 </layout>
104 </appender> 110 </appender>
105 - <logger name="com.bsth.service.impl.TrafficManageServiceImpl" level="INFO" additivity="false" >  
106 - <appender-ref ref="TRAFFIC" />  
107 - </logger> 111 + <logger name="com.bsth.service.impl.TrafficManageServiceImpl"
  112 + level="INFO" additivity="false">
  113 + <appender-ref ref="TRAFFIC" />
  114 + </logger>
108 115
109 - <!-- schedule 数据工具操作日志 -->  
110 - <appender name="DATATOOLS"  
111 - class="ch.qos.logback.core.rolling.RollingFileAppender">  
112 - <file>${LOG_BASE}/schedule/datatools/datatools.log</file>  
113 - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
114 - <fileNamePattern>${LOG_BASE}/schedule/datatools/datatools-%d{yyyy-MM-dd}.%i.log</fileNamePattern>  
115 - <timeBasedFileNamingAndTriggeringPolicy  
116 - class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">  
117 - <maxFileSize>100MB</maxFileSize>  
118 - </timeBasedFileNamingAndTriggeringPolicy>  
119 - </rollingPolicy> 116 + <!-- schedule 数据工具操作日志 -->
  117 + <appender name="DATATOOLS"
  118 + class="ch.qos.logback.core.rolling.RollingFileAppender">
  119 + <file>${LOG_BASE}/schedule/datatools/datatools.log</file>
  120 + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  121 + <fileNamePattern>${LOG_BASE}/schedule/datatools/datatools-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  122 + <timeBasedFileNamingAndTriggeringPolicy
  123 + class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  124 + <maxFileSize>100MB</maxFileSize>
  125 + </timeBasedFileNamingAndTriggeringPolicy>
  126 + </rollingPolicy>
120 127
121 - <layout class="ch.qos.logback.classic.PatternLayout">  
122 - <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%file:%line] %-5level -%msg%n  
123 - </pattern>  
124 - </layout>  
125 - </appender>  
126 - <!-- schedule 时刻表操作日志 -->  
127 - <appender name="TIMETABLE"  
128 - class="ch.qos.logback.core.rolling.RollingFileAppender">  
129 - <file>${LOG_BASE}/schedule/timetable/timetable.log</file>  
130 - <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
131 - <fileNamePattern>${LOG_BASE}/schedule/timetable/timetable-%d{yyyy-MM-dd}.%i.log</fileNamePattern>  
132 - <timeBasedFileNamingAndTriggeringPolicy  
133 - class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">  
134 - <maxFileSize>100MB</maxFileSize>  
135 - </timeBasedFileNamingAndTriggeringPolicy>  
136 - </rollingPolicy> 128 + <layout class="ch.qos.logback.classic.PatternLayout">
  129 + <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%file:%line] %-5level -%msg%n
  130 + </pattern>
  131 + </layout>
  132 + </appender>
  133 + <!-- schedule 时刻表操作日志 -->
  134 + <appender name="TIMETABLE"
  135 + class="ch.qos.logback.core.rolling.RollingFileAppender">
  136 + <file>${LOG_BASE}/schedule/timetable/timetable.log</file>
  137 + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  138 + <fileNamePattern>${LOG_BASE}/schedule/timetable/timetable-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  139 + <timeBasedFileNamingAndTriggeringPolicy
  140 + class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  141 + <maxFileSize>100MB</maxFileSize>
  142 + </timeBasedFileNamingAndTriggeringPolicy>
  143 + </rollingPolicy>
137 144
138 - <layout class="ch.qos.logback.classic.PatternLayout">  
139 - <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%file:%line] %-5level -%msg%n  
140 - </pattern>  
141 - </layout>  
142 - </appender>  
143 - <logger name="com.bsth.service.schedule.impl.TTInfoDetailServiceImpl" level="INFO" additivity="false" >  
144 - <appender-ref ref="TIMETABLE" />  
145 - </logger>  
146 - <logger name="com.bsth.service.schedule.utils.DataToolsServiceImpl" level="INFO" additivity="false" >  
147 - <appender-ref ref="TIMETABLE" />  
148 - <appender-ref ref="DATATOOLS" />  
149 - </logger> 145 + <layout class="ch.qos.logback.classic.PatternLayout">
  146 + <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%file:%line] %-5level -%msg%n
  147 + </pattern>
  148 + </layout>
  149 + </appender>
  150 + <logger name="com.bsth.service.schedule.impl.TTInfoDetailServiceImpl"
  151 + level="INFO" additivity="false">
  152 + <appender-ref ref="TIMETABLE" />
  153 + </logger>
  154 + <logger name="com.bsth.service.schedule.utils.DataToolsServiceImpl"
  155 + level="INFO" additivity="false">
  156 + <appender-ref ref="TIMETABLE" />
  157 + <appender-ref ref="DATATOOLS" />
  158 + </logger>
150 159
151 <!-- 日志输出级别 --> 160 <!-- 日志输出级别 -->
152 <root level="info"> 161 <root level="info">
src/main/resources/static/assets/bower_components/angular-bootstrap/ui-bootstrap-csp.css
1 /* Include this file in your html if you are using the CSP mode. */ 1 /* Include this file in your html if you are using the CSP mode. */
2 -  
3 -.ng-animate.item:not(.left):not(.right) {  
4 - -webkit-transition: 0s ease-in-out left;  
5 - transition: 0s ease-in-out left 2 +.ng-animate.item:not (.left ):not (.right ) {
  3 + -webkit-transition: 0s ease-in-out left;
  4 + transition: 0s ease-in-out left
6 } 5 }
7 \ No newline at end of file 6 \ No newline at end of file
src/main/resources/static/assets/bower_components/angular-ui-select/dist/select.css
@@ -5,263 +5,267 @@ @@ -5,263 +5,267 @@
5 * License: MIT 5 * License: MIT
6 */ 6 */
7 7
8 -  
9 /* Style when highlighting a search. */ 8 /* Style when highlighting a search. */
10 .ui-select-highlight { 9 .ui-select-highlight {
11 - font-weight: bold; 10 + font-weight: bold;
12 } 11 }
13 12
14 .ui-select-offscreen { 13 .ui-select-offscreen {
15 - clip: rect(0 0 0 0) !important;  
16 - width: 1px !important;  
17 - height: 1px !important;  
18 - border: 0 !important;  
19 - margin: 0 !important;  
20 - padding: 0 !important;  
21 - overflow: hidden !important;  
22 - position: absolute !important;  
23 - outline: 0 !important;  
24 - left: 0px !important;  
25 - top: 0px !important; 14 + clip: rect(0, 0, 0, 0) !important;
  15 + width: 1px !important;
  16 + height: 1px !important;
  17 + border: 0 !important;
  18 + margin: 0 !important;
  19 + padding: 0 !important;
  20 + overflow: hidden !important;
  21 + position: absolute !important;
  22 + outline: 0 !important;
  23 + left: 0px !important;
  24 + top: 0px !important;
26 } 25 }
27 26
28 -  
29 .ui-select-choices-row:hover { 27 .ui-select-choices-row:hover {
30 - background-color: #f5f5f5; 28 + background-color: #f5f5f5;
31 } 29 }
32 30
33 /* Select2 theme */ 31 /* Select2 theme */
34 32
35 /* Mark invalid Select2 */ 33 /* Mark invalid Select2 */
36 -.ng-dirty.ng-invalid > a.select2-choice {  
37 - border-color: #D44950; 34 +.ng-dirty.ng-invalid>a.select2-choice {
  35 + border-color: #D44950;
38 } 36 }
39 37
40 .select2-result-single { 38 .select2-result-single {
41 - padding-left: 0; 39 + padding-left: 0;
42 } 40 }
43 41
44 -.select2-locked > .select2-search-choice-close{  
45 - display:none; 42 +.select2-locked>.select2-search-choice-close {
  43 + display: none;
46 } 44 }
47 45
48 -.select-locked > .ui-select-match-close{  
49 - display:none; 46 +.select-locked>.ui-select-match-close {
  47 + display: none;
50 } 48 }
51 49
52 -body > .select2-container.open {  
53 - z-index: 9999; /* The z-index Select2 applies to the select2-drop */ 50 +body>.select2-container.open {
  51 + z-index: 9999; /* The z-index Select2 applies to the select2-drop */
54 } 52 }
55 53
56 /* Handle up direction Select2 */ 54 /* Handle up direction Select2 */
57 .ui-select-container[theme="select2"].direction-up .ui-select-match { 55 .ui-select-container[theme="select2"].direction-up .ui-select-match {
58 - border-radius: 4px; /* FIXME hardcoded value :-/ */  
59 - border-top-left-radius: 0;  
60 - border-top-right-radius: 0; 56 + border-radius: 4px; /* FIXME hardcoded value :-/ */
  57 + border-top-left-radius: 0;
  58 + border-top-right-radius: 0;
61 } 59 }
62 -.ui-select-container[theme="select2"].direction-up .ui-select-dropdown {  
63 - border-radius: 4px; /* FIXME hardcoded value :-/ */  
64 - border-bottom-left-radius: 0;  
65 - border-bottom-right-radius: 0;  
66 60
67 - border-top-width: 1px; /* FIXME hardcoded value :-/ */  
68 - border-top-style: solid;  
69 -  
70 - box-shadow: 0 -4px 8px rgba(0, 0, 0, 0.25);  
71 -  
72 - margin-top: -4px; /* FIXME hardcoded value :-/ */ 61 +.ui-select-container[theme="select2"].direction-up .ui-select-dropdown {
  62 + border-radius: 4px; /* FIXME hardcoded value :-/ */
  63 + border-bottom-left-radius: 0;
  64 + border-bottom-right-radius: 0;
  65 + border-top-width: 1px; /* FIXME hardcoded value :-/ */
  66 + border-top-style: solid;
  67 + box-shadow: 0 -4px 8px rgba(0, 0, 0, 0.25);
  68 + margin-top: -4px; /* FIXME hardcoded value :-/ */
73 } 69 }
74 -.ui-select-container[theme="select2"].direction-up .ui-select-dropdown .select2-search {  
75 - margin-top: 4px; /* FIXME hardcoded value :-/ */ 70 +
  71 +.ui-select-container[theme="select2"].direction-up .ui-select-dropdown .select2-search
  72 + {
  73 + margin-top: 4px; /* FIXME hardcoded value :-/ */
76 } 74 }
77 -.ui-select-container[theme="select2"].direction-up.select2-dropdown-open .ui-select-match {  
78 - border-bottom-color: #5897fb; 75 +
  76 +.ui-select-container[theme="select2"].direction-up.select2-dropdown-open .ui-select-match
  77 + {
  78 + border-bottom-color: #5897fb;
79 } 79 }
80 80
81 /* Selectize theme */ 81 /* Selectize theme */
82 82
83 /* Helper class to show styles when focus */ 83 /* Helper class to show styles when focus */
84 -.selectize-input.selectize-focus{  
85 - border-color: #007FBB !important; 84 +.selectize-input.selectize-focus {
  85 + border-color: #007FBB !important;
86 } 86 }
87 87
88 /* Fix input width for Selectize theme */ 88 /* Fix input width for Selectize theme */
89 -.selectize-control > .selectize-input > input {  
90 - width: 100%; 89 +.selectize-control>.selectize-input>input {
  90 + width: 100%;
91 } 91 }
92 92
93 /* Fix dropdown width for Selectize theme */ 93 /* Fix dropdown width for Selectize theme */
94 -.selectize-control > .selectize-dropdown {  
95 - width: 100%; 94 +.selectize-control>.selectize-dropdown {
  95 + width: 100%;
96 } 96 }
97 97
98 /* Mark invalid Selectize */ 98 /* Mark invalid Selectize */
99 -.ng-dirty.ng-invalid > div.selectize-input {  
100 - border-color: #D44950; 99 +.ng-dirty.ng-invalid>div.selectize-input {
  100 + border-color: #D44950;
101 } 101 }
102 102
103 /* Handle up direction Selectize */ 103 /* Handle up direction Selectize */
104 -.ui-select-container[theme="selectize"].direction-up .ui-select-dropdown {  
105 - box-shadow: 0 -4px 8px rgba(0, 0, 0, 0.25);  
106 -  
107 - margin-top: -2px; /* FIXME hardcoded value :-/ */ 104 +.ui-select-container[theme="selectize"].direction-up .ui-select-dropdown
  105 + {
  106 + box-shadow: 0 -4px 8px rgba(0, 0, 0, 0.25);
  107 + margin-top: -2px; /* FIXME hardcoded value :-/ */
108 } 108 }
109 109
110 /* Bootstrap theme */ 110 /* Bootstrap theme */
111 111
112 /* Helper class to show styles when focus */ 112 /* Helper class to show styles when focus */
113 .btn-default-focus { 113 .btn-default-focus {
114 - color: #333;  
115 - background-color: #EBEBEB;  
116 - border-color: #ADADAD;  
117 - text-decoration: none;  
118 - outline: 5px auto -webkit-focus-ring-color;  
119 - outline-offset: -2px;  
120 - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); 114 + color: #333;
  115 + background-color: #EBEBEB;
  116 + border-color: #ADADAD;
  117 + text-decoration: none;
  118 + outline: 5px auto -webkit-focus-ring-color;
  119 + outline-offset: -2px;
  120 + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px
  121 + rgba(102, 175, 233, 0.6);
121 } 122 }
122 123
123 .ui-select-bootstrap .ui-select-toggle { 124 .ui-select-bootstrap .ui-select-toggle {
124 - position: relative; 125 + position: relative;
125 } 126 }
126 127
127 -.ui-select-bootstrap .ui-select-toggle > .caret {  
128 - position: absolute;  
129 - height: 10px;  
130 - top: 50%;  
131 - right: 10px;  
132 - margin-top: -2px; 128 +.ui-select-bootstrap .ui-select-toggle>.caret {
  129 + position: absolute;
  130 + height: 10px;
  131 + top: 50%;
  132 + right: 10px;
  133 + margin-top: -2px;
133 } 134 }
134 135
135 /* Fix Bootstrap dropdown position when inside a input-group */ 136 /* Fix Bootstrap dropdown position when inside a input-group */
136 -.input-group > .ui-select-bootstrap.dropdown {  
137 - /* Instead of relative */  
138 - position: static; 137 +.input-group>.ui-select-bootstrap.dropdown { /* Instead of relative */
  138 + position: static;
139 } 139 }
140 140
141 -.input-group > .ui-select-bootstrap > input.ui-select-search.form-control {  
142 - border-radius: 4px; /* FIXME hardcoded value :-/ */  
143 - border-top-right-radius: 0;  
144 - border-bottom-right-radius: 0; 141 +.input-group>.ui-select-bootstrap>input.ui-select-search.form-control {
  142 + border-radius: 4px; /* FIXME hardcoded value :-/ */
  143 + border-top-right-radius: 0;
  144 + border-bottom-right-radius: 0;
145 } 145 }
146 -.input-group > .ui-select-bootstrap > input.ui-select-search.form-control.direction-up {  
147 - border-radius: 4px !important; /* FIXME hardcoded value :-/ */  
148 - border-top-right-radius: 0 !important;  
149 - border-bottom-right-radius: 0 !important; 146 +
  147 +.input-group>.ui-select-bootstrap>input.ui-select-search.form-control.direction-up
  148 + {
  149 + border-radius: 4px !important; /* FIXME hardcoded value :-/ */
  150 + border-top-right-radius: 0 !important;
  151 + border-bottom-right-radius: 0 !important;
150 } 152 }
151 153
152 -.ui-select-bootstrap > .ui-select-match > .btn{  
153 - /* Instead of center because of .btn */  
154 - text-align: left !important; 154 +.ui-select-bootstrap>.ui-select-match>.btn {
  155 + /* Instead of center because of .btn */
  156 + text-align: left !important;
155 } 157 }
156 158
157 -.ui-select-bootstrap > .ui-select-match > .caret {  
158 - position: absolute;  
159 - top: 45%;  
160 - right: 15px; 159 +.ui-select-bootstrap>.ui-select-match>.caret {
  160 + position: absolute;
  161 + top: 45%;
  162 + right: 15px;
161 } 163 }
162 164
163 /* See Scrollable Menu with Bootstrap 3 http://stackoverflow.com/questions/19227496 */ 165 /* See Scrollable Menu with Bootstrap 3 http://stackoverflow.com/questions/19227496 */
164 -.ui-select-bootstrap > .ui-select-choices {  
165 - width: 100%;  
166 - height: auto;  
167 - max-height: 200px;  
168 - overflow-x: hidden;  
169 - margin-top: -1px; 166 +.ui-select-bootstrap>.ui-select-choices {
  167 + width: 100%;
  168 + height: auto;
  169 + max-height: 200px;
  170 + overflow-x: hidden;
  171 + margin-top: -1px;
170 } 172 }
171 173
172 -body > .ui-select-bootstrap.open {  
173 - z-index: 1000; /* Standard Bootstrap dropdown z-index */ 174 +body>.ui-select-bootstrap.open {
  175 + z-index: 1000; /* Standard Bootstrap dropdown z-index */
174 } 176 }
175 177
176 .ui-select-multiple.ui-select-bootstrap { 178 .ui-select-multiple.ui-select-bootstrap {
177 - height: auto;  
178 - padding: 3px 3px 0 3px; 179 + height: auto;
  180 + padding: 3px 3px 0 3px;
179 } 181 }
180 182
181 .ui-select-multiple.ui-select-bootstrap input.ui-select-search { 183 .ui-select-multiple.ui-select-bootstrap input.ui-select-search {
182 - background-color: transparent !important; /* To prevent double background when disabled */  
183 - border: none;  
184 - outline: none;  
185 - height: 1.666666em;  
186 - margin-bottom: 3px; 184 + background-color: transparent !important;
  185 + /* To prevent double background when disabled */
  186 + border: none;
  187 + outline: none;
  188 + height: 1.666666em;
  189 + margin-bottom: 3px;
187 } 190 }
188 191
189 .ui-select-multiple.ui-select-bootstrap .ui-select-match .close { 192 .ui-select-multiple.ui-select-bootstrap .ui-select-match .close {
190 - font-size: 1.6em;  
191 - line-height: 0.75; 193 + font-size: 1.6em;
  194 + line-height: 0.75;
192 } 195 }
193 196
194 .ui-select-multiple.ui-select-bootstrap .ui-select-match-item { 197 .ui-select-multiple.ui-select-bootstrap .ui-select-match-item {
195 - outline: 0;  
196 - margin: 0 3px 3px 0; 198 + outline: 0;
  199 + margin: 0 3px 3px 0;
197 } 200 }
198 201
199 .ui-select-multiple .ui-select-match-item { 202 .ui-select-multiple .ui-select-match-item {
200 - position: relative; 203 + position: relative;
201 } 204 }
202 205
203 .ui-select-multiple .ui-select-match-item.dropping-before:before { 206 .ui-select-multiple .ui-select-match-item.dropping-before:before {
204 - content: "";  
205 - position: absolute;  
206 - top: 0;  
207 - right: 100%;  
208 - height: 100%;  
209 - margin-right: 2px;  
210 - border-left: 1px solid #428bca; 207 + content: "";
  208 + position: absolute;
  209 + top: 0;
  210 + right: 100%;
  211 + height: 100%;
  212 + margin-right: 2px;
  213 + border-left: 1px solid #428bca;
211 } 214 }
212 215
213 .ui-select-multiple .ui-select-match-item.dropping-after:after { 216 .ui-select-multiple .ui-select-match-item.dropping-after:after {
214 - content: "";  
215 - position: absolute;  
216 - top: 0;  
217 - left: 100%;  
218 - height: 100%;  
219 - margin-left: 2px;  
220 - border-right: 1px solid #428bca; 217 + content: "";
  218 + position: absolute;
  219 + top: 0;
  220 + left: 100%;
  221 + height: 100%;
  222 + margin-left: 2px;
  223 + border-right: 1px solid #428bca;
221 } 224 }
222 225
223 .ui-select-bootstrap .ui-select-choices-row>a { 226 .ui-select-bootstrap .ui-select-choices-row>a {
224 - display: block;  
225 - padding: 3px 20px;  
226 - clear: both;  
227 - font-weight: 400;  
228 - line-height: 1.42857143;  
229 - color: #333;  
230 - white-space: nowrap; 227 + display: block;
  228 + padding: 3px 20px;
  229 + clear: both;
  230 + font-weight: 400;
  231 + line-height: 1.42857143;
  232 + color: #333;
  233 + white-space: nowrap;
231 } 234 }
232 235
233 -.ui-select-bootstrap .ui-select-choices-row>a:hover, .ui-select-bootstrap .ui-select-choices-row>a:focus {  
234 - text-decoration: none;  
235 - color: #262626;  
236 - background-color: #f5f5f5; 236 +.ui-select-bootstrap .ui-select-choices-row>a:hover,.ui-select-bootstrap .ui-select-choices-row>a:focus
  237 + {
  238 + text-decoration: none;
  239 + color: #262626;
  240 + background-color: #f5f5f5;
237 } 241 }
238 242
239 .ui-select-bootstrap .ui-select-choices-row.active>a { 243 .ui-select-bootstrap .ui-select-choices-row.active>a {
240 - color: #fff;  
241 - text-decoration: none;  
242 - outline: 0;  
243 - background-color: #428bca; 244 + color: #fff;
  245 + text-decoration: none;
  246 + outline: 0;
  247 + background-color: #428bca;
244 } 248 }
245 249
246 -.ui-select-bootstrap .ui-select-choices-row.disabled>a,  
247 -.ui-select-bootstrap .ui-select-choices-row.active.disabled>a {  
248 - color: #777;  
249 - cursor: not-allowed;  
250 - background-color: #fff; 250 +.ui-select-bootstrap .ui-select-choices-row.disabled>a,.ui-select-bootstrap .ui-select-choices-row.active.disabled>a
  251 + {
  252 + color: #777;
  253 + cursor: not-allowed;
  254 + background-color: #fff;
251 } 255 }
252 256
253 /* fix hide/show angular animation */ 257 /* fix hide/show angular animation */
254 -.ui-select-match.ng-hide-add,  
255 -.ui-select-search.ng-hide-add {  
256 - display: none !important; 258 +.ui-select-match.ng-hide-add,.ui-select-search.ng-hide-add {
  259 + display: none !important;
257 } 260 }
258 261
259 /* Mark invalid Bootstrap */ 262 /* Mark invalid Bootstrap */
260 -.ui-select-bootstrap.ng-dirty.ng-invalid > button.btn.ui-select-match {  
261 - border-color: #D44950; 263 +.ui-select-bootstrap.ng-dirty.ng-invalid>button.btn.ui-select-match {
  264 + border-color: #D44950;
262 } 265 }
263 266
264 /* Handle up direction Bootstrap */ 267 /* Handle up direction Bootstrap */
265 -.ui-select-container[theme="bootstrap"].direction-up .ui-select-dropdown {  
266 - box-shadow: 0 -4px 8px rgba(0, 0, 0, 0.25);  
267 -} 268 +.ui-select-container[theme="bootstrap"].direction-up .ui-select-dropdown
  269 + {
  270 + box-shadow: 0 -4px 8px rgba(0, 0, 0, 0.25);
  271 +}
268 \ No newline at end of file 272 \ No newline at end of file
src/main/resources/static/assets/bower_components/angular-ui-select/dist/select.min.css
@@ -3,4 +3,230 @@ @@ -3,4 +3,230 @@
3 * http://github.com/angular-ui/ui-select 3 * http://github.com/angular-ui/ui-select
4 * Version: 0.13.2 - 2015-10-09T15:34:24.045Z 4 * Version: 0.13.2 - 2015-10-09T15:34:24.045Z
5 * License: MIT 5 * License: MIT
6 - */.ui-select-highlight{font-weight:700}.ui-select-offscreen{clip:rect(0 0 0 0)!important;width:1px!important;height:1px!important;border:0!important;margin:0!important;padding:0!important;overflow:hidden!important;position:absolute!important;outline:0!important;left:0!important;top:0!important}.ui-select-choices-row:hover{background-color:#f5f5f5}.ng-dirty.ng-invalid>a.select2-choice{border-color:#D44950}.select2-result-single{padding-left:0}.select-locked>.ui-select-match-close,.select2-locked>.select2-search-choice-close{display:none}body>.select2-container.open{z-index:9999}.ui-select-container[theme=select2].direction-up .ui-select-match{border-radius:0 0 4px 4px}.ui-select-container[theme=select2].direction-up .ui-select-dropdown{border-radius:4px 4px 0 0;border-top-width:1px;border-top-style:solid;box-shadow:0 -4px 8px rgba(0,0,0,.25);margin-top:-4px}.ui-select-container[theme=select2].direction-up .ui-select-dropdown .select2-search{margin-top:4px}.ui-select-container[theme=select2].direction-up.select2-dropdown-open .ui-select-match{border-bottom-color:#5897fb}.selectize-input.selectize-focus{border-color:#007FBB!important}.selectize-control>.selectize-dropdown,.selectize-control>.selectize-input>input{width:100%}.ng-dirty.ng-invalid>div.selectize-input{border-color:#D44950}.ui-select-container[theme=selectize].direction-up .ui-select-dropdown{box-shadow:0 -4px 8px rgba(0,0,0,.25);margin-top:-2px}.btn-default-focus{color:#333;background-color:#EBEBEB;border-color:#ADADAD;text-decoration:none;outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.ui-select-bootstrap .ui-select-toggle{position:relative}.ui-select-bootstrap .ui-select-toggle>.caret{position:absolute;height:10px;top:50%;right:10px;margin-top:-2px}.input-group>.ui-select-bootstrap.dropdown{position:static}.input-group>.ui-select-bootstrap>input.ui-select-search.form-control{border-radius:4px 0 0 4px}.input-group>.ui-select-bootstrap>input.ui-select-search.form-control.direction-up{border-radius:4px 0 0 4px!important}.ui-select-bootstrap>.ui-select-match>.btn{text-align:left!important}.ui-select-bootstrap>.ui-select-match>.caret{position:absolute;top:45%;right:15px}.ui-select-bootstrap>.ui-select-choices{width:100%;height:auto;max-height:200px;overflow-x:hidden;margin-top:-1px}body>.ui-select-bootstrap.open{z-index:1000}.ui-select-multiple.ui-select-bootstrap{height:auto;padding:3px 3px 0}.ui-select-multiple.ui-select-bootstrap input.ui-select-search{background-color:transparent!important;border:none;outline:0;height:1.666666em;margin-bottom:3px}.ui-select-multiple.ui-select-bootstrap .ui-select-match .close{font-size:1.6em;line-height:.75}.ui-select-multiple.ui-select-bootstrap .ui-select-match-item{outline:0;margin:0 3px 3px 0}.ui-select-multiple .ui-select-match-item{position:relative}.ui-select-multiple .ui-select-match-item.dropping-before:before{content:"";position:absolute;top:0;right:100%;height:100%;margin-right:2px;border-left:1px solid #428bca}.ui-select-multiple .ui-select-match-item.dropping-after:after{content:"";position:absolute;top:0;left:100%;height:100%;margin-left:2px;border-right:1px solid #428bca}.ui-select-bootstrap .ui-select-choices-row>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.ui-select-bootstrap .ui-select-choices-row>a:focus,.ui-select-bootstrap .ui-select-choices-row>a:hover{text-decoration:none;color:#262626;background-color:#f5f5f5}.ui-select-bootstrap .ui-select-choices-row.active>a{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.ui-select-bootstrap .ui-select-choices-row.active.disabled>a,.ui-select-bootstrap .ui-select-choices-row.disabled>a{color:#777;cursor:not-allowed;background-color:#fff}.ui-select-match.ng-hide-add,.ui-select-search.ng-hide-add{display:none!important}.ui-select-bootstrap.ng-dirty.ng-invalid>button.btn.ui-select-match{border-color:#D44950}.ui-select-container[theme=bootstrap].direction-up .ui-select-dropdown{box-shadow:0 -4px 8px rgba(0,0,0,.25)}  
7 \ No newline at end of file 6 \ No newline at end of file
  7 + */
  8 +.ui-select-highlight {
  9 + font-weight: 700
  10 +}
  11 +
  12 +.ui-select-offscreen {
  13 + clip: rect(0, 0, 0, 0) !important;
  14 + width: 1px !important;
  15 + height: 1px !important;
  16 + border: 0 !important;
  17 + margin: 0 !important;
  18 + padding: 0 !important;
  19 + overflow: hidden !important;
  20 + position: absolute !important;
  21 + outline: 0 !important;
  22 + left: 0 !important;
  23 + top: 0 !important
  24 +}
  25 +
  26 +.ui-select-choices-row:hover {
  27 + background-color: #f5f5f5
  28 +}
  29 +
  30 +.ng-dirty.ng-invalid>a.select2-choice {
  31 + border-color: #D44950
  32 +}
  33 +
  34 +.select2-result-single {
  35 + padding-left: 0
  36 +}
  37 +
  38 +.select-locked>.ui-select-match-close,.select2-locked>.select2-search-choice-close
  39 + {
  40 + display: none
  41 +}
  42 +
  43 +body>.select2-container.open {
  44 + z-index: 9999
  45 +}
  46 +
  47 +.ui-select-container[theme=select2].direction-up .ui-select-match {
  48 + border-radius: 0 0 4px 4px
  49 +}
  50 +
  51 +.ui-select-container[theme=select2].direction-up .ui-select-dropdown {
  52 + border-radius: 4px 4px 0 0;
  53 + border-top-width: 1px;
  54 + border-top-style: solid;
  55 + box-shadow: 0 -4px 8px rgba(0, 0, 0, .25);
  56 + margin-top: -4px
  57 +}
  58 +
  59 +.ui-select-container[theme=select2].direction-up .ui-select-dropdown .select2-search
  60 + {
  61 + margin-top: 4px
  62 +}
  63 +
  64 +.ui-select-container[theme=select2].direction-up.select2-dropdown-open .ui-select-match
  65 + {
  66 + border-bottom-color: #5897fb
  67 +}
  68 +
  69 +.selectize-input.selectize-focus {
  70 + border-color: #007FBB !important
  71 +}
  72 +
  73 +.selectize-control>.selectize-dropdown,.selectize-control>.selectize-input>input
  74 + {
  75 + width: 100%
  76 +}
  77 +
  78 +.ng-dirty.ng-invalid>div.selectize-input {
  79 + border-color: #D44950
  80 +}
  81 +
  82 +.ui-select-container[theme=selectize].direction-up .ui-select-dropdown {
  83 + box-shadow: 0 -4px 8px rgba(0, 0, 0, .25);
  84 + margin-top: -2px
  85 +}
  86 +
  87 +.btn-default-focus {
  88 + color: #333;
  89 + background-color: #EBEBEB;
  90 + border-color: #ADADAD;
  91 + text-decoration: none;
  92 + outline: -webkit-focus-ring-color auto 5px;
  93 + outline-offset: -2px;
  94 + box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 8px
  95 + rgba(102, 175, 233, .6)
  96 +}
  97 +
  98 +.ui-select-bootstrap .ui-select-toggle {
  99 + position: relative
  100 +}
  101 +
  102 +.ui-select-bootstrap .ui-select-toggle>.caret {
  103 + position: absolute;
  104 + height: 10px;
  105 + top: 50%;
  106 + right: 10px;
  107 + margin-top: -2px
  108 +}
  109 +
  110 +.input-group>.ui-select-bootstrap.dropdown {
  111 + position: static
  112 +}
  113 +
  114 +.input-group>.ui-select-bootstrap>input.ui-select-search.form-control {
  115 + border-radius: 4px 0 0 4px
  116 +}
  117 +
  118 +.input-group>.ui-select-bootstrap>input.ui-select-search.form-control.direction-up
  119 + {
  120 + border-radius: 4px 0 0 4px !important
  121 +}
  122 +
  123 +.ui-select-bootstrap>.ui-select-match>.btn {
  124 + text-align: left !important
  125 +}
  126 +
  127 +.ui-select-bootstrap>.ui-select-match>.caret {
  128 + position: absolute;
  129 + top: 45%;
  130 + right: 15px
  131 +}
  132 +
  133 +.ui-select-bootstrap>.ui-select-choices {
  134 + width: 100%;
  135 + height: auto;
  136 + max-height: 200px;
  137 + overflow-x: hidden;
  138 + margin-top: -1px
  139 +}
  140 +
  141 +body>.ui-select-bootstrap.open {
  142 + z-index: 1000
  143 +}
  144 +
  145 +.ui-select-multiple.ui-select-bootstrap {
  146 + height: auto;
  147 + padding: 3px 3px 0
  148 +}
  149 +
  150 +.ui-select-multiple.ui-select-bootstrap input.ui-select-search {
  151 + background-color: transparent !important;
  152 + border: none;
  153 + outline: 0;
  154 + height: 1.666666em;
  155 + margin-bottom: 3px
  156 +}
  157 +
  158 +.ui-select-multiple.ui-select-bootstrap .ui-select-match .close {
  159 + font-size: 1.6em;
  160 + line-height: .75
  161 +}
  162 +
  163 +.ui-select-multiple.ui-select-bootstrap .ui-select-match-item {
  164 + outline: 0;
  165 + margin: 0 3px 3px 0
  166 +}
  167 +
  168 +.ui-select-multiple .ui-select-match-item {
  169 + position: relative
  170 +}
  171 +
  172 +.ui-select-multiple .ui-select-match-item.dropping-before:before {
  173 + content: "";
  174 + position: absolute;
  175 + top: 0;
  176 + right: 100%;
  177 + height: 100%;
  178 + margin-right: 2px;
  179 + border-left: 1px solid #428bca
  180 +}
  181 +
  182 +.ui-select-multiple .ui-select-match-item.dropping-after:after {
  183 + content: "";
  184 + position: absolute;
  185 + top: 0;
  186 + left: 100%;
  187 + height: 100%;
  188 + margin-left: 2px;
  189 + border-right: 1px solid #428bca
  190 +}
  191 +
  192 +.ui-select-bootstrap .ui-select-choices-row>a {
  193 + display: block;
  194 + padding: 3px 20px;
  195 + clear: both;
  196 + font-weight: 400;
  197 + line-height: 1.42857143;
  198 + color: #333;
  199 + white-space: nowrap
  200 +}
  201 +
  202 +.ui-select-bootstrap .ui-select-choices-row>a:focus,.ui-select-bootstrap .ui-select-choices-row>a:hover
  203 + {
  204 + text-decoration: none;
  205 + color: #262626;
  206 + background-color: #f5f5f5
  207 +}
  208 +
  209 +.ui-select-bootstrap .ui-select-choices-row.active>a {
  210 + color: #fff;
  211 + text-decoration: none;
  212 + outline: 0;
  213 + background-color: #428bca
  214 +}
  215 +
  216 +.ui-select-bootstrap .ui-select-choices-row.active.disabled>a,.ui-select-bootstrap .ui-select-choices-row.disabled>a
  217 + {
  218 + color: #777;
  219 + cursor: not-allowed;
  220 + background-color: #fff
  221 +}
  222 +
  223 +.ui-select-match.ng-hide-add,.ui-select-search.ng-hide-add {
  224 + display: none !important
  225 +}
  226 +
  227 +.ui-select-bootstrap.ng-dirty.ng-invalid>button.btn.ui-select-match {
  228 + border-color: #D44950
  229 +}
  230 +
  231 +.ui-select-container[theme=bootstrap].direction-up .ui-select-dropdown {
  232 + box-shadow: 0 -4px 8px rgba(0, 0, 0, .25)
  233 +}
8 \ No newline at end of file 234 \ No newline at end of file
src/main/resources/static/assets/bower_components/angular/angular-csp.css
1 /* Include this file in your html if you are using the CSP mode. */ 1 /* Include this file in your html if you are using the CSP mode. */
2 -  
3 @charset "UTF-8"; 2 @charset "UTF-8";
4 3
5 -[ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak],  
6 -.ng-cloak, .x-ng-cloak,  
7 -.ng-hide:not(.ng-hide-animate) {  
8 - display: none !important; 4 +[ng\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide:not
  5 + (.ng-hide-animate ) {
  6 + display: none !important;
9 } 7 }
10 8
11 ng\:form { 9 ng\:form {
12 - display: block; 10 + display: block;
13 } 11 }
14 12
15 .ng-animate-shim { 13 .ng-animate-shim {
16 - visibility:hidden; 14 + visibility: hidden;
17 } 15 }
18 16
19 .ng-anchor { 17 .ng-anchor {
20 - position:absolute;  
21 -} 18 + position: absolute;
  19 +}
22 \ No newline at end of file 20 \ No newline at end of file
src/main/resources/static/assets/bower_components/handsontable/dist/handsontable.css
@@ -25,1150 +25,1165 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. @@ -25,1150 +25,1165 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25 25
26 */ 26 */
27 .handsontable { 27 .handsontable {
28 - position: relative; 28 + position: relative;
29 } 29 }
30 30
31 -.handsontable .hide{  
32 - display: none; 31 +.handsontable .hide {
  32 + display: none;
33 } 33 }
  34 +
34 .handsontable .relative { 35 .handsontable .relative {
35 - position: relative; 36 + position: relative;
36 } 37 }
37 38
38 .handsontable.htAutoSize { 39 .handsontable.htAutoSize {
39 - visibility: hidden;  
40 - left: -99000px;  
41 - position: absolute;  
42 - top: -99000px; 40 + visibility: hidden;
  41 + left: -99000px;
  42 + position: absolute;
  43 + top: -99000px;
43 } 44 }
44 45
45 .handsontable .wtHider { 46 .handsontable .wtHider {
46 - width: 0; 47 + width: 0;
47 } 48 }
48 49
49 .handsontable .wtSpreader { 50 .handsontable .wtSpreader {
50 - position: relative;  
51 - width: 0; /*must be 0, otherwise blank space appears in scroll demo after scrolling max to the right */  
52 - height: auto; 51 + position: relative;
  52 + width: 0;
  53 + /*must be 0, otherwise blank space appears in scroll demo after scrolling max to the right */
  54 + height: auto;
53 } 55 }
54 56
55 -.handsontable table,  
56 -.handsontable tbody,  
57 -.handsontable thead,  
58 -.handsontable td,  
59 -.handsontable th,  
60 -.handsontable input,  
61 -.handsontable textarea,  
62 -.handsontable div {  
63 - box-sizing: content-box;  
64 - -webkit-box-sizing: content-box;  
65 - -moz-box-sizing: content-box; 57 +.handsontable table,.handsontable tbody,.handsontable thead,.handsontable td,.handsontable th,.handsontable input,.handsontable textarea,.handsontable div
  58 + {
  59 + box-sizing: content-box;
  60 + -webkit-box-sizing: content-box;
  61 + -moz-box-sizing: content-box;
66 } 62 }
67 63
68 -.handsontable input,  
69 -.handsontable textarea {  
70 - min-height: initial; 64 +.handsontable input,.handsontable textarea {
  65 + min-height: initial;
71 } 66 }
72 67
73 .handsontable table.htCore { 68 .handsontable table.htCore {
74 - border-collapse: separate;  
75 - /*it must be separate, otherwise there are offset miscalculations in WebKit: http://stackoverflow.com/questions/2655987/border-collapse-differences-in-ff-and-webkit*/  
76 - /*this actually only changes appearance of user selection - does not make text unselectable 69 + border-collapse: separate;
  70 + /*it must be separate, otherwise there are offset miscalculations in WebKit: http://stackoverflow.com/questions/2655987/border-collapse-differences-in-ff-and-webkit*/
  71 + /*this actually only changes appearance of user selection - does not make text unselectable
77 -webkit-user-select: none; 72 -webkit-user-select: none;
78 -khtml-user-select: none; 73 -khtml-user-select: none;
79 -moz-user-select: none; 74 -moz-user-select: none;
80 -o-user-select: none; 75 -o-user-select: none;
81 -ms-user-select: none; 76 -ms-user-select: none;
82 /*user-select: none; /*no browser supports unprefixed version*/ 77 /*user-select: none; /*no browser supports unprefixed version*/
83 - border-spacing: 0;  
84 - margin: 0;  
85 - border-width: 0;  
86 - table-layout: fixed;  
87 - width: 0;  
88 - outline-width: 0;  
89 - /* reset bootstrap table style. for more info see: https://github.com/handsontable/handsontable/issues/224 */  
90 - max-width: none;  
91 - max-height: none; 78 + border-spacing: 0;
  79 + margin: 0;
  80 + border-width: 0;
  81 + table-layout: fixed;
  82 + width: 0;
  83 + outline-width: 0;
  84 + /* reset bootstrap table style. for more info see: https://github.com/handsontable/handsontable/issues/224 */
  85 + max-width: none;
  86 + max-height: none;
92 } 87 }
93 88
94 .handsontable col { 89 .handsontable col {
95 - width: 50px; 90 + width: 50px;
96 } 91 }
97 92
98 .handsontable col.rowHeader { 93 .handsontable col.rowHeader {
99 - width: 50px;  
100 -}  
101 -  
102 -.handsontable th,  
103 -.handsontable td {  
104 - border-top-width: 0;  
105 - border-left-width: 0;  
106 - border-right: 1px solid #CCC;  
107 - border-bottom: 1px solid #CCC;  
108 - height: 22px;  
109 - empty-cells: show;  
110 - line-height: 21px;  
111 - padding: 0 4px 0 4px;  
112 - /* top, bottom padding different than 0 is handled poorly by FF with HTML5 doctype */  
113 - background-color: #FFF;  
114 - vertical-align: top;  
115 - overflow: hidden;  
116 - outline-width: 0;  
117 - white-space: pre-line;  
118 - /* preserve new line character in cell */ 94 + width: 50px;
  95 +}
  96 +
  97 +.handsontable th,.handsontable td {
  98 + border-top-width: 0;
  99 + border-left-width: 0;
  100 + border-right: 1px solid #CCC;
  101 + border-bottom: 1px solid #CCC;
  102 + height: 22px;
  103 + empty-cells: show;
  104 + line-height: 21px;
  105 + padding: 0 4px 0 4px;
  106 + /* top, bottom padding different than 0 is handled poorly by FF with HTML5 doctype */
  107 + background-color: #FFF;
  108 + vertical-align: top;
  109 + overflow: hidden;
  110 + outline-width: 0;
  111 + white-space: pre-line;
  112 + /* preserve new line character in cell */
119 } 113 }
120 114
121 .handsontable td.htInvalid { 115 .handsontable td.htInvalid {
122 - background-color: #ff4c42 !important; /*gives priority over td.area selection background*/ 116 + background-color: #ff4c42 !important;
  117 + /*gives priority over td.area selection background*/
123 } 118 }
124 119
125 .handsontable td.htNoWrap { 120 .handsontable td.htNoWrap {
126 - white-space: nowrap; 121 + white-space: nowrap;
127 } 122 }
128 123
129 -.handsontable th:last-child {  
130 - /*Foundation framework fix*/  
131 - border-right: 1px solid #CCC;  
132 - border-bottom: 1px solid #CCC; 124 +.handsontable th:last-child { /*Foundation framework fix*/
  125 + border-right: 1px solid #CCC;
  126 + border-bottom: 1px solid #CCC;
133 } 127 }
134 128
135 -.handsontable tr:first-child th.htNoFrame,  
136 -.handsontable th:first-child.htNoFrame,  
137 -.handsontable th.htNoFrame {  
138 - border-left-width: 0;  
139 - background-color: white;  
140 - border-color: #FFF; 129 +.handsontable tr:first-child th.htNoFrame,.handsontable th:first-child.htNoFrame,.handsontable th.htNoFrame
  130 + {
  131 + border-left-width: 0;
  132 + background-color: white;
  133 + border-color: #FFF;
141 } 134 }
142 135
143 -.handsontable th:first-child,  
144 -.handsontable td:first-of-type,  
145 -.handsontable .htNoFrame + th,  
146 -.handsontable .htNoFrame + td {  
147 - border-left: 1px solid #CCC; 136 +.handsontable th:first-child,.handsontable td:first-of-type,.handsontable .htNoFrame+th,.handsontable .htNoFrame+td
  137 + {
  138 + border-left: 1px solid #CCC;
148 } 139 }
149 140
150 .handsontable.htRowHeaders thead tr th:nth-child(2) { 141 .handsontable.htRowHeaders thead tr th:nth-child(2) {
151 - border-left: 1px solid #CCC; 142 + border-left: 1px solid #CCC;
152 } 143 }
153 144
154 -.handsontable tr:first-child th,  
155 -.handsontable tr:first-child td {  
156 - border-top: 1px solid #CCC; 145 +.handsontable tr:first-child th,.handsontable tr:first-child td {
  146 + border-top: 1px solid #CCC;
157 } 147 }
158 148
159 -.ht_master:not(.innerBorderLeft) ~ .handsontable tbody tr th,  
160 -.ht_master:not(.innerBorderLeft) ~ .handsontable:not(.ht_clone_top) thead tr th:first-child  
161 -{  
162 - border-right-width: 0; 149 +.ht_master:not (.innerBorderLeft ) ~ .handsontable tbody tr th,.ht_master:not
  150 + (.innerBorderLeft ) ~ .handsontable:not (.ht_clone_top ) thead tr th:first-child
  151 + {
  152 + border-right-width: 0;
163 } 153 }
164 154
165 -.ht_master:not(.innerBorderTop) thead tr:last-child th,  
166 -.ht_master:not(.innerBorderTop) ~ .handsontable thead tr:last-child th,  
167 -.ht_master:not(.innerBorderTop) thead tr.lastChild th,  
168 -.ht_master:not(.innerBorderTop) ~ .handsontable thead tr.lastChild th {  
169 - border-bottom-width: 0; 155 +.ht_master:not (.innerBorderTop ) thead tr:last-child th,.ht_master:not
  156 + (.innerBorderTop ) ~ .handsontable thead tr:last-child th,.ht_master:not
  157 + (.innerBorderTop ) thead tr.lastChild th,.ht_master:not (.innerBorderTop
  158 + ) ~ .handsontable thead tr.lastChild th {
  159 + border-bottom-width: 0;
170 } 160 }
171 161
172 .handsontable th { 162 .handsontable th {
173 - background-color: #EEE;  
174 - color: #222;  
175 - text-align: center;  
176 - font-weight: normal;  
177 - white-space: nowrap; 163 + background-color: #EEE;
  164 + color: #222;
  165 + text-align: center;
  166 + font-weight: normal;
  167 + white-space: nowrap;
178 } 168 }
179 169
180 .handsontable thead th { 170 .handsontable thead th {
181 - padding: 0; 171 + padding: 0;
182 } 172 }
183 173
184 .handsontable th.active { 174 .handsontable th.active {
185 - background-color: #CCC; 175 + background-color: #CCC;
186 } 176 }
187 177
188 .handsontable thead th .relative { 178 .handsontable thead th .relative {
189 - padding: 2px 4px; 179 + padding: 2px 4px;
190 } 180 }
191 181
192 /* plugins */ 182 /* plugins */
193 -  
194 .handsontable .manualColumnMover { 183 .handsontable .manualColumnMover {
195 - position: fixed;  
196 - left: 0;  
197 - top: 0;  
198 - background-color: transparent;  
199 - width: 5px;  
200 - height: 25px;  
201 - z-index: 999;  
202 - cursor: move; 184 + position: fixed;
  185 + left: 0;
  186 + top: 0;
  187 + background-color: transparent;
  188 + width: 5px;
  189 + height: 25px;
  190 + z-index: 999;
  191 + cursor: move;
203 } 192 }
204 193
205 .handsontable .manualRowMover { 194 .handsontable .manualRowMover {
206 - position: fixed;  
207 - left: -4px;  
208 - top: 0;  
209 - background-color: transparent;  
210 - height: 5px;  
211 - width: 50px;  
212 - z-index: 999;  
213 - cursor: move; 195 + position: fixed;
  196 + left: -4px;
  197 + top: 0;
  198 + background-color: transparent;
  199 + height: 5px;
  200 + width: 50px;
  201 + z-index: 999;
  202 + cursor: move;
214 } 203 }
215 204
216 -.handsontable .manualColumnMoverGuide,  
217 -.handsontable .manualRowMoverGuide {  
218 - position: fixed;  
219 - left: 0;  
220 - top: 0;  
221 - background-color: #CCC;  
222 - width: 25px;  
223 - height: 25px;  
224 - opacity: 0.7;  
225 - display: none; 205 +.handsontable .manualColumnMoverGuide,.handsontable .manualRowMoverGuide
  206 + {
  207 + position: fixed;
  208 + left: 0;
  209 + top: 0;
  210 + background-color: #CCC;
  211 + width: 25px;
  212 + height: 25px;
  213 + opacity: 0.7;
  214 + display: none;
226 } 215 }
227 216
228 -.handsontable .manualColumnMoverGuide.active,  
229 -.handsontable .manualRowMoverGuide.active {  
230 - display: block; 217 +.handsontable .manualColumnMoverGuide.active,.handsontable .manualRowMoverGuide.active
  218 + {
  219 + display: block;
231 } 220 }
232 221
233 -.handsontable .manualColumnMover:hover,  
234 -.handsontable .manualColumnMover.active,  
235 -.handsontable .manualRowMover:hover,  
236 -.handsontable .manualRowMover.active{  
237 - background-color: #88F; 222 +.handsontable .manualColumnMover:hover,.handsontable .manualColumnMover.active,.handsontable .manualRowMover:hover,.handsontable .manualRowMover.active
  223 + {
  224 + background-color: #88F;
238 } 225 }
239 226
240 /* row + column resizer*/ 227 /* row + column resizer*/
241 -  
242 .handsontable .manualColumnResizer { 228 .handsontable .manualColumnResizer {
243 - position: fixed;  
244 - top: 0;  
245 - cursor: col-resize;  
246 - z-index: 110;  
247 - width: 5px;  
248 - height: 25px; 229 + position: fixed;
  230 + top: 0;
  231 + cursor: col-resize;
  232 + z-index: 110;
  233 + width: 5px;
  234 + height: 25px;
249 } 235 }
250 236
251 .handsontable .manualRowResizer { 237 .handsontable .manualRowResizer {
252 - position: fixed;  
253 - left: 0;  
254 - cursor: row-resize;  
255 - z-index: 110;  
256 - height: 5px;  
257 - width: 50px; 238 + position: fixed;
  239 + left: 0;
  240 + cursor: row-resize;
  241 + z-index: 110;
  242 + height: 5px;
  243 + width: 50px;
258 } 244 }
259 245
260 -.handsontable .manualColumnResizer:hover,  
261 -.handsontable .manualColumnResizer.active,  
262 -.handsontable .manualRowResizer:hover,  
263 -.handsontable .manualRowResizer.active {  
264 - background-color: #AAB; 246 +.handsontable .manualColumnResizer:hover,.handsontable .manualColumnResizer.active,.handsontable .manualRowResizer:hover,.handsontable .manualRowResizer.active
  247 + {
  248 + background-color: #AAB;
265 } 249 }
266 250
267 .handsontable .manualColumnResizerGuide { 251 .handsontable .manualColumnResizerGuide {
268 - position: fixed;  
269 - right: 0;  
270 - top: 0;  
271 - background-color: #AAB;  
272 - display: none;  
273 - width: 0;  
274 - border-right: 1px dashed #777;  
275 - margin-left: 5px; 252 + position: fixed;
  253 + right: 0;
  254 + top: 0;
  255 + background-color: #AAB;
  256 + display: none;
  257 + width: 0;
  258 + border-right: 1px dashed #777;
  259 + margin-left: 5px;
276 } 260 }
277 261
278 .handsontable .manualRowResizerGuide { 262 .handsontable .manualRowResizerGuide {
279 - position: fixed;  
280 - left: 0;  
281 - bottom: 0;  
282 - background-color: #AAB;  
283 - display: none;  
284 - height: 0;  
285 - border-bottom: 1px dashed #777;  
286 - margin-top: 5px; 263 + position: fixed;
  264 + left: 0;
  265 + bottom: 0;
  266 + background-color: #AAB;
  267 + display: none;
  268 + height: 0;
  269 + border-bottom: 1px dashed #777;
  270 + margin-top: 5px;
287 } 271 }
288 272
289 -.handsontable .manualColumnResizerGuide.active,  
290 -.handsontable .manualRowResizerGuide.active {  
291 - display: block; 273 +.handsontable .manualColumnResizerGuide.active,.handsontable .manualRowResizerGuide.active
  274 + {
  275 + display: block;
292 } 276 }
293 277
294 .handsontable .columnSorting { 278 .handsontable .columnSorting {
295 - position: relative; 279 + position: relative;
296 } 280 }
297 281
298 .handsontable .columnSorting:hover { 282 .handsontable .columnSorting:hover {
299 - text-decoration: underline;  
300 - cursor: pointer; 283 + text-decoration: underline;
  284 + cursor: pointer;
301 } 285 }
302 286
303 .handsontable .columnSorting.ascending::after { 287 .handsontable .columnSorting.ascending::after {
304 - content: '\25B2';  
305 - color: #5f5f5f;  
306 - position: absolute;  
307 - right: -15px; 288 + content: '\25B2';
  289 + color: #5f5f5f;
  290 + position: absolute;
  291 + right: -15px;
308 } 292 }
309 293
310 .handsontable .columnSorting.descending::after { 294 .handsontable .columnSorting.descending::after {
311 - content: '\25BC';  
312 - color: #5f5f5f;  
313 - position: absolute;  
314 - right: -15px; 295 + content: '\25BC';
  296 + color: #5f5f5f;
  297 + position: absolute;
  298 + right: -15px;
315 } 299 }
316 300
317 .handsontable th.beforeHiddenColumn { 301 .handsontable th.beforeHiddenColumn {
318 - position: relative; 302 + position: relative;
319 } 303 }
320 304
321 -.handsontable th.beforeHiddenColumn::after,  
322 -.handsontable th.afterHiddenColumn::before {  
323 - content: '\25C0';  
324 - color: #bbb;  
325 - position: absolute;  
326 - right: 1px;  
327 - top: 2px;  
328 - font-size: 5pt; 305 +.handsontable th.beforeHiddenColumn::after,.handsontable th.afterHiddenColumn::before
  306 + {
  307 + content: '\25C0';
  308 + color: #bbb;
  309 + position: absolute;
  310 + right: 1px;
  311 + top: 2px;
  312 + font-size: 5pt;
329 } 313 }
330 314
331 .handsontable th.afterHiddenColumn { 315 .handsontable th.afterHiddenColumn {
332 - position: relative; 316 + position: relative;
333 } 317 }
334 318
335 .handsontable th.afterHiddenColumn::before { 319 .handsontable th.afterHiddenColumn::before {
336 - left: 1px;  
337 - top: 2px;  
338 - right: auto;  
339 - content: '\25B6'; 320 + left: 1px;
  321 + top: 2px;
  322 + right: auto;
  323 + content: '\25B6';
340 } 324 }
341 325
342 .handsontable td.afterHiddenColumn.firstVisible { 326 .handsontable td.afterHiddenColumn.firstVisible {
343 - border-left: 1px solid #CCC; 327 + border-left: 1px solid #CCC;
344 } 328 }
345 329
346 .handsontable thead th.hiddenHeader { 330 .handsontable thead th.hiddenHeader {
347 - display: none; 331 + display: none;
348 } 332 }
349 333
350 /* border line */ 334 /* border line */
351 -  
352 .handsontable .wtBorder { 335 .handsontable .wtBorder {
353 - position: absolute;  
354 - font-size: 0; 336 + position: absolute;
  337 + font-size: 0;
355 } 338 }
356 -.handsontable .wtBorder.hidden{  
357 - display:none !important; 339 +
  340 +.handsontable .wtBorder.hidden {
  341 + display: none !important;
358 } 342 }
359 343
360 .handsontable td.area { 344 .handsontable td.area {
361 - background: -moz-linear-gradient(top, rgba(181,209,255,0.34) 0%, rgba(181,209,255,0.34) 100%); /* FF3.6+ */  
362 - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(181,209,255,0.34)), color-stop(100%,rgba(181,209,255,0.34))); /* Chrome,Safari4+ */  
363 - background: -webkit-linear-gradient(top, rgba(181,209,255,0.34) 0%,rgba(181,209,255,0.34) 100%); /* Chrome10+,Safari5.1+ */  
364 - background: -o-linear-gradient(top, rgba(181,209,255,0.34) 0%,rgba(181,209,255,0.34) 100%); /* Opera 11.10+ */  
365 - background: -ms-linear-gradient(top, rgba(181,209,255,0.34) 0%,rgba(181,209,255,0.34) 100%); /* IE10+ */  
366 - background: linear-gradient(to bottom, rgba(181,209,255,0.34) 0%,rgba(181,209,255,0.34) 100%); /* W3C */  
367 - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#57b5d1ff', endColorstr='#57b5d1ff',GradientType=0 ); /* IE6-9 */  
368 - background-color: #fff; 345 + background: -moz-linear-gradient(top, rgba(181, 209, 255, 0.34) 0%,
  346 + rgba(181, 209, 255, 0.34) 100% ); /* FF3.6+ */
  347 + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(181,
  348 + 209, 255, 0.34) ), color-stop(100%, rgba(181, 209, 255, 0.34) ) );
  349 + /* Chrome,Safari4+ */
  350 + background: -webkit-linear-gradient(top, rgba(181, 209, 255, 0.34) 0%,
  351 + rgba(181, 209, 255, 0.34) 100% ); /* Chrome10+,Safari5.1+ */
  352 + background: -o-linear-gradient(top, rgba(181, 209, 255, 0.34) 0%,
  353 + rgba(181, 209, 255, 0.34) 100% ); /* Opera 11.10+ */
  354 + background: -ms-linear-gradient(top, rgba(181, 209, 255, 0.34) 0%,
  355 + rgba(181, 209, 255, 0.34) 100% ); /* IE10+ */
  356 + background: linear-gradient(to bottom, rgba(181, 209, 255, 0.34) 0%,
  357 + rgba(181, 209, 255, 0.34) 100% ); /* W3C */
  358 + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#57b5d1ff',
  359 + endColorstr='#57b5d1ff', GradientType=0 ); /* IE6-9 */
  360 + background-color: #fff;
369 } 361 }
370 362
371 /* fill handle */ 363 /* fill handle */
372 -  
373 .handsontable .wtBorder.corner { 364 .handsontable .wtBorder.corner {
374 - font-size: 0;  
375 - cursor: crosshair; 365 + font-size: 0;
  366 + cursor: crosshair;
376 } 367 }
377 368
378 .handsontable .htBorder.htFillBorder { 369 .handsontable .htBorder.htFillBorder {
379 - background: red;  
380 - width: 1px;  
381 - height: 1px; 370 + background: red;
  371 + width: 1px;
  372 + height: 1px;
382 } 373 }
383 374
384 .handsontableInput { 375 .handsontableInput {
385 - border:none;  
386 - outline-width: 0;  
387 - margin: 0 ;  
388 - padding: 1px 5px 0 5px;  
389 - font-family: inherit;  
390 - line-height: 21px;  
391 - font-size: inherit;  
392 - box-shadow: 0 0 0 2px #5292F7 inset;  
393 - resize: none;  
394 - /*below are needed to overwrite stuff added by jQuery UI Bootstrap theme*/  
395 - display: inline-block;  
396 - color: #000;  
397 - border-radius: 0;  
398 - background-color: #FFF;  
399 - /*overwrite styles potentionally made by a framework*/ 376 + border: none;
  377 + outline-width: 0;
  378 + margin: 0;
  379 + padding: 1px 5px 0 5px;
  380 + font-family: inherit;
  381 + line-height: 21px;
  382 + font-size: inherit;
  383 + box-shadow: 0 0 0 2px #5292F7 inset;
  384 + resize: none;
  385 + /*below are needed to overwrite stuff added by jQuery UI Bootstrap theme*/
  386 + display: inline-block;
  387 + color: #000;
  388 + border-radius: 0;
  389 + background-color: #FFF;
  390 + /*overwrite styles potentionally made by a framework*/
400 } 391 }
401 392
402 .handsontableInputHolder { 393 .handsontableInputHolder {
403 - position: absolute;  
404 - top: 0;  
405 - left: 0;  
406 - z-index: 100; 394 + position: absolute;
  395 + top: 0;
  396 + left: 0;
  397 + z-index: 100;
407 } 398 }
408 399
409 .htSelectEditor { 400 .htSelectEditor {
410 - -webkit-appearance: menulist-button !important;  
411 - position: absolute;  
412 - width: auto; 401 + -webkit-appearance: menulist-button !important;
  402 + position: absolute;
  403 + width: auto;
413 } 404 }
414 405
415 /* 406 /*
416 TextRenderer readOnly cell 407 TextRenderer readOnly cell
417 */ 408 */
418 -  
419 .handsontable .htDimmed { 409 .handsontable .htDimmed {
420 - color: #777; 410 + color: #777;
421 } 411 }
422 412
423 .handsontable .htSubmenu { 413 .handsontable .htSubmenu {
424 - position: relative; 414 + position: relative;
425 } 415 }
426 416
427 -.handsontable .htSubmenu :after{  
428 - content: '▶';  
429 - color: #777;  
430 - position: absolute;  
431 - right: 5px; 417 +.handsontable .htSubmenu :after {
  418 + content: '▶';
  419 + color: #777;
  420 + position: absolute;
  421 + right: 5px;
432 } 422 }
433 423
434 -  
435 /* 424 /*
436 TextRenderer horizontal alignment 425 TextRenderer horizontal alignment
437 */ 426 */
438 -.handsontable .htLeft{  
439 - text-align: left; 427 +.handsontable .htLeft {
  428 + text-align: left;
440 } 429 }
441 -.handsontable .htCenter{  
442 - text-align: center; 430 +
  431 +.handsontable .htCenter {
  432 + text-align: center;
443 } 433 }
444 -.handsontable .htRight{  
445 - text-align: right; 434 +
  435 +.handsontable .htRight {
  436 + text-align: right;
446 } 437 }
447 -.handsontable .htJustify{  
448 - text-align: justify; 438 +
  439 +.handsontable .htJustify {
  440 + text-align: justify;
449 } 441 }
450 /* 442 /*
451 TextRenderer vertical alignment 443 TextRenderer vertical alignment
452 */ 444 */
453 -.handsontable .htTop{  
454 - vertical-align: top; 445 +.handsontable .htTop {
  446 + vertical-align: top;
455 } 447 }
456 -.handsontable .htMiddle{  
457 - vertical-align: middle; 448 +
  449 +.handsontable .htMiddle {
  450 + vertical-align: middle;
458 } 451 }
459 -.handsontable .htBottom{  
460 - vertical-align: bottom; 452 +
  453 +.handsontable .htBottom {
  454 + vertical-align: bottom;
461 } 455 }
462 456
463 /* 457 /*
464 TextRenderer placeholder value 458 TextRenderer placeholder value
465 */ 459 */
466 -  
467 .handsontable .htPlaceholder { 460 .handsontable .htPlaceholder {
468 - color: #999; 461 + color: #999;
469 } 462 }
470 463
471 /* 464 /*
472 AutocompleteRenderer down arrow 465 AutocompleteRenderer down arrow
473 */ 466 */
474 -  
475 .handsontable .htAutocompleteArrow { 467 .handsontable .htAutocompleteArrow {
476 - float: right;  
477 - font-size: 10px;  
478 - color: #EEE;  
479 - cursor: default;  
480 - width: 16px;  
481 - text-align: center; 468 + float: right;
  469 + font-size: 10px;
  470 + color: #EEE;
  471 + cursor: default;
  472 + width: 16px;
  473 + text-align: center;
482 } 474 }
483 475
484 .handsontable td .htAutocompleteArrow:hover { 476 .handsontable td .htAutocompleteArrow:hover {
485 - color: #777; 477 + color: #777;
486 } 478 }
487 479
488 .handsontable td.area .htAutocompleteArrow { 480 .handsontable td.area .htAutocompleteArrow {
489 - color: #d3d3d3; 481 + color: #d3d3d3;
490 } 482 }
491 483
492 /* 484 /*
493 CheckboxRenderer 485 CheckboxRenderer
494 */ 486 */
495 -  
496 .handsontable .htCheckboxRendererInput.noValue { 487 .handsontable .htCheckboxRendererInput.noValue {
497 - opacity: 0.5; 488 + opacity: 0.5;
498 } 489 }
  490 +
499 .handsontable .htCheckboxRendererLabel { 491 .handsontable .htCheckboxRendererLabel {
500 - cursor: pointer;  
501 - display: inline-block;  
502 - width: 100%; 492 + cursor: pointer;
  493 + display: inline-block;
  494 + width: 100%;
503 } 495 }
504 496
505 /* 497 /*
506 NumericRenderer 498 NumericRenderer
507 */ 499 */
508 -  
509 .handsontable .htNumeric { 500 .handsontable .htNumeric {
510 - text-align: right; 501 + text-align: right;
511 } 502 }
512 503
513 /* 504 /*
514 Comment For Cell 505 Comment For Cell
515 */ 506 */
516 -.htCommentCell{  
517 - position: relative;  
518 -}  
519 -.htCommentCell:after{  
520 - content: '';  
521 - position: absolute;  
522 - top: 0;  
523 - right: 0;  
524 - border-left: 6px solid transparent;  
525 - border-top: 6px solid red;  
526 -}  
527 -  
528 -@-webkit-keyframes opacity-hide {  
529 - from {  
530 - opacity: 1;  
531 - }  
532 - to {  
533 - opacity: 0;  
534 - /*display: none;*/  
535 - }  
536 -}  
537 -@keyframes opacity-hide {  
538 - from {  
539 - /*display: block;*/  
540 - opacity: 1;  
541 - }  
542 - to {  
543 - opacity: 0;  
544 - /*display: none;*/  
545 - }  
546 -}  
547 -  
548 -@-webkit-keyframes opacity-show {  
549 - from {  
550 - opacity: 0;  
551 - /*display: none;*/  
552 - }  
553 - to {  
554 - opacity: 1;  
555 - /*display: block;*/  
556 - }  
557 -}  
558 -@keyframes opacity-show {  
559 - from {  
560 - opacity: 0;  
561 - /*display: none;*/  
562 - }  
563 - to {  
564 - opacity: 1;  
565 - /*display: block;*/  
566 - } 507 +.htCommentCell {
  508 + position: relative;
  509 +}
  510 +
  511 +.htCommentCell:after {
  512 + content: '';
  513 + position: absolute;
  514 + top: 0;
  515 + right: 0;
  516 + border-left: 6px solid transparent;
  517 + border-top: 6px solid red;
  518 +}
  519 +
  520 +@
  521 +-webkit-keyframes opacity-hide {from { opacity:1;
  522 +
  523 +}
  524 +
  525 +to {
  526 + opacity: 0;
  527 + /*display: none;*/
  528 +}
  529 +
  530 +}
  531 +@
  532 +keyframes opacity-hide {from {
  533 + /*display: block;*/ opacity:1;
  534 +
  535 +}
  536 +
  537 +to {
  538 + opacity: 0;
  539 + /*display: none;*/
  540 +}
  541 +
  542 +}
  543 +@
  544 +-webkit-keyframes opacity-show {from { opacity:0;
  545 + /*display: none;*/
  546 +
  547 +}
  548 +
  549 +to {
  550 + opacity: 1;
  551 + /*display: block;*/
  552 +}
  553 +
  554 +}
  555 +@
  556 +keyframes opacity-show {from { opacity:0;
  557 + /*display: none;*/
  558 +
  559 +}
  560 +
  561 +to {
  562 + opacity: 1;
  563 + /*display: block;*/
  564 +}
  565 +
567 } 566 }
568 567
569 /** 568 /**
570 * Handsontable in Handsontable 569 * Handsontable in Handsontable
571 */ 570 */
572 -  
573 .handsontable .handsontable.ht_clone_top .wtHider { 571 .handsontable .handsontable.ht_clone_top .wtHider {
574 - padding: 0 0 5px 0; 572 + padding: 0 0 5px 0;
575 } 573 }
576 574
577 /* removing shadows, TODO: remove the commented code and this comment */ 575 /* removing shadows, TODO: remove the commented code and this comment */
578 /*.handsontable .handsontable:not(.ht_master) table {*/ 576 /*.handsontable .handsontable:not(.ht_master) table {*/
579 - /*-webkit-box-shadow: 1px 2px 5px rgba(0, 0, 0, 0.4);*/  
580 - /*box-shadow: 1px 2px 5px rgba(0, 0, 0, 0.4);*/ 577 +/*-webkit-box-shadow: 1px 2px 5px rgba(0, 0, 0, 0.4);*/
  578 +/*box-shadow: 1px 2px 5px rgba(0, 0, 0, 0.4);*/
581 /*}*/ 579 /*}*/
582 580
583 /** 581 /**
584 * Autocomplete Editor 582 * Autocomplete Editor
585 */ 583 */
586 .handsontable .autocompleteEditor.handsontable { 584 .handsontable .autocompleteEditor.handsontable {
587 - padding-right: 17px; 585 + padding-right: 17px;
588 } 586 }
  587 +
589 .handsontable .autocompleteEditor.handsontable.htMacScroll { 588 .handsontable .autocompleteEditor.handsontable.htMacScroll {
590 - padding-right: 15px; 589 + padding-right: 15px;
591 } 590 }
592 591
593 -  
594 /** 592 /**
595 * Handsontable listbox theme 593 * Handsontable listbox theme
596 */ 594 */
597 -  
598 .handsontable.listbox { 595 .handsontable.listbox {
599 - margin: 0; 596 + margin: 0;
600 } 597 }
601 598
602 .handsontable.listbox .ht_master table { 599 .handsontable.listbox .ht_master table {
603 - border: 1px solid #ccc;  
604 - border-collapse: separate;  
605 - background: white; 600 + border: 1px solid #ccc;
  601 + border-collapse: separate;
  602 + background: white;
606 } 603 }
607 604
608 -.handsontable.listbox th,  
609 -.handsontable.listbox tr:first-child th,  
610 -.handsontable.listbox tr:last-child th,  
611 -.handsontable.listbox tr:first-child td,  
612 -.handsontable.listbox td {  
613 - border-color: transparent; 605 +.handsontable.listbox th,.handsontable.listbox tr:first-child th,.handsontable.listbox tr:last-child th,.handsontable.listbox tr:first-child td,.handsontable.listbox td
  606 + {
  607 + border-color: transparent;
614 } 608 }
615 609
616 -.handsontable.listbox th,  
617 -.handsontable.listbox td {  
618 - white-space: nowrap;  
619 - text-overflow: ellipsis; 610 +.handsontable.listbox th,.handsontable.listbox td {
  611 + white-space: nowrap;
  612 + text-overflow: ellipsis;
620 } 613 }
621 614
622 .handsontable.listbox td.htDimmed { 615 .handsontable.listbox td.htDimmed {
623 - cursor: default;  
624 - color: inherit;  
625 - font-style: inherit; 616 + cursor: default;
  617 + color: inherit;
  618 + font-style: inherit;
626 } 619 }
627 620
628 .handsontable.listbox .wtBorder { 621 .handsontable.listbox .wtBorder {
629 - visibility: hidden; 622 + visibility: hidden;
630 } 623 }
631 624
632 -.handsontable.listbox tr td.current,  
633 -.handsontable.listbox tr:hover td {  
634 - background: #eee; 625 +.handsontable.listbox tr td.current,.handsontable.listbox tr:hover td {
  626 + background: #eee;
635 } 627 }
636 628
637 .ht_clone_top { 629 .ht_clone_top {
638 - z-index: 101; 630 + z-index: 101;
639 } 631 }
640 632
641 .ht_clone_left { 633 .ht_clone_left {
642 - z-index: 102; 634 + z-index: 102;
643 } 635 }
644 636
645 -.ht_clone_top_left_corner,  
646 -.ht_clone_bottom_left_corner {  
647 - z-index: 103; 637 +.ht_clone_top_left_corner,.ht_clone_bottom_left_corner {
  638 + z-index: 103;
648 } 639 }
649 640
650 .ht_clone_debug { 641 .ht_clone_debug {
651 - z-index: 103; 642 + z-index: 103;
652 } 643 }
653 644
654 .handsontable td.htSearchResult { 645 .handsontable td.htSearchResult {
655 - background: #fcedd9;  
656 - color: #583707; 646 + background: #fcedd9;
  647 + color: #583707;
657 } 648 }
658 649
659 /* 650 /*
660 Cell borders 651 Cell borders
661 */ 652 */
662 -.htBordered{  
663 - /*box-sizing: border-box !important;*/  
664 - border-width: 1px; 653 +.htBordered { /*box-sizing: border-box !important;*/
  654 + border-width: 1px;
665 } 655 }
  656 +
666 .htBordered.htTopBorderSolid { 657 .htBordered.htTopBorderSolid {
667 - border-top-style: solid;  
668 - border-top-color: #000; 658 + border-top-style: solid;
  659 + border-top-color: #000;
669 } 660 }
  661 +
670 .htBordered.htRightBorderSolid { 662 .htBordered.htRightBorderSolid {
671 - border-right-style: solid;  
672 - border-right-color: #000; 663 + border-right-style: solid;
  664 + border-right-color: #000;
673 } 665 }
  666 +
674 .htBordered.htBottomBorderSolid { 667 .htBordered.htBottomBorderSolid {
675 - border-bottom-style: solid;  
676 - border-bottom-color: #000; 668 + border-bottom-style: solid;
  669 + border-bottom-color: #000;
677 } 670 }
  671 +
678 .htBordered.htLeftBorderSolid { 672 .htBordered.htLeftBorderSolid {
679 - border-left-style: solid;  
680 - border-left-color: #000; 673 + border-left-style: solid;
  674 + border-left-color: #000;
681 } 675 }
682 676
683 -.htCommentTextArea{  
684 - -moz-box-shadow: 1px 1px 2px #bbb;  
685 - -webkit-box-shadow: 1px 1px 2px #bbb;  
686 - background-color: #FFFACD;  
687 - border: 1px solid #999;  
688 - box-shadow: 1px 1px 2px #bbb;  
689 - font-family: 'Arial'; 677 +.htCommentTextArea {
  678 + -moz-box-shadow: 1px 1px 2px #bbb;
  679 + -webkit-box-shadow: 1px 1px 2px #bbb;
  680 + background-color: #FFFACD;
  681 + border: 1px solid #999;
  682 + box-shadow: 1px 1px 2px #bbb;
  683 + font-family: 'Arial';
690 } 684 }
691 685
692 .handsontable tbody tr th:nth-last-child(2) { 686 .handsontable tbody tr th:nth-last-child(2) {
693 - border-right: 1px solid #CCC; 687 + border-right: 1px solid #CCC;
694 } 688 }
695 689
696 .handsontable thead tr:nth-last-child(2) th.htGroupIndicatorContainer { 690 .handsontable thead tr:nth-last-child(2) th.htGroupIndicatorContainer {
697 - border-bottom: 1px solid #CCC;  
698 - padding-bottom: 5px; 691 + border-bottom: 1px solid #CCC;
  692 + padding-bottom: 5px;
699 } 693 }
700 694
701 -  
702 .ht_clone_top_left_corner thead tr th:nth-last-child(2) { 695 .ht_clone_top_left_corner thead tr th:nth-last-child(2) {
703 - border-right: 1px solid #CCC; 696 + border-right: 1px solid #CCC;
704 } 697 }
705 698
706 .htCollapseButton { 699 .htCollapseButton {
707 - width: 10px;  
708 - height: 10px;  
709 - line-height: 10px;  
710 - text-align: center;  
711 - border-radius: 5px;  
712 - border: 1px solid #f3f3f3;  
713 - -webkit-box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.4);  
714 - box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.4);  
715 - cursor: pointer;  
716 - margin-bottom: 3px;  
717 - position: relative; 700 + width: 10px;
  701 + height: 10px;
  702 + line-height: 10px;
  703 + text-align: center;
  704 + border-radius: 5px;
  705 + border: 1px solid #f3f3f3;
  706 + -webkit-box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.4);
  707 + box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.4);
  708 + cursor: pointer;
  709 + margin-bottom: 3px;
  710 + position: relative;
718 } 711 }
719 712
720 .htCollapseButton:after { 713 .htCollapseButton:after {
721 - content: "";  
722 - height: 300%;  
723 - width: 1px;  
724 - display: block;  
725 - background: #ccc;  
726 - margin-left: 4px;  
727 - position: absolute;  
728 - /*top: -300%;*/  
729 - bottom: 10px; 714 + content: "";
  715 + height: 300%;
  716 + width: 1px;
  717 + display: block;
  718 + background: #ccc;
  719 + margin-left: 4px;
  720 + position: absolute;
  721 + /*top: -300%;*/
  722 + bottom: 10px;
730 } 723 }
731 724
732 -  
733 thead .htCollapseButton { 725 thead .htCollapseButton {
734 - right: 5px;  
735 - position: absolute;  
736 - top: 5px;  
737 - background: #fff; 726 + right: 5px;
  727 + position: absolute;
  728 + top: 5px;
  729 + background: #fff;
738 } 730 }
739 731
740 thead .htCollapseButton:after { 732 thead .htCollapseButton:after {
741 - height: 1px;  
742 - width: 700%;  
743 - right: 10px;  
744 - top: 4px; 733 + height: 1px;
  734 + width: 700%;
  735 + right: 10px;
  736 + top: 4px;
745 } 737 }
746 738
747 .handsontable tr th .htExpandButton { 739 .handsontable tr th .htExpandButton {
748 - position: absolute;  
749 - width: 10px;  
750 - height: 10px;  
751 - line-height: 10px;  
752 - text-align: center;  
753 - border-radius: 5px;  
754 - border: 1px solid #f3f3f3;  
755 - -webkit-box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.4);  
756 - box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.4);  
757 - cursor: pointer;  
758 - top: 0;  
759 - display: none; 740 + position: absolute;
  741 + width: 10px;
  742 + height: 10px;
  743 + line-height: 10px;
  744 + text-align: center;
  745 + border-radius: 5px;
  746 + border: 1px solid #f3f3f3;
  747 + -webkit-box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.4);
  748 + box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.4);
  749 + cursor: pointer;
  750 + top: 0;
  751 + display: none;
760 } 752 }
761 753
762 -.handsontable thead tr th .htExpandButton {  
763 - /*left: 5px;*/  
764 - top: 5px; 754 +.handsontable thead tr th .htExpandButton { /*left: 5px;*/
  755 + top: 5px;
765 } 756 }
766 757
767 .handsontable tr th .htExpandButton.clickable { 758 .handsontable tr th .htExpandButton.clickable {
768 - display: block; 759 + display: block;
769 } 760 }
770 761
771 .collapsibleIndicator { 762 .collapsibleIndicator {
772 - position: absolute;  
773 - top: 50%;  
774 - transform: translate(0% ,-50%);  
775 - right: 5px;  
776 - border: 1px solid #A6A6A6;  
777 - line-height: 10px;  
778 - color: #222;  
779 - border-radius: 10px;  
780 - font-size: 10px;  
781 - width: 10px;  
782 - height: 10px;  
783 - cursor: pointer;  
784 - -webkit-box-shadow: 0px 0px 0px 6px rgba(238,238,238,1);  
785 - -moz-box-shadow: 0px 0px 0px 6px rgba(238,238,238,1);  
786 - box-shadow: 0px 0px 0px 6px rgba(238,238,238,1);  
787 - background: #eee; 763 + position: absolute;
  764 + top: 50%;
  765 + transform: translate(0%, -50%);
  766 + right: 5px;
  767 + border: 1px solid #A6A6A6;
  768 + line-height: 10px;
  769 + color: #222;
  770 + border-radius: 10px;
  771 + font-size: 10px;
  772 + width: 10px;
  773 + height: 10px;
  774 + cursor: pointer;
  775 + -webkit-box-shadow: 0px 0px 0px 6px rgba(238, 238, 238, 1);
  776 + -moz-box-shadow: 0px 0px 0px 6px rgba(238, 238, 238, 1);
  777 + box-shadow: 0px 0px 0px 6px rgba(238, 238, 238, 1);
  778 + background: #eee;
788 } 779 }
789 780
790 .handsontable col.hidden { 781 .handsontable col.hidden {
791 - width: 0 !important; 782 + width: 0 !important;
792 } 783 }
793 784
794 .handsontable table tr th.lightRightBorder { 785 .handsontable table tr th.lightRightBorder {
795 - border-right: 1px solid #E6E6E6; 786 + border-right: 1px solid #E6E6E6;
796 } 787 }
797 788
798 -.handsontable tr.hidden,  
799 -.handsontable tr.hidden td,  
800 -.handsontable tr.hidden th {  
801 - display: none; 789 +.handsontable tr.hidden,.handsontable tr.hidden td,.handsontable tr.hidden th
  790 + {
  791 + display: none;
802 } 792 }
803 793
804 -.ht_master,  
805 -.ht_clone_left,  
806 -.ht_clone_top,  
807 -.ht_clone_bottom {  
808 - overflow: hidden; 794 +.ht_master,.ht_clone_left,.ht_clone_top,.ht_clone_bottom {
  795 + overflow: hidden;
809 } 796 }
810 797
811 .ht_master .wtHolder { 798 .ht_master .wtHolder {
812 - overflow: auto; 799 + overflow: auto;
813 } 800 }
814 801
815 .ht_clone_left .wtHolder { 802 .ht_clone_left .wtHolder {
816 - overflow-x: hidden;  
817 - overflow-y: auto; 803 + overflow-x: hidden;
  804 + overflow-y: auto;
818 } 805 }
819 806
820 -.ht_clone_top .wtHolder,  
821 -.ht_clone_bottom .wtHolder {  
822 - overflow-x: auto;  
823 - overflow-y: hidden; 807 +.ht_clone_top .wtHolder,.ht_clone_bottom .wtHolder {
  808 + overflow-x: auto;
  809 + overflow-y: hidden;
824 } 810 }
825 811
826 -  
827 /*WalkontableDebugOverlay*/ 812 /*WalkontableDebugOverlay*/
828 -  
829 .wtDebugHidden { 813 .wtDebugHidden {
830 - display: none; 814 + display: none;
831 } 815 }
832 816
833 .wtDebugVisible { 817 .wtDebugVisible {
834 - display: block;  
835 - -webkit-animation-duration: 0.5s;  
836 - -webkit-animation-name: wtFadeInFromNone;  
837 - animation-duration: 0.5s;  
838 - animation-name: wtFadeInFromNone;  
839 -}  
840 -  
841 -@keyframes wtFadeInFromNone {  
842 - 0% {  
843 - display: none;  
844 - opacity: 0;  
845 - }  
846 -  
847 - 1% {  
848 - display: block;  
849 - opacity: 0;  
850 - }  
851 -  
852 - 100% {  
853 - display: block;  
854 - opacity: 1;  
855 - }  
856 -}  
857 -  
858 -@-webkit-keyframes wtFadeInFromNone {  
859 - 0% {  
860 - display: none;  
861 - opacity: 0;  
862 - }  
863 -  
864 - 1% {  
865 - display: block;  
866 - opacity: 0;  
867 - }  
868 -  
869 - 100% {  
870 - display: block;  
871 - opacity: 1;  
872 - } 818 + display: block;
  819 + -webkit-animation-duration: 0.5s;
  820 + -webkit-animation-name: wtFadeInFromNone;
  821 + animation-duration: 0.5s;
  822 + animation-name: wtFadeInFromNone;
  823 +}
  824 +
  825 +@
  826 +keyframes wtFadeInFromNone { 0% {
  827 + display: none;
  828 + opacity: 0;
  829 +}
  830 +
  831 +1%
  832 +{
  833 +display
  834 +:
  835 +
  836 +block
  837 +;
  838 +
  839 +
  840 +opacity
  841 +:
  842 +
  843 +0;
  844 +}
  845 +100%
  846 +{
  847 +display
  848 +:
  849 +
  850 +block
  851 +;
  852 +
  853 +
  854 +opacity
  855 +:
  856 +
  857 +1;
  858 +}
  859 +}
  860 +@
  861 +-webkit-keyframes wtFadeInFromNone { 0% {
  862 + display: none;
  863 + opacity: 0;
  864 +}
  865 +
  866 +1%
  867 +{
  868 +display
  869 +:
  870 +
  871 +block
  872 +;
  873 +
  874 +
  875 +opacity
  876 +:
  877 +
  878 +0;
  879 +}
  880 +100%
  881 +{
  882 +display
  883 +:
  884 +
  885 +block
  886 +;
  887 +
  888 +
  889 +opacity
  890 +:
  891 +
  892 +1;
  893 +}
873 } 894 }
874 /* 895 /*
875 896
876 Handsontable Mobile Text Editor stylesheet 897 Handsontable Mobile Text Editor stylesheet
877 898
878 */ 899 */
879 -  
880 -.handsontable.mobile,  
881 -.handsontable.mobile .wtHolder {  
882 - -webkit-touch-callout:none;  
883 - -webkit-user-select:none;  
884 - -khtml-user-select:none;  
885 - -moz-user-select:none;  
886 - -ms-user-select:none;  
887 - user-select:none;  
888 - -webkit-tap-highlight-color:rgba(0,0,0,0);  
889 - -webkit-overflow-scrolling: touch; 900 +.handsontable.mobile,.handsontable.mobile .wtHolder {
  901 + -webkit-touch-callout: none;
  902 + -webkit-user-select: none;
  903 + -khtml-user-select: none;
  904 + -moz-user-select: none;
  905 + -ms-user-select: none;
  906 + user-select: none;
  907 + -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  908 + -webkit-overflow-scrolling: touch;
890 } 909 }
891 910
892 .htMobileEditorContainer { 911 .htMobileEditorContainer {
893 - display: none;  
894 - position: absolute;  
895 - top: 0;  
896 - width: 70%;  
897 - height: 54pt;  
898 - background: #f8f8f8;  
899 - border-radius: 20px;  
900 - border: 1px solid #ebebeb;  
901 - z-index: 999;  
902 - box-sizing: border-box;  
903 - -webkit-box-sizing: border-box;  
904 - -webkit-text-size-adjust: none; 912 + display: none;
  913 + position: absolute;
  914 + top: 0;
  915 + width: 70%;
  916 + height: 54pt;
  917 + background: #f8f8f8;
  918 + border-radius: 20px;
  919 + border: 1px solid #ebebeb;
  920 + z-index: 999;
  921 + box-sizing: border-box;
  922 + -webkit-box-sizing: border-box;
  923 + -webkit-text-size-adjust: none;
905 } 924 }
906 925
907 -.topLeftSelectionHandle:not(.ht_master .topLeftSelectionHandle),  
908 -.topLeftSelectionHandle-HitArea:not(.ht_master .topLeftSelectionHandle-HitArea) {  
909 - z-index: 9999; 926 +.topLeftSelectionHandle:not (.ht_master .topLeftSelectionHandle ),.topLeftSelectionHandle-HitArea:not
  927 + (.ht_master .topLeftSelectionHandle-HitArea ) {
  928 + z-index: 9999;
910 } 929 }
911 930
912 /* Initial left/top coordinates - overwritten when actual position is set */ 931 /* Initial left/top coordinates - overwritten when actual position is set */
913 -.topLeftSelectionHandle,  
914 -.topLeftSelectionHandle-HitArea,  
915 -.bottomRightSelectionHandle,  
916 -.bottomRightSelectionHandle-HitArea {  
917 - left: -10000px;  
918 - top: -10000px; 932 +.topLeftSelectionHandle,.topLeftSelectionHandle-HitArea,.bottomRightSelectionHandle,.bottomRightSelectionHandle-HitArea
  933 + {
  934 + left: -10000px;
  935 + top: -10000px;
919 } 936 }
920 937
921 .htMobileEditorContainer.active { 938 .htMobileEditorContainer.active {
922 - display: block; 939 + display: block;
923 } 940 }
924 941
925 .htMobileEditorContainer .inputs { 942 .htMobileEditorContainer .inputs {
926 - position: absolute;  
927 - right: 210pt;  
928 - bottom: 10pt;  
929 - top: 10pt;  
930 - left: 14px;  
931 - height: 34pt; 943 + position: absolute;
  944 + right: 210pt;
  945 + bottom: 10pt;
  946 + top: 10pt;
  947 + left: 14px;
  948 + height: 34pt;
932 } 949 }
933 950
934 .htMobileEditorContainer .inputs textarea { 951 .htMobileEditorContainer .inputs textarea {
935 - font-size: 13pt;  
936 - border: 1px solid #a1a1a1;  
937 - -webkit-appearance: none;  
938 - -webkit-box-shadow: none;  
939 - -moz-box-shadow: none;  
940 - box-shadow: none;  
941 - position: absolute;  
942 - left: 14px;  
943 - right: 14px;  
944 - top: 0;  
945 - bottom: 0;  
946 - padding: 7pt; 952 + font-size: 13pt;
  953 + border: 1px solid #a1a1a1;
  954 + -webkit-appearance: none;
  955 + -webkit-box-shadow: none;
  956 + -moz-box-shadow: none;
  957 + box-shadow: none;
  958 + position: absolute;
  959 + left: 14px;
  960 + right: 14px;
  961 + top: 0;
  962 + bottom: 0;
  963 + padding: 7pt;
947 } 964 }
948 965
949 .htMobileEditorContainer .cellPointer { 966 .htMobileEditorContainer .cellPointer {
950 - position: absolute;  
951 - top: -13pt;  
952 - height: 0;  
953 - width: 0;  
954 - left: 30px;  
955 -  
956 - border-left: 13pt solid transparent;  
957 - border-right: 13pt solid transparent;  
958 - border-bottom: 13pt solid #ebebeb; 967 + position: absolute;
  968 + top: -13pt;
  969 + height: 0;
  970 + width: 0;
  971 + left: 30px;
  972 + border-left: 13pt solid transparent;
  973 + border-right: 13pt solid transparent;
  974 + border-bottom: 13pt solid #ebebeb;
959 } 975 }
960 976
961 .htMobileEditorContainer .cellPointer.hidden { 977 .htMobileEditorContainer .cellPointer.hidden {
962 - display: none; 978 + display: none;
963 } 979 }
964 980
965 .htMobileEditorContainer .cellPointer:before { 981 .htMobileEditorContainer .cellPointer:before {
966 - content: '';  
967 - display: block;  
968 - position: absolute;  
969 - top: 2px;  
970 - height: 0;  
971 - width: 0;  
972 - left: -13pt;  
973 -  
974 - border-left: 13pt solid transparent;  
975 - border-right: 13pt solid transparent;  
976 - border-bottom: 13pt solid #f8f8f8; 982 + content: '';
  983 + display: block;
  984 + position: absolute;
  985 + top: 2px;
  986 + height: 0;
  987 + width: 0;
  988 + left: -13pt;
  989 + border-left: 13pt solid transparent;
  990 + border-right: 13pt solid transparent;
  991 + border-bottom: 13pt solid #f8f8f8;
977 } 992 }
978 993
979 .htMobileEditorContainer .moveHandle { 994 .htMobileEditorContainer .moveHandle {
980 - position: absolute;  
981 - top: 10pt;  
982 - left: 5px;  
983 - width: 30px;  
984 - bottom: 0px;  
985 - cursor: move;  
986 - z-index: 9999; 995 + position: absolute;
  996 + top: 10pt;
  997 + left: 5px;
  998 + width: 30px;
  999 + bottom: 0px;
  1000 + cursor: move;
  1001 + z-index: 9999;
987 } 1002 }
988 1003
989 .htMobileEditorContainer .moveHandle:after { 1004 .htMobileEditorContainer .moveHandle:after {
990 - content: "..\a..\a..\a..";  
991 - white-space: pre;  
992 - line-height: 10px;  
993 - font-size: 20pt;  
994 - display: inline-block;  
995 - margin-top: -8px;  
996 - color: #ebebeb; 1005 + content: "..\a..\a..\a..";
  1006 + white-space: pre;
  1007 + line-height: 10px;
  1008 + font-size: 20pt;
  1009 + display: inline-block;
  1010 + margin-top: -8px;
  1011 + color: #ebebeb;
997 } 1012 }
998 1013
999 .htMobileEditorContainer .positionControls { 1014 .htMobileEditorContainer .positionControls {
1000 - width: 205pt;  
1001 - position: absolute;  
1002 - right: 5pt;  
1003 - top: 0;  
1004 - bottom: 0; 1015 + width: 205pt;
  1016 + position: absolute;
  1017 + right: 5pt;
  1018 + top: 0;
  1019 + bottom: 0;
1005 } 1020 }
1006 1021
1007 -.htMobileEditorContainer .positionControls > div {  
1008 - width: 50pt;  
1009 - height: 100%;  
1010 - float: left; 1022 +.htMobileEditorContainer .positionControls>div {
  1023 + width: 50pt;
  1024 + height: 100%;
  1025 + float: left;
1011 } 1026 }
1012 1027
1013 -.htMobileEditorContainer .positionControls > div:after {  
1014 - content: " ";  
1015 - display: block;  
1016 - width: 15pt;  
1017 - height: 15pt;  
1018 - text-align: center;  
1019 - line-height: 50pt; 1028 +.htMobileEditorContainer .positionControls>div:after {
  1029 + content: " ";
  1030 + display: block;
  1031 + width: 15pt;
  1032 + height: 15pt;
  1033 + text-align: center;
  1034 + line-height: 50pt;
1020 } 1035 }
1021 1036
1022 -.htMobileEditorContainer .leftButton:after,  
1023 -.htMobileEditorContainer .rightButton:after,  
1024 -.htMobileEditorContainer .upButton:after,  
1025 -.htMobileEditorContainer .downButton:after {  
1026 - transform-origin: 5pt 5pt;  
1027 - -webkit-transform-origin: 5pt 5pt;  
1028 - margin: 21pt 0 0 21pt; 1037 +.htMobileEditorContainer .leftButton:after,.htMobileEditorContainer .rightButton:after,.htMobileEditorContainer .upButton:after,.htMobileEditorContainer .downButton:after
  1038 + {
  1039 + transform-origin: 5pt 5pt;
  1040 + -webkit-transform-origin: 5pt 5pt;
  1041 + margin: 21pt 0 0 21pt;
1029 } 1042 }
1030 1043
1031 .htMobileEditorContainer .leftButton:after { 1044 .htMobileEditorContainer .leftButton:after {
1032 - border-top: 2px solid #288ffe;  
1033 - border-left: 2px solid #288ffe;  
1034 - -webkit-transform: rotate(-45deg);  
1035 - /*margin-top: 17pt;*/  
1036 - /*margin-left: 20pt;*/ 1045 + border-top: 2px solid #288ffe;
  1046 + border-left: 2px solid #288ffe;
  1047 + -webkit-transform: rotate(-45deg);
  1048 + /*margin-top: 17pt;*/
  1049 + /*margin-left: 20pt;*/
1037 } 1050 }
  1051 +
1038 .htMobileEditorContainer .leftButton:active:after { 1052 .htMobileEditorContainer .leftButton:active:after {
1039 - border-color: #cfcfcf; 1053 + border-color: #cfcfcf;
1040 } 1054 }
1041 1055
1042 .htMobileEditorContainer .rightButton:after { 1056 .htMobileEditorContainer .rightButton:after {
1043 - border-top: 2px solid #288ffe;  
1044 - border-left: 2px solid #288ffe;  
1045 - -webkit-transform: rotate(135deg);  
1046 - /*margin-top: 17pt;*/  
1047 - /*margin-left: 10pt;*/ 1057 + border-top: 2px solid #288ffe;
  1058 + border-left: 2px solid #288ffe;
  1059 + -webkit-transform: rotate(135deg);
  1060 + /*margin-top: 17pt;*/
  1061 + /*margin-left: 10pt;*/
1048 } 1062 }
  1063 +
1049 .htMobileEditorContainer .rightButton:active:after { 1064 .htMobileEditorContainer .rightButton:active:after {
1050 - border-color: #cfcfcf; 1065 + border-color: #cfcfcf;
1051 } 1066 }
1052 1067
1053 .htMobileEditorContainer .upButton:after { 1068 .htMobileEditorContainer .upButton:after {
1054 - /*border-top: 2px solid #cfcfcf;*/  
1055 - border-top: 2px solid #288ffe;  
1056 - border-left: 2px solid #288ffe;  
1057 - -webkit-transform: rotate(45deg);  
1058 - /*margin-top: 22pt;*/  
1059 - /*margin-left: 15pt;*/ 1069 + /*border-top: 2px solid #cfcfcf;*/
  1070 + border-top: 2px solid #288ffe;
  1071 + border-left: 2px solid #288ffe;
  1072 + -webkit-transform: rotate(45deg);
  1073 + /*margin-top: 22pt;*/
  1074 + /*margin-left: 15pt;*/
1060 } 1075 }
  1076 +
1061 .htMobileEditorContainer .upButton:active:after { 1077 .htMobileEditorContainer .upButton:active:after {
1062 - border-color: #cfcfcf; 1078 + border-color: #cfcfcf;
1063 } 1079 }
1064 1080
1065 .htMobileEditorContainer .downButton:after { 1081 .htMobileEditorContainer .downButton:after {
1066 - border-top: 2px solid #288ffe;  
1067 - border-left: 2px solid #288ffe;  
1068 - -webkit-transform: rotate(225deg);  
1069 - /*margin-top: 15pt;*/  
1070 - /*margin-left: 15pt;*/ 1082 + border-top: 2px solid #288ffe;
  1083 + border-left: 2px solid #288ffe;
  1084 + -webkit-transform: rotate(225deg);
  1085 + /*margin-top: 15pt;*/
  1086 + /*margin-left: 15pt;*/
1071 } 1087 }
  1088 +
1072 .htMobileEditorContainer .downButton:active:after { 1089 .htMobileEditorContainer .downButton:active:after {
1073 - border-color: #cfcfcf; 1090 + border-color: #cfcfcf;
1074 } 1091 }
1075 1092
1076 .handsontable.hide-tween { 1093 .handsontable.hide-tween {
1077 - -webkit-animation: opacity-hide 0.3s;  
1078 - animation: opacity-hide 0.3s;  
1079 - animation-fill-mode: forwards;  
1080 - -webkit-animation-fill-mode: forwards; 1094 + -webkit-animation: opacity-hide 0.3s;
  1095 + animation: opacity-hide 0.3s;
  1096 + animation-fill-mode: forwards;
  1097 + -webkit-animation-fill-mode: forwards;
1081 } 1098 }
1082 1099
1083 .handsontable.show-tween { 1100 .handsontable.show-tween {
1084 - -webkit-animation: opacity-show 0.3s;  
1085 - animation: opacity-show 0.3s;  
1086 - animation-fill-mode: forwards;  
1087 - -webkit-animation-fill-mode: forwards; 1101 + -webkit-animation: opacity-show 0.3s;
  1102 + animation: opacity-show 0.3s;
  1103 + animation-fill-mode: forwards;
  1104 + -webkit-animation-fill-mode: forwards;
1088 } 1105 }
1089 /*! 1106 /*!
1090 * Handsontable ContextMenu 1107 * Handsontable ContextMenu
1091 */ 1108 */
1092 -  
1093 .htContextMenu { 1109 .htContextMenu {
1094 - display: none;  
1095 - position: absolute;  
1096 - z-index: 1060; /* needs to be higher than 1050 - z-index for Twitter Bootstrap modal (#1569) */ 1110 + display: none;
  1111 + position: absolute;
  1112 + z-index: 1060;
  1113 + /* needs to be higher than 1050 - z-index for Twitter Bootstrap modal (#1569) */
1097 } 1114 }
1098 1115
1099 -.htContextMenu .ht_clone_top,  
1100 -.htContextMenu .ht_clone_left,  
1101 -.htContextMenu .ht_clone_corner,  
1102 -.htContextMenu .ht_clone_debug {  
1103 - display: none; 1116 +.htContextMenu .ht_clone_top,.htContextMenu .ht_clone_left,.htContextMenu .ht_clone_corner,.htContextMenu .ht_clone_debug
  1117 + {
  1118 + display: none;
1104 } 1119 }
1105 1120
1106 .htContextMenu table.htCore { 1121 .htContextMenu table.htCore {
1107 - border: 1px solid #bbb;  
1108 - border-bottom-width: 2px;  
1109 - border-right-width: 2px; 1122 + border: 1px solid #bbb;
  1123 + border-bottom-width: 2px;
  1124 + border-right-width: 2px;
1110 } 1125 }
1111 1126
1112 .htContextMenu .wtBorder { 1127 .htContextMenu .wtBorder {
1113 - visibility: hidden; 1128 + visibility: hidden;
1114 } 1129 }
1115 1130
1116 .htContextMenu table tbody tr td { 1131 .htContextMenu table tbody tr td {
1117 - background: white;  
1118 - border-width: 0;  
1119 - padding: 4px 6px 0 6px;  
1120 - cursor: pointer;  
1121 - overflow: hidden;  
1122 - white-space: nowrap;  
1123 - text-overflow: ellipsis; 1132 + background: white;
  1133 + border-width: 0;
  1134 + padding: 4px 6px 0 6px;
  1135 + cursor: pointer;
  1136 + overflow: hidden;
  1137 + white-space: nowrap;
  1138 + text-overflow: ellipsis;
1124 } 1139 }
1125 1140
1126 .htContextMenu table tbody tr td:first-child { 1141 .htContextMenu table tbody tr td:first-child {
1127 - border: 0; 1142 + border: 0;
1128 } 1143 }
1129 1144
1130 .htContextMenu table tbody tr td.htDimmed { 1145 .htContextMenu table tbody tr td.htDimmed {
1131 - font-style: normal;  
1132 - color: #323232; 1146 + font-style: normal;
  1147 + color: #323232;
1133 } 1148 }
1134 1149
1135 -.htContextMenu table tbody tr td.current,  
1136 -.htContextMenu table tbody tr td.zeroclipboard-is-hover {  
1137 - background: #e9e9e9; 1150 +.htContextMenu table tbody tr td.current,.htContextMenu table tbody tr td.zeroclipboard-is-hover
  1151 + {
  1152 + background: #e9e9e9;
1138 } 1153 }
1139 1154
1140 .htContextMenu table tbody tr td.htSeparator { 1155 .htContextMenu table tbody tr td.htSeparator {
1141 - border-top: 1px solid #bbb;  
1142 - height: 0;  
1143 - padding: 0;  
1144 - cursor: default; 1156 + border-top: 1px solid #bbb;
  1157 + height: 0;
  1158 + padding: 0;
  1159 + cursor: default;
1145 } 1160 }
1146 1161
1147 .htContextMenu table tbody tr td.htDisabled { 1162 .htContextMenu table tbody tr td.htDisabled {
1148 - color: #999; 1163 + color: #999;
1149 } 1164 }
1150 1165
1151 .htContextMenu table tbody tr td.htDisabled:hover { 1166 .htContextMenu table tbody tr td.htDisabled:hover {
1152 - background: #fff;  
1153 - color: #999;  
1154 - cursor: default; 1167 + background: #fff;
  1168 + color: #999;
  1169 + cursor: default;
1155 } 1170 }
1156 1171
1157 .htContextMenu table tbody tr.htHidden { 1172 .htContextMenu table tbody tr.htHidden {
1158 - display: none; 1173 + display: none;
1159 } 1174 }
1160 1175
1161 .htContextMenu table tbody tr td .htItemWrapper { 1176 .htContextMenu table tbody tr td .htItemWrapper {
1162 - margin-left: 10px;  
1163 - margin-right: 6px; 1177 + margin-left: 10px;
  1178 + margin-right: 6px;
1164 } 1179 }
1165 1180
1166 .htContextMenu table tbody tr td div span.selected { 1181 .htContextMenu table tbody tr td div span.selected {
1167 - margin-top: -2px;  
1168 - position: absolute;  
1169 - left: 4px; 1182 + margin-top: -2px;
  1183 + position: absolute;
  1184 + left: 4px;
1170 } 1185 }
1171 1186
1172 .htContextMenu .ht_master .wtHolder { 1187 .htContextMenu .ht_master .wtHolder {
1173 - overflow: hidden;  
1174 -} 1188 + overflow: hidden;
  1189 +}
1175 \ No newline at end of file 1190 \ No newline at end of file