diff --git a/README-zh.md b/README-zh.md index bb58550..ebe5d23 100644 --- a/README-zh.md +++ b/README-zh.md @@ -16,6 +16,10 @@ ![演示](/docs/.vuepress/public/img/LuckysheetDemo.gif) +## 插件 +- excel导入导出库: [Luckyexcel](https://github.com/mengshukeji/Luckyexcel) +- 图表插件: [chartMix](https://github.com/mengshukeji/chartMix) + ## 特性 ### 🛠️格式设置 @@ -85,6 +89,7 @@ + **矩阵计算** (通过右键菜单进行支持:对选区内的数据进行转置、旋转、数值计算) + **截图** (把选区的内容进行截图展示) + **复制到其他格式** (右键菜单的"复制为", 支持复制为json、array、对角线数据、去重等) ++ **EXCEL,CSV,TXT 导入及导出** (专为Luckysheet打造的导入导出插件,支持密码、水印、公式等的本地导入导出) ### ⏱️未来开发计划 + **插入图表和svg形状** (支持JPG,PNG,SVG,Pen tool的插入、修改和删除,并且随表格的变动而产生变化) @@ -93,7 +98,6 @@ + **单元格内多样式** (Alt+Enter单元格内换行、上标、下标、单元格内科定义每个文字的不同样式) + **树形菜单** (类似excel中的分级显示(分组)) + **表格新功能** (类似excel中表格的筛选器和切片器) -+ **EXCEL,CSV,TXT 导入及导出** (专为Luckysheet打造的导入导出插件,支持密码、水印、公式等的本地导入导出) + **文档** (完善文档和API) + **敬请期待...** (可以提出好的建议给我们) diff --git a/README.md b/README.md index b988d9e..c3003d8 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,10 @@ English| [简体中文](./README-zh.md) ![Demo](/docs/.vuepress/public/img/LuckysheetDemo.gif) +## Plugins +- Excel import and export library: [Luckyexcel](https://github.com/mengshukeji/Luckyexcel) +- Chart plugin: [chartMix](https://github.com/mengshukeji/chartMix) + ## Features ### 🛠️Formatting @@ -91,6 +95,7 @@ English| [简体中文](./README-zh.md) + **Matrix operation** (Operate selection through the right-click menu: transpose, rotate, numerical calculation) + **Screenshot** (Take a screenshot with selection) + **Copy to** (In the right-click menu, copy selection to json, array etc.) ++ **EXCEL,CSV,TXT import/export** (Specially adapted to Luckysheet) ### ⏱️Coming soon + **Insert picture and Shapes** (JPG,PNG,SVG,Pen tool and so on) @@ -99,7 +104,6 @@ English| [简体中文](./README-zh.md) + **Cell segmentation style** (Alt+Enter line break, sub,super, in-cell style) + **Tree menu** (Just like the outline (group) function of excel) + **Table new Features** (filter, slicer) -+ **EXCEL,CSV,TXT import/export** (Specially adapted to Luckysheet) + **Documentation** (Improve documentation and API) + **More...** (Please advise us) diff --git a/docs/zh/guide/api.md b/docs/zh/guide/api.md index f7e209e..cdbc594 100644 --- a/docs/zh/guide/api.md +++ b/docs/zh/guide/api.md @@ -50,7 +50,9 @@ Luckysheet针对常用的数据操作需求,开放了主要功能的API,开 - **说明**: - 设置某个单元格的值,也可以设置整个单元格对象,用于同时设置多个单元格属性 + 设置某个单元格的值,也可以设置整个单元格对象,用于同时设置多个单元格属性。 + + 如果需要更新公式,也可以在这里赋值,Luckysheet在内部会主动把这个公式做计算并加入到公式链中,最后重刷界面。 - **示例**: @@ -59,6 +61,54 @@ Luckysheet针对常用的数据操作需求,开放了主要功能的API,开 ------------ +### clearCell(row, column [,setting]) + +- **参数**: + + - {Number} [row]: 单元格所在行数;从0开始的整数,0表示第一行 + - {Number} [column]: 单元格所在列数;从0开始的整数,0表示第一列 + - {PlainObject} [setting]: 可选参数 + + {Number} [order]: 工作表索引;默认值为当前工作表索引 + + {Function} [success]: 操作结束的回调函数 + +- **说明**: + + 清除指定工作表指定单元格的内容,返回清除掉的数据,不同于删除单元格的功能,不需要设定单元格移动情况 + +- **示例**: + + - 清空单元格`B2`内容 + `luckysheet.clearCell(1,1)` + +------------ + +### deleteCell(move, row, column [,setting]) + +- **参数**: + - {String} [move]: 删除后,右侧还是下方的单元格移动 + + `move`可能的值有: + + + `"left"`: 右侧单元格左移 + + `"up"`: 下方单元格上移 + + - {Number} [row]: 单元格所在行数;从0开始的整数,0表示第一行 + - {Number} [column]: 单元格所在列数;从0开始的整数,0表示第一列 + - {PlainObject} [setting]: 可选参数 + + {Number} [order]: 工作表索引;默认值为当前工作表索引 + + {Function} [success]: 操作结束的回调函数 + +- **说明**: + + 删除指定工作表指定单元格,返回删除掉的数据,同时,指定是右侧单元格左移还是下方单元格上移 + +- **示例**: + + - 删除当前单元格并且在删除后,右侧单元格左移 + `luckysheet.deleteCell('left')` + +------------ + ### setCellFormat(row, column, attr, value [,setting]) - **参数**: @@ -66,9 +116,9 @@ Luckysheet针对常用的数据操作需求,开放了主要功能的API,开 - {Number} [row]: 单元格所在行数;从0开始的整数,0表示第一行 - {Number} [column]: 单元格所在列数;从0开始的整数,0表示第一列 - {String} [attr]: 属性类型,参考 [单元格属性表](/zh/guide/cell.html)的属性值 - - {String | Number | Object} [value]: 具体的设置值,一个属性会对应多个值,参考 [单元格属性表](/zh/guide/cell.html)的值示例,特殊情况:如果属性类型`attr`是单元格格式`ct`,则设置值`value`应提供`ct.fa`,比如设置A1单元格的格式为百分比格式: + - {String | Number | Object} [value]: 具体的设置值,一个属性会对应多个值,参考 [单元格属性表](/zh/guide/cell.html)的值示例,如果属性类型`attr`是单元格格式`ct`,则设置值`value`应提供ct对象,如:`{fa:"General", t:"g"}`,比如设置A1单元格的格式为百分比格式: - `luckysheet.setCellFormat(0, 0, "ct", "0.00%")` + `luckysheet.setCellFormat(0, 0, "ct", {fa:"0.00%", t:"n"})` - {PlainObject} [setting]: 可选参数 + {Number} [order]: 工作表索引;默认值为当前工作表索引 @@ -143,7 +193,7 @@ Luckysheet针对常用的数据操作需求,开放了主要功能的API,开 - **示例**: - 当前工作表查找`"value"`字符串并替换为`"out"` - `luckysheet.replaces("value", "out)` + `luckysheet.replace("value", "out")` ------------ @@ -910,6 +960,8 @@ Luckysheet针对常用的数据操作需求,开放了主要功能的API,开 将一个单元格数组数据赋值到指定的区域,数据格式同`getRangeValue`方法取到的数据。 + 注意一点,通常`getRangeValue`方法只是取得选区数据,但是不包含边框和合并单元格信息,当执行`setRangeValue`的时候,会动态判断上一步是否执行过`getRangeValue`,如果执行过,会将边框和合并单元格信息一并从Luckysheet配置中取得。 + - **示例**: + 赋值到当前选区 @@ -1810,6 +1862,41 @@ Luckysheet针对常用的数据操作需求,开放了主要功能的API,开 `luckysheet.setSheetMove("left")` - 第二个工作表移动到第四个工作表的索引位置 `luckysheet.setSheetMove(3,{order:1})` +------------ + +### setSheetOrder(orderList [,setting]) + +- **参数**: + + - {Array} [orderList]: 工作表顺序,设置工作表的index和order来指定位置,如: + + ```json + [ + {index:'sheet_01',order: 2}, + {index:'sheet_02',order: 1}, + {index:'sheet_03',order: 0}, + ] + ``` + 数组中顺序并不重要,关键是指定sheet index和order的对应关系。 + + - {PlainObject} [setting]: 可选参数 + + {Function} [success]: 操作结束的回调函数 + +- **说明**: + + 重新排序所有工作表的位置,指定工作表顺序的数组。 + + +- **示例**: + + - 重排工作表,此工作簿含有3个工作表 + ```js + luckysheet.setSheetOrder([ + {index:'sheet_01',order: 2}, + {index:'sheet_02',order: 1}, + {index:'sheet_03',order: 0}, + ]) + ``` ------------ diff --git a/src/controllers/constant.js b/src/controllers/constant.js index 5cfde4c..52c8528 100644 --- a/src/controllers/constant.js +++ b/src/controllers/constant.js @@ -9,12 +9,12 @@ const gridHTML = function(){ return `
-
-
- +
+
-
+ +
${locale_info.detailUpdate}
diff --git a/src/controllers/freezen.js b/src/controllers/freezen.js index 1ec7a7d..155dd85 100644 --- a/src/controllers/freezen.js +++ b/src/controllers/freezen.js @@ -1512,8 +1512,13 @@ const luckysheetFreezen = { /** * * @param {string} operate "freezenRow"/ "freezenColumn"...... + * @param {Number | String} order 工作表索引;默认值为当前工作表索引 + * @param {Object} focus 冻结选区时的focus单元格行列值构成的对象;格式为{ row_focus:0, column_focus:0 } */ - saveFrozen: function(operate) { + saveFrozen: function(operate, order, focus = {}) { + if (order == null) { + order = getSheetIndex(Store.currentSheetIndex) + } // New configuration attribute of sheet: frozen, which stores more semantic configuration for initialization and transmission to the backend. freezenhorizontaldata is still used as local data @@ -1523,8 +1528,8 @@ const luckysheetFreezen = { const column_focus = select_save["column_focus"] == null ? select_save["column"][0] : select_save["column_focus"]; const range = { - row_focus: row_focus, - column_focus: column_focus + row_focus: focus.row_focus || row_focus, + column_focus: focus.column_focus || column_focus } const frozen = { @@ -1555,7 +1560,7 @@ const luckysheetFreezen = { } // store frozen - Store.luckysheetfile[getSheetIndex(Store.currentSheetIndex)]["frozen"] = frozen[operate]; + Store.luckysheetfile[order]["frozen"] = frozen[operate]; }, frozenTofreezen: function() { diff --git a/src/controllers/sheetmanage.js b/src/controllers/sheetmanage.js index 15f6b08..07aa443 100644 --- a/src/controllers/sheetmanage.js +++ b/src/controllers/sheetmanage.js @@ -443,7 +443,7 @@ const sheetmanage = { return true; } }, - createSheetbydata: function(data, isrenew) { + createSheetbydata: function(data, isrenew, isBefore=true) { let _this = this; let colorset = ''; @@ -453,13 +453,15 @@ const sheetmanage = { $("#luckysheet-sheet-container-c").append(replaceHtml(sheetHTML, { "index": data.index, "active": "", "name": data.name, "order": data.order, "style": "", "colorset": colorset })); - let previndex = data.order; - if(previndex >= Store.luckysheetfile.length){ - previndex = Store.luckysheetfile.length - 1; - $("#luckysheet-sheets-item" + data.index).insertAfter($("#luckysheet-sheets-item" + Store.luckysheetfile[previndex].index)); - } - else{ - $("#luckysheet-sheets-item" + data.index).insertBefore($("#luckysheet-sheets-item" + Store.luckysheetfile[previndex].index)); + if(isBefore){ + let previndex = data.order; + if(previndex >= Store.luckysheetfile.length){ + previndex = Store.luckysheetfile.length - 1; + $("#luckysheet-sheets-item" + data.index).insertAfter($("#luckysheet-sheets-item" + Store.luckysheetfile[previndex].index)); + } + else{ + $("#luckysheet-sheets-item" + data.index).insertBefore($("#luckysheet-sheets-item" + Store.luckysheetfile[previndex].index)); + } } Store.luckysheetfile.push(data); @@ -1017,6 +1019,29 @@ const sheetmanage = { file["data"] = data; file["load"] = "1"; + + let sheetindexset = _this.checkLoadSheetIndex(file); + let sheetindex = []; + + for(let i = 0; i < sheetindexset.length; i++){ + let item = sheetindexset[i]; + + if(item == file["index"]){ + continue; + } + + sheetindex.push(item); + } + + for(let i = 0;i div { - display: inline-block; - line-height: 30px; - } +.luckysheet_info_detail .sheet-name { + margin: auto; +} - .luckysheet_info_detail div.luckysheet_info_detail_title { - width: 24px; - height: 24px; - line-height: 24px; - text-align: center; - display: inline-block; - margin-top: 3px; - cursor: pointer; - } +.luckysheet_info_detail div.luckysheet_info_detail_back { + font-size: 14px; + padding: 0 8px; + margin-right: 18px; + border-radius: 3px; + cursor: pointer; +} - .luckysheet_info_detail div.luckysheet_info_detail_title:hover { - background: #eee; - } - - - .luckysheet_info_detail .luckysheet_info_detail_input { - border: 1px solid transparent; - border-radius: 2px !important; - color: #000000; - font-size: 16px; - height: 20px; - line-height: 22px; - margin: 0; - min-width: 1px; - padding: 2px 7px; - visibility: hidden; - } +.luckysheet_info_detail div.luckysheet_info_detail_back:hover { + background: #eee; +} - .luckysheet_info_detail .luckysheet_info_detail_input:hover { - border: 1px solid #e5e5e5; - } - .luckysheet_info_detail .luckysheet_info_detail_input:focus { - -webkit-appearance: none; - -moz-appearance: none; - border: 1px solid #0188fb !important; - -webkit-box-shadow: inset 0px 1px 2px rgba(0,0,0,0.1); - -moz-box-shadow: inset 0px 1px 2px rgba(0,0,0,0.1); - box-shadow: inset 0px 1px 2px rgba(0,0,0,0.1); - color: #000; - outline: none; - } +.luckysheet_info_detail .luckysheet_info_detail_input { + border: 1px solid transparent; + border-radius: 3px !important; + color: #000000; + font-size: 16px; + height: 26px; + line-height: 22px; + margin: 0; + min-width: 1px; + padding: 2px 7px; + visibility: hidden; +} + +.luckysheet_info_detail .luckysheet_info_detail_input:hover { + border: 1px solid #e5e5e5; +} + +.luckysheet_info_detail .luckysheet_info_detail_input:focus { + -webkit-appearance: none; + -moz-appearance: none; + border: 1px solid #0188fb !important; + -webkit-box-shadow: inset 0px 1px 2px rgba(0, 0, 0, 0.1); + -moz-box-shadow: inset 0px 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0px 1px 2px rgba(0, 0, 0, 0.1); + color: #000; + outline: none; +} .luckysheet_info_detail_update { color: #cbcbcb; @@ -108,25 +109,20 @@ right: 20px; font-size: 12px; cursor: pointer; - position:absolute; + position: absolute; } -.luckysheet_info_detail_save{ +.luckysheet_info_detail_save { color: #828282; font-size: 12px; margin-left: 5px; } .luckysheet-share-logo { - /*height: 36px; - width: 36px;*/ - position: absolute; - left: 11px; - top: 3px; + height: 32px; + width: 152px; z-index: 1; - height: 0px; - width: 0px; - /*background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABCVpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNS1jMDE0IDc5LjE1MTQ4MSwgMjAxMy8wMy8xMy0xMjowOToxNSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjU1YmIxOTI5LWJiOGYtZGY0Zi1iYzkwLWY4YTVkNTI0OTAzYyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpFRUVCOEY0Njk3QUYxMUU2QjhCNjgwOTVFRTlFNEQwOCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpFRUVCOEY0NTk3QUYxMUU2QjhCNjgwOTVFRTlFNEQwOCIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6NjExZTdjMmEtZDdmYy1lNjQ0LTk4MGUtZDdhZmMxZTZmZDIyIiBzdFJlZjpkb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6YzBiOWNmMzktOTdhYi0xMWU2LWI4YTktYzg1NzE4MzExNzllIi8+IDxkYzp0aXRsZT4gPHJkZjpBbHQ+IDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+6aOT6aOO5pWw5o2u5Y+v6KeG5YyWICDlrprnqL/mm7Lnur8uY2RyPC9yZGY6bGk+IDwvcmRmOkFsdD4gPC9kYzp0aXRsZT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7Ulfi4AAAH1klEQVR42qxYbWxbVxl+zr3XvrEdO59z0nlJSkfbLQttmqzVgElsUwGplE3Vth9IMKgQCFg37QcSUkH8GWgCiR+IIXWsiHYIRicB1WBjZKyMdl23dgtUtNCI0ihpljROlg/Hju3re+/hOb726tjXSSR6pEdJ7j33nOe87/N+nAgpJdYc83PA0hKgaSseS4jqmU1EnAgTrvqSmCKctbYQHR1AIAAD6xl/egl47S9AQ6j0tYArDEj+hJR9xGf59BPEZqKVMIt8eYwSob8TrxB/JhZXnsoziH7wIJBIwDj261UtpEzyUTn9yXuQuLMPmr7BFZphGYHkwNTQcN/cie0IRx6QuhGA6/p9ryzFo6Of2M/Nx4hDPNBPiEwlofJPY3TU34LEI8TjxACMTohYJwqkF+C+944czt829rt9mpMHgiZkLAaXgK7TOfSOIqegNikTVdYMhXqIp5DLfY7PH+XTN6o3Nui26nErcYjYXakWmwu25BaWHjj/ZOGWa6daIOkVlxsuZyHm56E3NMClyWV7O0SYholGAUWypQWCQGcnsLAA+dZbkGNj27joq8TXiKMrCFWR2Un8nkhUPnQ0gQZ7OfPQ8Lftjpl3W9HExXt6ij7Hxo1AWxudE4amfqqNFaFgcKVUSMQ9fhxIp4vi5WggjpReH/UjpAT5h5LPV0aSQGHPhR9ZHbPvtiAY9dyQSnkuomXQ2wts21ZfiSMjcJ95xptf65KfEf+hS98si1YNdZznqsmoYZHyjolX0psnXm5CIOo9zOWA8XHGDoPn2DEanpY/daouH/cNSsW2PUK1I0it/Zzai1QS+jJxV81C1E0sn85+7PIvTGjB60lICdQwPLc0NnoWGxvzZ6OEPTnpZ5nra1nWbfLMmUfLhLginvCbW+CB+iaH8pH0eIiEVkkOmidi30UKQCbjbVxv8GC04gHMzMQUofuJLTUHo3CCjlvonXzVgAiIVROnItTc7P8un4e0rNUJqe8XF7vkuXN7FKEH/eY4fNOembBuWrpCdwWwJqFIpC4hrEWoGF7M/Bcv3q8I3ekrRL6JL112hJ2mhbT6CymNKLGaZn1Cym1rEeIacmpqUIX9zb77EG2ZMdKWwvelSoqy9IcSd1OTP99s1svemra2ldPpmw2f5PiBkQzbckq7lk7LaLKJMD9pohuZMJGmO1xloQb/VcqE/EO+OuIiiky6FGl+hvAKkcPf8lz0Dgr3UywP21nQ2+kiQ0As5uGMuxCRBvjaQLUt/oXXl5Ii9F9iu2+l1zQTBZIJ0xJfvwNyX4+qfqVWRxYho5TYLa2MybD/FqxfWE/P5ekxqw51ot77hUCHA5Om/t4A5MObixahQkv9VpkUf7c0CNffJXJ2dr1kVBlKKkLPqwpRYx7uNxP5sIFvDrjY1Vma4ndSTtSinp78xvT0+vTD0sKu8Z+K0DliqPp9gKVnrKvLTN69RfPhW8UpUlfQMplcP6GtW18u6/BJlAVcTgs0xmg8g7enmqtf1Upf1MnSVyeAubm1Q165KxRaELt2HS/PPEs8db1dFLDZGuZaU3g92QMrq6NuWpNqdqv/of/NbsDNA2vwUclTGxw8gu7uqcqp3yV+U5ZFIUDxmnmM2W147UqiJGYf60hGnWj1efM+tNQIxNxN/JTBbFD8QvpbxzBmxX33/aCy/SjRKPbRzyprSI0hLVyYhovfTm/FZDJCSzi1gnZjrCwtPgnsBLTFRmhvD0A/uwPayCaajMR0169sPMYu81o1IZTM8FV64UvC0cbdolFspIwQnr7Uj+UUw3uFnjhBsoWtKr6ORcuwCcRc0AvXnAlxpRv68Eco9Abv2fXx/aJnSslTU7WvGstZeTSmBwYGWza8E9PCzIsOLrlt+OH5fiwuqMaklIssbsRLyQrdWLOQ+hAUdVwIeIVJEVBhuxiFfnGLV7k9USo3fWdF0d+zt1auimw0gvdz8fYfR5LRX7ItQsa2MF/oxAujPdjd9Q42hq9CWHvZB8U/kEK+MMly9CLdvAQ5QrLnScis0I3OQ0y0QcTjM7Jn6iBs/XBNF9K/YxXxO9oLlxbE40uF4M4o719dTH6m0cbr6CbqhhfQ5vaijixnDgX3AoLGMAIaGzKaRRziLTet+iSVU3nogrqXOZB7kpB35YZwTjvs2xatFo2sGtbHO4NfODNd+GuzKTa0mRqiTAdC6Difbcf8gs1+P4VN5mkkYpdhmDbJ0CrPUzu/YvYOSc8qCQtufwrynnnIvmVg1u0Spy2vaGPlzVWs558N72XcwZPXrOdSluwtVwhZut6K4v1e58lsNOlz2JV/CYmTE3CtAGQLddNhQXZSmI0k5qiGnhqUra9r9t57UZHdxO23q+S4PkJqpAqyaXi28MRExn0ka8tNsuLWHRQFdMir6LVPIuGO0LQUoe4lTV55PSLlwHJzTFs7n9a79z/m23+sl1B5LNsynMy629O2VFfukKEb78WzZ7taJp89JHSTdgquvoCThf6hr9wtmgdO3xBC/sV1Gc7ln/5RZq9+xmux6s2zIBo3H9Fv/cZ+3mTq/rvl/x/MVVp89xfhFv5WbtxqIB1yjbyod3/+QD0yN45QcaUAi1fg09z1W8S/iDzBnsLIEv9gnjgAPbIPgabMqj3sDXFZ0R3qQjhfvu6oO1FPKa2oZmqUYe2odAGzHajfO+B/AgwAeFX9rVH7zuEAAAAASUVORK5CYII=");*/ + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJgAAAAgCAYAAADuW7E5AAAN7ElEQVR4Xu2be5BU1Z3Hv7/Tj2EYkEA0Uj4QTBRBZgofYFAWHzGlVLlqNGg0u6vZVKBqLVmZ7kGcvnf6dt/bDMx0D4RNYiRGd92EcmFZDRrAWl/J6ho3JJAZhELBRQTj+lgfMEhP973frdMzPdMzdM8rTFadOX/N3Ps7557zO5/zO7/f75yWKittYZBFKfXvO+oCLw6y+ki1YaABGQFsGMzy/+MQOwEj5CR4nDCgvijZRshOhczeZmv0wQHVHREeFhroAszDZMA7dyCjpuANgbwF4S9arPJfD6TuiOzw0MCfFbAqi2fQS98AJZeB0DCXtcTKKoeHqofnKIsCRsgUQIJ9qUSAoxQcE3iNLbHytaXkq2xORTa73IN3owCqQO7NlljZpL6+M/L+s6uBEoCpqRD0CRiINoAZAImd8VH/cJwaLPormVkJcDEA//FqkmdbYsGvfXbVN9LzvjQwZICdb3GCQmY9yJIAUZDYaZUZfXVy5P1nVwNDAthki6PGsk07/bN6U40ncskrVvC/+qM+a3lyukecSRfv2XXh3/WnzlDJRJzGaqGcAXCzY9Y8PVTf6a3dT0Mf+jPuIQGsMpr+OYDb++jAtpZYWa8AFtaPOMkHhFgIyFbHDM3vz+CGSsawk9sAXCSCiG2Elw/Vd3pr99PQh8L+WZalsr6x1wLeMceseTb/7oQDNsNK3yTExr6ULvSubo6XP9OXXP79CGDdNfVpA8xwkr8CMU9ElthGaPXQAKadeq9tJwRT+wDn8ZZY2Tf6C5eWGwHsUw6YndoFcNqQAlYVS99GD+t6BUewu/WT1jmvr5zw0VACVpdIft2lTBCqZsdcsrvwW7Wx5HzxyUleFtvrrdCr+XcdZv46gHNFUEHyIEU9lzBCvymsX8p6GPbqqRR3ppbV3/UHfYczmcxl+n9/ZtQvY7G7jnTf9ptmA5wixGHHDG3W75bV14/3Z4PfAvhlQEfy6k1AbXLMe/aU6kPGl7k/4AbvIL1zKXJQebLFrgtt76nfJU1N5RWt3jVCXECRLwLc58tmN8Ziyw4Umwsz3nQ+hfNEMJ1EK4AX/O7hzZZleQU7y1xAThcyBeB0QB6hYLPQ+x/HrHn+hG6RM6LpJwS4rhQ4BA9Q8LVXrFF7BwLXYCxYb1uIUWS11SZWn6o890mAFxfp2/o9zS/fvmHDBle/K9a25TTNztLbCmA8RLb6s4dvTgcnVPjctjd1QlkUvmdHwg/2gETDfQ4g9ztm6O8Mu0n7MBsAjOnRBw+g7Zg1nRcTuvogD5G8pn1yO4ogA6pFjln9cP6RYa+aRvE2Czm5e9s8pqAWx83QTwqfm05qJckwuuctIcDLPhfXWVb4PS1vOslNJP6yp85E8IxthK8+cYDtLvtR5fTMBwDHFoNHhC8CZTc1W/LOQOH6cwBm2KktAK8F+L6IzxLxXnOJWQLUgiinwEwYYacYYBEnOVeIXwI4CZQNPvfjv4rFYm0dstqi36ZXv2OG/6LTWrYD+bL+31O+i4KZj3ZkfWP0pI0H8KTn8cdK+TJCzqfC32s5Qr6aMKpzUXcesJy1FDwl4P0UNZ4eNYRnAXjP7449y7IWHV24cGHg1Enn7iAxHcDvhCpJ4cci+LpH3i26CWJ2PjqPOMlvC/EzgG2AagTkBVGcCJc1lFwbmxwzfEMOsETqTpDTSH4X0FYRz4pgG8m9jlnzE5kZbzfhrscLSDf3t1DNJTC6bxCoV7Q2lwkqbFGU13rWIfG+gAlXyn64KyY5pQ+mDNQHG4gFq0ukrvQ8PqvVLMo3x669Jzfx7RPZFAK8JIB9jhn+Sk/AfORvMpBNAlRQ8GAge2RR4RZyX7zhcp+o5wlQ4J3jmEv3ta/81PfJXAJ6u2OGL4w2NEx00+qPOZCE1yeMmifyfTCdpnrS06cr6xwztKmwDyT2v3vq2HPXLlqkE96IOKlLhXox63bcWQnj3m2GnbwbwBqA72Zbs1NXrLjvg662U40dlioHzd1r1pSN+zD9OkROI2Em6toXlS7RaMNE16+01R3jKe/i5ZGlv+/SUwkfLC8ww8pcIXRzpo6Q68HilqgEHAlRvj+A3q/a68MTyA5R8uiRo/61r6+UAflbxb4xpIDZKcsDowB2OGb4gsLva7+l/BP3HP0smGndqeHphBd42gMuE6AcQMoxw3pLOa4YduMuQKYJEbfrwtH169f7mve8eQjgqRTclTDCP8pBF0++0m4h5CiFjwqxxT/G97S1ZMmHPRst2CLX2EYoZ+F0WbBggW9q1SXHtNtHjzclojWPmfHU4xTeoLct0tctrSLizSD5fQKZV5snlU+feajS9dyc/yaUOyiqxy0ZrxHghRREE0Y43m/AqqyjZxBydq4CcR4pZSVgOu6xUurFTCDwx0DWvdQVvq2O+ne1rJDOVdLfdnqTG0rADDv1c4A6b/dvjhm+ua/+Fm5PeVkRNNhG+N7igCU1AKsp2J+IhM42nFXXAN4WDVImkDlt5bJluQUYcVJnAvypEFfr+e1oKwvgeaVkeTwSeq5rQttzcYAYjhlKFH7XsJMayHEU+VbCCP1LxEnuFuK8vsblC/jPymbdOUI+2pcsgIcdM/y3/QasHw12F1lA3/nnp6co+E7LBvyv8QjafP7M2VkVOLQnJm8NuL0+KgwlYJF48gERncTlVses6TOJWwCYJyKPkbw5t70K/saOhH7WcygdkeFBgKMB35WAqyfmrwXyiG2G7ugpH3GaTqfHa5R4VwKY3+HbuErktrgR0kFA0UCjAL5ugBl2UvttOqn9a0A9WUrVvmz2nzNKLlJKcjIiyiSRLiavhK/HjVBnvrNY4JRrY0AgWPRXeW0LPMHtArk879CL8n3TzXoHlGL+2GcvBY9lmF29J1ZxQmAbBGB6tV8BoNExw0vz47Ss5MlZH3RkNyqfs4k4qbCQjQIcrJw6afItt9ySixZ1MePJWRT5Jwg+eeeUMV/Vvk4BYKscM1xtOKkHkXNyeYziuzzviBfqNuKkHhbyTh0EQKghHiNU8+y66v/Qcpa1arKrvLkUHnHM8ONd/X1gdMZ/+EkhrhTgJdsMXzoIwB7RQJN4KlEXvrawXzXRhonlAf8cjx797pFNWd/oKYDKRfkUmXN8iqbxCiW+8Rnl7amvDe86YRZsRiz7DXHd+mJJVM9Tc7PK/99BtB3qDqy0ClnfHA8u1zv6gGDuITwIwB4C8B0Ar/jdIxdblnXMsix/1jdWR0e3tq/Q9qyzYTdqB1oraxSAascMr2qfdEtl/WPXgbxVRH5hG6Ebi03umjVryt75KP0CIDrF8RZFzU4Y1d10YcYbL6FIYT5tj2OGO7ctM95USfGa24Mmd4Zj3tuZuzMSqR/A410AfuuY4dkDByylc3s6aPCE6iq7rjrnK3fo4wkdPVPwXMIIX0VSTCelg5xZItiiModvzEfE5vKmyz3Xe0YAn0vvivq6pbl2cv1xkttBzATEcsxQLP+8TwvWcXD901JnizmHPh08WftcldG0jiJzkVa3Iuqxw/Dfvt8S7XwOqnQB1nv1AmiuAiR/FPUGgJdJVInk+qfNfkVh1tmwU3GAZi5gJ7VV2QfBLBAzALQK1Ry7rrql1ORGV6ye5GbcbQBPEeC3PveL8yzrO93Ga9iN2wFpT8SK1NhGSEennXNh2I3PIbcz4H8BPKWTm0pkKsG5ud1GieFE2v2t3qPk7j6Yljfjjf9KkZu1M68EWz3gfQDzhNB+9xG/4mVWpEYDjlqr4ULlUy/puEZEdNT4n3pcJHS+zV9sazec5D+CuAMiLgi9uBocM/TDXgHLXblhm04e9nIoLb9viQUv0h2bYaUbhKgpgcC6lljZtwdFV7ejov4BpqUiTnKZkLH85UkB3iZkEYAVxY41DDv1PYANAL7QNe3YIUrdY9e2r/reJtewG68mZKte4R0phW7j7UoXoM3v8kzLqumWE7xv+ZpTfG5mNcFb29voLB8A8mO/e9jIp0AGCtjChQ8EvnTmxxGILNV5vYK2nxfKPXZd6A+Fmq2NNsxUfqUTw7m57Sg6d5ZQmcOr81Yt/0L7jUI+BFCnuiryFwFKA6bPFZHZ2tt9rtxKVGppczTQqP+eGm09LYjAqwArimMgi1piwZI3XwcLX2/1lq5cOTaQCUzTMu8eqNi+dm17vqiXIobdOJkipwcCwf3WvYv1avyTtvcCMHPbtpAb7bqab5bqg2Wt+kJbAJN9bmYchW9/aVz5/sWLFxd1tgeqM50i2bX3wDlu1jc+6//k1fraWm3JShbLapoAP8/L0ve+3/1wn2VZOqrtdykJWGW0LQWwureWdBL1aDr45cI8V1VdOkJBZ3KuR/23ZUzwK801os+1hlVpt07pA4CMAtR8x6zWO8PnvhQFTN+hZ7ZtZ/FrzgU6Iatb4qNyDnFXoVRa2Y2gV/S2BEW+u9MK6pU8rErESRpC2AAP+N3WKYXZ/s+zIooDFs1sJLybehu4PlvMsuyqYsc/fQQGm1piZblzrOFSdLTmqjG7qY9fhPX5M83hMP7jANM/LfPY9kaPX//0sFF4QyE4u6+D68pom05e6pB1YmcDgkMtVtkZw0G5I2MskmitrDt2F0R+UFI5gt0eeH1/r9xUNbLCa83cKuQNkFxEcnILgqNhSeedopGJ+Pxq4DgLVmml14G56yXFyuOtx1rvHOhlwW4NWVQjcH1+geo5suMBi6Y7DlG7iW4TessGcod++KhwZKS9+uo9X1ZG0zpbPQ6Q1yh8iZBN/f1p2YiqRzTQUwP/ByH3mYpBTz2UAAAAAElFTkSuQmCC"); } .luckysheet-wa-editor { @@ -139,37 +135,37 @@ } - .luckysheet-wa-editor > div.luckysheetfulltoolbar { - display: inline-block; - height: 34px; - padding: 0px 5px; - line-height: 34px; - font-size: 13px; - transition: all 0.2s; - -moz-transition: all 0.2s; - -webkit-transition: all 0.2s; - -o-transition: all 0.2s; - vertical-align: middle; - } +.luckysheet-wa-editor>div.luckysheetfulltoolbar { + display: inline-block; + height: 34px; + padding: 0px 5px; + line-height: 34px; + font-size: 13px; + transition: all 0.2s; + -moz-transition: all 0.2s; + -webkit-transition: all 0.2s; + -o-transition: all 0.2s; + vertical-align: middle; +} + +.luckysheet-wa-editor>div.luckysheetfulltoolbar:hover { + background: #0188fb; + color: #FAFAFA; + cursor: pointer; +} - .luckysheet-wa-editor > div.luckysheetfulltoolbar:hover { - background: #0188fb; - color: #FAFAFA; - cursor: pointer; - } - - .luckysheet-wa-editor > div.luckysheetfulltoolbar:active { - background: #FB4747; - color: #FFFFFF; - -webkit-box-shadow: inset 0 0 2px #727272; - -moz-box-shadow: inset 0 0 2px #727272; - box-shadow: inset 0 0 2px #727272; - cursor: pointer; - } +.luckysheet-wa-editor>div.luckysheetfulltoolbar:active { + background: #FB4747; + color: #FFFFFF; + -webkit-box-shadow: inset 0 0 2px #727272; + -moz-box-shadow: inset 0 0 2px #727272; + box-shadow: inset 0 0 2px #727272; + cursor: pointer; +} /*toolbar菜单start*/ -.luckysheet-toolbar-left-theme{ +.luckysheet-toolbar-left-theme { width: 15px; background: #0188fb; position: absolute; @@ -228,21 +224,21 @@ } .luckysheet-toolbar-combo-button:hover { - -webkit-box-shadow: 0 1px 1px rgba(0,0,0,.1); - -moz-box-shadow: 0 1px 1px rgba(0,0,0,.1); - box-shadow: 0 1px 1px rgba(0,0,0,.1); + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .1); + -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, .1); + box-shadow: 0 1px 1px rgba(0, 0, 0, .1); background-color: #f8f8f8; - background-image: -webkit-linear-gradient(to bottom,#f8f8f8,#f1f1f1); - background-image: -moz-linear-gradient(to bottom,#f8f8f8,#f1f1f1); - background-image: -ms-linear-gradient(to bottom,#f8f8f8,#f1f1f1); - background-image: -o-linear-gradient(to bottom,#f8f8f8,#f1f1f1); - background-image: linear-gradient(to bottom,#f8f8f8,#f1f1f1); - border-color: #c6c6c6!important; + background-image: -webkit-linear-gradient(to bottom, #f8f8f8, #f1f1f1); + background-image: -moz-linear-gradient(to bottom, #f8f8f8, #f1f1f1); + background-image: -ms-linear-gradient(to bottom, #f8f8f8, #f1f1f1); + background-image: -o-linear-gradient(to bottom, #f8f8f8, #f1f1f1); + background-image: linear-gradient(to bottom, #f8f8f8, #f1f1f1); + border-color: #c6c6c6 !important; color: #222; border-width: 1px; - border-color: transparent!important; - background-color: rgba(0,0,0,.06); + border-color: transparent !important; + background-color: rgba(0, 0, 0, .06); background-image: none; cursor: pointer; -webkit-box-shadow: none; @@ -252,14 +248,14 @@ } .luckysheet-toolbar-combo-button:hover .luckysheet-toolbar-combo-button-input { - border-right-color: rgba(0,0,0,0.12); + border-right-color: rgba(0, 0, 0, 0.12); } .luckysheet-toolbar-combo-button-open { color: #222; border-width: 1px; - border-color: transparent!important; - background-color: rgba(0,0,0,0.12); + border-color: transparent !important; + background-color: rgba(0, 0, 0, 0.12); background-image: none; cursor: pointer; } @@ -267,11 +263,12 @@ .luckysheet-toolbar-combo-button-open .luckysheet-toolbar-combo-button-input { background: transparent; - border-right: 1px solid transparent!important; + border-right: 1px solid transparent !important; } -.luckysheet-toolbar-combo-button-outer-box, .luckysheet-toolbar-combo-button-inner-box { +.luckysheet-toolbar-combo-button-outer-box, +.luckysheet-toolbar-combo-button-inner-box { border: 0; vertical-align: top; margin: 0; @@ -284,7 +281,7 @@ } .luckysheet-toolbar-zoom-combobox .luckysheet-toolbar-combo-button-caption { - width: 48px!important; + width: 48px !important; } .luckysheet-toolbar-combo-button-caption { @@ -294,23 +291,23 @@ .luckysheet-toolbar-combo-button-input { background: transparent; - border: 1px solid transparent!important; + border: 1px solid transparent !important; color: #333; - font-family: Arial,sans-serif!important; - font-size: 11px!important; - font-weight: bold!important; - height: 20px!important; - overflow: hidden!important; - color: rgba(0,0,0,.7); - height: 22px!important; + font-family: Arial, sans-serif !important; + font-size: 11px !important; + font-weight: bold !important; + height: 20px !important; + overflow: hidden !important; + color: rgba(0, 0, 0, .7); + height: 22px !important; width: 28px; } -.luckysheet-toolbar-combo-button-input:focus{ - box-shadow: inset 0 1px 2px rgba(0,0,0,0.3); +.luckysheet-toolbar-combo-button-input:focus { + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.3); background: #fff; outline: none; - border: 1px solid #0188fb!important; + border: 1px solid #0188fb !important; } .luckysheet-toolbar-textinput { @@ -350,7 +347,9 @@ border-bottom-color: transparent; } -.luckysheet-toolbar-button-inner-box .luckysheet-icon, .luckysheet-toolbar-menu-button-caption .luckysheet-icon, .luckysheet-toolbar-menu-button-caption .luckysheet-color-menu-button-indicator .luckysheet-icon { +.luckysheet-toolbar-button-inner-box .luckysheet-icon, +.luckysheet-toolbar-menu-button-caption .luckysheet-icon, +.luckysheet-toolbar-menu-button-caption .luckysheet-color-menu-button-indicator .luckysheet-icon { margin-top: 0px; } @@ -360,11 +359,11 @@ margin: 0; } -.luckysheet-toolbar-menu-button-inner-box{ +.luckysheet-toolbar-menu-button-inner-box { margin: 0px 2px; } -.luckysheet-toolbar-menu-button-dropdown{ +.luckysheet-toolbar-menu-button-dropdown { background: url(arrow-down.png) center no-repeat; float: right; margin: 10px 2px 0 3px; @@ -380,35 +379,38 @@ margin-top: 10px; } -.luckysheet-toolbar-button-split-right .luckysheet-toolbar-menu-button-dropdown{ +.luckysheet-toolbar-button-split-right .luckysheet-toolbar-menu-button-dropdown { padding: 0px 3px; } -.luckysheet-toolbar-select{ +.luckysheet-toolbar-select { margin-left: 1px; } /*split*/ -.luckysheet-toolbar-button-split-left, .luckysheet-toolbar-button-split-left * { - border-top-right-radius: 0!important; - border-bottom-right-radius: 0!important; +.luckysheet-toolbar-button-split-left, +.luckysheet-toolbar-button-split-left * { + border-top-right-radius: 0 !important; + border-bottom-right-radius: 0 !important; margin-right: 0; } -.luckysheet-toolbar-button-split-right, .luckysheet-toolbar-button-split-right * { - border-top-left-radius: 0!important; - border-bottom-left-radius: 0!important; - min-width: 5px!important; +.luckysheet-toolbar-button-split-right, +.luckysheet-toolbar-button-split-right * { + border-top-left-radius: 0 !important; + border-bottom-left-radius: 0 !important; + min-width: 5px !important; margin-left: 0; } -#luckysheet-icon-merge-menu{ +#luckysheet-icon-merge-menu { margin-right: 1px; } /*button*/ -.luckysheet-toolbar-button, .luckysheet-toolbar-menu-button { +.luckysheet-toolbar-button, +.luckysheet-toolbar-menu-button { -webkit-border-radius: 2px; -moz-border-radius: 2px; border-radius: 2px; @@ -416,7 +418,7 @@ -moz-user-select: none; -ms-user-select: none; background: 0; - border:1px solid transparent; + border: 1px solid transparent; outline: none; padding: 0; list-style: none; @@ -429,50 +431,55 @@ margin: 3px -3px 0px 2px; height: 26px; line-height: 26px; - color: rgba(0,0,0,.7); + color: rgba(0, 0, 0, .7); } -.luckysheet-toolbar-button:hover, .luckysheet-toolbar-menu-button:hover, .luckysheet-toolbar-button-hover{ +.luckysheet-toolbar-button:hover, +.luckysheet-toolbar-menu-button:hover, +.luckysheet-toolbar-button-hover { border: 1px solid transparent; - background-color: rgba(0,0,0,0.06); + background-color: rgba(0, 0, 0, 0.06); background-image: none; box-shadow: none; cursor: pointer; } -.luckysheet-toolbar-button-split-left{ +.luckysheet-toolbar-button-split-left { margin-right: -6px; } -.luckysheet-toolbar-button-split-right.luckysheet-toolbar-menu-button:hover{ - border-left-color: rgba(0,0,0,0.12) !important; +.luckysheet-toolbar-button-split-right.luckysheet-toolbar-menu-button:hover { + border-left-color: rgba(0, 0, 0, 0.12) !important; } -.luckysheet-toolbar-button-split-right-hover{ +.luckysheet-toolbar-button-split-right-hover { border-width: 1px; border-color: transparent !important; - background-color: rgba(0,0,0,0.06); + background-color: rgba(0, 0, 0, 0.06); cursor: pointer; box-shadow: none; - border-left-color: rgba(0,0,0,0.12) !important; + border-left-color: rgba(0, 0, 0, 0.12) !important; } -.luckysheet-toolbar-button:active, .luckysheet-toolbar-menu-button:active{ +.luckysheet-toolbar-button:active, +.luckysheet-toolbar-menu-button:active { border: 1px solid transparent; - background-color: rgba(0,0,0,0.12); + background-color: rgba(0, 0, 0, 0.12); background-image: none; box-shadow: none; cursor: pointer; } -.luckysheet-toolbar-button-outer-box, .luckysheet-toolbar-menu-button-outer-box { +.luckysheet-toolbar-button-outer-box, +.luckysheet-toolbar-menu-button-outer-box { border: 0; vertical-align: top; margin: 0; padding: 0; } -.luckysheet-toolbar-button-inner-box, .luckysheet-toolbar-menu-button-inner-box { +.luckysheet-toolbar-button-inner-box, +.luckysheet-toolbar-menu-button-inner-box { padding: 0 2px; padding: 0; text-align: center; @@ -504,14 +511,14 @@ width: 590px; } -.luckysheet-icon-img-container{ +.luckysheet-icon-img-container { height: 1886px; position: absolute; width: 108px; } -.luckysheet-icon-img{ +.luckysheet-icon-img { background: url(sprite38.svg); content: url(sprite38.svg); } @@ -521,12 +528,12 @@ top: -90px; } -.luckysheet-icon-undo{ +.luckysheet-icon-undo { left: -90px; top: -1642px; } -.luckysheet-icon-redo{ +.luckysheet-icon-redo { left: 0; top: -1188px; } @@ -541,11 +548,11 @@ top: -1444px; } -.toolbar-decimal-icon{ +.toolbar-decimal-icon { margin-bottom: -4px; } -.luckysheet-icon-decimal-increase{ +.luckysheet-icon-decimal-increase { left: -36px; top: -1660px; } @@ -559,7 +566,7 @@ text-align: left; } -.luckysheet-icon-bold{ +.luckysheet-icon-bold { left: -18px; top: -186px; } @@ -569,7 +576,7 @@ top: -1606px; } -.luckysheet-icon-strikethrough{ +.luckysheet-icon-strikethrough { left: -54px; top: -442px; } @@ -579,23 +586,23 @@ top: -1850px; } -.luckysheet-icon-cell-color{ +.luckysheet-icon-cell-color { left: 0; top: -406px; } -.luckysheet-icon-border-all{ +.luckysheet-icon-border-all { left: -54px; top: -1552px; } -.luckysheet-icon-merge{ +.luckysheet-icon-merge { left: -54px; top: -1534px; } -.luckysheet-icon-align-left{ +.luckysheet-icon-align-left { left: -18px; top: -1426px; } @@ -626,47 +633,47 @@ top: -316px; } -.luckysheet-icon-textwrap-wrap{ +.luckysheet-icon-textwrap-wrap { left: -36px; top: -316px; } -.luckysheet-icon-textwrap-overflow{ +.luckysheet-icon-textwrap-overflow { left: -58px; top: -1116px; } -.luckysheet-icon-textwrap-clip{ +.luckysheet-icon-textwrap-clip { left: -54px; top: -1444px; } -.luckysheet-icon-rotation-none{ +.luckysheet-icon-rotation-none { left: -36px; top: -586px; } -.luckysheet-icon-rotation-angleup{ +.luckysheet-icon-rotation-angleup { left: -72px; top: -1134px; } -.luckysheet-icon-rotation-angledown{ +.luckysheet-icon-rotation-angledown { left: -36px; top: -186px; } -.luckysheet-icon-rotation-vertical{ +.luckysheet-icon-rotation-vertical { left: -36px; top: -1282px; } -.luckysheet-icon-rotation-rotation-up{ +.luckysheet-icon-rotation-rotation-up { left: 0; top: -1318px; } -.luckysheet-icon-rotation-rotation-down{ +.luckysheet-icon-rotation-rotation-down { left: -36px; top: -1336px; } @@ -741,38 +748,40 @@ } -#luckysheet-icon-function .luckysheet-toolbar-menu-button-caption{ - margin-right: 5px; +#luckysheet-icon-function .luckysheet-toolbar-menu-button-caption { + margin-right: 5px; margin-left: -5px; } -#luckysheet-icon-function .luckysheet-icon{ - margin-right: 0px; +#luckysheet-icon-function .luckysheet-icon { + margin-right: 0px; } .luckysheet-icon-autofilter { - left: -36px; + left: -36px; top: -406px; } -#luckysheet-icon-pivotTable .luckysheet-toolbar-menu-button-caption{ - color: #0188fb; +#luckysheet-icon-pivotTable .luckysheet-toolbar-menu-button-caption { + color: #0188fb; } -#luckysheet-icon-chart .luckysheet-toolbar-menu-button-caption{ - color: #0188fb; +#luckysheet-icon-chart .luckysheet-toolbar-menu-button-caption { + color: #0188fb; } -.luckysheet-rightgclick-menu-sub .sp-container{ +.luckysheet-rightgclick-menu-sub .sp-container { background-color: #ffffff; border: solid 1px #ffffff; } -#luckysheet-icon-text-color-menu-menuButton .sp-palette-container, #luckysheet-icon-cell-color-menu-menuButton .sp-palette-container { +#luckysheet-icon-text-color-menu-menuButton .sp-palette-container, +#luckysheet-icon-cell-color-menu-menuButton .sp-palette-container { margin-bottom: -300px; } -#luckysheet-icon-text-color-menu-menuButton .sp-palette, #luckysheet-icon-cell-color-menu-menuButton .sp-palette{ +#luckysheet-icon-text-color-menu-menuButton .sp-palette, +#luckysheet-icon-cell-color-menu-menuButton .sp-palette { margin-top: -10px; } @@ -790,28 +799,28 @@ -.luckysheet-wa-calculate-help{ - height: 100%; - width: 99px; - border-right: 1px solid #d4d4d4; +.luckysheet-wa-calculate-help { + height: 100%; + width: 99px; + border-right: 1px solid #d4d4d4; } -.luckysheet-wa-calculate-help-box{ - height: 100%; - width: 85px; - position: absolute; - top: 0px; - left: 0px; +.luckysheet-wa-calculate-help-box { + height: 100%; + width: 85px; + position: absolute; + top: 0px; + left: 0px; } -#luckysheet-helpbox{ - left: 0; +#luckysheet-helpbox { + left: 0; position: absolute; right: 0; top: 6px; resize: none; /* border: 1px #b9b9b9 solid; */ - font-family: arial,sans,sans-serif; + font-family: arial, sans, sans-serif; font-size: 14px; line-height: 14px; background-color: #ffffff; @@ -819,62 +828,62 @@ } .luckysheet-helpbox-cell-input { - width: 100%; + width: 100%; height: 100%; margin: 0; outline: none; cursor: text; -webkit-user-modify: read-write-plaintext-only; - white-space:nowrap; - overflow:hidden; + white-space: nowrap; + overflow: hidden; -webkit-transform: translateZ(0); background-color: white; - word-wrap: break-word; + word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; - + } -.luckysheet-wa-calculate-help-tool{ - position: absolute; - left: 85px; - text-align: center; - height: 100%; - width: 13px; - border-left:1px solid transparent; - border-right:1px solid transparent; +.luckysheet-wa-calculate-help-tool { + position: absolute; + left: 85px; + text-align: center; + height: 100%; + width: 13px; + border-left: 1px solid transparent; + border-right: 1px solid transparent; } -.luckysheet-wa-calculate-help-tool:hover{ - background:#EFEFEF; - cursor:pointer; - border-left:1px solid #E5E5E5; - border-right:1px solid #E5E5E5; +.luckysheet-wa-calculate-help-tool:hover { + background: #EFEFEF; + cursor: pointer; + border-left: 1px solid #E5E5E5; + border-right: 1px solid #E5E5E5; } -.luckysheet-wa-calculate-size{ - position:absolute; - height:3px; - width:100%; - left:0px; - bottom:0px; - z-index:1000; +.luckysheet-wa-calculate-size { + position: absolute; + height: 3px; + width: 100%; + left: 0px; + bottom: 0px; + z-index: 1000; } -.luckysheet-wa-calculate-size:hover{ - background:#5e5e5e; - cursor:ns-resize; +.luckysheet-wa-calculate-size:hover { + background: #5e5e5e; + cursor: ns-resize; } -#luckysheet-wa-functionbox-cancel{ - left: 110px; +#luckysheet-wa-functionbox-cancel { + left: 110px; font-size: 18px; } -#luckysheet-wa-functionbox-confirm{ - left: 136px; +#luckysheet-wa-functionbox-confirm { + left: 136px; font-size: 18px; } @@ -889,11 +898,11 @@ color: #d6d6d6; } - .luckysheet-wa-functionbox img { - vertical-align: middle; - width: 30px; - height: 30px; - } +.luckysheet-wa-functionbox img { + vertical-align: middle; + width: 30px; + height: 30px; +} .luckysheet-wa-calculate-active { @@ -901,9 +910,9 @@ cursor: pointer; } - .luckysheet-wa-calculate-active:hover { - color: #0188fb; - } +.luckysheet-wa-calculate-active:hover { + color: #0188fb; +} .luckysheet-grid-container { width: 100%; @@ -950,9 +959,9 @@ overflow: hidden; } - .luckysheet-sta-c .luckysheet-sta-content span { - margin-right: 10px; - } +.luckysheet-sta-c .luckysheet-sta-content span { + margin-right: 10px; +} .luckysheet-grid-window { position: absolute; @@ -978,18 +987,21 @@ cursor: default; } - .luckysheet-sheet-area > div, .luckysheet-sheet-area .luckysheet-sheets-item { - display: inline-block; - margin-right: 6px; - margin-top: 1px; - padding: 1px 6px; - } +.luckysheet-sheet-area>div, +.luckysheet-sheet-area .luckysheet-sheets-item { + display: inline-block; + margin-right: 6px; + margin-top: 1px; + padding: 1px 6px; +} - .luckysheet-sheet-area .luckysheet-sheets-add { - margin-left: 47px; - } +.luckysheet-sheet-area .luckysheet-sheets-add { + margin-left: 47px; +} -div.luckysheet-sheets-add, div.luckysheet-sheets-m, div.luckysheet-sheets-scroll { +div.luckysheet-sheets-add, +div.luckysheet-sheets-m, +div.luckysheet-sheets-scroll { background: #F6F6F6; border: 1px solid #F6F6F6; color: #4E4E4E; @@ -999,7 +1011,8 @@ div.luckysheet-sheets-scroll { display: none; } -div.luckysheet-sheets-add:hover, div.luckysheet-sheets-m:hover { +div.luckysheet-sheets-add:hover, +div.luckysheet-sheets-m:hover { color: #2A2A2A; } @@ -1012,13 +1025,13 @@ div.luckysheet-sheets-add:hover, div.luckysheet-sheets-m:hover { z-index: 1005; } - .docs-sheet-fade div { - background-color: #d7d7d7; - width: 2px; - float: right; - position: relative; - height: 100%; - } +.docs-sheet-fade div { + background-color: #d7d7d7; + width: 2px; + float: right; + position: relative; + height: 100%; +} .docs-sheet-fade-left { left: 0; @@ -1051,23 +1064,23 @@ div.luckysheet-sheets-add:hover, div.luckysheet-sheets-m:hover { vertical-align: bottom; } - .luckysheet-sheet-area div.luckysheet-sheet-container div.luckysheet-sheet-container-c { - padding: 0px 0px; - margin-left: 0px; - overflow: hidden; - white-space: nowrap; - position: relative; - max-width: 100%; - vertical-align: bottom; - display: inline-block; - } +.luckysheet-sheet-area div.luckysheet-sheet-container div.luckysheet-sheet-container-c { + padding: 0px 0px; + margin-left: 0px; + overflow: hidden; + white-space: nowrap; + position: relative; + max-width: 100%; + vertical-align: bottom; + display: inline-block; +} .luckysheet-sheet-area div.luckysheet-sheets-item { padding: 2px 6px; height: 18px; line-height: 18px; - box-shadow: 0px 1px 2px rgba(0,0,0,0.3) inset; + box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.3) inset; background-color: #f7f7f7; border-color: #000; border-top-color: #aaa; @@ -1085,54 +1098,54 @@ div.luckysheet-sheets-add:hover, div.luckysheet-sheets-m:hover { font-size: 13px; } - .luckysheet-sheet-area div.luckysheet-sheets-item:hover { - background-color: #EFEFEF; - border-color: #a5a5a5; - color: #490500; - } +.luckysheet-sheet-area div.luckysheet-sheets-item:hover { + background-color: #EFEFEF; + border-color: #a5a5a5; + color: #490500; +} - .luckysheet-sheet-area div.luckysheet-sheets-item .luckysheet-sheets-item-menu { - margin-left: 2px; - display: inline-block; - top: -2px; - position: relative; - color: #A1A1A1; - position: absolute; - height: 100%; - width: 15px; - right: 0px; - text-align: center; - } +.luckysheet-sheet-area div.luckysheet-sheets-item .luckysheet-sheets-item-menu { + margin-left: 2px; + display: inline-block; + top: -2px; + position: relative; + color: #A1A1A1; + position: absolute; + height: 100%; + width: 15px; + right: 0px; + text-align: center; +} + +.luckysheet-sheet-area div.luckysheet-sheets-item .luckysheet-sheets-item-menu:hover { + color: #2A2A2A; + cursor: pointer; +} - .luckysheet-sheet-area div.luckysheet-sheets-item .luckysheet-sheets-item-menu:hover { - color: #2A2A2A; - cursor: pointer; - } +.luckysheet-sheet-area div.luckysheet-sheets-item .luckysheet-sheets-item-name { + padding: 0px 3px; +} - .luckysheet-sheet-area div.luckysheet-sheets-item .luckysheet-sheets-item-name { - padding: 0px 3px; - } +.luckysheet-sheet-area div.luckysheet-sheets-item .luckysheet-sheets-item-name[contenteditable="true"] { + border: 1px solid #d9d9d9; + display: inline-block; + height: 16px; + min-width: 8px; + margin: -4px -1px; + -moz-user-modify: read-write-plaintext-only; + -webkit-user-modify: read-write-plaintext-only; + -moz-user-select: text !important; + -ms-user-select: text !important; + -webkit-user-select: text !important +} - .luckysheet-sheet-area div.luckysheet-sheets-item .luckysheet-sheets-item-name[contenteditable="true"] { - border: 1px solid #d9d9d9; - display: inline-block; - height: 16px; - min-width: 8px; - margin: -4px -1px; - -moz-user-modify: read-write-plaintext-only; - -webkit-user-modify: read-write-plaintext-only; - -moz-user-select: text !important; - -ms-user-select: text !important; - -webkit-user-select: text !important - } - - .luckysheet-sheet-area div.luckysheet-sheets-item .luckysheet-sheets-item-name[contenteditable="true"]:focus { - -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,0.3); - -moz-box-shadow: inset 0 1px 2px rgba(0,0,0,0.3); - box-shadow: inset 0 1px 2px rgba(0,0,0,0.3); - border: 1px solid #4d90fe; - outline: none - } +.luckysheet-sheet-area div.luckysheet-sheets-item .luckysheet-sheets-item-name[contenteditable="true"]:focus { + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.3); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.3); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.3); + border: 1px solid #4d90fe; + outline: none +} .luckysheet-sheet-area div.luckysheet-sheets-item-active { padding: 2px 8px; @@ -1142,18 +1155,18 @@ div.luckysheet-sheets-add:hover, div.luckysheet-sheets-m:hover { border-color: #aaa; border-top-color: #fff; color: #222; - box-shadow: 0 1px 2px rgba(0,0,0,0.2); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); cursor: default; top: -2px; border-bottom: none; padding-right: 20px; } - .luckysheet-sheet-area div.luckysheet-sheets-item-active:hover { - background-color: #fff; - border-color: #aaa; - color: #222; - } +.luckysheet-sheet-area div.luckysheet-sheets-item-active:hover { + background-color: #fff; + border-color: #aaa; + color: #222; +} .luckysheet-grid-window-1 { position: absolute; @@ -1256,9 +1269,9 @@ div.luckysheet-sheets-add:hover, div.luckysheet-sheets-m:hover { /*transition: all 0.1s;*/ } - .luckysheet-cols-menu-btn:hover { - opacity: 1; - } +.luckysheet-cols-menu-btn:hover { + opacity: 1; +} .luckysheet-cols-h-hover { @@ -1371,7 +1384,10 @@ div.luckysheet-sheets-add:hover, div.luckysheet-sheets-m:hover { direction: ltr; } -body:not(.ewa-ipad) .luckysheet-cols-h-cell-nosel:hover, body:not(.ewa-ipad) .luckysheet-cols-h-cell-sel:hover, body:not(.ewa-ipad) .luckysheet-rows-h-cell-nosel:hover, body:not(.ewa-ipad) .luckysheet-rows-h-cell-sel:hover { +body:not(.ewa-ipad) .luckysheet-cols-h-cell-nosel:hover, +body:not(.ewa-ipad) .luckysheet-cols-h-cell-sel:hover, +body:not(.ewa-ipad) .luckysheet-rows-h-cell-nosel:hover, +body:not(.ewa-ipad) .luckysheet-rows-h-cell-sel:hover { background-color: #FCC3C3; } @@ -1493,7 +1509,7 @@ body:not(.ewa-ipad) .luckysheet-cols-h-cell-nosel:hover, body:not(.ewa-ipad) .lu .luckysheet-cell-loading { width: 100%; height: 100%; - background-color: rgba(255,255,255, 0.3); + background-color: rgba(255, 255, 255, 0.3); position: absolute; overflow: hidden; outline-style: none; @@ -1511,16 +1527,17 @@ body:not(.ewa-ipad) .luckysheet-cols-h-cell-nosel:hover, body:not(.ewa-ipad) .lu text-align: center; } - .luckysheet-cell-loading-inner span { - margin-left: 10px; - } +.luckysheet-cell-loading-inner span { + margin-left: 10px; +} .luckysheet-cell-main { /*border: solid 1px #BEC1C4;*/ background-color: white; width: 15px; height: 15px; - background-color: #F3F3F2;/*#E7E7E7;*/ + background-color: #F3F3F2; + /*#E7E7E7;*/ border-collapse: collapse; position: relative; overflow: hidden; @@ -1528,7 +1545,8 @@ body:not(.ewa-ipad) .luckysheet-cols-h-cell-nosel:hover, body:not(.ewa-ipad) .lu cursor: default; } -.luckysheet-scrollbars, .luckysheet-menu { +.luckysheet-scrollbars, +.luckysheet-menu { scrollbar-base-color: #FFFFFF; scrollbar-track-color: #E7E7E7; scrollbar-darkshadow-color: #FFFFFF; @@ -1559,21 +1577,27 @@ body:not(.ewa-ipad) .luckysheet-cols-h-cell-nosel:hover, body:not(.ewa-ipad) .lu .luckysheet-scrollbar-ltr::-webkit-scrollbar-button:start { display: none } + .luckysheet-scrollbar-ltr::-webkit-scrollbar-button:end { display: block } + .luckysheet-scrollbar-ltr::-webkit-scrollbar-button { border: 1px solid #d9d9d9 } + .luckysheet-scrollbar-ltr::-webkit-scrollbar-button:horizontal { border-width: 1px 0 0 0 } + .luckysheet-scrollbar-ltr::-webkit-scrollbar-button:vertical { border-width: 0 0 0 1px } + .luckysheet-scrollbar-ltr::-webkit-scrollbar-button:vertical { border-width: 0 1px 0 0 } + .luckysheet-scrollbar-ltr::-webkit-scrollbar-button:horizontal:increment { background: no-repeat url("waffle_sprite.png") -663px -13px; width: 15px; @@ -1585,12 +1609,15 @@ body:not(.ewa-ipad) .luckysheet-cols-h-cell-nosel:hover, body:not(.ewa-ipad) .lu background-color: #f8f8f8; border-bottom: 1px solid #d9d9d9; } + .luckysheet-scrollbar-ltr::-webkit-scrollbar-button:horizontal:increment:hover { background: no-repeat url("waffle_sprite.png") -395px -62px } + .luckysheet-scrollbar-ltr::-webkit-scrollbar-button:horizontal:increment:active { background: no-repeat url("waffle_sprite.png") -679px -13px } + .luckysheet-scrollbar-ltr::-webkit-scrollbar-button:horizontal:decrement { border-left: 1px solid #d9d9d9; border-right: 1px solid #d9d9d9; @@ -1598,24 +1625,30 @@ body:not(.ewa-ipad) .luckysheet-cols-h-cell-nosel:hover, body:not(.ewa-ipad) .lu width: 17px; border-bottom: 1px solid #d9d9d9; } + .luckysheet-scrollbar-ltr::-webkit-scrollbar-button:horizontal:hover { background: no-repeat url("waffle_sprite.png") -145px -70px } + .luckysheet-scrollbar-ltr::-webkit-scrollbar-button:horizontal:active { background: no-repeat url("waffle_sprite.png") -552px 0 } + .luckysheet-scrollbar-ltr::-webkit-scrollbar-button:vertical:increment { padding-top: 1px; background: no-repeat url("waffle_sprite.png") -531px -24px; border-left: 1px solid #d9d9d9; height: 15px } + .luckysheet-scrollbar-ltr::-webkit-scrollbar-button:vertical:increment:hover { background: no-repeat url("waffle_sprite.png") -570px -42px } + .luckysheet-scrollbar-ltr::-webkit-scrollbar-button:vertical:increment:active { background: no-repeat url("waffle_sprite.png") -83px -46px } + .luckysheet-scrollbar-ltr::-webkit-scrollbar-button:vertical:decrement { border-top: 1px solid #d9d9d9; border-bottom: 1px solid #d9d9d9; @@ -1623,22 +1656,24 @@ body:not(.ewa-ipad) .luckysheet-cols-h-cell-nosel:hover, body:not(.ewa-ipad) .lu background: no-repeat url("waffle_sprite.png") -631px -27px; height: 17px } + .luckysheet-scrollbar-ltr::-webkit-scrollbar-button:vertical:decrement:hover { background: no-repeat url("waffle_sprite.png") -180px -58px } + .luckysheet-scrollbar-ltr::-webkit-scrollbar-button:vertical:decrement:active { background: no-repeat url("waffle_sprite.png") -776px -28px } -.luckysheet-scrollbar-x{ +.luckysheet-scrollbar-x { bottom: 0px; left: 44px; overflow-x: scroll; } -.luckysheet-scrollbar-y{ +.luckysheet-scrollbar-y { right: 0px; - top:0px; + top: 0px; overflow-y: scroll; } @@ -1682,7 +1717,7 @@ body:not(.ewa-ipad) .luckysheet-cols-h-cell-nosel:hover, body:not(.ewa-ipad) .lu text-decoration: none; } -.luckysheet-bottom-controll-row{ +.luckysheet-bottom-controll-row { position: absolute; height: 30px; /*width: 400px;*/ @@ -1692,18 +1727,18 @@ body:not(.ewa-ipad) .luckysheet-cols-h-cell-nosel:hover, body:not(.ewa-ipad) .lu z-index: 1000; } -#luckysheet-bottom-add-row{ +#luckysheet-bottom-add-row { padding: 5px 20px; margin-right: 5px; margin-top: -2px; } -#luckysheet-bottom-add-row-input{ +#luckysheet-bottom-add-row-input { width: 40px; min-width: 40px; } -#luckysheet-bottom-return-top{ +#luckysheet-bottom-return-top { padding: 5px 6px; margin-left: 10px; margin-top: -2px; @@ -1749,7 +1784,7 @@ body:not(.ewa-ipad) .luckysheet-cols-h-cell-nosel:hover, body:not(.ewa-ipad) .lu z-index: 14; /*border:1px solid #fff;*/ margin: 0px 0 0 0px; - background: rgba(0,80,208,0.15); + background: rgba(0, 80, 208, 0.15); display: none; /*transition: all 0.1s;*/ } @@ -1988,7 +2023,7 @@ body:not(.ewa-ipad) .luckysheet-cols-h-cell-nosel:hover, body:not(.ewa-ipad) .lu width: 2px; } -.luckysheet-cs-touchhandle{ +.luckysheet-cs-touchhandle { display: none; position: absolute; width: 16px; @@ -1998,7 +2033,8 @@ body:not(.ewa-ipad) .luckysheet-cols-h-cell-nosel:hover, body:not(.ewa-ipad) .lu pointer-events: auto; touch-action: auto; } -.luckysheet-cs-touchhandle:before{ + +.luckysheet-cs-touchhandle:before { content: ''; display: block; width: 16px; @@ -2008,23 +2044,28 @@ body:not(.ewa-ipad) .luckysheet-cols-h-cell-nosel:hover, body:not(.ewa-ipad) .lu box-sizing: border-box; border-radius: 50%; } -.luckysheet-cs-touchhandle-lt{ + +.luckysheet-cs-touchhandle-lt { left: -13px; top: -13px; } -.luckysheet-cs-touchhandle-lb{ + +.luckysheet-cs-touchhandle-lb { left: -13px; bottom: -13px; } -.luckysheet-cs-touchhandle-rt{ + +.luckysheet-cs-touchhandle-rt { right: -13px; top: -13px; } -.luckysheet-cs-touchhandle-rb{ + +.luckysheet-cs-touchhandle-rb { right: -13px; bottom: -13px; } -.luckysheet-cs-touchhandle .luckysheet-cs-touchhandle-btn{ + +.luckysheet-cs-touchhandle .luckysheet-cs-touchhandle-btn { position: absolute; width: 10px; height: 10px; @@ -2069,19 +2110,19 @@ body:not(.ewa-ipad) .luckysheet-cols-h-cell-nosel:hover, body:not(.ewa-ipad) .lu } .luckysheet-scrollbars::-webkit-scrollbar-thumb { - background-color: rgba(0,0,0,.2); + background-color: rgba(0, 0, 0, .2); background-clip: padding-box; border: solid transparent; border-radius: 12px; border-width: 2px 1px 1px 2px; - box-shadow: inset 1px 1px 0 rgba(0,0,0,.1), inset 0 -1px 0 rgba(0,0,0,.07); + box-shadow: inset 1px 1px 0 rgba(0, 0, 0, .1), inset 0 -1px 0 rgba(0, 0, 0, .07); } - .luckysheet-scrollbars::-webkit-scrollbar-thumb:hover { - background-color: #969696; - border: 1px solid #A0A0A0; - border-radius: 12px; - } +.luckysheet-scrollbars::-webkit-scrollbar-thumb:hover { + background-color: #969696; + border: 1px solid #A0A0A0; + border-radius: 12px; +} .luckysheet-grdusedrange { position: absolute; @@ -2155,16 +2196,16 @@ body:not(.ewa-ipad) .luckysheet-cols-h-cell-nosel:hover, body:not(.ewa-ipad) .lu -webkit-border-radius: 0; -moz-border-radius: 0; border-radius: 0; - -webkit-box-shadow: 0 2px 4px rgba(0,0,0,0.2); - -moz-box-shadow: 0 2px 4px rgba(0,0,0,0.2); - box-shadow: 0 2px 4px rgba(0,0,0,0.2); + -webkit-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); -webkit-transition: opacity 0.218s; -moz-transition: opacity 0.218s; -o-transition: opacity 0.218s; transition: opacity 0.218s; background: #fff; border: 1px solid #ccc; - border: 1px solid rgba(0,0,0,.2); + border: 1px solid rgba(0, 0, 0, .2); cursor: default; font-size: 13px; margin: 0; @@ -2177,35 +2218,36 @@ body:not(.ewa-ipad) .luckysheet-cols-h-cell-nosel:hover, body:not(.ewa-ipad) .lu display: none; } - .luckysheet-cols-menu .luckysheet-cols-menuitem { - position: relative; - color: #333; - cursor: pointer; - list-style: none; - margin: 0; - /*padding: 6px 8em 6px 30px;*/ - padding: 1px 6em 1px 20px; - white-space: nowrap; - padding-left: 8px; - vertical-align: middle; - padding-right: 24px; - user-select: none; - } +.luckysheet-cols-menu .luckysheet-cols-menuitem { + position: relative; + color: #333; + cursor: pointer; + list-style: none; + margin: 0; + /*padding: 6px 8em 6px 30px;*/ + padding: 1px 6em 1px 20px; + white-space: nowrap; + padding-left: 8px; + vertical-align: middle; + padding-right: 24px; + user-select: none; +} + +.luckysheet-cols-menu .luckysheet-cols-menuitem:hover, +.luckysheet-cols-menu .luckysheet-cols-menuitem-hover { + background: #E1E1E1; +} - .luckysheet-cols-menu .luckysheet-cols-menuitem:hover, .luckysheet-cols-menu .luckysheet-cols-menuitem-hover { - background: #E1E1E1; - } - - .luckysheet-cols-menu .luckysheet-cols-menuitem .luckysheet-cols-menuitem-content { - position: relative; - color: #333; - cursor: pointer; - list-style: none; - margin: 0; - padding: 6px 7em 6px 30px; - white-space: nowrap; - user-select: none; - } +.luckysheet-cols-menu .luckysheet-cols-menuitem .luckysheet-cols-menuitem-content { + position: relative; + color: #333; + cursor: pointer; + list-style: none; + margin: 0; + padding: 6px 7em 6px 30px; + white-space: nowrap; + user-select: none; +} .luckysheet-rightgclick-menu .luckysheet-cols-menuitem .luckysheet-cols-menuitem-content { position: relative; @@ -2218,7 +2260,9 @@ body:not(.ewa-ipad) .luckysheet-cols-h-cell-nosel:hover, body:not(.ewa-ipad) .lu user-select: none; } -#luckysheet-cols-menu .luckysheet-cols-menuitem, .luckysheet-filter-menu .luckysheet-cols-menuitem, #luckysheet-pivotTable-config-option .luckysheet-cols-menuitem { +#luckysheet-cols-menu .luckysheet-cols-menuitem, +.luckysheet-filter-menu .luckysheet-cols-menuitem, +#luckysheet-pivotTable-config-option .luckysheet-cols-menuitem { padding-right: 10px; padding-left: 12px; } @@ -2230,7 +2274,8 @@ body:not(.ewa-ipad) .luckysheet-cols-h-cell-nosel:hover, body:not(.ewa-ipad) .lu padding-bottom: 1px; } -#luckysheet-cols-menu .luckysheet-cols-menuitem-content, .luckysheet-filter-menu .luckysheet-cols-menuitem .luckysheet-cols-menuitem-content { +#luckysheet-cols-menu .luckysheet-cols-menuitem-content, +.luckysheet-filter-menu .luckysheet-cols-menuitem .luckysheet-cols-menuitem-content { padding-right: 10px; padding-left: 12px; } @@ -2246,47 +2291,53 @@ body:not(.ewa-ipad) .luckysheet-cols-h-cell-nosel:hover, body:not(.ewa-ipad) .lu padding-bottom: 1px; } -.luckysheet-filter-menu .luckysheet-filter-byvalue .luckysheet-cols-menuitem, .luckysheet-filter-menu .luckysheet-pivotTableFilter-byvalue .luckysheet-cols-menuitem { +.luckysheet-filter-menu .luckysheet-filter-byvalue .luckysheet-cols-menuitem, +.luckysheet-filter-menu .luckysheet-pivotTableFilter-byvalue .luckysheet-cols-menuitem { padding-top: 2px; padding-bottom: 0px; cursor: default; } -.luckysheet-filter-menu .luckysheet-filter-byvalue .luckysheet-cols-menuitem-content, .luckysheet-filter-menu .luckysheet-pivotTableFilter-byvalue .luckysheet-cols-menuitem-content { +.luckysheet-filter-menu .luckysheet-filter-byvalue .luckysheet-cols-menuitem-content, +.luckysheet-filter-menu .luckysheet-pivotTableFilter-byvalue .luckysheet-cols-menuitem-content { padding-top: 2px; padding-bottom: 0px; cursor: default; } - .luckysheet-filter-menu .luckysheet-filter-byvalue .luckysheet-cols-menuitem-content input, .luckysheet-filter-menu .luckysheet-pivotTableFilter-byvalue .luckysheet-cols-menuitem-content input { - height: 24px; - width: 191px; - padding-right: 25px; - padding-left: 3px; - -webkit-border-radius: 1px; - -moz-border-radius: 1px; - border-radius: 1px; - border: 1px solid #d9d9d9; - border-top: 1px solid #c0c0c0; - font-size: 13px; - } +.luckysheet-filter-menu .luckysheet-filter-byvalue .luckysheet-cols-menuitem-content input, +.luckysheet-filter-menu .luckysheet-pivotTableFilter-byvalue .luckysheet-cols-menuitem-content input { + height: 24px; + width: 191px; + padding-right: 25px; + padding-left: 3px; + -webkit-border-radius: 1px; + -moz-border-radius: 1px; + border-radius: 1px; + border: 1px solid #d9d9d9; + border-top: 1px solid #c0c0c0; + font-size: 13px; +} - .luckysheet-filter-menu .luckysheet-filter-byvalue .luckysheet-cols-menuitem-content input:focus, .luckysheet-filter-menu .luckysheet-pivotTableFilter-byvalue .luckysheet-cols-menuitem-content input:focus { - -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,0.3); - -moz-box-shadow: inset 0 1px 2px rgba(0,0,0,0.3); - box-shadow: inset 0 1px 2px rgba(0,0,0,0.3); - border: 1px solid #4d90fe; - outline: none; - } +.luckysheet-filter-menu .luckysheet-filter-byvalue .luckysheet-cols-menuitem-content input:focus, +.luckysheet-filter-menu .luckysheet-pivotTableFilter-byvalue .luckysheet-cols-menuitem-content input:focus { + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.3); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.3); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.3); + border: 1px solid #4d90fe; + outline: none; +} - .luckysheet-filter-menu .luckysheet-filter-byvalue .luckysheet-cols-menuitem-content .luckysheet-filter-byvalue-input-icon, .luckysheet-filter-menu .luckysheet-pivotTableFilter-byvalue .luckysheet-cols-menuitem-content .luckysheet-pivotTableFilter-byvalue-input-icon { - position: absolute; - right: 17px; - top: 7px; - } +.luckysheet-filter-menu .luckysheet-filter-byvalue .luckysheet-cols-menuitem-content .luckysheet-filter-byvalue-input-icon, +.luckysheet-filter-menu .luckysheet-pivotTableFilter-byvalue .luckysheet-cols-menuitem-content .luckysheet-pivotTableFilter-byvalue-input-icon { + position: absolute; + right: 17px; + top: 7px; +} -.luckysheet-filter-menu .luckysheet-filter-byvalue .luckysheet-cols-menuitem:hover, .luckysheet-filter-menu .luckysheet-pivotTableFilter-byvalue .luckysheet-cols-menuitem:hover { +.luckysheet-filter-menu .luckysheet-filter-byvalue .luckysheet-cols-menuitem:hover, +.luckysheet-filter-menu .luckysheet-pivotTableFilter-byvalue .luckysheet-cols-menuitem:hover { background: #fff; } @@ -2294,29 +2345,34 @@ body:not(.ewa-ipad) .luckysheet-cols-h-cell-nosel:hover, body:not(.ewa-ipad) .lu background: #fff; } -.luckysheet-filter-menu .luckysheet-cols-menuitem:last-child, .luckysheet-filter-menu .luckysheet-cols-menuitem:last-child .luckysheet-cols-menuitem-content { +.luckysheet-filter-menu .luckysheet-cols-menuitem:last-child, +.luckysheet-filter-menu .luckysheet-cols-menuitem:last-child .luckysheet-cols-menuitem-content { cursor: default; } -#luckysheet-filter-byvalue-select, #luckysheet-pivotTableFilter-byvalue-select { +#luckysheet-filter-byvalue-select, +#luckysheet-pivotTableFilter-byvalue-select { min-height: 100px; width: 200px; } -.luckysheet-filter-menu .luckysheet-mousedown-filter-byvalue-btn span, .luckysheet-filter-menu .luckysheet-mousedown-pivotTableFilter-byvalue-btn span { +.luckysheet-filter-menu .luckysheet-mousedown-filter-byvalue-btn span, +.luckysheet-filter-menu .luckysheet-mousedown-pivotTableFilter-byvalue-btn span { color: blue; cursor: pointer; text-decoration: underline; } -.luckysheet-filter-menu .luckysheet-mousedown-filter-byvalue-btn div, .luckysheet-filter-menu .luckysheet-mousedown-pivotTableFilter-byvalue-btn div { +.luckysheet-filter-menu .luckysheet-mousedown-filter-byvalue-btn div, +.luckysheet-filter-menu .luckysheet-mousedown-pivotTableFilter-byvalue-btn div { position: absolute; right: 14px; top: 0px; font-size: 18px; } -.luckysheet-filter-menu .luckysheet-filter-bycondition .luckysheet-filter-selected-input, .luckysheet-filter-menu .luckysheet-pivotTableFilter-bycondition .luckysheet-pivotTableFilter-selected-input { +.luckysheet-filter-menu .luckysheet-filter-bycondition .luckysheet-filter-selected-input, +.luckysheet-filter-menu .luckysheet-pivotTableFilter-bycondition .luckysheet-pivotTableFilter-selected-input { padding-left: 8px; padding-right: 8px; margin-top: 3px; @@ -2324,22 +2380,24 @@ body:not(.ewa-ipad) .luckysheet-cols-h-cell-nosel:hover, body:not(.ewa-ipad) .lu } - .luckysheet-filter-menu .luckysheet-filter-bycondition .luckysheet-filter-selected-input input, .luckysheet-filter-menu .luckysheet-pivotTableFilter-bycondition .luckysheet-pivotTableFilter-selected-input input { - height: 24px; - width: 100%; - padding-right: 3px; - padding-left: 3px; - margin-left: -3px; - -webkit-border-radius: 1px; - -moz-border-radius: 1px; - border-radius: 1px; - border: 1px solid #d9d9d9; - border-top: 1px solid #c0c0c0; - font-size: 13px; - } +.luckysheet-filter-menu .luckysheet-filter-bycondition .luckysheet-filter-selected-input input, +.luckysheet-filter-menu .luckysheet-pivotTableFilter-bycondition .luckysheet-pivotTableFilter-selected-input input { + height: 24px; + width: 100%; + padding-right: 3px; + padding-left: 3px; + margin-left: -3px; + -webkit-border-radius: 1px; + -moz-border-radius: 1px; + border-radius: 1px; + border: 1px solid #d9d9d9; + border-top: 1px solid #c0c0c0; + font-size: 13px; +} -.luckysheet-filter-menu .luckysheet-filter-bycondition .luckysheet-filter-selected-input2 input, .luckysheet-filter-menu .luckysheet-pivotTableFilter-bycondition .luckysheet-pivotTableFilter-selected-input2 input { +.luckysheet-filter-menu .luckysheet-filter-bycondition .luckysheet-filter-selected-input2 input, +.luckysheet-filter-menu .luckysheet-pivotTableFilter-bycondition .luckysheet-pivotTableFilter-selected-input2 input { height: 24px; width: 92px; padding-right: 3px; @@ -2353,7 +2411,8 @@ body:not(.ewa-ipad) .luckysheet-cols-h-cell-nosel:hover, body:not(.ewa-ipad) .lu font-size: 13px; } -.luckysheet-filter-menu .luckysheet-filter-bycondition .luckysheet-filter-selected-input2 span, .luckysheet-filter-menu .luckysheet-pivotTableFilter-bycondition .luckysheet-pivotTableFilter-selected-input2 span { +.luckysheet-filter-menu .luckysheet-filter-bycondition .luckysheet-filter-selected-input2 span, +.luckysheet-filter-menu .luckysheet-pivotTableFilter-bycondition .luckysheet-pivotTableFilter-selected-input2 span { margin-left: 2px; margin-right: 5px; } @@ -2390,74 +2449,94 @@ body:not(.ewa-ipad) .luckysheet-cols-h-cell-nosel:hover, body:not(.ewa-ipad) .lu color: blue; } -#luckysheet-filter-byvalue-select table, #luckysheet-pivotTableFilter-byvalue-select table { +#luckysheet-filter-byvalue-select table, +#luckysheet-pivotTableFilter-byvalue-select table { table-layout: fixed; } -#luckysheet-filter-byvalue-select tr td, #luckysheet-pivotTableFilter-byvalue-select tr td { +#luckysheet-filter-byvalue-select tr td, +#luckysheet-pivotTableFilter-byvalue-select tr td { padding: 2px 3px; } -#luckysheet-filter-byvalue-select tr:hover td, #luckysheet-pivotTableFilter-byvalue-select tr:hover td { +#luckysheet-filter-byvalue-select tr:hover td, +#luckysheet-pivotTableFilter-byvalue-select tr:hover td { background: #E1E1E1; } /*筛选改 -- pan*/ -.luckysheet-cols-menu .cf:before,.luckysheet-cols-menu .cf:after{ - content:""; - display:table; +.luckysheet-cols-menu .cf:before, +.luckysheet-cols-menu .cf:after { + content: ""; + display: table; } -.luckysheet-cols-menu .cf:after{ - clear:both; + +.luckysheet-cols-menu .cf:after { + clear: both; } -#luckysheet-filter-byvalue-select .yearBox .monthList, #luckysheet-pivotTableFilter-byvalue-select .yearBox .monthList{ + +#luckysheet-filter-byvalue-select .yearBox .monthList, +#luckysheet-pivotTableFilter-byvalue-select .yearBox .monthList { padding-left: 20px; } -#luckysheet-filter-byvalue-select .yearBox .dayList, #luckysheet-pivotTableFilter-byvalue-select .yearBox .dayList{ + +#luckysheet-filter-byvalue-select .yearBox .dayList, +#luckysheet-pivotTableFilter-byvalue-select .yearBox .dayList { padding-left: 20px; } -#luckysheet-filter-byvalue-select .yearBox .fa-caret-right, #luckysheet-pivotTableFilter-byvalue-select .yearBox .fa-caret-right{ + +#luckysheet-filter-byvalue-select .yearBox .fa-caret-right, +#luckysheet-pivotTableFilter-byvalue-select .yearBox .fa-caret-right { padding: 0 2px; float: left; margin-top: 3px; cursor: pointer; } -#luckysheet-filter-byvalue-select .count, #luckysheet-pivotTableFilter-byvalue-select .count{ + +#luckysheet-filter-byvalue-select .count, +#luckysheet-pivotTableFilter-byvalue-select .count { color: gray; margin-left: 5px; } -#luckysheet-filter-byvalue-select input[type="checkbox"], #luckysheet-pivotTableFilter-byvalue-select input[type="checkbox"]{ + +#luckysheet-filter-byvalue-select input[type="checkbox"], +#luckysheet-pivotTableFilter-byvalue-select input[type="checkbox"] { width: auto; height: auto; float: left; } /*颜色筛选 -- pan*/ -#luckysheet-filter-orderby-color-submenu{ +#luckysheet-filter-orderby-color-submenu { font-size: 12px; } -#luckysheet-filter-orderby-color-submenu .title{ + +#luckysheet-filter-orderby-color-submenu .title { padding: 10px; font-weight: 600; color: #333; background-color: #f4f4f4; text-align: center; } -#luckysheet-filter-orderby-color-submenu .item{ + +#luckysheet-filter-orderby-color-submenu .item { padding: 5px 40px 5px 20px; cursor: pointer; position: relative; } -#luckysheet-filter-orderby-color-submenu .item:hover{ + +#luckysheet-filter-orderby-color-submenu .item:hover { background-color: #d3d3d3; } -#luckysheet-filter-orderby-color-submenu .item label{ + +#luckysheet-filter-orderby-color-submenu .item label { display: block; width: 70px; height: 20px; border: 1px solid #d1d1d1; } -#luckysheet-filter-orderby-color-submenu .item input[type="checkbox"]{ + +#luckysheet-filter-orderby-color-submenu .item input[type="checkbox"] { position: absolute; right: 10px; top: 6px; @@ -2501,41 +2580,41 @@ body:not(.ewa-ipad) .luckysheet-cols-h-cell-nosel:hover, body:not(.ewa-ipad) .lu user-select: none; } - .btn:focus, - .btn:active:focus, - .btn.active:focus, - .btn.focus, - .btn:active.focus, - .btn.active.focus { - outline: thin dotted; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; - } +.btn:focus, +.btn:active:focus, +.btn.active:focus, +.btn.focus, +.btn:active.focus, +.btn.active.focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} - .btn:hover, - .btn:focus, - .btn.focus { - color: #333333; - text-decoration: none; - } +.btn:hover, +.btn:focus, +.btn.focus { + color: #333333; + text-decoration: none; +} - .btn:active, - .btn.active { - outline: 0; - background-image: none; - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); - } +.btn:active, +.btn.active { + outline: 0; + background-image: none; + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} - .btn.disabled, - .btn[disabled], - fieldset[disabled] .btn { - cursor: not-allowed; - opacity: 0.65; - filter: alpha(opacity=65); - -webkit-box-shadow: none; - box-shadow: none; - } +.btn.disabled, +.btn[disabled], +fieldset[disabled] .btn { + cursor: not-allowed; + opacity: 0.65; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + box-shadow: none; +} a.btn.disabled, fieldset[disabled] a.btn { @@ -2548,64 +2627,64 @@ fieldset[disabled] a.btn { border-color: #ccc; } - .btn-default:focus, - .btn-default.focus { - color: #333; - background-color: #e6e6e6; - border-color: #8c8c8c; - } +.btn-default:focus, +.btn-default.focus { + color: #333; + background-color: #e6e6e6; + border-color: #8c8c8c; +} - .btn-default:hover { - color: #333; - background-color: #e6e6e6; - border-color: #adadad; - } +.btn-default:hover { + color: #333; + background-color: #e6e6e6; + border-color: #adadad; +} - .btn-default:active, - .btn-default.active, - .open > .dropdown-toggle.btn-default { - color: #333; - background-color: #e6e6e6; - border-color: #adadad; - } +.btn-default:active, +.btn-default.active, +.open>.dropdown-toggle.btn-default { + color: #333; + background-color: #e6e6e6; + border-color: #adadad; +} + +.btn-default:active:hover, +.btn-default.active:hover, +.open>.dropdown-toggle.btn-default:hover, +.btn-default:active:focus, +.btn-default.active:focus, +.open>.dropdown-toggle.btn-default:focus, +.btn-default:active.focus, +.btn-default.active.focus, +.open>.dropdown-toggle.btn-default.focus { + color: #333; + background-color: #d4d4d4; + border-color: #8c8c8c; +} - .btn-default:active:hover, - .btn-default.active:hover, - .open > .dropdown-toggle.btn-default:hover, - .btn-default:active:focus, - .btn-default.active:focus, - .open > .dropdown-toggle.btn-default:focus, - .btn-default:active.focus, - .btn-default.active.focus, - .open > .dropdown-toggle.btn-default.focus { - color: #333; - background-color: #d4d4d4; - border-color: #8c8c8c; - } - - .btn-default:active, - .btn-default.active, - .open > .dropdown-toggle.btn-default { - background-image: none; - } +.btn-default:active, +.btn-default.active, +.open>.dropdown-toggle.btn-default { + background-image: none; +} - .btn-default.disabled:hover, - .btn-default[disabled]:hover, - fieldset[disabled] .btn-default:hover, - .btn-default.disabled:focus, - .btn-default[disabled]:focus, - fieldset[disabled] .btn-default:focus, - .btn-default.disabled.focus, - .btn-default[disabled].focus, - fieldset[disabled] .btn-default.focus { - background-color: #fff; - border-color: #ccc; - } +.btn-default.disabled:hover, +.btn-default[disabled]:hover, +fieldset[disabled] .btn-default:hover, +.btn-default.disabled:focus, +.btn-default[disabled]:focus, +fieldset[disabled] .btn-default:focus, +.btn-default.disabled.focus, +.btn-default[disabled].focus, +fieldset[disabled] .btn-default.focus { + background-color: #fff; + border-color: #ccc; +} - .btn-default .badge { - color: #fff; - background-color: #333; - } +.btn-default .badge { + color: #fff; + background-color: #333; +} .btn-primary { @@ -2614,83 +2693,88 @@ fieldset[disabled] a.btn { border-color: #2e6da4; } - .btn-primary:focus, - .btn-primary.focus { - color: #ffffff; - background-color: #286090; - border-color: #122b40; - } +.btn-primary:focus, +.btn-primary.focus { + color: #ffffff; + background-color: #286090; + border-color: #122b40; +} - .btn-primary:hover { - color: #ffffff; - background-color: #286090; - border-color: #204d74; - } +.btn-primary:hover { + color: #ffffff; + background-color: #286090; + border-color: #204d74; +} - .btn-primary:active, - .btn-primary.active, - .open > .dropdown-toggle.btn-primary { - color: #ffffff; - background-color: #286090; - border-color: #204d74; - } +.btn-primary:active, +.btn-primary.active, +.open>.dropdown-toggle.btn-primary { + color: #ffffff; + background-color: #286090; + border-color: #204d74; +} + +.btn-primary:active:hover, +.btn-primary.active:hover, +.open>.dropdown-toggle.btn-primary:hover, +.btn-primary:active:focus, +.btn-primary.active:focus, +.open>.dropdown-toggle.btn-primary:focus, +.btn-primary:active.focus, +.btn-primary.active.focus, +.open>.dropdown-toggle.btn-primary.focus { + color: #ffffff; + background-color: #204d74; + border-color: #122b40; +} - .btn-primary:active:hover, - .btn-primary.active:hover, - .open > .dropdown-toggle.btn-primary:hover, - .btn-primary:active:focus, - .btn-primary.active:focus, - .open > .dropdown-toggle.btn-primary:focus, - .btn-primary:active.focus, - .btn-primary.active.focus, - .open > .dropdown-toggle.btn-primary.focus { - color: #ffffff; - background-color: #204d74; - border-color: #122b40; - } - - .btn-primary:active, - .btn-primary.active, - .open > .dropdown-toggle.btn-primary { - background-image: none; - } +.btn-primary:active, +.btn-primary.active, +.open>.dropdown-toggle.btn-primary { + background-image: none; +} - .btn-primary.disabled, - .btn-primary[disabled], - fieldset[disabled] .btn-primary, - .btn-primary.disabled:hover, - .btn-primary[disabled]:hover, - fieldset[disabled] .btn-primary:hover, - .btn-primary.disabled:focus, - .btn-primary[disabled]:focus, - fieldset[disabled] .btn-primary:focus, - .btn-primary.disabled.focus, - .btn-primary[disabled].focus, - fieldset[disabled] .btn-primary.focus, - .btn-primary.disabled:active, - .btn-primary[disabled]:active, - fieldset[disabled] .btn-primary:active, - .btn-primary.disabled.active, - .btn-primary[disabled].active, - fieldset[disabled] .btn-primary.active { - background-color: #337ab7; - border-color: #2e6da4; - } +.btn-primary.disabled, +.btn-primary[disabled], +fieldset[disabled] .btn-primary, +.btn-primary.disabled:hover, +.btn-primary[disabled]:hover, +fieldset[disabled] .btn-primary:hover, +.btn-primary.disabled:focus, +.btn-primary[disabled]:focus, +fieldset[disabled] .btn-primary:focus, +.btn-primary.disabled.focus, +.btn-primary[disabled].focus, +fieldset[disabled] .btn-primary.focus, +.btn-primary.disabled:active, +.btn-primary[disabled]:active, +fieldset[disabled] .btn-primary:active, +.btn-primary.disabled.active, +.btn-primary[disabled].active, +fieldset[disabled] .btn-primary.active { + background-color: #337ab7; + border-color: #2e6da4; +} - .btn-primary .badge { - color: #337ab7; - background-color: #ffffff; - } +.btn-primary .badge { + color: #337ab7; + background-color: #ffffff; +} -.btn-primary, .label-default, .list-group-item.active, .list-group-item.active:hover, .list-group-item.active:focus { +.btn-primary, +.label-default, +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus { background: #0188FB; border-color: #726EFE; } - .btn-primary:hover, .btn-primary:focus { - background: #388cf5; - border-color: #6864FE; - } +.btn-primary:hover, +.btn-primary:focus { + background: #388cf5; + border-color: #6864FE; +} .btn-danger { @@ -2699,66 +2783,68 @@ fieldset[disabled] a.btn { border-color: #d43f3a; } - .btn-danger:focus, - .btn-danger.focus { - color: #fff; - background-color: #c9302c; - border-color: #761c19; - } +.btn-danger:focus, +.btn-danger.focus { + color: #fff; + background-color: #c9302c; + border-color: #761c19; +} - .btn-danger:hover { - color: #fff; - background-color: #c9302c; - border-color: #ac2925; - } +.btn-danger:hover { + color: #fff; + background-color: #c9302c; + border-color: #ac2925; +} - .btn-danger:active, - .btn-danger.active, - .open > .dropdown-toggle.btn-danger { - color: #fff; - background-color: #c9302c; - border-color: #ac2925; - } +.btn-danger:active, +.btn-danger.active, +.open>.dropdown-toggle.btn-danger { + color: #fff; + background-color: #c9302c; + border-color: #ac2925; +} + +.btn-danger:active:hover, +.btn-danger.active:hover, +.open>.dropdown-toggle.btn-danger:hover, +.btn-danger:active:focus, +.btn-danger.active:focus, +.open>.dropdown-toggle.btn-danger:focus, +.btn-danger:active.focus, +.btn-danger.active.focus, +.open>.dropdown-toggle.btn-danger.focus { + color: #fff; + background-color: #ac2925; + border-color: #761c19; +} - .btn-danger:active:hover, - .btn-danger.active:hover, - .open > .dropdown-toggle.btn-danger:hover, - .btn-danger:active:focus, - .btn-danger.active:focus, - .open > .dropdown-toggle.btn-danger:focus, - .btn-danger:active.focus, - .btn-danger.active.focus, - .open > .dropdown-toggle.btn-danger.focus { - color: #fff; - background-color: #ac2925; - border-color: #761c19; - } - - .btn-danger:active, - .btn-danger.active, - .open > .dropdown-toggle.btn-danger { - background-image: none; - } +.btn-danger:active, +.btn-danger.active, +.open>.dropdown-toggle.btn-danger { + background-image: none; +} - .btn-danger.disabled:hover, - .btn-danger[disabled]:hover, - fieldset[disabled] .btn-danger:hover, - .btn-danger.disabled:focus, - .btn-danger[disabled]:focus, - fieldset[disabled] .btn-danger:focus, - .btn-danger.disabled.focus, - .btn-danger[disabled].focus, - fieldset[disabled] .btn-danger.focus { - background-color: #d9534f; - border-color: #d43f3a; - } +.btn-danger.disabled:hover, +.btn-danger[disabled]:hover, +fieldset[disabled] .btn-danger:hover, +.btn-danger.disabled:focus, +.btn-danger[disabled]:focus, +fieldset[disabled] .btn-danger:focus, +.btn-danger.disabled.focus, +.btn-danger[disabled].focus, +fieldset[disabled] .btn-danger.focus { + background-color: #d9534f; + border-color: #d43f3a; +} - .btn-danger .badge { - color: #d9534f; - background-color: #fff; - } +.btn-danger .badge { + color: #d9534f; + background-color: #fff; +} -.luckysheet-cols-change-size, .luckysheet-rows-change-size, .luckysheet-change-size-line { +.luckysheet-cols-change-size, +.luckysheet-rows-change-size, +.luckysheet-change-size-line { /*display: none;*/ position: absolute; z-index: 12; @@ -2790,7 +2876,7 @@ fieldset[disabled] a.btn { .luckysheet-count-show { position: absolute; z-index: 15; - background: rgba(76,76,76, 0.8); + background: rgba(76, 76, 76, 0.8); color: #fff; padding: 2px 3px; border-radius: 3px; @@ -2803,43 +2889,44 @@ fieldset[disabled] a.btn { text-align: center; } - .luckysheet-row-count-show div { - /*-webkit-writing-mode: vertical-rl;*/ - writing-mode: vertical-rl; - /*-ms-writing-mode: tb-rl;*/ - writing-mode: vertical-rl; - -ms-writing-mode: initial; - *writing-mode: tb-rl; /* IE 写法 */ - } +.luckysheet-row-count-show div { + /*-webkit-writing-mode: vertical-rl;*/ + writing-mode: vertical-rl; + /*-ms-writing-mode: tb-rl;*/ + writing-mode: vertical-rl; + -ms-writing-mode: initial; + *writing-mode: tb-rl; + /* IE 写法 */ +} - .luckysheet-row-count-show div:last-child { - writing-mode: initial; - } +.luckysheet-row-count-show div:last-child { + writing-mode: initial; +} #luckysheet-sheet-list { max-height: 60%; overflow: auto; } - #luckysheet-sheet-list .luckysheet-cols-menuitem { - padding-left: 0px; - padding-right: 10px; - } +#luckysheet-sheet-list .luckysheet-cols-menuitem { + padding-left: 0px; + padding-right: 10px; +} - #luckysheet-sheet-list .luckysheet-cols-menuitem .luckysheet-cols-menuitem-content { - padding-left: 5px; - } +#luckysheet-sheet-list .luckysheet-cols-menuitem .luckysheet-cols-menuitem-content { + padding-left: 5px; +} - #luckysheet-sheet-list .icon { - width: 15px; - margin-left: 4px; - display: inline-block; - } +#luckysheet-sheet-list .icon { + width: 15px; + margin-left: 4px; + display: inline-block; +} .luckysheet-input-box { position: absolute; - font: normal normal 400 13px arial,sans,sans-serif; + font: normal normal 400 13px arial, sans, sans-serif; text-align: left; top: -10000px; max-height: 9900px; @@ -2853,9 +2940,9 @@ fieldset[disabled] a.btn { overflow: initial; white-space: pre-wrap; outline: none; - -webkit-box-shadow: 0 2px 5px rgba(0,0,0,0.4); - -moz-box-shadow: 0 2px 5px rgba(0,0,0,0.4); - box-shadow: 0 2px 5px rgba(0,0,0,0.4); + -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.4); + -moz-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.4); + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.4); word-wrap: break-word; } @@ -2869,12 +2956,12 @@ fieldset[disabled] a.btn { -webkit-user-modify: read-write-plaintext-only; white-space: pre-wrap; -webkit-transform: translateZ(0); -/* background-color: white;*/ + /* background-color: white;*/ } -#luckysheet-rich-text-editor{ - -webkit-user-modify: read-write; -/* background-color: rgb(255, 255, 255); +#luckysheet-rich-text-editor { + -webkit-user-modify: read-write; + /* background-color: rgb(255, 255, 255); font-size: 13px; color: rgb(0, 0, 0); font-weight: 400; @@ -2893,19 +2980,19 @@ fieldset[disabled] a.btn { padding: 1px 6px; background-color: #5292f7; border-radius: 2px; - box-shadow: 0px 1px 2px rgba(0,0,0,0.5); + box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.5); color: white; } .luckysheet-modal-dialog { - -webkit-box-shadow: 0 4px 16px rgba(0,0,0,.2); - -moz-box-shadow: 0 4px 16px rgba(0,0,0,.2); - box-shadow: 0 4px 16px rgba(0,0,0,.2); + -webkit-box-shadow: 0 4px 16px rgba(0, 0, 0, .2); + -moz-box-shadow: 0 4px 16px rgba(0, 0, 0, .2); + box-shadow: 0 4px 16px rgba(0, 0, 0, .2); background: #fff; background-clip: padding-box; border: 1px solid #acacac; - border: 1px solid rgba(0,0,0,.333); + border: 1px solid rgba(0, 0, 0, .333); outline: 0; position: absolute; color: #000; @@ -3094,16 +3181,16 @@ fieldset[disabled] a.btn { -o-transition: all 0.2s; } - .luckysheet-modal-controll-btn:hover { - border: 1px solid #A1A1A1; - color: #0188fb; - } +.luckysheet-modal-controll-btn:hover { + border: 1px solid #A1A1A1; + color: #0188fb; +} - .luckysheet-modal-controll-btn:active { - border: 1px solid #BBBBBB; - background: #EFEFEF; - color: #0188fb; - } +.luckysheet-modal-controll-btn:active { + border: 1px solid #BBBBBB; + background: #EFEFEF; + color: #0188fb; +} .luckysheet-modal-controll-del { font-size: 16px; @@ -3139,9 +3226,9 @@ fieldset[disabled] a.btn { cursor: pointer; } - .luckysheet-sort-item-close:hover { - color: #494949; - } +.luckysheet-sort-item-close:hover { + color: #494949; +} .luckysheet-modal-dialog-title-close:hover { color: #5e5e5e; @@ -3158,9 +3245,9 @@ fieldset[disabled] a.btn { margin-top: 10px; } - .luckysheet-modal-dialog-buttons button { - margin-right: 10px; - } +.luckysheet-modal-dialog-buttons button { + margin-right: 10px; +} .luckysheet-modal-dialog-title-text span { font-family: Arial; @@ -3170,36 +3257,38 @@ fieldset[disabled] a.btn { font-size: 12px; } - .luckysheet-sort-modal label input, .luckysheet-sort-modal label span { - vertical-align: middle; - } +.luckysheet-sort-modal label input, +.luckysheet-sort-modal label span { + vertical-align: middle; +} - .luckysheet-sort-modal > div, .luckysheet-sort-modal table { - margin-bottom: 10px; - } +.luckysheet-sort-modal>div, +.luckysheet-sort-modal table { + margin-bottom: 10px; +} - .luckysheet-sort-modal table tr { - margin-bottom: 10px; - } +.luckysheet-sort-modal table tr { + margin-bottom: 10px; +} - .luckysheet-sort-modal table tr td { - padding: 5px; - white-space: nowrap; - border-top: 1px solid #ffc6c6; - } +.luckysheet-sort-modal table tr td { + padding: 5px; + white-space: nowrap; + border-top: 1px solid #ffc6c6; +} - .luckysheet-sort-modal table tr td > div:first-child { - margin-bottom: 8px; - } +.luckysheet-sort-modal table tr td>div:first-child { + margin-bottom: 8px; +} - .luckysheet-sort-modal table tr td select { - max-width: 180px; - min-width: 50px; - } +.luckysheet-sort-modal table tr td select { + max-width: 180px; + min-width: 50px; +} - .luckysheet-sort-modal table tr:first-child td { - border-top: none; - } +.luckysheet-sort-modal table tr:first-child td { + border-top: none; +} .luckysheet-filter-options { color: #897BFF; @@ -3218,11 +3307,11 @@ fieldset[disabled] a.btn { /* transition: all 0.1s; */ } - .luckysheet-filter-options:hover { - color: #fff; - border: 1px solid #fff; - background: #897BFF; - } +.luckysheet-filter-options:hover { + color: #fff; + border: 1px solid #fff; + background: #897BFF; +} .luckysheet-filter-options-active { color: #fff; @@ -3236,11 +3325,11 @@ fieldset[disabled] a.btn { -moz-border-radius: 2px; border-radius: 2px; background-color: #f5f5f5; - background-image: -webkit-linear-gradient(to bottom,#f5f5f5,#f1f1f1); - background-image: -moz-linear-gradient(to bottom,#f5f5f5,#f1f1f1); - background-image: -ms-linear-gradient(to bottom,#f5f5f5,#f1f1f1); - background-image: -o-linear-gradient(to bottom,#f5f5f5,#f1f1f1); - background-image: linear-gradient(to bottom,#f5f5f5,#f1f1f1); + background-image: -webkit-linear-gradient(to bottom, #f5f5f5, #f1f1f1); + background-image: -moz-linear-gradient(to bottom, #f5f5f5, #f1f1f1); + background-image: -ms-linear-gradient(to bottom, #f5f5f5, #f1f1f1); + background-image: -o-linear-gradient(to bottom, #f5f5f5, #f1f1f1); + background-image: linear-gradient(to bottom, #f5f5f5, #f1f1f1); border: 1px solid #dcdcdc; color: #333; cursor: default; @@ -3258,26 +3347,26 @@ fieldset[disabled] a.btn { padding-left: 15px; } - .luckysheet-flat-menu-button:hover { - -webkit-border-radius: 2px; - -moz-border-radius: 2px; - border-radius: 2px; - background-color: #f5f5f5; - background-image: -webkit-linear-gradient(to bottom,#f1f1f1,#f5f5f5); - background-image: -moz-linear-gradient(to bottom,#f1f1f1,#f5f5f5); - background-image: -ms-linear-gradient(to bottom,#f1f1f1,#f5f5f5); - background-image: -o-linear-gradient(to bottom,#f1f1f1,#f5f5f5); - background-image: linear-gradient(to bottom,#f1f1f1,#f5f5f5); - border: 1px solid #D0D0D0; - color: #000; - } +.luckysheet-flat-menu-button:hover { + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + border-radius: 2px; + background-color: #f5f5f5; + background-image: -webkit-linear-gradient(to bottom, #f1f1f1, #f5f5f5); + background-image: -moz-linear-gradient(to bottom, #f1f1f1, #f5f5f5); + background-image: -ms-linear-gradient(to bottom, #f1f1f1, #f5f5f5); + background-image: -o-linear-gradient(to bottom, #f1f1f1, #f5f5f5); + background-image: linear-gradient(to bottom, #f1f1f1, #f5f5f5); + border: 1px solid #D0D0D0; + color: #000; +} - .luckysheet-flat-menu-button div { - display: inline-block; - vertical-align: middle; - position: absolute; - right: 15px; - } +.luckysheet-flat-menu-button div { + display: inline-block; + vertical-align: middle; + position: absolute; + right: 15px; +} /*图表生成CSS*/ @@ -3287,7 +3376,8 @@ fieldset[disabled] a.btn { min-width: 860px; } -.luckysheet-data-visualization-selection, .luckysheet-data-pivotTable-selection { +.luckysheet-data-visualization-selection, +.luckysheet-data-pivotTable-selection { width: 30%; min-width: 200px; display: none; @@ -3321,8 +3411,7 @@ fieldset[disabled] a.btn { overflow: hidden; } -.luckysheet-datavisual-left { -} +.luckysheet-datavisual-left {} .luckysheet-datavisual-tabs { border-bottom: 1px solid #DEDEDE; @@ -3331,30 +3420,30 @@ fieldset[disabled] a.btn { padding-left: 20px; } - .luckysheet-datavisual-tabs .luckysheet-datavisual-tab { - padding: 0px 5px; - text-align: center; - display: inline-block; - cursor: pointer; - border: 1px solid #fff; - border-bottom: none; - height: 24px; - line-height: 24px; - background: #fff; - color: #777; - } +.luckysheet-datavisual-tabs .luckysheet-datavisual-tab { + padding: 0px 5px; + text-align: center; + display: inline-block; + cursor: pointer; + border: 1px solid #fff; + border-bottom: none; + height: 24px; + line-height: 24px; + background: #fff; + color: #777; +} - .luckysheet-datavisual-tabs .luckysheet-datavisual-tab:hover { - color: #000; - } +.luckysheet-datavisual-tabs .luckysheet-datavisual-tab:hover { + color: #000; +} - .luckysheet-datavisual-tabs .luckysheet-datavisual-tab-active { - border: 1px solid #DEDEDE; - border-bottom: none; - cursor: default; - height: 26px; - color: #000; - } +.luckysheet-datavisual-tabs .luckysheet-datavisual-tab-active { + border: 1px solid #DEDEDE; + border-bottom: none; + cursor: default; + height: 26px; + color: #000; +} .luckysheet-datavisual-tab-content { position: absolute; @@ -3366,50 +3455,50 @@ fieldset[disabled] a.btn { -.luckysheet-datavisual-quick { -} +.luckysheet-datavisual-quick {} .luckysheet-datavisual-quick-menu { width: 90px; overflow: auto; margin-top: 5px; } + .luckysheet-datavisual-quick-menu::-webkit-scrollbar { - display:none; -} - - .luckysheet-datavisual-quick-menu > div { - text-align: left; - padding: 4px 4px; - border-right: 3px solid #fff; - color: #777; - cursor: pointer; - line-height: 1.4em; - word-wrap: break-word; - /*margin: 4px 0px;*/ - } + display: none; +} - .luckysheet-datavisual-quick-menu > div:hover { - color: #000; - } +.luckysheet-datavisual-quick-menu>div { + text-align: left; + padding: 4px 4px; + border-right: 3px solid #fff; + color: #777; + cursor: pointer; + line-height: 1.4em; + word-wrap: break-word; + /*margin: 4px 0px;*/ +} - .luckysheet-datavisual-quick-menu > div i { - width: 15px; - } +.luckysheet-datavisual-quick-menu>div:hover { + color: #000; +} - .luckysheet-datavisual-quick-menu > div:hover i { - color: #FF7E7E; - } +.luckysheet-datavisual-quick-menu>div i { + width: 15px; +} - .luckysheet-datavisual-quick-menu > div.luckysheet-datavisual-quick-menu-active { - border-right: 3px solid #FF7E7E; - color: #000; - font-weight: bold; - } +.luckysheet-datavisual-quick-menu>div:hover i { + color: #FF7E7E; +} - .luckysheet-datavisual-quick-menu > div.luckysheet-datavisual-quick-menu-active:hover i { - color: #000; - } +.luckysheet-datavisual-quick-menu>div.luckysheet-datavisual-quick-menu-active { + border-right: 3px solid #FF7E7E; + color: #000; + font-weight: bold; +} + +.luckysheet-datavisual-quick-menu>div.luckysheet-datavisual-quick-menu-active:hover i { + color: #000; +} .luckysheet-datavisual-quick-range { padding: 5px 0px; @@ -3427,11 +3516,12 @@ fieldset[disabled] a.btn { .luckysheet-datavisual-range-container-focus { border: 1px solid #4d90fe; - box-shadow: inset 0px 1px 2px rgba(0,0,0,0.3); + box-shadow: inset 0px 1px 2px rgba(0, 0, 0, 0.3); outline: none; } -.luckysheet-datavisual-range-input, .luckysheet-datavisual-range-input:focus { +.luckysheet-datavisual-range-input, +.luckysheet-datavisual-range-input:focus { background: transparent !important; border: none !important; box-sizing: border-box; @@ -3452,22 +3542,22 @@ fieldset[disabled] a.btn { width: 21px; } - .luckysheet-datavisual-range-button-container div { - padding: 2px 10px 0px 10px; - font-size: 18px; - cursor: pointer; - color: #6598F3; - } +.luckysheet-datavisual-range-button-container div { + padding: 2px 10px 0px 10px; + font-size: 18px; + cursor: pointer; + color: #6598F3; +} - .luckysheet-datavisual-range-button-container div:hover { - color: #FF7E7E; - } +.luckysheet-datavisual-range-button-container div:hover { + color: #FF7E7E; +} .luckysheet-datavisual-range-config { /*display: inline-block;*/ } -.luckysheet-datavisual-quick-m{ +.luckysheet-datavisual-quick-m { margin-top: 5px; } @@ -3500,16 +3590,16 @@ fieldset[disabled] a.btn { height: 80px; } - .luckysheet-datavisual-quick-list-item:hover { - border: 1px solid #FF7E7E; - box-shadow: 0px 0px 20px #FF7E7E; - } +.luckysheet-datavisual-quick-list-item:hover { + border: 1px solid #FF7E7E; + box-shadow: 0px 0px 20px #FF7E7E; +} - .luckysheet-datavisual-quick-list-item img { - display: inline-block; - width: 100px; - height: 80px; - } +.luckysheet-datavisual-quick-list-item img { + display: inline-block; + width: 100px; + height: 80px; +} .luckysheet-datavisual-quick-list-item-active { border: 1px solid #6598F3; @@ -3532,10 +3622,10 @@ fieldset[disabled] a.btn { } .jfk-tooltip-hide { - -webkit-transition: visibility .13s,opacity .13s ease-out,left 0 linear .13s,top 0 linear .13s; - -moz-transition: visibility .13s,opacity .13s ease-out,left 0 linear .13s,top 0 linear .13s; - -o-transition: visibility .13s,opacity .13s ease-out,left 0 linear .13s,top 0 linear .13s; - transition: visibility .13s,opacity .13s ease-out,left 0 linear .13s,top 0 linear .13s; + -webkit-transition: visibility .13s, opacity .13s ease-out, left 0 linear .13s, top 0 linear .13s; + -moz-transition: visibility .13s, opacity .13s ease-out, left 0 linear .13s, top 0 linear .13s; + -o-transition: visibility .13s, opacity .13s ease-out, left 0 linear .13s, top 0 linear .13s; + transition: visibility .13s, opacity .13s ease-out, left 0 linear .13s, top 0 linear .13s; opacity: 0; left: 20px !important; top: 20px !important; @@ -3549,10 +3639,10 @@ fieldset[disabled] a.btn { -webkit-box-shadow: none; -moz-box-shadow: none; box-shadow: none; - -webkit-transition: visibility 0,opacity .13s ease-in; - -moz-transition: visibility 0,opacity .13s ease-in; - -o-transition: visibility 0,opacity .13s ease-in; - transition: visibility 0,opacity .13s ease-in; + -webkit-transition: visibility 0, opacity .13s ease-in; + -moz-transition: visibility 0, opacity .13s ease-in; + -o-transition: visibility 0, opacity .13s ease-in; + transition: visibility 0, opacity .13s ease-in; background-color: #2a2a2a; border: 1px solid #fff; color: #fff; @@ -3579,28 +3669,30 @@ fieldset[disabled] a.btn { position: absolute; } - .jfk-tooltip-arrow .jfk-tooltip-arrowimplafter { - border: 5px solid; - } +.jfk-tooltip-arrow .jfk-tooltip-arrowimplafter { + border: 5px solid; +} - .jfk-tooltip-arrow .jfk-tooltip-arrowimplbefore { - border: 6px solid; - } +.jfk-tooltip-arrow .jfk-tooltip-arrowimplbefore { + border: 6px solid; +} - .jfk-tooltip-arrow .jfk-tooltip-arrowimplbefore, .jfk-tooltip-arrow .jfk-tooltip-arrowimplafter { - content: ''; - display: block; - height: 0; - position: absolute; - width: 0; - } +.jfk-tooltip-arrow .jfk-tooltip-arrowimplbefore, +.jfk-tooltip-arrow .jfk-tooltip-arrowimplafter { + content: ''; + display: block; + height: 0; + position: absolute; + width: 0; +} .jfk-tooltip-arrowup .jfk-tooltip-arrowimplafter { border-top-width: 0; top: 1px; } -.jfk-tooltip-arrowdown .jfk-tooltip-arrowimplafter, .jfk-tooltip-arrowup .jfk-tooltip-arrowimplafter { +.jfk-tooltip-arrowdown .jfk-tooltip-arrowimplafter, +.jfk-tooltip-arrowup .jfk-tooltip-arrowimplafter { border-color: #2a2a2a transparent; left: -5px; } @@ -3609,7 +3701,8 @@ fieldset[disabled] a.btn { border-top-width: 0; } -.jfk-tooltip-arrowdown .jfk-tooltip-arrowimplbefore, .jfk-tooltip-arrowup .jfk-tooltip-arrowimplbefore { +.jfk-tooltip-arrowdown .jfk-tooltip-arrowimplbefore, +.jfk-tooltip-arrowup .jfk-tooltip-arrowimplbefore { border-color: #fff transparent; left: -6px; } @@ -3624,39 +3717,40 @@ fieldset[disabled] a.btn { top: 0px; } - .luckysheet-datavisual-config input { - outline: none; - } +.luckysheet-datavisual-config input { + outline: none; +} - .luckysheet-datavisual-config .luckysheet-datavisual-accordion-title { - position: relative; - width: 97%; - height: 33px; - background: #F5F5F5; - border: 1px solid #E5E5E5; - margin-top: 30px; - line-height: 30px; - font-weight: bold; - color: #D14836; - cursor: pointer; - } +.luckysheet-datavisual-config .luckysheet-datavisual-accordion-title { + position: relative; + width: 97%; + height: 33px; + background: #F5F5F5; + border: 1px solid #E5E5E5; + margin-top: 30px; + line-height: 30px; + font-weight: bold; + color: #D14836; + cursor: pointer; +} - .luckysheet-datavisual-config .luckysheet-datavisual-accordion-title:hover { - background: #EFEFEF; - border: 1px solid #E0E0E0; - } - - .luckysheet-datavisual-config .luckysheet-datavisual-accordion-content { - position: relative; - width: 97%; - border: 1px solid #E5E5E5; - border-top: 1px solid #fff; - display: none; - color: #505050; - padding-bottom: 20px; - } +.luckysheet-datavisual-config .luckysheet-datavisual-accordion-title:hover { + background: #EFEFEF; + border: 1px solid #E0E0E0; +} + +.luckysheet-datavisual-config .luckysheet-datavisual-accordion-content { + position: relative; + width: 97%; + border: 1px solid #E5E5E5; + border-top: 1px solid #fff; + display: none; + color: #505050; + padding-bottom: 20px; +} -.luckysheet-datavisual-config-input, .luckysheet-datavisual-config-input-no { +.luckysheet-datavisual-config-input, +.luckysheet-datavisual-config-input-no { background: #fff; border: 1px solid #d9d9d9; border-top: 1px solid #c0c0c0; @@ -3668,11 +3762,12 @@ fieldset[disabled] a.btn { padding: 3px; } - .luckysheet-datavisual-config-input:focus, .luckysheet-datavisual-config-input-no:focus { - border: 1px solid #4d90fe; - box-shadow: inset 0px 1px 2px rgba(0,0,0,0.3); - outline: none; - } +.luckysheet-datavisual-config-input:focus, +.luckysheet-datavisual-config-input-no:focus { + border: 1px solid #4d90fe; + box-shadow: inset 0px 1px 2px rgba(0, 0, 0, 0.3); + outline: none; +} .luckysheet-datavisual-content-row { margin-left: 15px; @@ -3722,19 +3817,20 @@ fieldset[disabled] a.btn { box-shadow: none; } -.luckysheet-datavisual-config-slider, .luckysheet-datavisual-config-slider-range { +.luckysheet-datavisual-config-slider, +.luckysheet-datavisual-config-slider-range { width: 70%; display: inline-block; } - .luckysheet-datavisual-config-slider-range .luckysheet-slider-handle { - width: 45px; - height: 26px; - top: 50%; - margin-top: -13px; - text-align: center; - line-height: 26px; - } +.luckysheet-datavisual-config-slider-range .luckysheet-slider-handle { + width: 45px; + height: 26px; + top: 50%; + margin-top: -13px; + text-align: center; + line-height: 26px; +} .luckysheet-datavisual-content-row-subtitle { display: none; @@ -3764,7 +3860,8 @@ fieldset[disabled] a.btn { display: none; } -#luckysheetswichxy-button, #piecutselect-button { +#luckysheetswichxy-button, +#piecutselect-button { width: 70%; } @@ -3779,7 +3876,11 @@ fieldset[disabled] a.btn { background-image: none; } -#luckysheetswichseries-menu .ui-state-active, #pie0cutselect-menu .ui-state-active, #pie1cutselect-menu .ui-state-active, #pie2cutselect-menu .ui-state-active, #luckysheetscatterselectshow-menu .ui-state-active { +#luckysheetswichseries-menu .ui-state-active, +#pie0cutselect-menu .ui-state-active, +#pie1cutselect-menu .ui-state-active, +#pie2cutselect-menu .ui-state-active, +#luckysheetscatterselectshow-menu .ui-state-active { border: 1px solid #F5F5F5; background: #F5F5F5; color: #333; @@ -3789,8 +3890,7 @@ fieldset[disabled] a.btn { z-index: 100003; } -.luckysheet-datavisual-skin { -} +.luckysheet-datavisual-skin {} .luckysheet-datavisual-skin-menu { top: 5px; @@ -3815,31 +3915,32 @@ fieldset[disabled] a.btn { overflow: auto; } - .luckysheet-datavisual-skin-c .luckysheet-datavisual-skin-item { - display: inline-block; - width: 46%; - height: 152px; - /*background: red;*/ - margin-right: 5px; - border: 4px solid #EFEFEF; - border-radius: 4px; - position: relative; - cursor: pointer; - } +.luckysheet-datavisual-skin-c .luckysheet-datavisual-skin-item { + display: inline-block; + width: 46%; + height: 152px; + /*background: red;*/ + margin-right: 5px; + border: 4px solid #EFEFEF; + border-radius: 4px; + position: relative; + cursor: pointer; +} - .luckysheet-datavisual-skin-c .luckysheet-datavisual-skin-item-more { - display: inline-block; - width: 94%; - height: 32px; - position: relative; - cursor: pointer; - font-size: 20px; - line-height: 32px; - margin-bottom: 20px; - text-align: center; - } +.luckysheet-datavisual-skin-c .luckysheet-datavisual-skin-item-more { + display: inline-block; + width: 94%; + height: 32px; + position: relative; + cursor: pointer; + font-size: 20px; + line-height: 32px; + margin-bottom: 20px; + text-align: center; +} -.luckysheet-datavisual-skin-item .luckysheet-datavisual-skin-canvas, .luckysheet-datavisual-skin-item .luckysheet-datavisual-skin-cover { +.luckysheet-datavisual-skin-item .luckysheet-datavisual-skin-canvas, +.luckysheet-datavisual-skin-item .luckysheet-datavisual-skin-cover { position: absolute; width: 100%; height: 100%; @@ -3851,7 +3952,7 @@ fieldset[disabled] a.btn { } .luckysheet-datavisual-skin-item .luckysheet-datavisual-skin-cover { - background-color: rgba(0,0,0,0.4); + background-color: rgba(0, 0, 0, 0.4); color: #FFFFFF; font-size: 14px; height: 30%; @@ -3929,12 +4030,12 @@ fieldset[disabled] a.btn { line-height: 35px; } - .luckysheet-chart-point-config-left-mid span { - color: blue; - cursor: pointer; - text-decoration: underline; - font-size: 12px - } +.luckysheet-chart-point-config-left-mid span { + color: blue; + cursor: pointer; + text-decoration: underline; + font-size: 12px +} .luckysheet-chart-point-config-left-bottom { position: absolute; @@ -3981,9 +4082,9 @@ fieldset[disabled] a.btn { box-shadow: 0px 0px 4px #656565; } - .luckysheet-chart-point-searchitem-active .luckysheet-chart-point-searchitem-selected { - display: block; - } +.luckysheet-chart-point-searchitem-active .luckysheet-chart-point-searchitem-selected { + display: block; +} .luckysheet-chart-point-searchitem-name { font-size: 12px; @@ -4102,9 +4203,9 @@ fieldset[disabled] a.btn { width: 260px; border: 1px solid #E5E5E5; z-index: 1004; - box-shadow: 0px 2px 4px rgba(0,0,0,0.2); - -webkit-box-shadow: 0px 2px 4px rgba(0,0,0,0.2); - -moz-box-shadow: 0px 2px 4px rgba(0,0,0,0.2); + box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.2); + -webkit-box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.2); -moz-user-select: none; -khtml-user-select: none; -webkit-user-select: none; @@ -4113,29 +4214,29 @@ fieldset[disabled] a.btn { /*display: none;*/ } - .luckysheet-modal-dialog-slider .luckysheet-modal-dialog-slider-title { - background: #333; - color: #fff; - height: 39px; - width: 100%; - position: absolute; - top: 0px; - left: 0px; - line-height: 39px; - font-size: 13px; - } +.luckysheet-modal-dialog-slider .luckysheet-modal-dialog-slider-title { + background: #333; + color: #fff; + height: 39px; + width: 100%; + position: absolute; + top: 0px; + left: 0px; + line-height: 39px; + font-size: 13px; +} - .luckysheet-modal-dialog-slider .luckysheet-modal-dialog-slider-title > span:first-child { - margin-left: 5px; - font-weight: bold; - } +.luckysheet-modal-dialog-slider .luckysheet-modal-dialog-slider-title>span:first-child { + margin-left: 5px; + font-weight: bold; +} - .luckysheet-modal-dialog-slider .luckysheet-modal-dialog-slider-title > span:last-child { - position: relative; - float: right; - margin-right: 20px; - cursor: pointer; - } +.luckysheet-modal-dialog-slider .luckysheet-modal-dialog-slider-title>span:last-child { + position: relative; + float: right; + margin-right: 20px; + cursor: pointer; +} .luckysheet-modal-dialog-slider-content { background: #EFEFEF; @@ -4155,22 +4256,22 @@ fieldset[disabled] a.btn { line-height: 40px; } - .luckysheet-modal-dialog-slider-range > div:first-child { - font-weight: bold; - overflow: hidden; - text-overflow: ellipsis; - float: left; - max-width: 170px; - margin-right: 10px; - margin-left: 5px; - white-space: nowrap; - } +.luckysheet-modal-dialog-slider-range>div:first-child { + font-weight: bold; + overflow: hidden; + text-overflow: ellipsis; + float: left; + max-width: 170px; + margin-right: 10px; + margin-left: 5px; + white-space: nowrap; +} - .luckysheet-modal-dialog-slider-range > div:last-child { - color: blue; - cursor: pointer; - float: left; - } +.luckysheet-modal-dialog-slider-range>div:last-child { + color: blue; + cursor: pointer; + float: left; +} .luckysheet-modal-dialog-slider-list { width: 250px; @@ -4199,10 +4300,10 @@ fieldset[disabled] a.btn { border: 1px solid #fff; } - .luckysheet-modal-dialog-slider-list .luckysheet-modal-dialog-slider-list-item:hover { - background: #FFF6CB; - border: 1px solid #FFE463; - } +.luckysheet-modal-dialog-slider-list .luckysheet-modal-dialog-slider-list-item:hover { + background: #FFF6CB; + border: 1px solid #FFE463; +} .luckysheet-modal-dialog-slider-list .luckysheet-slider-list-item-name { cursor: pointer; @@ -4228,26 +4329,29 @@ fieldset[disabled] a.btn { height: 25px; } - .luckysheet-modal-dialog-slider-list .luckysheet-slider-list-item-selected i { - margin-top: 4px; - font-size: 16px; - } +.luckysheet-modal-dialog-slider-list .luckysheet-slider-list-item-selected i { + margin-top: 4px; + font-size: 16px; +} - .luckysheet-modal-dialog-slider-list .luckysheet-slider-list-item-selected div { - border: 1px solid #9C9C9C; - top: 4px; - left: 1px; - position: absolute; - height: 14px; - width: 14px; - -moz-box-shadow: 1px 1px 1px #DBDBDB inset; /* For Firefox3.6+ */ - -webkit-box-shadow: 1px 1px 1px #DBDBDB inset; /* For Chrome5+, Safari5+ */ - box-shadow: 1px 1px 1px #DBDBDB inset; /* For Latest Opera */ - } +.luckysheet-modal-dialog-slider-list .luckysheet-slider-list-item-selected div { + border: 1px solid #9C9C9C; + top: 4px; + left: 1px; + position: absolute; + height: 14px; + width: 14px; + -moz-box-shadow: 1px 1px 1px #DBDBDB inset; + /* For Firefox3.6+ */ + -webkit-box-shadow: 1px 1px 1px #DBDBDB inset; + /* For Chrome5+, Safari5+ */ + box-shadow: 1px 1px 1px #DBDBDB inset; + /* For Latest Opera */ +} - .luckysheet-modal-dialog-slider-list .luckysheet-slider-list-item-selected div:hover { - border: 1px solid #5E5E5E; - } +.luckysheet-modal-dialog-slider-list .luckysheet-slider-list-item-selected div:hover { + border: 1px solid #5E5E5E; +} .luckysheet-modal-dialog-slider-list .luckysheet-slider-list-item-filtered { width: 20px; @@ -4260,22 +4364,22 @@ fieldset[disabled] a.btn { display: none; } - .luckysheet-modal-dialog-slider-list .luckysheet-slider-list-item-filtered i { - margin-top: 2px; - font-size: 16px; - } +.luckysheet-modal-dialog-slider-list .luckysheet-slider-list-item-filtered i { + margin-top: 2px; + font-size: 16px; +} - .luckysheet-modal-dialog-slider-list .luckysheet-slider-list-item-filtered:hover i { - color: #FB8686; - } +.luckysheet-modal-dialog-slider-list .luckysheet-slider-list-item-filtered:hover i { + color: #FB8686; +} - .luckysheet-modal-dialog-slider-list .luckysheet-slider-list-item-filtered i.fa-times { - right: 0px; - bottom: 3px; - color: red; - font-size: 9px; - position: absolute; - } +.luckysheet-modal-dialog-slider-list .luckysheet-slider-list-item-filtered i.fa-times { + right: 0px; + bottom: 3px; + color: red; + font-size: 9px; + position: absolute; +} .luckysheet-modal-dialog-slider-list .luckysheet-slider-list-item-filter { width: 20px; @@ -4287,14 +4391,14 @@ fieldset[disabled] a.btn { height: 25px; } - .luckysheet-modal-dialog-slider-list .luckysheet-slider-list-item-filter i { - margin-top: 2px; - font-size: 16px; - } +.luckysheet-modal-dialog-slider-list .luckysheet-slider-list-item-filter i { + margin-top: 2px; + font-size: 16px; +} - .luckysheet-modal-dialog-slider-list .luckysheet-slider-list-item-filter:hover i { - color: #FB8686; - } +.luckysheet-modal-dialog-slider-list .luckysheet-slider-list-item-filter:hover i { + color: #FB8686; +} .luckysheet-modal-dialog-slider-config-c { width: 100%; @@ -4310,34 +4414,34 @@ fieldset[disabled] a.btn { position: absolute; } - .luckysheet-modal-dialog-slider-config > div:first-child { - color: #1B1B19; - font-size: 13px; - height: 20px; - line-height: 20px; - width: 100%; - padding-left: 5px; - } +.luckysheet-modal-dialog-slider-config>div:first-child { + color: #1B1B19; + font-size: 13px; + height: 20px; + line-height: 20px; + width: 100%; + padding-left: 5px; +} - .luckysheet-modal-dialog-slider-config > div:first-child span { - font-weight: bold; - font-weight: bold; - overflow: hidden; - } - - .luckysheet-modal-dialog-slider-config .luckysheet-modal-dialog-slider-config-list { - position: absolute; - margin-top: 22px; - margin-left: 5px; - left: 0px; - right: 5px; - top: 0px; - bottom: 3px; - border: 1px solid #e5e5e5; - user-select: none; - overflow-y: auto; - background: #fff; - } +.luckysheet-modal-dialog-slider-config>div:first-child span { + font-weight: bold; + font-weight: bold; + overflow: hidden; +} + +.luckysheet-modal-dialog-slider-config .luckysheet-modal-dialog-slider-config-list { + position: absolute; + margin-top: 22px; + margin-left: 5px; + left: 0px; + right: 5px; + top: 0px; + bottom: 3px; + border: 1px solid #e5e5e5; + user-select: none; + overflow-y: auto; + background: #fff; +} .luckysheet-modal-dialog-slider-config-list .luckysheet-modal-dialog-slider-config-item { position: relative; @@ -4349,10 +4453,10 @@ fieldset[disabled] a.btn { margin: 2px; } - .luckysheet-modal-dialog-slider-config-list .luckysheet-modal-dialog-slider-config-item:hover { - border: 1px solid #0188fb; - background: #5f9afc; - } +.luckysheet-modal-dialog-slider-config-list .luckysheet-modal-dialog-slider-config-item:hover { + border: 1px solid #0188fb; + background: #5f9afc; +} .luckysheet-modal-dialog-slider-config-item-txt { position: absolute; @@ -4375,9 +4479,9 @@ fieldset[disabled] a.btn { font-size: 14px; } - .luckysheet-modal-dialog-slider-config-item-icon:hover { - color: #FA7272; - } +.luckysheet-modal-dialog-slider-config-item-icon:hover { + color: #FA7272; +} .luckysheet-modal-dialog-config-filter { @@ -4417,16 +4521,16 @@ fieldset[disabled] a.btn { user-select: none; } -.luckysheet-modal-dialog-slider-chart{ +.luckysheet-modal-dialog-slider-chart { width: 445px; } -.luckysheet-modal-dialog-slider-chart .luckysheet-modal-dialog-slider-title{ - background:#b94045; +.luckysheet-modal-dialog-slider-chart .luckysheet-modal-dialog-slider-title { + background: #b94045; } -.luckysheet-modal-dialog-slider-chart .luckysheet-modal-dialog-slider-content{ - background:#fff; +.luckysheet-modal-dialog-slider-chart .luckysheet-modal-dialog-slider-content { + background: #fff; } #luckysheet-dialog-pivotTable-clearitem { @@ -4438,7 +4542,8 @@ fieldset[disabled] a.btn { /*冻结窗口样式*/ -.luckysheet-freezebar-handle, .luckysheet-freezebar-drop { +.luckysheet-freezebar-handle, +.luckysheet-freezebar-drop { position: absolute; z-index: 999; } @@ -4481,14 +4586,15 @@ fieldset[disabled] a.btn { top: 0px; } -.luckysheet-freezebar-handle-bar, .luckysheet-freezebar-drop-bar { +.luckysheet-freezebar-handle-bar, +.luckysheet-freezebar-drop-bar { position: absolute; z-index: 7; } .luckysheet-freezebar-vertical-drop-bar { width: 2px; - background:rgba(0, 0, 0, 0.45); + background: rgba(0, 0, 0, 0.45); border-width: 2px 1px 2px 2px; margin-top: 19px; top: 0px; @@ -4505,12 +4611,14 @@ fieldset[disabled] a.btn { } -.luckysheet-freezebar-hover .luckysheet-freezebar-vertical-drop-bar, .luckysheet-freezebar-active .luckysheet-freezebar-vertical-drop-bar { +.luckysheet-freezebar-hover .luckysheet-freezebar-vertical-drop-bar, +.luckysheet-freezebar-active .luckysheet-freezebar-vertical-drop-bar { background: #C1C1C1; width: 4px; } -.luckysheet-freezebar-hover .luckysheet-freezebar-vertical-drop-title, .luckysheet-freezebar-active .luckysheet-freezebar-vertical-drop-title { +.luckysheet-freezebar-hover .luckysheet-freezebar-vertical-drop-title, +.luckysheet-freezebar-active .luckysheet-freezebar-vertical-drop-title { background: #5D88DB; width: 4px; } @@ -4557,7 +4665,7 @@ fieldset[disabled] a.btn { .luckysheet-freezebar-horizontal-drop-bar { height: 2px; overflow: hidden; - background:rgba(0, 0, 0, 0.45); + background: rgba(0, 0, 0, 0.45); border-width: 2px 2px 1px 2px; margin-left: 45px; left: 0px; @@ -4574,12 +4682,14 @@ fieldset[disabled] a.btn { left: 0px; } -.luckysheet-freezebar-hover .luckysheet-freezebar-horizontal-drop-bar, .luckysheet-freezebar-active .luckysheet-freezebar-horizontal-drop-bar { +.luckysheet-freezebar-hover .luckysheet-freezebar-horizontal-drop-bar, +.luckysheet-freezebar-active .luckysheet-freezebar-horizontal-drop-bar { background: #C1C1C1; height: 4px; } -.luckysheet-freezebar-hover .luckysheet-freezebar-horizontal-drop-title, .luckysheet-freezebar-active .luckysheet-freezebar-horizontal-drop-title { +.luckysheet-freezebar-hover .luckysheet-freezebar-horizontal-drop-title, +.luckysheet-freezebar-active .luckysheet-freezebar-horizontal-drop-title { background: #5D88DB; height: 4px; } @@ -4600,12 +4710,12 @@ fieldset[disabled] a.btn { } - #luckysheet-functionbox-container > div { - height: 100%; - overflow-x: hidden; - overflow-y: auto; - position: relative; - } +#luckysheet-functionbox-container>div { + height: 100%; + overflow-x: hidden; + overflow-y: auto; + position: relative; +} #luckysheet-functionbox { @@ -4616,20 +4726,20 @@ fieldset[disabled] a.btn { top: 6px; resize: none; /*border: 1px #b9b9b9 solid;*/ - font-family: arial,sans,sans-serif; + font-family: arial, sans, sans-serif; font-size: 14px; line-height: 14px; background-color: #ffffff; - padding: 0px 5px; + padding: 0px 5px; } - #luckysheet-functionbox .luckysheet-functionbox-cell-input { - word-wrap: break-word; - -webkit-nbsp-mode: space; - -webkit-line-break: after-white-space; - } +#luckysheet-functionbox .luckysheet-functionbox-cell-input { + word-wrap: break-word; + -webkit-nbsp-mode: space; + -webkit-line-break: after-white-space; +} .luckysheet-functionbox-cell-input { width: 100%; @@ -4655,8 +4765,8 @@ fieldset[disabled] a.btn { position: absolute; left: 50%; top: 50%; - border: 1px solid rgba(0,0,0,.2); - box-shadow: 0 2px 4px rgba(0,0,0,.2); + border: 1px solid rgba(0, 0, 0, .2); + box-shadow: 0 2px 4px rgba(0, 0, 0, .2); color: #535353; font-size: 12px; background: #fff; @@ -4665,47 +4775,48 @@ fieldset[disabled] a.btn { display: none; } - .luckysheet-formula-search-c .luckysheet-formula-search-item { - background: #fff; - padding: 5px 10px; - cursor: pointer; - } +.luckysheet-formula-search-c .luckysheet-formula-search-item { + background: #fff; + padding: 5px 10px; + cursor: pointer; +} - .luckysheet-formula-search-c .luckysheet-formula-search-item .luckysheet-formula-search-detail { - display: none; - color: #444; - } - - .luckysheet-formula-search-c .luckysheet-formula-search-item .luckysheet-formula-search-func { - color: #222; - font-size: 14px; - } - - .luckysheet-formula-search-c .luckysheet-formula-search-item-active { - display: block; - border-top: 1px solid #EBEBEB; - border-bottom: 1px solid #EBEBEB; - background: #F5F5F5; - } +.luckysheet-formula-search-c .luckysheet-formula-search-item .luckysheet-formula-search-detail { + display: none; + color: #444; +} + +.luckysheet-formula-search-c .luckysheet-formula-search-item .luckysheet-formula-search-func { + color: #222; + font-size: 14px; +} + +.luckysheet-formula-search-c .luckysheet-formula-search-item-active { + display: block; + border-top: 1px solid #EBEBEB; + border-bottom: 1px solid #EBEBEB; + background: #F5F5F5; +} - .luckysheet-formula-search-c .luckysheet-formula-search-item-active .luckysheet-formula-search-detail { - display: block; - } +.luckysheet-formula-search-c .luckysheet-formula-search-item-active .luckysheet-formula-search-detail { + display: block; +} .luckysheet-formula-help-c { display: none; position: absolute; left: 20%; top: 20%; - border: 1px solid rgba(0,0,0,.2); - box-shadow: 0 2px 4px rgba(0,0,0,.2); + border: 1px solid rgba(0, 0, 0, .2); + box-shadow: 0 2px 4px rgba(0, 0, 0, .2); color: #535353; font-size: 12px; background: #fff; z-index: 1003; width: 300px; } -.luckysheet-formula-help-c .luckysheet-formula-help-content{ + +.luckysheet-formula-help-c .luckysheet-formula-help-content { max-height: 300px; overflow-y: scroll; } @@ -4773,9 +4884,10 @@ fieldset[disabled] a.btn { color: #bbb; } - .luckysheet-formula-help-close:hover, .luckysheet-formula-help-collapse:hover { - color: #555; - } +.luckysheet-formula-help-close:hover, +.luckysheet-formula-help-collapse:hover { + color: #555; +} .luckysheetLoader { @@ -4789,166 +4901,175 @@ fieldset[disabled] a.btn { left: 50%; animation: load-effect 1s infinite linear; } -.luckysheetLoaderGif { /*换用GIF loading*/ + +.luckysheetLoaderGif { + /*换用GIF loading*/ width: 8em; height: 8em; position: absolute; top: 50%; left: 50%; - -ms-transform: translate(-50%,-100%); - -moz-transform: translate(-50%,-100%); - -o-transform: translate(-50%,-100%); - transform: translate(-50%,-100%); + -ms-transform: translate(-50%, -100%); + -moz-transform: translate(-50%, -100%); + -o-transform: translate(-50%, -100%); + transform: translate(-50%, -100%); background-image: url(loading.gif); - background-repeat:no-repeat; - background-position:center; + background-repeat: no-repeat; + background-position: center; background-size: 100% 100%; } + /*.luckysheetLoaderGif>img{ width:100%; height:100%; }*/ @keyframes load-effect { - 0%{ - box-shadow: - /* + 0% { + box-shadow: + /* 0:左移3em -3em:下移2em 0:模糊距离0,即纯色 .2em:外扩.2em #FFF:白色 */ - 0 -3em 0 .2em #0188fb,/*上*/ - 2em -2em 0 0 #0188fb,/*右上*/ - 3em 0 0 -.5em #0188fb,/*右*/ - 2em 2em 0 -.5em #0188fb,/*右下*/ - 0 3em 0 -.5em #0188fb, /*下*/ - -2em 2em 0 -.5em #0188fb, /*左下*/ - -3em 0 0 -.5em #0188fb, /*左*/ - -2em -2em 0 0 #0188fb;/*左上*/ - } - - 12.5% { - box-shadow: - 0 -3em 0 0 #0188fb, - 2em -2em 0 .2em #0188fb, - 3em 0 0 0 #0188fb, - 2em 2em 0 -.5em #0188fb, - 0 3em 0 -.5em #0188fb, - -2em 2em 0 -.5em #0188fb, - -3em 0 0 -.5em #0188fb, - -2em -2em 0 -.5em #0188fb; - } - - 25% { - box-shadow: - 0 -3em 0 -.5em #0188fb, - 2em -2em 0 0 #0188fb, - 3em 0 0 .2em #0188fb, - 2em 2em 0 0 #0188fb, - 0 3em 0 -.5em #0188fb, - -2em 2em 0 -.5em #0188fb, - -3em 0 0 -.5em #0188fb, - -2em -2em 0 -.5em #0188fb; - } - - 37.5% { - box-shadow: - 0 -3em 0 -.5em #0188fb, - 2em -2em 0 -.5em #0188fb, - 3em 0 0 0 #0188fb, - 2em 2em 0 .2em #0188fb, - 0 3em 0 0 #0188fb, - -2em 2em 0 -.5em #0188fb, - -3em 0 0 -.5em #0188fb, - -2em -2em 0 -.5em #0188fb; - } - - 50% { - box-shadow: - 0 -3em 0 -.5em #0188fb, - 2em -2em 0 -.5em #0188fb, - 3em 0 0 -.5em #0188fb, - 2em 2em 0 0 #0188fb, - 0 3em 0 .2em #0188fb, - -2em 2em 0 0 #0188fb, - -3em 0 0 -.5em #0188fb, - -2em -2em 0 -.5em #0188fb; - } - - 62.5% { - box-shadow: - 0 -3em 0 -.5em #0188fb, - 2em -2em 0 -.5em #0188fb, - 3em 0 0 -.5em #0188fb, - 2em 2em 0 -.5em #0188fb, - 0 3em 0 0 #0188fb, - -2em 2em 0 .2em #0188fb, - -3em 0 0 0 #0188fb, - -2em -2em 0 -.5em #0188fb; - } - - 75% { - box-shadow: - 0 -3em 0 -.5em #0188fb, - 2em -2em 0 -.5em #0188fb, - 3em 0 0 -.5em #0188fb, - 2em 2em 0 -.5em #0188fb, - 0 3em 0 -.5em #0188fb, - -2em 2em 0 0 #0188fb, - -3em 0 0 .2em #0188fb, - -2em -2em 0 0 #0188fb; - } - - 87.5% { - box-shadow: - 0 -3em 0 0 #0188fb, - 2em -2em 0 -.5em #0188fb, - 3em 0 0 -.5em #0188fb, - 2em 2em 0 -.5em #0188fb, - 0 3em 0 -.5em #0188fb, - -2em 2em 0 0 #0188fb, - -3em 0 0 0 #0188fb, - -2em -2em 0 .2em #0188fb; - } - - 100% { - box-shadow: - 0 -3em 0 .2em #0188fb, - 2em -2em 0 0 #0188fb, - 3em 0 0 -.5em #0188fb, - 2em 2em 0 -.5em #0188fb, - 0 3em 0 -.5em #0188fb, - -2em 2em 0 -.5em #0188fb, - -3em 0 0 -.5em #0188fb, - -2em -2em 0 0 #0188fb; - } -} - -.luckysheetpopover{ - position:absolute; -/* left: 50%; + 0 -3em 0 .2em #0188fb, + /*上*/ + 2em -2em 0 0 #0188fb, + /*右上*/ + 3em 0 0 -.5em #0188fb, + /*右*/ + 2em 2em 0 -.5em #0188fb, + /*右下*/ + 0 3em 0 -.5em #0188fb, + /*下*/ + -2em 2em 0 -.5em #0188fb, + /*左下*/ + -3em 0 0 -.5em #0188fb, + /*左*/ + -2em -2em 0 0 #0188fb; + /*左上*/ + } + + 12.5% { + box-shadow: + 0 -3em 0 0 #0188fb, + 2em -2em 0 .2em #0188fb, + 3em 0 0 0 #0188fb, + 2em 2em 0 -.5em #0188fb, + 0 3em 0 -.5em #0188fb, + -2em 2em 0 -.5em #0188fb, + -3em 0 0 -.5em #0188fb, + -2em -2em 0 -.5em #0188fb; + } + + 25% { + box-shadow: + 0 -3em 0 -.5em #0188fb, + 2em -2em 0 0 #0188fb, + 3em 0 0 .2em #0188fb, + 2em 2em 0 0 #0188fb, + 0 3em 0 -.5em #0188fb, + -2em 2em 0 -.5em #0188fb, + -3em 0 0 -.5em #0188fb, + -2em -2em 0 -.5em #0188fb; + } + + 37.5% { + box-shadow: + 0 -3em 0 -.5em #0188fb, + 2em -2em 0 -.5em #0188fb, + 3em 0 0 0 #0188fb, + 2em 2em 0 .2em #0188fb, + 0 3em 0 0 #0188fb, + -2em 2em 0 -.5em #0188fb, + -3em 0 0 -.5em #0188fb, + -2em -2em 0 -.5em #0188fb; + } + + 50% { + box-shadow: + 0 -3em 0 -.5em #0188fb, + 2em -2em 0 -.5em #0188fb, + 3em 0 0 -.5em #0188fb, + 2em 2em 0 0 #0188fb, + 0 3em 0 .2em #0188fb, + -2em 2em 0 0 #0188fb, + -3em 0 0 -.5em #0188fb, + -2em -2em 0 -.5em #0188fb; + } + + 62.5% { + box-shadow: + 0 -3em 0 -.5em #0188fb, + 2em -2em 0 -.5em #0188fb, + 3em 0 0 -.5em #0188fb, + 2em 2em 0 -.5em #0188fb, + 0 3em 0 0 #0188fb, + -2em 2em 0 .2em #0188fb, + -3em 0 0 0 #0188fb, + -2em -2em 0 -.5em #0188fb; + } + + 75% { + box-shadow: + 0 -3em 0 -.5em #0188fb, + 2em -2em 0 -.5em #0188fb, + 3em 0 0 -.5em #0188fb, + 2em 2em 0 -.5em #0188fb, + 0 3em 0 -.5em #0188fb, + -2em 2em 0 0 #0188fb, + -3em 0 0 .2em #0188fb, + -2em -2em 0 0 #0188fb; + } + + 87.5% { + box-shadow: + 0 -3em 0 0 #0188fb, + 2em -2em 0 -.5em #0188fb, + 3em 0 0 -.5em #0188fb, + 2em 2em 0 -.5em #0188fb, + 0 3em 0 -.5em #0188fb, + -2em 2em 0 0 #0188fb, + -3em 0 0 0 #0188fb, + -2em -2em 0 .2em #0188fb; + } + + 100% { + box-shadow: + 0 -3em 0 .2em #0188fb, + 2em -2em 0 0 #0188fb, + 3em 0 0 -.5em #0188fb, + 2em 2em 0 -.5em #0188fb, + 0 3em 0 -.5em #0188fb, + -2em 2em 0 -.5em #0188fb, + -3em 0 0 -.5em #0188fb, + -2em -2em 0 0 #0188fb; + } +} + +.luckysheetpopover { + position: absolute; + /* left: 50%; top:20px; */ - background: rgba(0,0,0,0.65); + background: rgba(0, 0, 0, 0.65); color: #fff; font-size: 18px; padding: 20px 100px; text-align: center; - z-index:10000; + z-index: 10000; border-radius: 4px; user-select: none; display: none; } -.luckysheetpopover .luckysheetpopover-content{ - -} +.luckysheetpopover .luckysheetpopover-content {} -.luckysheetpopover .luckysheetpopover-btn{ +.luckysheetpopover .luckysheetpopover-btn { position: absolute; - right:10px; + right: 10px; top: 50%; margin-top: -12px; border: 1px solid #fff; @@ -4958,12 +5079,12 @@ fieldset[disabled] a.btn { font-size: 14px; } -.luckysheetpopover .luckysheetpopover-btn:hover{ +.luckysheetpopover .luckysheetpopover-btn:hover { border: 1px solid #FEA2A2; color: #FEA2A2; } -.luckysheetPaintCursor{ +.luckysheetPaintCursor { cursor: url(paint_24px.ico), auto; } @@ -4993,13 +5114,14 @@ fieldset[disabled] a.btn { margin: 0em 0em 0em 0em; font: 13.3333px Arial; }*/ - + /*查找替换弹出框样式*/ -#luckysheet-search-replace .tabBox{ +#luckysheet-search-replace .tabBox { margin-top: 20px; font-size: 0; } -#luckysheet-search-replace .tabBox span{ + +#luckysheet-search-replace .tabBox span { display: inline-block; text-align: center; width: 100px; @@ -5007,105 +5129,126 @@ fieldset[disabled] a.btn { font-size: 14px; line-height: 2; } -#luckysheet-search-replace .tabBox span.on{ + +#luckysheet-search-replace .tabBox span.on { background-color: #8C89FE; border-color: #726EFE; color: #fff; } -#luckysheet-search-replace .ctBox{ + +#luckysheet-search-replace .ctBox { padding: 5px 10px; border: solid 1px #d4d4d4; font-size: 14px; } -#luckysheet-search-replace .inputBox{ + +#luckysheet-search-replace .inputBox { height: 90px; position: relative; } -#luckysheet-search-replace .inputBox .textboxs{ + +#luckysheet-search-replace .inputBox .textboxs { height: 30px; line-height: 30px; } -#luckysheet-search-replace .inputBox .checkboxs{ + +#luckysheet-search-replace .inputBox .checkboxs { height: 90px; position: absolute; right: 0; top: 0; } -#luckysheet-search-replace .inputBox .checkboxs div{ + +#luckysheet-search-replace .inputBox .checkboxs div { height: 30px; line-height: 30px; } -#luckysheet-search-replace .inputBox .checkboxs input[type="checkbox"]{ + +#luckysheet-search-replace .inputBox .checkboxs input[type="checkbox"] { float: left; margin-top: 9px; } -#luckysheet-search-replace .btnBox{ + +#luckysheet-search-replace .btnBox { margin-top: 10px; } -#luckysheet-search-replace .btnBox button{ + +#luckysheet-search-replace .btnBox button { margin: 0 2.5px; } -#luckysheet-search-replace #searchAllbox{ + +#luckysheet-search-replace #searchAllbox { height: 210px; - border:1px solid #d4d4d4; - margin-top:10px; + border: 1px solid #d4d4d4; + margin-top: 10px; overflow-y: auto; position: relative; } -#luckysheet-search-replace #searchAllbox .boxTitle{ + +#luckysheet-search-replace #searchAllbox .boxTitle { width: 100%; height: 30px; line-height: 29px; padding: 0 5px; - background-color: #fff; - border-bottom:1px solid #d4d4d4; + background-color: #fff; + border-bottom: 1px solid #d4d4d4; box-sizing: border-box; position: sticky; left: 0; top: 0; } -#luckysheet-search-replace #searchAllbox .boxTitle span{ + +#luckysheet-search-replace #searchAllbox .boxTitle span { display: inline-block; text-align: center; } -#luckysheet-search-replace #searchAllbox .boxTitle span:nth-of-type(1){ + +#luckysheet-search-replace #searchAllbox .boxTitle span:nth-of-type(1) { width: 25%; } -#luckysheet-search-replace #searchAllbox .boxTitle span:nth-of-type(2){ + +#luckysheet-search-replace #searchAllbox .boxTitle span:nth-of-type(2) { width: 25%; } -#luckysheet-search-replace #searchAllbox .boxTitle span:nth-of-type(3){ + +#luckysheet-search-replace #searchAllbox .boxTitle span:nth-of-type(3) { width: 50%; } -#luckysheet-search-replace #searchAllbox .boxMain .boxItem{ + +#luckysheet-search-replace #searchAllbox .boxMain .boxItem { height: 30px; line-height: 29px; - border-bottom:1px solid #d4d4d4; + border-bottom: 1px solid #d4d4d4; padding: 0 5px; box-sizing: border-box; } -#luckysheet-search-replace #searchAllbox .boxMain .boxItem.on{ + +#luckysheet-search-replace #searchAllbox .boxMain .boxItem.on { background-color: #8C89FE; color: #fff; } -#luckysheet-search-replace #searchAllbox .boxMain .boxItem span{ + +#luckysheet-search-replace #searchAllbox .boxMain .boxItem span { display: block; text-align: center; float: left; } -#luckysheet-search-replace #searchAllbox .boxMain .boxItem span:nth-of-type(1){ + +#luckysheet-search-replace #searchAllbox .boxMain .boxItem span:nth-of-type(1) { width: 25%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } -#luckysheet-search-replace #searchAllbox .boxMain .boxItem span:nth-of-type(2){ + +#luckysheet-search-replace #searchAllbox .boxMain .boxItem span:nth-of-type(2) { width: 25%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } -#luckysheet-search-replace #searchAllbox .boxMain .boxItem span:nth-of-type(3){ + +#luckysheet-search-replace #searchAllbox .boxMain .boxItem span:nth-of-type(3) { width: 50%; overflow: hidden; text-overflow: ellipsis; @@ -5113,17 +5256,20 @@ fieldset[disabled] a.btn { } /*函数公式查找样式*/ -#luckysheet-search-formula{ +#luckysheet-search-formula { font-size: 12px; } -#luckysheet-search-formula .inpbox{ + +#luckysheet-search-formula .inpbox { margin-bottom: 5px; } -#luckysheet-search-formula .inpbox label{ + +#luckysheet-search-formula .inpbox label { display: block; margin-bottom: 5px; } -#luckysheet-search-formula .inpbox input{ + +#luckysheet-search-formula .inpbox input { width: 100%; height: 24px; line-height: 24px; @@ -5132,10 +5278,12 @@ fieldset[disabled] a.btn { box-sizing: border-box; font-size: 12px; } -#luckysheet-search-formula .selbox{ + +#luckysheet-search-formula .selbox { margin-bottom: 5px; } -#luckysheet-search-formula .selbox select{ + +#luckysheet-search-formula .selbox select { width: 50%; height: 24px; line-height: 24px; @@ -5143,48 +5291,59 @@ fieldset[disabled] a.btn { box-sizing: border-box; font-size: 12px; } -#luckysheet-search-formula .listbox label{ + +#luckysheet-search-formula .listbox label { display: block; margin-bottom: 5px; } -#formulaTypeList{ + +#formulaTypeList { width: 300px; height: 170px; border: 1px solid #d4d4d4; overflow-y: scroll; } -#formulaTypeList .listBox{ + +#formulaTypeList .listBox { padding: 5px; border-bottom: 1px solid #d4d4d4; } -#formulaTypeList .listBox.on{ + +#formulaTypeList .listBox.on { background-color: #8C89FE; color: #fff; } -#formulaTypeList .listBox span:nth-of-type(1){ - display:block; + +#formulaTypeList .listBox span:nth-of-type(1) { + display: block; } -#formulaTypeList .listBox span:nth-of-type(2){ - display:block; + +#formulaTypeList .listBox span:nth-of-type(2) { + display: block; } -#luckysheet-search-formula-parm{ + +#luckysheet-search-formula-parm { width: 502px; font-size: 12px; } -#luckysheet-search-formula-parm .parmListBox{ + +#luckysheet-search-formula-parm .parmListBox { width: 500px; padding: 5px 0; border: 1px solid #d4d4d4; } -#luckysheet-search-formula-parm .parmBox{ + +#luckysheet-search-formula-parm .parmBox { height: 30px; line-height: 30px; margin-bottom: 5px; } -#luckysheet-search-formula-parm .parmBox:last-child{ + +#luckysheet-search-formula-parm .parmBox:last-child { margin-bottom: 0; } -#luckysheet-search-formula-parm .parmBox .name{ + +#luckysheet-search-formula-parm .parmBox .name { width: 90px; height: 30px; padding: 0 5px; @@ -5194,13 +5353,15 @@ fieldset[disabled] a.btn { text-overflow: ellipsis; white-space: nowrap; } -#luckysheet-search-formula-parm .parmBox .txt{ + +#luckysheet-search-formula-parm .parmBox .txt { width: 198px; height: 28px; border: 1px solid #d4d4d4; float: left; } -#luckysheet-search-formula-parm .parmBox .txt input{ + +#luckysheet-search-formula-parm .parmBox .txt input { width: 150px; height: 28px; padding: 0 10px; @@ -5208,19 +5369,23 @@ fieldset[disabled] a.btn { outline-style: none; float: left; } -#luckysheet-search-formula-parm .parmBox .txt i{ + +#luckysheet-search-formula-parm .parmBox .txt i { float: right; margin-top: 8px; margin-right: 5px; } -#luckysheet-search-formula-parm .fa-table{ + +#luckysheet-search-formula-parm .fa-table { cursor: pointer; color: #6598F3; } -#luckysheet-search-formula-parm .fa-table:hover{ + +#luckysheet-search-formula-parm .fa-table:hover { color: #FF7E7E; } -#luckysheet-search-formula-parm .parmBox .val{ + +#luckysheet-search-formula-parm .parmBox .val { width: 190px; height: 30px; line-height: 30px; @@ -5230,59 +5395,73 @@ fieldset[disabled] a.btn { text-overflow: ellipsis; white-space: nowrap; } -#luckysheet-search-formula-parm .formulaDetails{ + +#luckysheet-search-formula-parm .formulaDetails { padding: 5px; } -#luckysheet-search-formula-parm .parmDetailsBox{ + +#luckysheet-search-formula-parm .parmDetailsBox { max-height: 100px; padding: 5px 0 5px 20px; overflow-y: scroll; } -#luckysheet-search-formula-parm .parmDetailsBox span{ + +#luckysheet-search-formula-parm .parmDetailsBox span { display: inline-block; } -#luckysheet-search-formula-parm .result{ + +#luckysheet-search-formula-parm .result { padding: 5px; border-top: 1px solid #d4d4d4; } + /*条件格式颜色选择器*/ -#textCellColor{ +#textCellColor { border: 1px solid #d4d4d4; padding: 5px 10px; } -#textCellColor .colorbox{ + +#textCellColor .colorbox { height: 30px; line-height: 30px; margin-bottom: 10px; } -#textCellColor .colorbox input[type="checkbox"]{ + +#textCellColor .colorbox input[type="checkbox"] { float: left; margin-top: 10px; } -#textCellColor .colorbox label{ + +#textCellColor .colorbox label { display: inline-block; width: 80px; } + /*条件格式单元格选择框*/ -#luckysheet-singleRange-dialog input, #luckysheet-multiRange-dialog input{ +#luckysheet-singleRange-dialog input, +#luckysheet-multiRange-dialog input { border: 1px solid #d4d4d4; padding: 0 10px; height: 30px; } + /*条件格式弹出框*/ -#luckysheet-conditionformat-dialog{ +#luckysheet-conditionformat-dialog { font-size: 12px; } -#luckysheet-conditionformat-dialog .box .boxTitleOne{ + +#luckysheet-conditionformat-dialog .box .boxTitleOne { margin: 5px 0; font-weight: 600; } -#luckysheet-conditionformat-dialog .box .inpbox{ + +#luckysheet-conditionformat-dialog .box .inpbox { width: 198px; height: 28px; border: 1px solid #d4d4d4; } -#luckysheet-conditionformat-dialog .box .inpbox input{ + +#luckysheet-conditionformat-dialog .box .inpbox input { width: 150px; height: 28px; padding: 0 10px; @@ -5290,13 +5469,15 @@ fieldset[disabled] a.btn { outline-style: none; float: left; } -#luckysheet-conditionformat-dialog .box .inpbox2{ + +#luckysheet-conditionformat-dialog .box .inpbox2 { float: left; width: 108px; height: 28px; border: 1px solid #d4d4d4; } -#luckysheet-conditionformat-dialog .box .inpbox2 input{ + +#luckysheet-conditionformat-dialog .box .inpbox2 input { width: 60px; height: 28px; padding: 0 10px; @@ -5304,19 +5485,23 @@ fieldset[disabled] a.btn { outline-style: none; float: left; } -#luckysheet-conditionformat-dialog .box i.fa-table{ + +#luckysheet-conditionformat-dialog .box i.fa-table { float: right; margin-top: 8px; margin-right: 5px; } -#luckysheet-conditionformat-dialog .box .fa-table{ + +#luckysheet-conditionformat-dialog .box .fa-table { cursor: pointer; color: #6598F3; } -#luckysheet-conditionformat-dialog .box .fa-table:hover{ + +#luckysheet-conditionformat-dialog .box .fa-table:hover { color: #FF7E7E; } -#luckysheet-conditionformat-dialog .box #daterange-btn{ + +#luckysheet-conditionformat-dialog .box #daterange-btn { width: 188px; height: 28px; padding: 0 5px; @@ -5324,81 +5509,97 @@ fieldset[disabled] a.btn { border: 1px solid #d4d4d4; cursor: pointer; } -#luckysheet-conditionformat-dialog .box .selectbox{ + +#luckysheet-conditionformat-dialog .box .selectbox { width: 150px; height: 30px; } -#luckysheet-icon-dataBar-menuButton .bgImgBox{ - width: 28px; - height: 26px; +#luckysheet-icon-dataBar-menuButton .bgImgBox { + width: 28px; + height: 26px; background: url(../plugins/images/CFdataBar.png)no-repeat; } -#luckysheet-icon-colorGradation-menuButton .bgImgBox{ - width: 28px; - height: 26px; + +#luckysheet-icon-colorGradation-menuButton .bgImgBox { + width: 28px; + height: 26px; background: url(../plugins/images/CFcolorGradation.png)no-repeat; } /*条件格式规则管理器*/ -#luckysheet-administerRule-dialog{ +#luckysheet-administerRule-dialog { font-size: 12px; } -#luckysheet-administerRule-dialog .chooseSheet{ + +#luckysheet-administerRule-dialog .chooseSheet { height: 24px; line-height: 24px; margin-bottom: 5px; } -#luckysheet-administerRule-dialog .chooseSheet select{ + +#luckysheet-administerRule-dialog .chooseSheet select { height: 24px; padding: 0 5px; box-sizing: border-box; font-size: 12px; } -#luckysheet-administerRule-dialog .ruleBox{ + +#luckysheet-administerRule-dialog .ruleBox { border: 1px solid #d4d4d4; } -#luckysheet-administerRule-dialog .ruleBox .ruleBtn{ + +#luckysheet-administerRule-dialog .ruleBox .ruleBtn { padding: 2.5px 5px; border-bottom: 1px solid #d4d4d4; } -#luckysheet-administerRule-dialog .ruleBox .ruleBtn button{ + +#luckysheet-administerRule-dialog .ruleBox .ruleBtn button { margin-right: 10px; font-size: 12px; } -#luckysheet-administerRule-dialog .ruleBox .ruleList .listTitle{ + +#luckysheet-administerRule-dialog .ruleBox .ruleList .listTitle { height: 30px; padding: 0 10px; border-bottom: 1px solid #d4d4d4; } -#luckysheet-administerRule-dialog .ruleBox .ruleList .listTitle span{ + +#luckysheet-administerRule-dialog .ruleBox .ruleList .listTitle span { display: block; height: 100%; line-height: 29px; float: left; } -#luckysheet-administerRule-dialog .ruleBox .ruleList .listTitle span:nth-of-type(1){ + +#luckysheet-administerRule-dialog .ruleBox .ruleList .listTitle span:nth-of-type(1) { width: 30%; } -#luckysheet-administerRule-dialog .ruleBox .ruleList .listTitle span:nth-of-type(2){ + +#luckysheet-administerRule-dialog .ruleBox .ruleList .listTitle span:nth-of-type(2) { width: 20%; } -#luckysheet-administerRule-dialog .ruleBox .ruleList .listTitle span:nth-of-type(3){ + +#luckysheet-administerRule-dialog .ruleBox .ruleList .listTitle span:nth-of-type(3) { width: 45%; } -#luckysheet-administerRule-dialog .ruleBox .ruleList .listBox{ + +#luckysheet-administerRule-dialog .ruleBox .ruleList .listBox { height: 150px; overflow-y: scroll; } -#luckysheet-administerRule-dialog .ruleBox .ruleList .listBox .item{ + +#luckysheet-administerRule-dialog .ruleBox .ruleList .listBox .item { height: 24px; padding: 2.5px 10px; border-bottom: 1px solid #d4d4d4; } -#luckysheet-administerRule-dialog .ruleBox .ruleList .listBox .item.on{ + +#luckysheet-administerRule-dialog .ruleBox .ruleList .listBox .item.on { background-color: #8C89FE; } -#luckysheet-administerRule-dialog .ruleBox .ruleList .listBox .item .ruleName{ + +#luckysheet-administerRule-dialog .ruleBox .ruleList .listBox .item .ruleName { width: 30%; height: 100%; line-height: 24px; @@ -5409,17 +5610,20 @@ fieldset[disabled] a.btn { float: left; box-sizing: border-box; } -#luckysheet-administerRule-dialog .ruleBox .ruleList .listBox .item.on .ruleName{ + +#luckysheet-administerRule-dialog .ruleBox .ruleList .listBox .item.on .ruleName { color: #fff; } -#luckysheet-administerRule-dialog .ruleBox .ruleList .listBox .item .format{ + +#luckysheet-administerRule-dialog .ruleBox .ruleList .listBox .item .format { width: 20%; height: 100%; line-height: 24px; float: left; position: relative; } -#luckysheet-administerRule-dialog .ruleBox .ruleList .listBox .item .format .colorbox{ + +#luckysheet-administerRule-dialog .ruleBox .ruleList .listBox .item .format .colorbox { display: inline-block; width: 16px; height: 16px; @@ -5427,7 +5631,8 @@ fieldset[disabled] a.btn { margin: 3px 5px; cursor: pointer; } -#luckysheet-administerRule-dialog .ruleBox .ruleList .listBox .item .ruleRange{ + +#luckysheet-administerRule-dialog .ruleBox .ruleList .listBox .item .ruleRange { width: 45%; height: 100%; border: 1px solid #d4d4d4; @@ -5436,7 +5641,8 @@ fieldset[disabled] a.btn { box-sizing: border-box; background-color: #fff; } -#luckysheet-administerRule-dialog .ruleBox .ruleList .listBox .item .ruleRange input{ + +#luckysheet-administerRule-dialog .ruleBox .ruleList .listBox .item .ruleRange input { width: 130px; height: 22px; padding: 0 5px; @@ -5444,55 +5650,66 @@ fieldset[disabled] a.btn { outline-style: none; float: left; } -#luckysheet-administerRule-dialog .ruleBox .ruleList .listBox .item .ruleRange i.fa-table{ + +#luckysheet-administerRule-dialog .ruleBox .ruleList .listBox .item .ruleRange i.fa-table { float: right; cursor: pointer; color: #6598F3; margin-top: 6px; margin-right: 5px; } -#luckysheet-administerRule-dialog .ruleBox .ruleList .listBox .item .ruleRange i.fa-table:hover{ + +#luckysheet-administerRule-dialog .ruleBox .ruleList .listBox .item .ruleRange i.fa-table:hover { color: #FF7E7E; } /*新建、编辑条件格式规则*/ -.luckysheet-newEditorRule-dialog{ +.luckysheet-newEditorRule-dialog { font-size: 12px; } -.luckysheet-newEditorRule-dialog .boxTitle{ + +.luckysheet-newEditorRule-dialog .boxTitle { margin-bottom: 5px; } -.luckysheet-newEditorRule-dialog .ruleTypeBox{ + +.luckysheet-newEditorRule-dialog .ruleTypeBox { border: 1px solid #d4d4d4; margin-bottom: 10px; } -.luckysheet-newEditorRule-dialog .ruleTypeBox .ruleTypeItem{ + +.luckysheet-newEditorRule-dialog .ruleTypeBox .ruleTypeItem { padding: 3px 5px; cursor: pointer; } -.luckysheet-newEditorRule-dialog .ruleTypeBox .ruleTypeItem.on{ + +.luckysheet-newEditorRule-dialog .ruleTypeBox .ruleTypeItem.on { background-color: #7C79FE; color: #fff; } -.luckysheet-newEditorRule-dialog .ruleTypeBox .ruleTypeItem .icon{ + +.luckysheet-newEditorRule-dialog .ruleTypeBox .ruleTypeItem .icon { font-family: Arial, Helvetica, sans-serif; } -.luckysheet-newEditorRule-dialog .ruleExplainBox{ + +.luckysheet-newEditorRule-dialog .ruleExplainBox { border: 1px solid #d4d4d4; padding: 10px; } -.luckysheet-newEditorRule-dialog .ruleExplainBox .title{ + +.luckysheet-newEditorRule-dialog .ruleExplainBox .title { display: block; font-weight: 600; margin-bottom: 5px; } -.luckysheet-newEditorRule-dialog .ruleExplainBox select{ + +.luckysheet-newEditorRule-dialog .ruleExplainBox select { height: 30px; font-size: 12px; float: left; margin-right: 5px; } -.luckysheet-newEditorRule-dialog .ruleExplainBox .inpbox{ + +.luckysheet-newEditorRule-dialog .ruleExplainBox .inpbox { width: 100px; height: 30px; border: 1px solid #d4d4d4; @@ -5500,49 +5717,58 @@ fieldset[disabled] a.btn { font-size: 12px; float: left; } -.luckysheet-newEditorRule-dialog .ruleExplainBox .inpbox input{ + +.luckysheet-newEditorRule-dialog .ruleExplainBox .inpbox input { width: 70px; height: 100%; border: none; outline-style: none; padding: 0 5px; } -.luckysheet-newEditorRule-dialog .ruleExplainBox .txt{ + +.luckysheet-newEditorRule-dialog .ruleExplainBox .txt { display: block; height: 100%; line-height: 30px; float: left; margin: 0 5px; } -.luckysheet-newEditorRule-dialog .ruleExplainBox #isPercent{ + +.luckysheet-newEditorRule-dialog .ruleExplainBox #isPercent { float: left; margin: 9px 0 8px 10px; } -.luckysheet-newEditorRule-dialog i.fa-table{ + +.luckysheet-newEditorRule-dialog i.fa-table { float: right; margin-top: 8px; margin-right: 5px; } -.luckysheet-newEditorRule-dialog .fa-table{ + +.luckysheet-newEditorRule-dialog .fa-table { cursor: pointer; color: #6598F3; } -.luckysheet-newEditorRule-dialog .fa-table:hover{ + +.luckysheet-newEditorRule-dialog .fa-table:hover { color: #FF7E7E; } -.luckysheet-newEditorRule-dialog .iconsBox{ + +.luckysheet-newEditorRule-dialog .iconsBox { height: 30px; margin-bottom: 5px; position: relative; } -.luckysheet-newEditorRule-dialog .iconsBox label{ + +.luckysheet-newEditorRule-dialog .iconsBox label { display: block; width: 80px; height: 30px; line-height: 30px; float: left; } -.luckysheet-newEditorRule-dialog .iconsBox .showbox{ + +.luckysheet-newEditorRule-dialog .iconsBox .showbox { width: 150px; height: 20px; padding: 4px 4px 4px 10px; @@ -5551,14 +5777,16 @@ fieldset[disabled] a.btn { float: left; cursor: pointer; } -.luckysheet-newEditorRule-dialog .iconsBox .showbox .model{ + +.luckysheet-newEditorRule-dialog .iconsBox .showbox .model { width: 125px; height: 20px; background: url(../plugins/images/CFicons.png)no-repeat; background-size: 256px; float: left; } -.luckysheet-newEditorRule-dialog .iconsBox ul{ + +.luckysheet-newEditorRule-dialog .iconsBox ul { display: none; width: 164px; max-height: 150px; @@ -5572,15 +5800,18 @@ fieldset[disabled] a.btn { margin: 0; padding: 0; } -.luckysheet-newEditorRule-dialog .iconsBox ul li{ + +.luckysheet-newEditorRule-dialog .iconsBox ul li { padding: 5px 10px; background-color: #fff; cursor: pointer; } -.luckysheet-newEditorRule-dialog .iconsBox ul li:hover{ + +.luckysheet-newEditorRule-dialog .iconsBox ul li:hover { background-color: #dfdfdf; } -.luckysheet-newEditorRule-dialog .iconsBox ul li div{ + +.luckysheet-newEditorRule-dialog .iconsBox ul li div { width: 125px; height: 20px; background: url(../plugins/images/CFicons.png)no-repeat; @@ -5588,110 +5819,130 @@ fieldset[disabled] a.btn { } /*条件格式 图标集弹框*/ -#luckysheet-CFicons-dialog .box{ +#luckysheet-CFicons-dialog .box { padding: 10px; border: 1px solid #dfdfdf; font-size: 14px; } -#luckysheet-CFicons-dialog .box .title{ + +#luckysheet-CFicons-dialog .box .title { height: 20px; line-height: 20px; padding: 0 10px; background-color: #ebebeb; } -#luckysheet-CFicons-dialog .box .list{ + +#luckysheet-CFicons-dialog .box .list { width: 300px; padding: 5px 0; } -#luckysheet-CFicons-dialog .box .list .left{ + +#luckysheet-CFicons-dialog .box .list .left { width: 50%; float: left; } -#luckysheet-CFicons-dialog .box .list .right{ + +#luckysheet-CFicons-dialog .box .list .right { width: 50%; float: right; } -#luckysheet-CFicons-dialog .box .list .item{ + +#luckysheet-CFicons-dialog .box .list .item { width: 125px; height: 20px; padding: 2.5px 10px; background-color: #fff; cursor: pointer; } -#luckysheet-CFicons-dialog .box .list .item:hover{ + +#luckysheet-CFicons-dialog .box .list .item:hover { background-color: #dfdfdf; } -#luckysheet-CFicons-dialog .box .list .item div{ + +#luckysheet-CFicons-dialog .box .list .item div { width: 125px; height: 20px; - background: url(../plugins/images/CFicons.png)no-repeat; + background: url(../plugins/images/CFicons.png)no-repeat; background-size: 256px; } /*交替颜色*/ -#luckysheet-modal-dialog-slider-alternateformat{ +#luckysheet-modal-dialog-slider-alternateformat { width: 280px; font-size: 12px; } -#luckysheet-modal-dialog-slider-alternateformat .luckysheet-modal-dialog-slider-content{ + +#luckysheet-modal-dialog-slider-alternateformat .luckysheet-modal-dialog-slider-content { background-color: #fff; - overflow-y: scroll; + overflow-y: scroll; } -#luckysheet-modal-dialog-slider-alternateformat .textTitle{ + +#luckysheet-modal-dialog-slider-alternateformat .textTitle { padding: 5px 10px; font-weight: 600; } -#luckysheet-alternateformat-range{ + +#luckysheet-alternateformat-range { width: 198px; height: 28px; border: 1px solid #d4d4d4; margin-left: 10px; } -#luckysheet-alternateformat-range input{ + +#luckysheet-alternateformat-range input { width: 150px; height: 28px; padding: 0 10px; border: none; outline-style: none; float: left; -} -#luckysheet-alternateformat-range .fa-table{ +} + +#luckysheet-alternateformat-range .fa-table { float: right; margin-top: 8px; margin-right: 5px; cursor: pointer; color: #6598F3; } -#luckysheet-alternateformat-range .fa-table:hover{ + +#luckysheet-alternateformat-range .fa-table:hover { color: #FF7E7E; } -#luckysheet-alternateformat-checkbox{ + +#luckysheet-alternateformat-checkbox { padding: 5px 10px; border-top: 1px solid #d4d4d4; border-bottom: 1px solid #d4d4d4; margin: 10px 0; } -#luckysheet-alternateformat-checkbox div{ + +#luckysheet-alternateformat-checkbox div { height: 20px; line-height: 20px; } -#luckysheet-alternateformat-checkbox div:first-child{ + +#luckysheet-alternateformat-checkbox div:first-child { margin-bottom: 5px; } -#luckysheet-alternateformat-checkbox input[type="checkbox"]{ + +#luckysheet-alternateformat-checkbox input[type="checkbox"] { float: left; cursor: pointer; margin-top: 4px; } -#luckysheet-alternateformat-modelList{ + +#luckysheet-alternateformat-modelList { padding: 0 10px; margin-bottom: 10px; } -#luckysheet-alternateformat-modelCustom{ + +#luckysheet-alternateformat-modelCustom { padding: 0 10px; margin-bottom: 10px; } -#luckysheet-modal-dialog-slider-alternateformat .modelbox{ + +#luckysheet-modal-dialog-slider-alternateformat .modelbox { display: inline-block; width: 36px; padding: 2px; @@ -5701,15 +5952,18 @@ fieldset[disabled] a.btn { margin-bottom: 4px; cursor: pointer; } -#luckysheet-modal-dialog-slider-alternateformat .modelbox.on{ + +#luckysheet-modal-dialog-slider-alternateformat .modelbox.on { border-color: #726EFE; } -#luckysheet-modal-dialog-slider-alternateformat .modelbox .box{ + +#luckysheet-modal-dialog-slider-alternateformat .modelbox .box { width: 100%; border: 1px solid #d4d4d4; box-sizing: border-box; } -#luckysheet-modal-dialog-slider-alternateformat .modelbox .box span{ + +#luckysheet-modal-dialog-slider-alternateformat .modelbox .box span { display: block; width: 100%; height: 10px; @@ -5718,18 +5972,22 @@ fieldset[disabled] a.btn { border-bottom: 1px solid #d4d4d4; box-sizing: border-box; } -#luckysheet-modal-dialog-slider-alternateformat .modelbox .box span:last-child{ + +#luckysheet-modal-dialog-slider-alternateformat .modelbox .box span:last-child { line-height: 10px; border-bottom: none; } -#luckysheet-alternateformat-modelToning{ + +#luckysheet-alternateformat-modelToning { padding: 10px; } -#luckysheet-alternateformat-modelToning .toningbox{ + +#luckysheet-alternateformat-modelToning .toningbox { height: 25px; margin-bottom: 5px; } -#luckysheet-alternateformat-modelToning .toningbox .toningShow{ + +#luckysheet-alternateformat-modelToning .toningbox .toningShow { width: 150px; height: 100%; line-height: 23px; @@ -5738,21 +5996,25 @@ fieldset[disabled] a.btn { float: left; margin-right: 10px; } -#luckysheet-alternateformat-modelToning .toningbox .luckysheet-color-menu-button-indicator{ + +#luckysheet-alternateformat-modelToning .toningbox .luckysheet-color-menu-button-indicator { width: 20px; float: left; user-select: none; cursor: pointer; } -#luckysheet-alternateformat-modelToning .toningbox .luckysheet-color-menu-button-indicator .luckysheet-icon{ + +#luckysheet-alternateformat-modelToning .toningbox .luckysheet-color-menu-button-indicator .luckysheet-icon { user-select: none; margin-bottom: -6px; } -#luckysheet-alternateformat-colorSelect-dialog .currenColor{ + +#luckysheet-alternateformat-colorSelect-dialog .currenColor { font-size: 12px; margin-bottom: 5px; } -#luckysheet-alternateformat-colorSelect-dialog .currenColor span{ + +#luckysheet-alternateformat-colorSelect-dialog .currenColor span { display: inline-block; width: 16px; height: 16px; @@ -5761,21 +6023,24 @@ fieldset[disabled] a.btn { margin-bottom: -5px; cursor: pointer; } -#luckysheet-alternateformat-rangeDialog input{ + +#luckysheet-alternateformat-rangeDialog input { border: 1px solid #d4d4d4; padding: 0 10px; height: 30px; } /*if公式生成器*/ -#luckysheet-ifFormulaGenerator-dialog{ +#luckysheet-ifFormulaGenerator-dialog { font-size: 12px; } -#luckysheet-ifFormulaGenerator-dialog .ifAttr .attrBox{ + +#luckysheet-ifFormulaGenerator-dialog .ifAttr .attrBox { height: 30px; margin-bottom: 10px; } -#luckysheet-ifFormulaGenerator-dialog .ifAttr .attrBox label{ + +#luckysheet-ifFormulaGenerator-dialog .ifAttr .attrBox label { display: block; width: 100px; height: 100%; @@ -5784,7 +6049,8 @@ fieldset[disabled] a.btn { text-align: right; float: left; } -#luckysheet-ifFormulaGenerator-dialog .ifAttr .attrBox .inpBox{ + +#luckysheet-ifFormulaGenerator-dialog .ifAttr .attrBox .inpBox { width: 150px; height: 100%; padding: 0 10px; @@ -5792,7 +6058,8 @@ fieldset[disabled] a.btn { box-sizing: border-box; float: left; } -#luckysheet-ifFormulaGenerator-dialog .ifAttr .attrBox .inpBox input{ + +#luckysheet-ifFormulaGenerator-dialog .ifAttr .attrBox .inpBox input { width: 100px; height: 100%; padding: 0; @@ -5801,7 +6068,8 @@ fieldset[disabled] a.btn { background: transparent; float: left; } -#luckysheet-ifFormulaGenerator-dialog .ifAttr .attrBox .inpBox i.fa-table{ + +#luckysheet-ifFormulaGenerator-dialog .ifAttr .attrBox .inpBox i.fa-table { font-size: 14px; color: #6598F3; float: right; @@ -5809,16 +6077,20 @@ fieldset[disabled] a.btn { margin-top: 8px; cursor: pointer; } -#luckysheet-ifFormulaGenerator-dialog .ifAttr .attrBox .inpBox i.fa-table:hover{ + +#luckysheet-ifFormulaGenerator-dialog .ifAttr .attrBox .inpBox i.fa-table:hover { color: #FF7E7E; } -#luckysheet-ifFormulaGenerator-dialog .ifAttr .attrBox span.text{ + +#luckysheet-ifFormulaGenerator-dialog .ifAttr .attrBox span.text { height: 100%; line-height: 30px; padding: 0 5px; float: left; } -#luckysheet-ifFormulaGenerator-dialog #smallRange,#luckysheet-ifFormulaGenerator-dialog #largeRange{ + +#luckysheet-ifFormulaGenerator-dialog #smallRange, +#luckysheet-ifFormulaGenerator-dialog #largeRange { width: 100px; height: 100%; padding: 0 10px; @@ -5826,27 +6098,32 @@ fieldset[disabled] a.btn { box-sizing: border-box; float: left; } -#luckysheet-ifFormulaGenerator-dialog #rangeAssess{ + +#luckysheet-ifFormulaGenerator-dialog #rangeAssess { height: 100%; line-height: 30px; float: left; margin-left: 20px; } -#luckysheet-ifFormulaGenerator-dialog #rangeAssess i.fa-table{ + +#luckysheet-ifFormulaGenerator-dialog #rangeAssess i.fa-table { color: #6598F3; cursor: pointer; } -#luckysheet-ifFormulaGenerator-dialog #rangeAssess i.fa-table:hover{ + +#luckysheet-ifFormulaGenerator-dialog #rangeAssess i.fa-table:hover { color: #FF7E7E; } -#luckysheet-ifFormulaGenerator-dialog #DivisionMethod{ + +#luckysheet-ifFormulaGenerator-dialog #DivisionMethod { width: 100px; height: 100%; border: 1px solid #d4d4d4; box-sizing: border-box; float: left; } -#luckysheet-ifFormulaGenerator-dialog #DivisionMethodVal{ + +#luckysheet-ifFormulaGenerator-dialog #DivisionMethodVal { width: 120px; height: 100%; border: 1px solid #d4d4d4; @@ -5855,7 +6132,8 @@ fieldset[disabled] a.btn { float: left; margin-left: 10px; } -#luckysheet-ifFormulaGenerator-dialog #createBtn{ + +#luckysheet-ifFormulaGenerator-dialog #createBtn { width: 100px; height: 100%; line-height: 30px; @@ -5867,17 +6145,20 @@ fieldset[disabled] a.btn { float: right; cursor: pointer; } -#luckysheet-ifFormulaGenerator-dialog .ifList{ + +#luckysheet-ifFormulaGenerator-dialog .ifList { border-top: 1px solid #d4d4d4; height: 180px; padding: 10px; overflow-y: scroll; } -#luckysheet-ifFormulaGenerator-dialog .ifList .item{ + +#luckysheet-ifFormulaGenerator-dialog .ifList .item { height: 30px; margin-bottom: 10px; } -#luckysheet-ifFormulaGenerator-dialog .ifList .item input{ + +#luckysheet-ifFormulaGenerator-dialog .ifList .item input { width: 80px; height: 100%; border: 1px solid #d4d4d4; @@ -5886,10 +6167,12 @@ fieldset[disabled] a.btn { box-sizing: border-box; float: left; } -#luckysheet-ifFormulaGenerator-dialog .ifList .item input.markText{ + +#luckysheet-ifFormulaGenerator-dialog .ifList .item input.markText { width: 140px; } -#luckysheet-ifFormulaGenerator-dialog .ifList .item select{ + +#luckysheet-ifFormulaGenerator-dialog .ifList .item select { width: 50px; height: 100%; padding: 0 5px; @@ -5898,13 +6181,15 @@ fieldset[disabled] a.btn { float: left; margin: 0 10px; } -#luckysheet-ifFormulaGenerator-dialog .ifList .item span{ + +#luckysheet-ifFormulaGenerator-dialog .ifList .item span { height: 100%; line-height: 30px; float: left; margin: 0 10px; } -#luckysheet-ifFormulaGenerator-dialog .ifList .item i.fa-remove{ + +#luckysheet-ifFormulaGenerator-dialog .ifList .item i.fa-remove { font-size: 16px; float: left; margin-left: 15px; @@ -5912,129 +6197,153 @@ fieldset[disabled] a.btn { color: #d6d6d6; cursor: pointer; } -#luckysheet-ifFormulaGenerator-dialog .ifList .item i.fa-remove:hover{ + +#luckysheet-ifFormulaGenerator-dialog .ifList .item i.fa-remove:hover { color: #333; } -#luckysheet-ifFormulaGenerator-singleRange-dialog input,#luckysheet-ifFormulaGenerator-multiRange-dialog input{ + +#luckysheet-ifFormulaGenerator-singleRange-dialog input, +#luckysheet-ifFormulaGenerator-multiRange-dialog input { border: 1px solid #d4d4d4; padding: 0 10px; height: 30px; } + .pictorialBarUploadImg:hover { border: 1px solid #ccc !important; background: #EFEFEF; } /*下拉图标*/ -#luckysheet-dropCell-icon #icon_dropCell{ - width:25px; - height:15px; +#luckysheet-dropCell-icon #icon_dropCell { + width: 25px; + height: 15px; background-image: url(../plugins/images/icon_dropCell.png); - background-repeat:no-repeat; - background-position:center; + background-repeat: no-repeat; + background-position: center; background-size: 100% 100%; } /*定位*/ -#luckysheet-locationCell-dialog .listbox{ +#luckysheet-locationCell-dialog .listbox { border: 1px solid #dfdfdf; padding: 10px; font-size: 14px; color: #000; } -#luckysheet-locationCell-dialog .listbox .listItem{ + +#luckysheet-locationCell-dialog .listbox .listItem { padding: 5px 0; } -#luckysheet-locationCell-dialog .listbox .listItem input[type="radio"]{ + +#luckysheet-locationCell-dialog .listbox .listItem input[type="radio"] { float: left; margin-top: 5px; } -#luckysheet-locationCell-dialog .listbox .listItem .subbox{ + +#luckysheet-locationCell-dialog .listbox .listItem .subbox { height: 30px; padding: 0 10px; } -#luckysheet-locationCell-dialog .listbox .listItem .subbox .subItem{ + +#luckysheet-locationCell-dialog .listbox .listItem .subbox .subItem { float: left; margin-right: 5px; } /*更多格式*/ -#luckysheet-moreFormat-dialog{ +#luckysheet-moreFormat-dialog { font-size: 14px; color: #000; } -#luckysheet-moreFormat-dialog .decimal{ + +#luckysheet-moreFormat-dialog .decimal { margin-bottom: 5px; height: 30px; line-height: 30px; } -#luckysheet-moreFormat-dialog .decimal input{ + +#luckysheet-moreFormat-dialog .decimal input { width: 80px; height: 24px; padding: 0 5px; } -#luckysheet-moreFormat-dialog .listbox{ + +#luckysheet-moreFormat-dialog .listbox { border: 1px solid #666; height: 240px; overflow-y: auto; } -#luckysheet-moreFormat-dialog .listbox .listItem{ + +#luckysheet-moreFormat-dialog .listbox .listItem { height: 30px; padding: 0 20px 0 10px; border-bottom: 1px solid #dfdfdf; } -#luckysheet-moreFormat-dialog .listbox .listItem.on{ + +#luckysheet-moreFormat-dialog .listbox .listItem.on { background-color: #7C79FE; color: #fff; } -#luckysheet-moreFormat-dialog .listbox .listItem .name{ + +#luckysheet-moreFormat-dialog .listbox .listItem .name { line-height: 29px; float: left; } -#luckysheet-moreFormat-dialog .listbox .listItem .value{ + +#luckysheet-moreFormat-dialog .listbox .listItem .value { line-height: 30px; float: right; color: gray; } -#luckysheet-moreFormat-dialog .listbox .listItem.on .value{ + +#luckysheet-moreFormat-dialog .listbox .listItem.on .value { color: #fff; } /*分列*/ -#luckysheet-splitColumn-dialog{ +#luckysheet-splitColumn-dialog { -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } -#luckysheet-splitColumn-dialog .box{ + +#luckysheet-splitColumn-dialog .box { font-size: 14px; - + } -#luckysheet-splitColumn-dialog .box .boxTitle{ + +#luckysheet-splitColumn-dialog .box .boxTitle { padding: 5px; } -#luckysheet-splitColumn-dialog .box .boxMain{ + +#luckysheet-splitColumn-dialog .box .boxMain { padding: 5px; border: 1px solid #dfdfdf; } -#luckysheet-splitColumn-dialog .box input[type="checkbox"]{ + +#luckysheet-splitColumn-dialog .box input[type="checkbox"] { float: left; margin-top: 5px; } -#luckysheet-splitColumn-dialog .box .boxMain input[type="text"]{ + +#luckysheet-splitColumn-dialog .box .boxMain input[type="text"] { margin-left: 5px; width: 50px; padding: 0 5px; } -#luckysheet-splitColumn-dialog .box #splitColumnData{ + +#luckysheet-splitColumn-dialog .box #splitColumnData { height: 100px; overflow-y: auto; } -#luckysheet-splitColumn-dialog .box #splitColumnData table{ + +#luckysheet-splitColumn-dialog .box #splitColumnData table { border-collapse: collapse; } -#luckysheet-splitColumn-dialog .box #splitColumnData td{ + +#luckysheet-splitColumn-dialog .box #splitColumnData td { border: 1px solid #333; } @@ -6044,7 +6353,7 @@ fieldset[disabled] a.btn { } /*批注聚焦框 移动 改变大小*/ -.luckysheet-postil-dialog-move{ +.luckysheet-postil-dialog-move { position: absolute; margin: 0px; padding: 0px; @@ -6054,44 +6363,51 @@ fieldset[disabled] a.btn { right: 0; pointer-events: none; } -.luckysheet-postil-dialog-move .luckysheet-postil-dialog-move-item{ + +.luckysheet-postil-dialog-move .luckysheet-postil-dialog-move-item { /*background: #000;*/ position: absolute; pointer-events: all; cursor: move; } -.luckysheet-postil-dialog-move .luckysheet-postil-dialog-move-item-t{ + +.luckysheet-postil-dialog-move .luckysheet-postil-dialog-move-item-t { width: 100%; height: 3px; border-bottom: 1px solid #000; left: 0; top: -4px; } -.luckysheet-postil-dialog-move .luckysheet-postil-dialog-move-item-r{ + +.luckysheet-postil-dialog-move .luckysheet-postil-dialog-move-item-r { width: 3px; height: 100%; border-left: 1px solid #000; right: -4px; top: 0; } -.luckysheet-postil-dialog-move .luckysheet-postil-dialog-move-item-b{ + +.luckysheet-postil-dialog-move .luckysheet-postil-dialog-move-item-b { width: 100%; height: 3px; border-top: 1px solid #000; left: 0; bottom: -4px; } -.luckysheet-postil-dialog-move .luckysheet-postil-dialog-move-item-l{ + +.luckysheet-postil-dialog-move .luckysheet-postil-dialog-move-item-l { width: 3px; height: 100%; border-right: 1px solid #000; left: -4px; top: 0; } -.luckysheet-postil-show-active .luckysheet-postil-dialog-move .luckysheet-postil-dialog-move-item{ + +.luckysheet-postil-show-active .luckysheet-postil-dialog-move .luckysheet-postil-dialog-move-item { border-color: #0188fb; } -.luckysheet-postil-dialog-resize{ + +.luckysheet-postil-dialog-resize { position: absolute; margin: 0px; padding: 0px; @@ -6101,53 +6417,62 @@ fieldset[disabled] a.btn { right: -2px; pointer-events: none; } -.luckysheet-postil-dialog-resize .luckysheet-postil-dialog-resize-item{ + +.luckysheet-postil-dialog-resize .luckysheet-postil-dialog-resize-item { position: absolute; height: 6px; width: 6px; border: 1px solid #0188fb; pointer-events: all; } -.luckysheet-postil-dialog-resize .luckysheet-postil-dialog-resize-item-lt{ + +.luckysheet-postil-dialog-resize .luckysheet-postil-dialog-resize-item-lt { left: -6px; top: -6px; cursor: se-resize; } -.luckysheet-postil-dialog-resize .luckysheet-postil-dialog-resize-item-mt{ + +.luckysheet-postil-dialog-resize .luckysheet-postil-dialog-resize-item-mt { left: 50%; top: -6px; margin-left: -4px; cursor: s-resize; } -.luckysheet-postil-dialog-resize .luckysheet-postil-dialog-resize-item-lm{ + +.luckysheet-postil-dialog-resize .luckysheet-postil-dialog-resize-item-lm { top: 50%; left: -6px; margin-top: -4px; cursor: w-resize; } -.luckysheet-postil-dialog-resize .luckysheet-postil-dialog-resize-item-rm{ + +.luckysheet-postil-dialog-resize .luckysheet-postil-dialog-resize-item-rm { top: 50%; right: -6px; margin-top: -4px; cursor: w-resize; } -.luckysheet-postil-dialog-resize .luckysheet-postil-dialog-resize-item-rt{ + +.luckysheet-postil-dialog-resize .luckysheet-postil-dialog-resize-item-rt { right: -6px; top: -6px; cursor: ne-resize; } -.luckysheet-postil-dialog-resize .luckysheet-postil-dialog-resize-item-lb{ + +.luckysheet-postil-dialog-resize .luckysheet-postil-dialog-resize-item-lb { left: -6px; bottom: -6px; cursor: ne-resize; } -.luckysheet-postil-dialog-resize .luckysheet-postil-dialog-resize-item-mb{ + +.luckysheet-postil-dialog-resize .luckysheet-postil-dialog-resize-item-mb { left: 50%; bottom: -6px; margin-left: -4px; cursor: s-resize; } -.luckysheet-postil-dialog-resize .luckysheet-postil-dialog-resize-item-rb{ + +.luckysheet-postil-dialog-resize .luckysheet-postil-dialog-resize-item-rb { right: -6px; bottom: -6px; cursor: se-resize; @@ -6159,19 +6484,19 @@ fieldset[disabled] a.btn { } /*图表样式新增样式: 设置界面overflow滚动*/ -.luckysheet-datavisual-left .el-tabs__content{ +.luckysheet-datavisual-left .el-tabs__content { overflow: auto; } .luckysheet-modal-dialog { - -webkit-box-shadow: 0 4px 16px rgba(0,0,0,.2); - -moz-box-shadow: 0 4px 16px rgba(0,0,0,.2); - box-shadow: 0 4px 16px rgba(0,0,0,.2); + -webkit-box-shadow: 0 4px 16px rgba(0, 0, 0, .2); + -moz-box-shadow: 0 4px 16px rgba(0, 0, 0, .2); + box-shadow: 0 4px 16px rgba(0, 0, 0, .2); background: #fff; background-clip: padding-box; border: 1px solid #acacac; - border: 1px solid rgba(0,0,0,.333); + border: 1px solid rgba(0, 0, 0, .333); outline: 0; position: absolute; color: #000; @@ -6360,16 +6685,16 @@ fieldset[disabled] a.btn { -o-transition: all 0.2s; } - .luckysheet-modal-controll-btn:hover { - border: 1px solid #A1A1A1; - color: #FC6666; - } +.luckysheet-modal-controll-btn:hover { + border: 1px solid #A1A1A1; + color: #FC6666; +} - .luckysheet-modal-controll-btn:active { - border: 1px solid #BBBBBB; - background: #EFEFEF; - color: #FC6666; - } +.luckysheet-modal-controll-btn:active { + border: 1px solid #BBBBBB; + background: #EFEFEF; + color: #FC6666; +} .luckysheet-modal-controll-del { font-size: 16px; diff --git a/src/function/func.js b/src/function/func.js index 6abfc1a..673d38e 100644 --- a/src/function/func.js +++ b/src/function/func.js @@ -93,6 +93,9 @@ function luckysheet_compareWith() { else if(sp == "-" && fp == null){ fp = 0; } + else if(sp == "/" && (tp == 0 || tp == null)){ + return error.d; + } //计算result function booleanOperation(a, operator, b){ diff --git a/src/function/functionImplementation.js b/src/function/functionImplementation.js index 17981f8..3df4cdd 100644 --- a/src/function/functionImplementation.js +++ b/src/function/functionImplementation.js @@ -7,7 +7,7 @@ import formula from '../global/formula'; import func_methods from '../global/func_methods'; import editor from '../global/editor'; import { isdatetime, diff, isdatatype } from '../global/datecontroll'; -import { isRealNum, isRealNull, valueIsError } from '../global/validate'; +import { isRealNum, isRealNull, valueIsError,error } from '../global/validate'; import { jfrefreshgrid } from '../global/refresh'; import { genarate, update } from '../global/format'; import { orderbydata } from '../global/sort'; @@ -19496,7 +19496,7 @@ const functionImplementation = { //结果为 TRUE var value_if_true = func_methods.getFirstValue(arguments[1], "text"); - if(valueIsError(value_if_true)){ + if(valueIsError(value_if_true) && value_if_false!=error.d){ return value_if_true; } @@ -19504,7 +19504,7 @@ const functionImplementation = { var value_if_false = ""; if(arguments.length == 3){ value_if_false = func_methods.getFirstValue(arguments[2], "text"); - if(valueIsError(value_if_false)){ + if(valueIsError(value_if_false) && value_if_false!=error.d){ return value_if_false; } } diff --git a/src/global/api.js b/src/global/api.js new file mode 100644 index 0000000..96a497a --- /dev/null +++ b/src/global/api.js @@ -0,0 +1,1168 @@ +import Store from "../store"; +import { getObjType } from "../utils/util"; +import formula from './formula'; +import { getSheetIndex, getluckysheet_select_save } from "../methods/get"; +import { isRealNull, valueIsError, isRealNum, isEditMode } from "./validate"; +import { genarate, update } from './format'; +import server from "../controllers/server"; +import luckysheetConfigsetting from "../controllers/luckysheetConfigsetting"; +import { setAccuracy } from "./setdata"; +import func_methods from "./func_methods"; +import luckysheetFreezen from "../controllers/freezen"; +import { luckysheetrefreshgrid, jfrefreshgrid, jfrefreshgrid_rhcw } from "./refresh"; +import locale from "../locale/locale"; +import tooltip from "./tooltip"; +import { luckysheet_searcharray } from "../controllers/sheetSearch"; +import { luckysheetDeleteCell, luckysheetextendtable, luckysheetdeletetable } from "./extend"; +import { getdatabyselection } from "./getdata"; + +const IDCardReg = /^\d{6}(18|19|20)?\d{2}(0[1-9]|1[12])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i; + + +/** + * 获取单元格的值 + * @param {Number} row 单元格所在行数;从0开始的整数,0表示第一行 + * @param {Number} column 单元格所在列数;从0开始的整数,0表示第一列 + * @param {Object} options 可选参数 + * @param {String} options.type 单元格的值类型,可以设置为原始值"v"或者显示值"m";默认值为'v',表示获取单元格的实际值 + * @param {Number} options.order 工作表索引;默认值为当前工作表索引 + */ +export function getCellValue(row, column, options = {}) { + if (row == null && column == null) { + return console.error('Arguments row or column cannot be null or undefined.') + } + let curSheetOrder = getSheetIndex(Store.currentSheetIndex); + let { + type = 'v', + order = curSheetOrder + } = { ...options }; + let targetSheetData = Store.luckysheetfile[order].data; + let cellData = targetSheetData[row][column]; + let return_v; + + if(getObjType(cellData) == "object"){ + return_v = cellData[type]; + + if (type == "f" && return_v != null) { + return_v = formula.functionHTMLGenerate(return_v); + } + else if(type == "f") { + return_v = cellData["v"]; + } + else if(cellData && cellData.ct && cellData.ct.fa == 'yyyy-MM-dd') { + return_v = cellData.m; + } + } + + if(return_v == undefined){ + return_v = null; + } + + return return_v; +} + +/** + * 设置单元格的值 + * @param {Number} row 单元格所在行数;从0开始的整数,0表示第一行 + * @param {Number} column 单元格所在列数;从0开始的整数,0表示第一列 + * @param {Object | String | Number} value 要设置的值;可以为字符串或数字,或为符合Luckysheet单元格格式的对象 + * @param {Object} options 可选参数 + * @param {Number} options.order 工作表索引;默认值为当前工作表索引 + * @param {Function} options.success 操作结束的回调函数 + */ +export function setCellValue(row, column, value, options = {}) { + if (row == null && column == null) { + return console.error('Arguments row or column cannot be null or undefined.') + } + let curSheetOrder = getSheetIndex(Store.currentSheetIndex); + let { + order = curSheetOrder, + success + } = {...options} + let targetSheetData = Store.luckysheetfile[order].data; + let cell = targetSheetData[row][column]; + let vupdate; + + if (getObjType(value) == 'object') { + cell = value; + + if (getObjType(value.v) == 'object') { + vupdate = vaule.v.v; + } else { + vupdate = value.v; + } + } else { + vupdate = value; + } + + if (isRealNull(vupdate)) { + if (getObjType(cell) == 'object') { + delete cell.m; + delete cell.v; + } else { + cell = null; + } + return; + } + + if (isRealNull(cell)) { + cell = {} + } + + if (vupdate.toString().substring(0, 1) == "'") { + cell.m = vupdate.toString().substring(1); + cell.ct = { "fa": "@", "t": "s" }; + cell.v = vupdate.toString().substring(1); + } else if (vupdate.toString().toUpperCase() === 'TRUE') { + cell.m = "TRUE"; + cell.ct = { "fa": "General", "t": "b" }; + cell.v = true; + } else if (vupdate.toString().toUpperCase() === 'FALSE') { + cell.m = "FALSE"; + cell.ct = { "fa": "General", "t": "b" }; + cell.v = false; + } else if (valueIsError(vupdate)) { + cell.m = vupdate.toString(); + cell.ct = { "fa": "General", "t": "e" }; + cell.v = vupdate; + } else { + if (cell.f != null && isRealNum(vupdate) && !IDCardReg.test(vupdate)) { + cell.v = parseFloat(vupdate); + if (cell.ct == null) { + cell.ct = { + 'fa': 'General', + 't': 'n' + } + } + + if (cell.v == Infinity || cell.v == -Infinity) { + cell.m = cell.v.toString(); + } else { + if (cell.v.toString().indexOf('e') > -1) { + let len = cell.v.toString().split('.')[1].split('e')[0].length; + if (len > 5) { + len = 5; + } + + cell.m = cell.v.toExponential(len).toString(); + } else { + let v_p = Math.round(cell.v * 1000000000) / 1000000000; + if (cell.ct == null) { + let mask = genarate(v_p); + cell.m = mask[0].toString(); + } else { + let mask = update(cell.ct.fa, v_p); + cell.m = mask.toString(); + } + } + } + } else if (cell.ct != null && cell.ct.fa == '@') { + cell.m = vupdate.toString(); + cell.v = vupdate; + } else if (cell.ct != null && cell.ct.fa != null && cell.ct.fa != 'General') { + if (isRealNum(vupdate)) { + vupdate = parseFloat(vupdate); + } + + let mask = update(cell.ct.fa, vupdate); + + if (mask === vupdate) {// 若原来单元格格式 应用不了 要更新的值,则获取更新值的 格式 + mask = genarate(vupdate); + + cell.m = mask[0].toString(); + cell.ct = mask[1]; + cell.v = mask[2]; + } else { + cell.m = mask.toString(); + cell.v = vupdate; + } + } else { + if (isRealNum(vupdate) && !IDCardReg.test(vupdate)) { + vupdate = parseFloat(vupdate); + cell.v = parseFloat(vupdate); + cell.ct = { + 'fa': 'General', + 't': 'n' + } + if (cell.v == Infinity || cell.v == -Infinity) { + cell.m = cell.v.toString(); + } else { + let mask = genarate(cell.v); + cell.m = mask[0].toString(); + } + } else { + let mask = genarate(vupdate); + cell.m = mask[0].toString(); + cell.ct = mask[1]; + cell.v = mask[2]; + } + } + } + if (!server.allowUpdate && !luckysheetConfigsetting.pointEdit) { + if (cell.ct != null && !/^(w|W)((0?)|(0\.0+))$/.test(cell.ct.fa) && cell.ct.t == 'n' && cell.v != null && parseInt(cell.v).toString().length > 4) { + let autoFormatw = luckysheetConfigsetting.autoFormatw.toString().toUpperCase(); + let accuracy = luckysheetConfigsetting.accuracy; + let sfmt = setAccuracy(autoFormatw, accuracy); + + if (sfmt != 'General') { + cell.ct.fa = sfmt; + cell.m = update(sfmt, cell.v); + } + } + } + // refresh + jfrefreshgrid(targetSheetData, { + row: [row], + column: [column] + }) + + if (success && typeof success === 'function') { + success(); + } +} + +/** + * 清除指定工作表指定单元格的内容,返回清除掉的数据,不同于删除单元格的功能,不需要设定单元格移动情况 + * @param {Number} row 单元格所在行数;从0开始的整数,0表示第一行 + * @param {Number} column 单元格所在列数;从0开始的整数,0表示第一列 + * @param {Object} options 可选参数 + * @param {Number} options.order 工作表索引;默认值为当前工作表索引 + * @param {Function} options.success 操作结束的回调函数 + */ +export function clearCell(row, column, options = {}) { + if (row == null || column == null) { + return console.error('Arguments row and column cannot be null or undefined.') + } + let curSheetOrder = getSheetIndex(Store.currentSheetIndex); + let { + order = curSheetOrder, + success + } = {...options} + let targetSheetData = Store.luckysheetfile[order].data; + let cell = targetSheetData[row][column]; + + if(getObjType(targetSheetData[row][column]) == "object"){ + delete targetSheetData[row][column]["m"]; + delete targetSheetData[row][column]["v"]; + + if(targetSheetData[row][column]["f"] != null){ + delete targetSheetData[row][column]["f"]; + formula.delFunctionGroup(row, column, order); + + delete targetSheetData[row][column]["spl"]; + } + } + else{ + targetSheetData[row][column] = null; + } + // 若操作为当前sheet页,则刷新当前sheet页 + if (order === curSheetOrder) { + jfrefreshgrid(targetSheetData, [{ + row: [row, row], + column: [column, column] + }]) + } + if (success && typeof success === 'function') { + success(cell) + } +} + +/** + * 删除指定工作表指定单元格,返回删除掉的数据,同时,指定是右侧单元格左移还是下方单元格上移 + * @param {String} move 删除后,右侧还是下方的单元格移动。可选值为 'left'、'up' + * @param {Number} row 单元格所在行数;从0开始的整数,0表示第一行 + * @param {Number} column 单元格所在列数;从0开始的整数,0表示第一列 + * @param {Object} options 可选参数 + * @param {Number} options.order 工作表索引;默认值为当前工作表索引 + * @param {Function} options.success 操作结束的回调函数 + */ +export function deleteCell(move, row, column, options = {}) { + let moveTypes = ['left', 'up']; + if (!move || moveTypes.indexOf(move) < 0) { + return console.error('Arguments move cannot be null or undefined and its value must be \'left\' or \'up\'') + } + if (row == null || column == null) { + return console.error('Arguments row and column cannot be null or undefined.') + } + + let curSheetOrder = getSheetIndex(Store.currentSheetIndex); + let { + order = curSheetOrder, + success + } = {...options} + + let moveType = 'move' + move.replace(move[0], move[0].toUpperCase()); // left-moveLeft; up-moveUp + luckysheetDeleteCell(moveType, row, row, column, column, order); + if (success && typeof success === 'function') { + success() + } +} + +/** + * 设置某个单元格的属性,如果要设置单元格的值或者同时设置多个单元格属性,推荐使用setCellValue + * @param {Number} row 单元格所在行数;从0开始的整数,0表示第一行 + * @param {Number} column 单元格所在列数;从0开始的整数,0表示第一列 + * @param {String} attr + * @param {Number | String | Object} value 具体的设置值,一个属性会对应多个值,参考 单元格属性表的值示例,特殊情况:如果属性类型attr是单元格格式ct,则设置值value应提供ct.fa,比如设置A1单元格的格式为百分比格式:luckysheet.setCellFormat(0, 0, "ct", "0.00%") + * @param {Object} options 可选参数 + * @param {Number} options.order 工作表索引;默认值为当前工作表索引 + * @param {Function} options.success 操作结束的回调函数, callback参数为改变后的cell对象 + */ +export function setCellFormat(row, column, attr, value, options = {}) { + if (row == null && column == null) { + return console.error('Arguments row or column cannot be null or undefined.') + } + if (!attr) { + return console.error('Arguments attr cannot be null or undefined.') + } + let curSheetOrder = getSheetIndex(Store.currentSheetIndex); + let { + order = curSheetOrder, + success + } = { ...options }; + let targetSheetData = Store.luckysheetfile[order].data; + let cellData = targetSheetData[row][column]; + + // 特殊格式 + if (attr == 'ct' && (!value || !value.hasOwnProperty('fa') || !value.hasOwnProperty('t'))) { + return new TypeError('While set attribute \'ct\' to cell, the value must have property \'fa\' and \'t\'') + cellData.m = update(value.fa, cellData.v) + } + + cellData[attr] = value; + // refresh + jfrefreshgrid(targetSheetData, { + row: [row], + column: [column] + }) + if (success && typeof success === 'function') { + success(cellData); + } +} + +/** + * 查找一个工作表中的指定内容,返回查找到的内容组成的单元格一位数组,数据格式同celldata + * @param {String} content 要查找的内容 可以为正则表达式(不包含前后'/') + * @param {Object} options 可选参数 + * @param {Boolean} options.isRegularExpression 是否正则表达式匹配;默认为 false. 注意:正则中的规则需要转义,如\S需要写成 \\S + * @param {Boolean} options.isWholeWord 是否整词匹配;默认为 false + * @param {Boolean} options.isCaseSensitive 是否区分大小写匹配;默认为 false + * @param {Number} options.order 工作表索引;默认值为当前工作表索引 + */ +export function find(content, options = {}) { + if (!content && content != 0) { + return console.error('Search content cannot be null or empty') + } + let curSheetOrder = getSheetIndex(Store.currentSheetIndex); + let { + isRegularExpression = false, + isWholeWord = false, + isCaseSensitive = false, + order = curSheetOrder + } = { ...options }; + let targetSheetData = Store.luckysheetfile[order].data; + + let result = []; + for (let i = 0; i < targetSheetData.length; i++) { + const rowArr = targetSheetData[i]; + for (let j = 0; j < rowArr.length; j++) { + const cell = rowArr[j]; + if (!cell) { + continue; + } + + // 添加cell的row, column属性 + // replace方法中的setCellValue中需要使用该属性 + cell.row = i; + cell.column = j; + + if (isWholeWord) { + if (isCaseSensitive) { + if (content.toString() == cell.m) { + result.push(cell) + } + } else { + if (cell.m && content.toString().toLowerCase() == cell.m.toLowerCase()) { + result.push(cell) + } + } + } else if (isRegularExpression) { + let reg; + if (isCaseSensitive) { + reg = new RegExp(func_methods.getRegExpStr(content), 'g') + } else { + reg = new RegExp(func_methods.getRegExpStr(content), 'ig') + } + if (reg.test(cell.m)) { + result.push(cell) + } + } else if (isCaseSensitive) { + let reg = new RegExp(func_methods.getRegExpStr(content), 'g'); + if (reg.test(cell.m)) { + result.push(cell); + } + } else { + let reg = new RegExp(func_methods.getRegExpStr(content), 'ig'); + if (reg.test(cell.m)) { + result.push(cell); + } + } + } + } + return result; +} + +/** + * 查找一个工作表中的指定内容并替换成新的内容,返回替换后的内容组成的单元格一位数组,数据格式同celldata。 + * @param {String} content 要查找的内容 + * @param {String} replaceContent 要替换的内容 + * @param {Object} options 可选参数 + * @param {Boolean} options.isRegularExpression 是否正则表达式匹配;默认为 false + * @param {Boolean} options.isWholeWord 是否整词匹配;默认为 false + * @param {Boolean} options.isCaseSensitive 是否区分大小写匹配;默认为 false + * @param {Number} options.order 工作表索引;默认值为当前工作表索引 + * @param {Function} options.success 操作结束的回调函数, callback参数为替换后的cell集合 + */ +export function replace(content, replaceContent, options = {}) { + let matchCells = find(content, options) + matchCells.forEach(cell => { + cell.m = replaceContent; + setCellValue(cell.row, cell.column, replaceContent, options); + }) + if (options.success && typeof options.success === 'function') { + options.success(matchCells) + } + return matchCells; +} + +/** + * 冻结首行 + * 若设置冻结的sheet不是当前sheet页,只设置参数不渲染 + * @param {Number | String} order 工作表索引 + */ +export function frozenFirstRow(order) { + // store frozen + luckysheetFreezen.saveFrozen("freezenRow", order); + + // 冻结为当前sheet页 + if (!order || order == getSheetIndex(Store.currentSheetIndex)) { + let scrollTop = $("#luckysheet-cell-main").scrollTop(); + let row_st = luckysheet_searcharray(Store.visibledatarow, scrollTop); + if(row_st == -1){ + row_st = 0; + } + let top = Store.visibledatarow[row_st] - 2 - scrollTop + Store.columeHeaderHeight; + let freezenhorizontaldata = [Store.visibledatarow[row_st], row_st + 1, scrollTop, luckysheetFreezen.cutVolumn(Store.visibledatarow, row_st + 1), top]; + luckysheetFreezen.saveFreezen(freezenhorizontaldata, top, null, null); + + if (luckysheetFreezen.freezenverticaldata != null) { + luckysheetFreezen.cancelFreezenVertical(); + luckysheetFreezen.createAssistCanvas(); + luckysheetrefreshgrid(); + } + + luckysheetFreezen.createFreezenHorizontal(freezenhorizontaldata, top); + luckysheetFreezen.createAssistCanvas(); + luckysheetrefreshgrid(); + } +} + +/** + * 冻结首列 + * 若设置冻结的sheet不是当前sheet页,只设置参数不渲染 + * @param {Number | String} order 工作表索引 + */ +export function frozenFirstColumn(order) { + // store frozen + luckysheetFreezen.saveFrozen("freezenColumn", order); + + // 冻结为当前sheet页 + if (!order || order == getSheetIndex(Store.currentSheetIndex)) { + let scrollLeft = $("#luckysheet-cell-main").scrollLeft(); + let col_st = luckysheet_searcharray(Store.visibledatacolumn, scrollLeft); + if(col_st == -1){ + col_st = 0; + } + let left = Store.visibledatacolumn[col_st] - 2 - scrollLeft + Store.rowHeaderWidth; + let freezenverticaldata = [Store.visibledatacolumn[col_st], col_st + 1, scrollLeft, luckysheetFreezen.cutVolumn(Store.visibledatacolumn, col_st + 1), left]; + luckysheetFreezen.saveFreezen(null, null, freezenverticaldata, left); + + if (luckysheetFreezen.freezenhorizontaldata != null) { + luckysheetFreezen.cancelFreezenHorizontal(); + luckysheetFreezen.createAssistCanvas(); + luckysheetrefreshgrid(); + } + + luckysheetFreezen.createFreezenVertical(freezenverticaldata, left); + luckysheetFreezen.createAssistCanvas(); + luckysheetrefreshgrid(); + } +} + +/** + * 冻结行选区 + * @param {Object} range 行选区范围的focus单元格的行列值构成的对象;格式为{ row_focus:0, column_focus:0 } + * @param {Number | String} order 工作表索引 + */ +export function frozenRowRange(range, order) { + const locale_frozen = locale().freezen; + if (!range || (!range.hasOwnProperty('row_focus') && !formula.iscelldata(range))) { + if(isEditMode()){ + alert(locale_frozen.noSeletionError); + } else{ + tooltip.info(locale_frozen.noSeletionError, ""); + } + return + } + if (typeof range === 'string' && formula.iscelldata(range)) { + range = formula.getcellrange(range) + range = { + row_focus: range.row[0], + column_focus: range.column[0] + } + } + // store frozen + luckysheetFreezen.saveFrozen("freezenRowRange", order, range); + + if (!order || order == getSheetIndex(Store.currentSheetIndex)) { + let scrollTop = $("#luckysheet-cell-main").scrollTop(); + let row_st = luckysheet_searcharray(Store.visibledatarow, scrollTop); + + let row_focus = range.row_focus; + if(row_focus > row_st){ + row_st = row_focus; + } + if(row_st == -1){ + row_st = 0; + } + + let top = Store.visibledatarow[row_st] - 2 - scrollTop + Store.columeHeaderHeight; + let freezenhorizontaldata = [Store.visibledatarow[row_st], row_st + 1, scrollTop, luckysheetFreezen.cutVolumn(Store.visibledatarow, row_st + 1), top]; + luckysheetFreezen.saveFreezen(freezenhorizontaldata, top, null, null); + + if (luckysheetFreezen.freezenverticaldata != null) { + luckysheetFreezen.cancelFreezenVertical(); + luckysheetFreezen.createAssistCanvas(); + luckysheetrefreshgrid(); + } + + luckysheetFreezen.createFreezenHorizontal(freezenhorizontaldata, top); + luckysheetFreezen.createAssistCanvas(); + luckysheetrefreshgrid(); + } + +} + +/** + * 冻结列选区 + * @param {Object} range 列选区范围的focus单元格的行列值构成的对象;格式为{ row_focus:0, column_focus:0 } + * @param {Number | String} order 工作表索引 + */ +export function frozenColumnRange(range, order) { + const locale_frozen = locale().freezen; + let isStringRange = typeof range === 'string' && formula.iscelldata(range); + if (!range || (!range.hasOwnProperty('column_focus') && !isStringRange)) { + if(isEditMode()){ + alert(locale_frozen.noSeletionError); + } else{ + tooltip.info(locale_frozen.noSeletionError, ""); + } + return + } + if (isStringRange) { + range = formula.getcellrange(range) + range = { + row_focus: range.row[0], + column_focus: range.column[0] + } + } + // store frozen + luckysheetFreezen.saveFrozen("freezenColumnRange", order, range); + + if (!order || order == getSheetIndex(Store.currentSheetIndex)) { + let scrollLeft = $("#luckysheet-cell-main").scrollLeft(); + let col_st = luckysheet_searcharray(Store.visibledatacolumn, scrollLeft); + + let column_focus = range.column_focus; + if(column_focus > col_st){ + col_st = column_focus; + } + if(col_st == -1){ + col_st = 0; + } + + let left = Store.visibledatacolumn[col_st] - 2 - scrollLeft + Store.rowHeaderWidth; + let freezenverticaldata = [Store.visibledatacolumn[col_st], col_st + 1, scrollLeft, luckysheetFreezen.cutVolumn(Store.visibledatacolumn, col_st + 1), left]; + luckysheetFreezen.saveFreezen(null, null, freezenverticaldata, left); + + if (luckysheetFreezen.freezenhorizontaldata != null) { + luckysheetFreezen.cancelFreezenHorizontal(); + luckysheetFreezen.createAssistCanvas(); + luckysheetrefreshgrid(); + } + + luckysheetFreezen.createFreezenVertical(freezenverticaldata, left); + luckysheetFreezen.createAssistCanvas(); + luckysheetrefreshgrid(); + } +} + +/** + * 取消冻结 + * @param {Number | String} order + */ +export function cancelFrozen(order) { + luckysheetFreezen.saveFrozen("freezenCancel", order); + + // 取消当前sheet冻结时,刷新canvas + if (!order || order == getSheetIndex(Store.currentSheetIndex)) { + if (luckysheetFreezen.freezenverticaldata != null) { + luckysheetFreezen.cancelFreezenVertical(); + } + if (luckysheetFreezen.freezenhorizontaldata != null) { + luckysheetFreezen.cancelFreezenHorizontal(); + } + luckysheetFreezen.createAssistCanvas(); + luckysheetrefreshgrid(); + } +} + +/** + * 冻结行操作。特别注意,只有在isRange设置为true的时候,才需要设置setting中的range,且与一般的range格式不同。 + * @param {Boolean} isRange 是否冻结行到选区 true-冻结行到选区 false-冻结首行 + * @param {Object} options 可选参数 + * @param {Object} options.range isRange为true的时候设置,开启冻结的单元格位置,格式为{ row_focus:0, column_focus:0 },意为当前激活的单元格的行数和列数;默认从当前选区最后的一个选区中取得 + * @param {Number} options.order 工作表索引;默认值为当前工作表索引 + * @param {Function} options.success 操作结束的回调函数 + */ +export function setHorizontalFrozen(isRange, options = {}) { + let curSheetOrder = getSheetIndex(Store.currentSheetIndex); + let { + range, + order = curSheetOrder, + success + } = { ...options }; + + // 若已存在冻结,取消之前的冻结效果 + cancelFrozen(order); + + if (!isRange) { + frozenFirstRow(order) + } else { // 选区行冻结 + frozenRowRange(range, order); + } + + if (success && typeof success === 'function') { + success() + } +} + +/** + * 冻结列操作。特别注意,只有在isRange设置为true的时候,才需要设置setting中的range,且与一般的range格式不同。 + * @param {Boolean} isRange 是否冻结列到选区 true-冻结列到选区 false-冻结首列 + * @param {Object} options 可选参数 + * @param {Object} options.range isRange为true的时候设置,开启冻结的单元格位置,格式为{ row_focus:0, column_focus:0 },意为当前激活的单元格的行数和列数;默认从当前选区最后的一个选区中取得 + * @param {Number} options.order 工作表索引;默认值为当前工作表索引 + * @param {Function} options.success 操作结束的回调函数 + */ +export function setVerticalFrozen(isRange, options = {}) { + let curSheetOrder = getSheetIndex(Store.currentSheetIndex); + let { + range, + order = curSheetOrder, + success + } = { ...options }; + + // 若已存在冻结,取消之前的冻结效果 + cancelFrozen(order); + + if (!isRange) { + frozenFirstColumn(order); + } else { + frozenColumnRange(range, order); + } + + if (success && typeof success === 'function') { + success() + } +} + +/** + * 冻结行列操作。特别注意,只有在isRange设置为true的时候,才需要设置setting中的range,且与一般的range格式不同。 + * @param {Boolean} isRange 是否冻结行列到选区 true-冻结行列到选区 false-冻结首行列 + * @param {Object} options 可选参数 + * @param {Object} options.range isRange为true的时候设置,开启冻结的单元格位置,格式为{ row_focus:0, column_focus:0 },意为当前激活的单元格的行数和列数;默认从当前选区最后的一个选区中取得 + * @param {Number} options.order 工作表索引;默认值为当前工作表索引 + * @param {Function} options.success 操作结束的回调函数 + */ +export function setBothFrozen(isRange, options = {}) { + let curSheetOrder = getSheetIndex(Store.currentSheetIndex); + let { + range, + order = curSheetOrder, + success + } = { ...options }; + + let isCurrentSheet = !order || order == getSheetIndex(Store.currentSheetIndex); + const locale_frozen = locale().freezen; + + // 若已存在冻结,取消之前的冻结效果 + cancelFrozen(order); + + // 冻结首行列 + if (!isRange) { + // store frozen + luckysheetFreezen.saveFrozen("freezenRC", order) + + if (isCurrentSheet) { + let scrollTop = $("#luckysheet-cell-main").scrollTop(); + let row_st = luckysheet_searcharray(Store.visibledatarow, scrollTop); + if(row_st == -1){ + row_st = 0; + } + let top = Store.visibledatarow[row_st] - 2 - scrollTop + Store.columeHeaderHeight; + let freezenhorizontaldata = [Store.visibledatarow[row_st], row_st + 1, scrollTop, luckysheetFreezen.cutVolumn(Store.visibledatarow, row_st + 1), top]; + luckysheetFreezen.saveFreezen(freezenhorizontaldata, top, null, null); + + luckysheetFreezen.createFreezenHorizontal(freezenhorizontaldata, top); + + let scrollLeft = $("#luckysheet-cell-main").scrollLeft(); + let col_st = luckysheet_searcharray(Store.visibledatacolumn, scrollLeft); + if(col_st == -1){ + col_st = 0; + } + let left = Store.visibledatacolumn[col_st] - 2 - scrollLeft + Store.rowHeaderWidth; + let freezenverticaldata = [Store.visibledatacolumn[col_st], col_st + 1, scrollLeft, luckysheetFreezen.cutVolumn(Store.visibledatacolumn, col_st + 1), left]; + luckysheetFreezen.saveFreezen(null, null, freezenverticaldata, left); + + luckysheetFreezen.createFreezenVertical(freezenverticaldata, left); + + luckysheetFreezen.createAssistCanvas(); + luckysheetrefreshgrid(); + } + } else { // 冻结行列到选区 + // store frozen + luckysheetFreezen.saveFrozen("freezenRCRange", order, range) + + let isStringRange = typeof range === 'string' && formula.iscelldata(range); + if (isCurrentSheet) { + if ((!range || !(range.hasOwnProperty('column_focus') && range.hasOwnProperty('row_focus'))) && !isStringRange) { + if(isEditMode()){ + alert(locale_frozen.noSeletionError); + } else{ + tooltip.info(locale_frozen.noSeletionError, ""); + } + return + } + + if (isStringRange) { + range = formula.getcellrange(range) + range = { + row_focus: range.row[0], + column_focus: range.column[0] + } + } + + let scrollTop = $("#luckysheet-cell-main").scrollTop(); + let row_st = luckysheet_searcharray(Store.visibledatarow, scrollTop); + + let row_focus = range.row_focus; + + if(row_focus > row_st){ + row_st = row_focus; + } + + if(row_st == -1){ + row_st = 0; + } + + let top = Store.visibledatarow[row_st] - 2 - scrollTop + Store.columeHeaderHeight; + let freezenhorizontaldata = [Store.visibledatarow[row_st], row_st + 1, scrollTop, luckysheetFreezen.cutVolumn(Store.visibledatarow, row_st + 1), top]; + luckysheetFreezen.saveFreezen(freezenhorizontaldata, top, null, null); + + luckysheetFreezen.createFreezenHorizontal(freezenhorizontaldata, top); + + let scrollLeft = $("#luckysheet-cell-main").scrollLeft(); + let col_st = luckysheet_searcharray(Store.visibledatacolumn, scrollLeft); + + let column_focus = range.column_focus; + + if(column_focus > col_st){ + col_st = column_focus; + } + + if(col_st == -1){ + col_st = 0; + } + + let left = Store.visibledatacolumn[col_st] - 2 - scrollLeft + Store.rowHeaderWidth; + let freezenverticaldata = [Store.visibledatacolumn[col_st], col_st + 1, scrollLeft, luckysheetFreezen.cutVolumn(Store.visibledatacolumn, col_st + 1), left]; + luckysheetFreezen.saveFreezen(null, null, freezenverticaldata, left); + + luckysheetFreezen.createFreezenVertical(freezenverticaldata, left); + + luckysheetFreezen.createAssistCanvas(); + luckysheetrefreshgrid(); + } + } +} + +/** + * 在第index行或列的位置,插入number行或列 + * @param {String} type 插入行或列 row-行 column-列 + * @param {Number} index 在第几行插入空白行,从0开始 + * @param {Object} options 可选参数 + * @param {Number} options.number 插入的空白行数;默认为 1 + * @param {Number} options.order 工作表索引;默认值为当前工作表索引 + * @param {Function} options.success 操作结束的回调函数 + */ +export function insertRowOrColumn(type, index = 0, options = {}) { + let curSheetOrder = getSheetIndex(Store.currentSheetIndex); + let { + number = 1, + order = curSheetOrder, + success + } = {...options} + + if (!isRealNum(number)) { + if(isEditMode()){ + alert(locale_info.tipInputNumber); + } else{ + tooltip.info(locale_info.tipInputNumber, ""); + } + return; + } + number = parseInt(number); + if (number < 1 || number > 100) { + if(isEditMode()){ + alert(locale_info.tipInputNumberLimit); + } else{ + tooltip.info(locale_info.tipInputNumberLimit, ""); + } + return; + } + // 默认在行上方增加行,列左侧增加列 + luckysheetextendtable(type, index, number, "lefttop", order); + + if (success && typeof success === 'function') { + success(); + } +} + +/** + * 在第row行的位置,插入number行空白行 + * @param {Number} row 在第几行插入空白行,从0开始 + * @param {Object} options 可选参数 + * @param {Number} options.number 插入的空白行数;默认为 1 + * @param {Number} options.order 工作表索引;默认值为当前工作表索引 + * @param {Function} options.success 操作结束的回调函数 + */ +export function insertRow(row = 0, options = {}) { + insertRowOrColumn('row', row, options) +} + +/** + * 在第column列的位置,插入number列空白列 + * @param {Number} column 在第几列插入空白列,从0开始 + * @param {Object} options 可选参数 + * @param {Number} options.number 插入的空白列数;默认为 1 + * @param {Number} options.order 工作表索引;默认值为当前工作表索引 + * @param {Function} options.success 操作结束的回调函数 + */ +export function insertColumn(column = 0, options = {}) { + insertRowOrColumn('column', column, options) +} + +/** + * 删除指定的行或列。删除行列之后,行列的序号并不会变化,下面的行(右侧的列)会补充到上(左)面,注意观察数据是否被正确删除即可。 + * @param {String} type 删除行或列 row-行 column-列 + * @param {Number} startIndex 要删除的起始行或列 + * @param {Number} endIndex 要删除的结束行或列 + * @param {Object} options 可选参数 + * @param {Number} options.order 工作表索引;默认值为当前工作表索引 + * @param {Function} options.success 操作结束的回调函数 + */ +export function deleteRowOrColumn(type, startIndex, endIndex, options = {}) { + if (startIndex == null || endIndex == null) { + return console.error('Please enter the index for deleting rows or columns correctly.') + } + let curSheetOrder = getSheetIndex(Store.currentSheetIndex); + let { + order = curSheetOrder, + success + } = {...options} + luckysheetdeletetable(type, startIndex, endIndex, order) + + if (success && typeof success === 'function') { + success() + } +} + +/** + * 删除指定的行。 + * @param {Number} rowStart 要删除的起始行 + * @param {Number} rowEnd 要删除的结束行 + * @param {Object} options 可选参数 + * @param {Number} options.order 工作表索引;默认值为当前工作表索引 + * @param {Function} options.success 操作结束的回调函数 + */ +export function deleteRow(rowStart, rowEnd, options = {}) { + deleteRowOrColumn('row', rowStart, rowEnd, options) +} + +/** + * 删除指定的列。 + * @param {Number} columnStart 要删除的起始列 + * @param {Number} columnEnd 要删除的结束列 + * @param {Object} options 可选参数 + * @param {Number} options.order 工作表索引;默认值为当前工作表索引 + * @param {Function} options.success 操作结束的回调函数 + */ +export function deleteColumn(columnStart, columnEnd, options = {}) { + deleteRowOrColumn('column', columnStart, columnEnd, options) +} + +/** + * 隐藏行或列 + * @param {String} type 隐藏行或列 row-隐藏行 column-隐藏列 + * @param {Number} startIndex 起始行或列 + * @param {Number} endIndex 结束行或列 + * @param {Object} options 可选参数 + * @param {Number} options.order 工作表索引;默认值为当前工作表索引 + * @param {Function} options.success 操作结束的回调函数 + */ +export function hideRowOrColumn(type, startIndex, endIndex, options = {}) { + if (startIndex == null || endIndex == null) { + return console.error('Please enter the index for deleting rows or columns correctly.') + } + let curSheetOrder = getSheetIndex(Store.currentSheetIndex); + let { + order = curSheetOrder, + success + } = {...options} + + let file = Store.luckysheetfile[order]; + let cfgKey = type === 'row' ? 'rowhidden': 'colhidden'; + let cfg = $.extend(true, {}, file.config); + if(cfg[cfgKey] == null) { + cfg[cfgKey] = {}; + } + + for (let i = startIndex; i <= endIndex; i++) { + cfg[cfgKey][i] = 0; + } + + //保存撤销 + if(Store.clearjfundo){ + let redo = {}; + redo["type"] = type === 'row' ? 'showHidRows' : 'showHidCols'; + redo["sheetIndex"] = order; + redo["config"] = $.extend(true, {}, file.config); + redo["curconfig"] = cfg; + + Store.jfundo = []; + Store.jfredo.push(redo); + } + + Store.luckysheetfile[order].config = cfg; + server.saveParam("cg", order, cfg[cfgKey], { "k": cfgKey }); + + // 若操作sheet为当前sheet页,行高、列宽 刷新 + if (order == curSheetOrder) { + //config + Store.config = cfg; + jfrefreshgrid_rhcw(Store.flowdata.length, Store.flowdata[0].length); + } + + if (success && typeof success === 'function') { + success(); + } +} + +/** + * 显示隐藏的行或列 + * @param {String} type 显示行或列 row-显示行 column-显示列 + * @param {Number} startIndex 起始行或列 + * @param {Number} endIndex 结束行或列 + * @param {Object} options 可选参数 + * @param {Number} options.order 工作表索引;默认值为当前工作表索引 + * @param {Function} options.success 操作结束的回调函数 + */ +export function showRowOrColumn(type, startIndex, endIndex, options = {}) { + if (startIndex == null || endIndex == null) { + return console.error('Please enter the index for deleting rows or columns correctly.') + } + let curSheetOrder = getSheetIndex(Store.currentSheetIndex); + let { + order = curSheetOrder, + success + } = {...options} + + let cfgKey = type === 'row' ? 'rowhidden': 'colhidden'; + let cfg = $.extend(true, {}, Store.config); + if(cfg[cfgKey] == null) { + return; + } + + for (let i = startIndex; i <= endIndex; i++) { + delete cfg[cfgKey][i]; + } + + //保存撤销 + if(Store.clearjfundo){ + let redo = {}; + redo["type"] = type === 'row' ? 'showHidRows' : 'showHidCols'; + redo["sheetIndex"] = order; + redo["config"] = $.extend(true, {}, Store.config); + redo["curconfig"] = cfg; + + Store.jfundo = []; + Store.jfredo.push(redo); + } + + //config + Store.config = cfg; + Store.luckysheetfile[order].config = Store.config; + + server.saveParam("cg", order, cfg[cfgKey], { "k": cfgKey }); + + // 若操作sheet为当前sheet页,行高、列宽 刷新 + if (order === curSheetOrder) { + jfrefreshgrid_rhcw(Store.flowdata.length, Store.flowdata[0].length); + } + + if (success && typeof success === 'function') { + success(); + } +} + +/** + * 隐藏行 + * @param {Number} startIndex 起始行 + * @param {Number} endIndex 结束行 + * @param {Object} options 可选参数 + * @param {Number} options.order 工作表索引;默认值为当前工作表索引 + * @param {Function} options.success 操作结束的回调函数 + */ +export function hideRow(startIndex, endIndex, options = {}) { + hideRowOrColumn('row', startIndex, endIndex, options); +} + +/** + * 显示行 + * @param {Number} startIndex 起始行 + * @param {Number} endIndex 结束行 + * @param {Object} options 可选参数 + * @param {Number} options.order 工作表索引;默认值为当前工作表索引 + * @param {Function} options.success 操作结束的回调函数 + */ +export function showRow(startIndex, endIndex, options = {}) { + showRowOrColumn('row', startIndex, endIndex, options); +} + +/** + * 隐藏列 + * @param {Number} startIndex 起始列 + * @param {Number} endIndex 结束列 + * @param {Object} options 可选参数 + * @param {Number} options.order 工作表索引;默认值为当前工作表索引 + * @param {Function} options.success 操作结束的回调函数 + */ +export function hideColumn(startIndex, endIndex, options = {}) { + hideRowOrColumn('column', startIndex, endIndex, options); +} + +/** + * 显示列 + * @param {Number} startIndex 起始列 + * @param {Number} endIndex 结束列 + * @param {Object} options 可选参数 + * @param {Number} options.order 工作表索引;默认值为当前工作表索引 + * @param {Function} options.success 操作结束的回调函数 + */ +export function showColumn(startIndex, endIndex, options = {}) { + showRowOrColumn('column', startIndex, endIndex, options); +} + +/** + * 返回当前选区对象的数组,可能存在多个选区。 + * 每个选区的格式为row/column信息组成的对象{row:[0,1],column:[0,1]} + * @returns {Array} + */ +export function getRange() { + let rangeArr = Store.luckysheet_select_save; + let result = []; + for (let i = 0; i < rangeArr.length; i++) { + let rangeItem = rangeArr[i]; + let temp = { + row: rangeItem.row, + column: rangeItem.column + } + result.push(temp) + } + return result; +} + +/** + * 返回指定工作表指定范围的单元格二维数组数据,每个单元格为一个对象 + * @param {Object} options + * @param {Object | String} options.range 选区范围,支持选区的格式为"A1:B2"、"sheetName!A1:B2"或者{row:[0,1],column:[0,1]},只能为单个选区;默认为当前选区 + * @param {Number} options.order 工作表索引;默认值为当前工作表索引 + */ +export function getRangeValue(options = {}) { + let { + range, + order + } = {...options} + + if (!range || typeof range === 'object') { + return getdatabyselection(range, order); + } else if (typeof range === 'string') { + if (formula.iscelldata(range)) { + return getdatabyselection(formula.getcellrange(range), order) + } else { + console.error('The range is invalid, please check range parameter.') + } + } +} + +/** + * @todo 核心功能未实现,to be continue + * @description 复制指定工作表指定单元格区域的数据,返回一维、二维或者自定义行列数的二维数组的数据。只有在dimensional设置为custom的时候,才需要设置setting中的row和column + * @param {String} dimensional 数组维度。可选值为:oneDimensional-一维数组;twoDimensional-二维数组; custom-自定义行列数的二维数组 + * @param {Object} options 可选参数 + * @param {Number} options.row dimensional为custom的时候设置,多维数组的行数 + * @param {Number} options.column dimensional为custom的时候设置,多维数组的列数 + * @param {Object | String} options.range 选区范围,支持选区的格式为"A1:B2"、"sheetName!A1:B2"或者{row:[0,1],column:[0,1]},只能为单个选区;默认为当前选区 + * @param {Number} options.order 工作表索引;默认值为当前工作表索引 + */ +function getRangeArray(dimensional, options = {}) { + let dimensionalArray = ['oneDimensional', 'twoDimensional', 'custom'] + if (dimensionalArray.indexOf(dimensional) < 0) { + return console.error('Argument dimensional is invalid, the value can be \'oneDimensional\', \'twoDimensional\', \'custom\'') + } + let { + row, + column, + range, + order + } = {...options} + + let realRange = range; + + if (typeof range === 'string') { + if (formula.iscelldata(range)) { + realRange = formula.getcellrange(range) + } else { + return console.error('The range is invalid, please check range parameter.') + } + } + + if (dimensional === 'oneDimensional') { + formula.getRangeArray(realRange) + } else if (dimensional === 'twoDimensional') { + formula.getRangeArrayTwo(realRange) + } else if (dimensional === 'custom') { + // TODO + } +} diff --git a/src/global/border.js b/src/global/border.js index c9270d0..f53b923 100644 --- a/src/global/border.js +++ b/src/global/border.js @@ -731,7 +731,7 @@ function getBorderInfoCompute(sheetIndex) { if(data[bd_r] != null && getObjType(data[bd_r][bd_c]) == "object" && data[bd_r][bd_c].mc != null){ let cell = data[bd_r][bd_c]; - let mc = cfg["merge"][cell.mc.r + "_" + cell.mc.c]; + let mc = cfg["merge"][cell.mc.r + "_" + cell.mc.c] || {}; if(mc.c == bd_c){ if(borderInfoCompute[bd_r + "_" + bd_c] == null){ @@ -823,7 +823,7 @@ function getBorderInfoCompute(sheetIndex) { if(data[bd_r] != null && getObjType(data[bd_r][bd_c]) == "object" && data[bd_r][bd_c].mc != null){ let cell = data[bd_r][bd_c]; - let mc = cfg["merge"][cell.mc.r + "_" + cell.mc.c]; + let mc = cfg["merge"][cell.mc.r + "_" + cell.mc.c] || {}; if(value.l != null && bd_c == mc.c){ //左边框 borderInfoCompute[bd_r + "_" + bd_c].l = { "color": value.l.color, "style": value.l.style }; diff --git a/src/global/draw.js b/src/global/draw.js index e2b180f..0444363 100644 --- a/src/global/draw.js +++ b/src/global/draw.js @@ -7,7 +7,7 @@ import { luckysheetdefaultstyle, luckysheet_CFiconsImg,luckysheetdefaultFont } f import { luckysheet_searcharray } from '../controllers/sheetSearch'; import { dynamicArrayCompute } from './dynamicArray'; import browser from './browser'; -import { isRealNull } from './validate'; +import { isRealNull, isRealNum } from './validate'; import { getCellTextSplitArr,getMeasureText } from './getRowlen'; import { getcellvalue } from './getdata'; import { getBorderInfoCompute } from './border'; @@ -1259,6 +1259,28 @@ let cellRender = function(r, c, start_r, start_c, end_r, end_c, value, luckyshee luckysheetTableContent.closePath(); } + //若单元格强制为字符串,则显示绿色小三角 + if(cell.qp==1 && isRealNum(cell.v)){ + let ps_w = 6*Store.zoomRatio, ps_h = 6*Store.zoomRatio; //红色小三角宽高 + + luckysheetTableContent.beginPath(); + luckysheetTableContent.moveTo( + (start_c + offsetLeft + ps_w-1), + (start_r + offsetTop) + ); + luckysheetTableContent.lineTo( + (start_c + offsetLeft-1), + (start_r + offsetTop) + ); + luckysheetTableContent.lineTo( + (start_c + offsetLeft-1), + (start_r + offsetTop + ps_h) + ); + luckysheetTableContent.fillStyle = "#487f1e"; + luckysheetTableContent.fill(); + luckysheetTableContent.closePath(); + } + //溢出单元格 let cellOverflow_bd_r_render = true; //溢出单元格右边框是否需要绘制 let cellOverflow_colInObj = cellOverflow_colIn(cellOverflowMap, r, c, dataset_col_st, dataset_col_ed); @@ -1546,63 +1568,74 @@ let cellRender = function(r, c, start_r, start_c, end_r, end_c, value, luckyshee //自动换行 // luckysheetTableContent.textBaseline = 'top'; //textBaseline以top计算 - let strArr = [];//文本截断数组 - strArr = getCellTextSplitArr(value.toString(), strArr, (cellWidth - space_width * 2), luckysheetTableContent); - let word_space_height = oneLineTextHeight/3; - for(let i = 0; i < strArr.length; i++){ - let strV = strArr[i]; + if(cell.ct!=null && cell.ct.t=="inlineStr" && cell.ct.sharedStrings!=null && cell.ct.sharedStrings.length>0){ + let strArr = [],lineMaxHeight=[]; + let sharedStrings = cell.ct.sharedStrings; + for(let i=0;i ed){ let functionStr = "=" + formula.functionStrChange(calc_funcStr, "del", "row", null, st, slen); - if(d[calc_r][calc_c].f == calc_funcStr){ + if(d[calc_r][calc_c] && d[calc_r][calc_c].f == calc_funcStr){ d[calc_r][calc_c].f = functionStr; } @@ -905,7 +913,7 @@ function luckysheetdeletetable(type, st, ed) { if(calc_c < st || calc_c > ed){ let functionStr = "=" + formula.functionStrChange(calc_funcStr, "del", "col", null, st, slen); - if(d[calc_r][calc_c].f == calc_funcStr){ + if(d[calc_r][calc_c] && d[calc_r][calc_c].f == calc_funcStr){ d[calc_r][calc_c].f = functionStr; } @@ -1470,23 +1478,27 @@ function luckysheetdeletetable(type, st, ed) { } } - jfrefreshgrid_adRC( - d, - cfg, - "delRC", - { "index": st, "len": ed - st + 1, "rc": type1 }, - newCalcChain, - newFilterObj, - newCFarr, - newAFarr, - newFreezen - ); + // 修改当前sheet页时刷新 + if (curOrder == Store.currentSheetIndex) { + jfrefreshgrid_adRC( + d, + cfg, + "delRC", + { "index": st, "len": ed - st + 1, "rc": type1 }, + newCalcChain, + newFilterObj, + newCFarr, + newAFarr, + newFreezen + ); + } } //删除单元格 -function luckysheetDeleteCell(type, str, edr, stc, edc) { +function luckysheetDeleteCell(type, str, edr, stc, edc, order) { let d = editor.deepCopyFlowData(Store.flowdata); - let file = Store.luckysheetfile[getSheetIndex(Store.currentSheetIndex)]; + let curOrder = order || getSheetIndex(Store.currentSheetIndex); + let file = Store.luckysheetfile[curOrder]; let rlen = edr - str + 1; let clen = edc - stc + 1; @@ -1551,7 +1563,7 @@ function luckysheetDeleteCell(type, str, edr, stc, edc) { } } - if(d[calc_r][calc_c].f == calc_funcStr){ + if(d[calc_r][calc_c] && d[calc_r][calc_c].f == calc_funcStr){ d[calc_r][calc_c].f = functionStr; } diff --git a/src/global/formula.js b/src/global/formula.js index a9a92df..40c5e8d 100644 --- a/src/global/formula.js +++ b/src/global/formula.js @@ -309,10 +309,8 @@ const luckysheetformula = { oldvalue: null, dontupdate: function() { let _this = this; - Store.luckysheetCellUpdate.length = 0; //clear array $("#luckysheet-functionbox-cell, #luckysheet-rich-text-editor").html(_this.oldvalue); - _this.cancelNormalSelected(); if (_this.rangetosheet != Store.currentSheetIndex) { sheetmanage.changeSheetExec(_this.rangetosheet); @@ -1209,7 +1207,7 @@ const luckysheetformula = { return; } } - else{ + else if(curv!=null && curv.qp != 1){ if (getObjType(curv) == "object" && (value == curv.f || value == curv.v || value == curv.m)) { _this.cancelNormalSelected(); return; @@ -1267,6 +1265,14 @@ const luckysheetformula = { delete curv.f; delete curv.spl; + + if(curv.qp == 1 && value.substr(0,1)!="'"){//if quotePrefix is 1, cell is force string, cell clear quotePrefix when it is updated + curv.qp = 0; + if(curv.ct!=null){ + curv.ct.fa = "General"; + curv.ct.t = "n"; + } + } } value = curv; @@ -3614,7 +3620,10 @@ const luckysheetformula = { _this.operatorjson = op; } - if (txt.substr(0, 1) == "=") { + if (txt.substr(0, 2) == "=+") { + txt = txt.substr(2); + } + else if (txt.substr(0, 1) == "=") { txt = txt.substr(1); } @@ -4483,8 +4492,11 @@ const luckysheetformula = { for (let i = 0; i < group.length; i++) { let item = group[i]; - - let cell = luckysheetfile[getSheetIndex(item["index"])].data[item.r][item.c]; + let file =luckysheetfile[getSheetIndex(item["index"])]; + if(file==null){ + continue; + } + let cell = file.data[item.r][item.c]; let calc_funcStr = getcellFormula(item.r, item.c, item.index, _this.execFunctionGroupData); if(cell != null && cell.f != null && cell.f == calc_funcStr){ if(!(item instanceof Object)){ diff --git a/src/global/refresh.js b/src/global/refresh.js index c360fd7..512448e 100644 --- a/src/global/refresh.js +++ b/src/global/refresh.js @@ -2,6 +2,7 @@ import rhchInit from './rhchInit'; import formula from './formula'; import editor from './editor'; import { setcellvalue } from './setdata'; +import { getcellFormula } from './getdata'; import { computeRowlenArr } from './getRowlen'; import { luckysheetDrawMain, diff --git a/src/global/setdata.js b/src/global/setdata.js index 4793c13..a076091 100644 --- a/src/global/setdata.js +++ b/src/global/setdata.js @@ -58,6 +58,12 @@ function setcellvalue(r, c, d, v) { cell.m = vupdate.toString().substr(1); cell.ct = { "fa": "@", "t": "s" }; cell.v = vupdate.toString().substr(1); + cell.qp = 1; + } + else if(cell.qp == 1){ + cell.m = vupdate.toString(); + cell.ct = { "fa": "@", "t": "s" }; + cell.v = vupdate.toString(); } else if(vupdate.toString().toUpperCase() === "TRUE"){ cell.m = "TRUE"; diff --git a/src/index.html b/src/index.html index 205e4b8..eea7296 100644 --- a/src/index.html +++ b/src/index.html @@ -37,7 +37,47 @@ allowEdit:true, forceCalculation:false, plugins: ['chart'], - data: [sheetCell,sheetFormula,sheetConditionFormat,sheetTable,sheetSparkline,sheetComment,sheetPivotTableData,sheetPivotTable,sheetChart] + data: [{"name":"Sheet1","config":{"columnlen":{"0":241},"rowlen":{"0":81}},"index":"1","status":"1","order":"0","luckysheet_select_save":[{"row":[0,0],"column":[4,4],"sheetIndex":1}],"zoomRatio":1,"showGridLines":"1","defaultColWidth":72,"defaultRowHeight":18,"celldata":[ + {"r":0,"c":0, + "v":{ + "ct":{ + "fa":"General", + "t":"inlineStr", + "sharedStrings":[ + { + "ff":"等线", //font family + "fc":"#fff000",//font color + "fs":12,//font size + "cl":1,//strike + "un":0,//underline + "bl":0,//blod + "it":1,//italic + v:"我在" + }, + { + "t":1,//换行符 + }, + { + "ff":"等线", //font family + "fc":"#ff0000",//font color + "fs":14,//font size + "cl":"1",//strike + "un":"0",//underline + "bl":"1",//blod + "it":"0",//italic + v:"马路边" + }, + ] + }, + "fs":11, + "ff":"等线", + "vt":0, + "tb":2, + "v":"", + "qp":1, + } + } + ],"calcChain":[]}] }) }) diff --git a/src/store/index.js b/src/store/index.js index 43e4e40..3ac53ed 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -124,6 +124,7 @@ const Store = { visibledatarow_unique:null, showGridLines:true, + } export default Store; \ No newline at end of file