diff --git a/_examples/completeDemo.html b/_examples/completeDemo.html old mode 100755 new mode 100644 diff --git a/_examples/customPluginDemo.html b/_examples/customPluginDemo.html old mode 100755 new mode 100644 diff --git a/_examples/customToolbarDemo.html b/_examples/customToolbarDemo.html old mode 100755 new mode 100644 diff --git a/_examples/editor_api.js b/_examples/editor_api.js old mode 100755 new mode 100644 diff --git a/_examples/filterRuleDemo.html b/_examples/filterRuleDemo.html old mode 100755 new mode 100644 diff --git a/_examples/highlightDemo.html b/_examples/highlightDemo.html old mode 100755 new mode 100644 diff --git a/_examples/index.html b/_examples/index.html old mode 100755 new mode 100644 diff --git a/_examples/jqueryCompleteDemo.html b/_examples/jqueryCompleteDemo.html old mode 100755 new mode 100644 diff --git a/_examples/jqueryValidation.html b/_examples/jqueryValidation.html old mode 100755 new mode 100644 diff --git a/_examples/multiDemo.html b/_examples/multiDemo.html old mode 100755 new mode 100644 diff --git a/_examples/renderInTable.html b/_examples/renderInTable.html old mode 100755 new mode 100644 diff --git a/_examples/resetDemo.html b/_examples/resetDemo.html old mode 100755 new mode 100644 diff --git a/_examples/setWidthHeightDemo.html b/_examples/setWidthHeightDemo.html old mode 100755 new mode 100644 diff --git a/_examples/simpleDemo.html b/_examples/simpleDemo.html old mode 100755 new mode 100644 diff --git a/_examples/submitFormDemo.html b/_examples/submitFormDemo.html old mode 100755 new mode 100644 diff --git a/_examples/textareaDemo.html b/_examples/textareaDemo.html old mode 100755 new mode 100644 diff --git a/_examples/uparsedemo.html b/_examples/uparsedemo.html old mode 100755 new mode 100644 diff --git a/_src/core/htmlparser.js b/_src/core/htmlparser.js index 3d242fc16..013a7ec92 100644 --- a/_src/core/htmlparser.js +++ b/_src/core/htmlparser.js @@ -194,4 +194,4 @@ var htmlparser = UE.htmlparser = function (htmlstr,ignoreBlank) { text(currentParent, htmlstr.slice(nextIndex)); } return root; -}; \ No newline at end of file +}; diff --git a/_src/editor.js b/_src/editor.js old mode 100755 new mode 100644 diff --git a/_src/plugins/table.cmds.js b/_src/plugins/table.cmds.js index 3b7c8101d..bad29f666 100644 --- a/_src/plugins/table.cmds.js +++ b/_src/plugins/table.cmds.js @@ -933,4 +933,4 @@ return []; } } -})(); \ No newline at end of file +})(); diff --git a/_src/ui/button.js b/_src/ui/button.js old mode 100755 new mode 100644 diff --git a/_src/ui/dialog.js b/_src/ui/dialog.js old mode 100755 new mode 100644 diff --git a/_src/ui/toolbar.js b/_src/ui/toolbar.js old mode 100755 new mode 100644 diff --git a/_src/ui/ui.js b/_src/ui/ui.js old mode 100755 new mode 100644 diff --git a/_test/coverage/api.js b/_test/coverage/api.js new file mode 100644 index 000000000..a1593ffd2 --- /dev/null +++ b/_test/coverage/api.js @@ -0,0 +1,43 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['api.js']) { + _$jscoverage['api.js'] = []; +} +_$jscoverage['api.js'].source = ["/**"," * 该文件定义了API文档所使用到的本地函数的说明"," * @file"," * @module Native"," */","","/**"," * 辅助接口说明"," * @module Native"," * @unfile"," */","","/**"," * 原生String对象, 字符串"," * @class String"," */","","/**"," * 原生Function对象, 函数"," * @class Function"," */","","/**"," * 原生Object对象, 普通对象"," * @class Object"," */","","/**"," * 原生Boolean对象, 布尔值"," * @class Boolean"," */","","/**"," * 原生Number对象, 数值"," * @class Number"," */","","/**"," * 原生NULL对象, 空"," * @class NULL"," */","","/**"," * 原生Array对象, 数组"," * @class Array"," */","","/**"," * 浏览器DOMNode, dom节点"," * @class Node"," */","","/**"," * 浏览器DOMElement, dom元素"," * @class Element"," */"]; diff --git a/_test/coverage/commands.js b/_test/coverage/commands.js new file mode 100644 index 000000000..9bd1f4b23 --- /dev/null +++ b/_test/coverage/commands.js @@ -0,0 +1,43 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['commands.js']) { + _$jscoverage['commands.js'] = []; +} +_$jscoverage['commands.js'].source = ["//本文件非编辑器核心文件,仅适用于生成对应的命令接口文档","/**"," * @file"," * @name 编辑器命令接口"," * @short Commands"," * @desc"," *"," * UEditor中执行命令的统一调用格式为"," * <code>editor.execCommand(\"cmdName\"[,opt]);</code>"," *"," *"," * 检测当前命令是否可用的方法是"," * <code>editor.queryCommandState(\"cmdName\");</code>"," *"," *"," * 部分命令可以返回命令值,其格式为"," * <code>editor.queryCommandValue(\"cmdName\");</code>"," */","/**"," * 插入锚点"," * @name anchor"," * @grammar editor.execCommand(\"anchor\",\"name\"); //锚点的名字"," */","/**"," * 为当前选中文字添加粗体效果"," * @name bold"," * @grammar editor.execCommand(\"bold\");"," */","/**"," * 为当前选中文字添加斜体效果"," * @name italic"," * @grammar editor.execCommand(\"italic\");"," */","/**"," * 为当前选中文字添加下划线效果"," * @name underline"," * @grammar editor.execCommand(\"underline\");"," */","","","/**"," * 为当前选中文字添加删除线效果"," * @name strikethrough"," * @grammar editor.execCommand(\"strikethrough\");"," */","/**"," * 将当前选中文字转换成上标"," * @name superscript"," * @grammar editor.execCommand(\"superscript\");"," */","/**"," * 将当前选中文字转换成下标"," * @name subscript"," * @grammar editor.execCommand(\"subscript\");"," */","/**"," * 为当前选中文字添加颜色"," * @name foreColor"," * @grammar editor.execCommand(\"foreColor\",\"#ffffff\");"," */","/**"," * 为当前选中文字添加背景颜色"," * @name backColor"," * @grammar editor.execCommand(\"backColor\",\"#dddddd\");"," */","/**"," * 设置当前选中文字的字体"," * @name fontFamily"," * @grammar editor.execCommand(\"fontFamily\",\"微软雅黑,Microsoft YaHei\");"," */","/**"," * 设置当前选中文字的字号"," * @name fontSize"," * @grammar editor.execCommand(\"fontSize\",\"32px\");"," */","/**"," * 设置当前选区的段落格式,如p,h1,h2,h3,..."," * @name paragraph"," * @grammar editor.execCommand(\"paragraph\",\"h1\");"," */","/**"," * 将当前选区变换成有序或者无序列表"," * @name insert(Un)OrderedList"," * @grammar editor.execCommand(\"insertOrderedList\");"," */","/**"," * 设置当前选区的行间距"," * @name lineHeight"," * @grammar editor.execCommand(\"lineHeight\");"," */","/**"," * 设置当前选区中的字体对齐方式"," * @name justify"," * @grammar editor.execCommand(\"justify\",align); //align可为Left,Right,Center,Justify"," */","/**"," * 将当前选中文字中的字母转换成大写"," * @name toUppercase"," * @grammar editor.execCommand(\"toUppercase\");"," */","/**"," * 将当前选中文字中的字母转换成小写"," * @name toLowercase"," * @grammar editor.execCommand(\"toLowercase\");"," */","/**"," * 为当前选区所在的块级元素添加引用标记"," * @name blockquote"," * @grammar editor.execCommand(\"blockquote\");"," */","/**"," * 设置当前选区所在块级元素的文字输入方向"," * @name directionality"," * @grammar editor.execCommand(\"directionality\",dir); //dir可为LTR,RTL"," */","/**"," * 清除当前选中文字上的所有样式或者指定样式"," * @name removeFormat"," * @grammar editor.execCommand(\"removeFormat\") //根据ueditor.config.js里的removeFormatTags,removeFormatAttributes两个属性作为规则"," * @grammar editor.execCommand(\"removeFormat\",tags,style); //清除指定tags上的指定style"," * @example"," * editor.execCommand(\"removeFormat\",'span,a','color,background-color')"," */","/**"," * 切换纯文本粘贴模式"," * @name pastePlain"," * @grammar ue.execCommand(\"pastePlain\");"," */","/**"," * 开启格式刷功能"," * @name formatMatch"," * @grammar editor.execCommand(\"formatMatch\");"," */","/**"," * 清空文档"," * @name clearDoc"," * @grammar editor.execCommand(\"clearDoc\");"," */","/**"," * 删除当前选中文本"," * @name delete"," * @grammar editor.execCommand(\"delete\");"," */","/**"," * 全部选择"," * @name selectAll"," * @grammar editor.execCommand(\"selectAll\");"," */","/**"," * 撤销操作"," * @name undo"," * @grammar editor.execCommand(\"undo\");"," */","/**"," * 恢复操作"," * @name redo"," * @grammar editor.execCommand(\"redo\");"," */","/**"," * 对整个编辑文档进行自动排版"," * @name autoTypeset"," * @grammar editor.execCommand(\"autoTypeset\");"," */","/**"," * 在当前选区位置插入一段html代码,最基本功能。大部分其他插入命令都会调用此命令完成最后的插入"," * @name insertHtml"," * @grammar editor.execCommand(\"insertHtml\",\"欢迎使用UEditor!\")"," */","/**"," * 在当前选区位置插入一个超链接"," * @name link"," * @grammar editor.execCommand(\"link\",linkObj);"," * @example"," * editor.execCommand(\"link\",{"," * href: \"http://ueditor.baidu.com\", //超链地址,必选"," * _src: \"http://ueditor.baidu.com\", //UE内部使用参数,与href保持一致即可,可选"," * target: \"_self\", //目标窗口,可选"," * textValue: \"UEditor\", //链接显示文本,可选"," * title: \"百度开源富文本编辑器UEditor官网\" //标题,可选"," * })"," */","/**"," * 在当前选区位置插入一个图片"," * @name insertImage"," * @grammar editor.execCommand(\"insertImage\",imageObj);"," * @example"," * editor.execCommand(\"insertImage\",{"," * src: \"http://ueditor.baidu.com/logo.jpg\", //图片链接地址,必选"," * _src: \"http://ueditor.baidu.com/logo.jpg\", //UE内部使用参数,与src保持一致即可,可选"," * width: 300, //图片显示宽度,可选"," * height: 400, //图片显示高度,可选"," * border: 2, //图片边框,可选"," * hspace: 5, //图片左右边距,可选"," * vspace: 2, //图片上下边距,可选"," * alt: 'UEditor-logo', //图片替换文字,可选"," * title: \"百度开源富文本编辑器UEditor官网\" //图片标题,可选"," * })"," */","/**"," * 在当前选区位置插入一个视频"," * @name insertVideo"," * @grammar editor.execCommand(\"insertVideo\",videoObj);"," * @example"," * editor.execCommand(\"insertVideo\",{"," * url: \"http://youku.com/id?id=1233122\", //视频地址,必选"," * width: 420, //视频宽度,可选"," * height: 280, //视频高度,可选"," * align: \"none\" //对齐方式,支持right,left,center,none ,可选"," * })"," */","/**"," * 在当前选区位置插入一个日期或者时间"," * @name date|time"," * @grammar editor.execCommand(\"date\");"," */","/**"," * 在当前选区位置插入一个分页符标记"," * @name pageBreak"," * @grammar editor.execCommand(\"pageBreak\");"," */","/**"," * 切换源码编辑模式和富文本编辑模式"," * @name source"," * @grammar editor.execCommand(\"source\");"," */","/**"," * IE下进入截屏模式"," * @name snapScreen"," * @grammar editor.execCommand(\"snapScreen\");"," */","/**"," * 插入表格"," * @name insertTable"," * @grammar editor.execCommand(\"insertTable\",rows,cols);"," */","","/**"," * 查找替换"," * @name searchreplace"," * @grammar editor.execCommand(\"searchreplace\",opt);"," * @desc"," * opt是个json对象,属性如下"," * * ''all'' true表示查找整个文档,false表示从上次的位置开始查找,默认是false"," * * ''casesensitive'' 大小写铭感,true是铭感,默认是false"," * * ''dir'' 1表示从前往后查,-1表示从后往前"," * * ''searchStr'' 查找的字符串"," * * ''replaceStr'' 替换用的字符串"," */","","","","","","","","",""]; diff --git a/_test/coverage/core/Editor.js b/_test/coverage/core/Editor.js new file mode 100644 index 000000000..524c2e45b --- /dev/null +++ b/_test/coverage/core/Editor.js @@ -0,0 +1,1492 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['core/Editor.js']) { + _$jscoverage['core/Editor.js'] = []; + _$jscoverage['core/Editor.js'][22] = 0; + _$jscoverage['core/Editor.js'][23] = 0; + _$jscoverage['core/Editor.js'][32] = 0; + _$jscoverage['core/Editor.js'][33] = 0; + _$jscoverage['core/Editor.js'][34] = 0; + _$jscoverage['core/Editor.js'][35] = 0; + _$jscoverage['core/Editor.js'][36] = 0; + _$jscoverage['core/Editor.js'][37] = 0; + _$jscoverage['core/Editor.js'][38] = 0; + _$jscoverage['core/Editor.js'][39] = 0; + _$jscoverage['core/Editor.js'][43] = 0; + _$jscoverage['core/Editor.js'][46] = 0; + _$jscoverage['core/Editor.js'][47] = 0; + _$jscoverage['core/Editor.js'][53] = 0; + _$jscoverage['core/Editor.js'][55] = 0; + _$jscoverage['core/Editor.js'][66] = 0; + _$jscoverage['core/Editor.js'][68] = 0; + _$jscoverage['core/Editor.js'][69] = 0; + _$jscoverage['core/Editor.js'][71] = 0; + _$jscoverage['core/Editor.js'][73] = 0; + _$jscoverage['core/Editor.js'][82] = 0; + _$jscoverage['core/Editor.js'][83] = 0; + _$jscoverage['core/Editor.js'][84] = 0; + _$jscoverage['core/Editor.js'][135] = 0; + _$jscoverage['core/Editor.js'][136] = 0; + _$jscoverage['core/Editor.js'][137] = 0; + _$jscoverage['core/Editor.js'][138] = 0; + _$jscoverage['core/Editor.js'][139] = 0; + _$jscoverage['core/Editor.js'][140] = 0; + _$jscoverage['core/Editor.js'][141] = 0; + _$jscoverage['core/Editor.js'][142] = 0; + _$jscoverage['core/Editor.js'][143] = 0; + _$jscoverage['core/Editor.js'][145] = 0; + _$jscoverage['core/Editor.js'][171] = 0; + _$jscoverage['core/Editor.js'][173] = 0; + _$jscoverage['core/Editor.js'][174] = 0; + _$jscoverage['core/Editor.js'][176] = 0; + _$jscoverage['core/Editor.js'][182] = 0; + _$jscoverage['core/Editor.js'][186] = 0; + _$jscoverage['core/Editor.js'][188] = 0; + _$jscoverage['core/Editor.js'][205] = 0; + _$jscoverage['core/Editor.js'][206] = 0; + _$jscoverage['core/Editor.js'][207] = 0; + _$jscoverage['core/Editor.js'][238] = 0; + _$jscoverage['core/Editor.js'][239] = 0; + _$jscoverage['core/Editor.js'][240] = 0; + _$jscoverage['core/Editor.js'][242] = 0; + _$jscoverage['core/Editor.js'][244] = 0; + _$jscoverage['core/Editor.js'][258] = 0; + _$jscoverage['core/Editor.js'][259] = 0; + _$jscoverage['core/Editor.js'][260] = 0; + _$jscoverage['core/Editor.js'][261] = 0; + _$jscoverage['core/Editor.js'][262] = 0; + _$jscoverage['core/Editor.js'][263] = 0; + _$jscoverage['core/Editor.js'][264] = 0; + _$jscoverage['core/Editor.js'][266] = 0; + _$jscoverage['core/Editor.js'][269] = 0; + _$jscoverage['core/Editor.js'][270] = 0; + _$jscoverage['core/Editor.js'][271] = 0; + _$jscoverage['core/Editor.js'][272] = 0; + _$jscoverage['core/Editor.js'][273] = 0; + _$jscoverage['core/Editor.js'][274] = 0; + _$jscoverage['core/Editor.js'][275] = 0; + _$jscoverage['core/Editor.js'][277] = 0; + _$jscoverage['core/Editor.js'][278] = 0; + _$jscoverage['core/Editor.js'][279] = 0; + _$jscoverage['core/Editor.js'][282] = 0; + _$jscoverage['core/Editor.js'][299] = 0; + _$jscoverage['core/Editor.js'][302] = 0; + _$jscoverage['core/Editor.js'][304] = 0; + _$jscoverage['core/Editor.js'][305] = 0; + _$jscoverage['core/Editor.js'][307] = 0; + _$jscoverage['core/Editor.js'][308] = 0; + _$jscoverage['core/Editor.js'][309] = 0; + _$jscoverage['core/Editor.js'][311] = 0; + _$jscoverage['core/Editor.js'][313] = 0; + _$jscoverage['core/Editor.js'][314] = 0; + _$jscoverage['core/Editor.js'][316] = 0; + _$jscoverage['core/Editor.js'][319] = 0; + _$jscoverage['core/Editor.js'][321] = 0; + _$jscoverage['core/Editor.js'][324] = 0; + _$jscoverage['core/Editor.js'][326] = 0; + _$jscoverage['core/Editor.js'][342] = 0; + _$jscoverage['core/Editor.js'][350] = 0; + _$jscoverage['core/Editor.js'][352] = 0; + _$jscoverage['core/Editor.js'][353] = 0; + _$jscoverage['core/Editor.js'][354] = 0; + _$jscoverage['core/Editor.js'][355] = 0; + _$jscoverage['core/Editor.js'][357] = 0; + _$jscoverage['core/Editor.js'][358] = 0; + _$jscoverage['core/Editor.js'][359] = 0; + _$jscoverage['core/Editor.js'][373] = 0; + _$jscoverage['core/Editor.js'][375] = 0; + _$jscoverage['core/Editor.js'][376] = 0; + _$jscoverage['core/Editor.js'][377] = 0; + _$jscoverage['core/Editor.js'][378] = 0; + _$jscoverage['core/Editor.js'][380] = 0; + _$jscoverage['core/Editor.js'][382] = 0; + _$jscoverage['core/Editor.js'][383] = 0; + _$jscoverage['core/Editor.js'][384] = 0; + _$jscoverage['core/Editor.js'][385] = 0; + _$jscoverage['core/Editor.js'][386] = 0; + _$jscoverage['core/Editor.js'][388] = 0; + _$jscoverage['core/Editor.js'][390] = 0; + _$jscoverage['core/Editor.js'][391] = 0; + _$jscoverage['core/Editor.js'][392] = 0; + _$jscoverage['core/Editor.js'][394] = 0; + _$jscoverage['core/Editor.js'][396] = 0; + _$jscoverage['core/Editor.js'][397] = 0; + _$jscoverage['core/Editor.js'][398] = 0; + _$jscoverage['core/Editor.js'][399] = 0; + _$jscoverage['core/Editor.js'][400] = 0; + _$jscoverage['core/Editor.js'][401] = 0; + _$jscoverage['core/Editor.js'][404] = 0; + _$jscoverage['core/Editor.js'][405] = 0; + _$jscoverage['core/Editor.js'][408] = 0; + _$jscoverage['core/Editor.js'][411] = 0; + _$jscoverage['core/Editor.js'][412] = 0; + _$jscoverage['core/Editor.js'][413] = 0; + _$jscoverage['core/Editor.js'][414] = 0; + _$jscoverage['core/Editor.js'][415] = 0; + _$jscoverage['core/Editor.js'][416] = 0; + _$jscoverage['core/Editor.js'][418] = 0; + _$jscoverage['core/Editor.js'][420] = 0; + _$jscoverage['core/Editor.js'][425] = 0; + _$jscoverage['core/Editor.js'][426] = 0; + _$jscoverage['core/Editor.js'][429] = 0; + _$jscoverage['core/Editor.js'][430] = 0; + _$jscoverage['core/Editor.js'][431] = 0; + _$jscoverage['core/Editor.js'][433] = 0; + _$jscoverage['core/Editor.js'][436] = 0; + _$jscoverage['core/Editor.js'][437] = 0; + _$jscoverage['core/Editor.js'][439] = 0; + _$jscoverage['core/Editor.js'][440] = 0; + _$jscoverage['core/Editor.js'][443] = 0; + _$jscoverage['core/Editor.js'][444] = 0; + _$jscoverage['core/Editor.js'][447] = 0; + _$jscoverage['core/Editor.js'][448] = 0; + _$jscoverage['core/Editor.js'][451] = 0; + _$jscoverage['core/Editor.js'][452] = 0; + _$jscoverage['core/Editor.js'][458] = 0; + _$jscoverage['core/Editor.js'][459] = 0; + _$jscoverage['core/Editor.js'][460] = 0; + _$jscoverage['core/Editor.js'][461] = 0; + _$jscoverage['core/Editor.js'][462] = 0; + _$jscoverage['core/Editor.js'][463] = 0; + _$jscoverage['core/Editor.js'][465] = 0; + _$jscoverage['core/Editor.js'][466] = 0; + _$jscoverage['core/Editor.js'][467] = 0; + _$jscoverage['core/Editor.js'][468] = 0; + _$jscoverage['core/Editor.js'][469] = 0; + _$jscoverage['core/Editor.js'][471] = 0; + _$jscoverage['core/Editor.js'][475] = 0; + _$jscoverage['core/Editor.js'][476] = 0; + _$jscoverage['core/Editor.js'][483] = 0; + _$jscoverage['core/Editor.js'][485] = 0; + _$jscoverage['core/Editor.js'][486] = 0; + _$jscoverage['core/Editor.js'][487] = 0; + _$jscoverage['core/Editor.js'][489] = 0; + _$jscoverage['core/Editor.js'][490] = 0; + _$jscoverage['core/Editor.js'][493] = 0; + _$jscoverage['core/Editor.js'][494] = 0; + _$jscoverage['core/Editor.js'][515] = 0; + _$jscoverage['core/Editor.js'][518] = 0; + _$jscoverage['core/Editor.js'][520] = 0; + _$jscoverage['core/Editor.js'][533] = 0; + _$jscoverage['core/Editor.js'][534] = 0; + _$jscoverage['core/Editor.js'][536] = 0; + _$jscoverage['core/Editor.js'][538] = 0; + _$jscoverage['core/Editor.js'][564] = 0; + _$jscoverage['core/Editor.js'][565] = 0; + _$jscoverage['core/Editor.js'][566] = 0; + _$jscoverage['core/Editor.js'][568] = 0; + _$jscoverage['core/Editor.js'][570] = 0; + _$jscoverage['core/Editor.js'][579] = 0; + _$jscoverage['core/Editor.js'][580] = 0; + _$jscoverage['core/Editor.js'][581] = 0; + _$jscoverage['core/Editor.js'][582] = 0; + _$jscoverage['core/Editor.js'][583] = 0; + _$jscoverage['core/Editor.js'][584] = 0; + _$jscoverage['core/Editor.js'][585] = 0; + _$jscoverage['core/Editor.js'][586] = 0; + _$jscoverage['core/Editor.js'][587] = 0; + _$jscoverage['core/Editor.js'][588] = 0; + _$jscoverage['core/Editor.js'][594] = 0; + _$jscoverage['core/Editor.js'][595] = 0; + _$jscoverage['core/Editor.js'][596] = 0; + _$jscoverage['core/Editor.js'][635] = 0; + _$jscoverage['core/Editor.js'][636] = 0; + _$jscoverage['core/Editor.js'][637] = 0; + _$jscoverage['core/Editor.js'][638] = 0; + _$jscoverage['core/Editor.js'][640] = 0; + _$jscoverage['core/Editor.js'][641] = 0; + _$jscoverage['core/Editor.js'][643] = 0; + _$jscoverage['core/Editor.js'][644] = 0; + _$jscoverage['core/Editor.js'][645] = 0; + _$jscoverage['core/Editor.js'][646] = 0; + _$jscoverage['core/Editor.js'][647] = 0; + _$jscoverage['core/Editor.js'][660] = 0; + _$jscoverage['core/Editor.js'][663] = 0; + _$jscoverage['core/Editor.js'][664] = 0; + _$jscoverage['core/Editor.js'][665] = 0; + _$jscoverage['core/Editor.js'][666] = 0; + _$jscoverage['core/Editor.js'][667] = 0; + _$jscoverage['core/Editor.js'][669] = 0; + _$jscoverage['core/Editor.js'][670] = 0; + _$jscoverage['core/Editor.js'][674] = 0; + _$jscoverage['core/Editor.js'][689] = 0; + _$jscoverage['core/Editor.js'][691] = 0; + _$jscoverage['core/Editor.js'][695] = 0; + _$jscoverage['core/Editor.js'][698] = 0; + _$jscoverage['core/Editor.js'][711] = 0; + _$jscoverage['core/Editor.js'][713] = 0; + _$jscoverage['core/Editor.js'][755] = 0; + _$jscoverage['core/Editor.js'][757] = 0; + _$jscoverage['core/Editor.js'][758] = 0; + _$jscoverage['core/Editor.js'][759] = 0; + _$jscoverage['core/Editor.js'][760] = 0; + _$jscoverage['core/Editor.js'][763] = 0; + _$jscoverage['core/Editor.js'][766] = 0; + _$jscoverage['core/Editor.js'][767] = 0; + _$jscoverage['core/Editor.js'][771] = 0; + _$jscoverage['core/Editor.js'][773] = 0; + _$jscoverage['core/Editor.js'][774] = 0; + _$jscoverage['core/Editor.js'][779] = 0; + _$jscoverage['core/Editor.js'][782] = 0; + _$jscoverage['core/Editor.js'][783] = 0; + _$jscoverage['core/Editor.js'][784] = 0; + _$jscoverage['core/Editor.js'][785] = 0; + _$jscoverage['core/Editor.js'][786] = 0; + _$jscoverage['core/Editor.js'][787] = 0; + _$jscoverage['core/Editor.js'][789] = 0; + _$jscoverage['core/Editor.js'][790] = 0; + _$jscoverage['core/Editor.js'][791] = 0; + _$jscoverage['core/Editor.js'][792] = 0; + _$jscoverage['core/Editor.js'][794] = 0; + _$jscoverage['core/Editor.js'][795] = 0; + _$jscoverage['core/Editor.js'][798] = 0; + _$jscoverage['core/Editor.js'][802] = 0; + _$jscoverage['core/Editor.js'][803] = 0; + _$jscoverage['core/Editor.js'][805] = 0; + _$jscoverage['core/Editor.js'][807] = 0; + _$jscoverage['core/Editor.js'][809] = 0; + _$jscoverage['core/Editor.js'][810] = 0; + _$jscoverage['core/Editor.js'][811] = 0; + _$jscoverage['core/Editor.js'][813] = 0; + _$jscoverage['core/Editor.js'][814] = 0; + _$jscoverage['core/Editor.js'][837] = 0; + _$jscoverage['core/Editor.js'][838] = 0; + _$jscoverage['core/Editor.js'][840] = 0; + _$jscoverage['core/Editor.js'][841] = 0; + _$jscoverage['core/Editor.js'][843] = 0; + _$jscoverage['core/Editor.js'][845] = 0; + _$jscoverage['core/Editor.js'][856] = 0; + _$jscoverage['core/Editor.js'][859] = 0; + _$jscoverage['core/Editor.js'][860] = 0; + _$jscoverage['core/Editor.js'][861] = 0; + _$jscoverage['core/Editor.js'][862] = 0; + _$jscoverage['core/Editor.js'][864] = 0; + _$jscoverage['core/Editor.js'][865] = 0; + _$jscoverage['core/Editor.js'][867] = 0; + _$jscoverage['core/Editor.js'][868] = 0; + _$jscoverage['core/Editor.js'][921] = 0; + _$jscoverage['core/Editor.js'][929] = 0; + _$jscoverage['core/Editor.js'][936] = 0; + _$jscoverage['core/Editor.js'][937] = 0; + _$jscoverage['core/Editor.js'][938] = 0; + _$jscoverage['core/Editor.js'][939] = 0; + _$jscoverage['core/Editor.js'][940] = 0; + _$jscoverage['core/Editor.js'][941] = 0; + _$jscoverage['core/Editor.js'][942] = 0; + _$jscoverage['core/Editor.js'][943] = 0; + _$jscoverage['core/Editor.js'][946] = 0; + _$jscoverage['core/Editor.js'][947] = 0; + _$jscoverage['core/Editor.js'][948] = 0; + _$jscoverage['core/Editor.js'][949] = 0; + _$jscoverage['core/Editor.js'][953] = 0; + _$jscoverage['core/Editor.js'][954] = 0; + _$jscoverage['core/Editor.js'][955] = 0; + _$jscoverage['core/Editor.js'][956] = 0; + _$jscoverage['core/Editor.js'][957] = 0; + _$jscoverage['core/Editor.js'][959] = 0; + _$jscoverage['core/Editor.js'][962] = 0; + _$jscoverage['core/Editor.js'][963] = 0; + _$jscoverage['core/Editor.js'][964] = 0; + _$jscoverage['core/Editor.js'][965] = 0; + _$jscoverage['core/Editor.js'][966] = 0; + _$jscoverage['core/Editor.js'][969] = 0; + _$jscoverage['core/Editor.js'][970] = 0; + _$jscoverage['core/Editor.js'][971] = 0; + _$jscoverage['core/Editor.js'][973] = 0; + _$jscoverage['core/Editor.js'][974] = 0; + _$jscoverage['core/Editor.js'][976] = 0; + _$jscoverage['core/Editor.js'][977] = 0; + _$jscoverage['core/Editor.js'][978] = 0; + _$jscoverage['core/Editor.js'][992] = 0; + _$jscoverage['core/Editor.js'][994] = 0; + _$jscoverage['core/Editor.js'][995] = 0; + _$jscoverage['core/Editor.js'][997] = 0; + _$jscoverage['core/Editor.js'][998] = 0; + _$jscoverage['core/Editor.js'][999] = 0; + _$jscoverage['core/Editor.js'][1000] = 0; + _$jscoverage['core/Editor.js'][1014] = 0; + _$jscoverage['core/Editor.js'][1015] = 0; + _$jscoverage['core/Editor.js'][1018] = 0; + _$jscoverage['core/Editor.js'][1019] = 0; + _$jscoverage['core/Editor.js'][1021] = 0; + _$jscoverage['core/Editor.js'][1022] = 0; + _$jscoverage['core/Editor.js'][1023] = 0; + _$jscoverage['core/Editor.js'][1024] = 0; + _$jscoverage['core/Editor.js'][1025] = 0; + _$jscoverage['core/Editor.js'][1026] = 0; + _$jscoverage['core/Editor.js'][1027] = 0; + _$jscoverage['core/Editor.js'][1029] = 0; + _$jscoverage['core/Editor.js'][1031] = 0; + _$jscoverage['core/Editor.js'][1032] = 0; + _$jscoverage['core/Editor.js'][1034] = 0; + _$jscoverage['core/Editor.js'][1035] = 0; + _$jscoverage['core/Editor.js'][1051] = 0; + _$jscoverage['core/Editor.js'][1062] = 0; + _$jscoverage['core/Editor.js'][1088] = 0; + _$jscoverage['core/Editor.js'][1089] = 0; + _$jscoverage['core/Editor.js'][1090] = 0; + _$jscoverage['core/Editor.js'][1091] = 0; + _$jscoverage['core/Editor.js'][1095] = 0; + _$jscoverage['core/Editor.js'][1096] = 0; + _$jscoverage['core/Editor.js'][1099] = 0; + _$jscoverage['core/Editor.js'][1100] = 0; + _$jscoverage['core/Editor.js'][1101] = 0; + _$jscoverage['core/Editor.js'][1102] = 0; + _$jscoverage['core/Editor.js'][1103] = 0; + _$jscoverage['core/Editor.js'][1104] = 0; + _$jscoverage['core/Editor.js'][1108] = 0; + _$jscoverage['core/Editor.js'][1121] = 0; + _$jscoverage['core/Editor.js'][1133] = 0; + _$jscoverage['core/Editor.js'][1134] = 0; + _$jscoverage['core/Editor.js'][1135] = 0; + _$jscoverage['core/Editor.js'][1136] = 0; + _$jscoverage['core/Editor.js'][1138] = 0; + _$jscoverage['core/Editor.js'][1139] = 0; + _$jscoverage['core/Editor.js'][1140] = 0; + _$jscoverage['core/Editor.js'][1142] = 0; + _$jscoverage['core/Editor.js'][1144] = 0; + _$jscoverage['core/Editor.js'][1145] = 0; + _$jscoverage['core/Editor.js'][1146] = 0; + _$jscoverage['core/Editor.js'][1147] = 0; + _$jscoverage['core/Editor.js'][1149] = 0; + _$jscoverage['core/Editor.js'][1164] = 0; + _$jscoverage['core/Editor.js'][1191] = 0; + _$jscoverage['core/Editor.js'][1192] = 0; + _$jscoverage['core/Editor.js'][1193] = 0; + _$jscoverage['core/Editor.js'][1194] = 0; + _$jscoverage['core/Editor.js'][1195] = 0; + _$jscoverage['core/Editor.js'][1197] = 0; + _$jscoverage['core/Editor.js'][1198] = 0; + _$jscoverage['core/Editor.js'][1199] = 0; + _$jscoverage['core/Editor.js'][1200] = 0; + _$jscoverage['core/Editor.js'][1201] = 0; + _$jscoverage['core/Editor.js'][1203] = 0; + _$jscoverage['core/Editor.js'][1205] = 0; + _$jscoverage['core/Editor.js'][1236] = 0; + _$jscoverage['core/Editor.js'][1246] = 0; + _$jscoverage['core/Editor.js'][1247] = 0; + _$jscoverage['core/Editor.js'][1248] = 0; + _$jscoverage['core/Editor.js'][1249] = 0; + _$jscoverage['core/Editor.js'][1250] = 0; + _$jscoverage['core/Editor.js'][1251] = 0; + _$jscoverage['core/Editor.js'][1252] = 0; + _$jscoverage['core/Editor.js'][1253] = 0; + _$jscoverage['core/Editor.js'][1258] = 0; + _$jscoverage['core/Editor.js'][1259] = 0; + _$jscoverage['core/Editor.js'][1260] = 0; + _$jscoverage['core/Editor.js'][1262] = 0; + _$jscoverage['core/Editor.js'][1272] = 0; + _$jscoverage['core/Editor.js'][1273] = 0; + _$jscoverage['core/Editor.js'][1275] = 0; + _$jscoverage['core/Editor.js'][1276] = 0; + _$jscoverage['core/Editor.js'][1277] = 0; + _$jscoverage['core/Editor.js'][1279] = 0; + _$jscoverage['core/Editor.js'][1282] = 0; + _$jscoverage['core/Editor.js'][1283] = 0; + _$jscoverage['core/Editor.js'][1285] = 0; + _$jscoverage['core/Editor.js'][1299] = 0; + _$jscoverage['core/Editor.js'][1308] = 0; + _$jscoverage['core/Editor.js'][1309] = 0; + _$jscoverage['core/Editor.js'][1310] = 0; + _$jscoverage['core/Editor.js'][1312] = 0; + _$jscoverage['core/Editor.js'][1325] = 0; + _$jscoverage['core/Editor.js'][1339] = 0; + _$jscoverage['core/Editor.js'][1340] = 0; + _$jscoverage['core/Editor.js'][1341] = 0; + _$jscoverage['core/Editor.js'][1343] = 0; + _$jscoverage['core/Editor.js'][1344] = 0; + _$jscoverage['core/Editor.js'][1345] = 0; + _$jscoverage['core/Editor.js'][1346] = 0; + _$jscoverage['core/Editor.js'][1348] = 0; + _$jscoverage['core/Editor.js'][1385] = 0; + _$jscoverage['core/Editor.js'][1386] = 0; + _$jscoverage['core/Editor.js'][1387] = 0; + _$jscoverage['core/Editor.js'][1388] = 0; + _$jscoverage['core/Editor.js'][1389] = 0; + _$jscoverage['core/Editor.js'][1390] = 0; + _$jscoverage['core/Editor.js'][1393] = 0; + _$jscoverage['core/Editor.js'][1410] = 0; + _$jscoverage['core/Editor.js'][1424] = 0; + _$jscoverage['core/Editor.js'][1425] = 0; + _$jscoverage['core/Editor.js'][1443] = 0; + _$jscoverage['core/Editor.js'][1457] = 0; + _$jscoverage['core/Editor.js'][1458] = 0; + _$jscoverage['core/Editor.js'][1462] = 0; +} +_$jscoverage['core/Editor.js'].source = ["/**"," * 编辑器主类,包含编辑器提供的大部分公用接口"," * @file"," * @module UE"," * @class Editor"," * @since 1.2.6.1"," */","","/**"," * UEditor公用空间,UEditor所有的功能都挂载在该空间下"," * @unfile"," * @module UE"," */","","/**"," * UEditor的核心类,为用户提供与编辑器交互的接口。"," * @unfile"," * @module UE"," * @class Editor"," */","","(function () {"," var uid = 0, _selectionChangeTimer;","",""," /**"," * 获取编辑器的html内容,赋值到编辑器所在表单的textarea文本域里面"," * @private"," * @method setValue"," * @param { UE.Editor } editor 编辑器事例"," */"," function setValue(form, editor) {"," var textarea;"," if (editor.textarea) {"," if (utils.isString(editor.textarea)) {"," for (var i = 0, ti, tis = domUtils.getElementsByTagName(form, 'textarea'); ti = tis[i++];) {"," if (ti.id == 'ueditor_textarea_' + editor.options.textarea) {"," textarea = ti;"," break;"," }"," }"," } else {"," textarea = editor.textarea;"," }"," }"," if (!textarea) {"," form.appendChild(textarea = domUtils.createElement(document, 'textarea', {"," 'name': editor.options.textarea,"," 'id': 'ueditor_textarea_' + editor.options.textarea,"," 'style': \"display:none\""," }));"," //不要产生多个textarea"," editor.textarea = textarea;"," }"," textarea.value = editor.hasContents() ?"," (editor.options.allHtmlEnabled ? editor.getAllHtml() : editor.getContent(null, null, true)) :"," ''"," }",""," /**"," * 初始化插件"," * @private"," * @method loadPlugins"," * @param { UE.Editor } editor 编辑器事例"," */"," function loadPlugins(me) {"," //初始化插件"," for (var pi in UE.plugins) {"," UE.plugins[pi].call(me);"," }"," me.langIsReady = true;",""," me.fireEvent(\"langReady\");"," }",""," /**"," * 获取语言包里面的第一个"," * @private"," * @method checkCurLang"," * @param { KeyValueMap } I18N 编辑器事例"," */"," function checkCurLang(I18N) {"," for (var lang in I18N) {"," return lang"," }"," }","",""," /**"," * 编辑器准备就绪后会触发该事件"," * @module UE"," * @class Editor"," * @event ready"," * @example"," * ```javascript"," * editor.addListener( 'ready', function( editor ) {"," * editor.execCommand( 'focus' );"," * } );"," * ```"," */",""," /**"," * 每当编辑器内部选区发生改变后, 将触发该事件"," * @event selectionchange"," * @warning 该事件的触发非常频繁,不建议在该事件的处理过程中做重量级的处理"," * @example"," * ```javascript"," * editor.addListener( 'selectionchange', function( editor ) {"," * console.log('选区发生改变');"," * }"," */",""," /**"," * 以默认参数构建一个编辑器实例"," * @constructor"," * @example"," * ```javascript"," * var editor = new UE.Editor();"," * editor.execCommand('blod');"," * ```"," * @see UE.Config"," */",""," /**"," * 以给定的参数集合创建一个编辑器对象,对于未指定的参数,将应用默认参数。"," * @constructor"," * @param { KeyValueMap } setting 创建编辑器的参数"," * @example"," * ```javascript"," * var editor = new UE.Editor();"," * editor.execCommand('blod');"," * ```"," * @see UE.Config"," */"," var Editor = UE.Editor = function (options) {"," var me = this;"," me.uid = uid++;"," EventBase.call(me);"," me.commands = {};"," me.options = utils.extend(utils.clone(options || {}), UEDITOR_CONFIG, true);"," me.shortcutkeys = {};"," me.inputRules = [];"," me.outputRules = [];"," //设置默认的常用属性"," me.setOpt({"," isShow: true,"," initialContent: '',"," initialStyle: '',"," autoClearinitialContent: false,"," iframeCssUrl: me.options.UEDITOR_HOME_URL + 'themes/iframe.css',"," textarea: 'editorValue',"," focus: false,"," focusInEnd: true,"," autoClearEmptyNode: true,"," fullscreen: false,"," readonly: false,"," zIndex: 999,"," imagePopup: true,"," enterTag: 'p',"," customDomain: false,"," lang: 'zh-cn',"," langPath: me.options.UEDITOR_HOME_URL + 'lang/',"," theme: 'default',"," themePath: me.options.UEDITOR_HOME_URL + 'themes/',"," allHtmlEnabled: false,"," scaleEnabled: false,"," tableNativeEditInFF: false,"," autoSyncData: true"," });",""," if (!utils.isEmptyObject(UE.I18N)) {"," //修改默认的语言类型"," me.options.lang = checkCurLang(UE.I18N);"," loadPlugins(me)"," } else {"," utils.loadFile(document, {"," src: me.options.langPath + me.options.lang + \"/\" + me.options.lang + \".js\","," tag: \"script\","," type: \"text/javascript\","," defer: \"defer\""," }, function () {"," loadPlugins(me)"," });"," }",""," UE.instants['ueditorInstant' + me.uid] = me;"," };"," Editor.prototype = {","",""," /**"," * 编辑器对外提供的监听ready事件的接口, 通过调用该方法,达到的效果与监听ready事件是一致的"," * @method ready"," * @param { Function } fn 编辑器ready之后所执行的回调, 如果在注册事件之前编辑器已经ready,将会"," * 立即触发该回调。"," * @see UE.Editor.event:ready"," * @example"," * ```javascript"," * editor.ready( function( editor ) {"," * editor.setContent('初始化完毕');"," * } );"," * ```"," */"," ready: function (fn) {"," var me = this;"," if (fn) {"," me.isReady ? fn.apply(me) : me.addListener('ready', fn);"," }"," },","",""," /**"," * 该方法是提供给插件里面使用,以key,value的方式设置插件内用到的配置项默认值"," * @method setOpt"," * @warning 在config文件里面有定义参数key或者用户实例化的时候有传入参数key,该方法设置的key参数值无效"," * @warning 该方法仅供编辑器插件内部和编辑器初始化时调用,其他地方不能调用。"," * @param { String } key 编辑器的可接受的选项名称"," * @param { * } val 该选项可接受的值"," * @example"," * ```javascript"," * editor.setOpt( 'initContent', '欢迎使用编辑器' );"," * ```"," */",""," /**"," * 该方法是提供给插件里面使用,以{key:value}集合的方式设置插件内用到的配置项默认值"," * @method setOpt"," * @warning 在config文件里面有定义参数key或者用户实例化的时候有传入参数key,该方法设置的key参数值无效"," * @warning 该方法仅供编辑器插件内部和编辑器初始化时调用,其他地方不能调用。"," * @example"," * ```javascript"," * editor.setOpt( {"," * 'initContent': '欢迎使用编辑器'"," * } );"," * ```"," */"," setOpt: function (key, val) {"," var obj = {};"," if (utils.isString(key)) {"," obj[key] = val"," } else {"," obj = key;"," }"," utils.extend(this.options, obj, true);"," },","",""," /**"," * 销毁编辑器实例对象"," * @method destroy"," * @example"," * ```javascript"," * editor.destroy();"," * ```"," */"," destroy: function () {",""," var me = this;"," me.fireEvent('destroy');"," var container = me.container.parentNode;"," var textarea = me.textarea;"," if (!textarea) {"," textarea = document.createElement('textarea');"," container.parentNode.insertBefore(textarea, container);"," } else {"," textarea.style.display = ''"," }",""," textarea.style.width = me.iframe.offsetWidth + 'px';"," textarea.style.height = me.iframe.offsetHeight + 'px';"," textarea.value = me.getContent();"," textarea.id = me.key;"," container.innerHTML = '';"," domUtils.remove(container);"," var key = me.key;"," //trace:2004"," for (var p in me) {"," if (me.hasOwnProperty(p)) {"," delete this[p];"," }"," }"," UE.delEditor(key);"," },",""," /**"," * 渲染编辑器的DOM到指定容器"," * @method render"," * @param { String } containerId 指定一个容器ID"," * @warning 必须且只能调用一次"," */",""," /**"," * 渲染编辑器的DOM到指定容器"," * @method render"," * @param { Element } containerDom 直接指定容器对象"," * @warning 必须且只能调用一次"," */"," render: function (container) {"," var me = this,"," options = me.options,"," getStyleValue = function (attr) {"," return parseInt(domUtils.getComputedStyle(container, attr));"," };"," if (utils.isString(container)) {"," container = document.getElementById(container);"," }"," if (container) {"," if (options.initialFrameWidth) {"," options.minFrameWidth = options.initialFrameWidth"," } else {"," options.minFrameWidth = options.initialFrameWidth = container.offsetWidth;"," }"," if (options.initialFrameHeight) {"," options.minFrameHeight = options.initialFrameHeight"," } else {"," options.initialFrameHeight = options.minFrameHeight = container.offsetHeight;"," }",""," container.style.width = /%$/.test(options.initialFrameWidth) ? '100%' : options.initialFrameWidth -"," getStyleValue(\"padding-left\") - getStyleValue(\"padding-right\") + 'px';"," container.style.height = /%$/.test(options.initialFrameHeight) ? '100%' : options.initialFrameHeight -"," getStyleValue(\"padding-top\") - getStyleValue(\"padding-bottom\") + 'px';",""," container.style.zIndex = options.zIndex;",""," var html = ( ie && browser.version < 9 ? '' : '<!DOCTYPE html>') +"," '<html xmlns=\\'http://www.w3.org/1999/xhtml\\' class=\\'view\\' ><head>' +"," '<style type=\\'text/css\\'>' +"," //设置四周的留边"," '.view{padding:0;word-wrap:break-word;cursor:text;height:90%;}\\n' +"," //设置默认字体和字号"," //font-family不能呢随便改,在safari下fillchar会有解析问题"," 'body{margin:8px;font-family:sans-serif;font-size:16px;}' +"," //设置段落间距"," 'p{margin:5px 0;}</style>' +"," ( options.iframeCssUrl ? '<link rel=\\'stylesheet\\' type=\\'text/css\\' href=\\'' + utils.unhtml(options.iframeCssUrl) + '\\'/>' : '' ) +"," (options.initialStyle ? '<style>' + options.initialStyle + '</style>' : '') +"," '</head><body class=\\'view\\' ></body>' +"," '<script type=\\'text/javascript\\' ' + (ie ? 'defer=\\'defer\\'' : '' ) + ' id=\\'_initialScript\\'>' +"," 'setTimeout(function(){window.parent.UE.instants[\\'ueditorInstant' + me.uid + '\\']._setup(document);},0);' +"," 'var _tmpScript = document.getElementById(\\'_initialScript\\');_tmpScript.parentNode.removeChild(_tmpScript);</script></html>';"," container.appendChild(domUtils.createElement(document, 'iframe', {"," id: 'ueditor_' + me.uid,"," width: \"100%\","," height: \"100%\","," frameborder: \"0\","," src: 'javascript:void(function(){document.open();' + (options.customDomain && document.domain != location.hostname ? 'document.domain=\"' + document.domain + '\";' : '') +"," 'document.write(\"' + html + '\");document.close();}())'"," }));"," container.style.overflow = 'hidden';"," //解决如果是给定的百分比,会导致高度算不对的问题"," setTimeout(function () {"," if (/%$/.test(options.initialFrameWidth)) {"," options.minFrameWidth = options.initialFrameWidth = container.offsetWidth;"," container.style.width = options.initialFrameWidth + 'px';"," }"," if (/%$/.test(options.initialFrameHeight)) {"," options.minFrameHeight = options.initialFrameHeight = container.offsetHeight;"," container.style.height = options.initialFrameHeight + 'px';"," }"," })"," }"," },",""," /**"," * 编辑器初始化"," * @method _setup"," * @private"," * @param { Element } doc 编辑器Iframe中的文档对象"," */"," _setup: function (doc) {",""," var me = this,"," options = me.options;"," if (ie) {"," doc.body.disabled = true;"," doc.body.contentEditable = true;"," doc.body.disabled = false;"," } else {"," doc.body.contentEditable = true;"," }"," doc.body.spellcheck = false;"," me.document = doc;"," me.window = doc.defaultView || doc.parentWindow;"," me.iframe = me.window.frameElement;"," me.body = doc.body;",""," me.selection = new dom.Selection(doc);"," //gecko初始化就能得到range,无法判断isFocus了"," var geckoSel;"," if (browser.gecko && (geckoSel = this.selection.getNative())) {"," geckoSel.removeAllRanges();"," }"," this._initEvents();"," //为form提交提供一个隐藏的textarea"," for (var form = this.iframe.parentNode; !domUtils.isBody(form); form = form.parentNode) {"," if (form.tagName == 'FORM') {"," me.form = form;"," if (me.options.autoSyncData) {"," domUtils.on(me.window, 'blur', function () {"," setValue(form, me);"," });"," } else {"," domUtils.on(form, 'submit', function () {"," setValue(this, me);"," });"," }"," break;"," }"," }"," if (options.initialContent) {"," if (options.autoClearinitialContent) {"," var oldExecCommand = me.execCommand;"," me.execCommand = function () {"," me.fireEvent('firstBeforeExecCommand');"," return oldExecCommand.apply(me, arguments);"," };"," this._setDefaultContent(options.initialContent);"," } else"," this.setContent(options.initialContent, false, true);"," }",""," //编辑器不能为空内容",""," if (domUtils.isEmptyNode(me.body)) {"," me.body.innerHTML = '<p>' + (browser.ie ? '' : '<br/>') + '</p>';"," }"," //如果要求focus, 就把光标定位到内容开始"," if (options.focus) {"," setTimeout(function () {"," me.focus(me.options.focusInEnd);"," //如果自动清除开着,就不需要做selectionchange;"," !me.options.autoClearinitialContent && me._selectionChange();"," }, 0);"," }"," if (!me.container) {"," me.container = this.iframe.parentNode;"," }"," if (options.fullscreen && me.ui) {"," me.ui.setFullScreen(true);"," }",""," try {"," me.document.execCommand('2D-position', false, false);"," } catch (e) {"," }"," try {"," me.document.execCommand('enableInlineTableEditing', false, false);"," } catch (e) {"," }"," try {"," me.document.execCommand('enableObjectResizing', false, false);"," } catch (e) {","// domUtils.on(me.body,browser.ie ? 'resizestart' : 'resize', function( evt ) {","// domUtils.preventDefault(evt)","// });"," }"," me._bindshortcutKeys();"," me.isReady = 1;"," me.fireEvent('ready');"," options.onready && options.onready.call(me);"," if (!browser.ie) {"," domUtils.on(me.window, ['blur', 'focus'], function (e) {"," //chrome下会出现alt+tab切换时,导致选区位置不对"," if (e.type == 'blur') {"," me._bakRange = me.selection.getRange();"," try {"," me._bakNativeRange = me.selection.getNative().getRangeAt(0);"," me.selection.getNative().removeAllRanges();"," } catch (e) {"," me._bakNativeRange = null;"," }",""," } else {"," try {"," me._bakRange && me._bakRange.select();"," } catch (e) {"," }"," }"," });"," }"," //trace:1518 ff3.6body不够寛,会导致点击空白处无法获得焦点"," if (browser.gecko && browser.version <= 10902) {"," //修复ff3.6初始化进来,不能点击获得焦点"," me.body.contentEditable = false;"," setTimeout(function () {"," me.body.contentEditable = true;"," }, 100);"," setInterval(function () {"," me.body.style.height = me.iframe.offsetHeight - 20 + 'px'"," }, 100)"," }"," !options.isShow && me.setHide();"," options.readonly && me.setDisabled();"," },",""," /**"," * 从编辑器的容器节点向上查找form元素,若找到,就同步编辑内容到找到的form里,为提交数据做准备,主要用于是手动提交的情况"," * 后台取得数据的键值,使用你容器上的name属性,如果没有就使用参数里的textarea项"," * @method sync"," * @example"," * ```javascript"," * editor.sync();"," * form.sumbit(); //form变量已经指向了form元素"," * ```"," */",""," /**"," * 根据传入的formId,在页面上查找要同步数据的表单,若找到,就同步编辑内容到找到的form里,为提交数据做准备,主要用于是手动提交的情况"," * 后台取得数据的键值,使用你容器上的name属性,如果没有就使用参数里的textarea项"," * @method sync"," * @param { String } formID 指定一个要同步数据的form的id,编辑器的数据会同步到你指定form下"," */"," sync: function (formId) {"," var me = this,"," form = formId ? document.getElementById(formId) :"," domUtils.findParent(me.iframe.parentNode, function (node) {"," return node.tagName == 'FORM'"," }, true);"," form && setValue(form, me);"," },",""," /**"," * 设置编辑器高度"," * @method setHeight"," * @param { Number } number 设置的高度值,纯数值,不带单位"," * @example"," * ```javascript"," * editor.setHeight(number);"," * ```"," */"," setHeight: function (height, notSetHeight) {"," if (height !== parseInt(this.iframe.parentNode.style.height)) {"," this.iframe.parentNode.style.height = height + 'px';"," }"," !notSetHeight && (this.options.minFrameHeight = this.options.initialFrameHeight = height);",""," this.body.style.height = height + 'px';"," },",""," /**"," * 这个接口是为插件扩展提供的接口,主要是为新添加的插件,如果需要添加快捷键,所提供的接口"," * @method addshortcutkey"," * @param { KeyValueMap } keyset 命令和快捷键的键值对对象,多个按钮的快捷键用“+”分隔"," * @example"," * ```javascript"," * editor.addshortcutkey({"," * \"Bold\" : \"ctrl+66\",//^B"," * \"Italic\" : \"ctrl+73\", //^I"," * });"," * ```"," */"," /**"," * 这个接口是为插件扩展提供的接口,主要是为新添加的插件,如果需要添加快捷键,所提供的接口"," * @method addshortcutkey"," * @param { String } cmd 触发快捷键时,响应的命令"," * @param { String } keys 快捷键的字符串,多个按钮用“+”分隔"," * @example"," * ```javascript"," * editor.addshortcutkey(\"Underline\", \"ctrl+85\"); //^U"," * ```"," */"," addshortcutkey: function (cmd, keys) {"," var obj = {};"," if (keys) {"," obj[cmd] = keys"," } else {"," obj = cmd;"," }"," utils.extend(this.shortcutkeys, obj)"," },",""," /**"," * 对编辑器设置keydown事件监听,绑定快捷键和命令,当快捷键组合触发成功,会响应对应的命令"," * @method _bindshortcutKeys"," * @private"," */"," _bindshortcutKeys: function () {"," var me = this, shortcutkeys = this.shortcutkeys;"," me.addListener('keydown', function (type, e) {"," var keyCode = e.keyCode || e.which;"," for (var i in shortcutkeys) {"," var tmp = shortcutkeys[i].split(',');"," for (var t = 0, ti; ti = tmp[t++];) {"," ti = ti.split(':');"," var key = ti[0], param = ti[1];"," if (/^(ctrl)(\\+shift)?\\+(\\d+)$/.test(key.toLowerCase()) || /^(\\d+)$/.test(key)) {"," if (( (RegExp.$1 == 'ctrl' ? (e.ctrlKey || e.metaKey) : 0)"," && (RegExp.$2 != \"\" ? e[RegExp.$2.slice(1) + \"Key\"] : 1)"," && keyCode == RegExp.$3"," ) ||"," keyCode == RegExp.$1"," ) {"," if (me.queryCommandState(i, param) != -1)"," me.execCommand(i, param);"," domUtils.preventDefault(e);"," }"," }"," }",""," }"," });"," },",""," /**"," * 获取编辑器的内容"," * @method getContent"," * @warning 该方法获取到的是经过编辑器内置的过滤规则进行过滤后得到的内容"," * @return { String } 编辑器的内容字符串, 如果编辑器的内容为空,或者是空的标签内容(如:”<p><br/></p>“), 则返回空字符串"," * @example"," * ```javascript"," * var content = editor.getContent();"," * ```"," */",""," /**"," * 获取编辑器的内容。 可以通过参数定义编辑器内置的判空规则"," * @method getContent"," * @param { Function } fn 自定的判空规则, 要求该方法返回一个boolean类型的值,"," * 代表当前编辑器的内容是否空,"," * 如果返回true, 则该方法将直接返回空字符串;如果返回false,则编辑器将返回"," * 经过内置过滤规则处理后的内容。"," * @remind 该方法在处理包含有初始化内容的时候能起到很好的作用。"," * @warning 该方法获取到的是经过编辑器内置的过滤规则进行过滤后得到的内容"," * @return { String } 编辑器的内容字符串"," * @example"," * ```javascript"," * // editor 是一个编辑器的实例"," * var content = editor.getContent( function ( editor ) {"," * return editor.body.innerHTML === '欢迎使用UEditor';"," * } );"," * ```"," */"," getContent: function (cmd, fn, notSetCursor, ignoreBlank, formatter) {"," var me = this;"," if (cmd && utils.isFunction(cmd)) {"," fn = cmd;"," cmd = '';"," }"," if (fn ? !fn() : !this.hasContents()) {"," return '';"," }"," me.fireEvent('beforegetcontent');"," var root = UE.htmlparser(me.body.innerHTML, ignoreBlank);"," me.filterOutputRule(root);"," me.fireEvent('aftergetcontent', cmd);"," return root.toHtml(formatter);"," },",""," /**"," * 取得完整的html代码,可以直接显示成完整的html文档"," * @method getAllHtml"," * @return { String } 编辑器的内容html文档字符串"," * @eaxmple"," * ```javascript"," * editor.getAllHtml();"," * ```"," */"," getAllHtml: function () {"," var me = this,"," headHtml = [],"," html = '';"," me.fireEvent('getAllHtml', headHtml);"," if (browser.ie && browser.version > 8) {"," var headHtmlForIE9 = '';"," utils.each(me.document.styleSheets, function (si) {"," headHtmlForIE9 += ( si.href ? '<link rel=\"stylesheet\" type=\"text/css\" href=\"' + si.href + '\" />' : '<style>' + si.cssText + '</style>');"," });"," utils.each(me.document.getElementsByTagName('script'), function (si) {"," headHtmlForIE9 += si.outerHTML;"," });",""," }"," return '<html><head>' + (me.options.charset ? '<meta http-equiv=\"Content-Type\" content=\"text/html; charset=' + me.options.charset + '\"/>' : '')"," + (headHtmlForIE9 || me.document.getElementsByTagName('head')[0].innerHTML) + headHtml.join('\\n') + '</head>'"," + '<body ' + (ie && browser.version < 9 ? 'class=\"view\"' : '') + '>' + me.getContent(null, null, true) + '</body></html>';"," },",""," /**"," * 得到编辑器的纯文本内容,但会保留段落格式"," * @method getPlainTxt"," * @return { String } 编辑器带段落格式的纯文本内容字符串"," * @example"," * ```javascript"," * editor.getPlainTxt();"," * ```"," */"," getPlainTxt: function () {"," var reg = new RegExp(domUtils.fillChar, 'g'),"," html = this.body.innerHTML.replace(/[\\n\\r]/g, '');//ie要先去了\\n在处理"," html = html.replace(/<(p|div)[^>]*>(<br\\/?>|&nbsp;)<\\/\\1>/gi, '\\n')"," .replace(/<br\\/?>/gi, '\\n')"," .replace(/<[^>/]+>/g, '')"," .replace(/(\\n)?<\\/([^>]+)>/g, function (a, b, c) {"," return dtd.$block[c] ? '\\n' : b ? b : '';"," });"," //取出来的空格会有c2a0会变成乱码,处理这种情况\\u00a0"," return html.replace(reg, '').replace(/\\u00a0/g, ' ').replace(/&nbsp;/g, ' ');"," },",""," /**"," * 获取编辑器中的纯文本内容,没有段落格式"," * @method getContentTxt"," * @return { String } 编辑器不带段落格式的纯文本内容字符串"," * @example"," * ```javascript"," * editor.getContentTxt();"," * ```"," */"," getContentTxt: function () {"," var reg = new RegExp(domUtils.fillChar, 'g');"," //取出来的空格会有c2a0会变成乱码,处理这种情况\\u00a0"," return this.body[browser.ie ? 'innerText' : 'textContent'].replace(reg, '').replace(/\\u00a0/g, ' ');"," },",""," /**"," * 设置编辑器的内容,可修改编辑器当前的html内容"," * @method setContent"," * @warning 通过该方法插入的内容,是经过编辑器内置的过滤规则进行过滤后得到的内容"," * @warning 该方法会出发selectionchange事件"," * @param { String } 要插入的html内容"," * @example"," * ```javascript"," * editor.getContent('<p>test</p>');"," * ```"," */",""," /**"," * 设置编辑器的内容,可修改编辑器当前的html内容"," * @method setContent"," * @warning 通过该方法插入的内容,是经过编辑器内置的过滤规则进行过滤后得到的内容"," * @warning 该方法会出发selectionchange事件"," * @param { String } html 要插入的html内容"," * @param { Boolean } isAppendTo 若传入true,不清空原来的内容,在最后插入内容,否则,清空内容再插入"," * @example"," * ```javascript"," * //假设设置前的编辑器内容是 <p>old text</p>"," * editor.getContent('<p>new text</p>', true); //插入的结果是<p>old text</p><p>new text</p>"," * ```"," */",""," /**"," * 设置编辑器的内容,可修改编辑器当前的html内容"," * @method setContent"," * @warning 通过该方法插入的内容,是经过编辑器内置的过滤规则进行过滤后得到的内容"," * @param { String } html 要插入的html内容"," * @param { Boolean } isAppendTo 若传入true,不清空原来的内容,在最后插入内容,否则,清空内容再插入"," * @param { Boolean } notFireSelectionchange 若传入true,执行该函数过程不触发编辑器的selectionchange事件"," * @example"," * ```javascript"," * editor.getContent('<p>new text</p>', false, true);"," * ```"," */"," setContent: function (html, isAppendTo, notFireSelectionchange) {"," var me = this;",""," me.fireEvent('beforesetcontent', html);"," var root = UE.htmlparser(html);"," me.filterInputRule(root);"," html = root.toHtml();","",""," me.body.innerHTML = (isAppendTo ? me.body.innerHTML : '') + html;","",""," function isCdataDiv(node) {"," return node.tagName == 'DIV' && node.getAttribute('cdata_tag');"," }",""," //给文本或者inline节点套p标签"," if (me.options.enterTag == 'p') {",""," var child = this.body.firstChild, tmpNode;"," if (!child || child.nodeType == 1 &&"," (dtd.$cdata[child.tagName] || isCdataDiv(child) ||"," domUtils.isCustomeNode(child)"," )"," && child === this.body.lastChild) {"," this.body.innerHTML = '<p>' + (browser.ie ? '&nbsp;' : '<br/>') + '</p>' + this.body.innerHTML;",""," } else {"," var p = me.document.createElement('p');"," while (child) {"," while (child && (child.nodeType == 3 || child.nodeType == 1 && dtd.p[child.tagName] && !dtd.$cdata[child.tagName])) {"," tmpNode = child.nextSibling;"," p.appendChild(child);"," child = tmpNode;"," }"," if (p.firstChild) {"," if (!child) {"," me.body.appendChild(p);"," break;"," } else {"," child.parentNode.insertBefore(p, child);"," p = me.document.createElement('p');"," }"," }"," child = child.nextSibling;"," }"," }"," }"," me.fireEvent('aftersetcontent');"," me.fireEvent('contentchange');",""," !notFireSelectionchange && me._selectionChange();"," //清除保存的选区"," me._bakRange = me._bakIERange = me._bakNativeRange = null;"," //trace:1742 setContent后gecko能得到焦点问题"," var geckoSel;"," if (browser.gecko && (geckoSel = this.selection.getNative())) {"," geckoSel.removeAllRanges();"," }"," if (me.options.autoSyncData) {"," me.form && setValue(me.form, me);"," }"," },",""," /**"," * 让编辑器获得焦点,默认focus到编辑器头部"," * @method focus"," * @example"," * ```javascript"," * editor.focus()"," * ```"," */",""," /**"," * 让编辑器获得焦点,toEnd确定focus位置"," * @method focus"," * @param { Boolean } toEnd 默认focus到编辑器头部,toEnd为true时focus到内容尾部"," * @example"," * ```javascript"," * editor.focus(true)"," * ```"," */"," focus: function (toEnd) {"," try {"," var me = this,"," rng = me.selection.getRange();"," if (toEnd) {"," rng.setStartAtLast(me.body.lastChild).setCursor(false, true);"," } else {"," rng.select(true);"," }"," this.fireEvent('focus');"," } catch (e) {"," }"," },",""," /**"," * 初始化UE事件及部分事件代理"," * @method _initEvents"," * @private"," */"," _initEvents: function () {"," var me = this,"," doc = me.document,"," win = me.window;"," me._proxyDomEvent = utils.bind(me._proxyDomEvent, me);"," domUtils.on(doc, ['click', 'contextmenu', 'mousedown', 'keydown', 'keyup', 'keypress', 'mouseup', 'mouseover', 'mouseout', 'selectstart'], me._proxyDomEvent);"," domUtils.on(win, ['focus', 'blur'], me._proxyDomEvent);"," domUtils.on(doc, ['mouseup', 'keydown'], function (evt) {"," //特殊键不触发selectionchange"," if (evt.type == 'keydown' && (evt.ctrlKey || evt.metaKey || evt.shiftKey || evt.altKey)) {"," return;"," }"," if (evt.button == 2)return;"," me._selectionChange(250, evt);"," });","// //处理拖拽","// //ie ff不能从外边拖入","// //chrome只针对从外边拖入的内容过滤","// var innerDrag = 0, source = browser.ie ? me.body : me.document, dragoverHandler;","// domUtils.on(source, 'dragstart', function () {","// innerDrag = 1;","// });","// domUtils.on(source, browser.webkit ? 'dragover' : 'drop', function () {","// return browser.webkit ?","// function () {","// clearTimeout(dragoverHandler);","// dragoverHandler = setTimeout(function () {","// if (!innerDrag) {","// var sel = me.selection,","// range = sel.getRange();","// if (range) {","// var common = range.getCommonAncestor();","// if (common && me.serialize) {","// var f = me.serialize,","// node =","// f.filter(","// f.transformInput(","// f.parseHTML(","// f.word(common.innerHTML)","// )","// )","// );","// common.innerHTML = f.toHTML(node);","// }","// }","// }","// innerDrag = 0;","// }, 200);","// } :","// function (e) {","// if (!innerDrag) {","// e.preventDefault ? e.preventDefault() : (e.returnValue = false);","// }","// innerDrag = 0;","// }","// }());"," },",""," /**"," * 触发事件代理"," * @method _proxyDomEvent"," * @private"," * @return { * } fireEvent的返回值"," * @see UE.EventBase:fireEvent(String)"," */"," _proxyDomEvent: function (evt) {"," return this.fireEvent(evt.type.replace(/^on/, ''), evt);"," },"," /**"," * 变化选区"," * @method _selectionChange"," * @private"," */"," _selectionChange: function (delay, evt) {"," var me = this;"," //有光标才做selectionchange 为了解决未focus时点击source不能触发更改工具栏状态的问题(source命令notNeedUndo=1)","// if ( !me.selection.isFocus() ){","// return;","// }","",""," var hackForMouseUp = false;"," var mouseX, mouseY;"," if (browser.ie && browser.version < 9 && evt && evt.type == 'mouseup') {"," var range = this.selection.getRange();"," if (!range.collapsed) {"," hackForMouseUp = true;"," mouseX = evt.clientX;"," mouseY = evt.clientY;"," }"," }"," clearTimeout(_selectionChangeTimer);"," _selectionChangeTimer = setTimeout(function () {"," if (!me.selection.getNative()) {"," return;"," }"," //修复一个IE下的bug: 鼠标点击一段已选择的文本中间时,可能在mouseup后的一段时间内取到的range是在selection的type为None下的错误值."," //IE下如果用户是拖拽一段已选择文本,则不会触发mouseup事件,所以这里的特殊处理不会对其有影响"," var ieRange;"," if (hackForMouseUp && me.selection.getNative().type == 'None') {"," ieRange = me.document.body.createTextRange();"," try {"," ieRange.moveToPoint(mouseX, mouseY);"," } catch (ex) {"," ieRange = null;"," }"," }"," var bakGetIERange;"," if (ieRange) {"," bakGetIERange = me.selection.getIERange;"," me.selection.getIERange = function () {"," return ieRange;"," };"," }"," me.selection.cache();"," if (bakGetIERange) {"," me.selection.getIERange = bakGetIERange;"," }"," if (me.selection._cachedRange && me.selection._cachedStartElement) {"," me.fireEvent('beforeselectionchange');"," // 第二个参数causeByUi为true代表由用户交互造成的selectionchange."," me.fireEvent('selectionchange', !!evt);"," me.fireEvent('afterselectionchange');"," me.selection.clear();"," }"," }, delay || 50);"," },",""," /**"," * 执行编辑命令"," * @method _callCmdFn"," * @private"," * @param { String } fnName 函数名称"," * @param { * } args 传给命令函数的参数"," * @return { * } 返回命令函数运行的返回值"," */"," _callCmdFn: function (fnName, args) {"," var cmdName = args[0].toLowerCase(),"," cmd, cmdFn;"," cmd = this.commands[cmdName] || UE.commands[cmdName];"," cmdFn = cmd && cmd[fnName];"," //没有querycommandstate或者没有command的都默认返回0"," if ((!cmd || !cmdFn) && fnName == 'queryCommandState') {"," return 0;"," } else if (cmdFn) {"," return cmdFn.apply(this, args);"," }"," },",""," /**"," * 执行编辑命令cmdName,完成富文本编辑效果"," * @method execCommand"," * @return { * } 返回命令函数运行的返回值"," * @example"," * ```javascript"," * editor.execCommand(cmdName);"," * ```"," */"," execCommand: function (cmdName) {"," cmdName = cmdName.toLowerCase();"," var me = this,"," result,"," cmd = me.commands[cmdName] || UE.commands[cmdName];"," if (!cmd || !cmd.execCommand) {"," return null;"," }"," if (!cmd.notNeedUndo && !me.__hasEnterExecCommand) {"," me.__hasEnterExecCommand = true;"," if (me.queryCommandState.apply(me, arguments) != -1) {"," me.fireEvent('beforeexeccommand', cmdName);"," result = this._callCmdFn('execCommand', arguments);"," !me._ignoreContentChange && me.fireEvent('contentchange');"," me.fireEvent('afterexeccommand', cmdName);"," }"," me.__hasEnterExecCommand = false;"," } else {"," result = this._callCmdFn('execCommand', arguments);"," !me._ignoreContentChange && me.fireEvent('contentchange')"," }"," !me._ignoreContentChange && me._selectionChange();"," return result;"," },",""," /**"," * 根据传入的command命令,查选编辑器当前的选区,返回命令的状态"," * @method queryCommandState"," * @return { Number } number 返回放前命令的状态"," * 返回 -1 当前命令不可用"," * 返回 0 当前命令可用"," * 返回 1 当前命令已经执行过了"," * @example"," * ```javascript"," * editor.queryCommandState(cmdName) => (-1|0|1)"," * ```"," */"," queryCommandState: function (cmdName) {"," return this._callCmdFn('queryCommandState', arguments);"," },",""," /**"," * 根据传入的command命令,查选编辑器当前的选区,根据命令返回相关的值"," * @method queryCommandValue"," * @remind 只有部分插件有此方法"," * @return { * } 返回每个命令特定的当前状态值"," * @grammar editor.queryCommandValue(cmdName) => {*}"," */"," queryCommandValue: function (cmdName) {"," return this._callCmdFn('queryCommandValue', arguments);"," },",""," /**"," * 检查编辑区域中是否有内容"," * @method hasContents"," * @remind 默认有文本内容,或者有以下节点都不认为是空"," * table,ul,ol,dl,iframe,area,base,col,hr,img,embed,input,link,meta,param"," * @return { Boolean } 检查有内容返回true,否则返回false"," * @example"," * ```javascript"," * editor.hasContents()"," * ```"," */",""," /**"," * 检查编辑区域中是否有内容,若包含参数tags中的节点类型,直接返回true"," * @method hasContents"," * @param { Array } tags 传入数组判断时用到的节点类型"," * @return { Boolean } 若文档中包含tags数组里对应的tag,返回true,否则返回false"," * @example"," * ```javascript"," * editor.hasContents(['span']);"," * ```"," */"," hasContents: function (tags) {"," if (tags) {"," for (var i = 0, ci; ci = tags[i++];) {"," if (this.document.getElementsByTagName(ci).length > 0) {"," return true;"," }"," }"," }"," if (!domUtils.isEmptyBlock(this.body)) {"," return true"," }"," //随时添加,定义的特殊标签如果存在,不能认为是空"," tags = ['div'];"," for (i = 0; ci = tags[i++];) {"," var nodes = domUtils.getElementsByTagName(this.document, ci);"," for (var n = 0, cn; cn = nodes[n++];) {"," if (domUtils.isCustomeNode(cn)) {"," return true;"," }"," }"," }"," return false;"," },",""," /**"," * 重置编辑器,可用来做多个tab使用同一个编辑器实例"," * @method reset"," * @remind 此方法会清空编辑器内容,清空回退列表"," * @example"," * ```javascript"," * editor.reset()"," * ```"," */"," reset: function () {"," this.fireEvent('reset');"," },",""," /**"," * 设置当前编辑区域可以编辑"," * @method setEnabled"," * @example"," * ```javascript"," * editor.setEnabled()"," * ```"," */"," setEnabled: function () {"," var me = this, range;"," if (me.body.contentEditable == 'false') {"," me.body.contentEditable = true;"," range = me.selection.getRange();"," //有可能内容丢失了"," try {"," range.moveToBookmark(me.lastBk);"," delete me.lastBk"," } catch (e) {"," range.setStartAtFirst(me.body).collapse(true)"," }"," range.select(true);"," if (me.bkqueryCommandState) {"," me.queryCommandState = me.bkqueryCommandState;"," delete me.bkqueryCommandState;"," }"," me.fireEvent('selectionchange');"," }"," },",""," /**"," * 设置当前编辑区域可以编辑"," * @method enable"," * @return { * } 返回setEnabled方法的返回值"," * @example"," * ```javascript"," * editor.enable()"," * ```"," * @see UE.Editor:setEnabled()"," */"," enable: function () {"," return this.setEnabled();"," },",""," /** 设置当前编辑区域不可编辑"," * @method setDisabled"," */",""," /** 设置当前编辑区域不可编辑,except中的命令除外"," * @method setDisabled"," * @param { String } except 例外命令的字符串"," * @remind 即使设置了disable,此处配置的例外命令仍然可以执行"," * @example"," * ```javascript"," * editor.setDisabled('bold'); //禁用工具栏中除加粗之外的所有功能"," * ```"," */",""," /** 设置当前编辑区域不可编辑,except中的命令除外"," * @method setDisabled"," * @param { Array } except 字符串数组,数组中的命令仍然可以执行"," * @remind 即使设置了disable,此处配置的例外命令仍然可以执行"," * @example"," * ```javascript"," * editor.setDisabled(['bold','insertimage']); //禁用工具栏中除加粗和插入图片之外的所有功能"," * ```"," */"," setDisabled: function (except) {"," var me = this;"," except = except ? utils.isArray(except) ? except : [except] : [];"," if (me.body.contentEditable == 'true') {"," if (!me.lastBk) {"," me.lastBk = me.selection.getRange().createBookmark(true);"," }"," me.body.contentEditable = false;"," me.bkqueryCommandState = me.queryCommandState;"," me.queryCommandState = function (type) {"," if (utils.indexOf(except, type) != -1) {"," return me.bkqueryCommandState.apply(me, arguments);"," }"," return -1;"," };"," me.fireEvent('selectionchange');"," }"," },",""," /** 设置当前编辑区域不可编辑"," * @method disable"," * @see UE.Editor:setEnabled()"," */",""," /** 设置当前编辑区域不可编辑,except中的命令除外"," * @method disable"," * @param { String } except 例外命令的字符串"," * @remind 即使设置了disable,此处配置的例外命令仍然可以执行"," * @example"," * ```javascript"," * editor.disable('bold'); //禁用工具栏中除加粗之外的所有功能"," * ```"," * @see UE.Editor:setEnabled(String)"," */",""," /** 设置当前编辑区域不可编辑,except中的命令除外"," * @method disable"," * @param { Array } except 字符串数组,数组中的命令仍然可以执行"," * @remind 即使设置了disable,此处配置的例外命令仍然可以执行"," * @example"," * ```javascript"," * editor.disable(['bold','insertimage']); //禁用工具栏中除加粗和插入图片之外的所有功能"," * ```"," * @see UE.Editor:setEnabled(Array)"," */"," disable: function (except) {"," return this.setDisabled(except);"," },",""," /**"," * 设置默认内容"," * @method _setDefaultContent"," * @private"," * @param { String } cont 要存入的内容"," */"," _setDefaultContent: function () {"," function clear() {"," var me = this;"," if (me.document.getElementById('initContent')) {"," me.body.innerHTML = '<p>' + (ie ? '' : '<br/>') + '</p>';"," me.removeListener('firstBeforeExecCommand focus', clear);"," setTimeout(function () {"," me.focus();"," me._selectionChange();"," }, 0)"," }"," }",""," return function (cont) {"," var me = this;"," me.body.innerHTML = '<p id=\"initContent\">' + cont + '</p>';",""," me.addListener('firstBeforeExecCommand focus', clear);"," }"," }(),",""," /**"," * 显示编辑器,show方法的兼容版本"," * @method setShow"," * @private"," */"," setShow: function () {"," var me = this, range = me.selection.getRange();"," if (me.container.style.display == 'none') {"," //有可能内容丢失了"," try {"," range.moveToBookmark(me.lastBk);"," delete me.lastBk"," } catch (e) {"," range.setStartAtFirst(me.body).collapse(true)"," }"," //ie下focus实效,所以做了个延迟"," setTimeout(function () {"," range.select(true);"," }, 100);"," me.container.style.display = '';"," }"," },",""," /**"," * 显示编辑器"," * @method show"," * @example"," * ```javascript"," * editor.show()"," * ```"," * @see UE.Editor:setShow(String)"," */"," show: function () {"," return this.setShow();"," },",""," /**"," * 隐藏编辑器,hide方法的兼容版本"," * @method setHide"," * @private"," */"," setHide: function () {"," var me = this;"," if (!me.lastBk) {"," me.lastBk = me.selection.getRange().createBookmark(true);"," }"," me.container.style.display = 'none'"," },",""," /**"," * 隐藏编辑器"," * @method hide"," * @example"," * ```javascript"," * editor.hide()"," * ```"," * @see UE.Editor:setHide()"," */"," hide: function () {"," return this.setHide();"," },",""," /**"," * 根据指定的路径,获取对应的语言资源"," * @method getLang"," * @param { String } path 路径根据的是lang目录下的语言文件的路径结构"," * @return { KeyValueMap | String } 根据路径返回语言资源的Json格式对象或者语言字符串"," * @example"," * ```javascript"," * editor.getLang('contextMenu.delete'); //如果当前是中文,那返回是的是'删除'"," * ```"," */"," getLang: function (path) {"," var lang = UE.I18N[this.options.lang];"," if (!lang) {"," throw Error(\"not import language file\");"," }"," path = (path || \"\").split(\".\");"," for (var i = 0, ci; ci = path[i++];) {"," lang = lang[ci];"," if (!lang)break;"," }"," return lang;"," },",""," /**"," * 计算编辑器当前html内容的长度"," * @method getContentLength"," * @return { Number } 返回计算的长度"," * @example"," * ```javascript"," * editor.getContentLength()"," * ```"," */",""," /**"," * 计算编辑器当前存文本内容的长度"," * @method getContentLength"," * @param { Boolean } ingoneHtml 传入true时,只按照纯文本来计算"," * @return { Number } 返回计算的长度,内容中有hr/img/iframe标签,长度加1"," * @example"," * ```javascript"," * editor.getContentLength(true)"," * ```"," */",""," /**"," * 计算编辑器当前内容的长度"," * @method getContentLength"," * @param { Boolean } ingoneHtml 传入true时,只按照纯文本来计算"," * @param { Array } tagNames 忽略html代码时,遇到数组里的标签,长度加1"," * @return { Number } 返回计算的长度,内容中有hr/img/iframe标签或者参数tagNames中的标签,长度加1"," * @remind 当ingoneHtml为false,第二个参数不作用"," * @example"," * ```javascript"," * editor.getContentLength(true, ['em','strong'])"," * ```"," */"," getContentLength: function (ingoneHtml, tagNames) {"," var count = this.getContent(false, false, true).length;"," if (ingoneHtml) {"," tagNames = (tagNames || []).concat([ 'hr', 'img', 'iframe']);"," count = this.getContentTxt().replace(/[\\t\\r\\n]+/g, '').length;"," for (var i = 0, ci; ci = tagNames[i++];) {"," count += this.document.getElementsByTagName(ci).length;"," }"," }"," return count;"," },",""," /**"," * 添加输入过滤规则"," * @method addInputRule"," * @param { Function } rule 要添加的过滤规则"," * @example"," * ```javascript"," * editor.addInputRule(function(root){"," * $.each(root.getNodesByTagName('div'),function(i,node){"," * node.tagName=\"p\";"," * });"," * });"," * ```"," */"," addInputRule: function (rule) {"," this.inputRules.push(rule);"," },",""," /**"," * 根据输入过滤规则,过滤编辑器内容"," * @method filterInputRule"," * @param { UE.uNode } root 要过滤的uNode节点"," * @remind 执行editor.setContent方法和执行'inserthtml'命令后,会运行该过滤函数"," * @example"," * ```javascript"," * editor.filterInputRule(editor.body);"," * ```"," */"," filterInputRule: function (root) {"," for (var i = 0, ci; ci = this.inputRules[i++];) {"," ci.call(this, root)"," }"," },",""," /**"," * 添加输出过滤规则"," * @method addOutputRule"," * @param { Function } rule 要添加的过滤规则"," * @example"," * ```javascript"," * editor.addOutputRule(function(root){"," * $.each(root.getNodesByTagName('p'),function(i,node){"," * node.tagName=\"div\";"," * });"," * });"," * ```"," */"," addOutputRule: function (rule) {"," this.outputRules.push(rule)"," },",""," /**"," * 根据输出过滤规则,过滤编辑器内容"," * @method filterOutputRule"," * @remind 执行editor.getContent方法的时候,会先运行该过滤函数"," * @param { UE.uNode } root 要过滤的uNode节点"," * @example"," * ```javascript"," * editor.filterOutputRule(editor.body);"," * ```"," */"," filterOutputRule: function (root) {"," for (var i = 0, ci; ci = this.outputRules[i++];) {"," ci.call(this, root)"," }"," }"," };"," utils.inherits(Editor, EventBase);","})();"]; +_$jscoverage['core/Editor.js'][22]++; +(function () { + _$jscoverage['core/Editor.js'][23]++; + var uid = 0, _selectionChangeTimer; + _$jscoverage['core/Editor.js'][32]++; + function setValue(form, editor) { + _$jscoverage['core/Editor.js'][33]++; + var textarea; + _$jscoverage['core/Editor.js'][34]++; + if (editor.textarea) { + _$jscoverage['core/Editor.js'][35]++; + if (utils.isString(editor.textarea)) { + _$jscoverage['core/Editor.js'][36]++; + for (var i = 0, ti, tis = domUtils.getElementsByTagName(form, "textarea"); (ti = tis[(i++)]);) { + _$jscoverage['core/Editor.js'][37]++; + if ((ti.id == ("ueditor_textarea_" + editor.options.textarea))) { + _$jscoverage['core/Editor.js'][38]++; + textarea = ti; + _$jscoverage['core/Editor.js'][39]++; + break; + } +} + } + else { + _$jscoverage['core/Editor.js'][43]++; + textarea = editor.textarea; + } + } + _$jscoverage['core/Editor.js'][46]++; + if ((! textarea)) { + _$jscoverage['core/Editor.js'][47]++; + form.appendChild((textarea = domUtils.createElement(document, "textarea", {"name": editor.options.textarea, "id": ("ueditor_textarea_" + editor.options.textarea), "style": "display:none"}))); + _$jscoverage['core/Editor.js'][53]++; + editor.textarea = textarea; + } + _$jscoverage['core/Editor.js'][55]++; + textarea.value = (editor.hasContents()? (editor.options.allHtmlEnabled? editor.getAllHtml(): editor.getContent(null, null, true)): ""); +} + _$jscoverage['core/Editor.js'][66]++; + function loadPlugins(me) { + _$jscoverage['core/Editor.js'][68]++; + for (var pi in UE.plugins) { + _$jscoverage['core/Editor.js'][69]++; + UE.plugins[pi].call(me); +} + _$jscoverage['core/Editor.js'][71]++; + me.langIsReady = true; + _$jscoverage['core/Editor.js'][73]++; + me.fireEvent("langReady"); +} + _$jscoverage['core/Editor.js'][82]++; + function checkCurLang(I18N) { + _$jscoverage['core/Editor.js'][83]++; + for (var lang in I18N) { + _$jscoverage['core/Editor.js'][84]++; + return lang; +} +} + _$jscoverage['core/Editor.js'][135]++; + var Editor = (UE.Editor = (function (options) { + _$jscoverage['core/Editor.js'][136]++; + var me = this; + _$jscoverage['core/Editor.js'][137]++; + me.uid = (uid++); + _$jscoverage['core/Editor.js'][138]++; + EventBase.call(me); + _$jscoverage['core/Editor.js'][139]++; + me.commands = {}; + _$jscoverage['core/Editor.js'][140]++; + me.options = utils.extend(utils.clone((options || {})), UEDITOR_CONFIG, true); + _$jscoverage['core/Editor.js'][141]++; + me.shortcutkeys = {}; + _$jscoverage['core/Editor.js'][142]++; + me.inputRules = []; + _$jscoverage['core/Editor.js'][143]++; + me.outputRules = []; + _$jscoverage['core/Editor.js'][145]++; + me.setOpt({isShow: true, initialContent: "", initialStyle: "", autoClearinitialContent: false, iframeCssUrl: (me.options.UEDITOR_HOME_URL + "themes/iframe.css"), textarea: "editorValue", focus: false, focusInEnd: true, autoClearEmptyNode: true, fullscreen: false, readonly: false, zIndex: 999, imagePopup: true, enterTag: "p", customDomain: false, lang: "zh-cn", langPath: (me.options.UEDITOR_HOME_URL + "lang/"), theme: "default", themePath: (me.options.UEDITOR_HOME_URL + "themes/"), allHtmlEnabled: false, scaleEnabled: false, tableNativeEditInFF: false, autoSyncData: true}); + _$jscoverage['core/Editor.js'][171]++; + if ((! utils.isEmptyObject(UE.I18N))) { + _$jscoverage['core/Editor.js'][173]++; + me.options.lang = checkCurLang(UE.I18N); + _$jscoverage['core/Editor.js'][174]++; + loadPlugins(me); + } + else { + _$jscoverage['core/Editor.js'][176]++; + utils.loadFile(document, {src: (me.options.langPath + me.options.lang + "/" + me.options.lang + ".js"), tag: "script", type: "text/javascript", defer: "defer"}, (function () { + _$jscoverage['core/Editor.js'][182]++; + loadPlugins(me); +})); + } + _$jscoverage['core/Editor.js'][186]++; + UE.instants[("ueditorInstant" + me.uid)] = me; +})); + _$jscoverage['core/Editor.js'][188]++; + Editor.prototype = {ready: (function (fn) { + _$jscoverage['core/Editor.js'][205]++; + var me = this; + _$jscoverage['core/Editor.js'][206]++; + if (fn) { + _$jscoverage['core/Editor.js'][207]++; + (me.isReady? fn.apply(me): me.addListener("ready", fn)); + } +}), setOpt: (function (key, val) { + _$jscoverage['core/Editor.js'][238]++; + var obj = {}; + _$jscoverage['core/Editor.js'][239]++; + if (utils.isString(key)) { + _$jscoverage['core/Editor.js'][240]++; + obj[key] = val; + } + else { + _$jscoverage['core/Editor.js'][242]++; + obj = key; + } + _$jscoverage['core/Editor.js'][244]++; + utils.extend(this.options, obj, true); +}), destroy: (function () { + _$jscoverage['core/Editor.js'][258]++; + var me = this; + _$jscoverage['core/Editor.js'][259]++; + me.fireEvent("destroy"); + _$jscoverage['core/Editor.js'][260]++; + var container = me.container.parentNode; + _$jscoverage['core/Editor.js'][261]++; + var textarea = me.textarea; + _$jscoverage['core/Editor.js'][262]++; + if ((! textarea)) { + _$jscoverage['core/Editor.js'][263]++; + textarea = document.createElement("textarea"); + _$jscoverage['core/Editor.js'][264]++; + container.parentNode.insertBefore(textarea, container); + } + else { + _$jscoverage['core/Editor.js'][266]++; + textarea.style.display = ""; + } + _$jscoverage['core/Editor.js'][269]++; + textarea.style.width = (me.iframe.offsetWidth + "px"); + _$jscoverage['core/Editor.js'][270]++; + textarea.style.height = (me.iframe.offsetHeight + "px"); + _$jscoverage['core/Editor.js'][271]++; + textarea.value = me.getContent(); + _$jscoverage['core/Editor.js'][272]++; + textarea.id = me.key; + _$jscoverage['core/Editor.js'][273]++; + container.innerHTML = ""; + _$jscoverage['core/Editor.js'][274]++; + domUtils.remove(container); + _$jscoverage['core/Editor.js'][275]++; + var key = me.key; + _$jscoverage['core/Editor.js'][277]++; + for (var p in me) { + _$jscoverage['core/Editor.js'][278]++; + if (me.hasOwnProperty(p)) { + _$jscoverage['core/Editor.js'][279]++; + (delete this[p]); + } +} + _$jscoverage['core/Editor.js'][282]++; + UE.delEditor(key); +}), render: (function (container) { + _$jscoverage['core/Editor.js'][299]++; + var me = this, options = me.options, getStyleValue = (function (attr) { + _$jscoverage['core/Editor.js'][302]++; + return parseInt(domUtils.getComputedStyle(container, attr)); +}); + _$jscoverage['core/Editor.js'][304]++; + if (utils.isString(container)) { + _$jscoverage['core/Editor.js'][305]++; + container = document.getElementById(container); + } + _$jscoverage['core/Editor.js'][307]++; + if (container) { + _$jscoverage['core/Editor.js'][308]++; + if (options.initialFrameWidth) { + _$jscoverage['core/Editor.js'][309]++; + options.minFrameWidth = options.initialFrameWidth; + } + else { + _$jscoverage['core/Editor.js'][311]++; + options.minFrameWidth = (options.initialFrameWidth = container.offsetWidth); + } + _$jscoverage['core/Editor.js'][313]++; + if (options.initialFrameHeight) { + _$jscoverage['core/Editor.js'][314]++; + options.minFrameHeight = options.initialFrameHeight; + } + else { + _$jscoverage['core/Editor.js'][316]++; + options.initialFrameHeight = (options.minFrameHeight = container.offsetHeight); + } + _$jscoverage['core/Editor.js'][319]++; + container.style.width = (/%$/.test(options.initialFrameWidth)? "100%": ((options.initialFrameWidth - getStyleValue("padding-left") - getStyleValue("padding-right")) + "px")); + _$jscoverage['core/Editor.js'][321]++; + container.style.height = (/%$/.test(options.initialFrameHeight)? "100%": ((options.initialFrameHeight - getStyleValue("padding-top") - getStyleValue("padding-bottom")) + "px")); + _$jscoverage['core/Editor.js'][324]++; + container.style.zIndex = options.zIndex; + _$jscoverage['core/Editor.js'][326]++; + var html = (((ie && (browser.version < 9))? "": "") + "" + "" + (options.iframeCssUrl? (""): "") + (options.initialStyle? (""): "") + "" + ""); + _$jscoverage['core/Editor.js'][342]++; + container.appendChild(domUtils.createElement(document, "iframe", {id: ("ueditor_" + me.uid), width: "100%", height: "100%", frameborder: "0", src: ("javascript:void(function(){document.open();" + ((options.customDomain && (document.domain != location.hostname))? ("document.domain=\"" + document.domain + "\";"): "") + "document.write(\"" + html + "\");document.close();}())")})); + _$jscoverage['core/Editor.js'][350]++; + container.style.overflow = "hidden"; + _$jscoverage['core/Editor.js'][352]++; + setTimeout((function () { + _$jscoverage['core/Editor.js'][353]++; + if (/%$/.test(options.initialFrameWidth)) { + _$jscoverage['core/Editor.js'][354]++; + options.minFrameWidth = (options.initialFrameWidth = container.offsetWidth); + _$jscoverage['core/Editor.js'][355]++; + container.style.width = (options.initialFrameWidth + "px"); + } + _$jscoverage['core/Editor.js'][357]++; + if (/%$/.test(options.initialFrameHeight)) { + _$jscoverage['core/Editor.js'][358]++; + options.minFrameHeight = (options.initialFrameHeight = container.offsetHeight); + _$jscoverage['core/Editor.js'][359]++; + container.style.height = (options.initialFrameHeight + "px"); + } +})); + } +}), _setup: (function (doc) { + _$jscoverage['core/Editor.js'][373]++; + var me = this, options = me.options; + _$jscoverage['core/Editor.js'][375]++; + if (ie) { + _$jscoverage['core/Editor.js'][376]++; + doc.body.disabled = true; + _$jscoverage['core/Editor.js'][377]++; + doc.body.contentEditable = true; + _$jscoverage['core/Editor.js'][378]++; + doc.body.disabled = false; + } + else { + _$jscoverage['core/Editor.js'][380]++; + doc.body.contentEditable = true; + } + _$jscoverage['core/Editor.js'][382]++; + doc.body.spellcheck = false; + _$jscoverage['core/Editor.js'][383]++; + me.document = doc; + _$jscoverage['core/Editor.js'][384]++; + me.window = (doc.defaultView || doc.parentWindow); + _$jscoverage['core/Editor.js'][385]++; + me.iframe = me.window.frameElement; + _$jscoverage['core/Editor.js'][386]++; + me.body = doc.body; + _$jscoverage['core/Editor.js'][388]++; + me.selection = new (dom.Selection)(doc); + _$jscoverage['core/Editor.js'][390]++; + var geckoSel; + _$jscoverage['core/Editor.js'][391]++; + if ((browser.gecko && (geckoSel = this.selection.getNative()))) { + _$jscoverage['core/Editor.js'][392]++; + geckoSel.removeAllRanges(); + } + _$jscoverage['core/Editor.js'][394]++; + this._initEvents(); + _$jscoverage['core/Editor.js'][396]++; + for (var form = this.iframe.parentNode; (! domUtils.isBody(form)); (form = form.parentNode)) { + _$jscoverage['core/Editor.js'][397]++; + if ((form.tagName == "FORM")) { + _$jscoverage['core/Editor.js'][398]++; + me.form = form; + _$jscoverage['core/Editor.js'][399]++; + if (me.options.autoSyncData) { + _$jscoverage['core/Editor.js'][400]++; + domUtils.on(me.window, "blur", (function () { + _$jscoverage['core/Editor.js'][401]++; + setValue(form, me); +})); + } + else { + _$jscoverage['core/Editor.js'][404]++; + domUtils.on(form, "submit", (function () { + _$jscoverage['core/Editor.js'][405]++; + setValue(this, me); +})); + } + _$jscoverage['core/Editor.js'][408]++; + break; + } +} + _$jscoverage['core/Editor.js'][411]++; + if (options.initialContent) { + _$jscoverage['core/Editor.js'][412]++; + if (options.autoClearinitialContent) { + _$jscoverage['core/Editor.js'][413]++; + var oldExecCommand = me.execCommand; + _$jscoverage['core/Editor.js'][414]++; + me.execCommand = (function () { + _$jscoverage['core/Editor.js'][415]++; + me.fireEvent("firstBeforeExecCommand"); + _$jscoverage['core/Editor.js'][416]++; + return oldExecCommand.apply(me, arguments); +}); + _$jscoverage['core/Editor.js'][418]++; + this._setDefaultContent(options.initialContent); + } + else { + _$jscoverage['core/Editor.js'][420]++; + this.setContent(options.initialContent, false, true); + } + } + _$jscoverage['core/Editor.js'][425]++; + if (domUtils.isEmptyNode(me.body)) { + _$jscoverage['core/Editor.js'][426]++; + me.body.innerHTML = ("

" + (browser.ie? "": "
") + "

"); + } + _$jscoverage['core/Editor.js'][429]++; + if (options.focus) { + _$jscoverage['core/Editor.js'][430]++; + setTimeout((function () { + _$jscoverage['core/Editor.js'][431]++; + me.focus(me.options.focusInEnd); + _$jscoverage['core/Editor.js'][433]++; + ((! me.options.autoClearinitialContent) && me._selectionChange()); +}), 0); + } + _$jscoverage['core/Editor.js'][436]++; + if ((! me.container)) { + _$jscoverage['core/Editor.js'][437]++; + me.container = this.iframe.parentNode; + } + _$jscoverage['core/Editor.js'][439]++; + if ((options.fullscreen && me.ui)) { + _$jscoverage['core/Editor.js'][440]++; + me.ui.setFullScreen(true); + } + _$jscoverage['core/Editor.js'][443]++; + try { + _$jscoverage['core/Editor.js'][444]++; + me.document.execCommand("2D-position", false, false); + } + catch (e) { + } + _$jscoverage['core/Editor.js'][447]++; + try { + _$jscoverage['core/Editor.js'][448]++; + me.document.execCommand("enableInlineTableEditing", false, false); + } + catch (e) { + } + _$jscoverage['core/Editor.js'][451]++; + try { + _$jscoverage['core/Editor.js'][452]++; + me.document.execCommand("enableObjectResizing", false, false); + } + catch (e) { + } + _$jscoverage['core/Editor.js'][458]++; + me._bindshortcutKeys(); + _$jscoverage['core/Editor.js'][459]++; + me.isReady = 1; + _$jscoverage['core/Editor.js'][460]++; + me.fireEvent("ready"); + _$jscoverage['core/Editor.js'][461]++; + (options.onready && options.onready.call(me)); + _$jscoverage['core/Editor.js'][462]++; + if ((! browser.ie)) { + _$jscoverage['core/Editor.js'][463]++; + domUtils.on(me.window, ["blur", "focus"], (function (e) { + _$jscoverage['core/Editor.js'][465]++; + if ((e.type == "blur")) { + _$jscoverage['core/Editor.js'][466]++; + me._bakRange = me.selection.getRange(); + _$jscoverage['core/Editor.js'][467]++; + try { + _$jscoverage['core/Editor.js'][468]++; + me._bakNativeRange = me.selection.getNative().getRangeAt(0); + _$jscoverage['core/Editor.js'][469]++; + me.selection.getNative().removeAllRanges(); + } + catch (e) { + _$jscoverage['core/Editor.js'][471]++; + me._bakNativeRange = null; + } + } + else { + _$jscoverage['core/Editor.js'][475]++; + try { + _$jscoverage['core/Editor.js'][476]++; + (me._bakRange && me._bakRange.select()); + } + catch (e) { + } + } +})); + } + _$jscoverage['core/Editor.js'][483]++; + if ((browser.gecko && (browser.version <= 10902))) { + _$jscoverage['core/Editor.js'][485]++; + me.body.contentEditable = false; + _$jscoverage['core/Editor.js'][486]++; + setTimeout((function () { + _$jscoverage['core/Editor.js'][487]++; + me.body.contentEditable = true; +}), 100); + _$jscoverage['core/Editor.js'][489]++; + setInterval((function () { + _$jscoverage['core/Editor.js'][490]++; + me.body.style.height = ((me.iframe.offsetHeight - 20) + "px"); +}), 100); + } + _$jscoverage['core/Editor.js'][493]++; + ((! options.isShow) && me.setHide()); + _$jscoverage['core/Editor.js'][494]++; + (options.readonly && me.setDisabled()); +}), sync: (function (formId) { + _$jscoverage['core/Editor.js'][515]++; + var me = this, form = (formId? document.getElementById(formId): domUtils.findParent(me.iframe.parentNode, (function (node) { + _$jscoverage['core/Editor.js'][518]++; + return (node.tagName == "FORM"); +}), true)); + _$jscoverage['core/Editor.js'][520]++; + (form && setValue(form, me)); +}), setHeight: (function (height, notSetHeight) { + _$jscoverage['core/Editor.js'][533]++; + if ((height !== parseInt(this.iframe.parentNode.style.height))) { + _$jscoverage['core/Editor.js'][534]++; + this.iframe.parentNode.style.height = (height + "px"); + } + _$jscoverage['core/Editor.js'][536]++; + ((! notSetHeight) && (this.options.minFrameHeight = (this.options.initialFrameHeight = height))); + _$jscoverage['core/Editor.js'][538]++; + this.body.style.height = (height + "px"); +}), addshortcutkey: (function (cmd, keys) { + _$jscoverage['core/Editor.js'][564]++; + var obj = {}; + _$jscoverage['core/Editor.js'][565]++; + if (keys) { + _$jscoverage['core/Editor.js'][566]++; + obj[cmd] = keys; + } + else { + _$jscoverage['core/Editor.js'][568]++; + obj = cmd; + } + _$jscoverage['core/Editor.js'][570]++; + utils.extend(this.shortcutkeys, obj); +}), _bindshortcutKeys: (function () { + _$jscoverage['core/Editor.js'][579]++; + var me = this, shortcutkeys = this.shortcutkeys; + _$jscoverage['core/Editor.js'][580]++; + me.addListener("keydown", (function (type, e) { + _$jscoverage['core/Editor.js'][581]++; + var keyCode = (e.keyCode || e.which); + _$jscoverage['core/Editor.js'][582]++; + for (var i in shortcutkeys) { + _$jscoverage['core/Editor.js'][583]++; + var tmp = shortcutkeys[i].split(","); + _$jscoverage['core/Editor.js'][584]++; + for (var t = 0, ti; (ti = tmp[(t++)]);) { + _$jscoverage['core/Editor.js'][585]++; + ti = ti.split(":"); + _$jscoverage['core/Editor.js'][586]++; + var key = ti[0], param = ti[1]; + _$jscoverage['core/Editor.js'][587]++; + if ((/^(ctrl)(\+shift)?\+(\d+)$/.test(key.toLowerCase()) || /^(\d+)$/.test(key))) { + _$jscoverage['core/Editor.js'][588]++; + if (((((RegExp.$1 == "ctrl")? (e.ctrlKey || e.metaKey): 0) && ((RegExp.$2 != "")? e[(RegExp.$2.slice(1) + "Key")]: 1) && (keyCode == RegExp.$3)) || (keyCode == RegExp.$1))) { + _$jscoverage['core/Editor.js'][594]++; + if ((me.queryCommandState(i, param) != -1)) { + _$jscoverage['core/Editor.js'][595]++; + me.execCommand(i, param); + } + _$jscoverage['core/Editor.js'][596]++; + domUtils.preventDefault(e); + } + } +} +} +})); +}), getContent: (function (cmd, fn, notSetCursor, ignoreBlank, formatter) { + _$jscoverage['core/Editor.js'][635]++; + var me = this; + _$jscoverage['core/Editor.js'][636]++; + if ((cmd && utils.isFunction(cmd))) { + _$jscoverage['core/Editor.js'][637]++; + fn = cmd; + _$jscoverage['core/Editor.js'][638]++; + cmd = ""; + } + _$jscoverage['core/Editor.js'][640]++; + if ((fn? (! fn()): (! this.hasContents()))) { + _$jscoverage['core/Editor.js'][641]++; + return ""; + } + _$jscoverage['core/Editor.js'][643]++; + me.fireEvent("beforegetcontent"); + _$jscoverage['core/Editor.js'][644]++; + var root = UE.htmlparser(me.body.innerHTML, ignoreBlank); + _$jscoverage['core/Editor.js'][645]++; + me.filterOutputRule(root); + _$jscoverage['core/Editor.js'][646]++; + me.fireEvent("aftergetcontent", cmd); + _$jscoverage['core/Editor.js'][647]++; + return root.toHtml(formatter); +}), getAllHtml: (function () { + _$jscoverage['core/Editor.js'][660]++; + var me = this, headHtml = [], html = ""; + _$jscoverage['core/Editor.js'][663]++; + me.fireEvent("getAllHtml", headHtml); + _$jscoverage['core/Editor.js'][664]++; + if ((browser.ie && (browser.version > 8))) { + _$jscoverage['core/Editor.js'][665]++; + var headHtmlForIE9 = ""; + _$jscoverage['core/Editor.js'][666]++; + utils.each(me.document.styleSheets, (function (si) { + _$jscoverage['core/Editor.js'][667]++; + headHtmlForIE9 += (si.href? (""): ("")); +})); + _$jscoverage['core/Editor.js'][669]++; + utils.each(me.document.getElementsByTagName("script"), (function (si) { + _$jscoverage['core/Editor.js'][670]++; + headHtmlForIE9 += si.outerHTML; +})); + } + _$jscoverage['core/Editor.js'][674]++; + return ("" + (me.options.charset? (""): "") + (headHtmlForIE9 || me.document.getElementsByTagName("head")[0].innerHTML) + headHtml.join("\n") + "" + "" + me.getContent(null, null, true) + ""); +}), getPlainTxt: (function () { + _$jscoverage['core/Editor.js'][689]++; + var reg = new RegExp(domUtils.fillChar, "g"), html = this.body.innerHTML.replace(/[\n\r]/g, ""); + _$jscoverage['core/Editor.js'][691]++; + html = html.replace(/<(p|div)[^>]*>(| )<\/\1>/gi, "\n").replace(//gi, "\n").replace(/<[^>/]+>/g, "").replace(/(\n)?<\/([^>]+)>/g, (function (a, b, c) { + _$jscoverage['core/Editor.js'][695]++; + return (dtd.$block[c]? "\n": (b? b: "")); +})); + _$jscoverage['core/Editor.js'][698]++; + return html.replace(reg, "").replace(/\u00a0/g, " ").replace(/ /g, " "); +}), getContentTxt: (function () { + _$jscoverage['core/Editor.js'][711]++; + var reg = new RegExp(domUtils.fillChar, "g"); + _$jscoverage['core/Editor.js'][713]++; + return this.body[(browser.ie? "innerText": "textContent")].replace(reg, "").replace(/\u00a0/g, " "); +}), setContent: (function (html, isAppendTo, notFireSelectionchange) { + _$jscoverage['core/Editor.js'][755]++; + var me = this; + _$jscoverage['core/Editor.js'][757]++; + me.fireEvent("beforesetcontent", html); + _$jscoverage['core/Editor.js'][758]++; + var root = UE.htmlparser(html); + _$jscoverage['core/Editor.js'][759]++; + me.filterInputRule(root); + _$jscoverage['core/Editor.js'][760]++; + html = root.toHtml(); + _$jscoverage['core/Editor.js'][763]++; + me.body.innerHTML = ((isAppendTo? me.body.innerHTML: "") + html); + _$jscoverage['core/Editor.js'][766]++; + function isCdataDiv(node) { + _$jscoverage['core/Editor.js'][767]++; + return ((node.tagName == "DIV") && node.getAttribute("cdata_tag")); +} + _$jscoverage['core/Editor.js'][771]++; + if ((me.options.enterTag == "p")) { + _$jscoverage['core/Editor.js'][773]++; + var child = this.body.firstChild, tmpNode; + _$jscoverage['core/Editor.js'][774]++; + if (((! child) || ((child.nodeType == 1) && (dtd.$cdata[child.tagName] || isCdataDiv(child) || domUtils.isCustomeNode(child)) && (child === this.body.lastChild)))) { + _$jscoverage['core/Editor.js'][779]++; + this.body.innerHTML = ("

" + (browser.ie? " ": "
") + "

" + this.body.innerHTML); + } + else { + _$jscoverage['core/Editor.js'][782]++; + var p = me.document.createElement("p"); + _$jscoverage['core/Editor.js'][783]++; + while (child) { + _$jscoverage['core/Editor.js'][784]++; + while ((child && ((child.nodeType == 3) || ((child.nodeType == 1) && dtd.p[child.tagName] && (! dtd.$cdata[child.tagName]))))) { + _$jscoverage['core/Editor.js'][785]++; + tmpNode = child.nextSibling; + _$jscoverage['core/Editor.js'][786]++; + p.appendChild(child); + _$jscoverage['core/Editor.js'][787]++; + child = tmpNode; +} + _$jscoverage['core/Editor.js'][789]++; + if (p.firstChild) { + _$jscoverage['core/Editor.js'][790]++; + if ((! child)) { + _$jscoverage['core/Editor.js'][791]++; + me.body.appendChild(p); + _$jscoverage['core/Editor.js'][792]++; + break; + } + else { + _$jscoverage['core/Editor.js'][794]++; + child.parentNode.insertBefore(p, child); + _$jscoverage['core/Editor.js'][795]++; + p = me.document.createElement("p"); + } + } + _$jscoverage['core/Editor.js'][798]++; + child = child.nextSibling; +} + } + } + _$jscoverage['core/Editor.js'][802]++; + me.fireEvent("aftersetcontent"); + _$jscoverage['core/Editor.js'][803]++; + me.fireEvent("contentchange"); + _$jscoverage['core/Editor.js'][805]++; + ((! notFireSelectionchange) && me._selectionChange()); + _$jscoverage['core/Editor.js'][807]++; + me._bakRange = (me._bakIERange = (me._bakNativeRange = null)); + _$jscoverage['core/Editor.js'][809]++; + var geckoSel; + _$jscoverage['core/Editor.js'][810]++; + if ((browser.gecko && (geckoSel = this.selection.getNative()))) { + _$jscoverage['core/Editor.js'][811]++; + geckoSel.removeAllRanges(); + } + _$jscoverage['core/Editor.js'][813]++; + if (me.options.autoSyncData) { + _$jscoverage['core/Editor.js'][814]++; + (me.form && setValue(me.form, me)); + } +}), focus: (function (toEnd) { + _$jscoverage['core/Editor.js'][837]++; + try { + _$jscoverage['core/Editor.js'][838]++; + var me = this, rng = me.selection.getRange(); + _$jscoverage['core/Editor.js'][840]++; + if (toEnd) { + _$jscoverage['core/Editor.js'][841]++; + rng.setStartAtLast(me.body.lastChild).setCursor(false, true); + } + else { + _$jscoverage['core/Editor.js'][843]++; + rng.select(true); + } + _$jscoverage['core/Editor.js'][845]++; + this.fireEvent("focus"); + } + catch (e) { + } +}), _initEvents: (function () { + _$jscoverage['core/Editor.js'][856]++; + var me = this, doc = me.document, win = me.window; + _$jscoverage['core/Editor.js'][859]++; + me._proxyDomEvent = utils.bind(me._proxyDomEvent, me); + _$jscoverage['core/Editor.js'][860]++; + domUtils.on(doc, ["click", "contextmenu", "mousedown", "keydown", "keyup", "keypress", "mouseup", "mouseover", "mouseout", "selectstart"], me._proxyDomEvent); + _$jscoverage['core/Editor.js'][861]++; + domUtils.on(win, ["focus", "blur"], me._proxyDomEvent); + _$jscoverage['core/Editor.js'][862]++; + domUtils.on(doc, ["mouseup", "keydown"], (function (evt) { + _$jscoverage['core/Editor.js'][864]++; + if (((evt.type == "keydown") && (evt.ctrlKey || evt.metaKey || evt.shiftKey || evt.altKey))) { + _$jscoverage['core/Editor.js'][865]++; + return; + } + _$jscoverage['core/Editor.js'][867]++; + if ((evt.button == 2)) { + _$jscoverage['core/Editor.js'][867]++; + return; + } + _$jscoverage['core/Editor.js'][868]++; + me._selectionChange(250, evt); +})); +}), _proxyDomEvent: (function (evt) { + _$jscoverage['core/Editor.js'][921]++; + return this.fireEvent(evt.type.replace(/^on/, ""), evt); +}), _selectionChange: (function (delay, evt) { + _$jscoverage['core/Editor.js'][929]++; + var me = this; + _$jscoverage['core/Editor.js'][936]++; + var hackForMouseUp = false; + _$jscoverage['core/Editor.js'][937]++; + var mouseX, mouseY; + _$jscoverage['core/Editor.js'][938]++; + if ((browser.ie && (browser.version < 9) && evt && (evt.type == "mouseup"))) { + _$jscoverage['core/Editor.js'][939]++; + var range = this.selection.getRange(); + _$jscoverage['core/Editor.js'][940]++; + if ((! range.collapsed)) { + _$jscoverage['core/Editor.js'][941]++; + hackForMouseUp = true; + _$jscoverage['core/Editor.js'][942]++; + mouseX = evt.clientX; + _$jscoverage['core/Editor.js'][943]++; + mouseY = evt.clientY; + } + } + _$jscoverage['core/Editor.js'][946]++; + clearTimeout(_selectionChangeTimer); + _$jscoverage['core/Editor.js'][947]++; + _selectionChangeTimer = setTimeout((function () { + _$jscoverage['core/Editor.js'][948]++; + if ((! me.selection.getNative())) { + _$jscoverage['core/Editor.js'][949]++; + return; + } + _$jscoverage['core/Editor.js'][953]++; + var ieRange; + _$jscoverage['core/Editor.js'][954]++; + if ((hackForMouseUp && (me.selection.getNative().type == "None"))) { + _$jscoverage['core/Editor.js'][955]++; + ieRange = me.document.body.createTextRange(); + _$jscoverage['core/Editor.js'][956]++; + try { + _$jscoverage['core/Editor.js'][957]++; + ieRange.moveToPoint(mouseX, mouseY); + } + catch (ex) { + _$jscoverage['core/Editor.js'][959]++; + ieRange = null; + } + } + _$jscoverage['core/Editor.js'][962]++; + var bakGetIERange; + _$jscoverage['core/Editor.js'][963]++; + if (ieRange) { + _$jscoverage['core/Editor.js'][964]++; + bakGetIERange = me.selection.getIERange; + _$jscoverage['core/Editor.js'][965]++; + me.selection.getIERange = (function () { + _$jscoverage['core/Editor.js'][966]++; + return ieRange; +}); + } + _$jscoverage['core/Editor.js'][969]++; + me.selection.cache(); + _$jscoverage['core/Editor.js'][970]++; + if (bakGetIERange) { + _$jscoverage['core/Editor.js'][971]++; + me.selection.getIERange = bakGetIERange; + } + _$jscoverage['core/Editor.js'][973]++; + if ((me.selection._cachedRange && me.selection._cachedStartElement)) { + _$jscoverage['core/Editor.js'][974]++; + me.fireEvent("beforeselectionchange"); + _$jscoverage['core/Editor.js'][976]++; + me.fireEvent("selectionchange", (! (! evt))); + _$jscoverage['core/Editor.js'][977]++; + me.fireEvent("afterselectionchange"); + _$jscoverage['core/Editor.js'][978]++; + me.selection.clear(); + } +}), (delay || 50)); +}), _callCmdFn: (function (fnName, args) { + _$jscoverage['core/Editor.js'][992]++; + var cmdName = args[0].toLowerCase(), cmd, cmdFn; + _$jscoverage['core/Editor.js'][994]++; + cmd = (this.commands[cmdName] || UE.commands[cmdName]); + _$jscoverage['core/Editor.js'][995]++; + cmdFn = (cmd && cmd[fnName]); + _$jscoverage['core/Editor.js'][997]++; + if ((((! cmd) || (! cmdFn)) && (fnName == "queryCommandState"))) { + _$jscoverage['core/Editor.js'][998]++; + return 0; + } + else { + _$jscoverage['core/Editor.js'][999]++; + if (cmdFn) { + _$jscoverage['core/Editor.js'][1000]++; + return cmdFn.apply(this, args); + } + } +}), execCommand: (function (cmdName) { + _$jscoverage['core/Editor.js'][1014]++; + cmdName = cmdName.toLowerCase(); + _$jscoverage['core/Editor.js'][1015]++; + var me = this, result, cmd = (me.commands[cmdName] || UE.commands[cmdName]); + _$jscoverage['core/Editor.js'][1018]++; + if (((! cmd) || (! cmd.execCommand))) { + _$jscoverage['core/Editor.js'][1019]++; + return null; + } + _$jscoverage['core/Editor.js'][1021]++; + if (((! cmd.notNeedUndo) && (! me.__hasEnterExecCommand))) { + _$jscoverage['core/Editor.js'][1022]++; + me.__hasEnterExecCommand = true; + _$jscoverage['core/Editor.js'][1023]++; + if ((me.queryCommandState.apply(me, arguments) != -1)) { + _$jscoverage['core/Editor.js'][1024]++; + me.fireEvent("beforeexeccommand", cmdName); + _$jscoverage['core/Editor.js'][1025]++; + result = this._callCmdFn("execCommand", arguments); + _$jscoverage['core/Editor.js'][1026]++; + ((! me._ignoreContentChange) && me.fireEvent("contentchange")); + _$jscoverage['core/Editor.js'][1027]++; + me.fireEvent("afterexeccommand", cmdName); + } + _$jscoverage['core/Editor.js'][1029]++; + me.__hasEnterExecCommand = false; + } + else { + _$jscoverage['core/Editor.js'][1031]++; + result = this._callCmdFn("execCommand", arguments); + _$jscoverage['core/Editor.js'][1032]++; + ((! me._ignoreContentChange) && me.fireEvent("contentchange")); + } + _$jscoverage['core/Editor.js'][1034]++; + ((! me._ignoreContentChange) && me._selectionChange()); + _$jscoverage['core/Editor.js'][1035]++; + return result; +}), queryCommandState: (function (cmdName) { + _$jscoverage['core/Editor.js'][1051]++; + return this._callCmdFn("queryCommandState", arguments); +}), queryCommandValue: (function (cmdName) { + _$jscoverage['core/Editor.js'][1062]++; + return this._callCmdFn("queryCommandValue", arguments); +}), hasContents: (function (tags) { + _$jscoverage['core/Editor.js'][1088]++; + if (tags) { + _$jscoverage['core/Editor.js'][1089]++; + for (var i = 0, ci; (ci = tags[(i++)]);) { + _$jscoverage['core/Editor.js'][1090]++; + if ((this.document.getElementsByTagName(ci).length > 0)) { + _$jscoverage['core/Editor.js'][1091]++; + return true; + } +} + } + _$jscoverage['core/Editor.js'][1095]++; + if ((! domUtils.isEmptyBlock(this.body))) { + _$jscoverage['core/Editor.js'][1096]++; + return true; + } + _$jscoverage['core/Editor.js'][1099]++; + tags = ["div"]; + _$jscoverage['core/Editor.js'][1100]++; + for (i = 0; (ci = tags[(i++)]);) { + _$jscoverage['core/Editor.js'][1101]++; + var nodes = domUtils.getElementsByTagName(this.document, ci); + _$jscoverage['core/Editor.js'][1102]++; + for (var n = 0, cn; (cn = nodes[(n++)]);) { + _$jscoverage['core/Editor.js'][1103]++; + if (domUtils.isCustomeNode(cn)) { + _$jscoverage['core/Editor.js'][1104]++; + return true; + } +} +} + _$jscoverage['core/Editor.js'][1108]++; + return false; +}), reset: (function () { + _$jscoverage['core/Editor.js'][1121]++; + this.fireEvent("reset"); +}), setEnabled: (function () { + _$jscoverage['core/Editor.js'][1133]++; + var me = this, range; + _$jscoverage['core/Editor.js'][1134]++; + if ((me.body.contentEditable == "false")) { + _$jscoverage['core/Editor.js'][1135]++; + me.body.contentEditable = true; + _$jscoverage['core/Editor.js'][1136]++; + range = me.selection.getRange(); + _$jscoverage['core/Editor.js'][1138]++; + try { + _$jscoverage['core/Editor.js'][1139]++; + range.moveToBookmark(me.lastBk); + _$jscoverage['core/Editor.js'][1140]++; + (delete me.lastBk); + } + catch (e) { + _$jscoverage['core/Editor.js'][1142]++; + range.setStartAtFirst(me.body).collapse(true); + } + _$jscoverage['core/Editor.js'][1144]++; + range.select(true); + _$jscoverage['core/Editor.js'][1145]++; + if (me.bkqueryCommandState) { + _$jscoverage['core/Editor.js'][1146]++; + me.queryCommandState = me.bkqueryCommandState; + _$jscoverage['core/Editor.js'][1147]++; + (delete me.bkqueryCommandState); + } + _$jscoverage['core/Editor.js'][1149]++; + me.fireEvent("selectionchange"); + } +}), enable: (function () { + _$jscoverage['core/Editor.js'][1164]++; + return this.setEnabled(); +}), setDisabled: (function (except) { + _$jscoverage['core/Editor.js'][1191]++; + var me = this; + _$jscoverage['core/Editor.js'][1192]++; + except = (except? (utils.isArray(except)? except: [except]): []); + _$jscoverage['core/Editor.js'][1193]++; + if ((me.body.contentEditable == "true")) { + _$jscoverage['core/Editor.js'][1194]++; + if ((! me.lastBk)) { + _$jscoverage['core/Editor.js'][1195]++; + me.lastBk = me.selection.getRange().createBookmark(true); + } + _$jscoverage['core/Editor.js'][1197]++; + me.body.contentEditable = false; + _$jscoverage['core/Editor.js'][1198]++; + me.bkqueryCommandState = me.queryCommandState; + _$jscoverage['core/Editor.js'][1199]++; + me.queryCommandState = (function (type) { + _$jscoverage['core/Editor.js'][1200]++; + if ((utils.indexOf(except, type) != -1)) { + _$jscoverage['core/Editor.js'][1201]++; + return me.bkqueryCommandState.apply(me, arguments); + } + _$jscoverage['core/Editor.js'][1203]++; + return -1; +}); + _$jscoverage['core/Editor.js'][1205]++; + me.fireEvent("selectionchange"); + } +}), disable: (function (except) { + _$jscoverage['core/Editor.js'][1236]++; + return this.setDisabled(except); +}), _setDefaultContent: (function () { + _$jscoverage['core/Editor.js'][1246]++; + function clear() { + _$jscoverage['core/Editor.js'][1247]++; + var me = this; + _$jscoverage['core/Editor.js'][1248]++; + if (me.document.getElementById("initContent")) { + _$jscoverage['core/Editor.js'][1249]++; + me.body.innerHTML = ("

" + (ie? "": "
") + "

"); + _$jscoverage['core/Editor.js'][1250]++; + me.removeListener("firstBeforeExecCommand focus", clear); + _$jscoverage['core/Editor.js'][1251]++; + setTimeout((function () { + _$jscoverage['core/Editor.js'][1252]++; + me.focus(); + _$jscoverage['core/Editor.js'][1253]++; + me._selectionChange(); +}), 0); + } +} + _$jscoverage['core/Editor.js'][1258]++; + return (function (cont) { + _$jscoverage['core/Editor.js'][1259]++; + var me = this; + _$jscoverage['core/Editor.js'][1260]++; + me.body.innerHTML = ("

" + cont + "

"); + _$jscoverage['core/Editor.js'][1262]++; + me.addListener("firstBeforeExecCommand focus", clear); +}); +})(), setShow: (function () { + _$jscoverage['core/Editor.js'][1272]++; + var me = this, range = me.selection.getRange(); + _$jscoverage['core/Editor.js'][1273]++; + if ((me.container.style.display == "none")) { + _$jscoverage['core/Editor.js'][1275]++; + try { + _$jscoverage['core/Editor.js'][1276]++; + range.moveToBookmark(me.lastBk); + _$jscoverage['core/Editor.js'][1277]++; + (delete me.lastBk); + } + catch (e) { + _$jscoverage['core/Editor.js'][1279]++; + range.setStartAtFirst(me.body).collapse(true); + } + _$jscoverage['core/Editor.js'][1282]++; + setTimeout((function () { + _$jscoverage['core/Editor.js'][1283]++; + range.select(true); +}), 100); + _$jscoverage['core/Editor.js'][1285]++; + me.container.style.display = ""; + } +}), show: (function () { + _$jscoverage['core/Editor.js'][1299]++; + return this.setShow(); +}), setHide: (function () { + _$jscoverage['core/Editor.js'][1308]++; + var me = this; + _$jscoverage['core/Editor.js'][1309]++; + if ((! me.lastBk)) { + _$jscoverage['core/Editor.js'][1310]++; + me.lastBk = me.selection.getRange().createBookmark(true); + } + _$jscoverage['core/Editor.js'][1312]++; + me.container.style.display = "none"; +}), hide: (function () { + _$jscoverage['core/Editor.js'][1325]++; + return this.setHide(); +}), getLang: (function (path) { + _$jscoverage['core/Editor.js'][1339]++; + var lang = UE.I18N[this.options.lang]; + _$jscoverage['core/Editor.js'][1340]++; + if ((! lang)) { + _$jscoverage['core/Editor.js'][1341]++; + throw Error("not import language file"); + } + _$jscoverage['core/Editor.js'][1343]++; + path = (path || "").split("."); + _$jscoverage['core/Editor.js'][1344]++; + for (var i = 0, ci; (ci = path[(i++)]);) { + _$jscoverage['core/Editor.js'][1345]++; + lang = lang[ci]; + _$jscoverage['core/Editor.js'][1346]++; + if ((! lang)) { + _$jscoverage['core/Editor.js'][1346]++; + break; + } +} + _$jscoverage['core/Editor.js'][1348]++; + return lang; +}), getContentLength: (function (ingoneHtml, tagNames) { + _$jscoverage['core/Editor.js'][1385]++; + var count = this.getContent(false, false, true).length; + _$jscoverage['core/Editor.js'][1386]++; + if (ingoneHtml) { + _$jscoverage['core/Editor.js'][1387]++; + tagNames = (tagNames || []).concat(["hr", "img", "iframe"]); + _$jscoverage['core/Editor.js'][1388]++; + count = this.getContentTxt().replace(/[\t\r\n]+/g, "").length; + _$jscoverage['core/Editor.js'][1389]++; + for (var i = 0, ci; (ci = tagNames[(i++)]);) { + _$jscoverage['core/Editor.js'][1390]++; + count += this.document.getElementsByTagName(ci).length; +} + } + _$jscoverage['core/Editor.js'][1393]++; + return count; +}), addInputRule: (function (rule) { + _$jscoverage['core/Editor.js'][1410]++; + this.inputRules.push(rule); +}), filterInputRule: (function (root) { + _$jscoverage['core/Editor.js'][1424]++; + for (var i = 0, ci; (ci = this.inputRules[(i++)]);) { + _$jscoverage['core/Editor.js'][1425]++; + ci.call(this, root); +} +}), addOutputRule: (function (rule) { + _$jscoverage['core/Editor.js'][1443]++; + this.outputRules.push(rule); +}), filterOutputRule: (function (root) { + _$jscoverage['core/Editor.js'][1457]++; + for (var i = 0, ci; (ci = this.outputRules[(i++)]);) { + _$jscoverage['core/Editor.js'][1458]++; + ci.call(this, root); +} +})}; + _$jscoverage['core/Editor.js'][1462]++; + utils.inherits(Editor, EventBase); +})(); diff --git a/_test/coverage/core/EventBase.js b/_test/coverage/core/EventBase.js new file mode 100644 index 000000000..1c090257d --- /dev/null +++ b/_test/coverage/core/EventBase.js @@ -0,0 +1,143 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['core/EventBase.js']) { + _$jscoverage['core/EventBase.js'] = []; + _$jscoverage['core/EventBase.js'][32] = 0; + _$jscoverage['core/EventBase.js'][35] = 0; + _$jscoverage['core/EventBase.js'][61] = 0; + _$jscoverage['core/EventBase.js'][62] = 0; + _$jscoverage['core/EventBase.js'][63] = 0; + _$jscoverage['core/EventBase.js'][80] = 0; + _$jscoverage['core/EventBase.js'][81] = 0; + _$jscoverage['core/EventBase.js'][82] = 0; + _$jscoverage['core/EventBase.js'][110] = 0; + _$jscoverage['core/EventBase.js'][111] = 0; + _$jscoverage['core/EventBase.js'][112] = 0; + _$jscoverage['core/EventBase.js'][113] = 0; + _$jscoverage['core/EventBase.js'][115] = 0; + _$jscoverage['core/EventBase.js'][116] = 0; + _$jscoverage['core/EventBase.js'][117] = 0; + _$jscoverage['core/EventBase.js'][118] = 0; + _$jscoverage['core/EventBase.js'][119] = 0; + _$jscoverage['core/EventBase.js'][120] = 0; + _$jscoverage['core/EventBase.js'][121] = 0; + _$jscoverage['core/EventBase.js'][123] = 0; + _$jscoverage['core/EventBase.js'][124] = 0; + _$jscoverage['core/EventBase.js'][128] = 0; + _$jscoverage['core/EventBase.js'][129] = 0; + _$jscoverage['core/EventBase.js'][132] = 0; + _$jscoverage['core/EventBase.js'][148] = 0; + _$jscoverage['core/EventBase.js'][149] = 0; + _$jscoverage['core/EventBase.js'][150] = 0; + _$jscoverage['core/EventBase.js'][151] = 0; +} +_$jscoverage['core/EventBase.js'].source = ["/**"," * UE采用的事件基类"," * @file"," * @module UE"," * @class EventBase"," * @since 1.2.6.1"," */","","/**"," * UEditor公用空间,UEditor所有的功能都挂载在该空间下"," * @unfile"," * @module UE"," */","","/**"," * UE采用的事件基类,继承此类的对应类将获取addListener,removeListener,fireEvent方法。"," * 在UE中,Editor以及所有ui实例都继承了该类,故可以在对应的ui对象以及editor对象上使用上述方法。"," * @unfile"," * @module UE"," * @class EventBase"," */","","/**"," * 通过此构造器,子类可以继承EventBase获取事件监听的方法"," * @constructor"," * @example"," * ```javascript"," * UE.EventBase.call(editor);"," * ```"," */","","var EventBase = UE.EventBase = function () {","};","","EventBase.prototype = {","",""," /**"," * 注册事件监听器"," * @method addListener"," * @param { String } types 监听的事件名称,同时监听多个事件使用空格分隔"," * @param { Function } fn 监听的事件被触发时,会执行该回调函数"," * @waining 事件被触发时,监听的函数假如返回的值恒等于true,回调函数的队列中后面的函数将不执行"," * @example"," * ```javascript"," * editor.addListener('selectionchange',function(){"," * console.log(\"选区已经变化!\");"," * })"," * editor.addListener('beforegetcontent aftergetcontent',function(type){"," * if(type == 'beforegetcontent'){"," * //do something"," * }else{"," * //do something"," * }"," * console.log(this.getContent) // this是注册的事件的编辑器实例"," * })"," * ```"," * @see UE.EventBase:fireEvent(String)"," */"," addListener: function (types, listener) {"," types = utils.trim(types).split(' ');"," for (var i = 0, ti; ti = types[i++];) {"," getListener(this, ti, true).push(listener);"," }"," },","",""," /**"," * 移除事件监听器"," * @method removeListener"," * @param { String } types 移除的事件名称,同时移除多个事件使用空格分隔"," * @param { Function } fn 移除监听事件的函数引用"," * @example"," * ```javascript"," * //changeCallback为方法体"," * editor.removeListener(\"selectionchange\",changeCallback);"," * ```"," */"," removeListener: function (types, listener) {"," types = utils.trim(types).split(' ');"," for (var i = 0, ti; ti = types[i++];) {"," utils.removeItem(getListener(this, ti) || [], listener);"," }"," },","",""," /**"," * 触发事件"," * @method fireEvent"," * @param { String } types 触发的事件名称,同时触发多个事件使用空格分隔"," * @remind 该方法会触发addListener"," * @return { * } 返回触发事件的队列中,最后执行的回调函数的返回值"," * @example"," * ```javascript"," * editor.fireEvent(\"selectionchange\");"," * ```"," */",""," /**"," * 触发事件"," * @method fireEvent"," * @param { String } types 触发的事件名称,同时触发多个事件使用空格分隔"," * @param { *... } options 可选参数,可以传入一个或多个参数,会传给事件触发的回调函数"," * @example"," * ```javascript"," * editor.fireEvent(\"selectionchange\");"," * ```"," */"," fireEvent: function () {"," var types = arguments[0];"," types = utils.trim(types).split(' ');"," for (var i = 0, ti; ti = types[i++];) {"," var listeners = getListener(this, ti),"," r, t, k;"," if (listeners) {"," k = listeners.length;"," while (k--) {"," if (!listeners[k])continue;"," t = listeners[k].apply(this, arguments);"," if (t === true) {"," return t;"," }"," if (t !== undefined) {"," r = t;"," }"," }"," }"," if (t = this['on' + ti.toLowerCase()]) {"," r = t.apply(this, arguments);"," }"," }"," return r;"," }","};","","/**"," * 获得对象所拥有监听类型的所有监听器"," * @unfile"," * @module UE"," * @since 1.2.6.1"," * @method getListener"," * @public"," * @param { Object } obj 查询监听器的对象"," * @param { String } type 事件类型"," * @param { Boolean } force 为true且当前所有type类型的侦听器不存在时,创建一个空监听器数组"," * @return { Array } 监听器数组"," */","function getListener(obj, type, force) {"," var allListeners;"," type = type.toLowerCase();"," return ( ( allListeners = ( obj.__allListeners || force && ( obj.__allListeners = {} ) ) )"," && ( allListeners[type] || force && ( allListeners[type] = [] ) ) );","}"]; +_$jscoverage['core/EventBase.js'][32]++; +var EventBase = (UE.EventBase = (function () { +})); +_$jscoverage['core/EventBase.js'][35]++; +EventBase.prototype = {addListener: (function (types, listener) { + _$jscoverage['core/EventBase.js'][61]++; + types = utils.trim(types).split(" "); + _$jscoverage['core/EventBase.js'][62]++; + for (var i = 0, ti; (ti = types[(i++)]);) { + _$jscoverage['core/EventBase.js'][63]++; + getListener(this, ti, true).push(listener); +} +}), removeListener: (function (types, listener) { + _$jscoverage['core/EventBase.js'][80]++; + types = utils.trim(types).split(" "); + _$jscoverage['core/EventBase.js'][81]++; + for (var i = 0, ti; (ti = types[(i++)]);) { + _$jscoverage['core/EventBase.js'][82]++; + utils.removeItem((getListener(this, ti) || []), listener); +} +}), fireEvent: (function () { + _$jscoverage['core/EventBase.js'][110]++; + var types = arguments[0]; + _$jscoverage['core/EventBase.js'][111]++; + types = utils.trim(types).split(" "); + _$jscoverage['core/EventBase.js'][112]++; + for (var i = 0, ti; (ti = types[(i++)]);) { + _$jscoverage['core/EventBase.js'][113]++; + var listeners = getListener(this, ti), r, t, k; + _$jscoverage['core/EventBase.js'][115]++; + if (listeners) { + _$jscoverage['core/EventBase.js'][116]++; + k = listeners.length; + _$jscoverage['core/EventBase.js'][117]++; + while ((k--)) { + _$jscoverage['core/EventBase.js'][118]++; + if ((! listeners[k])) { + _$jscoverage['core/EventBase.js'][118]++; + continue; + } + _$jscoverage['core/EventBase.js'][119]++; + t = listeners[k].apply(this, arguments); + _$jscoverage['core/EventBase.js'][120]++; + if ((t === true)) { + _$jscoverage['core/EventBase.js'][121]++; + return t; + } + _$jscoverage['core/EventBase.js'][123]++; + if ((t !== undefined)) { + _$jscoverage['core/EventBase.js'][124]++; + r = t; + } +} + } + _$jscoverage['core/EventBase.js'][128]++; + if ((t = this[("on" + ti.toLowerCase())])) { + _$jscoverage['core/EventBase.js'][129]++; + r = t.apply(this, arguments); + } +} + _$jscoverage['core/EventBase.js'][132]++; + return r; +})}; +_$jscoverage['core/EventBase.js'][148]++; +function getListener(obj, type, force) { + _$jscoverage['core/EventBase.js'][149]++; + var allListeners; + _$jscoverage['core/EventBase.js'][150]++; + type = type.toLowerCase(); + _$jscoverage['core/EventBase.js'][151]++; + return ((allListeners = (obj.__allListeners || (force && (obj.__allListeners = {})))) && (allListeners[type] || (force && (allListeners[type] = [])))); +} diff --git a/_test/coverage/core/Range.js b/_test/coverage/core/Range.js new file mode 100644 index 000000000..21bb7e05d --- /dev/null +++ b/_test/coverage/core/Range.js @@ -0,0 +1,1888 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['core/Range.js']) { + _$jscoverage['core/Range.js'] = []; + _$jscoverage['core/Range.js'][22] = 0; + _$jscoverage['core/Range.js'][23] = 0; + _$jscoverage['core/Range.js'][31] = 0; + _$jscoverage['core/Range.js'][32] = 0; + _$jscoverage['core/Range.js'][38] = 0; + _$jscoverage['core/Range.js'][39] = 0; + _$jscoverage['core/Range.js'][41] = 0; + _$jscoverage['core/Range.js'][43] = 0; + _$jscoverage['core/Range.js'][44] = 0; + _$jscoverage['core/Range.js'][45] = 0; + _$jscoverage['core/Range.js'][47] = 0; + _$jscoverage['core/Range.js'][48] = 0; + _$jscoverage['core/Range.js'][49] = 0; + _$jscoverage['core/Range.js'][50] = 0; + _$jscoverage['core/Range.js'][51] = 0; + _$jscoverage['core/Range.js'][54] = 0; + _$jscoverage['core/Range.js'][55] = 0; + _$jscoverage['core/Range.js'][56] = 0; + _$jscoverage['core/Range.js'][57] = 0; + _$jscoverage['core/Range.js'][60] = 0; + _$jscoverage['core/Range.js'][61] = 0; + _$jscoverage['core/Range.js'][64] = 0; + _$jscoverage['core/Range.js'][67] = 0; + _$jscoverage['core/Range.js'][74] = 0; + _$jscoverage['core/Range.js'][75] = 0; + _$jscoverage['core/Range.js'][77] = 0; + _$jscoverage['core/Range.js'][78] = 0; + _$jscoverage['core/Range.js'][80] = 0; + _$jscoverage['core/Range.js'][81] = 0; + _$jscoverage['core/Range.js'][83] = 0; + _$jscoverage['core/Range.js'][84] = 0; + _$jscoverage['core/Range.js'][85] = 0; + _$jscoverage['core/Range.js'][87] = 0; + _$jscoverage['core/Range.js'][89] = 0; + _$jscoverage['core/Range.js'][91] = 0; + _$jscoverage['core/Range.js'][92] = 0; + _$jscoverage['core/Range.js'][94] = 0; + _$jscoverage['core/Range.js'][95] = 0; + _$jscoverage['core/Range.js'][96] = 0; + _$jscoverage['core/Range.js'][97] = 0; + _$jscoverage['core/Range.js'][98] = 0; + _$jscoverage['core/Range.js'][99] = 0; + _$jscoverage['core/Range.js'][101] = 0; + _$jscoverage['core/Range.js'][102] = 0; + _$jscoverage['core/Range.js'][105] = 0; + _$jscoverage['core/Range.js'][109] = 0; + _$jscoverage['core/Range.js'][110] = 0; + _$jscoverage['core/Range.js'][112] = 0; + _$jscoverage['core/Range.js'][113] = 0; + _$jscoverage['core/Range.js'][114] = 0; + _$jscoverage['core/Range.js'][116] = 0; + _$jscoverage['core/Range.js'][117] = 0; + _$jscoverage['core/Range.js'][118] = 0; + _$jscoverage['core/Range.js'][120] = 0; + _$jscoverage['core/Range.js'][122] = 0; + _$jscoverage['core/Range.js'][123] = 0; + _$jscoverage['core/Range.js'][124] = 0; + _$jscoverage['core/Range.js'][125] = 0; + _$jscoverage['core/Range.js'][127] = 0; + _$jscoverage['core/Range.js'][128] = 0; + _$jscoverage['core/Range.js'][129] = 0; + _$jscoverage['core/Range.js'][130] = 0; + _$jscoverage['core/Range.js'][131] = 0; + _$jscoverage['core/Range.js'][133] = 0; + _$jscoverage['core/Range.js'][134] = 0; + _$jscoverage['core/Range.js'][138] = 0; + _$jscoverage['core/Range.js'][139] = 0; + _$jscoverage['core/Range.js'][142] = 0; + _$jscoverage['core/Range.js'][143] = 0; + _$jscoverage['core/Range.js'][144] = 0; + _$jscoverage['core/Range.js'][145] = 0; + _$jscoverage['core/Range.js'][147] = 0; + _$jscoverage['core/Range.js'][148] = 0; + _$jscoverage['core/Range.js'][149] = 0; + _$jscoverage['core/Range.js'][152] = 0; + _$jscoverage['core/Range.js'][154] = 0; + _$jscoverage['core/Range.js'][155] = 0; + _$jscoverage['core/Range.js'][157] = 0; + _$jscoverage['core/Range.js'][158] = 0; + _$jscoverage['core/Range.js'][159] = 0; + _$jscoverage['core/Range.js'][193] = 0; + _$jscoverage['core/Range.js'][194] = 0; + _$jscoverage['core/Range.js'][195] = 0; + _$jscoverage['core/Range.js'][199] = 0; + _$jscoverage['core/Range.js'][200] = 0; + _$jscoverage['core/Range.js'][208] = 0; + _$jscoverage['core/Range.js'][209] = 0; + _$jscoverage['core/Range.js'][210] = 0; + _$jscoverage['core/Range.js'][211] = 0; + _$jscoverage['core/Range.js'][212] = 0; + _$jscoverage['core/Range.js'][213] = 0; + _$jscoverage['core/Range.js'][214] = 0; + _$jscoverage['core/Range.js'][218] = 0; + _$jscoverage['core/Range.js'][219] = 0; + _$jscoverage['core/Range.js'][220] = 0; + _$jscoverage['core/Range.js'][223] = 0; + _$jscoverage['core/Range.js'][235] = 0; + _$jscoverage['core/Range.js'][236] = 0; + _$jscoverage['core/Range.js'][237] = 0; + _$jscoverage['core/Range.js'][238] = 0; + _$jscoverage['core/Range.js'][239] = 0; + _$jscoverage['core/Range.js'][240] = 0; + _$jscoverage['core/Range.js'][241] = 0; + _$jscoverage['core/Range.js'][245] = 0; + _$jscoverage['core/Range.js'][263] = 0; + _$jscoverage['core/Range.js'][294] = 0; + _$jscoverage['core/Range.js'][295] = 0; + _$jscoverage['core/Range.js'][296] = 0; + _$jscoverage['core/Range.js'][298] = 0; + _$jscoverage['core/Range.js'][299] = 0; + _$jscoverage['core/Range.js'][300] = 0; + _$jscoverage['core/Range.js'][301] = 0; + _$jscoverage['core/Range.js'][302] = 0; + _$jscoverage['core/Range.js'][305] = 0; + _$jscoverage['core/Range.js'][338] = 0; + _$jscoverage['core/Range.js'][373] = 0; + _$jscoverage['core/Range.js'][407] = 0; + _$jscoverage['core/Range.js'][440] = 0; + _$jscoverage['core/Range.js'][473] = 0; + _$jscoverage['core/Range.js'][504] = 0; + _$jscoverage['core/Range.js'][535] = 0; + _$jscoverage['core/Range.js'][568] = 0; + _$jscoverage['core/Range.js'][602] = 0; + _$jscoverage['core/Range.js'][633] = 0; + _$jscoverage['core/Range.js'][665] = 0; + _$jscoverage['core/Range.js'][691] = 0; + _$jscoverage['core/Range.js'][720] = 0; + _$jscoverage['core/Range.js'][750] = 0; + _$jscoverage['core/Range.js'][751] = 0; + _$jscoverage['core/Range.js'][824] = 0; + _$jscoverage['core/Range.js'][825] = 0; + _$jscoverage['core/Range.js'][826] = 0; + _$jscoverage['core/Range.js'][827] = 0; + _$jscoverage['core/Range.js'][829] = 0; + _$jscoverage['core/Range.js'][830] = 0; + _$jscoverage['core/Range.js'][832] = 0; + _$jscoverage['core/Range.js'][833] = 0; + _$jscoverage['core/Range.js'][880] = 0; + _$jscoverage['core/Range.js'][882] = 0; + _$jscoverage['core/Range.js'][883] = 0; + _$jscoverage['core/Range.js'][885] = 0; + _$jscoverage['core/Range.js'][888] = 0; + _$jscoverage['core/Range.js'][890] = 0; + _$jscoverage['core/Range.js'][891] = 0; + _$jscoverage['core/Range.js'][893] = 0; + _$jscoverage['core/Range.js'][894] = 0; + _$jscoverage['core/Range.js'][898] = 0; + _$jscoverage['core/Range.js'][901] = 0; + _$jscoverage['core/Range.js'][1043] = 0; + _$jscoverage['core/Range.js'][1046] = 0; + _$jscoverage['core/Range.js'][1047] = 0; + _$jscoverage['core/Range.js'][1048] = 0; + _$jscoverage['core/Range.js'][1049] = 0; + _$jscoverage['core/Range.js'][1050] = 0; + _$jscoverage['core/Range.js'][1053] = 0; + _$jscoverage['core/Range.js'][1055] = 0; + _$jscoverage['core/Range.js'][1132] = 0; + _$jscoverage['core/Range.js'][1133] = 0; + _$jscoverage['core/Range.js'][1137] = 0; + _$jscoverage['core/Range.js'][1138] = 0; + _$jscoverage['core/Range.js'][1139] = 0; + _$jscoverage['core/Range.js'][1141] = 0; + _$jscoverage['core/Range.js'][1142] = 0; + _$jscoverage['core/Range.js'][1144] = 0; + _$jscoverage['core/Range.js'][1146] = 0; + _$jscoverage['core/Range.js'][1147] = 0; + _$jscoverage['core/Range.js'][1148] = 0; + _$jscoverage['core/Range.js'][1149] = 0; + _$jscoverage['core/Range.js'][1151] = 0; + _$jscoverage['core/Range.js'][1154] = 0; + _$jscoverage['core/Range.js'][1155] = 0; + _$jscoverage['core/Range.js'][1158] = 0; + _$jscoverage['core/Range.js'][1159] = 0; + _$jscoverage['core/Range.js'][1160] = 0; + _$jscoverage['core/Range.js'][1161] = 0; + _$jscoverage['core/Range.js'][1162] = 0; + _$jscoverage['core/Range.js'][1163] = 0; + _$jscoverage['core/Range.js'][1165] = 0; + _$jscoverage['core/Range.js'][1166] = 0; + _$jscoverage['core/Range.js'][1170] = 0; + _$jscoverage['core/Range.js'][1302] = 0; + _$jscoverage['core/Range.js'][1303] = 0; + _$jscoverage['core/Range.js'][1305] = 0; + _$jscoverage['core/Range.js'][1306] = 0; + _$jscoverage['core/Range.js'][1307] = 0; + _$jscoverage['core/Range.js'][1308] = 0; + _$jscoverage['core/Range.js'][1310] = 0; + _$jscoverage['core/Range.js'][1311] = 0; + _$jscoverage['core/Range.js'][1312] = 0; + _$jscoverage['core/Range.js'][1318] = 0; + _$jscoverage['core/Range.js'][1319] = 0; + _$jscoverage['core/Range.js'][1320] = 0; + _$jscoverage['core/Range.js'][1322] = 0; + _$jscoverage['core/Range.js'][1361] = 0; + _$jscoverage['core/Range.js'][1362] = 0; + _$jscoverage['core/Range.js'][1363] = 0; + _$jscoverage['core/Range.js'][1364] = 0; + _$jscoverage['core/Range.js'][1366] = 0; + _$jscoverage['core/Range.js'][1367] = 0; + _$jscoverage['core/Range.js'][1369] = 0; + _$jscoverage['core/Range.js'][1370] = 0; + _$jscoverage['core/Range.js'][1371] = 0; + _$jscoverage['core/Range.js'][1373] = 0; + _$jscoverage['core/Range.js'][1375] = 0; + _$jscoverage['core/Range.js'][1376] = 0; + _$jscoverage['core/Range.js'][1378] = 0; + _$jscoverage['core/Range.js'][1397] = 0; + _$jscoverage['core/Range.js'][1410] = 0; + _$jscoverage['core/Range.js'][1412] = 0; + _$jscoverage['core/Range.js'][1413] = 0; + _$jscoverage['core/Range.js'][1414] = 0; + _$jscoverage['core/Range.js'][1416] = 0; + _$jscoverage['core/Range.js'][1417] = 0; + _$jscoverage['core/Range.js'][1418] = 0; + _$jscoverage['core/Range.js'][1420] = 0; + _$jscoverage['core/Range.js'][1421] = 0; + _$jscoverage['core/Range.js'][1422] = 0; + _$jscoverage['core/Range.js'][1424] = 0; + _$jscoverage['core/Range.js'][1425] = 0; + _$jscoverage['core/Range.js'][1440] = 0; + _$jscoverage['core/Range.js'][1442] = 0; + _$jscoverage['core/Range.js'][1443] = 0; + _$jscoverage['core/Range.js'][1444] = 0; + _$jscoverage['core/Range.js'][1445] = 0; + _$jscoverage['core/Range.js'][1446] = 0; + _$jscoverage['core/Range.js'][1448] = 0; + _$jscoverage['core/Range.js'][1450] = 0; + _$jscoverage['core/Range.js'][1511] = 0; + _$jscoverage['core/Range.js'][1513] = 0; + _$jscoverage['core/Range.js'][1514] = 0; + _$jscoverage['core/Range.js'][1515] = 0; + _$jscoverage['core/Range.js'][1516] = 0; + _$jscoverage['core/Range.js'][1517] = 0; + _$jscoverage['core/Range.js'][1519] = 0; + _$jscoverage['core/Range.js'][1520] = 0; + _$jscoverage['core/Range.js'][1523] = 0; + _$jscoverage['core/Range.js'][1525] = 0; + _$jscoverage['core/Range.js'][1526] = 0; + _$jscoverage['core/Range.js'][1527] = 0; + _$jscoverage['core/Range.js'][1528] = 0; + _$jscoverage['core/Range.js'][1529] = 0; + _$jscoverage['core/Range.js'][1531] = 0; + _$jscoverage['core/Range.js'][1532] = 0; + _$jscoverage['core/Range.js'][1534] = 0; + _$jscoverage['core/Range.js'][1535] = 0; + _$jscoverage['core/Range.js'][1537] = 0; + _$jscoverage['core/Range.js'][1538] = 0; + _$jscoverage['core/Range.js'][1539] = 0; + _$jscoverage['core/Range.js'][1540] = 0; + _$jscoverage['core/Range.js'][1542] = 0; + _$jscoverage['core/Range.js'][1544] = 0; + _$jscoverage['core/Range.js'][1546] = 0; + _$jscoverage['core/Range.js'][1548] = 0; + _$jscoverage['core/Range.js'][1549] = 0; + _$jscoverage['core/Range.js'][1550] = 0; + _$jscoverage['core/Range.js'][1551] = 0; + _$jscoverage['core/Range.js'][1552] = 0; + _$jscoverage['core/Range.js'][1554] = 0; + _$jscoverage['core/Range.js'][1555] = 0; + _$jscoverage['core/Range.js'][1557] = 0; + _$jscoverage['core/Range.js'][1558] = 0; + _$jscoverage['core/Range.js'][1560] = 0; + _$jscoverage['core/Range.js'][1561] = 0; + _$jscoverage['core/Range.js'][1563] = 0; + _$jscoverage['core/Range.js'][1567] = 0; + _$jscoverage['core/Range.js'][1568] = 0; + _$jscoverage['core/Range.js'][1569] = 0; + _$jscoverage['core/Range.js'][1570] = 0; + _$jscoverage['core/Range.js'][1572] = 0; + _$jscoverage['core/Range.js'][1573] = 0; + _$jscoverage['core/Range.js'][1575] = 0; + _$jscoverage['core/Range.js'][1577] = 0; + _$jscoverage['core/Range.js'][1578] = 0; + _$jscoverage['core/Range.js'][1579] = 0; + _$jscoverage['core/Range.js'][1581] = 0; + _$jscoverage['core/Range.js'][1582] = 0; + _$jscoverage['core/Range.js'][1584] = 0; + _$jscoverage['core/Range.js'][1587] = 0; + _$jscoverage['core/Range.js'][1597] = 0; + _$jscoverage['core/Range.js'][1598] = 0; + _$jscoverage['core/Range.js'][1603] = 0; + _$jscoverage['core/Range.js'][1605] = 0; + _$jscoverage['core/Range.js'][1608] = 0; + _$jscoverage['core/Range.js'][1611] = 0; + _$jscoverage['core/Range.js'][1624] = 0; + _$jscoverage['core/Range.js'][1625] = 0; + _$jscoverage['core/Range.js'][1627] = 0; + _$jscoverage['core/Range.js'][1629] = 0; + _$jscoverage['core/Range.js'][1632] = 0; + _$jscoverage['core/Range.js'][1638] = 0; + _$jscoverage['core/Range.js'][1639] = 0; + _$jscoverage['core/Range.js'][1640] = 0; + _$jscoverage['core/Range.js'][1641] = 0; + _$jscoverage['core/Range.js'][1642] = 0; + _$jscoverage['core/Range.js'][1643] = 0; + _$jscoverage['core/Range.js'][1644] = 0; + _$jscoverage['core/Range.js'][1645] = 0; + _$jscoverage['core/Range.js'][1648] = 0; + _$jscoverage['core/Range.js'][1649] = 0; + _$jscoverage['core/Range.js'][1650] = 0; + _$jscoverage['core/Range.js'][1651] = 0; + _$jscoverage['core/Range.js'][1652] = 0; + _$jscoverage['core/Range.js'][1653] = 0; + _$jscoverage['core/Range.js'][1654] = 0; + _$jscoverage['core/Range.js'][1656] = 0; + _$jscoverage['core/Range.js'][1658] = 0; + _$jscoverage['core/Range.js'][1660] = 0; + _$jscoverage['core/Range.js'][1661] = 0; + _$jscoverage['core/Range.js'][1663] = 0; + _$jscoverage['core/Range.js'][1664] = 0; + _$jscoverage['core/Range.js'][1666] = 0; + _$jscoverage['core/Range.js'][1667] = 0; + _$jscoverage['core/Range.js'][1668] = 0; + _$jscoverage['core/Range.js'][1669] = 0; + _$jscoverage['core/Range.js'][1670] = 0; + _$jscoverage['core/Range.js'][1672] = 0; + _$jscoverage['core/Range.js'][1673] = 0; + _$jscoverage['core/Range.js'][1676] = 0; + _$jscoverage['core/Range.js'][1677] = 0; + _$jscoverage['core/Range.js'][1678] = 0; + _$jscoverage['core/Range.js'][1679] = 0; + _$jscoverage['core/Range.js'][1680] = 0; + _$jscoverage['core/Range.js'][1683] = 0; + _$jscoverage['core/Range.js'][1686] = 0; + _$jscoverage['core/Range.js'][1696] = 0; + _$jscoverage['core/Range.js'][1697] = 0; + _$jscoverage['core/Range.js'][1698] = 0; + _$jscoverage['core/Range.js'][1699] = 0; + _$jscoverage['core/Range.js'][1700] = 0; + _$jscoverage['core/Range.js'][1701] = 0; + _$jscoverage['core/Range.js'][1702] = 0; + _$jscoverage['core/Range.js'][1703] = 0; + _$jscoverage['core/Range.js'][1705] = 0; + _$jscoverage['core/Range.js'][1706] = 0; + _$jscoverage['core/Range.js'][1707] = 0; + _$jscoverage['core/Range.js'][1710] = 0; + _$jscoverage['core/Range.js'][1712] = 0; + _$jscoverage['core/Range.js'][1713] = 0; + _$jscoverage['core/Range.js'][1714] = 0; + _$jscoverage['core/Range.js'][1715] = 0; + _$jscoverage['core/Range.js'][1717] = 0; + _$jscoverage['core/Range.js'][1718] = 0; + _$jscoverage['core/Range.js'][1719] = 0; + _$jscoverage['core/Range.js'][1722] = 0; + _$jscoverage['core/Range.js'][1724] = 0; + _$jscoverage['core/Range.js'][1727] = 0; + _$jscoverage['core/Range.js'][1728] = 0; + _$jscoverage['core/Range.js'][1729] = 0; + _$jscoverage['core/Range.js'][1730] = 0; + _$jscoverage['core/Range.js'][1731] = 0; + _$jscoverage['core/Range.js'][1732] = 0; + _$jscoverage['core/Range.js'][1734] = 0; + _$jscoverage['core/Range.js'][1735] = 0; + _$jscoverage['core/Range.js'][1736] = 0; + _$jscoverage['core/Range.js'][1737] = 0; + _$jscoverage['core/Range.js'][1738] = 0; + _$jscoverage['core/Range.js'][1739] = 0; + _$jscoverage['core/Range.js'][1741] = 0; + _$jscoverage['core/Range.js'][1742] = 0; + _$jscoverage['core/Range.js'][1744] = 0; + _$jscoverage['core/Range.js'][1745] = 0; + _$jscoverage['core/Range.js'][1746] = 0; + _$jscoverage['core/Range.js'][1748] = 0; + _$jscoverage['core/Range.js'][1749] = 0; + _$jscoverage['core/Range.js'][1751] = 0; + _$jscoverage['core/Range.js'][1753] = 0; + _$jscoverage['core/Range.js'][1783] = 0; + _$jscoverage['core/Range.js'][1784] = 0; + _$jscoverage['core/Range.js'][1785] = 0; + _$jscoverage['core/Range.js'][1786] = 0; + _$jscoverage['core/Range.js'][1787] = 0; + _$jscoverage['core/Range.js'][1788] = 0; + _$jscoverage['core/Range.js'][1789] = 0; + _$jscoverage['core/Range.js'][1793] = 0; + _$jscoverage['core/Range.js'][1802] = 0; + _$jscoverage['core/Range.js'][1803] = 0; + _$jscoverage['core/Range.js'][1804] = 0; + _$jscoverage['core/Range.js'][1805] = 0; + _$jscoverage['core/Range.js'][1806] = 0; + _$jscoverage['core/Range.js'][1807] = 0; + _$jscoverage['core/Range.js'][1808] = 0; + _$jscoverage['core/Range.js'][1809] = 0; + _$jscoverage['core/Range.js'][1810] = 0; + _$jscoverage['core/Range.js'][1812] = 0; + _$jscoverage['core/Range.js'][1814] = 0; + _$jscoverage['core/Range.js'][1817] = 0; + _$jscoverage['core/Range.js'][1818] = 0; + _$jscoverage['core/Range.js'][1819] = 0; + _$jscoverage['core/Range.js'][1820] = 0; + _$jscoverage['core/Range.js'][1821] = 0; + _$jscoverage['core/Range.js'][1822] = 0; + _$jscoverage['core/Range.js'][1823] = 0; + _$jscoverage['core/Range.js'][1824] = 0; + _$jscoverage['core/Range.js'][1826] = 0; + _$jscoverage['core/Range.js'][1828] = 0; + _$jscoverage['core/Range.js'][1830] = 0; + _$jscoverage['core/Range.js'][1831] = 0; + _$jscoverage['core/Range.js'][1832] = 0; + _$jscoverage['core/Range.js'][1834] = 0; + _$jscoverage['core/Range.js'][1835] = 0; + _$jscoverage['core/Range.js'][1836] = 0; + _$jscoverage['core/Range.js'][1837] = 0; + _$jscoverage['core/Range.js'][1838] = 0; + _$jscoverage['core/Range.js'][1839] = 0; + _$jscoverage['core/Range.js'][1842] = 0; + _$jscoverage['core/Range.js'][1843] = 0; + _$jscoverage['core/Range.js'][1845] = 0; + _$jscoverage['core/Range.js'][1846] = 0; + _$jscoverage['core/Range.js'][1849] = 0; + _$jscoverage['core/Range.js'][1851] = 0; + _$jscoverage['core/Range.js'][1853] = 0; + _$jscoverage['core/Range.js'][1854] = 0; + _$jscoverage['core/Range.js'][1855] = 0; + _$jscoverage['core/Range.js'][1858] = 0; + _$jscoverage['core/Range.js'][1859] = 0; + _$jscoverage['core/Range.js'][1861] = 0; + _$jscoverage['core/Range.js'][1866] = 0; + _$jscoverage['core/Range.js'][1867] = 0; + _$jscoverage['core/Range.js'][1868] = 0; + _$jscoverage['core/Range.js'][1871] = 0; + _$jscoverage['core/Range.js'][1883] = 0; + _$jscoverage['core/Range.js'][1884] = 0; + _$jscoverage['core/Range.js'][1885] = 0; + _$jscoverage['core/Range.js'][1888] = 0; + _$jscoverage['core/Range.js'][1895] = 0; + _$jscoverage['core/Range.js'][1897] = 0; + _$jscoverage['core/Range.js'][1898] = 0; + _$jscoverage['core/Range.js'][1899] = 0; + _$jscoverage['core/Range.js'][1900] = 0; + _$jscoverage['core/Range.js'][1901] = 0; + _$jscoverage['core/Range.js'][1902] = 0; + _$jscoverage['core/Range.js'][1905] = 0; + _$jscoverage['core/Range.js'][1906] = 0; + _$jscoverage['core/Range.js'][1907] = 0; + _$jscoverage['core/Range.js'][1908] = 0; + _$jscoverage['core/Range.js'][1910] = 0; + _$jscoverage['core/Range.js'][1911] = 0; + _$jscoverage['core/Range.js'][1912] = 0; + _$jscoverage['core/Range.js'][1916] = 0; + _$jscoverage['core/Range.js'][1917] = 0; + _$jscoverage['core/Range.js'][1918] = 0; + _$jscoverage['core/Range.js'][1920] = 0; + _$jscoverage['core/Range.js'][1923] = 0; + _$jscoverage['core/Range.js'][1928] = 0; + _$jscoverage['core/Range.js'][1929] = 0; + _$jscoverage['core/Range.js'][1930] = 0; + _$jscoverage['core/Range.js'][1931] = 0; + _$jscoverage['core/Range.js'][1933] = 0; + _$jscoverage['core/Range.js'][1951] = 0; + _$jscoverage['core/Range.js'][1952] = 0; + _$jscoverage['core/Range.js'][1955] = 0; + _$jscoverage['core/Range.js'][1956] = 0; + _$jscoverage['core/Range.js'][1957] = 0; + _$jscoverage['core/Range.js'][1958] = 0; + _$jscoverage['core/Range.js'][1959] = 0; + _$jscoverage['core/Range.js'][1967] = 0; + _$jscoverage['core/Range.js'][1968] = 0; + _$jscoverage['core/Range.js'][1971] = 0; + _$jscoverage['core/Range.js'][1973] = 0; + _$jscoverage['core/Range.js'][2000] = 0; + _$jscoverage['core/Range.js'][2002] = 0; + _$jscoverage['core/Range.js'][2003] = 0; + _$jscoverage['core/Range.js'][2004] = 0; + _$jscoverage['core/Range.js'][2006] = 0; + _$jscoverage['core/Range.js'][2007] = 0; + _$jscoverage['core/Range.js'][2009] = 0; + _$jscoverage['core/Range.js'][2011] = 0; + _$jscoverage['core/Range.js'][2012] = 0; + _$jscoverage['core/Range.js'][2013] = 0; + _$jscoverage['core/Range.js'][2014] = 0; + _$jscoverage['core/Range.js'][2015] = 0; + _$jscoverage['core/Range.js'][2016] = 0; + _$jscoverage['core/Range.js'][2018] = 0; + _$jscoverage['core/Range.js'][2020] = 0; + _$jscoverage['core/Range.js'][2021] = 0; + _$jscoverage['core/Range.js'][2022] = 0; + _$jscoverage['core/Range.js'][2024] = 0; + _$jscoverage['core/Range.js'][2025] = 0; + _$jscoverage['core/Range.js'][2026] = 0; + _$jscoverage['core/Range.js'][2027] = 0; + _$jscoverage['core/Range.js'][2028] = 0; + _$jscoverage['core/Range.js'][2029] = 0; + _$jscoverage['core/Range.js'][2031] = 0; + _$jscoverage['core/Range.js'][2032] = 0; + _$jscoverage['core/Range.js'][2033] = 0; + _$jscoverage['core/Range.js'][2034] = 0; + _$jscoverage['core/Range.js'][2037] = 0; + _$jscoverage['core/Range.js'][2044] = 0; + _$jscoverage['core/Range.js'][2046] = 0; + _$jscoverage['core/Range.js'][2047] = 0; + _$jscoverage['core/Range.js'][2049] = 0; + _$jscoverage['core/Range.js'][2050] = 0; + _$jscoverage['core/Range.js'][2052] = 0; + _$jscoverage['core/Range.js'][2053] = 0; + _$jscoverage['core/Range.js'][2054] = 0; + _$jscoverage['core/Range.js'][2056] = 0; + _$jscoverage['core/Range.js'][2085] = 0; + _$jscoverage['core/Range.js'][2086] = 0; + _$jscoverage['core/Range.js'][2087] = 0; + _$jscoverage['core/Range.js'][2089] = 0; + _$jscoverage['core/Range.js'][2090] = 0; + _$jscoverage['core/Range.js'][2091] = 0; + _$jscoverage['core/Range.js'][2092] = 0; + _$jscoverage['core/Range.js'][2093] = 0; + _$jscoverage['core/Range.js'][2094] = 0; + _$jscoverage['core/Range.js'][2095] = 0; + _$jscoverage['core/Range.js'][2098] = 0; + _$jscoverage['core/Range.js'][2099] = 0; + _$jscoverage['core/Range.js'][2100] = 0; + _$jscoverage['core/Range.js'][2102] = 0; + _$jscoverage['core/Range.js'][2105] = 0; + _$jscoverage['core/Range.js'][2106] = 0; + _$jscoverage['core/Range.js'][2108] = 0; + _$jscoverage['core/Range.js'][2112] = 0; + _$jscoverage['core/Range.js'][2113] = 0; + _$jscoverage['core/Range.js'][2114] = 0; + _$jscoverage['core/Range.js'][2214] = 0; + _$jscoverage['core/Range.js'][2215] = 0; + _$jscoverage['core/Range.js'][2216] = 0; + _$jscoverage['core/Range.js'][2219] = 0; + _$jscoverage['core/Range.js'][2220] = 0; + _$jscoverage['core/Range.js'][2221] = 0; + _$jscoverage['core/Range.js'][2222] = 0; + _$jscoverage['core/Range.js'][2224] = 0; +} +_$jscoverage['core/Range.js'].source = ["/**"," * Range封装"," * @file"," * @module UE.dom"," * @class Range"," * @since 1.2.6.1"," */","","/**"," * dom操作封装"," * @unfile"," * @module UE.dom"," */","","/**"," * Range实现类,本类是UEditor底层核心类,统一w3cRange和ieRange之间的差异,包括接口和属性"," * @unfile"," * @module UE.dom"," * @class Range"," */","","(function () {"," var guid = 0,"," fillChar = domUtils.fillChar,"," fillData;",""," /*"," * 更新range的collapse状态"," * @param {Range} range range对象"," */"," function updateCollapse(range) {"," range.collapsed ="," range.startContainer && range.endContainer &&"," range.startContainer === range.endContainer &&"," range.startOffset == range.endOffset;"," }",""," function selectOneNode(rng){"," return !rng.collapsed && rng.startContainer.nodeType == 1 && rng.startContainer === rng.endContainer && rng.endOffset - rng.startOffset == 1"," }"," function setEndPoint(toStart, node, offset, range) {"," //如果node是自闭合标签要处理"," if (node.nodeType == 1 && (dtd.$empty[node.tagName] || dtd.$nonChild[node.tagName])) {"," offset = domUtils.getNodeIndex(node) + (toStart ? 0 : 1);"," node = node.parentNode;"," }"," if (toStart) {"," range.startContainer = node;"," range.startOffset = offset;"," if (!range.endContainer) {"," range.collapse(true);"," }"," } else {"," range.endContainer = node;"," range.endOffset = offset;"," if (!range.startContainer) {"," range.collapse(false);"," }"," }"," updateCollapse(range);"," return range;"," }",""," function execContentsAction(range, action) {"," //调整边界"," //range.includeBookmark();"," var start = range.startContainer,"," end = range.endContainer,"," startOffset = range.startOffset,"," endOffset = range.endOffset,"," doc = range.document,"," frag = doc.createDocumentFragment(),"," tmpStart, tmpEnd;"," if (start.nodeType == 1) {"," start = start.childNodes[startOffset] || (tmpStart = start.appendChild(doc.createTextNode('')));"," }"," if (end.nodeType == 1) {"," end = end.childNodes[endOffset] || (tmpEnd = end.appendChild(doc.createTextNode('')));"," }"," if (start === end && start.nodeType == 3) {"," frag.appendChild(doc.createTextNode(start.substringData(startOffset, endOffset - startOffset)));"," //is not clone"," if (action) {"," start.deleteData(startOffset, endOffset - startOffset);"," range.collapse(true);"," }"," return frag;"," }"," var current, currentLevel, clone = frag,"," startParents = domUtils.findParents(start, true), endParents = domUtils.findParents(end, true);"," for (var i = 0; startParents[i] == endParents[i];) {"," i++;"," }"," for (var j = i, si; si = startParents[j]; j++) {"," current = si.nextSibling;"," if (si == start) {"," if (!tmpStart) {"," if (range.startContainer.nodeType == 3) {"," clone.appendChild(doc.createTextNode(start.nodeValue.slice(startOffset)));"," //is not clone"," if (action) {"," start.deleteData(startOffset, start.nodeValue.length - startOffset);"," }"," } else {"," clone.appendChild(!action ? start.cloneNode(true) : start);"," }"," }"," } else {"," currentLevel = si.cloneNode(false);"," clone.appendChild(currentLevel);"," }"," while (current) {"," if (current === end || current === endParents[j]) {"," break;"," }"," si = current.nextSibling;"," clone.appendChild(!action ? current.cloneNode(true) : current);"," current = si;"," }"," clone = currentLevel;"," }"," clone = frag;"," if (!startParents[i]) {"," clone.appendChild(startParents[i - 1].cloneNode(false));"," clone = clone.firstChild;"," }"," for (var j = i, ei; ei = endParents[j]; j++) {"," current = ei.previousSibling;"," if (ei == end) {"," if (!tmpEnd && range.endContainer.nodeType == 3) {"," clone.appendChild(doc.createTextNode(end.substringData(0, endOffset)));"," //is not clone"," if (action) {"," end.deleteData(0, endOffset);"," }"," }"," } else {"," currentLevel = ei.cloneNode(false);"," clone.appendChild(currentLevel);"," }"," //如果两端同级,右边第一次已经被开始做了"," if (j != i || !startParents[i]) {"," while (current) {"," if (current === start) {"," break;"," }"," ei = current.previousSibling;"," clone.insertBefore(!action ? current.cloneNode(true) : current, clone.firstChild);"," current = ei;"," }"," }"," clone = currentLevel;"," }"," if (action) {"," range.setStartBefore(!endParents[i] ? endParents[i - 1] : !startParents[i] ? startParents[i - 1] : endParents[i]).collapse(true);"," }"," tmpStart && domUtils.remove(tmpStart);"," tmpEnd && domUtils.remove(tmpEnd);"," return frag;"," }",""," /**"," * 创建一个跟document绑定的空的Range实例"," * @constructor"," */",""," /**"," * @property { Node } startContainer 当前Range的开始边界的容器节点, 可以是一个元素节点或者是文本节点"," */",""," /**"," * @property { Node } startOffset 当前Range的开始边界容器节点的偏移量, 如果是元素节点,"," * 该值就是childNodes中的第几个节点, 如果是文本节点就是文本内容的第几个字符"," */",""," /**"," * @property { Node } endContainer 当前Range的结束边界的容器节点, 可以是一个元素节点或者是文本节点"," */",""," /**"," * @property { Node } endOffset 当前Range的结束边界容器节点的偏移量, 如果是元素节点,"," * 该值就是childNodes中的第几个节点, 如果是文本节点就是文本内容的第几个字符"," */",""," /**"," * @property { Boolean } collapsed 当前Range是否是闭合的"," */",""," /**"," * @property { Document } document 当前Range所属的Document对象"," */",""," var Range = dom.Range = function (document) {"," var me = this;"," me.startContainer ="," me.startOffset ="," me.endContainer ="," me.endOffset = null;"," me.document = document;"," me.collapsed = true;"," };",""," /*"," * 删除fillData"," * @param doc"," * @param excludeNode"," */"," function removeFillData(doc, excludeNode) {"," try {"," if (fillData && domUtils.inDoc(fillData, doc)) {"," if (!fillData.nodeValue.replace(fillCharReg, '').length) {"," var tmpNode = fillData.parentNode;"," domUtils.remove(fillData);"," while (tmpNode && domUtils.isEmptyInlineElement(tmpNode) &&"," //safari的contains有bug"," (browser.safari ? !(domUtils.getPosition(tmpNode,excludeNode) & domUtils.POSITION_CONTAINS) : !tmpNode.contains(excludeNode))"," ) {"," fillData = tmpNode.parentNode;"," domUtils.remove(tmpNode);"," tmpNode = fillData;"," }"," } else {"," fillData.nodeValue = fillData.nodeValue.replace(fillCharReg, '');"," }"," }"," } catch (e) {"," }"," }",""," /*"," *"," * @param node"," * @param dir"," */"," function mergeSibling(node, dir) {"," var tmpNode;"," node = node[dir];"," while (node && domUtils.isFillChar(node)) {"," tmpNode = node[dir];"," domUtils.remove(node);"," node = tmpNode;"," }"," }",""," Range.prototype = {",""," /**"," * 克隆选中的内容到一个DocumentFragment里"," * @method cloneContents"," * @return { DocumentFragment | NULL } 如果选区是空的将返回null, 否则, 返回包含所clone内容的DocumentFragment元素"," * @example"," * ```html"," * <!-- 被选中的内容 -->"," * <div>123</div><div>456</div>"," *"," * <script>"," * //output: 2"," * console.log( range.cloneContents().childNodes.length );"," * </script>"," * ```"," */"," cloneContents:function () {"," return this.collapsed ? null : execContentsAction(this, 0);"," },",""," /**"," * 删除当前选区范围中的所有内容"," * @method deleteContents"," * @remind 执行完该操作后, 当前Range对象变成了闭合状态"," * @remind 执行该操作会引起当前Range对象的其他属性的变化"," * @return { UE.dom.Range } 当前操作的Range对象"," * @example"," * ```html"," * <body>"," * <!-- 选区开始 -->"," * <div></div>"," * <span></span>"," * <!-- 选区结束 -->"," * </body>"," *"," * <script>"," * //output: 5"," * console.log( document.body.childNodes.length );"," *"," * //执行删除选区内容操作"," * range.deleteContents();"," *"," * //output: 2"," * console.log( document.body.childNodes.length );"," * </script>"," * ```"," */"," deleteContents:function () {"," var txt;"," if (!this.collapsed) {"," execContentsAction(this, 1);"," }"," if (browser.webkit) {"," txt = this.startContainer;"," if (txt.nodeType == 3 && !txt.nodeValue.length) {"," this.setStartBefore(txt).collapse(true);"," domUtils.remove(txt);"," }"," }"," return this;"," },",""," /**"," * 将当前选区的内容提取到一个DocumentFragment里"," * @method extractContents"," * @remind 执行该操作后, 选区将变成闭合状态"," * @warning 执行该操作后, 原来选区所选中的内容将从dom树上剥离出来"," * @return { DocumentFragment } 返回包含所提取内容的DocumentFragment对象"," * @example"," * ```html"," * <body>"," * <!-- 选区开始 -->"," * <div></div>"," * <span></span>"," * <!-- 选区结束 -->"," * </body>"," * <script>"," * //output: 5"," * console.log( document.body.childNodes.length );"," *"," * //执行选区内容提取"," * var contents = range.extractContents();"," *"," * //output: 2"," * console.log( document.body.childNodes.length );"," *"," * //output: 3"," * console.log( contents.childNodes.length );"," *"," * </script>"," */"," extractContents:function () {"," return this.collapsed ? null : execContentsAction(this, 2);"," },",""," /**"," * 设置Range的开始位置"," * @method setStart"," * @remind 如果容器节点是元素节点,那么offset指的是其子元素中索引为offset的元素,"," * 如果是文本节点,那么offset指的是其文本内容的第offset个字符"," * @param { Node } node 将被设为当前选区开始边界容器的节点对象"," * @param { int } offset 开始容器的偏移量"," * @return { UE.dom.Range } 当前range对象"," * @example"," * ```html"," * <body>"," * <div id=\"test\"></div>"," * <!-- 选区开始 -->"," * <span></span>"," * <a></a>"," * <!-- 选区结束 -->"," * </body>"," *"," * <script>"," *"," * //output: SPAN"," * console.log( range.startContainer.tagName );"," *"," * range.setStart( document.getElementById( \"test\" ), 0 );"," *"," * //output: DIV"," * console.log( range.startContainer.tagName );"," *"," * </script>"," * ```"," */"," setStart:function (node, offset) {"," return setEndPoint(true, node, offset, this);"," },",""," /**"," * 设置Range的结束位置"," * @method setEnd"," * @param { Node } node 将被设为当前选区结束边界容器的节点对象"," * @param { int } offset 结束容器的偏移量"," * @see UE.dom.Range:setStart(Node,int)"," * @return { UE.dom.Range } 当前range对象"," * @example"," * ```html"," * <body>"," * <!-- 选区开始 -->"," * <span></span>"," * <a></a>"," * <!-- 选区结束 -->"," * <div id=\"test\"></div>"," * </body>"," *"," * <script>"," *"," * //output: A"," * console.log( range.endContainer.tagName );"," *"," * range.setEnd( document.getElementById( \"test\" ), 0 );"," *"," * //output: DIV"," * console.log( range.endContainer.tagName );"," *"," * </script>"," * ```"," */"," setEnd:function (node, offset) {"," return setEndPoint(false, node, offset, this);"," },",""," /**"," * 将Range开始位置设置到node节点之后"," * @method setStartAfter"," * @param { Node } node 当前选区开始边界之前的节点"," * @see UE.dom.Range:setStart(Node,int)"," * @return { UE.dom.Range } 当前range对象"," * @example"," * ```html"," * <body>"," * <div id=\"test\"></div>"," * <span></span>"," * <!-- 选区开始 -->"," * <a></a>"," * <!-- 选区结束 -->"," * </body>"," *"," * <script>"," *"," * //output: A"," * console.log( range.startContainer.tagName );"," *"," * range.setStartAfter( document.getElementById( \"test\" ) );"," *"," * //output: SPAN"," * console.log( range.startContainer.tagName );"," *"," * </script>"," * ```"," */"," setStartAfter:function (node) {"," return this.setStart(node.parentNode, domUtils.getNodeIndex(node) + 1);"," },",""," /**"," * 将Range开始位置设置到node节点之前"," * @method setStartBefore"," * @param { Node } node 新的选区开始位置在该节点之前"," * @see UE.dom.Range:setStart(Node,int)"," * @return { UE.dom.Range } 当前range对象"," * @example"," * ```html"," * <body>"," * <span></span>"," * <div id=\"test\"></div>"," * <!-- 选区开始 -->"," * <a></a>"," * <!-- 选区结束 -->"," * </body>"," *"," * <script>"," *"," * //output: A"," * console.log( range.startContainer.tagName );"," *"," * range.setStartBefore( document.getElementById( \"test\" ) );"," *"," * //output: SPAN"," * console.log( range.startContainer.tagName );"," *"," * </script>"," * ```"," */"," setStartBefore:function (node) {"," return this.setStart(node.parentNode, domUtils.getNodeIndex(node));"," },",""," /**"," * 将Range结束位置设置到node节点之后"," * @method setEndAfter"," * @param { Node } node 目标节点"," * @see UE.dom.Range:setStart(Node,int)"," * @return { UE.dom.Range } 当前range对象"," * @example"," * ```html"," * <body>"," * <!-- 选区开始 -->"," * <a></a>"," * <!-- 选区结束 -->"," * <span></span>"," * <div id=\"test\"></div>"," *"," * <script>"," * //output: A"," * console.log( range.endContainer.tagName );"," *"," * range.setEndAfter( document.getElementById( \"test\" ) );"," *"," * //output: DIV"," * console.log( range.endContainer.tagName );"," * </script>"," * </body>"," * ```"," */"," setEndAfter:function (node) {"," return this.setEnd(node.parentNode, domUtils.getNodeIndex(node) + 1);"," },",""," /**"," * 将Range结束位置设置到node节点之前"," * @method setEndBefore"," * @param { Node } node 目标节点"," * @see UE.dom.Range:setStart(Node,int)"," * @return { UE.dom.Range } 当前range对象"," * @example"," * ```html"," * <body>"," * <!-- 选区开始 -->"," * <a></a>"," * <!-- 选区结束 -->"," * <span></span>"," * <div id=\"test\"></div>"," *"," * <script>"," * //output: A"," * console.log( range.endContainer.tagName );"," *"," * range.setEndBefore( document.getElementById( \"test\" ) );"," *"," * //output: SPAN"," * console.log( range.endContainer.tagName );"," * </script>"," * </body>"," * ```"," */"," setEndBefore:function (node) {"," return this.setEnd(node.parentNode, domUtils.getNodeIndex(node));"," },",""," /**"," * 设置Range的开始位置设置到node节点内的第一个节点处"," * @method setStartAtFirst"," * @param { Node } node 目标节点"," * @see UE.dom.Range:setStart(Node,int)"," * @return { UE.dom.Range } 当前range对象"," * @example"," * ```html"," * <body>"," * <div id=\"test\">"," * <i></i>"," * <!-- 选区开始 -->"," * <a></a>"," * <!-- 选区结束 -->"," * <span></span>"," * </div>"," *"," * <script>"," * //output: '<a></a>'"," * console.log( range.cloneContents() );"," *"," * range.setStartAtFirst( document.getElementById(\"test\") );"," *"," * //output: '<i></i><a></a>'"," * console.log( range.cloneContents() );"," * </script>"," * </body>"," * ```"," */"," setStartAtFirst:function (node) {"," return this.setStart(node, 0);"," },",""," /**"," * 设置Range的开始位置设置到node节点内的最后一个节点处"," * @method setStartAtLast"," * @param { Node } node 目标节点"," * @see UE.dom.Range:setStart(Node,int)"," * @return { UE.dom.Range } 当前range对象"," * @example"," * ```html"," * <body>"," * <div id=\"test\">"," * <i></i>"," * <!-- 选区开始 -->"," * <a></a>"," * <!-- 选区结束 -->"," * <span></span>"," * </div>"," *"," * <script>"," * //output: <a></a>"," * console.log( range.cloneContents() );"," *"," * range.setStartAtLast( document.body );"," *"," * //选区已经闭合, 输出空字符串"," * //output: ''"," * console.log( range.cloneContents() );"," * </script>"," * </body>"," * ```"," */"," setStartAtLast:function (node) {"," return this.setStart(node, node.nodeType == 3 ? node.nodeValue.length : node.childNodes.length);"," },",""," /**"," * 设置Range的结束位置设置到node节点内的第一个节点处"," * @method setEndAtFirst"," * @param { Node } node 目标节点"," * @see UE.dom.Range:setStart(Node,int)"," * @return { UE.dom.Range } 当前range对象"," * @example"," * ```html"," * <body>"," * <!-- 选区开始 -->"," * <a></a>"," * <!-- 选区结束 -->"," * <span></span>"," * <div id=\"test\"></div>"," *"," * <script>"," * //output: '<a></a>'"," * console.log( range.cloneContents() );"," *"," * range.setEndAtFirst( document.getElementById(\"test\") );"," *"," * //output: '<a></a><div></div>'"," * console.log( range.cloneContents() );"," * </script>"," * </body>"," * ```"," */"," setEndAtFirst:function (node) {"," return this.setEnd(node, 0);"," },",""," /**"," * 设置Range的结束位置设置到node节点内的最后一个节点处"," * @method setEndAtLast"," * @param { Node } node 目标节点"," * @see UE.dom.Range:setStart(Node,int)"," * @return { UE.dom.Range } 当前range对象"," * @example"," * ```html"," * <body>"," * <div id=\"test\">"," * <!-- 选区开始 -->"," * <a></a>"," * <!-- 选区结束 -->"," * <span></span>"," * </div>"," *"," * <script>"," * //output: '<a></a>'"," * console.log( range.cloneContents() );"," *"," * range.setEndAtLast( document.getElementById(\"test\") );"," *"," * //output: '<a></a><span></span>'"," * console.log( range.cloneContents() );"," * </script>"," * </body>"," * ```"," */"," setEndAtLast:function (node) {"," return this.setEnd(node, node.nodeType == 3 ? node.nodeValue.length : node.childNodes.length);"," },",""," /**"," * 选中一个节点, 并返回包含这个节点的range对象"," * @method selectNode"," * @param { Node } node 需要选中的节点"," * @return { UE.dom.Range } 当前range对象, 但是选区已经改变, 包含了当前选择的节点对象"," * @example"," * ```html"," * <body>"," *"," * <div id=\"test\"></div>"," *"," * <script>"," *"," * range.selectNode( document.getElementById(\"test\") );"," *"," * //output: '<div id=\"test\"></div>'"," * console.log( range.cloneContents() );"," *"," * </script>"," * </body>"," * ```"," */"," selectNode:function (node) {"," return this.setStartBefore(node).setEndAfter(node);"," },",""," /**"," * 选中给定节点内部的所有节点, 并返回包含这个节点内容的range对象"," * @method selectNodeContents"," * @param { Node } node 目标节点, 当前range将包含该节点内的所有节点"," * @return { UE.dom.Range } 当前range对象, 包含了当前选择的节点对象的所有子节点"," * @example"," * ```html"," * <body>"," *"," * <div id=\"test\">"," * <a></a>"," * <i></i>"," * </div>"," *"," * <script>"," *"," * range.selectNodeContents( document.getElementById(\"test\") );"," *"," * //output: '<a></a><i></i>'"," * console.log( range.cloneContents() );"," *"," * </script>"," * </body>"," * ```"," */"," selectNodeContents:function (node) {"," return this.setStart(node, 0).setEndAtLast(node);"," },",""," /**"," * clone当前Range对象"," * @method cloneRange"," * @return { UE.dom.Range } 当前range对象的一个副本"," * @example"," * ```html"," * <body>"," *"," * <div id=\"test\">"," * <!-- 选区开始 -->"," * <a></a>"," * <i></i>"," * <!-- 选区结束 -->"," * </div>"," *"," * <script>"," *"," * var cloneRange = range.cloneRange();"," *"," * //output: '<a></a><i></i>'"," * console.log( cloneRange.cloneContents() );"," *"," * </script>"," * </body>"," * ```"," */"," cloneRange:function () {"," var me = this;"," return new Range(me.document).setStart(me.startContainer, me.startOffset).setEnd(me.endContainer, me.endOffset);"," },",""," /**"," * 闭合当前选区,向尾部闭合"," * @method collapse"," * @return { UE.dom.Range } 当前range对象"," * @example"," * ```html"," * <body>"," *"," * <div id=\"test\">"," * <!-- 选区开始 -->"," * <a></a>"," * <i></i>"," * <!-- 选区结束 -->"," * </div>"," *"," * <script>"," *"," * //output: '<a></a><i></i>'"," * console.log( range.cloneContents() );"," * //output: 1"," * console.log( range.startOffset );"," *"," * range.collapse();"," *"," * //output: ''"," * console.log( range.cloneContents() );"," * //output: 3"," * console.log( range.startOffset );"," *"," * </script>"," * </body>"," * ```"," */",""," /**"," * 闭合当前选区,根据给定的toStart参数项决定是向尾部闭合还是向前闭合,"," * 如果toStart的值为true,则闭合到首部, 反之,则闭合到尾部"," * @method collapse"," * @param { Boolean } toStart 是否向前闭合选区"," * @return { UE.dom.Range } 当前range对象"," * @example"," * ```html"," * <body>"," *"," * <div id=\"test\">"," * <!-- 选区开始 -->"," * <a></a>"," * <i></i>"," * <!-- 选区结束 -->"," * </div>"," *"," * <script>"," *"," * //output: '<a></a><i></i>'"," * console.log( range.cloneContents() );"," * //output: 1"," * console.log( range.startOffset );"," *"," * range.collapse();"," *"," * //output: ''"," * console.log( range.cloneContents() );"," * //output: 3"," * console.log( range.startOffset );"," *"," * </script>"," * </body>"," * ```"," */"," collapse:function (toStart) {"," var me = this;"," if (toStart) {"," me.endContainer = me.startContainer;"," me.endOffset = me.startOffset;"," } else {"," me.startContainer = me.endContainer;"," me.startOffset = me.endOffset;"," }"," me.collapsed = true;"," return me;"," },",""," /*"," * 调整range的边界,使其\"收缩\"到最小的位置"," * @name shrinkBoundary"," * @grammar range.shrinkBoundary() => Range //range开始位置和结束位置都调整,参见<code><a href=\"#adjustmentboundary\">adjustmentBoundary</a></code>"," * @grammar range.shrinkBoundary(true) => Range //仅调整开始位置,忽略结束位置"," * @example"," * <b>xx[</b>xxxxx] ==> <b>xx</b>[xxxxx]"," * <b>x[xx</b><i>]xxx</i> ==> <b>x[xx]</b><i>xxx</i>"," * [<b><i>xxxx</i>xxxxxxx</b>] ==> <b><i>[xxxx</i>xxxxxxx]</b>"," */"," /**"," * 调整range的开始位置和结束位置,使其\"收缩\"到最小的位置"," * @method shrinkBoundary"," * @return { UE.dom.Range } 当前range对象"," * @example"," * ```html"," * <body>"," *"," * <div id=\"test\">"," * <!-- 选区开始 -->"," * <a></a>"," * <i></i>"," * <!-- 选区结束 -->"," * </div>"," *"," * <script>"," *"," * //output: '<a></a><i></i>'"," * console.log( range.cloneContents() );"," * //output: 1"," * console.log( range.startOffset );"," *"," * range.collapse();"," *"," * //output: ''"," * console.log( range.cloneContents() );"," * //output: 3"," * console.log( range.startOffset );"," *"," * </script>"," * </body>"," * ```"," */"," shrinkBoundary:function (ignoreEnd) {"," var me = this, child,"," collapsed = me.collapsed;"," function check(node){"," return node.nodeType == 1 && !domUtils.isBookmarkNode(node) && !dtd.$empty[node.tagName] && !dtd.$nonChild[node.tagName]"," }"," while (me.startContainer.nodeType == 1 //是element"," && (child = me.startContainer.childNodes[me.startOffset]) //子节点也是element"," && check(child)) {"," me.setStart(child, 0);"," }"," if (collapsed) {"," return me.collapse(true);"," }"," if (!ignoreEnd) {"," while (me.endContainer.nodeType == 1//是element"," && me.endOffset > 0 //如果是空元素就退出 endOffset=0那么endOffst-1为负值,childNodes[endOffset]报错"," && (child = me.endContainer.childNodes[me.endOffset - 1]) //子节点也是element"," && check(child)) {"," me.setEnd(child, child.childNodes.length);"," }"," }"," return me;"," },",""," /**"," * 获取当前选区所包含的所有节点的公共祖先节点,"," * 返回的公共祖先节点一定不是range自身的容器节点, 但有可能是一个文本节点"," * @method getCommonAncestor"," * @return { Node } 当前range对象内所有节点的公共祖先节点"," * @example"," * ```html"," * <body>"," *"," * <div id=\"test\">"," * <!-- 选区开始 -->"," * <a></a>"," * <i></i>"," * <!-- 选区结束 -->"," * </div>"," *"," * <script>"," *"," * var ancestorNode = range.getCommonAncestor();"," *"," * //output: 'DIV'"," * console.log( ancestorNode.tagName );"," *"," * </script>"," *"," * </body>"," * ```"," * @example"," * ```html"," * <body>"," *"," * <div id=\"test\">"," * <span>"," * <!-- 选区开始 -->"," * <a></a>"," * </span>"," * <span>"," * <i></i>"," * <!-- 选区结束 -->"," * </span>"," * </div>"," *"," * <script>"," *"," * var ancestorNode = range.getCommonAncestor();"," *"," * //output: 'DIV'"," * console.log( ancestorNode.tagName );"," *"," * </script>"," *"," * </body>"," * ```"," */",""," /**"," * 获取当前选区所包含的所有节点的公共祖先节点, 可以根据给定的参数 includeSelf 决定获取到"," * 的公共祖先节点是否可以是当前选区的startContainer或endContainer节点, 如果 includeSelf"," * 的取值为true, 则返回的节点可以是自身的容器节点, 否则, 则不能是容器节点"," * @method getCommonAncestor"," * @param { Boolean } includeSelf 是否允许获取到的公共祖先节点是当前range对象的容器节点"," * @return { Node } 当前range对象内所有节点的公共祖先节点"," * @see UE.dom.Range:getCommonAncestor()"," * @example"," * ```html"," * <body>"," *"," * <!-- 选区开始 -->"," * <div id=\"test\">"," * <a></a>"," * <i></i>"," * </div>"," * <!-- 选区结束 -->"," *"," * <script>"," *"," * var ancestorNode = range.getCommonAncestor( true );"," *"," * //output: 'DIV'"," * console.log( ancestorNode.tagName );"," *"," * ancestorNode = range.getCommonAncestor( false );"," *"," * //output: BODY"," * console.log( ancestorNode.tagName );"," *"," * </script>"," *"," * </body>"," * ```"," */",""," /**"," * 获取当前选区所包含的所有节点的公共祖先节点, 可以根据给定的参数 includeSelf 决定获取到"," * 的公共祖先节点是否可以是当前选区的startContainer或endContainer节点, 如果 includeSelf"," * 的取值为true, 则返回的节点可以是自身的容器节点, 否则, 则不能是容器节点; 同时可以根据"," * ignoreTextNode 参数的取值决定是否忽略类型为文本节点的祖先节点。"," * @method getCommonAncestor"," * @param { Boolean } includeSelf 是否允许获取到的公共祖先节点是当前range对象的容器节点"," * @param { Boolean } ignoreTextNode 获取祖先节点的过程中是否忽略类型为文本节点的祖先节点"," * @return { Node } 当前range对象内所有节点的公共祖先节点"," * @see UE.dom.Range:getCommonAncestor()"," * @see UE.dom.Range:getCommonAncestor(Boolean)"," * @example"," * ```html"," * <body>"," *"," * <div id=\"test\">"," * <span>"," * 我是一个"," * <!-- 选区开始 -->"," * 文本"," * <!-- 选区结束 -->"," * 内容"," * </span>"," * </div>"," *"," * <script>"," *"," * var ancestorNode = range.getCommonAncestor( true, false );"," *"," * //output: 3"," * console.log( ancestorNode.nodeType );"," * //output: SPAN"," * console.log( ancestorNode.parentNode.tagName );"," *"," * ancestorNode = range.getCommonAncestor( true, true );"," *"," * //output: 1"," * console.log( ancestorNode.nodeType );"," * //output: SPAN"," * console.log( ancestorNode.tagName );"," *"," * </script>"," *"," * </body>"," * ```"," */"," getCommonAncestor:function (includeSelf, ignoreTextNode) {"," var me = this,"," start = me.startContainer,"," end = me.endContainer;"," if (start === end) {"," if (includeSelf && selectOneNode(this)) {"," start = start.childNodes[me.startOffset];"," if(start.nodeType == 1)"," return start;"," }"," //只有在上来就相等的情况下才会出现是文本的情况"," return ignoreTextNode && start.nodeType == 3 ? start.parentNode : start;"," }"," return domUtils.getCommonAncestor(start, end);"," },",""," /**"," * 调整当前Range的开始和结束边界容器,如果是容器节点是文本节点,就调整到包含该文本节点的父节点上"," * @method trimBoundary"," * @return { UE.dom.Range } 当前range对象"," * @example"," * ```html"," *"," * <body>"," * <div>"," * 你好"," * <!-- 选区开始 -->"," * 我是一段文本, 我旁边的注释内容其实是不存在的,仅仅是为了描述一下选区的边界"," * <!-- 选区结束 -->"," * 到这里文本结束了"," * </div>"," *"," * <script>"," *"," * //output: 3"," * console.log( range.startContainer.nodeType );"," * //output: 3"," * console.log( range.endContainer.nodeType );"," *"," * range.trimBoundary();"," *"," * //output: 1"," * console.log( range.startContainer.nodeType );"," * //output: 1"," * console.log( range.endContainer.nodeType );"," *"," * </script>"," * </body>"," *"," * ```"," */",""," /**"," * 调整当前Range的开始和结束边界容器,如果是容器节点是文本节点,就调整到包含该文本节点的父节点上,"," * 可以根据 ignoreEnd 参数的值决定是否调整对结束边界的调整"," * @method trimBoundary"," * @param { Boolean } ignoreEnd 是否忽略对结束边界的调整"," * @return { UE.dom.Range } 当前range对象"," * @example"," * ```html"," *"," * <body>"," * <div>"," * 你好"," * <!-- 选区开始 -->"," * 我是一段文本, 我旁边的注释内容其实是不存在的,仅仅是为了描述一下选区的边界"," * <!-- 选区结束 -->"," * 到这里文本结束了"," * </div>"," *"," * <script>"," *"," * //output: 3"," * console.log( range.startContainer.nodeType );"," * //output: 3"," * console.log( range.endContainer.nodeType );"," *"," * range.trimBoundary( true );"," *"," * //output: 1"," * console.log( range.startContainer.nodeType );"," * //output: 3"," * console.log( range.endContainer.nodeType );"," *"," * </script>"," * </body>"," *"," * ```"," */"," trimBoundary:function (ignoreEnd) {"," this.txtToElmBoundary();"," var start = this.startContainer,"," offset = this.startOffset,"," collapsed = this.collapsed,"," end = this.endContainer;"," if (start.nodeType == 3) {"," if (offset == 0) {"," this.setStartBefore(start);"," } else {"," if (offset >= start.nodeValue.length) {"," this.setStartAfter(start);"," } else {"," var textNode = domUtils.split(start, offset);"," //跟新结束边界"," if (start === end) {"," this.setEnd(textNode, this.endOffset - offset);"," } else if (start.parentNode === end) {"," this.endOffset += 1;"," }"," this.setStartBefore(textNode);"," }"," }"," if (collapsed) {"," return this.collapse(true);"," }"," }"," if (!ignoreEnd) {"," offset = this.endOffset;"," end = this.endContainer;"," if (end.nodeType == 3) {"," if (offset == 0) {"," this.setEndBefore(end);"," } else {"," offset < end.nodeValue.length && domUtils.split(end, offset);"," this.setEndAfter(end);"," }"," }"," }"," return this;"," },",""," /**"," * 如果选区在文本的边界上,就扩展选区到文本的父节点上, 如果当前选区是闭合的, 则什么也不做"," * @method txtToElmBoundary"," * @return { UE.dom.Range } 当前range对象"," * @example"," * ```html"," *"," * <body>"," * <div>"," * <!-- 选区开始 -->"," * 你好,我是一段文本, 我旁边的注释内容其实是不存在的,仅仅是为了描述一下选区的边界"," * <!-- 选区结束 -->"," * 到这里文本结束了"," * </div>"," *"," * <script>"," *"," * //output: 3"," * console.log( range.startContainer.nodeType );"," * //output: 3"," * console.log( range.endContainer.nodeType );"," *"," * range.txtToElmBoundary();"," *"," * //output: 1"," * console.log( range.startContainer.nodeType );"," * //output: 3"," * console.log( range.endContainer.nodeType );"," *"," * </script>"," * </body>"," *"," * ```"," * @example"," * ```html"," *"," * <body>"," * <div>"," * <!-- 选区开始 -->"," * 你好,我是一段文本, 我旁边的注释内容其实是不存在的,仅仅是为了描述一下选区的边界"," * 到这里文本结束了"," * <!-- 选区结束 -->"," * </div>"," *"," * <script>"," *"," * //output: 3"," * console.log( range.startContainer.nodeType );"," * //output: 3"," * console.log( range.endContainer.nodeType );"," *"," * range.txtToElmBoundary();"," *"," * //output: 1"," * console.log( range.startContainer.nodeType );"," * //output: 1"," * console.log( range.endContainer.nodeType );"," *"," * </script>"," * </body>"," *"," * ```"," */",""," /**"," * 如果选区在文本的边界上,就扩展选区到文本的父节点上, 如果当前选区是闭合的, 则根据参数项"," * ignoreCollapsed 的值决定是否执行该调整"," * @method txtToElmBoundary"," * @param { Boolean } ignoreCollapsed 是否忽略选区的闭合状态, 如果该参数取值为true, 则"," * 不论选区是否闭合, 都会执行该操作, 反之, 则不会对闭合的选区执行该操作"," * @return { UE.dom.Range } 当前range对象"," * @example"," * ```html"," *"," * <body>"," * <div>"," * 你好,我是一段文本, 我旁边的注释内容其实是不存在的,仅仅是为了描述一下选区的边界"," * <!-- 选区开始 --><!-- 选区结束 -->"," * 到这里文本结束了"," * </div>"," *"," * <script>"," *"," * //output: 3"," * console.log( range.startContainer.nodeType );"," * //output: 3"," * console.log( range.endContainer.nodeType );"," *"," * range.txtToElmBoundary( true );"," *"," * //output: 1"," * console.log( range.startContainer.nodeType );"," * //output: 1"," * console.log( range.endContainer.nodeType );"," *"," * </script>"," * </body>"," *"," * ```"," * @example"," * ```html"," *"," * <body>"," * <div>"," * 你好,我是一段文本, 我旁边的注释内容其实是不存在的,仅仅是为了描述一下选区的边界"," * <!-- 选区开始 --><!-- 选区结束 -->"," * 到这里文本结束了"," * </div>"," *"," * <script>"," *"," * //output: 3"," * console.log( range.startContainer.nodeType );"," * //output: 3"," * console.log( range.endContainer.nodeType );"," *"," * range.txtToElmBoundary( false );"," *"," * //output: 3"," * console.log( range.startContainer.nodeType );"," * //output: 3"," * console.log( range.endContainer.nodeType );"," *"," * </script>"," * </body>"," *"," * ```"," */"," txtToElmBoundary:function (ignoreCollapsed) {"," function adjust(r, c) {"," var container = r[c + 'Container'],"," offset = r[c + 'Offset'];"," if (container.nodeType == 3) {"," if (!offset) {"," r['set' + c.replace(/(\\w)/, function (a) {"," return a.toUpperCase();"," }) + 'Before'](container);"," } else if (offset >= container.nodeValue.length) {"," r['set' + c.replace(/(\\w)/, function (a) {"," return a.toUpperCase();"," }) + 'After' ](container);"," }"," }"," }",""," if (ignoreCollapsed || !this.collapsed) {"," adjust(this, 'start');"," adjust(this, 'end');"," }"," return this;"," },",""," /**"," * 在当前选区的开始位置后紧临着插入一个节点,新插入的节点会被该range包含"," * @method insertNode"," * @param { Node } 需要插入的节点"," * @return { UE.dom.Range } 当前range对象"," * @example"," * ```html"," * <body>"," *"," * <div id=\"test\">"," * <!-- 选区开始 -->"," * <span></span>"," * <i></i>"," * <!-- 选区结束 -->"," * </div>"," *"," * <script>"," *"," *"," * var newNode = document.createElement('div');"," * newNode.id = 'ueditor';"," *"," * //output: <span></span><i></i>"," * console.log( range.cloneContents() );"," *"," * range.insertNode( newNode );"," *"," * //output: <div id=\"ueditor\"></div><span></span><i></i>"," * console.log( range.cloneContents() );"," *"," * </script>"," *"," * </body>"," * ```"," */"," insertNode:function (node) {"," var first = node, length = 1;"," if (node.nodeType == 11) {"," first = node.firstChild;"," length = node.childNodes.length;"," }"," this.trimBoundary(true);"," var start = this.startContainer,"," offset = this.startOffset;"," var nextNode = start.childNodes[ offset ];"," if (nextNode) {"," start.insertBefore(node, nextNode);"," } else {"," start.appendChild(node);"," }"," if (first.parentNode === this.endContainer) {"," this.endOffset = this.endOffset + length;"," }"," return this.setStartBefore(first);"," },",""," /**"," * 闭合选区到当前选区的开始位置, 并且定位光标到闭合后的位置"," * @method setCursor"," * @return { UE.dom.Range } 当前range对象"," * @see UE.dom.Range:collapse()"," */",""," /**"," * 闭合选区, 并且定位光标到闭合后的位置, 可以根据参数toEnd的值控制选区是向前闭合还是向后闭合"," * @method setCursor"," * @param { Boolean } toEnd 是否向后闭合, 如果为true, 则闭合选区时, 将向结束容器方向闭合,"," * 反之,则向开始容器方向闭合"," * @return { UE.dom.Range } 当前range对象"," * @see UE.dom.Range:collapse(Boolean)"," */"," setCursor:function (toEnd, noFillData) {"," return this.collapse(!toEnd).select(noFillData);"," },",""," /**"," * 创建当前range的一个书签,记录下当前range的位置,方便当dom树改变时,还能找回原来的选区位置"," * @method createBookmark"," * @param { Boolean } serialize 控制返回的标记位置是对当前位置的引用还是ID,如果该值为true,则"," * 返回标记位置的ID, 反之则返回标记位置的引用"," * @return { KeyValueMap } 返回一个书签记录键值对, 其包含的key有: start => 开始标记的ID或者引用,"," * end => 结束标记的ID或引用, id => 当前标记的类型, 如果为true,则表示"," * 返回的记录的类型为ID, 反之则为引用"," */"," createBookmark:function (serialize, same) {"," var endNode,"," startNode = this.document.createElement('span');"," startNode.style.cssText = 'display:none;line-height:0px;';"," startNode.appendChild(this.document.createTextNode('\\u200D'));"," startNode.id = '_baidu_bookmark_start_' + (same ? '' : guid++);",""," if (!this.collapsed) {"," endNode = startNode.cloneNode(true);"," endNode.id = '_baidu_bookmark_end_' + (same ? '' : guid++);"," }"," this.insertNode(startNode);"," if (endNode) {"," this.collapse().insertNode(endNode).setEndBefore(endNode);"," }"," this.setStartAfter(startNode);"," return {"," start:serialize ? startNode.id : startNode,"," end:endNode ? serialize ? endNode.id : endNode : null,"," id:serialize"," }"," },",""," /**"," * 调整当前range的边界到书签位置,并删除该书签对象所标记的位置内的节点"," * @method moveToBookmark"," * @param { BookMark } createBookmark所创建的标签对象"," * @return { UE.dom.Range } 当前range对象"," * @see UE.dom.Range:createBookmark(Boolean)"," */"," moveToBookmark:function (bookmark) {"," var start = bookmark.id ? this.document.getElementById(bookmark.start) : bookmark.start,"," end = bookmark.end && bookmark.id ? this.document.getElementById(bookmark.end) : bookmark.end;"," this.setStartBefore(start);"," domUtils.remove(start);"," if (end) {"," this.setEndBefore(end);"," domUtils.remove(end);"," } else {"," this.collapse(true);"," }"," return this;"," },",""," /**"," * 调整range的边界,使其\"放大\"到最近的父节点"," * @method enlarge"," * @return { UE.dom.Range } 当前range对象"," * @example"," * ```html"," *"," * <body>"," * <div>"," * <span>"," * <b>a<!-- 选区开始 -->b</b>"," * cdef"," * <!-- 选区结束 -->"," * </span>"," * </div>"," *"," * <script>"," *"," * range.enlarge();"," *"," * //output: <span><b>ab</b>cdef</span>"," * console.log( enlarge.cloneContents() );"," *"," * </script>"," * </body>"," * ```"," */",""," /**"," * 调整range的边界,使其\"放大\"到最近的父节点,根据参数 toBlock 的取值, 可以"," * 要求扩大之后的父节点是block节点"," * @method enlarge"," * @param { Boolean } toBlock 是否要求扩大之后的父节点必须是block节点"," * @return { UE.dom.Range } 当前range对象"," * @example"," * ```html"," *"," * <body>"," * <div>"," * <span>"," * <b>a<!-- 选区开始 -->b</b>"," * cdef"," * <!-- 选区结束 -->"," * </span>"," * </div>"," *"," * <script>"," *"," * range.enlarge( true );"," *"," * //output: <div><span><b>ab</b>cdef</span></div>"," * console.log( enlarge.cloneContents() );"," *"," * </script>"," * </body>"," * ```"," */"," enlarge:function (toBlock, stopFn) {"," var isBody = domUtils.isBody,"," pre, node, tmp = this.document.createTextNode('');"," if (toBlock) {"," node = this.startContainer;"," if (node.nodeType == 1) {"," if (node.childNodes[this.startOffset]) {"," pre = node = node.childNodes[this.startOffset]"," } else {"," node.appendChild(tmp);"," pre = node = tmp;"," }"," } else {"," pre = node;"," }"," while (1) {"," if (domUtils.isBlockElm(node)) {"," node = pre;"," while ((pre = node.previousSibling) && !domUtils.isBlockElm(pre)) {"," node = pre;"," }"," this.setStartBefore(node);"," break;"," }"," pre = node;"," node = node.parentNode;"," }"," node = this.endContainer;"," if (node.nodeType == 1) {"," if (pre = node.childNodes[this.endOffset]) {"," node.insertBefore(tmp, pre);"," } else {"," node.appendChild(tmp);"," }"," pre = node = tmp;"," } else {"," pre = node;"," }"," while (1) {"," if (domUtils.isBlockElm(node)) {"," node = pre;"," while ((pre = node.nextSibling) && !domUtils.isBlockElm(pre)) {"," node = pre;"," }"," this.setEndAfter(node);"," break;"," }"," pre = node;"," node = node.parentNode;"," }"," if (tmp.parentNode === this.endContainer) {"," this.endOffset--;"," }"," domUtils.remove(tmp);"," }",""," // 扩展边界到最大"," if (!this.collapsed) {"," while (this.startOffset == 0) {"," if (stopFn && stopFn(this.startContainer)) {"," break;"," }"," if (isBody(this.startContainer)) {"," break;"," }"," this.setStartBefore(this.startContainer);"," }"," while (this.endOffset == (this.endContainer.nodeType == 1 ? this.endContainer.childNodes.length : this.endContainer.nodeValue.length)) {"," if (stopFn && stopFn(this.endContainer)) {"," break;"," }"," if (isBody(this.endContainer)) {"," break;"," }"," this.setEndAfter(this.endContainer);"," }"," }"," return this;"," },",""," /**"," * 调整Range的边界,使其\"缩小\"到最合适的位置"," * @method adjustmentBoundary"," * @return { UE.dom.Range } 当前range对象"," * @see UE.dom.Range:shrinkBoundary()"," */"," adjustmentBoundary:function () {"," if (!this.collapsed) {"," while (!domUtils.isBody(this.startContainer) &&"," this.startOffset == this.startContainer[this.startContainer.nodeType == 3 ? 'nodeValue' : 'childNodes'].length &&"," this.startContainer[this.startContainer.nodeType == 3 ? 'nodeValue' : 'childNodes'].length"," ) {",""," this.setStartAfter(this.startContainer);"," }"," while (!domUtils.isBody(this.endContainer) && !this.endOffset &&"," this.endContainer[this.endContainer.nodeType == 3 ? 'nodeValue' : 'childNodes'].length"," ) {"," this.setEndBefore(this.endContainer);"," }"," }"," return this;"," },"," /*"," * 给range选区中的内容添加给定的标签,主要用于inline标签"," * @name applyInlineStyle"," * @grammar range.applyInlineStyle(tagName) => Range //tagName为需要添加的样式标签名"," * @grammar range.applyInlineStyle(tagName,attrs) => Range //attrs为属性json对象"," * @desc"," * <code type=\"html\"><p>xxxx[xxxx]x</p> ==> range.applyInlineStyle(\"strong\") ==> <p>xxxx[<strong>xxxx</strong>]x</p>"," * <p>xx[dd<strong>yyyy</strong>]x</p> ==> range.applyInlineStyle(\"strong\") ==> <p>xx[<strong>ddyyyy</strong>]x</p>"," * <p>xxxx[xxxx]x</p> ==> range.applyInlineStyle(\"strong\",{\"style\":\"font-size:12px\"}) ==> <p>xxxx[<strong style=\"font-size:12px\">xxxx</strong>]x</p></code>"," */"," applyInlineStyle:function (tagName, attrs, list) {"," if (this.collapsed)return this;"," this.trimBoundary().enlarge(false,"," function (node) {"," return node.nodeType == 1 && domUtils.isBlockElm(node)"," }).adjustmentBoundary();"," var bookmark = this.createBookmark(),"," end = bookmark.end,"," filterFn = function (node) {"," return node.nodeType == 1 ? node.tagName.toLowerCase() != 'br' : !domUtils.isWhitespace(node);"," },"," current = domUtils.getNextDomNode(bookmark.start, false, filterFn),"," node,"," pre,"," range = this.cloneRange();"," while (current && (domUtils.getPosition(current, end) & domUtils.POSITION_PRECEDING)) {"," if (current.nodeType == 3 || dtd[tagName][current.tagName]) {"," range.setStartBefore(current);"," node = current;"," while (node && (node.nodeType == 3 || dtd[tagName][node.tagName]) && node !== end) {"," pre = node;"," node = domUtils.getNextDomNode(node, node.nodeType == 1, null, function (parent) {"," return dtd[tagName][parent.tagName];"," });"," }"," var frag = range.setEndAfter(pre).extractContents(), elm;"," if (list && list.length > 0) {"," var level, top;"," top = level = list[0].cloneNode(false);"," for (var i = 1, ci; ci = list[i++];) {"," level.appendChild(ci.cloneNode(false));"," level = level.firstChild;"," }"," elm = level;"," } else {"," elm = range.document.createElement(tagName);"," }"," if (attrs) {"," domUtils.setAttributes(elm, attrs);"," }"," elm.appendChild(frag);"," range.insertNode(list ? top : elm);"," //处理下滑线在a上的情况"," var aNode;"," if (tagName == 'span' && attrs.style && /text\\-decoration/.test(attrs.style) && (aNode = domUtils.findParentByTagName(elm, 'a', true))) {"," domUtils.setAttributes(aNode, attrs);"," domUtils.remove(elm, true);"," elm = aNode;"," } else {"," domUtils.mergeSibling(elm);"," domUtils.clearEmptySibling(elm);"," }"," //去除子节点相同的"," domUtils.mergeChild(elm, attrs);"," current = domUtils.getNextDomNode(elm, false, filterFn);"," domUtils.mergeToParent(elm);"," if (node === end) {"," break;"," }"," } else {"," current = domUtils.getNextDomNode(current, true, filterFn);"," }"," }"," return this.moveToBookmark(bookmark);"," },"," /*"," * 对当前range选中的节点,去掉给定的标签节点,但标签中的内容保留,主要用于处理inline元素"," * @name removeInlineStyle"," * @grammar range.removeInlineStyle(tagNames) => Range //tagNames 为需要去掉的样式标签名,支持\"b\"或者[\"b\",\"i\",\"u\"]"," * @desc"," * <code type=\"html\">xx[x<span>xxx<em>yyy</em>zz]z</span> => range.removeInlineStyle([\"em\"]) => xx[x<span>xxxyyyzz]z</span></code>"," */"," removeInlineStyle:function (tagNames) {"," if (this.collapsed)return this;"," tagNames = utils.isArray(tagNames) ? tagNames : [tagNames];"," this.shrinkBoundary().adjustmentBoundary();"," var start = this.startContainer, end = this.endContainer;"," while (1) {"," if (start.nodeType == 1) {"," if (utils.indexOf(tagNames, start.tagName.toLowerCase()) > -1) {"," break;"," }"," if (start.tagName.toLowerCase() == 'body') {"," start = null;"," break;"," }"," }"," start = start.parentNode;"," }"," while (1) {"," if (end.nodeType == 1) {"," if (utils.indexOf(tagNames, end.tagName.toLowerCase()) > -1) {"," break;"," }"," if (end.tagName.toLowerCase() == 'body') {"," end = null;"," break;"," }"," }"," end = end.parentNode;"," }"," var bookmark = this.createBookmark(),"," frag,"," tmpRange;"," if (start) {"," tmpRange = this.cloneRange().setEndBefore(bookmark.start).setStartBefore(start);"," frag = tmpRange.extractContents();"," tmpRange.insertNode(frag);"," domUtils.clearEmptySibling(start, true);"," start.parentNode.insertBefore(bookmark.start, start);"," }"," if (end) {"," tmpRange = this.cloneRange().setStartAfter(bookmark.end).setEndAfter(end);"," frag = tmpRange.extractContents();"," tmpRange.insertNode(frag);"," domUtils.clearEmptySibling(end, false, true);"," end.parentNode.insertBefore(bookmark.end, end.nextSibling);"," }"," var current = domUtils.getNextDomNode(bookmark.start, false, function (node) {"," return node.nodeType == 1;"," }), next;"," while (current && current !== bookmark.end) {"," next = domUtils.getNextDomNode(current, true, function (node) {"," return node.nodeType == 1;"," });"," if (utils.indexOf(tagNames, current.tagName.toLowerCase()) > -1) {"," domUtils.remove(current, true);"," }"," current = next;"," }"," return this.moveToBookmark(bookmark);"," },",""," /**"," * 获取当前选区中的首个自闭合的节点"," * @method getClosedNode"," * @return { Node | NULL } 如果在当前选区中存在自闭合的节点, 则返回该节点, 否则返回NULL"," * @example"," * ```html"," * <body>"," * <div>"," * <!-- 选区开始 -->"," * <a></a>"," * <span><img></span>"," * <i></i>"," * <!-- 选区结束 -->"," * </div>"," *"," * <script>"," *"," * var node = range.getCloseNode();"," *"," * //output: IMG"," * console.log( node.tagName );"," *"," * </script>"," * </body>"," * ```"," */"," getClosedNode:function () {"," var node;"," if (!this.collapsed) {"," var range = this.cloneRange().adjustmentBoundary().shrinkBoundary();"," if (selectOneNode(range)) {"," var child = range.startContainer.childNodes[range.startOffset];"," if (child && child.nodeType == 1 && (dtd.$empty[child.tagName] || dtd.$nonChild[child.tagName])) {"," node = child;"," }"," }"," }"," return node;"," },",""," /**"," * 选中当前选区"," * @method select"," * @return { UE.dom.Range } 返回当前Range对象"," */"," select:browser.ie ? function (noFillData, textRange) {"," var nativeRange;"," if (!this.collapsed)"," this.shrinkBoundary();"," var node = this.getClosedNode();"," if (node && !textRange) {"," try {"," nativeRange = this.document.body.createControlRange();"," nativeRange.addElement(node);"," nativeRange.select();"," } catch (e) {}"," return this;"," }"," var bookmark = this.createBookmark(),"," start = bookmark.start,"," end;"," nativeRange = this.document.body.createTextRange();"," nativeRange.moveToElementText(start);"," nativeRange.moveStart('character', 1);"," if (!this.collapsed) {"," var nativeRangeEnd = this.document.body.createTextRange();"," end = bookmark.end;"," nativeRangeEnd.moveToElementText(end);"," nativeRange.setEndPoint('EndToEnd', nativeRangeEnd);"," } else {"," if (!noFillData && this.startContainer.nodeType != 3) {"," //使用<span>|x<span>固定住光标"," var tmpText = this.document.createTextNode(fillChar),"," tmp = this.document.createElement('span');"," tmp.appendChild(this.document.createTextNode(fillChar));"," start.parentNode.insertBefore(tmp, start);"," start.parentNode.insertBefore(tmpText, start);"," //当点b,i,u时,不能清除i上边的b"," removeFillData(this.document, tmpText);"," fillData = tmpText;"," mergeSibling(tmp, 'previousSibling');"," mergeSibling(start, 'nextSibling');"," nativeRange.moveStart('character', -1);"," nativeRange.collapse(true);"," }"," }"," this.moveToBookmark(bookmark);"," tmp && domUtils.remove(tmp);"," //IE在隐藏状态下不支持range操作,catch一下"," try {"," nativeRange.select();"," } catch (e) {"," }"," return this;"," } : function (notInsertFillData) {"," function checkOffset(rng){",""," function check(node,offset,dir){"," if(node.nodeType == 3 && node.nodeValue.length < offset){"," rng[dir + 'Offset'] = node.nodeValue.length"," }"," }"," check(rng.startContainer,rng.startOffset,'start');"," check(rng.endContainer,rng.endOffset,'end');"," }"," var win = domUtils.getWindow(this.document),"," sel = win.getSelection(),"," txtNode;"," //FF下关闭自动长高时滚动条在关闭dialog时会跳"," //ff下如果不body.focus将不能定位闭合光标到编辑器内"," browser.gecko ? this.document.body.focus() : win.focus();"," if (sel) {"," sel.removeAllRanges();"," // trace:870 chrome/safari后边是br对于闭合得range不能定位 所以去掉了判断"," // this.startContainer.nodeType != 3 &&! ((child = this.startContainer.childNodes[this.startOffset]) && child.nodeType == 1 && child.tagName == 'BR'"," if (this.collapsed && !notInsertFillData) {","// //opear如果没有节点接着,原生的不能够定位,不能在body的第一级插入空白节点","// if (notInsertFillData && browser.opera && !domUtils.isBody(this.startContainer) && this.startContainer.nodeType == 1) {","// var tmp = this.document.createTextNode('');","// this.insertNode(tmp).setStart(tmp, 0).collapse(true);","// }","//"," //处理光标落在文本节点的情况"," //处理以下的情况"," //<b>|xxxx</b>"," //<b>xxxx</b>|xxxx"," //xxxx<b>|</b>"," var start = this.startContainer,child = start;"," if(start.nodeType == 1){"," child = start.childNodes[this.startOffset];",""," }"," if( !(start.nodeType == 3 && this.startOffset) &&"," (child ?"," (!child.previousSibling || child.previousSibling.nodeType != 3)"," :"," (!start.lastChild || start.lastChild.nodeType != 3)"," )"," ){"," txtNode = this.document.createTextNode(fillChar);"," //跟着前边走"," this.insertNode(txtNode);"," removeFillData(this.document, txtNode);"," mergeSibling(txtNode, 'previousSibling');"," mergeSibling(txtNode, 'nextSibling');"," fillData = txtNode;"," this.setStart(txtNode, browser.webkit ? 1 : 0).collapse(true);"," }"," }"," var nativeRange = this.document.createRange();"," if(this.collapsed && browser.opera && this.startContainer.nodeType == 1){"," var child = this.startContainer.childNodes[this.startOffset];"," if(!child){"," //往前靠拢"," child = this.startContainer.lastChild;"," if( child && domUtils.isBr(child)){"," this.setStartBefore(child).collapse(true);"," }"," }else{"," //向后靠拢"," while(child && domUtils.isBlockElm(child)){"," if(child.nodeType == 1 && child.childNodes[0]){"," child = child.childNodes[0]"," }else{"," break;"," }"," }"," child && this.setStartBefore(child).collapse(true)"," }",""," }"," //是createAddress最后一位算的不准,现在这里进行微调"," checkOffset(this);"," nativeRange.setStart(this.startContainer, this.startOffset);"," nativeRange.setEnd(this.endContainer, this.endOffset);"," sel.addRange(nativeRange);"," }"," return this;"," },",""," /**"," * 滚动到当前range开始的位置"," * @method scrollToView"," * @param { Window } win 当前range对象所属的window对象"," * @return { UE.dom.Range } 当前Range对象"," */",""," /**"," * 滚动到距离当前range开始位置 offset 的位置处"," * @method scrollToView"," * @param { Window } win 当前range对象所属的window对象"," * @param { Number } offset 距离range开始位置处的偏移量, 如果为正数, 则向下偏移, 反之, 则向上偏移"," * @return { UE.dom.Range } 当前Range对象"," */"," scrollToView:function (win, offset) {"," win = win ? window : domUtils.getWindow(this.document);"," var me = this,"," span = me.document.createElement('span');"," //trace:717"," span.innerHTML = '&nbsp;';"," me.cloneRange().insertNode(span);"," domUtils.scrollToView(span, win, offset);"," domUtils.remove(span);"," return me;"," },"," /**"," * 判断当前选区内容是否占位符"," * @method inFillChar"," * @return { Boolean } 如果是占位符返回true,否则返回false"," */"," inFillChar : function(){"," var start = this.startContainer;"," if(this.collapsed && start.nodeType == 3"," && start.nodeValue.replace(new RegExp('^' + domUtils.fillChar),'').length + 1 == start.nodeValue.length"," ){"," return true;"," }"," return false;"," },",""," /**"," * 保存"," * @method createAddress"," * @return { Boolean } 返回开始和结束的位置"," * @example"," * ```html"," * <body>"," * <p>"," * aaaa"," * <em>"," * <!-- 选区开始 -->"," * bbbb"," * <!-- 选区结束 -->"," * </em>"," * </p>"," *"," * <script>"," * //output: {startAddress:[0,1,0,0],endAddress:[0,1,0,4]}"," * console.log( range.createAddress() );"," * </script>"," * </body>"," * ```"," */"," createAddress : function(ignoreEnd,ignoreTxt){"," var addr = {},me = this;",""," function getAddress(isStart){"," var node = isStart ? me.startContainer : me.endContainer;"," var parents = domUtils.findParents(node,true,function(node){return !domUtils.isBody(node)}),"," addrs = [];"," for(var i = 0,ci;ci = parents[i++];){"," addrs.push(domUtils.getNodeIndex(ci,ignoreTxt));"," }"," var firstIndex = 0;",""," if(ignoreTxt){"," if(node.nodeType == 3){"," var tmpNode = node.previousSibling;"," while(tmpNode && tmpNode.nodeType == 3){"," firstIndex += tmpNode.nodeValue.replace(fillCharReg,'').length;"," tmpNode = tmpNode.previousSibling;"," }"," firstIndex += (isStart ? me.startOffset : me.endOffset)// - (fillCharReg.test(node.nodeValue) ? 1 : 0 )"," }else{"," node = node.childNodes[ isStart ? me.startOffset : me.endOffset];"," if(node){"," firstIndex = domUtils.getNodeIndex(node,ignoreTxt);"," }else{"," node = isStart ? me.startContainer : me.endContainer;"," var first = node.firstChild;"," while(first){"," if(domUtils.isFillChar(first)){"," first = first.nextSibling;"," continue;"," }"," firstIndex++;"," if(first.nodeType == 3){"," while( first && first.nodeType == 3){"," first = first.nextSibling;"," }"," }else{"," first = first.nextSibling;"," }"," }"," }"," }",""," }else{"," firstIndex = isStart ? domUtils.isFillChar(node) ? 0 : me.startOffset : me.endOffset"," }"," if(firstIndex < 0){"," firstIndex = 0;"," }"," addrs.push(firstIndex);"," return addrs;"," }"," addr.startAddress = getAddress(true);"," if(!ignoreEnd){"," addr.endAddress = me.collapsed ? [].concat(addr.startAddress) : getAddress();"," }"," return addr;"," },"," /**"," * 保存"," * @method createAddress"," * @return { Boolean } 返回开始和结束的位置"," * @example"," * ```html"," * <body>"," * <p>"," * aaaa"," * <em>"," * <!-- 选区开始 -->"," * bbbb"," * <!-- 选区结束 -->"," * </em>"," * </p>"," *"," * <script>"," * var range = editor.selection.getRange();"," * range.moveToAddress({startAddress:[0,1,0,0],endAddress:[0,1,0,4]});"," * range.select();"," * //output: 'bbbb'"," * console.log(editor.selection.getText());"," * </script>"," * </body>"," * ```"," */"," moveToAddress : function(addr,ignoreEnd){"," var me = this;"," function getNode(address,isStart){"," var tmpNode = me.document.body,"," parentNode,offset;"," for(var i= 0,ci,l=address.length;i<l;i++){"," ci = address[i];"," parentNode = tmpNode;"," tmpNode = tmpNode.childNodes[ci];"," if(!tmpNode){"," offset = ci;"," break;"," }"," }"," if(isStart){"," if(tmpNode){"," me.setStartBefore(tmpNode)"," }else{"," me.setStart(parentNode,offset)"," }"," }else{"," if(tmpNode){"," me.setEndBefore(tmpNode)"," }else{"," me.setEnd(parentNode,offset)"," }"," }"," }"," getNode(addr.startAddress,true);"," !ignoreEnd && addr.endAddress && getNode(addr.endAddress);"," return me;"," },",""," /**"," * 判断给定的Range对象是否和当前Range对象表示的是同一个选区"," * @method equals"," * @param { UE.dom.Range } 需要判断的Range对象"," * @return { Boolean } 如果给定的Range对象与当前Range对象表示的是同一个选区, 则返回true, 否则返回false"," equals : function(rng){"," for(var p in this){"," if(this.hasOwnProperty(p)){"," if(this[p] !== rng[p])"," return false"," }"," }"," return true;",""," },",""," /**"," * 遍历range内的节点。每当遍历一个节点时, 都会执行参数项 doFn 指定的函数, 该函数的接受当前遍历的节点"," * 作为其参数。"," * @method traversal"," * @param { Function } doFn 对每个遍历的节点要执行的方法, 该方法接受当前遍历的节点作为其参数"," * @return { UE.dom.Range } 当前range对象"," * @example"," * ```html"," *"," * <body>"," *"," * <!-- 选区开始 -->"," * <span></span>"," * <a></a>"," * <!-- 选区结束 -->"," * </body>"," *"," * <script>"," *"," * //output: <span></span><a></a>"," * console.log( range.cloneContents() );"," *"," * range.traversal( function ( node ) {"," *"," * if ( node.nodeType === 1 ) {"," * node.className = \"test\";"," * }"," *"," * } );"," *"," * //output: <span class=\"test\"></span><a class=\"test\"></a>"," * console.log( range.cloneContents() );"," *"," * </script>"," * ```"," */",""," /**"," * 遍历range内的节点。"," * 每当遍历一个节点时, 都会执行参数项 doFn 指定的函数, 该函数的接受当前遍历的节点"," * 作为其参数。"," * 可以通过参数项 filterFn 来指定一个过滤器, 只有符合该过滤器过滤规则的节点才会触"," * 发doFn函数的执行"," * @method traversal"," * @param { Function } doFn 对每个遍历的节点要执行的方法, 该方法接受当前遍历的节点作为其参数"," * @param { Function } filterFn 过滤器, 该函数接受当前遍历的节点作为参数, 如果该节点满足过滤"," * 规则, 请返回true, 该节点会触发doFn, 否则, 请返回false, 则该节点不"," * 会触发doFn。"," * @return { UE.dom.Range } 当前range对象"," * @see UE.dom.Range:traversal(Function)"," * @example"," * ```html"," *"," * <body>"," *"," * <!-- 选区开始 -->"," * <span></span>"," * <a></a>"," * <!-- 选区结束 -->"," * </body>"," *"," * <script>"," *"," * //output: <span></span><a></a>"," * console.log( range.cloneContents() );"," *"," * range.traversal( function ( node ) {"," *"," * node.className = \"test\";"," *"," * }, function ( node ) {"," * return node.nodeType === 1;"," * } );"," *"," * //output: <span class=\"test\"></span><a class=\"test\"></a>"," * console.log( range.cloneContents() );"," *"," * </script>"," * ```"," */"," traversal:function(doFn,filterFn){"," if (this.collapsed)"," return this;"," var bookmark = this.createBookmark(),"," end = bookmark.end,"," current = domUtils.getNextDomNode(bookmark.start, false, filterFn);"," while (current && current !== end && (domUtils.getPosition(current, end) & domUtils.POSITION_PRECEDING)) {"," var tmpNode = domUtils.getNextDomNode(current,false,filterFn);"," doFn(current);"," current = tmpNode;"," }"," return this.moveToBookmark(bookmark);"," }"," };","})();"]; +_$jscoverage['core/Range.js'][22]++; +(function () { + _$jscoverage['core/Range.js'][23]++; + var guid = 0, fillChar = domUtils.fillChar, fillData; + _$jscoverage['core/Range.js'][31]++; + function updateCollapse(range) { + _$jscoverage['core/Range.js'][32]++; + range.collapsed = (range.startContainer && range.endContainer && (range.startContainer === range.endContainer) && (range.startOffset == range.endOffset)); +} + _$jscoverage['core/Range.js'][38]++; + function selectOneNode(rng) { + _$jscoverage['core/Range.js'][39]++; + return ((! rng.collapsed) && (rng.startContainer.nodeType == 1) && (rng.startContainer === rng.endContainer) && ((rng.endOffset - rng.startOffset) == 1)); +} + _$jscoverage['core/Range.js'][41]++; + function setEndPoint(toStart, node, offset, range) { + _$jscoverage['core/Range.js'][43]++; + if (((node.nodeType == 1) && (dtd.$empty[node.tagName] || dtd.$nonChild[node.tagName]))) { + _$jscoverage['core/Range.js'][44]++; + offset = (domUtils.getNodeIndex(node) + (toStart? 0: 1)); + _$jscoverage['core/Range.js'][45]++; + node = node.parentNode; + } + _$jscoverage['core/Range.js'][47]++; + if (toStart) { + _$jscoverage['core/Range.js'][48]++; + range.startContainer = node; + _$jscoverage['core/Range.js'][49]++; + range.startOffset = offset; + _$jscoverage['core/Range.js'][50]++; + if ((! range.endContainer)) { + _$jscoverage['core/Range.js'][51]++; + range.collapse(true); + } + } + else { + _$jscoverage['core/Range.js'][54]++; + range.endContainer = node; + _$jscoverage['core/Range.js'][55]++; + range.endOffset = offset; + _$jscoverage['core/Range.js'][56]++; + if ((! range.startContainer)) { + _$jscoverage['core/Range.js'][57]++; + range.collapse(false); + } + } + _$jscoverage['core/Range.js'][60]++; + updateCollapse(range); + _$jscoverage['core/Range.js'][61]++; + return range; +} + _$jscoverage['core/Range.js'][64]++; + function execContentsAction(range, action) { + _$jscoverage['core/Range.js'][67]++; + var start = range.startContainer, end = range.endContainer, startOffset = range.startOffset, endOffset = range.endOffset, doc = range.document, frag = doc.createDocumentFragment(), tmpStart, tmpEnd; + _$jscoverage['core/Range.js'][74]++; + if ((start.nodeType == 1)) { + _$jscoverage['core/Range.js'][75]++; + start = (start.childNodes[startOffset] || (tmpStart = start.appendChild(doc.createTextNode("")))); + } + _$jscoverage['core/Range.js'][77]++; + if ((end.nodeType == 1)) { + _$jscoverage['core/Range.js'][78]++; + end = (end.childNodes[endOffset] || (tmpEnd = end.appendChild(doc.createTextNode("")))); + } + _$jscoverage['core/Range.js'][80]++; + if (((start === end) && (start.nodeType == 3))) { + _$jscoverage['core/Range.js'][81]++; + frag.appendChild(doc.createTextNode(start.substringData(startOffset, (endOffset - startOffset)))); + _$jscoverage['core/Range.js'][83]++; + if (action) { + _$jscoverage['core/Range.js'][84]++; + start.deleteData(startOffset, (endOffset - startOffset)); + _$jscoverage['core/Range.js'][85]++; + range.collapse(true); + } + _$jscoverage['core/Range.js'][87]++; + return frag; + } + _$jscoverage['core/Range.js'][89]++; + var current, currentLevel, clone = frag, startParents = domUtils.findParents(start, true), endParents = domUtils.findParents(end, true); + _$jscoverage['core/Range.js'][91]++; + for (var i = 0; (startParents[i] == endParents[i]);) { + _$jscoverage['core/Range.js'][92]++; + (i++); +} + _$jscoverage['core/Range.js'][94]++; + for (var j = i, si; (si = startParents[j]); (j++)) { + _$jscoverage['core/Range.js'][95]++; + current = si.nextSibling; + _$jscoverage['core/Range.js'][96]++; + if ((si == start)) { + _$jscoverage['core/Range.js'][97]++; + if ((! tmpStart)) { + _$jscoverage['core/Range.js'][98]++; + if ((range.startContainer.nodeType == 3)) { + _$jscoverage['core/Range.js'][99]++; + clone.appendChild(doc.createTextNode(start.nodeValue.slice(startOffset))); + _$jscoverage['core/Range.js'][101]++; + if (action) { + _$jscoverage['core/Range.js'][102]++; + start.deleteData(startOffset, (start.nodeValue.length - startOffset)); + } + } + else { + _$jscoverage['core/Range.js'][105]++; + clone.appendChild(((! action)? start.cloneNode(true): start)); + } + } + } + else { + _$jscoverage['core/Range.js'][109]++; + currentLevel = si.cloneNode(false); + _$jscoverage['core/Range.js'][110]++; + clone.appendChild(currentLevel); + } + _$jscoverage['core/Range.js'][112]++; + while (current) { + _$jscoverage['core/Range.js'][113]++; + if (((current === end) || (current === endParents[j]))) { + _$jscoverage['core/Range.js'][114]++; + break; + } + _$jscoverage['core/Range.js'][116]++; + si = current.nextSibling; + _$jscoverage['core/Range.js'][117]++; + clone.appendChild(((! action)? current.cloneNode(true): current)); + _$jscoverage['core/Range.js'][118]++; + current = si; +} + _$jscoverage['core/Range.js'][120]++; + clone = currentLevel; +} + _$jscoverage['core/Range.js'][122]++; + clone = frag; + _$jscoverage['core/Range.js'][123]++; + if ((! startParents[i])) { + _$jscoverage['core/Range.js'][124]++; + clone.appendChild(startParents[(i - 1)].cloneNode(false)); + _$jscoverage['core/Range.js'][125]++; + clone = clone.firstChild; + } + _$jscoverage['core/Range.js'][127]++; + for (var j = i, ei; (ei = endParents[j]); (j++)) { + _$jscoverage['core/Range.js'][128]++; + current = ei.previousSibling; + _$jscoverage['core/Range.js'][129]++; + if ((ei == end)) { + _$jscoverage['core/Range.js'][130]++; + if (((! tmpEnd) && (range.endContainer.nodeType == 3))) { + _$jscoverage['core/Range.js'][131]++; + clone.appendChild(doc.createTextNode(end.substringData(0, endOffset))); + _$jscoverage['core/Range.js'][133]++; + if (action) { + _$jscoverage['core/Range.js'][134]++; + end.deleteData(0, endOffset); + } + } + } + else { + _$jscoverage['core/Range.js'][138]++; + currentLevel = ei.cloneNode(false); + _$jscoverage['core/Range.js'][139]++; + clone.appendChild(currentLevel); + } + _$jscoverage['core/Range.js'][142]++; + if (((j != i) || (! startParents[i]))) { + _$jscoverage['core/Range.js'][143]++; + while (current) { + _$jscoverage['core/Range.js'][144]++; + if ((current === start)) { + _$jscoverage['core/Range.js'][145]++; + break; + } + _$jscoverage['core/Range.js'][147]++; + ei = current.previousSibling; + _$jscoverage['core/Range.js'][148]++; + clone.insertBefore(((! action)? current.cloneNode(true): current), clone.firstChild); + _$jscoverage['core/Range.js'][149]++; + current = ei; +} + } + _$jscoverage['core/Range.js'][152]++; + clone = currentLevel; +} + _$jscoverage['core/Range.js'][154]++; + if (action) { + _$jscoverage['core/Range.js'][155]++; + range.setStartBefore(((! endParents[i])? endParents[(i - 1)]: ((! startParents[i])? startParents[(i - 1)]: endParents[i]))).collapse(true); + } + _$jscoverage['core/Range.js'][157]++; + (tmpStart && domUtils.remove(tmpStart)); + _$jscoverage['core/Range.js'][158]++; + (tmpEnd && domUtils.remove(tmpEnd)); + _$jscoverage['core/Range.js'][159]++; + return frag; +} + _$jscoverage['core/Range.js'][193]++; + var Range = (dom.Range = (function (document) { + _$jscoverage['core/Range.js'][194]++; + var me = this; + _$jscoverage['core/Range.js'][195]++; + me.startContainer = (me.startOffset = (me.endContainer = (me.endOffset = null))); + _$jscoverage['core/Range.js'][199]++; + me.document = document; + _$jscoverage['core/Range.js'][200]++; + me.collapsed = true; +})); + _$jscoverage['core/Range.js'][208]++; + function removeFillData(doc, excludeNode) { + _$jscoverage['core/Range.js'][209]++; + try { + _$jscoverage['core/Range.js'][210]++; + if ((fillData && domUtils.inDoc(fillData, doc))) { + _$jscoverage['core/Range.js'][211]++; + if ((! fillData.nodeValue.replace(fillCharReg, "").length)) { + _$jscoverage['core/Range.js'][212]++; + var tmpNode = fillData.parentNode; + _$jscoverage['core/Range.js'][213]++; + domUtils.remove(fillData); + _$jscoverage['core/Range.js'][214]++; + while ((tmpNode && domUtils.isEmptyInlineElement(tmpNode) && (browser.safari? (! (domUtils.getPosition(tmpNode, excludeNode) & domUtils.POSITION_CONTAINS)): (! tmpNode.contains(excludeNode))))) { + _$jscoverage['core/Range.js'][218]++; + fillData = tmpNode.parentNode; + _$jscoverage['core/Range.js'][219]++; + domUtils.remove(tmpNode); + _$jscoverage['core/Range.js'][220]++; + tmpNode = fillData; +} + } + else { + _$jscoverage['core/Range.js'][223]++; + fillData.nodeValue = fillData.nodeValue.replace(fillCharReg, ""); + } + } + } + catch (e) { + } +} + _$jscoverage['core/Range.js'][235]++; + function mergeSibling(node, dir) { + _$jscoverage['core/Range.js'][236]++; + var tmpNode; + _$jscoverage['core/Range.js'][237]++; + node = node[dir]; + _$jscoverage['core/Range.js'][238]++; + while ((node && domUtils.isFillChar(node))) { + _$jscoverage['core/Range.js'][239]++; + tmpNode = node[dir]; + _$jscoverage['core/Range.js'][240]++; + domUtils.remove(node); + _$jscoverage['core/Range.js'][241]++; + node = tmpNode; +} +} + _$jscoverage['core/Range.js'][245]++; + Range.prototype = {cloneContents: (function () { + _$jscoverage['core/Range.js'][263]++; + return (this.collapsed? null: execContentsAction(this, 0)); +}), deleteContents: (function () { + _$jscoverage['core/Range.js'][294]++; + var txt; + _$jscoverage['core/Range.js'][295]++; + if ((! this.collapsed)) { + _$jscoverage['core/Range.js'][296]++; + execContentsAction(this, 1); + } + _$jscoverage['core/Range.js'][298]++; + if (browser.webkit) { + _$jscoverage['core/Range.js'][299]++; + txt = this.startContainer; + _$jscoverage['core/Range.js'][300]++; + if (((txt.nodeType == 3) && (! txt.nodeValue.length))) { + _$jscoverage['core/Range.js'][301]++; + this.setStartBefore(txt).collapse(true); + _$jscoverage['core/Range.js'][302]++; + domUtils.remove(txt); + } + } + _$jscoverage['core/Range.js'][305]++; + return this; +}), extractContents: (function () { + _$jscoverage['core/Range.js'][338]++; + return (this.collapsed? null: execContentsAction(this, 2)); +}), setStart: (function (node, offset) { + _$jscoverage['core/Range.js'][373]++; + return setEndPoint(true, node, offset, this); +}), setEnd: (function (node, offset) { + _$jscoverage['core/Range.js'][407]++; + return setEndPoint(false, node, offset, this); +}), setStartAfter: (function (node) { + _$jscoverage['core/Range.js'][440]++; + return this.setStart(node.parentNode, (domUtils.getNodeIndex(node) + 1)); +}), setStartBefore: (function (node) { + _$jscoverage['core/Range.js'][473]++; + return this.setStart(node.parentNode, domUtils.getNodeIndex(node)); +}), setEndAfter: (function (node) { + _$jscoverage['core/Range.js'][504]++; + return this.setEnd(node.parentNode, (domUtils.getNodeIndex(node) + 1)); +}), setEndBefore: (function (node) { + _$jscoverage['core/Range.js'][535]++; + return this.setEnd(node.parentNode, domUtils.getNodeIndex(node)); +}), setStartAtFirst: (function (node) { + _$jscoverage['core/Range.js'][568]++; + return this.setStart(node, 0); +}), setStartAtLast: (function (node) { + _$jscoverage['core/Range.js'][602]++; + return this.setStart(node, ((node.nodeType == 3)? node.nodeValue.length: node.childNodes.length)); +}), setEndAtFirst: (function (node) { + _$jscoverage['core/Range.js'][633]++; + return this.setEnd(node, 0); +}), setEndAtLast: (function (node) { + _$jscoverage['core/Range.js'][665]++; + return this.setEnd(node, ((node.nodeType == 3)? node.nodeValue.length: node.childNodes.length)); +}), selectNode: (function (node) { + _$jscoverage['core/Range.js'][691]++; + return this.setStartBefore(node).setEndAfter(node); +}), selectNodeContents: (function (node) { + _$jscoverage['core/Range.js'][720]++; + return this.setStart(node, 0).setEndAtLast(node); +}), cloneRange: (function () { + _$jscoverage['core/Range.js'][750]++; + var me = this; + _$jscoverage['core/Range.js'][751]++; + return new Range(me.document).setStart(me.startContainer, me.startOffset).setEnd(me.endContainer, me.endOffset); +}), collapse: (function (toStart) { + _$jscoverage['core/Range.js'][824]++; + var me = this; + _$jscoverage['core/Range.js'][825]++; + if (toStart) { + _$jscoverage['core/Range.js'][826]++; + me.endContainer = me.startContainer; + _$jscoverage['core/Range.js'][827]++; + me.endOffset = me.startOffset; + } + else { + _$jscoverage['core/Range.js'][829]++; + me.startContainer = me.endContainer; + _$jscoverage['core/Range.js'][830]++; + me.startOffset = me.endOffset; + } + _$jscoverage['core/Range.js'][832]++; + me.collapsed = true; + _$jscoverage['core/Range.js'][833]++; + return me; +}), shrinkBoundary: (function (ignoreEnd) { + _$jscoverage['core/Range.js'][880]++; + var me = this, child, collapsed = me.collapsed; + _$jscoverage['core/Range.js'][882]++; + function check(node) { + _$jscoverage['core/Range.js'][883]++; + return ((node.nodeType == 1) && (! domUtils.isBookmarkNode(node)) && (! dtd.$empty[node.tagName]) && (! dtd.$nonChild[node.tagName])); +} + _$jscoverage['core/Range.js'][885]++; + while (((me.startContainer.nodeType == 1) && (child = me.startContainer.childNodes[me.startOffset]) && check(child))) { + _$jscoverage['core/Range.js'][888]++; + me.setStart(child, 0); +} + _$jscoverage['core/Range.js'][890]++; + if (collapsed) { + _$jscoverage['core/Range.js'][891]++; + return me.collapse(true); + } + _$jscoverage['core/Range.js'][893]++; + if ((! ignoreEnd)) { + _$jscoverage['core/Range.js'][894]++; + while (((me.endContainer.nodeType == 1) && (me.endOffset > 0) && (child = me.endContainer.childNodes[(me.endOffset - 1)]) && check(child))) { + _$jscoverage['core/Range.js'][898]++; + me.setEnd(child, child.childNodes.length); +} + } + _$jscoverage['core/Range.js'][901]++; + return me; +}), getCommonAncestor: (function (includeSelf, ignoreTextNode) { + _$jscoverage['core/Range.js'][1043]++; + var me = this, start = me.startContainer, end = me.endContainer; + _$jscoverage['core/Range.js'][1046]++; + if ((start === end)) { + _$jscoverage['core/Range.js'][1047]++; + if ((includeSelf && selectOneNode(this))) { + _$jscoverage['core/Range.js'][1048]++; + start = start.childNodes[me.startOffset]; + _$jscoverage['core/Range.js'][1049]++; + if ((start.nodeType == 1)) { + _$jscoverage['core/Range.js'][1050]++; + return start; + } + } + _$jscoverage['core/Range.js'][1053]++; + return ((ignoreTextNode && (start.nodeType == 3))? start.parentNode: start); + } + _$jscoverage['core/Range.js'][1055]++; + return domUtils.getCommonAncestor(start, end); +}), trimBoundary: (function (ignoreEnd) { + _$jscoverage['core/Range.js'][1132]++; + this.txtToElmBoundary(); + _$jscoverage['core/Range.js'][1133]++; + var start = this.startContainer, offset = this.startOffset, collapsed = this.collapsed, end = this.endContainer; + _$jscoverage['core/Range.js'][1137]++; + if ((start.nodeType == 3)) { + _$jscoverage['core/Range.js'][1138]++; + if ((offset == 0)) { + _$jscoverage['core/Range.js'][1139]++; + this.setStartBefore(start); + } + else { + _$jscoverage['core/Range.js'][1141]++; + if ((offset >= start.nodeValue.length)) { + _$jscoverage['core/Range.js'][1142]++; + this.setStartAfter(start); + } + else { + _$jscoverage['core/Range.js'][1144]++; + var textNode = domUtils.split(start, offset); + _$jscoverage['core/Range.js'][1146]++; + if ((start === end)) { + _$jscoverage['core/Range.js'][1147]++; + this.setEnd(textNode, (this.endOffset - offset)); + } + else { + _$jscoverage['core/Range.js'][1148]++; + if ((start.parentNode === end)) { + _$jscoverage['core/Range.js'][1149]++; + this.endOffset += 1; + } + } + _$jscoverage['core/Range.js'][1151]++; + this.setStartBefore(textNode); + } + } + _$jscoverage['core/Range.js'][1154]++; + if (collapsed) { + _$jscoverage['core/Range.js'][1155]++; + return this.collapse(true); + } + } + _$jscoverage['core/Range.js'][1158]++; + if ((! ignoreEnd)) { + _$jscoverage['core/Range.js'][1159]++; + offset = this.endOffset; + _$jscoverage['core/Range.js'][1160]++; + end = this.endContainer; + _$jscoverage['core/Range.js'][1161]++; + if ((end.nodeType == 3)) { + _$jscoverage['core/Range.js'][1162]++; + if ((offset == 0)) { + _$jscoverage['core/Range.js'][1163]++; + this.setEndBefore(end); + } + else { + _$jscoverage['core/Range.js'][1165]++; + ((offset < end.nodeValue.length) && domUtils.split(end, offset)); + _$jscoverage['core/Range.js'][1166]++; + this.setEndAfter(end); + } + } + } + _$jscoverage['core/Range.js'][1170]++; + return this; +}), txtToElmBoundary: (function (ignoreCollapsed) { + _$jscoverage['core/Range.js'][1302]++; + function adjust(r, c) { + _$jscoverage['core/Range.js'][1303]++; + var container = r[(c + "Container")], offset = r[(c + "Offset")]; + _$jscoverage['core/Range.js'][1305]++; + if ((container.nodeType == 3)) { + _$jscoverage['core/Range.js'][1306]++; + if ((! offset)) { + _$jscoverage['core/Range.js'][1307]++; + (r[("set" + c.replace(/(\w)/, (function (a) { + _$jscoverage['core/Range.js'][1308]++; + return a.toUpperCase(); +})) + "Before")])(container); + } + else { + _$jscoverage['core/Range.js'][1310]++; + if ((offset >= container.nodeValue.length)) { + _$jscoverage['core/Range.js'][1311]++; + (r[("set" + c.replace(/(\w)/, (function (a) { + _$jscoverage['core/Range.js'][1312]++; + return a.toUpperCase(); +})) + "After")])(container); + } + } + } +} + _$jscoverage['core/Range.js'][1318]++; + if ((ignoreCollapsed || (! this.collapsed))) { + _$jscoverage['core/Range.js'][1319]++; + adjust(this, "start"); + _$jscoverage['core/Range.js'][1320]++; + adjust(this, "end"); + } + _$jscoverage['core/Range.js'][1322]++; + return this; +}), insertNode: (function (node) { + _$jscoverage['core/Range.js'][1361]++; + var first = node, length = 1; + _$jscoverage['core/Range.js'][1362]++; + if ((node.nodeType == 11)) { + _$jscoverage['core/Range.js'][1363]++; + first = node.firstChild; + _$jscoverage['core/Range.js'][1364]++; + length = node.childNodes.length; + } + _$jscoverage['core/Range.js'][1366]++; + this.trimBoundary(true); + _$jscoverage['core/Range.js'][1367]++; + var start = this.startContainer, offset = this.startOffset; + _$jscoverage['core/Range.js'][1369]++; + var nextNode = start.childNodes[offset]; + _$jscoverage['core/Range.js'][1370]++; + if (nextNode) { + _$jscoverage['core/Range.js'][1371]++; + start.insertBefore(node, nextNode); + } + else { + _$jscoverage['core/Range.js'][1373]++; + start.appendChild(node); + } + _$jscoverage['core/Range.js'][1375]++; + if ((first.parentNode === this.endContainer)) { + _$jscoverage['core/Range.js'][1376]++; + this.endOffset = (this.endOffset + length); + } + _$jscoverage['core/Range.js'][1378]++; + return this.setStartBefore(first); +}), setCursor: (function (toEnd, noFillData) { + _$jscoverage['core/Range.js'][1397]++; + return this.collapse((! toEnd)).select(noFillData); +}), createBookmark: (function (serialize, same) { + _$jscoverage['core/Range.js'][1410]++; + var endNode, startNode = this.document.createElement("span"); + _$jscoverage['core/Range.js'][1412]++; + startNode.style.cssText = "display:none;line-height:0px;"; + _$jscoverage['core/Range.js'][1413]++; + startNode.appendChild(this.document.createTextNode("\u200d")); + _$jscoverage['core/Range.js'][1414]++; + startNode.id = ("_baidu_bookmark_start_" + (same? "": (guid++))); + _$jscoverage['core/Range.js'][1416]++; + if ((! this.collapsed)) { + _$jscoverage['core/Range.js'][1417]++; + endNode = startNode.cloneNode(true); + _$jscoverage['core/Range.js'][1418]++; + endNode.id = ("_baidu_bookmark_end_" + (same? "": (guid++))); + } + _$jscoverage['core/Range.js'][1420]++; + this.insertNode(startNode); + _$jscoverage['core/Range.js'][1421]++; + if (endNode) { + _$jscoverage['core/Range.js'][1422]++; + this.collapse().insertNode(endNode).setEndBefore(endNode); + } + _$jscoverage['core/Range.js'][1424]++; + this.setStartAfter(startNode); + _$jscoverage['core/Range.js'][1425]++; + return ({start: (serialize? startNode.id: startNode), end: (endNode? (serialize? endNode.id: endNode): null), id: serialize}); +}), moveToBookmark: (function (bookmark) { + _$jscoverage['core/Range.js'][1440]++; + var start = (bookmark.id? this.document.getElementById(bookmark.start): bookmark.start), end = ((bookmark.end && bookmark.id)? this.document.getElementById(bookmark.end): bookmark.end); + _$jscoverage['core/Range.js'][1442]++; + this.setStartBefore(start); + _$jscoverage['core/Range.js'][1443]++; + domUtils.remove(start); + _$jscoverage['core/Range.js'][1444]++; + if (end) { + _$jscoverage['core/Range.js'][1445]++; + this.setEndBefore(end); + _$jscoverage['core/Range.js'][1446]++; + domUtils.remove(end); + } + else { + _$jscoverage['core/Range.js'][1448]++; + this.collapse(true); + } + _$jscoverage['core/Range.js'][1450]++; + return this; +}), enlarge: (function (toBlock, stopFn) { + _$jscoverage['core/Range.js'][1511]++; + var isBody = domUtils.isBody, pre, node, tmp = this.document.createTextNode(""); + _$jscoverage['core/Range.js'][1513]++; + if (toBlock) { + _$jscoverage['core/Range.js'][1514]++; + node = this.startContainer; + _$jscoverage['core/Range.js'][1515]++; + if ((node.nodeType == 1)) { + _$jscoverage['core/Range.js'][1516]++; + if (node.childNodes[this.startOffset]) { + _$jscoverage['core/Range.js'][1517]++; + pre = (node = node.childNodes[this.startOffset]); + } + else { + _$jscoverage['core/Range.js'][1519]++; + node.appendChild(tmp); + _$jscoverage['core/Range.js'][1520]++; + pre = (node = tmp); + } + } + else { + _$jscoverage['core/Range.js'][1523]++; + pre = node; + } + _$jscoverage['core/Range.js'][1525]++; + while (true) { + _$jscoverage['core/Range.js'][1526]++; + if (domUtils.isBlockElm(node)) { + _$jscoverage['core/Range.js'][1527]++; + node = pre; + _$jscoverage['core/Range.js'][1528]++; + while (((pre = node.previousSibling) && (! domUtils.isBlockElm(pre)))) { + _$jscoverage['core/Range.js'][1529]++; + node = pre; +} + _$jscoverage['core/Range.js'][1531]++; + this.setStartBefore(node); + _$jscoverage['core/Range.js'][1532]++; + break; + } + _$jscoverage['core/Range.js'][1534]++; + pre = node; + _$jscoverage['core/Range.js'][1535]++; + node = node.parentNode; +} + _$jscoverage['core/Range.js'][1537]++; + node = this.endContainer; + _$jscoverage['core/Range.js'][1538]++; + if ((node.nodeType == 1)) { + _$jscoverage['core/Range.js'][1539]++; + if ((pre = node.childNodes[this.endOffset])) { + _$jscoverage['core/Range.js'][1540]++; + node.insertBefore(tmp, pre); + } + else { + _$jscoverage['core/Range.js'][1542]++; + node.appendChild(tmp); + } + _$jscoverage['core/Range.js'][1544]++; + pre = (node = tmp); + } + else { + _$jscoverage['core/Range.js'][1546]++; + pre = node; + } + _$jscoverage['core/Range.js'][1548]++; + while (true) { + _$jscoverage['core/Range.js'][1549]++; + if (domUtils.isBlockElm(node)) { + _$jscoverage['core/Range.js'][1550]++; + node = pre; + _$jscoverage['core/Range.js'][1551]++; + while (((pre = node.nextSibling) && (! domUtils.isBlockElm(pre)))) { + _$jscoverage['core/Range.js'][1552]++; + node = pre; +} + _$jscoverage['core/Range.js'][1554]++; + this.setEndAfter(node); + _$jscoverage['core/Range.js'][1555]++; + break; + } + _$jscoverage['core/Range.js'][1557]++; + pre = node; + _$jscoverage['core/Range.js'][1558]++; + node = node.parentNode; +} + _$jscoverage['core/Range.js'][1560]++; + if ((tmp.parentNode === this.endContainer)) { + _$jscoverage['core/Range.js'][1561]++; + (this.endOffset--); + } + _$jscoverage['core/Range.js'][1563]++; + domUtils.remove(tmp); + } + _$jscoverage['core/Range.js'][1567]++; + if ((! this.collapsed)) { + _$jscoverage['core/Range.js'][1568]++; + while ((this.startOffset == 0)) { + _$jscoverage['core/Range.js'][1569]++; + if ((stopFn && stopFn(this.startContainer))) { + _$jscoverage['core/Range.js'][1570]++; + break; + } + _$jscoverage['core/Range.js'][1572]++; + if (isBody(this.startContainer)) { + _$jscoverage['core/Range.js'][1573]++; + break; + } + _$jscoverage['core/Range.js'][1575]++; + this.setStartBefore(this.startContainer); +} + _$jscoverage['core/Range.js'][1577]++; + while ((this.endOffset == ((this.endContainer.nodeType == 1)? this.endContainer.childNodes.length: this.endContainer.nodeValue.length))) { + _$jscoverage['core/Range.js'][1578]++; + if ((stopFn && stopFn(this.endContainer))) { + _$jscoverage['core/Range.js'][1579]++; + break; + } + _$jscoverage['core/Range.js'][1581]++; + if (isBody(this.endContainer)) { + _$jscoverage['core/Range.js'][1582]++; + break; + } + _$jscoverage['core/Range.js'][1584]++; + this.setEndAfter(this.endContainer); +} + } + _$jscoverage['core/Range.js'][1587]++; + return this; +}), adjustmentBoundary: (function () { + _$jscoverage['core/Range.js'][1597]++; + if ((! this.collapsed)) { + _$jscoverage['core/Range.js'][1598]++; + while (((! domUtils.isBody(this.startContainer)) && (this.startOffset == this.startContainer[((this.startContainer.nodeType == 3)? "nodeValue": "childNodes")].length) && this.startContainer[((this.startContainer.nodeType == 3)? "nodeValue": "childNodes")].length)) { + _$jscoverage['core/Range.js'][1603]++; + this.setStartAfter(this.startContainer); +} + _$jscoverage['core/Range.js'][1605]++; + while (((! domUtils.isBody(this.endContainer)) && (! this.endOffset) && this.endContainer[((this.endContainer.nodeType == 3)? "nodeValue": "childNodes")].length)) { + _$jscoverage['core/Range.js'][1608]++; + this.setEndBefore(this.endContainer); +} + } + _$jscoverage['core/Range.js'][1611]++; + return this; +}), applyInlineStyle: (function (tagName, attrs, list) { + _$jscoverage['core/Range.js'][1624]++; + if (this.collapsed) { + _$jscoverage['core/Range.js'][1624]++; + return this; + } + _$jscoverage['core/Range.js'][1625]++; + this.trimBoundary().enlarge(false, (function (node) { + _$jscoverage['core/Range.js'][1627]++; + return ((node.nodeType == 1) && domUtils.isBlockElm(node)); +})).adjustmentBoundary(); + _$jscoverage['core/Range.js'][1629]++; + var bookmark = this.createBookmark(), end = bookmark.end, filterFn = (function (node) { + _$jscoverage['core/Range.js'][1632]++; + return ((node.nodeType == 1)? (node.tagName.toLowerCase() != "br"): (! domUtils.isWhitespace(node))); +}), current = domUtils.getNextDomNode(bookmark.start, false, filterFn), node, pre, range = this.cloneRange(); + _$jscoverage['core/Range.js'][1638]++; + while ((current && (domUtils.getPosition(current, end) & domUtils.POSITION_PRECEDING))) { + _$jscoverage['core/Range.js'][1639]++; + if (((current.nodeType == 3) || dtd[tagName][current.tagName])) { + _$jscoverage['core/Range.js'][1640]++; + range.setStartBefore(current); + _$jscoverage['core/Range.js'][1641]++; + node = current; + _$jscoverage['core/Range.js'][1642]++; + while ((node && ((node.nodeType == 3) || dtd[tagName][node.tagName]) && (node !== end))) { + _$jscoverage['core/Range.js'][1643]++; + pre = node; + _$jscoverage['core/Range.js'][1644]++; + node = domUtils.getNextDomNode(node, (node.nodeType == 1), null, (function (parent) { + _$jscoverage['core/Range.js'][1645]++; + return dtd[tagName][parent.tagName]; +})); +} + _$jscoverage['core/Range.js'][1648]++; + var frag = range.setEndAfter(pre).extractContents(), elm; + _$jscoverage['core/Range.js'][1649]++; + if ((list && (list.length > 0))) { + _$jscoverage['core/Range.js'][1650]++; + var level, top; + _$jscoverage['core/Range.js'][1651]++; + top = (level = list[0].cloneNode(false)); + _$jscoverage['core/Range.js'][1652]++; + for (var i = 1, ci; (ci = list[(i++)]);) { + _$jscoverage['core/Range.js'][1653]++; + level.appendChild(ci.cloneNode(false)); + _$jscoverage['core/Range.js'][1654]++; + level = level.firstChild; +} + _$jscoverage['core/Range.js'][1656]++; + elm = level; + } + else { + _$jscoverage['core/Range.js'][1658]++; + elm = range.document.createElement(tagName); + } + _$jscoverage['core/Range.js'][1660]++; + if (attrs) { + _$jscoverage['core/Range.js'][1661]++; + domUtils.setAttributes(elm, attrs); + } + _$jscoverage['core/Range.js'][1663]++; + elm.appendChild(frag); + _$jscoverage['core/Range.js'][1664]++; + range.insertNode((list? top: elm)); + _$jscoverage['core/Range.js'][1666]++; + var aNode; + _$jscoverage['core/Range.js'][1667]++; + if (((tagName == "span") && attrs.style && /text\-decoration/.test(attrs.style) && (aNode = domUtils.findParentByTagName(elm, "a", true)))) { + _$jscoverage['core/Range.js'][1668]++; + domUtils.setAttributes(aNode, attrs); + _$jscoverage['core/Range.js'][1669]++; + domUtils.remove(elm, true); + _$jscoverage['core/Range.js'][1670]++; + elm = aNode; + } + else { + _$jscoverage['core/Range.js'][1672]++; + domUtils.mergeSibling(elm); + _$jscoverage['core/Range.js'][1673]++; + domUtils.clearEmptySibling(elm); + } + _$jscoverage['core/Range.js'][1676]++; + domUtils.mergeChild(elm, attrs); + _$jscoverage['core/Range.js'][1677]++; + current = domUtils.getNextDomNode(elm, false, filterFn); + _$jscoverage['core/Range.js'][1678]++; + domUtils.mergeToParent(elm); + _$jscoverage['core/Range.js'][1679]++; + if ((node === end)) { + _$jscoverage['core/Range.js'][1680]++; + break; + } + } + else { + _$jscoverage['core/Range.js'][1683]++; + current = domUtils.getNextDomNode(current, true, filterFn); + } +} + _$jscoverage['core/Range.js'][1686]++; + return this.moveToBookmark(bookmark); +}), removeInlineStyle: (function (tagNames) { + _$jscoverage['core/Range.js'][1696]++; + if (this.collapsed) { + _$jscoverage['core/Range.js'][1696]++; + return this; + } + _$jscoverage['core/Range.js'][1697]++; + tagNames = (utils.isArray(tagNames)? tagNames: [tagNames]); + _$jscoverage['core/Range.js'][1698]++; + this.shrinkBoundary().adjustmentBoundary(); + _$jscoverage['core/Range.js'][1699]++; + var start = this.startContainer, end = this.endContainer; + _$jscoverage['core/Range.js'][1700]++; + while (true) { + _$jscoverage['core/Range.js'][1701]++; + if ((start.nodeType == 1)) { + _$jscoverage['core/Range.js'][1702]++; + if ((utils.indexOf(tagNames, start.tagName.toLowerCase()) > -1)) { + _$jscoverage['core/Range.js'][1703]++; + break; + } + _$jscoverage['core/Range.js'][1705]++; + if ((start.tagName.toLowerCase() == "body")) { + _$jscoverage['core/Range.js'][1706]++; + start = null; + _$jscoverage['core/Range.js'][1707]++; + break; + } + } + _$jscoverage['core/Range.js'][1710]++; + start = start.parentNode; +} + _$jscoverage['core/Range.js'][1712]++; + while (true) { + _$jscoverage['core/Range.js'][1713]++; + if ((end.nodeType == 1)) { + _$jscoverage['core/Range.js'][1714]++; + if ((utils.indexOf(tagNames, end.tagName.toLowerCase()) > -1)) { + _$jscoverage['core/Range.js'][1715]++; + break; + } + _$jscoverage['core/Range.js'][1717]++; + if ((end.tagName.toLowerCase() == "body")) { + _$jscoverage['core/Range.js'][1718]++; + end = null; + _$jscoverage['core/Range.js'][1719]++; + break; + } + } + _$jscoverage['core/Range.js'][1722]++; + end = end.parentNode; +} + _$jscoverage['core/Range.js'][1724]++; + var bookmark = this.createBookmark(), frag, tmpRange; + _$jscoverage['core/Range.js'][1727]++; + if (start) { + _$jscoverage['core/Range.js'][1728]++; + tmpRange = this.cloneRange().setEndBefore(bookmark.start).setStartBefore(start); + _$jscoverage['core/Range.js'][1729]++; + frag = tmpRange.extractContents(); + _$jscoverage['core/Range.js'][1730]++; + tmpRange.insertNode(frag); + _$jscoverage['core/Range.js'][1731]++; + domUtils.clearEmptySibling(start, true); + _$jscoverage['core/Range.js'][1732]++; + start.parentNode.insertBefore(bookmark.start, start); + } + _$jscoverage['core/Range.js'][1734]++; + if (end) { + _$jscoverage['core/Range.js'][1735]++; + tmpRange = this.cloneRange().setStartAfter(bookmark.end).setEndAfter(end); + _$jscoverage['core/Range.js'][1736]++; + frag = tmpRange.extractContents(); + _$jscoverage['core/Range.js'][1737]++; + tmpRange.insertNode(frag); + _$jscoverage['core/Range.js'][1738]++; + domUtils.clearEmptySibling(end, false, true); + _$jscoverage['core/Range.js'][1739]++; + end.parentNode.insertBefore(bookmark.end, end.nextSibling); + } + _$jscoverage['core/Range.js'][1741]++; + var current = domUtils.getNextDomNode(bookmark.start, false, (function (node) { + _$jscoverage['core/Range.js'][1742]++; + return (node.nodeType == 1); +})), next; + _$jscoverage['core/Range.js'][1744]++; + while ((current && (current !== bookmark.end))) { + _$jscoverage['core/Range.js'][1745]++; + next = domUtils.getNextDomNode(current, true, (function (node) { + _$jscoverage['core/Range.js'][1746]++; + return (node.nodeType == 1); +})); + _$jscoverage['core/Range.js'][1748]++; + if ((utils.indexOf(tagNames, current.tagName.toLowerCase()) > -1)) { + _$jscoverage['core/Range.js'][1749]++; + domUtils.remove(current, true); + } + _$jscoverage['core/Range.js'][1751]++; + current = next; +} + _$jscoverage['core/Range.js'][1753]++; + return this.moveToBookmark(bookmark); +}), getClosedNode: (function () { + _$jscoverage['core/Range.js'][1783]++; + var node; + _$jscoverage['core/Range.js'][1784]++; + if ((! this.collapsed)) { + _$jscoverage['core/Range.js'][1785]++; + var range = this.cloneRange().adjustmentBoundary().shrinkBoundary(); + _$jscoverage['core/Range.js'][1786]++; + if (selectOneNode(range)) { + _$jscoverage['core/Range.js'][1787]++; + var child = range.startContainer.childNodes[range.startOffset]; + _$jscoverage['core/Range.js'][1788]++; + if ((child && (child.nodeType == 1) && (dtd.$empty[child.tagName] || dtd.$nonChild[child.tagName]))) { + _$jscoverage['core/Range.js'][1789]++; + node = child; + } + } + } + _$jscoverage['core/Range.js'][1793]++; + return node; +}), select: (browser.ie? (function (noFillData, textRange) { + _$jscoverage['core/Range.js'][1802]++; + var nativeRange; + _$jscoverage['core/Range.js'][1803]++; + if ((! this.collapsed)) { + _$jscoverage['core/Range.js'][1804]++; + this.shrinkBoundary(); + } + _$jscoverage['core/Range.js'][1805]++; + var node = this.getClosedNode(); + _$jscoverage['core/Range.js'][1806]++; + if ((node && (! textRange))) { + _$jscoverage['core/Range.js'][1807]++; + try { + _$jscoverage['core/Range.js'][1808]++; + nativeRange = this.document.body.createControlRange(); + _$jscoverage['core/Range.js'][1809]++; + nativeRange.addElement(node); + _$jscoverage['core/Range.js'][1810]++; + nativeRange.select(); + } + catch (e) { + } + _$jscoverage['core/Range.js'][1812]++; + return this; + } + _$jscoverage['core/Range.js'][1814]++; + var bookmark = this.createBookmark(), start = bookmark.start, end; + _$jscoverage['core/Range.js'][1817]++; + nativeRange = this.document.body.createTextRange(); + _$jscoverage['core/Range.js'][1818]++; + nativeRange.moveToElementText(start); + _$jscoverage['core/Range.js'][1819]++; + nativeRange.moveStart("character", 1); + _$jscoverage['core/Range.js'][1820]++; + if ((! this.collapsed)) { + _$jscoverage['core/Range.js'][1821]++; + var nativeRangeEnd = this.document.body.createTextRange(); + _$jscoverage['core/Range.js'][1822]++; + end = bookmark.end; + _$jscoverage['core/Range.js'][1823]++; + nativeRangeEnd.moveToElementText(end); + _$jscoverage['core/Range.js'][1824]++; + nativeRange.setEndPoint("EndToEnd", nativeRangeEnd); + } + else { + _$jscoverage['core/Range.js'][1826]++; + if (((! noFillData) && (this.startContainer.nodeType != 3))) { + _$jscoverage['core/Range.js'][1828]++; + var tmpText = this.document.createTextNode(fillChar), tmp = this.document.createElement("span"); + _$jscoverage['core/Range.js'][1830]++; + tmp.appendChild(this.document.createTextNode(fillChar)); + _$jscoverage['core/Range.js'][1831]++; + start.parentNode.insertBefore(tmp, start); + _$jscoverage['core/Range.js'][1832]++; + start.parentNode.insertBefore(tmpText, start); + _$jscoverage['core/Range.js'][1834]++; + removeFillData(this.document, tmpText); + _$jscoverage['core/Range.js'][1835]++; + fillData = tmpText; + _$jscoverage['core/Range.js'][1836]++; + mergeSibling(tmp, "previousSibling"); + _$jscoverage['core/Range.js'][1837]++; + mergeSibling(start, "nextSibling"); + _$jscoverage['core/Range.js'][1838]++; + nativeRange.moveStart("character", -1); + _$jscoverage['core/Range.js'][1839]++; + nativeRange.collapse(true); + } + } + _$jscoverage['core/Range.js'][1842]++; + this.moveToBookmark(bookmark); + _$jscoverage['core/Range.js'][1843]++; + (tmp && domUtils.remove(tmp)); + _$jscoverage['core/Range.js'][1845]++; + try { + _$jscoverage['core/Range.js'][1846]++; + nativeRange.select(); + } + catch (e) { + } + _$jscoverage['core/Range.js'][1849]++; + return this; +}): (function (notInsertFillData) { + _$jscoverage['core/Range.js'][1851]++; + function checkOffset(rng) { + _$jscoverage['core/Range.js'][1853]++; + function check(node, offset, dir) { + _$jscoverage['core/Range.js'][1854]++; + if (((node.nodeType == 3) && (node.nodeValue.length < offset))) { + _$jscoverage['core/Range.js'][1855]++; + rng[(dir + "Offset")] = node.nodeValue.length; + } +} + _$jscoverage['core/Range.js'][1858]++; + check(rng.startContainer, rng.startOffset, "start"); + _$jscoverage['core/Range.js'][1859]++; + check(rng.endContainer, rng.endOffset, "end"); +} + _$jscoverage['core/Range.js'][1861]++; + var win = domUtils.getWindow(this.document), sel = win.getSelection(), txtNode; + _$jscoverage['core/Range.js'][1866]++; + (browser.gecko? this.document.body.focus(): win.focus()); + _$jscoverage['core/Range.js'][1867]++; + if (sel) { + _$jscoverage['core/Range.js'][1868]++; + sel.removeAllRanges(); + _$jscoverage['core/Range.js'][1871]++; + if ((this.collapsed && (! notInsertFillData))) { + _$jscoverage['core/Range.js'][1883]++; + var start = this.startContainer, child = start; + _$jscoverage['core/Range.js'][1884]++; + if ((start.nodeType == 1)) { + _$jscoverage['core/Range.js'][1885]++; + child = start.childNodes[this.startOffset]; + } + _$jscoverage['core/Range.js'][1888]++; + if (((! ((start.nodeType == 3) && this.startOffset)) && (child? ((! child.previousSibling) || (child.previousSibling.nodeType != 3)): ((! start.lastChild) || (start.lastChild.nodeType != 3))))) { + _$jscoverage['core/Range.js'][1895]++; + txtNode = this.document.createTextNode(fillChar); + _$jscoverage['core/Range.js'][1897]++; + this.insertNode(txtNode); + _$jscoverage['core/Range.js'][1898]++; + removeFillData(this.document, txtNode); + _$jscoverage['core/Range.js'][1899]++; + mergeSibling(txtNode, "previousSibling"); + _$jscoverage['core/Range.js'][1900]++; + mergeSibling(txtNode, "nextSibling"); + _$jscoverage['core/Range.js'][1901]++; + fillData = txtNode; + _$jscoverage['core/Range.js'][1902]++; + this.setStart(txtNode, (browser.webkit? 1: 0)).collapse(true); + } + } + _$jscoverage['core/Range.js'][1905]++; + var nativeRange = this.document.createRange(); + _$jscoverage['core/Range.js'][1906]++; + if ((this.collapsed && browser.opera && (this.startContainer.nodeType == 1))) { + _$jscoverage['core/Range.js'][1907]++; + var child = this.startContainer.childNodes[this.startOffset]; + _$jscoverage['core/Range.js'][1908]++; + if ((! child)) { + _$jscoverage['core/Range.js'][1910]++; + child = this.startContainer.lastChild; + _$jscoverage['core/Range.js'][1911]++; + if ((child && domUtils.isBr(child))) { + _$jscoverage['core/Range.js'][1912]++; + this.setStartBefore(child).collapse(true); + } + } + else { + _$jscoverage['core/Range.js'][1916]++; + while ((child && domUtils.isBlockElm(child))) { + _$jscoverage['core/Range.js'][1917]++; + if (((child.nodeType == 1) && child.childNodes[0])) { + _$jscoverage['core/Range.js'][1918]++; + child = child.childNodes[0]; + } + else { + _$jscoverage['core/Range.js'][1920]++; + break; + } +} + _$jscoverage['core/Range.js'][1923]++; + (child && this.setStartBefore(child).collapse(true)); + } + } + _$jscoverage['core/Range.js'][1928]++; + checkOffset(this); + _$jscoverage['core/Range.js'][1929]++; + nativeRange.setStart(this.startContainer, this.startOffset); + _$jscoverage['core/Range.js'][1930]++; + nativeRange.setEnd(this.endContainer, this.endOffset); + _$jscoverage['core/Range.js'][1931]++; + sel.addRange(nativeRange); + } + _$jscoverage['core/Range.js'][1933]++; + return this; +})), scrollToView: (function (win, offset) { + _$jscoverage['core/Range.js'][1951]++; + win = (win? window: domUtils.getWindow(this.document)); + _$jscoverage['core/Range.js'][1952]++; + var me = this, span = me.document.createElement("span"); + _$jscoverage['core/Range.js'][1955]++; + span.innerHTML = " "; + _$jscoverage['core/Range.js'][1956]++; + me.cloneRange().insertNode(span); + _$jscoverage['core/Range.js'][1957]++; + domUtils.scrollToView(span, win, offset); + _$jscoverage['core/Range.js'][1958]++; + domUtils.remove(span); + _$jscoverage['core/Range.js'][1959]++; + return me; +}), inFillChar: (function () { + _$jscoverage['core/Range.js'][1967]++; + var start = this.startContainer; + _$jscoverage['core/Range.js'][1968]++; + if ((this.collapsed && (start.nodeType == 3) && ((start.nodeValue.replace(new RegExp(("^" + domUtils.fillChar)), "").length + 1) == start.nodeValue.length))) { + _$jscoverage['core/Range.js'][1971]++; + return true; + } + _$jscoverage['core/Range.js'][1973]++; + return false; +}), createAddress: (function (ignoreEnd, ignoreTxt) { + _$jscoverage['core/Range.js'][2000]++; + var addr = {}, me = this; + _$jscoverage['core/Range.js'][2002]++; + function getAddress(isStart) { + _$jscoverage['core/Range.js'][2003]++; + var node = (isStart? me.startContainer: me.endContainer); + _$jscoverage['core/Range.js'][2004]++; + var parents = domUtils.findParents(node, true, (function (node) { + _$jscoverage['core/Range.js'][2004]++; + return (! domUtils.isBody(node)); +})), addrs = []; + _$jscoverage['core/Range.js'][2006]++; + for (var i = 0, ci; (ci = parents[(i++)]);) { + _$jscoverage['core/Range.js'][2007]++; + addrs.push(domUtils.getNodeIndex(ci, ignoreTxt)); +} + _$jscoverage['core/Range.js'][2009]++; + var firstIndex = 0; + _$jscoverage['core/Range.js'][2011]++; + if (ignoreTxt) { + _$jscoverage['core/Range.js'][2012]++; + if ((node.nodeType == 3)) { + _$jscoverage['core/Range.js'][2013]++; + var tmpNode = node.previousSibling; + _$jscoverage['core/Range.js'][2014]++; + while ((tmpNode && (tmpNode.nodeType == 3))) { + _$jscoverage['core/Range.js'][2015]++; + firstIndex += tmpNode.nodeValue.replace(fillCharReg, "").length; + _$jscoverage['core/Range.js'][2016]++; + tmpNode = tmpNode.previousSibling; +} + _$jscoverage['core/Range.js'][2018]++; + firstIndex += (isStart? me.startOffset: me.endOffset); + } + else { + _$jscoverage['core/Range.js'][2020]++; + node = node.childNodes[(isStart? me.startOffset: me.endOffset)]; + _$jscoverage['core/Range.js'][2021]++; + if (node) { + _$jscoverage['core/Range.js'][2022]++; + firstIndex = domUtils.getNodeIndex(node, ignoreTxt); + } + else { + _$jscoverage['core/Range.js'][2024]++; + node = (isStart? me.startContainer: me.endContainer); + _$jscoverage['core/Range.js'][2025]++; + var first = node.firstChild; + _$jscoverage['core/Range.js'][2026]++; + while (first) { + _$jscoverage['core/Range.js'][2027]++; + if (domUtils.isFillChar(first)) { + _$jscoverage['core/Range.js'][2028]++; + first = first.nextSibling; + _$jscoverage['core/Range.js'][2029]++; + continue; + } + _$jscoverage['core/Range.js'][2031]++; + (firstIndex++); + _$jscoverage['core/Range.js'][2032]++; + if ((first.nodeType == 3)) { + _$jscoverage['core/Range.js'][2033]++; + while ((first && (first.nodeType == 3))) { + _$jscoverage['core/Range.js'][2034]++; + first = first.nextSibling; +} + } + else { + _$jscoverage['core/Range.js'][2037]++; + first = first.nextSibling; + } +} + } + } + } + else { + _$jscoverage['core/Range.js'][2044]++; + firstIndex = (isStart? (domUtils.isFillChar(node)? 0: me.startOffset): me.endOffset); + } + _$jscoverage['core/Range.js'][2046]++; + if ((firstIndex < 0)) { + _$jscoverage['core/Range.js'][2047]++; + firstIndex = 0; + } + _$jscoverage['core/Range.js'][2049]++; + addrs.push(firstIndex); + _$jscoverage['core/Range.js'][2050]++; + return addrs; +} + _$jscoverage['core/Range.js'][2052]++; + addr.startAddress = getAddress(true); + _$jscoverage['core/Range.js'][2053]++; + if ((! ignoreEnd)) { + _$jscoverage['core/Range.js'][2054]++; + addr.endAddress = (me.collapsed? [].concat(addr.startAddress): getAddress()); + } + _$jscoverage['core/Range.js'][2056]++; + return addr; +}), moveToAddress: (function (addr, ignoreEnd) { + _$jscoverage['core/Range.js'][2085]++; + var me = this; + _$jscoverage['core/Range.js'][2086]++; + function getNode(address, isStart) { + _$jscoverage['core/Range.js'][2087]++; + var tmpNode = me.document.body, parentNode, offset; + _$jscoverage['core/Range.js'][2089]++; + for (var i = 0, ci, l = address.length; (i < l); (i++)) { + _$jscoverage['core/Range.js'][2090]++; + ci = address[i]; + _$jscoverage['core/Range.js'][2091]++; + parentNode = tmpNode; + _$jscoverage['core/Range.js'][2092]++; + tmpNode = tmpNode.childNodes[ci]; + _$jscoverage['core/Range.js'][2093]++; + if ((! tmpNode)) { + _$jscoverage['core/Range.js'][2094]++; + offset = ci; + _$jscoverage['core/Range.js'][2095]++; + break; + } +} + _$jscoverage['core/Range.js'][2098]++; + if (isStart) { + _$jscoverage['core/Range.js'][2099]++; + if (tmpNode) { + _$jscoverage['core/Range.js'][2100]++; + me.setStartBefore(tmpNode); + } + else { + _$jscoverage['core/Range.js'][2102]++; + me.setStart(parentNode, offset); + } + } + else { + _$jscoverage['core/Range.js'][2105]++; + if (tmpNode) { + _$jscoverage['core/Range.js'][2106]++; + me.setEndBefore(tmpNode); + } + else { + _$jscoverage['core/Range.js'][2108]++; + me.setEnd(parentNode, offset); + } + } +} + _$jscoverage['core/Range.js'][2112]++; + getNode(addr.startAddress, true); + _$jscoverage['core/Range.js'][2113]++; + ((! ignoreEnd) && addr.endAddress && getNode(addr.endAddress)); + _$jscoverage['core/Range.js'][2114]++; + return me; +}), traversal: (function (doFn, filterFn) { + _$jscoverage['core/Range.js'][2214]++; + if (this.collapsed) { + _$jscoverage['core/Range.js'][2215]++; + return this; + } + _$jscoverage['core/Range.js'][2216]++; + var bookmark = this.createBookmark(), end = bookmark.end, current = domUtils.getNextDomNode(bookmark.start, false, filterFn); + _$jscoverage['core/Range.js'][2219]++; + while ((current && (current !== end) && (domUtils.getPosition(current, end) & domUtils.POSITION_PRECEDING))) { + _$jscoverage['core/Range.js'][2220]++; + var tmpNode = domUtils.getNextDomNode(current, false, filterFn); + _$jscoverage['core/Range.js'][2221]++; + doFn(current); + _$jscoverage['core/Range.js'][2222]++; + current = tmpNode; +} + _$jscoverage['core/Range.js'][2224]++; + return this.moveToBookmark(bookmark); +})}; +})(); diff --git a/_test/coverage/core/Selection.js b/_test/coverage/core/Selection.js new file mode 100644 index 000000000..c12cc84f1 --- /dev/null +++ b/_test/coverage/core/Selection.js @@ -0,0 +1,606 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['core/Selection.js']) { + _$jscoverage['core/Selection.js'] = []; + _$jscoverage['core/Selection.js'][13] = 0; + _$jscoverage['core/Selection.js'][15] = 0; + _$jscoverage['core/Selection.js'][16] = 0; + _$jscoverage['core/Selection.js'][17] = 0; + _$jscoverage['core/Selection.js'][18] = 0; + _$jscoverage['core/Selection.js'][19] = 0; + _$jscoverage['core/Selection.js'][21] = 0; + _$jscoverage['core/Selection.js'][22] = 0; + _$jscoverage['core/Selection.js'][24] = 0; + _$jscoverage['core/Selection.js'][29] = 0; + _$jscoverage['core/Selection.js'][30] = 0; + _$jscoverage['core/Selection.js'][31] = 0; + _$jscoverage['core/Selection.js'][32] = 0; + _$jscoverage['core/Selection.js'][33] = 0; + _$jscoverage['core/Selection.js'][34] = 0; + _$jscoverage['core/Selection.js'][35] = 0; + _$jscoverage['core/Selection.js'][36] = 0; + _$jscoverage['core/Selection.js'][37] = 0; + _$jscoverage['core/Selection.js'][40] = 0; + _$jscoverage['core/Selection.js'][43] = 0; + _$jscoverage['core/Selection.js'][44] = 0; + _$jscoverage['core/Selection.js'][45] = 0; + _$jscoverage['core/Selection.js'][46] = 0; + _$jscoverage['core/Selection.js'][47] = 0; + _$jscoverage['core/Selection.js'][48] = 0; + _$jscoverage['core/Selection.js'][49] = 0; + _$jscoverage['core/Selection.js'][50] = 0; + _$jscoverage['core/Selection.js'][53] = 0; + _$jscoverage['core/Selection.js'][54] = 0; + _$jscoverage['core/Selection.js'][55] = 0; + _$jscoverage['core/Selection.js'][57] = 0; + _$jscoverage['core/Selection.js'][59] = 0; + _$jscoverage['core/Selection.js'][60] = 0; + _$jscoverage['core/Selection.js'][61] = 0; + _$jscoverage['core/Selection.js'][62] = 0; + _$jscoverage['core/Selection.js'][63] = 0; + _$jscoverage['core/Selection.js'][67] = 0; + _$jscoverage['core/Selection.js'][68] = 0; + _$jscoverage['core/Selection.js'][69] = 0; + _$jscoverage['core/Selection.js'][70] = 0; + _$jscoverage['core/Selection.js'][71] = 0; + _$jscoverage['core/Selection.js'][73] = 0; + _$jscoverage['core/Selection.js'][76] = 0; + _$jscoverage['core/Selection.js'][85] = 0; + _$jscoverage['core/Selection.js'][86] = 0; + _$jscoverage['core/Selection.js'][87] = 0; + _$jscoverage['core/Selection.js'][89] = 0; + _$jscoverage['core/Selection.js'][90] = 0; + _$jscoverage['core/Selection.js'][91] = 0; + _$jscoverage['core/Selection.js'][92] = 0; + _$jscoverage['core/Selection.js'][93] = 0; + _$jscoverage['core/Selection.js'][96] = 0; + _$jscoverage['core/Selection.js'][104] = 0; + _$jscoverage['core/Selection.js'][105] = 0; + _$jscoverage['core/Selection.js'][107] = 0; + _$jscoverage['core/Selection.js'][108] = 0; + _$jscoverage['core/Selection.js'][110] = 0; + _$jscoverage['core/Selection.js'][112] = 0; + _$jscoverage['core/Selection.js'][113] = 0; + _$jscoverage['core/Selection.js'][114] = 0; + _$jscoverage['core/Selection.js'][116] = 0; + _$jscoverage['core/Selection.js'][119] = 0; + _$jscoverage['core/Selection.js'][120] = 0; + _$jscoverage['core/Selection.js'][121] = 0; + _$jscoverage['core/Selection.js'][122] = 0; + _$jscoverage['core/Selection.js'][123] = 0; + _$jscoverage['core/Selection.js'][124] = 0; + _$jscoverage['core/Selection.js'][125] = 0; + _$jscoverage['core/Selection.js'][127] = 0; + _$jscoverage['core/Selection.js'][128] = 0; + _$jscoverage['core/Selection.js'][129] = 0; + _$jscoverage['core/Selection.js'][130] = 0; + _$jscoverage['core/Selection.js'][134] = 0; + _$jscoverage['core/Selection.js'][137] = 0; + _$jscoverage['core/Selection.js'][140] = 0; + _$jscoverage['core/Selection.js'][151] = 0; + _$jscoverage['core/Selection.js'][152] = 0; + _$jscoverage['core/Selection.js'][153] = 0; + _$jscoverage['core/Selection.js'][155] = 0; + _$jscoverage['core/Selection.js'][168] = 0; + _$jscoverage['core/Selection.js'][169] = 0; + _$jscoverage['core/Selection.js'][170] = 0; + _$jscoverage['core/Selection.js'][171] = 0; + _$jscoverage['core/Selection.js'][174] = 0; + _$jscoverage['core/Selection.js'][182] = 0; + _$jscoverage['core/Selection.js'][183] = 0; + _$jscoverage['core/Selection.js'][184] = 0; + _$jscoverage['core/Selection.js'][185] = 0; + _$jscoverage['core/Selection.js'][198] = 0; + _$jscoverage['core/Selection.js'][199] = 0; + _$jscoverage['core/Selection.js'][201] = 0; + _$jscoverage['core/Selection.js'][202] = 0; + _$jscoverage['core/Selection.js'][203] = 0; + _$jscoverage['core/Selection.js'][205] = 0; + _$jscoverage['core/Selection.js'][212] = 0; + _$jscoverage['core/Selection.js'][219] = 0; + _$jscoverage['core/Selection.js'][220] = 0; + _$jscoverage['core/Selection.js'][222] = 0; + _$jscoverage['core/Selection.js'][236] = 0; + _$jscoverage['core/Selection.js'][237] = 0; + _$jscoverage['core/Selection.js'][238] = 0; + _$jscoverage['core/Selection.js'][240] = 0; + _$jscoverage['core/Selection.js'][241] = 0; + _$jscoverage['core/Selection.js'][242] = 0; + _$jscoverage['core/Selection.js'][244] = 0; + _$jscoverage['core/Selection.js'][245] = 0; + _$jscoverage['core/Selection.js'][247] = 0; + _$jscoverage['core/Selection.js'][248] = 0; + _$jscoverage['core/Selection.js'][252] = 0; + _$jscoverage['core/Selection.js'][253] = 0; + _$jscoverage['core/Selection.js'][255] = 0; + _$jscoverage['core/Selection.js'][256] = 0; + _$jscoverage['core/Selection.js'][257] = 0; + _$jscoverage['core/Selection.js'][258] = 0; + _$jscoverage['core/Selection.js'][260] = 0; + _$jscoverage['core/Selection.js'][261] = 0; + _$jscoverage['core/Selection.js'][263] = 0; + _$jscoverage['core/Selection.js'][267] = 0; + _$jscoverage['core/Selection.js'][270] = 0; + _$jscoverage['core/Selection.js'][271] = 0; + _$jscoverage['core/Selection.js'][272] = 0; + _$jscoverage['core/Selection.js'][273] = 0; + _$jscoverage['core/Selection.js'][274] = 0; + _$jscoverage['core/Selection.js'][275] = 0; + _$jscoverage['core/Selection.js'][276] = 0; + _$jscoverage['core/Selection.js'][280] = 0; + _$jscoverage['core/Selection.js'][281] = 0; + _$jscoverage['core/Selection.js'][283] = 0; + _$jscoverage['core/Selection.js'][286] = 0; + _$jscoverage['core/Selection.js'][298] = 0; + _$jscoverage['core/Selection.js'][299] = 0; + _$jscoverage['core/Selection.js'][301] = 0; + _$jscoverage['core/Selection.js'][304] = 0; + _$jscoverage['core/Selection.js'][305] = 0; + _$jscoverage['core/Selection.js'][307] = 0; + _$jscoverage['core/Selection.js'][310] = 0; + _$jscoverage['core/Selection.js'][311] = 0; + _$jscoverage['core/Selection.js'][313] = 0; + _$jscoverage['core/Selection.js'][315] = 0; + _$jscoverage['core/Selection.js'][316] = 0; + _$jscoverage['core/Selection.js'][317] = 0; + _$jscoverage['core/Selection.js'][318] = 0; + _$jscoverage['core/Selection.js'][319] = 0; + _$jscoverage['core/Selection.js'][320] = 0; + _$jscoverage['core/Selection.js'][321] = 0; + _$jscoverage['core/Selection.js'][322] = 0; + _$jscoverage['core/Selection.js'][326] = 0; + _$jscoverage['core/Selection.js'][327] = 0; + _$jscoverage['core/Selection.js'][328] = 0; + _$jscoverage['core/Selection.js'][329] = 0; + _$jscoverage['core/Selection.js'][331] = 0; + _$jscoverage['core/Selection.js'][332] = 0; + _$jscoverage['core/Selection.js'][335] = 0; + _$jscoverage['core/Selection.js'][347] = 0; + _$jscoverage['core/Selection.js'][348] = 0; + _$jscoverage['core/Selection.js'][349] = 0; + _$jscoverage['core/Selection.js'][350] = 0; + _$jscoverage['core/Selection.js'][352] = 0; + _$jscoverage['core/Selection.js'][363] = 0; +} +_$jscoverage['core/Selection.js'].source = ["/**"," * 选集"," * @file"," * @module UE.dom.Selection"," * @since 1.2.6.1"," */","","/**"," * UEditor公用空间,UEditor所有的功能都挂载在该空间下"," * @module UE"," */","","(function () {",""," function getBoundaryInformation( range, start ) {"," var getIndex = domUtils.getNodeIndex;"," range = range.duplicate();"," range.collapse( start );"," var parent = range.parentElement();"," //如果节点里没有子节点,直接退出"," if ( !parent.hasChildNodes() ) {"," return {container:parent, offset:0};"," }"," var siblings = parent.children,"," child,"," testRange = range.duplicate(),"," startIndex = 0, endIndex = siblings.length - 1, index = -1,"," distance;"," while ( startIndex <= endIndex ) {"," index = Math.floor( (startIndex + endIndex) / 2 );"," child = siblings[index];"," testRange.moveToElementText( child );"," var position = testRange.compareEndPoints( 'StartToStart', range );"," if ( position > 0 ) {"," endIndex = index - 1;"," } else if ( position < 0 ) {"," startIndex = index + 1;"," } else {"," //trace:1043"," return {container:parent, offset:getIndex( child )};"," }"," }"," if ( index == -1 ) {"," testRange.moveToElementText( parent );"," testRange.setEndPoint( 'StartToStart', range );"," distance = testRange.text.replace( /(\\r\\n|\\r)/g, '\\n' ).length;"," siblings = parent.childNodes;"," if ( !distance ) {"," child = siblings[siblings.length - 1];"," return {container:child, offset:child.nodeValue.length};"," }",""," var i = siblings.length;"," while ( distance > 0 ){"," distance -= siblings[ --i ].nodeValue.length;"," }"," return {container:siblings[i], offset:-distance};"," }"," testRange.collapse( position > 0 );"," testRange.setEndPoint( position > 0 ? 'StartToStart' : 'EndToStart', range );"," distance = testRange.text.replace( /(\\r\\n|\\r)/g, '\\n' ).length;"," if ( !distance ) {"," return dtd.$empty[child.tagName] || dtd.$nonChild[child.tagName] ?"," {container:parent, offset:getIndex( child ) + (position > 0 ? 0 : 1)} :"," {container:child, offset:position > 0 ? 0 : child.childNodes.length}"," }"," while ( distance > 0 ) {"," try {"," var pre = child;"," child = child[position > 0 ? 'previousSibling' : 'nextSibling'];"," distance -= child.nodeValue.length;"," } catch ( e ) {"," return {container:parent, offset:getIndex( pre )};"," }"," }"," return {container:child, offset:position > 0 ? -distance : child.nodeValue.length + distance}"," }",""," /*"," * 将ieRange转换为Range对象"," * @param {Range} ieRange ieRange对象"," * @param {Range} range Range对象"," * @return {Range} range 返回转换后的Range对象"," */"," function transformIERangeToRange( ieRange, range ) {"," if ( ieRange.item ) {"," range.selectNode( ieRange.item( 0 ) );"," } else {"," var bi = getBoundaryInformation( ieRange, true );"," range.setStart( bi.container, bi.offset );"," if ( ieRange.compareEndPoints( 'StartToEnd', ieRange ) != 0 ) {"," bi = getBoundaryInformation( ieRange, false );"," range.setEnd( bi.container, bi.offset );"," }"," }"," return range;"," }",""," /*"," * 获得ieRange"," * @param {Selection} sel Selection对象"," * @return {ieRange} 得到ieRange"," */"," function _getIERange( sel ) {"," var ieRange;"," //ie下有可能报错"," try {"," ieRange = sel.getNative().createRange();"," } catch ( e ) {"," return null;"," }"," var el = ieRange.item ? ieRange.item( 0 ) : ieRange.parentElement();"," if ( ( el.ownerDocument || el ) === sel.document ) {"," return ieRange;"," }"," return null;"," }",""," var Selection = dom.Selection = function ( doc ) {"," var me = this, iframe;"," me.document = doc;"," if ( ie ) {"," iframe = domUtils.getWindow( doc ).frameElement;"," domUtils.on( iframe, 'beforedeactivate', function () {"," me._bakIERange = me.getIERange();"," } );"," domUtils.on( iframe, 'activate', function () {"," try {"," if ( !_getIERange( me ) && me._bakIERange ) {"," me._bakIERange.select();"," }"," } catch ( ex ) {"," }"," me._bakIERange = null;"," } );"," }"," iframe = doc = null;"," };",""," Selection.prototype = {"," /**"," * 获取原生seleciton对象"," * @method getNative"," * @return { Object } 获得selection对象"," * @example"," * ```javascript"," * editor.selection.getNative();"," * ```"," */"," getNative:function () {"," var doc = this.document;"," try {"," return !doc ? null : ie && browser.ie < 9 ? doc.selection : domUtils.getWindow( doc ).getSelection();"," } catch ( e ) {"," return null;"," }"," },"," /**"," * 获得ieRange"," * @method getIERange"," * @return { Object } 返回ie原生的Range"," * @example"," * ```javascript"," * editor.selection.getIERange();"," * ```"," */"," getIERange:function () {"," var ieRange = _getIERange( this );"," if ( !ieRange ) {"," if ( this._bakIERange ) {"," return this._bakIERange;"," }"," }"," return ieRange;"," },",""," /**"," * 缓存当前选区的range和选区的开始节点"," * @method cache"," */"," cache:function () {"," this.clear();"," this._cachedRange = this.getRange();"," this._cachedStartElement = this.getStart();"," this._cachedStartElementPath = this.getStartElementPath();"," },",""," /**"," * 获取选区开始位置的父节点到body"," * @method getStartElementPath"," * @return { Array } 返回父节点集合"," * @example"," * ```javascript"," * editor.selection.getStartElementPath();"," * ```"," */"," getStartElementPath:function () {"," if ( this._cachedStartElementPath ) {"," return this._cachedStartElementPath;"," }"," var start = this.getStart();"," if ( start ) {"," return domUtils.findParents( start, true, null, true )"," }"," return [];"," },"," /**"," * 清空缓存"," * @method clear"," */"," clear:function () {"," this._cachedStartElementPath = this._cachedRange = this._cachedStartElement = null;"," },"," /**"," * 编辑器是否得到了选区"," * @method isFocus"," */"," isFocus:function () {"," try {"," return browser.ie && _getIERange( this ) || !browser.ie && this.getNative().rangeCount ? true : false;"," } catch ( e ) {"," return false;"," }",""," },"," /**"," * 获取选区对应的Range"," * @method getRange"," * @return { Object } 得到Range对象"," * @example"," * ```javascript"," * editor.selection.getRange();"," * ```"," */"," getRange:function () {"," var me = this;"," function optimze( range ) {"," var child = me.document.body.firstChild,"," collapsed = range.collapsed;"," while ( child && child.firstChild ) {"," range.setStart( child, 0 );"," child = child.firstChild;"," }"," if ( !range.startContainer ) {"," range.setStart( me.document.body, 0 )"," }"," if ( collapsed ) {"," range.collapse( true );"," }"," }",""," if ( me._cachedRange != null ) {"," return this._cachedRange;"," }"," var range = new baidu.editor.dom.Range( me.document );"," if ( ie && browser.ie < 9 ) {"," var nativeRange = me.getIERange();"," if ( nativeRange ) {"," //备份的_bakIERange可能已经实效了,dom树发生了变化比如从源码模式切回来,所以try一下,实效就放到body开始位置"," try{"," transformIERangeToRange( nativeRange, range );"," }catch(e){"," optimze( range );"," }",""," } else {"," optimze( range );"," }"," } else {"," var sel = me.getNative();"," if ( sel && sel.rangeCount ) {"," var firstRange = sel.getRangeAt( 0 );"," var lastRange = sel.getRangeAt( sel.rangeCount - 1 );"," range.setStart( firstRange.startContainer, firstRange.startOffset ).setEnd( lastRange.endContainer, lastRange.endOffset );"," if ( range.collapsed && domUtils.isBody( range.startContainer ) && !range.startOffset ) {"," optimze( range );"," }"," } else {"," //trace:1734 有可能已经不在dom树上了,标识的节点"," if ( this._bakRange && domUtils.inDoc( this._bakRange.startContainer, this.document ) ){"," return this._bakRange;"," }"," optimze( range );"," }"," }"," return this._bakRange = range;"," },"," /**"," * 获取开始元素,用于状态反射"," * @method getStart"," * @return { Element } 获得开始元素"," * @example"," * ```javascript"," * editor.selection.getStart();"," * ```"," */"," getStart:function () {"," if ( this._cachedStartElement ) {"," return this._cachedStartElement;"," }"," var range = ie ? this.getIERange() : this.getRange(),"," tmpRange,"," start, tmp, parent;"," if ( ie ) {"," if ( !range ) {"," //todo 给第一个值可能会有问题"," return this.document.body.firstChild;"," }"," //control元素"," if ( range.item ){"," return range.item( 0 );"," }"," tmpRange = range.duplicate();"," //修正ie下<b>x</b>[xx] 闭合后 <b>x|</b>xx"," tmpRange.text.length > 0 && tmpRange.moveStart( 'character', 1 );"," tmpRange.collapse( 1 );"," start = tmpRange.parentElement();"," parent = tmp = range.parentElement();"," while ( tmp = tmp.parentNode ) {"," if ( tmp == start ) {"," start = parent;"," break;"," }"," }"," } else {"," range.shrinkBoundary();"," start = range.startContainer;"," if ( start.nodeType == 1 && start.hasChildNodes() ){"," start = start.childNodes[Math.min( start.childNodes.length - 1, range.startOffset )];"," }"," if ( start.nodeType == 3 ){"," return start.parentNode;"," }"," }"," return start;"," },"," /**"," * 得到选区中的文本"," * @method getText"," * @return { String } 选区中包含的文本"," * @example"," * ```javascript"," * editor.selection.getText();"," * ```"," */"," getText:function () {"," var nativeSel, nativeRange;"," if ( this.isFocus() && (nativeSel = this.getNative()) ) {"," nativeRange = browser.ie ? nativeSel.createRange() : nativeSel.getRangeAt( 0 );"," return browser.ie ? nativeRange.text : nativeRange.toString();"," }"," return '';"," },"," /**"," * 清除选区"," * @method clearRange"," * @example"," * ```javascript"," * editor.selection.clearRange();"," * ```"," */"," clearRange : function(){"," this.getNative()[browser.ie ? 'empty' : 'removeAllRanges']();"," }"," };","})();"]; +_$jscoverage['core/Selection.js'][13]++; +(function () { + _$jscoverage['core/Selection.js'][15]++; + function getBoundaryInformation(range, start) { + _$jscoverage['core/Selection.js'][16]++; + var getIndex = domUtils.getNodeIndex; + _$jscoverage['core/Selection.js'][17]++; + range = range.duplicate(); + _$jscoverage['core/Selection.js'][18]++; + range.collapse(start); + _$jscoverage['core/Selection.js'][19]++; + var parent = range.parentElement(); + _$jscoverage['core/Selection.js'][21]++; + if ((! parent.hasChildNodes())) { + _$jscoverage['core/Selection.js'][22]++; + return ({container: parent, offset: 0}); + } + _$jscoverage['core/Selection.js'][24]++; + var siblings = parent.children, child, testRange = range.duplicate(), startIndex = 0, endIndex = (siblings.length - 1), index = -1, distance; + _$jscoverage['core/Selection.js'][29]++; + while ((startIndex <= endIndex)) { + _$jscoverage['core/Selection.js'][30]++; + index = Math.floor(((startIndex + endIndex) / 2)); + _$jscoverage['core/Selection.js'][31]++; + child = siblings[index]; + _$jscoverage['core/Selection.js'][32]++; + testRange.moveToElementText(child); + _$jscoverage['core/Selection.js'][33]++; + var position = testRange.compareEndPoints("StartToStart", range); + _$jscoverage['core/Selection.js'][34]++; + if ((position > 0)) { + _$jscoverage['core/Selection.js'][35]++; + endIndex = (index - 1); + } + else { + _$jscoverage['core/Selection.js'][36]++; + if ((position < 0)) { + _$jscoverage['core/Selection.js'][37]++; + startIndex = (index + 1); + } + else { + _$jscoverage['core/Selection.js'][40]++; + return ({container: parent, offset: getIndex(child)}); + } + } +} + _$jscoverage['core/Selection.js'][43]++; + if ((index == -1)) { + _$jscoverage['core/Selection.js'][44]++; + testRange.moveToElementText(parent); + _$jscoverage['core/Selection.js'][45]++; + testRange.setEndPoint("StartToStart", range); + _$jscoverage['core/Selection.js'][46]++; + distance = testRange.text.replace(/(\r\n|\r)/g, "\n").length; + _$jscoverage['core/Selection.js'][47]++; + siblings = parent.childNodes; + _$jscoverage['core/Selection.js'][48]++; + if ((! distance)) { + _$jscoverage['core/Selection.js'][49]++; + child = siblings[(siblings.length - 1)]; + _$jscoverage['core/Selection.js'][50]++; + return ({container: child, offset: child.nodeValue.length}); + } + _$jscoverage['core/Selection.js'][53]++; + var i = siblings.length; + _$jscoverage['core/Selection.js'][54]++; + while ((distance > 0)) { + _$jscoverage['core/Selection.js'][55]++; + distance -= siblings[(--i)].nodeValue.length; +} + _$jscoverage['core/Selection.js'][57]++; + return ({container: siblings[i], offset: (- distance)}); + } + _$jscoverage['core/Selection.js'][59]++; + testRange.collapse((position > 0)); + _$jscoverage['core/Selection.js'][60]++; + testRange.setEndPoint(((position > 0)? "StartToStart": "EndToStart"), range); + _$jscoverage['core/Selection.js'][61]++; + distance = testRange.text.replace(/(\r\n|\r)/g, "\n").length; + _$jscoverage['core/Selection.js'][62]++; + if ((! distance)) { + _$jscoverage['core/Selection.js'][63]++; + return ((dtd.$empty[child.tagName] || dtd.$nonChild[child.tagName])? {container: parent, offset: (getIndex(child) + ((position > 0)? 0: 1))}: {container: child, offset: ((position > 0)? 0: child.childNodes.length)}); + } + _$jscoverage['core/Selection.js'][67]++; + while ((distance > 0)) { + _$jscoverage['core/Selection.js'][68]++; + try { + _$jscoverage['core/Selection.js'][69]++; + var pre = child; + _$jscoverage['core/Selection.js'][70]++; + child = child[((position > 0)? "previousSibling": "nextSibling")]; + _$jscoverage['core/Selection.js'][71]++; + distance -= child.nodeValue.length; + } + catch (e) { + _$jscoverage['core/Selection.js'][73]++; + return ({container: parent, offset: getIndex(pre)}); + } +} + _$jscoverage['core/Selection.js'][76]++; + return ({container: child, offset: ((position > 0)? (- distance): (child.nodeValue.length + distance))}); +} + _$jscoverage['core/Selection.js'][85]++; + function transformIERangeToRange(ieRange, range) { + _$jscoverage['core/Selection.js'][86]++; + if (ieRange.item) { + _$jscoverage['core/Selection.js'][87]++; + range.selectNode(ieRange.item(0)); + } + else { + _$jscoverage['core/Selection.js'][89]++; + var bi = getBoundaryInformation(ieRange, true); + _$jscoverage['core/Selection.js'][90]++; + range.setStart(bi.container, bi.offset); + _$jscoverage['core/Selection.js'][91]++; + if ((ieRange.compareEndPoints("StartToEnd", ieRange) != 0)) { + _$jscoverage['core/Selection.js'][92]++; + bi = getBoundaryInformation(ieRange, false); + _$jscoverage['core/Selection.js'][93]++; + range.setEnd(bi.container, bi.offset); + } + } + _$jscoverage['core/Selection.js'][96]++; + return range; +} + _$jscoverage['core/Selection.js'][104]++; + function _getIERange(sel) { + _$jscoverage['core/Selection.js'][105]++; + var ieRange; + _$jscoverage['core/Selection.js'][107]++; + try { + _$jscoverage['core/Selection.js'][108]++; + ieRange = sel.getNative().createRange(); + } + catch (e) { + _$jscoverage['core/Selection.js'][110]++; + return null; + } + _$jscoverage['core/Selection.js'][112]++; + var el = (ieRange.item? ieRange.item(0): ieRange.parentElement()); + _$jscoverage['core/Selection.js'][113]++; + if (((el.ownerDocument || el) === sel.document)) { + _$jscoverage['core/Selection.js'][114]++; + return ieRange; + } + _$jscoverage['core/Selection.js'][116]++; + return null; +} + _$jscoverage['core/Selection.js'][119]++; + var Selection = (dom.Selection = (function (doc) { + _$jscoverage['core/Selection.js'][120]++; + var me = this, iframe; + _$jscoverage['core/Selection.js'][121]++; + me.document = doc; + _$jscoverage['core/Selection.js'][122]++; + if (ie) { + _$jscoverage['core/Selection.js'][123]++; + iframe = domUtils.getWindow(doc).frameElement; + _$jscoverage['core/Selection.js'][124]++; + domUtils.on(iframe, "beforedeactivate", (function () { + _$jscoverage['core/Selection.js'][125]++; + me._bakIERange = me.getIERange(); +})); + _$jscoverage['core/Selection.js'][127]++; + domUtils.on(iframe, "activate", (function () { + _$jscoverage['core/Selection.js'][128]++; + try { + _$jscoverage['core/Selection.js'][129]++; + if (((! _getIERange(me)) && me._bakIERange)) { + _$jscoverage['core/Selection.js'][130]++; + me._bakIERange.select(); + } + } + catch (ex) { + } + _$jscoverage['core/Selection.js'][134]++; + me._bakIERange = null; +})); + } + _$jscoverage['core/Selection.js'][137]++; + iframe = (doc = null); +})); + _$jscoverage['core/Selection.js'][140]++; + Selection.prototype = {getNative: (function () { + _$jscoverage['core/Selection.js'][151]++; + var doc = this.document; + _$jscoverage['core/Selection.js'][152]++; + try { + _$jscoverage['core/Selection.js'][153]++; + return ((! doc)? null: ((ie && (browser.ie < 9))? doc.selection: domUtils.getWindow(doc).getSelection())); + } + catch (e) { + _$jscoverage['core/Selection.js'][155]++; + return null; + } +}), getIERange: (function () { + _$jscoverage['core/Selection.js'][168]++; + var ieRange = _getIERange(this); + _$jscoverage['core/Selection.js'][169]++; + if ((! ieRange)) { + _$jscoverage['core/Selection.js'][170]++; + if (this._bakIERange) { + _$jscoverage['core/Selection.js'][171]++; + return this._bakIERange; + } + } + _$jscoverage['core/Selection.js'][174]++; + return ieRange; +}), cache: (function () { + _$jscoverage['core/Selection.js'][182]++; + this.clear(); + _$jscoverage['core/Selection.js'][183]++; + this._cachedRange = this.getRange(); + _$jscoverage['core/Selection.js'][184]++; + this._cachedStartElement = this.getStart(); + _$jscoverage['core/Selection.js'][185]++; + this._cachedStartElementPath = this.getStartElementPath(); +}), getStartElementPath: (function () { + _$jscoverage['core/Selection.js'][198]++; + if (this._cachedStartElementPath) { + _$jscoverage['core/Selection.js'][199]++; + return this._cachedStartElementPath; + } + _$jscoverage['core/Selection.js'][201]++; + var start = this.getStart(); + _$jscoverage['core/Selection.js'][202]++; + if (start) { + _$jscoverage['core/Selection.js'][203]++; + return domUtils.findParents(start, true, null, true); + } + _$jscoverage['core/Selection.js'][205]++; + return []; +}), clear: (function () { + _$jscoverage['core/Selection.js'][212]++; + this._cachedStartElementPath = (this._cachedRange = (this._cachedStartElement = null)); +}), isFocus: (function () { + _$jscoverage['core/Selection.js'][219]++; + try { + _$jscoverage['core/Selection.js'][220]++; + return (((browser.ie && _getIERange(this)) || ((! browser.ie) && this.getNative().rangeCount))? true: false); + } + catch (e) { + _$jscoverage['core/Selection.js'][222]++; + return false; + } +}), getRange: (function () { + _$jscoverage['core/Selection.js'][236]++; + var me = this; + _$jscoverage['core/Selection.js'][237]++; + function optimze(range) { + _$jscoverage['core/Selection.js'][238]++; + var child = me.document.body.firstChild, collapsed = range.collapsed; + _$jscoverage['core/Selection.js'][240]++; + while ((child && child.firstChild)) { + _$jscoverage['core/Selection.js'][241]++; + range.setStart(child, 0); + _$jscoverage['core/Selection.js'][242]++; + child = child.firstChild; +} + _$jscoverage['core/Selection.js'][244]++; + if ((! range.startContainer)) { + _$jscoverage['core/Selection.js'][245]++; + range.setStart(me.document.body, 0); + } + _$jscoverage['core/Selection.js'][247]++; + if (collapsed) { + _$jscoverage['core/Selection.js'][248]++; + range.collapse(true); + } +} + _$jscoverage['core/Selection.js'][252]++; + if ((me._cachedRange != null)) { + _$jscoverage['core/Selection.js'][253]++; + return this._cachedRange; + } + _$jscoverage['core/Selection.js'][255]++; + var range = new (baidu.editor.dom.Range)(me.document); + _$jscoverage['core/Selection.js'][256]++; + if ((ie && (browser.ie < 9))) { + _$jscoverage['core/Selection.js'][257]++; + var nativeRange = me.getIERange(); + _$jscoverage['core/Selection.js'][258]++; + if (nativeRange) { + _$jscoverage['core/Selection.js'][260]++; + try { + _$jscoverage['core/Selection.js'][261]++; + transformIERangeToRange(nativeRange, range); + } + catch (e) { + _$jscoverage['core/Selection.js'][263]++; + optimze(range); + } + } + else { + _$jscoverage['core/Selection.js'][267]++; + optimze(range); + } + } + else { + _$jscoverage['core/Selection.js'][270]++; + var sel = me.getNative(); + _$jscoverage['core/Selection.js'][271]++; + if ((sel && sel.rangeCount)) { + _$jscoverage['core/Selection.js'][272]++; + var firstRange = sel.getRangeAt(0); + _$jscoverage['core/Selection.js'][273]++; + var lastRange = sel.getRangeAt((sel.rangeCount - 1)); + _$jscoverage['core/Selection.js'][274]++; + range.setStart(firstRange.startContainer, firstRange.startOffset).setEnd(lastRange.endContainer, lastRange.endOffset); + _$jscoverage['core/Selection.js'][275]++; + if ((range.collapsed && domUtils.isBody(range.startContainer) && (! range.startOffset))) { + _$jscoverage['core/Selection.js'][276]++; + optimze(range); + } + } + else { + _$jscoverage['core/Selection.js'][280]++; + if ((this._bakRange && domUtils.inDoc(this._bakRange.startContainer, this.document))) { + _$jscoverage['core/Selection.js'][281]++; + return this._bakRange; + } + _$jscoverage['core/Selection.js'][283]++; + optimze(range); + } + } + _$jscoverage['core/Selection.js'][286]++; + return (this._bakRange = range); +}), getStart: (function () { + _$jscoverage['core/Selection.js'][298]++; + if (this._cachedStartElement) { + _$jscoverage['core/Selection.js'][299]++; + return this._cachedStartElement; + } + _$jscoverage['core/Selection.js'][301]++; + var range = (ie? this.getIERange(): this.getRange()), tmpRange, start, tmp, parent; + _$jscoverage['core/Selection.js'][304]++; + if (ie) { + _$jscoverage['core/Selection.js'][305]++; + if ((! range)) { + _$jscoverage['core/Selection.js'][307]++; + return this.document.body.firstChild; + } + _$jscoverage['core/Selection.js'][310]++; + if (range.item) { + _$jscoverage['core/Selection.js'][311]++; + return range.item(0); + } + _$jscoverage['core/Selection.js'][313]++; + tmpRange = range.duplicate(); + _$jscoverage['core/Selection.js'][315]++; + ((tmpRange.text.length > 0) && tmpRange.moveStart("character", 1)); + _$jscoverage['core/Selection.js'][316]++; + tmpRange.collapse(1); + _$jscoverage['core/Selection.js'][317]++; + start = tmpRange.parentElement(); + _$jscoverage['core/Selection.js'][318]++; + parent = (tmp = range.parentElement()); + _$jscoverage['core/Selection.js'][319]++; + while ((tmp = tmp.parentNode)) { + _$jscoverage['core/Selection.js'][320]++; + if ((tmp == start)) { + _$jscoverage['core/Selection.js'][321]++; + start = parent; + _$jscoverage['core/Selection.js'][322]++; + break; + } +} + } + else { + _$jscoverage['core/Selection.js'][326]++; + range.shrinkBoundary(); + _$jscoverage['core/Selection.js'][327]++; + start = range.startContainer; + _$jscoverage['core/Selection.js'][328]++; + if (((start.nodeType == 1) && start.hasChildNodes())) { + _$jscoverage['core/Selection.js'][329]++; + start = start.childNodes[Math.min((start.childNodes.length - 1), range.startOffset)]; + } + _$jscoverage['core/Selection.js'][331]++; + if ((start.nodeType == 3)) { + _$jscoverage['core/Selection.js'][332]++; + return start.parentNode; + } + } + _$jscoverage['core/Selection.js'][335]++; + return start; +}), getText: (function () { + _$jscoverage['core/Selection.js'][347]++; + var nativeSel, nativeRange; + _$jscoverage['core/Selection.js'][348]++; + if ((this.isFocus() && (nativeSel = this.getNative()))) { + _$jscoverage['core/Selection.js'][349]++; + nativeRange = (browser.ie? nativeSel.createRange(): nativeSel.getRangeAt(0)); + _$jscoverage['core/Selection.js'][350]++; + return (browser.ie? nativeRange.text: nativeRange.toString()); + } + _$jscoverage['core/Selection.js'][352]++; + return ""; +}), clearRange: (function () { + _$jscoverage['core/Selection.js'][363]++; + (this.getNative()[(browser.ie? "empty": "removeAllRanges")])(); +})}; +})(); diff --git a/_test/coverage/core/ajax.js b/_test/coverage/core/ajax.js new file mode 100644 index 000000000..ef9d21189 --- /dev/null +++ b/_test/coverage/core/ajax.js @@ -0,0 +1,203 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['core/ajax.js']) { + _$jscoverage['core/ajax.js'] = []; + _$jscoverage['core/ajax.js'][11] = 0; + _$jscoverage['core/ajax.js'][14] = 0; + _$jscoverage['core/ajax.js'][15] = 0; + _$jscoverage['core/ajax.js'][16] = 0; + _$jscoverage['core/ajax.js'][17] = 0; + _$jscoverage['core/ajax.js'][19] = 0; + _$jscoverage['core/ajax.js'][20] = 0; + _$jscoverage['core/ajax.js'][21] = 0; + _$jscoverage['core/ajax.js'][25] = 0; + _$jscoverage['core/ajax.js'][32] = 0; + _$jscoverage['core/ajax.js'][33] = 0; + _$jscoverage['core/ajax.js'][34] = 0; + _$jscoverage['core/ajax.js'][36] = 0; + _$jscoverage['core/ajax.js'][38] = 0; + _$jscoverage['core/ajax.js'][39] = 0; + _$jscoverage['core/ajax.js'][42] = 0; + _$jscoverage['core/ajax.js'][47] = 0; + _$jscoverage['core/ajax.js'][106] = 0; + _$jscoverage['core/ajax.js'][121] = 0; + _$jscoverage['core/ajax.js'][122] = 0; + _$jscoverage['core/ajax.js'][123] = 0; + _$jscoverage['core/ajax.js'][125] = 0; + _$jscoverage['core/ajax.js'][126] = 0; + _$jscoverage['core/ajax.js'][128] = 0; + _$jscoverage['core/ajax.js'][130] = 0; + _$jscoverage['core/ajax.js'][131] = 0; + _$jscoverage['core/ajax.js'][134] = 0; + _$jscoverage['core/ajax.js'][135] = 0; + _$jscoverage['core/ajax.js'][136] = 0; + _$jscoverage['core/ajax.js'][137] = 0; + _$jscoverage['core/ajax.js'][138] = 0; + _$jscoverage['core/ajax.js'][142] = 0; + _$jscoverage['core/ajax.js'][143] = 0; + _$jscoverage['core/ajax.js'][144] = 0; + _$jscoverage['core/ajax.js'][145] = 0; + _$jscoverage['core/ajax.js'][146] = 0; + _$jscoverage['core/ajax.js'][147] = 0; + _$jscoverage['core/ajax.js'][148] = 0; + _$jscoverage['core/ajax.js'][150] = 0; + _$jscoverage['core/ajax.js'][154] = 0; + _$jscoverage['core/ajax.js'][155] = 0; + _$jscoverage['core/ajax.js'][156] = 0; + _$jscoverage['core/ajax.js'][158] = 0; +} +_$jscoverage['core/ajax.js'].source = ["/**"," * @file"," * @module UE.ajax"," * @since 1.2.6.1"," */","","/**"," * 提供对ajax请求的支持"," * @module UE.ajax"," */","UE.ajax = function() {",""," //创建一个ajaxRequest对象"," var fnStr = 'XMLHttpRequest()';"," try {"," new ActiveXObject(\"Msxml2.XMLHTTP\");"," fnStr = 'ActiveXObject(\\'Msxml2.XMLHTTP\\')';"," } catch (e) {"," try {"," new ActiveXObject(\"Microsoft.XMLHTTP\");"," fnStr = 'ActiveXObject(\\'Microsoft.XMLHTTP\\')'"," } catch (e) {"," }"," }"," var creatAjaxRequest = new Function('return new ' + fnStr);","",""," /*"," * 将json参数转化成适合ajax提交的参数列表"," * @param json"," */"," function json2str(json) {"," var strArr = [];"," for (var i in json) {"," //忽略默认的几个参数"," if(i==\"method\" || i==\"timeout\" || i==\"async\") continue;"," //传递过来的对象和函数不在提交之列"," if (!((typeof json[i]).toLowerCase() == \"function\" || (typeof json[i]).toLowerCase() == \"object\")) {"," strArr.push( encodeURIComponent(i) + \"=\"+encodeURIComponent(json[i]) );"," }"," }"," return strArr.join(\"&\");",""," }","",""," return {"," /**"," * 根据给定的参数项,向指定的url发起一个ajax请求。 ajax请求完成后,会根据请求结果调用相应回调: 如果请求"," * 成功, 则调用onsuccess回调, 失败则调用 onerror 回调"," * @method request"," * @param { URLString } url ajax请求的url地址"," * @param { KeyValueMap } ajaxOptions ajax请求选项的键值对,支持的选项如下:"," * @example"," * ```javascript"," * //向sayhello.php发起一个异步的Ajax GET请求, 请求超时时间为10s, 请求完成后执行相应的回调。"," * UE.ajax.requeset( 'sayhello.php', {"," *"," * //请求方法。可选值: 'GET', 'POST',默认值是'POST'"," * method: 'GET',"," *"," * //超时时间。 默认为5000, 单位是ms"," * timeout: 10000,"," *"," * //是否是异步请求。 true为异步请求, false为同步请求"," * async: true,"," *"," * //请求携带的数据。如果请求为GET请求, data会经过stringify后附加到请求url之后。"," * data: {"," * name: 'ueditor'"," * },"," *"," * //请求成功后的回调, 该回调接受当前的XMLHttpRequest对象作为参数。"," * onsuccess: function ( xhr ) {"," * console.log( xhr.responseText );"," * },"," *"," * //请求失败或者超时后的回调。"," * onerror: function ( xhr ) {"," * alert( 'Ajax请求失败' );"," * }"," *"," * } );"," * ```"," */",""," /**"," * 根据给定的参数项发起一个ajax请求, 参数项里必须包含一个url地址。 ajax请求完成后,会根据请求结果调用相应回调: 如果请求"," * 成功, 则调用onsuccess回调, 失败则调用 onerror 回调。"," * @method request"," * @warning 如果在参数项里未提供一个key为“url”的地址值,则该请求将直接退出。"," * @param { KeyValueMap } ajaxOptions ajax请求选项的键值对,支持的选项如下:"," * @example"," * ```javascript"," *"," * //向sayhello.php发起一个异步的Ajax POST请求, 请求超时时间为5s, 请求完成后不执行任何回调。"," * UE.ajax.requeset( 'sayhello.php', {"," *"," * //请求的地址, 该项是必须的。"," * url: 'sayhello.php'"," *"," * } );"," * ```"," */","\t\trequest:function(url, ajaxOptions) {"," var ajaxRequest = creatAjaxRequest(),"," //是否超时"," timeIsOut = false,"," //默认参数"," defaultAjaxOptions = {"," method:\"POST\","," timeout:5000,"," async:true,"," data:{},//需要传递对象的话只能覆盖"," onsuccess:function() {"," },"," onerror:function() {"," }"," };","","\t\t\tif (typeof url === \"object\") {","\t\t\t\tajaxOptions = url;","\t\t\t\turl = ajaxOptions.url;","\t\t\t}","\t\t\tif (!ajaxRequest || !url) return;","\t\t\tvar ajaxOpts = ajaxOptions ? utils.extend(defaultAjaxOptions,ajaxOptions) : defaultAjaxOptions;","","\t\t\tvar submitStr = json2str(ajaxOpts); // { name:\"Jim\",city:\"Beijing\" } --> \"name=Jim&city=Beijing\"","\t\t\t//如果用户直接通过data参数传递json对象过来,则也要将此json对象转化为字符串","\t\t\tif (!utils.isEmptyObject(ajaxOpts.data)){"," submitStr += (submitStr? \"&\":\"\") + json2str(ajaxOpts.data);","\t\t\t}"," //超时检测"," var timerID = setTimeout(function() {"," if (ajaxRequest.readyState != 4) {"," timeIsOut = true;"," ajaxRequest.abort();"," clearTimeout(timerID);"," }"," }, ajaxOpts.timeout);","","\t\t\tvar method = ajaxOpts.method.toUpperCase();"," var str = url + (url.indexOf(\"?\")==-1?\"?\":\"&\") + (method==\"POST\"?\"\":submitStr+ \"&noCache=\" + +new Date);","\t\t\tajaxRequest.open(method, str, ajaxOpts.async);","\t\t\tajaxRequest.onreadystatechange = function() {","\t\t\t\tif (ajaxRequest.readyState == 4) {","\t\t\t\t\tif (!timeIsOut && ajaxRequest.status == 200) {","\t\t\t\t\t\tajaxOpts.onsuccess(ajaxRequest);","\t\t\t\t\t} else {","\t\t\t\t\t\tajaxOpts.onerror(ajaxRequest);","\t\t\t\t\t}","\t\t\t\t}","\t\t\t};","\t\t\tif (method == \"POST\") {","\t\t\t\tajaxRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');","\t\t\t\tajaxRequest.send(submitStr);","\t\t\t} else {","\t\t\t\tajaxRequest.send(null);","\t\t\t}","\t\t}","\t};","","","}();"]; +_$jscoverage['core/ajax.js'][11]++; +UE.ajax = (function () { + _$jscoverage['core/ajax.js'][14]++; + var fnStr = "XMLHttpRequest()"; + _$jscoverage['core/ajax.js'][15]++; + try { + _$jscoverage['core/ajax.js'][16]++; + new ActiveXObject("Msxml2.XMLHTTP"); + _$jscoverage['core/ajax.js'][17]++; + fnStr = "ActiveXObject('Msxml2.XMLHTTP')"; + } + catch (e) { + _$jscoverage['core/ajax.js'][19]++; + try { + _$jscoverage['core/ajax.js'][20]++; + new ActiveXObject("Microsoft.XMLHTTP"); + _$jscoverage['core/ajax.js'][21]++; + fnStr = "ActiveXObject('Microsoft.XMLHTTP')"; + } + catch (e) { + } + } + _$jscoverage['core/ajax.js'][25]++; + var creatAjaxRequest = new Function(("return new " + fnStr)); + _$jscoverage['core/ajax.js'][32]++; + function json2str(json) { + _$jscoverage['core/ajax.js'][33]++; + var strArr = []; + _$jscoverage['core/ajax.js'][34]++; + for (var i in json) { + _$jscoverage['core/ajax.js'][36]++; + if (((i == "method") || (i == "timeout") || (i == "async"))) { + _$jscoverage['core/ajax.js'][36]++; + continue; + } + _$jscoverage['core/ajax.js'][38]++; + if ((! (((typeof json[i]).toLowerCase() == "function") || ((typeof json[i]).toLowerCase() == "object")))) { + _$jscoverage['core/ajax.js'][39]++; + strArr.push((encodeURIComponent(i) + "=" + encodeURIComponent(json[i]))); + } +} + _$jscoverage['core/ajax.js'][42]++; + return strArr.join("&"); +} + _$jscoverage['core/ajax.js'][47]++; + return ({request: (function (url, ajaxOptions) { + _$jscoverage['core/ajax.js'][106]++; + var ajaxRequest = creatAjaxRequest(), timeIsOut = false, defaultAjaxOptions = {method: "POST", timeout: 5000, async: true, data: {}, onsuccess: (function () { +}), onerror: (function () { +})}; + _$jscoverage['core/ajax.js'][121]++; + if (((typeof url) === "object")) { + _$jscoverage['core/ajax.js'][122]++; + ajaxOptions = url; + _$jscoverage['core/ajax.js'][123]++; + url = ajaxOptions.url; + } + _$jscoverage['core/ajax.js'][125]++; + if (((! ajaxRequest) || (! url))) { + _$jscoverage['core/ajax.js'][125]++; + return; + } + _$jscoverage['core/ajax.js'][126]++; + var ajaxOpts = (ajaxOptions? utils.extend(defaultAjaxOptions, ajaxOptions): defaultAjaxOptions); + _$jscoverage['core/ajax.js'][128]++; + var submitStr = json2str(ajaxOpts); + _$jscoverage['core/ajax.js'][130]++; + if ((! utils.isEmptyObject(ajaxOpts.data))) { + _$jscoverage['core/ajax.js'][131]++; + submitStr += ((submitStr? "&": "") + json2str(ajaxOpts.data)); + } + _$jscoverage['core/ajax.js'][134]++; + var timerID = setTimeout((function () { + _$jscoverage['core/ajax.js'][135]++; + if ((ajaxRequest.readyState != 4)) { + _$jscoverage['core/ajax.js'][136]++; + timeIsOut = true; + _$jscoverage['core/ajax.js'][137]++; + ajaxRequest.abort(); + _$jscoverage['core/ajax.js'][138]++; + clearTimeout(timerID); + } +}), ajaxOpts.timeout); + _$jscoverage['core/ajax.js'][142]++; + var method = ajaxOpts.method.toUpperCase(); + _$jscoverage['core/ajax.js'][143]++; + var str = (url + ((url.indexOf("?") == -1)? "?": "&") + ((method == "POST")? "": (submitStr + "&noCache=" + (+ new Date())))); + _$jscoverage['core/ajax.js'][144]++; + ajaxRequest.open(method, str, ajaxOpts.async); + _$jscoverage['core/ajax.js'][145]++; + ajaxRequest.onreadystatechange = (function () { + _$jscoverage['core/ajax.js'][146]++; + if ((ajaxRequest.readyState == 4)) { + _$jscoverage['core/ajax.js'][147]++; + if (((! timeIsOut) && (ajaxRequest.status == 200))) { + _$jscoverage['core/ajax.js'][148]++; + ajaxOpts.onsuccess(ajaxRequest); + } + else { + _$jscoverage['core/ajax.js'][150]++; + ajaxOpts.onerror(ajaxRequest); + } + } +}); + _$jscoverage['core/ajax.js'][154]++; + if ((method == "POST")) { + _$jscoverage['core/ajax.js'][155]++; + ajaxRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); + _$jscoverage['core/ajax.js'][156]++; + ajaxRequest.send(submitStr); + } + else { + _$jscoverage['core/ajax.js'][158]++; + ajaxRequest.send(null); + } +})}); +})(); diff --git a/_test/coverage/core/browser.js b/_test/coverage/core/browser.js new file mode 100644 index 000000000..368582eb5 --- /dev/null +++ b/_test/coverage/core/browser.js @@ -0,0 +1,135 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['core/browser.js']) { + _$jscoverage['core/browser.js'] = []; + _$jscoverage['core/browser.js'][13] = 0; + _$jscoverage['core/browser.js'][14] = 0; + _$jscoverage['core/browser.js'][83] = 0; + _$jscoverage['core/browser.js'][85] = 0; + _$jscoverage['core/browser.js'][88] = 0; + _$jscoverage['core/browser.js'][89] = 0; + _$jscoverage['core/browser.js'][100] = 0; + _$jscoverage['core/browser.js'][112] = 0; + _$jscoverage['core/browser.js'][124] = 0; + _$jscoverage['core/browser.js'][136] = 0; + _$jscoverage['core/browser.js'][149] = 0; + _$jscoverage['core/browser.js'][154] = 0; + _$jscoverage['core/browser.js'][155] = 0; + _$jscoverage['core/browser.js'][156] = 0; + _$jscoverage['core/browser.js'][158] = 0; + _$jscoverage['core/browser.js'][159] = 0; + _$jscoverage['core/browser.js'][173] = 0; + _$jscoverage['core/browser.js'][174] = 0; + _$jscoverage['core/browser.js'][187] = 0; + _$jscoverage['core/browser.js'][188] = 0; + _$jscoverage['core/browser.js'][193] = 0; + _$jscoverage['core/browser.js'][194] = 0; + _$jscoverage['core/browser.js'][197] = 0; + _$jscoverage['core/browser.js'][198] = 0; + _$jscoverage['core/browser.js'][213] = 0; + _$jscoverage['core/browser.js'][224] = 0; + _$jscoverage['core/browser.js'][232] = 0; + _$jscoverage['core/browser.js'][235] = 0; +} +_$jscoverage['core/browser.js'].source = ["/**"," * 浏览器判断模块"," * @file"," * @module UE.browser"," * @since 1.2.6.1"," */","","/**"," * 提供浏览器检测的模块"," * @unfile"," * @module UE.browser"," */","var browser = UE.browser = function(){"," var agent = navigator.userAgent.toLowerCase(),"," opera = window.opera,"," browser = {",""," /**"," * @property {boolean} ie 检测当前浏览器是否为IE"," * @example"," * ```javascript"," * if ( UE.browser.ie ) {"," * console.log( '当前浏览器是IE' );"," * }"," * ```"," */"," ie\t\t: !!window.ActiveXObject,",""," /**"," * @property {boolean} opera 检测当前浏览器是否为Opera"," * @example"," * ```javascript"," * if ( UE.browser.opera ) {"," * console.log( '当前浏览器是Opera' );"," * }"," * ```"," */"," opera\t: ( !!opera && opera.version ),",""," /**"," * @property {boolean} webkit 检测当前浏览器是否是webkit内核的浏览器"," * @example"," * ```javascript"," * if ( UE.browser.webkit ) {"," * console.log( '当前浏览器是webkit内核浏览器' );"," * }"," * ```"," */"," webkit\t: ( agent.indexOf( ' applewebkit/' ) > -1 ),",""," /**"," * @property {boolean} mac 检测当前浏览器是否是运行在mac平台下"," * @example"," * ```javascript"," * if ( UE.browser.mac ) {"," * console.log( '当前浏览器运行在mac平台下' );"," * }"," * ```"," */"," mac\t: ( agent.indexOf( 'macintosh' ) > -1 ),",""," /**"," * @property {boolean} quirks 检测当前浏览器是否处于“怪异模式”下"," * @example"," * ```javascript"," * if ( UE.browser.quirks ) {"," * console.log( '当前浏览器运行处于“怪异模式”' );"," * }"," * ```"," */"," quirks : ( document.compatMode == 'BackCompat' )"," };",""," /**"," * @property {boolean} gecko 检测当前浏览器内核是否是gecko内核"," * @example"," * ```javascript"," * if ( UE.browser.gecko ) {"," * console.log( '当前浏览器内核是gecko内核' );"," * }"," * ```"," */"," browser.gecko =( navigator.product == 'Gecko' && !browser.webkit && !browser.opera );",""," var version = 0;",""," // Internet Explorer 6.0+"," if ( browser.ie ){"," version = parseFloat( agent.match( /msie (\\d+)/ )[1] );"," /**"," * @property { boolean } ie9Compat 检测浏览器模式是否为 IE9 兼容模式"," * @warning 如果浏览器不是IE, 则该值为undefined"," * @example"," * ```javascript"," * if ( UE.browser.ie9Compat ) {"," * console.log( '当前浏览器运行在IE9兼容模式下' );"," * }"," * ```"," */"," browser.ie9Compat = document.documentMode == 9;",""," /**"," * @property { boolean } ie8 检测浏览器是否是IE8浏览器"," * @warning 如果浏览器不是IE, 则该值为undefined"," * @example"," * ```javascript"," * if ( UE.browser.ie8 ) {"," * console.log( '当前浏览器是IE8浏览器' );"," * }"," * ```"," */"," browser.ie8 = !!document.documentMode;",""," /**"," * @property { boolean } ie8Compat 检测浏览器模式是否为 IE8 兼容模式"," * @warning 如果浏览器不是IE, 则该值为undefined"," * @example"," * ```javascript"," * if ( UE.browser.ie8Compat ) {"," * console.log( '当前浏览器运行在IE8兼容模式下' );"," * }"," * ```"," */"," browser.ie8Compat = document.documentMode == 8;",""," /**"," * @property { boolean } ie7Compat 检测浏览器模式是否为 IE7 兼容模式"," * @warning 如果浏览器不是IE, 则该值为undefined"," * @example"," * ```javascript"," * if ( UE.browser.ie7Compat ) {"," * console.log( '当前浏览器运行在IE7兼容模式下' );"," * }"," * ```"," */"," browser.ie7Compat = ( ( version == 7 && !document.documentMode )"," || document.documentMode == 7 );",""," /**"," * @property { boolean } ie6Compat 检测浏览器模式是否为 IE6 模式 或者怪异模式"," * @warning 如果浏览器不是IE, 则该值为undefined"," * @example"," * ```javascript"," * if ( UE.browser.ie6Compat ) {"," * console.log( '当前浏览器运行在IE6模式或者怪异模式下' );"," * }"," * ```"," */"," browser.ie6Compat = ( version < 7 || browser.quirks );",""," }",""," // Gecko."," if ( browser.gecko ){"," var geckoRelease = agent.match( /rv:([\\d\\.]+)/ );"," if ( geckoRelease )"," {"," geckoRelease = geckoRelease[1].split( '.' );"," version = geckoRelease[0] * 10000 + ( geckoRelease[1] || 0 ) * 100 + ( geckoRelease[2] || 0 ) * 1;"," }"," }",""," /**"," * @property { Number } chrome 检测当前浏览器是否为Chrome, 如果是,则返回Chrome的大版本号"," * @warning 如果浏览器不是chrome, 则该值为undefined"," * @example"," * ```javascript"," * if ( UE.browser.chrome ) {"," * console.log( '当前浏览器是Chrome' );"," * }"," * ```"," */"," if (/chrome\\/(\\d+\\.\\d)/i.test(agent)) {"," browser.chrome = + RegExp['\\x241'];"," }",""," /**"," * @property { Number } safari 检测当前浏览器是否为Safari, 如果是,则返回Safari的大版本号"," * @warning 如果浏览器不是safari, 则该值为undefined"," * @example"," * ```javascript"," * if ( UE.browser.safari ) {"," * console.log( '当前浏览器是Safari' );"," * }"," * ```"," */"," if(/(\\d+\\.\\d)?(?:\\.\\d)?\\s+safari\\/?(\\d+\\.\\d+)?/i.test(agent) && !/chrome/i.test(agent)){"," \tbrowser.safari = + (RegExp['\\x241'] || RegExp['\\x242']);"," }","",""," // Opera 9.50+"," if ( browser.opera )"," version = parseFloat( opera.version() );",""," // WebKit 522+ (Safari 3+)"," if ( browser.webkit )"," version = parseFloat( agent.match( / applewebkit\\/(\\d+)/ )[1] );",""," /**"," * @property { Number } version 检测当前浏览器版本号"," * @remind"," * <ul>"," * <li>IE系列返回值为5,6,7,8,9,10等</li>"," * <li>gecko系列会返回10900,158900等</li>"," * <li>webkit系列会返回其build号 (如 522等)</li>"," * </ul>"," * @example"," * ```javascript"," * console.log( '当前浏览器版本号是: ' + UE.browser.version );"," * ```"," */"," browser.version = version;",""," /**"," * @property { boolean } isCompatible 检测当前浏览器是否能够与UEditor良好兼容"," * @example"," * ```javascript"," * if ( UE.browser.isCompatible ) {"," * console.log( '浏览器与UEditor能够良好兼容' );"," * }"," * ```"," */"," browser.isCompatible ="," !browser.mobile && ("," ( browser.ie && version >= 6 ) ||"," ( browser.gecko && version >= 10801 ) ||"," ( browser.opera && version >= 9.5 ) ||"," ( browser.air && version >= 1 ) ||"," ( browser.webkit && version >= 522 ) ||"," false );"," return browser;","}();","//快捷方式","var ie = browser.ie,"," webkit = browser.webkit,"," gecko = browser.gecko,"," opera = browser.opera;"]; +_$jscoverage['core/browser.js'][13]++; +var browser = (UE.browser = (function () { + _$jscoverage['core/browser.js'][14]++; + var agent = navigator.userAgent.toLowerCase(), opera = window.opera, browser = {ie: (! (! window.ActiveXObject)), opera: ((! (! opera)) && opera.version), webkit: (agent.indexOf(" applewebkit/") > -1), mac: (agent.indexOf("macintosh") > -1), quirks: (document.compatMode == "BackCompat")}; + _$jscoverage['core/browser.js'][83]++; + browser.gecko = ((navigator.product == "Gecko") && (! browser.webkit) && (! browser.opera)); + _$jscoverage['core/browser.js'][85]++; + var version = 0; + _$jscoverage['core/browser.js'][88]++; + if (browser.ie) { + _$jscoverage['core/browser.js'][89]++; + version = parseFloat(agent.match(/msie (\d+)/)[1]); + _$jscoverage['core/browser.js'][100]++; + browser.ie9Compat = (document.documentMode == 9); + _$jscoverage['core/browser.js'][112]++; + browser.ie8 = (! (! document.documentMode)); + _$jscoverage['core/browser.js'][124]++; + browser.ie8Compat = (document.documentMode == 8); + _$jscoverage['core/browser.js'][136]++; + browser.ie7Compat = (((version == 7) && (! document.documentMode)) || (document.documentMode == 7)); + _$jscoverage['core/browser.js'][149]++; + browser.ie6Compat = ((version < 7) || browser.quirks); + } + _$jscoverage['core/browser.js'][154]++; + if (browser.gecko) { + _$jscoverage['core/browser.js'][155]++; + var geckoRelease = agent.match(/rv:([\d\.]+)/); + _$jscoverage['core/browser.js'][156]++; + if (geckoRelease) { + _$jscoverage['core/browser.js'][158]++; + geckoRelease = geckoRelease[1].split("."); + _$jscoverage['core/browser.js'][159]++; + version = ((geckoRelease[0] * 10000) + ((geckoRelease[1] || 0) * 100) + ((geckoRelease[2] || 0) * 1)); + } + } + _$jscoverage['core/browser.js'][173]++; + if (/chrome\/(\d+\.\d)/i.test(agent)) { + _$jscoverage['core/browser.js'][174]++; + browser.chrome = (+ RegExp.$1); + } + _$jscoverage['core/browser.js'][187]++; + if ((/(\d+\.\d)?(?:\.\d)?\s+safari\/?(\d+\.\d+)?/i.test(agent) && (! /chrome/i.test(agent)))) { + _$jscoverage['core/browser.js'][188]++; + browser.safari = (+ (RegExp.$1 || RegExp.$2)); + } + _$jscoverage['core/browser.js'][193]++; + if (browser.opera) { + _$jscoverage['core/browser.js'][194]++; + version = parseFloat(opera.version()); + } + _$jscoverage['core/browser.js'][197]++; + if (browser.webkit) { + _$jscoverage['core/browser.js'][198]++; + version = parseFloat(agent.match(/ applewebkit\/(\d+)/)[1]); + } + _$jscoverage['core/browser.js'][213]++; + browser.version = version; + _$jscoverage['core/browser.js'][224]++; + browser.isCompatible = ((! browser.mobile) && ((browser.ie && (version >= 6)) || (browser.gecko && (version >= 10801)) || (browser.opera && (version >= 9.5)) || (browser.air && (version >= 1)) || (browser.webkit && (version >= 522)) || false)); + _$jscoverage['core/browser.js'][232]++; + return browser; +})()); +_$jscoverage['core/browser.js'][235]++; +var ie = browser.ie, webkit = browser.webkit, gecko = browser.gecko, opera = browser.opera; diff --git a/_test/coverage/core/domUtils.js b/_test/coverage/core/domUtils.js new file mode 100644 index 000000000..12f26b157 --- /dev/null +++ b/_test/coverage/core/domUtils.js @@ -0,0 +1,1846 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['core/domUtils.js']) { + _$jscoverage['core/domUtils.js'] = []; + _$jscoverage['core/domUtils.js'][15] = 0; + _$jscoverage['core/domUtils.js'][16] = 0; + _$jscoverage['core/domUtils.js'][18] = 0; + _$jscoverage['core/domUtils.js'][19] = 0; + _$jscoverage['core/domUtils.js'][20] = 0; + _$jscoverage['core/domUtils.js'][21] = 0; + _$jscoverage['core/domUtils.js'][23] = 0; + _$jscoverage['core/domUtils.js'][25] = 0; + _$jscoverage['core/domUtils.js'][26] = 0; + _$jscoverage['core/domUtils.js'][28] = 0; + _$jscoverage['core/domUtils.js'][30] = 0; + _$jscoverage['core/domUtils.js'][53] = 0; + _$jscoverage['core/domUtils.js'][120] = 0; + _$jscoverage['core/domUtils.js'][122] = 0; + _$jscoverage['core/domUtils.js'][124] = 0; + _$jscoverage['core/domUtils.js'][127] = 0; + _$jscoverage['core/domUtils.js'][128] = 0; + _$jscoverage['core/domUtils.js'][130] = 0; + _$jscoverage['core/domUtils.js'][132] = 0; + _$jscoverage['core/domUtils.js'][134] = 0; + _$jscoverage['core/domUtils.js'][136] = 0; + _$jscoverage['core/domUtils.js'][137] = 0; + _$jscoverage['core/domUtils.js'][139] = 0; + _$jscoverage['core/domUtils.js'][141] = 0; + _$jscoverage['core/domUtils.js'][143] = 0; + _$jscoverage['core/domUtils.js'][145] = 0; + _$jscoverage['core/domUtils.js'][146] = 0; + _$jscoverage['core/domUtils.js'][147] = 0; + _$jscoverage['core/domUtils.js'][149] = 0; + _$jscoverage['core/domUtils.js'][151] = 0; + _$jscoverage['core/domUtils.js'][152] = 0; + _$jscoverage['core/domUtils.js'][154] = 0; + _$jscoverage['core/domUtils.js'][155] = 0; + _$jscoverage['core/domUtils.js'][156] = 0; + _$jscoverage['core/domUtils.js'][157] = 0; + _$jscoverage['core/domUtils.js'][159] = 0; + _$jscoverage['core/domUtils.js'][163] = 0; + _$jscoverage['core/domUtils.js'][181] = 0; + _$jscoverage['core/domUtils.js'][183] = 0; + _$jscoverage['core/domUtils.js'][184] = 0; + _$jscoverage['core/domUtils.js'][185] = 0; + _$jscoverage['core/domUtils.js'][186] = 0; + _$jscoverage['core/domUtils.js'][188] = 0; + _$jscoverage['core/domUtils.js'][190] = 0; + _$jscoverage['core/domUtils.js'][192] = 0; + _$jscoverage['core/domUtils.js'][217] = 0; + _$jscoverage['core/domUtils.js'][279] = 0; + _$jscoverage['core/domUtils.js'][280] = 0; + _$jscoverage['core/domUtils.js'][281] = 0; + _$jscoverage['core/domUtils.js'][282] = 0; + _$jscoverage['core/domUtils.js'][283] = 0; + _$jscoverage['core/domUtils.js'][285] = 0; + _$jscoverage['core/domUtils.js'][288] = 0; + _$jscoverage['core/domUtils.js'][350] = 0; + _$jscoverage['core/domUtils.js'][351] = 0; + _$jscoverage['core/domUtils.js'][352] = 0; + _$jscoverage['core/domUtils.js'][365] = 0; + _$jscoverage['core/domUtils.js'][366] = 0; + _$jscoverage['core/domUtils.js'][367] = 0; + _$jscoverage['core/domUtils.js'][369] = 0; + _$jscoverage['core/domUtils.js'][380] = 0; + _$jscoverage['core/domUtils.js'][420] = 0; + _$jscoverage['core/domUtils.js'][422] = 0; + _$jscoverage['core/domUtils.js'][423] = 0; + _$jscoverage['core/domUtils.js'][424] = 0; + _$jscoverage['core/domUtils.js'][425] = 0; + _$jscoverage['core/domUtils.js'][428] = 0; + _$jscoverage['core/domUtils.js'][430] = 0; + _$jscoverage['core/domUtils.js'][437] = 0; + _$jscoverage['core/domUtils.js'][456] = 0; + _$jscoverage['core/domUtils.js'][471] = 0; + _$jscoverage['core/domUtils.js'][472] = 0; + _$jscoverage['core/domUtils.js'][490] = 0; + _$jscoverage['core/domUtils.js'][491] = 0; + _$jscoverage['core/domUtils.js'][492] = 0; + _$jscoverage['core/domUtils.js'][493] = 0; + _$jscoverage['core/domUtils.js'][494] = 0; + _$jscoverage['core/domUtils.js'][495] = 0; + _$jscoverage['core/domUtils.js'][497] = 0; + _$jscoverage['core/domUtils.js'][499] = 0; + _$jscoverage['core/domUtils.js'][500] = 0; + _$jscoverage['core/domUtils.js'][501] = 0; + _$jscoverage['core/domUtils.js'][502] = 0; + _$jscoverage['core/domUtils.js'][503] = 0; + _$jscoverage['core/domUtils.js'][505] = 0; + _$jscoverage['core/domUtils.js'][506] = 0; + _$jscoverage['core/domUtils.js'][507] = 0; + _$jscoverage['core/domUtils.js'][509] = 0; + _$jscoverage['core/domUtils.js'][523] = 0; + _$jscoverage['core/domUtils.js'][524] = 0; + _$jscoverage['core/domUtils.js'][525] = 0; + _$jscoverage['core/domUtils.js'][528] = 0; + _$jscoverage['core/domUtils.js'][529] = 0; + _$jscoverage['core/domUtils.js'][530] = 0; + _$jscoverage['core/domUtils.js'][533] = 0; + _$jscoverage['core/domUtils.js'][534] = 0; + _$jscoverage['core/domUtils.js'][554] = 0; + _$jscoverage['core/domUtils.js'][555] = 0; + _$jscoverage['core/domUtils.js'][556] = 0; + _$jscoverage['core/domUtils.js'][557] = 0; + _$jscoverage['core/domUtils.js'][559] = 0; + _$jscoverage['core/domUtils.js'][561] = 0; + _$jscoverage['core/domUtils.js'][562] = 0; + _$jscoverage['core/domUtils.js'][563] = 0; + _$jscoverage['core/domUtils.js'][564] = 0; + _$jscoverage['core/domUtils.js'][566] = 0; + _$jscoverage['core/domUtils.js'][586] = 0; + _$jscoverage['core/domUtils.js'][604] = 0; + _$jscoverage['core/domUtils.js'][605] = 0; + _$jscoverage['core/domUtils.js'][606] = 0; + _$jscoverage['core/domUtils.js'][607] = 0; + _$jscoverage['core/domUtils.js'][608] = 0; + _$jscoverage['core/domUtils.js'][610] = 0; + _$jscoverage['core/domUtils.js'][641] = 0; + _$jscoverage['core/domUtils.js'][643] = 0; + _$jscoverage['core/domUtils.js'][644] = 0; + _$jscoverage['core/domUtils.js'][645] = 0; + _$jscoverage['core/domUtils.js'][646] = 0; + _$jscoverage['core/domUtils.js'][648] = 0; + _$jscoverage['core/domUtils.js'][649] = 0; + _$jscoverage['core/domUtils.js'][653] = 0; + _$jscoverage['core/domUtils.js'][654] = 0; + _$jscoverage['core/domUtils.js'][655] = 0; + _$jscoverage['core/domUtils.js'][656] = 0; + _$jscoverage['core/domUtils.js'][658] = 0; + _$jscoverage['core/domUtils.js'][659] = 0; + _$jscoverage['core/domUtils.js'][660] = 0; + _$jscoverage['core/domUtils.js'][665] = 0; + _$jscoverage['core/domUtils.js'][669] = 0; + _$jscoverage['core/domUtils.js'][700] = 0; + _$jscoverage['core/domUtils.js'][702] = 0; + _$jscoverage['core/domUtils.js'][703] = 0; + _$jscoverage['core/domUtils.js'][704] = 0; + _$jscoverage['core/domUtils.js'][705] = 0; + _$jscoverage['core/domUtils.js'][707] = 0; + _$jscoverage['core/domUtils.js'][708] = 0; + _$jscoverage['core/domUtils.js'][709] = 0; + _$jscoverage['core/domUtils.js'][711] = 0; + _$jscoverage['core/domUtils.js'][712] = 0; + _$jscoverage['core/domUtils.js'][713] = 0; + _$jscoverage['core/domUtils.js'][714] = 0; + _$jscoverage['core/domUtils.js'][716] = 0; + _$jscoverage['core/domUtils.js'][749] = 0; + _$jscoverage['core/domUtils.js'][750] = 0; + _$jscoverage['core/domUtils.js'][752] = 0; + _$jscoverage['core/domUtils.js'][754] = 0; + _$jscoverage['core/domUtils.js'][755] = 0; + _$jscoverage['core/domUtils.js'][757] = 0; + _$jscoverage['core/domUtils.js'][758] = 0; + _$jscoverage['core/domUtils.js'][759] = 0; + _$jscoverage['core/domUtils.js'][760] = 0; + _$jscoverage['core/domUtils.js'][761] = 0; + _$jscoverage['core/domUtils.js'][763] = 0; + _$jscoverage['core/domUtils.js'][764] = 0; + _$jscoverage['core/domUtils.js'][766] = 0; + _$jscoverage['core/domUtils.js'][769] = 0; + _$jscoverage['core/domUtils.js'][770] = 0; + _$jscoverage['core/domUtils.js'][771] = 0; + _$jscoverage['core/domUtils.js'][772] = 0; + _$jscoverage['core/domUtils.js'][774] = 0; + _$jscoverage['core/domUtils.js'][777] = 0; + _$jscoverage['core/domUtils.js'][779] = 0; + _$jscoverage['core/domUtils.js'][780] = 0; + _$jscoverage['core/domUtils.js'][784] = 0; + _$jscoverage['core/domUtils.js'][785] = 0; + _$jscoverage['core/domUtils.js'][786] = 0; + _$jscoverage['core/domUtils.js'][787] = 0; + _$jscoverage['core/domUtils.js'][790] = 0; + _$jscoverage['core/domUtils.js'][791] = 0; + _$jscoverage['core/domUtils.js'][794] = 0; + _$jscoverage['core/domUtils.js'][824] = 0; + _$jscoverage['core/domUtils.js'][826] = 0; + _$jscoverage['core/domUtils.js'][827] = 0; + _$jscoverage['core/domUtils.js'][828] = 0; + _$jscoverage['core/domUtils.js'][829] = 0; + _$jscoverage['core/domUtils.js'][830] = 0; + _$jscoverage['core/domUtils.js'][831] = 0; + _$jscoverage['core/domUtils.js'][832] = 0; + _$jscoverage['core/domUtils.js'][833] = 0; + _$jscoverage['core/domUtils.js'][835] = 0; + _$jscoverage['core/domUtils.js'][836] = 0; + _$jscoverage['core/domUtils.js'][839] = 0; + _$jscoverage['core/domUtils.js'][841] = 0; + _$jscoverage['core/domUtils.js'][842] = 0; + _$jscoverage['core/domUtils.js'][844] = 0; + _$jscoverage['core/domUtils.js'][845] = 0; + _$jscoverage['core/domUtils.js'][846] = 0; + _$jscoverage['core/domUtils.js'][847] = 0; + _$jscoverage['core/domUtils.js'][849] = 0; + _$jscoverage['core/domUtils.js'][850] = 0; + _$jscoverage['core/domUtils.js'][851] = 0; + _$jscoverage['core/domUtils.js'][854] = 0; + _$jscoverage['core/domUtils.js'][885] = 0; + _$jscoverage['core/domUtils.js'][900] = 0; + _$jscoverage['core/domUtils.js'][913] = 0; + _$jscoverage['core/domUtils.js'][918] = 0; + _$jscoverage['core/domUtils.js'][919] = 0; + _$jscoverage['core/domUtils.js'][920] = 0; + _$jscoverage['core/domUtils.js'][921] = 0; + _$jscoverage['core/domUtils.js'][922] = 0; + _$jscoverage['core/domUtils.js'][923] = 0; + _$jscoverage['core/domUtils.js'][924] = 0; + _$jscoverage['core/domUtils.js'][925] = 0; + _$jscoverage['core/domUtils.js'][926] = 0; + _$jscoverage['core/domUtils.js'][928] = 0; + _$jscoverage['core/domUtils.js'][929] = 0; + _$jscoverage['core/domUtils.js'][931] = 0; + _$jscoverage['core/domUtils.js'][932] = 0; + _$jscoverage['core/domUtils.js'][934] = 0; + _$jscoverage['core/domUtils.js'][935] = 0; + _$jscoverage['core/domUtils.js'][937] = 0; + _$jscoverage['core/domUtils.js'][939] = 0; + _$jscoverage['core/domUtils.js'][940] = 0; + _$jscoverage['core/domUtils.js'][941] = 0; + _$jscoverage['core/domUtils.js'][942] = 0; + _$jscoverage['core/domUtils.js'][943] = 0; + _$jscoverage['core/domUtils.js'][944] = 0; + _$jscoverage['core/domUtils.js'][958] = 0; + _$jscoverage['core/domUtils.js'][959] = 0; + _$jscoverage['core/domUtils.js'][961] = 0; + _$jscoverage['core/domUtils.js'][962] = 0; + _$jscoverage['core/domUtils.js'][964] = 0; + _$jscoverage['core/domUtils.js'][965] = 0; + _$jscoverage['core/domUtils.js'][967] = 0; + _$jscoverage['core/domUtils.js'][970] = 0; + _$jscoverage['core/domUtils.js'][972] = 0; + _$jscoverage['core/domUtils.js'][974] = 0; + _$jscoverage['core/domUtils.js'][1000] = 0; + _$jscoverage['core/domUtils.js'][1001] = 0; + _$jscoverage['core/domUtils.js'][1002] = 0; + _$jscoverage['core/domUtils.js'][1003] = 0; + _$jscoverage['core/domUtils.js'][1006] = 0; + _$jscoverage['core/domUtils.js'][1007] = 0; + _$jscoverage['core/domUtils.js'][1019] = 0; + _$jscoverage['core/domUtils.js'][1020] = 0; + _$jscoverage['core/domUtils.js'][1021] = 0; + _$jscoverage['core/domUtils.js'][1022] = 0; + _$jscoverage['core/domUtils.js'][1025] = 0; + _$jscoverage['core/domUtils.js'][1026] = 0; + _$jscoverage['core/domUtils.js'][1027] = 0; + _$jscoverage['core/domUtils.js'][1028] = 0; + _$jscoverage['core/domUtils.js'][1029] = 0; + _$jscoverage['core/domUtils.js'][1030] = 0; + _$jscoverage['core/domUtils.js'][1031] = 0; + _$jscoverage['core/domUtils.js'][1034] = 0; + _$jscoverage['core/domUtils.js'][1035] = 0; + _$jscoverage['core/domUtils.js'][1036] = 0; + _$jscoverage['core/domUtils.js'][1037] = 0; + _$jscoverage['core/domUtils.js'][1038] = 0; + _$jscoverage['core/domUtils.js'][1039] = 0; + _$jscoverage['core/domUtils.js'][1040] = 0; + _$jscoverage['core/domUtils.js'][1044] = 0; + _$jscoverage['core/domUtils.js'][1045] = 0; + _$jscoverage['core/domUtils.js'][1047] = 0; + _$jscoverage['core/domUtils.js'][1049] = 0; + _$jscoverage['core/domUtils.js'][1050] = 0; + _$jscoverage['core/domUtils.js'][1061] = 0; + _$jscoverage['core/domUtils.js'][1062] = 0; + _$jscoverage['core/domUtils.js'][1063] = 0; + _$jscoverage['core/domUtils.js'][1065] = 0; + _$jscoverage['core/domUtils.js'][1066] = 0; + _$jscoverage['core/domUtils.js'][1067] = 0; + _$jscoverage['core/domUtils.js'][1068] = 0; + _$jscoverage['core/domUtils.js'][1069] = 0; + _$jscoverage['core/domUtils.js'][1070] = 0; + _$jscoverage['core/domUtils.js'][1071] = 0; + _$jscoverage['core/domUtils.js'][1075] = 0; + _$jscoverage['core/domUtils.js'][1106] = 0; + _$jscoverage['core/domUtils.js'][1107] = 0; + _$jscoverage['core/domUtils.js'][1108] = 0; + _$jscoverage['core/domUtils.js'][1109] = 0; + _$jscoverage['core/domUtils.js'][1111] = 0; + _$jscoverage['core/domUtils.js'][1113] = 0; + _$jscoverage['core/domUtils.js'][1114] = 0; + _$jscoverage['core/domUtils.js'][1115] = 0; + _$jscoverage['core/domUtils.js'][1116] = 0; + _$jscoverage['core/domUtils.js'][1118] = 0; + _$jscoverage['core/domUtils.js'][1120] = 0; + _$jscoverage['core/domUtils.js'][1121] = 0; + _$jscoverage['core/domUtils.js'][1125] = 0; + _$jscoverage['core/domUtils.js'][1126] = 0; + _$jscoverage['core/domUtils.js'][1127] = 0; + _$jscoverage['core/domUtils.js'][1130] = 0; + _$jscoverage['core/domUtils.js'][1189] = 0; + _$jscoverage['core/domUtils.js'][1190] = 0; + _$jscoverage['core/domUtils.js'][1191] = 0; + _$jscoverage['core/domUtils.js'][1192] = 0; + _$jscoverage['core/domUtils.js'][1193] = 0; + _$jscoverage['core/domUtils.js'][1194] = 0; + _$jscoverage['core/domUtils.js'][1196] = 0; + _$jscoverage['core/domUtils.js'][1199] = 0; + _$jscoverage['core/domUtils.js'][1202] = 0; + _$jscoverage['core/domUtils.js'][1203] = 0; + _$jscoverage['core/domUtils.js'][1218] = 0; + _$jscoverage['core/domUtils.js'][1219] = 0; + _$jscoverage['core/domUtils.js'][1221] = 0; + _$jscoverage['core/domUtils.js'][1222] = 0; + _$jscoverage['core/domUtils.js'][1224] = 0; + _$jscoverage['core/domUtils.js'][1225] = 0; + _$jscoverage['core/domUtils.js'][1226] = 0; + _$jscoverage['core/domUtils.js'][1227] = 0; + _$jscoverage['core/domUtils.js'][1232] = 0; + _$jscoverage['core/domUtils.js'][1234] = 0; + _$jscoverage['core/domUtils.js'][1235] = 0; + _$jscoverage['core/domUtils.js'][1239] = 0; + _$jscoverage['core/domUtils.js'][1286] = 0; + _$jscoverage['core/domUtils.js'][1287] = 0; + _$jscoverage['core/domUtils.js'][1288] = 0; + _$jscoverage['core/domUtils.js'][1289] = 0; + _$jscoverage['core/domUtils.js'][1291] = 0; + _$jscoverage['core/domUtils.js'][1292] = 0; + _$jscoverage['core/domUtils.js'][1294] = 0; + _$jscoverage['core/domUtils.js'][1295] = 0; + _$jscoverage['core/domUtils.js'][1297] = 0; + _$jscoverage['core/domUtils.js'][1323] = 0; + _$jscoverage['core/domUtils.js'][1349] = 0; + _$jscoverage['core/domUtils.js'][1350] = 0; + _$jscoverage['core/domUtils.js'][1351] = 0; + _$jscoverage['core/domUtils.js'][1352] = 0; + _$jscoverage['core/domUtils.js'][1355] = 0; + _$jscoverage['core/domUtils.js'][1356] = 0; + _$jscoverage['core/domUtils.js'][1358] = 0; + _$jscoverage['core/domUtils.js'][1359] = 0; + _$jscoverage['core/domUtils.js'][1361] = 0; + _$jscoverage['core/domUtils.js'][1362] = 0; + _$jscoverage['core/domUtils.js'][1364] = 0; + _$jscoverage['core/domUtils.js'][1365] = 0; + _$jscoverage['core/domUtils.js'][1367] = 0; + _$jscoverage['core/domUtils.js'][1371] = 0; + _$jscoverage['core/domUtils.js'][1398] = 0; + _$jscoverage['core/domUtils.js'][1400] = 0; + _$jscoverage['core/domUtils.js'][1401] = 0; + _$jscoverage['core/domUtils.js'][1404] = 0; + _$jscoverage['core/domUtils.js'][1405] = 0; + _$jscoverage['core/domUtils.js'][1408] = 0; + _$jscoverage['core/domUtils.js'][1410] = 0; + _$jscoverage['core/domUtils.js'][1411] = 0; + _$jscoverage['core/domUtils.js'][1412] = 0; + _$jscoverage['core/domUtils.js'][1413] = 0; + _$jscoverage['core/domUtils.js'][1414] = 0; + _$jscoverage['core/domUtils.js'][1415] = 0; + _$jscoverage['core/domUtils.js'][1416] = 0; + _$jscoverage['core/domUtils.js'][1417] = 0; + _$jscoverage['core/domUtils.js'][1419] = 0; + _$jscoverage['core/domUtils.js'][1420] = 0; + _$jscoverage['core/domUtils.js'][1425] = 0; + _$jscoverage['core/domUtils.js'][1427] = 0; + _$jscoverage['core/domUtils.js'][1471] = 0; + _$jscoverage['core/domUtils.js'][1473] = 0; + _$jscoverage['core/domUtils.js'][1474] = 0; + _$jscoverage['core/domUtils.js'][1476] = 0; + _$jscoverage['core/domUtils.js'][1477] = 0; + _$jscoverage['core/domUtils.js'][1478] = 0; + _$jscoverage['core/domUtils.js'][1480] = 0; + _$jscoverage['core/domUtils.js'][1528] = 0; + _$jscoverage['core/domUtils.js'][1529] = 0; + _$jscoverage['core/domUtils.js'][1530] = 0; + _$jscoverage['core/domUtils.js'][1531] = 0; + _$jscoverage['core/domUtils.js'][1532] = 0; + _$jscoverage['core/domUtils.js'][1581] = 0; + _$jscoverage['core/domUtils.js'][1582] = 0; + _$jscoverage['core/domUtils.js'][1584] = 0; + _$jscoverage['core/domUtils.js'][1585] = 0; + _$jscoverage['core/domUtils.js'][1586] = 0; + _$jscoverage['core/domUtils.js'][1587] = 0; + _$jscoverage['core/domUtils.js'][1590] = 0; + _$jscoverage['core/domUtils.js'][1603] = 0; + _$jscoverage['core/domUtils.js'][1628] = 0; + _$jscoverage['core/domUtils.js'][1630] = 0; + _$jscoverage['core/domUtils.js'][1631] = 0; + _$jscoverage['core/domUtils.js'][1633] = 0; + _$jscoverage['core/domUtils.js'][1635] = 0; + _$jscoverage['core/domUtils.js'][1636] = 0; + _$jscoverage['core/domUtils.js'][1638] = 0; + _$jscoverage['core/domUtils.js'][1643] = 0; + _$jscoverage['core/domUtils.js'][1644] = 0; + _$jscoverage['core/domUtils.js'][1673] = 0; + _$jscoverage['core/domUtils.js'][1674] = 0; + _$jscoverage['core/domUtils.js'][1703] = 0; + _$jscoverage['core/domUtils.js'][1704] = 0; + _$jscoverage['core/domUtils.js'][1705] = 0; + _$jscoverage['core/domUtils.js'][1735] = 0; + _$jscoverage['core/domUtils.js'][1736] = 0; + _$jscoverage['core/domUtils.js'][1737] = 0; + _$jscoverage['core/domUtils.js'][1747] = 0; + _$jscoverage['core/domUtils.js'][1748] = 0; + _$jscoverage['core/domUtils.js'][1750] = 0; + _$jscoverage['core/domUtils.js'][1798] = 0; + _$jscoverage['core/domUtils.js'][1799] = 0; + _$jscoverage['core/domUtils.js'][1800] = 0; + _$jscoverage['core/domUtils.js'][1802] = 0; + _$jscoverage['core/domUtils.js'][1803] = 0; + _$jscoverage['core/domUtils.js'][1804] = 0; + _$jscoverage['core/domUtils.js'][1806] = 0; + _$jscoverage['core/domUtils.js'][1808] = 0; + _$jscoverage['core/domUtils.js'][1822] = 0; + _$jscoverage['core/domUtils.js'][1823] = 0; + _$jscoverage['core/domUtils.js'][1839] = 0; + _$jscoverage['core/domUtils.js'][1840] = 0; + _$jscoverage['core/domUtils.js'][1841] = 0; + _$jscoverage['core/domUtils.js'][1853] = 0; + _$jscoverage['core/domUtils.js'][1854] = 0; + _$jscoverage['core/domUtils.js'][1856] = 0; + _$jscoverage['core/domUtils.js'][1862] = 0; + _$jscoverage['core/domUtils.js'][1863] = 0; + _$jscoverage['core/domUtils.js'][1869] = 0; + _$jscoverage['core/domUtils.js'][1870] = 0; + _$jscoverage['core/domUtils.js'][1876] = 0; + _$jscoverage['core/domUtils.js'][1877] = 0; + _$jscoverage['core/domUtils.js'][1878] = 0; + _$jscoverage['core/domUtils.js'][1879] = 0; + _$jscoverage['core/domUtils.js'][1880] = 0; + _$jscoverage['core/domUtils.js'][1882] = 0; + _$jscoverage['core/domUtils.js'][1883] = 0; + _$jscoverage['core/domUtils.js'][1894] = 0; + _$jscoverage['core/domUtils.js'][1905] = 0; + _$jscoverage['core/domUtils.js'][1910] = 0; + _$jscoverage['core/domUtils.js'][1914] = 0; + _$jscoverage['core/domUtils.js'][1915] = 0; + _$jscoverage['core/domUtils.js'][1916] = 0; + _$jscoverage['core/domUtils.js'][1917] = 0; + _$jscoverage['core/domUtils.js'][1918] = 0; + _$jscoverage['core/domUtils.js'][1919] = 0; + _$jscoverage['core/domUtils.js'][1922] = 0; + _$jscoverage['core/domUtils.js'][1923] = 0; + _$jscoverage['core/domUtils.js'][1924] = 0; + _$jscoverage['core/domUtils.js'][1927] = 0; + _$jscoverage['core/domUtils.js'][1928] = 0; + _$jscoverage['core/domUtils.js'][1929] = 0; + _$jscoverage['core/domUtils.js'][1931] = 0; + _$jscoverage['core/domUtils.js'][1932] = 0; + _$jscoverage['core/domUtils.js'][1933] = 0; + _$jscoverage['core/domUtils.js'][1935] = 0; + _$jscoverage['core/domUtils.js'][1936] = 0; + _$jscoverage['core/domUtils.js'][1938] = 0; + _$jscoverage['core/domUtils.js'][1939] = 0; + _$jscoverage['core/domUtils.js'][1940] = 0; + _$jscoverage['core/domUtils.js'][1941] = 0; + _$jscoverage['core/domUtils.js'][1942] = 0; + _$jscoverage['core/domUtils.js'][1944] = 0; + _$jscoverage['core/domUtils.js'][1946] = 0; + _$jscoverage['core/domUtils.js'][1947] = 0; + _$jscoverage['core/domUtils.js'][1949] = 0; + _$jscoverage['core/domUtils.js'][1950] = 0; + _$jscoverage['core/domUtils.js'][1951] = 0; + _$jscoverage['core/domUtils.js'][1953] = 0; + _$jscoverage['core/domUtils.js'][1954] = 0; + _$jscoverage['core/domUtils.js'][1956] = 0; + _$jscoverage['core/domUtils.js'][1960] = 0; + _$jscoverage['core/domUtils.js'][1987] = 0; + _$jscoverage['core/domUtils.js'][1988] = 0; + _$jscoverage['core/domUtils.js'][1989] = 0; + _$jscoverage['core/domUtils.js'][1990] = 0; + _$jscoverage['core/domUtils.js'][1991] = 0; + _$jscoverage['core/domUtils.js'][1993] = 0; + _$jscoverage['core/domUtils.js'][1994] = 0; + _$jscoverage['core/domUtils.js'][1995] = 0; + _$jscoverage['core/domUtils.js'][1998] = 0; + _$jscoverage['core/domUtils.js'][2028] = 0; + _$jscoverage['core/domUtils.js'][2029] = 0; + _$jscoverage['core/domUtils.js'][2030] = 0; + _$jscoverage['core/domUtils.js'][2031] = 0; + _$jscoverage['core/domUtils.js'][2032] = 0; + _$jscoverage['core/domUtils.js'][2033] = 0; + _$jscoverage['core/domUtils.js'][2034] = 0; + _$jscoverage['core/domUtils.js'][2036] = 0; + _$jscoverage['core/domUtils.js'][2037] = 0; + _$jscoverage['core/domUtils.js'][2065] = 0; + _$jscoverage['core/domUtils.js'][2066] = 0; + _$jscoverage['core/domUtils.js'][2067] = 0; + _$jscoverage['core/domUtils.js'][2133] = 0; + _$jscoverage['core/domUtils.js'][2134] = 0; + _$jscoverage['core/domUtils.js'][2135] = 0; + _$jscoverage['core/domUtils.js'][2137] = 0; + _$jscoverage['core/domUtils.js'][2163] = 0; + _$jscoverage['core/domUtils.js'][2174] = 0; + _$jscoverage['core/domUtils.js'][2196] = 0; + _$jscoverage['core/domUtils.js'][2266] = 0; + _$jscoverage['core/domUtils.js'][2267] = 0; + _$jscoverage['core/domUtils.js'][2268] = 0; + _$jscoverage['core/domUtils.js'][2269] = 0; + _$jscoverage['core/domUtils.js'][2270] = 0; + _$jscoverage['core/domUtils.js'][2273] = 0; + _$jscoverage['core/domUtils.js'][2274] = 0; + _$jscoverage['core/domUtils.js'][2276] = 0; + _$jscoverage['core/domUtils.js'][2280] = 0; + _$jscoverage['core/domUtils.js'][2281] = 0; + _$jscoverage['core/domUtils.js'][2282] = 0; + _$jscoverage['core/domUtils.js'][2284] = 0; + _$jscoverage['core/domUtils.js'][2285] = 0; + _$jscoverage['core/domUtils.js'][2287] = 0; + _$jscoverage['core/domUtils.js'][2288] = 0; + _$jscoverage['core/domUtils.js'][2289] = 0; + _$jscoverage['core/domUtils.js'][2290] = 0; + _$jscoverage['core/domUtils.js'][2291] = 0; + _$jscoverage['core/domUtils.js'][2293] = 0; + _$jscoverage['core/domUtils.js'][2296] = 0; + _$jscoverage['core/domUtils.js'][2297] = 0; + _$jscoverage['core/domUtils.js'][2298] = 0; + _$jscoverage['core/domUtils.js'][2299] = 0; + _$jscoverage['core/domUtils.js'][2300] = 0; + _$jscoverage['core/domUtils.js'][2301] = 0; + _$jscoverage['core/domUtils.js'][2304] = 0; + _$jscoverage['core/domUtils.js'][2307] = 0; +} +_$jscoverage['core/domUtils.js'].source = ["/**"," * Dom操作工具包"," * @file"," * @module UE.dom.domUtils"," * @since 1.2.6.1"," */","","/**"," * Dom操作工具包"," * @unfile"," * @module UE.dom.domUtils"," */","","//getNode(node, 'firstChild', 'nextSibling', startFromChild, filterFn, guard);","function getNode( node, start, ltr, startFromChild, fn, guard ) {"," var tmpNode = startFromChild && node[start],"," parent;"," !tmpNode && (tmpNode = node[ltr]);"," while (!tmpNode && (parent = (parent || node).parentNode)) {"," if (parent.tagName == 'BODY' || guard && !guard(parent)) {"," return null;"," }"," tmpNode = parent[ltr];"," }"," if (tmpNode && fn && !fn(tmpNode)) {"," return getNode(tmpNode, start, ltr, false, fn);"," }"," return tmpNode;","}","var attrFix = ie && browser.version < 9 ? {"," tabindex:\"tabIndex\","," readonly:\"readOnly\","," \"for\":\"htmlFor\","," \"class\":\"className\","," maxlength:\"maxLength\","," cellspacing:\"cellSpacing\","," cellpadding:\"cellPadding\","," rowspan:\"rowSpan\","," colspan:\"colSpan\","," usemap:\"useMap\","," frameborder:\"frameBorder\""," } : {"," tabindex:\"tabIndex\","," readonly:\"readOnly\""," },"," styleBlock = utils.listToMap(["," '-webkit-box', '-moz-box', 'block' ,"," 'list-item' , 'table' , 'table-row-group' ,"," 'table-header-group', 'table-footer-group' ,"," 'table-row' , 'table-column-group' , 'table-column' ,"," 'table-cell' , 'table-caption'"," ]);","var domUtils = dom.domUtils = {"," //节点常量"," NODE_ELEMENT:1,"," NODE_DOCUMENT:9,"," NODE_TEXT:3,"," NODE_COMMENT:8,"," NODE_DOCUMENT_FRAGMENT:11,",""," //位置关系"," POSITION_IDENTICAL:0,"," POSITION_DISCONNECTED:1,"," POSITION_FOLLOWING:2,"," POSITION_PRECEDING:4,"," POSITION_IS_CONTAINED:8,"," POSITION_CONTAINS:16,"," //ie6使用其他的会有一段空白出现"," fillChar:ie && browser.version == '6' ? '\\ufeff' : '\\u200B',"," //-------------------------Node部分--------------------------------"," keys:{"," /*Backspace*/ 8:1, /*Delete*/ 46:1,"," /*Shift*/ 16:1, /*Ctrl*/ 17:1, /*Alt*/ 18:1,"," 37:1, 38:1, 39:1, 40:1,"," 13:1 /*enter*/"," },"," /**"," * 获取节点A相对于节点B的位置关系"," * @method getPosition"," * @param { Node } nodeA 需要查询位置关系的节点A"," * @param { Node } nodeB 需要查询位置关系的节点B"," * @return { Number } 节点A与节点B的关系"," * @example"," * ```javascript"," * //output: 20"," * var position = UE.dom.domUtils.getPosition( document.documentElement, document.body );"," *"," * switch ( position ) {"," *"," * case 0:"," * console.log('元素相同');"," * break;"," * case 1:"," * console.log('两个节点在不同的文档中');"," * break;"," * case 2:"," * console.log('节点A在节点B之后');"," * break;"," * case 4;"," * console.log('节点A在节点B之前');"," * break;"," * case 8:"," * console.log('节点A被节点B包含');"," * break;"," * case 10:"," * console.log('节点A被节点B包含且节点A在节点B之后');"," * break;"," * case 16:"," * console.log('节点A包含节点B');"," * break;"," * case 20:"," * console.log('节点A包含节点B且节点A在节点B之前');"," * break;"," *"," * }"," * ```"," */"," getPosition:function (nodeA, nodeB) {"," // 如果两个节点是同一个节点"," if (nodeA === nodeB) {"," // domUtils.POSITION_IDENTICAL"," return 0;"," }"," var node,"," parentsA = [nodeA],"," parentsB = [nodeB];"," node = nodeA;"," while (node = node.parentNode) {"," // 如果nodeB是nodeA的祖先节点"," if (node === nodeB) {"," // domUtils.POSITION_IS_CONTAINED + domUtils.POSITION_FOLLOWING"," return 10;"," }"," parentsA.push(node);"," }"," node = nodeB;"," while (node = node.parentNode) {"," // 如果nodeA是nodeB的祖先节点"," if (node === nodeA) {"," // domUtils.POSITION_CONTAINS + domUtils.POSITION_PRECEDING"," return 20;"," }"," parentsB.push(node);"," }"," parentsA.reverse();"," parentsB.reverse();"," if (parentsA[0] !== parentsB[0]) {"," // domUtils.POSITION_DISCONNECTED"," return 1;"," }"," var i = -1;"," while (i++, parentsA[i] === parentsB[i]) {"," }"," nodeA = parentsA[i];"," nodeB = parentsB[i];"," while (nodeA = nodeA.nextSibling) {"," if (nodeA === nodeB) {"," // domUtils.POSITION_PRECEDING"," return 4"," }"," }"," // domUtils.POSITION_FOLLOWING"," return 2;"," },",""," /**"," * 检测节点node在父节点中的索引位置"," * @method getNodeIndex"," * @param { Node } node 需要检测的节点对象"," * @return { Number } 该节点在父节点中的位置"," */",""," /**"," * 检测节点node在父节点中的索引位置, 根据给定的mergeTextNode参数决定是否要合并多个连续的文本节点为一个节点"," * @method getNodeIndex"," * @param { Node } node 需要检测的节点对象"," * @param { Boolean } ignoreTextNode 是否忽略文本节点"," * @return { Number } 该节点在父节点中的位置"," */"," getNodeIndex:function (node, ignoreTextNode) {"," var preNode = node,"," i = 0;"," while (preNode = preNode.previousSibling) {"," if (ignoreTextNode && preNode.nodeType == 3) {"," if(preNode.nodeType != preNode.nextSibling.nodeType ){"," i++;"," }"," continue;"," }"," i++;"," }"," return i;"," },",""," /**"," * 检测节点node是否在给定doc的树上,实质上是检测该节点是否在给定的dom树上"," * @method inDoc"," * @param { Node } node 需要检测的节点对象"," * @param { DomDocument } doc 需要检测的document对象"," * @return { Boolean } 该节点node是否在给定的document的dom树上"," * @example"," * ```javascript"," *"," * var node = document.createElement(\"div\");"," *"," * //output: false"," * console.log( UE.do.domUtils.inDoc( node, document ) );"," *"," * document.body.appendChild( node );"," *"," * //output: true"," * console.log( UE.do.domUtils.inDoc( node, document ) );"," *"," * ```"," */"," inDoc:function (node, doc) {"," return domUtils.getPosition(node, doc) == 10;"," },",""," /**"," * 根据给定的过滤规则filterFn, 查找符合该过滤规则的node节点的祖先节点,"," * 查找的过程中不包含自身节点。"," * @method findParent"," * @param { Node } node 需要查找的节点"," * @param { Function } filterFn 自定义的过滤方法。"," * @warning 查找的终点是到body节点为止"," * @remind 自定义的过滤方法filterFn接受一个Node对象作为参数, 该对象代表当前执行检测的祖先节点。 如果该"," * 节点满足过滤条件, 则要求返回true, 这时将直接返回该节点作为findParent()的结果, 否则, 请返回false。"," * @return { Node | Null } 如果找到符合过滤条件的节点, 就返回该节点, 否则返回NULL"," * @example"," * ```javascript"," * var filterNode = UE.dom.domUtils.findParent( document.body.firstChild, function ( node ) {"," *"," * //由于查找的终点是body节点, 所以永远也不会匹配当前过滤器的条件, 即这里永远会返回false"," * return node.tagName === \"HTML\";"," *"," * } );"," *"," * //output: true"," * console.log( filterNode === null );"," * ```"," */",""," /**"," * 根据给定的过滤规则filterFn, 查找符合该过滤规则的node节点的祖先节点,"," * 查找的过程中根据includeSelf的值决定是否包含自身节点。"," * @method findParent"," * @param { Node } node 需要查找的节点"," * @param { Function } filterFn 自定义的过滤方法。"," * @param { Boolean } includeSelf 查找过程是否包含自身"," * @warning 查找的终点是到body节点为止"," * @remind 自定义的过滤方法filterFn接受一个Node对象作为参数, 该对象代表当前执行检测的祖先节点。 如果该"," * 节点满足过滤条件, 则要求返回true, 这时将直接返回该节点作为findParent()的结果, 否则, 请返回false。"," * @remind 如果includeSelf为true, 则过滤器第一次执行时的参数会是节点本身。"," * 反之, 过滤器第一次执行时的参数将是该节点的父节点。"," * @return { Node | Null } 如果找到符合过滤条件的节点, 就返回该节点, 否则返回NULL"," * @example"," * ```html"," * <body>"," *"," * <div id=\"test\">"," * </div>"," *"," * <script type=\"text/javascript\">"," *"," * //output: DIV, BODY"," * var filterNode = UE.dom.domUtils.findParent( document.getElementById( \"test\" ), function ( node ) {"," *"," * console.log( node.tagName );"," * return false;"," *"," * }, true );"," *"," * </script>"," * </body>"," * ```"," */"," findParent:function (node, filterFn, includeSelf) {"," if (node && !domUtils.isBody(node)) {"," node = includeSelf ? node : node.parentNode;"," while (node) {"," if (!filterFn || filterFn(node) || domUtils.isBody(node)) {"," return filterFn && !filterFn(node) && domUtils.isBody(node) ? null : node;"," }"," node = node.parentNode;"," }"," }"," return null;"," },",""," /**"," * 查找node的节点名为tagName的祖先节点, 查找过程中不包含node节点自身"," * @method findParentByTagName"," * @param { Node } node 需要查找的节点对象"," * @param { Array } tagNames 需要查找的父节点的名称数组"," * @warning 查找的终点是到body节点为止"," * @return { Node | NULL } 如果找到符合条件的节点, 则返回该节点, 否则返回NULL"," * @example"," * ```javascript"," * var node = UE.dom.domUtils.findParentByTagName( document.getElementsByTagName(\"div\")[0], [ \"BODY\" ] );"," * //output: BODY"," * console.log( node.tagName );"," * ```"," */",""," /**"," * 查找node的节点名为tagName的祖先节点, 查找过程中根据includeSelf的值决定是否包含node节点自身"," * @method findParentByTagName"," * @param { Node } node 需要查找的节点对象"," * @param { Array } tagNames 需要查找的父节点的名称数组"," * @param { Boolean } includeSelf 查找过程是否包含node节点自身"," * @warning 查找的终点是到body节点为止"," * @return { Node | NULL } 如果找到符合条件的节点, 则返回该节点, 否则返回NULL"," * @example"," * ```javascript"," * var queryTarget = document.getElementsByTagName(\"div\")[0];"," * var node = UE.dom.domUtils.findParentByTagName( queryTarget, [ \"DIV\" ], true );"," * //output: true"," * console.log( queryTarget === node );"," * ```"," */",""," /**"," * 查找node的节点名为tagName的祖先节点,并且该祖先节点不满足excludeFn过滤器的过滤要求,"," * 查找过程中根据includeSelf的值决定是否包含node节点自身,"," * @method findParentByTagName"," * @param { Node } node 需要查找的节点对象"," * @param { Array } tagNames 需要查找的父节点的名称数组"," * @param { Boolean } includeSelf 查找过程是否包含node节点自身"," * @param { Function } excludeFn 查找过程中应用的过滤器, 如果该过滤器对给定的节点返回true,"," * 则该节点将被排除在查询结果之外。"," * @remind 查找过滤器excludeFn要求对不应该被匹配的节点应该返回true"," * @warning 查找的终点是到body节点为止"," * @return { Node | NULL } 如果找到符合条件的节点, 则返回该节点, 否则返回NULL"," * @example"," * ```javascript"," * var queryTarget = document.getElementsByTagName(\"div\")[0];"," *"," * //需要查找的节点和过滤器的过滤条件刚好冲突, 执行结果将永远为NULL"," * var node = UE.dom.domUtils.findParentByTagName( queryTarget, [ \"DIV\" ], false, function ( node ) {"," *"," * return node.tagName.toLowerCase() === 'div';"," *"," * } );"," * //output: true"," * console.log( queryTarget === null );"," * ```"," */"," findParentByTagName:function (node, tagNames, includeSelf, excludeFn) {"," tagNames = utils.listToMap(utils.isArray(tagNames) ? tagNames : [tagNames]);"," return domUtils.findParent(node, function (node) {"," return tagNames[node.tagName] && !(excludeFn && excludeFn(node));"," }, includeSelf);"," },",""," /*"," * 查找节点node的祖先节点集合"," * @name findParents"," * @grammar UE.dom.domUtils.findParents(node) => Array //返回一个祖先节点数组集合,不包含自身"," * @grammar UE.dom.domUtils.findParents(node,includeSelf) => Array //返回一个祖先节点数组集合,includeSelf指定是否包含自身"," * @grammar UE.dom.domUtils.findParents(node,includeSelf,filterFn) => Array //返回一个祖先节点数组集合,filterFn指定过滤条件,返回true的node将被选取"," * @grammar UE.dom.domUtils.findParents(node,includeSelf,filterFn,closerFirst) => Array //返回一个祖先节点数组集合,closerFirst为true的话,node的直接父亲节点是数组的第0个"," */"," findParents:function (node, includeSelf, filterFn, closerFirst) {"," var parents = includeSelf && ( filterFn && filterFn(node) || !filterFn ) ? [node] : [];"," while (node = domUtils.findParent(node, filterFn)) {"," parents.push(node);"," }"," return closerFirst ? parents : parents.reverse();"," },",""," /**"," * 在节点node后面插入新节点newNode"," * @method insertAfter"," * @param { Node } node 目标节点"," * @param { Node } newNode 新插入的节点, 该节点将置于目标节点之后"," * @return { Node } 新插入的节点"," */"," insertAfter:function (node, newNode) {"," return node.parentNode.insertBefore(newNode, node.nextSibling);"," },",""," /**"," * 删除节点node及其下属的所有节点"," * @method remove"," * @param { Node } node 需要删除的节点对象"," * @return { Node } 返回刚删除的节点对象"," * @example"," * ```html"," * <div id=\"test\">"," * <div id=\"child\">你好</div>"," * </div>"," * <script>"," * UE.dom.domUtils.remove( document.body, false );"," * //output: false"," * console.log( document.getElementById( \"child\" ) !== null );"," * </script>"," * ```"," */",""," /**"," * 删除节点node,并根据keepChildren的值决定是否保留子节点"," * @method remove"," * @param { Node } node 需要删除的节点对象"," * @param { Boolean } keepChildren 是否需要保留子节点"," * @return { Node } 返回刚删除的节点对象"," * @example"," * ```html"," * <div id=\"test\">"," * <div id=\"child\">你好</div>"," * </div>"," * <script>"," * UE.dom.domUtils.remove( document.body, true );"," * //output: true"," * console.log( document.getElementById( \"child\" ) !== null );"," * </script>"," * ```"," */"," remove:function (node, keepChildren) {"," var parent = node.parentNode,"," child;"," if (parent) {"," if (keepChildren && node.hasChildNodes()) {"," while (child = node.firstChild) {"," parent.insertBefore(child, node);"," }"," }"," parent.removeChild(node);"," }"," return node;"," },",""," /*"," * 取得node节点在dom树上的下一个节点,即多叉树遍历"," */"," getNextNode:function (node, startFromChild, filterFn, guard) {"," return getNode(node, 'firstChild', 'nextSibling', startFromChild, filterFn, guard);"," },",""," /**"," * 检测节点node是否属是UEditor定义的bookmark节点"," * @method isBookmarkNode"," * @param { Node } node 需要检测的节点对象"," * @return { Boolean } 是否是bookmark节点"," * @example"," * ```html"," * <span id=\"_baidu_bookmark_1\"></span>"," * <script>"," * var bookmarkNode = document.getElementById(\"_baidu_bookmark_1\");"," * //output: true"," * console.log( UE.dom.domUtils.isBookmarkNode( bookmarkNode ) );"," * </script>"," * ```"," */"," isBookmarkNode:function (node) {"," return node.nodeType == 1 && node.id && /^_baidu_bookmark_/i.test(node.id);"," },",""," /**"," * 获取节点node所属的window对象"," * @method getWindow"," * @param { Node } node 节点对象"," * @return { Window } 当前节点所属的window对象"," * @example"," * ```javascript"," * //output: true"," * console.log( UE.dom.domUtils.getWindow( document.body ) === window );"," * ```"," */"," getWindow:function (node) {"," var doc = node.ownerDocument || node;"," return doc.defaultView || doc.parentWindow;"," },",""," /**"," * 获取离nodeA与nodeB最近的公共的祖先节点"," * @method getCommonAncestor"," * @param { Node } nodeA 第一个节点"," * @param { Node } nodeB 第二个节点"," * @remind 如果给定的两个节点是同一个节点, 将直接返回该节点。"," * @return { Node | NULL } 如果未找到公共节点, 返回NULL, 否则返回最近的公共祖先节点。"," * @example"," * ```javascript"," * var commonAncestor = UE.dom.domUtils.getCommonAncestor( document.body, document.body.firstChild );"," * //output: true"," * console.log( commonAncestor.tagName.toLowerCase() === 'body' );"," * ```"," */"," getCommonAncestor:function (nodeA, nodeB) {"," if (nodeA === nodeB)"," return nodeA;"," var parentsA = [nodeA] , parentsB = [nodeB], parent = nodeA, i = -1;"," while (parent = parent.parentNode) {"," if (parent === nodeB) {"," return parent;"," }"," parentsA.push(parent);"," }"," parent = nodeB;"," while (parent = parent.parentNode) {"," if (parent === nodeA)"," return parent;"," parentsB.push(parent);"," }"," parentsA.reverse();"," parentsB.reverse();"," while (i++, parentsA[i] === parentsB[i]) {"," }"," return i == 0 ? null : parentsA[i - 1];",""," },",""," /*"," * 清除node节点左右兄弟为空的inline节点"," * @name clearEmptySibling"," * @grammar UE.dom.domUtils.clearEmptySibling(node)"," * @grammar UE.dom.domUtils.clearEmptySibling(node,ignoreNext) //ignoreNext指定是否忽略右边空节点"," * @grammar UE.dom.domUtils.clearEmptySibling(node,ignoreNext,ignorePre) //ignorePre指定是否忽略左边空节点"," * @example"," * <b></b><i></i>xxxx<b>bb</b> --> xxxx<b>bb</b>"," */"," clearEmptySibling:function (node, ignoreNext, ignorePre) {"," function clear(next, dir) {"," var tmpNode;"," while (next && !domUtils.isBookmarkNode(next) && (domUtils.isEmptyInlineElement(next)"," //这里不能把空格算进来会吧空格干掉,出现文字间的空格丢掉了"," || !new RegExp('[^\\t\\n\\r' + domUtils.fillChar + ']').test(next.nodeValue) )) {"," tmpNode = next[dir];"," domUtils.remove(next);"," next = tmpNode;"," }"," }"," !ignoreNext && clear(node.nextSibling, 'nextSibling');"," !ignorePre && clear(node.previousSibling, 'previousSibling');"," },",""," /**"," * 将一个文本节点textNode拆分成两个文本节点,offset指定拆分位置"," * @method split"," * @param { Node } textNode 需要拆分的文本节点对象"," * @param { int } offset 需要拆分的位置, 位置计算从0开始"," * @return { Node } 拆分后形成的新节点"," * @example"," * ```html"," * <div id=\"test\">abcdef</div>"," * <script>"," * var newNode = UE.dom.domUtils.split( document.getElementById( \"test\" ), 3 );"," * //output: def"," * console.log( newNode.nodeValue );"," * </script>"," * ```"," */"," split:function (node, offset) {"," var doc = node.ownerDocument;"," if (browser.ie && offset == node.nodeValue.length) {"," var next = doc.createTextNode('');"," return domUtils.insertAfter(node, next);"," }"," var retval = node.splitText(offset);"," //ie8下splitText不会跟新childNodes,我们手动触发他的更新"," if (browser.ie8) {"," var tmpNode = doc.createTextNode('');"," domUtils.insertAfter(retval, tmpNode);"," domUtils.remove(tmpNode);"," }"," return retval;"," },",""," /**"," * 检测文本节点textNode是否为空节点(包括空格、换行、占位符等字符)"," * @method isWhitespace"," * @param { Node } node 需要检测的节点对象"," * @return { Boolean } 检测的节点是否为空"," * @example"," * ```html"," * <div id=\"test\">"," *"," * </div>"," * <script>"," * //output: true"," * console.log( UE.dom.domUtils.isWhitespace( document.getElementById(\"test\").firstChild ) );"," * </script>"," * ```"," */"," isWhitespace:function (node) {"," return !new RegExp('[^ \\t\\n\\r' + domUtils.fillChar + ']').test(node.nodeValue);"," },",""," /**"," * 获取元素element相对于viewport的位置坐标"," * @method getXY"," * @param { Node } element 需要计算位置的节点对象"," * @return { KeyValueMap } 返回形如{x:left,y:top}的一个key-value映射对象, 其中键x代表水平偏移距离,"," * y代表垂直偏移距离。"," *"," * @example"," * ```javascript"," * var location = UE.dom.domUtils.getXY( document.getElementById(\"test\") );"," * //output: test的坐标为: 12, 24"," * console.log( 'test的坐标为: ', location.x, ',', location.y );"," * ```"," */"," getXY:function (element) {"," var x = 0, y = 0;"," while (element.offsetParent) {"," y += element.offsetTop;"," x += element.offsetLeft;"," element = element.offsetParent;"," }"," return { 'x':x, 'y':y};"," },",""," /**"," * 为元素element绑定原生DOM事件,type为事件类型,handler为处理函数"," * @method on"," * @param { Node } element 需要绑定事件的节点对象"," * @param { String } type 绑定的事件类型"," * @param { Function } handler 事件处理器"," * @example"," * ```javascript"," * UE.dom.domUtils.on(document.body,\"click\",function(e){"," * //e为事件对象,this为被点击元素对戏那个"," * });"," * ```"," */",""," /**"," * 为元素element绑定原生DOM事件,type为事件类型,handler为处理函数"," * @method on"," * @param { Node } element 需要绑定事件的节点对象"," * @param { Array } type 绑定的事件类型数组"," * @param { Function } handler 事件处理器"," * @example"," * ```javascript"," * UE.dom.domUtils.on(document.body,[\"click\",\"mousedown\"],function(evt){"," * //evt为事件对象,this为被点击元素对象"," * });"," * ```"," */"," on:function (element, type, handler) {"," var types = utils.isArray(type) ? type : [type],"," k = types.length;"," if (k) while (k--) {"," type = types[k];"," if (element.addEventListener) {"," element.addEventListener(type, handler, false);"," } else {"," if (!handler._d) {"," handler._d = {"," els : []"," };"," }"," var key = type + handler.toString(),index = utils.indexOf(handler._d.els,element);"," if (!handler._d[key] || index == -1) {"," if(index == -1){"," handler._d.els.push(element);"," }"," if(!handler._d[key]){"," handler._d[key] = function (evt) {"," return handler.call(evt.srcElement, evt || window.event);"," };"," }","",""," element.attachEvent('on' + type, handler._d[key]);"," }"," }"," }"," element = null;"," },",""," /**"," * 解除DOM事件绑定"," * @method un"," * @param { Node } element 需要解除事件绑定的节点对象"," * @param { String } type 需要接触绑定的事件类型"," * @param { Function } handler 对应的事件处理器"," * @example"," * ```javascript"," * UE.dom.domUtils.un(document.body,\"click\",function(evt){"," * //evt为事件对象,this为被点击元素对象"," * });"," * ```"," */",""," /**"," * 解除DOM事件绑定"," * @method un"," * @param { Node } element 需要解除事件绑定的节点对象"," * @param { Array } type 需要接触绑定的事件类型数组"," * @param { Function } handler 对应的事件处理器"," * @example"," * ```javascript"," * UE.dom.domUtils.un(document.body, [\"click\",\"mousedown\"],function(evt){"," * //evt为事件对象,this为被点击元素对象"," * });"," * ```"," */"," un:function (element, type, handler) {"," var types = utils.isArray(type) ? type : [type],"," k = types.length;"," if (k) while (k--) {"," type = types[k];"," if (element.removeEventListener) {"," element.removeEventListener(type, handler, false);"," } else {"," var key = type + handler.toString();"," try{"," element.detachEvent('on' + type, handler._d ? handler._d[key] : handler);"," }catch(e){}"," if (handler._d && handler._d[key]) {"," var index = utils.indexOf(handler._d.els,element);"," if(index!=-1){"," handler._d.els.splice(index,1);"," }"," handler._d.els.length == 0 && delete handler._d[key];"," }"," }"," }"," },",""," /**"," * 比较节点nodeA与节点nodeB是否具有相同的标签名、属性名以及属性值"," * @method isSameElement"," * @param { Node } nodeA 需要比较的节点"," * @param { Node } nodeB 需要比较的节点"," * @return { Boolean } 两个节点是否具有相同的标签名、属性名以及属性值"," * @example"," * ```html"," * <span style=\"font-size:12px\">ssss</span>"," * <span style=\"font-size:12px\">bbbbb</span>"," * <span style=\"font-size:13px\">ssss</span>"," * <span style=\"font-size:14px\">bbbbb</span>"," *"," * <script>"," *"," * var nodes = document.getElementsByTagName( \"span\" );"," *"," * //output: true"," * console.log( UE.dom.domUtils.isSameElement( nodes[0], nodes[1] ) );"," *"," * //output: false"," * console.log( UE.dom.domUtils.isSameElement( nodes[2], nodes[3] ) );"," *"," * </script>"," * ```"," */"," isSameElement:function (nodeA, nodeB) {"," if (nodeA.tagName != nodeB.tagName) {"," return false;"," }"," var thisAttrs = nodeA.attributes,"," otherAttrs = nodeB.attributes;"," if (!ie && thisAttrs.length != otherAttrs.length) {"," return false;"," }"," var attrA, attrB, al = 0, bl = 0;"," for (var i = 0; attrA = thisAttrs[i++];) {"," if (attrA.nodeName == 'style') {"," if (attrA.specified) {"," al++;"," }"," if (domUtils.isSameStyle(nodeA, nodeB)) {"," continue;"," } else {"," return false;"," }"," }"," if (ie) {"," if (attrA.specified) {"," al++;"," attrB = otherAttrs.getNamedItem(attrA.nodeName);"," } else {"," continue;"," }"," } else {"," attrB = nodeB.attributes[attrA.nodeName];"," }"," if (!attrB.specified || attrA.nodeValue != attrB.nodeValue) {"," return false;"," }"," }"," // 有可能attrB的属性包含了attrA的属性之外还有自己的属性"," if (ie) {"," for (i = 0; attrB = otherAttrs[i++];) {"," if (attrB.specified) {"," bl++;"," }"," }"," if (al != bl) {"," return false;"," }"," }"," return true;"," },",""," /**"," * 判断节点nodeA与节点nodeB的元素的style属性是否一致"," * @method isSameStyle"," * @param { Node } nodeA 需要比较的节点"," * @param { Node } nodeB 需要比较的节点"," * @return { Boolean } 两个节点是否具有相同的style属性值"," * @example"," * ```html"," * <span style=\"font-size:12px\">ssss</span>"," * <span style=\"font-size:12px\">bbbbb</span>"," * <span style=\"font-size:13px\">ssss</span>"," * <span style=\"font-size:14px\">bbbbb</span>"," *"," * <script>"," *"," * var nodes = document.getElementsByTagName( \"span\" );"," *"," * //output: true"," * console.log( UE.dom.domUtils.isSameElement( nodes[0], nodes[1] ) );"," *"," * //output: false"," * console.log( UE.dom.domUtils.isSameElement( nodes[2], nodes[3] ) );"," *"," * </script>"," * ```"," */"," isSameStyle:function (nodeA, nodeB) {"," var styleA = nodeA.style.cssText.replace(/( ?; ?)/g, ';').replace(/( ?: ?)/g, ':'),"," styleB = nodeB.style.cssText.replace(/( ?; ?)/g, ';').replace(/( ?: ?)/g, ':');"," if (browser.opera) {"," styleA = nodeA.style;"," styleB = nodeB.style;"," if (styleA.length != styleB.length)"," return false;"," for (var p in styleA) {"," if (/^(\\d+|csstext)$/i.test(p)) {"," continue;"," }"," if (styleA[p] != styleB[p]) {"," return false;"," }"," }"," return true;"," }"," if (!styleA || !styleB) {"," return styleA == styleB;"," }"," styleA = styleA.split(';');"," styleB = styleB.split(';');"," if (styleA.length != styleB.length) {"," return false;"," }"," for (var i = 0, ci; ci = styleA[i++];) {"," if (utils.indexOf(styleB, ci) == -1) {"," return false;"," }"," }"," return true;"," },",""," /**"," * 检查节点node是否为block元素"," * @method isBlockElm"," * @param { Node } node 需要检测的节点对象"," * @return { Boolean } 是否是block元素节点"," * @warning 该方法的判断规则如下: 如果该元素原本是block元素, 则不论该元素当前的css样式是什么都会返回true;"," * 否则,检测该元素的css样式, 如果该元素当前是block元素, 则返回true。 其余情况下都返回false。"," * @example"," * ```html"," * <span id=\"test1\" style=\"display: block\"></span>"," * <span id=\"test2\"></span>"," * <div id=\"test3\" style=\"display: inline\"></div>"," *"," * <script>"," *"," * //output: true"," * console.log( UE.dom.domUtils.isBlockEle( document.getElementById(\"test1\") ) );"," *"," * //output: false"," * console.log( UE.dom.domUtils.isBlockEle( document.getElementById(\"test2\") ) );"," *"," * //output: true"," * console.log( UE.dom.domUtils.isBlockEle( document.getElementById(\"test3\") ) );"," *"," * </script>"," * ```"," */"," isBlockElm:function (node) {"," return node.nodeType == 1 && (dtd.$block[node.tagName] || styleBlock[domUtils.getComputedStyle(node, 'display')]) && !dtd.$nonChild[node.tagName];"," },",""," /**"," * 检测node节点是否为body节点"," * @method isBody"," * @param { Element } node 需要检测的dom元素"," * @return { Boolean } 给定的元素是否是body元素"," * @example"," * ```javascript"," * //output: true"," * console.log( UE.dom.domUtils.isBody( document.body ) );"," * ```"," */"," isBody:function (node) {"," return node && node.nodeType == 1 && node.tagName.toLowerCase() == 'body';"," },",""," /*"," * 以node节点为中心,将该节点的指定祖先节点parent拆分成2块"," * @name breakParent"," * @grammar UE.dom.domUtils.breakParent(node,parent) => node"," * @desc"," * <code type=\"html\"><b>ooo</b>是node节点"," * <p>xxxx<b>ooo</b>xxx</p> ==> <p>xxx</p><b>ooo</b><p>xxx</p>"," * <p>xxxxx<span>xxxx<b>ooo</b>xxxxxx</span></p> => <p>xxxxx<span>xxxx</span></p><b>ooo</b><p><span>xxxxxx</span></p></code>"," */"," breakParent:function (node, parent) {"," var tmpNode,"," parentClone = node,"," clone = node,"," leftNodes,"," rightNodes;"," do {"," parentClone = parentClone.parentNode;"," if (leftNodes) {"," tmpNode = parentClone.cloneNode(false);"," tmpNode.appendChild(leftNodes);"," leftNodes = tmpNode;"," tmpNode = parentClone.cloneNode(false);"," tmpNode.appendChild(rightNodes);"," rightNodes = tmpNode;"," } else {"," leftNodes = parentClone.cloneNode(false);"," rightNodes = leftNodes.cloneNode(false);"," }"," while (tmpNode = clone.previousSibling) {"," leftNodes.insertBefore(tmpNode, leftNodes.firstChild);"," }"," while (tmpNode = clone.nextSibling) {"," rightNodes.appendChild(tmpNode);"," }"," clone = parentClone;"," } while (parent !== parentClone);"," tmpNode = parent.parentNode;"," tmpNode.insertBefore(leftNodes, parent);"," tmpNode.insertBefore(rightNodes, parent);"," tmpNode.insertBefore(node, rightNodes);"," domUtils.remove(parent);"," return node;"," },",""," /*"," * 检查节点node是否是空inline节点"," * @name isEmptyInlineElement"," * @grammar UE.dom.domUtils.isEmptyInlineElement(node) => 1|0"," * @example"," * <b><i></i></b> => 1"," * <b><i></i><u></u></b> => 1"," * <b></b> => 1"," * <b>xx<i></i></b> => 0"," */"," isEmptyInlineElement:function (node) {"," if (node.nodeType != 1 || !dtd.$removeEmpty[ node.tagName ]) {"," return 0;"," }"," node = node.firstChild;"," while (node) {"," //如果是创建的bookmark就跳过"," if (domUtils.isBookmarkNode(node)) {"," return 0;"," }"," if (node.nodeType == 1 && !domUtils.isEmptyInlineElement(node) ||"," node.nodeType == 3 && !domUtils.isWhitespace(node)"," ) {"," return 0;"," }"," node = node.nextSibling;"," }"," return 1;",""," },",""," /**"," * 删除node节点下首尾两端的空白文本子节点"," * @method trimWhiteTextNode"," * @param { Element } node 需要执行删除操作的元素对象"," * @example"," * ```html"," * <div id=\"test\">"," * <div></div>"," * </div>"," *"," * <script>"," * var testNode = document.getElementById(\"test\");"," * //output: 3"," * console.log(testNode.childNodes.length);"," *"," * UE.dom.domUtils.trimWhiteTextNode( testNode );"," * //output: 1"," * console.log(testNode.childNodes.length);"," * </script>"," * ```"," */"," trimWhiteTextNode:function (node) {"," function remove(dir) {"," var child;"," while ((child = node[dir]) && child.nodeType == 3 && domUtils.isWhitespace(child)) {"," node.removeChild(child);"," }"," }"," remove('firstChild');"," remove('lastChild');"," },",""," /*"," * 合并node节点下相同的子节点"," * @method mergeChild"," * @example"," * <p><span style=\"font-size:12px;\">xx<span style=\"font-size:12px;\">aa</span>xx</span></p>"," * ==> UE.dom.domUtils.mergeChild(node,'span')"," * <p><span style=\"font-size:12px;\">xxaaxx</span></p>"," */"," mergeChild:function (node, tagName, attrs) {"," var list = domUtils.getElementsByTagName(node, node.tagName.toLowerCase());"," for (var i = 0, ci; ci = list[i++];) {"," if (!ci.parentNode || domUtils.isBookmarkNode(ci)) {"," continue;"," }"," //span单独处理"," if (ci.tagName.toLowerCase() == 'span') {"," if (node === ci.parentNode) {"," domUtils.trimWhiteTextNode(node);"," if (node.childNodes.length == 1) {"," node.style.cssText = ci.style.cssText + \";\" + node.style.cssText;"," domUtils.remove(ci, true);"," continue;"," }"," }"," ci.style.cssText = node.style.cssText + ';' + ci.style.cssText;"," if (attrs) {"," var style = attrs.style;"," if (style) {"," style = style.split(';');"," for (var j = 0, s; s = style[j++];) {"," ci.style[utils.cssStyleToDomStyle(s.split(':')[0])] = s.split(':')[1];"," }"," }"," }"," if (domUtils.isSameStyle(ci, node)) {"," domUtils.remove(ci, true);"," }"," continue;"," }"," if (domUtils.isSameElement(node, ci)) {"," domUtils.remove(ci, true);"," }"," }"," },",""," /*"," * 原生方法getElementsByTagName的封装"," * @name getElementsByTagName"," * @grammar UE.dom.domUtils.getElementsByTagName(node,tagName) => Array //节点集合数组"," */"," getElementsByTagName:function (node, name,filter) {"," if(filter && utils.isString(filter)){"," var className = filter;"," filter = function(node){return domUtils.hasClass(node,className)}"," }"," name = utils.trim(name).replace(/[ ]{2,}/g,' ').split(' ');"," var arr = [];"," for(var n = 0,ni;ni=name[n++];){"," var list = node.getElementsByTagName(ni);"," for (var i = 0, ci; ci = list[i++];) {"," if(!filter || filter(ci))"," arr.push(ci);"," }"," }",""," return arr;"," },",""," /**"," * 将节点node提取到父节点上"," * @method mergeToParent"," * @param { Element } node 需要提取的元素对象"," * @example"," * ```html"," * <div id=\"parent\">"," * <div id=\"sub\">"," * <span id=\"child\"></span>"," * </div>"," * </div>"," *"," * <script>"," *"," * var child = document.getElementById( \"child\" );"," *"," * //output: sub"," * console.log( child.parentNode.id );"," *"," * UE.dom.domUtils.mergeToParent( child );"," *"," * //output: parent"," * console.log( child.parentNode.id );"," *"," * </script>"," * ```"," */"," mergeToParent:function (node) {"," var parent = node.parentNode;"," while (parent && dtd.$removeEmpty[parent.tagName]) {"," if (parent.tagName == node.tagName || parent.tagName == 'A') {//针对a标签单独处理"," domUtils.trimWhiteTextNode(parent);"," //span需要特殊处理 不处理这样的情况 <span stlye=\"color:#fff\">xxx<span style=\"color:#ccc\">xxx</span>xxx</span>"," if (parent.tagName == 'SPAN' && !domUtils.isSameStyle(parent, node)"," || (parent.tagName == 'A' && node.tagName == 'SPAN')) {"," if (parent.childNodes.length > 1 || parent !== node.parentNode) {"," node.style.cssText = parent.style.cssText + \";\" + node.style.cssText;"," parent = parent.parentNode;"," continue;"," } else {"," parent.style.cssText += \";\" + node.style.cssText;"," //trace:952 a标签要保持下划线"," if (parent.tagName == 'A') {"," parent.style.textDecoration = 'underline';"," }"," }"," }"," if (parent.tagName != 'A') {"," parent === node.parentNode && domUtils.remove(node, true);"," break;"," }"," }"," parent = parent.parentNode;"," }"," },",""," /**"," * 合并节点node的左右兄弟节点"," * @method mergeSibling"," * @param { Element } node 需要合并的目标节点"," * @example"," * ```html"," * <b>xxxx</b><b id=\"test\">ooo</b><b>xxxx</b>"," *"," * <script>"," * var demoNode = document.getElementById(\"test\");"," * UE.dom.domUtils.mergeSibling( demoNode );"," * //output: xxxxoooxxxx"," * console.log( demoNode.innerHTML );"," * </script>"," * ```"," */",""," /**"," * 合并节点node的左右兄弟节点, 可以根据给定的条件选择是否忽略合并左节点。"," * @method mergeSibling"," * @param { Element } node 需要合并的目标节点"," * @param { Boolean } ignorePre 是否忽略合并左节点"," * @example"," * ```html"," * <b>xxxx</b><b id=\"test\">ooo</b><b>xxxx</b>"," *"," * <script>"," * var demoNode = document.getElementById(\"test\");"," * UE.dom.domUtils.mergeSibling( demoNode, true );"," * //output: oooxxxx"," * console.log( demoNode.innerHTML );"," * </script>"," * ```"," */",""," /**"," * 合并节点node的左右兄弟节点,可以根据给定的条件选择是否忽略合并左右节点。"," * @method mergeSibling"," * @param { Element } node 需要合并的目标节点"," * @param { Boolean } ignorePre 是否忽略合并左节点"," * @param { Boolean } ignoreNext 是否忽略合并右节点"," * @remind 如果同时忽略左右节点, 则该操作什么也不会做"," * @example"," * ```html"," * <b>xxxx</b><b id=\"test\">ooo</b><b>xxxx</b>"," *"," * <script>"," * var demoNode = document.getElementById(\"test\");"," * UE.dom.domUtils.mergeSibling( demoNode, false, true );"," * //output: xxxxooo"," * console.log( demoNode.innerHTML );"," * </script>"," * ```"," */"," mergeSibling:function (node, ignorePre, ignoreNext) {"," function merge(rtl, start, node) {"," var next;"," if ((next = node[rtl]) && !domUtils.isBookmarkNode(next) && next.nodeType == 1 && domUtils.isSameElement(node, next)) {"," while (next.firstChild) {"," if (start == 'firstChild') {"," node.insertBefore(next.lastChild, node.firstChild);"," } else {"," node.appendChild(next.firstChild);"," }"," }"," domUtils.remove(next);"," }"," }"," !ignorePre && merge('previousSibling', 'firstChild', node);"," !ignoreNext && merge('nextSibling', 'lastChild', node);"," },",""," /**"," * 设置节点node及其子节点不会被选中"," * @method unSelectable"," * @param { Element } node 需要执行操作的dom元素"," * @remind 执行该操作后的节点, 将不能被鼠标选中"," * @example"," * ```javascript"," * UE.dom.domUtils.unSelectable( document.body );"," * ```"," */"," unSelectable:ie || browser.opera ? function (node) {"," //for ie9"," node.onselectstart = function () {"," return false;"," };"," node.onclick = node.onkeyup = node.onkeydown = function () {"," return false;"," };"," node.unselectable = 'on';"," node.setAttribute(\"unselectable\", \"on\");"," for (var i = 0, ci; ci = node.all[i++];) {"," switch (ci.tagName.toLowerCase()) {"," case 'iframe' :"," case 'textarea' :"," case 'input' :"," case 'select' :"," break;"," default :"," ci.unselectable = 'on';"," node.setAttribute(\"unselectable\", \"on\");"," }"," }"," } : function (node) {"," node.style.MozUserSelect ="," node.style.webkitUserSelect ="," node.style.KhtmlUserSelect = 'none';"," },",""," /**"," * 删除节点node上的指定属性名称的属性"," * @method removeAttributes"," * @param { String } attrNames 可以是空格隔开的多个属性名称,该操作将会依次删除相应的属性"," * @example"," * ```html"," * <div id=\"wrap\">"," * <span style=\"font-size:14px;\" id=\"test\" name=\"followMe\">xxxxx</span>"," * </div>"," *"," * <script>"," *"," * UE.dom.domUtils.removeAttributes( document.getElementById( \"test\" ), \"id name\" );"," *"," * //output: <span style=\"font-size:14px;\">xxxxx</span>"," * console.log( document.getElementById(\"wrap\").innerHTML );"," *"," * </script>"," * ```"," */",""," /**"," * 删除节点node上的指定属性名称的属性"," * @method removeAttributes"," * @param { Array } attrNames 需要删除的属性名数组"," * @example"," * ```html"," * <div id=\"wrap\">"," * <span style=\"font-size:14px;\" id=\"test\" name=\"followMe\">xxxxx</span>"," * </div>"," *"," * <script>"," *"," * UE.dom.domUtils.removeAttributes( document.getElementById( \"test\" ), [\"id\", \"name\"] );"," *"," * //output: <span style=\"font-size:14px;\">xxxxx</span>"," * console.log( document.getElementById(\"wrap\").innerHTML );"," *"," * </script>"," * ```"," */"," removeAttributes:function (node, attrNames) {"," attrNames = utils.isArray(attrNames) ? attrNames : utils.trim(attrNames).replace(/[ ]{2,}/g,' ').split(' ');"," for (var i = 0, ci; ci = attrNames[i++];) {"," ci = attrFix[ci] || ci;"," switch (ci) {"," case 'className':"," node[ci] = '';"," break;"," case 'style':"," node.style.cssText = '';"," !browser.ie && node.removeAttributeNode(node.getAttributeNode('style'))"," }"," node.removeAttribute(ci);"," }"," },",""," /**"," * 在doc下创建一个标签名为tag,属性为attrs的元素"," * @method createElement"," * @param { DomDocument } doc 新创建的元素属于该document节点创建"," * @param { String } tagName 需要创建的元素的标签名"," * @param { KeyValueMap } attrs 新创建的元素的属性key-value集合"," * @return { Element } 新创建的元素对象"," * @example"," * ```javascript"," * var ele = UE.dom.domUtils.createElement( document, 'div', {"," * id: 'test'"," * } );"," *"," * //output: DIV"," * console.log( ele.tagName );"," *"," * //output: test"," * console.log( ele.id );"," *"," * ```"," */"," createElement:function (doc, tag, attrs) {"," return domUtils.setAttributes(doc.createElement(tag), attrs)"," },",""," /**"," * 为节点node添加属性attrs,attrs为属性键值对"," * @method setAttributes"," * @param { Element } node 需要设置属性的元素对象"," * @param { KeyValueMap } attrs 需要设置的属性名-值对"," * @return { Element } 设置属性的元素对象"," * @example"," * ```html"," * <span id=\"test\"></span>"," *"," * <script>"," *"," * var testNode = UE.dom.domUtils.setAttributes( document.getElementById( \"test\" ), {"," * id: 'demo'"," * } );"," *"," * //output: demo"," * console.log( testNode.id );"," *"," * </script>"," *"," */"," setAttributes:function (node, attrs) {"," for (var attr in attrs) {"," if(attrs.hasOwnProperty(attr)){"," var value = attrs[attr];"," switch (attr) {"," case 'class':"," //ie下要这样赋值,setAttribute不起作用"," node.className = value;"," break;"," case 'style' :"," node.style.cssText = node.style.cssText + \";\" + value;"," break;"," case 'innerHTML':"," node[attr] = value;"," break;"," case 'value':"," node.value = value;"," break;"," default:"," node.setAttribute(attrFix[attr] || attr, value);"," }"," }"," }"," return node;"," },",""," /**"," * 获取元素element经过计算后的样式值"," * @method getComputedStyle"," * @param { Element } element 需要获取样式的元素对象"," * @param { String } styleName 需要获取的样式名"," * @return { String } 获取到的样式值"," * @example"," * ```html"," * <style type=\"text/css\">"," * #test {"," * font-size: 15px;"," * }"," * </style>"," *"," * <span id=\"test\"></span>"," *"," * <script>"," * //output: 15px"," * console.log( UE.dom.domUtils.getComputedStyle( document.getElementById( \"test\" ), 'font-size' ) );"," * </script>"," * ```"," */"," getComputedStyle:function (element, styleName) {"," //一下的属性单独处理"," var pros = 'width height top left';",""," if(pros.indexOf(styleName) > -1){"," return element['offset' + styleName.replace(/^\\w/,function(s){return s.toUpperCase()})] + 'px';"," }"," //忽略文本节点"," if (element.nodeType == 3) {"," element = element.parentNode;"," }"," //ie下font-size若body下定义了font-size,则从currentStyle里会取到这个font-size. 取不到实际值,故此修改."," if (browser.ie && browser.version < 9 && styleName == 'font-size' && !element.style.fontSize &&"," !dtd.$empty[element.tagName] && !dtd.$nonChild[element.tagName]) {"," var span = element.ownerDocument.createElement('span');"," span.style.cssText = 'padding:0;border:0;font-family:simsun;';"," span.innerHTML = '.';"," element.appendChild(span);"," var result = span.offsetHeight;"," element.removeChild(span);"," span = null;"," return result + 'px';"," }"," try {"," var value = domUtils.getStyle(element, styleName) ||"," (window.getComputedStyle ? domUtils.getWindow(element).getComputedStyle(element, '').getPropertyValue(styleName) :"," ( element.currentStyle || element.style )[utils.cssStyleToDomStyle(styleName)]);",""," } catch (e) {"," return \"\";"," }"," return utils.transUnitToPx(utils.fixColor(styleName, value));"," },"," /**"," * 删除元素element指定的className"," * @method removeClasses"," * @param { Element } ele 需要删除class的元素节点"," * @param { String } classNames 需要删除的className, 多个className之间以空格分开"," * @example"," * ```html"," * <span id=\"test\" class=\"test1 test2 test3\">xxx</span>"," *"," * <script>"," *"," * var testNode = document.getElementById( \"test\" );"," * UE.dom.domUtils.removeClasses( testNode, \"test1 test2\" );"," *"," * //output: test3"," * console.log( testNode.className );"," *"," * </script>"," * ```"," */",""," /**"," * 删除元素element指定的className"," * @method removeClasses"," * @param { Element } ele 需要删除class的元素节点"," * @param { Array } classNames 需要删除的className数组"," * @example"," * ```html"," * <span id=\"test\" class=\"test1 test2 test3\">xxx</span>"," *"," * <script>"," *"," * var testNode = document.getElementById( \"test\" );"," * UE.dom.domUtils.removeClasses( testNode, [\"test1\", \"test2\"] );"," *"," * //output: test3"," * console.log( testNode.className );"," *"," * </script>"," * ```"," */"," removeClasses:function (elm, classNames) {"," classNames = utils.isArray(classNames) ? classNames :"," utils.trim(classNames).replace(/[ ]{2,}/g,' ').split(' ');"," for(var i = 0,ci,cls = elm.className;ci=classNames[i++];){"," cls = cls.replace(new RegExp('\\\\b' + ci + '\\\\b'),'')"," }"," cls = utils.trim(cls).replace(/[ ]{2,}/g,' ');"," if(cls){"," elm.className = cls;"," }else{"," domUtils.removeAttributes(elm,['class']);"," }"," },",""," /**"," * 给元素element添加className"," * @method addClass"," * @param { Node } ele 需要增加className的元素"," * @param { String } classNames 需要添加的className, 多个className之间以空格分割"," * @remind 相同的类名不会被重复添加"," * @example"," * ```html"," * <span id=\"test\" class=\"cls1 cls2\"></span>"," *"," * <script>"," * var testNode = document.getElementById(\"test\");"," *"," * UE.dom.domUtils.addClass( testNode, \"cls2 cls3 cls4\" );"," *"," * //output: cl1 cls2 cls3 cls4"," * console.log( testNode.className );"," *"," * <script>"," * ```"," */",""," /**"," * 给元素element添加className"," * @method addClass"," * @param { Node } ele 需要增加className的元素"," * @param { Array } classNames 需要添加的className的数组"," * @remind 相同的类名不会被重复添加"," * @example"," * ```html"," * <span id=\"test\" class=\"cls1 cls2\"></span>"," *"," * <script>"," * var testNode = document.getElementById(\"test\");"," *"," * UE.dom.domUtils.addClass( testNode, [\"cls2\", \"cls3\", \"cls4\"] );"," *"," * //output: cl1 cls2 cls3 cls4"," * console.log( testNode.className );"," *"," * <script>"," * ```"," */"," addClass:function (elm, classNames) {"," if(!elm)return;"," classNames = utils.trim(classNames).replace(/[ ]{2,}/g,' ').split(' ');"," for(var i = 0,ci,cls = elm.className;ci=classNames[i++];){"," if(!new RegExp('\\\\b' + ci + '\\\\b').test(cls)){"," elm.className += ' ' + ci;"," }"," }"," },",""," /**"," * 判断元素element是否包含给定的样式类名className"," * @method hasClass"," * @param { Node } ele 需要检测的元素"," * @param { String } classNames 需要检测的className, 多个className之间用空格分割"," * @return { Boolean } 元素是否包含所有给定的className"," * @example"," * ```html"," * <span id=\"test1\" class=\"cls1 cls2\"></span>"," *"," * <script>"," * var test1 = document.getElementById(\"test1\");"," *"," * //output: false"," * console.log( UE.dom.domUtils.hasClass( test1, \"cls2 cls1 cls3\" ) );"," *"," * //output: true"," * console.log( UE.dom.domUtils.hasClass( test1, \"cls2 cls1\" ) );"," * </script>"," * ```"," */",""," /**"," * 判断元素element是否包含给定的样式类名className"," * @method hasClass"," * @param { Node } ele 需要检测的元素"," * @param { Array } classNames 需要检测的className数组"," * @return { Boolean } 元素是否包含所有给定的className"," * @example"," * ```html"," * <span id=\"test1\" class=\"cls1 cls2\"></span>"," *"," * <script>"," * var test1 = document.getElementById(\"test1\");"," *"," * //output: false"," * console.log( UE.dom.domUtils.hasClass( test1, [ \"cls2\", \"cls1\", \"cls3\" ] ) );"," *"," * //output: true"," * console.log( UE.dom.domUtils.hasClass( test1, [ \"cls2\", \"cls1\" ]) );"," * </script>"," * ```"," */"," hasClass:function (element, className) {"," if(utils.isRegExp(className)){"," return className.test(element.className)"," }"," className = utils.trim(className).replace(/[ ]{2,}/g,' ').split(' ');"," for(var i = 0,ci,cls = element.className;ci=className[i++];){"," if(!new RegExp('\\\\b' + ci + '\\\\b','i').test(cls)){"," return false;"," }"," }"," return i - 1 == className.length;"," },",""," /**"," * 阻止事件默认行为"," * @method preventDefault"," * @param { Event } evt 需要阻止默认行为的事件对象"," * @example"," * ```javascript"," * UE.dom.domUtils.preventDefault( evt );"," * ```"," */"," preventDefault:function (evt) {"," evt.preventDefault ? evt.preventDefault() : (evt.returnValue = false);"," },",""," /**"," * 删除元素element指定的样式"," * @method removeStyle"," * @param { Element } element 需要删除样式的元素"," * @param { String } styleName 需要删除的样式名"," * @example"," * ```html"," * <span id=\"test\" style=\"color: red; background: blue;\"></span>"," *"," * <script>"," *"," * var testNode = document.getElementById(\"test\");"," *"," * UE.dom.domUtils.removeStyle( testNode, 'color' );"," *"," * //output: background: blue;"," * console.log( testNode.style.cssText );"," *"," * </script>"," * ```"," */"," removeStyle:function (element, name) {"," if(browser.ie ){"," //针对color先单独处理一下"," if(name == 'color'){"," name = '(^|;)' + name;"," }"," element.style.cssText = element.style.cssText.replace(new RegExp(name + '[^:]*:[^;]+;?','ig'),'')"," }else{"," if (element.style.removeProperty) {"," element.style.removeProperty (name);"," }else {"," element.style.removeAttribute (utils.cssStyleToDomStyle(name));"," }"," }","",""," if (!element.style.cssText) {"," domUtils.removeAttributes(element, ['style']);"," }"," },",""," /**"," * 获取元素element的style属性的指定值"," * @method getStyle"," * @param { Element } element 需要获取属性值的元素"," * @param { String } styleName 需要获取的style的名称"," * @warning 该方法仅获取元素style属性中所标明的值"," * @return { String } 该元素包含指定的style属性值"," * @example"," * ```html"," * <div id=\"test\" style=\"color: red;\"></div>"," *"," * <script>"," *"," * var testNode = document.getElementById( \"test\" );"," *"," * //output: red"," * console.log( UE.dom.domUtils.getStyle( testNode, \"color\" ) );"," *"," * //output: \"\""," * console.log( UE.dom.domUtils.getStyle( testNode, \"background\" ) );"," *"," * </script>"," * ```"," */"," getStyle:function (element, name) {"," var value = element.style[ utils.cssStyleToDomStyle(name) ];"," return utils.fixColor(name, value);"," },","",""," /**"," * 为元素element设置样式属性值"," * @method setStyle"," * @param { Element } element 需要设置样式的元素"," * @param { String } styleName 样式名"," * @param { String } styleValue 样式值"," * @example"," * ```html"," * <div id=\"test\"></div>"," *"," * <script>"," *"," * var testNode = document.getElementById( \"test\" );"," *"," * //output: \"\""," * console.log( testNode.style.color );"," *"," * UE.dom.domUtils.setStyle( testNode, 'color', 'red' );"," * //output: \"red\""," * console.log( testNode.style.color );"," *"," * </script>"," * ```"," */"," setStyle:function (element, name, value) {"," element.style[utils.cssStyleToDomStyle(name)] = value;"," if(!utils.trim(element.style.cssText)){"," this.removeAttributes(element,'style')"," }"," },",""," /**"," * 为元素element设置多个样式属性值"," * @method setStyles"," * @param { Element } element 需要设置样式的元素"," * @param { KeyValueMap } styles 样式名值对"," * @example"," * ```html"," * <div id=\"test\"></div>"," *"," * <script>"," *"," * var testNode = document.getElementById( \"test\" );"," *"," * //output: \"\""," * console.log( testNode.style.color );"," *"," * UE.dom.domUtils.setStyles( testNode, {"," * 'color': 'red'"," * } );"," * //output: \"red\""," * console.log( testNode.style.color );"," *"," * </script>"," * ```"," */"," setStyles:function (element, styles) {"," for (var name in styles) {"," if (styles.hasOwnProperty(name)) {"," domUtils.setStyle(element, name, styles[name]);"," }"," }"," },",""," /**"," * 删除_moz_dirty属性"," * @method removeDirtyAttr"," */"," removeDirtyAttr:function (node) {"," for (var i = 0, ci, nodes = node.getElementsByTagName('*'); ci = nodes[i++];) {"," ci.removeAttribute('_moz_dirty');"," }"," node.removeAttribute('_moz_dirty');"," },",""," /**"," * 获取子节点的数量"," * @method getChildCount"," * @param { Element } node 需要检测的元素"," * @return { Number } 给定的node元素的子节点数量"," * @example"," * ```html"," * <div id=\"test\">"," * <span></span>"," * </div>"," *"," * <script>"," *"," * //output: 3"," * console.log( UE.dom.domUtils.getChildCount( document.getElementById(\"test\") ) );"," *"," * </script>"," * ```"," */",""," /**"," * 根据给定的过滤规则, 获取符合条件的子节点的数量"," * @method getChildCount"," * @param { Element } node 需要检测的元素"," * @param { Function } fn 过滤器, 要求对符合条件的子节点返回true, 反之则要求返回false"," * @return { Number } 符合过滤条件的node元素的子节点数量"," * @example"," * ```html"," * <div id=\"test\">"," * <span></span>"," * </div>"," *"," * <script>"," *"," * //output: 1"," * console.log( UE.dom.domUtils.getChildCount( document.getElementById(\"test\"), function ( node ) {"," *"," * return node.nodeType === 1;"," *"," * } ) );"," *"," * </script>"," * ```"," */"," getChildCount:function (node, fn) {"," var count = 0, first = node.firstChild;"," fn = fn || function () {"," return 1;"," };"," while (first) {"," if (fn(first)) {"," count++;"," }"," first = first.nextSibling;"," }"," return count;"," },",""," /**"," * 判断给定节点是否为空节点"," * @method isEmptyNode"," * @param { Node } node 需要检测的节点对象"," * @return { Boolean } 节点是否为空"," * @example"," * ```javascript"," * UE.dom.domUtils.isEmptyNode( document.body );"," * ```"," */"," isEmptyNode:function (node) {"," return !node.firstChild || domUtils.getChildCount(node, function (node) {"," return !domUtils.isBr(node) && !domUtils.isBookmarkNode(node) && !domUtils.isWhitespace(node)"," }) == 0"," },",""," /**"," * 清空给定节点所有的className"," * @method clearSelectedArr"," * @param { Array } nodes 需要清空className的节点的数组集合"," * @example"," * ```javascript"," *"," * UE.dom.domUtils.clearSelectedArr( [ document.body, document.body.firstChild ] );"," *"," * ```"," */"," clearSelectedArr:function (nodes) {"," var node;"," while (node = nodes.pop()) {"," domUtils.removeAttributes(node, ['class']);"," }"," },",""," /**"," * 将显示区域滚动到指定节点的位置"," * @method scrollToView"," * @param {Node} node 节点"," * @param {window} win window对象"," * @param {Number} offsetTop 距离上方的偏移量"," */"," scrollToView:function (node, win, offsetTop) {"," var getViewPaneSize = function () {"," var doc = win.document,"," mode = doc.compatMode == 'CSS1Compat';"," return {"," width:( mode ? doc.documentElement.clientWidth : doc.body.clientWidth ) || 0,"," height:( mode ? doc.documentElement.clientHeight : doc.body.clientHeight ) || 0"," };"," },"," getScrollPosition = function (win) {"," if ('pageXOffset' in win) {"," return {"," x:win.pageXOffset || 0,"," y:win.pageYOffset || 0"," };"," }"," else {"," var doc = win.document;"," return {"," x:doc.documentElement.scrollLeft || doc.body.scrollLeft || 0,"," y:doc.documentElement.scrollTop || doc.body.scrollTop || 0"," };"," }"," };"," var winHeight = getViewPaneSize().height, offset = winHeight * -1 + offsetTop;"," offset += (node.offsetHeight || 0);"," var elementPosition = domUtils.getXY(node);"," offset += elementPosition.y;"," var currentScroll = getScrollPosition(win).y;"," // offset += 50;"," if (offset > currentScroll || offset < currentScroll - winHeight) {"," win.scrollTo(0, offset + (offset < 0 ? -20 : 20));"," }"," },",""," /**"," * 判断给定节点是否为br"," * @method isBr"," * @param { Node } node 需要判断的节点对象"," * @return { Boolean } 给定的节点是否是br节点"," */"," isBr:function (node) {"," return node.nodeType == 1 && node.tagName == 'BR';"," },",""," /**"," * 判断给定的节点是否是一个“填充”节点"," * @method isFillChar"," * @param { Node } node 需要判断的节点"," * @param { Boolean } isInStart 是否从节点内容的开始位置匹配"," * @returns { Boolean } 节点是否是填充节点"," */"," isFillChar:function (node,isInStart) {"," return node.nodeType == 3 && !node.nodeValue.replace(new RegExp((isInStart ? '^' : '' ) + domUtils.fillChar), '').length"," },","",""," isStartInblock:function (range) {"," var tmpRange = range.cloneRange(),"," flag = 0,"," start = tmpRange.startContainer,"," tmp;"," if(start.nodeType == 1 && start.childNodes[tmpRange.startOffset]){"," start = start.childNodes[tmpRange.startOffset];"," var pre = start.previousSibling;"," while(pre && domUtils.isFillChar(pre)){"," start = pre;"," pre = pre.previousSibling;"," }"," }"," if(this.isFillChar(start,true) && tmpRange.startOffset == 1){"," tmpRange.setStartBefore(start);"," start = tmpRange.startContainer;"," }",""," while (start && domUtils.isFillChar(start)) {"," tmp = start;"," start = start.previousSibling"," }"," if (tmp) {"," tmpRange.setStartBefore(tmp);"," start = tmpRange.startContainer;"," }"," if (start.nodeType == 1 && domUtils.isEmptyNode(start) && tmpRange.startOffset == 1) {"," tmpRange.setStart(start, 0).collapse(true);"," }"," while (!tmpRange.startOffset) {"," start = tmpRange.startContainer;"," if (domUtils.isBlockElm(start) || domUtils.isBody(start)) {"," flag = 1;"," break;"," }"," var pre = tmpRange.startContainer.previousSibling,"," tmpNode;"," if (!pre) {"," tmpRange.setStartBefore(tmpRange.startContainer);"," } else {"," while (pre && domUtils.isFillChar(pre)) {"," tmpNode = pre;"," pre = pre.previousSibling;"," }"," if (tmpNode) {"," tmpRange.setStartBefore(tmpNode);"," } else {"," tmpRange.setStartBefore(tmpRange.startContainer);"," }"," }"," }"," return flag && !domUtils.isBody(tmpRange.startContainer) ? 1 : 0;"," },",""," /**"," * 判断给定的元素是否是一个空元素"," * @method isEmptyBlock"," * @param { Element } node 需要判断的元素"," * @return { Boolean } 是否是空元素"," * @example"," * ```html"," * <div id=\"test\"></div>"," *"," * <script>"," * //output: true"," * console.log( UE.dom.domUtils.isEmptyBlock( document.getElementById(\"test\") ) );"," * </script>"," * ```"," */",""," /**"," * 根据指定的判断规则判断给定的元素是否是一个空元素"," * @method isEmptyBlock"," * @param { Element } node 需要判断的元素"," * @param { RegExp } reg 对内容执行判断的正则表达式对象"," * @return { Boolean } 是否是空元素"," */"," isEmptyBlock:function (node,reg) {"," if(node.nodeType != 1)"," return 0;"," reg = reg || new RegExp('[ \\t\\r\\n' + domUtils.fillChar + ']', 'g');"," if (node[browser.ie ? 'innerText' : 'textContent'].replace(reg, '').length > 0) {"," return 0;"," }"," for (var n in dtd.$isNotEmpty) {"," if (node.getElementsByTagName(n).length) {"," return 0;"," }"," }"," return 1;"," },",""," /**"," * 移动元素使得该元素的位置移动指定的偏移量的距离"," * @method setViewportOffset"," * @param { Element } element 需要设置偏移量的元素"," * @param { KeyValueMap } offset 偏移量, 形如{ left: 100, top: 50 }的一个键值对, 表示该元素将在"," * 现有的位置上向水平方向偏移offset.left的距离, 在竖直方向上偏移"," * offset.top的距离"," * @example"," * ```html"," * <div id=\"test\" style=\"top: 100px; left: 50px; position: absolute;\"></div>"," *"," * <script>"," *"," * var testNode = document.getElementById(\"test\");"," *"," * UE.dom.domUtils.setViewportOffset( testNode, {"," * left: 200,"," * top: 50"," * } );"," *"," * //output: top: 300px; left: 100px; position: absolute;"," * console.log( testNode.style.cssText );"," *"," * </script>"," * ```"," */"," setViewportOffset:function (element, offset) {"," var left = parseInt(element.style.left) | 0;"," var top = parseInt(element.style.top) | 0;"," var rect = element.getBoundingClientRect();"," var offsetLeft = offset.left - rect.left;"," var offsetTop = offset.top - rect.top;"," if (offsetLeft) {"," element.style.left = left + offsetLeft + 'px';"," }"," if (offsetTop) {"," element.style.top = top + offsetTop + 'px';"," }"," },",""," /**"," * 用“填充字符”填充节点"," * @method fillNode"," * @param { DomDocument } doc 填充的节点所在的docment对象"," * @param { Node } node 需要填充的节点对象"," * @example"," * ```html"," * <div id=\"test\"></div>"," *"," * <script>"," * var testNode = document.getElementById(\"test\");"," *"," * //output: 0"," * console.log( testNode.childNodes.length );"," *"," * UE.dom.domUtils.fillNode( document, testNode );"," *"," * //output: 1"," * console.log( testNode.childNodes.length );"," *"," * </script>"," * ```"," */"," fillNode:function (doc, node) {"," var tmpNode = browser.ie ? doc.createTextNode(domUtils.fillChar) : doc.createElement('br');"," node.innerHTML = '';"," node.appendChild(tmpNode);"," },",""," /**"," * 把节点src的所有子节点追加到另一个节点tag上去"," * @method moveChild"," * @param { Node } src 源节点, 该节点下的所有子节点将被移除"," * @param { Node } tag 目标节点, 从源节点移除的子节点将被追加到该节点下"," * @example"," * ```html"," * <div id=\"test1\">"," * <span></span>"," * </div>"," * <div id=\"test2\">"," * <div></div>"," * </div>"," *"," * <script>"," *"," * var test1 = document.getElementById(\"test1\"),"," * test2 = document.getElementById(\"test2\");"," *"," * UE.dom.domUtils.moveChild( test1, test2 );"," *"," * //output: \"\"(空字符串)"," * console.log( test1.innerHTML );"," *"," * //output: \"<div></div><span></span>\""," * console.log( test2.innerHTML );"," *"," * </script>"," * ```"," */",""," /**"," * 把节点src的所有子节点移动到另一个节点tag上去, 可以通过dir参数控制附加的行为是“追加”还是“插入顶部”"," * @method moveChild"," * @param { Node } src 源节点, 该节点下的所有子节点将被移除"," * @param { Node } tag 目标节点, 从源节点移除的子节点将被附加到该节点下"," * @param { Boolean } dir 附加方式, 如果为true, 则附加进去的节点将被放到目标节点的顶部, 反之,则放到末尾"," * @example"," * ```html"," * <div id=\"test1\">"," * <span></span>"," * </div>"," * <div id=\"test2\">"," * <div></div>"," * </div>"," *"," * <script>"," *"," * var test1 = document.getElementById(\"test1\"),"," * test2 = document.getElementById(\"test2\");"," *"," * UE.dom.domUtils.moveChild( test1, test2, true );"," *"," * //output: \"\"(空字符串)"," * console.log( test1.innerHTML );"," *"," * //output: \"<span></span><div></div>\""," * console.log( test2.innerHTML );"," *"," * </script>"," * ```"," */"," moveChild:function (src, tag, dir) {"," while (src.firstChild) {"," if (dir && tag.firstChild) {"," tag.insertBefore(src.lastChild, tag.firstChild);"," } else {"," tag.appendChild(src.firstChild);"," }"," }"," },",""," /**"," * 判断节点的标签上是否不存在任何属性"," * @method hasNoAttributes"," * @param { Node } node 需要检测的节点对象"," * @return { Boolean } 节点是否不包含任何属性"," * @example"," * ```html"," * <div id=\"test\"><span>xxxx</span></div>"," *"," * <script>"," *"," * //output: false"," * console.log( UE.dom.domUtils.hasNoAttributes( document.getElementById(\"test\") ) );"," *"," * //output: true"," * console.log( UE.dom.domUtils.hasNoAttributes( document.getElementById(\"test\").firstChild ) );"," *"," * </script>"," * ```"," */"," hasNoAttributes:function (node) {"," return browser.ie ? /^<\\w+\\s*?>/.test(node.outerHTML) : node.attributes.length == 0;"," },",""," /**"," * 检测节点是否是UEditor所使用的辅助节点"," * @method isCustomeNode"," * @param { Node } node 需要检测的节点"," * @remind 辅助节点是指编辑器要完成工作临时添加的节点, 在输出的时候将会从编辑器内移除, 不会影响最终的结果。"," * @return { Boolean } 给定的节点是否是一个辅助节点"," */"," isCustomeNode:function (node) {"," return node.nodeType == 1 && node.getAttribute('_ue_custom_node_');"," },",""," /**"," * 检测节点的标签是否是给定的标签"," * @method isTagNode"," * @param { Node } node 需要检测的节点对象"," * @param { String } tagName 标签"," * @return { Boolean } 节点的标签是否是给定的标签"," * @example"," * ```html"," * <div id=\"test\"></div>"," *"," * <script>"," *"," * //output: true"," * console.log( UE.dom.domUtils.isTagNode( document.getElementById(\"test\"), \"div\" ) );"," *"," * </script>"," * ```"," */"," isTagNode:function (node, tagName) {"," return node.nodeType == 1 && new RegExp('^' + node.tagName + '$','i').test(tagName)"," },",""," /**"," * 给定一个节点数组,在通过指定的过滤器过滤后, 获取其中满足过滤条件的第一个节点"," * @method filterNodeList"," * @param { Array } nodeList 需要过滤的节点数组"," * @param { Function } fn 过滤器, 对符合条件的节点, 执行结果返回true, 反之则返回false"," * @return { Node | NULL } 如果找到符合过滤条件的节点, 则返回该节点, 否则返回NULL"," * @example"," * ```javascript"," * var divNodes = document.getElementsByTagName(\"div\");"," * divNodes = [].slice.call( divNodes, 0 );"," *"," * //output: null"," * console.log( UE.dom.domUtils.filterNodeList( divNodes, function ( node ) {"," * return node.tagName.toLowerCase() !== 'div';"," * } ) );"," * ```"," */",""," /**"," * 给定一个节点数组nodeList和一组标签名tagNames, 获取其中能够匹配标签名的节点集合中的第一个节点"," * @method filterNodeList"," * @param { Array } nodeList 需要过滤的节点数组"," * @param { String } tagNames 需要匹配的标签名, 多个标签名之间用空格分割"," * @return { Node | NULL } 如果找到标签名匹配的节点, 则返回该节点, 否则返回NULL"," * @example"," * ```javascript"," * var divNodes = document.getElementsByTagName(\"div\");"," * divNodes = [].slice.call( divNodes, 0 );"," *"," * //output: null"," * console.log( UE.dom.domUtils.filterNodeList( divNodes, 'a span' ) );"," * ```"," */",""," /**"," * 给定一个节点数组,在通过指定的过滤器过滤后, 如果参数forAll为true, 则会返回所有满足过滤"," * 条件的节点集合, 否则, 返回满足条件的节点集合中的第一个节点"," * @method filterNodeList"," * @param { Array } nodeList 需要过滤的节点数组"," * @param { Function } fn 过滤器, 对符合条件的节点, 执行结果返回true, 反之则返回false"," * @param { Boolean } forAll 是否返回整个节点数组, 如果该参数为false, 则返回节点集合中的第一个节点"," * @return { Array | Node | NULL } 如果找到符合过滤条件的节点, 则根据参数forAll的值决定返回满足"," * 过滤条件的节点数组或第一个节点, 否则返回NULL"," * @example"," * ```javascript"," * var divNodes = document.getElementsByTagName(\"div\");"," * divNodes = [].slice.call( divNodes, 0 );"," *"," * //output: 3(假定有3个div)"," * console.log( divNodes.length );"," *"," * var nodes = UE.dom.domUtils.filterNodeList( divNodes, function ( node ) {"," * return node.tagName.toLowerCase() === 'div';"," * }, true );"," *"," * //output: 3"," * console.log( nodes.length );"," *"," * var node = UE.dom.domUtils.filterNodeList( divNodes, function ( node ) {"," * return node.tagName.toLowerCase() === 'div';"," * }, false );"," *"," * //output: div"," * console.log( node.nodeName );"," * ```"," */"," filterNodeList : function(nodelist,filter,forAll){"," var results = [];"," if(!utils .isFunction(filter)){"," var str = filter;"," filter = function(n){"," return utils.indexOf(utils.isArray(str) ? str:str.split(' '), n.tagName.toLowerCase()) != -1"," };"," }"," utils.each(nodelist,function(n){"," filter(n) && results.push(n)"," });"," return results.length == 0 ? null : results.length == 1 || !forAll ? results[0] : results"," },",""," isInNodeEndBoundary : function (rng,node){"," var start = rng.startContainer;"," if(start.nodeType == 3 && rng.startOffset != start.nodeValue.length){"," return 0;"," }"," if(start.nodeType == 1 && rng.startOffset != start.childNodes.length){"," return 0;"," }"," while(start !== node){"," if(start.nextSibling){"," return 0"," };"," start = start.parentNode;"," }"," return 1;"," },"," isBoundaryNode : function (node,dir){"," var tmp;"," while(!domUtils.isBody(node)){"," tmp = node;"," node = node.parentNode;"," if(tmp !== node[dir]){"," return false;"," }"," }"," return true;"," }","};","var fillCharReg = new RegExp(domUtils.fillChar, 'g');"]; +_$jscoverage['core/domUtils.js'][15]++; +function getNode(node, start, ltr, startFromChild, fn, guard) { + _$jscoverage['core/domUtils.js'][16]++; + var tmpNode = (startFromChild && node[start]), parent; + _$jscoverage['core/domUtils.js'][18]++; + ((! tmpNode) && (tmpNode = node[ltr])); + _$jscoverage['core/domUtils.js'][19]++; + while (((! tmpNode) && (parent = (parent || node).parentNode))) { + _$jscoverage['core/domUtils.js'][20]++; + if (((parent.tagName == "BODY") || (guard && (! guard(parent))))) { + _$jscoverage['core/domUtils.js'][21]++; + return null; + } + _$jscoverage['core/domUtils.js'][23]++; + tmpNode = parent[ltr]; +} + _$jscoverage['core/domUtils.js'][25]++; + if ((tmpNode && fn && (! fn(tmpNode)))) { + _$jscoverage['core/domUtils.js'][26]++; + return getNode(tmpNode, start, ltr, false, fn); + } + _$jscoverage['core/domUtils.js'][28]++; + return tmpNode; +} +_$jscoverage['core/domUtils.js'][30]++; +var attrFix = ((ie && (browser.version < 9))? {tabindex: "tabIndex", readonly: "readOnly", "for": "htmlFor", "class": "className", maxlength: "maxLength", cellspacing: "cellSpacing", cellpadding: "cellPadding", rowspan: "rowSpan", colspan: "colSpan", usemap: "useMap", frameborder: "frameBorder"}: {tabindex: "tabIndex", readonly: "readOnly"}), styleBlock = utils.listToMap(["-webkit-box", "-moz-box", "block", "list-item", "table", "table-row-group", "table-header-group", "table-footer-group", "table-row", "table-column-group", "table-column", "table-cell", "table-caption"]); +_$jscoverage['core/domUtils.js'][53]++; +var domUtils = (dom.domUtils = {NODE_ELEMENT: 1, NODE_DOCUMENT: 9, NODE_TEXT: 3, NODE_COMMENT: 8, NODE_DOCUMENT_FRAGMENT: 11, POSITION_IDENTICAL: 0, POSITION_DISCONNECTED: 1, POSITION_FOLLOWING: 2, POSITION_PRECEDING: 4, POSITION_IS_CONTAINED: 8, POSITION_CONTAINS: 16, fillChar: ((ie && (browser.version == "6"))? "\ufeff": "\u200b"), keys: {8: 1, 46: 1, 16: 1, 17: 1, 18: 1, 37: 1, 38: 1, 39: 1, 40: 1, 13: 1}, getPosition: (function (nodeA, nodeB) { + _$jscoverage['core/domUtils.js'][120]++; + if ((nodeA === nodeB)) { + _$jscoverage['core/domUtils.js'][122]++; + return 0; + } + _$jscoverage['core/domUtils.js'][124]++; + var node, parentsA = [nodeA], parentsB = [nodeB]; + _$jscoverage['core/domUtils.js'][127]++; + node = nodeA; + _$jscoverage['core/domUtils.js'][128]++; + while ((node = node.parentNode)) { + _$jscoverage['core/domUtils.js'][130]++; + if ((node === nodeB)) { + _$jscoverage['core/domUtils.js'][132]++; + return 10; + } + _$jscoverage['core/domUtils.js'][134]++; + parentsA.push(node); +} + _$jscoverage['core/domUtils.js'][136]++; + node = nodeB; + _$jscoverage['core/domUtils.js'][137]++; + while ((node = node.parentNode)) { + _$jscoverage['core/domUtils.js'][139]++; + if ((node === nodeA)) { + _$jscoverage['core/domUtils.js'][141]++; + return 20; + } + _$jscoverage['core/domUtils.js'][143]++; + parentsB.push(node); +} + _$jscoverage['core/domUtils.js'][145]++; + parentsA.reverse(); + _$jscoverage['core/domUtils.js'][146]++; + parentsB.reverse(); + _$jscoverage['core/domUtils.js'][147]++; + if ((parentsA[0] !== parentsB[0])) { + _$jscoverage['core/domUtils.js'][149]++; + return 1; + } + _$jscoverage['core/domUtils.js'][151]++; + var i = -1; + _$jscoverage['core/domUtils.js'][152]++; + while (((i++), (parentsA[i] === parentsB[i]))) { +} + _$jscoverage['core/domUtils.js'][154]++; + nodeA = parentsA[i]; + _$jscoverage['core/domUtils.js'][155]++; + nodeB = parentsB[i]; + _$jscoverage['core/domUtils.js'][156]++; + while ((nodeA = nodeA.nextSibling)) { + _$jscoverage['core/domUtils.js'][157]++; + if ((nodeA === nodeB)) { + _$jscoverage['core/domUtils.js'][159]++; + return 4; + } +} + _$jscoverage['core/domUtils.js'][163]++; + return 2; +}), getNodeIndex: (function (node, ignoreTextNode) { + _$jscoverage['core/domUtils.js'][181]++; + var preNode = node, i = 0; + _$jscoverage['core/domUtils.js'][183]++; + while ((preNode = preNode.previousSibling)) { + _$jscoverage['core/domUtils.js'][184]++; + if ((ignoreTextNode && (preNode.nodeType == 3))) { + _$jscoverage['core/domUtils.js'][185]++; + if ((preNode.nodeType != preNode.nextSibling.nodeType)) { + _$jscoverage['core/domUtils.js'][186]++; + (i++); + } + _$jscoverage['core/domUtils.js'][188]++; + continue; + } + _$jscoverage['core/domUtils.js'][190]++; + (i++); +} + _$jscoverage['core/domUtils.js'][192]++; + return i; +}), inDoc: (function (node, doc) { + _$jscoverage['core/domUtils.js'][217]++; + return (domUtils.getPosition(node, doc) == 10); +}), findParent: (function (node, filterFn, includeSelf) { + _$jscoverage['core/domUtils.js'][279]++; + if ((node && (! domUtils.isBody(node)))) { + _$jscoverage['core/domUtils.js'][280]++; + node = (includeSelf? node: node.parentNode); + _$jscoverage['core/domUtils.js'][281]++; + while (node) { + _$jscoverage['core/domUtils.js'][282]++; + if (((! filterFn) || filterFn(node) || domUtils.isBody(node))) { + _$jscoverage['core/domUtils.js'][283]++; + return ((filterFn && (! filterFn(node)) && domUtils.isBody(node))? null: node); + } + _$jscoverage['core/domUtils.js'][285]++; + node = node.parentNode; +} + } + _$jscoverage['core/domUtils.js'][288]++; + return null; +}), findParentByTagName: (function (node, tagNames, includeSelf, excludeFn) { + _$jscoverage['core/domUtils.js'][350]++; + tagNames = utils.listToMap((utils.isArray(tagNames)? tagNames: [tagNames])); + _$jscoverage['core/domUtils.js'][351]++; + return domUtils.findParent(node, (function (node) { + _$jscoverage['core/domUtils.js'][352]++; + return (tagNames[node.tagName] && (! (excludeFn && excludeFn(node)))); +}), includeSelf); +}), findParents: (function (node, includeSelf, filterFn, closerFirst) { + _$jscoverage['core/domUtils.js'][365]++; + var parents = ((includeSelf && ((filterFn && filterFn(node)) || (! filterFn)))? [node]: []); + _$jscoverage['core/domUtils.js'][366]++; + while ((node = domUtils.findParent(node, filterFn))) { + _$jscoverage['core/domUtils.js'][367]++; + parents.push(node); +} + _$jscoverage['core/domUtils.js'][369]++; + return (closerFirst? parents: parents.reverse()); +}), insertAfter: (function (node, newNode) { + _$jscoverage['core/domUtils.js'][380]++; + return node.parentNode.insertBefore(newNode, node.nextSibling); +}), remove: (function (node, keepChildren) { + _$jscoverage['core/domUtils.js'][420]++; + var parent = node.parentNode, child; + _$jscoverage['core/domUtils.js'][422]++; + if (parent) { + _$jscoverage['core/domUtils.js'][423]++; + if ((keepChildren && node.hasChildNodes())) { + _$jscoverage['core/domUtils.js'][424]++; + while ((child = node.firstChild)) { + _$jscoverage['core/domUtils.js'][425]++; + parent.insertBefore(child, node); +} + } + _$jscoverage['core/domUtils.js'][428]++; + parent.removeChild(node); + } + _$jscoverage['core/domUtils.js'][430]++; + return node; +}), getNextNode: (function (node, startFromChild, filterFn, guard) { + _$jscoverage['core/domUtils.js'][437]++; + return getNode(node, "firstChild", "nextSibling", startFromChild, filterFn, guard); +}), isBookmarkNode: (function (node) { + _$jscoverage['core/domUtils.js'][456]++; + return ((node.nodeType == 1) && node.id && /^_baidu_bookmark_/i.test(node.id)); +}), getWindow: (function (node) { + _$jscoverage['core/domUtils.js'][471]++; + var doc = (node.ownerDocument || node); + _$jscoverage['core/domUtils.js'][472]++; + return (doc.defaultView || doc.parentWindow); +}), getCommonAncestor: (function (nodeA, nodeB) { + _$jscoverage['core/domUtils.js'][490]++; + if ((nodeA === nodeB)) { + _$jscoverage['core/domUtils.js'][491]++; + return nodeA; + } + _$jscoverage['core/domUtils.js'][492]++; + var parentsA = [nodeA], parentsB = [nodeB], parent = nodeA, i = -1; + _$jscoverage['core/domUtils.js'][493]++; + while ((parent = parent.parentNode)) { + _$jscoverage['core/domUtils.js'][494]++; + if ((parent === nodeB)) { + _$jscoverage['core/domUtils.js'][495]++; + return parent; + } + _$jscoverage['core/domUtils.js'][497]++; + parentsA.push(parent); +} + _$jscoverage['core/domUtils.js'][499]++; + parent = nodeB; + _$jscoverage['core/domUtils.js'][500]++; + while ((parent = parent.parentNode)) { + _$jscoverage['core/domUtils.js'][501]++; + if ((parent === nodeA)) { + _$jscoverage['core/domUtils.js'][502]++; + return parent; + } + _$jscoverage['core/domUtils.js'][503]++; + parentsB.push(parent); +} + _$jscoverage['core/domUtils.js'][505]++; + parentsA.reverse(); + _$jscoverage['core/domUtils.js'][506]++; + parentsB.reverse(); + _$jscoverage['core/domUtils.js'][507]++; + while (((i++), (parentsA[i] === parentsB[i]))) { +} + _$jscoverage['core/domUtils.js'][509]++; + return ((i == 0)? null: parentsA[(i - 1)]); +}), clearEmptySibling: (function (node, ignoreNext, ignorePre) { + _$jscoverage['core/domUtils.js'][523]++; + function clear(next, dir) { + _$jscoverage['core/domUtils.js'][524]++; + var tmpNode; + _$jscoverage['core/domUtils.js'][525]++; + while ((next && (! domUtils.isBookmarkNode(next)) && (domUtils.isEmptyInlineElement(next) || (! new RegExp(("[^\t\n\r" + domUtils.fillChar + "]")).test(next.nodeValue))))) { + _$jscoverage['core/domUtils.js'][528]++; + tmpNode = next[dir]; + _$jscoverage['core/domUtils.js'][529]++; + domUtils.remove(next); + _$jscoverage['core/domUtils.js'][530]++; + next = tmpNode; +} +} + _$jscoverage['core/domUtils.js'][533]++; + ((! ignoreNext) && clear(node.nextSibling, "nextSibling")); + _$jscoverage['core/domUtils.js'][534]++; + ((! ignorePre) && clear(node.previousSibling, "previousSibling")); +}), split: (function (node, offset) { + _$jscoverage['core/domUtils.js'][554]++; + var doc = node.ownerDocument; + _$jscoverage['core/domUtils.js'][555]++; + if ((browser.ie && (offset == node.nodeValue.length))) { + _$jscoverage['core/domUtils.js'][556]++; + var next = doc.createTextNode(""); + _$jscoverage['core/domUtils.js'][557]++; + return domUtils.insertAfter(node, next); + } + _$jscoverage['core/domUtils.js'][559]++; + var retval = node.splitText(offset); + _$jscoverage['core/domUtils.js'][561]++; + if (browser.ie8) { + _$jscoverage['core/domUtils.js'][562]++; + var tmpNode = doc.createTextNode(""); + _$jscoverage['core/domUtils.js'][563]++; + domUtils.insertAfter(retval, tmpNode); + _$jscoverage['core/domUtils.js'][564]++; + domUtils.remove(tmpNode); + } + _$jscoverage['core/domUtils.js'][566]++; + return retval; +}), isWhitespace: (function (node) { + _$jscoverage['core/domUtils.js'][586]++; + return (! new RegExp(("[^ \t\n\r" + domUtils.fillChar + "]")).test(node.nodeValue)); +}), getXY: (function (element) { + _$jscoverage['core/domUtils.js'][604]++; + var x = 0, y = 0; + _$jscoverage['core/domUtils.js'][605]++; + while (element.offsetParent) { + _$jscoverage['core/domUtils.js'][606]++; + y += element.offsetTop; + _$jscoverage['core/domUtils.js'][607]++; + x += element.offsetLeft; + _$jscoverage['core/domUtils.js'][608]++; + element = element.offsetParent; +} + _$jscoverage['core/domUtils.js'][610]++; + return ({"x": x, "y": y}); +}), on: (function (element, type, handler) { + _$jscoverage['core/domUtils.js'][641]++; + var types = (utils.isArray(type)? type: [type]), k = types.length; + _$jscoverage['core/domUtils.js'][643]++; + if (k) { + _$jscoverage['core/domUtils.js'][643]++; + while ((k--)) { + _$jscoverage['core/domUtils.js'][644]++; + type = types[k]; + _$jscoverage['core/domUtils.js'][645]++; + if (element.addEventListener) { + _$jscoverage['core/domUtils.js'][646]++; + element.addEventListener(type, handler, false); + } + else { + _$jscoverage['core/domUtils.js'][648]++; + if ((! handler._d)) { + _$jscoverage['core/domUtils.js'][649]++; + handler._d = {els: []}; + } + _$jscoverage['core/domUtils.js'][653]++; + var key = (type + handler.toString()), index = utils.indexOf(handler._d.els, element); + _$jscoverage['core/domUtils.js'][654]++; + if (((! handler._d[key]) || (index == -1))) { + _$jscoverage['core/domUtils.js'][655]++; + if ((index == -1)) { + _$jscoverage['core/domUtils.js'][656]++; + handler._d.els.push(element); + } + _$jscoverage['core/domUtils.js'][658]++; + if ((! handler._d[key])) { + _$jscoverage['core/domUtils.js'][659]++; + handler._d[key] = (function (evt) { + _$jscoverage['core/domUtils.js'][660]++; + return handler.call(evt.srcElement, (evt || window.event)); +}); + } + _$jscoverage['core/domUtils.js'][665]++; + element.attachEvent(("on" + type), handler._d[key]); + } + } +} + } + _$jscoverage['core/domUtils.js'][669]++; + element = null; +}), un: (function (element, type, handler) { + _$jscoverage['core/domUtils.js'][700]++; + var types = (utils.isArray(type)? type: [type]), k = types.length; + _$jscoverage['core/domUtils.js'][702]++; + if (k) { + _$jscoverage['core/domUtils.js'][702]++; + while ((k--)) { + _$jscoverage['core/domUtils.js'][703]++; + type = types[k]; + _$jscoverage['core/domUtils.js'][704]++; + if (element.removeEventListener) { + _$jscoverage['core/domUtils.js'][705]++; + element.removeEventListener(type, handler, false); + } + else { + _$jscoverage['core/domUtils.js'][707]++; + var key = (type + handler.toString()); + _$jscoverage['core/domUtils.js'][708]++; + try { + _$jscoverage['core/domUtils.js'][709]++; + element.detachEvent(("on" + type), (handler._d? handler._d[key]: handler)); + } + catch (e) { + } + _$jscoverage['core/domUtils.js'][711]++; + if ((handler._d && handler._d[key])) { + _$jscoverage['core/domUtils.js'][712]++; + var index = utils.indexOf(handler._d.els, element); + _$jscoverage['core/domUtils.js'][713]++; + if ((index != -1)) { + _$jscoverage['core/domUtils.js'][714]++; + handler._d.els.splice(index, 1); + } + _$jscoverage['core/domUtils.js'][716]++; + ((handler._d.els.length == 0) && (delete handler._d[key])); + } + } +} + } +}), isSameElement: (function (nodeA, nodeB) { + _$jscoverage['core/domUtils.js'][749]++; + if ((nodeA.tagName != nodeB.tagName)) { + _$jscoverage['core/domUtils.js'][750]++; + return false; + } + _$jscoverage['core/domUtils.js'][752]++; + var thisAttrs = nodeA.attributes, otherAttrs = nodeB.attributes; + _$jscoverage['core/domUtils.js'][754]++; + if (((! ie) && (thisAttrs.length != otherAttrs.length))) { + _$jscoverage['core/domUtils.js'][755]++; + return false; + } + _$jscoverage['core/domUtils.js'][757]++; + var attrA, attrB, al = 0, bl = 0; + _$jscoverage['core/domUtils.js'][758]++; + for (var i = 0; (attrA = thisAttrs[(i++)]);) { + _$jscoverage['core/domUtils.js'][759]++; + if ((attrA.nodeName == "style")) { + _$jscoverage['core/domUtils.js'][760]++; + if (attrA.specified) { + _$jscoverage['core/domUtils.js'][761]++; + (al++); + } + _$jscoverage['core/domUtils.js'][763]++; + if (domUtils.isSameStyle(nodeA, nodeB)) { + _$jscoverage['core/domUtils.js'][764]++; + continue; + } + else { + _$jscoverage['core/domUtils.js'][766]++; + return false; + } + } + _$jscoverage['core/domUtils.js'][769]++; + if (ie) { + _$jscoverage['core/domUtils.js'][770]++; + if (attrA.specified) { + _$jscoverage['core/domUtils.js'][771]++; + (al++); + _$jscoverage['core/domUtils.js'][772]++; + attrB = otherAttrs.getNamedItem(attrA.nodeName); + } + else { + _$jscoverage['core/domUtils.js'][774]++; + continue; + } + } + else { + _$jscoverage['core/domUtils.js'][777]++; + attrB = nodeB.attributes[attrA.nodeName]; + } + _$jscoverage['core/domUtils.js'][779]++; + if (((! attrB.specified) || (attrA.nodeValue != attrB.nodeValue))) { + _$jscoverage['core/domUtils.js'][780]++; + return false; + } +} + _$jscoverage['core/domUtils.js'][784]++; + if (ie) { + _$jscoverage['core/domUtils.js'][785]++; + for (i = 0; (attrB = otherAttrs[(i++)]);) { + _$jscoverage['core/domUtils.js'][786]++; + if (attrB.specified) { + _$jscoverage['core/domUtils.js'][787]++; + (bl++); + } +} + _$jscoverage['core/domUtils.js'][790]++; + if ((al != bl)) { + _$jscoverage['core/domUtils.js'][791]++; + return false; + } + } + _$jscoverage['core/domUtils.js'][794]++; + return true; +}), isSameStyle: (function (nodeA, nodeB) { + _$jscoverage['core/domUtils.js'][824]++; + var styleA = nodeA.style.cssText.replace(/( ?; ?)/g, ";").replace(/( ?: ?)/g, ":"), styleB = nodeB.style.cssText.replace(/( ?; ?)/g, ";").replace(/( ?: ?)/g, ":"); + _$jscoverage['core/domUtils.js'][826]++; + if (browser.opera) { + _$jscoverage['core/domUtils.js'][827]++; + styleA = nodeA.style; + _$jscoverage['core/domUtils.js'][828]++; + styleB = nodeB.style; + _$jscoverage['core/domUtils.js'][829]++; + if ((styleA.length != styleB.length)) { + _$jscoverage['core/domUtils.js'][830]++; + return false; + } + _$jscoverage['core/domUtils.js'][831]++; + for (var p in styleA) { + _$jscoverage['core/domUtils.js'][832]++; + if (/^(\d+|csstext)$/i.test(p)) { + _$jscoverage['core/domUtils.js'][833]++; + continue; + } + _$jscoverage['core/domUtils.js'][835]++; + if ((styleA[p] != styleB[p])) { + _$jscoverage['core/domUtils.js'][836]++; + return false; + } +} + _$jscoverage['core/domUtils.js'][839]++; + return true; + } + _$jscoverage['core/domUtils.js'][841]++; + if (((! styleA) || (! styleB))) { + _$jscoverage['core/domUtils.js'][842]++; + return (styleA == styleB); + } + _$jscoverage['core/domUtils.js'][844]++; + styleA = styleA.split(";"); + _$jscoverage['core/domUtils.js'][845]++; + styleB = styleB.split(";"); + _$jscoverage['core/domUtils.js'][846]++; + if ((styleA.length != styleB.length)) { + _$jscoverage['core/domUtils.js'][847]++; + return false; + } + _$jscoverage['core/domUtils.js'][849]++; + for (var i = 0, ci; (ci = styleA[(i++)]);) { + _$jscoverage['core/domUtils.js'][850]++; + if ((utils.indexOf(styleB, ci) == -1)) { + _$jscoverage['core/domUtils.js'][851]++; + return false; + } +} + _$jscoverage['core/domUtils.js'][854]++; + return true; +}), isBlockElm: (function (node) { + _$jscoverage['core/domUtils.js'][885]++; + return ((node.nodeType == 1) && (dtd.$block[node.tagName] || styleBlock[domUtils.getComputedStyle(node, "display")]) && (! dtd.$nonChild[node.tagName])); +}), isBody: (function (node) { + _$jscoverage['core/domUtils.js'][900]++; + return (node && (node.nodeType == 1) && (node.tagName.toLowerCase() == "body")); +}), breakParent: (function (node, parent) { + _$jscoverage['core/domUtils.js'][913]++; + var tmpNode, parentClone = node, clone = node, leftNodes, rightNodes; + _$jscoverage['core/domUtils.js'][918]++; + do { + _$jscoverage['core/domUtils.js'][919]++; + parentClone = parentClone.parentNode; + _$jscoverage['core/domUtils.js'][920]++; + if (leftNodes) { + _$jscoverage['core/domUtils.js'][921]++; + tmpNode = parentClone.cloneNode(false); + _$jscoverage['core/domUtils.js'][922]++; + tmpNode.appendChild(leftNodes); + _$jscoverage['core/domUtils.js'][923]++; + leftNodes = tmpNode; + _$jscoverage['core/domUtils.js'][924]++; + tmpNode = parentClone.cloneNode(false); + _$jscoverage['core/domUtils.js'][925]++; + tmpNode.appendChild(rightNodes); + _$jscoverage['core/domUtils.js'][926]++; + rightNodes = tmpNode; + } + else { + _$jscoverage['core/domUtils.js'][928]++; + leftNodes = parentClone.cloneNode(false); + _$jscoverage['core/domUtils.js'][929]++; + rightNodes = leftNodes.cloneNode(false); + } + _$jscoverage['core/domUtils.js'][931]++; + while ((tmpNode = clone.previousSibling)) { + _$jscoverage['core/domUtils.js'][932]++; + leftNodes.insertBefore(tmpNode, leftNodes.firstChild); +} + _$jscoverage['core/domUtils.js'][934]++; + while ((tmpNode = clone.nextSibling)) { + _$jscoverage['core/domUtils.js'][935]++; + rightNodes.appendChild(tmpNode); +} + _$jscoverage['core/domUtils.js'][937]++; + clone = parentClone; +} + while ((parent !== parentClone)); + _$jscoverage['core/domUtils.js'][939]++; + tmpNode = parent.parentNode; + _$jscoverage['core/domUtils.js'][940]++; + tmpNode.insertBefore(leftNodes, parent); + _$jscoverage['core/domUtils.js'][941]++; + tmpNode.insertBefore(rightNodes, parent); + _$jscoverage['core/domUtils.js'][942]++; + tmpNode.insertBefore(node, rightNodes); + _$jscoverage['core/domUtils.js'][943]++; + domUtils.remove(parent); + _$jscoverage['core/domUtils.js'][944]++; + return node; +}), isEmptyInlineElement: (function (node) { + _$jscoverage['core/domUtils.js'][958]++; + if (((node.nodeType != 1) || (! dtd.$removeEmpty[node.tagName]))) { + _$jscoverage['core/domUtils.js'][959]++; + return 0; + } + _$jscoverage['core/domUtils.js'][961]++; + node = node.firstChild; + _$jscoverage['core/domUtils.js'][962]++; + while (node) { + _$jscoverage['core/domUtils.js'][964]++; + if (domUtils.isBookmarkNode(node)) { + _$jscoverage['core/domUtils.js'][965]++; + return 0; + } + _$jscoverage['core/domUtils.js'][967]++; + if ((((node.nodeType == 1) && (! domUtils.isEmptyInlineElement(node))) || ((node.nodeType == 3) && (! domUtils.isWhitespace(node))))) { + _$jscoverage['core/domUtils.js'][970]++; + return 0; + } + _$jscoverage['core/domUtils.js'][972]++; + node = node.nextSibling; +} + _$jscoverage['core/domUtils.js'][974]++; + return 1; +}), trimWhiteTextNode: (function (node) { + _$jscoverage['core/domUtils.js'][1000]++; + function remove(dir) { + _$jscoverage['core/domUtils.js'][1001]++; + var child; + _$jscoverage['core/domUtils.js'][1002]++; + while (((child = node[dir]) && (child.nodeType == 3) && domUtils.isWhitespace(child))) { + _$jscoverage['core/domUtils.js'][1003]++; + node.removeChild(child); +} +} + _$jscoverage['core/domUtils.js'][1006]++; + remove("firstChild"); + _$jscoverage['core/domUtils.js'][1007]++; + remove("lastChild"); +}), mergeChild: (function (node, tagName, attrs) { + _$jscoverage['core/domUtils.js'][1019]++; + var list = domUtils.getElementsByTagName(node, node.tagName.toLowerCase()); + _$jscoverage['core/domUtils.js'][1020]++; + for (var i = 0, ci; (ci = list[(i++)]);) { + _$jscoverage['core/domUtils.js'][1021]++; + if (((! ci.parentNode) || domUtils.isBookmarkNode(ci))) { + _$jscoverage['core/domUtils.js'][1022]++; + continue; + } + _$jscoverage['core/domUtils.js'][1025]++; + if ((ci.tagName.toLowerCase() == "span")) { + _$jscoverage['core/domUtils.js'][1026]++; + if ((node === ci.parentNode)) { + _$jscoverage['core/domUtils.js'][1027]++; + domUtils.trimWhiteTextNode(node); + _$jscoverage['core/domUtils.js'][1028]++; + if ((node.childNodes.length == 1)) { + _$jscoverage['core/domUtils.js'][1029]++; + node.style.cssText = (ci.style.cssText + ";" + node.style.cssText); + _$jscoverage['core/domUtils.js'][1030]++; + domUtils.remove(ci, true); + _$jscoverage['core/domUtils.js'][1031]++; + continue; + } + } + _$jscoverage['core/domUtils.js'][1034]++; + ci.style.cssText = (node.style.cssText + ";" + ci.style.cssText); + _$jscoverage['core/domUtils.js'][1035]++; + if (attrs) { + _$jscoverage['core/domUtils.js'][1036]++; + var style = attrs.style; + _$jscoverage['core/domUtils.js'][1037]++; + if (style) { + _$jscoverage['core/domUtils.js'][1038]++; + style = style.split(";"); + _$jscoverage['core/domUtils.js'][1039]++; + for (var j = 0, s; (s = style[(j++)]);) { + _$jscoverage['core/domUtils.js'][1040]++; + ci.style[utils.cssStyleToDomStyle(s.split(":")[0])] = s.split(":")[1]; +} + } + } + _$jscoverage['core/domUtils.js'][1044]++; + if (domUtils.isSameStyle(ci, node)) { + _$jscoverage['core/domUtils.js'][1045]++; + domUtils.remove(ci, true); + } + _$jscoverage['core/domUtils.js'][1047]++; + continue; + } + _$jscoverage['core/domUtils.js'][1049]++; + if (domUtils.isSameElement(node, ci)) { + _$jscoverage['core/domUtils.js'][1050]++; + domUtils.remove(ci, true); + } +} +}), getElementsByTagName: (function (node, name, filter) { + _$jscoverage['core/domUtils.js'][1061]++; + if ((filter && utils.isString(filter))) { + _$jscoverage['core/domUtils.js'][1062]++; + var className = filter; + _$jscoverage['core/domUtils.js'][1063]++; + filter = (function (node) { + _$jscoverage['core/domUtils.js'][1063]++; + return domUtils.hasClass(node, className); +}); + } + _$jscoverage['core/domUtils.js'][1065]++; + name = utils.trim(name).replace(/[ ]{2,}/g, " ").split(" "); + _$jscoverage['core/domUtils.js'][1066]++; + var arr = []; + _$jscoverage['core/domUtils.js'][1067]++; + for (var n = 0, ni; (ni = name[(n++)]);) { + _$jscoverage['core/domUtils.js'][1068]++; + var list = node.getElementsByTagName(ni); + _$jscoverage['core/domUtils.js'][1069]++; + for (var i = 0, ci; (ci = list[(i++)]);) { + _$jscoverage['core/domUtils.js'][1070]++; + if (((! filter) || filter(ci))) { + _$jscoverage['core/domUtils.js'][1071]++; + arr.push(ci); + } +} +} + _$jscoverage['core/domUtils.js'][1075]++; + return arr; +}), mergeToParent: (function (node) { + _$jscoverage['core/domUtils.js'][1106]++; + var parent = node.parentNode; + _$jscoverage['core/domUtils.js'][1107]++; + while ((parent && dtd.$removeEmpty[parent.tagName])) { + _$jscoverage['core/domUtils.js'][1108]++; + if (((parent.tagName == node.tagName) || (parent.tagName == "A"))) { + _$jscoverage['core/domUtils.js'][1109]++; + domUtils.trimWhiteTextNode(parent); + _$jscoverage['core/domUtils.js'][1111]++; + if ((((parent.tagName == "SPAN") && (! domUtils.isSameStyle(parent, node))) || ((parent.tagName == "A") && (node.tagName == "SPAN")))) { + _$jscoverage['core/domUtils.js'][1113]++; + if (((parent.childNodes.length > 1) || (parent !== node.parentNode))) { + _$jscoverage['core/domUtils.js'][1114]++; + node.style.cssText = (parent.style.cssText + ";" + node.style.cssText); + _$jscoverage['core/domUtils.js'][1115]++; + parent = parent.parentNode; + _$jscoverage['core/domUtils.js'][1116]++; + continue; + } + else { + _$jscoverage['core/domUtils.js'][1118]++; + parent.style.cssText += (";" + node.style.cssText); + _$jscoverage['core/domUtils.js'][1120]++; + if ((parent.tagName == "A")) { + _$jscoverage['core/domUtils.js'][1121]++; + parent.style.textDecoration = "underline"; + } + } + } + _$jscoverage['core/domUtils.js'][1125]++; + if ((parent.tagName != "A")) { + _$jscoverage['core/domUtils.js'][1126]++; + ((parent === node.parentNode) && domUtils.remove(node, true)); + _$jscoverage['core/domUtils.js'][1127]++; + break; + } + } + _$jscoverage['core/domUtils.js'][1130]++; + parent = parent.parentNode; +} +}), mergeSibling: (function (node, ignorePre, ignoreNext) { + _$jscoverage['core/domUtils.js'][1189]++; + function merge(rtl, start, node) { + _$jscoverage['core/domUtils.js'][1190]++; + var next; + _$jscoverage['core/domUtils.js'][1191]++; + if (((next = node[rtl]) && (! domUtils.isBookmarkNode(next)) && (next.nodeType == 1) && domUtils.isSameElement(node, next))) { + _$jscoverage['core/domUtils.js'][1192]++; + while (next.firstChild) { + _$jscoverage['core/domUtils.js'][1193]++; + if ((start == "firstChild")) { + _$jscoverage['core/domUtils.js'][1194]++; + node.insertBefore(next.lastChild, node.firstChild); + } + else { + _$jscoverage['core/domUtils.js'][1196]++; + node.appendChild(next.firstChild); + } +} + _$jscoverage['core/domUtils.js'][1199]++; + domUtils.remove(next); + } +} + _$jscoverage['core/domUtils.js'][1202]++; + ((! ignorePre) && merge("previousSibling", "firstChild", node)); + _$jscoverage['core/domUtils.js'][1203]++; + ((! ignoreNext) && merge("nextSibling", "lastChild", node)); +}), unSelectable: ((ie || browser.opera)? (function (node) { + _$jscoverage['core/domUtils.js'][1218]++; + node.onselectstart = (function () { + _$jscoverage['core/domUtils.js'][1219]++; + return false; +}); + _$jscoverage['core/domUtils.js'][1221]++; + node.onclick = (node.onkeyup = (node.onkeydown = (function () { + _$jscoverage['core/domUtils.js'][1222]++; + return false; +}))); + _$jscoverage['core/domUtils.js'][1224]++; + node.unselectable = "on"; + _$jscoverage['core/domUtils.js'][1225]++; + node.setAttribute("unselectable", "on"); + _$jscoverage['core/domUtils.js'][1226]++; + for (var i = 0, ci; (ci = node.all[(i++)]);) { + _$jscoverage['core/domUtils.js'][1227]++; + switch (ci.tagName.toLowerCase()) { + case "iframe": + case "textarea": + case "input": + case "select": + _$jscoverage['core/domUtils.js'][1232]++; + break; + default: + _$jscoverage['core/domUtils.js'][1234]++; + ci.unselectable = "on"; + _$jscoverage['core/domUtils.js'][1235]++; + node.setAttribute("unselectable", "on"); + } +} +}): (function (node) { + _$jscoverage['core/domUtils.js'][1239]++; + node.style.MozUserSelect = (node.style.webkitUserSelect = (node.style.KhtmlUserSelect = "none")); +})), removeAttributes: (function (node, attrNames) { + _$jscoverage['core/domUtils.js'][1286]++; + attrNames = (utils.isArray(attrNames)? attrNames: utils.trim(attrNames).replace(/[ ]{2,}/g, " ").split(" ")); + _$jscoverage['core/domUtils.js'][1287]++; + for (var i = 0, ci; (ci = attrNames[(i++)]);) { + _$jscoverage['core/domUtils.js'][1288]++; + ci = (attrFix[ci] || ci); + _$jscoverage['core/domUtils.js'][1289]++; + switch (ci) { + case "className": + _$jscoverage['core/domUtils.js'][1291]++; + node[ci] = ""; + _$jscoverage['core/domUtils.js'][1292]++; + break; + case "style": + _$jscoverage['core/domUtils.js'][1294]++; + node.style.cssText = ""; + _$jscoverage['core/domUtils.js'][1295]++; + ((! browser.ie) && node.removeAttributeNode(node.getAttributeNode("style"))); + } + _$jscoverage['core/domUtils.js'][1297]++; + node.removeAttribute(ci); +} +}), createElement: (function (doc, tag, attrs) { + _$jscoverage['core/domUtils.js'][1323]++; + return domUtils.setAttributes(doc.createElement(tag), attrs); +}), setAttributes: (function (node, attrs) { + _$jscoverage['core/domUtils.js'][1349]++; + for (var attr in attrs) { + _$jscoverage['core/domUtils.js'][1350]++; + if (attrs.hasOwnProperty(attr)) { + _$jscoverage['core/domUtils.js'][1351]++; + var value = attrs[attr]; + _$jscoverage['core/domUtils.js'][1352]++; + switch (attr) { + case "class": + _$jscoverage['core/domUtils.js'][1355]++; + node.className = value; + _$jscoverage['core/domUtils.js'][1356]++; + break; + case "style": + _$jscoverage['core/domUtils.js'][1358]++; + node.style.cssText = (node.style.cssText + ";" + value); + _$jscoverage['core/domUtils.js'][1359]++; + break; + case "innerHTML": + _$jscoverage['core/domUtils.js'][1361]++; + node[attr] = value; + _$jscoverage['core/domUtils.js'][1362]++; + break; + case "value": + _$jscoverage['core/domUtils.js'][1364]++; + node.value = value; + _$jscoverage['core/domUtils.js'][1365]++; + break; + default: + _$jscoverage['core/domUtils.js'][1367]++; + node.setAttribute((attrFix[attr] || attr), value); + } + } +} + _$jscoverage['core/domUtils.js'][1371]++; + return node; +}), getComputedStyle: (function (element, styleName) { + _$jscoverage['core/domUtils.js'][1398]++; + var pros = "width height top left"; + _$jscoverage['core/domUtils.js'][1400]++; + if ((pros.indexOf(styleName) > -1)) { + _$jscoverage['core/domUtils.js'][1401]++; + return (element[("offset" + styleName.replace(/^\w/, (function (s) { + _$jscoverage['core/domUtils.js'][1401]++; + return s.toUpperCase(); +})))] + "px"); + } + _$jscoverage['core/domUtils.js'][1404]++; + if ((element.nodeType == 3)) { + _$jscoverage['core/domUtils.js'][1405]++; + element = element.parentNode; + } + _$jscoverage['core/domUtils.js'][1408]++; + if ((browser.ie && (browser.version < 9) && (styleName == "font-size") && (! element.style.fontSize) && (! dtd.$empty[element.tagName]) && (! dtd.$nonChild[element.tagName]))) { + _$jscoverage['core/domUtils.js'][1410]++; + var span = element.ownerDocument.createElement("span"); + _$jscoverage['core/domUtils.js'][1411]++; + span.style.cssText = "padding:0;border:0;font-family:simsun;"; + _$jscoverage['core/domUtils.js'][1412]++; + span.innerHTML = "."; + _$jscoverage['core/domUtils.js'][1413]++; + element.appendChild(span); + _$jscoverage['core/domUtils.js'][1414]++; + var result = span.offsetHeight; + _$jscoverage['core/domUtils.js'][1415]++; + element.removeChild(span); + _$jscoverage['core/domUtils.js'][1416]++; + span = null; + _$jscoverage['core/domUtils.js'][1417]++; + return (result + "px"); + } + _$jscoverage['core/domUtils.js'][1419]++; + try { + _$jscoverage['core/domUtils.js'][1420]++; + var value = (domUtils.getStyle(element, styleName) || (window.getComputedStyle? domUtils.getWindow(element).getComputedStyle(element, "").getPropertyValue(styleName): (element.currentStyle || element.style)[utils.cssStyleToDomStyle(styleName)])); + } + catch (e) { + _$jscoverage['core/domUtils.js'][1425]++; + return ""; + } + _$jscoverage['core/domUtils.js'][1427]++; + return utils.transUnitToPx(utils.fixColor(styleName, value)); +}), removeClasses: (function (elm, classNames) { + _$jscoverage['core/domUtils.js'][1471]++; + classNames = (utils.isArray(classNames)? classNames: utils.trim(classNames).replace(/[ ]{2,}/g, " ").split(" ")); + _$jscoverage['core/domUtils.js'][1473]++; + for (var i = 0, ci, cls = elm.className; (ci = classNames[(i++)]);) { + _$jscoverage['core/domUtils.js'][1474]++; + cls = cls.replace(new RegExp(("\\b" + ci + "\\b")), ""); +} + _$jscoverage['core/domUtils.js'][1476]++; + cls = utils.trim(cls).replace(/[ ]{2,}/g, " "); + _$jscoverage['core/domUtils.js'][1477]++; + if (cls) { + _$jscoverage['core/domUtils.js'][1478]++; + elm.className = cls; + } + else { + _$jscoverage['core/domUtils.js'][1480]++; + domUtils.removeAttributes(elm, ["class"]); + } +}), addClass: (function (elm, classNames) { + _$jscoverage['core/domUtils.js'][1528]++; + if ((! elm)) { + _$jscoverage['core/domUtils.js'][1528]++; + return; + } + _$jscoverage['core/domUtils.js'][1529]++; + classNames = utils.trim(classNames).replace(/[ ]{2,}/g, " ").split(" "); + _$jscoverage['core/domUtils.js'][1530]++; + for (var i = 0, ci, cls = elm.className; (ci = classNames[(i++)]);) { + _$jscoverage['core/domUtils.js'][1531]++; + if ((! new RegExp(("\\b" + ci + "\\b")).test(cls))) { + _$jscoverage['core/domUtils.js'][1532]++; + elm.className += (" " + ci); + } +} +}), hasClass: (function (element, className) { + _$jscoverage['core/domUtils.js'][1581]++; + if (utils.isRegExp(className)) { + _$jscoverage['core/domUtils.js'][1582]++; + return className.test(element.className); + } + _$jscoverage['core/domUtils.js'][1584]++; + className = utils.trim(className).replace(/[ ]{2,}/g, " ").split(" "); + _$jscoverage['core/domUtils.js'][1585]++; + for (var i = 0, ci, cls = element.className; (ci = className[(i++)]);) { + _$jscoverage['core/domUtils.js'][1586]++; + if ((! new RegExp(("\\b" + ci + "\\b"), "i").test(cls))) { + _$jscoverage['core/domUtils.js'][1587]++; + return false; + } +} + _$jscoverage['core/domUtils.js'][1590]++; + return ((i - 1) == className.length); +}), preventDefault: (function (evt) { + _$jscoverage['core/domUtils.js'][1603]++; + (evt.preventDefault? evt.preventDefault(): (evt.returnValue = false)); +}), removeStyle: (function (element, name) { + _$jscoverage['core/domUtils.js'][1628]++; + if (browser.ie) { + _$jscoverage['core/domUtils.js'][1630]++; + if ((name == "color")) { + _$jscoverage['core/domUtils.js'][1631]++; + name = ("(^|;)" + name); + } + _$jscoverage['core/domUtils.js'][1633]++; + element.style.cssText = element.style.cssText.replace(new RegExp((name + "[^:]*:[^;]+;?"), "ig"), ""); + } + else { + _$jscoverage['core/domUtils.js'][1635]++; + if (element.style.removeProperty) { + _$jscoverage['core/domUtils.js'][1636]++; + element.style.removeProperty(name); + } + else { + _$jscoverage['core/domUtils.js'][1638]++; + element.style.removeAttribute(utils.cssStyleToDomStyle(name)); + } + } + _$jscoverage['core/domUtils.js'][1643]++; + if ((! element.style.cssText)) { + _$jscoverage['core/domUtils.js'][1644]++; + domUtils.removeAttributes(element, ["style"]); + } +}), getStyle: (function (element, name) { + _$jscoverage['core/domUtils.js'][1673]++; + var value = element.style[utils.cssStyleToDomStyle(name)]; + _$jscoverage['core/domUtils.js'][1674]++; + return utils.fixColor(name, value); +}), setStyle: (function (element, name, value) { + _$jscoverage['core/domUtils.js'][1703]++; + element.style[utils.cssStyleToDomStyle(name)] = value; + _$jscoverage['core/domUtils.js'][1704]++; + if ((! utils.trim(element.style.cssText))) { + _$jscoverage['core/domUtils.js'][1705]++; + this.removeAttributes(element, "style"); + } +}), setStyles: (function (element, styles) { + _$jscoverage['core/domUtils.js'][1735]++; + for (var name in styles) { + _$jscoverage['core/domUtils.js'][1736]++; + if (styles.hasOwnProperty(name)) { + _$jscoverage['core/domUtils.js'][1737]++; + domUtils.setStyle(element, name, styles[name]); + } +} +}), removeDirtyAttr: (function (node) { + _$jscoverage['core/domUtils.js'][1747]++; + for (var i = 0, ci, nodes = node.getElementsByTagName("*"); (ci = nodes[(i++)]);) { + _$jscoverage['core/domUtils.js'][1748]++; + ci.removeAttribute("_moz_dirty"); +} + _$jscoverage['core/domUtils.js'][1750]++; + node.removeAttribute("_moz_dirty"); +}), getChildCount: (function (node, fn) { + _$jscoverage['core/domUtils.js'][1798]++; + var count = 0, first = node.firstChild; + _$jscoverage['core/domUtils.js'][1799]++; + fn = (fn || (function () { + _$jscoverage['core/domUtils.js'][1800]++; + return 1; +})); + _$jscoverage['core/domUtils.js'][1802]++; + while (first) { + _$jscoverage['core/domUtils.js'][1803]++; + if (fn(first)) { + _$jscoverage['core/domUtils.js'][1804]++; + (count++); + } + _$jscoverage['core/domUtils.js'][1806]++; + first = first.nextSibling; +} + _$jscoverage['core/domUtils.js'][1808]++; + return count; +}), isEmptyNode: (function (node) { + _$jscoverage['core/domUtils.js'][1822]++; + return ((! node.firstChild) || (domUtils.getChildCount(node, (function (node) { + _$jscoverage['core/domUtils.js'][1823]++; + return ((! domUtils.isBr(node)) && (! domUtils.isBookmarkNode(node)) && (! domUtils.isWhitespace(node))); +})) == 0)); +}), clearSelectedArr: (function (nodes) { + _$jscoverage['core/domUtils.js'][1839]++; + var node; + _$jscoverage['core/domUtils.js'][1840]++; + while ((node = nodes.pop())) { + _$jscoverage['core/domUtils.js'][1841]++; + domUtils.removeAttributes(node, ["class"]); +} +}), scrollToView: (function (node, win, offsetTop) { + _$jscoverage['core/domUtils.js'][1853]++; + var getViewPaneSize = (function () { + _$jscoverage['core/domUtils.js'][1854]++; + var doc = win.document, mode = (doc.compatMode == "CSS1Compat"); + _$jscoverage['core/domUtils.js'][1856]++; + return ({width: ((mode? doc.documentElement.clientWidth: doc.body.clientWidth) || 0), height: ((mode? doc.documentElement.clientHeight: doc.body.clientHeight) || 0)}); +}), getScrollPosition = (function (win) { + _$jscoverage['core/domUtils.js'][1862]++; + if (("pageXOffset" in win)) { + _$jscoverage['core/domUtils.js'][1863]++; + return ({x: (win.pageXOffset || 0), y: (win.pageYOffset || 0)}); + } + else { + _$jscoverage['core/domUtils.js'][1869]++; + var doc = win.document; + _$jscoverage['core/domUtils.js'][1870]++; + return ({x: (doc.documentElement.scrollLeft || doc.body.scrollLeft || 0), y: (doc.documentElement.scrollTop || doc.body.scrollTop || 0)}); + } +}); + _$jscoverage['core/domUtils.js'][1876]++; + var winHeight = getViewPaneSize().height, offset = ((winHeight * -1) + offsetTop); + _$jscoverage['core/domUtils.js'][1877]++; + offset += (node.offsetHeight || 0); + _$jscoverage['core/domUtils.js'][1878]++; + var elementPosition = domUtils.getXY(node); + _$jscoverage['core/domUtils.js'][1879]++; + offset += elementPosition.y; + _$jscoverage['core/domUtils.js'][1880]++; + var currentScroll = getScrollPosition(win).y; + _$jscoverage['core/domUtils.js'][1882]++; + if (((offset > currentScroll) || (offset < (currentScroll - winHeight)))) { + _$jscoverage['core/domUtils.js'][1883]++; + win.scrollTo(0, (offset + ((offset < 0)? -20: 20))); + } +}), isBr: (function (node) { + _$jscoverage['core/domUtils.js'][1894]++; + return ((node.nodeType == 1) && (node.tagName == "BR")); +}), isFillChar: (function (node, isInStart) { + _$jscoverage['core/domUtils.js'][1905]++; + return ((node.nodeType == 3) && (! node.nodeValue.replace(new RegExp(((isInStart? "^": "") + domUtils.fillChar)), "").length)); +}), isStartInblock: (function (range) { + _$jscoverage['core/domUtils.js'][1910]++; + var tmpRange = range.cloneRange(), flag = 0, start = tmpRange.startContainer, tmp; + _$jscoverage['core/domUtils.js'][1914]++; + if (((start.nodeType == 1) && start.childNodes[tmpRange.startOffset])) { + _$jscoverage['core/domUtils.js'][1915]++; + start = start.childNodes[tmpRange.startOffset]; + _$jscoverage['core/domUtils.js'][1916]++; + var pre = start.previousSibling; + _$jscoverage['core/domUtils.js'][1917]++; + while ((pre && domUtils.isFillChar(pre))) { + _$jscoverage['core/domUtils.js'][1918]++; + start = pre; + _$jscoverage['core/domUtils.js'][1919]++; + pre = pre.previousSibling; +} + } + _$jscoverage['core/domUtils.js'][1922]++; + if ((this.isFillChar(start, true) && (tmpRange.startOffset == 1))) { + _$jscoverage['core/domUtils.js'][1923]++; + tmpRange.setStartBefore(start); + _$jscoverage['core/domUtils.js'][1924]++; + start = tmpRange.startContainer; + } + _$jscoverage['core/domUtils.js'][1927]++; + while ((start && domUtils.isFillChar(start))) { + _$jscoverage['core/domUtils.js'][1928]++; + tmp = start; + _$jscoverage['core/domUtils.js'][1929]++; + start = start.previousSibling; +} + _$jscoverage['core/domUtils.js'][1931]++; + if (tmp) { + _$jscoverage['core/domUtils.js'][1932]++; + tmpRange.setStartBefore(tmp); + _$jscoverage['core/domUtils.js'][1933]++; + start = tmpRange.startContainer; + } + _$jscoverage['core/domUtils.js'][1935]++; + if (((start.nodeType == 1) && domUtils.isEmptyNode(start) && (tmpRange.startOffset == 1))) { + _$jscoverage['core/domUtils.js'][1936]++; + tmpRange.setStart(start, 0).collapse(true); + } + _$jscoverage['core/domUtils.js'][1938]++; + while ((! tmpRange.startOffset)) { + _$jscoverage['core/domUtils.js'][1939]++; + start = tmpRange.startContainer; + _$jscoverage['core/domUtils.js'][1940]++; + if ((domUtils.isBlockElm(start) || domUtils.isBody(start))) { + _$jscoverage['core/domUtils.js'][1941]++; + flag = 1; + _$jscoverage['core/domUtils.js'][1942]++; + break; + } + _$jscoverage['core/domUtils.js'][1944]++; + var pre = tmpRange.startContainer.previousSibling, tmpNode; + _$jscoverage['core/domUtils.js'][1946]++; + if ((! pre)) { + _$jscoverage['core/domUtils.js'][1947]++; + tmpRange.setStartBefore(tmpRange.startContainer); + } + else { + _$jscoverage['core/domUtils.js'][1949]++; + while ((pre && domUtils.isFillChar(pre))) { + _$jscoverage['core/domUtils.js'][1950]++; + tmpNode = pre; + _$jscoverage['core/domUtils.js'][1951]++; + pre = pre.previousSibling; +} + _$jscoverage['core/domUtils.js'][1953]++; + if (tmpNode) { + _$jscoverage['core/domUtils.js'][1954]++; + tmpRange.setStartBefore(tmpNode); + } + else { + _$jscoverage['core/domUtils.js'][1956]++; + tmpRange.setStartBefore(tmpRange.startContainer); + } + } +} + _$jscoverage['core/domUtils.js'][1960]++; + return ((flag && (! domUtils.isBody(tmpRange.startContainer)))? 1: 0); +}), isEmptyBlock: (function (node, reg) { + _$jscoverage['core/domUtils.js'][1987]++; + if ((node.nodeType != 1)) { + _$jscoverage['core/domUtils.js'][1988]++; + return 0; + } + _$jscoverage['core/domUtils.js'][1989]++; + reg = (reg || new RegExp(("[ \t\r\n" + domUtils.fillChar + "]"), "g")); + _$jscoverage['core/domUtils.js'][1990]++; + if ((node[(browser.ie? "innerText": "textContent")].replace(reg, "").length > 0)) { + _$jscoverage['core/domUtils.js'][1991]++; + return 0; + } + _$jscoverage['core/domUtils.js'][1993]++; + for (var n in dtd.$isNotEmpty) { + _$jscoverage['core/domUtils.js'][1994]++; + if (node.getElementsByTagName(n).length) { + _$jscoverage['core/domUtils.js'][1995]++; + return 0; + } +} + _$jscoverage['core/domUtils.js'][1998]++; + return 1; +}), setViewportOffset: (function (element, offset) { + _$jscoverage['core/domUtils.js'][2028]++; + var left = (parseInt(element.style.left) | 0); + _$jscoverage['core/domUtils.js'][2029]++; + var top = (parseInt(element.style.top) | 0); + _$jscoverage['core/domUtils.js'][2030]++; + var rect = element.getBoundingClientRect(); + _$jscoverage['core/domUtils.js'][2031]++; + var offsetLeft = (offset.left - rect.left); + _$jscoverage['core/domUtils.js'][2032]++; + var offsetTop = (offset.top - rect.top); + _$jscoverage['core/domUtils.js'][2033]++; + if (offsetLeft) { + _$jscoverage['core/domUtils.js'][2034]++; + element.style.left = (left + offsetLeft + "px"); + } + _$jscoverage['core/domUtils.js'][2036]++; + if (offsetTop) { + _$jscoverage['core/domUtils.js'][2037]++; + element.style.top = (top + offsetTop + "px"); + } +}), fillNode: (function (doc, node) { + _$jscoverage['core/domUtils.js'][2065]++; + var tmpNode = (browser.ie? doc.createTextNode(domUtils.fillChar): doc.createElement("br")); + _$jscoverage['core/domUtils.js'][2066]++; + node.innerHTML = ""; + _$jscoverage['core/domUtils.js'][2067]++; + node.appendChild(tmpNode); +}), moveChild: (function (src, tag, dir) { + _$jscoverage['core/domUtils.js'][2133]++; + while (src.firstChild) { + _$jscoverage['core/domUtils.js'][2134]++; + if ((dir && tag.firstChild)) { + _$jscoverage['core/domUtils.js'][2135]++; + tag.insertBefore(src.lastChild, tag.firstChild); + } + else { + _$jscoverage['core/domUtils.js'][2137]++; + tag.appendChild(src.firstChild); + } +} +}), hasNoAttributes: (function (node) { + _$jscoverage['core/domUtils.js'][2163]++; + return (browser.ie? /^<\w+\s*?>/.test(node.outerHTML): (node.attributes.length == 0)); +}), isCustomeNode: (function (node) { + _$jscoverage['core/domUtils.js'][2174]++; + return ((node.nodeType == 1) && node.getAttribute("_ue_custom_node_")); +}), isTagNode: (function (node, tagName) { + _$jscoverage['core/domUtils.js'][2196]++; + return ((node.nodeType == 1) && new RegExp(("^" + node.tagName + "$"), "i").test(tagName)); +}), filterNodeList: (function (nodelist, filter, forAll) { + _$jscoverage['core/domUtils.js'][2266]++; + var results = []; + _$jscoverage['core/domUtils.js'][2267]++; + if ((! utils.isFunction(filter))) { + _$jscoverage['core/domUtils.js'][2268]++; + var str = filter; + _$jscoverage['core/domUtils.js'][2269]++; + filter = (function (n) { + _$jscoverage['core/domUtils.js'][2270]++; + return (utils.indexOf((utils.isArray(str)? str: str.split(" ")), n.tagName.toLowerCase()) != -1); +}); + } + _$jscoverage['core/domUtils.js'][2273]++; + utils.each(nodelist, (function (n) { + _$jscoverage['core/domUtils.js'][2274]++; + (filter(n) && results.push(n)); +})); + _$jscoverage['core/domUtils.js'][2276]++; + return ((results.length == 0)? null: (((results.length == 1) || (! forAll))? results[0]: results)); +}), isInNodeEndBoundary: (function (rng, node) { + _$jscoverage['core/domUtils.js'][2280]++; + var start = rng.startContainer; + _$jscoverage['core/domUtils.js'][2281]++; + if (((start.nodeType == 3) && (rng.startOffset != start.nodeValue.length))) { + _$jscoverage['core/domUtils.js'][2282]++; + return 0; + } + _$jscoverage['core/domUtils.js'][2284]++; + if (((start.nodeType == 1) && (rng.startOffset != start.childNodes.length))) { + _$jscoverage['core/domUtils.js'][2285]++; + return 0; + } + _$jscoverage['core/domUtils.js'][2287]++; + while ((start !== node)) { + _$jscoverage['core/domUtils.js'][2288]++; + if (start.nextSibling) { + _$jscoverage['core/domUtils.js'][2289]++; + return 0; + } + _$jscoverage['core/domUtils.js'][2290]++; + ; + _$jscoverage['core/domUtils.js'][2291]++; + start = start.parentNode; +} + _$jscoverage['core/domUtils.js'][2293]++; + return 1; +}), isBoundaryNode: (function (node, dir) { + _$jscoverage['core/domUtils.js'][2296]++; + var tmp; + _$jscoverage['core/domUtils.js'][2297]++; + while ((! domUtils.isBody(node))) { + _$jscoverage['core/domUtils.js'][2298]++; + tmp = node; + _$jscoverage['core/domUtils.js'][2299]++; + node = node.parentNode; + _$jscoverage['core/domUtils.js'][2300]++; + if ((tmp !== node[dir])) { + _$jscoverage['core/domUtils.js'][2301]++; + return false; + } +} + _$jscoverage['core/domUtils.js'][2304]++; + return true; +})}); +_$jscoverage['core/domUtils.js'][2307]++; +var fillCharReg = new RegExp(domUtils.fillChar, "g"); diff --git a/_test/coverage/core/dtd.js b/_test/coverage/core/dtd.js new file mode 100644 index 000000000..866a73c3f --- /dev/null +++ b/_test/coverage/core/dtd.js @@ -0,0 +1,73 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['core/dtd.js']) { + _$jscoverage['core/dtd.js'] = []; + _$jscoverage['core/dtd.js'][9] = 0; + _$jscoverage['core/dtd.js'][10] = 0; + _$jscoverage['core/dtd.js'][11] = 0; + _$jscoverage['core/dtd.js'][12] = 0; + _$jscoverage['core/dtd.js'][14] = 0; + _$jscoverage['core/dtd.js'][16] = 0; + _$jscoverage['core/dtd.js'][17] = 0; + _$jscoverage['core/dtd.js'][41] = 0; + _$jscoverage['core/dtd.js'][45] = 0; +} +_$jscoverage['core/dtd.js'].source = ["///import editor.js","///import core/dom/dom.js","///import core/utils.js","/*"," * dtd html语义化的体现类"," * @constructor"," * @namespace dtd"," */","var dtd = dom.dtd = (function() {"," function _( s ) {"," for (var k in s) {"," s[k.toUpperCase()] = s[k];"," }"," return s;"," }"," var X = utils.extend2;"," var A = _({isindex:1,fieldset:1}),"," B = _({input:1,button:1,select:1,textarea:1,label:1}),"," C = X( _({a:1}), B ),"," D = X( {iframe:1}, C ),"," E = _({hr:1,ul:1,menu:1,div:1,blockquote:1,noscript:1,table:1,center:1,address:1,dir:1,pre:1,h5:1,dl:1,h4:1,noframes:1,h6:1,ol:1,h1:1,h3:1,h2:1}),"," F = _({ins:1,del:1,script:1,style:1}),"," G = X( _({b:1,acronym:1,bdo:1,'var':1,'#':1,abbr:1,code:1,br:1,i:1,cite:1,kbd:1,u:1,strike:1,s:1,tt:1,strong:1,q:1,samp:1,em:1,dfn:1,span:1}), F ),"," H = X( _({sub:1,img:1,embed:1,object:1,sup:1,basefont:1,map:1,applet:1,font:1,big:1,small:1}), G ),"," I = X( _({p:1}), H ),"," J = X( _({iframe:1}), H, B ),"," K = _({img:1,embed:1,noscript:1,br:1,kbd:1,center:1,button:1,basefont:1,h5:1,h4:1,samp:1,h6:1,ol:1,h1:1,h3:1,h2:1,form:1,font:1,'#':1,select:1,menu:1,ins:1,abbr:1,label:1,code:1,table:1,script:1,cite:1,input:1,iframe:1,strong:1,textarea:1,noframes:1,big:1,small:1,span:1,hr:1,sub:1,bdo:1,'var':1,div:1,object:1,sup:1,strike:1,dir:1,map:1,dl:1,applet:1,del:1,isindex:1,fieldset:1,ul:1,b:1,acronym:1,a:1,blockquote:1,i:1,u:1,s:1,tt:1,address:1,q:1,pre:1,p:1,em:1,dfn:1}),",""," L = X( _({a:0}), J ),//a不能被切开,所以把他"," M = _({tr:1}),"," N = _({'#':1}),"," O = X( _({param:1}), K ),"," P = X( _({form:1}), A, D, E, I ),"," Q = _({li:1,ol:1,ul:1}),"," R = _({style:1,script:1}),"," S = _({base:1,link:1,meta:1,title:1}),"," T = X( S, R ),"," U = _({head:1,body:1}),"," V = _({html:1});",""," var block = _({address:1,blockquote:1,center:1,dir:1,div:1,dl:1,fieldset:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,isindex:1,menu:1,noframes:1,ol:1,p:1,pre:1,table:1,ul:1}),",""," empty = _({area:1,base:1,basefont:1,br:1,col:1,command:1,dialog:1,embed:1,hr:1,img:1,input:1,isindex:1,keygen:1,link:1,meta:1,param:1,source:1,track:1,wbr:1});",""," return _({",""," // $ 表示自定的属性",""," // body外的元素列表."," $nonBodyContent: X( V, U, S ),",""," //块结构元素列表"," $block : block,",""," //内联元素列表"," $inline : L,",""," $inlineWithA : X(_({a:1}),L),",""," $body : X( _({script:1,style:1}), block ),",""," $cdata : _({script:1,style:1}),",""," //自闭和元素"," $empty : empty,",""," //不是自闭合,但不能让range选中里边"," $nonChild : _({iframe:1,textarea:1}),"," //列表元素列表"," $listItem : _({dd:1,dt:1,li:1}),",""," //列表根元素列表"," $list: _({ul:1,ol:1,dl:1}),",""," //不能认为是空的元素"," $isNotEmpty : _({table:1,ul:1,ol:1,dl:1,iframe:1,area:1,base:1,col:1,hr:1,img:1,embed:1,input:1,link:1,meta:1,param:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1}),",""," //如果没有子节点就可以删除的元素列表,像span,a"," $removeEmpty : _({a:1,abbr:1,acronym:1,address:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,s:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,'var':1}),",""," $removeEmptyBlock : _({'p':1,'div':1}),",""," //在table元素里的元素列表"," $tableContent : _({caption:1,col:1,colgroup:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1,table:1}),"," //不转换的标签"," $notTransContent : _({pre:1,script:1,style:1,textarea:1}),"," html: U,"," head: T,"," style: N,"," script: N,"," body: P,"," base: {},"," link: {},"," meta: {},"," title: N,"," col : {},"," tr : _({td:1,th:1}),"," img : {},"," embed: {},"," colgroup : _({thead:1,col:1,tbody:1,tr:1,tfoot:1}),"," noscript : P,"," td : P,"," br : {},"," th : P,"," center : P,"," kbd : L,"," button : X( I, E ),"," basefont : {},"," h5 : L,"," h4 : L,"," samp : L,"," h6 : L,"," ol : Q,"," h1 : L,"," h3 : L,"," option : N,"," h2 : L,"," form : X( A, D, E, I ),"," select : _({optgroup:1,option:1}),"," font : L,"," ins : L,"," menu : Q,"," abbr : L,"," label : L,"," table : _({thead:1,col:1,tbody:1,tr:1,colgroup:1,caption:1,tfoot:1}),"," code : L,"," tfoot : M,"," cite : L,"," li : P,"," input : {},"," iframe : P,"," strong : L,"," textarea : N,"," noframes : P,"," big : L,"," small : L,"," //trace:"," span :_({'#':1,br:1,b:1,strong:1,u:1,i:1,em:1,sub:1,sup:1,strike:1,span:1}),"," hr : L,"," dt : L,"," sub : L,"," optgroup : _({option:1}),"," param : {},"," bdo : L,"," 'var' : L,"," div : P,"," object : O,"," sup : L,"," dd : P,"," strike : L,"," area : {},"," dir : Q,"," map : X( _({area:1,form:1,p:1}), A, F, E ),"," applet : O,"," dl : _({dt:1,dd:1}),"," del : L,"," isindex : {},"," fieldset : X( _({legend:1}), K ),"," thead : M,"," ul : Q,"," acronym : L,"," b : L,"," a : X( _({a:1}), J ),"," blockquote :X(_({td:1,tr:1,tbody:1,li:1}),P),"," caption : L,"," i : L,"," u : L,"," tbody : M,"," s : L,"," address : X( D, I ),"," tt : L,"," legend : L,"," q : L,"," pre : X( G, C ),"," p : X(_({'a':1}),L),"," em :L,"," dfn : L"," });","})();"]; +_$jscoverage['core/dtd.js'][9]++; +var dtd = (dom.dtd = (function () { + _$jscoverage['core/dtd.js'][10]++; + function _(s) { + _$jscoverage['core/dtd.js'][11]++; + for (var k in s) { + _$jscoverage['core/dtd.js'][12]++; + s[k.toUpperCase()] = s[k]; +} + _$jscoverage['core/dtd.js'][14]++; + return s; +} + _$jscoverage['core/dtd.js'][16]++; + var X = utils.extend2; + _$jscoverage['core/dtd.js'][17]++; + var A = _({isindex: 1, fieldset: 1}), B = _({input: 1, button: 1, select: 1, textarea: 1, label: 1}), C = X(_({a: 1}), B), D = X({iframe: 1}, C), E = _({hr: 1, ul: 1, menu: 1, div: 1, blockquote: 1, noscript: 1, table: 1, center: 1, address: 1, dir: 1, pre: 1, h5: 1, dl: 1, h4: 1, noframes: 1, h6: 1, ol: 1, h1: 1, h3: 1, h2: 1}), F = _({ins: 1, del: 1, script: 1, style: 1}), G = X(_({b: 1, acronym: 1, bdo: 1, "var": 1, "#": 1, abbr: 1, code: 1, br: 1, i: 1, cite: 1, kbd: 1, u: 1, strike: 1, s: 1, tt: 1, strong: 1, q: 1, samp: 1, em: 1, dfn: 1, span: 1}), F), H = X(_({sub: 1, img: 1, embed: 1, object: 1, sup: 1, basefont: 1, map: 1, applet: 1, font: 1, big: 1, small: 1}), G), I = X(_({p: 1}), H), J = X(_({iframe: 1}), H, B), K = _({img: 1, embed: 1, noscript: 1, br: 1, kbd: 1, center: 1, button: 1, basefont: 1, h5: 1, h4: 1, samp: 1, h6: 1, ol: 1, h1: 1, h3: 1, h2: 1, form: 1, font: 1, "#": 1, select: 1, menu: 1, ins: 1, abbr: 1, label: 1, code: 1, table: 1, script: 1, cite: 1, input: 1, iframe: 1, strong: 1, textarea: 1, noframes: 1, big: 1, small: 1, span: 1, hr: 1, sub: 1, bdo: 1, "var": 1, div: 1, object: 1, sup: 1, strike: 1, dir: 1, map: 1, dl: 1, applet: 1, del: 1, isindex: 1, fieldset: 1, ul: 1, b: 1, acronym: 1, a: 1, blockquote: 1, i: 1, u: 1, s: 1, tt: 1, address: 1, q: 1, pre: 1, p: 1, em: 1, dfn: 1}), L = X(_({a: 0}), J), M = _({tr: 1}), N = _({"#": 1}), O = X(_({param: 1}), K), P = X(_({form: 1}), A, D, E, I), Q = _({li: 1, ol: 1, ul: 1}), R = _({style: 1, script: 1}), S = _({base: 1, link: 1, meta: 1, title: 1}), T = X(S, R), U = _({head: 1, body: 1}), V = _({html: 1}); + _$jscoverage['core/dtd.js'][41]++; + var block = _({address: 1, blockquote: 1, center: 1, dir: 1, div: 1, dl: 1, fieldset: 1, form: 1, h1: 1, h2: 1, h3: 1, h4: 1, h5: 1, h6: 1, hr: 1, isindex: 1, menu: 1, noframes: 1, ol: 1, p: 1, pre: 1, table: 1, ul: 1}), empty = _({area: 1, base: 1, basefont: 1, br: 1, col: 1, command: 1, dialog: 1, embed: 1, hr: 1, img: 1, input: 1, isindex: 1, keygen: 1, link: 1, meta: 1, param: 1, source: 1, track: 1, wbr: 1}); + _$jscoverage['core/dtd.js'][45]++; + return _({$nonBodyContent: X(V, U, S), $block: block, $inline: L, $inlineWithA: X(_({a: 1}), L), $body: X(_({script: 1, style: 1}), block), $cdata: _({script: 1, style: 1}), $empty: empty, $nonChild: _({iframe: 1, textarea: 1}), $listItem: _({dd: 1, dt: 1, li: 1}), $list: _({ul: 1, ol: 1, dl: 1}), $isNotEmpty: _({table: 1, ul: 1, ol: 1, dl: 1, iframe: 1, area: 1, base: 1, col: 1, hr: 1, img: 1, embed: 1, input: 1, link: 1, meta: 1, param: 1, h1: 1, h2: 1, h3: 1, h4: 1, h5: 1, h6: 1}), $removeEmpty: _({a: 1, abbr: 1, acronym: 1, address: 1, b: 1, bdo: 1, big: 1, cite: 1, code: 1, del: 1, dfn: 1, em: 1, font: 1, i: 1, ins: 1, label: 1, kbd: 1, q: 1, s: 1, samp: 1, small: 1, span: 1, strike: 1, strong: 1, sub: 1, sup: 1, tt: 1, u: 1, "var": 1}), $removeEmptyBlock: _({"p": 1, "div": 1}), $tableContent: _({caption: 1, col: 1, colgroup: 1, tbody: 1, td: 1, tfoot: 1, th: 1, thead: 1, tr: 1, table: 1}), $notTransContent: _({pre: 1, script: 1, style: 1, textarea: 1}), html: U, head: T, style: N, script: N, body: P, base: {}, link: {}, meta: {}, title: N, col: {}, tr: _({td: 1, th: 1}), img: {}, embed: {}, colgroup: _({thead: 1, col: 1, tbody: 1, tr: 1, tfoot: 1}), noscript: P, td: P, br: {}, th: P, center: P, kbd: L, button: X(I, E), basefont: {}, h5: L, h4: L, samp: L, h6: L, ol: Q, h1: L, h3: L, option: N, h2: L, form: X(A, D, E, I), select: _({optgroup: 1, option: 1}), font: L, ins: L, menu: Q, abbr: L, label: L, table: _({thead: 1, col: 1, tbody: 1, tr: 1, colgroup: 1, caption: 1, tfoot: 1}), code: L, tfoot: M, cite: L, li: P, input: {}, iframe: P, strong: L, textarea: N, noframes: P, big: L, small: L, span: _({"#": 1, br: 1, b: 1, strong: 1, u: 1, i: 1, em: 1, sub: 1, sup: 1, strike: 1, span: 1}), hr: L, dt: L, sub: L, optgroup: _({option: 1}), param: {}, bdo: L, "var": L, div: P, object: O, sup: L, dd: P, strike: L, area: {}, dir: Q, map: X(_({area: 1, form: 1, p: 1}), A, F, E), applet: O, dl: _({dt: 1, dd: 1}), del: L, isindex: {}, fieldset: X(_({legend: 1}), K), thead: M, ul: Q, acronym: L, b: L, a: X(_({a: 1}), J), blockquote: X(_({td: 1, tr: 1, tbody: 1, li: 1}), P), caption: L, i: L, u: L, tbody: M, s: L, address: X(D, I), tt: L, legend: L, q: L, pre: X(G, C), p: X(_({"a": 1}), L), em: L, dfn: L}); +})()); diff --git a/_test/coverage/core/filternode.js b/_test/coverage/core/filternode.js new file mode 100644 index 000000000..5b17d9ac6 --- /dev/null +++ b/_test/coverage/core/filternode.js @@ -0,0 +1,275 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['core/filternode.js']) { + _$jscoverage['core/filternode.js'] = []; + _$jscoverage['core/filternode.js'][24] = 0; + _$jscoverage['core/filternode.js'][25] = 0; + _$jscoverage['core/filternode.js'][26] = 0; + _$jscoverage['core/filternode.js'][28] = 0; + _$jscoverage['core/filternode.js'][30] = 0; + _$jscoverage['core/filternode.js'][31] = 0; + _$jscoverage['core/filternode.js'][32] = 0; + _$jscoverage['core/filternode.js'][33] = 0; + _$jscoverage['core/filternode.js'][34] = 0; + _$jscoverage['core/filternode.js'][35] = 0; + _$jscoverage['core/filternode.js'][37] = 0; + _$jscoverage['core/filternode.js'][38] = 0; + _$jscoverage['core/filternode.js'][39] = 0; + _$jscoverage['core/filternode.js'][40] = 0; + _$jscoverage['core/filternode.js'][41] = 0; + _$jscoverage['core/filternode.js'][42] = 0; + _$jscoverage['core/filternode.js'][43] = 0; + _$jscoverage['core/filternode.js'][48] = 0; + _$jscoverage['core/filternode.js'][49] = 0; + _$jscoverage['core/filternode.js'][50] = 0; + _$jscoverage['core/filternode.js'][51] = 0; + _$jscoverage['core/filternode.js'][58] = 0; + _$jscoverage['core/filternode.js'][59] = 0; + _$jscoverage['core/filternode.js'][60] = 0; + _$jscoverage['core/filternode.js'][61] = 0; + _$jscoverage['core/filternode.js'][62] = 0; + _$jscoverage['core/filternode.js'][64] = 0; + _$jscoverage['core/filternode.js'][65] = 0; + _$jscoverage['core/filternode.js'][66] = 0; + _$jscoverage['core/filternode.js'][67] = 0; + _$jscoverage['core/filternode.js'][68] = 0; + _$jscoverage['core/filternode.js'][69] = 0; + _$jscoverage['core/filternode.js'][72] = 0; + _$jscoverage['core/filternode.js'][74] = 0; + _$jscoverage['core/filternode.js'][75] = 0; + _$jscoverage['core/filternode.js'][79] = 0; + _$jscoverage['core/filternode.js'][81] = 0; + _$jscoverage['core/filternode.js'][82] = 0; + _$jscoverage['core/filternode.js'][83] = 0; + _$jscoverage['core/filternode.js'][84] = 0; + _$jscoverage['core/filternode.js'][85] = 0; + _$jscoverage['core/filternode.js'][92] = 0; + _$jscoverage['core/filternode.js'][93] = 0; + _$jscoverage['core/filternode.js'][95] = 0; + _$jscoverage['core/filternode.js'][97] = 0; + _$jscoverage['core/filternode.js'][98] = 0; + _$jscoverage['core/filternode.js'][99] = 0; + _$jscoverage['core/filternode.js'][100] = 0; + _$jscoverage['core/filternode.js'][101] = 0; + _$jscoverage['core/filternode.js'][106] = 0; + _$jscoverage['core/filternode.js'][108] = 0; + _$jscoverage['core/filternode.js'][112] = 0; + _$jscoverage['core/filternode.js'][113] = 0; + _$jscoverage['core/filternode.js'][114] = 0; + _$jscoverage['core/filternode.js'][116] = 0; + _$jscoverage['core/filternode.js'][117] = 0; + _$jscoverage['core/filternode.js'][118] = 0; + _$jscoverage['core/filternode.js'][119] = 0; + _$jscoverage['core/filternode.js'][122] = 0; + _$jscoverage['core/filternode.js'][123] = 0; + _$jscoverage['core/filternode.js'][124] = 0; + _$jscoverage['core/filternode.js'][125] = 0; + _$jscoverage['core/filternode.js'][128] = 0; +} +_$jscoverage['core/filternode.js'].source = ["/**"," * UE过滤节点的静态方法"," * @file"," */","","/**"," * UEditor公用空间,UEditor所有的功能都挂载在该空间下"," * @module UE"," */","","","/**"," * 根据传入节点和过滤规则过滤相应节点"," * @module UE"," * @since 1.2.6.1"," * @method filterNode"," * @param { Object } root 指定root节点"," * @param { Object } rules 过滤规则json对象"," * @example"," * ```javascript"," * UE.filterNode(root,editor.options.filterRules);"," * ```"," */","var filterNode = UE.filterNode = function () {"," function filterNode(node,rules){"," switch (node.type) {"," case 'text':"," break;"," case 'element':"," var val;"," if(val = rules[node.tagName]){"," if(val === '-'){"," node.parentNode.removeChild(node)"," }else if(utils.isFunction(val)){"," var parentNode = node.parentNode,"," index = node.getIndex();"," val(node);"," if(node.parentNode){"," if(node.children){"," for(var i = 0,ci;ci=node.children[i];){"," filterNode(ci,rules);"," if(ci.parentNode){"," i++;"," }"," }"," }"," }else{"," for(var i = index,ci;ci=parentNode.children[i];){"," filterNode(ci,rules);"," if(ci.parentNode){"," i++;"," }"," }"," }","",""," }else{"," var attrs = val['$'];"," if(attrs && node.attrs){"," var tmpAttrs = {},tmpVal;"," for(var a in attrs){"," tmpVal = node.getAttr(a);"," //todo 只先对style单独处理"," if(a == 'style' && utils.isArray(attrs[a])){"," var tmpCssStyle = [];"," utils.each(attrs[a],function(v){"," var tmp;"," if(tmp = node.getStyle(v)){"," tmpCssStyle.push(v + ':' + tmp);"," }"," });"," tmpVal = tmpCssStyle.join(';')"," }"," if(tmpVal){"," tmpAttrs[a] = tmpVal;"," }",""," }"," node.attrs = tmpAttrs;"," }"," if(node.children){"," for(var i = 0,ci;ci=node.children[i];){"," filterNode(ci,rules);"," if(ci.parentNode){"," i++;"," }"," }"," }"," }"," }else{"," //如果不在名单里扣出子节点并删除该节点,cdata除外"," if(dtd.$cdata[node.tagName]){"," node.parentNode.removeChild(node)"," }else{"," var parentNode = node.parentNode,"," index = node.getIndex();"," node.parentNode.removeChild(node,true);"," for(var i = index,ci;ci=parentNode.children[i];){"," filterNode(ci,rules);"," if(ci.parentNode){"," i++;"," }"," }"," }"," }"," break;"," case 'comment':"," node.parentNode.removeChild(node)"," }",""," }"," return function(root,rules){"," if(utils.isEmptyObject(rules)){"," return root;"," }"," var val;"," if(val = rules['-']){"," utils.each(val.split(' '),function(k){"," rules[k] = '-'"," })"," }"," for(var i= 0,ci;ci=root.children[i];){"," filterNode(ci,rules);"," if(ci.parentNode){"," i++;"," }"," }"," return root;"," }","}();"]; +_$jscoverage['core/filternode.js'][24]++; +var filterNode = (UE.filterNode = (function () { + _$jscoverage['core/filternode.js'][25]++; + function filterNode(node, rules) { + _$jscoverage['core/filternode.js'][26]++; + switch (node.type) { + case "text": + _$jscoverage['core/filternode.js'][28]++; + break; + case "element": + _$jscoverage['core/filternode.js'][30]++; + var val; + _$jscoverage['core/filternode.js'][31]++; + if ((val = rules[node.tagName])) { + _$jscoverage['core/filternode.js'][32]++; + if ((val === "-")) { + _$jscoverage['core/filternode.js'][33]++; + node.parentNode.removeChild(node); + } + else { + _$jscoverage['core/filternode.js'][34]++; + if (utils.isFunction(val)) { + _$jscoverage['core/filternode.js'][35]++; + var parentNode = node.parentNode, index = node.getIndex(); + _$jscoverage['core/filternode.js'][37]++; + val(node); + _$jscoverage['core/filternode.js'][38]++; + if (node.parentNode) { + _$jscoverage['core/filternode.js'][39]++; + if (node.children) { + _$jscoverage['core/filternode.js'][40]++; + for (var i = 0, ci; (ci = node.children[i]);) { + _$jscoverage['core/filternode.js'][41]++; + filterNode(ci, rules); + _$jscoverage['core/filternode.js'][42]++; + if (ci.parentNode) { + _$jscoverage['core/filternode.js'][43]++; + (i++); + } +} + } + } + else { + _$jscoverage['core/filternode.js'][48]++; + for (var i = index, ci = ci; (ci = parentNode.children[i]);) { + _$jscoverage['core/filternode.js'][49]++; + filterNode(ci, rules); + _$jscoverage['core/filternode.js'][50]++; + if (ci.parentNode) { + _$jscoverage['core/filternode.js'][51]++; + (i++); + } +} + } + } + else { + _$jscoverage['core/filternode.js'][58]++; + var attrs = val.$; + _$jscoverage['core/filternode.js'][59]++; + if ((attrs && node.attrs)) { + _$jscoverage['core/filternode.js'][60]++; + var tmpAttrs = {}, tmpVal; + _$jscoverage['core/filternode.js'][61]++; + for (var a in attrs) { + _$jscoverage['core/filternode.js'][62]++; + tmpVal = node.getAttr(a); + _$jscoverage['core/filternode.js'][64]++; + if (((a == "style") && utils.isArray(attrs[a]))) { + _$jscoverage['core/filternode.js'][65]++; + var tmpCssStyle = []; + _$jscoverage['core/filternode.js'][66]++; + utils.each(attrs[a], (function (v) { + _$jscoverage['core/filternode.js'][67]++; + var tmp; + _$jscoverage['core/filternode.js'][68]++; + if ((tmp = node.getStyle(v))) { + _$jscoverage['core/filternode.js'][69]++; + tmpCssStyle.push((v + ":" + tmp)); + } +})); + _$jscoverage['core/filternode.js'][72]++; + tmpVal = tmpCssStyle.join(";"); + } + _$jscoverage['core/filternode.js'][74]++; + if (tmpVal) { + _$jscoverage['core/filternode.js'][75]++; + tmpAttrs[a] = tmpVal; + } +} + _$jscoverage['core/filternode.js'][79]++; + node.attrs = tmpAttrs; + } + _$jscoverage['core/filternode.js'][81]++; + if (node.children) { + _$jscoverage['core/filternode.js'][82]++; + for (var i = 0, ci = ci; (ci = node.children[i]);) { + _$jscoverage['core/filternode.js'][83]++; + filterNode(ci, rules); + _$jscoverage['core/filternode.js'][84]++; + if (ci.parentNode) { + _$jscoverage['core/filternode.js'][85]++; + (i++); + } +} + } + } + } + } + else { + _$jscoverage['core/filternode.js'][92]++; + if (dtd.$cdata[node.tagName]) { + _$jscoverage['core/filternode.js'][93]++; + node.parentNode.removeChild(node); + } + else { + _$jscoverage['core/filternode.js'][95]++; + var parentNode = node.parentNode, index = node.getIndex(); + _$jscoverage['core/filternode.js'][97]++; + node.parentNode.removeChild(node, true); + _$jscoverage['core/filternode.js'][98]++; + for (var i = index, ci = ci; (ci = parentNode.children[i]);) { + _$jscoverage['core/filternode.js'][99]++; + filterNode(ci, rules); + _$jscoverage['core/filternode.js'][100]++; + if (ci.parentNode) { + _$jscoverage['core/filternode.js'][101]++; + (i++); + } +} + } + } + _$jscoverage['core/filternode.js'][106]++; + break; + case "comment": + _$jscoverage['core/filternode.js'][108]++; + node.parentNode.removeChild(node); + } +} + _$jscoverage['core/filternode.js'][112]++; + return (function (root, rules) { + _$jscoverage['core/filternode.js'][113]++; + if (utils.isEmptyObject(rules)) { + _$jscoverage['core/filternode.js'][114]++; + return root; + } + _$jscoverage['core/filternode.js'][116]++; + var val; + _$jscoverage['core/filternode.js'][117]++; + if ((val = rules["-"])) { + _$jscoverage['core/filternode.js'][118]++; + utils.each(val.split(" "), (function (k) { + _$jscoverage['core/filternode.js'][119]++; + rules[k] = "-"; +})); + } + _$jscoverage['core/filternode.js'][122]++; + for (var i = 0, ci; (ci = root.children[i]);) { + _$jscoverage['core/filternode.js'][123]++; + filterNode(ci, rules); + _$jscoverage['core/filternode.js'][124]++; + if (ci.parentNode) { + _$jscoverage['core/filternode.js'][125]++; + (i++); + } +} + _$jscoverage['core/filternode.js'][128]++; + return root; +}); +})()); diff --git a/_test/coverage/core/filterword.js b/_test/coverage/core/filterword.js new file mode 100644 index 000000000..44e9086c6 --- /dev/null +++ b/_test/coverage/core/filterword.js @@ -0,0 +1,266 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['core/filterword.js']) { + _$jscoverage['core/filterword.js'] = []; + _$jscoverage['core/filterword.js'][23] = 0; + _$jscoverage['core/filterword.js'][26] = 0; + _$jscoverage['core/filterword.js'][27] = 0; + _$jscoverage['core/filterword.js'][30] = 0; + _$jscoverage['core/filterword.js'][31] = 0; + _$jscoverage['core/filterword.js'][32] = 0; + _$jscoverage['core/filterword.js'][34] = 0; + _$jscoverage['core/filterword.js'][37] = 0; + _$jscoverage['core/filterword.js'][38] = 0; + _$jscoverage['core/filterword.js'][43] = 0; + _$jscoverage['core/filterword.js'][44] = 0; + _$jscoverage['core/filterword.js'][46] = 0; + _$jscoverage['core/filterword.js'][47] = 0; + _$jscoverage['core/filterword.js'][50] = 0; + _$jscoverage['core/filterword.js'][52] = 0; + _$jscoverage['core/filterword.js'][64] = 0; + _$jscoverage['core/filterword.js'][70] = 0; + _$jscoverage['core/filterword.js'][76] = 0; + _$jscoverage['core/filterword.js'][78] = 0; + _$jscoverage['core/filterword.js'][81] = 0; + _$jscoverage['core/filterword.js'][82] = 0; + _$jscoverage['core/filterword.js'][83] = 0; + _$jscoverage['core/filterword.js'][84] = 0; + _$jscoverage['core/filterword.js'][88] = 0; + _$jscoverage['core/filterword.js'][91] = 0; + _$jscoverage['core/filterword.js'][108] = 0; + _$jscoverage['core/filterword.js'][109] = 0; + _$jscoverage['core/filterword.js'][110] = 0; + _$jscoverage['core/filterword.js'][112] = 0; + _$jscoverage['core/filterword.js'][113] = 0; + _$jscoverage['core/filterword.js'][116] = 0; + _$jscoverage['core/filterword.js'][117] = 0; + _$jscoverage['core/filterword.js'][121] = 0; + _$jscoverage['core/filterword.js'][122] = 0; + _$jscoverage['core/filterword.js'][126] = 0; + _$jscoverage['core/filterword.js'][127] = 0; + _$jscoverage['core/filterword.js'][130] = 0; + _$jscoverage['core/filterword.js'][131] = 0; + _$jscoverage['core/filterword.js'][134] = 0; + _$jscoverage['core/filterword.js'][135] = 0; + _$jscoverage['core/filterword.js'][138] = 0; + _$jscoverage['core/filterword.js'][139] = 0; + _$jscoverage['core/filterword.js'][142] = 0; + _$jscoverage['core/filterword.js'][143] = 0; + _$jscoverage['core/filterword.js'][145] = 0; + _$jscoverage['core/filterword.js'][147] = 0; + _$jscoverage['core/filterword.js'][148] = 0; + _$jscoverage['core/filterword.js'][150] = 0; + _$jscoverage['core/filterword.js'][152] = 0; + _$jscoverage['core/filterword.js'][154] = 0; + _$jscoverage['core/filterword.js'][155] = 0; + _$jscoverage['core/filterword.js'][160] = 0; + _$jscoverage['core/filterword.js'][164] = 0; + _$jscoverage['core/filterword.js'][167] = 0; + _$jscoverage['core/filterword.js'][170] = 0; + _$jscoverage['core/filterword.js'][173] = 0; + _$jscoverage['core/filterword.js'][178] = 0; + _$jscoverage['core/filterword.js'][179] = 0; +} +_$jscoverage['core/filterword.js'].source = ["/**"," * UE过滤word的静态方法"," * @file"," */","","/**"," * UEditor公用空间,UEditor所有的功能都挂载在该空间下"," * @module UE"," */","","","/**"," * 根据传入html字符串过滤word"," * @module UE"," * @since 1.2.6.1"," * @method filterWord"," * @param { String } html html字符串"," * @example"," * ```javascript"," * UE.filterWord(html);"," * ```"," */","var filterWord = UE.filterWord = function () {",""," //是否是word过来的内容"," function isWordDocument( str ) {"," return /(class=\"?Mso|style=\"[^\"]*\\bmso\\-|w:WordDocument|<v:)/ig.test( str );"," }"," //去掉小数"," function transUnit( v ) {"," v = v.replace( /[\\d.]+\\w+/g, function ( m ) {"," return utils.transUnitToPx(m);"," } );"," return v;"," }",""," function filterPasteWord( str ) {"," return str.replace( /[\\t\\r\\n]+/g, \"\" )"," .replace( /<!--[\\s\\S]*?-->/ig, \"\" )"," //转换图片"," .replace(/<v:shape [^>]*>[\\s\\S]*?.<\\/v:shape>/gi,function(str){"," //opera能自己解析出image所这里直接返回空"," if(browser.opera){"," return '';"," }"," try{"," var width = str.match(/width:([ \\d.]*p[tx])/i)[1],"," height = str.match(/height:([ \\d.]*p[tx])/i)[1],"," src = str.match(/src=\\s*\"([^\"]*)\"/i)[1];"," return '<img width=\"'+ transUnit(width) +'\" height=\"'+transUnit(height) +'\" src=\"' + src + '\" />';"," } catch(e){"," return '';"," }"," })"," //针对wps添加的多余标签处理"," .replace(/<\\/?div[^>]*>/g,'')"," //去掉多余的属性"," .replace( /v:\\w+=([\"']?)[^'\"]+\\1/g, '' )"," .replace( /<(!|script[^>]*>.*?<\\/script(?=[>\\s])|\\/?(\\?xml(:\\w+)?|xml|meta|link|style|\\w+:\\w+)(?=[\\s\\/>]))[^>]*>/gi, \"\" )"," .replace( /<p [^>]*class=\"?MsoHeading\"?[^>]*>(.*?)<\\/p>/gi, \"<p><strong>$1</strong></p>\" )"," //去掉多余的属性"," .replace( /\\s+(class|lang|align)\\s*=\\s*(['\"]?)([\\w-]+)\\2/ig, function(str,name,marks,val){"," //保留list的标示"," return name == 'class' && val == 'MsoListParagraph' ? str : ''"," })"," //清除多余的font/span不能匹配&nbsp;有可能是空格"," .replace( /<(font|span)[^>]*>\\s*<\\/\\1>/gi, '' )"," //处理style的问题"," .replace( /(<[a-z][^>]*)\\sstyle=([\"'])([^\\2]*?)\\2/gi, function( str, tag, tmp, style ) {"," var n = [],"," s = style.replace( /^\\s+|\\s+$/, '' )"," .replace(/&#39;/g,'\\'')"," .replace( /&quot;/gi, \"'\" )"," .split( /;\\s*/g );",""," for ( var i = 0,v; v = s[i];i++ ) {",""," var name, value,"," parts = v.split( \":\" );",""," if ( parts.length == 2 ) {"," name = parts[0].toLowerCase();"," value = parts[1].toLowerCase();"," if(/^(background)\\w*/.test(name) && value.replace(/(initial|\\s)/g,'').length == 0"," ||"," /^(margin)\\w*/.test(name) && /^0\\w+$/.test(value)"," ){"," continue;"," }",""," switch ( name ) {"," case \"mso-padding-alt\":"," case \"mso-padding-top-alt\":"," case \"mso-padding-right-alt\":"," case \"mso-padding-bottom-alt\":"," case \"mso-padding-left-alt\":"," case \"mso-margin-alt\":"," case \"mso-margin-top-alt\":"," case \"mso-margin-right-alt\":"," case \"mso-margin-bottom-alt\":"," case \"mso-margin-left-alt\":"," //ie下会出现挤到一起的情况"," //case \"mso-table-layout-alt\":"," case \"mso-height\":"," case \"mso-width\":"," case \"mso-vertical-align-alt\":"," //trace:1819 ff下会解析出padding在table上"," if(!/<table/.test(tag))"," n[i] = name.replace( /^mso-|-alt$/g, \"\" ) + \":\" + transUnit( value );"," continue;"," case \"horiz-align\":"," n[i] = \"text-align:\" + value;"," continue;",""," case \"vert-align\":"," n[i] = \"vertical-align:\" + value;"," continue;",""," case \"font-color\":"," case \"mso-foreground\":"," n[i] = \"color:\" + value;"," continue;",""," case \"mso-background\":"," case \"mso-highlight\":"," n[i] = \"background:\" + value;"," continue;",""," case \"mso-default-height\":"," n[i] = \"min-height:\" + transUnit( value );"," continue;",""," case \"mso-default-width\":"," n[i] = \"min-width:\" + transUnit( value );"," continue;",""," case \"mso-padding-between-alt\":"," n[i] = \"border-collapse:separate;border-spacing:\" + transUnit( value );"," continue;",""," case \"text-line-through\":"," if ( (value == \"single\") || (value == \"double\") ) {"," n[i] = \"text-decoration:line-through\";"," }"," continue;"," case \"mso-zero-height\":"," if ( value == \"yes\" ) {"," n[i] = \"display:none\";"," }"," continue;"," case 'background':"," break;"," case 'margin':"," if ( !/[1-9]/.test( value ) ) {"," continue;"," }",""," }",""," if ( /^(mso|column|font-emph|lang|layout|line-break|list-image|nav|panose|punct|row|ruby|sep|size|src|tab-|table-border|text-(?:decor|trans)|top-bar|version|vnd|word-break)/.test( name )"," ||"," /text\\-indent|padding|margin/.test(name) && /\\-[\\d.]+/.test(value)"," ) {"," continue;"," }",""," n[i] = name + \":\" + parts[1];"," }"," }"," return tag + (n.length ? ' style=\"' + n.join( ';').replace(/;{2,}/g,';') + '\"' : '');"," })"," .replace(/[\\d.]+(cm|pt)/g,function(str){"," return utils.transUnitToPx(str)"," })",""," }",""," return function ( html ) {"," return (isWordDocument( html ) ? filterPasteWord( html ) : html);"," };","}();"]; +_$jscoverage['core/filterword.js'][23]++; +var filterWord = (UE.filterWord = (function () { + _$jscoverage['core/filterword.js'][26]++; + function isWordDocument(str) { + _$jscoverage['core/filterword.js'][27]++; + return /(class="?Mso|style="[^"]*\bmso\-|w:WordDocument|/gi, "").replace(/]*>[\s\S]*?.<\/v:shape>/gi, (function (str) { + _$jscoverage['core/filterword.js'][43]++; + if (browser.opera) { + _$jscoverage['core/filterword.js'][44]++; + return ""; + } + _$jscoverage['core/filterword.js'][46]++; + try { + _$jscoverage['core/filterword.js'][47]++; + var width = str.match(/width:([ \d.]*p[tx])/i)[1], height = str.match(/height:([ \d.]*p[tx])/i)[1], src = str.match(/src=\s*"([^"]*)"/i)[1]; + _$jscoverage['core/filterword.js'][50]++; + return (""); + } + catch (e) { + _$jscoverage['core/filterword.js'][52]++; + return ""; + } +})).replace(/<\/?div[^>]*>/g, "").replace(/v:\w+=(["']?)[^'"]+\1/g, "").replace(/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|xml|meta|link|style|\w+:\w+)(?=[\s\/>]))[^>]*>/gi, "").replace(/

]*class="?MsoHeading"?[^>]*>(.*?)<\/p>/gi, "

$1

").replace(/\s+(class|lang|align)\s*=\s*(['"]?)([\w-]+)\2/gi, (function (str, name, marks, val) { + _$jscoverage['core/filterword.js'][64]++; + return (((name == "class") && (val == "MsoListParagraph"))? str: ""); +})).replace(/<(font|span)[^>]*>\s*<\/\1>/gi, "").replace(/(<[a-z][^>]*)\sstyle=(["'])([^\2]*?)\2/gi, (function (str, tag, tmp, style) { + _$jscoverage['core/filterword.js'][70]++; + var n = [], s = style.replace(/^\s+|\s+$/, "").replace(/'/g, "'").replace(/"/gi, "'").split(/;\s*/g); + _$jscoverage['core/filterword.js'][76]++; + for (var i = 0, v; (v = s[i]); (i++)) { + _$jscoverage['core/filterword.js'][78]++; + var name, value, parts = v.split(":"); + _$jscoverage['core/filterword.js'][81]++; + if ((parts.length == 2)) { + _$jscoverage['core/filterword.js'][82]++; + name = parts[0].toLowerCase(); + _$jscoverage['core/filterword.js'][83]++; + value = parts[1].toLowerCase(); + _$jscoverage['core/filterword.js'][84]++; + if (((/^(background)\w*/.test(name) && (value.replace(/(initial|\s)/g, "").length == 0)) || (/^(margin)\w*/.test(name) && /^0\w+$/.test(value)))) { + _$jscoverage['core/filterword.js'][88]++; + continue; + } + _$jscoverage['core/filterword.js'][91]++; + switch (name) { + case "mso-padding-alt": + case "mso-padding-top-alt": + case "mso-padding-right-alt": + case "mso-padding-bottom-alt": + case "mso-padding-left-alt": + case "mso-margin-alt": + case "mso-margin-top-alt": + case "mso-margin-right-alt": + case "mso-margin-bottom-alt": + case "mso-margin-left-alt": + case "mso-height": + case "mso-width": + case "mso-vertical-align-alt": + _$jscoverage['core/filterword.js'][108]++; + if ((! //**"," * html字符串转换成uNode节点"," * @file"," * @module UE"," * @since 1.2.6.1"," */","","/**"," * UEditor公用空间,UEditor所有的功能都挂载在该空间下"," * @unfile"," * @module UE"," */","","/**"," * html字符串转换成uNode节点的静态方法"," * @method htmlparser"," * @param { String } htmlstr 要转换的html代码"," * @param { Boolean } ignoreBlank 若设置为true,转换的时候忽略\\n\\r\\t等空白字符"," * @example"," * ```javascript"," * var root = UE.htmlparser('<p><b>htmlparser</b></p>', true);"," * ```"," */","","var htmlparser = UE.htmlparser =function(htmlstr,ignoreBlank){"," var re_tag =/<(?:(?:\\/([^>]+)>)|(?:!--([\\S|\\s]*?)-->)|(?:([^\\s\\/>]+)\\s*((?:(?:\"[^\"]*\")|(?:'[^']*')|[^\"'<>])*)\\/?>))/g,"," re_attr =/([\\w\\-:.]+)(?:(?:\\s*=\\s*(?:(?:\"([^\"]*)\")|(?:'([^']*)')|([^\\s>]+)))|(?=\\s|$))/g;",""," //ie下取得的html可能会有\\n存在,要去掉,在处理replace(/[\\t\\r\\n]*/g,'');代码高量的\\n不能去除"," var allowEmptyTags ={"," b:1,code:1,i:1,u:1,strike:1,s:1,tt:1,strong:1,q:1,samp:1,em:1,span:1,"," sub:1,img:1,sup:1,font:1,big:1,small:1,iframe:1,a:1,br:1,pre:1"," };"," htmlstr = htmlstr.replace(new RegExp(domUtils.fillChar,'g'),'');"," if(!ignoreBlank){"," htmlstr = htmlstr.replace(new RegExp('[\\\\r\\\\t\\\\n'+(ignoreBlank?'':' ')+']*<\\/?(\\\\w+)\\\\s*(?:[^>]*)>[\\\\r\\\\t\\\\n'+(ignoreBlank?'':' ')+']*','g'),function(a,b){"," //br暂时单独处理"," if(b && allowEmptyTags[b.toLowerCase()]){"," return a.replace(/(^[\\n\\r]+)|([\\n\\r]+$)/g,'');"," }"," return a.replace(new RegExp('^[\\\\r\\\\n'+(ignoreBlank?'':' ')+']+'),'').replace(new RegExp('[\\\\r\\\\n'+(ignoreBlank?'':' ')+']+$'),'');"," });"," }","",""," var uNode = UE.uNode,"," needParentNode ={"," 'td':'tr',"," 'tr':['tbody','thead','tfoot'],"," 'tbody':'table',"," 'th':'tr',"," 'thead':'table',"," 'tfoot':'table',"," 'caption':'table',"," 'li':['ul','ol'],"," 'dt':'dl',"," 'dd':'dl',"," 'option':'select'"," },"," needChild ={"," 'ol':'li',"," 'ul':'li'"," };",""," function text(parent, data){",""," if(needChild[parent.tagName]){"," var tmpNode = uNode.createElement(needChild[parent.tagName]);"," parent.appendChild(tmpNode);"," tmpNode.appendChild(uNode.createText(data));"," parent = tmpNode;"," }else{",""," parent.appendChild(uNode.createText(data));"," }"," }",""," function element(parent, tagName, htmlattr){"," var needParentTag;"," if(needParentTag = needParentNode[tagName]){"," var tmpParent = parent,hasParent;"," while(tmpParent.type !='root'){"," if(utils.isArray(needParentTag)? utils.indexOf(needParentTag, tmpParent.tagName)!=-1: needParentTag == tmpParent.tagName){"," parent = tmpParent;"," hasParent =true;"," break;"," }"," tmpParent = tmpParent.parentNode;"," }"," if(!hasParent){"," parent = element(parent, utils.isArray(needParentTag)? needParentTag[0]: needParentTag)"," }"," }"," //按dtd处理嵌套","// if(parent.type != 'root' && !dtd[parent.tagName][tagName])","// parent = parent.parentNode;"," var elm =new uNode({"," parentNode:parent,"," type:'element',"," tagName:tagName.toLowerCase(),"," //是自闭合的处理一下"," children:dtd.$empty[tagName]?null:[]"," });"," //如果属性存在,处理属性"," if(htmlattr){"," var attrs ={}, match;"," while(match = re_attr.exec(htmlattr)){"," attrs[match[1].toLowerCase()]= utils.unhtml(match[2]|| match[3]|| match[4])"," }"," elm.attrs = attrs;"," }",""," parent.children.push(elm);"," //如果是自闭合节点返回父亲节点"," return dtd.$empty[tagName]? parent : elm"," }",""," function comment(parent, data){"," parent.children.push(new uNode({"," type:'comment',"," data:data,"," parentNode:parent"," }));"," }",""," var match, currentIndex =0, nextIndex =0;"," //设置根节点"," var root =new uNode({"," type:'root',"," children:[]"," });"," var currentParent = root;"," while(match = re_tag.exec(htmlstr)){"," currentIndex = match.index;"," try{"," if(currentIndex > nextIndex){"," //text node"," text(currentParent, htmlstr.slice(nextIndex, currentIndex));"," }"," if(match[3]){"," //start tag"," currentParent = element(currentParent, match[3].toLowerCase(), match[4]);",""," }elseif(match[1]){"," if(currentParent.type !='root'){"," var tmpParent = currentParent;"," while(currentParent.type =='element'&& currentParent.tagName != match[1].toLowerCase()){"," currentParent = currentParent.parentNode;"," if(currentParent.type =='root'){"," currentParent = tmpParent;"," throw'break'"," }"," }"," //end tag"," currentParent = currentParent.parentNode;"," }",""," }elseif(match[2]){"," //comment"," comment(currentParent, match[2])"," }"," }catch(e){}",""," nextIndex = re_tag.lastIndex;",""," }"," //如果结束是文本,就有可能丢掉,所以这里手动判断一下"," //例如 <li>sdfsdfsdf<li>sdfsdfsdfsdf"," if(nextIndex < htmlstr.length){"," text(currentParent, htmlstr.slice(nextIndex));"," }"," return root;","};"]; +_$jscoverage['core/htmlparser.js'][25]++; +var htmlparser = (UE.htmlparser = (function (htmlstr, ignoreBlank) { + _$jscoverage['core/htmlparser.js'][26]++; + var re_tag = /<(?:(?:\/([^>]+)>)|(?:!--([\S|\s]*?)-->)|(?:([^\s\/>]+)\s*((?:(?:"[^"]*")|(?:'[^']*')|[^"'<>])*)\/?>))/g, re_attr = /([\w\-:.]+)(?:(?:\s*=\s*(?:(?:"([^"]*)")|(?:'([^']*)')|([^\s>]+)))|(?=\s|$))/g; + _$jscoverage['core/htmlparser.js'][30]++; + var allowEmptyTags = {b: 1, code: 1, i: 1, u: 1, strike: 1, s: 1, tt: 1, strong: 1, q: 1, samp: 1, em: 1, span: 1, sub: 1, img: 1, sup: 1, font: 1, big: 1, small: 1, iframe: 1, a: 1, br: 1, pre: 1}; + _$jscoverage['core/htmlparser.js'][34]++; + htmlstr = htmlstr.replace(new RegExp(domUtils.fillChar, "g"), ""); + _$jscoverage['core/htmlparser.js'][35]++; + if ((! ignoreBlank)) { + _$jscoverage['core/htmlparser.js'][36]++; + htmlstr = htmlstr.replace(new RegExp(("[\\r\\t\\n" + (ignoreBlank? "": " ") + "]*]*)>[\\r\\t\\n" + (ignoreBlank? "": " ") + "]*"), "g"), (function (a, b) { + _$jscoverage['core/htmlparser.js'][38]++; + if ((b && allowEmptyTags[b.toLowerCase()])) { + _$jscoverage['core/htmlparser.js'][39]++; + return a.replace(/(^[\n\r]+)|([\n\r]+$)/g, ""); + } + _$jscoverage['core/htmlparser.js'][41]++; + return a.replace(new RegExp(("^[\\r\\n" + (ignoreBlank? "": " ") + "]+")), "").replace(new RegExp(("[\\r\\n" + (ignoreBlank? "": " ") + "]+$")), ""); +})); + } + _$jscoverage['core/htmlparser.js'][46]++; + var uNode = UE.uNode, needParentNode = {"td": "tr", "tr": ["tbody", "thead", "tfoot"], "tbody": "table", "th": "tr", "thead": "table", "tfoot": "table", "caption": "table", "li": ["ul", "ol"], "dt": "dl", "dd": "dl", "option": "select"}, needChild = {"ol": "li", "ul": "li"}; + _$jscoverage['core/htmlparser.js'][65]++; + function text(parent, data) { + _$jscoverage['core/htmlparser.js'][67]++; + if (needChild[parent.tagName]) { + _$jscoverage['core/htmlparser.js'][68]++; + var tmpNode = uNode.createElement(needChild[parent.tagName]); + _$jscoverage['core/htmlparser.js'][69]++; + parent.appendChild(tmpNode); + _$jscoverage['core/htmlparser.js'][70]++; + tmpNode.appendChild(uNode.createText(data)); + _$jscoverage['core/htmlparser.js'][71]++; + parent = tmpNode; + } + else { + _$jscoverage['core/htmlparser.js'][74]++; + parent.appendChild(uNode.createText(data)); + } +} + _$jscoverage['core/htmlparser.js'][78]++; + function element(parent, tagName, htmlattr) { + _$jscoverage['core/htmlparser.js'][79]++; + var needParentTag; + _$jscoverage['core/htmlparser.js'][80]++; + if ((needParentTag = needParentNode[tagName])) { + _$jscoverage['core/htmlparser.js'][81]++; + var tmpParent = parent, hasParent; + _$jscoverage['core/htmlparser.js'][82]++; + while ((tmpParent.type != "root")) { + _$jscoverage['core/htmlparser.js'][83]++; + if ((utils.isArray(needParentTag)? (utils.indexOf(needParentTag, tmpParent.tagName) != -1): (needParentTag == tmpParent.tagName))) { + _$jscoverage['core/htmlparser.js'][84]++; + parent = tmpParent; + _$jscoverage['core/htmlparser.js'][85]++; + hasParent = true; + _$jscoverage['core/htmlparser.js'][86]++; + break; + } + _$jscoverage['core/htmlparser.js'][88]++; + tmpParent = tmpParent.parentNode; +} + _$jscoverage['core/htmlparser.js'][90]++; + if ((! hasParent)) { + _$jscoverage['core/htmlparser.js'][91]++; + parent = element(parent, (utils.isArray(needParentTag)? needParentTag[0]: needParentTag)); + } + } + _$jscoverage['core/htmlparser.js'][97]++; + var elm = new uNode({parentNode: parent, type: "element", tagName: tagName.toLowerCase(), children: (dtd.$empty[tagName]? null: [])}); + _$jscoverage['core/htmlparser.js'][105]++; + if (htmlattr) { + _$jscoverage['core/htmlparser.js'][106]++; + var attrs = {}, match; + _$jscoverage['core/htmlparser.js'][107]++; + while ((match = re_attr.exec(htmlattr))) { + _$jscoverage['core/htmlparser.js'][108]++; + attrs[match[1].toLowerCase()] = utils.unhtml((match[2] || match[3] || match[4])); +} + _$jscoverage['core/htmlparser.js'][110]++; + elm.attrs = attrs; + } + _$jscoverage['core/htmlparser.js'][113]++; + parent.children.push(elm); + _$jscoverage['core/htmlparser.js'][115]++; + return (dtd.$empty[tagName]? parent: elm); +} + _$jscoverage['core/htmlparser.js'][118]++; + function comment(parent, data) { + _$jscoverage['core/htmlparser.js'][119]++; + parent.children.push(new uNode({type: "comment", data: data, parentNode: parent})); +} + _$jscoverage['core/htmlparser.js'][126]++; + var match, currentIndex = 0, nextIndex = 0; + _$jscoverage['core/htmlparser.js'][128]++; + var root = new uNode({type: "root", children: []}); + _$jscoverage['core/htmlparser.js'][132]++; + var currentParent = root; + _$jscoverage['core/htmlparser.js'][133]++; + while ((match = re_tag.exec(htmlstr))) { + _$jscoverage['core/htmlparser.js'][134]++; + currentIndex = match.index; + _$jscoverage['core/htmlparser.js'][135]++; + try { + _$jscoverage['core/htmlparser.js'][136]++; + if ((currentIndex > nextIndex)) { + _$jscoverage['core/htmlparser.js'][138]++; + text(currentParent, htmlstr.slice(nextIndex, currentIndex)); + } + _$jscoverage['core/htmlparser.js'][140]++; + if (match[3]) { + _$jscoverage['core/htmlparser.js'][142]++; + currentParent = element(currentParent, match[3].toLowerCase(), match[4]); + } + else { + _$jscoverage['core/htmlparser.js'][144]++; + if (match[1]) { + _$jscoverage['core/htmlparser.js'][145]++; + if ((currentParent.type != "root")) { + _$jscoverage['core/htmlparser.js'][146]++; + var tmpParent = currentParent; + _$jscoverage['core/htmlparser.js'][147]++; + while (((currentParent.type == "element") && (currentParent.tagName != match[1].toLowerCase()))) { + _$jscoverage['core/htmlparser.js'][148]++; + currentParent = currentParent.parentNode; + _$jscoverage['core/htmlparser.js'][149]++; + if ((currentParent.type == "root")) { + _$jscoverage['core/htmlparser.js'][150]++; + currentParent = tmpParent; + _$jscoverage['core/htmlparser.js'][151]++; + throw "break"; + } +} + _$jscoverage['core/htmlparser.js'][155]++; + currentParent = currentParent.parentNode; + } + } + else { + _$jscoverage['core/htmlparser.js'][158]++; + if (match[2]) { + _$jscoverage['core/htmlparser.js'][160]++; + comment(currentParent, match[2]); + } + } + } + } + catch (e) { + } + _$jscoverage['core/htmlparser.js'][164]++; + nextIndex = re_tag.lastIndex; +} + _$jscoverage['core/htmlparser.js'][169]++; + if ((nextIndex < htmlstr.length)) { + _$jscoverage['core/htmlparser.js'][170]++; + text(currentParent, htmlstr.slice(nextIndex)); + } + _$jscoverage['core/htmlparser.js'][172]++; + return root; +})); diff --git a/_test/coverage/core/node.js b/_test/coverage/core/node.js new file mode 100644 index 000000000..3c76035f0 --- /dev/null +++ b/_test/coverage/core/node.js @@ -0,0 +1,874 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['core/node.js']) { + _$jscoverage['core/node.js'] = []; + _$jscoverage['core/node.js'][15] = 0; + _$jscoverage['core/node.js'][37] = 0; + _$jscoverage['core/node.js'][38] = 0; + _$jscoverage['core/node.js'][39] = 0; + _$jscoverage['core/node.js'][40] = 0; + _$jscoverage['core/node.js'][41] = 0; + _$jscoverage['core/node.js'][42] = 0; + _$jscoverage['core/node.js'][43] = 0; + _$jscoverage['core/node.js'][45] = 0; + _$jscoverage['core/node.js'][48] = 0; + _$jscoverage['core/node.js'][49] = 0; + _$jscoverage['core/node.js'][50] = 0; + _$jscoverage['core/node.js'][53] = 0; + _$jscoverage['core/node.js'][55] = 0; + _$jscoverage['core/node.js'][56] = 0; + _$jscoverage['core/node.js'][62] = 0; + _$jscoverage['core/node.js'][63] = 0; + _$jscoverage['core/node.js'][64] = 0; + _$jscoverage['core/node.js'][66] = 0; + _$jscoverage['core/node.js'][73] = 0; + _$jscoverage['core/node.js'][74] = 0; + _$jscoverage['core/node.js'][79] = 0; + _$jscoverage['core/node.js'][80] = 0; + _$jscoverage['core/node.js'][82] = 0; + _$jscoverage['core/node.js'][84] = 0; + _$jscoverage['core/node.js'][85] = 0; + _$jscoverage['core/node.js'][86] = 0; + _$jscoverage['core/node.js'][88] = 0; + _$jscoverage['core/node.js'][90] = 0; + _$jscoverage['core/node.js'][92] = 0; + _$jscoverage['core/node.js'][93] = 0; + _$jscoverage['core/node.js'][95] = 0; + _$jscoverage['core/node.js'][96] = 0; + _$jscoverage['core/node.js'][98] = 0; + _$jscoverage['core/node.js'][100] = 0; + _$jscoverage['core/node.js'][103] = 0; + _$jscoverage['core/node.js'][104] = 0; + _$jscoverage['core/node.js'][107] = 0; + _$jscoverage['core/node.js'][108] = 0; + _$jscoverage['core/node.js'][109] = 0; + _$jscoverage['core/node.js'][110] = 0; + _$jscoverage['core/node.js'][111] = 0; + _$jscoverage['core/node.js'][112] = 0; + _$jscoverage['core/node.js'][113] = 0; + _$jscoverage['core/node.js'][115] = 0; + _$jscoverage['core/node.js'][117] = 0; + _$jscoverage['core/node.js'][122] = 0; + _$jscoverage['core/node.js'][123] = 0; + _$jscoverage['core/node.js'][124] = 0; + _$jscoverage['core/node.js'][125] = 0; + _$jscoverage['core/node.js'][129] = 0; + _$jscoverage['core/node.js'][130] = 0; + _$jscoverage['core/node.js'][131] = 0; + _$jscoverage['core/node.js'][132] = 0; + _$jscoverage['core/node.js'][133] = 0; + _$jscoverage['core/node.js'][135] = 0; + _$jscoverage['core/node.js'][138] = 0; + _$jscoverage['core/node.js'][139] = 0; + _$jscoverage['core/node.js'][141] = 0; + _$jscoverage['core/node.js'][142] = 0; + _$jscoverage['core/node.js'][143] = 0; + _$jscoverage['core/node.js'][146] = 0; + _$jscoverage['core/node.js'][151] = 0; + _$jscoverage['core/node.js'][152] = 0; + _$jscoverage['core/node.js'][155] = 0; + _$jscoverage['core/node.js'][156] = 0; + _$jscoverage['core/node.js'][157] = 0; + _$jscoverage['core/node.js'][158] = 0; + _$jscoverage['core/node.js'][160] = 0; + _$jscoverage['core/node.js'][161] = 0; + _$jscoverage['core/node.js'][162] = 0; + _$jscoverage['core/node.js'][163] = 0; + _$jscoverage['core/node.js'][169] = 0; + _$jscoverage['core/node.js'][170] = 0; + _$jscoverage['core/node.js'][171] = 0; + _$jscoverage['core/node.js'][173] = 0; + _$jscoverage['core/node.js'][174] = 0; + _$jscoverage['core/node.js'][175] = 0; + _$jscoverage['core/node.js'][180] = 0; + _$jscoverage['core/node.js'][181] = 0; + _$jscoverage['core/node.js'][182] = 0; + _$jscoverage['core/node.js'][183] = 0; + _$jscoverage['core/node.js'][185] = 0; + _$jscoverage['core/node.js'][186] = 0; + _$jscoverage['core/node.js'][187] = 0; + _$jscoverage['core/node.js'][189] = 0; + _$jscoverage['core/node.js'][193] = 0; + _$jscoverage['core/node.js'][198] = 0; + _$jscoverage['core/node.js'][221] = 0; + _$jscoverage['core/node.js'][222] = 0; + _$jscoverage['core/node.js'][223] = 0; + _$jscoverage['core/node.js'][249] = 0; + _$jscoverage['core/node.js'][250] = 0; + _$jscoverage['core/node.js'][252] = 0; + _$jscoverage['core/node.js'][253] = 0; + _$jscoverage['core/node.js'][254] = 0; + _$jscoverage['core/node.js'][255] = 0; + _$jscoverage['core/node.js'][258] = 0; + _$jscoverage['core/node.js'][259] = 0; + _$jscoverage['core/node.js'][260] = 0; + _$jscoverage['core/node.js'][261] = 0; + _$jscoverage['core/node.js'][262] = 0; + _$jscoverage['core/node.js'][264] = 0; + _$jscoverage['core/node.js'][266] = 0; + _$jscoverage['core/node.js'][270] = 0; + _$jscoverage['core/node.js'][297] = 0; + _$jscoverage['core/node.js'][298] = 0; + _$jscoverage['core/node.js'][300] = 0; + _$jscoverage['core/node.js'][301] = 0; + _$jscoverage['core/node.js'][302] = 0; + _$jscoverage['core/node.js'][303] = 0; + _$jscoverage['core/node.js'][306] = 0; + _$jscoverage['core/node.js'][307] = 0; + _$jscoverage['core/node.js'][308] = 0; + _$jscoverage['core/node.js'][310] = 0; + _$jscoverage['core/node.js'][324] = 0; + _$jscoverage['core/node.js'][325] = 0; + _$jscoverage['core/node.js'][326] = 0; + _$jscoverage['core/node.js'][342] = 0; + _$jscoverage['core/node.js'][358] = 0; + _$jscoverage['core/node.js'][371] = 0; + _$jscoverage['core/node.js'][372] = 0; + _$jscoverage['core/node.js'][373] = 0; + _$jscoverage['core/node.js'][374] = 0; + _$jscoverage['core/node.js'][390] = 0; + _$jscoverage['core/node.js'][391] = 0; + _$jscoverage['core/node.js'][392] = 0; + _$jscoverage['core/node.js'][393] = 0; + _$jscoverage['core/node.js'][410] = 0; + _$jscoverage['core/node.js'][411] = 0; + _$jscoverage['core/node.js'][412] = 0; + _$jscoverage['core/node.js'][414] = 0; + _$jscoverage['core/node.js'][415] = 0; + _$jscoverage['core/node.js'][416] = 0; + _$jscoverage['core/node.js'][417] = 0; + _$jscoverage['core/node.js'][418] = 0; + _$jscoverage['core/node.js'][419] = 0; + _$jscoverage['core/node.js'][436] = 0; + _$jscoverage['core/node.js'][437] = 0; + _$jscoverage['core/node.js'][438] = 0; + _$jscoverage['core/node.js'][440] = 0; + _$jscoverage['core/node.js'][441] = 0; + _$jscoverage['core/node.js'][443] = 0; + _$jscoverage['core/node.js'][444] = 0; + _$jscoverage['core/node.js'][445] = 0; + _$jscoverage['core/node.js'][446] = 0; + _$jscoverage['core/node.js'][449] = 0; + _$jscoverage['core/node.js'][450] = 0; + _$jscoverage['core/node.js'][451] = 0; + _$jscoverage['core/node.js'][469] = 0; + _$jscoverage['core/node.js'][470] = 0; + _$jscoverage['core/node.js'][471] = 0; + _$jscoverage['core/node.js'][473] = 0; + _$jscoverage['core/node.js'][474] = 0; + _$jscoverage['core/node.js'][475] = 0; + _$jscoverage['core/node.js'][476] = 0; + _$jscoverage['core/node.js'][477] = 0; + _$jscoverage['core/node.js'][496] = 0; + _$jscoverage['core/node.js'][497] = 0; + _$jscoverage['core/node.js'][498] = 0; + _$jscoverage['core/node.js'][500] = 0; + _$jscoverage['core/node.js'][501] = 0; + _$jscoverage['core/node.js'][502] = 0; + _$jscoverage['core/node.js'][503] = 0; + _$jscoverage['core/node.js'][504] = 0; + _$jscoverage['core/node.js'][523] = 0; + _$jscoverage['core/node.js'][524] = 0; + _$jscoverage['core/node.js'][525] = 0; + _$jscoverage['core/node.js'][526] = 0; + _$jscoverage['core/node.js'][527] = 0; + _$jscoverage['core/node.js'][528] = 0; + _$jscoverage['core/node.js'][529] = 0; + _$jscoverage['core/node.js'][530] = 0; + _$jscoverage['core/node.js'][531] = 0; + _$jscoverage['core/node.js'][535] = 0; + _$jscoverage['core/node.js'][552] = 0; + _$jscoverage['core/node.js'][567] = 0; + _$jscoverage['core/node.js'][568] = 0; + _$jscoverage['core/node.js'][569] = 0; + _$jscoverage['core/node.js'][571] = 0; + _$jscoverage['core/node.js'][572] = 0; + _$jscoverage['core/node.js'][574] = 0; + _$jscoverage['core/node.js'][575] = 0; + _$jscoverage['core/node.js'][576] = 0; + _$jscoverage['core/node.js'][577] = 0; + _$jscoverage['core/node.js'][579] = 0; + _$jscoverage['core/node.js'][583] = 0; + _$jscoverage['core/node.js'][584] = 0; + _$jscoverage['core/node.js'][586] = 0; + _$jscoverage['core/node.js'][602] = 0; + _$jscoverage['core/node.js'][603] = 0; + _$jscoverage['core/node.js'][604] = 0; + _$jscoverage['core/node.js'][605] = 0; + _$jscoverage['core/node.js'][608] = 0; + _$jscoverage['core/node.js'][622] = 0; + _$jscoverage['core/node.js'][623] = 0; + _$jscoverage['core/node.js'][624] = 0; + _$jscoverage['core/node.js'][625] = 0; + _$jscoverage['core/node.js'][626] = 0; + _$jscoverage['core/node.js'][643] = 0; + _$jscoverage['core/node.js'][644] = 0; + _$jscoverage['core/node.js'][645] = 0; + _$jscoverage['core/node.js'][646] = 0; + _$jscoverage['core/node.js'][647] = 0; + _$jscoverage['core/node.js'][648] = 0; + _$jscoverage['core/node.js'][652] = 0; + _$jscoverage['core/node.js'][666] = 0; + _$jscoverage['core/node.js'][667] = 0; + _$jscoverage['core/node.js'][668] = 0; + _$jscoverage['core/node.js'][670] = 0; + _$jscoverage['core/node.js'][671] = 0; + _$jscoverage['core/node.js'][672] = 0; + _$jscoverage['core/node.js'][673] = 0; + _$jscoverage['core/node.js'][675] = 0; + _$jscoverage['core/node.js'][689] = 0; + _$jscoverage['core/node.js'][690] = 0; + _$jscoverage['core/node.js'][691] = 0; + _$jscoverage['core/node.js'][692] = 0; + _$jscoverage['core/node.js'][693] = 0; + _$jscoverage['core/node.js'][698] = 0; + _$jscoverage['core/node.js'][699] = 0; + _$jscoverage['core/node.js'][700] = 0; + _$jscoverage['core/node.js'][702] = 0; + _$jscoverage['core/node.js'][703] = 0; + _$jscoverage['core/node.js'][704] = 0; + _$jscoverage['core/node.js'][707] = 0; + _$jscoverage['core/node.js'][709] = 0; + _$jscoverage['core/node.js'][724] = 0; + _$jscoverage['core/node.js'][725] = 0; + _$jscoverage['core/node.js'][727] = 0; +} +_$jscoverage['core/node.js'].source = ["/**"," * 编辑器模拟的节点类"," * @file"," * @module UE"," * @class uNode"," * @since 1.2.6.1"," */","","/**"," * UEditor公用空间,UEditor所有的功能都挂载在该空间下"," * @unfile"," * @module UE"," */","","(function(){",""," /**"," * 编辑器模拟的节点类"," * @unfile"," * @module UE"," * @class uNode"," */",""," /**"," * 通过一个键值对,创建一个uNode对象"," * @constructor"," * @param { KeyValueMap } 传入要创建的uNode的属性"," * @example"," * ```javascript"," * var node = new uNode({"," * type:'element',"," * tagName:'span',"," * attrs:{style:'font-size:14px;'}"," * }"," * ```"," */"," var uNode = UE.uNode =function(obj){"," this.type = obj.type;"," this.data = obj.data;"," this.tagName = obj.tagName;"," this.parentNode = obj.parentNode;"," this.attrs = obj.attrs ||{};"," this.children = obj.children;"," };"," var indentChar =' ',"," breakChar ='\\n';",""," function insertLine(arr, current, begin){"," arr.push(breakChar);"," return current +(begin ?1:-1);"," }",""," function insertIndent(arr, current){"," //插入缩进"," for(var i =0; i < current; i++){"," arr.push(indentChar);"," }"," }",""," //创建uNode的静态方法"," //支持标签和html"," uNode.createElement =function(html){"," if(/[<>]/.test(html)){"," return UE.htmlparser(html).children[0]"," }else{"," returnnew uNode({"," type:'element',"," children:[],"," tagName: html"," })"," }"," };"," uNode.createText =function(data){"," returnnew UE.uNode({"," type:'text',"," 'data': utils.unhtml(data ||'')"," })"," };"," function nodeToHtml(node, arr, formatter, current){"," switch(node.type){"," case'root':"," for(var i =0, ci; ci = node.children[i++];){"," //插入新行"," if(formatter && ci.type =='element'&&!dtd.$inlineWithA[ci.tagName]&& i >1){"," insertLine(arr, current,true);"," insertIndent(arr, current)"," }"," nodeToHtml(ci, arr, formatter, current)"," }"," break;"," case'text':"," isText(node, arr);"," break;"," case'element':"," isElement(node, arr, formatter, current);"," break;"," case'comment':"," isComment(node, arr, formatter);"," }"," return arr;"," }",""," function isText(node, arr){"," arr.push(node.parentNode.tagName =='pre'? node.data : node.data.replace(/[ ]{2}/g,' &nbsp;'))"," }",""," function isElement(node, arr, formatter, current){"," var attrhtml ='';"," if(node.attrs){"," attrhtml =[];"," var attrs = node.attrs;"," for(var a in attrs){"," attrhtml.push(a +(attrs[a]!== undefined ?'=\"'+ utils.unhtml(attrs[a])+'\"':''))"," }"," attrhtml = attrhtml.join(' ');"," }"," arr.push('<'+ node.tagName +"," (attrhtml ?' '+ attrhtml :'')+"," (dtd.$empty[node.tagName]?'\\/':'')+'>'"," );"," //插入新行"," if(formatter &&!dtd.$inlineWithA[node.tagName]&& node.tagName !='pre'){"," if(node.children && node.children.length){"," current = insertLine(arr, current,true);"," insertIndent(arr, current)"," }",""," }"," if(node.children && node.children.length){"," for(var i =0, ci; ci = node.children[i++];){"," if(formatter && ci.type =='element'&&!dtd.$inlineWithA[ci.tagName]&& i >1){"," insertLine(arr, current);"," insertIndent(arr, current)"," }"," nodeToHtml(ci, arr, formatter, current)"," }"," }"," if(!dtd.$empty[node.tagName]){"," if(formatter &&!dtd.$inlineWithA[node.tagName]&& node.tagName !='pre'){",""," if(node.children && node.children.length){"," current = insertLine(arr, current);"," insertIndent(arr, current)"," }"," }"," arr.push('<\\/'+ node.tagName +'>');"," }",""," }",""," function isComment(node, arr){"," arr.push('<!--'+ node.data +'-->');"," }",""," function getNodeById(root, id){"," var node;"," if(root.type =='element'&& root.getAttr('id')== id){"," return root;"," }"," if(root.children && root.children.length){"," for(var i =0, ci; ci = root.children[i++];){"," if(node = getNodeById(ci, id)){"," return node;"," }"," }"," }"," }",""," function getNodesByTagName(node, tagName, arr){"," if(node.type =='element'&& node.tagName == tagName){"," arr.push(node);"," }"," if(node.children && node.children.length){"," for(var i =0, ci; ci = node.children[i++];){"," getNodesByTagName(ci, tagName, arr)"," }"," }"," }",""," function nodeTraversal(root, fn){"," if(root.children && root.children.length){"," for(var i =0, ci; ci = root.children[i];){"," nodeTraversal(ci, fn);"," //ci被替换的情况,这里就不再走 fn了"," if(ci.parentNode){"," if(ci.children && ci.children.length){"," fn(ci)"," }"," if(ci.parentNode) i++"," }"," }"," }else{"," fn(root)"," }",""," }",""," uNode.prototype ={",""," /**"," * 当前节点对象,转换成html文本"," * @method toHtml"," * @return { String } 返回转换后的html字符串"," * @example"," * ```javascript"," * node.toHtml();"," * ```"," */",""," /**"," * 当前节点对象,转换成html文本"," * @method toHtml"," * @param { Boolean } formatter 是否格式化返回值"," * @return { String } 返回转换后的html字符串"," * @example"," * ```javascript"," * node.toHtml();"," * ```"," */"," toHtml:function(formatter){"," var arr =[];"," nodeToHtml(this, arr, formatter,0);"," return arr.join('')"," },",""," /**"," * 获取节点的html内容"," * @method innerHTML"," * @warning 假如节点的type不是'element',或节点的标签名称不在dtd列表里,直接反悔当前节点"," * @return { String } 返回节点的html内容"," * @example"," * ```javascript"," * var htmlstr = node.innerHTML();"," * ```"," */",""," /**"," * 设置节点的html内容"," * @method innerHTML"," * @warning 假如节点的type不是'element',或节点的标签名称不在dtd列表里,直接反悔当前节点"," * @param { String } htmlstr 传入要设置的html内容"," * @return { UE.uNode } 返回节点本身"," * @example"," * ```javascript"," * node.innerHTML('<span>text</span>');"," * ```"," */"," innerHTML:function(htmlstr){"," if(this.type !='element'|| dtd.$empty[this.tagName]){"," returnthis;"," }"," if(utils.isString(htmlstr)){"," if(this.children){"," for(var i =0, ci; ci =this.children[i++];){"," ci.parentNode =null;"," }"," }"," this.children =[];"," var tmpRoot = UE.htmlparser(htmlstr);"," for(var i =0, ci; ci = tmpRoot.children[i++];){"," this.children.push(ci);"," ci.parentNode =this;"," }"," returnthis;"," }else{"," var tmpRoot =new UE.uNode({"," type:'root',"," children:this.children"," });"," return tmpRoot.toHtml();"," }"," },",""," /**"," * 获取节点的纯文本内容"," * @method innerText"," * @warning 假如节点的type不是'element',或节点的标签名称不在dtd列表里,直接反悔当前节点"," * @return { String } 返回节点的存文本内容"," * @example"," * ```javascript"," * var textStr = node.innerText();"," * ```"," */",""," /**"," * 获取节点的纯文本内容"," * @method innerText"," * @warning 假如节点的type不是'element',或节点的标签名称不在dtd列表里,直接反悔当前节点"," * @param { String } textStr 传入要设置的文本内容"," * @return { UE.uNode } 返回节点本身"," * @example"," * ```javascript"," * node.innerText('<span>text</span>');"," * ```"," */"," innerText:function(textStr){"," if(this.type !='element'|| dtd.$empty[this.tagName]){"," returnthis;"," }"," if(textStr){"," if(this.children){"," for(var i =0, ci; ci =this.children[i++];){"," ci.parentNode =null;"," }"," }"," this.children =[];"," this.appendChild(uNode.createText(textStr));"," returnthis;"," }else{"," returnthis.toHtml().replace(/<[^>]+>/g,'');"," }"," },",""," /**"," * 获取当前对象的data属性"," * @method getData"," * @return { KeyValueMap } 若节点的type值是elemenet,返回空字符串,否则返回节点的data属性"," * @example"," * ```javascript"," * node.getData();"," * ```"," */"," getData:function(){"," if(this.type =='element')"," return'';"," returnthis.data"," },",""," /**"," * 获取当前节点下的第一个子节点"," * @method firstChild"," * @return { UE.uNode } 返回第一个子节点"," * @example"," * ```javascript"," * node.firstChild(); //返回第一个子节点"," * ```"," */"," firstChild:function(){","// if (this.type != 'element' || dtd.$empty[this.tagName]) {","// return this;","// }"," returnthis.children ?this.children[0]:null;"," },",""," /**"," * 获取当前节点下的最后一个子节点"," * @method lastChild"," * @return { UE.uNode } 返回最后一个子节点"," * @example"," * ```javascript"," * node.lastChild(); //返回最后一个子节点"," * ```"," */"," lastChild:function(){","// if (this.type != 'element' || dtd.$empty[this.tagName] ) {","// return this;","// }"," returnthis.children ?this.children[this.children.length -1]:null;"," },",""," /**"," * 获取和当前节点有相同父亲节点的前一个节点"," * @method previousSibling"," * @return { UE.uNode } 返回前一个节点"," * @example"," * ```javascript"," * node.children[2].previousSibling(); //返回子节点node.children[1]"," * ```"," */"," previousSibling:function(){"," var parent =this.parentNode;"," for(var i =0, ci; ci = parent.children[i]; i++){"," if(ci ===this){"," return i ==0?null: parent.children[i -1];"," }"," }",""," },",""," /**"," * 获取和当前节点有相同父亲节点的后一个节点"," * @method nextSibling"," * @return { UE.uNode } 返回后一个节点,找不到返回null"," * @example"," * ```javascript"," * node.children[2].nextSibling(); //如果有,返回子节点node.children[3]"," * ```"," */"," nextSibling:function(){"," var parent =this.parentNode;"," for(var i =0, ci; ci = parent.children[i++];){"," if(ci ===this){"," return parent.children[i];"," }"," }"," },",""," /**"," * 用新的节点替换当前节点"," * @method replaceChild"," * @param { UE.uNode } target 要替换成该节点参数"," * @param { UE.uNode } source 要被替换掉的节点"," * @return { UE.uNode } 返回替换之后的节点对象"," * @example"," * ```javascript"," * node.replaceChild(newNode, childNode); //用newNode替换childNode,childNode是node的子节点"," * ```"," */"," replaceChild:function(target, source){"," if(this.children){"," if(target.parentNode){"," target.parentNode.removeChild(target);"," }"," for(var i =0, ci; ci =this.children[i]; i++){"," if(ci === source){"," this.children.splice(i,1, target);"," source.parentNode =null;"," target.parentNode =this;"," return target;"," }"," }"," }"," },",""," /**"," * 在节点的子节点列表最后位置插入一个节点"," * @method appendChild"," * @param { UE.uNode } node 要插入的节点"," * @return { UE.uNode } 返回刚插入的子节点"," * @example"," * ```javascript"," * node.appendChild( newNode ); //在node内插入子节点newNode"," * ```"," */"," appendChild:function(node){"," if(this.type =='root'||(this.type =='element'&&!dtd.$empty[this.tagName])){"," if(!this.children){"," this.children =[]"," }"," if(node.parentNode){"," node.parentNode.removeChild(node);"," }"," for(var i =0, ci; ci =this.children[i]; i++){"," if(ci === node){"," this.children.splice(i,1);"," break;"," }"," }"," this.children.push(node);"," node.parentNode =this;"," return node;"," }","",""," },",""," /**"," * 在传入节点的前面插入一个节点"," * @method insertBefore"," * @param { UE.uNode } target 要插入的节点"," * @param { UE.uNode } source 在该参数节点前面插入"," * @return { UE.uNode } 返回刚插入的子节点"," * @example"," * ```javascript"," * node.parentNode.insertBefore(newNode, node); //在node节点后面插入newNode"," * ```"," */"," insertBefore:function(target, source){"," if(this.children){"," if(target.parentNode){"," target.parentNode.removeChild(target);"," }"," for(var i =0, ci; ci =this.children[i]; i++){"," if(ci === source){"," this.children.splice(i,0, target);"," target.parentNode =this;"," return target;"," }"," }",""," }"," },",""," /**"," * 在传入节点的后面插入一个节点"," * @method insertAfter"," * @param { UE.uNode } target 要插入的节点"," * @param { UE.uNode } source 在该参数节点后面插入"," * @return { UE.uNode } 返回刚插入的子节点"," * @example"," * ```javascript"," * node.parentNode.insertAfter(newNode, node); //在node节点后面插入newNode"," * ```"," */"," insertAfter:function(target, source){"," if(this.children){"," if(target.parentNode){"," target.parentNode.removeChild(target);"," }"," for(var i =0, ci; ci =this.children[i]; i++){"," if(ci === source){"," this.children.splice(i +1,0, target);"," target.parentNode =this;"," return target;"," }",""," }"," }"," },",""," /**"," * 从当前节点的子节点列表中,移除节点"," * @method removeChild"," * @param { UE.uNode } node 要移除的节点引用"," * @param { Boolean } keepChildren 是否保留移除节点的子节点,若传入true,自动把移除节点的子节点插入到移除的位置"," * @return { * } 返回刚移除的子节点"," * @example"," * ```javascript"," * node.removeChild(childNode,true); //在node的子节点列表中移除child节点,并且吧child的子节点插入到移除的位置"," * ```"," */"," removeChild:function(node, keepChildren){"," if(this.children){"," for(var i =0, ci; ci =this.children[i]; i++){"," if(ci === node){"," this.children.splice(i,1);"," ci.parentNode =null;"," if(keepChildren && ci.children && ci.children.length){"," for(var j =0, cj; cj = ci.children[j]; j++){"," this.children.splice(i + j,0, cj);"," cj.parentNode =this;",""," }"," }"," return ci;"," }"," }"," }"," },",""," /**"," * 获取当前节点所代表的元素属性,即获取attrs对象下的属性值"," * @method getAttr"," * @param { String } attrName 要获取的属性名称"," * @return { * } 返回attrs对象下的属性值"," * @example"," * ```javascript"," * node.getAttr('title');"," * ```"," */"," getAttr:function(attrName){"," returnthis.attrs &&this.attrs[attrName.toLowerCase()]"," },",""," /**"," * 设置当前节点所代表的元素属性,即设置attrs对象下的属性值"," * @method getAttr"," * @param { String } attrName 要设置的属性名称"," * @param { * } attrVal 要设置的属性值,类型视设置的属性而定"," * @return { * } 返回attrs对象下的属性值"," * @example"," * ```javascript"," * node.setAttr('title','标题');"," * ```"," */"," setAttr:function(attrName, attrVal){"," if(!attrName){"," deletethis.attrs;"," return;"," }"," if(!this.attrs){"," this.attrs ={};"," }"," if(utils.isObject(attrName)){"," for(var a in attrName){"," if(!attrName[a]){"," deletethis.attrs[a]"," }else{"," this.attrs[a.toLowerCase()]= attrName[a];"," }"," }"," }else{"," if(!attrVal){"," deletethis.attrs[attrName]"," }else{"," this.attrs[attrName.toLowerCase()]= attrVal;"," }",""," }"," },",""," /**"," * 获取当前节点在父节点下的位置索引"," * @method getIndex"," * @return { Number } 返回索引数值,如果没有父节点,返回-1"," * @example"," * ```javascript"," * node.getIndex();"," * ```"," */"," getIndex:function(){"," var parent =this.parentNode;"," for(var i =0, ci; ci = parent.children[i]; i++){"," if(ci ===this){"," return i;"," }"," }"," return-1;"," },",""," /**"," * 在当前节点下,根据id查找节点"," * @method getNodeById"," * @param { String } id 要查找的id"," * @return { UE.uNode } 返回找到的节点"," * @example"," * ```javascript"," * node.getNodeById('textId');"," * ```"," */"," getNodeById:function(id){"," var node;"," if(this.children &&this.children.length){"," for(var i =0, ci; ci =this.children[i++];){"," if(node = getNodeById(ci, id)){"," return node;"," }"," }"," }"," },",""," /**"," * 在当前节点下,根据元素名称查找节点列表"," * @method getNodeById"," * @param { String } tagNames 要查找的元素名称"," * @return { Array } 返回找到的节点列表"," * @example"," * ```javascript"," * node.getNodesByTagName('span');"," * ```"," */"," getNodesByTagName:function(tagNames){"," tagNames = utils.trim(tagNames).replace(/[ ]{2,}/g,' ').split(' ');"," var arr =[], me =this;"," utils.each(tagNames,function(tagName){"," if(me.children && me.children.length){"," for(var i =0, ci; ci = me.children[i++];){"," getNodesByTagName(ci, tagName, arr)"," }"," }"," });"," return arr;"," },",""," /**"," * 根据样式名称,获取节点的样式值"," * @method getStyle"," * @param { String } name 要获取的样式名称"," * @return { String } 返回样式值"," * @example"," * ```javascript"," * node.getStyle('font-size');"," * ```"," */"," getStyle:function(name){"," var cssStyle =this.getAttr('style');"," if(!cssStyle){"," return''"," }"," var reg =new RegExp(name +':([^;]+)','i');"," var match = cssStyle.match(reg);"," if(match && match[0]){"," return match[1]"," }"," return'';"," },",""," /**"," * 给节点设置样式"," * @method setStyle"," * @param { String } name 要设置的的样式名称"," * @param { String } val 要设置的的样值"," * @example"," * ```javascript"," * node.setStyle('font-size', '12px');"," * ```"," */"," setStyle:function(name, val){"," function exec(name, val){"," var reg =new RegExp(name +':([^;]+;?)','gi');"," cssStyle = cssStyle.replace(reg,'');"," if(val){"," cssStyle = name +':'+ utils.unhtml(val)+';'+ cssStyle"," }",""," }",""," var cssStyle =this.getAttr('style');"," if(!cssStyle){"," cssStyle ='';"," }"," if(utils.isObject(name)){"," for(var a in name){"," exec(a, name[a])"," }"," }else{"," exec(name, val)"," }"," this.setAttr('style', utils.trim(cssStyle))"," },",""," /**"," * 传入一个函数,递归遍历当前节点下的所有节点"," * @method traversal"," * @param { Function } fn 遍历到节点的时,传入节点作为参数,运行此函数"," * @example"," * ```javascript"," * traversal(node, function(){"," * console.log(node.type);"," * });"," * ```"," */"," traversal:function(fn){"," if(this.children &&this.children.length){"," nodeTraversal(this, fn);"," }"," returnthis;"," }"," }","})();"]; +_$jscoverage['core/node.js'][15]++; +(function () { + _$jscoverage['core/node.js'][37]++; + var uNode = (UE.uNode = (function (obj) { + _$jscoverage['core/node.js'][38]++; + this.type = obj.type; + _$jscoverage['core/node.js'][39]++; + this.data = obj.data; + _$jscoverage['core/node.js'][40]++; + this.tagName = obj.tagName; + _$jscoverage['core/node.js'][41]++; + this.parentNode = obj.parentNode; + _$jscoverage['core/node.js'][42]++; + this.attrs = (obj.attrs || {}); + _$jscoverage['core/node.js'][43]++; + this.children = obj.children; +})); + _$jscoverage['core/node.js'][45]++; + var indentChar = " ", breakChar = "\n"; + _$jscoverage['core/node.js'][48]++; + function insertLine(arr, current, begin) { + _$jscoverage['core/node.js'][49]++; + arr.push(breakChar); + _$jscoverage['core/node.js'][50]++; + return (current + (begin? 1: -1)); +} + _$jscoverage['core/node.js'][53]++; + function insertIndent(arr, current) { + _$jscoverage['core/node.js'][55]++; + for (var i = 0; (i < current); (i++)) { + _$jscoverage['core/node.js'][56]++; + arr.push(indentChar); +} +} + _$jscoverage['core/node.js'][62]++; + uNode.createElement = (function (html) { + _$jscoverage['core/node.js'][63]++; + if (/[<>]/.test(html)) { + _$jscoverage['core/node.js'][64]++; + return UE.htmlparser(html).children[0]; + } + else { + _$jscoverage['core/node.js'][66]++; + return new uNode({type: "element", children: [], tagName: html}); + } +}); + _$jscoverage['core/node.js'][73]++; + uNode.createText = (function (data) { + _$jscoverage['core/node.js'][74]++; + return new (UE.uNode)({type: "text", "data": utils.unhtml((data || ""))}); +}); + _$jscoverage['core/node.js'][79]++; + function nodeToHtml(node, arr, formatter, current) { + _$jscoverage['core/node.js'][80]++; + switch (node.type) { + case "root": + _$jscoverage['core/node.js'][82]++; + for (var i = 0, ci; (ci = node.children[(i++)]);) { + _$jscoverage['core/node.js'][84]++; + if ((formatter && (ci.type == "element") && (! dtd.$inlineWithA[ci.tagName]) && (i > 1))) { + _$jscoverage['core/node.js'][85]++; + insertLine(arr, current, true); + _$jscoverage['core/node.js'][86]++; + insertIndent(arr, current); + } + _$jscoverage['core/node.js'][88]++; + nodeToHtml(ci, arr, formatter, current); +} + _$jscoverage['core/node.js'][90]++; + break; + case "text": + _$jscoverage['core/node.js'][92]++; + isText(node, arr); + _$jscoverage['core/node.js'][93]++; + break; + case "element": + _$jscoverage['core/node.js'][95]++; + isElement(node, arr, formatter, current); + _$jscoverage['core/node.js'][96]++; + break; + case "comment": + _$jscoverage['core/node.js'][98]++; + isComment(node, arr, formatter); + } + _$jscoverage['core/node.js'][100]++; + return arr; +} + _$jscoverage['core/node.js'][103]++; + function isText(node, arr) { + _$jscoverage['core/node.js'][104]++; + arr.push(((node.parentNode.tagName == "pre")? node.data: node.data.replace(/[ ]{2}/g, "  "))); +} + _$jscoverage['core/node.js'][107]++; + function isElement(node, arr, formatter, current) { + _$jscoverage['core/node.js'][108]++; + var attrhtml = ""; + _$jscoverage['core/node.js'][109]++; + if (node.attrs) { + _$jscoverage['core/node.js'][110]++; + attrhtml = []; + _$jscoverage['core/node.js'][111]++; + var attrs = node.attrs; + _$jscoverage['core/node.js'][112]++; + for (var a in attrs) { + _$jscoverage['core/node.js'][113]++; + attrhtml.push((a + ((attrs[a] !== undefined)? ("=\"" + utils.unhtml(attrs[a]) + "\""): ""))); +} + _$jscoverage['core/node.js'][115]++; + attrhtml = attrhtml.join(" "); + } + _$jscoverage['core/node.js'][117]++; + arr.push(("<" + node.tagName + (attrhtml? (" " + attrhtml): "") + (dtd.$empty[node.tagName]? "/": "") + ">")); + _$jscoverage['core/node.js'][122]++; + if ((formatter && (! dtd.$inlineWithA[node.tagName]) && (node.tagName != "pre"))) { + _$jscoverage['core/node.js'][123]++; + if ((node.children && node.children.length)) { + _$jscoverage['core/node.js'][124]++; + current = insertLine(arr, current, true); + _$jscoverage['core/node.js'][125]++; + insertIndent(arr, current); + } + } + _$jscoverage['core/node.js'][129]++; + if ((node.children && node.children.length)) { + _$jscoverage['core/node.js'][130]++; + for (var i = 0, ci; (ci = node.children[(i++)]);) { + _$jscoverage['core/node.js'][131]++; + if ((formatter && (ci.type == "element") && (! dtd.$inlineWithA[ci.tagName]) && (i > 1))) { + _$jscoverage['core/node.js'][132]++; + insertLine(arr, current); + _$jscoverage['core/node.js'][133]++; + insertIndent(arr, current); + } + _$jscoverage['core/node.js'][135]++; + nodeToHtml(ci, arr, formatter, current); +} + } + _$jscoverage['core/node.js'][138]++; + if ((! dtd.$empty[node.tagName])) { + _$jscoverage['core/node.js'][139]++; + if ((formatter && (! dtd.$inlineWithA[node.tagName]) && (node.tagName != "pre"))) { + _$jscoverage['core/node.js'][141]++; + if ((node.children && node.children.length)) { + _$jscoverage['core/node.js'][142]++; + current = insertLine(arr, current); + _$jscoverage['core/node.js'][143]++; + insertIndent(arr, current); + } + } + _$jscoverage['core/node.js'][146]++; + arr.push(("")); + } +} + _$jscoverage['core/node.js'][151]++; + function isComment(node, arr) { + _$jscoverage['core/node.js'][152]++; + arr.push(("")); +} + _$jscoverage['core/node.js'][155]++; + function getNodeById(root, id) { + _$jscoverage['core/node.js'][156]++; + var node; + _$jscoverage['core/node.js'][157]++; + if (((root.type == "element") && (root.getAttr("id") == id))) { + _$jscoverage['core/node.js'][158]++; + return root; + } + _$jscoverage['core/node.js'][160]++; + if ((root.children && root.children.length)) { + _$jscoverage['core/node.js'][161]++; + for (var i = 0, ci; (ci = root.children[(i++)]);) { + _$jscoverage['core/node.js'][162]++; + if ((node = getNodeById(ci, id))) { + _$jscoverage['core/node.js'][163]++; + return node; + } +} + } +} + _$jscoverage['core/node.js'][169]++; + function getNodesByTagName(node, tagName, arr) { + _$jscoverage['core/node.js'][170]++; + if (((node.type == "element") && (node.tagName == tagName))) { + _$jscoverage['core/node.js'][171]++; + arr.push(node); + } + _$jscoverage['core/node.js'][173]++; + if ((node.children && node.children.length)) { + _$jscoverage['core/node.js'][174]++; + for (var i = 0, ci; (ci = node.children[(i++)]);) { + _$jscoverage['core/node.js'][175]++; + getNodesByTagName(ci, tagName, arr); +} + } +} + _$jscoverage['core/node.js'][180]++; + function nodeTraversal(root, fn) { + _$jscoverage['core/node.js'][181]++; + if ((root.children && root.children.length)) { + _$jscoverage['core/node.js'][182]++; + for (var i = 0, ci; (ci = root.children[i]);) { + _$jscoverage['core/node.js'][183]++; + nodeTraversal(ci, fn); + _$jscoverage['core/node.js'][185]++; + if (ci.parentNode) { + _$jscoverage['core/node.js'][186]++; + if ((ci.children && ci.children.length)) { + _$jscoverage['core/node.js'][187]++; + fn(ci); + } + _$jscoverage['core/node.js'][189]++; + if (ci.parentNode) { + _$jscoverage['core/node.js'][189]++; + (i++); + } + } +} + } + else { + _$jscoverage['core/node.js'][193]++; + fn(root); + } +} + _$jscoverage['core/node.js'][198]++; + uNode.prototype = {toHtml: (function (formatter) { + _$jscoverage['core/node.js'][221]++; + var arr = []; + _$jscoverage['core/node.js'][222]++; + nodeToHtml(this, arr, formatter, 0); + _$jscoverage['core/node.js'][223]++; + return arr.join(""); +}), innerHTML: (function (htmlstr) { + _$jscoverage['core/node.js'][249]++; + if (((this.type != "element") || dtd.$empty[this.tagName])) { + _$jscoverage['core/node.js'][250]++; + return this; + } + _$jscoverage['core/node.js'][252]++; + if (utils.isString(htmlstr)) { + _$jscoverage['core/node.js'][253]++; + if (this.children) { + _$jscoverage['core/node.js'][254]++; + for (var i = 0, ci; (ci = this.children[(i++)]);) { + _$jscoverage['core/node.js'][255]++; + ci.parentNode = null; +} + } + _$jscoverage['core/node.js'][258]++; + this.children = []; + _$jscoverage['core/node.js'][259]++; + var tmpRoot = UE.htmlparser(htmlstr); + _$jscoverage['core/node.js'][260]++; + for (var i = 0, ci = ci; (ci = tmpRoot.children[(i++)]);) { + _$jscoverage['core/node.js'][261]++; + this.children.push(ci); + _$jscoverage['core/node.js'][262]++; + ci.parentNode = this; +} + _$jscoverage['core/node.js'][264]++; + return this; + } + else { + _$jscoverage['core/node.js'][266]++; + var tmpRoot = new (UE.uNode)({type: "root", children: this.children}); + _$jscoverage['core/node.js'][270]++; + return tmpRoot.toHtml(); + } +}), innerText: (function (textStr) { + _$jscoverage['core/node.js'][297]++; + if (((this.type != "element") || dtd.$empty[this.tagName])) { + _$jscoverage['core/node.js'][298]++; + return this; + } + _$jscoverage['core/node.js'][300]++; + if (textStr) { + _$jscoverage['core/node.js'][301]++; + if (this.children) { + _$jscoverage['core/node.js'][302]++; + for (var i = 0, ci; (ci = this.children[(i++)]);) { + _$jscoverage['core/node.js'][303]++; + ci.parentNode = null; +} + } + _$jscoverage['core/node.js'][306]++; + this.children = []; + _$jscoverage['core/node.js'][307]++; + this.appendChild(uNode.createText(textStr)); + _$jscoverage['core/node.js'][308]++; + return this; + } + else { + _$jscoverage['core/node.js'][310]++; + return this.toHtml().replace(/<[^>]+>/g, ""); + } +}), getData: (function () { + _$jscoverage['core/node.js'][324]++; + if ((this.type == "element")) { + _$jscoverage['core/node.js'][325]++; + return ""; + } + _$jscoverage['core/node.js'][326]++; + return this.data; +}), firstChild: (function () { + _$jscoverage['core/node.js'][342]++; + return (this.children? this.children[0]: null); +}), lastChild: (function () { + _$jscoverage['core/node.js'][358]++; + return (this.children? this.children[(this.children.length - 1)]: null); +}), previousSibling: (function () { + _$jscoverage['core/node.js'][371]++; + var parent = this.parentNode; + _$jscoverage['core/node.js'][372]++; + for (var i = 0, ci; (ci = parent.children[i]); (i++)) { + _$jscoverage['core/node.js'][373]++; + if ((ci === this)) { + _$jscoverage['core/node.js'][374]++; + return ((i == 0)? null: parent.children[(i - 1)]); + } +} +}), nextSibling: (function () { + _$jscoverage['core/node.js'][390]++; + var parent = this.parentNode; + _$jscoverage['core/node.js'][391]++; + for (var i = 0, ci; (ci = parent.children[(i++)]);) { + _$jscoverage['core/node.js'][392]++; + if ((ci === this)) { + _$jscoverage['core/node.js'][393]++; + return parent.children[i]; + } +} +}), replaceChild: (function (target, source) { + _$jscoverage['core/node.js'][410]++; + if (this.children) { + _$jscoverage['core/node.js'][411]++; + if (target.parentNode) { + _$jscoverage['core/node.js'][412]++; + target.parentNode.removeChild(target); + } + _$jscoverage['core/node.js'][414]++; + for (var i = 0, ci; (ci = this.children[i]); (i++)) { + _$jscoverage['core/node.js'][415]++; + if ((ci === source)) { + _$jscoverage['core/node.js'][416]++; + this.children.splice(i, 1, target); + _$jscoverage['core/node.js'][417]++; + source.parentNode = null; + _$jscoverage['core/node.js'][418]++; + target.parentNode = this; + _$jscoverage['core/node.js'][419]++; + return target; + } +} + } +}), appendChild: (function (node) { + _$jscoverage['core/node.js'][436]++; + if (((this.type == "root") || ((this.type == "element") && (! dtd.$empty[this.tagName])))) { + _$jscoverage['core/node.js'][437]++; + if ((! this.children)) { + _$jscoverage['core/node.js'][438]++; + this.children = []; + } + _$jscoverage['core/node.js'][440]++; + if (node.parentNode) { + _$jscoverage['core/node.js'][441]++; + node.parentNode.removeChild(node); + } + _$jscoverage['core/node.js'][443]++; + for (var i = 0, ci; (ci = this.children[i]); (i++)) { + _$jscoverage['core/node.js'][444]++; + if ((ci === node)) { + _$jscoverage['core/node.js'][445]++; + this.children.splice(i, 1); + _$jscoverage['core/node.js'][446]++; + break; + } +} + _$jscoverage['core/node.js'][449]++; + this.children.push(node); + _$jscoverage['core/node.js'][450]++; + node.parentNode = this; + _$jscoverage['core/node.js'][451]++; + return node; + } +}), insertBefore: (function (target, source) { + _$jscoverage['core/node.js'][469]++; + if (this.children) { + _$jscoverage['core/node.js'][470]++; + if (target.parentNode) { + _$jscoverage['core/node.js'][471]++; + target.parentNode.removeChild(target); + } + _$jscoverage['core/node.js'][473]++; + for (var i = 0, ci; (ci = this.children[i]); (i++)) { + _$jscoverage['core/node.js'][474]++; + if ((ci === source)) { + _$jscoverage['core/node.js'][475]++; + this.children.splice(i, 0, target); + _$jscoverage['core/node.js'][476]++; + target.parentNode = this; + _$jscoverage['core/node.js'][477]++; + return target; + } +} + } +}), insertAfter: (function (target, source) { + _$jscoverage['core/node.js'][496]++; + if (this.children) { + _$jscoverage['core/node.js'][497]++; + if (target.parentNode) { + _$jscoverage['core/node.js'][498]++; + target.parentNode.removeChild(target); + } + _$jscoverage['core/node.js'][500]++; + for (var i = 0, ci; (ci = this.children[i]); (i++)) { + _$jscoverage['core/node.js'][501]++; + if ((ci === source)) { + _$jscoverage['core/node.js'][502]++; + this.children.splice((i + 1), 0, target); + _$jscoverage['core/node.js'][503]++; + target.parentNode = this; + _$jscoverage['core/node.js'][504]++; + return target; + } +} + } +}), removeChild: (function (node, keepChildren) { + _$jscoverage['core/node.js'][523]++; + if (this.children) { + _$jscoverage['core/node.js'][524]++; + for (var i = 0, ci; (ci = this.children[i]); (i++)) { + _$jscoverage['core/node.js'][525]++; + if ((ci === node)) { + _$jscoverage['core/node.js'][526]++; + this.children.splice(i, 1); + _$jscoverage['core/node.js'][527]++; + ci.parentNode = null; + _$jscoverage['core/node.js'][528]++; + if ((keepChildren && ci.children && ci.children.length)) { + _$jscoverage['core/node.js'][529]++; + for (var j = 0, cj; (cj = ci.children[j]); (j++)) { + _$jscoverage['core/node.js'][530]++; + this.children.splice((i + j), 0, cj); + _$jscoverage['core/node.js'][531]++; + cj.parentNode = this; +} + } + _$jscoverage['core/node.js'][535]++; + return ci; + } +} + } +}), getAttr: (function (attrName) { + _$jscoverage['core/node.js'][552]++; + return (this.attrs && this.attrs[attrName.toLowerCase()]); +}), setAttr: (function (attrName, attrVal) { + _$jscoverage['core/node.js'][567]++; + if ((! attrName)) { + _$jscoverage['core/node.js'][568]++; + (delete this.attrs); + _$jscoverage['core/node.js'][569]++; + return; + } + _$jscoverage['core/node.js'][571]++; + if ((! this.attrs)) { + _$jscoverage['core/node.js'][572]++; + this.attrs = {}; + } + _$jscoverage['core/node.js'][574]++; + if (utils.isObject(attrName)) { + _$jscoverage['core/node.js'][575]++; + for (var a in attrName) { + _$jscoverage['core/node.js'][576]++; + if ((! attrName[a])) { + _$jscoverage['core/node.js'][577]++; + (delete this.attrs[a]); + } + else { + _$jscoverage['core/node.js'][579]++; + this.attrs[a.toLowerCase()] = attrName[a]; + } +} + } + else { + _$jscoverage['core/node.js'][583]++; + if ((! attrVal)) { + _$jscoverage['core/node.js'][584]++; + (delete this.attrs[attrName]); + } + else { + _$jscoverage['core/node.js'][586]++; + this.attrs[attrName.toLowerCase()] = attrVal; + } + } +}), getIndex: (function () { + _$jscoverage['core/node.js'][602]++; + var parent = this.parentNode; + _$jscoverage['core/node.js'][603]++; + for (var i = 0, ci; (ci = parent.children[i]); (i++)) { + _$jscoverage['core/node.js'][604]++; + if ((ci === this)) { + _$jscoverage['core/node.js'][605]++; + return i; + } +} + _$jscoverage['core/node.js'][608]++; + return -1; +}), getNodeById: (function (id) { + _$jscoverage['core/node.js'][622]++; + var node; + _$jscoverage['core/node.js'][623]++; + if ((this.children && this.children.length)) { + _$jscoverage['core/node.js'][624]++; + for (var i = 0, ci; (ci = this.children[(i++)]);) { + _$jscoverage['core/node.js'][625]++; + if ((node = getNodeById(ci, id))) { + _$jscoverage['core/node.js'][626]++; + return node; + } +} + } +}), getNodesByTagName: (function (tagNames) { + _$jscoverage['core/node.js'][643]++; + tagNames = utils.trim(tagNames).replace(/[ ]{2,}/g, " ").split(" "); + _$jscoverage['core/node.js'][644]++; + var arr = [], me = this; + _$jscoverage['core/node.js'][645]++; + utils.each(tagNames, (function (tagName) { + _$jscoverage['core/node.js'][646]++; + if ((me.children && me.children.length)) { + _$jscoverage['core/node.js'][647]++; + for (var i = 0, ci; (ci = me.children[(i++)]);) { + _$jscoverage['core/node.js'][648]++; + getNodesByTagName(ci, tagName, arr); +} + } +})); + _$jscoverage['core/node.js'][652]++; + return arr; +}), getStyle: (function (name) { + _$jscoverage['core/node.js'][666]++; + var cssStyle = this.getAttr("style"); + _$jscoverage['core/node.js'][667]++; + if ((! cssStyle)) { + _$jscoverage['core/node.js'][668]++; + return ""; + } + _$jscoverage['core/node.js'][670]++; + var reg = new RegExp((name + ":([^;]+)"), "i"); + _$jscoverage['core/node.js'][671]++; + var match = cssStyle.match(reg); + _$jscoverage['core/node.js'][672]++; + if ((match && match[0])) { + _$jscoverage['core/node.js'][673]++; + return match[1]; + } + _$jscoverage['core/node.js'][675]++; + return ""; +}), setStyle: (function (name, val) { + _$jscoverage['core/node.js'][689]++; + function exec(name, val) { + _$jscoverage['core/node.js'][690]++; + var reg = new RegExp((name + ":([^;]+;?)"), "gi"); + _$jscoverage['core/node.js'][691]++; + cssStyle = cssStyle.replace(reg, ""); + _$jscoverage['core/node.js'][692]++; + if (val) { + _$jscoverage['core/node.js'][693]++; + cssStyle = (name + ":" + utils.unhtml(val) + ";" + cssStyle); + } +} + _$jscoverage['core/node.js'][698]++; + var cssStyle = this.getAttr("style"); + _$jscoverage['core/node.js'][699]++; + if ((! cssStyle)) { + _$jscoverage['core/node.js'][700]++; + cssStyle = ""; + } + _$jscoverage['core/node.js'][702]++; + if (utils.isObject(name)) { + _$jscoverage['core/node.js'][703]++; + for (var a in name) { + _$jscoverage['core/node.js'][704]++; + exec(a, name[a]); +} + } + else { + _$jscoverage['core/node.js'][707]++; + exec(name, val); + } + _$jscoverage['core/node.js'][709]++; + this.setAttr("style", utils.trim(cssStyle)); +}), traversal: (function (fn) { + _$jscoverage['core/node.js'][724]++; + if ((this.children && this.children.length)) { + _$jscoverage['core/node.js'][725]++; + nodeTraversal(this, fn); + } + _$jscoverage['core/node.js'][727]++; + return this; +})}; +})(); diff --git a/_test/coverage/core/utils.js b/_test/coverage/core/utils.js new file mode 100644 index 000000000..b1af08e77 --- /dev/null +++ b/_test/coverage/core/utils.js @@ -0,0 +1,888 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['core/utils.js']) { + _$jscoverage['core/utils.js'] = []; + _$jscoverage['core/utils.js'][14] = 0; + _$jscoverage['core/utils.js'][55] = 0; + _$jscoverage['core/utils.js'][56] = 0; + _$jscoverage['core/utils.js'][57] = 0; + _$jscoverage['core/utils.js'][58] = 0; + _$jscoverage['core/utils.js'][59] = 0; + _$jscoverage['core/utils.js'][62] = 0; + _$jscoverage['core/utils.js'][63] = 0; + _$jscoverage['core/utils.js'][64] = 0; + _$jscoverage['core/utils.js'][65] = 0; + _$jscoverage['core/utils.js'][87] = 0; + _$jscoverage['core/utils.js'][88] = 0; + _$jscoverage['core/utils.js'][89] = 0; + _$jscoverage['core/utils.js'][90] = 0; + _$jscoverage['core/utils.js'][91] = 0; + _$jscoverage['core/utils.js'][138] = 0; + _$jscoverage['core/utils.js'][139] = 0; + _$jscoverage['core/utils.js'][140] = 0; + _$jscoverage['core/utils.js'][141] = 0; + _$jscoverage['core/utils.js'][145] = 0; + _$jscoverage['core/utils.js'][172] = 0; + _$jscoverage['core/utils.js'][173] = 0; + _$jscoverage['core/utils.js'][174] = 0; + _$jscoverage['core/utils.js'][175] = 0; + _$jscoverage['core/utils.js'][176] = 0; + _$jscoverage['core/utils.js'][177] = 0; + _$jscoverage['core/utils.js'][181] = 0; + _$jscoverage['core/utils.js'][215] = 0; + _$jscoverage['core/utils.js'][217] = 0; + _$jscoverage['core/utils.js'][218] = 0; + _$jscoverage['core/utils.js'][219] = 0; + _$jscoverage['core/utils.js'][249] = 0; + _$jscoverage['core/utils.js'][250] = 0; + _$jscoverage['core/utils.js'][304] = 0; + _$jscoverage['core/utils.js'][305] = 0; + _$jscoverage['core/utils.js'][306] = 0; + _$jscoverage['core/utils.js'][307] = 0; + _$jscoverage['core/utils.js'][309] = 0; + _$jscoverage['core/utils.js'][348] = 0; + _$jscoverage['core/utils.js'][349] = 0; + _$jscoverage['core/utils.js'][350] = 0; + _$jscoverage['core/utils.js'][351] = 0; + _$jscoverage['core/utils.js'][352] = 0; + _$jscoverage['core/utils.js'][353] = 0; + _$jscoverage['core/utils.js'][356] = 0; + _$jscoverage['core/utils.js'][376] = 0; + _$jscoverage['core/utils.js'][377] = 0; + _$jscoverage['core/utils.js'][378] = 0; + _$jscoverage['core/utils.js'][379] = 0; + _$jscoverage['core/utils.js'][406] = 0; + _$jscoverage['core/utils.js'][439] = 0; + _$jscoverage['core/utils.js'][440] = 0; + _$jscoverage['core/utils.js'][441] = 0; + _$jscoverage['core/utils.js'][442] = 0; + _$jscoverage['core/utils.js'][444] = 0; + _$jscoverage['core/utils.js'][462] = 0; + _$jscoverage['core/utils.js'][463] = 0; + _$jscoverage['core/utils.js'][464] = 0; + _$jscoverage['core/utils.js'][466] = 0; + _$jscoverage['core/utils.js'][495] = 0; + _$jscoverage['core/utils.js'][496] = 0; + _$jscoverage['core/utils.js'][522] = 0; + _$jscoverage['core/utils.js'][527] = 0; + _$jscoverage['core/utils.js'][528] = 0; + _$jscoverage['core/utils.js'][529] = 0; + _$jscoverage['core/utils.js'][575] = 0; + _$jscoverage['core/utils.js'][577] = 0; + _$jscoverage['core/utils.js'][578] = 0; + _$jscoverage['core/utils.js'][579] = 0; + _$jscoverage['core/utils.js'][580] = 0; + _$jscoverage['core/utils.js'][581] = 0; + _$jscoverage['core/utils.js'][585] = 0; + _$jscoverage['core/utils.js'][590] = 0; + _$jscoverage['core/utils.js'][591] = 0; + _$jscoverage['core/utils.js'][592] = 0; + _$jscoverage['core/utils.js'][593] = 0; + _$jscoverage['core/utils.js'][594] = 0; + _$jscoverage['core/utils.js'][596] = 0; + _$jscoverage['core/utils.js'][598] = 0; + _$jscoverage['core/utils.js'][600] = 0; + _$jscoverage['core/utils.js'][605] = 0; + _$jscoverage['core/utils.js'][606] = 0; + _$jscoverage['core/utils.js'][607] = 0; + _$jscoverage['core/utils.js'][608] = 0; + _$jscoverage['core/utils.js'][609] = 0; + _$jscoverage['core/utils.js'][611] = 0; + _$jscoverage['core/utils.js'][612] = 0; + _$jscoverage['core/utils.js'][614] = 0; + _$jscoverage['core/utils.js'][615] = 0; + _$jscoverage['core/utils.js'][617] = 0; + _$jscoverage['core/utils.js'][618] = 0; + _$jscoverage['core/utils.js'][619] = 0; + _$jscoverage['core/utils.js'][620] = 0; + _$jscoverage['core/utils.js'][622] = 0; + _$jscoverage['core/utils.js'][623] = 0; + _$jscoverage['core/utils.js'][624] = 0; + _$jscoverage['core/utils.js'][625] = 0; + _$jscoverage['core/utils.js'][626] = 0; + _$jscoverage['core/utils.js'][627] = 0; + _$jscoverage['core/utils.js'][628] = 0; + _$jscoverage['core/utils.js'][631] = 0; + _$jscoverage['core/utils.js'][634] = 0; + _$jscoverage['core/utils.js'][635] = 0; + _$jscoverage['core/utils.js'][637] = 0; + _$jscoverage['core/utils.js'][672] = 0; + _$jscoverage['core/utils.js'][673] = 0; + _$jscoverage['core/utils.js'][674] = 0; + _$jscoverage['core/utils.js'][675] = 0; + _$jscoverage['core/utils.js'][687] = 0; + _$jscoverage['core/utils.js'][688] = 0; + _$jscoverage['core/utils.js'][689] = 0; + _$jscoverage['core/utils.js'][690] = 0; + _$jscoverage['core/utils.js'][691] = 0; + _$jscoverage['core/utils.js'][692] = 0; + _$jscoverage['core/utils.js'][693] = 0; + _$jscoverage['core/utils.js'][694] = 0; + _$jscoverage['core/utils.js'][696] = 0; + _$jscoverage['core/utils.js'][698] = 0; + _$jscoverage['core/utils.js'][708] = 0; + _$jscoverage['core/utils.js'][709] = 0; + _$jscoverage['core/utils.js'][710] = 0; + _$jscoverage['core/utils.js'][711] = 0; + _$jscoverage['core/utils.js'][713] = 0; + _$jscoverage['core/utils.js'][714] = 0; + _$jscoverage['core/utils.js'][715] = 0; + _$jscoverage['core/utils.js'][717] = 0; + _$jscoverage['core/utils.js'][718] = 0; + _$jscoverage['core/utils.js'][719] = 0; + _$jscoverage['core/utils.js'][721] = 0; + _$jscoverage['core/utils.js'][724] = 0; + _$jscoverage['core/utils.js'][727] = 0; + _$jscoverage['core/utils.js'][728] = 0; + _$jscoverage['core/utils.js'][729] = 0; + _$jscoverage['core/utils.js'][731] = 0; + _$jscoverage['core/utils.js'][732] = 0; + _$jscoverage['core/utils.js'][733] = 0; + _$jscoverage['core/utils.js'][734] = 0; + _$jscoverage['core/utils.js'][737] = 0; + _$jscoverage['core/utils.js'][742] = 0; + _$jscoverage['core/utils.js'][745] = 0; + _$jscoverage['core/utils.js'][746] = 0; + _$jscoverage['core/utils.js'][748] = 0; + _$jscoverage['core/utils.js'][759] = 0; + _$jscoverage['core/utils.js'][760] = 0; + _$jscoverage['core/utils.js'][761] = 0; + _$jscoverage['core/utils.js'][762] = 0; + _$jscoverage['core/utils.js'][763] = 0; + _$jscoverage['core/utils.js'][764] = 0; + _$jscoverage['core/utils.js'][765] = 0; + _$jscoverage['core/utils.js'][766] = 0; + _$jscoverage['core/utils.js'][768] = 0; + _$jscoverage['core/utils.js'][772] = 0; + _$jscoverage['core/utils.js'][792] = 0; + _$jscoverage['core/utils.js'][793] = 0; + _$jscoverage['core/utils.js'][795] = 0; + _$jscoverage['core/utils.js'][796] = 0; + _$jscoverage['core/utils.js'][797] = 0; + _$jscoverage['core/utils.js'][798] = 0; + _$jscoverage['core/utils.js'][800] = 0; + _$jscoverage['core/utils.js'][802] = 0; + _$jscoverage['core/utils.js'][803] = 0; + _$jscoverage['core/utils.js'][805] = 0; + _$jscoverage['core/utils.js'][807] = 0; + _$jscoverage['core/utils.js'][828] = 0; + _$jscoverage['core/utils.js'][830] = 0; + _$jscoverage['core/utils.js'][832] = 0; + _$jscoverage['core/utils.js'][833] = 0; + _$jscoverage['core/utils.js'][837] = 0; + _$jscoverage['core/utils.js'][838] = 0; + _$jscoverage['core/utils.js'][839] = 0; + _$jscoverage['core/utils.js'][840] = 0; + _$jscoverage['core/utils.js'][841] = 0; + _$jscoverage['core/utils.js'][842] = 0; + _$jscoverage['core/utils.js'][844] = 0; + _$jscoverage['core/utils.js'][845] = 0; + _$jscoverage['core/utils.js'][846] = 0; + _$jscoverage['core/utils.js'][847] = 0; + _$jscoverage['core/utils.js'][848] = 0; + _$jscoverage['core/utils.js'][849] = 0; + _$jscoverage['core/utils.js'][851] = 0; + _$jscoverage['core/utils.js'][852] = 0; + _$jscoverage['core/utils.js'][854] = 0; + _$jscoverage['core/utils.js'][856] = 0; + _$jscoverage['core/utils.js'][857] = 0; + _$jscoverage['core/utils.js'][860] = 0; + _$jscoverage['core/utils.js'][861] = 0; + _$jscoverage['core/utils.js'][862] = 0; + _$jscoverage['core/utils.js'][864] = 0; + _$jscoverage['core/utils.js'][865] = 0; + _$jscoverage['core/utils.js'][883] = 0; + _$jscoverage['core/utils.js'][884] = 0; + _$jscoverage['core/utils.js'][885] = 0; + _$jscoverage['core/utils.js'][886] = 0; + _$jscoverage['core/utils.js'][888] = 0; + _$jscoverage['core/utils.js'][890] = 0; + _$jscoverage['core/utils.js'][891] = 0; + _$jscoverage['core/utils.js'][892] = 0; + _$jscoverage['core/utils.js'][893] = 0; + _$jscoverage['core/utils.js'][895] = 0; + _$jscoverage['core/utils.js'][896] = 0; + _$jscoverage['core/utils.js'][898] = 0; + _$jscoverage['core/utils.js'][900] = 0; + _$jscoverage['core/utils.js'][901] = 0; + _$jscoverage['core/utils.js'][903] = 0; + _$jscoverage['core/utils.js'][905] = 0; + _$jscoverage['core/utils.js'][906] = 0; + _$jscoverage['core/utils.js'][907] = 0; + _$jscoverage['core/utils.js'][908] = 0; + _$jscoverage['core/utils.js'][909] = 0; + _$jscoverage['core/utils.js'][911] = 0; + _$jscoverage['core/utils.js'][912] = 0; + _$jscoverage['core/utils.js'][913] = 0; + _$jscoverage['core/utils.js'][915] = 0; + _$jscoverage['core/utils.js'][916] = 0; + _$jscoverage['core/utils.js'][918] = 0; + _$jscoverage['core/utils.js'][919] = 0; + _$jscoverage['core/utils.js'][921] = 0; + _$jscoverage['core/utils.js'][925] = 0; + _$jscoverage['core/utils.js'][926] = 0; + _$jscoverage['core/utils.js'][927] = 0; + _$jscoverage['core/utils.js'][928] = 0; + _$jscoverage['core/utils.js'][929] = 0; + _$jscoverage['core/utils.js'][930] = 0; + _$jscoverage['core/utils.js'][931] = 0; + _$jscoverage['core/utils.js'][935] = 0; + _$jscoverage['core/utils.js'][980] = 0; + _$jscoverage['core/utils.js'][981] = 0; + _$jscoverage['core/utils.js'][982] = 0; +} +_$jscoverage['core/utils.js'].source = ["/**"," * 工具函数包"," * @file"," * @module UE.utils"," * @since 1.2.6.1"," */","","/**"," * UEditor封装使用的静态工具函数"," * @module UE.utils"," * @unfile"," */","","var utils = UE.utils ={",""," /**"," * 用给定的迭代器遍历对象"," * @method each"," * @param { Object } obj 需要遍历的对象"," * @param { Function } iterator 迭代器, 该方法接受两个参数, 第一个参数是当前所处理的value, 第二个参数是当前遍历对象的key"," * @example"," * ```javascript"," * var demoObj = {"," * key1: 1,"," * key2: 2"," * };"," *"," * //output: key1: 1, key2: 2"," * UE.utils.each( demoObj, funciton ( value, key ) {"," *"," * console.log( key + \":\" + value );"," *"," * } );"," * ```"," */",""," /**"," * 用给定的迭代器遍历数组或类数组对象"," * @method each"," * @param { Array } array 需要遍历的数组或者类数组"," * @param { Function } iterator 迭代器, 该方法接受两个参数, 第一个参数是当前所处理的value, 第二个参数是当前遍历对象的key"," * @example"," * ```javascript"," * var divs = document.getElmentByTagNames( \"div\" );"," *"," * //output: 0: DIV, 1: DIV ..."," * UE.utils.each( divs, funciton ( value, key ) {"," *"," * console.log( key + \":\" + value.tagName );"," *"," * } );"," * ```"," */"," each :function(obj, iterator, context){"," if(obj ==null)return;"," if(obj.length ===+obj.length){"," for(var i =0, l = obj.length; i < l; i++){"," if(iterator.call(context, obj[i], i, obj)===false)"," returnfalse;"," }"," }else{"," for(var key in obj){"," if(obj.hasOwnProperty(key)){"," if(iterator.call(context, obj[key], key, obj)===false)"," returnfalse;"," }"," }"," }"," },",""," /**"," * 以给定对象作为原型创建一个新对象"," * @method makeInstance"," * @param { Object } protoObject 该对象将作为新创建对象的原型"," * @return { Object } 新的对象, 该对象的原型是给定的protoObject对象"," * @example"," * ```javascript"," *"," * var protoObject = { sayHello: function () { console.log('Hello UEditor!'); } };"," *"," * var newObject = UE.utils.makeInstance( protoObject );"," * //output: Hello UEditor!"," * newObject.sayHello();"," * ```"," */"," makeInstance:function(obj){"," var noop =new Function();"," noop.prototype = obj;"," obj =new noop;"," noop.prototype =null;"," return obj;"," },",""," /**"," * 将source对象中的属性扩展到target对象上"," * @method extend"," * @remind 该方法将强制把source对象上的属性复制到target对象上"," * @see UE.utils.extend(Object,Object,Boolean)"," * @param { Object } target 目标对象, 新的属性将附加到该对象上"," * @param { Object } source 源对象, 该对象的属性会被附加到target对象上"," * @return { Object } 返回target对象"," * @example"," * ```javascript"," *"," * var target = { name: 'target', sex: 1 },"," * source = { name: 'source', age: 17 };"," *"," * UE.utils.extend( target, source );"," *"," * //output: { name: 'source', sex: 1, age: 17 }"," * console.log( target );"," *"," * ```"," */",""," /**"," * 将source对象中的属性扩展到target对象上, 根据指定的isKeepTarget值决定是否保留目标对象中与"," * 源对象属性名相同的属性值。"," * @method extend"," * @param { Object } target 目标对象, 新的属性将附加到该对象上"," * @param { Object } source 源对象, 该对象的属性会被附加到target对象上"," * @param { Boolean } isKeepTarget 是否保留目标对象中与源对象中属性名相同的属性"," * @return { Object } 返回target对象"," * @example"," * ```javascript"," *"," * var target = { name: 'target', sex: 1 },"," * source = { name: 'source', age: 17 };"," *"," * UE.utils.extend( target, source, true );"," *"," * //output: { name: 'target', sex: 1, age: 17 }"," * console.log( target );"," *"," * ```"," */"," extend:function(t, s, b){"," if(s){"," for(var k in s){"," if(!b ||!t.hasOwnProperty(k)){"," t[k]= s[k];"," }"," }"," }"," return t;"," },",""," /**"," * 将给定的多个对象的属性复制到目标对象target上"," * @method extend2"," * @remind 该方法将强制把源对象上的属性复制到target对象上"," * @remind 该方法支持两个及以上的参数, 从第二个参数开始, 其属性都会被复制到第一个参数上。 如果遇到同名的属性,"," * 将会覆盖掉之前的值。"," * @param { Object } target 目标对象, 新的属性将附加到该对象上"," * @param { Object... } source 源对象, 支持多个对象, 该对象的属性会被附加到target对象上"," * @return { Object } 返回target对象"," * @example"," * ```javascript"," *"," * var target = {},"," * source1 = { name: 'source', age: 17 },"," * source2 = { title: 'dev' };"," *"," * UE.utils.extend2( target, source1, source2 );"," *"," * //output: { name: 'source', age: 17, title: 'dev' }"," * console.log( target );"," *"," * ```"," */"," extend2:function(t){"," var a = arguments;"," for(var i =1; i < a.length; i++){"," var x = a[i];"," for(var k in x){"," if(!t.hasOwnProperty(k)){"," t[k]= x[k];"," }"," }"," }"," return t;"," },",""," /**"," * 模拟继承机制, 使得subClass继承自superClass"," * @method inherits"," * @param { Object } subClass 子类对象"," * @param { Object } superClass 超类对象"," * @warning 该方法只能让subClass继承超类的原型, subClass对象自身的属性和方法不会被继承"," * @return { Object } 继承superClass后的子类对象"," * @example"," * ```javascript"," * function SuperClass(){"," * this.name = \"小李\";"," * }"," *"," * SuperClass.prototype = {"," * hello:function(str){"," * console.log(this.name + str);"," * }"," * }"," *"," * function SubClass(){"," * this.name = \"小张\";"," * }"," *"," * UE.utils.inherits(SubClass,SuperClass);"," *"," * var sub = new SubClass();"," * //output: '小张早上好!"," * sub.hello(\"早上好!\");"," * ```"," */"," inherits:function(subClass, superClass){"," var oldP = subClass.prototype,"," newP = utils.makeInstance(superClass.prototype);"," utils.extend(newP, oldP,true);"," subClass.prototype = newP;"," return(newP.constructor = subClass);"," },",""," /**"," * 用指定的context对象作为函数fn的上下文"," * @method bind"," * @param { Function } fn 需要绑定上下文的函数对象"," * @param { Object } content 函数fn新的上下文对象"," * @return { Function } 一个新的函数, 该函数作为原始函数fn的代理, 将完成fn的上下文调换工作。"," * @example"," * ```javascript"," *"," * var name = 'window',"," * newTest = null;"," *"," * function test () {"," * console.log( this.name );"," * }"," *"," * newTest = UE.utils.bind( test, { name: 'object' } );"," *"," * //output: object"," * newTest();"," *"," * //output: window"," * test();"," *"," * ```"," */"," bind:function(fn, context){"," returnfunction(){"," return fn.apply(context, arguments);"," };"," },",""," /**"," * 创建延迟指定时间后执行的函数fn"," * @method defer"," * @param { Function } fn 需要延迟执行的函数对象"," * @param { int } delay 延迟的时间, 单位是毫秒"," * @warning 该方法的时间控制是不精确的,仅仅只能保证函数的执行是在给定的时间之后,"," * 而不能保证刚好到达延迟时间时执行。"," * @return { Function } 目标函数fn的代理函数, 只有执行该函数才能起到延时效果"," * @example"," * ```javascript"," * var start = 0;"," *"," * function test(){"," * console.log( new Date() - start );"," * }"," *"," * var testDefer = UE.utils.defer( test, 1000 );"," * //"," * start = new Date();"," * //output: (大约在1000毫秒之后输出) 1000"," * testDefer();"," * ```"," */",""," /**"," * 创建延迟指定时间后执行的函数fn, 如果在延迟时间内再次执行该方法, 将会根据指定的exclusion的值,"," * 决定是否取消前一次函数的执行, 如果exclusion的值为true, 则取消执行,反之,将继续执行前一个方法。"," * @method defer"," * @param { Function } fn 需要延迟执行的函数对象"," * @param { int } delay 延迟的时间, 单位是毫秒"," * @param { Boolean } exclusion 如果在延迟时间内再次执行该函数,该值将决定是否取消执行前一次函数的执行,"," * 值为true表示取消执行, 反之则将在执行前一次函数之后才执行本次函数调用。"," * @warning 该方法的时间控制是不精确的,仅仅只能保证函数的执行是在给定的时间之后,"," * 而不能保证刚好到达延迟时间时执行。"," * @return { Function } 目标函数fn的代理函数, 只有执行该函数才能起到延时效果"," * @example"," * ```javascript"," *"," * function test(){"," * console.log(1);"," * }"," *"," * var testDefer = UE.utils.defer( test, 1000, true );"," *"," * //output: (两次调用仅有一次输出) 1"," * testDefer();"," * testDefer();"," * ```"," */"," defer:function(fn, delay, exclusion){"," var timerID;"," returnfunction(){"," if(exclusion){"," clearTimeout(timerID);"," }"," timerID = setTimeout(fn, delay);"," };"," },",""," /**"," * 获取元素item在数组array中首次出现的位置, 如果未找到item, 则返回-1"," * @method indexOf"," * @remind 该方法的匹配过程使用的是恒等“===”"," * @param { Array } array 需要查找的数组对象"," * @param { * } item 需要在目标数组中查找的值"," * @return { int } 返回item在目标数组array中首次出现的位置, 如果在数组中未找到item, 则返回-1"," * @example"," * ```javascript"," * var item = 1,"," * arr = [ 3, 4, 6, 8, 1, 1, 2 ];"," *"," * //output: 4"," * console.log( UE.utils.indexOf( arr, item ) );"," * ```"," */",""," /**"," * 获取元素item数组array中首次出现的位置, 如果未找到item, 则返回-1。通过start的值可以指定搜索的起始位置。"," * @method indexOf"," * @remind 该方法的匹配过程使用的是恒等“===”"," * @param { Array } array 需要查找的数组对象"," * @param { * } item 需要在目标数组中查找的值"," * @param { int } start 搜索的起始位置"," * @return { int } 返回item在目标数组array中的start位置之后首次出现的位置, 如果在数组中未找到item, 则返回-1"," * @example"," * ```javascript"," * var item = 1,"," * arr = [ 3, 4, 6, 8, 1, 2, 8, 3, 2, 1, 1, 4 ];"," *"," * //output: 9"," * console.log( UE.utils.indexOf( arr, item, 5 ) );"," * ```"," */"," indexOf:function(array, item, start){"," var index =-1;"," start =this.isNumber(start)? start :0;"," this.each(array,function(v, i){"," if(i >= start && v === item){"," index = i;"," returnfalse;"," }"," });"," return index;"," },",""," /**"," * 移除数组array中所有的元素item"," * @method removeItem"," * @param { Array } array 要移除元素的目标数组"," * @param { * } item 将要被移除的元素"," * @remind 该方法的匹配过程使用的是恒等“===”"," * @example"," * ```javascript"," * var arr = [ 4, 5, 7, 1, 3, 4, 6 ];"," *"," * UE.utils.removeItem( arr, 4 );"," * //output: [ 5, 7, 1, 3, 6 ]"," * console.log( arr );"," *"," * ```"," */"," removeItem:function(array, item){"," for(var i =0, l = array.length; i < l; i++){"," if(array[i]=== item){"," array.splice(i,1);"," i--;"," }"," }"," },",""," /**"," * 删除字符串str的首尾空格"," * @method trim"," * @param { String } str 需要删除首尾空格的字符串"," * @return { String } 删除了首尾的空格后的字符串"," * @example"," * ```javascript"," *"," * var str = \" UEdtior \";"," *"," * //output: 9"," * console.log( str.length );"," *"," * //output: 7"," * console.log( UE.utils.trim( \" UEdtior \" ).length );"," *"," * //output: 9"," * console.log( str.length );"," *"," * ```"," */"," trim:function(str){"," return str.replace(/(^[ \\t\\n\\r]+)|([ \\t\\n\\r]+$)/g,'');"," },",""," /**"," * 将字符串str以','分隔成数组后,将该数组转换成哈希对象, 其生成的hash对象的key为数组中的元素, value为1"," * @method listToMap"," * @warning 该方法在生成的hash对象中,会为每一个key同时生成一个另一个全大写的key。"," * @param { String } str 该字符串将被以','分割为数组, 然后进行转化"," * @return { Object } 转化之后的hash对象"," * @example"," * ```javascript"," *"," * //output: Object {UEdtior: 1, UEDTIOR: 1, Hello: 1, HELLO: 1}"," * console.log( UE.utils.listToMap( 'UEdtior,Hello' ) );"," *"," * ```"," */",""," /**"," * 将字符串数组转换成哈希对象, 其生成的hash对象的key为数组中的元素, value为1"," * @method listToMap"," * @warning 该方法在生成的hash对象中,会为每一个key同时生成一个另一个全大写的key。"," * @param { Array } arr 字符串数组"," * @return { Object } 转化之后的hash对象"," * @example"," * ```javascript"," *"," * //output: Object {UEdtior: 1, UEDTIOR: 1, Hello: 1, HELLO: 1}"," * console.log( UE.utils.listToMap( [ 'UEdtior', 'Hello' ] ) );"," *"," * ```"," */"," listToMap:function(list){"," if(!list)return{};"," list = utils.isArray(list)? list : list.split(',');"," for(var i =0, ci, obj ={}; ci = list[i++];){"," obj[ci.toUpperCase()]= obj[ci]=1;"," }"," return obj;"," },",""," /**"," * 将str中的html符号转义,将转义“',&,<,\",>”五个字符"," * @method unhtml"," * @param { String } str 需要转义的字符串"," * @return { String } 转义后的字符串"," * @example"," * ```javascript"," * var html = '<body>&</body>';"," *"," * //output: &lt;body&gt;&amp;&lt;/body&gt;"," * console.log( UE.utils.unhtml( html ) );"," *"," * ```"," */"," unhtml:function(str, reg){"," return str ? str.replace(reg ||/[&<\">'](?:(amp|lt|quot|gt|#39|nbsp);)?/g,function(a, b){"," if(b){"," return a;"," }else{"," return{"," '<':'&lt;',"," '&':'&amp;',"," '\"':'&quot;',"," '>':'&gt;',"," \"'\":'&#39;'"," }[a]"," }",""," }):'';"," },",""," /**"," * 将str中的转义字符还原成html字符"," * @see UE.utils.unhtml(String);"," * @method html"," * @param { String } str 需要逆转义的字符串"," * @return { String } 逆转义后的字符串"," * @example"," * ```javascript"," *"," * var str = '&lt;body&gt;&amp;&lt;/body&gt;';"," *"," * //output: <body>&</body>"," * console.log( UE.utils.html( str ) );"," *"," * ```"," */"," html:function(str){"," return str ? str.replace(/&((g|l|quo)t|amp|#39);/g,function(m){"," return{"," '&lt;':'<',"," '&amp;':'&',"," '&quot;':'\"',"," '&gt;':'>',"," '&#39;':\"'\""," }[m]"," }):'';"," },",""," /**"," * 将css样式转换为驼峰的形式"," * @method cssStyleToDomStyle"," * @param { String } cssName 需要转换的css样式名"," * @return { String } 转换成驼峰形式后的css样式名"," * @example"," * ```javascript"," *"," * var str = 'border-top';"," *"," * //output: borderTop"," * console.log( UE.utils.cssStyleToDomStyle( str ) );"," *"," * ```"," */"," cssStyleToDomStyle:function(){"," var test = document.createElement('div').style,"," cache ={"," 'float':test.cssFloat != undefined ?'cssFloat': test.styleFloat != undefined ?'styleFloat':'float'"," };",""," returnfunction(cssName){"," return cache[cssName]||(cache[cssName]= cssName.toLowerCase().replace(/-./g,function(match){"," return match.charAt(1).toUpperCase();"," }));"," };"," }(),",""," /**"," * 动态加载文件到doc中"," * @method loadFile"," * @param { DomDocument } document 需要加载资源文件的文档对象"," * @param { KeyValueMap } options 加载资源文件的属性集合, 取值请参考代码示例"," * @example"," * ```javascript"," *"," * UE.utils.loadFile( document, {"," * src:\"test.js\","," * tag:\"script\","," * type:\"text/javascript\","," * defer:\"defer\""," * } );"," *"," * ```"," */",""," /**"," * 动态加载文件到doc中,加载成功后执行的回调函数fn"," * @method loadFile"," * @param { DomDocument } document 需要加载资源文件的文档对象"," * @param { KeyValueMap } options 加载资源文件的属性集合, 该集合支持的值是script标签和style标签支持的所有属性。"," * @param { Function } fn 资源文件加载成功之后执行的回调"," * @warning 对于在同一个文档中多次加载同一URL的文件, 该方法会在第一次加载之后缓存该请求,"," * 在此之后的所有同一URL的请求, 将会直接出发回调。"," * @example"," * ```javascript"," *"," * UE.utils.loadFile( document, {"," * src:\"test.js\","," * tag:\"script\","," * type:\"text/javascript\","," * defer:\"defer\""," * }, function () {"," * console.log('加载成功');"," * } );"," *"," * ```"," */"," loadFile:function(){"," var tmpList =[];",""," function getItem(doc, obj){"," try{"," for(var i =0, ci; ci = tmpList[i++];){"," if(ci.doc === doc && ci.url ==(obj.src || obj.href)){"," return ci;"," }"," }"," }catch(e){"," returnnull;"," }",""," }",""," returnfunction(doc, obj, fn){"," var item = getItem(doc, obj);"," if(item){"," if(item.ready){"," fn && fn();"," }else{"," item.funs.push(fn)"," }"," return;"," }"," tmpList.push({"," doc:doc,"," url:obj.src || obj.href,"," funs:[fn]"," });"," if(!doc.body){"," var html =[];"," for(var p in obj){"," if(p =='tag')continue;"," html.push(p +'=\"'+ obj[p]+'\"')"," }"," doc.write('<'+ obj.tag +' '+ html.join(' ')+' ></'+ obj.tag +'>');"," return;"," }"," if(obj.id && doc.getElementById(obj.id)){"," return;"," }"," var element = doc.createElement(obj.tag);"," delete obj.tag;"," for(var p in obj){"," element.setAttribute(p, obj[p]);"," }"," element.onload = element.onreadystatechange =function(){"," if(!this.readyState ||/loaded|complete/.test(this.readyState)){"," item = getItem(doc, obj);"," if(item.funs.length >0){"," item.ready =1;"," for(var fi; fi = item.funs.pop();){"," fi();"," }"," }"," element.onload = element.onreadystatechange =null;"," }"," };"," element.onerror =function(){"," throw Error('The load '+(obj.href || obj.src)+' fails,check the url settings of file ueditor.config.js ')"," };"," doc.getElementsByTagName(\"head\")[0].appendChild(element);"," }"," }(),",""," /**"," * 判断obj对象是否为空"," * @method isEmptyObject"," * @param { * } obj 需要判断的对象"," * @remind 如果判断的对象是NULL, 将直接返回true, 如果是数组且为空, 返回true, 如果是字符串, 且字符串为空,"," * 返回true, 如果是普通对象, 且该对象没有任何实例属性, 返回true"," * @return { Boolean } 对象是否为空"," * @example"," * ```javascript"," *"," * //output: true"," * console.log( UE.utils.isEmptyObject( {} ) );"," *"," * //output: true"," * console.log( UE.utils.isEmptyObject( [] ) );"," *"," * //output: true"," * console.log( UE.utils.isEmptyObject( \"\" ) );"," *"," * //output: false"," * console.log( UE.utils.isEmptyObject( { key: 1 } ) );"," *"," * //output: false"," * console.log( UE.utils.isEmptyObject( [1] ) );"," *"," * //output: false"," * console.log( UE.utils.isEmptyObject( \"1\" ) );"," *"," * ```"," */"," isEmptyObject:function(obj){"," if(obj ==null)returntrue;"," if(this.isArray(obj)||this.isString(obj))return obj.length ===0;"," for(var key in obj)if(obj.hasOwnProperty(key))returnfalse;"," returntrue;"," },",""," /*"," * 把rgb格式的颜色值转换成16进制格式"," * @method fixColor"," * @param { String } rgb格式的颜色值"," * @param { String }"," * @example"," * rgb(255,255,255) => \"#ffffff\""," */"," fixColor:function(name, value){"," if(/color/i.test(name)&&/rgba?/.test(value)){"," var array = value.split(\",\");"," if(array.length >3)"," return\"\";"," value =\"#\";"," for(var i =0, color; color = array[i++];){"," color = parseInt(color.replace(/[^\\d]/gi,''),10).toString(16);"," value += color.length ==1?\"0\"+ color : color;"," }"," value = value.toUpperCase();"," }"," return value;"," },",""," /*"," * 只针对border,padding,margin做了处理,因为性能问题"," * @public"," * @function"," * @param {String} val style字符串"," */"," optCss:function(val){"," var padding, margin, border;"," val = val.replace(/(padding|margin|border)\\-([^:]+):([^;]+);?/gi,function(str, key, name, val){"," if(val.split(' ').length ==1){"," switch(key){"," case'padding':"," !padding &&(padding ={});"," padding[name]= val;"," return'';"," case'margin':"," !margin &&(margin ={});"," margin[name]= val;"," return'';"," case'border':"," return val =='initial'?'': str;"," }"," }"," return str;"," });",""," function opt(obj, name){"," if(!obj){"," return'';"," }"," var t = obj.top , b = obj.bottom, l = obj.left, r = obj.right, val ='';"," if(!t ||!l ||!b ||!r){"," for(var p in obj){"," val +=';'+ name +'-'+ p +':'+ obj[p]+';';"," }"," }else{"," val +=';'+ name +':'+"," (t == b && b == l && l == r ? t :"," t == b && l == r ?(t +' '+ l):"," l == r ?(t +' '+ l +' '+ b):(t +' '+ r +' '+ b +' '+ l))+';'"," }"," return val;"," }",""," val += opt(padding,'padding')+ opt(margin,'margin');"," return val.replace(/^[ \\n\\r\\t;]*|[ \\n\\r\\t]*$/,'').replace(/;([ \\n\\r\\t]+)|\\1;/g,';')"," .replace(/(&((l|g)t|quot|#39))?;{2,}/g,function(a, b){"," return b ? b +\";;\":';'"," });"," },",""," /*"," * 深度克隆对象,从source到target"," * @method clone"," * @grammar UE.utils.clone(source) => anthorObj 新的对象是完整的source的副本"," * @grammar UE.utils.clone(source,target) => target包含了source的所有内容,重名会覆盖"," */"," clone:function(source, target){"," var tmp;"," target = target ||{};"," for(var i in source){"," if(source.hasOwnProperty(i)){"," tmp = source[i];"," if(typeof tmp =='object'){"," target[i]= utils.isArray(tmp)?[]:{};"," utils.clone(source[i], target[i])"," }else{"," target[i]= tmp;"," }"," }"," }"," return target;"," },",""," /**"," * 把cm/pt为单位的值转换为px为单位的值"," * @method transUnitToPx"," * @param { String } 待转换的带单位的字符串"," * @return { String } 转换为px为计量单位的值的字符串"," * @example"," * ```javascript"," *"," * //output: 500px"," * console.log( UE.utils.transUnitToPx( '20cm' ) );"," *"," * //output: 27px"," * console.log( UE.utils.transUnitToPx( '20pt' ) );"," *"," * ```"," */"," transUnitToPx:function(val){"," if(!/(pt|cm)/.test(val)){"," return val"," }"," var unit;"," val.replace(/([\\d.]+)(\\w+)/,function(str, v, u){"," val = v;"," unit = u;"," });"," switch(unit){"," case'cm':"," val = parseFloat(val)*25;"," break;"," case'pt':"," val = Math.round(parseFloat(val)*96/72);"," }"," return val +(val ?'px':'');"," },",""," /**"," * 在dom树ready之后执行给定的回调函数"," * @method domReady"," * @remind 如果在执行该方法的时候, dom树已经ready, 那么回调函数将立刻执行"," * @param { Function } fn dom树ready之后的回调函数"," * @example"," * ```javascript"," *"," * UE.utils.domReady( function () {"," *"," * console.log('123');"," *"," * } );"," *"," * ```"," */"," domReady:function(){",""," var fnArr =[];",""," function doReady(doc){"," //确保onready只执行一次"," doc.isReady =true;"," for(var ci; ci = fnArr.pop(); ci()){"," }"," }",""," returnfunction(onready, win){"," win = win || window;"," var doc = win.document;"," onready && fnArr.push(onready);"," if(doc.readyState ===\"complete\"){"," doReady(doc);"," }else{"," doc.isReady && doReady(doc);"," if(browser.ie){"," (function(){"," if(doc.isReady)return;"," try{"," doc.documentElement.doScroll(\"left\");"," }catch(error){"," setTimeout(arguments.callee,0);"," return;"," }"," doReady(doc);"," })();"," win.attachEvent('onload',function(){"," doReady(doc)"," });"," }else{"," doc.addEventListener(\"DOMContentLoaded\",function(){"," doc.removeEventListener(\"DOMContentLoaded\", arguments.callee,false);"," doReady(doc);"," },false);"," win.addEventListener('load',function(){"," doReady(doc)"," },false);"," }"," }",""," }"," }(),",""," /*"," * 动态添加css样式"," * @method cssRule"," * @param { String } 节点名称"," * @grammar UE.utils.cssRule('添加的样式的节点名称',['样式','放到哪个document上'])"," * @grammar UE.utils.cssRule('body','body{background:#ccc}') => null //给body添加背景颜色"," * @grammar UE.utils.cssRule('body') =>样式的字符串 //取得key值为body的样式的内容,如果没有找到key值先关的样式将返回空,例如刚才那个背景颜色,将返回 body{background:#ccc}"," * @grammar UE.utils.cssRule('body','') =>null //清空给定的key值的背景颜色"," */"," cssRule:browser.ie ?function(key, style, doc){"," var indexList, index;"," doc = doc || document;"," if(doc.indexList){"," indexList = doc.indexList;"," }else{"," indexList = doc.indexList ={};"," }"," var sheetStyle;"," if(!indexList[key]){"," if(style === undefined){"," return''"," }"," sheetStyle = doc.createStyleSheet('', index = doc.styleSheets.length);"," indexList[key]= index;"," }else{"," sheetStyle = doc.styleSheets[indexList[key]];"," }"," if(style === undefined){"," return sheetStyle.cssText"," }"," sheetStyle.cssText = style ||''"," }:function(key, style, doc){"," doc = doc || document;"," var head = doc.getElementsByTagName('head')[0], node;"," if(!(node = doc.getElementById(key))){"," if(style === undefined){"," return''"," }"," node = doc.createElement('style');"," node.id = key;"," head.appendChild(node)"," }"," if(style === undefined){"," return node.innerHTML"," }"," if(style !==''){"," node.innerHTML = style;"," }else{"," head.removeChild(node)"," }"," },"," sort:function(array,compareFn){"," compareFn = compareFn ||function(item1, item2){return item1.localeCompare(item2);};"," for(var i=0,len = array.length; i<len; i++){"," for(var j = i,length = array.length; j<length; j++){"," if(compareFn(array[i], array[j])>0){"," var t = array[i];"," array[i]= array[j];"," array[j]= t;"," }"," }"," }"," return array;"," }","","};","/**"," * 判断给定的对象是否是字符串"," * @method isString"," * @param { * } object 需要判断的对象"," * @return { Boolean } 给定的对象是否是字符串"," */","","/**"," * 判断给定的对象是否是数组"," * @method isArray"," * @param { * } object 需要判断的对象"," * @return { Boolean } 给定的对象是否是数组"," */","","/**"," * 判断给定的对象是否是一个Function"," * @method isFunction"," * @param { * } object 需要判断的对象"," * @return { Boolean } 给定的对象是否是Function"," */","","/**"," * 判断给定的对象是否是Number"," * @method isNumber"," * @param { * } object 需要判断的对象"," * @return { Boolean } 给定的对象是否是Number"," */","","/**"," * 判断给定的对象是否是一个正则表达式"," * @method isRegExp"," * @param { * } object 需要判断的对象"," * @return { Boolean } 给定的对象是否是正则表达式"," */","","/**"," * 判断给定的对象是否是一个普通对象"," * @method isObject"," * @param { * } object 需要判断的对象"," * @return { Boolean } 给定的对象是否是普通对象"," */","utils.each(['String','Function','Array','Number','RegExp','Object'],function(v){"," UE.utils['is'+ v]=function(obj){"," return Object.prototype.toString.apply(obj)=='[object '+ v +']';"," }","});"]; +_$jscoverage['core/utils.js'][14]++; +var utils = (UE.utils = {each: (function (obj, iterator, context) { + _$jscoverage['core/utils.js'][55]++; + if ((obj == null)) { + _$jscoverage['core/utils.js'][55]++; + return; + } + _$jscoverage['core/utils.js'][56]++; + if ((obj.length === (+ obj.length))) { + _$jscoverage['core/utils.js'][57]++; + for (var i = 0, l = obj.length; (i < l); (i++)) { + _$jscoverage['core/utils.js'][58]++; + if ((iterator.call(context, obj[i], i, obj) === false)) { + _$jscoverage['core/utils.js'][59]++; + return false; + } +} + } + else { + _$jscoverage['core/utils.js'][62]++; + for (var key in obj) { + _$jscoverage['core/utils.js'][63]++; + if (obj.hasOwnProperty(key)) { + _$jscoverage['core/utils.js'][64]++; + if ((iterator.call(context, obj[key], key, obj) === false)) { + _$jscoverage['core/utils.js'][65]++; + return false; + } + } +} + } +}), makeInstance: (function (obj) { + _$jscoverage['core/utils.js'][87]++; + var noop = new Function(); + _$jscoverage['core/utils.js'][88]++; + noop.prototype = obj; + _$jscoverage['core/utils.js'][89]++; + obj = new noop(); + _$jscoverage['core/utils.js'][90]++; + noop.prototype = null; + _$jscoverage['core/utils.js'][91]++; + return obj; +}), extend: (function (t, s, b) { + _$jscoverage['core/utils.js'][138]++; + if (s) { + _$jscoverage['core/utils.js'][139]++; + for (var k in s) { + _$jscoverage['core/utils.js'][140]++; + if (((! b) || (! t.hasOwnProperty(k)))) { + _$jscoverage['core/utils.js'][141]++; + t[k] = s[k]; + } +} + } + _$jscoverage['core/utils.js'][145]++; + return t; +}), extend2: (function (t) { + _$jscoverage['core/utils.js'][172]++; + var a = arguments; + _$jscoverage['core/utils.js'][173]++; + for (var i = 1; (i < a.length); (i++)) { + _$jscoverage['core/utils.js'][174]++; + var x = a[i]; + _$jscoverage['core/utils.js'][175]++; + for (var k in x) { + _$jscoverage['core/utils.js'][176]++; + if ((! t.hasOwnProperty(k))) { + _$jscoverage['core/utils.js'][177]++; + t[k] = x[k]; + } +} +} + _$jscoverage['core/utils.js'][181]++; + return t; +}), inherits: (function (subClass, superClass) { + _$jscoverage['core/utils.js'][215]++; + var oldP = subClass.prototype, newP = utils.makeInstance(superClass.prototype); + _$jscoverage['core/utils.js'][217]++; + utils.extend(newP, oldP, true); + _$jscoverage['core/utils.js'][218]++; + subClass.prototype = newP; + _$jscoverage['core/utils.js'][219]++; + return (newP.constructor = subClass); +}), bind: (function (fn, context) { + _$jscoverage['core/utils.js'][249]++; + return (function () { + _$jscoverage['core/utils.js'][250]++; + return fn.apply(context, arguments); +}); +}), defer: (function (fn, delay, exclusion) { + _$jscoverage['core/utils.js'][304]++; + var timerID; + _$jscoverage['core/utils.js'][305]++; + return (function () { + _$jscoverage['core/utils.js'][306]++; + if (exclusion) { + _$jscoverage['core/utils.js'][307]++; + clearTimeout(timerID); + } + _$jscoverage['core/utils.js'][309]++; + timerID = setTimeout(fn, delay); +}); +}), indexOf: (function (array, item, start) { + _$jscoverage['core/utils.js'][348]++; + var index = -1; + _$jscoverage['core/utils.js'][349]++; + start = (this.isNumber(start)? start: 0); + _$jscoverage['core/utils.js'][350]++; + this.each(array, (function (v, i) { + _$jscoverage['core/utils.js'][351]++; + if (((i >= start) && (v === item))) { + _$jscoverage['core/utils.js'][352]++; + index = i; + _$jscoverage['core/utils.js'][353]++; + return false; + } +})); + _$jscoverage['core/utils.js'][356]++; + return index; +}), removeItem: (function (array, item) { + _$jscoverage['core/utils.js'][376]++; + for (var i = 0, l = array.length; (i < l); (i++)) { + _$jscoverage['core/utils.js'][377]++; + if ((array[i] === item)) { + _$jscoverage['core/utils.js'][378]++; + array.splice(i, 1); + _$jscoverage['core/utils.js'][379]++; + (i--); + } +} +}), trim: (function (str) { + _$jscoverage['core/utils.js'][406]++; + return str.replace(/(^[ \t\n\r]+)|([ \t\n\r]+$)/g, ""); +}), listToMap: (function (list) { + _$jscoverage['core/utils.js'][439]++; + if ((! list)) { + _$jscoverage['core/utils.js'][439]++; + return ({}); + } + _$jscoverage['core/utils.js'][440]++; + list = (utils.isArray(list)? list: list.split(",")); + _$jscoverage['core/utils.js'][441]++; + for (var i = 0, ci, obj = {}; (ci = list[(i++)]);) { + _$jscoverage['core/utils.js'][442]++; + obj[ci.toUpperCase()] = (obj[ci] = 1); +} + _$jscoverage['core/utils.js'][444]++; + return obj; +}), unhtml: (function (str, reg) { + _$jscoverage['core/utils.js'][462]++; + return (str? str.replace((reg || /[&<">'](?:(amp|lt|quot|gt|#39|nbsp);)?/g), (function (a, b) { + _$jscoverage['core/utils.js'][463]++; + if (b) { + _$jscoverage['core/utils.js'][464]++; + return a; + } + else { + _$jscoverage['core/utils.js'][466]++; + return {"<": "<", "&": "&", "\"": """, ">": ">", "'": "'"}[a]; + } +})): ""); +}), html: (function (str) { + _$jscoverage['core/utils.js'][495]++; + return (str? str.replace(/&((g|l|quo)t|amp|#39);/g, (function (m) { + _$jscoverage['core/utils.js'][496]++; + return {"<": "<", "&": "&", """: "\"", ">": ">", "'": "'"}[m]; +})): ""); +}), cssStyleToDomStyle: (function () { + _$jscoverage['core/utils.js'][522]++; + var test = document.createElement("div").style, cache = {"float": ((test.cssFloat != undefined)? "cssFloat": ((test.styleFloat != undefined)? "styleFloat": "float"))}; + _$jscoverage['core/utils.js'][527]++; + return (function (cssName) { + _$jscoverage['core/utils.js'][528]++; + return (cache[cssName] || (cache[cssName] = cssName.toLowerCase().replace(/-./g, (function (match) { + _$jscoverage['core/utils.js'][529]++; + return match.charAt(1).toUpperCase(); +})))); +}); +})(), loadFile: (function () { + _$jscoverage['core/utils.js'][575]++; + var tmpList = []; + _$jscoverage['core/utils.js'][577]++; + function getItem(doc, obj) { + _$jscoverage['core/utils.js'][578]++; + try { + _$jscoverage['core/utils.js'][579]++; + for (var i = 0, ci; (ci = tmpList[(i++)]);) { + _$jscoverage['core/utils.js'][580]++; + if (((ci.doc === doc) && (ci.url == (obj.src || obj.href)))) { + _$jscoverage['core/utils.js'][581]++; + return ci; + } +} + } + catch (e) { + _$jscoverage['core/utils.js'][585]++; + return null; + } +} + _$jscoverage['core/utils.js'][590]++; + return (function (doc, obj, fn) { + _$jscoverage['core/utils.js'][591]++; + var item = getItem(doc, obj); + _$jscoverage['core/utils.js'][592]++; + if (item) { + _$jscoverage['core/utils.js'][593]++; + if (item.ready) { + _$jscoverage['core/utils.js'][594]++; + (fn && fn()); + } + else { + _$jscoverage['core/utils.js'][596]++; + item.funs.push(fn); + } + _$jscoverage['core/utils.js'][598]++; + return; + } + _$jscoverage['core/utils.js'][600]++; + tmpList.push({doc: doc, url: (obj.src || obj.href), funs: [fn]}); + _$jscoverage['core/utils.js'][605]++; + if ((! doc.body)) { + _$jscoverage['core/utils.js'][606]++; + var html = []; + _$jscoverage['core/utils.js'][607]++; + for (var p in obj) { + _$jscoverage['core/utils.js'][608]++; + if ((p == "tag")) { + _$jscoverage['core/utils.js'][608]++; + continue; + } + _$jscoverage['core/utils.js'][609]++; + html.push((p + "=\"" + obj[p] + "\"")); +} + _$jscoverage['core/utils.js'][611]++; + doc.write(("<" + obj.tag + " " + html.join(" ") + " >")); + _$jscoverage['core/utils.js'][612]++; + return; + } + _$jscoverage['core/utils.js'][614]++; + if ((obj.id && doc.getElementById(obj.id))) { + _$jscoverage['core/utils.js'][615]++; + return; + } + _$jscoverage['core/utils.js'][617]++; + var element = doc.createElement(obj.tag); + _$jscoverage['core/utils.js'][618]++; + (delete obj.tag); + _$jscoverage['core/utils.js'][619]++; + for (var p = p in obj) { + _$jscoverage['core/utils.js'][620]++; + element.setAttribute(p, obj[p]); +} + _$jscoverage['core/utils.js'][622]++; + element.onload = (element.onreadystatechange = (function () { + _$jscoverage['core/utils.js'][623]++; + if (((! this.readyState) || /loaded|complete/.test(this.readyState))) { + _$jscoverage['core/utils.js'][624]++; + item = getItem(doc, obj); + _$jscoverage['core/utils.js'][625]++; + if ((item.funs.length > 0)) { + _$jscoverage['core/utils.js'][626]++; + item.ready = 1; + _$jscoverage['core/utils.js'][627]++; + for (var fi; (fi = item.funs.pop());) { + _$jscoverage['core/utils.js'][628]++; + fi(); +} + } + _$jscoverage['core/utils.js'][631]++; + element.onload = (element.onreadystatechange = null); + } +})); + _$jscoverage['core/utils.js'][634]++; + element.onerror = (function () { + _$jscoverage['core/utils.js'][635]++; + throw Error(("The load " + (obj.href || obj.src) + " fails,check the url settings of file ueditor.config.js ")); +}); + _$jscoverage['core/utils.js'][637]++; + doc.getElementsByTagName("head")[0].appendChild(element); +}); +})(), isEmptyObject: (function (obj) { + _$jscoverage['core/utils.js'][672]++; + if ((obj == null)) { + _$jscoverage['core/utils.js'][672]++; + return true; + } + _$jscoverage['core/utils.js'][673]++; + if ((this.isArray(obj) || this.isString(obj))) { + _$jscoverage['core/utils.js'][673]++; + return (obj.length === 0); + } + _$jscoverage['core/utils.js'][674]++; + for (var key in obj) { + _$jscoverage['core/utils.js'][674]++; + if (obj.hasOwnProperty(key)) { + _$jscoverage['core/utils.js'][674]++; + return false; + } +} + _$jscoverage['core/utils.js'][675]++; + return true; +}), fixColor: (function (name, value) { + _$jscoverage['core/utils.js'][687]++; + if ((/color/i.test(name) && /rgba?/.test(value))) { + _$jscoverage['core/utils.js'][688]++; + var array = value.split(","); + _$jscoverage['core/utils.js'][689]++; + if ((array.length > 3)) { + _$jscoverage['core/utils.js'][690]++; + return ""; + } + _$jscoverage['core/utils.js'][691]++; + value = "#"; + _$jscoverage['core/utils.js'][692]++; + for (var i = 0, color; (color = array[(i++)]);) { + _$jscoverage['core/utils.js'][693]++; + color = parseInt(color.replace(/[^\d]/gi, ""), 10).toString(16); + _$jscoverage['core/utils.js'][694]++; + value += ((color.length == 1)? ("0" + color): color); +} + _$jscoverage['core/utils.js'][696]++; + value = value.toUpperCase(); + } + _$jscoverage['core/utils.js'][698]++; + return value; +}), optCss: (function (val) { + _$jscoverage['core/utils.js'][708]++; + var padding, margin, border; + _$jscoverage['core/utils.js'][709]++; + val = val.replace(/(padding|margin|border)\-([^:]+):([^;]+);?/gi, (function (str, key, name, val) { + _$jscoverage['core/utils.js'][710]++; + if ((val.split(" ").length == 1)) { + _$jscoverage['core/utils.js'][711]++; + switch (key) { + case "padding": + _$jscoverage['core/utils.js'][713]++; + ((! padding) && (padding = {})); + _$jscoverage['core/utils.js'][714]++; + padding[name] = val; + _$jscoverage['core/utils.js'][715]++; + return ""; + case "margin": + _$jscoverage['core/utils.js'][717]++; + ((! margin) && (margin = {})); + _$jscoverage['core/utils.js'][718]++; + margin[name] = val; + _$jscoverage['core/utils.js'][719]++; + return ""; + case "border": + _$jscoverage['core/utils.js'][721]++; + return ((val == "initial")? "": str); + } + } + _$jscoverage['core/utils.js'][724]++; + return str; +})); + _$jscoverage['core/utils.js'][727]++; + function opt(obj, name) { + _$jscoverage['core/utils.js'][728]++; + if ((! obj)) { + _$jscoverage['core/utils.js'][729]++; + return ""; + } + _$jscoverage['core/utils.js'][731]++; + var t = obj.top, b = obj.bottom, l = obj.left, r = obj.right, val = ""; + _$jscoverage['core/utils.js'][732]++; + if (((! t) || (! l) || (! b) || (! r))) { + _$jscoverage['core/utils.js'][733]++; + for (var p in obj) { + _$jscoverage['core/utils.js'][734]++; + val += (";" + name + "-" + p + ":" + obj[p] + ";"); +} + } + else { + _$jscoverage['core/utils.js'][737]++; + val += (";" + name + ":" + (((t == b) && (b == l) && (l == r))? t: (((t == b) && (l == r))? (t + " " + l): ((l == r)? (t + " " + l + " " + b): (t + " " + r + " " + b + " " + l)))) + ";"); + } + _$jscoverage['core/utils.js'][742]++; + return val; +} + _$jscoverage['core/utils.js'][745]++; + val += (opt(padding, "padding") + opt(margin, "margin")); + _$jscoverage['core/utils.js'][746]++; + return val.replace(/^[ \n\r\t;]*|[ \n\r\t]*$/, "").replace(/;([ \n\r\t]+)|\1;/g, ";").replace(/(&((l|g)t|quot|#39))?;{2,}/g, (function (a, b) { + _$jscoverage['core/utils.js'][748]++; + return (b? (b + ";;"): ";"); +})); +}), clone: (function (source, target) { + _$jscoverage['core/utils.js'][759]++; + var tmp; + _$jscoverage['core/utils.js'][760]++; + target = (target || {}); + _$jscoverage['core/utils.js'][761]++; + for (var i in source) { + _$jscoverage['core/utils.js'][762]++; + if (source.hasOwnProperty(i)) { + _$jscoverage['core/utils.js'][763]++; + tmp = source[i]; + _$jscoverage['core/utils.js'][764]++; + if (((typeof tmp) == "object")) { + _$jscoverage['core/utils.js'][765]++; + target[i] = (utils.isArray(tmp)? []: {}); + _$jscoverage['core/utils.js'][766]++; + utils.clone(source[i], target[i]); + } + else { + _$jscoverage['core/utils.js'][768]++; + target[i] = tmp; + } + } +} + _$jscoverage['core/utils.js'][772]++; + return target; +}), transUnitToPx: (function (val) { + _$jscoverage['core/utils.js'][792]++; + if ((! /(pt|cm)/.test(val))) { + _$jscoverage['core/utils.js'][793]++; + return val; + } + _$jscoverage['core/utils.js'][795]++; + var unit; + _$jscoverage['core/utils.js'][796]++; + val.replace(/([\d.]+)(\w+)/, (function (str, v, u) { + _$jscoverage['core/utils.js'][797]++; + val = v; + _$jscoverage['core/utils.js'][798]++; + unit = u; +})); + _$jscoverage['core/utils.js'][800]++; + switch (unit) { + case "cm": + _$jscoverage['core/utils.js'][802]++; + val = (parseFloat(val) * 25); + _$jscoverage['core/utils.js'][803]++; + break; + case "pt": + _$jscoverage['core/utils.js'][805]++; + val = Math.round(((parseFloat(val) * 96) / 72)); + } + _$jscoverage['core/utils.js'][807]++; + return (val + (val? "px": "")); +}), domReady: (function () { + _$jscoverage['core/utils.js'][828]++; + var fnArr = []; + _$jscoverage['core/utils.js'][830]++; + function doReady(doc) { + _$jscoverage['core/utils.js'][832]++; + doc.isReady = true; + _$jscoverage['core/utils.js'][833]++; + for (var ci; (ci = fnArr.pop()); ci()) { +} +} + _$jscoverage['core/utils.js'][837]++; + return (function (onready, win) { + _$jscoverage['core/utils.js'][838]++; + win = (win || window); + _$jscoverage['core/utils.js'][839]++; + var doc = win.document; + _$jscoverage['core/utils.js'][840]++; + (onready && fnArr.push(onready)); + _$jscoverage['core/utils.js'][841]++; + if ((doc.readyState === "complete")) { + _$jscoverage['core/utils.js'][842]++; + doReady(doc); + } + else { + _$jscoverage['core/utils.js'][844]++; + (doc.isReady && doReady(doc)); + _$jscoverage['core/utils.js'][845]++; + if (browser.ie) { + _$jscoverage['core/utils.js'][846]++; + (function () { + _$jscoverage['core/utils.js'][847]++; + if (doc.isReady) { + _$jscoverage['core/utils.js'][847]++; + return; + } + _$jscoverage['core/utils.js'][848]++; + try { + _$jscoverage['core/utils.js'][849]++; + doc.documentElement.doScroll("left"); + } + catch (error) { + _$jscoverage['core/utils.js'][851]++; + setTimeout(arguments.callee, 0); + _$jscoverage['core/utils.js'][852]++; + return; + } + _$jscoverage['core/utils.js'][854]++; + doReady(doc); +})(); + _$jscoverage['core/utils.js'][856]++; + win.attachEvent("onload", (function () { + _$jscoverage['core/utils.js'][857]++; + doReady(doc); +})); + } + else { + _$jscoverage['core/utils.js'][860]++; + doc.addEventListener("DOMContentLoaded", (function () { + _$jscoverage['core/utils.js'][861]++; + doc.removeEventListener("DOMContentLoaded", arguments.callee, false); + _$jscoverage['core/utils.js'][862]++; + doReady(doc); +}), false); + _$jscoverage['core/utils.js'][864]++; + win.addEventListener("load", (function () { + _$jscoverage['core/utils.js'][865]++; + doReady(doc); +}), false); + } + } +}); +})(), cssRule: (browser.ie? (function (key, style, doc) { + _$jscoverage['core/utils.js'][883]++; + var indexList, index; + _$jscoverage['core/utils.js'][884]++; + doc = (doc || document); + _$jscoverage['core/utils.js'][885]++; + if (doc.indexList) { + _$jscoverage['core/utils.js'][886]++; + indexList = doc.indexList; + } + else { + _$jscoverage['core/utils.js'][888]++; + indexList = (doc.indexList = {}); + } + _$jscoverage['core/utils.js'][890]++; + var sheetStyle; + _$jscoverage['core/utils.js'][891]++; + if ((! indexList[key])) { + _$jscoverage['core/utils.js'][892]++; + if ((style === undefined)) { + _$jscoverage['core/utils.js'][893]++; + return ""; + } + _$jscoverage['core/utils.js'][895]++; + sheetStyle = doc.createStyleSheet("", (index = doc.styleSheets.length)); + _$jscoverage['core/utils.js'][896]++; + indexList[key] = index; + } + else { + _$jscoverage['core/utils.js'][898]++; + sheetStyle = doc.styleSheets[indexList[key]]; + } + _$jscoverage['core/utils.js'][900]++; + if ((style === undefined)) { + _$jscoverage['core/utils.js'][901]++; + return sheetStyle.cssText; + } + _$jscoverage['core/utils.js'][903]++; + sheetStyle.cssText = (style || ""); +}): (function (key, style, doc) { + _$jscoverage['core/utils.js'][905]++; + doc = (doc || document); + _$jscoverage['core/utils.js'][906]++; + var head = doc.getElementsByTagName("head")[0], node; + _$jscoverage['core/utils.js'][907]++; + if ((! (node = doc.getElementById(key)))) { + _$jscoverage['core/utils.js'][908]++; + if ((style === undefined)) { + _$jscoverage['core/utils.js'][909]++; + return ""; + } + _$jscoverage['core/utils.js'][911]++; + node = doc.createElement("style"); + _$jscoverage['core/utils.js'][912]++; + node.id = key; + _$jscoverage['core/utils.js'][913]++; + head.appendChild(node); + } + _$jscoverage['core/utils.js'][915]++; + if ((style === undefined)) { + _$jscoverage['core/utils.js'][916]++; + return node.innerHTML; + } + _$jscoverage['core/utils.js'][918]++; + if ((style !== "")) { + _$jscoverage['core/utils.js'][919]++; + node.innerHTML = style; + } + else { + _$jscoverage['core/utils.js'][921]++; + head.removeChild(node); + } +})), sort: (function (array, compareFn) { + _$jscoverage['core/utils.js'][925]++; + compareFn = (compareFn || (function (item1, item2) { + _$jscoverage['core/utils.js'][925]++; + return item1.localeCompare(item2); +})); + _$jscoverage['core/utils.js'][926]++; + for (var i = 0, len = array.length; (i < len); (i++)) { + _$jscoverage['core/utils.js'][927]++; + for (var j = i, length = array.length; (j < length); (j++)) { + _$jscoverage['core/utils.js'][928]++; + if ((compareFn(array[i], array[j]) > 0)) { + _$jscoverage['core/utils.js'][929]++; + var t = array[i]; + _$jscoverage['core/utils.js'][930]++; + array[i] = array[j]; + _$jscoverage['core/utils.js'][931]++; + array[j] = t; + } +} +} + _$jscoverage['core/utils.js'][935]++; + return array; +})}); +_$jscoverage['core/utils.js'][980]++; +utils.each(["String", "Function", "Array", "Number", "RegExp", "Object"], (function (v) { + _$jscoverage['core/utils.js'][981]++; + UE.utils[("is" + v)] = (function (obj) { + _$jscoverage['core/utils.js'][982]++; + return (Object.prototype.toString.apply(obj) == ("[object " + v + "]")); +}); +})); diff --git a/_test/coverage/customEvent.js b/_test/coverage/customEvent.js new file mode 100644 index 000000000..cd7c0e836 --- /dev/null +++ b/_test/coverage/customEvent.js @@ -0,0 +1,43 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['customEvent.js']) { + _$jscoverage['customEvent.js'] = []; +} +_$jscoverage['customEvent.js'].source = ["/**"," * @file"," * @name 编辑器事件接口"," * @short Custom events"," * @des 本文件非编辑器核心文件,仅适用于生成对应的事件接口文档"," * UEditor编辑器中的所有事件监听和触发都统一采用"," * ''editor''是编辑器实例"," * editor.addListener(\"eventName\",handler) 和 editor.fireEvent(\"eventName\")方式调用,支持浏览器原生事件,如keydown,keyup,mousedown,mouseup等"," */","/**"," * 编辑器加载完成事件(核心),在编辑器准备好所有运行条件时触发,大部分场景可以使用editor.ready(fn)取代。"," * @name ready"," * @grammar editor.addListener(\"ready\",fn)"," * @example"," * editor.addListener(\"ready\",function(){"," * //this为editor实例"," * this.setContent(\"欢迎使用UEditor!\");"," * })"," * //同如下接口方式调用"," * editor.ready(function(){"," * this.setContent(\"欢迎使用UEditor!\");"," * })"," */","/**"," * 选区变化事件(核心),当选区出现变化时触发。"," * 在UEditor中,任何涉及到光标改变的操作都会触发选区变化事件,该事件主要用来实现工具栏状态反射。"," * @name selectionChange"," * @grammar editor.addListener(\"selectionChange\",fn)"," * @grammar editor.fireEvent(\"selectionChange\")"," * @example"," * editor.addListener(\"selectionChange\",function(){"," * //this为editor实例"," * })"," */","","/**"," * 内容变化事件(核心),当编辑区域中的文本内容出现变化时触发"," * @name contentChange"," * @grammar editor.addListener(\"contentChange\",fn)"," * @grammar editor.fireEvent(\"contentChange\")"," */","","/**"," * 粘贴事件(核心),当使用ctr+v快捷键粘贴(包括Chrome、FF浏览器的右键粘贴)时会触发本事件"," * @name (before|after)Paste"," * @grammar editor.addListener(\"beforePaste\",fn)"," * @desc"," * * beforePaste 在将粘贴的内容写到编辑器之前触发,这个事件触发时,粘贴的内容还未在编辑器内显示"," * * afterPaste 粘贴的内容已经写到编辑器里边后触发"," * @example"," * editor.addListener(\"beforePaste\",function(type,data){"," * //beforePaste事件监听区别于afterPaste事件监听最主要的一个方面是存在一个data参数,"," * //该data参数是一个对象,包含属性html。"," * //若用户在此处更改该html的值时,将会影响粘贴到编辑器中的内容,主要用于粘贴时需要特殊处理的一些场景。"," * console.log(this.getContent) //this都是当前编辑器的实例"," * //before事件才用这个参数,用来在写出编辑器之前对粘贴进来的内容进行最后的修改"," * data.html = \"我把粘贴内容改成了这句话\";"," * })"," */","","/**"," * 设置内容事件(核心),当调用setContent方法时触发"," * @name (before|after)SetContent"," * @grammar editor.addListener(\"beforeSetContent\",fn)"," * @desc"," * * beforeSetContent 在内容写到编辑器之前触发"," * * afterSetContent 内容已经写到编辑器里边后触发"," * @example"," * editor.addListener(\"beforeSetContent\",function(type,data){"," * //beforeSetContent事件监听区别于afterSetContent事件监听最主要的一个方面是存在一个data参数,"," * //该data参数是一个对象,包含属性html。"," * //若用户在此处更改该html的值时,将会影响设置到编辑器中的内容,主要用于设置内容时需要特殊处理的一些场景。"," * data.html = \"我把设置内容改成了这句话\";"," * })"," */","","/**"," * getAllHtml事件,当调用getAllHtml方法时触发"," * @name getAllHtml"," * @grammar editor.addListener(\"getAllHtml\",fn)"," * @desc"," * * 主要用来对于生成的整个html代码中的head内容进行定制,比如你想插入你自己的样式,script标签等,用来在展示时使用"," * @example"," * editor.addListener(\"getAllHtml\",function(type,data){"," * //data是document中head部分html的封装,可通过data.html来获取对应字符串。"," * //需要修改的话得重新赋值data.html = '<style type=\"text/css\"> body{margin:0;}</style>';"," * })"," */","","/**"," * 内容提交事件(插件),当内容提交插件加载并调用了autosubmit命令时触发,多用于提交之前的验证"," * @name beforeSubmit"," * @grammar editor.addListener(\"beforeSubmit\",fn) //若fn返回false,则阻止本次提交"," * @example"," * editor.addListener(\"beforeSubmit\",function(){"," * if(!editor.hasContents()){"," * return false;"," * }"," * })"," */","","/**"," * 如果抓取远程的图片失败了,就触发"," * @name catchRemoteError"," * @grammar editor.addListener(\"catchRemoteError\",fn)"," * @example"," * editor.addListener(\"catchRemoteError\",function(){"," * console.log(\"抓取失败了!\")"," * })"," */","","/**"," * 当抓取远程的图片成功并会返回生成图片的链接时触发"," * @name catchRemoterSuccess"," * @grammar editor.addListener(\"catchRemoterSuccess\",fn)"," * @example"," * editor.addListener(\"catchRemoterSuccess\",function(){"," * console.log(\"抓取成功\")"," * })"," */","","/**"," * 编辑模式切换事件(插件),当源码模式和富文本模式发生切换时触发事件"," * @name sourceModeChanged"," * @grammar editor.addListener(\"sourceModeChanged\",fn)"," * @example"," * editor.addListener(\"sourceModeChanged\",function(type,mode){"," * //mode代表了当前的编辑模式,true代表切换到了源码模式,false代表切换到了富文本模式"," * })"," */","","/**"," * 全屏切换事件(插件),当执行全屏切换的时候触发事件"," * @name fullScreenChanged"," * @grammar editor.addListener(\"fullScreenChanged\",fn)"," * @example"," * editor.addListener(\"fullScreenChanged\",function(type,mode){"," * //mode代表当前是否全屏,true代表切换到了全屏模式,false代表切换到了普通模式"," * })"," */","","/**"," * 字数超出限制事件(插件),当输入的字符数超出配置项配置时触发"," * @name wordCountOverflow"," * @grammar editor.addListener(\"wordCountOverflow\",fn)"," * @example"," * editor.addListener(\"wordCountOverflow\",function(type,length){"," * console.log(length)"," * })"," */",""]; diff --git a/_test/coverage/editor.js b/_test/coverage/editor.js new file mode 100644 index 000000000..2c544eae9 --- /dev/null +++ b/_test/coverage/editor.js @@ -0,0 +1,73 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['editor.js']) { + _$jscoverage['editor.js'] = []; + _$jscoverage['editor.js'][1] = 0; + _$jscoverage['editor.js'][3] = 0; + _$jscoverage['editor.js'][5] = 0; + _$jscoverage['editor.js'][7] = 0; + _$jscoverage['editor.js'][9] = 0; + _$jscoverage['editor.js'][11] = 0; + _$jscoverage['editor.js'][13] = 0; + _$jscoverage['editor.js'][15] = 0; + _$jscoverage['editor.js'][17] = 0; + _$jscoverage['editor.js'][19] = 0; +} +_$jscoverage['editor.js'].source = ["UEDITOR_CONFIG = window.UEDITOR_CONFIG ||{};","","var baidu = window.baidu ||{};","","window.baidu = baidu;","","window.UE = baidu.editor ={};","","UE.plugins ={};","","UE.commands ={};","","UE.instants ={};","","UE.I18N ={};","","UE.version =\"1.2.6.1\";","","var dom = UE.dom ={};"]; +_$jscoverage['editor.js'][1]++; +UEDITOR_CONFIG = (window.UEDITOR_CONFIG || {}); +_$jscoverage['editor.js'][3]++; +var baidu = (window.baidu || {}); +_$jscoverage['editor.js'][5]++; +window.baidu = baidu; +_$jscoverage['editor.js'][7]++; +window.UE = (baidu.editor = {}); +_$jscoverage['editor.js'][9]++; +UE.plugins = {}; +_$jscoverage['editor.js'][11]++; +UE.commands = {}; +_$jscoverage['editor.js'][13]++; +UE.instants = {}; +_$jscoverage['editor.js'][15]++; +UE.I18N = {}; +_$jscoverage['editor.js'][17]++; +UE.version = "1.2.6.1"; +_$jscoverage['editor.js'][19]++; +var dom = (UE.dom = {}); diff --git a/_test/coverage/jscoverage-highlight.css b/_test/coverage/jscoverage-highlight.css new file mode 100644 index 000000000..d2ad01da5 --- /dev/null +++ b/_test/coverage/jscoverage-highlight.css @@ -0,0 +1,38 @@ +/* + jscoverage-highlight.css - JSCoverage syntax highlighting style sheet + Copyright (C) 2008, 2009, 2010 siliconforks.com + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + +/* keyword, type, symbol, cbracket */ +#sourceTable .k { + font-weight: bold; +} + +/* string, regexp, number */ +#sourceTable .s { + color: #006400; +} + +/* specialchar */ +#sourceTable .t { + color: #2e8b57; +} + +/* comment */ +#sourceTable .c { + font-style: italic; +} diff --git a/_test/coverage/jscoverage-ie.css b/_test/coverage/jscoverage-ie.css new file mode 100644 index 000000000..05cad2afa --- /dev/null +++ b/_test/coverage/jscoverage-ie.css @@ -0,0 +1,108 @@ +/* + jscoverage-ie.css - JSCoverage style sheet for Internet Explorer + Copyright (C) 2007, 2008, 2009, 2010 siliconforks.com + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + +#headingDiv { + position: static; + margin-left: 10px; + margin-right: 10px; + padding-top: 0.5em; +} + +#tabs { + clear: all; + position: static; + top: auto; + left: auto; + right: auto; + height: auto; + margin-left: 10px; + margin-right: 10px; +} + +#tabs div { + position: relative; + height: auto; + line-height: normal; + padding-top: 5px; + padding-bottom: 5px; +} + +#tabs div.selected { + padding-bottom: 6px; + z-index: 2; +} + +.TabPage { + position: relative; + top: -1px; + left: auto; + right: auto; + bottom: auto; + clear: left; + margin-left: 10px; + margin-right: 10px; + padding: 10px; + z-index: 1; +} + +#locationDiv { + margin-bottom: 10px; +} + +#iframeDiv { + position: static; + width: 100%; +} + +#summaryDiv { + position: static; + width: 100%; +} + +#fileDiv { + margin-bottom: 10px; +} + +#sourceDiv { + position: static; + width: 100%; +} + +#storeDiv { + position: static; + width: 100%; +} + +/* some defaults */ + +.TabPage { + height: 650px; +} + +#iframeDiv { + height: 600px; +} + +#summaryDiv { + height: 600px; +} + +#sourceDiv { + height: 600px; +} diff --git a/_test/coverage/jscoverage-throbber.gif b/_test/coverage/jscoverage-throbber.gif new file mode 100644 index 000000000..f13c0b4ec Binary files /dev/null and b/_test/coverage/jscoverage-throbber.gif differ diff --git a/_test/coverage/jscoverage.css b/_test/coverage/jscoverage.css new file mode 100644 index 000000000..9866fd706 --- /dev/null +++ b/_test/coverage/jscoverage.css @@ -0,0 +1,355 @@ +/* + jscoverage.css - code coverage for JavaScript + Copyright (C) 2007, 2008, 2009, 2010 siliconforks.com + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + +body { + background-color: #bfffbf; + font-family: sans-serif; + font-size: 100%; + margin: 0; +} + +#mainDiv { + font-size: 0.8125em; +} + +#headingDiv { + position: absolute; + top: 0.5em; + left: 1.5em; + right: 1.5em; + bottom: 0; + line-height: 1.5em; +} + +h1 { + float: left; + margin: 0; + padding-bottom: 0.5em; + font-size: 1.3em; +} + +.ProgressBar { + float: left; + visibility: hidden; +} + +.ProgressPercentage { + display: block; + float: left; + width: 5em; + text-align: right; +} + +.ProgressGraph { + float: left; + width: 100px; + height: 10px; + border: 1px solid black; + margin-top: 0.3em; + background-color: #d4d0c8; + overflow: hidden; +} + +.ProgressCovered { + /* windows system color ActiveCaption or Highlight */ + background-color: #0a246a; + width: 0; + height: 10px; + overflow: hidden; +} + +#progressLabel { + display: block; + float: left; + padding-left: 0.3em; +} + +#warningDiv { + display: none; + float: right; + background-color: #FFBFBF; + border: 1px solid red; + padding-left: 2px; + padding-right: 2px; +} + +.WarningDialog { + display: none; + background-color: #FFBFBF; + position: absolute; + z-index: 10; + top: 20%; + left: 20%; + width: 50%; + padding: 5%; + border: 1px solid red; +} + +.WarningDialog button { + display: block; + margin-left: auto; + margin-right: auto; +} + +/******************************************************************************* +browser tab +*/ + +input#location, button { + border: 1px solid black; + margin-left: 1px; + margin-right: 1px; +} + +#iframeDiv { + position: absolute; + top: 3.5em; + left: 1em; + right: 1em; + bottom: 1em; +} + +iframe { + width: 100%; + height: 100%; +} + +/******************************************************************************* +summary tab +*/ + +#summaryDiv { + position: absolute; + top: 3em; + left: 1em; + right: 1em; + bottom: 1em; + overflow: auto; +} + +table#summaryTable { + width: 100%; + margin-left: 0px; + margin-right: 0px; + border-collapse: collapse; + font-size: small; +} + +table#summaryTable th, table#summaryTable td { + border-left: 1px solid #d9d9d9; +} + +table#summaryTable th.leftColumn, table#summaryTable td.leftColumn { + border-left-width: 0px; +} + +table#summaryTable th, table#summaryTable td { + padding: 2px; +} + +th { + background-color: #e6ffe6; +} + +td.numeric { + text-align: right; +} + +abbr { + cursor: help; +} + +tr#summaryTotals td.leftColumn span { + float: right; +} +tr#summaryTotals td.leftColumn span.title { + float: left; + font-weight: bold; +} +tr#summaryTotals td { + background-color: #ffd; +} +td.coverage { + width: 150px; +} +td.coverage span { + float: right; + margin-right: 5px; +} +.pctGraph { + width: 100px; + height: 10px; + float: right; + border: 1px solid #000; + background-color: #e00000; + overflow: hidden; + margin-top: 4px; +} +.pctGraph .covered { + background-color: #00f000; + width: 0; + height: 10px; +} +.pctGraph .skipped { + background-color: #d4d0c8; + width: 100px; + height: 10px; +} +tbody#summaryTbody tr.even td { + background-color: #e6ffe6; +} + +/******************************************************************************* +source tab +*/ + +#fileDiv { + font-size: large; + font-weight: bold; +} + +#sourceDiv { + position: absolute; + top: 3em; + left: 1em; + right: 1em; + bottom: 1em; + overflow: auto; +} + +table#sourceTable { + border: 0px; + border-collapse: collapse; + font-size: small; +} + +/* +IE default behavior is to make
 smaller than surrounding text.  Because
+the table already has font-size small, this would make the font-size within the
+
 x-small.  So we don't rely on the default.
+*/
+table#sourceTable pre {
+  font-size: medium;
+}
+
+table#sourceTable td {
+  border: 0px;
+  padding-top: 0px;
+  padding-bottom: 0px;
+  padding-left: 10px;
+  padding-right: 10px;
+}
+
+table#sourceTable pre {
+  border: 0px;
+  margin: 0px;
+}
+
+.g {
+  background-color: #bfffbf;
+}
+
+.y {
+  background-color: #ffffbf;
+}
+
+.r {
+  background-color: #ffbfbf;
+}
+
+/*******************************************************************************
+store tab
+*/
+
+#storeDiv {
+  position: absolute;
+  top: 3em;
+  left: 1em;
+  right: 1em;
+  bottom: 1em;
+  overflow: auto;
+}
+
+/*******************************************************************************
+about tab
+*/
+
+p {
+  margin-top: 0;
+}
+
+/*******************************************************************************
+tabs
+*/
+
+#tabs {
+  position: absolute;
+  top: 3em;
+  left: 1.5em;
+  right: 1.5em;
+  height: 2em;
+}
+
+#tabs div {
+  background-color: white;
+  position: relative;
+  float: left;
+  border: 1px solid black;
+  border-bottom-width: 0;
+  cursor: pointer;
+  margin-left: 0.5em;
+  margin-right: 0.5em;
+  padding-left: 0.5em;
+  padding-right: 0.5em;
+  height: 2em;
+  z-index: 1;
+  line-height: 1.8em;
+}
+
+#tabs div.selected {
+  z-index: 3;
+  cursor: default;
+}
+
+#tabs div.disabled {
+  /* windows system color GrayText */
+  color: #808080;
+  cursor: default; 
+}
+
+.TabPage {
+  background-color: white;
+  border: 1px solid black;
+  position: absolute;
+  top: 5em;
+  left: 1.5em;
+  right: 1.5em;
+  bottom: 1.5em;
+  z-index: 2;
+  padding: 1em;
+  display: none;
+}
+
+#tabPages div.selected {
+  display: block;
+}
+
+img {
+  visibility: hidden;
+}
diff --git a/_test/coverage/jscoverage.html b/_test/coverage/jscoverage.html
new file mode 100644
index 000000000..00d35185a
--- /dev/null
+++ b/_test/coverage/jscoverage.html
@@ -0,0 +1,164 @@
+
+
+
+
+
+
+JSCoverage
+
+
+
+
+
+
+
+
+ + +
+

+Recent web browsers tend to place significant security restrictions on the use +of file: URLs. These restrictions can prevent JSCoverage from +working properly. To avoid problems, it is recommended that you do either of the +following: +

+
    +
  • If you are using the jscoverage program to instrument your +JavaScript code, install the instrumented files on a web server.
  • +
  • Use the jscoverage-server program (which itself acts as a web +server).
  • +
+

+See the +manual +for further details. +

+ +
+ +
+

+Recent web browsers tend to place significant security restrictions on the use +of file: URLs. These restrictions can prevent JSCoverage from +working properly. To avoid problems, it is recommended that you view coverage +reports stored to the filesystem by serving them from a web server. +

+

+See the +manual +for further details. +

+ +
+ +
+
Browser
+
Summary
+
Source
+
Store
+
About
+
+
+
+
+ URL: + + +
+
+ +
+
+
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + +
FileStatementsExecutedCoverage
+ Total: + 0 + 00 +
+
+
+ 0% +
+ + +
+
+
+
+
+ + loading... +
+
+
+

+ This is version 0.5.1 of JSCoverage, a program that calculates code + coverage statistics for JavaScript. +

+

+ See http://siliconforks.com/jscoverage/ for more information. +

+

+ Copyright © 2007, 2008, 2009, 2010 siliconforks.com +

+
+ + + + diff --git a/_test/coverage/jscoverage.js b/_test/coverage/jscoverage.js new file mode 100644 index 000000000..4233615a4 --- /dev/null +++ b/_test/coverage/jscoverage.js @@ -0,0 +1,1176 @@ +/* + jscoverage.js - code coverage for JavaScript + Copyright (C) 2007, 2008, 2009, 2010 siliconforks.com + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +*/ + +function jscoverage_openWarningDialog() { + var id; + if (jscoverage_isReport) { + id = 'reportWarningDialog'; + } + else { + id = 'warningDialog'; + } + var dialog = document.getElementById(id); + dialog.style.display = 'block'; +} + +function jscoverage_closeWarningDialog() { + var id; + if (jscoverage_isReport) { + id = 'reportWarningDialog'; + } + else { + id = 'warningDialog'; + } + var dialog = document.getElementById(id); + dialog.style.display = 'none'; +} + +/** +Initializes the _$jscoverage object in a window. This should be the first +function called in the page. +@param w this should always be the global window object +*/ +function jscoverage_init(w) { + try { + // in Safari, "import" is a syntax error + Components.utils['import']('resource://app/modules/jscoverage.jsm'); + jscoverage_isInvertedMode = true; + return; + } + catch (e) {} + + // check if we are in inverted mode + if (w.opener) { + try { + if (w.opener.top._$jscoverage) { + jscoverage_isInvertedMode = true; + if (! w._$jscoverage) { + w._$jscoverage = w.opener.top._$jscoverage; + } + } + else { + jscoverage_isInvertedMode = false; + } + } + catch (e) { + try { + if (w.opener._$jscoverage) { + jscoverage_isInvertedMode = true; + if (! w._$jscoverage) { + w._$jscoverage = w.opener._$jscoverage; + } + } + else { + jscoverage_isInvertedMode = false; + } + } + catch (e2) { + jscoverage_isInvertedMode = false; + } + } + } + else { + jscoverage_isInvertedMode = false; + } + + if (! jscoverage_isInvertedMode) { + if (! w._$jscoverage) { + w._$jscoverage = {}; + } + } +} + +var jscoverage_currentFile = null; +var jscoverage_currentLine = null; + +var jscoverage_inLengthyOperation = false; + +/* +Possible states: + isInvertedMode isServer isReport tabs +normal false false false Browser +inverted true false false +server, normal false true false Browser, Store +server, inverted true true false Store +report false false true +*/ +var jscoverage_isInvertedMode = false; +var jscoverage_isServer = false; +var jscoverage_isReport = false; + +jscoverage_init(window); + +function jscoverage_createRequest() { + // Note that the IE7 XMLHttpRequest does not support file URL's. + // http://xhab.blogspot.com/2006/11/ie7-support-for-xmlhttprequest.html + // http://blogs.msdn.com/ie/archive/2006/12/06/file-uris-in-windows.aspx +//#JSCOVERAGE_IF + if (window.ActiveXObject) { + return new ActiveXObject("Microsoft.XMLHTTP"); + } + else { + return new XMLHttpRequest(); + } +} + +// http://www.quirksmode.org/js/findpos.html +function jscoverage_findPos(obj) { + var result = 0; + do { + result += obj.offsetTop; + obj = obj.offsetParent; + } + while (obj); + return result; +} + +// http://www.quirksmode.org/viewport/compatibility.html +function jscoverage_getViewportHeight() { +//#JSCOVERAGE_IF /MSIE/.test(navigator.userAgent) + if (self.innerHeight) { + // all except Explorer + return self.innerHeight; + } + else if (document.documentElement && document.documentElement.clientHeight) { + // Explorer 6 Strict Mode + return document.documentElement.clientHeight; + } + else if (document.body) { + // other Explorers + return document.body.clientHeight; + } + else { + throw "Couldn't calculate viewport height"; + } +//#JSCOVERAGE_ENDIF +} + +/** +Indicates visually that a lengthy operation has begun. The progress bar is +displayed, and the cursor is changed to busy (on browsers which support this). +*/ +function jscoverage_beginLengthyOperation() { + jscoverage_inLengthyOperation = true; + + var progressBar = document.getElementById('progressBar'); + progressBar.style.visibility = 'visible'; + ProgressBar.setPercentage(progressBar, 0); + var progressLabel = document.getElementById('progressLabel'); + progressLabel.style.visibility = 'visible'; + + /* blacklist buggy browsers */ +//#JSCOVERAGE_IF + if (! /Opera|WebKit/.test(navigator.userAgent)) { + /* + Change the cursor style of each element. Note that changing the class of the + element (to one with a busy cursor) is buggy in IE. + */ + var tabs = document.getElementById('tabs').getElementsByTagName('div'); + var i; + for (i = 0; i < tabs.length; i++) { + tabs.item(i).style.cursor = 'wait'; + } + } +} + +/** +Removes the progress bar and busy cursor. +*/ +function jscoverage_endLengthyOperation() { + var progressBar = document.getElementById('progressBar'); + ProgressBar.setPercentage(progressBar, 100); + setTimeout(function() { + jscoverage_inLengthyOperation = false; + progressBar.style.visibility = 'hidden'; + var progressLabel = document.getElementById('progressLabel'); + progressLabel.style.visibility = 'hidden'; + progressLabel.innerHTML = ''; + + var tabs = document.getElementById('tabs').getElementsByTagName('div'); + var i; + for (i = 0; i < tabs.length; i++) { + tabs.item(i).style.cursor = ''; + } + }, 50); +} + +function jscoverage_setSize() { +//#JSCOVERAGE_IF /MSIE/.test(navigator.userAgent) + var viewportHeight = jscoverage_getViewportHeight(); + + /* + border-top-width: 1px + padding-top: 10px + padding-bottom: 10px + border-bottom-width: 1px + margin-bottom: 10px + ---- + 32px + */ + var tabPages = document.getElementById('tabPages'); + var tabPageHeight = (viewportHeight - jscoverage_findPos(tabPages) - 32) + 'px'; + var nodeList = tabPages.childNodes; + var length = nodeList.length; + for (var i = 0; i < length; i++) { + var node = nodeList.item(i); + if (node.nodeType !== 1) { + continue; + } + node.style.height = tabPageHeight; + } + + var iframeDiv = document.getElementById('iframeDiv'); + // may not exist if we have removed the first tab + if (iframeDiv) { + iframeDiv.style.height = (viewportHeight - jscoverage_findPos(iframeDiv) - 21) + 'px'; + } + + var summaryDiv = document.getElementById('summaryDiv'); + summaryDiv.style.height = (viewportHeight - jscoverage_findPos(summaryDiv) - 21) + 'px'; + + var sourceDiv = document.getElementById('sourceDiv'); + sourceDiv.style.height = (viewportHeight - jscoverage_findPos(sourceDiv) - 21) + 'px'; + + var storeDiv = document.getElementById('storeDiv'); + if (storeDiv) { + storeDiv.style.height = (viewportHeight - jscoverage_findPos(storeDiv) - 21) + 'px'; + } +//#JSCOVERAGE_ENDIF +} + +/** +Returns the boolean value of a string. Values 'false', 'f', 'no', 'n', 'off', +and '0' (upper or lower case) are false. +@param s the string +@return a boolean value +*/ +function jscoverage_getBooleanValue(s) { + s = s.toLowerCase(); + if (s === 'false' || s === 'f' || s === 'no' || s === 'n' || s === 'off' || s === '0') { + return false; + } + return true; +} + +function jscoverage_removeTab(id) { + var tab = document.getElementById(id + 'Tab'); + tab.parentNode.removeChild(tab); + var tabPage = document.getElementById(id + 'TabPage'); + tabPage.parentNode.removeChild(tabPage); +} + +function jscoverage_isValidURL(url) { + // RFC 3986 + var matches = /^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/.exec(url); + if (matches === null) { + return false; + } + var scheme = matches[1]; + if (typeof scheme === 'string') { + scheme = scheme.toLowerCase(); + return scheme === '' || scheme === 'file:' || scheme === 'http:' || scheme === 'https:'; + } + return true; +} + +/** +Initializes the contents of the tabs. This sets the initial values of the +input field and iframe in the "Browser" tab and the checkbox in the "Summary" +tab. +@param queryString this should always be location.search +*/ +function jscoverage_initTabContents(queryString) { + var showMissingColumn = false; + var url = null; + var windowURL = null; + var parameters, parameter, i, index, name, value; + if (queryString.length > 0) { + // chop off the question mark + queryString = queryString.substring(1); + parameters = queryString.split(/&|;/); + for (i = 0; i < parameters.length; i++) { + parameter = parameters[i]; + index = parameter.indexOf('='); + if (index === -1) { + // still works with old syntax + url = decodeURIComponent(parameter); + } + else { + name = parameter.substr(0, index); + value = decodeURIComponent(parameter.substr(index + 1)); + if (name === 'missing' || name === 'm') { + showMissingColumn = jscoverage_getBooleanValue(value); + } + else if (name === 'url' || name === 'u' || name === 'frame' || name === 'f') { + url = value; + } + else if (name === 'window' || name === 'w') { + windowURL = value; + } + } + } + } + + var checkbox = document.getElementById('checkbox'); + checkbox.checked = showMissingColumn; + if (showMissingColumn) { + jscoverage_appendMissingColumn(); + } + + var isValidURL = function (url) { + var result = jscoverage_isValidURL(url); + if (! result) { + alert('Invalid URL: ' + url); + } + return result; + }; + + if (url !== null && isValidURL(url)) { + // this will automatically propagate to the input field + frames[0].location = url; + } + else if (windowURL !== null && isValidURL(windowURL)) { + window.open(windowURL); + } + + // if the browser tab is absent, we have to initialize the summary tab + if (! document.getElementById('browserTab')) { + jscoverage_recalculateSummaryTab(); + } +} + +function jscoverage_body_load() { + // check if this is a file: URL + if (window.location && window.location.href && /^file:/i.test(window.location.href)) { + var warningDiv = document.getElementById('warningDiv'); + warningDiv.style.display = 'block'; + } + + var progressBar = document.getElementById('progressBar'); + ProgressBar.init(progressBar); + + function reportError(e) { + jscoverage_endLengthyOperation(); + var summaryThrobber = document.getElementById('summaryThrobber'); + summaryThrobber.style.visibility = 'hidden'; + var div = document.getElementById('summaryErrorDiv'); + div.innerHTML = 'Error: ' + e; + } + + if (jscoverage_isReport) { + jscoverage_beginLengthyOperation(); + var summaryThrobber = document.getElementById('summaryThrobber'); + summaryThrobber.style.visibility = 'visible'; + var request = jscoverage_createRequest(); + try { + request.open('GET', 'jscoverage.json', true); + request.onreadystatechange = function (event) { + if (request.readyState === 4) { + try { + if (request.status !== 0 && request.status !== 200) { + throw request.status; + } + var response = request.responseText; + if (response === '') { + throw 404; + } + + var json; + if (window.JSON && window.JSON.parse) { + json = window.JSON.parse(response); + } + else { + json = eval('(' + response + ')'); + } + + var file; + for (file in json) { + if (! json.hasOwnProperty(file)) { + continue; + } + + var fileCoverage = json[file]; + _$jscoverage[file] = fileCoverage.coverage; + _$jscoverage[file].source = fileCoverage.source; + } + jscoverage_recalculateSummaryTab(); + summaryThrobber.style.visibility = 'hidden'; + } + catch (e) { + reportError(e); + } + } + }; + request.send(null); + } + catch (e) { + reportError(e); + } + + jscoverage_removeTab('browser'); + jscoverage_removeTab('store'); + } + else { + if (jscoverage_isInvertedMode) { + jscoverage_removeTab('browser'); + } + + if (! jscoverage_isServer) { + jscoverage_removeTab('store'); + } + } + + jscoverage_initTabControl(); + + jscoverage_initTabContents(location.search); +} + +function jscoverage_body_resize() { + if (/MSIE/.test(navigator.userAgent)) { + jscoverage_setSize(); + } +} + +// ----------------------------------------------------------------------------- +// tab 1 + +function jscoverage_updateBrowser() { + var input = document.getElementById("location"); + frames[0].location = input.value; +} + +function jscoverage_openWindow() { + var input = document.getElementById("location"); + var url = input.value; + window.open(url); +} + +function jscoverage_input_keypress(e) { + if (e.keyCode === 13) { + if (e.shiftKey) { + jscoverage_openWindow(); + } + else { + jscoverage_updateBrowser(); + } + } +} + +function jscoverage_openInFrameButton_click() { + jscoverage_updateBrowser(); +} + +function jscoverage_openInWindowButton_click() { + jscoverage_openWindow(); +} + +function jscoverage_browser_load() { + /* update the input box */ + var input = document.getElementById("location"); + + /* sometimes IE seems to fire this after the tab has been removed */ + if (input) { + input.value = frames[0].location; + } +} + +// ----------------------------------------------------------------------------- +// tab 2 + +function jscoverage_createHandler(file, line) { + return function () { + jscoverage_get(file, line); + return false; + }; +} + +function jscoverage_createLink(file, line) { + var link = document.createElement("a"); + link.href = '#'; + link.onclick = jscoverage_createHandler(file, line); + + var text; + if (line) { + text = line.toString(); + } + else { + text = file; + } + + link.appendChild(document.createTextNode(text)); + + return link; +} + +function jscoverage_recalculateSummaryTab(cc) { + var checkbox = document.getElementById('checkbox'); + var showMissingColumn = checkbox.checked; + + if (! cc) { + cc = window._$jscoverage; + } + if (! cc) { +//#JSCOVERAGE_IF 0 + throw "No coverage information found."; +//#JSCOVERAGE_ENDIF + } + + var tbody = document.getElementById("summaryTbody"); + while (tbody.hasChildNodes()) { + tbody.removeChild(tbody.firstChild); + } + + var totals = { files:0, statements:0, executed:0 }; + + var file; + var files = []; + for (file in cc) { + if (! cc.hasOwnProperty(file)) { + continue; + } + + files.push(file); + } + files.sort(); + + var rowCounter = 0; + for (var f = 0; f < files.length; f++) { + file = files[f]; + var lineNumber; + var num_statements = 0; + var num_executed = 0; + var missing = []; + var fileCC = cc[file]; + var length = fileCC.length; + var currentConditionalEnd = 0; + var conditionals = null; + if (fileCC.conditionals) { + conditionals = fileCC.conditionals; + } + for (lineNumber = 0; lineNumber < length; lineNumber++) { + var n = fileCC[lineNumber]; + + if (lineNumber === currentConditionalEnd) { + currentConditionalEnd = 0; + } + else if (currentConditionalEnd === 0 && conditionals && conditionals[lineNumber]) { + currentConditionalEnd = conditionals[lineNumber]; + } + + if (currentConditionalEnd !== 0) { + continue; + } + + if (n === undefined || n === null) { + continue; + } + + if (n === 0) { + missing.push(lineNumber); + } + else { + num_executed++; + } + num_statements++; + } + + var percentage = ( num_statements === 0 ? 0 : parseInt(100 * num_executed / num_statements) ); + + var row = document.createElement("tr"); + row.className = ( rowCounter++ % 2 == 0 ? "odd" : "even" ); + + var cell = document.createElement("td"); + cell.className = 'leftColumn'; + var link = jscoverage_createLink(file); + cell.appendChild(link); + + row.appendChild(cell); + + cell = document.createElement("td"); + cell.className = 'numeric'; + cell.appendChild(document.createTextNode(num_statements)); + row.appendChild(cell); + + cell = document.createElement("td"); + cell.className = 'numeric'; + cell.appendChild(document.createTextNode(num_executed)); + row.appendChild(cell); + + // new coverage td containing a bar graph + cell = document.createElement("td"); + cell.className = 'coverage'; + var pctGraph = document.createElement("div"), + covered = document.createElement("div"), + pct = document.createElement("span"); + pctGraph.className = "pctGraph"; + if( num_statements === 0 ) { + covered.className = "skipped"; + pct.appendChild(document.createTextNode("N/A")); + } else { + covered.className = "covered"; + covered.style.width = percentage + "px"; + pct.appendChild(document.createTextNode(percentage + '%')); + } + pct.className = "pct"; + pctGraph.appendChild(covered); + cell.appendChild(pctGraph); + cell.appendChild(pct); + row.appendChild(cell); + + if (showMissingColumn) { + cell = document.createElement("td"); + for (var i = 0; i < missing.length; i++) { + if (i !== 0) { + cell.appendChild(document.createTextNode(", ")); + } + link = jscoverage_createLink(file, missing[i]); + + // group contiguous missing lines; e.g., 10, 11, 12 -> 10-12 + var j, start = missing[i]; + for (;;) { + j = 1; + while (i + j < missing.length && missing[i + j] == missing[i] + j) { + j++; + } + var nextmissing = missing[i + j], cur = missing[i] + j; + if (isNaN(nextmissing)) { + break; + } + while (cur < nextmissing && ! fileCC[cur]) { + cur++; + } + if (cur < nextmissing || cur >= length) { + break; + } + i += j; + } + if (start != missing[i] || j > 1) { + i += j - 1; + link.innerHTML += "-" + missing[i]; + } + + cell.appendChild(link); + } + row.appendChild(cell); + } + + tbody.appendChild(row); + + totals['files'] ++; + totals['statements'] += num_statements; + totals['executed'] += num_executed; + + // write totals data into summaryTotals row + var tr = document.getElementById("summaryTotals"); + if (tr) { + var tds = tr.getElementsByTagName("td"); + tds[0].getElementsByTagName("span")[1].firstChild.nodeValue = totals['files']; + tds[1].firstChild.nodeValue = totals['statements']; + tds[2].firstChild.nodeValue = totals['executed']; + + var coverage = parseInt(100 * totals['executed'] / totals['statements']); + if( isNaN( coverage ) ) { + coverage = 0; + } + tds[3].getElementsByTagName("span")[0].firstChild.nodeValue = coverage + '%'; + tds[3].getElementsByTagName("div")[1].style.width = coverage + 'px'; + } + + } + jscoverage_endLengthyOperation(); +} + +function jscoverage_appendMissingColumn() { + var headerRow = document.getElementById('headerRow'); + var missingHeader = document.createElement('th'); + missingHeader.id = 'missingHeader'; + missingHeader.innerHTML = 'Missing'; + headerRow.appendChild(missingHeader); + var summaryTotals = document.getElementById('summaryTotals'); + var empty = document.createElement('td'); + empty.id = 'missingCell'; + summaryTotals.appendChild(empty); +} + +function jscoverage_removeMissingColumn() { + var missingNode; + missingNode = document.getElementById('missingHeader'); + missingNode.parentNode.removeChild(missingNode); + missingNode = document.getElementById('missingCell'); + missingNode.parentNode.removeChild(missingNode); +} + +function jscoverage_checkbox_click() { + if (jscoverage_inLengthyOperation) { + return false; + } + jscoverage_beginLengthyOperation(); + var checkbox = document.getElementById('checkbox'); + var showMissingColumn = checkbox.checked; + setTimeout(function() { + if (showMissingColumn) { + jscoverage_appendMissingColumn(); + } + else { + jscoverage_removeMissingColumn(); + } + jscoverage_recalculateSummaryTab(); + }, 50); + return true; +} + +// ----------------------------------------------------------------------------- +// tab 3 + +function jscoverage_makeTable() { + var coverage = _$jscoverage[jscoverage_currentFile]; + var lines = coverage.source; + + // this can happen if there is an error in the original JavaScript file + if (! lines) { + lines = []; + } + + var rows = ['']; + var i = 0; + var progressBar = document.getElementById('progressBar'); + var tableHTML; + var currentConditionalEnd = 0; + + function joinTableRows() { + tableHTML = rows.join(''); + ProgressBar.setPercentage(progressBar, 60); + /* + This may be a long delay, so set a timeout of 100 ms to make sure the + display is updated. + */ + setTimeout(appendTable, 100); + } + + function appendTable() { + var sourceDiv = document.getElementById('sourceDiv'); + sourceDiv.innerHTML = tableHTML; + ProgressBar.setPercentage(progressBar, 80); + setTimeout(jscoverage_scrollToLine, 0); + } + + while (i < lines.length) { + var lineNumber = i + 1; + + if (lineNumber === currentConditionalEnd) { + currentConditionalEnd = 0; + } + else if (currentConditionalEnd === 0 && coverage.conditionals && coverage.conditionals[lineNumber]) { + currentConditionalEnd = coverage.conditionals[lineNumber]; + } + + var row = ''; + row += ''; + var timesExecuted = coverage[lineNumber]; + if (timesExecuted !== undefined && timesExecuted !== null) { + if (currentConditionalEnd !== 0) { + row += ''; + } + else { + row += ''; + } + row += ''; + row += ''; + row += '\n'; + rows[lineNumber] = row; + i++; + } + rows[i + 1] = '
' + lineNumber + ''; + } + else if (timesExecuted === 0) { + row += ''; + } + else { + row += ''; + } + row += timesExecuted; + row += '
' + lines[i] + '
'; + ProgressBar.setPercentage(progressBar, 40); + setTimeout(joinTableRows, 0); +} + +function jscoverage_scrollToLine() { + jscoverage_selectTab('sourceTab'); + if (! window.jscoverage_currentLine) { + jscoverage_endLengthyOperation(); + return; + } + var div = document.getElementById('sourceDiv'); + if (jscoverage_currentLine === 1) { + div.scrollTop = 0; + } + else { + var cell = document.getElementById('line-' + jscoverage_currentLine); + + // this might not be there if there is an error in the original JavaScript + if (cell) { + var divOffset = jscoverage_findPos(div); + var cellOffset = jscoverage_findPos(cell); + div.scrollTop = cellOffset - divOffset; + } + } + jscoverage_currentLine = 0; + jscoverage_endLengthyOperation(); +} + +/** +Loads the given file (and optional line) in the source tab. +*/ +function jscoverage_get(file, line) { + if (jscoverage_inLengthyOperation) { + return; + } + jscoverage_beginLengthyOperation(); + setTimeout(function() { + var sourceDiv = document.getElementById('sourceDiv'); + sourceDiv.innerHTML = ''; + jscoverage_selectTab('sourceTab'); + if (file === jscoverage_currentFile) { + jscoverage_currentLine = line; + jscoverage_recalculateSourceTab(); + } + else { + if (jscoverage_currentFile === null) { + var tab = document.getElementById('sourceTab'); + tab.className = ''; + tab.onclick = jscoverage_tab_click; + } + jscoverage_currentFile = file; + jscoverage_currentLine = line || 1; // when changing the source, always scroll to top + var fileDiv = document.getElementById('fileDiv'); + fileDiv.innerHTML = jscoverage_currentFile; + jscoverage_recalculateSourceTab(); + return; + } + }, 50); +} + +/** +Calculates coverage statistics for the current source file. +*/ +function jscoverage_recalculateSourceTab() { + if (! jscoverage_currentFile) { + jscoverage_endLengthyOperation(); + return; + } + var progressLabel = document.getElementById('progressLabel'); + progressLabel.innerHTML = 'Calculating coverage ...'; + var progressBar = document.getElementById('progressBar'); + ProgressBar.setPercentage(progressBar, 20); + setTimeout(jscoverage_makeTable, 0); +} + +// ----------------------------------------------------------------------------- +// tabs + +/** +Initializes the tab control. This function must be called when the document is +loaded. +*/ +function jscoverage_initTabControl() { + var tabs = document.getElementById('tabs'); + var i; + var child; + var tabNum = 0; + for (i = 0; i < tabs.childNodes.length; i++) { + child = tabs.childNodes.item(i); + if (child.nodeType === 1) { + if (child.className !== 'disabled') { + child.onclick = jscoverage_tab_click; + } + tabNum++; + } + } + jscoverage_selectTab(0); +} + +/** +Selects a tab. +@param tab the integer index of the tab (0, 1, 2, or 3) + OR + the ID of the tab element + OR + the tab element itself +*/ +function jscoverage_selectTab(tab) { + if (typeof tab !== 'number') { + tab = jscoverage_tabIndexOf(tab); + } + var tabs = document.getElementById('tabs'); + var tabPages = document.getElementById('tabPages'); + var nodeList; + var tabNum; + var i; + var node; + + nodeList = tabs.childNodes; + tabNum = 0; + for (i = 0; i < nodeList.length; i++) { + node = nodeList.item(i); + if (node.nodeType !== 1) { + continue; + } + + if (node.className !== 'disabled') { + if (tabNum === tab) { + node.className = 'selected'; + } + else { + node.className = ''; + } + } + tabNum++; + } + + nodeList = tabPages.childNodes; + tabNum = 0; + for (i = 0; i < nodeList.length; i++) { + node = nodeList.item(i); + if (node.nodeType !== 1) { + continue; + } + + if (tabNum === tab) { + node.className = 'selected TabPage'; + } + else { + node.className = 'TabPage'; + } + tabNum++; + } +} + +/** +Returns an integer (0, 1, 2, or 3) representing the index of a given tab. +@param tab the ID of the tab element + OR + the tab element itself +*/ +function jscoverage_tabIndexOf(tab) { + if (typeof tab === 'string') { + tab = document.getElementById(tab); + } + var tabs = document.getElementById('tabs'); + var i; + var child; + var tabNum = 0; + for (i = 0; i < tabs.childNodes.length; i++) { + child = tabs.childNodes.item(i); + if (child.nodeType === 1) { + if (child === tab) { + return tabNum; + } + tabNum++; + } + } +//#JSCOVERAGE_IF 0 + throw "Tab not found"; +//#JSCOVERAGE_ENDIF +} + +function jscoverage_tab_click(e) { + if (jscoverage_inLengthyOperation) { + return; + } + var target; +//#JSCOVERAGE_IF + if (e) { + target = e.target; + } + else if (window.event) { + // IE + target = window.event.srcElement; + } + if (target.className === 'selected') { + return; + } + jscoverage_beginLengthyOperation(); + setTimeout(function() { + if (target.id === 'summaryTab') { + var tbody = document.getElementById("summaryTbody"); + while (tbody.hasChildNodes()) { + tbody.removeChild(tbody.firstChild); + } + } + else if (target.id === 'sourceTab') { + var sourceDiv = document.getElementById('sourceDiv'); + sourceDiv.innerHTML = ''; + } + jscoverage_selectTab(target); + if (target.id === 'summaryTab') { + jscoverage_recalculateSummaryTab(); + } + else if (target.id === 'sourceTab') { + jscoverage_recalculateSourceTab(); + } + else { + jscoverage_endLengthyOperation(); + } + }, 50); +} + +// ----------------------------------------------------------------------------- +// progress bar + +var ProgressBar = { + init: function(element) { + element._percentage = 0; + + /* doing this via JavaScript crashes Safari */ +/* + var pctGraph = document.createElement('div'); + pctGraph.className = 'pctGraph'; + element.appendChild(pctGraph); + var covered = document.createElement('div'); + covered.className = 'covered'; + pctGraph.appendChild(covered); + var pct = document.createElement('span'); + pct.className = 'pct'; + element.appendChild(pct); +*/ + + ProgressBar._update(element); + }, + setPercentage: function(element, percentage) { + element._percentage = percentage; + ProgressBar._update(element); + }, + _update: function(element) { + var pctGraph = element.getElementsByTagName('div').item(0); + var covered = pctGraph.getElementsByTagName('div').item(0); + var pct = element.getElementsByTagName('span').item(0); + pct.innerHTML = element._percentage.toString() + '%'; + covered.style.width = element._percentage + 'px'; + } +}; + +// ----------------------------------------------------------------------------- +// reports + +function jscoverage_pad(s) { + return '0000'.substr(s.length) + s; +} + +function jscoverage_quote(s) { + return '"' + s.replace(/[\u0000-\u001f"\\\u007f-\uffff]/g, function (c) { + switch (c) { + case '\b': + return '\\b'; + case '\f': + return '\\f'; + case '\n': + return '\\n'; + case '\r': + return '\\r'; + case '\t': + return '\\t'; + // IE doesn't support this + /* + case '\v': + return '\\v'; + */ + case '"': + return '\\"'; + case '\\': + return '\\\\'; + default: + return '\\u' + jscoverage_pad(c.charCodeAt(0).toString(16)); + } + }) + '"'; +} + +function jscoverage_serializeCoverageToJSON() { + var json = []; + for (var file in _$jscoverage) { + if (! _$jscoverage.hasOwnProperty(file)) { + continue; + } + + var coverage = _$jscoverage[file]; + + var array = []; + var length = coverage.length; + for (var line = 0; line < length; line++) { + var value = coverage[line]; + if (value === undefined || value === null) { + value = 'null'; + } + array.push(value); + } + + var source = coverage.source; + var lines = []; + length = source.length; + for (var line = 0; line < length; line++) { + lines.push(jscoverage_quote(source[line])); + } + + json.push(jscoverage_quote(file) + ':{"coverage":[' + array.join(',') + '],"source":[' + lines.join(',') + ']}'); + } + return '{' + json.join(',') + '}'; +} + +function jscoverage_storeButton_click() { + if (jscoverage_inLengthyOperation) { + return; + } + + jscoverage_beginLengthyOperation(); + var img = document.getElementById('storeImg'); + img.style.visibility = 'visible'; + + var request = jscoverage_createRequest(); + request.open('POST', '/jscoverage-store', true); + request.onreadystatechange = function (event) { + if (request.readyState === 4) { + var message; + try { + if (request.status !== 200 && request.status !== 201 && request.status !== 204) { + throw request.status; + } + message = request.responseText; + } + catch (e) { + if (e.toString().search(/^\d{3}$/) === 0) { + message = e + ': ' + request.responseText; + } + else { + message = 'Could not connect to server: ' + e; + } + } + + jscoverage_endLengthyOperation(); + var img = document.getElementById('storeImg'); + img.style.visibility = 'hidden'; + + var div = document.getElementById('storeDiv'); + div.appendChild(document.createTextNode(new Date() + ': ' + message)); + div.appendChild(document.createElement('br')); + } + }; + request.setRequestHeader('Content-Type', 'application/json'); + var json = jscoverage_serializeCoverageToJSON(); + request.setRequestHeader('Content-Length', json.length.toString()); + request.send(json); +} diff --git a/_test/coverage/plugins/anchor.js b/_test/coverage/plugins/anchor.js new file mode 100644 index 000000000..09dd629c7 --- /dev/null +++ b/_test/coverage/plugins/anchor.js @@ -0,0 +1,146 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/anchor.js']) { + _$jscoverage['plugins/anchor.js'] = []; + _$jscoverage['plugins/anchor.js'][7] = 0; + _$jscoverage['plugins/anchor.js'][8] = 0; + _$jscoverage['plugins/anchor.js'][10] = 0; + _$jscoverage['plugins/anchor.js'][11] = 0; + _$jscoverage['plugins/anchor.js'][17] = 0; + _$jscoverage['plugins/anchor.js'][18] = 0; + _$jscoverage['plugins/anchor.js'][19] = 0; + _$jscoverage['plugins/anchor.js'][20] = 0; + _$jscoverage['plugins/anchor.js'][21] = 0; + _$jscoverage['plugins/anchor.js'][22] = 0; + _$jscoverage['plugins/anchor.js'][30] = 0; + _$jscoverage['plugins/anchor.js'][31] = 0; + _$jscoverage['plugins/anchor.js'][32] = 0; + _$jscoverage['plugins/anchor.js'][33] = 0; + _$jscoverage['plugins/anchor.js'][34] = 0; + _$jscoverage['plugins/anchor.js'][35] = 0; + _$jscoverage['plugins/anchor.js'][39] = 0; + _$jscoverage['plugins/anchor.js'][57] = 0; + _$jscoverage['plugins/anchor.js'][59] = 0; + _$jscoverage['plugins/anchor.js'][60] = 0; + _$jscoverage['plugins/anchor.js'][61] = 0; + _$jscoverage['plugins/anchor.js'][62] = 0; + _$jscoverage['plugins/anchor.js'][64] = 0; + _$jscoverage['plugins/anchor.js'][65] = 0; + _$jscoverage['plugins/anchor.js'][68] = 0; + _$jscoverage['plugins/anchor.js'][70] = 0; + _$jscoverage['plugins/anchor.js'][71] = 0; + _$jscoverage['plugins/anchor.js'][72] = 0; + _$jscoverage['plugins/anchor.js'][76] = 0; +} +_$jscoverage['plugins/anchor.js'].source = ["/**"," * 锚点插件,为UEditor提供插入锚点支持"," * @file"," * @since 1.2.6.1"," */","","UE.plugins['anchor'] = function (){"," var me = this;",""," me.ready(function(){"," utils.cssRule('anchor',"," '.anchorclass{background: url(\\''"," + me.options.UEDITOR_HOME_URL +"," 'themes/default/images/anchor.gif\\') no-repeat scroll left center transparent;border: 1px dotted #0000FF;cursor: auto;display: inline-block;height: 16px;width: 15px;}',"," me.document)"," });"," me.addOutputRule(function(root){"," utils.each(root.getNodesByTagName('img'),function(a){"," var val;"," if(val = a.getAttr('anchorname')){"," a.tagName = 'a';"," a.setAttr({"," anchorname : '',"," name : val,"," 'class' : ''"," })"," }"," })"," });"," me.addInputRule(function(root){"," utils.each(root.getNodesByTagName('a'),function(a){"," var val;"," if((val = a.getAttr('name')) && !a.getAttr('href')){"," a.tagName = 'img';"," a.setAttr({"," anchorname :a.getAttr('name'),"," 'class' : 'anchorclass'"," });"," a.setAttr('name')",""," }"," })"," });",""," /**"," * 插入锚点"," * @command anchor"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @param { String } name 锚点名称字符串"," * @example"," * ```javascript"," * //editor 是编辑器实例"," * editor.execCommand('anchor', 'anchor1');"," * ```"," */"," me.commands['anchor'] = {"," execCommand:function (cmd, name) {"," var range = this.selection.getRange(),img = range.getClosedNode();"," if (img && img.getAttribute('anchorname')) {"," if (name) {"," img.setAttribute('anchorname', name);"," } else {"," range.setStartBefore(img).setCursor();"," domUtils.remove(img);"," }"," } else {"," if (name) {"," //只在选区的开始插入"," var anchor = this.document.createElement('img');"," range.collapse(true);"," domUtils.setAttributes(anchor,{"," 'anchorname':name,"," 'class':'anchorclass'"," });"," range.insertNode(anchor).setStartAfter(anchor).setCursor(false,true);"," }"," }"," }",""," };","","","};"]; +_$jscoverage['plugins/anchor.js'][7]++; +UE.plugins.anchor = (function () { + _$jscoverage['plugins/anchor.js'][8]++; + var me = this; + _$jscoverage['plugins/anchor.js'][10]++; + me.ready((function () { + _$jscoverage['plugins/anchor.js'][11]++; + utils.cssRule("anchor", (".anchorclass{background: url('" + me.options.UEDITOR_HOME_URL + "themes/default/images/anchor.gif') no-repeat scroll left center transparent;border: 1px dotted #0000FF;cursor: auto;display: inline-block;height: 16px;width: 15px;}"), me.document); +})); + _$jscoverage['plugins/anchor.js'][17]++; + me.addOutputRule((function (root) { + _$jscoverage['plugins/anchor.js'][18]++; + utils.each(root.getNodesByTagName("img"), (function (a) { + _$jscoverage['plugins/anchor.js'][19]++; + var val; + _$jscoverage['plugins/anchor.js'][20]++; + if ((val = a.getAttr("anchorname"))) { + _$jscoverage['plugins/anchor.js'][21]++; + a.tagName = "a"; + _$jscoverage['plugins/anchor.js'][22]++; + a.setAttr({anchorname: "", name: val, "class": ""}); + } +})); +})); + _$jscoverage['plugins/anchor.js'][30]++; + me.addInputRule((function (root) { + _$jscoverage['plugins/anchor.js'][31]++; + utils.each(root.getNodesByTagName("a"), (function (a) { + _$jscoverage['plugins/anchor.js'][32]++; + var val; + _$jscoverage['plugins/anchor.js'][33]++; + if (((val = a.getAttr("name")) && (! a.getAttr("href")))) { + _$jscoverage['plugins/anchor.js'][34]++; + a.tagName = "img"; + _$jscoverage['plugins/anchor.js'][35]++; + a.setAttr({anchorname: a.getAttr("name"), "class": "anchorclass"}); + _$jscoverage['plugins/anchor.js'][39]++; + a.setAttr("name"); + } +})); +})); + _$jscoverage['plugins/anchor.js'][57]++; + me.commands.anchor = {execCommand: (function (cmd, name) { + _$jscoverage['plugins/anchor.js'][59]++; + var range = this.selection.getRange(), img = range.getClosedNode(); + _$jscoverage['plugins/anchor.js'][60]++; + if ((img && img.getAttribute("anchorname"))) { + _$jscoverage['plugins/anchor.js'][61]++; + if (name) { + _$jscoverage['plugins/anchor.js'][62]++; + img.setAttribute("anchorname", name); + } + else { + _$jscoverage['plugins/anchor.js'][64]++; + range.setStartBefore(img).setCursor(); + _$jscoverage['plugins/anchor.js'][65]++; + domUtils.remove(img); + } + } + else { + _$jscoverage['plugins/anchor.js'][68]++; + if (name) { + _$jscoverage['plugins/anchor.js'][70]++; + var anchor = this.document.createElement("img"); + _$jscoverage['plugins/anchor.js'][71]++; + range.collapse(true); + _$jscoverage['plugins/anchor.js'][72]++; + domUtils.setAttributes(anchor, {"anchorname": name, "class": "anchorclass"}); + _$jscoverage['plugins/anchor.js'][76]++; + range.insertNode(anchor).setStartAfter(anchor).setCursor(false, true); + } + } +})}; +}); diff --git a/_test/coverage/plugins/autofloat.js b/_test/coverage/plugins/autofloat.js new file mode 100644 index 000000000..6cb09ad9c --- /dev/null +++ b/_test/coverage/plugins/autofloat.js @@ -0,0 +1,290 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/autofloat.js']) { + _$jscoverage['plugins/autofloat.js'] = []; + _$jscoverage['plugins/autofloat.js'][10] = 0; + _$jscoverage['plugins/autofloat.js'][11] = 0; + _$jscoverage['plugins/autofloat.js'][13] = 0; + _$jscoverage['plugins/autofloat.js'][16] = 0; + _$jscoverage['plugins/autofloat.js'][21] = 0; + _$jscoverage['plugins/autofloat.js'][22] = 0; + _$jscoverage['plugins/autofloat.js'][24] = 0; + _$jscoverage['plugins/autofloat.js'][28] = 0; + _$jscoverage['plugins/autofloat.js'][29] = 0; + _$jscoverage['plugins/autofloat.js'][30] = 0; + _$jscoverage['plugins/autofloat.js'][31] = 0; + _$jscoverage['plugins/autofloat.js'][33] = 0; + _$jscoverage['plugins/autofloat.js'][35] = 0; + _$jscoverage['plugins/autofloat.js'][36] = 0; + _$jscoverage['plugins/autofloat.js'][37] = 0; + _$jscoverage['plugins/autofloat.js'][38] = 0; + _$jscoverage['plugins/autofloat.js'][40] = 0; + _$jscoverage['plugins/autofloat.js'][45] = 0; + _$jscoverage['plugins/autofloat.js'][46] = 0; + _$jscoverage['plugins/autofloat.js'][49] = 0; + _$jscoverage['plugins/autofloat.js'][50] = 0; + _$jscoverage['plugins/autofloat.js'][51] = 0; + _$jscoverage['plugins/autofloat.js'][52] = 0; + _$jscoverage['plugins/autofloat.js'][53] = 0; + _$jscoverage['plugins/autofloat.js'][54] = 0; + _$jscoverage['plugins/autofloat.js'][56] = 0; + _$jscoverage['plugins/autofloat.js'][58] = 0; + _$jscoverage['plugins/autofloat.js'][59] = 0; + _$jscoverage['plugins/autofloat.js'][60] = 0; + _$jscoverage['plugins/autofloat.js'][62] = 0; + _$jscoverage['plugins/autofloat.js'][63] = 0; + _$jscoverage['plugins/autofloat.js'][64] = 0; + _$jscoverage['plugins/autofloat.js'][65] = 0; + _$jscoverage['plugins/autofloat.js'][69] = 0; + _$jscoverage['plugins/autofloat.js'][70] = 0; + _$jscoverage['plugins/autofloat.js'][71] = 0; + _$jscoverage['plugins/autofloat.js'][72] = 0; + _$jscoverage['plugins/autofloat.js'][74] = 0; + _$jscoverage['plugins/autofloat.js'][77] = 0; + _$jscoverage['plugins/autofloat.js'][78] = 0; + _$jscoverage['plugins/autofloat.js'][79] = 0; + _$jscoverage['plugins/autofloat.js'][80] = 0; + _$jscoverage['plugins/autofloat.js'][81] = 0; + _$jscoverage['plugins/autofloat.js'][83] = 0; + _$jscoverage['plugins/autofloat.js'][86] = 0; + _$jscoverage['plugins/autofloat.js'][87] = 0; + _$jscoverage['plugins/autofloat.js'][90] = 0; + _$jscoverage['plugins/autofloat.js'][91] = 0; + _$jscoverage['plugins/autofloat.js'][92] = 0; + _$jscoverage['plugins/autofloat.js'][95] = 0; + _$jscoverage['plugins/autofloat.js'][96] = 0; + _$jscoverage['plugins/autofloat.js'][98] = 0; + _$jscoverage['plugins/autofloat.js'][99] = 0; + _$jscoverage['plugins/autofloat.js'][100] = 0; + _$jscoverage['plugins/autofloat.js'][101] = 0; + _$jscoverage['plugins/autofloat.js'][102] = 0; + _$jscoverage['plugins/autofloat.js'][103] = 0; + _$jscoverage['plugins/autofloat.js'][104] = 0; + _$jscoverage['plugins/autofloat.js'][106] = 0; + _$jscoverage['plugins/autofloat.js'][107] = 0; + _$jscoverage['plugins/autofloat.js'][109] = 0; + _$jscoverage['plugins/autofloat.js'][110] = 0; + _$jscoverage['plugins/autofloat.js'][111] = 0; + _$jscoverage['plugins/autofloat.js'][114] = 0; + _$jscoverage['plugins/autofloat.js'][115] = 0; + _$jscoverage['plugins/autofloat.js'][116] = 0; + _$jscoverage['plugins/autofloat.js'][119] = 0; + _$jscoverage['plugins/autofloat.js'][120] = 0; + _$jscoverage['plugins/autofloat.js'][121] = 0; + _$jscoverage['plugins/autofloat.js'][124] = 0; + _$jscoverage['plugins/autofloat.js'][125] = 0; + _$jscoverage['plugins/autofloat.js'][126] = 0; +} +_$jscoverage['plugins/autofloat.js'].source = ["///import core","///commands 悬浮工具栏","///commandsName AutoFloat,autoFloatEnabled","///commandsTitle 悬浮工具栏","/*"," * modified by chengchao01"," *"," * 注意: 引入此功能后,在IE6下会将body的背景图片覆盖掉!"," */"," UE.plugins['autofloat'] = function() {"," var me = this,"," lang = me.getLang();"," me.setOpt({"," topOffset:0"," });"," var optsAutoFloatEnabled = me.options.autoFloatEnabled !== false,"," topOffset = me.options.topOffset;","",""," //如果不固定toolbar的位置,则直接退出"," if(!optsAutoFloatEnabled){"," return;"," }"," var uiUtils = UE.ui.uiUtils,"," \t\tLteIE6 = browser.ie && browser.version <= 6,"," quirks = browser.quirks;",""," function checkHasUI(){"," if(!UE.ui){"," alert(lang.autofloatMsg);"," return 0;"," }"," return 1;"," }"," function fixIE6FixedPos(){"," var docStyle = document.body.style;"," docStyle.backgroundImage = 'url(\"about:blank\")';"," docStyle.backgroundAttachment = 'fixed';"," }","\t\tvar\tbakCssText,","\t\t\tplaceHolder = document.createElement('div'),"," toolbarBox,orgTop,"," getPosition,"," flag =true; //ie7模式下需要偏移","\t\tfunction setFloating(){","\t\t\tvar toobarBoxPos = domUtils.getXY(toolbarBox),","\t\t\t\torigalFloat = domUtils.getComputedStyle(toolbarBox,'position'),"," origalLeft = domUtils.getComputedStyle(toolbarBox,'left');","\t\t\ttoolbarBox.style.width = toolbarBox.offsetWidth + 'px';"," toolbarBox.style.zIndex = me.options.zIndex * 1 + 1;","\t\t\ttoolbarBox.parentNode.insertBefore(placeHolder, toolbarBox);","\t\t\tif (LteIE6 || (quirks && browser.ie)) {"," if(toolbarBox.style.position != 'absolute'){"," toolbarBox.style.position = 'absolute';"," }"," toolbarBox.style.top = (document.body.scrollTop||document.documentElement.scrollTop) - orgTop + topOffset + 'px';","\t\t\t} else {"," if (browser.ie7Compat && flag) {"," flag = false;"," toolbarBox.style.left = domUtils.getXY(toolbarBox).x - document.documentElement.getBoundingClientRect().left+2 + 'px';"," }"," if(toolbarBox.style.position != 'fixed'){"," toolbarBox.style.position = 'fixed';"," toolbarBox.style.top = topOffset +\"px\";"," ((origalFloat == 'absolute' || origalFloat == 'relative') && parseFloat(origalLeft)) && (toolbarBox.style.left = toobarBoxPos.x + 'px');"," }","\t\t\t}","\t\t}","\t\tfunction unsetFloating(){"," flag = true;"," if(placeHolder.parentNode){"," placeHolder.parentNode.removeChild(placeHolder);"," }","\t\t\ttoolbarBox.style.cssText = bakCssText;","\t\t}",""," function updateFloating(){"," var rect3 = getPosition(me.container);"," var offset=me.options.toolbarTopOffset||0;"," if (rect3.top < 0 && rect3.bottom - toolbarBox.offsetHeight > offset) {"," setFloating();"," }else{"," unsetFloating();"," }"," }"," var defer_updateFloating = utils.defer(function(){"," updateFloating();"," },browser.ie ? 200 : 100,true);",""," me.addListener('destroy',function(){"," domUtils.un(window, ['scroll','resize'], updateFloating);"," me.removeListener('keydown', defer_updateFloating);"," });",""," me.addListener('ready', function(){"," if(checkHasUI(me)){",""," getPosition = uiUtils.getClientRect;"," toolbarBox = me.ui.getDom('toolbarbox');"," orgTop = getPosition(toolbarBox).top;"," bakCssText = toolbarBox.style.cssText;"," placeHolder.style.height = toolbarBox.offsetHeight + 'px';"," if(LteIE6){"," fixIE6FixedPos();"," }"," domUtils.on(window, ['scroll','resize'], updateFloating);"," me.addListener('keydown', defer_updateFloating);",""," me.addListener('beforefullscreenchange', function (t, enabled){"," if (enabled) {"," unsetFloating();"," }"," });"," me.addListener('fullscreenchanged', function (t, enabled){"," if (!enabled) {"," updateFloating();"," }"," });"," me.addListener('sourcemodechanged', function (t, enabled){"," setTimeout(function (){"," updateFloating();"," },0);"," });"," me.addListener(\"clearDoc\",function(){"," setTimeout(function(){"," updateFloating();"," },0);",""," })"," }"," });","\t};"]; +_$jscoverage['plugins/autofloat.js'][10]++; +UE.plugins.autofloat = (function () { + _$jscoverage['plugins/autofloat.js'][11]++; + var me = this, lang = me.getLang(); + _$jscoverage['plugins/autofloat.js'][13]++; + me.setOpt({topOffset: 0}); + _$jscoverage['plugins/autofloat.js'][16]++; + var optsAutoFloatEnabled = (me.options.autoFloatEnabled !== false), topOffset = me.options.topOffset; + _$jscoverage['plugins/autofloat.js'][21]++; + if ((! optsAutoFloatEnabled)) { + _$jscoverage['plugins/autofloat.js'][22]++; + return; + } + _$jscoverage['plugins/autofloat.js'][24]++; + var uiUtils = UE.ui.uiUtils, LteIE6 = (browser.ie && (browser.version <= 6)), quirks = browser.quirks; + _$jscoverage['plugins/autofloat.js'][28]++; + function checkHasUI() { + _$jscoverage['plugins/autofloat.js'][29]++; + if ((! UE.ui)) { + _$jscoverage['plugins/autofloat.js'][30]++; + alert(lang.autofloatMsg); + _$jscoverage['plugins/autofloat.js'][31]++; + return 0; + } + _$jscoverage['plugins/autofloat.js'][33]++; + return 1; +} + _$jscoverage['plugins/autofloat.js'][35]++; + function fixIE6FixedPos() { + _$jscoverage['plugins/autofloat.js'][36]++; + var docStyle = document.body.style; + _$jscoverage['plugins/autofloat.js'][37]++; + docStyle.backgroundImage = "url(\"about:blank\")"; + _$jscoverage['plugins/autofloat.js'][38]++; + docStyle.backgroundAttachment = "fixed"; +} + _$jscoverage['plugins/autofloat.js'][40]++; + var bakCssText, placeHolder = document.createElement("div"), toolbarBox, orgTop, getPosition, flag = true; + _$jscoverage['plugins/autofloat.js'][45]++; + function setFloating() { + _$jscoverage['plugins/autofloat.js'][46]++; + var toobarBoxPos = domUtils.getXY(toolbarBox), origalFloat = domUtils.getComputedStyle(toolbarBox, "position"), origalLeft = domUtils.getComputedStyle(toolbarBox, "left"); + _$jscoverage['plugins/autofloat.js'][49]++; + toolbarBox.style.width = (toolbarBox.offsetWidth + "px"); + _$jscoverage['plugins/autofloat.js'][50]++; + toolbarBox.style.zIndex = ((me.options.zIndex * 1) + 1); + _$jscoverage['plugins/autofloat.js'][51]++; + toolbarBox.parentNode.insertBefore(placeHolder, toolbarBox); + _$jscoverage['plugins/autofloat.js'][52]++; + if ((LteIE6 || (quirks && browser.ie))) { + _$jscoverage['plugins/autofloat.js'][53]++; + if ((toolbarBox.style.position != "absolute")) { + _$jscoverage['plugins/autofloat.js'][54]++; + toolbarBox.style.position = "absolute"; + } + _$jscoverage['plugins/autofloat.js'][56]++; + toolbarBox.style.top = (((document.body.scrollTop || document.documentElement.scrollTop) - orgTop) + topOffset + "px"); + } + else { + _$jscoverage['plugins/autofloat.js'][58]++; + if ((browser.ie7Compat && flag)) { + _$jscoverage['plugins/autofloat.js'][59]++; + flag = false; + _$jscoverage['plugins/autofloat.js'][60]++; + toolbarBox.style.left = ((domUtils.getXY(toolbarBox).x - document.documentElement.getBoundingClientRect().left) + 2 + "px"); + } + _$jscoverage['plugins/autofloat.js'][62]++; + if ((toolbarBox.style.position != "fixed")) { + _$jscoverage['plugins/autofloat.js'][63]++; + toolbarBox.style.position = "fixed"; + _$jscoverage['plugins/autofloat.js'][64]++; + toolbarBox.style.top = (topOffset + "px"); + _$jscoverage['plugins/autofloat.js'][65]++; + (((origalFloat == "absolute") || (origalFloat == "relative")) && parseFloat(origalLeft) && (toolbarBox.style.left = (toobarBoxPos.x + "px"))); + } + } +} + _$jscoverage['plugins/autofloat.js'][69]++; + function unsetFloating() { + _$jscoverage['plugins/autofloat.js'][70]++; + flag = true; + _$jscoverage['plugins/autofloat.js'][71]++; + if (placeHolder.parentNode) { + _$jscoverage['plugins/autofloat.js'][72]++; + placeHolder.parentNode.removeChild(placeHolder); + } + _$jscoverage['plugins/autofloat.js'][74]++; + toolbarBox.style.cssText = bakCssText; +} + _$jscoverage['plugins/autofloat.js'][77]++; + function updateFloating() { + _$jscoverage['plugins/autofloat.js'][78]++; + var rect3 = getPosition(me.container); + _$jscoverage['plugins/autofloat.js'][79]++; + var offset = (me.options.toolbarTopOffset || 0); + _$jscoverage['plugins/autofloat.js'][80]++; + if (((rect3.top < 0) && ((rect3.bottom - toolbarBox.offsetHeight) > offset))) { + _$jscoverage['plugins/autofloat.js'][81]++; + setFloating(); + } + else { + _$jscoverage['plugins/autofloat.js'][83]++; + unsetFloating(); + } +} + _$jscoverage['plugins/autofloat.js'][86]++; + var defer_updateFloating = utils.defer((function () { + _$jscoverage['plugins/autofloat.js'][87]++; + updateFloating(); +}), (browser.ie? 200: 100), true); + _$jscoverage['plugins/autofloat.js'][90]++; + me.addListener("destroy", (function () { + _$jscoverage['plugins/autofloat.js'][91]++; + domUtils.un(window, ["scroll", "resize"], updateFloating); + _$jscoverage['plugins/autofloat.js'][92]++; + me.removeListener("keydown", defer_updateFloating); +})); + _$jscoverage['plugins/autofloat.js'][95]++; + me.addListener("ready", (function () { + _$jscoverage['plugins/autofloat.js'][96]++; + if (checkHasUI(me)) { + _$jscoverage['plugins/autofloat.js'][98]++; + getPosition = uiUtils.getClientRect; + _$jscoverage['plugins/autofloat.js'][99]++; + toolbarBox = me.ui.getDom("toolbarbox"); + _$jscoverage['plugins/autofloat.js'][100]++; + orgTop = getPosition(toolbarBox).top; + _$jscoverage['plugins/autofloat.js'][101]++; + bakCssText = toolbarBox.style.cssText; + _$jscoverage['plugins/autofloat.js'][102]++; + placeHolder.style.height = (toolbarBox.offsetHeight + "px"); + _$jscoverage['plugins/autofloat.js'][103]++; + if (LteIE6) { + _$jscoverage['plugins/autofloat.js'][104]++; + fixIE6FixedPos(); + } + _$jscoverage['plugins/autofloat.js'][106]++; + domUtils.on(window, ["scroll", "resize"], updateFloating); + _$jscoverage['plugins/autofloat.js'][107]++; + me.addListener("keydown", defer_updateFloating); + _$jscoverage['plugins/autofloat.js'][109]++; + me.addListener("beforefullscreenchange", (function (t, enabled) { + _$jscoverage['plugins/autofloat.js'][110]++; + if (enabled) { + _$jscoverage['plugins/autofloat.js'][111]++; + unsetFloating(); + } +})); + _$jscoverage['plugins/autofloat.js'][114]++; + me.addListener("fullscreenchanged", (function (t, enabled) { + _$jscoverage['plugins/autofloat.js'][115]++; + if ((! enabled)) { + _$jscoverage['plugins/autofloat.js'][116]++; + updateFloating(); + } +})); + _$jscoverage['plugins/autofloat.js'][119]++; + me.addListener("sourcemodechanged", (function (t, enabled) { + _$jscoverage['plugins/autofloat.js'][120]++; + setTimeout((function () { + _$jscoverage['plugins/autofloat.js'][121]++; + updateFloating(); +}), 0); +})); + _$jscoverage['plugins/autofloat.js'][124]++; + me.addListener("clearDoc", (function () { + _$jscoverage['plugins/autofloat.js'][125]++; + setTimeout((function () { + _$jscoverage['plugins/autofloat.js'][126]++; + updateFloating(); +}), 0); +})); + } +})); +}); diff --git a/_test/coverage/plugins/autoheight.js b/_test/coverage/plugins/autoheight.js new file mode 100644 index 000000000..ba8195a94 --- /dev/null +++ b/_test/coverage/plugins/autoheight.js @@ -0,0 +1,224 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/autoheight.js']) { + _$jscoverage['plugins/autoheight.js'] = []; + _$jscoverage['plugins/autoheight.js'][9] = 0; + _$jscoverage['plugins/autoheight.js'][10] = 0; + _$jscoverage['plugins/autoheight.js'][12] = 0; + _$jscoverage['plugins/autoheight.js'][13] = 0; + _$jscoverage['plugins/autoheight.js'][14] = 0; + _$jscoverage['plugins/autoheight.js'][17] = 0; + _$jscoverage['plugins/autoheight.js'][24] = 0; + _$jscoverage['plugins/autoheight.js'][25] = 0; + _$jscoverage['plugins/autoheight.js'][26] = 0; + _$jscoverage['plugins/autoheight.js'][27] = 0; + _$jscoverage['plugins/autoheight.js'][28] = 0; + _$jscoverage['plugins/autoheight.js'][29] = 0; + _$jscoverage['plugins/autoheight.js'][30] = 0; + _$jscoverage['plugins/autoheight.js'][31] = 0; + _$jscoverage['plugins/autoheight.js'][33] = 0; + _$jscoverage['plugins/autoheight.js'][34] = 0; + _$jscoverage['plugins/autoheight.js'][36] = 0; + _$jscoverage['plugins/autoheight.js'][37] = 0; + _$jscoverage['plugins/autoheight.js'][38] = 0; + _$jscoverage['plugins/autoheight.js'][39] = 0; + _$jscoverage['plugins/autoheight.js'][41] = 0; + _$jscoverage['plugins/autoheight.js'][43] = 0; + _$jscoverage['plugins/autoheight.js'][45] = 0; + _$jscoverage['plugins/autoheight.js'][50] = 0; + _$jscoverage['plugins/autoheight.js'][51] = 0; + _$jscoverage['plugins/autoheight.js'][52] = 0; + _$jscoverage['plugins/autoheight.js'][54] = 0; + _$jscoverage['plugins/autoheight.js'][55] = 0; + _$jscoverage['plugins/autoheight.js'][57] = 0; + _$jscoverage['plugins/autoheight.js'][58] = 0; + _$jscoverage['plugins/autoheight.js'][59] = 0; + _$jscoverage['plugins/autoheight.js'][60] = 0; + _$jscoverage['plugins/autoheight.js'][62] = 0; + _$jscoverage['plugins/autoheight.js'][63] = 0; + _$jscoverage['plugins/autoheight.js'][64] = 0; + _$jscoverage['plugins/autoheight.js'][65] = 0; + _$jscoverage['plugins/autoheight.js'][66] = 0; + _$jscoverage['plugins/autoheight.js'][69] = 0; + _$jscoverage['plugins/autoheight.js'][70] = 0; + _$jscoverage['plugins/autoheight.js'][72] = 0; + _$jscoverage['plugins/autoheight.js'][74] = 0; + _$jscoverage['plugins/autoheight.js'][76] = 0; + _$jscoverage['plugins/autoheight.js'][78] = 0; + _$jscoverage['plugins/autoheight.js'][79] = 0; + _$jscoverage['plugins/autoheight.js'][80] = 0; + _$jscoverage['plugins/autoheight.js'][81] = 0; + _$jscoverage['plugins/autoheight.js'][82] = 0; + _$jscoverage['plugins/autoheight.js'][84] = 0; + _$jscoverage['plugins/autoheight.js'][85] = 0; + _$jscoverage['plugins/autoheight.js'][87] = 0; + _$jscoverage['plugins/autoheight.js'][88] = 0; + _$jscoverage['plugins/autoheight.js'][89] = 0; + _$jscoverage['plugins/autoheight.js'][90] = 0; + _$jscoverage['plugins/autoheight.js'][91] = 0; +} +_$jscoverage['plugins/autoheight.js'].source = ["///import core","///commands 当输入内容超过编辑器高度时,编辑器自动增高","///commandsName AutoHeight,autoHeightEnabled","///commandsTitle 自动增高","/*"," * @description 自动伸展"," * @author zhanyi"," */","UE.plugins['autoheight'] = function () {"," var me = this;"," //提供开关,就算加载也可以关闭"," me.autoHeightEnabled = me.options.autoHeightEnabled !== false;"," if (!me.autoHeightEnabled) {"," return;"," }",""," var bakOverflow,"," span, tmpNode,"," lastHeight = 0,"," options = me.options,"," currentHeight,"," timer;",""," function adjustHeight() {"," var me = this;"," clearTimeout(timer);"," if(isFullscreen)return;"," timer = setTimeout(function () {"," if (!me.queryCommandState || me.queryCommandState && me.queryCommandState('source') != 1) {"," if (!span) {"," span = me.document.createElement('span');"," //trace:1764"," span.style.cssText = 'display:block;width:0;margin:0;padding:0;border:0;clear:both;';"," span.innerHTML = '.';"," }"," tmpNode = span.cloneNode(true);"," me.body.appendChild(tmpNode);"," currentHeight = Math.max(domUtils.getXY(tmpNode).y + tmpNode.offsetHeight,Math.max(options.minFrameHeight, options.initialFrameHeight));"," if (currentHeight != lastHeight) {",""," me.setHeight(currentHeight,true);",""," lastHeight = currentHeight;"," }"," domUtils.remove(tmpNode);",""," }"," }, 50);"," }"," var isFullscreen;"," me.addListener('fullscreenchanged',function(cmd,f){"," isFullscreen = f"," });"," me.addListener('destroy', function () {"," me.removeListener('contentchange afterinserthtml keyup mouseup',adjustHeight)"," });"," me.enableAutoHeight = function () {"," var me = this;"," if (!me.autoHeightEnabled) {"," return;"," }"," var doc = me.document;"," me.autoHeightEnabled = true;"," bakOverflow = doc.body.style.overflowY;"," doc.body.style.overflowY = 'hidden';"," me.addListener('contentchange afterinserthtml keyup mouseup',adjustHeight);"," //ff不给事件算得不对",""," setTimeout(function () {"," adjustHeight.call(me);"," }, browser.gecko ? 100 : 0);"," me.fireEvent('autoheightchanged', me.autoHeightEnabled);"," };"," me.disableAutoHeight = function () {",""," me.body.style.overflowY = bakOverflow || '';",""," me.removeListener('contentchange', adjustHeight);"," me.removeListener('keyup', adjustHeight);"," me.removeListener('mouseup', adjustHeight);"," me.autoHeightEnabled = false;"," me.fireEvent('autoheightchanged', me.autoHeightEnabled);"," };"," me.addListener('ready', function () {"," me.enableAutoHeight();"," //trace:1764"," var timer;"," domUtils.on(browser.ie ? me.body : me.document, browser.webkit ? 'dragover' : 'drop', function () {"," clearTimeout(timer);"," timer = setTimeout(function () {"," adjustHeight.call(this);"," }, 100);",""," });"," });","","","};",""]; +_$jscoverage['plugins/autoheight.js'][9]++; +UE.plugins.autoheight = (function () { + _$jscoverage['plugins/autoheight.js'][10]++; + var me = this; + _$jscoverage['plugins/autoheight.js'][12]++; + me.autoHeightEnabled = (me.options.autoHeightEnabled !== false); + _$jscoverage['plugins/autoheight.js'][13]++; + if ((! me.autoHeightEnabled)) { + _$jscoverage['plugins/autoheight.js'][14]++; + return; + } + _$jscoverage['plugins/autoheight.js'][17]++; + var bakOverflow, span, tmpNode, lastHeight = 0, options = me.options, currentHeight, timer; + _$jscoverage['plugins/autoheight.js'][24]++; + function adjustHeight() { + _$jscoverage['plugins/autoheight.js'][25]++; + var me = this; + _$jscoverage['plugins/autoheight.js'][26]++; + clearTimeout(timer); + _$jscoverage['plugins/autoheight.js'][27]++; + if (isFullscreen) { + _$jscoverage['plugins/autoheight.js'][27]++; + return; + } + _$jscoverage['plugins/autoheight.js'][28]++; + timer = setTimeout((function () { + _$jscoverage['plugins/autoheight.js'][29]++; + if (((! me.queryCommandState) || (me.queryCommandState && (me.queryCommandState("source") != 1)))) { + _$jscoverage['plugins/autoheight.js'][30]++; + if ((! span)) { + _$jscoverage['plugins/autoheight.js'][31]++; + span = me.document.createElement("span"); + _$jscoverage['plugins/autoheight.js'][33]++; + span.style.cssText = "display:block;width:0;margin:0;padding:0;border:0;clear:both;"; + _$jscoverage['plugins/autoheight.js'][34]++; + span.innerHTML = "."; + } + _$jscoverage['plugins/autoheight.js'][36]++; + tmpNode = span.cloneNode(true); + _$jscoverage['plugins/autoheight.js'][37]++; + me.body.appendChild(tmpNode); + _$jscoverage['plugins/autoheight.js'][38]++; + currentHeight = Math.max((domUtils.getXY(tmpNode).y + tmpNode.offsetHeight), Math.max(options.minFrameHeight, options.initialFrameHeight)); + _$jscoverage['plugins/autoheight.js'][39]++; + if ((currentHeight != lastHeight)) { + _$jscoverage['plugins/autoheight.js'][41]++; + me.setHeight(currentHeight, true); + _$jscoverage['plugins/autoheight.js'][43]++; + lastHeight = currentHeight; + } + _$jscoverage['plugins/autoheight.js'][45]++; + domUtils.remove(tmpNode); + } +}), 50); +} + _$jscoverage['plugins/autoheight.js'][50]++; + var isFullscreen; + _$jscoverage['plugins/autoheight.js'][51]++; + me.addListener("fullscreenchanged", (function (cmd, f) { + _$jscoverage['plugins/autoheight.js'][52]++; + isFullscreen = f; +})); + _$jscoverage['plugins/autoheight.js'][54]++; + me.addListener("destroy", (function () { + _$jscoverage['plugins/autoheight.js'][55]++; + me.removeListener("contentchange afterinserthtml keyup mouseup", adjustHeight); +})); + _$jscoverage['plugins/autoheight.js'][57]++; + me.enableAutoHeight = (function () { + _$jscoverage['plugins/autoheight.js'][58]++; + var me = this; + _$jscoverage['plugins/autoheight.js'][59]++; + if ((! me.autoHeightEnabled)) { + _$jscoverage['plugins/autoheight.js'][60]++; + return; + } + _$jscoverage['plugins/autoheight.js'][62]++; + var doc = me.document; + _$jscoverage['plugins/autoheight.js'][63]++; + me.autoHeightEnabled = true; + _$jscoverage['plugins/autoheight.js'][64]++; + bakOverflow = doc.body.style.overflowY; + _$jscoverage['plugins/autoheight.js'][65]++; + doc.body.style.overflowY = "hidden"; + _$jscoverage['plugins/autoheight.js'][66]++; + me.addListener("contentchange afterinserthtml keyup mouseup", adjustHeight); + _$jscoverage['plugins/autoheight.js'][69]++; + setTimeout((function () { + _$jscoverage['plugins/autoheight.js'][70]++; + adjustHeight.call(me); +}), (browser.gecko? 100: 0)); + _$jscoverage['plugins/autoheight.js'][72]++; + me.fireEvent("autoheightchanged", me.autoHeightEnabled); +}); + _$jscoverage['plugins/autoheight.js'][74]++; + me.disableAutoHeight = (function () { + _$jscoverage['plugins/autoheight.js'][76]++; + me.body.style.overflowY = (bakOverflow || ""); + _$jscoverage['plugins/autoheight.js'][78]++; + me.removeListener("contentchange", adjustHeight); + _$jscoverage['plugins/autoheight.js'][79]++; + me.removeListener("keyup", adjustHeight); + _$jscoverage['plugins/autoheight.js'][80]++; + me.removeListener("mouseup", adjustHeight); + _$jscoverage['plugins/autoheight.js'][81]++; + me.autoHeightEnabled = false; + _$jscoverage['plugins/autoheight.js'][82]++; + me.fireEvent("autoheightchanged", me.autoHeightEnabled); +}); + _$jscoverage['plugins/autoheight.js'][84]++; + me.addListener("ready", (function () { + _$jscoverage['plugins/autoheight.js'][85]++; + me.enableAutoHeight(); + _$jscoverage['plugins/autoheight.js'][87]++; + var timer; + _$jscoverage['plugins/autoheight.js'][88]++; + domUtils.on((browser.ie? me.body: me.document), (browser.webkit? "dragover": "drop"), (function () { + _$jscoverage['plugins/autoheight.js'][89]++; + clearTimeout(timer); + _$jscoverage['plugins/autoheight.js'][90]++; + timer = setTimeout((function () { + _$jscoverage['plugins/autoheight.js'][91]++; + adjustHeight.call(this); +}), 100); +})); +})); +}); diff --git a/_test/coverage/plugins/autolink.js b/_test/coverage/plugins/autolink.js new file mode 100644 index 000000000..e232a6180 --- /dev/null +++ b/_test/coverage/plugins/autolink.js @@ -0,0 +1,246 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/autolink.js']) { + _$jscoverage['plugins/autolink.js'] = []; + _$jscoverage['plugins/autolink.js'][9] = 0; + _$jscoverage['plugins/autolink.js'][10] = 0; + _$jscoverage['plugins/autolink.js'][11] = 0; + _$jscoverage['plugins/autolink.js'][12] = 0; + _$jscoverage['plugins/autolink.js'][14] = 0; + _$jscoverage['plugins/autolink.js'][15] = 0; + _$jscoverage['plugins/autolink.js'][16] = 0; + _$jscoverage['plugins/autolink.js'][18] = 0; + _$jscoverage['plugins/autolink.js'][19] = 0; + _$jscoverage['plugins/autolink.js'][21] = 0; + _$jscoverage['plugins/autolink.js'][23] = 0; + _$jscoverage['plugins/autolink.js'][28] = 0; + _$jscoverage['plugins/autolink.js'][29] = 0; + _$jscoverage['plugins/autolink.js'][30] = 0; + _$jscoverage['plugins/autolink.js'][31] = 0; + _$jscoverage['plugins/autolink.js'][32] = 0; + _$jscoverage['plugins/autolink.js'][34] = 0; + _$jscoverage['plugins/autolink.js'][35] = 0; + _$jscoverage['plugins/autolink.js'][36] = 0; + _$jscoverage['plugins/autolink.js'][39] = 0; + _$jscoverage['plugins/autolink.js'][40] = 0; + _$jscoverage['plugins/autolink.js'][41] = 0; + _$jscoverage['plugins/autolink.js'][43] = 0; + _$jscoverage['plugins/autolink.js'][44] = 0; + _$jscoverage['plugins/autolink.js'][46] = 0; + _$jscoverage['plugins/autolink.js'][47] = 0; + _$jscoverage['plugins/autolink.js'][49] = 0; + _$jscoverage['plugins/autolink.js'][51] = 0; + _$jscoverage['plugins/autolink.js'][52] = 0; + _$jscoverage['plugins/autolink.js'][54] = 0; + _$jscoverage['plugins/autolink.js'][55] = 0; + _$jscoverage['plugins/autolink.js'][58] = 0; + _$jscoverage['plugins/autolink.js'][59] = 0; + _$jscoverage['plugins/autolink.js'][60] = 0; + _$jscoverage['plugins/autolink.js'][61] = 0; + _$jscoverage['plugins/autolink.js'][63] = 0; + _$jscoverage['plugins/autolink.js'][64] = 0; + _$jscoverage['plugins/autolink.js'][67] = 0; + _$jscoverage['plugins/autolink.js'][68] = 0; + _$jscoverage['plugins/autolink.js'][69] = 0; + _$jscoverage['plugins/autolink.js'][70] = 0; + _$jscoverage['plugins/autolink.js'][72] = 0; + _$jscoverage['plugins/autolink.js'][75] = 0; + _$jscoverage['plugins/autolink.js'][81] = 0; + _$jscoverage['plugins/autolink.js'][82] = 0; + _$jscoverage['plugins/autolink.js'][84] = 0; + _$jscoverage['plugins/autolink.js'][86] = 0; + _$jscoverage['plugins/autolink.js'][87] = 0; + _$jscoverage['plugins/autolink.js'][88] = 0; + _$jscoverage['plugins/autolink.js'][89] = 0; + _$jscoverage['plugins/autolink.js'][90] = 0; + _$jscoverage['plugins/autolink.js'][91] = 0; + _$jscoverage['plugins/autolink.js'][92] = 0; + _$jscoverage['plugins/autolink.js'][94] = 0; + _$jscoverage['plugins/autolink.js'][95] = 0; + _$jscoverage['plugins/autolink.js'][96] = 0; + _$jscoverage['plugins/autolink.js'][97] = 0; + _$jscoverage['plugins/autolink.js'][98] = 0; + _$jscoverage['plugins/autolink.js'][99] = 0; + _$jscoverage['plugins/autolink.js'][100] = 0; +} +_$jscoverage['plugins/autolink.js'].source = ["///import core","///commands 为非ie浏览器自动添加a标签","///commandsName AutoLink","///commandsTitle 自动增加链接","/*"," * @description 为非ie浏览器自动添加a标签"," * @author zhanyi"," */"," UE.plugins['autolink'] = function() {"," var cont = 0;"," if (browser.ie) {"," return;"," }"," var me = this;"," me.addListener('reset',function(){"," cont = 0;"," });"," me.addListener('keydown', function(type, evt) {"," var keyCode = evt.keyCode || evt.which;",""," if (keyCode == 32 || keyCode == 13) {",""," var sel = me.selection.getNative(),"," range = sel.getRangeAt(0).cloneRange(),"," offset,"," charCode;",""," var start = range.startContainer;"," while (start.nodeType == 1 && range.startOffset > 0) {"," start = range.startContainer.childNodes[range.startOffset - 1];"," if (!start){"," break;"," }"," range.setStart(start, start.nodeType == 1 ? start.childNodes.length : start.nodeValue.length);"," range.collapse(true);"," start = range.startContainer;"," }",""," do{"," if (range.startOffset == 0) {"," start = range.startContainer.previousSibling;",""," while (start && start.nodeType == 1) {"," start = start.lastChild;"," }"," if (!start || domUtils.isFillChar(start)){"," break;"," }"," offset = start.nodeValue.length;"," } else {"," start = range.startContainer;"," offset = range.startOffset;"," }"," range.setStart(start, offset - 1);"," charCode = range.toString().charCodeAt(0);"," } while (charCode != 160 && charCode != 32);",""," if (range.toString().replace(new RegExp(domUtils.fillChar, 'g'), '').match(/(?:https?:\\/\\/|ssh:\\/\\/|ftp:\\/\\/|file:\\/|www\\.)/i)) {"," while(range.toString().length){"," if(/^(?:https?:\\/\\/|ssh:\\/\\/|ftp:\\/\\/|file:\\/|www\\.)/i.test(range.toString())){"," break;"," }"," try{"," range.setStart(range.startContainer,range.startOffset+1);"," }catch(e){"," //trace:2121"," var start = range.startContainer;"," while(!(next = start.nextSibling)){"," if(domUtils.isBody(start)){"," return;"," }"," start = start.parentNode;",""," }"," range.setStart(next,0);",""," }",""," }"," //range的开始边界已经在a标签里的不再处理"," if(domUtils.findParentByTagName(range.startContainer,'a',true)){"," return;"," }"," var a = me.document.createElement('a'),text = me.document.createTextNode(' '),href;",""," me.undoManger && me.undoManger.save();"," a.appendChild(range.extractContents());"," a.href = a.innerHTML = a.innerHTML.replace(/<[^>]+>/g,'');"," href = a.getAttribute(\"href\").replace(new RegExp(domUtils.fillChar,'g'),'');"," href = /^(?:https?:\\/\\/)/ig.test(href) ? href : \"http://\"+ href;"," a.setAttribute('_src',utils.html(href));"," a.href = utils.html(href);",""," range.insertNode(a);"," a.parentNode.insertBefore(text, a.nextSibling);"," range.setStart(text, 0);"," range.collapse(true);"," sel.removeAllRanges();"," sel.addRange(range);"," me.undoManger && me.undoManger.save();"," }"," }"," });"," };"]; +_$jscoverage['plugins/autolink.js'][9]++; +UE.plugins.autolink = (function () { + _$jscoverage['plugins/autolink.js'][10]++; + var cont = 0; + _$jscoverage['plugins/autolink.js'][11]++; + if (browser.ie) { + _$jscoverage['plugins/autolink.js'][12]++; + return; + } + _$jscoverage['plugins/autolink.js'][14]++; + var me = this; + _$jscoverage['plugins/autolink.js'][15]++; + me.addListener("reset", (function () { + _$jscoverage['plugins/autolink.js'][16]++; + cont = 0; +})); + _$jscoverage['plugins/autolink.js'][18]++; + me.addListener("keydown", (function (type, evt) { + _$jscoverage['plugins/autolink.js'][19]++; + var keyCode = (evt.keyCode || evt.which); + _$jscoverage['plugins/autolink.js'][21]++; + if (((keyCode == 32) || (keyCode == 13))) { + _$jscoverage['plugins/autolink.js'][23]++; + var sel = me.selection.getNative(), range = sel.getRangeAt(0).cloneRange(), offset, charCode; + _$jscoverage['plugins/autolink.js'][28]++; + var start = range.startContainer; + _$jscoverage['plugins/autolink.js'][29]++; + while (((start.nodeType == 1) && (range.startOffset > 0))) { + _$jscoverage['plugins/autolink.js'][30]++; + start = range.startContainer.childNodes[(range.startOffset - 1)]; + _$jscoverage['plugins/autolink.js'][31]++; + if ((! start)) { + _$jscoverage['plugins/autolink.js'][32]++; + break; + } + _$jscoverage['plugins/autolink.js'][34]++; + range.setStart(start, ((start.nodeType == 1)? start.childNodes.length: start.nodeValue.length)); + _$jscoverage['plugins/autolink.js'][35]++; + range.collapse(true); + _$jscoverage['plugins/autolink.js'][36]++; + start = range.startContainer; +} + _$jscoverage['plugins/autolink.js'][39]++; + do { + _$jscoverage['plugins/autolink.js'][40]++; + if ((range.startOffset == 0)) { + _$jscoverage['plugins/autolink.js'][41]++; + start = range.startContainer.previousSibling; + _$jscoverage['plugins/autolink.js'][43]++; + while ((start && (start.nodeType == 1))) { + _$jscoverage['plugins/autolink.js'][44]++; + start = start.lastChild; +} + _$jscoverage['plugins/autolink.js'][46]++; + if (((! start) || domUtils.isFillChar(start))) { + _$jscoverage['plugins/autolink.js'][47]++; + break; + } + _$jscoverage['plugins/autolink.js'][49]++; + offset = start.nodeValue.length; + } + else { + _$jscoverage['plugins/autolink.js'][51]++; + start = range.startContainer; + _$jscoverage['plugins/autolink.js'][52]++; + offset = range.startOffset; + } + _$jscoverage['plugins/autolink.js'][54]++; + range.setStart(start, (offset - 1)); + _$jscoverage['plugins/autolink.js'][55]++; + charCode = range.toString().charCodeAt(0); +} + while (((charCode != 160) && (charCode != 32))); + _$jscoverage['plugins/autolink.js'][58]++; + if (range.toString().replace(new RegExp(domUtils.fillChar, "g"), "").match(/(?:https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.)/i)) { + _$jscoverage['plugins/autolink.js'][59]++; + while (range.toString().length) { + _$jscoverage['plugins/autolink.js'][60]++; + if (/^(?:https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.)/i.test(range.toString())) { + _$jscoverage['plugins/autolink.js'][61]++; + break; + } + _$jscoverage['plugins/autolink.js'][63]++; + try { + _$jscoverage['plugins/autolink.js'][64]++; + range.setStart(range.startContainer, (range.startOffset + 1)); + } + catch (e) { + _$jscoverage['plugins/autolink.js'][67]++; + var start = range.startContainer; + _$jscoverage['plugins/autolink.js'][68]++; + while ((! (next = start.nextSibling))) { + _$jscoverage['plugins/autolink.js'][69]++; + if (domUtils.isBody(start)) { + _$jscoverage['plugins/autolink.js'][70]++; + return; + } + _$jscoverage['plugins/autolink.js'][72]++; + start = start.parentNode; +} + _$jscoverage['plugins/autolink.js'][75]++; + range.setStart(next, 0); + } +} + _$jscoverage['plugins/autolink.js'][81]++; + if (domUtils.findParentByTagName(range.startContainer, "a", true)) { + _$jscoverage['plugins/autolink.js'][82]++; + return; + } + _$jscoverage['plugins/autolink.js'][84]++; + var a = me.document.createElement("a"), text = me.document.createTextNode(" "), href; + _$jscoverage['plugins/autolink.js'][86]++; + (me.undoManger && me.undoManger.save()); + _$jscoverage['plugins/autolink.js'][87]++; + a.appendChild(range.extractContents()); + _$jscoverage['plugins/autolink.js'][88]++; + a.href = (a.innerHTML = a.innerHTML.replace(/<[^>]+>/g, "")); + _$jscoverage['plugins/autolink.js'][89]++; + href = a.getAttribute("href").replace(new RegExp(domUtils.fillChar, "g"), ""); + _$jscoverage['plugins/autolink.js'][90]++; + href = (/^(?:https?:\/\/)/gi.test(href)? href: ("http://" + href)); + _$jscoverage['plugins/autolink.js'][91]++; + a.setAttribute("_src", utils.html(href)); + _$jscoverage['plugins/autolink.js'][92]++; + a.href = utils.html(href); + _$jscoverage['plugins/autolink.js'][94]++; + range.insertNode(a); + _$jscoverage['plugins/autolink.js'][95]++; + a.parentNode.insertBefore(text, a.nextSibling); + _$jscoverage['plugins/autolink.js'][96]++; + range.setStart(text, 0); + _$jscoverage['plugins/autolink.js'][97]++; + range.collapse(true); + _$jscoverage['plugins/autolink.js'][98]++; + sel.removeAllRanges(); + _$jscoverage['plugins/autolink.js'][99]++; + sel.addRange(range); + _$jscoverage['plugins/autolink.js'][100]++; + (me.undoManger && me.undoManger.save()); + } + } +})); +}); diff --git a/_test/coverage/plugins/autosubmit.js b/_test/coverage/plugins/autosubmit.js new file mode 100644 index 000000000..72002947b --- /dev/null +++ b/_test/coverage/plugins/autosubmit.js @@ -0,0 +1,77 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/autosubmit.js']) { + _$jscoverage['plugins/autosubmit.js'] = []; + _$jscoverage['plugins/autosubmit.js'][17] = 0; + _$jscoverage['plugins/autosubmit.js'][18] = 0; + _$jscoverage['plugins/autosubmit.js'][19] = 0; + _$jscoverage['plugins/autosubmit.js'][21] = 0; + _$jscoverage['plugins/autosubmit.js'][23] = 0; + _$jscoverage['plugins/autosubmit.js'][24] = 0; + _$jscoverage['plugins/autosubmit.js'][25] = 0; + _$jscoverage['plugins/autosubmit.js'][27] = 0; + _$jscoverage['plugins/autosubmit.js'][28] = 0; + _$jscoverage['plugins/autosubmit.js'][33] = 0; +} +_$jscoverage['plugins/autosubmit.js'].source = ["/**"," * 快捷键提交"," * @file"," * @since 1.2.6.1"," */","","/**"," * 对编辑器区域插入html字符串"," * @command autosubmit"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @example"," * ```javascript"," * editor.execCommand( 'autosubmit' );"," * ```"," */","UE.plugins['autosubmit'] = function(){"," var me = this;"," me.commands['autosubmit'] = {"," execCommand:function () {"," var me=this,"," form = domUtils.findParentByTagName(me.iframe,\"form\", false);"," if (form) {"," if(me.fireEvent(\"beforesubmit\")===false){"," return;"," }"," me.sync();"," form.submit();"," }"," }"," };"," //快捷键"," me.addshortcutkey({"," \"autosubmit\" : \"ctrl+13\" //手动提交"," });","};"]; +_$jscoverage['plugins/autosubmit.js'][17]++; +UE.plugins.autosubmit = (function () { + _$jscoverage['plugins/autosubmit.js'][18]++; + var me = this; + _$jscoverage['plugins/autosubmit.js'][19]++; + me.commands.autosubmit = {execCommand: (function () { + _$jscoverage['plugins/autosubmit.js'][21]++; + var me = this, form = domUtils.findParentByTagName(me.iframe, "form", false); + _$jscoverage['plugins/autosubmit.js'][23]++; + if (form) { + _$jscoverage['plugins/autosubmit.js'][24]++; + if ((me.fireEvent("beforesubmit") === false)) { + _$jscoverage['plugins/autosubmit.js'][25]++; + return; + } + _$jscoverage['plugins/autosubmit.js'][27]++; + me.sync(); + _$jscoverage['plugins/autosubmit.js'][28]++; + form.submit(); + } +})}; + _$jscoverage['plugins/autosubmit.js'][33]++; + me.addshortcutkey({"autosubmit": "ctrl+13"}); +}); diff --git a/_test/coverage/plugins/autotypeset.js b/_test/coverage/plugins/autotypeset.js new file mode 100644 index 000000000..86f561530 --- /dev/null +++ b/_test/coverage/plugins/autotypeset.js @@ -0,0 +1,434 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/autotypeset.js']) { + _$jscoverage['plugins/autotypeset.js'] = []; + _$jscoverage['plugins/autotypeset.js'][11] = 0; + _$jscoverage['plugins/autotypeset.js'][13] = 0; + _$jscoverage['plugins/autotypeset.js'][28] = 0; + _$jscoverage['plugins/autotypeset.js'][47] = 0; + _$jscoverage['plugins/autotypeset.js'][48] = 0; + _$jscoverage['plugins/autotypeset.js'][50] = 0; + _$jscoverage['plugins/autotypeset.js'][51] = 0; + _$jscoverage['plugins/autotypeset.js'][52] = 0; + _$jscoverage['plugins/autotypeset.js'][53] = 0; + _$jscoverage['plugins/autotypeset.js'][54] = 0; + _$jscoverage['plugins/autotypeset.js'][55] = 0; + _$jscoverage['plugins/autotypeset.js'][56] = 0; + _$jscoverage['plugins/autotypeset.js'][60] = 0; + _$jscoverage['plugins/autotypeset.js'][63] = 0; + _$jscoverage['plugins/autotypeset.js'][68] = 0; + _$jscoverage['plugins/autotypeset.js'][69] = 0; + _$jscoverage['plugins/autotypeset.js'][70] = 0; + _$jscoverage['plugins/autotypeset.js'][71] = 0; + _$jscoverage['plugins/autotypeset.js'][72] = 0; + _$jscoverage['plugins/autotypeset.js'][76] = 0; + _$jscoverage['plugins/autotypeset.js'][77] = 0; + _$jscoverage['plugins/autotypeset.js'][78] = 0; + _$jscoverage['plugins/autotypeset.js'][79] = 0; + _$jscoverage['plugins/autotypeset.js'][80] = 0; + _$jscoverage['plugins/autotypeset.js'][82] = 0; + _$jscoverage['plugins/autotypeset.js'][83] = 0; + _$jscoverage['plugins/autotypeset.js'][85] = 0; + _$jscoverage['plugins/autotypeset.js'][87] = 0; + _$jscoverage['plugins/autotypeset.js'][90] = 0; + _$jscoverage['plugins/autotypeset.js'][92] = 0; + _$jscoverage['plugins/autotypeset.js'][93] = 0; + _$jscoverage['plugins/autotypeset.js'][96] = 0; + _$jscoverage['plugins/autotypeset.js'][97] = 0; + _$jscoverage['plugins/autotypeset.js'][99] = 0; + _$jscoverage['plugins/autotypeset.js'][103] = 0; + _$jscoverage['plugins/autotypeset.js'][104] = 0; + _$jscoverage['plugins/autotypeset.js'][105] = 0; + _$jscoverage['plugins/autotypeset.js'][108] = 0; + _$jscoverage['plugins/autotypeset.js'][110] = 0; + _$jscoverage['plugins/autotypeset.js'][111] = 0; + _$jscoverage['plugins/autotypeset.js'][112] = 0; + _$jscoverage['plugins/autotypeset.js'][113] = 0; + _$jscoverage['plugins/autotypeset.js'][114] = 0; + _$jscoverage['plugins/autotypeset.js'][115] = 0; + _$jscoverage['plugins/autotypeset.js'][116] = 0; + _$jscoverage['plugins/autotypeset.js'][118] = 0; + _$jscoverage['plugins/autotypeset.js'][123] = 0; + _$jscoverage['plugins/autotypeset.js'][124] = 0; + _$jscoverage['plugins/autotypeset.js'][125] = 0; + _$jscoverage['plugins/autotypeset.js'][126] = 0; + _$jscoverage['plugins/autotypeset.js'][127] = 0; + _$jscoverage['plugins/autotypeset.js'][130] = 0; + _$jscoverage['plugins/autotypeset.js'][131] = 0; + _$jscoverage['plugins/autotypeset.js'][136] = 0; + _$jscoverage['plugins/autotypeset.js'][137] = 0; + _$jscoverage['plugins/autotypeset.js'][138] = 0; + _$jscoverage['plugins/autotypeset.js'][140] = 0; + _$jscoverage['plugins/autotypeset.js'][141] = 0; + _$jscoverage['plugins/autotypeset.js'][150] = 0; + _$jscoverage['plugins/autotypeset.js'][152] = 0; + _$jscoverage['plugins/autotypeset.js'][153] = 0; + _$jscoverage['plugins/autotypeset.js'][155] = 0; + _$jscoverage['plugins/autotypeset.js'][159] = 0; + _$jscoverage['plugins/autotypeset.js'][160] = 0; + _$jscoverage['plugins/autotypeset.js'][161] = 0; + _$jscoverage['plugins/autotypeset.js'][162] = 0; + _$jscoverage['plugins/autotypeset.js'][166] = 0; + _$jscoverage['plugins/autotypeset.js'][167] = 0; + _$jscoverage['plugins/autotypeset.js'][168] = 0; + _$jscoverage['plugins/autotypeset.js'][170] = 0; + _$jscoverage['plugins/autotypeset.js'][171] = 0; + _$jscoverage['plugins/autotypeset.js'][172] = 0; + _$jscoverage['plugins/autotypeset.js'][173] = 0; + _$jscoverage['plugins/autotypeset.js'][174] = 0; + _$jscoverage['plugins/autotypeset.js'][175] = 0; + _$jscoverage['plugins/autotypeset.js'][176] = 0; + _$jscoverage['plugins/autotypeset.js'][177] = 0; + _$jscoverage['plugins/autotypeset.js'][178] = 0; + _$jscoverage['plugins/autotypeset.js'][180] = 0; + _$jscoverage['plugins/autotypeset.js'][181] = 0; + _$jscoverage['plugins/autotypeset.js'][183] = 0; + _$jscoverage['plugins/autotypeset.js'][191] = 0; + _$jscoverage['plugins/autotypeset.js'][192] = 0; + _$jscoverage['plugins/autotypeset.js'][194] = 0; + _$jscoverage['plugins/autotypeset.js'][195] = 0; + _$jscoverage['plugins/autotypeset.js'][196] = 0; + _$jscoverage['plugins/autotypeset.js'][197] = 0; + _$jscoverage['plugins/autotypeset.js'][198] = 0; + _$jscoverage['plugins/autotypeset.js'][200] = 0; + _$jscoverage['plugins/autotypeset.js'][201] = 0; + _$jscoverage['plugins/autotypeset.js'][203] = 0; + _$jscoverage['plugins/autotypeset.js'][204] = 0; + _$jscoverage['plugins/autotypeset.js'][208] = 0; + _$jscoverage['plugins/autotypeset.js'][209] = 0; + _$jscoverage['plugins/autotypeset.js'][210] = 0; + _$jscoverage['plugins/autotypeset.js'][217] = 0; + _$jscoverage['plugins/autotypeset.js'][218] = 0; + _$jscoverage['plugins/autotypeset.js'][219] = 0; + _$jscoverage['plugins/autotypeset.js'][227] = 0; + _$jscoverage['plugins/autotypeset.js'][228] = 0; + _$jscoverage['plugins/autotypeset.js'][229] = 0; + _$jscoverage['plugins/autotypeset.js'][233] = 0; + _$jscoverage['plugins/autotypeset.js'][234] = 0; + _$jscoverage['plugins/autotypeset.js'][237] = 0; + _$jscoverage['plugins/autotypeset.js'][238] = 0; + _$jscoverage['plugins/autotypeset.js'][241] = 0; + _$jscoverage['plugins/autotypeset.js'][243] = 0; + _$jscoverage['plugins/autotypeset.js'][244] = 0; + _$jscoverage['plugins/autotypeset.js'][245] = 0; + _$jscoverage['plugins/autotypeset.js'][247] = 0; +} +_$jscoverage['plugins/autotypeset.js'].source = ["///import core","///commands 自动排版","///commandsName autotypeset","///commandsTitle 自动排版","/*"," * 自动排版"," * @function"," * @name baidu.editor.execCommands"," */","","UE.plugins['autotypeset'] = function(){",""," this.setOpt({'autotypeset':{"," mergeEmptyline : true, //合并空行"," removeClass : true, //去掉冗余的class"," removeEmptyline : false, //去掉空行"," textAlign : \"left\", //段落的排版方式,可以是 left,right,center,justify 去掉这个属性表示不执行排版"," imageBlockLine : 'center', //图片的浮动方式,独占一行剧中,左右浮动,默认: center,left,right,none 去掉这个属性表示不执行排版"," pasteFilter : false, //根据规则过滤没事粘贴进来的内容"," clearFontSize : false, //去掉所有的内嵌字号,使用编辑器默认的字号"," clearFontFamily : false, //去掉所有的内嵌字体,使用编辑器默认的字体"," removeEmptyNode : false, // 去掉空节点"," //可以去掉的标签"," removeTagNames : utils.extend({div:1},dtd.$removeEmpty),"," indent : false, // 行首缩进"," indentValue : '2em' //行首缩进的大小"," }});"," var me = this,"," opt = me.options.autotypeset,"," remainClass = {"," 'selectTdClass':1,"," 'pagebreak':1,"," 'anchorclass':1"," },"," remainTag = {"," 'li':1"," },"," tags = {"," div:1,"," p:1,"," //trace:2183 这些也认为是行"," blockquote:1,center:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,"," span:1"," },"," highlightCont;"," //升级了版本,但配置项目里没有autotypeset"," if(!opt){"," return;"," }"," function isLine(node,notEmpty){"," if(!node || node.nodeType == 3)"," return 0;"," if(domUtils.isBr(node))"," return 1;"," if(node && node.parentNode && tags[node.tagName.toLowerCase()]){"," if(highlightCont && highlightCont.contains(node)"," ||"," node.getAttribute('pagebreak')"," ){"," return 0;"," }",""," return notEmpty ? !domUtils.isEmptyBlock(node) : domUtils.isEmptyBlock(node,new RegExp('[\\\\s'+domUtils.fillChar"," +']','g'));"," }"," }",""," function removeNotAttributeSpan(node){"," if(!node.style.cssText){"," domUtils.removeAttributes(node,['style']);"," if(node.tagName.toLowerCase() == 'span' && domUtils.hasNoAttributes(node)){"," domUtils.remove(node,true);"," }"," }"," }"," function autotype(type,html){"," var me = this,cont;"," if(html){"," if(!opt.pasteFilter){"," return;"," }"," cont = me.document.createElement('div');"," cont.innerHTML = html.html;"," }else{"," cont = me.document.body;"," }"," var nodes = domUtils.getElementsByTagName(cont,'*');",""," // 行首缩进,段落方向,段间距,段内间距"," for(var i=0,ci;ci=nodes[i++];){",""," if(me.fireEvent('excludeNodeinautotype',ci) === true){"," continue;"," }"," //font-size"," if(opt.clearFontSize && ci.style.fontSize){"," domUtils.removeStyle(ci,'font-size');",""," removeNotAttributeSpan(ci);",""," }"," //font-family"," if(opt.clearFontFamily && ci.style.fontFamily){"," domUtils.removeStyle(ci,'font-family');"," removeNotAttributeSpan(ci);"," }",""," if(isLine(ci)){"," //合并空行"," if(opt.mergeEmptyline ){"," var next = ci.nextSibling,tmpNode,isBr = domUtils.isBr(ci);"," while(isLine(next)){"," tmpNode = next;"," next = tmpNode.nextSibling;"," if(isBr && (!next || next && !domUtils.isBr(next))){"," break;"," }"," domUtils.remove(tmpNode);"," }",""," }"," //去掉空行,保留占位的空行"," if(opt.removeEmptyline && domUtils.inDoc(ci,cont) && !remainTag[ci.parentNode.tagName.toLowerCase()] ){"," if(domUtils.isBr(ci)){"," next = ci.nextSibling;"," if(next && !domUtils.isBr(next)){"," continue;"," }"," }"," domUtils.remove(ci);"," continue;",""," }",""," }"," if(isLine(ci,true) && ci.tagName != 'SPAN'){"," if(opt.indent){"," ci.style.textIndent = opt.indentValue;"," }"," if(opt.textAlign){"," ci.style.textAlign = opt.textAlign;"," }","// if(opt.lineHeight)","// ci.style.lineHeight = opt.lineHeight + 'cm';","",""," }",""," //去掉class,保留的class不去掉"," if(opt.removeClass && ci.className && !remainClass[ci.className.toLowerCase()]){",""," if(highlightCont && highlightCont.contains(ci)){"," continue;"," }"," domUtils.removeAttributes(ci,['class']);"," }",""," //表情不处理"," if(opt.imageBlockLine && ci.tagName.toLowerCase() == 'img' && !ci.getAttribute('emotion')){"," if(html){"," var img = ci;"," switch (opt.imageBlockLine){"," case 'left':"," case 'right':"," case 'none':"," var pN = img.parentNode,tmpNode,pre,next;"," while(dtd.$inline[pN.tagName] || pN.tagName == 'A'){"," pN = pN.parentNode;"," }"," tmpNode = pN;"," if(tmpNode.tagName == 'P' && domUtils.getStyle(tmpNode,'text-align') == 'center'){"," if(!domUtils.isBody(tmpNode) && domUtils.getChildCount(tmpNode,function(node){return !domUtils.isBr(node) && !domUtils.isWhitespace(node)}) == 1){"," pre = tmpNode.previousSibling;"," next = tmpNode.nextSibling;"," if(pre && next && pre.nodeType == 1 && next.nodeType == 1 && pre.tagName == next.tagName && domUtils.isBlockElm(pre)){"," pre.appendChild(tmpNode.firstChild);"," while(next.firstChild){"," pre.appendChild(next.firstChild);"," }"," domUtils.remove(tmpNode);"," domUtils.remove(next);"," }else{"," domUtils.setStyle(tmpNode,'text-align','');"," }","",""," }","",""," }"," domUtils.setStyle(img,'float',opt.imageBlockLine);"," break;"," case 'center':"," if(me.queryCommandValue('imagefloat') != 'center'){"," pN = img.parentNode;"," domUtils.setStyle(img,'float','none');"," tmpNode = img;"," while(pN && domUtils.getChildCount(pN,function(node){return !domUtils.isBr(node) && !domUtils.isWhitespace(node)}) == 1"," && (dtd.$inline[pN.tagName] || pN.tagName == 'A')){"," tmpNode = pN;"," pN = pN.parentNode;"," }"," var pNode = me.document.createElement('p');"," domUtils.setAttributes(pNode,{",""," style:'text-align:center'"," });"," tmpNode.parentNode.insertBefore(pNode,tmpNode);"," pNode.appendChild(tmpNode);"," domUtils.setStyle(tmpNode,'float','');",""," }","",""," }"," }else{"," var range = me.selection.getRange();"," range.selectNode(ci).select();"," me.execCommand('imagefloat',opt.imageBlockLine);"," }","","",""," }",""," //去掉冗余的标签"," if(opt.removeEmptyNode){"," if(opt.removeTagNames[ci.tagName.toLowerCase()] && domUtils.hasNoAttributes(ci) && domUtils.isEmptyBlock(ci)){"," domUtils.remove(ci);"," }"," }"," }"," if(html){"," html.html = cont.innerHTML;"," }"," }"," if(opt.pasteFilter){"," me.addListener('beforepaste',autotype);"," }",""," me.commands['autotypeset'] = {"," execCommand:function () {"," me.removeListener('beforepaste',autotype);"," if(opt.pasteFilter){"," me.addListener('beforepaste',autotype);"," }"," autotype.call(me)"," }",""," };","","};",""]; +_$jscoverage['plugins/autotypeset.js'][11]++; +UE.plugins.autotypeset = (function () { + _$jscoverage['plugins/autotypeset.js'][13]++; + this.setOpt({"autotypeset": {mergeEmptyline: true, removeClass: true, removeEmptyline: false, textAlign: "left", imageBlockLine: "center", pasteFilter: false, clearFontSize: false, clearFontFamily: false, removeEmptyNode: false, removeTagNames: utils.extend({div: 1}, dtd.$removeEmpty), indent: false, indentValue: "2em"}}); + _$jscoverage['plugins/autotypeset.js'][28]++; + var me = this, opt = me.options.autotypeset, remainClass = {"selectTdClass": 1, "pagebreak": 1, "anchorclass": 1}, remainTag = {"li": 1}, tags = {div: 1, p: 1, blockquote: 1, center: 1, h1: 1, h2: 1, h3: 1, h4: 1, h5: 1, h6: 1, span: 1}, highlightCont; + _$jscoverage['plugins/autotypeset.js'][47]++; + if ((! opt)) { + _$jscoverage['plugins/autotypeset.js'][48]++; + return; + } + _$jscoverage['plugins/autotypeset.js'][50]++; + function isLine(node, notEmpty) { + _$jscoverage['plugins/autotypeset.js'][51]++; + if (((! node) || (node.nodeType == 3))) { + _$jscoverage['plugins/autotypeset.js'][52]++; + return 0; + } + _$jscoverage['plugins/autotypeset.js'][53]++; + if (domUtils.isBr(node)) { + _$jscoverage['plugins/autotypeset.js'][54]++; + return 1; + } + _$jscoverage['plugins/autotypeset.js'][55]++; + if ((node && node.parentNode && tags[node.tagName.toLowerCase()])) { + _$jscoverage['plugins/autotypeset.js'][56]++; + if (((highlightCont && highlightCont.contains(node)) || node.getAttribute("pagebreak"))) { + _$jscoverage['plugins/autotypeset.js'][60]++; + return 0; + } + _$jscoverage['plugins/autotypeset.js'][63]++; + return (notEmpty? (! domUtils.isEmptyBlock(node)): domUtils.isEmptyBlock(node, new RegExp(("[\\s" + domUtils.fillChar + "]"), "g"))); + } +} + _$jscoverage['plugins/autotypeset.js'][68]++; + function removeNotAttributeSpan(node) { + _$jscoverage['plugins/autotypeset.js'][69]++; + if ((! node.style.cssText)) { + _$jscoverage['plugins/autotypeset.js'][70]++; + domUtils.removeAttributes(node, ["style"]); + _$jscoverage['plugins/autotypeset.js'][71]++; + if (((node.tagName.toLowerCase() == "span") && domUtils.hasNoAttributes(node))) { + _$jscoverage['plugins/autotypeset.js'][72]++; + domUtils.remove(node, true); + } + } +} + _$jscoverage['plugins/autotypeset.js'][76]++; + function autotype(type, html) { + _$jscoverage['plugins/autotypeset.js'][77]++; + var me = this, cont; + _$jscoverage['plugins/autotypeset.js'][78]++; + if (html) { + _$jscoverage['plugins/autotypeset.js'][79]++; + if ((! opt.pasteFilter)) { + _$jscoverage['plugins/autotypeset.js'][80]++; + return; + } + _$jscoverage['plugins/autotypeset.js'][82]++; + cont = me.document.createElement("div"); + _$jscoverage['plugins/autotypeset.js'][83]++; + cont.innerHTML = html.html; + } + else { + _$jscoverage['plugins/autotypeset.js'][85]++; + cont = me.document.body; + } + _$jscoverage['plugins/autotypeset.js'][87]++; + var nodes = domUtils.getElementsByTagName(cont, "*"); + _$jscoverage['plugins/autotypeset.js'][90]++; + for (var i = 0, ci; (ci = nodes[(i++)]);) { + _$jscoverage['plugins/autotypeset.js'][92]++; + if ((me.fireEvent("excludeNodeinautotype", ci) === true)) { + _$jscoverage['plugins/autotypeset.js'][93]++; + continue; + } + _$jscoverage['plugins/autotypeset.js'][96]++; + if ((opt.clearFontSize && ci.style.fontSize)) { + _$jscoverage['plugins/autotypeset.js'][97]++; + domUtils.removeStyle(ci, "font-size"); + _$jscoverage['plugins/autotypeset.js'][99]++; + removeNotAttributeSpan(ci); + } + _$jscoverage['plugins/autotypeset.js'][103]++; + if ((opt.clearFontFamily && ci.style.fontFamily)) { + _$jscoverage['plugins/autotypeset.js'][104]++; + domUtils.removeStyle(ci, "font-family"); + _$jscoverage['plugins/autotypeset.js'][105]++; + removeNotAttributeSpan(ci); + } + _$jscoverage['plugins/autotypeset.js'][108]++; + if (isLine(ci)) { + _$jscoverage['plugins/autotypeset.js'][110]++; + if (opt.mergeEmptyline) { + _$jscoverage['plugins/autotypeset.js'][111]++; + var next = ci.nextSibling, tmpNode, isBr = domUtils.isBr(ci); + _$jscoverage['plugins/autotypeset.js'][112]++; + while (isLine(next)) { + _$jscoverage['plugins/autotypeset.js'][113]++; + tmpNode = next; + _$jscoverage['plugins/autotypeset.js'][114]++; + next = tmpNode.nextSibling; + _$jscoverage['plugins/autotypeset.js'][115]++; + if ((isBr && ((! next) || (next && (! domUtils.isBr(next)))))) { + _$jscoverage['plugins/autotypeset.js'][116]++; + break; + } + _$jscoverage['plugins/autotypeset.js'][118]++; + domUtils.remove(tmpNode); +} + } + _$jscoverage['plugins/autotypeset.js'][123]++; + if ((opt.removeEmptyline && domUtils.inDoc(ci, cont) && (! remainTag[ci.parentNode.tagName.toLowerCase()]))) { + _$jscoverage['plugins/autotypeset.js'][124]++; + if (domUtils.isBr(ci)) { + _$jscoverage['plugins/autotypeset.js'][125]++; + next = ci.nextSibling; + _$jscoverage['plugins/autotypeset.js'][126]++; + if ((next && (! domUtils.isBr(next)))) { + _$jscoverage['plugins/autotypeset.js'][127]++; + continue; + } + } + _$jscoverage['plugins/autotypeset.js'][130]++; + domUtils.remove(ci); + _$jscoverage['plugins/autotypeset.js'][131]++; + continue; + } + } + _$jscoverage['plugins/autotypeset.js'][136]++; + if ((isLine(ci, true) && (ci.tagName != "SPAN"))) { + _$jscoverage['plugins/autotypeset.js'][137]++; + if (opt.indent) { + _$jscoverage['plugins/autotypeset.js'][138]++; + ci.style.textIndent = opt.indentValue; + } + _$jscoverage['plugins/autotypeset.js'][140]++; + if (opt.textAlign) { + _$jscoverage['plugins/autotypeset.js'][141]++; + ci.style.textAlign = opt.textAlign; + } + } + _$jscoverage['plugins/autotypeset.js'][150]++; + if ((opt.removeClass && ci.className && (! remainClass[ci.className.toLowerCase()]))) { + _$jscoverage['plugins/autotypeset.js'][152]++; + if ((highlightCont && highlightCont.contains(ci))) { + _$jscoverage['plugins/autotypeset.js'][153]++; + continue; + } + _$jscoverage['plugins/autotypeset.js'][155]++; + domUtils.removeAttributes(ci, ["class"]); + } + _$jscoverage['plugins/autotypeset.js'][159]++; + if ((opt.imageBlockLine && (ci.tagName.toLowerCase() == "img") && (! ci.getAttribute("emotion")))) { + _$jscoverage['plugins/autotypeset.js'][160]++; + if (html) { + _$jscoverage['plugins/autotypeset.js'][161]++; + var img = ci; + _$jscoverage['plugins/autotypeset.js'][162]++; + switch (opt.imageBlockLine) { + case "left": + case "right": + case "none": + _$jscoverage['plugins/autotypeset.js'][166]++; + var pN = img.parentNode, tmpNode = tmpNode, pre, next = next; + _$jscoverage['plugins/autotypeset.js'][167]++; + while ((dtd.$inline[pN.tagName] || (pN.tagName == "A"))) { + _$jscoverage['plugins/autotypeset.js'][168]++; + pN = pN.parentNode; +} + _$jscoverage['plugins/autotypeset.js'][170]++; + tmpNode = pN; + _$jscoverage['plugins/autotypeset.js'][171]++; + if (((tmpNode.tagName == "P") && (domUtils.getStyle(tmpNode, "text-align") == "center"))) { + _$jscoverage['plugins/autotypeset.js'][172]++; + if (((! domUtils.isBody(tmpNode)) && (domUtils.getChildCount(tmpNode, (function (node) { + _$jscoverage['plugins/autotypeset.js'][172]++; + return ((! domUtils.isBr(node)) && (! domUtils.isWhitespace(node))); +})) == 1))) { + _$jscoverage['plugins/autotypeset.js'][173]++; + pre = tmpNode.previousSibling; + _$jscoverage['plugins/autotypeset.js'][174]++; + next = tmpNode.nextSibling; + _$jscoverage['plugins/autotypeset.js'][175]++; + if ((pre && next && (pre.nodeType == 1) && (next.nodeType == 1) && (pre.tagName == next.tagName) && domUtils.isBlockElm(pre))) { + _$jscoverage['plugins/autotypeset.js'][176]++; + pre.appendChild(tmpNode.firstChild); + _$jscoverage['plugins/autotypeset.js'][177]++; + while (next.firstChild) { + _$jscoverage['plugins/autotypeset.js'][178]++; + pre.appendChild(next.firstChild); +} + _$jscoverage['plugins/autotypeset.js'][180]++; + domUtils.remove(tmpNode); + _$jscoverage['plugins/autotypeset.js'][181]++; + domUtils.remove(next); + } + else { + _$jscoverage['plugins/autotypeset.js'][183]++; + domUtils.setStyle(tmpNode, "text-align", ""); + } + } + } + _$jscoverage['plugins/autotypeset.js'][191]++; + domUtils.setStyle(img, "float", opt.imageBlockLine); + _$jscoverage['plugins/autotypeset.js'][192]++; + break; + case "center": + _$jscoverage['plugins/autotypeset.js'][194]++; + if ((me.queryCommandValue("imagefloat") != "center")) { + _$jscoverage['plugins/autotypeset.js'][195]++; + pN = img.parentNode; + _$jscoverage['plugins/autotypeset.js'][196]++; + domUtils.setStyle(img, "float", "none"); + _$jscoverage['plugins/autotypeset.js'][197]++; + tmpNode = img; + _$jscoverage['plugins/autotypeset.js'][198]++; + while ((pN && (domUtils.getChildCount(pN, (function (node) { + _$jscoverage['plugins/autotypeset.js'][198]++; + return ((! domUtils.isBr(node)) && (! domUtils.isWhitespace(node))); +})) == 1) && (dtd.$inline[pN.tagName] || (pN.tagName == "A")))) { + _$jscoverage['plugins/autotypeset.js'][200]++; + tmpNode = pN; + _$jscoverage['plugins/autotypeset.js'][201]++; + pN = pN.parentNode; +} + _$jscoverage['plugins/autotypeset.js'][203]++; + var pNode = me.document.createElement("p"); + _$jscoverage['plugins/autotypeset.js'][204]++; + domUtils.setAttributes(pNode, {style: "text-align:center"}); + _$jscoverage['plugins/autotypeset.js'][208]++; + tmpNode.parentNode.insertBefore(pNode, tmpNode); + _$jscoverage['plugins/autotypeset.js'][209]++; + pNode.appendChild(tmpNode); + _$jscoverage['plugins/autotypeset.js'][210]++; + domUtils.setStyle(tmpNode, "float", ""); + } + } + } + else { + _$jscoverage['plugins/autotypeset.js'][217]++; + var range = me.selection.getRange(); + _$jscoverage['plugins/autotypeset.js'][218]++; + range.selectNode(ci).select(); + _$jscoverage['plugins/autotypeset.js'][219]++; + me.execCommand("imagefloat", opt.imageBlockLine); + } + } + _$jscoverage['plugins/autotypeset.js'][227]++; + if (opt.removeEmptyNode) { + _$jscoverage['plugins/autotypeset.js'][228]++; + if ((opt.removeTagNames[ci.tagName.toLowerCase()] && domUtils.hasNoAttributes(ci) && domUtils.isEmptyBlock(ci))) { + _$jscoverage['plugins/autotypeset.js'][229]++; + domUtils.remove(ci); + } + } +} + _$jscoverage['plugins/autotypeset.js'][233]++; + if (html) { + _$jscoverage['plugins/autotypeset.js'][234]++; + html.html = cont.innerHTML; + } +} + _$jscoverage['plugins/autotypeset.js'][237]++; + if (opt.pasteFilter) { + _$jscoverage['plugins/autotypeset.js'][238]++; + me.addListener("beforepaste", autotype); + } + _$jscoverage['plugins/autotypeset.js'][241]++; + me.commands.autotypeset = {execCommand: (function () { + _$jscoverage['plugins/autotypeset.js'][243]++; + me.removeListener("beforepaste", autotype); + _$jscoverage['plugins/autotypeset.js'][244]++; + if (opt.pasteFilter) { + _$jscoverage['plugins/autotypeset.js'][245]++; + me.addListener("beforepaste", autotype); + } + _$jscoverage['plugins/autotypeset.js'][247]++; + autotype.call(me); +})}; +}); diff --git a/_test/coverage/plugins/background.js b/_test/coverage/plugins/background.js new file mode 100644 index 000000000..a36521711 --- /dev/null +++ b/_test/coverage/plugins/background.js @@ -0,0 +1,92 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/background.js']) { + _$jscoverage['plugins/background.js'] = []; + _$jscoverage['plugins/background.js'][6] = 0; + _$jscoverage['plugins/background.js'][7] = 0; + _$jscoverage['plugins/background.js'][8] = 0; + _$jscoverage['plugins/background.js'][9] = 0; + _$jscoverage['plugins/background.js'][12] = 0; + _$jscoverage['plugins/background.js'][13] = 0; + _$jscoverage['plugins/background.js'][15] = 0; + _$jscoverage['plugins/background.js'][17] = 0; + _$jscoverage['plugins/background.js'][18] = 0; + _$jscoverage['plugins/background.js'][25] = 0; + _$jscoverage['plugins/background.js'][26] = 0; + _$jscoverage['plugins/background.js'][27] = 0; + _$jscoverage['plugins/background.js'][30] = 0; + _$jscoverage['plugins/background.js'][31] = 0; +} +_$jscoverage['plugins/background.js'].source = ["///import core","///commands 插入背景","///commandsName background","///commandsTitle 插入背景","///commandsDialog dialogs\\background","UE.plugins['background'] = function(){"," var me = this;"," me.addListener(\"getAllHtml\",function(type,headHtml){"," var body = this.body,"," su = domUtils.getComputedStyle(body,\"background-image\"),"," url=\"\";"," if(su.indexOf(me.options.imagePath)>0){"," url = su.substring(su.indexOf(me.options.imagePath),su.length-1).replace(/\"|\\(|\\)/ig,\"\");"," }else{"," url = su!=\"none\" ? su.replace(/url\\(\"?|\"?\\)/ig,\"\"):\"\";"," }"," var html = '<style type=\"text/css\">body{';"," var bgObj = {"," \"background-color\" : domUtils.getComputedStyle(body,\"background-color\")||\"#ffffff\","," 'background-image' : url ? 'url('+url+')' : '',"," 'background-repeat':domUtils.getComputedStyle(body,\"background-repeat\")||\"\","," 'background-position': browser.ie?(domUtils.getComputedStyle(body,\"background-position-x\")+\" \"+domUtils.getComputedStyle(body,\"background-position-y\")):domUtils.getComputedStyle(body,\"background-position\"),"," 'height':domUtils.getComputedStyle(body,\"height\")"," };"," for ( var name in bgObj ) {"," if ( bgObj.hasOwnProperty( name ) ) {"," html += name+\":\"+bgObj[name]+\";\";"," }"," }"," html += '}</style> ';"," headHtml.push(html);"," });","}"]; +_$jscoverage['plugins/background.js'][6]++; +UE.plugins.background = (function () { + _$jscoverage['plugins/background.js'][7]++; + var me = this; + _$jscoverage['plugins/background.js'][8]++; + me.addListener("getAllHtml", (function (type, headHtml) { + _$jscoverage['plugins/background.js'][9]++; + var body = this.body, su = domUtils.getComputedStyle(body, "background-image"), url = ""; + _$jscoverage['plugins/background.js'][12]++; + if ((su.indexOf(me.options.imagePath) > 0)) { + _$jscoverage['plugins/background.js'][13]++; + url = su.substring(su.indexOf(me.options.imagePath), (su.length - 1)).replace(/"|\(|\)/gi, ""); + } + else { + _$jscoverage['plugins/background.js'][15]++; + url = ((su != "none")? su.replace(/url\("?|"?\)/gi, ""): ""); + } + _$jscoverage['plugins/background.js'][17]++; + var html = " "; + _$jscoverage['plugins/background.js'][31]++; + headHtml.push(html); +})); +}); diff --git a/_test/coverage/plugins/basestyle.js b/_test/coverage/plugins/basestyle.js new file mode 100644 index 000000000..5022b1b24 --- /dev/null +++ b/_test/coverage/plugins/basestyle.js @@ -0,0 +1,159 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/basestyle.js']) { + _$jscoverage['plugins/basestyle.js'] = []; + _$jscoverage['plugins/basestyle.js'][7] = 0; + _$jscoverage['plugins/basestyle.js'][138] = 0; + _$jscoverage['plugins/basestyle.js'][145] = 0; + _$jscoverage['plugins/basestyle.js'][149] = 0; + _$jscoverage['plugins/basestyle.js'][154] = 0; + _$jscoverage['plugins/basestyle.js'][155] = 0; + _$jscoverage['plugins/basestyle.js'][156] = 0; + _$jscoverage['plugins/basestyle.js'][158] = 0; + _$jscoverage['plugins/basestyle.js'][159] = 0; + _$jscoverage['plugins/basestyle.js'][161] = 0; + _$jscoverage['plugins/basestyle.js'][165] = 0; + _$jscoverage['plugins/basestyle.js'][166] = 0; + _$jscoverage['plugins/basestyle.js'][167] = 0; + _$jscoverage['plugins/basestyle.js'][169] = 0; + _$jscoverage['plugins/basestyle.js'][170] = 0; + _$jscoverage['plugins/basestyle.js'][171] = 0; + _$jscoverage['plugins/basestyle.js'][172] = 0; + _$jscoverage['plugins/basestyle.js'][173] = 0; + _$jscoverage['plugins/basestyle.js'][174] = 0; + _$jscoverage['plugins/basestyle.js'][175] = 0; + _$jscoverage['plugins/basestyle.js'][177] = 0; + _$jscoverage['plugins/basestyle.js'][178] = 0; + _$jscoverage['plugins/basestyle.js'][179] = 0; + _$jscoverage['plugins/basestyle.js'][180] = 0; + _$jscoverage['plugins/basestyle.js'][185] = 0; + _$jscoverage['plugins/basestyle.js'][187] = 0; + _$jscoverage['plugins/basestyle.js'][189] = 0; + _$jscoverage['plugins/basestyle.js'][190] = 0; + _$jscoverage['plugins/basestyle.js'][191] = 0; + _$jscoverage['plugins/basestyle.js'][194] = 0; + _$jscoverage['plugins/basestyle.js'][196] = 0; + _$jscoverage['plugins/basestyle.js'][199] = 0; +} +_$jscoverage['plugins/basestyle.js'].source = ["/**"," * B、I、sub、super命令支持"," * @file"," * @since 1.2.6.1"," */","","UE.plugins['basestyle'] = function(){",""," /**"," * 字体加粗, 对已加粗的文本内容执行该命令, 将取消加粗"," * @command bold"," * @param { String } cmd 命令字符串"," * @method execCommand"," * @example"," * ```javascript"," * //editor是编辑器实例"," * //对当前选中的文本内容执行加粗操作"," * //第一次执行, 文本内容加粗"," * editor.execCommand( 'bold' );"," *"," * //第二次执行, 文本内容取消加粗"," * editor.execCommand( 'bold' );"," * ```"," */",""," /**"," * 获取当前选中的文本内容的加粗状态"," * @command bold"," * @param { String } cmd 命令字符串"," * @method queryCommandState"," * @return { int } 如果当前选中的所有文本内容已经被加粗, 则返回1, 否则返回0"," * @example"," * ```javascript"," * //editor是编辑器实例"," * //获取当前选中的文本内容的加粗状态"," * //output: 1 或者 0"," * console.log( editor.queryCommandState( 'bold' ) );"," * ```"," */",""," /**"," * 字体倾斜, 对已倾斜的文本内容执行该命令, 将取消倾斜"," * @command italic"," * @param { String } cmd 命令字符串"," * @method execCommand"," * @example"," * ```javascript"," * //editor是编辑器实例"," * //对当前选中的文本内容执行斜体操作"," * //第一次操作, 文本内容将变成斜体"," * editor.execCommand( 'italic' );"," *"," * //再次对同一文本内容执行, 则文本内容将恢复正常"," * editor.execCommand( 'italic' );"," * ```"," */",""," /**"," * 获取当前选中的文本内容的倾斜状态"," * @command italic"," * @method queryCommandState"," * @param { String } cmd 命令字符串"," * @return { int } 如果当前选中的所有文本内容已经是斜体, 则返回1, 否则返回0"," * @example"," * ```javascript"," * //editor是编辑器实例"," * //获取当前选中的文本内容的倾斜状态"," * //output: 1 或者 0"," * console.log( editor.queryCommandState( 'italic' ) );"," * ```"," */",""," /**"," * 下标文本, 把选中的文本内容切换成下标文本, 如果当前选中的文本已经是下标, 则该操作会把文本内容还原成"," * 正常文本"," * @command subscript"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @example"," * ```javascript"," * //editor是编辑器实例"," * //对当前选中的文本内容执行下标操作"," * //第一次操作, 文本内容将变成下标文本"," * editor.execCommand( 'subscript' );"," *"," * //再次对同一文本内容执行, 则文本内容将恢复正常"," * editor.execCommand( 'subscript' );"," * ```"," */",""," /**"," * 获取当前选中的文本内容的下标状态"," * @command subscript"," * @method queryCommandState"," * @param { String } cmd 命令字符串"," * @return { int } 如果当前选中的所有文本内容已经是下标文本, 则返回1, 否则返回0"," * @example"," * ```javascript"," * //editor是编辑器实例"," * //获取当前选中的文本内容的下标状态"," * //output: 1 或者 0"," * console.log( editor.queryCommandState( 'subscript' ) );"," * ```"," */",""," /**"," * 上标文本, 把选中的文本内容切换成上标文本, 如果当前选中的文本已经是上标, 则该操作会把文本内容还原成"," * 正常文本"," * @command superscript"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @example"," * ```javascript"," * //editor是编辑器实例"," * //对当前选中的文本内容执行上标操作"," * //第一次操作, 文本内容将变成上标文本"," * editor.execCommand( 'superscript' );"," *"," * //再次对同一文本内容执行, 则文本内容将恢复正常"," * editor.execCommand( 'superscript' );"," * ```"," */",""," /**"," * 获取当前选中的文本内容的上标状态"," * @command superscript"," * @method queryCommandState"," * @param { String } cmd 命令字符串"," * @return { int } 如果当前选中的所有文本内容已经是上标文本, 则返回1, 否则返回0"," * @example"," * ```javascript"," * //editor是编辑器实例"," * //获取当前选中的文本内容的上标状态"," * //output: 1 或者 0"," * console.log( editor.queryCommandState( 'superscript' ) );"," * ```"," */"," var basestyles = {"," 'bold':['strong','b'],"," 'italic':['em','i'],"," 'subscript':['sub'],"," 'superscript':['sup']"," },"," getObj = function(editor,tagNames){"," return domUtils.filterNodeList(editor.selection.getStartElementPath(),tagNames);"," },"," me = this;"," //添加快捷键"," me.addshortcutkey({"," \"Bold\" : \"ctrl+66\",//^B"," \"Italic\" : \"ctrl+73\", //^I"," \"Underline\" : \"ctrl+85\"//^U"," });"," me.addInputRule(function(root){"," utils.each(root.getNodesByTagName('b i'),function(node){"," switch (node.tagName){"," case 'b':"," node.tagName = 'strong';"," break;"," case 'i':"," node.tagName = 'em';"," }"," });"," });"," for ( var style in basestyles ) {"," (function( cmd, tagNames ) {"," me.commands[cmd] = {"," execCommand : function( cmdName ) {"," var range = me.selection.getRange(),obj = getObj(this,tagNames);"," if ( range.collapsed ) {"," if ( obj ) {"," var tmpText = me.document.createTextNode('');"," range.insertNode( tmpText ).removeInlineStyle( tagNames );"," range.setStartBefore(tmpText);"," domUtils.remove(tmpText);"," } else {"," var tmpNode = range.document.createElement( tagNames[0] );"," if(cmdName == 'superscript' || cmdName == 'subscript'){"," tmpText = me.document.createTextNode('');"," range.insertNode(tmpText)"," .removeInlineStyle(['sub','sup'])"," .setStartBefore(tmpText)"," .collapse(true);"," }"," range.insertNode( tmpNode ).setStart( tmpNode, 0 );"," }"," range.collapse( true );"," } else {"," if(cmdName == 'superscript' || cmdName == 'subscript'){"," if(!obj || obj.tagName.toLowerCase() != cmdName){"," range.removeInlineStyle(['sub','sup']);"," }"," }"," obj ? range.removeInlineStyle( tagNames ) : range.applyInlineStyle( tagNames[0] );"," }"," range.select();"," },"," queryCommandState : function() {"," return getObj(this,tagNames) ? 1 : 0;"," }"," };"," })( style, basestyles[style] );"," }","};",""]; +_$jscoverage['plugins/basestyle.js'][7]++; +UE.plugins.basestyle = (function () { + _$jscoverage['plugins/basestyle.js'][138]++; + var basestyles = {"bold": ["strong", "b"], "italic": ["em", "i"], "subscript": ["sub"], "superscript": ["sup"]}, getObj = (function (editor, tagNames) { + _$jscoverage['plugins/basestyle.js'][145]++; + return domUtils.filterNodeList(editor.selection.getStartElementPath(), tagNames); +}), me = this; + _$jscoverage['plugins/basestyle.js'][149]++; + me.addshortcutkey({"Bold": "ctrl+66", "Italic": "ctrl+73", "Underline": "ctrl+85"}); + _$jscoverage['plugins/basestyle.js'][154]++; + me.addInputRule((function (root) { + _$jscoverage['plugins/basestyle.js'][155]++; + utils.each(root.getNodesByTagName("b i"), (function (node) { + _$jscoverage['plugins/basestyle.js'][156]++; + switch (node.tagName) { + case "b": + _$jscoverage['plugins/basestyle.js'][158]++; + node.tagName = "strong"; + _$jscoverage['plugins/basestyle.js'][159]++; + break; + case "i": + _$jscoverage['plugins/basestyle.js'][161]++; + node.tagName = "em"; + } +})); +})); + _$jscoverage['plugins/basestyle.js'][165]++; + for (var style in basestyles) { + _$jscoverage['plugins/basestyle.js'][166]++; + (function (cmd, tagNames) { + _$jscoverage['plugins/basestyle.js'][167]++; + me.commands[cmd] = {execCommand: (function (cmdName) { + _$jscoverage['plugins/basestyle.js'][169]++; + var range = me.selection.getRange(), obj = getObj(this, tagNames); + _$jscoverage['plugins/basestyle.js'][170]++; + if (range.collapsed) { + _$jscoverage['plugins/basestyle.js'][171]++; + if (obj) { + _$jscoverage['plugins/basestyle.js'][172]++; + var tmpText = me.document.createTextNode(""); + _$jscoverage['plugins/basestyle.js'][173]++; + range.insertNode(tmpText).removeInlineStyle(tagNames); + _$jscoverage['plugins/basestyle.js'][174]++; + range.setStartBefore(tmpText); + _$jscoverage['plugins/basestyle.js'][175]++; + domUtils.remove(tmpText); + } + else { + _$jscoverage['plugins/basestyle.js'][177]++; + var tmpNode = range.document.createElement(tagNames[0]); + _$jscoverage['plugins/basestyle.js'][178]++; + if (((cmdName == "superscript") || (cmdName == "subscript"))) { + _$jscoverage['plugins/basestyle.js'][179]++; + tmpText = me.document.createTextNode(""); + _$jscoverage['plugins/basestyle.js'][180]++; + range.insertNode(tmpText).removeInlineStyle(["sub", "sup"]).setStartBefore(tmpText).collapse(true); + } + _$jscoverage['plugins/basestyle.js'][185]++; + range.insertNode(tmpNode).setStart(tmpNode, 0); + } + _$jscoverage['plugins/basestyle.js'][187]++; + range.collapse(true); + } + else { + _$jscoverage['plugins/basestyle.js'][189]++; + if (((cmdName == "superscript") || (cmdName == "subscript"))) { + _$jscoverage['plugins/basestyle.js'][190]++; + if (((! obj) || (obj.tagName.toLowerCase() != cmdName))) { + _$jscoverage['plugins/basestyle.js'][191]++; + range.removeInlineStyle(["sub", "sup"]); + } + } + _$jscoverage['plugins/basestyle.js'][194]++; + (obj? range.removeInlineStyle(tagNames): range.applyInlineStyle(tagNames[0])); + } + _$jscoverage['plugins/basestyle.js'][196]++; + range.select(); +}), queryCommandState: (function () { + _$jscoverage['plugins/basestyle.js'][199]++; + return (getObj(this, tagNames)? 1: 0); +})}; +})(style, basestyles[style]); +} +}); diff --git a/_test/coverage/plugins/blockquote.js b/_test/coverage/plugins/blockquote.js new file mode 100644 index 000000000..af7ef670e --- /dev/null +++ b/_test/coverage/plugins/blockquote.js @@ -0,0 +1,287 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/blockquote.js']) { + _$jscoverage['plugins/blockquote.js'] = []; + _$jscoverage['plugins/blockquote.js'][44] = 0; + _$jscoverage['plugins/blockquote.js'][45] = 0; + _$jscoverage['plugins/blockquote.js'][46] = 0; + _$jscoverage['plugins/blockquote.js'][47] = 0; + _$jscoverage['plugins/blockquote.js'][49] = 0; + _$jscoverage['plugins/blockquote.js'][51] = 0; + _$jscoverage['plugins/blockquote.js'][56] = 0; + _$jscoverage['plugins/blockquote.js'][58] = 0; + _$jscoverage['plugins/blockquote.js'][59] = 0; + _$jscoverage['plugins/blockquote.js'][62] = 0; + _$jscoverage['plugins/blockquote.js'][65] = 0; + _$jscoverage['plugins/blockquote.js'][66] = 0; + _$jscoverage['plugins/blockquote.js'][69] = 0; + _$jscoverage['plugins/blockquote.js'][70] = 0; + _$jscoverage['plugins/blockquote.js'][72] = 0; + _$jscoverage['plugins/blockquote.js'][75] = 0; + _$jscoverage['plugins/blockquote.js'][76] = 0; + _$jscoverage['plugins/blockquote.js'][77] = 0; + _$jscoverage['plugins/blockquote.js'][78] = 0; + _$jscoverage['plugins/blockquote.js'][79] = 0; + _$jscoverage['plugins/blockquote.js'][81] = 0; + _$jscoverage['plugins/blockquote.js'][87] = 0; + _$jscoverage['plugins/blockquote.js'][88] = 0; + _$jscoverage['plugins/blockquote.js'][89] = 0; + _$jscoverage['plugins/blockquote.js'][90] = 0; + _$jscoverage['plugins/blockquote.js'][91] = 0; + _$jscoverage['plugins/blockquote.js'][92] = 0; + _$jscoverage['plugins/blockquote.js'][101] = 0; + _$jscoverage['plugins/blockquote.js'][107] = 0; + _$jscoverage['plugins/blockquote.js'][108] = 0; + _$jscoverage['plugins/blockquote.js'][109] = 0; + _$jscoverage['plugins/blockquote.js'][110] = 0; + _$jscoverage['plugins/blockquote.js'][111] = 0; + _$jscoverage['plugins/blockquote.js'][112] = 0; + _$jscoverage['plugins/blockquote.js'][114] = 0; + _$jscoverage['plugins/blockquote.js'][117] = 0; + _$jscoverage['plugins/blockquote.js'][120] = 0; + _$jscoverage['plugins/blockquote.js'][122] = 0; + _$jscoverage['plugins/blockquote.js'][123] = 0; + _$jscoverage['plugins/blockquote.js'][124] = 0; + _$jscoverage['plugins/blockquote.js'][126] = 0; + _$jscoverage['plugins/blockquote.js'][128] = 0; + _$jscoverage['plugins/blockquote.js'][131] = 0; + _$jscoverage['plugins/blockquote.js'][132] = 0; + _$jscoverage['plugins/blockquote.js'][136] = 0; + _$jscoverage['plugins/blockquote.js'][137] = 0; + _$jscoverage['plugins/blockquote.js'][138] = 0; + _$jscoverage['plugins/blockquote.js'][140] = 0; + _$jscoverage['plugins/blockquote.js'][141] = 0; + _$jscoverage['plugins/blockquote.js'][143] = 0; + _$jscoverage['plugins/blockquote.js'][146] = 0; + _$jscoverage['plugins/blockquote.js'][149] = 0; + _$jscoverage['plugins/blockquote.js'][151] = 0; + _$jscoverage['plugins/blockquote.js'][152] = 0; + _$jscoverage['plugins/blockquote.js'][153] = 0; + _$jscoverage['plugins/blockquote.js'][156] = 0; + _$jscoverage['plugins/blockquote.js'][157] = 0; + _$jscoverage['plugins/blockquote.js'][163] = 0; + _$jscoverage['plugins/blockquote.js'][164] = 0; + _$jscoverage['plugins/blockquote.js'][165] = 0; + _$jscoverage['plugins/blockquote.js'][166] = 0; + _$jscoverage['plugins/blockquote.js'][168] = 0; + _$jscoverage['plugins/blockquote.js'][169] = 0; + _$jscoverage['plugins/blockquote.js'][170] = 0; + _$jscoverage['plugins/blockquote.js'][171] = 0; + _$jscoverage['plugins/blockquote.js'][176] = 0; + _$jscoverage['plugins/blockquote.js'][179] = 0; +} +_$jscoverage['plugins/blockquote.js'].source = ["/**"," * 添加引用"," * @file"," * @since 1.2.6.1"," */","","/**"," * 根据选区位置对标签添加引用"," * @command blockquote"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @example"," * ```javascript"," * editor.execCommand( 'blockquote' );"," * ```"," */","","/**"," * 根据选区位置对标签添加引用"," * @command blockquote"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @param { Object } attrs 节点属性"," * @example"," * ```javascript"," * editor.execCommand( 'blockquote',{"," * color:'#000'"," * } );"," * ```"," */","","/**"," * 返回当前选区位置是否在引用标签内"," * @command blockquote"," * @method queryCommandState"," * @param { String } cmd 命令字符串"," * @return { int } 0为是,-1为不是"," * @example"," * ```javascript"," * editor.queryCommandState( 'blockquote' );"," * ```"," */","","UE.plugins['blockquote'] = function(){"," var me = this;"," function getObj(editor){"," return domUtils.filterNodeList(editor.selection.getStartElementPath(),'blockquote');"," }"," me.commands['blockquote'] = {"," execCommand : function( cmdName, attrs ) {"," var range = this.selection.getRange(),"," obj = getObj(this),"," blockquote = dtd.blockquote,"," bookmark = range.createBookmark();",""," if ( obj ) {",""," var start = range.startContainer,"," startBlock = domUtils.isBlockElm(start) ? start : domUtils.findParent(start,function(node){return domUtils.isBlockElm(node)}),",""," end = range.endContainer,"," endBlock = domUtils.isBlockElm(end) ? end : domUtils.findParent(end,function(node){return domUtils.isBlockElm(node)});",""," //处理一下li"," startBlock = domUtils.findParentByTagName(startBlock,'li',true) || startBlock;"," endBlock = domUtils.findParentByTagName(endBlock,'li',true) || endBlock;","",""," if(startBlock.tagName == 'LI' || startBlock.tagName == 'TD' || startBlock === obj || domUtils.isBody(startBlock)){"," domUtils.remove(obj,true);"," }else{"," domUtils.breakParent(startBlock,obj);"," }",""," if(startBlock !== endBlock){"," obj = domUtils.findParentByTagName(endBlock,'blockquote');"," if(obj){"," if(endBlock.tagName == 'LI' || endBlock.tagName == 'TD'|| domUtils.isBody(endBlock)){"," obj.parentNode && domUtils.remove(obj,true);"," }else{"," domUtils.breakParent(endBlock,obj);"," }",""," }"," }",""," var blockquotes = domUtils.getElementsByTagName(this.document,'blockquote');"," for(var i=0,bi;bi=blockquotes[i++];){"," if(!bi.childNodes.length){"," domUtils.remove(bi);"," }else if(domUtils.getPosition(bi,startBlock)&domUtils.POSITION_FOLLOWING && domUtils.getPosition(bi,endBlock)&domUtils.POSITION_PRECEDING){"," domUtils.remove(bi,true);"," }"," }","","","",""," } else {",""," var tmpRange = range.cloneRange(),"," node = tmpRange.startContainer.nodeType == 1 ? tmpRange.startContainer : tmpRange.startContainer.parentNode,"," preNode = node,"," doEnd = 1;",""," //调整开始"," while ( 1 ) {"," if ( domUtils.isBody(node) ) {"," if ( preNode !== node ) {"," if ( range.collapsed ) {"," tmpRange.selectNode( preNode );"," doEnd = 0;"," } else {"," tmpRange.setStartBefore( preNode );"," }"," }else{"," tmpRange.setStart(node,0);"," }",""," break;"," }"," if ( !blockquote[node.tagName] ) {"," if ( range.collapsed ) {"," tmpRange.selectNode( preNode );"," } else{"," tmpRange.setStartBefore( preNode);"," }"," break;"," }",""," preNode = node;"," node = node.parentNode;"," }",""," //调整结束"," if ( doEnd ) {"," preNode = node = node = tmpRange.endContainer.nodeType == 1 ? tmpRange.endContainer : tmpRange.endContainer.parentNode;"," while ( 1 ) {",""," if ( domUtils.isBody( node ) ) {"," if ( preNode !== node ) {",""," tmpRange.setEndAfter( preNode );",""," } else {"," tmpRange.setEnd( node, node.childNodes.length );"," }",""," break;"," }"," if ( !blockquote[node.tagName] ) {"," tmpRange.setEndAfter( preNode );"," break;"," }",""," preNode = node;"," node = node.parentNode;"," }",""," }","",""," node = range.document.createElement( 'blockquote' );"," domUtils.setAttributes( node, attrs );"," node.appendChild( tmpRange.extractContents() );"," tmpRange.insertNode( node );"," //去除重复的"," var childs = domUtils.getElementsByTagName(node,'blockquote');"," for(var i=0,ci;ci=childs[i++];){"," if(ci.parentNode){"," domUtils.remove(ci,true);"," }"," }",""," }"," range.moveToBookmark( bookmark ).select();"," },"," queryCommandState : function() {"," return getObj(this) ? 1 : 0;"," }"," };","};",""]; +_$jscoverage['plugins/blockquote.js'][44]++; +UE.plugins.blockquote = (function () { + _$jscoverage['plugins/blockquote.js'][45]++; + var me = this; + _$jscoverage['plugins/blockquote.js'][46]++; + function getObj(editor) { + _$jscoverage['plugins/blockquote.js'][47]++; + return domUtils.filterNodeList(editor.selection.getStartElementPath(), "blockquote"); +} + _$jscoverage['plugins/blockquote.js'][49]++; + me.commands.blockquote = {execCommand: (function (cmdName, attrs) { + _$jscoverage['plugins/blockquote.js'][51]++; + var range = this.selection.getRange(), obj = getObj(this), blockquote = dtd.blockquote, bookmark = range.createBookmark(); + _$jscoverage['plugins/blockquote.js'][56]++; + if (obj) { + _$jscoverage['plugins/blockquote.js'][58]++; + var start = range.startContainer, startBlock = (domUtils.isBlockElm(start)? start: domUtils.findParent(start, (function (node) { + _$jscoverage['plugins/blockquote.js'][59]++; + return domUtils.isBlockElm(node); +}))), end = range.endContainer, endBlock = (domUtils.isBlockElm(end)? end: domUtils.findParent(end, (function (node) { + _$jscoverage['plugins/blockquote.js'][62]++; + return domUtils.isBlockElm(node); +}))); + _$jscoverage['plugins/blockquote.js'][65]++; + startBlock = (domUtils.findParentByTagName(startBlock, "li", true) || startBlock); + _$jscoverage['plugins/blockquote.js'][66]++; + endBlock = (domUtils.findParentByTagName(endBlock, "li", true) || endBlock); + _$jscoverage['plugins/blockquote.js'][69]++; + if (((startBlock.tagName == "LI") || (startBlock.tagName == "TD") || (startBlock === obj) || domUtils.isBody(startBlock))) { + _$jscoverage['plugins/blockquote.js'][70]++; + domUtils.remove(obj, true); + } + else { + _$jscoverage['plugins/blockquote.js'][72]++; + domUtils.breakParent(startBlock, obj); + } + _$jscoverage['plugins/blockquote.js'][75]++; + if ((startBlock !== endBlock)) { + _$jscoverage['plugins/blockquote.js'][76]++; + obj = domUtils.findParentByTagName(endBlock, "blockquote"); + _$jscoverage['plugins/blockquote.js'][77]++; + if (obj) { + _$jscoverage['plugins/blockquote.js'][78]++; + if (((endBlock.tagName == "LI") || (endBlock.tagName == "TD") || domUtils.isBody(endBlock))) { + _$jscoverage['plugins/blockquote.js'][79]++; + (obj.parentNode && domUtils.remove(obj, true)); + } + else { + _$jscoverage['plugins/blockquote.js'][81]++; + domUtils.breakParent(endBlock, obj); + } + } + } + _$jscoverage['plugins/blockquote.js'][87]++; + var blockquotes = domUtils.getElementsByTagName(this.document, "blockquote"); + _$jscoverage['plugins/blockquote.js'][88]++; + for (var i = 0, bi; (bi = blockquotes[(i++)]);) { + _$jscoverage['plugins/blockquote.js'][89]++; + if ((! bi.childNodes.length)) { + _$jscoverage['plugins/blockquote.js'][90]++; + domUtils.remove(bi); + } + else { + _$jscoverage['plugins/blockquote.js'][91]++; + if (((domUtils.getPosition(bi, startBlock) & domUtils.POSITION_FOLLOWING) && (domUtils.getPosition(bi, endBlock) & domUtils.POSITION_PRECEDING))) { + _$jscoverage['plugins/blockquote.js'][92]++; + domUtils.remove(bi, true); + } + } +} + } + else { + _$jscoverage['plugins/blockquote.js'][101]++; + var tmpRange = range.cloneRange(), node = ((tmpRange.startContainer.nodeType == 1)? tmpRange.startContainer: tmpRange.startContainer.parentNode), preNode = node, doEnd = 1; + _$jscoverage['plugins/blockquote.js'][107]++; + while (true) { + _$jscoverage['plugins/blockquote.js'][108]++; + if (domUtils.isBody(node)) { + _$jscoverage['plugins/blockquote.js'][109]++; + if ((preNode !== node)) { + _$jscoverage['plugins/blockquote.js'][110]++; + if (range.collapsed) { + _$jscoverage['plugins/blockquote.js'][111]++; + tmpRange.selectNode(preNode); + _$jscoverage['plugins/blockquote.js'][112]++; + doEnd = 0; + } + else { + _$jscoverage['plugins/blockquote.js'][114]++; + tmpRange.setStartBefore(preNode); + } + } + else { + _$jscoverage['plugins/blockquote.js'][117]++; + tmpRange.setStart(node, 0); + } + _$jscoverage['plugins/blockquote.js'][120]++; + break; + } + _$jscoverage['plugins/blockquote.js'][122]++; + if ((! blockquote[node.tagName])) { + _$jscoverage['plugins/blockquote.js'][123]++; + if (range.collapsed) { + _$jscoverage['plugins/blockquote.js'][124]++; + tmpRange.selectNode(preNode); + } + else { + _$jscoverage['plugins/blockquote.js'][126]++; + tmpRange.setStartBefore(preNode); + } + _$jscoverage['plugins/blockquote.js'][128]++; + break; + } + _$jscoverage['plugins/blockquote.js'][131]++; + preNode = node; + _$jscoverage['plugins/blockquote.js'][132]++; + node = node.parentNode; +} + _$jscoverage['plugins/blockquote.js'][136]++; + if (doEnd) { + _$jscoverage['plugins/blockquote.js'][137]++; + preNode = (node = (node = ((tmpRange.endContainer.nodeType == 1)? tmpRange.endContainer: tmpRange.endContainer.parentNode))); + _$jscoverage['plugins/blockquote.js'][138]++; + while (true) { + _$jscoverage['plugins/blockquote.js'][140]++; + if (domUtils.isBody(node)) { + _$jscoverage['plugins/blockquote.js'][141]++; + if ((preNode !== node)) { + _$jscoverage['plugins/blockquote.js'][143]++; + tmpRange.setEndAfter(preNode); + } + else { + _$jscoverage['plugins/blockquote.js'][146]++; + tmpRange.setEnd(node, node.childNodes.length); + } + _$jscoverage['plugins/blockquote.js'][149]++; + break; + } + _$jscoverage['plugins/blockquote.js'][151]++; + if ((! blockquote[node.tagName])) { + _$jscoverage['plugins/blockquote.js'][152]++; + tmpRange.setEndAfter(preNode); + _$jscoverage['plugins/blockquote.js'][153]++; + break; + } + _$jscoverage['plugins/blockquote.js'][156]++; + preNode = node; + _$jscoverage['plugins/blockquote.js'][157]++; + node = node.parentNode; +} + } + _$jscoverage['plugins/blockquote.js'][163]++; + node = range.document.createElement("blockquote"); + _$jscoverage['plugins/blockquote.js'][164]++; + domUtils.setAttributes(node, attrs); + _$jscoverage['plugins/blockquote.js'][165]++; + node.appendChild(tmpRange.extractContents()); + _$jscoverage['plugins/blockquote.js'][166]++; + tmpRange.insertNode(node); + _$jscoverage['plugins/blockquote.js'][168]++; + var childs = domUtils.getElementsByTagName(node, "blockquote"); + _$jscoverage['plugins/blockquote.js'][169]++; + for (var i = 0, ci; (ci = childs[(i++)]);) { + _$jscoverage['plugins/blockquote.js'][170]++; + if (ci.parentNode) { + _$jscoverage['plugins/blockquote.js'][171]++; + domUtils.remove(ci, true); + } +} + } + _$jscoverage['plugins/blockquote.js'][176]++; + range.moveToBookmark(bookmark).select(); +}), queryCommandState: (function () { + _$jscoverage['plugins/blockquote.js'][179]++; + return (getObj(this)? 1: 0); +})}; +}); diff --git a/_test/coverage/plugins/catchremoteimage.js b/_test/coverage/plugins/catchremoteimage.js new file mode 100644 index 000000000..a27962630 --- /dev/null +++ b/_test/coverage/plugins/catchremoteimage.js @@ -0,0 +1,192 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/catchremoteimage.js']) { + _$jscoverage['plugins/catchremoteimage.js'] = []; + _$jscoverage['plugins/catchremoteimage.js'][9] = 0; + _$jscoverage['plugins/catchremoteimage.js'][10] = 0; + _$jscoverage['plugins/catchremoteimage.js'][11] = 0; + _$jscoverage['plugins/catchremoteimage.js'][13] = 0; + _$jscoverage['plugins/catchremoteimage.js'][14] = 0; + _$jscoverage['plugins/catchremoteimage.js'][20] = 0; + _$jscoverage['plugins/catchremoteimage.js'][24] = 0; + _$jscoverage['plugins/catchremoteimage.js'][25] = 0; + _$jscoverage['plugins/catchremoteimage.js'][26] = 0; + _$jscoverage['plugins/catchremoteimage.js'][31] = 0; + _$jscoverage['plugins/catchremoteimage.js'][32] = 0; + _$jscoverage['plugins/catchremoteimage.js'][35] = 0; + _$jscoverage['plugins/catchremoteimage.js'][36] = 0; + _$jscoverage['plugins/catchremoteimage.js'][39] = 0; + _$jscoverage['plugins/catchremoteimage.js'][40] = 0; + _$jscoverage['plugins/catchremoteimage.js'][41] = 0; + _$jscoverage['plugins/catchremoteimage.js'][42] = 0; + _$jscoverage['plugins/catchremoteimage.js'][43] = 0; + _$jscoverage['plugins/catchremoteimage.js'][44] = 0; + _$jscoverage['plugins/catchremoteimage.js'][45] = 0; + _$jscoverage['plugins/catchremoteimage.js'][48] = 0; + _$jscoverage['plugins/catchremoteimage.js'][50] = 0; + _$jscoverage['plugins/catchremoteimage.js'][51] = 0; + _$jscoverage['plugins/catchremoteimage.js'][52] = 0; + _$jscoverage['plugins/catchremoteimage.js'][54] = 0; + _$jscoverage['plugins/catchremoteimage.js'][55] = 0; + _$jscoverage['plugins/catchremoteimage.js'][56] = 0; + _$jscoverage['plugins/catchremoteimage.js'][59] = 0; + _$jscoverage['plugins/catchremoteimage.js'][60] = 0; + _$jscoverage['plugins/catchremoteimage.js'][63] = 0; + _$jscoverage['plugins/catchremoteimage.js'][64] = 0; + _$jscoverage['plugins/catchremoteimage.js'][66] = 0; + _$jscoverage['plugins/catchremoteimage.js'][68] = 0; + _$jscoverage['plugins/catchremoteimage.js'][70] = 0; + _$jscoverage['plugins/catchremoteimage.js'][71] = 0; + _$jscoverage['plugins/catchremoteimage.js'][72] = 0; + _$jscoverage['plugins/catchremoteimage.js'][73] = 0; + _$jscoverage['plugins/catchremoteimage.js'][74] = 0; + _$jscoverage['plugins/catchremoteimage.js'][76] = 0; + _$jscoverage['plugins/catchremoteimage.js'][77] = 0; + _$jscoverage['plugins/catchremoteimage.js'][81] = 0; + _$jscoverage['plugins/catchremoteimage.js'][85] = 0; + _$jscoverage['plugins/catchremoteimage.js'][89] = 0; +} +_$jscoverage['plugins/catchremoteimage.js'].source = ["///import core","///commands 远程图片抓取","///commandsName catchRemoteImage,catchremoteimageenable","///commandsTitle 远程图片抓取","/*"," * 远程图片抓取,当开启本插件时所有不符合本地域名的图片都将被抓取成为本地服务器上的图片"," *"," */","UE.plugins['catchremoteimage'] = function () {"," if (this.options.catchRemoteImageEnable===false){"," return;"," }"," var me = this;"," this.setOpt({"," localDomain:[\"127.0.0.1\",\"localhost\",\"img.baidu.com\"],"," separater:'ue_separate_ue',"," catchFieldName:\"upfile\","," catchRemoteImageEnable:true"," });"," var ajax = UE.ajax,"," localDomain = me.options.localDomain ,"," catcherUrl = me.options.catcherUrl,"," separater = me.options.separater;"," function catchremoteimage(imgs, callbacks) {"," var submitStr = imgs.join(separater);"," var tmpOption = {"," timeout:60000, //单位:毫秒,回调请求超时设置。目标用户如果网速不是很快的话此处建议设置一个较大的数值"," onsuccess:callbacks[\"success\"],"," onerror:callbacks[\"error\"]"," };"," tmpOption[me.options.catchFieldName] = submitStr;"," ajax.request(catcherUrl, tmpOption);"," }",""," me.addListener(\"afterpaste\", function () {"," me.fireEvent(\"catchRemoteImage\");"," });",""," me.addListener(\"catchRemoteImage\", function () {"," var remoteImages = [];"," var imgs = domUtils.getElementsByTagName(me.document, \"img\");"," var test = function (src,urls) {"," for (var j = 0, url; url = urls[j++];) {"," if (src.indexOf(url) !== -1) {"," return true;"," }"," }"," return false;"," };"," for (var i = 0, ci; ci = imgs[i++];) {"," if (ci.getAttribute(\"word_img\")){"," continue;"," }"," var src = ci.getAttribute(\"_src\") || ci.src || \"\";"," if (/^(https?|ftp):/i.test(src) && !test(src,localDomain)) {"," remoteImages.push(src);"," }"," }"," if (remoteImages.length) {"," catchremoteimage(remoteImages, {"," //成功抓取"," success:function (xhr) {"," try {"," var info = eval(\"(\" + xhr.responseText + \")\");"," } catch (e) {"," return;"," }"," var srcUrls = info.srcUrl.split(separater),"," urls = info.url.split(separater);"," for (var i = 0, ci; ci = imgs[i++];) {"," var src = ci.getAttribute(\"_src\") || ci.src || \"\";"," for (var j = 0, cj; cj = srcUrls[j++];) {"," var url = urls[j - 1];"," if (src == cj && url != \"error\") { //抓取失败时不做替换处理"," //地址修正"," var newSrc = me.options.catcherPath + url;"," domUtils.setAttributes(ci, {"," \"src\":newSrc,"," \"_src\":newSrc"," });"," break;"," }"," }"," }"," me.fireEvent('catchremotesuccess')"," },"," //回调失败,本次请求超时"," error:function () {"," me.fireEvent(\"catchremoteerror\");"," }"," });"," }",""," });","};"]; +_$jscoverage['plugins/catchremoteimage.js'][9]++; +UE.plugins.catchremoteimage = (function () { + _$jscoverage['plugins/catchremoteimage.js'][10]++; + if ((this.options.catchRemoteImageEnable === false)) { + _$jscoverage['plugins/catchremoteimage.js'][11]++; + return; + } + _$jscoverage['plugins/catchremoteimage.js'][13]++; + var me = this; + _$jscoverage['plugins/catchremoteimage.js'][14]++; + this.setOpt({localDomain: ["127.0.0.1", "localhost", "img.baidu.com"], separater: "ue_separate_ue", catchFieldName: "upfile", catchRemoteImageEnable: true}); + _$jscoverage['plugins/catchremoteimage.js'][20]++; + var ajax = UE.ajax, localDomain = me.options.localDomain, catcherUrl = me.options.catcherUrl, separater = me.options.separater; + _$jscoverage['plugins/catchremoteimage.js'][24]++; + function catchremoteimage(imgs, callbacks) { + _$jscoverage['plugins/catchremoteimage.js'][25]++; + var submitStr = imgs.join(separater); + _$jscoverage['plugins/catchremoteimage.js'][26]++; + var tmpOption = {timeout: 60000, onsuccess: callbacks.success, onerror: callbacks.error}; + _$jscoverage['plugins/catchremoteimage.js'][31]++; + tmpOption[me.options.catchFieldName] = submitStr; + _$jscoverage['plugins/catchremoteimage.js'][32]++; + ajax.request(catcherUrl, tmpOption); +} + _$jscoverage['plugins/catchremoteimage.js'][35]++; + me.addListener("afterpaste", (function () { + _$jscoverage['plugins/catchremoteimage.js'][36]++; + me.fireEvent("catchRemoteImage"); +})); + _$jscoverage['plugins/catchremoteimage.js'][39]++; + me.addListener("catchRemoteImage", (function () { + _$jscoverage['plugins/catchremoteimage.js'][40]++; + var remoteImages = []; + _$jscoverage['plugins/catchremoteimage.js'][41]++; + var imgs = domUtils.getElementsByTagName(me.document, "img"); + _$jscoverage['plugins/catchremoteimage.js'][42]++; + var test = (function (src, urls) { + _$jscoverage['plugins/catchremoteimage.js'][43]++; + for (var j = 0, url; (url = urls[(j++)]);) { + _$jscoverage['plugins/catchremoteimage.js'][44]++; + if ((src.indexOf(url) !== -1)) { + _$jscoverage['plugins/catchremoteimage.js'][45]++; + return true; + } +} + _$jscoverage['plugins/catchremoteimage.js'][48]++; + return false; +}); + _$jscoverage['plugins/catchremoteimage.js'][50]++; + for (var i = 0, ci; (ci = imgs[(i++)]);) { + _$jscoverage['plugins/catchremoteimage.js'][51]++; + if (ci.getAttribute("word_img")) { + _$jscoverage['plugins/catchremoteimage.js'][52]++; + continue; + } + _$jscoverage['plugins/catchremoteimage.js'][54]++; + var src = (ci.getAttribute("_src") || ci.src || ""); + _$jscoverage['plugins/catchremoteimage.js'][55]++; + if ((/^(https?|ftp):/i.test(src) && (! test(src, localDomain)))) { + _$jscoverage['plugins/catchremoteimage.js'][56]++; + remoteImages.push(src); + } +} + _$jscoverage['plugins/catchremoteimage.js'][59]++; + if (remoteImages.length) { + _$jscoverage['plugins/catchremoteimage.js'][60]++; + catchremoteimage(remoteImages, {success: (function (xhr) { + _$jscoverage['plugins/catchremoteimage.js'][63]++; + try { + _$jscoverage['plugins/catchremoteimage.js'][64]++; + var info = eval(("(" + xhr.responseText + ")")); + } + catch (e) { + _$jscoverage['plugins/catchremoteimage.js'][66]++; + return; + } + _$jscoverage['plugins/catchremoteimage.js'][68]++; + var srcUrls = info.srcUrl.split(separater), urls = info.url.split(separater); + _$jscoverage['plugins/catchremoteimage.js'][70]++; + for (var i = 0, ci; (ci = imgs[(i++)]);) { + _$jscoverage['plugins/catchremoteimage.js'][71]++; + var src = (ci.getAttribute("_src") || ci.src || ""); + _$jscoverage['plugins/catchremoteimage.js'][72]++; + for (var j = 0, cj; (cj = srcUrls[(j++)]);) { + _$jscoverage['plugins/catchremoteimage.js'][73]++; + var url = urls[(j - 1)]; + _$jscoverage['plugins/catchremoteimage.js'][74]++; + if (((src == cj) && (url != "error"))) { + _$jscoverage['plugins/catchremoteimage.js'][76]++; + var newSrc = (me.options.catcherPath + url); + _$jscoverage['plugins/catchremoteimage.js'][77]++; + domUtils.setAttributes(ci, {"src": newSrc, "_src": newSrc}); + _$jscoverage['plugins/catchremoteimage.js'][81]++; + break; + } +} +} + _$jscoverage['plugins/catchremoteimage.js'][85]++; + me.fireEvent("catchremotesuccess"); +}), error: (function () { + _$jscoverage['plugins/catchremoteimage.js'][89]++; + me.fireEvent("catchremoteerror"); +})}); + } +})); +}); diff --git a/_test/coverage/plugins/cleardoc.js b/_test/coverage/plugins/cleardoc.js new file mode 100644 index 000000000..0feece8fb --- /dev/null +++ b/_test/coverage/plugins/cleardoc.js @@ -0,0 +1,75 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/cleardoc.js']) { + _$jscoverage['plugins/cleardoc.js'] = []; + _$jscoverage['plugins/cleardoc.js'][19] = 0; + _$jscoverage['plugins/cleardoc.js'][21] = 0; + _$jscoverage['plugins/cleardoc.js'][24] = 0; + _$jscoverage['plugins/cleardoc.js'][25] = 0; + _$jscoverage['plugins/cleardoc.js'][26] = 0; + _$jscoverage['plugins/cleardoc.js'][28] = 0; + _$jscoverage['plugins/cleardoc.js'][29] = 0; + _$jscoverage['plugins/cleardoc.js'][31] = 0; + _$jscoverage['plugins/cleardoc.js'][32] = 0; +} +_$jscoverage['plugins/cleardoc.js'].source = ["/**"," * 清空文档插件"," * @file"," * @since 1.2.6.1"," */","","/**"," * 清空文档命令"," * @command cleardoc"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @example"," * ```javascript"," * //editor 是编辑器实例"," * editor.execCommand('cleardoc');"," * ```"," */","","UE.commands['cleardoc'] = {"," execCommand : function( cmdName) {"," var me = this,"," enterTag = me.options.enterTag,"," range = me.selection.getRange();"," if(enterTag == \"br\"){"," me.body.innerHTML = \"<br/>\";"," range.setStart(me.body,0).setCursor();"," }else{"," me.body.innerHTML = \"<p>\"+(ie ? \"\" : \"<br/>\")+\"</p>\";"," range.setStart(me.body.firstChild,0).setCursor(false,true);"," }"," setTimeout(function(){"," me.fireEvent(\"clearDoc\");"," },0);",""," }","};",""]; +_$jscoverage['plugins/cleardoc.js'][19]++; +UE.commands.cleardoc = {execCommand: (function (cmdName) { + _$jscoverage['plugins/cleardoc.js'][21]++; + var me = this, enterTag = me.options.enterTag, range = me.selection.getRange(); + _$jscoverage['plugins/cleardoc.js'][24]++; + if ((enterTag == "br")) { + _$jscoverage['plugins/cleardoc.js'][25]++; + me.body.innerHTML = "
"; + _$jscoverage['plugins/cleardoc.js'][26]++; + range.setStart(me.body, 0).setCursor(); + } + else { + _$jscoverage['plugins/cleardoc.js'][28]++; + me.body.innerHTML = ("

" + (ie? "": "
") + "

"); + _$jscoverage['plugins/cleardoc.js'][29]++; + range.setStart(me.body.firstChild, 0).setCursor(false, true); + } + _$jscoverage['plugins/cleardoc.js'][31]++; + setTimeout((function () { + _$jscoverage['plugins/cleardoc.js'][32]++; + me.fireEvent("clearDoc"); +}), 0); +})}; diff --git a/_test/coverage/plugins/contextmenu.js b/_test/coverage/plugins/contextmenu.js new file mode 100644 index 000000000..69e001c82 --- /dev/null +++ b/_test/coverage/plugins/contextmenu.js @@ -0,0 +1,413 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/contextmenu.js']) { + _$jscoverage['plugins/contextmenu.js'] = []; + _$jscoverage['plugins/contextmenu.js'][12] = 0; + _$jscoverage['plugins/contextmenu.js'][13] = 0; + _$jscoverage['plugins/contextmenu.js'][27] = 0; + _$jscoverage['plugins/contextmenu.js'][28] = 0; + _$jscoverage['plugins/contextmenu.js'][159] = 0; + _$jscoverage['plugins/contextmenu.js'][160] = 0; + _$jscoverage['plugins/contextmenu.js'][162] = 0; + _$jscoverage['plugins/contextmenu.js'][169] = 0; + _$jscoverage['plugins/contextmenu.js'][170] = 0; + _$jscoverage['plugins/contextmenu.js'][172] = 0; + _$jscoverage['plugins/contextmenu.js'][194] = 0; + _$jscoverage['plugins/contextmenu.js'][195] = 0; + _$jscoverage['plugins/contextmenu.js'][197] = 0; + _$jscoverage['plugins/contextmenu.js'][205] = 0; + _$jscoverage['plugins/contextmenu.js'][206] = 0; + _$jscoverage['plugins/contextmenu.js'][208] = 0; + _$jscoverage['plugins/contextmenu.js'][209] = 0; + _$jscoverage['plugins/contextmenu.js'][210] = 0; + _$jscoverage['plugins/contextmenu.js'][218] = 0; + _$jscoverage['plugins/contextmenu.js'][219] = 0; + _$jscoverage['plugins/contextmenu.js'][221] = 0; + _$jscoverage['plugins/contextmenu.js'][222] = 0; + _$jscoverage['plugins/contextmenu.js'][223] = 0; + _$jscoverage['plugins/contextmenu.js'][237] = 0; + _$jscoverage['plugins/contextmenu.js'][244] = 0; + _$jscoverage['plugins/contextmenu.js'][251] = 0; + _$jscoverage['plugins/contextmenu.js'][258] = 0; + _$jscoverage['plugins/contextmenu.js'][265] = 0; + _$jscoverage['plugins/contextmenu.js'][272] = 0; + _$jscoverage['plugins/contextmenu.js'][357] = 0; + _$jscoverage['plugins/contextmenu.js'][360] = 0; + _$jscoverage['plugins/contextmenu.js'][367] = 0; + _$jscoverage['plugins/contextmenu.js'][370] = 0; + _$jscoverage['plugins/contextmenu.js'][376] = 0; + _$jscoverage['plugins/contextmenu.js'][377] = 0; + _$jscoverage['plugins/contextmenu.js'][379] = 0; + _$jscoverage['plugins/contextmenu.js'][383] = 0; + _$jscoverage['plugins/contextmenu.js'][384] = 0; + _$jscoverage['plugins/contextmenu.js'][386] = 0; + _$jscoverage['plugins/contextmenu.js'][388] = 0; + _$jscoverage['plugins/contextmenu.js'][390] = 0; + _$jscoverage['plugins/contextmenu.js'][391] = 0; + _$jscoverage['plugins/contextmenu.js'][392] = 0; + _$jscoverage['plugins/contextmenu.js'][393] = 0; + _$jscoverage['plugins/contextmenu.js'][395] = 0; + _$jscoverage['plugins/contextmenu.js'][396] = 0; + _$jscoverage['plugins/contextmenu.js'][397] = 0; + _$jscoverage['plugins/contextmenu.js'][398] = 0; + _$jscoverage['plugins/contextmenu.js'][399] = 0; + _$jscoverage['plugins/contextmenu.js'][400] = 0; + _$jscoverage['plugins/contextmenu.js'][402] = 0; + _$jscoverage['plugins/contextmenu.js'][403] = 0; + _$jscoverage['plugins/contextmenu.js'][404] = 0; + _$jscoverage['plugins/contextmenu.js'][405] = 0; + _$jscoverage['plugins/contextmenu.js'][406] = 0; + _$jscoverage['plugins/contextmenu.js'][407] = 0; + _$jscoverage['plugins/contextmenu.js'][409] = 0; + _$jscoverage['plugins/contextmenu.js'][412] = 0; + _$jscoverage['plugins/contextmenu.js'][414] = 0; + _$jscoverage['plugins/contextmenu.js'][418] = 0; + _$jscoverage['plugins/contextmenu.js'][420] = 0; + _$jscoverage['plugins/contextmenu.js'][427] = 0; + _$jscoverage['plugins/contextmenu.js'][428] = 0; + _$jscoverage['plugins/contextmenu.js'][429] = 0; + _$jscoverage['plugins/contextmenu.js'][431] = 0; + _$jscoverage['plugins/contextmenu.js'][433] = 0; + _$jscoverage['plugins/contextmenu.js'][435] = 0; + _$jscoverage['plugins/contextmenu.js'][437] = 0; + _$jscoverage['plugins/contextmenu.js'][439] = 0; + _$jscoverage['plugins/contextmenu.js'][441] = 0; + _$jscoverage['plugins/contextmenu.js'][443] = 0; + _$jscoverage['plugins/contextmenu.js'][446] = 0; + _$jscoverage['plugins/contextmenu.js'][459] = 0; + _$jscoverage['plugins/contextmenu.js'][462] = 0; + _$jscoverage['plugins/contextmenu.js'][463] = 0; + _$jscoverage['plugins/contextmenu.js'][464] = 0; + _$jscoverage['plugins/contextmenu.js'][466] = 0; + _$jscoverage['plugins/contextmenu.js'][467] = 0; + _$jscoverage['plugins/contextmenu.js'][470] = 0; + _$jscoverage['plugins/contextmenu.js'][474] = 0; + _$jscoverage['plugins/contextmenu.js'][476] = 0; + _$jscoverage['plugins/contextmenu.js'][485] = 0; + _$jscoverage['plugins/contextmenu.js'][486] = 0; + _$jscoverage['plugins/contextmenu.js'][489] = 0; + _$jscoverage['plugins/contextmenu.js'][494] = 0; + _$jscoverage['plugins/contextmenu.js'][495] = 0; + _$jscoverage['plugins/contextmenu.js'][497] = 0; + _$jscoverage['plugins/contextmenu.js'][499] = 0; + _$jscoverage['plugins/contextmenu.js'][500] = 0; + _$jscoverage['plugins/contextmenu.js'][501] = 0; + _$jscoverage['plugins/contextmenu.js'][502] = 0; + _$jscoverage['plugins/contextmenu.js'][503] = 0; + _$jscoverage['plugins/contextmenu.js'][505] = 0; + _$jscoverage['plugins/contextmenu.js'][507] = 0; + _$jscoverage['plugins/contextmenu.js'][508] = 0; + _$jscoverage['plugins/contextmenu.js'][509] = 0; +} +_$jscoverage['plugins/contextmenu.js'].source = ["///import core","///commands 右键菜单","///commandsName ContextMenu","///commandsTitle 右键菜单","/*"," * 右键菜单"," * @function"," * @name baidu.editor.plugins.contextmenu"," * @author zhanyi"," */","","UE.plugins['contextmenu'] = function () {"," var me = this,"," lang = me.getLang( \"contextMenu\" ),"," menu,"," items = me.options.contextMenu || ["," {label:lang['selectall'], cmdName:'selectall'},"," {"," label:lang.deletecode,"," cmdName:'highlightcode',"," icon:'deletehighlightcode'"," },"," {"," label:lang.cleardoc,"," cmdName:'cleardoc',"," exec:function () {"," if ( confirm( lang.confirmclear ) ) {"," this.execCommand( 'cleardoc' );"," }"," }"," },"," '-',"," {"," label:lang.unlink,"," cmdName:'unlink'"," },"," '-',"," {"," group:lang.paragraph,"," icon:'justifyjustify',"," subMenu:["," {"," label:lang.justifyleft,"," cmdName:'justify',"," value:'left'"," },"," {"," label:lang.justifyright,"," cmdName:'justify',"," value:'right'"," },"," {"," label:lang.justifycenter,"," cmdName:'justify',"," value:'center'"," },"," {"," label:lang.justifyjustify,"," cmdName:'justify',"," value:'justify'"," }"," ]"," },"," '-',"," {"," group:lang.table,"," icon:'table',"," subMenu:["," {"," label:lang.inserttable,"," cmdName:'inserttable'"," },"," {"," label:lang.deletetable,"," cmdName:'deletetable'"," },"," '-',"," {"," label:lang.deleterow,"," cmdName:'deleterow'"," },"," {"," label:lang.deletecol,"," cmdName:'deletecol'"," },"," {"," label:lang.insertcol,"," cmdName:'insertcol'"," },"," {"," label:lang.insertcolnext,"," cmdName:'insertcolnext'"," },"," {"," label:lang.insertrow,"," cmdName:'insertrow'"," },"," {"," label:lang.insertrownext,"," cmdName:'insertrownext'"," },"," '-',"," {"," label:lang.insertcaption,"," cmdName:'insertcaption'"," },"," {"," label:lang.deletecaption,"," cmdName:'deletecaption'"," },"," {"," label:lang.inserttitle,"," cmdName:'inserttitle'"," },"," {"," label:lang.deletetitle,"," cmdName:'deletetitle'"," },"," '-',"," {"," label:lang.mergecells,"," cmdName:'mergecells'"," },"," {"," label:lang.mergeright,"," cmdName:'mergeright'"," },"," {"," label:lang.mergedown,"," cmdName:'mergedown'"," },"," '-',"," {"," label:lang.splittorows,"," cmdName:'splittorows'"," },"," {"," label:lang.splittocols,"," cmdName:'splittocols'"," },"," {"," label:lang.splittocells,"," cmdName:'splittocells'"," },"," '-',"," {"," label:lang.averageDiseRow,"," cmdName:'averagedistributerow'"," },"," {"," label:lang.averageDisCol,"," cmdName:'averagedistributecol'"," },"," '-',"," {"," label:lang.edittd,"," cmdName:'edittd',"," exec:function () {"," if ( UE.ui['edittd'] ) {"," new UE.ui['edittd']( this );"," }"," this.getDialog('edittd').open();"," }"," },"," {"," label:lang.edittable,"," cmdName:'edittable',"," exec:function () {"," if ( UE.ui['edittable'] ) {"," new UE.ui['edittable']( this );"," }"," this.getDialog('edittable').open();"," }"," }"," ]"," },"," {"," group:lang.tablesort,"," icon:'tablesort',"," subMenu:["," {"," label:lang.reversecurrent,"," cmdName:'sorttable',"," value:1"," },"," {"," label:lang.orderbyasc,"," cmdName:'sorttable'"," },"," {"," label:lang.reversebyasc,"," cmdName:'sorttable',"," exec:function(){"," this.execCommand(\"sorttable\",function(td1,td2){"," var value1 = td1.innerHTML,"," value2 = td2.innerHTML;"," return value2.localeCompare(value1);"," });"," }"," },"," {"," label:lang.orderbynum,"," cmdName:'sorttable',"," exec:function(){"," this.execCommand(\"sorttable\",function(td1,td2){"," var value1 = td1[browser.ie ? 'innerText':'textContent'].match(/\\d+/),"," value2 = td2[browser.ie ? 'innerText':'textContent'].match(/\\d+/);"," if(value1) value1 = +value1[0];"," if(value2) value2 = +value2[0];"," return (value1||0) - (value2||0);"," });"," }"," },"," {"," label:lang.reversebynum,"," cmdName:'sorttable',"," exec:function(){"," this.execCommand(\"sorttable\",function(td1,td2){"," var value1 = td1[browser.ie ? 'innerText':'textContent'].match(/\\d+/),"," value2 = td2[browser.ie ? 'innerText':'textContent'].match(/\\d+/);"," if(value1) value1 = +value1[0];"," if(value2) value2 = +value2[0];"," return (value2||0) - (value1||0);"," });"," }"," }"," ]"," },"," {"," group:lang.borderbk,"," icon:'borderBack',"," subMenu:["," {"," label:lang.setcolor,"," cmdName:\"interlacetable\","," exec:function(){"," this.execCommand(\"interlacetable\");"," }"," },"," {"," label:lang.unsetcolor,"," cmdName:\"uninterlacetable\","," exec:function(){"," this.execCommand(\"uninterlacetable\");"," }"," },"," {"," label:lang.setbackground,"," cmdName:\"settablebackground\","," exec:function(){"," this.execCommand(\"settablebackground\",{repeat:true,colorList:[\"#bbb\",\"#ccc\"]});"," }"," },"," {"," label:lang.unsetbackground,"," cmdName:\"cleartablebackground\","," exec:function(){"," this.execCommand(\"cleartablebackground\");"," }"," },"," {"," label:lang.redandblue,"," cmdName:\"settablebackground\","," exec:function(){"," this.execCommand(\"settablebackground\",{repeat:true,colorList:[\"red\",\"blue\"]});"," }"," },"," {"," label:lang.threecolorgradient,"," cmdName:\"settablebackground\","," exec:function(){"," this.execCommand(\"settablebackground\",{repeat:true,colorList:[\"#aaa\",\"#bbb\",\"#ccc\"]});"," }"," }"," ]"," },"," {"," group:lang.aligntd,"," icon:'aligntd',"," subMenu:["," {"," cmdName:'cellalignment',"," value:{align:'left',vAlign:'top'}"," },"," {"," cmdName:'cellalignment',"," value:{align:'center',vAlign:'top'}"," },"," {"," cmdName:'cellalignment',"," value:{align:'right',vAlign:'top'}"," },"," {"," cmdName:'cellalignment',"," value:{align:'left',vAlign:'middle'}"," },"," {"," cmdName:'cellalignment',"," value:{align:'center',vAlign:'middle'}"," },"," {"," cmdName:'cellalignment',"," value:{align:'right',vAlign:'middle'}"," },"," {"," cmdName:'cellalignment',"," value:{align:'left',vAlign:'bottom'}"," },"," {"," cmdName:'cellalignment',"," value:{align:'center',vAlign:'bottom'}"," },"," {"," cmdName:'cellalignment',"," value:{align:'right',vAlign:'bottom'}"," }"," ]"," },"," {"," group:lang.aligntable,"," icon:'aligntable',"," subMenu:["," {"," cmdName:'tablealignment',"," className: 'left',"," label:lang.tableleft,"," value:\"left\""," },"," {"," cmdName:'tablealignment',"," className: 'center',"," label:lang.tablecenter,"," value:\"center\""," },"," {"," cmdName:'tablealignment',"," className: 'right',"," label:lang.tableright,"," value:\"right\""," }"," ]"," },"," '-',"," {"," label:lang.insertparagraphbefore,"," cmdName:'insertparagraph',"," value:true"," },"," {"," label:lang.insertparagraphafter,"," cmdName:'insertparagraph'"," },"," {"," label:lang['copy'],"," cmdName:'copy',"," exec:function () {"," alert( lang.copymsg );"," },"," query:function () {"," return 0;"," }"," },"," {"," label:lang['paste'],"," cmdName:'paste',"," exec:function () {"," alert( lang.pastemsg );"," },"," query:function () {"," return 0;"," }"," },{"," label:lang['highlightcode'],"," cmdName:'highlightcode',"," exec:function () {"," if ( UE.ui['highlightcode'] ) {"," new UE.ui['highlightcode']( this );"," }"," this.ui._dialogs['highlightcodeDialog'].open();"," }"," }"," ];"," if ( !items.length ) {"," return;"," }"," var uiUtils = UE.ui.uiUtils;",""," me.addListener( 'contextmenu', function ( type, evt ) {",""," var offset = uiUtils.getViewportOffsetByEvent( evt );"," me.fireEvent( 'beforeselectionchange' );"," if ( menu ) {"," menu.destroy();"," }"," for ( var i = 0, ti, contextItems = []; ti = items[i]; i++ ) {"," var last;"," (function ( item ) {"," if ( item == '-' ) {"," if ( (last = contextItems[contextItems.length - 1 ] ) && last !== '-' ) {"," contextItems.push( '-' );"," }"," } else if ( item.hasOwnProperty( \"group\" ) ) {"," for ( var j = 0, cj, subMenu = []; cj = item.subMenu[j]; j++ ) {"," (function ( subItem ) {"," if ( subItem == '-' ) {"," if ( (last = subMenu[subMenu.length - 1 ] ) && last !== '-' ) {"," subMenu.push( '-' );"," }else{"," subMenu.splice(subMenu.length-1);"," }"," } else {"," if ( (me.commands[subItem.cmdName] || UE.commands[subItem.cmdName] || subItem.query) &&"," (subItem.query ? subItem.query() : me.queryCommandState( subItem.cmdName )) > -1 ) {"," subMenu.push( {"," 'label':subItem.label || me.getLang( \"contextMenu.\" + subItem.cmdName + (subItem.value || '') )||\"\","," 'className':'edui-for-' +subItem.cmdName + ( subItem.className ? ( ' edui-for-' + subItem.cmdName + '-' + subItem.className ) : '' ),"," onclick:subItem.exec ? function () {"," subItem.exec.call( me );"," } : function () {"," me.execCommand( subItem.cmdName, subItem.value );"," }"," } );"," }"," }"," })( cj );"," }"," if ( subMenu.length ) {"," function getLabel(){"," switch (item.icon){"," case \"table\":"," return me.getLang( \"contextMenu.table\" );"," case \"justifyjustify\":"," return me.getLang( \"contextMenu.paragraph\" );"," case \"aligntd\":"," return me.getLang(\"contextMenu.aligntd\");"," case \"aligntable\":"," return me.getLang(\"contextMenu.aligntable\");"," case \"tablesort\":"," return lang.tablesort;"," case \"borderBack\":"," return lang.borderbk;"," default :"," return '';"," }"," }"," contextItems.push( {"," //todo 修正成自动获取方式"," 'label':getLabel(),"," className:'edui-for-' + item.icon,"," 'subMenu':{"," items:subMenu,"," editor:me"," }"," } );"," }",""," } else {"," //有可能commmand没有加载右键不能出来,或者没有command也想能展示出来添加query方法"," if ( (me.commands[item.cmdName] || UE.commands[item.cmdName] || item.query) &&"," (item.query ? item.query.call(me) : me.queryCommandState( item.cmdName )) > -1 ) {"," //highlight todo"," if ( item.cmdName == 'highlightcode' ) {"," if(me.queryCommandState( item.cmdName ) == 1 && item.icon != 'deletehighlightcode'){"," return;"," }"," if(me.queryCommandState( item.cmdName ) != 1 && item.icon == 'deletehighlightcode'){"," return;"," }"," }"," contextItems.push( {"," 'label':item.label || me.getLang( \"contextMenu.\" + item.cmdName ),"," className:'edui-for-' + (item.icon ? item.icon : item.cmdName + (item.value || '')),"," onclick:item.exec ? function () {"," item.exec.call( me );"," } : function () {"," me.execCommand( item.cmdName, item.value );"," }"," } );"," }",""," }",""," })( ti );"," }"," if ( contextItems[contextItems.length - 1] == '-' ) {"," contextItems.pop();"," }",""," menu = new UE.ui.Menu( {"," items:contextItems,"," className:\"edui-contextmenu\","," editor:me"," } );"," menu.render();"," menu.showAt( offset );",""," me.fireEvent(\"aftershowcontextmenu\",menu);",""," domUtils.preventDefault( evt );"," if ( browser.ie ) {"," var ieRange;"," try {"," ieRange = me.selection.getNative().createRange();"," } catch ( e ) {"," return;"," }"," if ( ieRange.item ) {"," var range = new dom.Range( me.document );"," range.selectNode( ieRange.item( 0 ) ).select( true, true );",""," }"," }"," } );","};","",""]; +_$jscoverage['plugins/contextmenu.js'][12]++; +UE.plugins.contextmenu = (function () { + _$jscoverage['plugins/contextmenu.js'][13]++; + var me = this, lang = me.getLang("contextMenu"), menu, items = (me.options.contextMenu || [{label: lang.selectall, cmdName: "selectall"}, {label: lang.deletecode, cmdName: "highlightcode", icon: "deletehighlightcode"}, {label: lang.cleardoc, cmdName: "cleardoc", exec: (function () { + _$jscoverage['plugins/contextmenu.js'][27]++; + if (confirm(lang.confirmclear)) { + _$jscoverage['plugins/contextmenu.js'][28]++; + this.execCommand("cleardoc"); + } +})}, "-", {label: lang.unlink, cmdName: "unlink"}, "-", {group: lang.paragraph, icon: "justifyjustify", subMenu: [{label: lang.justifyleft, cmdName: "justify", value: "left"}, {label: lang.justifyright, cmdName: "justify", value: "right"}, {label: lang.justifycenter, cmdName: "justify", value: "center"}, {label: lang.justifyjustify, cmdName: "justify", value: "justify"}]}, "-", {group: lang.table, icon: "table", subMenu: [{label: lang.inserttable, cmdName: "inserttable"}, {label: lang.deletetable, cmdName: "deletetable"}, "-", {label: lang.deleterow, cmdName: "deleterow"}, {label: lang.deletecol, cmdName: "deletecol"}, {label: lang.insertcol, cmdName: "insertcol"}, {label: lang.insertcolnext, cmdName: "insertcolnext"}, {label: lang.insertrow, cmdName: "insertrow"}, {label: lang.insertrownext, cmdName: "insertrownext"}, "-", {label: lang.insertcaption, cmdName: "insertcaption"}, {label: lang.deletecaption, cmdName: "deletecaption"}, {label: lang.inserttitle, cmdName: "inserttitle"}, {label: lang.deletetitle, cmdName: "deletetitle"}, "-", {label: lang.mergecells, cmdName: "mergecells"}, {label: lang.mergeright, cmdName: "mergeright"}, {label: lang.mergedown, cmdName: "mergedown"}, "-", {label: lang.splittorows, cmdName: "splittorows"}, {label: lang.splittocols, cmdName: "splittocols"}, {label: lang.splittocells, cmdName: "splittocells"}, "-", {label: lang.averageDiseRow, cmdName: "averagedistributerow"}, {label: lang.averageDisCol, cmdName: "averagedistributecol"}, "-", {label: lang.edittd, cmdName: "edittd", exec: (function () { + _$jscoverage['plugins/contextmenu.js'][159]++; + if (UE.ui.edittd) { + _$jscoverage['plugins/contextmenu.js'][160]++; + new (UE.ui.edittd)(this); + } + _$jscoverage['plugins/contextmenu.js'][162]++; + this.getDialog("edittd").open(); +})}, {label: lang.edittable, cmdName: "edittable", exec: (function () { + _$jscoverage['plugins/contextmenu.js'][169]++; + if (UE.ui.edittable) { + _$jscoverage['plugins/contextmenu.js'][170]++; + new (UE.ui.edittable)(this); + } + _$jscoverage['plugins/contextmenu.js'][172]++; + this.getDialog("edittable").open(); +})}]}, {group: lang.tablesort, icon: "tablesort", subMenu: [{label: lang.reversecurrent, cmdName: "sorttable", value: 1}, {label: lang.orderbyasc, cmdName: "sorttable"}, {label: lang.reversebyasc, cmdName: "sorttable", exec: (function () { + _$jscoverage['plugins/contextmenu.js'][194]++; + this.execCommand("sorttable", (function (td1, td2) { + _$jscoverage['plugins/contextmenu.js'][195]++; + var value1 = td1.innerHTML, value2 = td2.innerHTML; + _$jscoverage['plugins/contextmenu.js'][197]++; + return value2.localeCompare(value1); +})); +})}, {label: lang.orderbynum, cmdName: "sorttable", exec: (function () { + _$jscoverage['plugins/contextmenu.js'][205]++; + this.execCommand("sorttable", (function (td1, td2) { + _$jscoverage['plugins/contextmenu.js'][206]++; + var value1 = td1[(browser.ie? "innerText": "textContent")].match(/\d+/), value2 = td2[(browser.ie? "innerText": "textContent")].match(/\d+/); + _$jscoverage['plugins/contextmenu.js'][208]++; + if (value1) { + _$jscoverage['plugins/contextmenu.js'][208]++; + value1 = (+ value1[0]); + } + _$jscoverage['plugins/contextmenu.js'][209]++; + if (value2) { + _$jscoverage['plugins/contextmenu.js'][209]++; + value2 = (+ value2[0]); + } + _$jscoverage['plugins/contextmenu.js'][210]++; + return ((value1 || 0) - (value2 || 0)); +})); +})}, {label: lang.reversebynum, cmdName: "sorttable", exec: (function () { + _$jscoverage['plugins/contextmenu.js'][218]++; + this.execCommand("sorttable", (function (td1, td2) { + _$jscoverage['plugins/contextmenu.js'][219]++; + var value1 = td1[(browser.ie? "innerText": "textContent")].match(/\d+/), value2 = td2[(browser.ie? "innerText": "textContent")].match(/\d+/); + _$jscoverage['plugins/contextmenu.js'][221]++; + if (value1) { + _$jscoverage['plugins/contextmenu.js'][221]++; + value1 = (+ value1[0]); + } + _$jscoverage['plugins/contextmenu.js'][222]++; + if (value2) { + _$jscoverage['plugins/contextmenu.js'][222]++; + value2 = (+ value2[0]); + } + _$jscoverage['plugins/contextmenu.js'][223]++; + return ((value2 || 0) - (value1 || 0)); +})); +})}]}, {group: lang.borderbk, icon: "borderBack", subMenu: [{label: lang.setcolor, cmdName: "interlacetable", exec: (function () { + _$jscoverage['plugins/contextmenu.js'][237]++; + this.execCommand("interlacetable"); +})}, {label: lang.unsetcolor, cmdName: "uninterlacetable", exec: (function () { + _$jscoverage['plugins/contextmenu.js'][244]++; + this.execCommand("uninterlacetable"); +})}, {label: lang.setbackground, cmdName: "settablebackground", exec: (function () { + _$jscoverage['plugins/contextmenu.js'][251]++; + this.execCommand("settablebackground", {repeat: true, colorList: ["#bbb", "#ccc"]}); +})}, {label: lang.unsetbackground, cmdName: "cleartablebackground", exec: (function () { + _$jscoverage['plugins/contextmenu.js'][258]++; + this.execCommand("cleartablebackground"); +})}, {label: lang.redandblue, cmdName: "settablebackground", exec: (function () { + _$jscoverage['plugins/contextmenu.js'][265]++; + this.execCommand("settablebackground", {repeat: true, colorList: ["red", "blue"]}); +})}, {label: lang.threecolorgradient, cmdName: "settablebackground", exec: (function () { + _$jscoverage['plugins/contextmenu.js'][272]++; + this.execCommand("settablebackground", {repeat: true, colorList: ["#aaa", "#bbb", "#ccc"]}); +})}]}, {group: lang.aligntd, icon: "aligntd", subMenu: [{cmdName: "cellalignment", value: {align: "left", vAlign: "top"}}, {cmdName: "cellalignment", value: {align: "center", vAlign: "top"}}, {cmdName: "cellalignment", value: {align: "right", vAlign: "top"}}, {cmdName: "cellalignment", value: {align: "left", vAlign: "middle"}}, {cmdName: "cellalignment", value: {align: "center", vAlign: "middle"}}, {cmdName: "cellalignment", value: {align: "right", vAlign: "middle"}}, {cmdName: "cellalignment", value: {align: "left", vAlign: "bottom"}}, {cmdName: "cellalignment", value: {align: "center", vAlign: "bottom"}}, {cmdName: "cellalignment", value: {align: "right", vAlign: "bottom"}}]}, {group: lang.aligntable, icon: "aligntable", subMenu: [{cmdName: "tablealignment", className: "left", label: lang.tableleft, value: "left"}, {cmdName: "tablealignment", className: "center", label: lang.tablecenter, value: "center"}, {cmdName: "tablealignment", className: "right", label: lang.tableright, value: "right"}]}, "-", {label: lang.insertparagraphbefore, cmdName: "insertparagraph", value: true}, {label: lang.insertparagraphafter, cmdName: "insertparagraph"}, {label: lang.copy, cmdName: "copy", exec: (function () { + _$jscoverage['plugins/contextmenu.js'][357]++; + alert(lang.copymsg); +}), query: (function () { + _$jscoverage['plugins/contextmenu.js'][360]++; + return 0; +})}, {label: lang.paste, cmdName: "paste", exec: (function () { + _$jscoverage['plugins/contextmenu.js'][367]++; + alert(lang.pastemsg); +}), query: (function () { + _$jscoverage['plugins/contextmenu.js'][370]++; + return 0; +})}, {label: lang.highlightcode, cmdName: "highlightcode", exec: (function () { + _$jscoverage['plugins/contextmenu.js'][376]++; + if (UE.ui.highlightcode) { + _$jscoverage['plugins/contextmenu.js'][377]++; + new (UE.ui.highlightcode)(this); + } + _$jscoverage['plugins/contextmenu.js'][379]++; + this.ui._dialogs.highlightcodeDialog.open(); +})}]); + _$jscoverage['plugins/contextmenu.js'][383]++; + if ((! items.length)) { + _$jscoverage['plugins/contextmenu.js'][384]++; + return; + } + _$jscoverage['plugins/contextmenu.js'][386]++; + var uiUtils = UE.ui.uiUtils; + _$jscoverage['plugins/contextmenu.js'][388]++; + me.addListener("contextmenu", (function (type, evt) { + _$jscoverage['plugins/contextmenu.js'][390]++; + var offset = uiUtils.getViewportOffsetByEvent(evt); + _$jscoverage['plugins/contextmenu.js'][391]++; + me.fireEvent("beforeselectionchange"); + _$jscoverage['plugins/contextmenu.js'][392]++; + if (menu) { + _$jscoverage['plugins/contextmenu.js'][393]++; + menu.destroy(); + } + _$jscoverage['plugins/contextmenu.js'][395]++; + for (var i = 0, ti, contextItems = []; (ti = items[i]); (i++)) { + _$jscoverage['plugins/contextmenu.js'][396]++; + var last; + _$jscoverage['plugins/contextmenu.js'][397]++; + (function (item) { + _$jscoverage['plugins/contextmenu.js'][398]++; + if ((item == "-")) { + _$jscoverage['plugins/contextmenu.js'][399]++; + if (((last = contextItems[(contextItems.length - 1)]) && (last !== "-"))) { + _$jscoverage['plugins/contextmenu.js'][400]++; + contextItems.push("-"); + } + } + else { + _$jscoverage['plugins/contextmenu.js'][402]++; + if (item.hasOwnProperty("group")) { + _$jscoverage['plugins/contextmenu.js'][403]++; + for (var j = 0, cj, subMenu = []; (cj = item.subMenu[j]); (j++)) { + _$jscoverage['plugins/contextmenu.js'][404]++; + (function (subItem) { + _$jscoverage['plugins/contextmenu.js'][405]++; + if ((subItem == "-")) { + _$jscoverage['plugins/contextmenu.js'][406]++; + if (((last = subMenu[(subMenu.length - 1)]) && (last !== "-"))) { + _$jscoverage['plugins/contextmenu.js'][407]++; + subMenu.push("-"); + } + else { + _$jscoverage['plugins/contextmenu.js'][409]++; + subMenu.splice((subMenu.length - 1)); + } + } + else { + _$jscoverage['plugins/contextmenu.js'][412]++; + if (((me.commands[subItem.cmdName] || UE.commands[subItem.cmdName] || subItem.query) && ((subItem.query? subItem.query(): me.queryCommandState(subItem.cmdName)) > -1))) { + _$jscoverage['plugins/contextmenu.js'][414]++; + subMenu.push({"label": (subItem.label || me.getLang(("contextMenu." + subItem.cmdName + (subItem.value || ""))) || ""), "className": ("edui-for-" + subItem.cmdName + (subItem.className? (" edui-for-" + subItem.cmdName + "-" + subItem.className): "")), onclick: (subItem.exec? (function () { + _$jscoverage['plugins/contextmenu.js'][418]++; + subItem.exec.call(me); +}): (function () { + _$jscoverage['plugins/contextmenu.js'][420]++; + me.execCommand(subItem.cmdName, subItem.value); +}))}); + } + } +})(cj); +} + _$jscoverage['plugins/contextmenu.js'][427]++; + if (subMenu.length) { + _$jscoverage['plugins/contextmenu.js'][428]++; + function getLabel() { + _$jscoverage['plugins/contextmenu.js'][429]++; + switch (item.icon) { + case "table": + _$jscoverage['plugins/contextmenu.js'][431]++; + return me.getLang("contextMenu.table"); + case "justifyjustify": + _$jscoverage['plugins/contextmenu.js'][433]++; + return me.getLang("contextMenu.paragraph"); + case "aligntd": + _$jscoverage['plugins/contextmenu.js'][435]++; + return me.getLang("contextMenu.aligntd"); + case "aligntable": + _$jscoverage['plugins/contextmenu.js'][437]++; + return me.getLang("contextMenu.aligntable"); + case "tablesort": + _$jscoverage['plugins/contextmenu.js'][439]++; + return lang.tablesort; + case "borderBack": + _$jscoverage['plugins/contextmenu.js'][441]++; + return lang.borderbk; + default: + _$jscoverage['plugins/contextmenu.js'][443]++; + return ""; + } +} + _$jscoverage['plugins/contextmenu.js'][446]++; + contextItems.push({"label": getLabel(), className: ("edui-for-" + item.icon), "subMenu": {items: subMenu, editor: me}}); + } + } + else { + _$jscoverage['plugins/contextmenu.js'][459]++; + if (((me.commands[item.cmdName] || UE.commands[item.cmdName] || item.query) && ((item.query? item.query.call(me): me.queryCommandState(item.cmdName)) > -1))) { + _$jscoverage['plugins/contextmenu.js'][462]++; + if ((item.cmdName == "highlightcode")) { + _$jscoverage['plugins/contextmenu.js'][463]++; + if (((me.queryCommandState(item.cmdName) == 1) && (item.icon != "deletehighlightcode"))) { + _$jscoverage['plugins/contextmenu.js'][464]++; + return; + } + _$jscoverage['plugins/contextmenu.js'][466]++; + if (((me.queryCommandState(item.cmdName) != 1) && (item.icon == "deletehighlightcode"))) { + _$jscoverage['plugins/contextmenu.js'][467]++; + return; + } + } + _$jscoverage['plugins/contextmenu.js'][470]++; + contextItems.push({"label": (item.label || me.getLang(("contextMenu." + item.cmdName))), className: ("edui-for-" + (item.icon? item.icon: (item.cmdName + (item.value || "")))), onclick: (item.exec? (function () { + _$jscoverage['plugins/contextmenu.js'][474]++; + item.exec.call(me); +}): (function () { + _$jscoverage['plugins/contextmenu.js'][476]++; + me.execCommand(item.cmdName, item.value); +}))}); + } + } + } +})(ti); +} + _$jscoverage['plugins/contextmenu.js'][485]++; + if ((contextItems[(contextItems.length - 1)] == "-")) { + _$jscoverage['plugins/contextmenu.js'][486]++; + contextItems.pop(); + } + _$jscoverage['plugins/contextmenu.js'][489]++; + menu = new (UE.ui.Menu)({items: contextItems, className: "edui-contextmenu", editor: me}); + _$jscoverage['plugins/contextmenu.js'][494]++; + menu.render(); + _$jscoverage['plugins/contextmenu.js'][495]++; + menu.showAt(offset); + _$jscoverage['plugins/contextmenu.js'][497]++; + me.fireEvent("aftershowcontextmenu", menu); + _$jscoverage['plugins/contextmenu.js'][499]++; + domUtils.preventDefault(evt); + _$jscoverage['plugins/contextmenu.js'][500]++; + if (browser.ie) { + _$jscoverage['plugins/contextmenu.js'][501]++; + var ieRange; + _$jscoverage['plugins/contextmenu.js'][502]++; + try { + _$jscoverage['plugins/contextmenu.js'][503]++; + ieRange = me.selection.getNative().createRange(); + } + catch (e) { + _$jscoverage['plugins/contextmenu.js'][505]++; + return; + } + _$jscoverage['plugins/contextmenu.js'][507]++; + if (ieRange.item) { + _$jscoverage['plugins/contextmenu.js'][508]++; + var range = new (dom.Range)(me.document); + _$jscoverage['plugins/contextmenu.js'][509]++; + range.selectNode(ieRange.item(0)).select(true, true); + } + } +})); +}); diff --git a/_test/coverage/plugins/convertcase.js b/_test/coverage/plugins/convertcase.js new file mode 100644 index 000000000..89df8c0c9 --- /dev/null +++ b/_test/coverage/plugins/convertcase.js @@ -0,0 +1,91 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/convertcase.js']) { + _$jscoverage['plugins/convertcase.js'] = []; + _$jscoverage['plugins/convertcase.js'][28] = 0; + _$jscoverage['plugins/convertcase.js'][31] = 0; + _$jscoverage['plugins/convertcase.js'][32] = 0; + _$jscoverage['plugins/convertcase.js'][33] = 0; + _$jscoverage['plugins/convertcase.js'][34] = 0; + _$jscoverage['plugins/convertcase.js'][36] = 0; + _$jscoverage['plugins/convertcase.js'][39] = 0; + _$jscoverage['plugins/convertcase.js'][42] = 0; + _$jscoverage['plugins/convertcase.js'][44] = 0; + _$jscoverage['plugins/convertcase.js'][45] = 0; + _$jscoverage['plugins/convertcase.js'][47] = 0; + _$jscoverage['plugins/convertcase.js'][48] = 0; + _$jscoverage['plugins/convertcase.js'][49] = 0; + _$jscoverage['plugins/convertcase.js'][53] = 0; +} +_$jscoverage['plugins/convertcase.js'].source = ["/**"," * 大小写转换"," * @file"," * @since 1.2.6.1"," */","","/**"," * 把选区内文本变大写"," * @command touppercase"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @example"," * ```javascript"," * editor.execCommand( 'touppercase' );"," * ```"," */","","/**"," * 把选区内文本变小写"," * @command tolowercase"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @example"," * ```javascript"," * editor.execCommand( 'tolowercase' );"," * ```"," */","UE.commands['touppercase'] =","UE.commands['tolowercase'] = {"," execCommand:function (cmd) {"," var me = this;"," var rng = me.selection.getRange();"," if(rng.collapsed){"," return rng;"," }"," var bk = rng.createBookmark(),"," bkEnd = bk.end,"," filterFn = function( node ) {"," return !domUtils.isBr(node) && !domUtils.isWhitespace( node );"," },"," curNode = domUtils.getNextDomNode( bk.start, false, filterFn );"," while ( curNode && (domUtils.getPosition( curNode, bkEnd ) & domUtils.POSITION_PRECEDING) ) {",""," if ( curNode.nodeType == 3 ) {"," curNode.nodeValue = curNode.nodeValue[cmd == 'touppercase' ? 'toUpperCase' : 'toLowerCase']();"," }"," curNode = domUtils.getNextDomNode( curNode, true, filterFn );"," if(curNode === bkEnd){"," break;"," }",""," }"," rng.moveToBookmark(bk).select();"," }","};",""]; +_$jscoverage['plugins/convertcase.js'][28]++; +UE.commands.touppercase = (UE.commands.tolowercase = {execCommand: (function (cmd) { + _$jscoverage['plugins/convertcase.js'][31]++; + var me = this; + _$jscoverage['plugins/convertcase.js'][32]++; + var rng = me.selection.getRange(); + _$jscoverage['plugins/convertcase.js'][33]++; + if (rng.collapsed) { + _$jscoverage['plugins/convertcase.js'][34]++; + return rng; + } + _$jscoverage['plugins/convertcase.js'][36]++; + var bk = rng.createBookmark(), bkEnd = bk.end, filterFn = (function (node) { + _$jscoverage['plugins/convertcase.js'][39]++; + return ((! domUtils.isBr(node)) && (! domUtils.isWhitespace(node))); +}), curNode = domUtils.getNextDomNode(bk.start, false, filterFn); + _$jscoverage['plugins/convertcase.js'][42]++; + while ((curNode && (domUtils.getPosition(curNode, bkEnd) & domUtils.POSITION_PRECEDING))) { + _$jscoverage['plugins/convertcase.js'][44]++; + if ((curNode.nodeType == 3)) { + _$jscoverage['plugins/convertcase.js'][45]++; + curNode.nodeValue = (curNode.nodeValue[((cmd == "touppercase")? "toUpperCase": "toLowerCase")])(); + } + _$jscoverage['plugins/convertcase.js'][47]++; + curNode = domUtils.getNextDomNode(curNode, true, filterFn); + _$jscoverage['plugins/convertcase.js'][48]++; + if ((curNode === bkEnd)) { + _$jscoverage['plugins/convertcase.js'][49]++; + break; + } +} + _$jscoverage['plugins/convertcase.js'][53]++; + rng.moveToBookmark(bk).select(); +})}); diff --git a/_test/coverage/plugins/customstyle.js b/_test/coverage/plugins/customstyle.js new file mode 100644 index 000000000..fbf440cbb --- /dev/null +++ b/_test/coverage/plugins/customstyle.js @@ -0,0 +1,293 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/customstyle.js']) { + _$jscoverage['plugins/customstyle.js'] = []; + _$jscoverage['plugins/customstyle.js'][6] = 0; + _$jscoverage['plugins/customstyle.js'][7] = 0; + _$jscoverage['plugins/customstyle.js'][8] = 0; + _$jscoverage['plugins/customstyle.js'][14] = 0; + _$jscoverage['plugins/customstyle.js'][16] = 0; + _$jscoverage['plugins/customstyle.js'][19] = 0; + _$jscoverage['plugins/customstyle.js'][22] = 0; + _$jscoverage['plugins/customstyle.js'][23] = 0; + _$jscoverage['plugins/customstyle.js'][24] = 0; + _$jscoverage['plugins/customstyle.js'][26] = 0; + _$jscoverage['plugins/customstyle.js'][27] = 0; + _$jscoverage['plugins/customstyle.js'][28] = 0; + _$jscoverage['plugins/customstyle.js'][29] = 0; + _$jscoverage['plugins/customstyle.js'][30] = 0; + _$jscoverage['plugins/customstyle.js'][32] = 0; + _$jscoverage['plugins/customstyle.js'][33] = 0; + _$jscoverage['plugins/customstyle.js'][34] = 0; + _$jscoverage['plugins/customstyle.js'][35] = 0; + _$jscoverage['plugins/customstyle.js'][36] = 0; + _$jscoverage['plugins/customstyle.js'][38] = 0; + _$jscoverage['plugins/customstyle.js'][43] = 0; + _$jscoverage['plugins/customstyle.js'][45] = 0; + _$jscoverage['plugins/customstyle.js'][46] = 0; + _$jscoverage['plugins/customstyle.js'][48] = 0; + _$jscoverage['plugins/customstyle.js'][49] = 0; + _$jscoverage['plugins/customstyle.js'][50] = 0; + _$jscoverage['plugins/customstyle.js'][51] = 0; + _$jscoverage['plugins/customstyle.js'][55] = 0; + _$jscoverage['plugins/customstyle.js'][56] = 0; + _$jscoverage['plugins/customstyle.js'][57] = 0; + _$jscoverage['plugins/customstyle.js'][58] = 0; + _$jscoverage['plugins/customstyle.js'][60] = 0; + _$jscoverage['plugins/customstyle.js'][63] = 0; + _$jscoverage['plugins/customstyle.js'][64] = 0; + _$jscoverage['plugins/customstyle.js'][66] = 0; + _$jscoverage['plugins/customstyle.js'][68] = 0; + _$jscoverage['plugins/customstyle.js'][73] = 0; + _$jscoverage['plugins/customstyle.js'][75] = 0; + _$jscoverage['plugins/customstyle.js'][76] = 0; + _$jscoverage['plugins/customstyle.js'][77] = 0; + _$jscoverage['plugins/customstyle.js'][78] = 0; + _$jscoverage['plugins/customstyle.js'][79] = 0; + _$jscoverage['plugins/customstyle.js'][80] = 0; + _$jscoverage['plugins/customstyle.js'][81] = 0; + _$jscoverage['plugins/customstyle.js'][83] = 0; + _$jscoverage['plugins/customstyle.js'][84] = 0; + _$jscoverage['plugins/customstyle.js'][85] = 0; + _$jscoverage['plugins/customstyle.js'][86] = 0; + _$jscoverage['plugins/customstyle.js'][90] = 0; + _$jscoverage['plugins/customstyle.js'][91] = 0; + _$jscoverage['plugins/customstyle.js'][92] = 0; + _$jscoverage['plugins/customstyle.js'][93] = 0; + _$jscoverage['plugins/customstyle.js'][94] = 0; + _$jscoverage['plugins/customstyle.js'][96] = 0; + _$jscoverage['plugins/customstyle.js'][99] = 0; + _$jscoverage['plugins/customstyle.js'][100] = 0; + _$jscoverage['plugins/customstyle.js'][106] = 0; + _$jscoverage['plugins/customstyle.js'][108] = 0; + _$jscoverage['plugins/customstyle.js'][110] = 0; + _$jscoverage['plugins/customstyle.js'][114] = 0; + _$jscoverage['plugins/customstyle.js'][115] = 0; + _$jscoverage['plugins/customstyle.js'][117] = 0; + _$jscoverage['plugins/customstyle.js'][118] = 0; + _$jscoverage['plugins/customstyle.js'][119] = 0; + _$jscoverage['plugins/customstyle.js'][120] = 0; + _$jscoverage['plugins/customstyle.js'][121] = 0; + _$jscoverage['plugins/customstyle.js'][123] = 0; + _$jscoverage['plugins/customstyle.js'][124] = 0; + _$jscoverage['plugins/customstyle.js'][125] = 0; + _$jscoverage['plugins/customstyle.js'][126] = 0; + _$jscoverage['plugins/customstyle.js'][127] = 0; + _$jscoverage['plugins/customstyle.js'][128] = 0; +} +_$jscoverage['plugins/customstyle.js'].source = ["/**"," * 自定义样式命令支持"," * @file"," */","","UE.plugins['customstyle'] = function() {"," var me = this;"," me.setOpt({ 'customstyle':["," {tag:'h1',name:'tc', style:'font-size:32px;font-weight:bold;border-bottom:#ccc 2px solid;padding:0 4px 0 0;text-align:center;margin:0 0 20px 0;'},"," {tag:'h1',name:'tl', style:'font-size:32px;font-weight:bold;border-bottom:#ccc 2px solid;padding:0 4px 0 0;text-align:left;margin:0 0 10px 0;'},"," {tag:'span',name:'im', style:'font-size:16px;font-style:italic;font-weight:bold;line-height:18px;'},"," {tag:'span',name:'hi', style:'font-size:16px;font-style:italic;font-weight:bold;color:rgb(51, 153, 204);line-height:18px;'}"," ]});"," me.commands['customstyle'] = {"," execCommand : function(cmdName, obj) {"," var me = this,"," tagName = obj.tag,"," node = domUtils.findParent(me.selection.getStart(), function(node) {"," return node.getAttribute('label');"," }, true),"," range,bk,tmpObj = {};"," for (var p in obj) {"," if(obj[p]!==undefined)"," tmpObj[p] = obj[p];"," }"," delete tmpObj.tag;"," if (node && node.getAttribute('label') == obj.label) {"," range = this.selection.getRange();"," bk = range.createBookmark();"," if (range.collapsed) {"," //trace:1732 删掉自定义标签,要有p来回填站位"," if(dtd.$block[node.tagName]){"," var fillNode = me.document.createElement('p');"," domUtils.moveChild(node, fillNode);"," node.parentNode.insertBefore(fillNode, node);"," domUtils.remove(node);"," }else{"," domUtils.remove(node,true);"," }",""," } else {",""," var common = domUtils.getCommonAncestor(bk.start, bk.end),"," nodes = domUtils.getElementsByTagName(common, tagName);"," if(new RegExp(tagName,'i').test(common.tagName)){"," nodes.push(common);"," }"," for (var i = 0,ni; ni = nodes[i++];) {"," if (ni.getAttribute('label') == obj.label) {"," var ps = domUtils.getPosition(ni, bk.start),pe = domUtils.getPosition(ni, bk.end);"," if ((ps & domUtils.POSITION_FOLLOWING || ps & domUtils.POSITION_CONTAINS)"," &&"," (pe & domUtils.POSITION_PRECEDING || pe & domUtils.POSITION_CONTAINS)"," )"," if (dtd.$block[tagName]) {"," var fillNode = me.document.createElement('p');"," domUtils.moveChild(ni, fillNode);"," ni.parentNode.insertBefore(fillNode, ni);"," }"," domUtils.remove(ni, true);"," }"," }"," node = domUtils.findParent(common, function(node) {"," return node.getAttribute('label') == obj.label;"," }, true);"," if (node) {",""," domUtils.remove(node, true);",""," }",""," }"," range.moveToBookmark(bk).select();"," } else {"," if (dtd.$block[tagName]) {"," this.execCommand('paragraph', tagName, tmpObj,'customstyle');"," range = me.selection.getRange();"," if (!range.collapsed) {"," range.collapse();"," node = domUtils.findParent(me.selection.getStart(), function(node) {"," return node.getAttribute('label') == obj.label;"," }, true);"," var pNode = me.document.createElement('p');"," domUtils.insertAfter(node, pNode);"," domUtils.fillNode(me.document, pNode);"," range.setStart(pNode, 0).setCursor();"," }"," } else {",""," range = me.selection.getRange();"," if (range.collapsed) {"," node = me.document.createElement(tagName);"," domUtils.setAttributes(node, tmpObj);"," range.insertNode(node).setStart(node, 0).setCursor();",""," return;"," }",""," bk = range.createBookmark();"," range.applyInlineStyle(tagName, tmpObj).moveToBookmark(bk).select();"," }"," }",""," },"," queryCommandValue : function() {"," var parent = domUtils.filterNodeList("," this.selection.getStartElementPath(),"," function(node){return node.getAttribute('label')}"," );"," return parent ? parent.getAttribute('label') : '';"," }"," };"," //当去掉customstyle是,如果是块元素,用p代替"," me.addListener('keyup', function(type, evt) {"," var keyCode = evt.keyCode || evt.which;",""," if (keyCode == 32 || keyCode == 13) {"," var range = me.selection.getRange();"," if (range.collapsed) {"," var node = domUtils.findParent(me.selection.getStart(), function(node) {"," return node.getAttribute('label');"," }, true);"," if (node && dtd.$block[node.tagName] && domUtils.isEmptyNode(node)) {"," var p = me.document.createElement('p');"," domUtils.insertAfter(node, p);"," domUtils.fillNode(me.document, p);"," domUtils.remove(node);"," range.setStart(p, 0).setCursor();","",""," }"," }"," }"," });","};"]; +_$jscoverage['plugins/customstyle.js'][6]++; +UE.plugins.customstyle = (function () { + _$jscoverage['plugins/customstyle.js'][7]++; + var me = this; + _$jscoverage['plugins/customstyle.js'][8]++; + me.setOpt({"customstyle": [{tag: "h1", name: "tc", style: "font-size:32px;font-weight:bold;border-bottom:#ccc 2px solid;padding:0 4px 0 0;text-align:center;margin:0 0 20px 0;"}, {tag: "h1", name: "tl", style: "font-size:32px;font-weight:bold;border-bottom:#ccc 2px solid;padding:0 4px 0 0;text-align:left;margin:0 0 10px 0;"}, {tag: "span", name: "im", style: "font-size:16px;font-style:italic;font-weight:bold;line-height:18px;"}, {tag: "span", name: "hi", style: "font-size:16px;font-style:italic;font-weight:bold;color:rgb(51, 153, 204);line-height:18px;"}]}); + _$jscoverage['plugins/customstyle.js'][14]++; + me.commands.customstyle = {execCommand: (function (cmdName, obj) { + _$jscoverage['plugins/customstyle.js'][16]++; + var me = this, tagName = obj.tag, node = domUtils.findParent(me.selection.getStart(), (function (node) { + _$jscoverage['plugins/customstyle.js'][19]++; + return node.getAttribute("label"); +}), true), range, bk, tmpObj = {}; + _$jscoverage['plugins/customstyle.js'][22]++; + for (var p in obj) { + _$jscoverage['plugins/customstyle.js'][23]++; + if ((obj[p] !== undefined)) { + _$jscoverage['plugins/customstyle.js'][24]++; + tmpObj[p] = obj[p]; + } +} + _$jscoverage['plugins/customstyle.js'][26]++; + (delete tmpObj.tag); + _$jscoverage['plugins/customstyle.js'][27]++; + if ((node && (node.getAttribute("label") == obj.label))) { + _$jscoverage['plugins/customstyle.js'][28]++; + range = this.selection.getRange(); + _$jscoverage['plugins/customstyle.js'][29]++; + bk = range.createBookmark(); + _$jscoverage['plugins/customstyle.js'][30]++; + if (range.collapsed) { + _$jscoverage['plugins/customstyle.js'][32]++; + if (dtd.$block[node.tagName]) { + _$jscoverage['plugins/customstyle.js'][33]++; + var fillNode = me.document.createElement("p"); + _$jscoverage['plugins/customstyle.js'][34]++; + domUtils.moveChild(node, fillNode); + _$jscoverage['plugins/customstyle.js'][35]++; + node.parentNode.insertBefore(fillNode, node); + _$jscoverage['plugins/customstyle.js'][36]++; + domUtils.remove(node); + } + else { + _$jscoverage['plugins/customstyle.js'][38]++; + domUtils.remove(node, true); + } + } + else { + _$jscoverage['plugins/customstyle.js'][43]++; + var common = domUtils.getCommonAncestor(bk.start, bk.end), nodes = domUtils.getElementsByTagName(common, tagName); + _$jscoverage['plugins/customstyle.js'][45]++; + if (new RegExp(tagName, "i").test(common.tagName)) { + _$jscoverage['plugins/customstyle.js'][46]++; + nodes.push(common); + } + _$jscoverage['plugins/customstyle.js'][48]++; + for (var i = 0, ni; (ni = nodes[(i++)]);) { + _$jscoverage['plugins/customstyle.js'][49]++; + if ((ni.getAttribute("label") == obj.label)) { + _$jscoverage['plugins/customstyle.js'][50]++; + var ps = domUtils.getPosition(ni, bk.start), pe = domUtils.getPosition(ni, bk.end); + _$jscoverage['plugins/customstyle.js'][51]++; + if ((((ps & domUtils.POSITION_FOLLOWING) || (ps & domUtils.POSITION_CONTAINS)) && ((pe & domUtils.POSITION_PRECEDING) || (pe & domUtils.POSITION_CONTAINS)))) { + _$jscoverage['plugins/customstyle.js'][55]++; + if (dtd.$block[tagName]) { + _$jscoverage['plugins/customstyle.js'][56]++; + var fillNode = me.document.createElement("p"); + _$jscoverage['plugins/customstyle.js'][57]++; + domUtils.moveChild(ni, fillNode); + _$jscoverage['plugins/customstyle.js'][58]++; + ni.parentNode.insertBefore(fillNode, ni); + } + } + _$jscoverage['plugins/customstyle.js'][60]++; + domUtils.remove(ni, true); + } +} + _$jscoverage['plugins/customstyle.js'][63]++; + node = domUtils.findParent(common, (function (node) { + _$jscoverage['plugins/customstyle.js'][64]++; + return (node.getAttribute("label") == obj.label); +}), true); + _$jscoverage['plugins/customstyle.js'][66]++; + if (node) { + _$jscoverage['plugins/customstyle.js'][68]++; + domUtils.remove(node, true); + } + } + _$jscoverage['plugins/customstyle.js'][73]++; + range.moveToBookmark(bk).select(); + } + else { + _$jscoverage['plugins/customstyle.js'][75]++; + if (dtd.$block[tagName]) { + _$jscoverage['plugins/customstyle.js'][76]++; + this.execCommand("paragraph", tagName, tmpObj, "customstyle"); + _$jscoverage['plugins/customstyle.js'][77]++; + range = me.selection.getRange(); + _$jscoverage['plugins/customstyle.js'][78]++; + if ((! range.collapsed)) { + _$jscoverage['plugins/customstyle.js'][79]++; + range.collapse(); + _$jscoverage['plugins/customstyle.js'][80]++; + node = domUtils.findParent(me.selection.getStart(), (function (node) { + _$jscoverage['plugins/customstyle.js'][81]++; + return (node.getAttribute("label") == obj.label); +}), true); + _$jscoverage['plugins/customstyle.js'][83]++; + var pNode = me.document.createElement("p"); + _$jscoverage['plugins/customstyle.js'][84]++; + domUtils.insertAfter(node, pNode); + _$jscoverage['plugins/customstyle.js'][85]++; + domUtils.fillNode(me.document, pNode); + _$jscoverage['plugins/customstyle.js'][86]++; + range.setStart(pNode, 0).setCursor(); + } + } + else { + _$jscoverage['plugins/customstyle.js'][90]++; + range = me.selection.getRange(); + _$jscoverage['plugins/customstyle.js'][91]++; + if (range.collapsed) { + _$jscoverage['plugins/customstyle.js'][92]++; + node = me.document.createElement(tagName); + _$jscoverage['plugins/customstyle.js'][93]++; + domUtils.setAttributes(node, tmpObj); + _$jscoverage['plugins/customstyle.js'][94]++; + range.insertNode(node).setStart(node, 0).setCursor(); + _$jscoverage['plugins/customstyle.js'][96]++; + return; + } + _$jscoverage['plugins/customstyle.js'][99]++; + bk = range.createBookmark(); + _$jscoverage['plugins/customstyle.js'][100]++; + range.applyInlineStyle(tagName, tmpObj).moveToBookmark(bk).select(); + } + } +}), queryCommandValue: (function () { + _$jscoverage['plugins/customstyle.js'][106]++; + var parent = domUtils.filterNodeList(this.selection.getStartElementPath(), (function (node) { + _$jscoverage['plugins/customstyle.js'][108]++; + return node.getAttribute("label"); +})); + _$jscoverage['plugins/customstyle.js'][110]++; + return (parent? parent.getAttribute("label"): ""); +})}; + _$jscoverage['plugins/customstyle.js'][114]++; + me.addListener("keyup", (function (type, evt) { + _$jscoverage['plugins/customstyle.js'][115]++; + var keyCode = (evt.keyCode || evt.which); + _$jscoverage['plugins/customstyle.js'][117]++; + if (((keyCode == 32) || (keyCode == 13))) { + _$jscoverage['plugins/customstyle.js'][118]++; + var range = me.selection.getRange(); + _$jscoverage['plugins/customstyle.js'][119]++; + if (range.collapsed) { + _$jscoverage['plugins/customstyle.js'][120]++; + var node = domUtils.findParent(me.selection.getStart(), (function (node) { + _$jscoverage['plugins/customstyle.js'][121]++; + return node.getAttribute("label"); +}), true); + _$jscoverage['plugins/customstyle.js'][123]++; + if ((node && dtd.$block[node.tagName] && domUtils.isEmptyNode(node))) { + _$jscoverage['plugins/customstyle.js'][124]++; + var p = me.document.createElement("p"); + _$jscoverage['plugins/customstyle.js'][125]++; + domUtils.insertAfter(node, p); + _$jscoverage['plugins/customstyle.js'][126]++; + domUtils.fillNode(me.document, p); + _$jscoverage['plugins/customstyle.js'][127]++; + domUtils.remove(node); + _$jscoverage['plugins/customstyle.js'][128]++; + range.setStart(p, 0).setCursor(); + } + } + } +})); +}); diff --git a/_test/coverage/plugins/defaultfilter.js b/_test/coverage/plugins/defaultfilter.js new file mode 100644 index 000000000..7cb7f3dad --- /dev/null +++ b/_test/coverage/plugins/defaultfilter.js @@ -0,0 +1,388 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/defaultfilter.js']) { + _$jscoverage['plugins/defaultfilter.js'] = []; + _$jscoverage['plugins/defaultfilter.js'][4] = 0; + _$jscoverage['plugins/defaultfilter.js'][5] = 0; + _$jscoverage['plugins/defaultfilter.js'][6] = 0; + _$jscoverage['plugins/defaultfilter.js'][9] = 0; + _$jscoverage['plugins/defaultfilter.js'][10] = 0; + _$jscoverage['plugins/defaultfilter.js'][11] = 0; + _$jscoverage['plugins/defaultfilter.js'][13] = 0; + _$jscoverage['plugins/defaultfilter.js'][14] = 0; + _$jscoverage['plugins/defaultfilter.js'][15] = 0; + _$jscoverage['plugins/defaultfilter.js'][16] = 0; + _$jscoverage['plugins/defaultfilter.js'][17] = 0; + _$jscoverage['plugins/defaultfilter.js'][18] = 0; + _$jscoverage['plugins/defaultfilter.js'][20] = 0; + _$jscoverage['plugins/defaultfilter.js'][22] = 0; + _$jscoverage['plugins/defaultfilter.js'][25] = 0; + _$jscoverage['plugins/defaultfilter.js'][29] = 0; + _$jscoverage['plugins/defaultfilter.js'][30] = 0; + _$jscoverage['plugins/defaultfilter.js'][31] = 0; + _$jscoverage['plugins/defaultfilter.js'][33] = 0; + _$jscoverage['plugins/defaultfilter.js'][34] = 0; + _$jscoverage['plugins/defaultfilter.js'][36] = 0; + _$jscoverage['plugins/defaultfilter.js'][39] = 0; + _$jscoverage['plugins/defaultfilter.js'][40] = 0; + _$jscoverage['plugins/defaultfilter.js'][41] = 0; + _$jscoverage['plugins/defaultfilter.js'][42] = 0; + _$jscoverage['plugins/defaultfilter.js'][45] = 0; + _$jscoverage['plugins/defaultfilter.js'][46] = 0; + _$jscoverage['plugins/defaultfilter.js'][48] = 0; + _$jscoverage['plugins/defaultfilter.js'][49] = 0; + _$jscoverage['plugins/defaultfilter.js'][50] = 0; + _$jscoverage['plugins/defaultfilter.js'][51] = 0; + _$jscoverage['plugins/defaultfilter.js'][52] = 0; + _$jscoverage['plugins/defaultfilter.js'][56] = 0; + _$jscoverage['plugins/defaultfilter.js'][58] = 0; + _$jscoverage['plugins/defaultfilter.js'][59] = 0; + _$jscoverage['plugins/defaultfilter.js'][60] = 0; + _$jscoverage['plugins/defaultfilter.js'][69] = 0; + _$jscoverage['plugins/defaultfilter.js'][70] = 0; + _$jscoverage['plugins/defaultfilter.js'][72] = 0; + _$jscoverage['plugins/defaultfilter.js'][74] = 0; + _$jscoverage['plugins/defaultfilter.js'][75] = 0; + _$jscoverage['plugins/defaultfilter.js'][78] = 0; + _$jscoverage['plugins/defaultfilter.js'][79] = 0; + _$jscoverage['plugins/defaultfilter.js'][80] = 0; + _$jscoverage['plugins/defaultfilter.js'][82] = 0; + _$jscoverage['plugins/defaultfilter.js'][83] = 0; + _$jscoverage['plugins/defaultfilter.js'][85] = 0; + _$jscoverage['plugins/defaultfilter.js'][86] = 0; + _$jscoverage['plugins/defaultfilter.js'][87] = 0; + _$jscoverage['plugins/defaultfilter.js'][88] = 0; + _$jscoverage['plugins/defaultfilter.js'][90] = 0; + _$jscoverage['plugins/defaultfilter.js'][91] = 0; + _$jscoverage['plugins/defaultfilter.js'][92] = 0; + _$jscoverage['plugins/defaultfilter.js'][94] = 0; + _$jscoverage['plugins/defaultfilter.js'][98] = 0; + _$jscoverage['plugins/defaultfilter.js'][99] = 0; + _$jscoverage['plugins/defaultfilter.js'][101] = 0; + _$jscoverage['plugins/defaultfilter.js'][102] = 0; + _$jscoverage['plugins/defaultfilter.js'][104] = 0; + _$jscoverage['plugins/defaultfilter.js'][105] = 0; + _$jscoverage['plugins/defaultfilter.js'][108] = 0; + _$jscoverage['plugins/defaultfilter.js'][109] = 0; + _$jscoverage['plugins/defaultfilter.js'][111] = 0; + _$jscoverage['plugins/defaultfilter.js'][112] = 0; + _$jscoverage['plugins/defaultfilter.js'][113] = 0; + _$jscoverage['plugins/defaultfilter.js'][115] = 0; + _$jscoverage['plugins/defaultfilter.js'][116] = 0; + _$jscoverage['plugins/defaultfilter.js'][117] = 0; + _$jscoverage['plugins/defaultfilter.js'][119] = 0; + _$jscoverage['plugins/defaultfilter.js'][123] = 0; + _$jscoverage['plugins/defaultfilter.js'][125] = 0; + _$jscoverage['plugins/defaultfilter.js'][130] = 0; + _$jscoverage['plugins/defaultfilter.js'][131] = 0; + _$jscoverage['plugins/defaultfilter.js'][138] = 0; + _$jscoverage['plugins/defaultfilter.js'][140] = 0; + _$jscoverage['plugins/defaultfilter.js'][141] = 0; + _$jscoverage['plugins/defaultfilter.js'][142] = 0; + _$jscoverage['plugins/defaultfilter.js'][144] = 0; + _$jscoverage['plugins/defaultfilter.js'][146] = 0; + _$jscoverage['plugins/defaultfilter.js'][147] = 0; + _$jscoverage['plugins/defaultfilter.js'][148] = 0; + _$jscoverage['plugins/defaultfilter.js'][150] = 0; + _$jscoverage['plugins/defaultfilter.js'][152] = 0; + _$jscoverage['plugins/defaultfilter.js'][154] = 0; + _$jscoverage['plugins/defaultfilter.js'][155] = 0; + _$jscoverage['plugins/defaultfilter.js'][156] = 0; + _$jscoverage['plugins/defaultfilter.js'][157] = 0; + _$jscoverage['plugins/defaultfilter.js'][159] = 0; + _$jscoverage['plugins/defaultfilter.js'][161] = 0; + _$jscoverage['plugins/defaultfilter.js'][162] = 0; + _$jscoverage['plugins/defaultfilter.js'][167] = 0; + _$jscoverage['plugins/defaultfilter.js'][169] = 0; + _$jscoverage['plugins/defaultfilter.js'][170] = 0; +} +_$jscoverage['plugins/defaultfilter.js'].source = ["///import core","///plugin 编辑器默认的过滤转换机制","","UE.plugins['defaultfilter'] = function () {"," var me = this;"," me.setOpt('allowDivTransToP',true);"," //默认的过滤处理"," //进入编辑器的内容处理"," me.addInputRule(function (root) {"," var allowDivTransToP = this.options.allowDivTransToP;"," var val;"," //进行默认的处理"," root.traversal(function (node) {"," if (node.type == 'element') {"," if (!dtd.$cdata[node.tagName] && me.options.autoClearEmptyNode && dtd.$inline[node.tagName] && !dtd.$empty[node.tagName] && (!node.attrs || utils.isEmptyObject(node.attrs))) {"," if (!node.firstChild()) node.parentNode.removeChild(node);"," else if (node.tagName == 'span' && (!node.attrs || utils.isEmptyObject(node.attrs))) {"," node.parentNode.removeChild(node, true)"," }"," return;"," }"," switch (node.tagName) {"," case 'style':"," case 'script':"," node.setAttr({"," cdata_tag: node.tagName,"," cdata_data: encodeURIComponent(node.innerText() || '')"," });"," node.tagName = 'div';"," node.removeChild(node.firstChild());"," break;"," case 'a':"," if (val = node.getAttr('href')) {"," node.setAttr('_href', val)"," }"," break;"," case 'img':"," //todo base64暂时去掉,后边做远程图片上传后,干掉这个"," if (val = node.getAttr('src')) {"," if (/^data:/.test(val)) {"," node.parentNode.removeChild(node);"," break;"," }"," }"," node.setAttr('_src', node.getAttr('src'));"," break;"," case 'span':"," if (browser.webkit && (val = node.getStyle('white-space'))) {"," if (/nowrap|normal/.test(val)) {"," node.setStyle('white-space', '');"," if (me.options.autoClearEmptyNode && utils.isEmptyObject(node.attrs)) {"," node.parentNode.removeChild(node, true)"," }"," }"," }"," break;"," case 'p':"," if (val = node.getAttr('align')) {"," node.setAttr('align');"," node.setStyle('text-align', val)"," }"," //trace:3431","// var cssStyle = node.getAttr('style');","// if (cssStyle) {","// cssStyle = cssStyle.replace(/(margin|padding)[^;]+/g, '');","// node.setAttr('style', cssStyle)","//","// }"," if (!node.firstChild()) {"," node.innerHTML(browser.ie ? '&nbsp;' : '<br/>')"," }"," break;"," case 'div':"," if(node.getAttr('cdata_tag')){"," break;"," }"," //针对代码这里不处理插入代码的div"," val = node.getAttr('class');"," if(val && /^line number\\d+/.test(val)){"," break;"," }"," if(!allowDivTransToP){"," break;"," }"," var tmpNode, p = UE.uNode.createElement('p');"," while (tmpNode = node.firstChild()) {"," if (tmpNode.type == 'text' || !UE.dom.dtd.$block[tmpNode.tagName]) {"," p.appendChild(tmpNode);"," } else {"," if (p.firstChild()) {"," node.parentNode.insertBefore(p, node);"," p = UE.uNode.createElement('p');"," } else {"," node.parentNode.insertBefore(tmpNode, node);"," }"," }"," }"," if (p.firstChild()) {"," node.parentNode.insertBefore(p, node);"," }"," node.parentNode.removeChild(node);"," break;"," case 'dl':"," node.tagName = 'ul';"," break;"," case 'dt':"," case 'dd':"," node.tagName = 'li';"," break;"," case 'li':"," var className = node.getAttr('class');"," if (!className || !/list\\-/.test(className)) {"," node.setAttr()"," }"," var tmpNodes = node.getNodesByTagName('ol ul');"," UE.utils.each(tmpNodes, function (n) {"," node.parentNode.insertAfter(n, node);"," });"," break;"," case 'td':"," case 'th':"," case 'caption':"," if(!node.children || !node.children.length){",""," node.appendChild(browser.ie ? UE.uNode.createText(' ') : UE.uNode.createElement('br'))"," }"," }",""," }"," if(node.type == 'comment'){"," node.parentNode.removeChild(node);"," }"," })",""," });",""," //从编辑器出去的内容处理"," me.addOutputRule(function (root) {",""," var val;"," root.traversal(function (node) {"," if (node.type == 'element') {",""," if (me.options.autoClearEmptyNode && dtd.$inline[node.tagName] && !dtd.$empty[node.tagName] && (!node.attrs || utils.isEmptyObject(node.attrs))) {",""," if (!node.firstChild()) node.parentNode.removeChild(node);"," else if (node.tagName == 'span' && (!node.attrs || utils.isEmptyObject(node.attrs))) {"," node.parentNode.removeChild(node, true)"," }"," return;"," }"," switch (node.tagName) {"," case 'div':"," if (val = node.getAttr('cdata_tag')) {"," node.tagName = val;"," node.appendChild(UE.uNode.createText(node.getAttr('cdata_data')));"," node.setAttr({cdata_tag: '', cdata_data: ''});"," }"," break;"," case 'a':"," if (val = node.getAttr('_href')) {"," node.setAttr({"," 'href': val,"," '_href': ''"," })"," }"," break;"," case 'img':"," if (val = node.getAttr('_src')) {"," node.setAttr({"," 'src': node.getAttr('_src'),"," '_src': ''"," })"," }","",""," }"," }",""," })","",""," });","};"]; +_$jscoverage['plugins/defaultfilter.js'][4]++; +UE.plugins.defaultfilter = (function () { + _$jscoverage['plugins/defaultfilter.js'][5]++; + var me = this; + _$jscoverage['plugins/defaultfilter.js'][6]++; + me.setOpt("allowDivTransToP", true); + _$jscoverage['plugins/defaultfilter.js'][9]++; + me.addInputRule((function (root) { + _$jscoverage['plugins/defaultfilter.js'][10]++; + var allowDivTransToP = this.options.allowDivTransToP; + _$jscoverage['plugins/defaultfilter.js'][11]++; + var val; + _$jscoverage['plugins/defaultfilter.js'][13]++; + root.traversal((function (node) { + _$jscoverage['plugins/defaultfilter.js'][14]++; + if ((node.type == "element")) { + _$jscoverage['plugins/defaultfilter.js'][15]++; + if (((! dtd.$cdata[node.tagName]) && me.options.autoClearEmptyNode && dtd.$inline[node.tagName] && (! dtd.$empty[node.tagName]) && ((! node.attrs) || utils.isEmptyObject(node.attrs)))) { + _$jscoverage['plugins/defaultfilter.js'][16]++; + if ((! node.firstChild())) { + _$jscoverage['plugins/defaultfilter.js'][16]++; + node.parentNode.removeChild(node); + } + else { + _$jscoverage['plugins/defaultfilter.js'][17]++; + if (((node.tagName == "span") && ((! node.attrs) || utils.isEmptyObject(node.attrs)))) { + _$jscoverage['plugins/defaultfilter.js'][18]++; + node.parentNode.removeChild(node, true); + } + } + _$jscoverage['plugins/defaultfilter.js'][20]++; + return; + } + _$jscoverage['plugins/defaultfilter.js'][22]++; + switch (node.tagName) { + case "style": + case "script": + _$jscoverage['plugins/defaultfilter.js'][25]++; + node.setAttr({cdata_tag: node.tagName, cdata_data: encodeURIComponent((node.innerText() || ""))}); + _$jscoverage['plugins/defaultfilter.js'][29]++; + node.tagName = "div"; + _$jscoverage['plugins/defaultfilter.js'][30]++; + node.removeChild(node.firstChild()); + _$jscoverage['plugins/defaultfilter.js'][31]++; + break; + case "a": + _$jscoverage['plugins/defaultfilter.js'][33]++; + if ((val = node.getAttr("href"))) { + _$jscoverage['plugins/defaultfilter.js'][34]++; + node.setAttr("_href", val); + } + _$jscoverage['plugins/defaultfilter.js'][36]++; + break; + case "img": + _$jscoverage['plugins/defaultfilter.js'][39]++; + if ((val = node.getAttr("src"))) { + _$jscoverage['plugins/defaultfilter.js'][40]++; + if (/^data:/.test(val)) { + _$jscoverage['plugins/defaultfilter.js'][41]++; + node.parentNode.removeChild(node); + _$jscoverage['plugins/defaultfilter.js'][42]++; + break; + } + } + _$jscoverage['plugins/defaultfilter.js'][45]++; + node.setAttr("_src", node.getAttr("src")); + _$jscoverage['plugins/defaultfilter.js'][46]++; + break; + case "span": + _$jscoverage['plugins/defaultfilter.js'][48]++; + if ((browser.webkit && (val = node.getStyle("white-space")))) { + _$jscoverage['plugins/defaultfilter.js'][49]++; + if (/nowrap|normal/.test(val)) { + _$jscoverage['plugins/defaultfilter.js'][50]++; + node.setStyle("white-space", ""); + _$jscoverage['plugins/defaultfilter.js'][51]++; + if ((me.options.autoClearEmptyNode && utils.isEmptyObject(node.attrs))) { + _$jscoverage['plugins/defaultfilter.js'][52]++; + node.parentNode.removeChild(node, true); + } + } + } + _$jscoverage['plugins/defaultfilter.js'][56]++; + break; + case "p": + _$jscoverage['plugins/defaultfilter.js'][58]++; + if ((val = node.getAttr("align"))) { + _$jscoverage['plugins/defaultfilter.js'][59]++; + node.setAttr("align"); + _$jscoverage['plugins/defaultfilter.js'][60]++; + node.setStyle("text-align", val); + } + _$jscoverage['plugins/defaultfilter.js'][69]++; + if ((! node.firstChild())) { + _$jscoverage['plugins/defaultfilter.js'][70]++; + node.innerHTML((browser.ie? " ": "
")); + } + _$jscoverage['plugins/defaultfilter.js'][72]++; + break; + case "div": + _$jscoverage['plugins/defaultfilter.js'][74]++; + if (node.getAttr("cdata_tag")) { + _$jscoverage['plugins/defaultfilter.js'][75]++; + break; + } + _$jscoverage['plugins/defaultfilter.js'][78]++; + val = node.getAttr("class"); + _$jscoverage['plugins/defaultfilter.js'][79]++; + if ((val && /^line number\d+/.test(val))) { + _$jscoverage['plugins/defaultfilter.js'][80]++; + break; + } + _$jscoverage['plugins/defaultfilter.js'][82]++; + if ((! allowDivTransToP)) { + _$jscoverage['plugins/defaultfilter.js'][83]++; + break; + } + _$jscoverage['plugins/defaultfilter.js'][85]++; + var tmpNode, p = UE.uNode.createElement("p"); + _$jscoverage['plugins/defaultfilter.js'][86]++; + while ((tmpNode = node.firstChild())) { + _$jscoverage['plugins/defaultfilter.js'][87]++; + if (((tmpNode.type == "text") || (! UE.dom.dtd.$block[tmpNode.tagName]))) { + _$jscoverage['plugins/defaultfilter.js'][88]++; + p.appendChild(tmpNode); + } + else { + _$jscoverage['plugins/defaultfilter.js'][90]++; + if (p.firstChild()) { + _$jscoverage['plugins/defaultfilter.js'][91]++; + node.parentNode.insertBefore(p, node); + _$jscoverage['plugins/defaultfilter.js'][92]++; + p = UE.uNode.createElement("p"); + } + else { + _$jscoverage['plugins/defaultfilter.js'][94]++; + node.parentNode.insertBefore(tmpNode, node); + } + } +} + _$jscoverage['plugins/defaultfilter.js'][98]++; + if (p.firstChild()) { + _$jscoverage['plugins/defaultfilter.js'][99]++; + node.parentNode.insertBefore(p, node); + } + _$jscoverage['plugins/defaultfilter.js'][101]++; + node.parentNode.removeChild(node); + _$jscoverage['plugins/defaultfilter.js'][102]++; + break; + case "dl": + _$jscoverage['plugins/defaultfilter.js'][104]++; + node.tagName = "ul"; + _$jscoverage['plugins/defaultfilter.js'][105]++; + break; + case "dt": + case "dd": + _$jscoverage['plugins/defaultfilter.js'][108]++; + node.tagName = "li"; + _$jscoverage['plugins/defaultfilter.js'][109]++; + break; + case "li": + _$jscoverage['plugins/defaultfilter.js'][111]++; + var className = node.getAttr("class"); + _$jscoverage['plugins/defaultfilter.js'][112]++; + if (((! className) || (! /list\-/.test(className)))) { + _$jscoverage['plugins/defaultfilter.js'][113]++; + node.setAttr(); + } + _$jscoverage['plugins/defaultfilter.js'][115]++; + var tmpNodes = node.getNodesByTagName("ol ul"); + _$jscoverage['plugins/defaultfilter.js'][116]++; + UE.utils.each(tmpNodes, (function (n) { + _$jscoverage['plugins/defaultfilter.js'][117]++; + node.parentNode.insertAfter(n, node); +})); + _$jscoverage['plugins/defaultfilter.js'][119]++; + break; + case "td": + case "th": + case "caption": + _$jscoverage['plugins/defaultfilter.js'][123]++; + if (((! node.children) || (! node.children.length))) { + _$jscoverage['plugins/defaultfilter.js'][125]++; + node.appendChild((browser.ie? UE.uNode.createText(" "): UE.uNode.createElement("br"))); + } + } + } + _$jscoverage['plugins/defaultfilter.js'][130]++; + if ((node.type == "comment")) { + _$jscoverage['plugins/defaultfilter.js'][131]++; + node.parentNode.removeChild(node); + } +})); +})); + _$jscoverage['plugins/defaultfilter.js'][138]++; + me.addOutputRule((function (root) { + _$jscoverage['plugins/defaultfilter.js'][140]++; + var val; + _$jscoverage['plugins/defaultfilter.js'][141]++; + root.traversal((function (node) { + _$jscoverage['plugins/defaultfilter.js'][142]++; + if ((node.type == "element")) { + _$jscoverage['plugins/defaultfilter.js'][144]++; + if ((me.options.autoClearEmptyNode && dtd.$inline[node.tagName] && (! dtd.$empty[node.tagName]) && ((! node.attrs) || utils.isEmptyObject(node.attrs)))) { + _$jscoverage['plugins/defaultfilter.js'][146]++; + if ((! node.firstChild())) { + _$jscoverage['plugins/defaultfilter.js'][146]++; + node.parentNode.removeChild(node); + } + else { + _$jscoverage['plugins/defaultfilter.js'][147]++; + if (((node.tagName == "span") && ((! node.attrs) || utils.isEmptyObject(node.attrs)))) { + _$jscoverage['plugins/defaultfilter.js'][148]++; + node.parentNode.removeChild(node, true); + } + } + _$jscoverage['plugins/defaultfilter.js'][150]++; + return; + } + _$jscoverage['plugins/defaultfilter.js'][152]++; + switch (node.tagName) { + case "div": + _$jscoverage['plugins/defaultfilter.js'][154]++; + if ((val = node.getAttr("cdata_tag"))) { + _$jscoverage['plugins/defaultfilter.js'][155]++; + node.tagName = val; + _$jscoverage['plugins/defaultfilter.js'][156]++; + node.appendChild(UE.uNode.createText(node.getAttr("cdata_data"))); + _$jscoverage['plugins/defaultfilter.js'][157]++; + node.setAttr({cdata_tag: "", cdata_data: ""}); + } + _$jscoverage['plugins/defaultfilter.js'][159]++; + break; + case "a": + _$jscoverage['plugins/defaultfilter.js'][161]++; + if ((val = node.getAttr("_href"))) { + _$jscoverage['plugins/defaultfilter.js'][162]++; + node.setAttr({"href": val, "_href": ""}); + } + _$jscoverage['plugins/defaultfilter.js'][167]++; + break; + case "img": + _$jscoverage['plugins/defaultfilter.js'][169]++; + if ((val = node.getAttr("_src"))) { + _$jscoverage['plugins/defaultfilter.js'][170]++; + node.setAttr({"src": node.getAttr("_src"), "_src": ""}); + } + } + } +})); +})); +}); diff --git a/_test/coverage/plugins/directionality.js b/_test/coverage/plugins/directionality.js new file mode 100644 index 000000000..8accd52cb --- /dev/null +++ b/_test/coverage/plugins/directionality.js @@ -0,0 +1,199 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/directionality.js']) { + _$jscoverage['plugins/directionality.js'] = []; + _$jscoverage['plugins/directionality.js'][7] = 0; + _$jscoverage['plugins/directionality.js'][8] = 0; + _$jscoverage['plugins/directionality.js'][21] = 0; + _$jscoverage['plugins/directionality.js'][26] = 0; + _$jscoverage['plugins/directionality.js'][28] = 0; + _$jscoverage['plugins/directionality.js'][33] = 0; + _$jscoverage['plugins/directionality.js'][34] = 0; + _$jscoverage['plugins/directionality.js'][35] = 0; + _$jscoverage['plugins/directionality.js'][37] = 0; + _$jscoverage['plugins/directionality.js'][38] = 0; + _$jscoverage['plugins/directionality.js'][39] = 0; + _$jscoverage['plugins/directionality.js'][43] = 0; + _$jscoverage['plugins/directionality.js'][44] = 0; + _$jscoverage['plugins/directionality.js'][45] = 0; + _$jscoverage['plugins/directionality.js'][46] = 0; + _$jscoverage['plugins/directionality.js'][47] = 0; + _$jscoverage['plugins/directionality.js'][48] = 0; + _$jscoverage['plugins/directionality.js'][49] = 0; + _$jscoverage['plugins/directionality.js'][52] = 0; + _$jscoverage['plugins/directionality.js'][53] = 0; + _$jscoverage['plugins/directionality.js'][54] = 0; + _$jscoverage['plugins/directionality.js'][56] = 0; + _$jscoverage['plugins/directionality.js'][57] = 0; + _$jscoverage['plugins/directionality.js'][60] = 0; + _$jscoverage['plugins/directionality.js'][61] = 0; + _$jscoverage['plugins/directionality.js'][62] = 0; + _$jscoverage['plugins/directionality.js'][63] = 0; + _$jscoverage['plugins/directionality.js'][64] = 0; + _$jscoverage['plugins/directionality.js'][65] = 0; + _$jscoverage['plugins/directionality.js'][68] = 0; + _$jscoverage['plugins/directionality.js'][70] = 0; + _$jscoverage['plugins/directionality.js'][73] = 0; + _$jscoverage['plugins/directionality.js'][99] = 0; + _$jscoverage['plugins/directionality.js'][101] = 0; + _$jscoverage['plugins/directionality.js'][103] = 0; + _$jscoverage['plugins/directionality.js'][104] = 0; + _$jscoverage['plugins/directionality.js'][105] = 0; + _$jscoverage['plugins/directionality.js'][107] = 0; + _$jscoverage['plugins/directionality.js'][108] = 0; + _$jscoverage['plugins/directionality.js'][109] = 0; + _$jscoverage['plugins/directionality.js'][110] = 0; + _$jscoverage['plugins/directionality.js'][113] = 0; + _$jscoverage['plugins/directionality.js'][114] = 0; + _$jscoverage['plugins/directionality.js'][117] = 0; + _$jscoverage['plugins/directionality.js'][118] = 0; +} +_$jscoverage['plugins/directionality.js'].source = ["/**"," * 设置文字输入的方向的插件"," * @file"," * @since 1.2.6.1"," */","","(function() {"," var block = domUtils.isBlockElm ,"," getObj = function(editor){","// var startNode = editor.selection.getStart(),","// parents;","// if ( startNode ) {","// //查找所有的是block的父亲节点","// parents = domUtils.findParents( startNode, true, block, true );","// for ( var i = 0,ci; ci = parents[i++]; ) {","// if ( ci.getAttribute( 'dir' ) ) {","// return ci;","// }","// }","// }"," return domUtils.filterNodeList(editor.selection.getStartElementPath(),function(n){return n.getAttribute('dir')});",""," },"," doDirectionality = function(range,editor,forward){"," "," var bookmark,"," filterFn = function( node ) {"," return node.nodeType == 1 ? !domUtils.isBookmarkNode(node) : !domUtils.isWhitespace(node);"," },",""," obj = getObj( editor );",""," if ( obj && range.collapsed ) {"," obj.setAttribute( 'dir', forward );"," return range;"," }"," bookmark = range.createBookmark();"," range.enlarge( true );"," var bookmark2 = range.createBookmark(),"," current = domUtils.getNextDomNode( bookmark2.start, false, filterFn ),"," tmpRange = range.cloneRange(),"," tmpNode;"," while ( current && !(domUtils.getPosition( current, bookmark2.end ) & domUtils.POSITION_FOLLOWING) ) {"," if ( current.nodeType == 3 || !block( current ) ) {"," tmpRange.setStartBefore( current );"," while ( current && current !== bookmark2.end && !block( current ) ) {"," tmpNode = current;"," current = domUtils.getNextDomNode( current, false, null, function( node ) {"," return !block( node );"," } );"," }"," tmpRange.setEndAfter( tmpNode );"," var common = tmpRange.getCommonAncestor();"," if ( !domUtils.isBody( common ) && block( common ) ) {"," //遍历到了block节点"," common.setAttribute( 'dir', forward );"," current = common;"," } else {"," //没有遍历到,添加一个block节点"," var p = range.document.createElement( 'p' );"," p.setAttribute( 'dir', forward );"," var frag = tmpRange.extractContents();"," p.appendChild( frag );"," tmpRange.insertNode( p );"," current = p;"," }",""," current = domUtils.getNextDomNode( current, false, filterFn );"," } else {"," current = domUtils.getNextDomNode( current, true, filterFn );"," }"," }"," return range.moveToBookmark( bookmark2 ).moveToBookmark( bookmark );"," };",""," /**"," * 设置文字的方向,可设置从左向右输入,或者从右向左输入,操作对当前段作用"," * @command directionality"," * @method execCommand"," * @param { String } cmdName 命令字符串"," * @param { String } forward 传入'ltr'表示从左向右输入,传入'rtl'表示从右向左输入"," * @example"," * ```javascript"," * editor.execCommand( 'directionality', 'ltr');"," * ```"," */",""," /**"," * 查询当前段落的文字输入方向"," * @command directionality"," * @method queryCommandValue"," * @param { String } cmdName 命令字符串"," * @return { String } 返回'ltr'表示从左向右输入,返回'rtl'表示从右向左输入"," * @example"," * ```javascript"," * editor.queryCommandValue( 'directionality');"," * ```"," */"," UE.commands['directionality'] = {"," execCommand : function( cmdName,forward ) {"," var range = this.selection.getRange();"," //闭合时单独处理"," if(range.collapsed){"," var txt = this.document.createTextNode('d');"," range.insertNode(txt);"," }"," doDirectionality(range,this,forward);"," if(txt){"," range.setStartBefore(txt).collapse(true);"," domUtils.remove(txt);"," }",""," range.select();"," return true;"," },"," queryCommandValue : function() {"," var node = getObj(this);"," return node ? node.getAttribute('dir') : 'ltr';"," }"," };","})();",""]; +_$jscoverage['plugins/directionality.js'][7]++; +(function () { + _$jscoverage['plugins/directionality.js'][8]++; + var block = domUtils.isBlockElm, getObj = (function (editor) { + _$jscoverage['plugins/directionality.js'][21]++; + return domUtils.filterNodeList(editor.selection.getStartElementPath(), (function (n) { + _$jscoverage['plugins/directionality.js'][21]++; + return n.getAttribute("dir"); +})); +}), doDirectionality = (function (range, editor, forward) { + _$jscoverage['plugins/directionality.js'][26]++; + var bookmark, filterFn = (function (node) { + _$jscoverage['plugins/directionality.js'][28]++; + return ((node.nodeType == 1)? (! domUtils.isBookmarkNode(node)): (! domUtils.isWhitespace(node))); +}), obj = getObj(editor); + _$jscoverage['plugins/directionality.js'][33]++; + if ((obj && range.collapsed)) { + _$jscoverage['plugins/directionality.js'][34]++; + obj.setAttribute("dir", forward); + _$jscoverage['plugins/directionality.js'][35]++; + return range; + } + _$jscoverage['plugins/directionality.js'][37]++; + bookmark = range.createBookmark(); + _$jscoverage['plugins/directionality.js'][38]++; + range.enlarge(true); + _$jscoverage['plugins/directionality.js'][39]++; + var bookmark2 = range.createBookmark(), current = domUtils.getNextDomNode(bookmark2.start, false, filterFn), tmpRange = range.cloneRange(), tmpNode; + _$jscoverage['plugins/directionality.js'][43]++; + while ((current && (! (domUtils.getPosition(current, bookmark2.end) & domUtils.POSITION_FOLLOWING)))) { + _$jscoverage['plugins/directionality.js'][44]++; + if (((current.nodeType == 3) || (! block(current)))) { + _$jscoverage['plugins/directionality.js'][45]++; + tmpRange.setStartBefore(current); + _$jscoverage['plugins/directionality.js'][46]++; + while ((current && (current !== bookmark2.end) && (! block(current)))) { + _$jscoverage['plugins/directionality.js'][47]++; + tmpNode = current; + _$jscoverage['plugins/directionality.js'][48]++; + current = domUtils.getNextDomNode(current, false, null, (function (node) { + _$jscoverage['plugins/directionality.js'][49]++; + return (! block(node)); +})); +} + _$jscoverage['plugins/directionality.js'][52]++; + tmpRange.setEndAfter(tmpNode); + _$jscoverage['plugins/directionality.js'][53]++; + var common = tmpRange.getCommonAncestor(); + _$jscoverage['plugins/directionality.js'][54]++; + if (((! domUtils.isBody(common)) && block(common))) { + _$jscoverage['plugins/directionality.js'][56]++; + common.setAttribute("dir", forward); + _$jscoverage['plugins/directionality.js'][57]++; + current = common; + } + else { + _$jscoverage['plugins/directionality.js'][60]++; + var p = range.document.createElement("p"); + _$jscoverage['plugins/directionality.js'][61]++; + p.setAttribute("dir", forward); + _$jscoverage['plugins/directionality.js'][62]++; + var frag = tmpRange.extractContents(); + _$jscoverage['plugins/directionality.js'][63]++; + p.appendChild(frag); + _$jscoverage['plugins/directionality.js'][64]++; + tmpRange.insertNode(p); + _$jscoverage['plugins/directionality.js'][65]++; + current = p; + } + _$jscoverage['plugins/directionality.js'][68]++; + current = domUtils.getNextDomNode(current, false, filterFn); + } + else { + _$jscoverage['plugins/directionality.js'][70]++; + current = domUtils.getNextDomNode(current, true, filterFn); + } +} + _$jscoverage['plugins/directionality.js'][73]++; + return range.moveToBookmark(bookmark2).moveToBookmark(bookmark); +}); + _$jscoverage['plugins/directionality.js'][99]++; + UE.commands.directionality = {execCommand: (function (cmdName, forward) { + _$jscoverage['plugins/directionality.js'][101]++; + var range = this.selection.getRange(); + _$jscoverage['plugins/directionality.js'][103]++; + if (range.collapsed) { + _$jscoverage['plugins/directionality.js'][104]++; + var txt = this.document.createTextNode("d"); + _$jscoverage['plugins/directionality.js'][105]++; + range.insertNode(txt); + } + _$jscoverage['plugins/directionality.js'][107]++; + doDirectionality(range, this, forward); + _$jscoverage['plugins/directionality.js'][108]++; + if (txt) { + _$jscoverage['plugins/directionality.js'][109]++; + range.setStartBefore(txt).collapse(true); + _$jscoverage['plugins/directionality.js'][110]++; + domUtils.remove(txt); + } + _$jscoverage['plugins/directionality.js'][113]++; + range.select(); + _$jscoverage['plugins/directionality.js'][114]++; + return true; +}), queryCommandValue: (function () { + _$jscoverage['plugins/directionality.js'][117]++; + var node = getObj(this); + _$jscoverage['plugins/directionality.js'][118]++; + return (node? node.getAttribute("dir"): "ltr"); +})}; +})(); diff --git a/_test/coverage/plugins/dragdrop.js b/_test/coverage/plugins/dragdrop.js new file mode 100644 index 000000000..12afaabad --- /dev/null +++ b/_test/coverage/plugins/dragdrop.js @@ -0,0 +1,158 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/dragdrop.js']) { + _$jscoverage['plugins/dragdrop.js'] = []; + _$jscoverage['plugins/dragdrop.js'][1] = 0; + _$jscoverage['plugins/dragdrop.js'][3] = 0; + _$jscoverage['plugins/dragdrop.js'][4] = 0; + _$jscoverage['plugins/dragdrop.js'][5] = 0; + _$jscoverage['plugins/dragdrop.js'][6] = 0; + _$jscoverage['plugins/dragdrop.js'][7] = 0; + _$jscoverage['plugins/dragdrop.js'][9] = 0; + _$jscoverage['plugins/dragdrop.js'][11] = 0; + _$jscoverage['plugins/dragdrop.js'][12] = 0; + _$jscoverage['plugins/dragdrop.js'][13] = 0; + _$jscoverage['plugins/dragdrop.js'][14] = 0; + _$jscoverage['plugins/dragdrop.js'][16] = 0; + _$jscoverage['plugins/dragdrop.js'][21] = 0; + _$jscoverage['plugins/dragdrop.js'][22] = 0; + _$jscoverage['plugins/dragdrop.js'][23] = 0; + _$jscoverage['plugins/dragdrop.js'][24] = 0; + _$jscoverage['plugins/dragdrop.js'][25] = 0; + _$jscoverage['plugins/dragdrop.js'][26] = 0; + _$jscoverage['plugins/dragdrop.js'][27] = 0; + _$jscoverage['plugins/dragdrop.js'][30] = 0; + _$jscoverage['plugins/dragdrop.js'][31] = 0; + _$jscoverage['plugins/dragdrop.js'][33] = 0; + _$jscoverage['plugins/dragdrop.js'][34] = 0; + _$jscoverage['plugins/dragdrop.js'][36] = 0; + _$jscoverage['plugins/dragdrop.js'][37] = 0; + _$jscoverage['plugins/dragdrop.js'][45] = 0; + _$jscoverage['plugins/dragdrop.js'][46] = 0; + _$jscoverage['plugins/dragdrop.js'][47] = 0; + _$jscoverage['plugins/dragdrop.js'][48] = 0; + _$jscoverage['plugins/dragdrop.js'][49] = 0; + _$jscoverage['plugins/dragdrop.js'][50] = 0; + _$jscoverage['plugins/dragdrop.js'][51] = 0; +} +_$jscoverage['plugins/dragdrop.js'].source = ["UE.plugins['dragdrop'] = function (){",""," var me = this;"," me.ready(function(){"," domUtils.on(this.body,'dragend',function(){"," var rng = me.selection.getRange();"," var node = rng.getClosedNode()||me.selection.getStart();",""," if(node && node.tagName == 'IMG'){",""," var pre = node.previousSibling,next;"," while(next = node.nextSibling){"," if(next.nodeType == 1 && next.tagName == 'SPAN' && !next.firstChild){"," domUtils.remove(next)"," }else{"," break;"," }"," }","",""," if((pre && pre.nodeType == 1 && !domUtils.isEmptyBlock(pre) || !pre) && (!next || next && !domUtils.isEmptyBlock(next))){"," if(pre && pre.tagName == 'P' && !domUtils.isEmptyBlock(pre)){"," pre.appendChild(node);"," domUtils.moveChild(next,pre);"," domUtils.remove(next);"," }else if(next && next.tagName == 'P' && !domUtils.isEmptyBlock(next)){"," next.insertBefore(node,next.firstChild);"," }",""," if(pre && pre.tagName == 'P' && domUtils.isEmptyBlock(pre)){"," domUtils.remove(pre)"," }"," if(next && next.tagName == 'P' && domUtils.isEmptyBlock(next)){"," domUtils.remove(next)"," }"," rng.selectNode(node).select();"," me.fireEvent('saveScene');",""," }",""," }",""," })"," });"," me.addListener('keyup', function(type, evt) {"," var keyCode = evt.keyCode || evt.which;"," if (keyCode == 13) {"," var rng = me.selection.getRange(),node;"," if(node = domUtils.findParentByTagName(rng.startContainer,'p',true)){"," if(domUtils.getComputedStyle(node,'text-align') == 'center'){"," domUtils.removeStyle(node,'text-align')"," }"," }"," }"," })","};"]; +_$jscoverage['plugins/dragdrop.js'][1]++; +UE.plugins.dragdrop = (function () { + _$jscoverage['plugins/dragdrop.js'][3]++; + var me = this; + _$jscoverage['plugins/dragdrop.js'][4]++; + me.ready((function () { + _$jscoverage['plugins/dragdrop.js'][5]++; + domUtils.on(this.body, "dragend", (function () { + _$jscoverage['plugins/dragdrop.js'][6]++; + var rng = me.selection.getRange(); + _$jscoverage['plugins/dragdrop.js'][7]++; + var node = (rng.getClosedNode() || me.selection.getStart()); + _$jscoverage['plugins/dragdrop.js'][9]++; + if ((node && (node.tagName == "IMG"))) { + _$jscoverage['plugins/dragdrop.js'][11]++; + var pre = node.previousSibling, next; + _$jscoverage['plugins/dragdrop.js'][12]++; + while ((next = node.nextSibling)) { + _$jscoverage['plugins/dragdrop.js'][13]++; + if (((next.nodeType == 1) && (next.tagName == "SPAN") && (! next.firstChild))) { + _$jscoverage['plugins/dragdrop.js'][14]++; + domUtils.remove(next); + } + else { + _$jscoverage['plugins/dragdrop.js'][16]++; + break; + } +} + _$jscoverage['plugins/dragdrop.js'][21]++; + if ((((pre && (pre.nodeType == 1) && (! domUtils.isEmptyBlock(pre))) || (! pre)) && ((! next) || (next && (! domUtils.isEmptyBlock(next)))))) { + _$jscoverage['plugins/dragdrop.js'][22]++; + if ((pre && (pre.tagName == "P") && (! domUtils.isEmptyBlock(pre)))) { + _$jscoverage['plugins/dragdrop.js'][23]++; + pre.appendChild(node); + _$jscoverage['plugins/dragdrop.js'][24]++; + domUtils.moveChild(next, pre); + _$jscoverage['plugins/dragdrop.js'][25]++; + domUtils.remove(next); + } + else { + _$jscoverage['plugins/dragdrop.js'][26]++; + if ((next && (next.tagName == "P") && (! domUtils.isEmptyBlock(next)))) { + _$jscoverage['plugins/dragdrop.js'][27]++; + next.insertBefore(node, next.firstChild); + } + } + _$jscoverage['plugins/dragdrop.js'][30]++; + if ((pre && (pre.tagName == "P") && domUtils.isEmptyBlock(pre))) { + _$jscoverage['plugins/dragdrop.js'][31]++; + domUtils.remove(pre); + } + _$jscoverage['plugins/dragdrop.js'][33]++; + if ((next && (next.tagName == "P") && domUtils.isEmptyBlock(next))) { + _$jscoverage['plugins/dragdrop.js'][34]++; + domUtils.remove(next); + } + _$jscoverage['plugins/dragdrop.js'][36]++; + rng.selectNode(node).select(); + _$jscoverage['plugins/dragdrop.js'][37]++; + me.fireEvent("saveScene"); + } + } +})); +})); + _$jscoverage['plugins/dragdrop.js'][45]++; + me.addListener("keyup", (function (type, evt) { + _$jscoverage['plugins/dragdrop.js'][46]++; + var keyCode = (evt.keyCode || evt.which); + _$jscoverage['plugins/dragdrop.js'][47]++; + if ((keyCode == 13)) { + _$jscoverage['plugins/dragdrop.js'][48]++; + var rng = me.selection.getRange(), node; + _$jscoverage['plugins/dragdrop.js'][49]++; + if ((node = domUtils.findParentByTagName(rng.startContainer, "p", true))) { + _$jscoverage['plugins/dragdrop.js'][50]++; + if ((domUtils.getComputedStyle(node, "text-align") == "center")) { + _$jscoverage['plugins/dragdrop.js'][51]++; + domUtils.removeStyle(node, "text-align"); + } + } + } +})); +}); diff --git a/_test/coverage/plugins/elementpath.js b/_test/coverage/plugins/elementpath.js new file mode 100644 index 000000000..4491ea35a --- /dev/null +++ b/_test/coverage/plugins/elementpath.js @@ -0,0 +1,120 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/elementpath.js']) { + _$jscoverage['plugins/elementpath.js'] = []; + _$jscoverage['plugins/elementpath.js'][6] = 0; + _$jscoverage['plugins/elementpath.js'][7] = 0; + _$jscoverage['plugins/elementpath.js'][10] = 0; + _$jscoverage['plugins/elementpath.js'][11] = 0; + _$jscoverage['plugins/elementpath.js'][12] = 0; + _$jscoverage['plugins/elementpath.js'][14] = 0; + _$jscoverage['plugins/elementpath.js'][16] = 0; + _$jscoverage['plugins/elementpath.js'][17] = 0; + _$jscoverage['plugins/elementpath.js'][19] = 0; + _$jscoverage['plugins/elementpath.js'][20] = 0; + _$jscoverage['plugins/elementpath.js'][24] = 0; + _$jscoverage['plugins/elementpath.js'][26] = 0; + _$jscoverage['plugins/elementpath.js'][27] = 0; + _$jscoverage['plugins/elementpath.js'][28] = 0; + _$jscoverage['plugins/elementpath.js'][29] = 0; + _$jscoverage['plugins/elementpath.js'][31] = 0; + _$jscoverage['plugins/elementpath.js'][32] = 0; + _$jscoverage['plugins/elementpath.js'][33] = 0; + _$jscoverage['plugins/elementpath.js'][35] = 0; + _$jscoverage['plugins/elementpath.js'][36] = 0; + _$jscoverage['plugins/elementpath.js'][37] = 0; + _$jscoverage['plugins/elementpath.js'][38] = 0; + _$jscoverage['plugins/elementpath.js'][41] = 0; +} +_$jscoverage['plugins/elementpath.js'].source = ["/**"," * 选取路径命令"," * @file"," */","","UE.plugins['elementpath'] = function(){"," var currentLevel,"," tagNames,"," me = this;"," me.setOpt('elementPathEnabled',true);"," if(!me.options.elementPathEnabled){"," return;"," }"," me.commands['elementpath'] = {"," execCommand : function( cmdName, level ) {"," debugger;"," var start = tagNames[level],"," range = me.selection.getRange();"," currentLevel = level*1;"," range.selectNode(start).select();"," },"," queryCommandValue : function() {"," //产生一个副本,不能修改原来的startElementPath;"," var parents = [].concat(this.selection.getStartElementPath()).reverse(),"," names = [];"," tagNames = parents;"," for(var i=0,ci;ci=parents[i];i++){"," if(ci.nodeType == 3) {"," continue;"," }"," var name = ci.tagName.toLowerCase();"," if(name == 'img' && ci.getAttribute('anchorname')){"," name = 'anchor';"," }"," names[i] = name;"," if(currentLevel == i){"," currentLevel = -1;"," break;"," }"," }"," return names;"," }"," };","};",""]; +_$jscoverage['plugins/elementpath.js'][6]++; +UE.plugins.elementpath = (function () { + _$jscoverage['plugins/elementpath.js'][7]++; + var currentLevel, tagNames, me = this; + _$jscoverage['plugins/elementpath.js'][10]++; + me.setOpt("elementPathEnabled", true); + _$jscoverage['plugins/elementpath.js'][11]++; + if ((! me.options.elementPathEnabled)) { + _$jscoverage['plugins/elementpath.js'][12]++; + return; + } + _$jscoverage['plugins/elementpath.js'][14]++; + me.commands.elementpath = {execCommand: (function (cmdName, level) { + _$jscoverage['plugins/elementpath.js'][16]++; + debugger; + _$jscoverage['plugins/elementpath.js'][17]++; + var start = tagNames[level], range = me.selection.getRange(); + _$jscoverage['plugins/elementpath.js'][19]++; + currentLevel = (level * 1); + _$jscoverage['plugins/elementpath.js'][20]++; + range.selectNode(start).select(); +}), queryCommandValue: (function () { + _$jscoverage['plugins/elementpath.js'][24]++; + var parents = [].concat(this.selection.getStartElementPath()).reverse(), names = []; + _$jscoverage['plugins/elementpath.js'][26]++; + tagNames = parents; + _$jscoverage['plugins/elementpath.js'][27]++; + for (var i = 0, ci; (ci = parents[i]); (i++)) { + _$jscoverage['plugins/elementpath.js'][28]++; + if ((ci.nodeType == 3)) { + _$jscoverage['plugins/elementpath.js'][29]++; + continue; + } + _$jscoverage['plugins/elementpath.js'][31]++; + var name = ci.tagName.toLowerCase(); + _$jscoverage['plugins/elementpath.js'][32]++; + if (((name == "img") && ci.getAttribute("anchorname"))) { + _$jscoverage['plugins/elementpath.js'][33]++; + name = "anchor"; + } + _$jscoverage['plugins/elementpath.js'][35]++; + names[i] = name; + _$jscoverage['plugins/elementpath.js'][36]++; + if ((currentLevel == i)) { + _$jscoverage['plugins/elementpath.js'][37]++; + currentLevel = -1; + _$jscoverage['plugins/elementpath.js'][38]++; + break; + } +} + _$jscoverage['plugins/elementpath.js'][41]++; + return names; +})}; +}); diff --git a/_test/coverage/plugins/enterkey.js b/_test/coverage/plugins/enterkey.js new file mode 100644 index 000000000..b016991c7 --- /dev/null +++ b/_test/coverage/plugins/enterkey.js @@ -0,0 +1,352 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/enterkey.js']) { + _$jscoverage['plugins/enterkey.js'] = []; + _$jscoverage['plugins/enterkey.js'][10] = 0; + _$jscoverage['plugins/enterkey.js'][11] = 0; + _$jscoverage['plugins/enterkey.js'][14] = 0; + _$jscoverage['plugins/enterkey.js'][16] = 0; + _$jscoverage['plugins/enterkey.js'][17] = 0; + _$jscoverage['plugins/enterkey.js'][18] = 0; + _$jscoverage['plugins/enterkey.js'][23] = 0; + _$jscoverage['plugins/enterkey.js'][25] = 0; + _$jscoverage['plugins/enterkey.js'][26] = 0; + _$jscoverage['plugins/enterkey.js'][27] = 0; + _$jscoverage['plugins/enterkey.js'][28] = 0; + _$jscoverage['plugins/enterkey.js'][29] = 0; + _$jscoverage['plugins/enterkey.js'][30] = 0; + _$jscoverage['plugins/enterkey.js'][34] = 0; + _$jscoverage['plugins/enterkey.js'][35] = 0; + _$jscoverage['plugins/enterkey.js'][36] = 0; + _$jscoverage['plugins/enterkey.js'][37] = 0; + _$jscoverage['plugins/enterkey.js'][38] = 0; + _$jscoverage['plugins/enterkey.js'][39] = 0; + _$jscoverage['plugins/enterkey.js'][40] = 0; + _$jscoverage['plugins/enterkey.js'][41] = 0; + _$jscoverage['plugins/enterkey.js'][43] = 0; + _$jscoverage['plugins/enterkey.js'][44] = 0; + _$jscoverage['plugins/enterkey.js'][45] = 0; + _$jscoverage['plugins/enterkey.js'][46] = 0; + _$jscoverage['plugins/enterkey.js'][48] = 0; + _$jscoverage['plugins/enterkey.js'][53] = 0; + _$jscoverage['plugins/enterkey.js'][54] = 0; + _$jscoverage['plugins/enterkey.js'][58] = 0; + _$jscoverage['plugins/enterkey.js'][60] = 0; + _$jscoverage['plugins/enterkey.js'][65] = 0; + _$jscoverage['plugins/enterkey.js'][66] = 0; + _$jscoverage['plugins/enterkey.js'][67] = 0; + _$jscoverage['plugins/enterkey.js'][68] = 0; + _$jscoverage['plugins/enterkey.js'][69] = 0; + _$jscoverage['plugins/enterkey.js'][70] = 0; + _$jscoverage['plugins/enterkey.js'][72] = 0; + _$jscoverage['plugins/enterkey.js'][73] = 0; + _$jscoverage['plugins/enterkey.js'][76] = 0; + _$jscoverage['plugins/enterkey.js'][78] = 0; + _$jscoverage['plugins/enterkey.js'][80] = 0; + _$jscoverage['plugins/enterkey.js'][84] = 0; + _$jscoverage['plugins/enterkey.js'][85] = 0; + _$jscoverage['plugins/enterkey.js'][86] = 0; + _$jscoverage['plugins/enterkey.js'][89] = 0; + _$jscoverage['plugins/enterkey.js'][92] = 0; + _$jscoverage['plugins/enterkey.js'][94] = 0; + _$jscoverage['plugins/enterkey.js'][98] = 0; + _$jscoverage['plugins/enterkey.js'][100] = 0; + _$jscoverage['plugins/enterkey.js'][102] = 0; + _$jscoverage['plugins/enterkey.js'][103] = 0; + _$jscoverage['plugins/enterkey.js'][104] = 0; + _$jscoverage['plugins/enterkey.js'][105] = 0; + _$jscoverage['plugins/enterkey.js'][110] = 0; + _$jscoverage['plugins/enterkey.js'][111] = 0; + _$jscoverage['plugins/enterkey.js'][117] = 0; + _$jscoverage['plugins/enterkey.js'][119] = 0; + _$jscoverage['plugins/enterkey.js'][120] = 0; + _$jscoverage['plugins/enterkey.js'][121] = 0; + _$jscoverage['plugins/enterkey.js'][122] = 0; + _$jscoverage['plugins/enterkey.js'][123] = 0; + _$jscoverage['plugins/enterkey.js'][124] = 0; + _$jscoverage['plugins/enterkey.js'][125] = 0; + _$jscoverage['plugins/enterkey.js'][126] = 0; + _$jscoverage['plugins/enterkey.js'][127] = 0; + _$jscoverage['plugins/enterkey.js'][129] = 0; + _$jscoverage['plugins/enterkey.js'][131] = 0; + _$jscoverage['plugins/enterkey.js'][132] = 0; + _$jscoverage['plugins/enterkey.js'][133] = 0; + _$jscoverage['plugins/enterkey.js'][134] = 0; + _$jscoverage['plugins/enterkey.js'][135] = 0; + _$jscoverage['plugins/enterkey.js'][136] = 0; + _$jscoverage['plugins/enterkey.js'][138] = 0; + _$jscoverage['plugins/enterkey.js'][140] = 0; + _$jscoverage['plugins/enterkey.js'][142] = 0; + _$jscoverage['plugins/enterkey.js'][143] = 0; + _$jscoverage['plugins/enterkey.js'][144] = 0; + _$jscoverage['plugins/enterkey.js'][147] = 0; + _$jscoverage['plugins/enterkey.js'][152] = 0; + _$jscoverage['plugins/enterkey.js'][153] = 0; + _$jscoverage['plugins/enterkey.js'][158] = 0; + _$jscoverage['plugins/enterkey.js'][159] = 0; + _$jscoverage['plugins/enterkey.js'][160] = 0; + _$jscoverage['plugins/enterkey.js'][161] = 0; + _$jscoverage['plugins/enterkey.js'][162] = 0; + _$jscoverage['plugins/enterkey.js'][163] = 0; + _$jscoverage['plugins/enterkey.js'][165] = 0; + _$jscoverage['plugins/enterkey.js'][167] = 0; +} +_$jscoverage['plugins/enterkey.js'].source = ["///import core","///import plugins/undo.js","///commands 设置回车标签p或br","///commandsName EnterKey","///commandsTitle 设置回车标签p或br","/*"," * @description 处理回车"," * @author zhanyi"," */","UE.plugins['enterkey'] = function() {"," var hTag,"," me = this,"," tag = me.options.enterTag;"," me.addListener('keyup', function(type, evt) {",""," var keyCode = evt.keyCode || evt.which;"," if (keyCode == 13) {"," var range = me.selection.getRange(),"," start = range.startContainer,"," doSave;",""," //修正在h1-h6里边回车后不能嵌套p的问题"," if (!browser.ie) {",""," if (/h\\d/i.test(hTag)) {"," if (browser.gecko) {"," var h = domUtils.findParentByTagName(start, [ 'h1', 'h2', 'h3', 'h4', 'h5', 'h6','blockquote','caption','table'], true);"," if (!h) {"," me.document.execCommand('formatBlock', false, '<p>');"," doSave = 1;"," }"," } else {"," //chrome remove div"," if (start.nodeType == 1) {"," var tmp = me.document.createTextNode(''),div;"," range.insertNode(tmp);"," div = domUtils.findParentByTagName(tmp, 'div', true);"," if (div) {"," var p = me.document.createElement('p');"," while (div.firstChild) {"," p.appendChild(div.firstChild);"," }"," div.parentNode.insertBefore(p, div);"," domUtils.remove(div);"," range.setStartBefore(tmp).setCursor();"," doSave = 1;"," }"," domUtils.remove(tmp);",""," }"," }",""," if (me.undoManger && doSave) {"," me.undoManger.save();"," }"," }"," //没有站位符,会出现多行的问题"," browser.opera && range.select();"," }else{"," me.fireEvent('saveScene',true,true)"," }"," }"," });",""," me.addListener('keydown', function(type, evt) {"," var keyCode = evt.keyCode || evt.which;"," if (keyCode == 13) {//回车"," if(me.fireEvent('beforeenterkeydown')){"," domUtils.preventDefault(evt);"," return;"," }"," me.fireEvent('saveScene',true,true);"," hTag = '';","",""," var range = me.selection.getRange();",""," if (!range.collapsed) {"," //跨td不能删"," var start = range.startContainer,"," end = range.endContainer,"," startTd = domUtils.findParentByTagName(start, 'td', true),"," endTd = domUtils.findParentByTagName(end, 'td', true);"," if (startTd && endTd && startTd !== endTd || !startTd && endTd || startTd && !endTd) {"," evt.preventDefault ? evt.preventDefault() : ( evt.returnValue = false);"," return;"," }"," }"," if (tag == 'p') {","",""," if (!browser.ie) {",""," start = domUtils.findParentByTagName(range.startContainer, ['ol','ul','p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6','blockquote','caption'], true);",""," //opera下执行formatblock会在table的场景下有问题,回车在opera原生支持很好,所以暂时在opera去掉调用这个原生的command"," //trace:2431"," if (!start && !browser.opera) {",""," me.document.execCommand('formatBlock', false, '<p>');",""," if (browser.gecko) {"," range = me.selection.getRange();"," start = domUtils.findParentByTagName(range.startContainer, 'p', true);"," start && domUtils.removeDirtyAttr(start);"," }","",""," } else {"," hTag = start.tagName;"," start.tagName.toLowerCase() == 'p' && browser.gecko && domUtils.removeDirtyAttr(start);"," }",""," }",""," } else {"," evt.preventDefault ? evt.preventDefault() : ( evt.returnValue = false);",""," if (!range.collapsed) {"," range.deleteContents();"," start = range.startContainer;"," if (start.nodeType == 1 && (start = start.childNodes[range.startOffset])) {"," while (start.nodeType == 1) {"," if (dtd.$empty[start.tagName]) {"," range.setStartBefore(start).setCursor();"," if (me.undoManger) {"," me.undoManger.save();"," }"," return false;"," }"," if (!start.firstChild) {"," var br = range.document.createElement('br');"," start.appendChild(br);"," range.setStart(start, 0).setCursor();"," if (me.undoManger) {"," me.undoManger.save();"," }"," return false;"," }"," start = start.firstChild;"," }"," if (start === range.startContainer.childNodes[range.startOffset]) {"," br = range.document.createElement('br');"," range.insertNode(br).setCursor();",""," } else {"," range.setStart(start, 0).setCursor();"," }","",""," } else {"," br = range.document.createElement('br');"," range.insertNode(br).setStartAfter(br).setCursor();"," }","",""," } else {"," br = range.document.createElement('br');"," range.insertNode(br);"," var parent = br.parentNode;"," if (parent.lastChild === br) {"," br.parentNode.insertBefore(br.cloneNode(true), br);"," range.setStartBefore(br);"," } else {"," range.setStartAfter(br);"," }"," range.setCursor();",""," }",""," }",""," }"," });","};"]; +_$jscoverage['plugins/enterkey.js'][10]++; +UE.plugins.enterkey = (function () { + _$jscoverage['plugins/enterkey.js'][11]++; + var hTag, me = this, tag = me.options.enterTag; + _$jscoverage['plugins/enterkey.js'][14]++; + me.addListener("keyup", (function (type, evt) { + _$jscoverage['plugins/enterkey.js'][16]++; + var keyCode = (evt.keyCode || evt.which); + _$jscoverage['plugins/enterkey.js'][17]++; + if ((keyCode == 13)) { + _$jscoverage['plugins/enterkey.js'][18]++; + var range = me.selection.getRange(), start = range.startContainer, doSave; + _$jscoverage['plugins/enterkey.js'][23]++; + if ((! browser.ie)) { + _$jscoverage['plugins/enterkey.js'][25]++; + if (/h\d/i.test(hTag)) { + _$jscoverage['plugins/enterkey.js'][26]++; + if (browser.gecko) { + _$jscoverage['plugins/enterkey.js'][27]++; + var h = domUtils.findParentByTagName(start, ["h1", "h2", "h3", "h4", "h5", "h6", "blockquote", "caption", "table"], true); + _$jscoverage['plugins/enterkey.js'][28]++; + if ((! h)) { + _$jscoverage['plugins/enterkey.js'][29]++; + me.document.execCommand("formatBlock", false, "

"); + _$jscoverage['plugins/enterkey.js'][30]++; + doSave = 1; + } + } + else { + _$jscoverage['plugins/enterkey.js'][34]++; + if ((start.nodeType == 1)) { + _$jscoverage['plugins/enterkey.js'][35]++; + var tmp = me.document.createTextNode(""), div; + _$jscoverage['plugins/enterkey.js'][36]++; + range.insertNode(tmp); + _$jscoverage['plugins/enterkey.js'][37]++; + div = domUtils.findParentByTagName(tmp, "div", true); + _$jscoverage['plugins/enterkey.js'][38]++; + if (div) { + _$jscoverage['plugins/enterkey.js'][39]++; + var p = me.document.createElement("p"); + _$jscoverage['plugins/enterkey.js'][40]++; + while (div.firstChild) { + _$jscoverage['plugins/enterkey.js'][41]++; + p.appendChild(div.firstChild); +} + _$jscoverage['plugins/enterkey.js'][43]++; + div.parentNode.insertBefore(p, div); + _$jscoverage['plugins/enterkey.js'][44]++; + domUtils.remove(div); + _$jscoverage['plugins/enterkey.js'][45]++; + range.setStartBefore(tmp).setCursor(); + _$jscoverage['plugins/enterkey.js'][46]++; + doSave = 1; + } + _$jscoverage['plugins/enterkey.js'][48]++; + domUtils.remove(tmp); + } + } + _$jscoverage['plugins/enterkey.js'][53]++; + if ((me.undoManger && doSave)) { + _$jscoverage['plugins/enterkey.js'][54]++; + me.undoManger.save(); + } + } + _$jscoverage['plugins/enterkey.js'][58]++; + (browser.opera && range.select()); + } + else { + _$jscoverage['plugins/enterkey.js'][60]++; + me.fireEvent("saveScene", true, true); + } + } +})); + _$jscoverage['plugins/enterkey.js'][65]++; + me.addListener("keydown", (function (type, evt) { + _$jscoverage['plugins/enterkey.js'][66]++; + var keyCode = (evt.keyCode || evt.which); + _$jscoverage['plugins/enterkey.js'][67]++; + if ((keyCode == 13)) { + _$jscoverage['plugins/enterkey.js'][68]++; + if (me.fireEvent("beforeenterkeydown")) { + _$jscoverage['plugins/enterkey.js'][69]++; + domUtils.preventDefault(evt); + _$jscoverage['plugins/enterkey.js'][70]++; + return; + } + _$jscoverage['plugins/enterkey.js'][72]++; + me.fireEvent("saveScene", true, true); + _$jscoverage['plugins/enterkey.js'][73]++; + hTag = ""; + _$jscoverage['plugins/enterkey.js'][76]++; + var range = me.selection.getRange(); + _$jscoverage['plugins/enterkey.js'][78]++; + if ((! range.collapsed)) { + _$jscoverage['plugins/enterkey.js'][80]++; + var start = range.startContainer, end = range.endContainer, startTd = domUtils.findParentByTagName(start, "td", true), endTd = domUtils.findParentByTagName(end, "td", true); + _$jscoverage['plugins/enterkey.js'][84]++; + if (((startTd && endTd && (startTd !== endTd)) || ((! startTd) && endTd) || (startTd && (! endTd)))) { + _$jscoverage['plugins/enterkey.js'][85]++; + (evt.preventDefault? evt.preventDefault(): (evt.returnValue = false)); + _$jscoverage['plugins/enterkey.js'][86]++; + return; + } + } + _$jscoverage['plugins/enterkey.js'][89]++; + if ((tag == "p")) { + _$jscoverage['plugins/enterkey.js'][92]++; + if ((! browser.ie)) { + _$jscoverage['plugins/enterkey.js'][94]++; + start = domUtils.findParentByTagName(range.startContainer, ["ol", "ul", "p", "h1", "h2", "h3", "h4", "h5", "h6", "blockquote", "caption"], true); + _$jscoverage['plugins/enterkey.js'][98]++; + if (((! start) && (! browser.opera))) { + _$jscoverage['plugins/enterkey.js'][100]++; + me.document.execCommand("formatBlock", false, "

"); + _$jscoverage['plugins/enterkey.js'][102]++; + if (browser.gecko) { + _$jscoverage['plugins/enterkey.js'][103]++; + range = me.selection.getRange(); + _$jscoverage['plugins/enterkey.js'][104]++; + start = domUtils.findParentByTagName(range.startContainer, "p", true); + _$jscoverage['plugins/enterkey.js'][105]++; + (start && domUtils.removeDirtyAttr(start)); + } + } + else { + _$jscoverage['plugins/enterkey.js'][110]++; + hTag = start.tagName; + _$jscoverage['plugins/enterkey.js'][111]++; + ((start.tagName.toLowerCase() == "p") && browser.gecko && domUtils.removeDirtyAttr(start)); + } + } + } + else { + _$jscoverage['plugins/enterkey.js'][117]++; + (evt.preventDefault? evt.preventDefault(): (evt.returnValue = false)); + _$jscoverage['plugins/enterkey.js'][119]++; + if ((! range.collapsed)) { + _$jscoverage['plugins/enterkey.js'][120]++; + range.deleteContents(); + _$jscoverage['plugins/enterkey.js'][121]++; + start = range.startContainer; + _$jscoverage['plugins/enterkey.js'][122]++; + if (((start.nodeType == 1) && (start = start.childNodes[range.startOffset]))) { + _$jscoverage['plugins/enterkey.js'][123]++; + while ((start.nodeType == 1)) { + _$jscoverage['plugins/enterkey.js'][124]++; + if (dtd.$empty[start.tagName]) { + _$jscoverage['plugins/enterkey.js'][125]++; + range.setStartBefore(start).setCursor(); + _$jscoverage['plugins/enterkey.js'][126]++; + if (me.undoManger) { + _$jscoverage['plugins/enterkey.js'][127]++; + me.undoManger.save(); + } + _$jscoverage['plugins/enterkey.js'][129]++; + return false; + } + _$jscoverage['plugins/enterkey.js'][131]++; + if ((! start.firstChild)) { + _$jscoverage['plugins/enterkey.js'][132]++; + var br = range.document.createElement("br"); + _$jscoverage['plugins/enterkey.js'][133]++; + start.appendChild(br); + _$jscoverage['plugins/enterkey.js'][134]++; + range.setStart(start, 0).setCursor(); + _$jscoverage['plugins/enterkey.js'][135]++; + if (me.undoManger) { + _$jscoverage['plugins/enterkey.js'][136]++; + me.undoManger.save(); + } + _$jscoverage['plugins/enterkey.js'][138]++; + return false; + } + _$jscoverage['plugins/enterkey.js'][140]++; + start = start.firstChild; +} + _$jscoverage['plugins/enterkey.js'][142]++; + if ((start === range.startContainer.childNodes[range.startOffset])) { + _$jscoverage['plugins/enterkey.js'][143]++; + br = range.document.createElement("br"); + _$jscoverage['plugins/enterkey.js'][144]++; + range.insertNode(br).setCursor(); + } + else { + _$jscoverage['plugins/enterkey.js'][147]++; + range.setStart(start, 0).setCursor(); + } + } + else { + _$jscoverage['plugins/enterkey.js'][152]++; + br = range.document.createElement("br"); + _$jscoverage['plugins/enterkey.js'][153]++; + range.insertNode(br).setStartAfter(br).setCursor(); + } + } + else { + _$jscoverage['plugins/enterkey.js'][158]++; + br = range.document.createElement("br"); + _$jscoverage['plugins/enterkey.js'][159]++; + range.insertNode(br); + _$jscoverage['plugins/enterkey.js'][160]++; + var parent = br.parentNode; + _$jscoverage['plugins/enterkey.js'][161]++; + if ((parent.lastChild === br)) { + _$jscoverage['plugins/enterkey.js'][162]++; + br.parentNode.insertBefore(br.cloneNode(true), br); + _$jscoverage['plugins/enterkey.js'][163]++; + range.setStartBefore(br); + } + else { + _$jscoverage['plugins/enterkey.js'][165]++; + range.setStartAfter(br); + } + _$jscoverage['plugins/enterkey.js'][167]++; + range.setCursor(); + } + } + } +})); +}); diff --git a/_test/coverage/plugins/fiximgclick.js b/_test/coverage/plugins/fiximgclick.js new file mode 100644 index 000000000..b32a5f225 --- /dev/null +++ b/_test/coverage/plugins/fiximgclick.js @@ -0,0 +1,68 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/fiximgclick.js']) { + _$jscoverage['plugins/fiximgclick.js'] = []; + _$jscoverage['plugins/fiximgclick.js'][7] = 0; + _$jscoverage['plugins/fiximgclick.js'][8] = 0; + _$jscoverage['plugins/fiximgclick.js'][9] = 0; + _$jscoverage['plugins/fiximgclick.js'][10] = 0; + _$jscoverage['plugins/fiximgclick.js'][11] = 0; + _$jscoverage['plugins/fiximgclick.js'][12] = 0; + _$jscoverage['plugins/fiximgclick.js'][13] = 0; +} +_$jscoverage['plugins/fiximgclick.js'].source = ["///import core","///commands 修复chrome下图片不能点击的问题","///commandsName FixImgClick","///commandsTitle 修复chrome下图片不能点击的问题","//修复chrome下图片不能点击的问题","//todo 可以改大小","UE.plugins['fiximgclick'] = function() {"," var me = this;"," if ( browser.webkit ) {"," me.addListener( 'click', function( type, e ) {"," if ( e.target.tagName == 'IMG' ) {"," var range = new dom.Range( me.document );"," range.selectNode( e.target ).select();",""," }"," } );"," }","};"]; +_$jscoverage['plugins/fiximgclick.js'][7]++; +UE.plugins.fiximgclick = (function () { + _$jscoverage['plugins/fiximgclick.js'][8]++; + var me = this; + _$jscoverage['plugins/fiximgclick.js'][9]++; + if (browser.webkit) { + _$jscoverage['plugins/fiximgclick.js'][10]++; + me.addListener("click", (function (type, e) { + _$jscoverage['plugins/fiximgclick.js'][11]++; + if ((e.target.tagName == "IMG")) { + _$jscoverage['plugins/fiximgclick.js'][12]++; + var range = new (dom.Range)(me.document); + _$jscoverage['plugins/fiximgclick.js'][13]++; + range.selectNode(e.target).select(); + } +})); + } +}); diff --git a/_test/coverage/plugins/font.js b/_test/coverage/plugins/font.js new file mode 100644 index 000000000..7cfdc6709 --- /dev/null +++ b/_test/coverage/plugins/font.js @@ -0,0 +1,646 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/font.js']) { + _$jscoverage['plugins/font.js'] = []; + _$jscoverage['plugins/font.js'][197] = 0; + _$jscoverage['plugins/font.js'][198] = 0; + _$jscoverage['plugins/font.js'][216] = 0; + _$jscoverage['plugins/font.js'][233] = 0; + _$jscoverage['plugins/font.js'][234] = 0; + _$jscoverage['plugins/font.js'][235] = 0; + _$jscoverage['plugins/font.js'][236] = 0; + _$jscoverage['plugins/font.js'][237] = 0; + _$jscoverage['plugins/font.js'][239] = 0; + _$jscoverage['plugins/font.js'][240] = 0; + _$jscoverage['plugins/font.js'][241] = 0; + _$jscoverage['plugins/font.js'][244] = 0; + _$jscoverage['plugins/font.js'][249] = 0; + _$jscoverage['plugins/font.js'][250] = 0; + _$jscoverage['plugins/font.js'][251] = 0; + _$jscoverage['plugins/font.js'][252] = 0; + _$jscoverage['plugins/font.js'][253] = 0; + _$jscoverage['plugins/font.js'][254] = 0; + _$jscoverage['plugins/font.js'][255] = 0; + _$jscoverage['plugins/font.js'][256] = 0; + _$jscoverage['plugins/font.js'][257] = 0; + _$jscoverage['plugins/font.js'][258] = 0; + _$jscoverage['plugins/font.js'][259] = 0; + _$jscoverage['plugins/font.js'][261] = 0; + _$jscoverage['plugins/font.js'][262] = 0; + _$jscoverage['plugins/font.js'][263] = 0; + _$jscoverage['plugins/font.js'][266] = 0; + _$jscoverage['plugins/font.js'][272] = 0; + _$jscoverage['plugins/font.js'][273] = 0; + _$jscoverage['plugins/font.js'][275] = 0; + _$jscoverage['plugins/font.js'][276] = 0; + _$jscoverage['plugins/font.js'][277] = 0; + _$jscoverage['plugins/font.js'][278] = 0; + _$jscoverage['plugins/font.js'][281] = 0; + _$jscoverage['plugins/font.js'][283] = 0; + _$jscoverage['plugins/font.js'][284] = 0; + _$jscoverage['plugins/font.js'][285] = 0; + _$jscoverage['plugins/font.js'][286] = 0; + _$jscoverage['plugins/font.js'][287] = 0; + _$jscoverage['plugins/font.js'][289] = 0; + _$jscoverage['plugins/font.js'][291] = 0; + _$jscoverage['plugins/font.js'][293] = 0; + _$jscoverage['plugins/font.js'][294] = 0; + _$jscoverage['plugins/font.js'][296] = 0; + _$jscoverage['plugins/font.js'][297] = 0; + _$jscoverage['plugins/font.js'][298] = 0; + _$jscoverage['plugins/font.js'][299] = 0; + _$jscoverage['plugins/font.js'][300] = 0; + _$jscoverage['plugins/font.js'][301] = 0; + _$jscoverage['plugins/font.js'][302] = 0; + _$jscoverage['plugins/font.js'][304] = 0; + _$jscoverage['plugins/font.js'][305] = 0; + _$jscoverage['plugins/font.js'][306] = 0; + _$jscoverage['plugins/font.js'][308] = 0; + _$jscoverage['plugins/font.js'][309] = 0; + _$jscoverage['plugins/font.js'][310] = 0; + _$jscoverage['plugins/font.js'][315] = 0; + _$jscoverage['plugins/font.js'][316] = 0; + _$jscoverage['plugins/font.js'][318] = 0; + _$jscoverage['plugins/font.js'][319] = 0; + _$jscoverage['plugins/font.js'][320] = 0; + _$jscoverage['plugins/font.js'][325] = 0; + _$jscoverage['plugins/font.js'][326] = 0; + _$jscoverage['plugins/font.js'][329] = 0; + _$jscoverage['plugins/font.js'][330] = 0; + _$jscoverage['plugins/font.js'][331] = 0; + _$jscoverage['plugins/font.js'][332] = 0; + _$jscoverage['plugins/font.js'][333] = 0; + _$jscoverage['plugins/font.js'][334] = 0; + _$jscoverage['plugins/font.js'][336] = 0; + _$jscoverage['plugins/font.js'][337] = 0; + _$jscoverage['plugins/font.js'][339] = 0; + _$jscoverage['plugins/font.js'][340] = 0; + _$jscoverage['plugins/font.js'][342] = 0; + _$jscoverage['plugins/font.js'][343] = 0; + _$jscoverage['plugins/font.js'][345] = 0; + _$jscoverage['plugins/font.js'][348] = 0; + _$jscoverage['plugins/font.js'][352] = 0; + _$jscoverage['plugins/font.js'][353] = 0; + _$jscoverage['plugins/font.js'][357] = 0; + _$jscoverage['plugins/font.js'][409] = 0; + _$jscoverage['plugins/font.js'][410] = 0; + _$jscoverage['plugins/font.js'][411] = 0; + _$jscoverage['plugins/font.js'][413] = 0; + _$jscoverage['plugins/font.js'][416] = 0; + _$jscoverage['plugins/font.js'][420] = 0; + _$jscoverage['plugins/font.js'][422] = 0; + _$jscoverage['plugins/font.js'][423] = 0; + _$jscoverage['plugins/font.js'][424] = 0; + _$jscoverage['plugins/font.js'][427] = 0; + _$jscoverage['plugins/font.js'][428] = 0; + _$jscoverage['plugins/font.js'][429] = 0; + _$jscoverage['plugins/font.js'][430] = 0; + _$jscoverage['plugins/font.js'][432] = 0; + _$jscoverage['plugins/font.js'][433] = 0; + _$jscoverage['plugins/font.js'][435] = 0; + _$jscoverage['plugins/font.js'][436] = 0; + _$jscoverage['plugins/font.js'][437] = 0; + _$jscoverage['plugins/font.js'][439] = 0; + _$jscoverage['plugins/font.js'][441] = 0; + _$jscoverage['plugins/font.js'][442] = 0; + _$jscoverage['plugins/font.js'][443] = 0; + _$jscoverage['plugins/font.js'][446] = 0; + _$jscoverage['plugins/font.js'][447] = 0; + _$jscoverage['plugins/font.js'][448] = 0; + _$jscoverage['plugins/font.js'][450] = 0; + _$jscoverage['plugins/font.js'][451] = 0; + _$jscoverage['plugins/font.js'][452] = 0; + _$jscoverage['plugins/font.js'][453] = 0; + _$jscoverage['plugins/font.js'][455] = 0; + _$jscoverage['plugins/font.js'][456] = 0; + _$jscoverage['plugins/font.js'][459] = 0; + _$jscoverage['plugins/font.js'][460] = 0; + _$jscoverage['plugins/font.js'][464] = 0; + _$jscoverage['plugins/font.js'][465] = 0; + _$jscoverage['plugins/font.js'][466] = 0; + _$jscoverage['plugins/font.js'][468] = 0; + _$jscoverage['plugins/font.js'][470] = 0; + _$jscoverage['plugins/font.js'][471] = 0; + _$jscoverage['plugins/font.js'][472] = 0; + _$jscoverage['plugins/font.js'][473] = 0; + _$jscoverage['plugins/font.js'][475] = 0; + _$jscoverage['plugins/font.js'][478] = 0; + _$jscoverage['plugins/font.js'][481] = 0; + _$jscoverage['plugins/font.js'][483] = 0; + _$jscoverage['plugins/font.js'][484] = 0; + _$jscoverage['plugins/font.js'][485] = 0; + _$jscoverage['plugins/font.js'][486] = 0; + _$jscoverage['plugins/font.js'][488] = 0; + _$jscoverage['plugins/font.js'][490] = 0; + _$jscoverage['plugins/font.js'][495] = 0; + _$jscoverage['plugins/font.js'][496] = 0; + _$jscoverage['plugins/font.js'][497] = 0; + _$jscoverage['plugins/font.js'][498] = 0; + _$jscoverage['plugins/font.js'][499] = 0; + _$jscoverage['plugins/font.js'][502] = 0; + _$jscoverage['plugins/font.js'][503] = 0; + _$jscoverage['plugins/font.js'][504] = 0; + _$jscoverage['plugins/font.js'][510] = 0; + _$jscoverage['plugins/font.js'][515] = 0; + _$jscoverage['plugins/font.js'][518] = 0; + _$jscoverage['plugins/font.js'][521] = 0; + _$jscoverage['plugins/font.js'][522] = 0; + _$jscoverage['plugins/font.js'][523] = 0; + _$jscoverage['plugins/font.js'][524] = 0; + _$jscoverage['plugins/font.js'][525] = 0; + _$jscoverage['plugins/font.js'][527] = 0; + _$jscoverage['plugins/font.js'][528] = 0; + _$jscoverage['plugins/font.js'][532] = 0; + _$jscoverage['plugins/font.js'][534] = 0; + _$jscoverage['plugins/font.js'][536] = 0; + _$jscoverage['plugins/font.js'][537] = 0; + _$jscoverage['plugins/font.js'][538] = 0; + _$jscoverage['plugins/font.js'][539] = 0; + _$jscoverage['plugins/font.js'][540] = 0; + _$jscoverage['plugins/font.js'][541] = 0; + _$jscoverage['plugins/font.js'][544] = 0; + _$jscoverage['plugins/font.js'][546] = 0; + _$jscoverage['plugins/font.js'][549] = 0; + _$jscoverage['plugins/font.js'][550] = 0; + _$jscoverage['plugins/font.js'][553] = 0; + _$jscoverage['plugins/font.js'][555] = 0; + _$jscoverage['plugins/font.js'][559] = 0; + _$jscoverage['plugins/font.js'][563] = 0; + _$jscoverage['plugins/font.js'][566] = 0; + _$jscoverage['plugins/font.js'][567] = 0; + _$jscoverage['plugins/font.js'][568] = 0; + _$jscoverage['plugins/font.js'][569] = 0; + _$jscoverage['plugins/font.js'][570] = 0; + _$jscoverage['plugins/font.js'][572] = 0; +} +_$jscoverage['plugins/font.js'].source = ["/**"," * 字体颜色,背景色,字号,字体,下划线,删除线"," * @file"," * @since 1.2.6.1"," */","","/**"," * 设置字体颜色"," * @command forecolor"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @param { String } value 色值"," * @example"," * ```javascript"," * editor.execCommand( 'forecolor', '#000' );"," * ```"," */","/**"," * 返回选区字体颜色"," * @command forecolor"," * @method queryCommandValue"," * @param { String } cmd 命令字符串"," * @return { String } 返回字体颜色"," * @example"," * ```javascript"," * editor.queryCommandValue( 'forecolor' );"," * ```"," */","","/**"," * 设置字体背景颜色"," * @command backcolor"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @param { String } value 色值"," * @example"," * ```javascript"," * editor.execCommand( 'backcolor', '#000' );"," * ```"," */","/**"," * 返回选区字体颜色"," * @command backcolor"," * @method queryCommandValue"," * @param { String } cmd 命令字符串"," * @return { String } 返回字体背景颜色"," * @example"," * ```javascript"," * editor.queryCommandValue( 'backcolor' );"," * ```"," */","","/**"," * 设置字体大小"," * @command fontsize"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @param { String } value 字体大小"," * @example"," * ```javascript"," * editor.execCommand( 'fontsize', '14px' );"," * ```"," */","/**"," * 返回选区字体大小"," * @command fontsize"," * @method queryCommandValue"," * @param { String } cmd 命令字符串"," * @return { String } 返回字体大小"," * @example"," * ```javascript"," * editor.queryCommandValue( 'fontsize' );"," * ```"," */","","/**"," * 设置字体样式"," * @command fontfamily"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @param { String } value 字体大小"," * @example"," * ```javascript"," * editor.execCommand( 'fontfamily', '微软雅黑' );"," * ```"," */","/**"," * 返回选区字体样式"," * @command fontfamily"," * @method queryCommandValue"," * @param { String } cmd 命令字符串"," * @return { String } 返回字体样式"," * @example"," * ```javascript"," * editor.queryCommandValue( 'fontfamily' );"," * ```"," */","","/**"," * 根据选区内文本有无下划线设置字体下划线"," * @command underline"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @example"," * ```javascript"," * editor.execCommand( 'underline' );"," * ```"," */","/**"," * 返回选区下划线样式"," * @command underline"," * @method queryCommandValue"," * @param { String } cmd 命令字符串"," * @return { String } underline|default"," * @example"," * ```javascript"," * editor.queryCommandValue( 'underline' );"," * ```"," */","/**"," * 返回选区有无下划线"," * @command underline"," * @method queryCommandValue"," * @param { String } cmd 命令字符串"," * @return { Bool }true为有下划线,反之则无"," * @example"," * ```javascript"," * editor.queryCommandValue( 'underline' );"," * ```"," */","","/**"," * 根据选区内文本有无删除线设置字体删除线"," * @command strikethrough"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @example"," * ```javascript"," * editor.execCommand( 'strikethrough' );"," * ```"," */","/**"," * 返回选区删除线样式"," * @command strikethrough"," * @method queryCommandValue"," * @param { String } cmd 命令字符串"," * @return { String } line-through|default"," * @example"," * ```javascript"," * editor.queryCommandValue( 'strikethrough' );"," * ```"," */","/**"," * 返回选区有无删除线"," * @command strikethrough"," * @method queryCommandValue"," * @param { String } cmd 命令字符串"," * @return { Bool }true为有删除线,反之则无"," * @example"," * ```javascript"," * editor.queryCommandValue( 'strikethrough' );"," * ```"," */","","/**"," * 根据选区内文本有无字体边框设置字体边框"," * @command fontborder"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @example"," * ```javascript"," * editor.execCommand( 'fontborder' );"," * ```"," */","/**"," * 返回选区字体边框样式"," * @command fontborder"," * @method queryCommandValue"," * @param { String } cmd 命令字符串"," * @return { String } 字体边框样式"," * @example"," * ```javascript"," * editor.queryCommandValue( 'fontborder' );"," * ```"," */","/**"," * 返回选区有无字体边框"," * @command fontborder"," * @method queryCommandValue"," * @param { String } cmd 命令字符串"," * @return { Bool }true为有字体边框,反之则无"," * @example"," * ```javascript"," * editor.queryCommandValue( 'fontborder' );"," * ```"," */","UE.plugins['font'] = function () {"," var me = this,"," fonts = {"," 'forecolor': 'color',"," 'backcolor': 'background-color',"," 'fontsize': 'font-size',"," 'fontfamily': 'font-family',"," 'underline': 'text-decoration',"," 'strikethrough': 'text-decoration',"," 'fontborder': 'border'"," },"," needCmd = {'underline': 1, 'strikethrough': 1, 'fontborder': 1},"," needSetChild = {"," 'forecolor': 'color',"," 'backcolor': 'background-color',"," 'fontsize': 'font-size',"," 'fontfamily': 'font-family'",""," };"," me.setOpt({"," 'fontfamily': ["," { name: 'songti', val: '宋体,SimSun'},"," { name: 'yahei', val: '微软雅黑,Microsoft YaHei'},"," { name: 'kaiti', val: '楷体,楷体_GB2312, SimKai'},"," { name: 'heiti', val: '黑体, SimHei'},"," { name: 'lishu', val: '隶书, SimLi'},"," { name: 'andaleMono', val: 'andale mono'},"," { name: 'arial', val: 'arial, helvetica,sans-serif'},"," { name: 'arialBlack', val: 'arial black,avant garde'},"," { name: 'comicSansMs', val: 'comic sans ms'},"," { name: 'impact', val: 'impact,chicago'},"," { name: 'timesNewRoman', val: 'times new roman'}"," ],"," 'fontsize': [10, 11, 12, 14, 16, 18, 20, 24, 36]"," });",""," function mergeWithParent(node){"," var parent;"," while(parent = node.parentNode){"," if(parent.tagName == 'SPAN' && domUtils.getChildCount(parent,function(child){"," return !domUtils.isBookmarkNode(child) && !domUtils.isBr(child)"," }) == 1) {"," parent.style.cssText += node.style.cssText;"," domUtils.remove(node,true);"," node = parent;",""," }else{"," break;"," }"," }",""," }"," function mergeChild(rng,cmdName,value){"," if(needSetChild[cmdName]){"," rng.adjustmentBoundary();"," if(!rng.collapsed && rng.startContainer.nodeType == 1){"," var start = rng.startContainer.childNodes[rng.startOffset];"," if(start && domUtils.isTagNode(start,'span')){"," var bk = rng.createBookmark();"," utils.each(domUtils.getElementsByTagName(start, 'span'), function (span) {"," if (!span.parentNode || domUtils.isBookmarkNode(span))return;"," if(cmdName == 'backcolor' && domUtils.getComputedStyle(span,'background-color').toLowerCase() === value){"," return;"," }"," domUtils.removeStyle(span,needSetChild[cmdName]);"," if(span.style.cssText.replace(/^\\s+$/,'').length == 0){"," domUtils.remove(span,true)"," }"," });"," rng.moveToBookmark(bk)"," }"," }"," }",""," }"," function mergesibling(rng,cmdName,value) {"," var collapsed = rng.collapsed,"," bk = rng.createBookmark(), common;"," if (collapsed) {"," common = bk.start.parentNode;"," while (dtd.$inline[common.tagName]) {"," common = common.parentNode;"," }"," } else {"," common = domUtils.getCommonAncestor(bk.start, bk.end);"," }"," utils.each(domUtils.getElementsByTagName(common, 'span'), function (span) {"," if (!span.parentNode || domUtils.isBookmarkNode(span))return;"," if (/\\s*border\\s*:\\s*none;?\\s*/i.test(span.style.cssText)) {"," if(/^\\s*border\\s*:\\s*none;?\\s*$/.test(span.style.cssText)){"," domUtils.remove(span, true);"," }else{"," domUtils.removeStyle(span,'border');"," }"," return"," }"," if (/border/i.test(span.style.cssText) && span.parentNode.tagName == 'SPAN' && /border/i.test(span.parentNode.style.cssText)) {"," span.style.cssText = span.style.cssText.replace(/border[^:]*:[^;]+;?/gi, '');"," }"," if(!(cmdName=='fontborder' && value=='none')){"," var next = span.nextSibling;"," while (next && next.nodeType == 1 && next.tagName == 'SPAN' ) {"," if(domUtils.isBookmarkNode(next) && cmdName == 'fontborder') {"," span.appendChild(next);"," next = span.nextSibling;"," continue;"," }"," if (next.style.cssText == span.style.cssText) {"," domUtils.moveChild(next, span);"," domUtils.remove(next);"," }"," if (span.nextSibling === next)"," break;"," next = span.nextSibling;"," }"," }","",""," mergeWithParent(span);"," if(browser.ie && browser.version > 8 ){"," //拷贝父亲们的特别的属性,这里只做背景颜色的处理"," var parent = domUtils.findParent(span,function(n){return n.tagName == 'SPAN' && /background-color/.test(n.style.cssText)});"," if(parent && !/background-color/.test(span.style.cssText)){"," span.style.backgroundColor = parent.style.backgroundColor;"," }"," }",""," });"," rng.moveToBookmark(bk);"," mergeChild(rng,cmdName,value)"," }",""," me.addInputRule(function (root) {"," utils.each(root.getNodesByTagName('u s del font strike'), function (node) {"," if (node.tagName == 'font') {"," var cssStyle = [];"," for (var p in node.attrs) {"," switch (p) {"," case 'size':"," cssStyle.push('font-size:' + node.attrs[p] + 'px');"," break;"," case 'color':"," cssStyle.push('color:' + node.attrs[p]);"," break;"," case 'face':"," cssStyle.push('font-family:' + node.attrs[p]);"," break;"," case 'style':"," cssStyle.push(node.attrs[p]);"," }"," }"," node.attrs = {"," 'style': cssStyle.join(';')"," };"," } else {"," var val = node.tagName == 'u' ? 'underline' : 'line-through';"," node.attrs = {"," 'style': (node.getAttr('style') || '') + 'text-decoration:' + val + ';'"," }"," }"," node.tagName = 'span';"," });","// utils.each(root.getNodesByTagName('span'), function (node) {","// var val;","// if(val = node.getAttr('class')){","// if(/fontstrikethrough/.test(val)){","// node.setStyle('text-decoration','line-through');","// if(node.attrs['class']){","// node.attrs['class'] = node.attrs['class'].replace(/fontstrikethrough/,'');","// }else{","// node.setAttr('class')","// }","// }","// if(/fontborder/.test(val)){","// node.setStyle('border','1px solid #000');","// if(node.attrs['class']){","// node.attrs['class'] = node.attrs['class'].replace(/fontborder/,'');","// }else{","// node.setAttr('class')","// }","// }","// }","// });"," });","// me.addOutputRule(function(root){","// utils.each(root.getNodesByTagName('span'), function (node) {","// var val;","// if(val = node.getStyle('text-decoration')){","// if(/line-through/.test(val)){","// if(node.attrs['class']){","// node.attrs['class'] += ' fontstrikethrough';","// }else{","// node.setAttr('class','fontstrikethrough')","// }","// }","//","// node.setStyle('text-decoration')","// }","// if(val = node.getStyle('border')){","// if(/1px/.test(val) && /solid/.test(val)){","// if(node.attrs['class']){","// node.attrs['class'] += ' fontborder';","//","// }else{","// node.setAttr('class','fontborder')","// }","// }","// node.setStyle('border')","//","// }","// });","// });"," for (var p in fonts) {"," (function (cmd, style) {"," UE.commands[cmd] = {"," execCommand: function (cmdName, value) {"," value = value || (this.queryCommandState(cmdName) ? 'none' : cmdName == 'underline' ? 'underline' :"," cmdName == 'fontborder' ? '1px solid #000' :"," 'line-through');"," var me = this,"," range = this.selection.getRange(),"," text;",""," if (value == 'default') {",""," if (range.collapsed) {"," text = me.document.createTextNode('font');"," range.insertNode(text).select();",""," }"," me.execCommand('removeFormat', 'span,a', style);"," if (text) {"," range.setStartBefore(text).collapse(true);"," domUtils.remove(text);"," }"," mergesibling(range,cmdName,value);"," range.select()"," } else {"," if (!range.collapsed) {"," if (needCmd[cmd] && me.queryCommandValue(cmd)) {"," me.execCommand('removeFormat', 'span,a', style);"," }"," range = me.selection.getRange();",""," range.applyInlineStyle('span', {'style': style + ':' + value});"," mergesibling(range, cmdName,value);"," range.select();"," } else {",""," var span = domUtils.findParentByTagName(range.startContainer, 'span', true);"," text = me.document.createTextNode('font');"," if (span && !span.children.length && !span[browser.ie ? 'innerText' : 'textContent'].replace(fillCharReg, '').length) {"," //for ie hack when enter"," range.insertNode(text);"," if (needCmd[cmd]) {"," range.selectNode(text).select();"," me.execCommand('removeFormat', 'span,a', style, null);",""," span = domUtils.findParentByTagName(text, 'span', true);"," range.setStartBefore(text);",""," }"," span && (span.style.cssText += ';' + style + ':' + value);"," range.collapse(true).select();","",""," } else {"," range.insertNode(text);"," range.selectNode(text).select();"," span = range.document.createElement('span');",""," if (needCmd[cmd]) {"," //a标签内的不处理跳过"," if (domUtils.findParentByTagName(text, 'a', true)) {"," range.setStartBefore(text).setCursor();"," domUtils.remove(text);"," return;"," }"," me.execCommand('removeFormat', 'span,a', style);"," }",""," span.style.cssText = style + ':' + value;","",""," text.parentNode.insertBefore(span, text);"," //修复,span套span 但样式不继承的问题"," if (!browser.ie || browser.ie && browser.version == 9) {"," var spanParent = span.parentNode;"," while (!domUtils.isBlockElm(spanParent)) {"," if (spanParent.tagName == 'SPAN') {"," //opera合并style不会加入\";\""," span.style.cssText = spanParent.style.cssText + \";\" + span.style.cssText;"," }"," spanParent = spanParent.parentNode;"," }"," }","",""," if (opera) {"," setTimeout(function () {"," range.setStart(span, 0).collapse(true);"," mergesibling(range, cmdName,value);"," range.select();"," });"," } else {"," range.setStart(span, 0).collapse(true);"," mergesibling(range,cmdName,value);"," range.select();"," }",""," //trace:981"," //domUtils.mergeToParent(span)"," }"," domUtils.remove(text);"," }","",""," }"," return true;"," },"," queryCommandValue: function (cmdName) {"," var startNode = this.selection.getStart();",""," //trace:946"," if (cmdName == 'underline' || cmdName == 'strikethrough') {"," var tmpNode = startNode, value;"," while (tmpNode && !domUtils.isBlockElm(tmpNode) && !domUtils.isBody(tmpNode)) {"," if (tmpNode.nodeType == 1) {"," value = domUtils.getComputedStyle(tmpNode, style);",""," if (value != 'none') {"," return value;"," }"," }",""," tmpNode = tmpNode.parentNode;"," }"," return 'none';"," }"," if (cmdName == 'fontborder') {"," var tmp = startNode, val;"," while (tmp && dtd.$inline[tmp.tagName]) {"," if (val = domUtils.getComputedStyle(tmp, 'border')) {"," if (/1px/.test(val) && /solid/.test(val)) {"," return val;"," }"," }"," tmp = tmp.parentNode;"," }"," return ''"," }",""," if( cmdName == 'FontSize' ) {"," var styleVal = domUtils.getComputedStyle(startNode, style),"," tmp = /^([\\d\\.]+)(\\w+)$/.exec( styleVal );",""," if( tmp ) {",""," return Math.floor( tmp[1] ) + tmp[2];",""," }",""," return styleVal;",""," }",""," return domUtils.getComputedStyle(startNode, style);"," },"," queryCommandState: function (cmdName) {"," if (!needCmd[cmdName])"," return 0;"," var val = this.queryCommandValue(cmdName);"," if (cmdName == 'fontborder') {"," return /1px/.test(val) && /solid/.test(val)"," } else {"," return val == (cmdName == 'underline' ?"," 'underline' : 'line-through');"," }",""," }"," };"," })(p, fonts[p]);"," }","};"]; +_$jscoverage['plugins/font.js'][197]++; +UE.plugins.font = (function () { + _$jscoverage['plugins/font.js'][198]++; + var me = this, fonts = {"forecolor": "color", "backcolor": "background-color", "fontsize": "font-size", "fontfamily": "font-family", "underline": "text-decoration", "strikethrough": "text-decoration", "fontborder": "border"}, needCmd = {"underline": 1, "strikethrough": 1, "fontborder": 1}, needSetChild = {"forecolor": "color", "backcolor": "background-color", "fontsize": "font-size", "fontfamily": "font-family"}; + _$jscoverage['plugins/font.js'][216]++; + me.setOpt({"fontfamily": [{name: "songti", val: "\u5b8b\u4f53,SimSun"}, {name: "yahei", val: "\u5fae\u8f6f\u96c5\u9ed1,Microsoft YaHei"}, {name: "kaiti", val: "\u6977\u4f53,\u6977\u4f53_GB2312, SimKai"}, {name: "heiti", val: "\u9ed1\u4f53, SimHei"}, {name: "lishu", val: "\u96b6\u4e66, SimLi"}, {name: "andaleMono", val: "andale mono"}, {name: "arial", val: "arial, helvetica,sans-serif"}, {name: "arialBlack", val: "arial black,avant garde"}, {name: "comicSansMs", val: "comic sans ms"}, {name: "impact", val: "impact,chicago"}, {name: "timesNewRoman", val: "times new roman"}], "fontsize": [10, 11, 12, 14, 16, 18, 20, 24, 36]}); + _$jscoverage['plugins/font.js'][233]++; + function mergeWithParent(node) { + _$jscoverage['plugins/font.js'][234]++; + var parent; + _$jscoverage['plugins/font.js'][235]++; + while ((parent = node.parentNode)) { + _$jscoverage['plugins/font.js'][236]++; + if (((parent.tagName == "SPAN") && (domUtils.getChildCount(parent, (function (child) { + _$jscoverage['plugins/font.js'][237]++; + return ((! domUtils.isBookmarkNode(child)) && (! domUtils.isBr(child))); +})) == 1))) { + _$jscoverage['plugins/font.js'][239]++; + parent.style.cssText += node.style.cssText; + _$jscoverage['plugins/font.js'][240]++; + domUtils.remove(node, true); + _$jscoverage['plugins/font.js'][241]++; + node = parent; + } + else { + _$jscoverage['plugins/font.js'][244]++; + break; + } +} +} + _$jscoverage['plugins/font.js'][249]++; + function mergeChild(rng, cmdName, value) { + _$jscoverage['plugins/font.js'][250]++; + if (needSetChild[cmdName]) { + _$jscoverage['plugins/font.js'][251]++; + rng.adjustmentBoundary(); + _$jscoverage['plugins/font.js'][252]++; + if (((! rng.collapsed) && (rng.startContainer.nodeType == 1))) { + _$jscoverage['plugins/font.js'][253]++; + var start = rng.startContainer.childNodes[rng.startOffset]; + _$jscoverage['plugins/font.js'][254]++; + if ((start && domUtils.isTagNode(start, "span"))) { + _$jscoverage['plugins/font.js'][255]++; + var bk = rng.createBookmark(); + _$jscoverage['plugins/font.js'][256]++; + utils.each(domUtils.getElementsByTagName(start, "span"), (function (span) { + _$jscoverage['plugins/font.js'][257]++; + if (((! span.parentNode) || domUtils.isBookmarkNode(span))) { + _$jscoverage['plugins/font.js'][257]++; + return; + } + _$jscoverage['plugins/font.js'][258]++; + if (((cmdName == "backcolor") && (domUtils.getComputedStyle(span, "background-color").toLowerCase() === value))) { + _$jscoverage['plugins/font.js'][259]++; + return; + } + _$jscoverage['plugins/font.js'][261]++; + domUtils.removeStyle(span, needSetChild[cmdName]); + _$jscoverage['plugins/font.js'][262]++; + if ((span.style.cssText.replace(/^\s+$/, "").length == 0)) { + _$jscoverage['plugins/font.js'][263]++; + domUtils.remove(span, true); + } +})); + _$jscoverage['plugins/font.js'][266]++; + rng.moveToBookmark(bk); + } + } + } +} + _$jscoverage['plugins/font.js'][272]++; + function mergesibling(rng, cmdName, value) { + _$jscoverage['plugins/font.js'][273]++; + var collapsed = rng.collapsed, bk = rng.createBookmark(), common; + _$jscoverage['plugins/font.js'][275]++; + if (collapsed) { + _$jscoverage['plugins/font.js'][276]++; + common = bk.start.parentNode; + _$jscoverage['plugins/font.js'][277]++; + while (dtd.$inline[common.tagName]) { + _$jscoverage['plugins/font.js'][278]++; + common = common.parentNode; +} + } + else { + _$jscoverage['plugins/font.js'][281]++; + common = domUtils.getCommonAncestor(bk.start, bk.end); + } + _$jscoverage['plugins/font.js'][283]++; + utils.each(domUtils.getElementsByTagName(common, "span"), (function (span) { + _$jscoverage['plugins/font.js'][284]++; + if (((! span.parentNode) || domUtils.isBookmarkNode(span))) { + _$jscoverage['plugins/font.js'][284]++; + return; + } + _$jscoverage['plugins/font.js'][285]++; + if (/\s*border\s*:\s*none;?\s*/i.test(span.style.cssText)) { + _$jscoverage['plugins/font.js'][286]++; + if (/^\s*border\s*:\s*none;?\s*$/.test(span.style.cssText)) { + _$jscoverage['plugins/font.js'][287]++; + domUtils.remove(span, true); + } + else { + _$jscoverage['plugins/font.js'][289]++; + domUtils.removeStyle(span, "border"); + } + _$jscoverage['plugins/font.js'][291]++; + return; + } + _$jscoverage['plugins/font.js'][293]++; + if ((/border/i.test(span.style.cssText) && (span.parentNode.tagName == "SPAN") && /border/i.test(span.parentNode.style.cssText))) { + _$jscoverage['plugins/font.js'][294]++; + span.style.cssText = span.style.cssText.replace(/border[^:]*:[^;]+;?/gi, ""); + } + _$jscoverage['plugins/font.js'][296]++; + if ((! ((cmdName == "fontborder") && (value == "none")))) { + _$jscoverage['plugins/font.js'][297]++; + var next = span.nextSibling; + _$jscoverage['plugins/font.js'][298]++; + while ((next && (next.nodeType == 1) && (next.tagName == "SPAN"))) { + _$jscoverage['plugins/font.js'][299]++; + if ((domUtils.isBookmarkNode(next) && (cmdName == "fontborder"))) { + _$jscoverage['plugins/font.js'][300]++; + span.appendChild(next); + _$jscoverage['plugins/font.js'][301]++; + next = span.nextSibling; + _$jscoverage['plugins/font.js'][302]++; + continue; + } + _$jscoverage['plugins/font.js'][304]++; + if ((next.style.cssText == span.style.cssText)) { + _$jscoverage['plugins/font.js'][305]++; + domUtils.moveChild(next, span); + _$jscoverage['plugins/font.js'][306]++; + domUtils.remove(next); + } + _$jscoverage['plugins/font.js'][308]++; + if ((span.nextSibling === next)) { + _$jscoverage['plugins/font.js'][309]++; + break; + } + _$jscoverage['plugins/font.js'][310]++; + next = span.nextSibling; +} + } + _$jscoverage['plugins/font.js'][315]++; + mergeWithParent(span); + _$jscoverage['plugins/font.js'][316]++; + if ((browser.ie && (browser.version > 8))) { + _$jscoverage['plugins/font.js'][318]++; + var parent = domUtils.findParent(span, (function (n) { + _$jscoverage['plugins/font.js'][318]++; + return ((n.tagName == "SPAN") && /background-color/.test(n.style.cssText)); +})); + _$jscoverage['plugins/font.js'][319]++; + if ((parent && (! /background-color/.test(span.style.cssText)))) { + _$jscoverage['plugins/font.js'][320]++; + span.style.backgroundColor = parent.style.backgroundColor; + } + } +})); + _$jscoverage['plugins/font.js'][325]++; + rng.moveToBookmark(bk); + _$jscoverage['plugins/font.js'][326]++; + mergeChild(rng, cmdName, value); +} + _$jscoverage['plugins/font.js'][329]++; + me.addInputRule((function (root) { + _$jscoverage['plugins/font.js'][330]++; + utils.each(root.getNodesByTagName("u s del font strike"), (function (node) { + _$jscoverage['plugins/font.js'][331]++; + if ((node.tagName == "font")) { + _$jscoverage['plugins/font.js'][332]++; + var cssStyle = []; + _$jscoverage['plugins/font.js'][333]++; + for (var p in node.attrs) { + _$jscoverage['plugins/font.js'][334]++; + switch (p) { + case "size": + _$jscoverage['plugins/font.js'][336]++; + cssStyle.push(("font-size:" + node.attrs[p] + "px")); + _$jscoverage['plugins/font.js'][337]++; + break; + case "color": + _$jscoverage['plugins/font.js'][339]++; + cssStyle.push(("color:" + node.attrs[p])); + _$jscoverage['plugins/font.js'][340]++; + break; + case "face": + _$jscoverage['plugins/font.js'][342]++; + cssStyle.push(("font-family:" + node.attrs[p])); + _$jscoverage['plugins/font.js'][343]++; + break; + case "style": + _$jscoverage['plugins/font.js'][345]++; + cssStyle.push(node.attrs[p]); + } +} + _$jscoverage['plugins/font.js'][348]++; + node.attrs = {"style": cssStyle.join(";")}; + } + else { + _$jscoverage['plugins/font.js'][352]++; + var val = ((node.tagName == "u")? "underline": "line-through"); + _$jscoverage['plugins/font.js'][353]++; + node.attrs = {"style": ((node.getAttr("style") || "") + "text-decoration:" + val + ";")}; + } + _$jscoverage['plugins/font.js'][357]++; + node.tagName = "span"; +})); +})); + _$jscoverage['plugins/font.js'][409]++; + for (var p in fonts) { + _$jscoverage['plugins/font.js'][410]++; + (function (cmd, style) { + _$jscoverage['plugins/font.js'][411]++; + UE.commands[cmd] = {execCommand: (function (cmdName, value) { + _$jscoverage['plugins/font.js'][413]++; + value = (value || (this.queryCommandState(cmdName)? "none": ((cmdName == "underline")? "underline": ((cmdName == "fontborder")? "1px solid #000": "line-through")))); + _$jscoverage['plugins/font.js'][416]++; + var me = this, range = this.selection.getRange(), text; + _$jscoverage['plugins/font.js'][420]++; + if ((value == "default")) { + _$jscoverage['plugins/font.js'][422]++; + if (range.collapsed) { + _$jscoverage['plugins/font.js'][423]++; + text = me.document.createTextNode("font"); + _$jscoverage['plugins/font.js'][424]++; + range.insertNode(text).select(); + } + _$jscoverage['plugins/font.js'][427]++; + me.execCommand("removeFormat", "span,a", style); + _$jscoverage['plugins/font.js'][428]++; + if (text) { + _$jscoverage['plugins/font.js'][429]++; + range.setStartBefore(text).collapse(true); + _$jscoverage['plugins/font.js'][430]++; + domUtils.remove(text); + } + _$jscoverage['plugins/font.js'][432]++; + mergesibling(range, cmdName, value); + _$jscoverage['plugins/font.js'][433]++; + range.select(); + } + else { + _$jscoverage['plugins/font.js'][435]++; + if ((! range.collapsed)) { + _$jscoverage['plugins/font.js'][436]++; + if ((needCmd[cmd] && me.queryCommandValue(cmd))) { + _$jscoverage['plugins/font.js'][437]++; + me.execCommand("removeFormat", "span,a", style); + } + _$jscoverage['plugins/font.js'][439]++; + range = me.selection.getRange(); + _$jscoverage['plugins/font.js'][441]++; + range.applyInlineStyle("span", {"style": (style + ":" + value)}); + _$jscoverage['plugins/font.js'][442]++; + mergesibling(range, cmdName, value); + _$jscoverage['plugins/font.js'][443]++; + range.select(); + } + else { + _$jscoverage['plugins/font.js'][446]++; + var span = domUtils.findParentByTagName(range.startContainer, "span", true); + _$jscoverage['plugins/font.js'][447]++; + text = me.document.createTextNode("font"); + _$jscoverage['plugins/font.js'][448]++; + if ((span && (! span.children.length) && (! span[(browser.ie? "innerText": "textContent")].replace(fillCharReg, "").length))) { + _$jscoverage['plugins/font.js'][450]++; + range.insertNode(text); + _$jscoverage['plugins/font.js'][451]++; + if (needCmd[cmd]) { + _$jscoverage['plugins/font.js'][452]++; + range.selectNode(text).select(); + _$jscoverage['plugins/font.js'][453]++; + me.execCommand("removeFormat", "span,a", style, null); + _$jscoverage['plugins/font.js'][455]++; + span = domUtils.findParentByTagName(text, "span", true); + _$jscoverage['plugins/font.js'][456]++; + range.setStartBefore(text); + } + _$jscoverage['plugins/font.js'][459]++; + (span && (span.style.cssText += (";" + style + ":" + value))); + _$jscoverage['plugins/font.js'][460]++; + range.collapse(true).select(); + } + else { + _$jscoverage['plugins/font.js'][464]++; + range.insertNode(text); + _$jscoverage['plugins/font.js'][465]++; + range.selectNode(text).select(); + _$jscoverage['plugins/font.js'][466]++; + span = range.document.createElement("span"); + _$jscoverage['plugins/font.js'][468]++; + if (needCmd[cmd]) { + _$jscoverage['plugins/font.js'][470]++; + if (domUtils.findParentByTagName(text, "a", true)) { + _$jscoverage['plugins/font.js'][471]++; + range.setStartBefore(text).setCursor(); + _$jscoverage['plugins/font.js'][472]++; + domUtils.remove(text); + _$jscoverage['plugins/font.js'][473]++; + return; + } + _$jscoverage['plugins/font.js'][475]++; + me.execCommand("removeFormat", "span,a", style); + } + _$jscoverage['plugins/font.js'][478]++; + span.style.cssText = (style + ":" + value); + _$jscoverage['plugins/font.js'][481]++; + text.parentNode.insertBefore(span, text); + _$jscoverage['plugins/font.js'][483]++; + if (((! browser.ie) || (browser.ie && (browser.version == 9)))) { + _$jscoverage['plugins/font.js'][484]++; + var spanParent = span.parentNode; + _$jscoverage['plugins/font.js'][485]++; + while ((! domUtils.isBlockElm(spanParent))) { + _$jscoverage['plugins/font.js'][486]++; + if ((spanParent.tagName == "SPAN")) { + _$jscoverage['plugins/font.js'][488]++; + span.style.cssText = (spanParent.style.cssText + ";" + span.style.cssText); + } + _$jscoverage['plugins/font.js'][490]++; + spanParent = spanParent.parentNode; +} + } + _$jscoverage['plugins/font.js'][495]++; + if (opera) { + _$jscoverage['plugins/font.js'][496]++; + setTimeout((function () { + _$jscoverage['plugins/font.js'][497]++; + range.setStart(span, 0).collapse(true); + _$jscoverage['plugins/font.js'][498]++; + mergesibling(range, cmdName, value); + _$jscoverage['plugins/font.js'][499]++; + range.select(); +})); + } + else { + _$jscoverage['plugins/font.js'][502]++; + range.setStart(span, 0).collapse(true); + _$jscoverage['plugins/font.js'][503]++; + mergesibling(range, cmdName, value); + _$jscoverage['plugins/font.js'][504]++; + range.select(); + } + } + _$jscoverage['plugins/font.js'][510]++; + domUtils.remove(text); + } + } + _$jscoverage['plugins/font.js'][515]++; + return true; +}), queryCommandValue: (function (cmdName) { + _$jscoverage['plugins/font.js'][518]++; + var startNode = this.selection.getStart(); + _$jscoverage['plugins/font.js'][521]++; + if (((cmdName == "underline") || (cmdName == "strikethrough"))) { + _$jscoverage['plugins/font.js'][522]++; + var tmpNode = startNode, value; + _$jscoverage['plugins/font.js'][523]++; + while ((tmpNode && (! domUtils.isBlockElm(tmpNode)) && (! domUtils.isBody(tmpNode)))) { + _$jscoverage['plugins/font.js'][524]++; + if ((tmpNode.nodeType == 1)) { + _$jscoverage['plugins/font.js'][525]++; + value = domUtils.getComputedStyle(tmpNode, style); + _$jscoverage['plugins/font.js'][527]++; + if ((value != "none")) { + _$jscoverage['plugins/font.js'][528]++; + return value; + } + } + _$jscoverage['plugins/font.js'][532]++; + tmpNode = tmpNode.parentNode; +} + _$jscoverage['plugins/font.js'][534]++; + return "none"; + } + _$jscoverage['plugins/font.js'][536]++; + if ((cmdName == "fontborder")) { + _$jscoverage['plugins/font.js'][537]++; + var tmp = startNode, val; + _$jscoverage['plugins/font.js'][538]++; + while ((tmp && dtd.$inline[tmp.tagName])) { + _$jscoverage['plugins/font.js'][539]++; + if ((val = domUtils.getComputedStyle(tmp, "border"))) { + _$jscoverage['plugins/font.js'][540]++; + if ((/1px/.test(val) && /solid/.test(val))) { + _$jscoverage['plugins/font.js'][541]++; + return val; + } + } + _$jscoverage['plugins/font.js'][544]++; + tmp = tmp.parentNode; +} + _$jscoverage['plugins/font.js'][546]++; + return ""; + } + _$jscoverage['plugins/font.js'][549]++; + if ((cmdName == "FontSize")) { + _$jscoverage['plugins/font.js'][550]++; + var styleVal = domUtils.getComputedStyle(startNode, style), tmp = /^([\d\.]+)(\w+)$/.exec(styleVal); + _$jscoverage['plugins/font.js'][553]++; + if (tmp) { + _$jscoverage['plugins/font.js'][555]++; + return (Math.floor(tmp[1]) + tmp[2]); + } + _$jscoverage['plugins/font.js'][559]++; + return styleVal; + } + _$jscoverage['plugins/font.js'][563]++; + return domUtils.getComputedStyle(startNode, style); +}), queryCommandState: (function (cmdName) { + _$jscoverage['plugins/font.js'][566]++; + if ((! needCmd[cmdName])) { + _$jscoverage['plugins/font.js'][567]++; + return 0; + } + _$jscoverage['plugins/font.js'][568]++; + var val = this.queryCommandValue(cmdName); + _$jscoverage['plugins/font.js'][569]++; + if ((cmdName == "fontborder")) { + _$jscoverage['plugins/font.js'][570]++; + return (/1px/.test(val) && /solid/.test(val)); + } + else { + _$jscoverage['plugins/font.js'][572]++; + return (val == ((cmdName == "underline")? "underline": "line-through")); + } +})}; +})(p, fonts[p]); +} +}); diff --git a/_test/coverage/plugins/formatmatch.js b/_test/coverage/plugins/formatmatch.js new file mode 100644 index 000000000..0dbe004f9 --- /dev/null +++ b/_test/coverage/plugins/formatmatch.js @@ -0,0 +1,237 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/formatmatch.js']) { + _$jscoverage['plugins/formatmatch.js'] = []; + _$jscoverage['plugins/formatmatch.js'][39] = 0; + _$jscoverage['plugins/formatmatch.js'][41] = 0; + _$jscoverage['plugins/formatmatch.js'][45] = 0; + _$jscoverage['plugins/formatmatch.js'][46] = 0; + _$jscoverage['plugins/formatmatch.js'][47] = 0; + _$jscoverage['plugins/formatmatch.js'][50] = 0; + _$jscoverage['plugins/formatmatch.js'][52] = 0; + _$jscoverage['plugins/formatmatch.js'][53] = 0; + _$jscoverage['plugins/formatmatch.js'][56] = 0; + _$jscoverage['plugins/formatmatch.js'][58] = 0; + _$jscoverage['plugins/formatmatch.js'][59] = 0; + _$jscoverage['plugins/formatmatch.js'][61] = 0; + _$jscoverage['plugins/formatmatch.js'][65] = 0; + _$jscoverage['plugins/formatmatch.js'][67] = 0; + _$jscoverage['plugins/formatmatch.js'][69] = 0; + _$jscoverage['plugins/formatmatch.js'][72] = 0; + _$jscoverage['plugins/formatmatch.js'][74] = 0; + _$jscoverage['plugins/formatmatch.js'][76] = 0; + _$jscoverage['plugins/formatmatch.js'][77] = 0; + _$jscoverage['plugins/formatmatch.js'][78] = 0; + _$jscoverage['plugins/formatmatch.js'][79] = 0; + _$jscoverage['plugins/formatmatch.js'][80] = 0; + _$jscoverage['plugins/formatmatch.js'][84] = 0; + _$jscoverage['plugins/formatmatch.js'][87] = 0; + _$jscoverage['plugins/formatmatch.js'][88] = 0; + _$jscoverage['plugins/formatmatch.js'][89] = 0; + _$jscoverage['plugins/formatmatch.js'][90] = 0; + _$jscoverage['plugins/formatmatch.js'][91] = 0; + _$jscoverage['plugins/formatmatch.js'][93] = 0; + _$jscoverage['plugins/formatmatch.js'][94] = 0; + _$jscoverage['plugins/formatmatch.js'][95] = 0; + _$jscoverage['plugins/formatmatch.js'][97] = 0; + _$jscoverage['plugins/formatmatch.js'][98] = 0; + _$jscoverage['plugins/formatmatch.js'][101] = 0; + _$jscoverage['plugins/formatmatch.js'][102] = 0; + _$jscoverage['plugins/formatmatch.js'][110] = 0; + _$jscoverage['plugins/formatmatch.js'][111] = 0; + _$jscoverage['plugins/formatmatch.js'][112] = 0; + _$jscoverage['plugins/formatmatch.js'][115] = 0; + _$jscoverage['plugins/formatmatch.js'][118] = 0; + _$jscoverage['plugins/formatmatch.js'][119] = 0; + _$jscoverage['plugins/formatmatch.js'][120] = 0; + _$jscoverage['plugins/formatmatch.js'][121] = 0; + _$jscoverage['plugins/formatmatch.js'][122] = 0; + _$jscoverage['plugins/formatmatch.js'][127] = 0; + _$jscoverage['plugins/formatmatch.js'][128] = 0; + _$jscoverage['plugins/formatmatch.js'][129] = 0; + _$jscoverage['plugins/formatmatch.js'][130] = 0; + _$jscoverage['plugins/formatmatch.js'][131] = 0; + _$jscoverage['plugins/formatmatch.js'][132] = 0; + _$jscoverage['plugins/formatmatch.js'][133] = 0; + _$jscoverage['plugins/formatmatch.js'][136] = 0; + _$jscoverage['plugins/formatmatch.js'][137] = 0; + _$jscoverage['plugins/formatmatch.js'][138] = 0; + _$jscoverage['plugins/formatmatch.js'][139] = 0; + _$jscoverage['plugins/formatmatch.js'][145] = 0; + _$jscoverage['plugins/formatmatch.js'][146] = 0; + _$jscoverage['plugins/formatmatch.js'][151] = 0; +} +_$jscoverage['plugins/formatmatch.js'].source = ["///import core","///import plugins\\removeformat.js","///commands 格式刷","///commandsName FormatMatch","///commandsTitle 格式刷","/**"," * 格式刷,只格式inline的"," * @file"," * @since 1.2.6.1"," */","","/**"," * 格式刷,对inline类型的文本内容执行格式刷操作"," * @command formatmatch"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @example"," * ```javascript"," * //editor是编辑器实例"," * //获取格式刷"," * editor.execCommand( 'formatmatch' );"," * ```"," */","","/**"," * 获取当前的格式状态"," * @command formatmatch"," * @method queryCommandState"," * @param { String } cmd 命令字符串"," * @return { int } 如果当前的格式刷处于可用状态, 则返回1, 否则返回0"," * @example"," * ```javascript"," * //editor是编辑器实例"," * //获取当前选中的文本内容的上标状态"," * //output: 1 或者 0"," * console.log( editor.queryCommandState( 'formatmatch' ) );"," * ```"," */","UE.plugins['formatmatch'] = function(){",""," var me = this,"," list = [],img,"," flag = 0;",""," me.addListener('reset',function(){"," list = [];"," flag = 0;"," });",""," function addList(type,evt){"," "," if(browser.webkit){"," var target = evt.target.tagName == 'IMG' ? evt.target : null;"," }",""," function addFormat(range){",""," if(text){"," range.selectNode(text);"," }"," return range.applyInlineStyle(list[list.length-1].tagName,null,list);",""," }",""," me.undoManger && me.undoManger.save();",""," var range = me.selection.getRange(),"," imgT = target || range.getClosedNode();"," if(img && imgT && imgT.tagName == 'IMG'){"," //trace:964",""," imgT.style.cssText += ';float:' + (img.style.cssFloat || img.style.styleFloat ||'none') + ';display:' + (img.style.display||'inline');",""," img = null;"," }else{"," if(!img){"," var collapsed = range.collapsed;"," if(collapsed){"," var text = me.document.createTextNode('match');"," range.insertNode(text).select();","",""," }"," me.__hasEnterExecCommand = true;"," //不能把block上的属性干掉"," //trace:1553"," var removeFormatAttributes = me.options.removeFormatAttributes;"," me.options.removeFormatAttributes = '';"," me.execCommand('removeformat');"," me.options.removeFormatAttributes = removeFormatAttributes;"," me.__hasEnterExecCommand = false;"," //trace:969"," range = me.selection.getRange();"," if(list.length){"," addFormat(range);"," }"," if(text){"," range.setStartBefore(text).collapse(true);",""," }"," range.select();"," text && domUtils.remove(text);"," }",""," }","","","",""," me.undoManger && me.undoManger.save();"," me.removeListener('mouseup',addList);"," flag = 0;"," }",""," me.commands['formatmatch'] = {"," execCommand : function( cmdName ) {"," "," if(flag){"," flag = 0;"," list = [];"," me.removeListener('mouseup',addList);"," return;"," }","",""," "," var range = me.selection.getRange();"," img = range.getClosedNode();"," if(!img || img.tagName != 'IMG'){"," range.collapse(true).shrinkBoundary();"," var start = range.startContainer;"," list = domUtils.findParents(start,true,function(node){"," return !domUtils.isBlockElm(node) && node.nodeType == 1;"," });"," //a不能加入格式刷, 并且克隆节点"," for(var i=0,ci;ci=list[i];i++){"," if(ci.tagName == 'A'){"," list.splice(i,1);"," break;"," }"," }",""," }",""," me.addListener('mouseup',addList);"," flag = 1;","",""," },"," queryCommandState : function() {"," return flag;"," },"," notNeedUndo : 1"," };","};",""]; +_$jscoverage['plugins/formatmatch.js'][39]++; +UE.plugins.formatmatch = (function () { + _$jscoverage['plugins/formatmatch.js'][41]++; + var me = this, list = [], img, flag = 0; + _$jscoverage['plugins/formatmatch.js'][45]++; + me.addListener("reset", (function () { + _$jscoverage['plugins/formatmatch.js'][46]++; + list = []; + _$jscoverage['plugins/formatmatch.js'][47]++; + flag = 0; +})); + _$jscoverage['plugins/formatmatch.js'][50]++; + function addList(type, evt) { + _$jscoverage['plugins/formatmatch.js'][52]++; + if (browser.webkit) { + _$jscoverage['plugins/formatmatch.js'][53]++; + var target = ((evt.target.tagName == "IMG")? evt.target: null); + } + _$jscoverage['plugins/formatmatch.js'][56]++; + function addFormat(range) { + _$jscoverage['plugins/formatmatch.js'][58]++; + if (text) { + _$jscoverage['plugins/formatmatch.js'][59]++; + range.selectNode(text); + } + _$jscoverage['plugins/formatmatch.js'][61]++; + return range.applyInlineStyle(list[(list.length - 1)].tagName, null, list); +} + _$jscoverage['plugins/formatmatch.js'][65]++; + (me.undoManger && me.undoManger.save()); + _$jscoverage['plugins/formatmatch.js'][67]++; + var range = me.selection.getRange(), imgT = (target || range.getClosedNode()); + _$jscoverage['plugins/formatmatch.js'][69]++; + if ((img && imgT && (imgT.tagName == "IMG"))) { + _$jscoverage['plugins/formatmatch.js'][72]++; + imgT.style.cssText += (";float:" + (img.style.cssFloat || img.style.styleFloat || "none") + ";display:" + (img.style.display || "inline")); + _$jscoverage['plugins/formatmatch.js'][74]++; + img = null; + } + else { + _$jscoverage['plugins/formatmatch.js'][76]++; + if ((! img)) { + _$jscoverage['plugins/formatmatch.js'][77]++; + var collapsed = range.collapsed; + _$jscoverage['plugins/formatmatch.js'][78]++; + if (collapsed) { + _$jscoverage['plugins/formatmatch.js'][79]++; + var text = me.document.createTextNode("match"); + _$jscoverage['plugins/formatmatch.js'][80]++; + range.insertNode(text).select(); + } + _$jscoverage['plugins/formatmatch.js'][84]++; + me.__hasEnterExecCommand = true; + _$jscoverage['plugins/formatmatch.js'][87]++; + var removeFormatAttributes = me.options.removeFormatAttributes; + _$jscoverage['plugins/formatmatch.js'][88]++; + me.options.removeFormatAttributes = ""; + _$jscoverage['plugins/formatmatch.js'][89]++; + me.execCommand("removeformat"); + _$jscoverage['plugins/formatmatch.js'][90]++; + me.options.removeFormatAttributes = removeFormatAttributes; + _$jscoverage['plugins/formatmatch.js'][91]++; + me.__hasEnterExecCommand = false; + _$jscoverage['plugins/formatmatch.js'][93]++; + range = me.selection.getRange(); + _$jscoverage['plugins/formatmatch.js'][94]++; + if (list.length) { + _$jscoverage['plugins/formatmatch.js'][95]++; + addFormat(range); + } + _$jscoverage['plugins/formatmatch.js'][97]++; + if (text) { + _$jscoverage['plugins/formatmatch.js'][98]++; + range.setStartBefore(text).collapse(true); + } + _$jscoverage['plugins/formatmatch.js'][101]++; + range.select(); + _$jscoverage['plugins/formatmatch.js'][102]++; + (text && domUtils.remove(text)); + } + } + _$jscoverage['plugins/formatmatch.js'][110]++; + (me.undoManger && me.undoManger.save()); + _$jscoverage['plugins/formatmatch.js'][111]++; + me.removeListener("mouseup", addList); + _$jscoverage['plugins/formatmatch.js'][112]++; + flag = 0; +} + _$jscoverage['plugins/formatmatch.js'][115]++; + me.commands.formatmatch = {execCommand: (function (cmdName) { + _$jscoverage['plugins/formatmatch.js'][118]++; + if (flag) { + _$jscoverage['plugins/formatmatch.js'][119]++; + flag = 0; + _$jscoverage['plugins/formatmatch.js'][120]++; + list = []; + _$jscoverage['plugins/formatmatch.js'][121]++; + me.removeListener("mouseup", addList); + _$jscoverage['plugins/formatmatch.js'][122]++; + return; + } + _$jscoverage['plugins/formatmatch.js'][127]++; + var range = me.selection.getRange(); + _$jscoverage['plugins/formatmatch.js'][128]++; + img = range.getClosedNode(); + _$jscoverage['plugins/formatmatch.js'][129]++; + if (((! img) || (img.tagName != "IMG"))) { + _$jscoverage['plugins/formatmatch.js'][130]++; + range.collapse(true).shrinkBoundary(); + _$jscoverage['plugins/formatmatch.js'][131]++; + var start = range.startContainer; + _$jscoverage['plugins/formatmatch.js'][132]++; + list = domUtils.findParents(start, true, (function (node) { + _$jscoverage['plugins/formatmatch.js'][133]++; + return ((! domUtils.isBlockElm(node)) && (node.nodeType == 1)); +})); + _$jscoverage['plugins/formatmatch.js'][136]++; + for (var i = 0, ci; (ci = list[i]); (i++)) { + _$jscoverage['plugins/formatmatch.js'][137]++; + if ((ci.tagName == "A")) { + _$jscoverage['plugins/formatmatch.js'][138]++; + list.splice(i, 1); + _$jscoverage['plugins/formatmatch.js'][139]++; + break; + } +} + } + _$jscoverage['plugins/formatmatch.js'][145]++; + me.addListener("mouseup", addList); + _$jscoverage['plugins/formatmatch.js'][146]++; + flag = 1; +}), queryCommandState: (function () { + _$jscoverage['plugins/formatmatch.js'][151]++; + return flag; +}), notNeedUndo: 1}; +}); diff --git a/_test/coverage/plugins/horizontal.js b/_test/coverage/plugins/horizontal.js new file mode 100644 index 000000000..f619da64d --- /dev/null +++ b/_test/coverage/plugins/horizontal.js @@ -0,0 +1,149 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/horizontal.js']) { + _$jscoverage['plugins/horizontal.js'] = []; + _$jscoverage['plugins/horizontal.js'][28] = 0; + _$jscoverage['plugins/horizontal.js'][29] = 0; + _$jscoverage['plugins/horizontal.js'][30] = 0; + _$jscoverage['plugins/horizontal.js'][32] = 0; + _$jscoverage['plugins/horizontal.js'][33] = 0; + _$jscoverage['plugins/horizontal.js'][34] = 0; + _$jscoverage['plugins/horizontal.js'][35] = 0; + _$jscoverage['plugins/horizontal.js'][37] = 0; + _$jscoverage['plugins/horizontal.js'][39] = 0; + _$jscoverage['plugins/horizontal.js'][40] = 0; + _$jscoverage['plugins/horizontal.js'][41] = 0; + _$jscoverage['plugins/horizontal.js'][42] = 0; + _$jscoverage['plugins/horizontal.js'][43] = 0; + _$jscoverage['plugins/horizontal.js'][44] = 0; + _$jscoverage['plugins/horizontal.js'][45] = 0; + _$jscoverage['plugins/horizontal.js'][48] = 0; + _$jscoverage['plugins/horizontal.js'][49] = 0; + _$jscoverage['plugins/horizontal.js'][50] = 0; + _$jscoverage['plugins/horizontal.js'][56] = 0; + _$jscoverage['plugins/horizontal.js'][62] = 0; + _$jscoverage['plugins/horizontal.js'][98] = 0; + _$jscoverage['plugins/horizontal.js'][99] = 0; + _$jscoverage['plugins/horizontal.js'][100] = 0; + _$jscoverage['plugins/horizontal.js'][101] = 0; + _$jscoverage['plugins/horizontal.js'][102] = 0; + _$jscoverage['plugins/horizontal.js'][103] = 0; + _$jscoverage['plugins/horizontal.js'][104] = 0; + _$jscoverage['plugins/horizontal.js'][105] = 0; + _$jscoverage['plugins/horizontal.js'][106] = 0; + _$jscoverage['plugins/horizontal.js'][107] = 0; + _$jscoverage['plugins/horizontal.js'][108] = 0; +} +_$jscoverage['plugins/horizontal.js'].source = ["/**"," * 插入分割线插件"," * @file"," * @since 1.2.6.1"," */","","/**"," * 插入分割线,分割线是hr标签"," * @command horizontal"," * @method execCommand"," * @param { String } cmdName 命令字符串"," * @example"," * ```javascript"," * editor.execCommand( 'horizontal' );"," * ```"," */","","/**"," * 查询当前是否允许插入分割线"," * @command horizontal"," * @method queryCommandState"," * @return { Int } 如果选区在表格里面,返回0,否则返回1"," * @example"," * ```javascript"," * editor.queryCommandState( 'horizontal' );"," * ```"," */","UE.plugins['horizontal'] = function(){"," var me = this;"," me.commands['horizontal'] = {"," execCommand : function( cmdName ) {"," var me = this;"," if(me.queryCommandState(cmdName)!==-1){"," me.execCommand('insertHtml','<hr>');"," var range = me.selection.getRange(),"," start = range.startContainer;"," if(start.nodeType == 1 && !start.childNodes[range.startOffset] ){",""," var tmp;"," if(tmp = start.childNodes[range.startOffset - 1]){"," if(tmp.nodeType == 1 && tmp.tagName == 'HR'){"," if(me.options.enterTag == 'p'){"," tmp = me.document.createElement('p');"," range.insertNode(tmp);"," range.setStart(tmp,0).setCursor();",""," }else{"," tmp = me.document.createElement('br');"," range.insertNode(tmp);"," range.setStartBefore(tmp).setCursor();"," }"," }"," }",""," }"," return true;"," }",""," },"," //边界在table里不能加分隔线"," queryCommandState : function() {"," return domUtils.filterNodeList(this.selection.getStartElementPath(),'table') ? -1 : 0;"," }"," };","// me.addListener('delkeyup',function(){","// var rng = this.selection.getRange();","// if(browser.ie && browser.version > 8){","// rng.txtToElmBoundary(true);","// if(domUtils.isStartInblock(rng)){","// var tmpNode = rng.startContainer;","// var pre = tmpNode.previousSibling;","// if(pre && domUtils.isTagNode(pre,'hr')){","// domUtils.remove(pre);","// rng.select();","// return;","// }","// }","// }","// if(domUtils.isBody(rng.startContainer)){","// var hr = rng.startContainer.childNodes[rng.startOffset -1];","// if(hr && hr.nodeName == 'HR'){","// var next = hr.nextSibling;","// if(next){","// rng.setStart(next,0)","// }else if(hr.previousSibling){","// rng.setStartAtLast(hr.previousSibling)","// }else{","// var p = this.document.createElement('p');","// hr.parentNode.insertBefore(p,hr);","// domUtils.fillNode(this.document,p);","// rng.setStart(p,0);","// }","// domUtils.remove(hr);","// rng.setCursor(false,true);","// }","// }","// })"," me.addListener('delkeydown',function(name,evt){"," var rng = this.selection.getRange();"," rng.txtToElmBoundary(true);"," if(domUtils.isStartInblock(rng)){"," var tmpNode = rng.startContainer;"," var pre = tmpNode.previousSibling;"," if(pre && domUtils.isTagNode(pre,'hr')){"," domUtils.remove(pre);"," rng.select();"," domUtils.preventDefault(evt);"," return true;",""," }"," }",""," })","};",""]; +_$jscoverage['plugins/horizontal.js'][28]++; +UE.plugins.horizontal = (function () { + _$jscoverage['plugins/horizontal.js'][29]++; + var me = this; + _$jscoverage['plugins/horizontal.js'][30]++; + me.commands.horizontal = {execCommand: (function (cmdName) { + _$jscoverage['plugins/horizontal.js'][32]++; + var me = this; + _$jscoverage['plugins/horizontal.js'][33]++; + if ((me.queryCommandState(cmdName) !== -1)) { + _$jscoverage['plugins/horizontal.js'][34]++; + me.execCommand("insertHtml", "


"); + _$jscoverage['plugins/horizontal.js'][35]++; + var range = me.selection.getRange(), start = range.startContainer; + _$jscoverage['plugins/horizontal.js'][37]++; + if (((start.nodeType == 1) && (! start.childNodes[range.startOffset]))) { + _$jscoverage['plugins/horizontal.js'][39]++; + var tmp; + _$jscoverage['plugins/horizontal.js'][40]++; + if ((tmp = start.childNodes[(range.startOffset - 1)])) { + _$jscoverage['plugins/horizontal.js'][41]++; + if (((tmp.nodeType == 1) && (tmp.tagName == "HR"))) { + _$jscoverage['plugins/horizontal.js'][42]++; + if ((me.options.enterTag == "p")) { + _$jscoverage['plugins/horizontal.js'][43]++; + tmp = me.document.createElement("p"); + _$jscoverage['plugins/horizontal.js'][44]++; + range.insertNode(tmp); + _$jscoverage['plugins/horizontal.js'][45]++; + range.setStart(tmp, 0).setCursor(); + } + else { + _$jscoverage['plugins/horizontal.js'][48]++; + tmp = me.document.createElement("br"); + _$jscoverage['plugins/horizontal.js'][49]++; + range.insertNode(tmp); + _$jscoverage['plugins/horizontal.js'][50]++; + range.setStartBefore(tmp).setCursor(); + } + } + } + } + _$jscoverage['plugins/horizontal.js'][56]++; + return true; + } +}), queryCommandState: (function () { + _$jscoverage['plugins/horizontal.js'][62]++; + return (domUtils.filterNodeList(this.selection.getStartElementPath(), "table")? -1: 0); +})}; + _$jscoverage['plugins/horizontal.js'][98]++; + me.addListener("delkeydown", (function (name, evt) { + _$jscoverage['plugins/horizontal.js'][99]++; + var rng = this.selection.getRange(); + _$jscoverage['plugins/horizontal.js'][100]++; + rng.txtToElmBoundary(true); + _$jscoverage['plugins/horizontal.js'][101]++; + if (domUtils.isStartInblock(rng)) { + _$jscoverage['plugins/horizontal.js'][102]++; + var tmpNode = rng.startContainer; + _$jscoverage['plugins/horizontal.js'][103]++; + var pre = tmpNode.previousSibling; + _$jscoverage['plugins/horizontal.js'][104]++; + if ((pre && domUtils.isTagNode(pre, "hr"))) { + _$jscoverage['plugins/horizontal.js'][105]++; + domUtils.remove(pre); + _$jscoverage['plugins/horizontal.js'][106]++; + rng.select(); + _$jscoverage['plugins/horizontal.js'][107]++; + domUtils.preventDefault(evt); + _$jscoverage['plugins/horizontal.js'][108]++; + return true; + } + } +})); +}); diff --git a/_test/coverage/plugins/iframe.js b/_test/coverage/plugins/iframe.js new file mode 100644 index 000000000..33406b245 --- /dev/null +++ b/_test/coverage/plugins/iframe.js @@ -0,0 +1,64 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/iframe.js']) { + _$jscoverage['plugins/iframe.js'] = []; + _$jscoverage['plugins/iframe.js'][8] = 0; + _$jscoverage['plugins/iframe.js'][9] = 0; + _$jscoverage['plugins/iframe.js'][10] = 0; + _$jscoverage['plugins/iframe.js'][11] = 0; + _$jscoverage['plugins/iframe.js'][14] = 0; + _$jscoverage['plugins/iframe.js'][15] = 0; +} +_$jscoverage['plugins/iframe.js'].source = ["///import core","///import plugins\\inserthtml.js","///commands 插入框架","///commandsName InsertFrame","///commandsTitle 插入Iframe","///commandsDialog dialogs\\insertframe","","UE.plugins['insertframe'] = function() {"," var me =this;"," function deleteIframe(){"," me._iframe && delete me._iframe;"," }",""," me.addListener(\"selectionchange\",function(){"," deleteIframe();"," });","","};",""]; +_$jscoverage['plugins/iframe.js'][8]++; +UE.plugins.insertframe = (function () { + _$jscoverage['plugins/iframe.js'][9]++; + var me = this; + _$jscoverage['plugins/iframe.js'][10]++; + function deleteIframe() { + _$jscoverage['plugins/iframe.js'][11]++; + (me._iframe && (delete me._iframe)); +} + _$jscoverage['plugins/iframe.js'][14]++; + me.addListener("selectionchange", (function () { + _$jscoverage['plugins/iframe.js'][15]++; + deleteIframe(); +})); +}); diff --git a/_test/coverage/plugins/image.js b/_test/coverage/plugins/image.js new file mode 100644 index 000000000..5c6b26110 --- /dev/null +++ b/_test/coverage/plugins/image.js @@ -0,0 +1,354 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/image.js']) { + _$jscoverage['plugins/image.js'] = []; + _$jscoverage['plugins/image.js'][41] = 0; + _$jscoverage['plugins/image.js'][43] = 0; + _$jscoverage['plugins/image.js'][45] = 0; + _$jscoverage['plugins/image.js'][46] = 0; + _$jscoverage['plugins/image.js'][47] = 0; + _$jscoverage['plugins/image.js'][48] = 0; + _$jscoverage['plugins/image.js'][52] = 0; + _$jscoverage['plugins/image.js'][53] = 0; + _$jscoverage['plugins/image.js'][54] = 0; + _$jscoverage['plugins/image.js'][56] = 0; + _$jscoverage['plugins/image.js'][57] = 0; + _$jscoverage['plugins/image.js'][58] = 0; + _$jscoverage['plugins/image.js'][59] = 0; + _$jscoverage['plugins/image.js'][61] = 0; + _$jscoverage['plugins/image.js'][62] = 0; + _$jscoverage['plugins/image.js'][63] = 0; + _$jscoverage['plugins/image.js'][64] = 0; + _$jscoverage['plugins/image.js'][65] = 0; + _$jscoverage['plugins/image.js'][66] = 0; + _$jscoverage['plugins/image.js'][68] = 0; + _$jscoverage['plugins/image.js'][69] = 0; + _$jscoverage['plugins/image.js'][71] = 0; + _$jscoverage['plugins/image.js'][77] = 0; + _$jscoverage['plugins/image.js'][79] = 0; + _$jscoverage['plugins/image.js'][80] = 0; + _$jscoverage['plugins/image.js'][81] = 0; + _$jscoverage['plugins/image.js'][84] = 0; + _$jscoverage['plugins/image.js'][86] = 0; + _$jscoverage['plugins/image.js'][87] = 0; + _$jscoverage['plugins/image.js'][88] = 0; + _$jscoverage['plugins/image.js'][89] = 0; + _$jscoverage['plugins/image.js'][90] = 0; + _$jscoverage['plugins/image.js'][91] = 0; + _$jscoverage['plugins/image.js'][92] = 0; + _$jscoverage['plugins/image.js'][95] = 0; + _$jscoverage['plugins/image.js'][96] = 0; + _$jscoverage['plugins/image.js'][98] = 0; + _$jscoverage['plugins/image.js'][99] = 0; + _$jscoverage['plugins/image.js'][100] = 0; + _$jscoverage['plugins/image.js'][101] = 0; + _$jscoverage['plugins/image.js'][103] = 0; + _$jscoverage['plugins/image.js'][105] = 0; + _$jscoverage['plugins/image.js'][106] = 0; + _$jscoverage['plugins/image.js'][107] = 0; + _$jscoverage['plugins/image.js'][108] = 0; + _$jscoverage['plugins/image.js'][110] = 0; + _$jscoverage['plugins/image.js'][111] = 0; + _$jscoverage['plugins/image.js'][112] = 0; + _$jscoverage['plugins/image.js'][117] = 0; + _$jscoverage['plugins/image.js'][124] = 0; + _$jscoverage['plugins/image.js'][126] = 0; + _$jscoverage['plugins/image.js'][127] = 0; + _$jscoverage['plugins/image.js'][129] = 0; + _$jscoverage['plugins/image.js'][130] = 0; + _$jscoverage['plugins/image.js'][131] = 0; + _$jscoverage['plugins/image.js'][132] = 0; + _$jscoverage['plugins/image.js'][133] = 0; + _$jscoverage['plugins/image.js'][135] = 0; + _$jscoverage['plugins/image.js'][141] = 0; + _$jscoverage['plugins/image.js'][146] = 0; + _$jscoverage['plugins/image.js'][149] = 0; + _$jscoverage['plugins/image.js'][151] = 0; + _$jscoverage['plugins/image.js'][152] = 0; + _$jscoverage['plugins/image.js'][153] = 0; + _$jscoverage['plugins/image.js'][155] = 0; + _$jscoverage['plugins/image.js'][173] = 0; + _$jscoverage['plugins/image.js'][176] = 0; + _$jscoverage['plugins/image.js'][177] = 0; + _$jscoverage['plugins/image.js'][178] = 0; + _$jscoverage['plugins/image.js'][180] = 0; + _$jscoverage['plugins/image.js'][183] = 0; + _$jscoverage['plugins/image.js'][184] = 0; + _$jscoverage['plugins/image.js'][185] = 0; + _$jscoverage['plugins/image.js'][186] = 0; + _$jscoverage['plugins/image.js'][190] = 0; + _$jscoverage['plugins/image.js'][191] = 0; + _$jscoverage['plugins/image.js'][192] = 0; + _$jscoverage['plugins/image.js'][193] = 0; + _$jscoverage['plugins/image.js'][194] = 0; + _$jscoverage['plugins/image.js'][198] = 0; + _$jscoverage['plugins/image.js'][199] = 0; + _$jscoverage['plugins/image.js'][200] = 0; + _$jscoverage['plugins/image.js'][201] = 0; + _$jscoverage['plugins/image.js'][210] = 0; + _$jscoverage['plugins/image.js'][211] = 0; + _$jscoverage['plugins/image.js'][213] = 0; + _$jscoverage['plugins/image.js'][216] = 0; + _$jscoverage['plugins/image.js'][217] = 0; + _$jscoverage['plugins/image.js'][223] = 0; + _$jscoverage['plugins/image.js'][227] = 0; +} +_$jscoverage['plugins/image.js'].source = ["/**"," * 图片插入、排版插件"," * @file"," * @since 1.2.6.1"," */","","/**"," * 对图片居左居中居右排版"," * @command imagefloat"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @param { String } align 对齐方式,可传left、right、none、center"," * @example"," * ```javascript"," * editor.execCommand( 'imagefloat', 'center' );"," * ```"," */","","/**"," * 如果选区所在位置是图片区域"," * @command imagefloat"," * @method queryCommandValue"," * @param { String } cmd 命令字符串"," * @return { String } 返回图片对齐方式"," * @example"," * ```javascript"," * editor.queryCommandValue( 'imagefloat' );"," * ```"," */","/**"," * 返回当前选区位置是否是图片"," * @command imagefloat"," * @method queryCommandState"," * @param { String } cmd 命令字符串"," * @return { int } 0为是,-1为不是"," * @example"," * ```javascript"," * editor.queryCommandState( 'imagefloat' );"," * ```"," */","UE.commands['imagefloat'] = {"," execCommand:function (cmd, align) {"," var me = this,"," range = me.selection.getRange();"," if (!range.collapsed) {"," var img = range.getClosedNode();"," if (img && img.tagName == 'IMG') {"," switch (align) {"," case 'left':"," case 'right':"," case 'none':"," var pN = img.parentNode, tmpNode, pre, next;"," while (dtd.$inline[pN.tagName] || pN.tagName == 'A') {"," pN = pN.parentNode;"," }"," tmpNode = pN;"," if (tmpNode.tagName == 'P' && domUtils.getStyle(tmpNode, 'text-align') == 'center') {"," if (!domUtils.isBody(tmpNode) && domUtils.getChildCount(tmpNode, function (node) {"," return !domUtils.isBr(node) && !domUtils.isWhitespace(node);"," }) == 1) {"," pre = tmpNode.previousSibling;"," next = tmpNode.nextSibling;"," if (pre && next && pre.nodeType == 1 && next.nodeType == 1 && pre.tagName == next.tagName && domUtils.isBlockElm(pre)) {"," pre.appendChild(tmpNode.firstChild);"," while (next.firstChild) {"," pre.appendChild(next.firstChild);"," }"," domUtils.remove(tmpNode);"," domUtils.remove(next);"," } else {"," domUtils.setStyle(tmpNode, 'text-align', '');"," }","",""," }",""," range.selectNode(img).select();"," }"," domUtils.setStyle(img, 'float', align == 'none' ? '' : align);"," if(align == 'none'){"," domUtils.removeAttributes(img,'align');"," }",""," break;"," case 'center':"," if (me.queryCommandValue('imagefloat') != 'center') {"," pN = img.parentNode;"," domUtils.setStyle(img, 'float', '');"," domUtils.removeAttributes(img,'align');"," tmpNode = img;"," while (pN && domUtils.getChildCount(pN, function (node) {"," return !domUtils.isBr(node) && !domUtils.isWhitespace(node);"," }) == 1"," && (dtd.$inline[pN.tagName] || pN.tagName == 'A')) {"," tmpNode = pN;"," pN = pN.parentNode;"," }"," range.setStartBefore(tmpNode).setCursor(false);"," pN = me.document.createElement('div');"," pN.appendChild(tmpNode);"," domUtils.setStyle(tmpNode, 'float', '');",""," me.execCommand('insertHtml', '<p id=\"_img_parent_tmp\" style=\"text-align:center\">' + pN.innerHTML + '</p>');",""," tmpNode = me.document.getElementById('_img_parent_tmp');"," tmpNode.removeAttribute('id');"," tmpNode = tmpNode.firstChild;"," range.selectNode(tmpNode).select();"," //去掉后边多余的元素"," next = tmpNode.parentNode.nextSibling;"," if (next && domUtils.isEmptyNode(next)) {"," domUtils.remove(next);"," }",""," }",""," break;"," }",""," }"," }"," },"," queryCommandValue:function () {"," var range = this.selection.getRange(),"," startNode, floatStyle;"," if (range.collapsed) {"," return 'none';"," }"," startNode = range.getClosedNode();"," if (startNode && startNode.nodeType == 1 && startNode.tagName == 'IMG') {"," floatStyle = startNode.getAttribute('align')||domUtils.getComputedStyle(startNode, 'float');"," if (floatStyle == 'none') {"," floatStyle = domUtils.getComputedStyle(startNode.parentNode, 'text-align') == 'center' ? 'center' : floatStyle;"," }"," return {"," left:1,"," right:1,"," center:1"," }[floatStyle] ? floatStyle : 'none';"," }"," return 'none';","",""," },"," queryCommandState:function () {"," var range = this.selection.getRange(),"," startNode;",""," if (range.collapsed) return -1;",""," startNode = range.getClosedNode();"," if (startNode && startNode.nodeType == 1 && startNode.tagName == 'IMG') {"," return 0;"," }"," return -1;"," }","};","/**"," * 向编辑器插入图片"," * @command insertimage"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @param { Object } opt 属性键值对,这些属性都将被复制到当前插入图片"," * @example"," * ```javascript"," * editor.execCommand( 'insertimage', {"," * src:'a/b/c.jpg',"," * width:'100',"," * height:'100'"," * } );"," * ```"," */","UE.commands['insertimage'] = {"," execCommand:function (cmd, opt) {",""," opt = utils.isArray(opt) ? opt : [opt];"," if (!opt.length) {"," return;"," }"," var me = this,"," range = me.selection.getRange(),"," img = range.getClosedNode();"," if (img && /img/i.test(img.tagName) && img.className != \"edui-faked-video\" && !img.getAttribute(\"word_img\")) {"," var first = opt.shift();"," var floatStyle = first['floatStyle'];"," delete first['floatStyle'];","//// img.style.border = (first.border||0) +\"px solid #000\";","//// img.style.margin = (first.margin||0) +\"px\";","// img.style.cssText += ';margin:' + (first.margin||0) +\"px;\" + 'border:' + (first.border||0) +\"px solid #000\";"," domUtils.setAttributes(img, first);"," me.execCommand('imagefloat', floatStyle);"," if (opt.length > 0) {"," range.setStartAfter(img).setCursor(false, true);"," me.execCommand('insertimage', opt);"," }",""," } else {"," var html = [], str = '', ci;"," ci = opt[0];"," if (opt.length == 1) {"," str = '<img src=\"' + ci.src + '\" ' + (ci._src ? ' _src=\"' + ci._src + '\" ' : '') +"," (ci.width ? 'width=\"' + ci.width + '\" ' : '') +"," (ci.height ? ' height=\"' + ci.height + '\" ' : '') +"," (ci['floatStyle'] == 'left' || ci['floatStyle'] == 'right' ? ' style=\"float:' + ci['floatStyle'] + ';\"' : '') +"," (ci.title && ci.title != \"\" ? ' title=\"' + ci.title + '\"' : '') +"," (ci.border && ci.border != \"0\" ? ' border=\"' + ci.border + '\"' : '') +"," (ci.alt && ci.alt != \"\" ? ' alt=\"' + ci.alt + '\"' : '') +"," (ci.hspace && ci.hspace != \"0\" ? ' hspace = \"' + ci.hspace + '\"' : '') +"," (ci.vspace && ci.vspace != \"0\" ? ' vspace = \"' + ci.vspace + '\"' : '') + '/>';"," if (ci['floatStyle'] == 'center') {"," str = '<p style=\"text-align: center\">' + str + '</p>';"," }"," html.push(str);",""," } else {"," for (var i = 0; ci = opt[i++];) {"," str = '<p ' + (ci['floatStyle'] == 'center' ? 'style=\"text-align: center\" ' : '') + '><img src=\"' + ci.src + '\" ' +"," (ci.width ? 'width=\"' + ci.width + '\" ' : '') + (ci._src ? ' _src=\"' + ci._src + '\" ' : '') +"," (ci.height ? ' height=\"' + ci.height + '\" ' : '') +"," ' style=\"' + (ci['floatStyle'] && ci['floatStyle'] != 'center' ? 'float:' + ci['floatStyle'] + ';' : '') +"," (ci.border || '') + '\" ' +"," (ci.title ? ' title=\"' + ci.title + '\"' : '') + ' /></p>';"," html.push(str);"," }"," }",""," me.execCommand('insertHtml', html.join(''));"," }"," }","};"]; +_$jscoverage['plugins/image.js'][41]++; +UE.commands.imagefloat = {execCommand: (function (cmd, align) { + _$jscoverage['plugins/image.js'][43]++; + var me = this, range = me.selection.getRange(); + _$jscoverage['plugins/image.js'][45]++; + if ((! range.collapsed)) { + _$jscoverage['plugins/image.js'][46]++; + var img = range.getClosedNode(); + _$jscoverage['plugins/image.js'][47]++; + if ((img && (img.tagName == "IMG"))) { + _$jscoverage['plugins/image.js'][48]++; + switch (align) { + case "left": + case "right": + case "none": + _$jscoverage['plugins/image.js'][52]++; + var pN = img.parentNode, tmpNode, pre, next; + _$jscoverage['plugins/image.js'][53]++; + while ((dtd.$inline[pN.tagName] || (pN.tagName == "A"))) { + _$jscoverage['plugins/image.js'][54]++; + pN = pN.parentNode; +} + _$jscoverage['plugins/image.js'][56]++; + tmpNode = pN; + _$jscoverage['plugins/image.js'][57]++; + if (((tmpNode.tagName == "P") && (domUtils.getStyle(tmpNode, "text-align") == "center"))) { + _$jscoverage['plugins/image.js'][58]++; + if (((! domUtils.isBody(tmpNode)) && (domUtils.getChildCount(tmpNode, (function (node) { + _$jscoverage['plugins/image.js'][59]++; + return ((! domUtils.isBr(node)) && (! domUtils.isWhitespace(node))); +})) == 1))) { + _$jscoverage['plugins/image.js'][61]++; + pre = tmpNode.previousSibling; + _$jscoverage['plugins/image.js'][62]++; + next = tmpNode.nextSibling; + _$jscoverage['plugins/image.js'][63]++; + if ((pre && next && (pre.nodeType == 1) && (next.nodeType == 1) && (pre.tagName == next.tagName) && domUtils.isBlockElm(pre))) { + _$jscoverage['plugins/image.js'][64]++; + pre.appendChild(tmpNode.firstChild); + _$jscoverage['plugins/image.js'][65]++; + while (next.firstChild) { + _$jscoverage['plugins/image.js'][66]++; + pre.appendChild(next.firstChild); +} + _$jscoverage['plugins/image.js'][68]++; + domUtils.remove(tmpNode); + _$jscoverage['plugins/image.js'][69]++; + domUtils.remove(next); + } + else { + _$jscoverage['plugins/image.js'][71]++; + domUtils.setStyle(tmpNode, "text-align", ""); + } + } + _$jscoverage['plugins/image.js'][77]++; + range.selectNode(img).select(); + } + _$jscoverage['plugins/image.js'][79]++; + domUtils.setStyle(img, "float", ((align == "none")? "": align)); + _$jscoverage['plugins/image.js'][80]++; + if ((align == "none")) { + _$jscoverage['plugins/image.js'][81]++; + domUtils.removeAttributes(img, "align"); + } + _$jscoverage['plugins/image.js'][84]++; + break; + case "center": + _$jscoverage['plugins/image.js'][86]++; + if ((me.queryCommandValue("imagefloat") != "center")) { + _$jscoverage['plugins/image.js'][87]++; + pN = img.parentNode; + _$jscoverage['plugins/image.js'][88]++; + domUtils.setStyle(img, "float", ""); + _$jscoverage['plugins/image.js'][89]++; + domUtils.removeAttributes(img, "align"); + _$jscoverage['plugins/image.js'][90]++; + tmpNode = img; + _$jscoverage['plugins/image.js'][91]++; + while ((pN && (domUtils.getChildCount(pN, (function (node) { + _$jscoverage['plugins/image.js'][92]++; + return ((! domUtils.isBr(node)) && (! domUtils.isWhitespace(node))); +})) == 1) && (dtd.$inline[pN.tagName] || (pN.tagName == "A")))) { + _$jscoverage['plugins/image.js'][95]++; + tmpNode = pN; + _$jscoverage['plugins/image.js'][96]++; + pN = pN.parentNode; +} + _$jscoverage['plugins/image.js'][98]++; + range.setStartBefore(tmpNode).setCursor(false); + _$jscoverage['plugins/image.js'][99]++; + pN = me.document.createElement("div"); + _$jscoverage['plugins/image.js'][100]++; + pN.appendChild(tmpNode); + _$jscoverage['plugins/image.js'][101]++; + domUtils.setStyle(tmpNode, "float", ""); + _$jscoverage['plugins/image.js'][103]++; + me.execCommand("insertHtml", ("

" + pN.innerHTML + "

")); + _$jscoverage['plugins/image.js'][105]++; + tmpNode = me.document.getElementById("_img_parent_tmp"); + _$jscoverage['plugins/image.js'][106]++; + tmpNode.removeAttribute("id"); + _$jscoverage['plugins/image.js'][107]++; + tmpNode = tmpNode.firstChild; + _$jscoverage['plugins/image.js'][108]++; + range.selectNode(tmpNode).select(); + _$jscoverage['plugins/image.js'][110]++; + next = tmpNode.parentNode.nextSibling; + _$jscoverage['plugins/image.js'][111]++; + if ((next && domUtils.isEmptyNode(next))) { + _$jscoverage['plugins/image.js'][112]++; + domUtils.remove(next); + } + } + _$jscoverage['plugins/image.js'][117]++; + break; + } + } + } +}), queryCommandValue: (function () { + _$jscoverage['plugins/image.js'][124]++; + var range = this.selection.getRange(), startNode, floatStyle; + _$jscoverage['plugins/image.js'][126]++; + if (range.collapsed) { + _$jscoverage['plugins/image.js'][127]++; + return "none"; + } + _$jscoverage['plugins/image.js'][129]++; + startNode = range.getClosedNode(); + _$jscoverage['plugins/image.js'][130]++; + if ((startNode && (startNode.nodeType == 1) && (startNode.tagName == "IMG"))) { + _$jscoverage['plugins/image.js'][131]++; + floatStyle = (startNode.getAttribute("align") || domUtils.getComputedStyle(startNode, "float")); + _$jscoverage['plugins/image.js'][132]++; + if ((floatStyle == "none")) { + _$jscoverage['plugins/image.js'][133]++; + floatStyle = ((domUtils.getComputedStyle(startNode.parentNode, "text-align") == "center")? "center": floatStyle); + } + _$jscoverage['plugins/image.js'][135]++; + return ({left: 1, right: 1, center: 1}[floatStyle]? floatStyle: "none"); + } + _$jscoverage['plugins/image.js'][141]++; + return "none"; +}), queryCommandState: (function () { + _$jscoverage['plugins/image.js'][146]++; + var range = this.selection.getRange(), startNode; + _$jscoverage['plugins/image.js'][149]++; + if (range.collapsed) { + _$jscoverage['plugins/image.js'][149]++; + return -1; + } + _$jscoverage['plugins/image.js'][151]++; + startNode = range.getClosedNode(); + _$jscoverage['plugins/image.js'][152]++; + if ((startNode && (startNode.nodeType == 1) && (startNode.tagName == "IMG"))) { + _$jscoverage['plugins/image.js'][153]++; + return 0; + } + _$jscoverage['plugins/image.js'][155]++; + return -1; +})}; +_$jscoverage['plugins/image.js'][173]++; +UE.commands.insertimage = {execCommand: (function (cmd, opt) { + _$jscoverage['plugins/image.js'][176]++; + opt = (utils.isArray(opt)? opt: [opt]); + _$jscoverage['plugins/image.js'][177]++; + if ((! opt.length)) { + _$jscoverage['plugins/image.js'][178]++; + return; + } + _$jscoverage['plugins/image.js'][180]++; + var me = this, range = me.selection.getRange(), img = range.getClosedNode(); + _$jscoverage['plugins/image.js'][183]++; + if ((img && /img/i.test(img.tagName) && (img.className != "edui-faked-video") && (! img.getAttribute("word_img")))) { + _$jscoverage['plugins/image.js'][184]++; + var first = opt.shift(); + _$jscoverage['plugins/image.js'][185]++; + var floatStyle = first.floatStyle; + _$jscoverage['plugins/image.js'][186]++; + (delete first.floatStyle); + _$jscoverage['plugins/image.js'][190]++; + domUtils.setAttributes(img, first); + _$jscoverage['plugins/image.js'][191]++; + me.execCommand("imagefloat", floatStyle); + _$jscoverage['plugins/image.js'][192]++; + if ((opt.length > 0)) { + _$jscoverage['plugins/image.js'][193]++; + range.setStartAfter(img).setCursor(false, true); + _$jscoverage['plugins/image.js'][194]++; + me.execCommand("insertimage", opt); + } + } + else { + _$jscoverage['plugins/image.js'][198]++; + var html = [], str = "", ci; + _$jscoverage['plugins/image.js'][199]++; + ci = opt[0]; + _$jscoverage['plugins/image.js'][200]++; + if ((opt.length == 1)) { + _$jscoverage['plugins/image.js'][201]++; + str = ("\"""); + _$jscoverage['plugins/image.js'][210]++; + if ((ci.floatStyle == "center")) { + _$jscoverage['plugins/image.js'][211]++; + str = ("

" + str + "

"); + } + _$jscoverage['plugins/image.js'][213]++; + html.push(str); + } + else { + _$jscoverage['plugins/image.js'][216]++; + for (var i = 0; (ci = opt[(i++)]);) { + _$jscoverage['plugins/image.js'][217]++; + str = ("

"); + _$jscoverage['plugins/image.js'][223]++; + html.push(str); +} + } + _$jscoverage['plugins/image.js'][227]++; + me.execCommand("insertHtml", html.join("")); + } +})}; diff --git a/_test/coverage/plugins/indent.js b/_test/coverage/plugins/indent.js new file mode 100644 index 000000000..83ae81e5c --- /dev/null +++ b/_test/coverage/plugins/indent.js @@ -0,0 +1,60 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/indent.js']) { + _$jscoverage['plugins/indent.js'] = []; + _$jscoverage['plugins/indent.js'][30] = 0; + _$jscoverage['plugins/indent.js'][32] = 0; + _$jscoverage['plugins/indent.js'][33] = 0; + _$jscoverage['plugins/indent.js'][36] = 0; + _$jscoverage['plugins/indent.js'][37] = 0; +} +_$jscoverage['plugins/indent.js'].source = ["/**"," * 缩进"," * @file"," * @since 1.2.6.1"," */","","/**"," * 给选区内文本添加缩进"," * @command indent"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @example"," * ```javascript"," * editor.execCommand( 'indent' );"," * ```"," */","","/**"," * 返回当前选区位置是否有缩进"," * @command indent"," * @method queryCommandState"," * @param { String } cmd 命令字符串"," * @return { int } 0为不是,1为是"," * @example"," * ```javascript"," * editor.queryCommandState( 'indent' );"," * ```"," */","","UE.commands['indent'] = {"," execCommand : function() {"," var me = this,value = me.queryCommandState(\"indent\") ? \"0em\" : (me.options.indentValue || '2em');"," me.execCommand('Paragraph','p',{style:'text-indent:'+ value});"," },"," queryCommandState : function() {"," var pN = domUtils.filterNodeList(this.selection.getStartElementPath(),'p h1 h2 h3 h4 h5 h6');"," return pN && pN.style.textIndent && parseInt(pN.style.textIndent) ? 1 : 0;"," }","","};"]; +_$jscoverage['plugins/indent.js'][30]++; +UE.commands.indent = {execCommand: (function () { + _$jscoverage['plugins/indent.js'][32]++; + var me = this, value = (me.queryCommandState("indent")? "0em": (me.options.indentValue || "2em")); + _$jscoverage['plugins/indent.js'][33]++; + me.execCommand("Paragraph", "p", {style: ("text-indent:" + value)}); +}), queryCommandState: (function () { + _$jscoverage['plugins/indent.js'][36]++; + var pN = domUtils.filterNodeList(this.selection.getStartElementPath(), "p h1 h2 h3 h4 h5 h6"); + _$jscoverage['plugins/indent.js'][37]++; + return ((pN && pN.style.textIndent && parseInt(pN.style.textIndent))? 1: 0); +})}; diff --git a/_test/coverage/plugins/insertcode.js b/_test/coverage/plugins/insertcode.js new file mode 100644 index 000000000..a870678b8 --- /dev/null +++ b/_test/coverage/plugins/insertcode.js @@ -0,0 +1,1066 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/insertcode.js']) { + _$jscoverage['plugins/insertcode.js'] = []; + _$jscoverage['plugins/insertcode.js'][7] = 0; + _$jscoverage['plugins/insertcode.js'][8] = 0; + _$jscoverage['plugins/insertcode.js'][9] = 0; + _$jscoverage['plugins/insertcode.js'][10] = 0; + _$jscoverage['plugins/insertcode.js'][13] = 0; + _$jscoverage['plugins/insertcode.js'][63] = 0; + _$jscoverage['plugins/insertcode.js'][65] = 0; + _$jscoverage['plugins/insertcode.js'][68] = 0; + _$jscoverage['plugins/insertcode.js'][69] = 0; + _$jscoverage['plugins/insertcode.js'][71] = 0; + _$jscoverage['plugins/insertcode.js'][72] = 0; + _$jscoverage['plugins/insertcode.js'][73] = 0; + _$jscoverage['plugins/insertcode.js'][75] = 0; + _$jscoverage['plugins/insertcode.js'][76] = 0; + _$jscoverage['plugins/insertcode.js'][77] = 0; + _$jscoverage['plugins/insertcode.js'][79] = 0; + _$jscoverage['plugins/insertcode.js'][80] = 0; + _$jscoverage['plugins/insertcode.js'][82] = 0; + _$jscoverage['plugins/insertcode.js'][83] = 0; + _$jscoverage['plugins/insertcode.js'][84] = 0; + _$jscoverage['plugins/insertcode.js'][85] = 0; + _$jscoverage['plugins/insertcode.js'][86] = 0; + _$jscoverage['plugins/insertcode.js'][87] = 0; + _$jscoverage['plugins/insertcode.js'][88] = 0; + _$jscoverage['plugins/insertcode.js'][89] = 0; + _$jscoverage['plugins/insertcode.js'][90] = 0; + _$jscoverage['plugins/insertcode.js'][91] = 0; + _$jscoverage['plugins/insertcode.js'][94] = 0; + _$jscoverage['plugins/insertcode.js'][97] = 0; + _$jscoverage['plugins/insertcode.js'][98] = 0; + _$jscoverage['plugins/insertcode.js'][102] = 0; + _$jscoverage['plugins/insertcode.js'][104] = 0; + _$jscoverage['plugins/insertcode.js'][105] = 0; + _$jscoverage['plugins/insertcode.js'][108] = 0; + _$jscoverage['plugins/insertcode.js'][110] = 0; + _$jscoverage['plugins/insertcode.js'][111] = 0; + _$jscoverage['plugins/insertcode.js'][112] = 0; + _$jscoverage['plugins/insertcode.js'][113] = 0; + _$jscoverage['plugins/insertcode.js'][114] = 0; + _$jscoverage['plugins/insertcode.js'][115] = 0; + _$jscoverage['plugins/insertcode.js'][116] = 0; + _$jscoverage['plugins/insertcode.js'][117] = 0; + _$jscoverage['plugins/insertcode.js'][118] = 0; + _$jscoverage['plugins/insertcode.js'][119] = 0; + _$jscoverage['plugins/insertcode.js'][122] = 0; + _$jscoverage['plugins/insertcode.js'][125] = 0; + _$jscoverage['plugins/insertcode.js'][126] = 0; + _$jscoverage['plugins/insertcode.js'][130] = 0; + _$jscoverage['plugins/insertcode.js'][132] = 0; + _$jscoverage['plugins/insertcode.js'][133] = 0; + _$jscoverage['plugins/insertcode.js'][137] = 0; + _$jscoverage['plugins/insertcode.js'][138] = 0; + _$jscoverage['plugins/insertcode.js'][139] = 0; + _$jscoverage['plugins/insertcode.js'][140] = 0; + _$jscoverage['plugins/insertcode.js'][141] = 0; + _$jscoverage['plugins/insertcode.js'][149] = 0; + _$jscoverage['plugins/insertcode.js'][151] = 0; + _$jscoverage['plugins/insertcode.js'][152] = 0; + _$jscoverage['plugins/insertcode.js'][153] = 0; + _$jscoverage['plugins/insertcode.js'][155] = 0; + _$jscoverage['plugins/insertcode.js'][157] = 0; + _$jscoverage['plugins/insertcode.js'][159] = 0; + _$jscoverage['plugins/insertcode.js'][160] = 0; + _$jscoverage['plugins/insertcode.js'][161] = 0; + _$jscoverage['plugins/insertcode.js'][163] = 0; + _$jscoverage['plugins/insertcode.js'][171] = 0; + _$jscoverage['plugins/insertcode.js'][172] = 0; + _$jscoverage['plugins/insertcode.js'][173] = 0; + _$jscoverage['plugins/insertcode.js'][174] = 0; + _$jscoverage['plugins/insertcode.js'][175] = 0; + _$jscoverage['plugins/insertcode.js'][176] = 0; + _$jscoverage['plugins/insertcode.js'][177] = 0; + _$jscoverage['plugins/insertcode.js'][180] = 0; + _$jscoverage['plugins/insertcode.js'][184] = 0; + _$jscoverage['plugins/insertcode.js'][185] = 0; + _$jscoverage['plugins/insertcode.js'][186] = 0; + _$jscoverage['plugins/insertcode.js'][187] = 0; + _$jscoverage['plugins/insertcode.js'][188] = 0; + _$jscoverage['plugins/insertcode.js'][189] = 0; + _$jscoverage['plugins/insertcode.js'][190] = 0; + _$jscoverage['plugins/insertcode.js'][191] = 0; + _$jscoverage['plugins/insertcode.js'][193] = 0; + _$jscoverage['plugins/insertcode.js'][195] = 0; + _$jscoverage['plugins/insertcode.js'][196] = 0; + _$jscoverage['plugins/insertcode.js'][197] = 0; + _$jscoverage['plugins/insertcode.js'][198] = 0; + _$jscoverage['plugins/insertcode.js'][199] = 0; + _$jscoverage['plugins/insertcode.js'][200] = 0; + _$jscoverage['plugins/insertcode.js'][201] = 0; + _$jscoverage['plugins/insertcode.js'][203] = 0; + _$jscoverage['plugins/insertcode.js'][207] = 0; + _$jscoverage['plugins/insertcode.js'][208] = 0; + _$jscoverage['plugins/insertcode.js'][209] = 0; + _$jscoverage['plugins/insertcode.js'][210] = 0; + _$jscoverage['plugins/insertcode.js'][211] = 0; + _$jscoverage['plugins/insertcode.js'][214] = 0; + _$jscoverage['plugins/insertcode.js'][216] = 0; + _$jscoverage['plugins/insertcode.js'][217] = 0; + _$jscoverage['plugins/insertcode.js'][219] = 0; + _$jscoverage['plugins/insertcode.js'][226] = 0; + _$jscoverage['plugins/insertcode.js'][230] = 0; + _$jscoverage['plugins/insertcode.js'][247] = 0; + _$jscoverage['plugins/insertcode.js'][248] = 0; + _$jscoverage['plugins/insertcode.js'][249] = 0; + _$jscoverage['plugins/insertcode.js'][251] = 0; + _$jscoverage['plugins/insertcode.js'][252] = 0; + _$jscoverage['plugins/insertcode.js'][254] = 0; + _$jscoverage['plugins/insertcode.js'][256] = 0; + _$jscoverage['plugins/insertcode.js'][257] = 0; + _$jscoverage['plugins/insertcode.js'][258] = 0; + _$jscoverage['plugins/insertcode.js'][259] = 0; + _$jscoverage['plugins/insertcode.js'][260] = 0; + _$jscoverage['plugins/insertcode.js'][261] = 0; + _$jscoverage['plugins/insertcode.js'][262] = 0; + _$jscoverage['plugins/insertcode.js'][264] = 0; + _$jscoverage['plugins/insertcode.js'][265] = 0; + _$jscoverage['plugins/insertcode.js'][266] = 0; + _$jscoverage['plugins/insertcode.js'][267] = 0; + _$jscoverage['plugins/insertcode.js'][268] = 0; + _$jscoverage['plugins/insertcode.js'][269] = 0; + _$jscoverage['plugins/insertcode.js'][271] = 0; + _$jscoverage['plugins/insertcode.js'][273] = 0; + _$jscoverage['plugins/insertcode.js'][274] = 0; + _$jscoverage['plugins/insertcode.js'][275] = 0; + _$jscoverage['plugins/insertcode.js'][276] = 0; + _$jscoverage['plugins/insertcode.js'][277] = 0; + _$jscoverage['plugins/insertcode.js'][278] = 0; + _$jscoverage['plugins/insertcode.js'][279] = 0; + _$jscoverage['plugins/insertcode.js'][280] = 0; + _$jscoverage['plugins/insertcode.js'][283] = 0; + _$jscoverage['plugins/insertcode.js'][284] = 0; + _$jscoverage['plugins/insertcode.js'][285] = 0; + _$jscoverage['plugins/insertcode.js'][286] = 0; + _$jscoverage['plugins/insertcode.js'][287] = 0; + _$jscoverage['plugins/insertcode.js'][289] = 0; + _$jscoverage['plugins/insertcode.js'][290] = 0; + _$jscoverage['plugins/insertcode.js'][291] = 0; + _$jscoverage['plugins/insertcode.js'][292] = 0; + _$jscoverage['plugins/insertcode.js'][296] = 0; + _$jscoverage['plugins/insertcode.js'][297] = 0; + _$jscoverage['plugins/insertcode.js'][298] = 0; + _$jscoverage['plugins/insertcode.js'][301] = 0; + _$jscoverage['plugins/insertcode.js'][303] = 0; + _$jscoverage['plugins/insertcode.js'][305] = 0; + _$jscoverage['plugins/insertcode.js'][306] = 0; + _$jscoverage['plugins/insertcode.js'][307] = 0; + _$jscoverage['plugins/insertcode.js'][308] = 0; + _$jscoverage['plugins/insertcode.js'][309] = 0; + _$jscoverage['plugins/insertcode.js'][310] = 0; + _$jscoverage['plugins/insertcode.js'][311] = 0; + _$jscoverage['plugins/insertcode.js'][312] = 0; + _$jscoverage['plugins/insertcode.js'][315] = 0; + _$jscoverage['plugins/insertcode.js'][316] = 0; + _$jscoverage['plugins/insertcode.js'][317] = 0; + _$jscoverage['plugins/insertcode.js'][318] = 0; + _$jscoverage['plugins/insertcode.js'][319] = 0; + _$jscoverage['plugins/insertcode.js'][321] = 0; + _$jscoverage['plugins/insertcode.js'][325] = 0; + _$jscoverage['plugins/insertcode.js'][326] = 0; + _$jscoverage['plugins/insertcode.js'][327] = 0; + _$jscoverage['plugins/insertcode.js'][328] = 0; + _$jscoverage['plugins/insertcode.js'][329] = 0; + _$jscoverage['plugins/insertcode.js'][330] = 0; + _$jscoverage['plugins/insertcode.js'][331] = 0; + _$jscoverage['plugins/insertcode.js'][332] = 0; + _$jscoverage['plugins/insertcode.js'][333] = 0; + _$jscoverage['plugins/insertcode.js'][334] = 0; + _$jscoverage['plugins/insertcode.js'][335] = 0; + _$jscoverage['plugins/insertcode.js'][336] = 0; + _$jscoverage['plugins/insertcode.js'][339] = 0; + _$jscoverage['plugins/insertcode.js'][340] = 0; + _$jscoverage['plugins/insertcode.js'][341] = 0; + _$jscoverage['plugins/insertcode.js'][342] = 0; + _$jscoverage['plugins/insertcode.js'][343] = 0; + _$jscoverage['plugins/insertcode.js'][345] = 0; + _$jscoverage['plugins/insertcode.js'][346] = 0; + _$jscoverage['plugins/insertcode.js'][347] = 0; + _$jscoverage['plugins/insertcode.js'][348] = 0; + _$jscoverage['plugins/insertcode.js'][353] = 0; + _$jscoverage['plugins/insertcode.js'][354] = 0; + _$jscoverage['plugins/insertcode.js'][356] = 0; + _$jscoverage['plugins/insertcode.js'][361] = 0; + _$jscoverage['plugins/insertcode.js'][362] = 0; + _$jscoverage['plugins/insertcode.js'][368] = 0; + _$jscoverage['plugins/insertcode.js'][369] = 0; + _$jscoverage['plugins/insertcode.js'][370] = 0; + _$jscoverage['plugins/insertcode.js'][371] = 0; + _$jscoverage['plugins/insertcode.js'][372] = 0; + _$jscoverage['plugins/insertcode.js'][373] = 0; + _$jscoverage['plugins/insertcode.js'][436] = 0; + _$jscoverage['plugins/insertcode.js'][437] = 0; + _$jscoverage['plugins/insertcode.js'][438] = 0; + _$jscoverage['plugins/insertcode.js'][440] = 0; + _$jscoverage['plugins/insertcode.js'][441] = 0; + _$jscoverage['plugins/insertcode.js'][442] = 0; + _$jscoverage['plugins/insertcode.js'][444] = 0; + _$jscoverage['plugins/insertcode.js'][446] = 0; + _$jscoverage['plugins/insertcode.js'][447] = 0; + _$jscoverage['plugins/insertcode.js'][449] = 0; + _$jscoverage['plugins/insertcode.js'][451] = 0; + _$jscoverage['plugins/insertcode.js'][453] = 0; + _$jscoverage['plugins/insertcode.js'][454] = 0; + _$jscoverage['plugins/insertcode.js'][455] = 0; + _$jscoverage['plugins/insertcode.js'][456] = 0; + _$jscoverage['plugins/insertcode.js'][459] = 0; + _$jscoverage['plugins/insertcode.js'][460] = 0; + _$jscoverage['plugins/insertcode.js'][461] = 0; + _$jscoverage['plugins/insertcode.js'][462] = 0; + _$jscoverage['plugins/insertcode.js'][464] = 0; + _$jscoverage['plugins/insertcode.js'][467] = 0; + _$jscoverage['plugins/insertcode.js'][469] = 0; + _$jscoverage['plugins/insertcode.js'][471] = 0; + _$jscoverage['plugins/insertcode.js'][472] = 0; + _$jscoverage['plugins/insertcode.js'][477] = 0; + _$jscoverage['plugins/insertcode.js'][478] = 0; + _$jscoverage['plugins/insertcode.js'][485] = 0; + _$jscoverage['plugins/insertcode.js'][486] = 0; + _$jscoverage['plugins/insertcode.js'][489] = 0; + _$jscoverage['plugins/insertcode.js'][490] = 0; + _$jscoverage['plugins/insertcode.js'][491] = 0; + _$jscoverage['plugins/insertcode.js'][493] = 0; + _$jscoverage['plugins/insertcode.js'][494] = 0; + _$jscoverage['plugins/insertcode.js'][496] = 0; + _$jscoverage['plugins/insertcode.js'][497] = 0; + _$jscoverage['plugins/insertcode.js'][498] = 0; + _$jscoverage['plugins/insertcode.js'][499] = 0; + _$jscoverage['plugins/insertcode.js'][500] = 0; + _$jscoverage['plugins/insertcode.js'][501] = 0; + _$jscoverage['plugins/insertcode.js'][502] = 0; + _$jscoverage['plugins/insertcode.js'][503] = 0; + _$jscoverage['plugins/insertcode.js'][504] = 0; + _$jscoverage['plugins/insertcode.js'][505] = 0; + _$jscoverage['plugins/insertcode.js'][506] = 0; + _$jscoverage['plugins/insertcode.js'][509] = 0; + _$jscoverage['plugins/insertcode.js'][512] = 0; + _$jscoverage['plugins/insertcode.js'][513] = 0; + _$jscoverage['plugins/insertcode.js'][517] = 0; + _$jscoverage['plugins/insertcode.js'][519] = 0; + _$jscoverage['plugins/insertcode.js'][520] = 0; + _$jscoverage['plugins/insertcode.js'][523] = 0; + _$jscoverage['plugins/insertcode.js'][524] = 0; + _$jscoverage['plugins/insertcode.js'][526] = 0; + _$jscoverage['plugins/insertcode.js'][528] = 0; + _$jscoverage['plugins/insertcode.js'][529] = 0; + _$jscoverage['plugins/insertcode.js'][530] = 0; + _$jscoverage['plugins/insertcode.js'][531] = 0; + _$jscoverage['plugins/insertcode.js'][532] = 0; + _$jscoverage['plugins/insertcode.js'][533] = 0; + _$jscoverage['plugins/insertcode.js'][534] = 0; + _$jscoverage['plugins/insertcode.js'][535] = 0; + _$jscoverage['plugins/insertcode.js'][537] = 0; + _$jscoverage['plugins/insertcode.js'][538] = 0; + _$jscoverage['plugins/insertcode.js'][539] = 0; + _$jscoverage['plugins/insertcode.js'][543] = 0; + _$jscoverage['plugins/insertcode.js'][547] = 0; + _$jscoverage['plugins/insertcode.js'][548] = 0; + _$jscoverage['plugins/insertcode.js'][552] = 0; + _$jscoverage['plugins/insertcode.js'][554] = 0; + _$jscoverage['plugins/insertcode.js'][555] = 0; + _$jscoverage['plugins/insertcode.js'][560] = 0; + _$jscoverage['plugins/insertcode.js'][564] = 0; + _$jscoverage['plugins/insertcode.js'][568] = 0; + _$jscoverage['plugins/insertcode.js'][569] = 0; + _$jscoverage['plugins/insertcode.js'][570] = 0; + _$jscoverage['plugins/insertcode.js'][571] = 0; + _$jscoverage['plugins/insertcode.js'][572] = 0; + _$jscoverage['plugins/insertcode.js'][573] = 0; + _$jscoverage['plugins/insertcode.js'][574] = 0; + _$jscoverage['plugins/insertcode.js'][575] = 0; + _$jscoverage['plugins/insertcode.js'][577] = 0; + _$jscoverage['plugins/insertcode.js'][578] = 0; + _$jscoverage['plugins/insertcode.js'][579] = 0; + _$jscoverage['plugins/insertcode.js'][586] = 0; + _$jscoverage['plugins/insertcode.js'][587] = 0; + _$jscoverage['plugins/insertcode.js'][588] = 0; + _$jscoverage['plugins/insertcode.js'][589] = 0; + _$jscoverage['plugins/insertcode.js'][590] = 0; + _$jscoverage['plugins/insertcode.js'][591] = 0; + _$jscoverage['plugins/insertcode.js'][592] = 0; + _$jscoverage['plugins/insertcode.js'][593] = 0; + _$jscoverage['plugins/insertcode.js'][594] = 0; + _$jscoverage['plugins/insertcode.js'][595] = 0; + _$jscoverage['plugins/insertcode.js'][596] = 0; + _$jscoverage['plugins/insertcode.js'][597] = 0; +} +_$jscoverage['plugins/insertcode.js'].source = ["/**"," * 插入代码插件"," * @file"," * @since 1.2.6.1"," */","","UE.plugins['insertcode'] = function() {"," var me = this;"," me.ready(function(){"," utils.cssRule('pre','pre{margin:.5em 0;padding:.4em .6em;border-radius:8px;background:#f8f8f8;}',"," me.document)"," });"," me.setOpt('insertcode',{"," 'as3':'ActionScript3',"," 'bash':'Bash/Shell',"," 'cpp':'C/C++',"," 'css':'Css',"," 'cf':'CodeFunction',"," 'c#':'C#',"," 'delphi':'Delphi',"," 'diff':'Diff',"," 'erlang':'Erlang',"," 'groovy':'Groovy',"," 'html':'Html',"," 'java':'Java',"," 'jfx':'JavaFx',"," 'js':'Javascript',"," 'pl':'Perl',"," 'php':'Php',"," 'plain':'Plain Text',"," 'ps':'PowerShell',"," 'python':'Python',"," 'ruby':'Ruby',"," 'scala':'Scala',"," 'sql':'Sql',"," 'vb':'Vb',"," 'xml':'Xml'"," });",""," /**"," * 根据选择的语言,插入代码编辑块"," * @command insertcode"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @param { String } lang 插入代码的语言"," * @example"," * ```javascript"," * editor.execCommand( 'insertcode', 'javascript' );"," * ```"," */",""," /**"," * 如果选区所在位置是插入插入代码区域,返回代码的语言"," * @command insertcode"," * @method queryCommandValue"," * @param { String } cmd 命令字符串"," * @return { String } 返回代码的语言"," * @example"," * ```javascript"," * editor.queryCommandValue( 'insertcode' );"," * ```"," */"," me.commands['insertcode'] = {"," execCommand : function(cmd,lang){"," var me = this,"," rng = me.selection.getRange(),"," pre = domUtils.findParentByTagName(rng.startContainer,'pre',true);"," if(pre){"," pre.className = 'brush:'+lang+';toolbar:false;';"," }else{"," var code = '';"," if(rng.collapsed){"," code = browser.ie? (browser.version > 8 ? '' : '&nbsp;'):'<br/>';"," }else{"," var frag = rng.extractContents();"," var div = me.document.createElement('div');"," div.appendChild(frag);",""," utils.each(UE.filterNode(UE.htmlparser(div.innerHTML.replace(/[\\r\\t]/g,'')),me.options.filterTxtRules).children,function(node){"," if(browser.ie && browser.version > 8){",""," if(node.type =='element'){"," if(node.tagName == 'br'){"," code += '\\n'"," }else if(!dtd.$empty[node.tagName]){"," utils.each(node.children,function(cn){"," if(cn.type =='element'){"," if(cn.tagName == 'br'){"," code += '\\n'"," }else if(!dtd.$empty[node.tagName]){"," code += cn.innerText();"," }"," }else{"," code += cn.data"," }"," })"," if(!/\\n$/.test(code)){"," code += '\\n';"," }"," }"," }else{"," code += node.data + '\\n'"," }"," if(!node.nextSibling() && /\\n$/.test(code)){"," code = code.replace(/\\n$/,'');"," }"," }else{"," if(browser.ie){",""," if(node.type =='element'){"," if(node.tagName == 'br'){"," code += '<br>'"," }else if(!dtd.$empty[node.tagName]){"," utils.each(node.children,function(cn){"," if(cn.type =='element'){"," if(cn.tagName == 'br'){"," code += '<br>'"," }else if(!dtd.$empty[node.tagName]){"," code += cn.innerText();"," }"," }else{"," code += cn.data"," }"," });"," if(!/br>$/.test(code)){"," code += '<br>';"," }"," }"," }else{"," code += node.data + '<br>'"," }"," if(!node.nextSibling() && /<br>$/.test(code)){"," code = code.replace(/<br>$/,'');"," }",""," }else{"," code += (node.type == 'element' ? (dtd.$empty[node.tagName] ? '' : node.innerText()) : node.data);"," if(!/br\\/?\\s*>$/.test(code)){"," if(!node.nextSibling())"," return;"," code += '<br>'"," }"," }",""," }",""," });"," }"," me.execCommand('inserthtml','<pre id=\"coder\"class=\"brush:'+lang+';toolbar:false\">'+code+'</pre>',true);",""," pre = me.document.getElementById('coder');"," domUtils.removeAttributes(pre,'id');"," var tmpNode = pre.previousSibling;",""," if(tmpNode && (tmpNode.nodeType == 3 && tmpNode.nodeValue.length == 1 && browser.ie && browser.version == 6 || domUtils.isEmptyBlock(tmpNode))){",""," domUtils.remove(tmpNode)"," }"," var rng = me.selection.getRange();"," if(domUtils.isEmptyBlock(pre)){"," rng.setStart(pre,0).setCursor(false,true)"," }else{"," rng.selectNodeContents(pre).select()"," }"," }","","",""," },"," queryCommandValue : function(){"," var path = this.selection.getStartElementPath();"," var lang = '';"," utils.each(path,function(node){"," if(node.nodeName =='PRE'){"," var match = node.className.match(/brush:([^;]+)/);"," lang = match && match[1] ? match[1] : '';"," return false;"," }"," });"," return lang;"," }"," };",""," me.addInputRule(function(root){"," utils.each(root.getNodesByTagName('pre'),function(pre){"," var brs = pre.getNodesByTagName('br');"," if(brs.length){"," browser.ie && browser.version > 8 && utils.each(brs,function(br){"," var txt = UE.uNode.createText('\\n');"," br.parentNode.insertBefore(txt,br);"," br.parentNode.removeChild(br);"," });"," return;"," }"," if(browser.ie && browser.version > 8)"," return;"," var code = pre.innerText().split(/\\n/);"," pre.innerHTML('');"," utils.each(code,function(c){"," if(c.length){"," pre.appendChild(UE.uNode.createText(c));"," }"," pre.appendChild(UE.uNode.createElement('br'))"," })"," })"," });"," me.addOutputRule(function(root){"," utils.each(root.getNodesByTagName('pre'),function(pre){"," var code = '';"," utils.each(pre.children,function(n){"," if(n.type == 'text'){"," //在ie下文本内容有可能末尾带有\\n要去掉"," //trace:3396"," code += n.data.replace(/[ ]/g,'&nbsp;').replace(/\\n$/,'');"," }else{"," if(n.tagName == 'br'){"," code += '\\n'"," }else{"," code += (!dtd.$empty[n.tagName] ? '' : n.innerText());"," }",""," }",""," });",""," pre.innerText(code.replace(/(&nbsp;|\\n)+$/,''))"," })"," });"," //不需要判断highlight的command列表"," me.notNeedCodeQuery ={"," help:1,"," undo:1,"," redo:1,"," source:1,"," print:1,"," searchreplace:1,"," fullscreen:1,"," preview:1,"," insertparagraph:1,"," elementpath:1,"," highlightcode:1,"," insertcode:1,"," inserthtml:1,"," selectall:1"," };"," //将queyCommamndState重置"," var orgQuery = me.queryCommandState;"," me.queryCommandState = function(cmd){"," var me = this;",""," if(!me.notNeedCodeQuery[cmd.toLowerCase()] && me.selection && me.queryCommandValue('insertcode')){"," return -1;"," }"," return UE.Editor.prototype.queryCommandState.apply(this,arguments)"," };"," me.addListener('beforeenterkeydown',function(){"," var rng = me.selection.getRange();"," var pre = domUtils.findParentByTagName(rng.startContainer,'pre',true);"," if(pre){"," me.fireEvent('saveScene');"," if(!rng.collapsed){"," rng.deleteContents();"," }"," if(!browser.ie ){"," var tmpNode = me.document.createElement('br'),pre;"," rng.insertNode(tmpNode).setStartAfter(tmpNode).collapse(true);"," var next = tmpNode.nextSibling;"," if(!next){"," rng.insertNode(tmpNode.cloneNode(false));"," }else{"," rng.setStartAfter(tmpNode);"," }"," pre = tmpNode.previousSibling;"," var tmp;"," while(pre ){"," tmp = pre;"," pre = pre.previousSibling;"," if(!pre || pre.nodeName == 'BR'){"," pre = tmp;"," break;"," }"," }"," if(pre){"," var str = '';"," while(pre && pre.nodeName != 'BR' && new RegExp('^[\\\\s'+domUtils.fillChar+']*$').test(pre.nodeValue)){"," str += pre.nodeValue;"," pre = pre.nextSibling;"," }"," if(pre.nodeName != 'BR'){"," var match = pre.nodeValue.match(new RegExp('^([\\\\s'+domUtils.fillChar+']+)'));"," if(match && match[1]){"," str += match[1]"," }",""," }"," if(str){"," str = me.document.createTextNode(str);"," rng.insertNode(str).setStartAfter(str);"," }"," }"," rng.collapse(true).select(true);"," }else{"," if(browser.version > 8){",""," var txt = me.document.createTextNode('\\n');"," var start = rng.startContainer;"," if(rng.startOffset == 0){"," var preNode = start.previousSibling;"," if(preNode){"," rng.insertNode(txt);"," var fillchar = me.document.createTextNode(' ');"," rng.setStartAfter(txt).insertNode(fillchar).setStart(fillchar,0).collapse(true).select(true)"," }"," }else{"," rng.insertNode(txt).setStartAfter(txt);"," var fillchar = me.document.createTextNode(' ');"," start = rng.startContainer.childNodes[rng.startOffset];"," if(start && !/^\\n/.test(start.nodeValue)){"," rng.setStartBefore(txt)"," }"," rng.insertNode(fillchar).setStart(fillchar,0).collapse(true).select(true)"," }",""," }else{"," var tmpNode = me.document.createElement('br');"," rng.insertNode(tmpNode);"," rng.insertNode(me.document.createTextNode(domUtils.fillChar));"," rng.setStartAfter(tmpNode);"," pre = tmpNode.previousSibling;"," var tmp;"," while(pre ){"," tmp = pre;"," pre = pre.previousSibling;"," if(!pre || pre.nodeName == 'BR'){"," pre = tmp;"," break;"," }"," }"," if(pre){"," var str = '';"," while(pre && pre.nodeName != 'BR' && new RegExp('^[ '+domUtils.fillChar+']*$').test(pre.nodeValue)){"," str += pre.nodeValue;"," pre = pre.nextSibling;"," }"," if(pre.nodeName != 'BR'){"," var match = pre.nodeValue.match(new RegExp('^([ '+domUtils.fillChar+']+)'));"," if(match && match[1]){"," str += match[1]"," }",""," }",""," str = me.document.createTextNode(str);"," rng.insertNode(str).setStartAfter(str);"," }"," rng.collapse(true).select();"," }","",""," }"," me.fireEvent('saveScene');"," return true;"," }","",""," });",""," me.addListener('tabkeydown',function(cmd,evt){"," var rng = me.selection.getRange();"," var pre = domUtils.findParentByTagName(rng.startContainer,'pre',true);"," if(pre){"," me.fireEvent('saveScene');"," if(evt.shiftKey){","","// if(!rng.collapsed){","// var bk = rng.createBookmark();","// var start = bk.start.previousSibling;","// if(start === pre.firstChild){","// start.nodeValue = start.nodeValue.replace(/^\\s{4}/,'');","// }else{","// while(start){","// if(domUtils.isBr(start)){","// start = start.nextSibling;","// start.nodeValue = start.nodeValue.replace(/^\\s{4}/,'');","// break;","// }","// while(start.previousSibling && start.previousSibling.nodeType == 3){","// start.nodeValue = start.previousSibling.nodeValue + start.nodeValue;","// domUtils.remove(start.previousSibling)","// }","// start = start.previousSibling;","// }","// }","//","// var end = bk.end;","// start = bk.start.nextSibling;","//","// while(start && start !== end){","// if(domUtils.isBr(start) && start.nextSibling){","// if(start.nextSibling === end){","// break;","// }","// start = start.nextSibling;","// while(start.nextSibling && start.nextSibling.nodeType == 3){","// start.nodeValue += start.nextSibling.nodeValue;","// domUtils.remove(start.nextSibling)","// }","//","// start.nodeValue = start.nodeValue.replace(/^\\s{4}/,'');","// }","//","// start = start.nextSibling;","// }","// rng.moveToBookmark(bk).select();","// }else{","// var bk = rng.createBookmark();","// var start = bk.start.previousSibling;","// if(start === pre.firstChild){","// start.nodeValue = start.nodeValue.replace(/^\\s{4}/,'');","// }else{","// while(start){","// if(domUtils.isBr(start)){","// start = start.nextSibling;","// start.nodeValue = start.nodeValue.replace(/^\\s{4}/,'');","// break;","// }","// while(start.previousSibling && start.previousSibling.nodeType == 3){","// start.nodeValue = start.previousSibling.nodeValue + start.nodeValue;","// domUtils.remove(start.previousSibling)","// }","// start = start.previousSibling;","// }","// }","// }"," }else{"," if(!rng.collapsed){"," var bk = rng.createBookmark();"," var start = bk.start.previousSibling;",""," while(start){"," if(pre.firstChild === start && !domUtils.isBr(start)){"," pre.insertBefore(me.document.createTextNode(' '),start);",""," break;"," }"," if(domUtils.isBr(start)){"," pre.insertBefore(me.document.createTextNode(' '),start.nextSibling);",""," break;"," }"," start = start.previousSibling;"," }"," var end = bk.end;"," start = bk.start.nextSibling;"," if(pre.firstChild === bk.start){"," pre.insertBefore(me.document.createTextNode(' '),start.nextSibling)",""," }"," while(start && start !== end){"," if(domUtils.isBr(start) && start.nextSibling){"," if(start.nextSibling === end){"," break;"," }"," pre.insertBefore(me.document.createTextNode(' '),start.nextSibling)"," }",""," start = start.nextSibling;"," }"," rng.moveToBookmark(bk).select();"," }else{"," var tmpNode = me.document.createTextNode(' ');"," rng.insertNode(tmpNode).setStartAfter(tmpNode).collapse(true).select(true);"," }"," }","",""," me.fireEvent('saveScene');"," return true;"," }","",""," });","",""," me.addListener('beforeinserthtml',function(evtName,html){"," var me = this,"," rng = me.selection.getRange(),"," pre = domUtils.findParentByTagName(rng.startContainer,'pre',true);"," if(pre){"," if(!rng.collapsed){"," rng.deleteContents()"," }"," var htmlstr = '';"," if(browser.ie && browser.version > 8){",""," utils.each(UE.filterNode(UE.htmlparser(html),me.options.filterTxtRules).children,function(node){"," if(node.type =='element'){"," if(node.tagName == 'br'){"," htmlstr += '\\n'"," }else if(!dtd.$empty[node.tagName]){"," utils.each(node.children,function(cn){"," if(cn.type =='element'){"," if(cn.tagName == 'br'){"," htmlstr += '\\n'"," }else if(!dtd.$empty[node.tagName]){"," htmlstr += cn.innerText();"," }"," }else{"," htmlstr += cn.data"," }"," })"," if(!/\\n$/.test(htmlstr)){"," htmlstr += '\\n';"," }"," }"," }else{"," htmlstr += node.data + '\\n'"," }"," if(!node.nextSibling() && /\\n$/.test(htmlstr)){"," htmlstr = htmlstr.replace(/\\n$/,'');"," }"," });"," var tmpNode = me.document.createTextNode(utils.html(htmlstr.replace(/&nbsp;/g,' ')));"," rng.insertNode(tmpNode).selectNode(tmpNode).select();"," }else{"," var frag = me.document.createDocumentFragment();",""," utils.each(UE.filterNode(UE.htmlparser(html),me.options.filterTxtRules).children,function(node){"," if(node.type =='element'){"," if(node.tagName == 'br'){"," frag.appendChild(me.document.createElement('br'))"," }else if(!dtd.$empty[node.tagName]){"," utils.each(node.children,function(cn){"," if(cn.type =='element'){"," if(cn.tagName == 'br'){",""," frag.appendChild(me.document.createElement('br'))"," }else if(!dtd.$empty[node.tagName]){"," frag.appendChild(me.document.createTextNode(utils.html(cn.innerText().replace(/&nbsp;/g,' '))));",""," }"," }else{"," frag.appendChild(me.document.createTextNode(utils.html( cn.data.replace(/&nbsp;/g,' '))));",""," }"," })"," if(frag.lastChild.nodeName != 'BR'){"," frag.appendChild(me.document.createElement('br'))"," }"," }"," }else{"," frag.appendChild(me.document.createTextNode(utils.html( node.data.replace(/&nbsp;/g,' '))));"," }"," if(!node.nextSibling() && frag.lastChild.nodeName == 'BR'){"," frag.removeChild(frag.lastChild)"," }","",""," });"," rng.insertNode(frag).select();",""," }",""," return true;"," }"," });"," //方向键的处理"," me.addListener('keydown',function(cmd,evt){"," var me = this,keyCode = evt.keyCode || evt.which;"," if(keyCode == 40){"," var rng = me.selection.getRange(),pre,start = rng.startContainer;"," if(rng.collapsed && (pre = domUtils.findParentByTagName(rng.startContainer,'pre',true)) && !pre.nextSibling){"," var last = pre.lastChild"," while(last && last.nodeName == 'BR'){"," last = last.previousSibling;"," }"," if(last === start || rng.startContainer === pre && rng.startOffset == pre.childNodes.length){"," me.execCommand('insertparagraph');"," domUtils.preventDefault(evt)"," }",""," }"," }"," });"," //trace:3395"," me.addListener('delkeydown',function(type,evt){"," var rng = this.selection.getRange();"," rng.txtToElmBoundary(true);"," var start = rng.startContainer;"," if(domUtils.isTagNode(start,'pre') && rng.collapsed && domUtils.isStartInblock(rng)){"," var p = me.document.createElement('p');"," domUtils.fillNode(me.document,p);"," start.parentNode.insertBefore(p,start);"," domUtils.remove(start);"," rng.setStart(p,0).setCursor(false,true);"," domUtils.preventDefault(evt);"," return true;"," }"," })","};"]; +_$jscoverage['plugins/insertcode.js'][7]++; +UE.plugins.insertcode = (function () { + _$jscoverage['plugins/insertcode.js'][8]++; + var me = this; + _$jscoverage['plugins/insertcode.js'][9]++; + me.ready((function () { + _$jscoverage['plugins/insertcode.js'][10]++; + utils.cssRule("pre", "pre{margin:.5em 0;padding:.4em .6em;border-radius:8px;background:#f8f8f8;}", me.document); +})); + _$jscoverage['plugins/insertcode.js'][13]++; + me.setOpt("insertcode", {"as3": "ActionScript3", "bash": "Bash/Shell", "cpp": "C/C++", "css": "Css", "cf": "CodeFunction", "c#": "C#", "delphi": "Delphi", "diff": "Diff", "erlang": "Erlang", "groovy": "Groovy", "html": "Html", "java": "Java", "jfx": "JavaFx", "js": "Javascript", "pl": "Perl", "php": "Php", "plain": "Plain Text", "ps": "PowerShell", "python": "Python", "ruby": "Ruby", "scala": "Scala", "sql": "Sql", "vb": "Vb", "xml": "Xml"}); + _$jscoverage['plugins/insertcode.js'][63]++; + me.commands.insertcode = {execCommand: (function (cmd, lang) { + _$jscoverage['plugins/insertcode.js'][65]++; + var me = this, rng = me.selection.getRange(), pre = domUtils.findParentByTagName(rng.startContainer, "pre", true); + _$jscoverage['plugins/insertcode.js'][68]++; + if (pre) { + _$jscoverage['plugins/insertcode.js'][69]++; + pre.className = ("brush:" + lang + ";toolbar:false;"); + } + else { + _$jscoverage['plugins/insertcode.js'][71]++; + var code = ""; + _$jscoverage['plugins/insertcode.js'][72]++; + if (rng.collapsed) { + _$jscoverage['plugins/insertcode.js'][73]++; + code = (browser.ie? ((browser.version > 8)? "": " "): "
"); + } + else { + _$jscoverage['plugins/insertcode.js'][75]++; + var frag = rng.extractContents(); + _$jscoverage['plugins/insertcode.js'][76]++; + var div = me.document.createElement("div"); + _$jscoverage['plugins/insertcode.js'][77]++; + div.appendChild(frag); + _$jscoverage['plugins/insertcode.js'][79]++; + utils.each(UE.filterNode(UE.htmlparser(div.innerHTML.replace(/[\r\t]/g, "")), me.options.filterTxtRules).children, (function (node) { + _$jscoverage['plugins/insertcode.js'][80]++; + if ((browser.ie && (browser.version > 8))) { + _$jscoverage['plugins/insertcode.js'][82]++; + if ((node.type == "element")) { + _$jscoverage['plugins/insertcode.js'][83]++; + if ((node.tagName == "br")) { + _$jscoverage['plugins/insertcode.js'][84]++; + code += "\n"; + } + else { + _$jscoverage['plugins/insertcode.js'][85]++; + if ((! dtd.$empty[node.tagName])) { + _$jscoverage['plugins/insertcode.js'][86]++; + utils.each(node.children, (function (cn) { + _$jscoverage['plugins/insertcode.js'][87]++; + if ((cn.type == "element")) { + _$jscoverage['plugins/insertcode.js'][88]++; + if ((cn.tagName == "br")) { + _$jscoverage['plugins/insertcode.js'][89]++; + code += "\n"; + } + else { + _$jscoverage['plugins/insertcode.js'][90]++; + if ((! dtd.$empty[node.tagName])) { + _$jscoverage['plugins/insertcode.js'][91]++; + code += cn.innerText(); + } + } + } + else { + _$jscoverage['plugins/insertcode.js'][94]++; + code += cn.data; + } +})); + _$jscoverage['plugins/insertcode.js'][97]++; + if ((! /\n$/.test(code))) { + _$jscoverage['plugins/insertcode.js'][98]++; + code += "\n"; + } + } + } + } + else { + _$jscoverage['plugins/insertcode.js'][102]++; + code += (node.data + "\n"); + } + _$jscoverage['plugins/insertcode.js'][104]++; + if (((! node.nextSibling()) && /\n$/.test(code))) { + _$jscoverage['plugins/insertcode.js'][105]++; + code = code.replace(/\n$/, ""); + } + } + else { + _$jscoverage['plugins/insertcode.js'][108]++; + if (browser.ie) { + _$jscoverage['plugins/insertcode.js'][110]++; + if ((node.type == "element")) { + _$jscoverage['plugins/insertcode.js'][111]++; + if ((node.tagName == "br")) { + _$jscoverage['plugins/insertcode.js'][112]++; + code += "
"; + } + else { + _$jscoverage['plugins/insertcode.js'][113]++; + if ((! dtd.$empty[node.tagName])) { + _$jscoverage['plugins/insertcode.js'][114]++; + utils.each(node.children, (function (cn) { + _$jscoverage['plugins/insertcode.js'][115]++; + if ((cn.type == "element")) { + _$jscoverage['plugins/insertcode.js'][116]++; + if ((cn.tagName == "br")) { + _$jscoverage['plugins/insertcode.js'][117]++; + code += "
"; + } + else { + _$jscoverage['plugins/insertcode.js'][118]++; + if ((! dtd.$empty[node.tagName])) { + _$jscoverage['plugins/insertcode.js'][119]++; + code += cn.innerText(); + } + } + } + else { + _$jscoverage['plugins/insertcode.js'][122]++; + code += cn.data; + } +})); + _$jscoverage['plugins/insertcode.js'][125]++; + if ((! /br>$/.test(code))) { + _$jscoverage['plugins/insertcode.js'][126]++; + code += "
"; + } + } + } + } + else { + _$jscoverage['plugins/insertcode.js'][130]++; + code += (node.data + "
"); + } + _$jscoverage['plugins/insertcode.js'][132]++; + if (((! node.nextSibling()) && /
$/.test(code))) { + _$jscoverage['plugins/insertcode.js'][133]++; + code = code.replace(/
$/, ""); + } + } + else { + _$jscoverage['plugins/insertcode.js'][137]++; + code += ((node.type == "element")? (dtd.$empty[node.tagName]? "": node.innerText()): node.data); + _$jscoverage['plugins/insertcode.js'][138]++; + if ((! /br\/?\s*>$/.test(code))) { + _$jscoverage['plugins/insertcode.js'][139]++; + if ((! node.nextSibling())) { + _$jscoverage['plugins/insertcode.js'][140]++; + return; + } + _$jscoverage['plugins/insertcode.js'][141]++; + code += "
"; + } + } + } +})); + } + _$jscoverage['plugins/insertcode.js'][149]++; + me.execCommand("inserthtml", ("
" + code + "
"), true); + _$jscoverage['plugins/insertcode.js'][151]++; + pre = me.document.getElementById("coder"); + _$jscoverage['plugins/insertcode.js'][152]++; + domUtils.removeAttributes(pre, "id"); + _$jscoverage['plugins/insertcode.js'][153]++; + var tmpNode = pre.previousSibling; + _$jscoverage['plugins/insertcode.js'][155]++; + if ((tmpNode && (((tmpNode.nodeType == 3) && (tmpNode.nodeValue.length == 1) && browser.ie && (browser.version == 6)) || domUtils.isEmptyBlock(tmpNode)))) { + _$jscoverage['plugins/insertcode.js'][157]++; + domUtils.remove(tmpNode); + } + _$jscoverage['plugins/insertcode.js'][159]++; + var rng = me.selection.getRange(); + _$jscoverage['plugins/insertcode.js'][160]++; + if (domUtils.isEmptyBlock(pre)) { + _$jscoverage['plugins/insertcode.js'][161]++; + rng.setStart(pre, 0).setCursor(false, true); + } + else { + _$jscoverage['plugins/insertcode.js'][163]++; + rng.selectNodeContents(pre).select(); + } + } +}), queryCommandValue: (function () { + _$jscoverage['plugins/insertcode.js'][171]++; + var path = this.selection.getStartElementPath(); + _$jscoverage['plugins/insertcode.js'][172]++; + var lang = ""; + _$jscoverage['plugins/insertcode.js'][173]++; + utils.each(path, (function (node) { + _$jscoverage['plugins/insertcode.js'][174]++; + if ((node.nodeName == "PRE")) { + _$jscoverage['plugins/insertcode.js'][175]++; + var match = node.className.match(/brush:([^;]+)/); + _$jscoverage['plugins/insertcode.js'][176]++; + lang = ((match && match[1])? match[1]: ""); + _$jscoverage['plugins/insertcode.js'][177]++; + return false; + } +})); + _$jscoverage['plugins/insertcode.js'][180]++; + return lang; +})}; + _$jscoverage['plugins/insertcode.js'][184]++; + me.addInputRule((function (root) { + _$jscoverage['plugins/insertcode.js'][185]++; + utils.each(root.getNodesByTagName("pre"), (function (pre) { + _$jscoverage['plugins/insertcode.js'][186]++; + var brs = pre.getNodesByTagName("br"); + _$jscoverage['plugins/insertcode.js'][187]++; + if (brs.length) { + _$jscoverage['plugins/insertcode.js'][188]++; + (browser.ie && (browser.version > 8) && utils.each(brs, (function (br) { + _$jscoverage['plugins/insertcode.js'][189]++; + var txt = UE.uNode.createText("\n"); + _$jscoverage['plugins/insertcode.js'][190]++; + br.parentNode.insertBefore(txt, br); + _$jscoverage['plugins/insertcode.js'][191]++; + br.parentNode.removeChild(br); +}))); + _$jscoverage['plugins/insertcode.js'][193]++; + return; + } + _$jscoverage['plugins/insertcode.js'][195]++; + if ((browser.ie && (browser.version > 8))) { + _$jscoverage['plugins/insertcode.js'][196]++; + return; + } + _$jscoverage['plugins/insertcode.js'][197]++; + var code = pre.innerText().split(/\n/); + _$jscoverage['plugins/insertcode.js'][198]++; + pre.innerHTML(""); + _$jscoverage['plugins/insertcode.js'][199]++; + utils.each(code, (function (c) { + _$jscoverage['plugins/insertcode.js'][200]++; + if (c.length) { + _$jscoverage['plugins/insertcode.js'][201]++; + pre.appendChild(UE.uNode.createText(c)); + } + _$jscoverage['plugins/insertcode.js'][203]++; + pre.appendChild(UE.uNode.createElement("br")); +})); +})); +})); + _$jscoverage['plugins/insertcode.js'][207]++; + me.addOutputRule((function (root) { + _$jscoverage['plugins/insertcode.js'][208]++; + utils.each(root.getNodesByTagName("pre"), (function (pre) { + _$jscoverage['plugins/insertcode.js'][209]++; + var code = ""; + _$jscoverage['plugins/insertcode.js'][210]++; + utils.each(pre.children, (function (n) { + _$jscoverage['plugins/insertcode.js'][211]++; + if ((n.type == "text")) { + _$jscoverage['plugins/insertcode.js'][214]++; + code += n.data.replace(/[ ]/g, " ").replace(/\n$/, ""); + } + else { + _$jscoverage['plugins/insertcode.js'][216]++; + if ((n.tagName == "br")) { + _$jscoverage['plugins/insertcode.js'][217]++; + code += "\n"; + } + else { + _$jscoverage['plugins/insertcode.js'][219]++; + code += ((! dtd.$empty[n.tagName])? "": n.innerText()); + } + } +})); + _$jscoverage['plugins/insertcode.js'][226]++; + pre.innerText(code.replace(/( |\n)+$/, "")); +})); +})); + _$jscoverage['plugins/insertcode.js'][230]++; + me.notNeedCodeQuery = {help: 1, undo: 1, redo: 1, source: 1, print: 1, searchreplace: 1, fullscreen: 1, preview: 1, insertparagraph: 1, elementpath: 1, highlightcode: 1, insertcode: 1, inserthtml: 1, selectall: 1}; + _$jscoverage['plugins/insertcode.js'][247]++; + var orgQuery = me.queryCommandState; + _$jscoverage['plugins/insertcode.js'][248]++; + me.queryCommandState = (function (cmd) { + _$jscoverage['plugins/insertcode.js'][249]++; + var me = this; + _$jscoverage['plugins/insertcode.js'][251]++; + if (((! me.notNeedCodeQuery[cmd.toLowerCase()]) && me.selection && me.queryCommandValue("insertcode"))) { + _$jscoverage['plugins/insertcode.js'][252]++; + return -1; + } + _$jscoverage['plugins/insertcode.js'][254]++; + return UE.Editor.prototype.queryCommandState.apply(this, arguments); +}); + _$jscoverage['plugins/insertcode.js'][256]++; + me.addListener("beforeenterkeydown", (function () { + _$jscoverage['plugins/insertcode.js'][257]++; + var rng = me.selection.getRange(); + _$jscoverage['plugins/insertcode.js'][258]++; + var pre = domUtils.findParentByTagName(rng.startContainer, "pre", true); + _$jscoverage['plugins/insertcode.js'][259]++; + if (pre) { + _$jscoverage['plugins/insertcode.js'][260]++; + me.fireEvent("saveScene"); + _$jscoverage['plugins/insertcode.js'][261]++; + if ((! rng.collapsed)) { + _$jscoverage['plugins/insertcode.js'][262]++; + rng.deleteContents(); + } + _$jscoverage['plugins/insertcode.js'][264]++; + if ((! browser.ie)) { + _$jscoverage['plugins/insertcode.js'][265]++; + var tmpNode = me.document.createElement("br"), pre = pre; + _$jscoverage['plugins/insertcode.js'][266]++; + rng.insertNode(tmpNode).setStartAfter(tmpNode).collapse(true); + _$jscoverage['plugins/insertcode.js'][267]++; + var next = tmpNode.nextSibling; + _$jscoverage['plugins/insertcode.js'][268]++; + if ((! next)) { + _$jscoverage['plugins/insertcode.js'][269]++; + rng.insertNode(tmpNode.cloneNode(false)); + } + else { + _$jscoverage['plugins/insertcode.js'][271]++; + rng.setStartAfter(tmpNode); + } + _$jscoverage['plugins/insertcode.js'][273]++; + pre = tmpNode.previousSibling; + _$jscoverage['plugins/insertcode.js'][274]++; + var tmp; + _$jscoverage['plugins/insertcode.js'][275]++; + while (pre) { + _$jscoverage['plugins/insertcode.js'][276]++; + tmp = pre; + _$jscoverage['plugins/insertcode.js'][277]++; + pre = pre.previousSibling; + _$jscoverage['plugins/insertcode.js'][278]++; + if (((! pre) || (pre.nodeName == "BR"))) { + _$jscoverage['plugins/insertcode.js'][279]++; + pre = tmp; + _$jscoverage['plugins/insertcode.js'][280]++; + break; + } +} + _$jscoverage['plugins/insertcode.js'][283]++; + if (pre) { + _$jscoverage['plugins/insertcode.js'][284]++; + var str = ""; + _$jscoverage['plugins/insertcode.js'][285]++; + while ((pre && (pre.nodeName != "BR") && new RegExp(("^[\\s" + domUtils.fillChar + "]*$")).test(pre.nodeValue))) { + _$jscoverage['plugins/insertcode.js'][286]++; + str += pre.nodeValue; + _$jscoverage['plugins/insertcode.js'][287]++; + pre = pre.nextSibling; +} + _$jscoverage['plugins/insertcode.js'][289]++; + if ((pre.nodeName != "BR")) { + _$jscoverage['plugins/insertcode.js'][290]++; + var match = pre.nodeValue.match(new RegExp(("^([\\s" + domUtils.fillChar + "]+)"))); + _$jscoverage['plugins/insertcode.js'][291]++; + if ((match && match[1])) { + _$jscoverage['plugins/insertcode.js'][292]++; + str += match[1]; + } + } + _$jscoverage['plugins/insertcode.js'][296]++; + if (str) { + _$jscoverage['plugins/insertcode.js'][297]++; + str = me.document.createTextNode(str); + _$jscoverage['plugins/insertcode.js'][298]++; + rng.insertNode(str).setStartAfter(str); + } + } + _$jscoverage['plugins/insertcode.js'][301]++; + rng.collapse(true).select(true); + } + else { + _$jscoverage['plugins/insertcode.js'][303]++; + if ((browser.version > 8)) { + _$jscoverage['plugins/insertcode.js'][305]++; + var txt = me.document.createTextNode("\n"); + _$jscoverage['plugins/insertcode.js'][306]++; + var start = rng.startContainer; + _$jscoverage['plugins/insertcode.js'][307]++; + if ((rng.startOffset == 0)) { + _$jscoverage['plugins/insertcode.js'][308]++; + var preNode = start.previousSibling; + _$jscoverage['plugins/insertcode.js'][309]++; + if (preNode) { + _$jscoverage['plugins/insertcode.js'][310]++; + rng.insertNode(txt); + _$jscoverage['plugins/insertcode.js'][311]++; + var fillchar = me.document.createTextNode(" "); + _$jscoverage['plugins/insertcode.js'][312]++; + rng.setStartAfter(txt).insertNode(fillchar).setStart(fillchar, 0).collapse(true).select(true); + } + } + else { + _$jscoverage['plugins/insertcode.js'][315]++; + rng.insertNode(txt).setStartAfter(txt); + _$jscoverage['plugins/insertcode.js'][316]++; + var fillchar = me.document.createTextNode(" "); + _$jscoverage['plugins/insertcode.js'][317]++; + start = rng.startContainer.childNodes[rng.startOffset]; + _$jscoverage['plugins/insertcode.js'][318]++; + if ((start && (! /^\n/.test(start.nodeValue)))) { + _$jscoverage['plugins/insertcode.js'][319]++; + rng.setStartBefore(txt); + } + _$jscoverage['plugins/insertcode.js'][321]++; + rng.insertNode(fillchar).setStart(fillchar, 0).collapse(true).select(true); + } + } + else { + _$jscoverage['plugins/insertcode.js'][325]++; + var tmpNode = me.document.createElement("br"); + _$jscoverage['plugins/insertcode.js'][326]++; + rng.insertNode(tmpNode); + _$jscoverage['plugins/insertcode.js'][327]++; + rng.insertNode(me.document.createTextNode(domUtils.fillChar)); + _$jscoverage['plugins/insertcode.js'][328]++; + rng.setStartAfter(tmpNode); + _$jscoverage['plugins/insertcode.js'][329]++; + pre = tmpNode.previousSibling; + _$jscoverage['plugins/insertcode.js'][330]++; + var tmp = tmp; + _$jscoverage['plugins/insertcode.js'][331]++; + while (pre) { + _$jscoverage['plugins/insertcode.js'][332]++; + tmp = pre; + _$jscoverage['plugins/insertcode.js'][333]++; + pre = pre.previousSibling; + _$jscoverage['plugins/insertcode.js'][334]++; + if (((! pre) || (pre.nodeName == "BR"))) { + _$jscoverage['plugins/insertcode.js'][335]++; + pre = tmp; + _$jscoverage['plugins/insertcode.js'][336]++; + break; + } +} + _$jscoverage['plugins/insertcode.js'][339]++; + if (pre) { + _$jscoverage['plugins/insertcode.js'][340]++; + var str = ""; + _$jscoverage['plugins/insertcode.js'][341]++; + while ((pre && (pre.nodeName != "BR") && new RegExp(("^[ " + domUtils.fillChar + "]*$")).test(pre.nodeValue))) { + _$jscoverage['plugins/insertcode.js'][342]++; + str += pre.nodeValue; + _$jscoverage['plugins/insertcode.js'][343]++; + pre = pre.nextSibling; +} + _$jscoverage['plugins/insertcode.js'][345]++; + if ((pre.nodeName != "BR")) { + _$jscoverage['plugins/insertcode.js'][346]++; + var match = pre.nodeValue.match(new RegExp(("^([ " + domUtils.fillChar + "]+)"))); + _$jscoverage['plugins/insertcode.js'][347]++; + if ((match && match[1])) { + _$jscoverage['plugins/insertcode.js'][348]++; + str += match[1]; + } + } + _$jscoverage['plugins/insertcode.js'][353]++; + str = me.document.createTextNode(str); + _$jscoverage['plugins/insertcode.js'][354]++; + rng.insertNode(str).setStartAfter(str); + } + _$jscoverage['plugins/insertcode.js'][356]++; + rng.collapse(true).select(); + } + } + _$jscoverage['plugins/insertcode.js'][361]++; + me.fireEvent("saveScene"); + _$jscoverage['plugins/insertcode.js'][362]++; + return true; + } +})); + _$jscoverage['plugins/insertcode.js'][368]++; + me.addListener("tabkeydown", (function (cmd, evt) { + _$jscoverage['plugins/insertcode.js'][369]++; + var rng = me.selection.getRange(); + _$jscoverage['plugins/insertcode.js'][370]++; + var pre = domUtils.findParentByTagName(rng.startContainer, "pre", true); + _$jscoverage['plugins/insertcode.js'][371]++; + if (pre) { + _$jscoverage['plugins/insertcode.js'][372]++; + me.fireEvent("saveScene"); + _$jscoverage['plugins/insertcode.js'][373]++; + if (evt.shiftKey) { + } + else { + _$jscoverage['plugins/insertcode.js'][436]++; + if ((! rng.collapsed)) { + _$jscoverage['plugins/insertcode.js'][437]++; + var bk = rng.createBookmark(); + _$jscoverage['plugins/insertcode.js'][438]++; + var start = bk.start.previousSibling; + _$jscoverage['plugins/insertcode.js'][440]++; + while (start) { + _$jscoverage['plugins/insertcode.js'][441]++; + if (((pre.firstChild === start) && (! domUtils.isBr(start)))) { + _$jscoverage['plugins/insertcode.js'][442]++; + pre.insertBefore(me.document.createTextNode(" "), start); + _$jscoverage['plugins/insertcode.js'][444]++; + break; + } + _$jscoverage['plugins/insertcode.js'][446]++; + if (domUtils.isBr(start)) { + _$jscoverage['plugins/insertcode.js'][447]++; + pre.insertBefore(me.document.createTextNode(" "), start.nextSibling); + _$jscoverage['plugins/insertcode.js'][449]++; + break; + } + _$jscoverage['plugins/insertcode.js'][451]++; + start = start.previousSibling; +} + _$jscoverage['plugins/insertcode.js'][453]++; + var end = bk.end; + _$jscoverage['plugins/insertcode.js'][454]++; + start = bk.start.nextSibling; + _$jscoverage['plugins/insertcode.js'][455]++; + if ((pre.firstChild === bk.start)) { + _$jscoverage['plugins/insertcode.js'][456]++; + pre.insertBefore(me.document.createTextNode(" "), start.nextSibling); + } + _$jscoverage['plugins/insertcode.js'][459]++; + while ((start && (start !== end))) { + _$jscoverage['plugins/insertcode.js'][460]++; + if ((domUtils.isBr(start) && start.nextSibling)) { + _$jscoverage['plugins/insertcode.js'][461]++; + if ((start.nextSibling === end)) { + _$jscoverage['plugins/insertcode.js'][462]++; + break; + } + _$jscoverage['plugins/insertcode.js'][464]++; + pre.insertBefore(me.document.createTextNode(" "), start.nextSibling); + } + _$jscoverage['plugins/insertcode.js'][467]++; + start = start.nextSibling; +} + _$jscoverage['plugins/insertcode.js'][469]++; + rng.moveToBookmark(bk).select(); + } + else { + _$jscoverage['plugins/insertcode.js'][471]++; + var tmpNode = me.document.createTextNode(" "); + _$jscoverage['plugins/insertcode.js'][472]++; + rng.insertNode(tmpNode).setStartAfter(tmpNode).collapse(true).select(true); + } + } + _$jscoverage['plugins/insertcode.js'][477]++; + me.fireEvent("saveScene"); + _$jscoverage['plugins/insertcode.js'][478]++; + return true; + } +})); + _$jscoverage['plugins/insertcode.js'][485]++; + me.addListener("beforeinserthtml", (function (evtName, html) { + _$jscoverage['plugins/insertcode.js'][486]++; + var me = this, rng = me.selection.getRange(), pre = domUtils.findParentByTagName(rng.startContainer, "pre", true); + _$jscoverage['plugins/insertcode.js'][489]++; + if (pre) { + _$jscoverage['plugins/insertcode.js'][490]++; + if ((! rng.collapsed)) { + _$jscoverage['plugins/insertcode.js'][491]++; + rng.deleteContents(); + } + _$jscoverage['plugins/insertcode.js'][493]++; + var htmlstr = ""; + _$jscoverage['plugins/insertcode.js'][494]++; + if ((browser.ie && (browser.version > 8))) { + _$jscoverage['plugins/insertcode.js'][496]++; + utils.each(UE.filterNode(UE.htmlparser(html), me.options.filterTxtRules).children, (function (node) { + _$jscoverage['plugins/insertcode.js'][497]++; + if ((node.type == "element")) { + _$jscoverage['plugins/insertcode.js'][498]++; + if ((node.tagName == "br")) { + _$jscoverage['plugins/insertcode.js'][499]++; + htmlstr += "\n"; + } + else { + _$jscoverage['plugins/insertcode.js'][500]++; + if ((! dtd.$empty[node.tagName])) { + _$jscoverage['plugins/insertcode.js'][501]++; + utils.each(node.children, (function (cn) { + _$jscoverage['plugins/insertcode.js'][502]++; + if ((cn.type == "element")) { + _$jscoverage['plugins/insertcode.js'][503]++; + if ((cn.tagName == "br")) { + _$jscoverage['plugins/insertcode.js'][504]++; + htmlstr += "\n"; + } + else { + _$jscoverage['plugins/insertcode.js'][505]++; + if ((! dtd.$empty[node.tagName])) { + _$jscoverage['plugins/insertcode.js'][506]++; + htmlstr += cn.innerText(); + } + } + } + else { + _$jscoverage['plugins/insertcode.js'][509]++; + htmlstr += cn.data; + } +})); + _$jscoverage['plugins/insertcode.js'][512]++; + if ((! /\n$/.test(htmlstr))) { + _$jscoverage['plugins/insertcode.js'][513]++; + htmlstr += "\n"; + } + } + } + } + else { + _$jscoverage['plugins/insertcode.js'][517]++; + htmlstr += (node.data + "\n"); + } + _$jscoverage['plugins/insertcode.js'][519]++; + if (((! node.nextSibling()) && /\n$/.test(htmlstr))) { + _$jscoverage['plugins/insertcode.js'][520]++; + htmlstr = htmlstr.replace(/\n$/, ""); + } +})); + _$jscoverage['plugins/insertcode.js'][523]++; + var tmpNode = me.document.createTextNode(utils.html(htmlstr.replace(/ /g, " "))); + _$jscoverage['plugins/insertcode.js'][524]++; + rng.insertNode(tmpNode).selectNode(tmpNode).select(); + } + else { + _$jscoverage['plugins/insertcode.js'][526]++; + var frag = me.document.createDocumentFragment(); + _$jscoverage['plugins/insertcode.js'][528]++; + utils.each(UE.filterNode(UE.htmlparser(html), me.options.filterTxtRules).children, (function (node) { + _$jscoverage['plugins/insertcode.js'][529]++; + if ((node.type == "element")) { + _$jscoverage['plugins/insertcode.js'][530]++; + if ((node.tagName == "br")) { + _$jscoverage['plugins/insertcode.js'][531]++; + frag.appendChild(me.document.createElement("br")); + } + else { + _$jscoverage['plugins/insertcode.js'][532]++; + if ((! dtd.$empty[node.tagName])) { + _$jscoverage['plugins/insertcode.js'][533]++; + utils.each(node.children, (function (cn) { + _$jscoverage['plugins/insertcode.js'][534]++; + if ((cn.type == "element")) { + _$jscoverage['plugins/insertcode.js'][535]++; + if ((cn.tagName == "br")) { + _$jscoverage['plugins/insertcode.js'][537]++; + frag.appendChild(me.document.createElement("br")); + } + else { + _$jscoverage['plugins/insertcode.js'][538]++; + if ((! dtd.$empty[node.tagName])) { + _$jscoverage['plugins/insertcode.js'][539]++; + frag.appendChild(me.document.createTextNode(utils.html(cn.innerText().replace(/ /g, " ")))); + } + } + } + else { + _$jscoverage['plugins/insertcode.js'][543]++; + frag.appendChild(me.document.createTextNode(utils.html(cn.data.replace(/ /g, " ")))); + } +})); + _$jscoverage['plugins/insertcode.js'][547]++; + if ((frag.lastChild.nodeName != "BR")) { + _$jscoverage['plugins/insertcode.js'][548]++; + frag.appendChild(me.document.createElement("br")); + } + } + } + } + else { + _$jscoverage['plugins/insertcode.js'][552]++; + frag.appendChild(me.document.createTextNode(utils.html(node.data.replace(/ /g, " ")))); + } + _$jscoverage['plugins/insertcode.js'][554]++; + if (((! node.nextSibling()) && (frag.lastChild.nodeName == "BR"))) { + _$jscoverage['plugins/insertcode.js'][555]++; + frag.removeChild(frag.lastChild); + } +})); + _$jscoverage['plugins/insertcode.js'][560]++; + rng.insertNode(frag).select(); + } + _$jscoverage['plugins/insertcode.js'][564]++; + return true; + } +})); + _$jscoverage['plugins/insertcode.js'][568]++; + me.addListener("keydown", (function (cmd, evt) { + _$jscoverage['plugins/insertcode.js'][569]++; + var me = this, keyCode = (evt.keyCode || evt.which); + _$jscoverage['plugins/insertcode.js'][570]++; + if ((keyCode == 40)) { + _$jscoverage['plugins/insertcode.js'][571]++; + var rng = me.selection.getRange(), pre, start = rng.startContainer; + _$jscoverage['plugins/insertcode.js'][572]++; + if ((rng.collapsed && (pre = domUtils.findParentByTagName(rng.startContainer, "pre", true)) && (! pre.nextSibling))) { + _$jscoverage['plugins/insertcode.js'][573]++; + var last = pre.lastChild; + _$jscoverage['plugins/insertcode.js'][574]++; + while ((last && (last.nodeName == "BR"))) { + _$jscoverage['plugins/insertcode.js'][575]++; + last = last.previousSibling; +} + _$jscoverage['plugins/insertcode.js'][577]++; + if (((last === start) || ((rng.startContainer === pre) && (rng.startOffset == pre.childNodes.length)))) { + _$jscoverage['plugins/insertcode.js'][578]++; + me.execCommand("insertparagraph"); + _$jscoverage['plugins/insertcode.js'][579]++; + domUtils.preventDefault(evt); + } + } + } +})); + _$jscoverage['plugins/insertcode.js'][586]++; + me.addListener("delkeydown", (function (type, evt) { + _$jscoverage['plugins/insertcode.js'][587]++; + var rng = this.selection.getRange(); + _$jscoverage['plugins/insertcode.js'][588]++; + rng.txtToElmBoundary(true); + _$jscoverage['plugins/insertcode.js'][589]++; + var start = rng.startContainer; + _$jscoverage['plugins/insertcode.js'][590]++; + if ((domUtils.isTagNode(start, "pre") && rng.collapsed && domUtils.isStartInblock(rng))) { + _$jscoverage['plugins/insertcode.js'][591]++; + var p = me.document.createElement("p"); + _$jscoverage['plugins/insertcode.js'][592]++; + domUtils.fillNode(me.document, p); + _$jscoverage['plugins/insertcode.js'][593]++; + start.parentNode.insertBefore(p, start); + _$jscoverage['plugins/insertcode.js'][594]++; + domUtils.remove(start); + _$jscoverage['plugins/insertcode.js'][595]++; + rng.setStart(p, 0).setCursor(false, true); + _$jscoverage['plugins/insertcode.js'][596]++; + domUtils.preventDefault(evt); + _$jscoverage['plugins/insertcode.js'][597]++; + return true; + } +})); +}); diff --git a/_test/coverage/plugins/inserthtml.js b/_test/coverage/plugins/inserthtml.js new file mode 100644 index 000000000..2e7ccbac2 --- /dev/null +++ b/_test/coverage/plugins/inserthtml.js @@ -0,0 +1,504 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/inserthtml.js']) { + _$jscoverage['plugins/inserthtml.js'] = []; + _$jscoverage['plugins/inserthtml.js'][31] = 0; + _$jscoverage['plugins/inserthtml.js'][33] = 0; + _$jscoverage['plugins/inserthtml.js'][36] = 0; + _$jscoverage['plugins/inserthtml.js'][37] = 0; + _$jscoverage['plugins/inserthtml.js'][39] = 0; + _$jscoverage['plugins/inserthtml.js'][40] = 0; + _$jscoverage['plugins/inserthtml.js'][42] = 0; + _$jscoverage['plugins/inserthtml.js'][43] = 0; + _$jscoverage['plugins/inserthtml.js'][44] = 0; + _$jscoverage['plugins/inserthtml.js'][46] = 0; + _$jscoverage['plugins/inserthtml.js'][47] = 0; + _$jscoverage['plugins/inserthtml.js'][49] = 0; + _$jscoverage['plugins/inserthtml.js'][50] = 0; + _$jscoverage['plugins/inserthtml.js'][53] = 0; + _$jscoverage['plugins/inserthtml.js'][54] = 0; + _$jscoverage['plugins/inserthtml.js'][56] = 0; + _$jscoverage['plugins/inserthtml.js'][58] = 0; + _$jscoverage['plugins/inserthtml.js'][59] = 0; + _$jscoverage['plugins/inserthtml.js'][60] = 0; + _$jscoverage['plugins/inserthtml.js'][61] = 0; + _$jscoverage['plugins/inserthtml.js'][63] = 0; + _$jscoverage['plugins/inserthtml.js'][64] = 0; + _$jscoverage['plugins/inserthtml.js'][65] = 0; + _$jscoverage['plugins/inserthtml.js'][67] = 0; + _$jscoverage['plugins/inserthtml.js'][70] = 0; + _$jscoverage['plugins/inserthtml.js'][71] = 0; + _$jscoverage['plugins/inserthtml.js'][72] = 0; + _$jscoverage['plugins/inserthtml.js'][73] = 0; + _$jscoverage['plugins/inserthtml.js'][76] = 0; + _$jscoverage['plugins/inserthtml.js'][77] = 0; + _$jscoverage['plugins/inserthtml.js'][78] = 0; + _$jscoverage['plugins/inserthtml.js'][79] = 0; + _$jscoverage['plugins/inserthtml.js'][80] = 0; + _$jscoverage['plugins/inserthtml.js'][81] = 0; + _$jscoverage['plugins/inserthtml.js'][82] = 0; + _$jscoverage['plugins/inserthtml.js'][87] = 0; + _$jscoverage['plugins/inserthtml.js'][88] = 0; + _$jscoverage['plugins/inserthtml.js'][89] = 0; + _$jscoverage['plugins/inserthtml.js'][90] = 0; + _$jscoverage['plugins/inserthtml.js'][91] = 0; + _$jscoverage['plugins/inserthtml.js'][92] = 0; + _$jscoverage['plugins/inserthtml.js'][93] = 0; + _$jscoverage['plugins/inserthtml.js'][95] = 0; + _$jscoverage['plugins/inserthtml.js'][102] = 0; + _$jscoverage['plugins/inserthtml.js'][104] = 0; + _$jscoverage['plugins/inserthtml.js'][105] = 0; + _$jscoverage['plugins/inserthtml.js'][106] = 0; + _$jscoverage['plugins/inserthtml.js'][107] = 0; + _$jscoverage['plugins/inserthtml.js'][108] = 0; + _$jscoverage['plugins/inserthtml.js'][109] = 0; + _$jscoverage['plugins/inserthtml.js'][110] = 0; + _$jscoverage['plugins/inserthtml.js'][111] = 0; + _$jscoverage['plugins/inserthtml.js'][112] = 0; + _$jscoverage['plugins/inserthtml.js'][116] = 0; + _$jscoverage['plugins/inserthtml.js'][117] = 0; + _$jscoverage['plugins/inserthtml.js'][118] = 0; + _$jscoverage['plugins/inserthtml.js'][119] = 0; + _$jscoverage['plugins/inserthtml.js'][121] = 0; + _$jscoverage['plugins/inserthtml.js'][122] = 0; + _$jscoverage['plugins/inserthtml.js'][123] = 0; + _$jscoverage['plugins/inserthtml.js'][124] = 0; + _$jscoverage['plugins/inserthtml.js'][125] = 0; + _$jscoverage['plugins/inserthtml.js'][128] = 0; + _$jscoverage['plugins/inserthtml.js'][129] = 0; + _$jscoverage['plugins/inserthtml.js'][130] = 0; + _$jscoverage['plugins/inserthtml.js'][131] = 0; + _$jscoverage['plugins/inserthtml.js'][132] = 0; + _$jscoverage['plugins/inserthtml.js'][133] = 0; + _$jscoverage['plugins/inserthtml.js'][135] = 0; + _$jscoverage['plugins/inserthtml.js'][137] = 0; + _$jscoverage['plugins/inserthtml.js'][138] = 0; + _$jscoverage['plugins/inserthtml.js'][139] = 0; + _$jscoverage['plugins/inserthtml.js'][140] = 0; + _$jscoverage['plugins/inserthtml.js'][141] = 0; + _$jscoverage['plugins/inserthtml.js'][142] = 0; + _$jscoverage['plugins/inserthtml.js'][143] = 0; + _$jscoverage['plugins/inserthtml.js'][144] = 0; + _$jscoverage['plugins/inserthtml.js'][148] = 0; + _$jscoverage['plugins/inserthtml.js'][149] = 0; + _$jscoverage['plugins/inserthtml.js'][150] = 0; + _$jscoverage['plugins/inserthtml.js'][152] = 0; + _$jscoverage['plugins/inserthtml.js'][154] = 0; + _$jscoverage['plugins/inserthtml.js'][157] = 0; + _$jscoverage['plugins/inserthtml.js'][158] = 0; + _$jscoverage['plugins/inserthtml.js'][159] = 0; + _$jscoverage['plugins/inserthtml.js'][160] = 0; + _$jscoverage['plugins/inserthtml.js'][161] = 0; + _$jscoverage['plugins/inserthtml.js'][162] = 0; + _$jscoverage['plugins/inserthtml.js'][163] = 0; + _$jscoverage['plugins/inserthtml.js'][165] = 0; + _$jscoverage['plugins/inserthtml.js'][167] = 0; + _$jscoverage['plugins/inserthtml.js'][170] = 0; + _$jscoverage['plugins/inserthtml.js'][171] = 0; + _$jscoverage['plugins/inserthtml.js'][172] = 0; + _$jscoverage['plugins/inserthtml.js'][174] = 0; + _$jscoverage['plugins/inserthtml.js'][175] = 0; + _$jscoverage['plugins/inserthtml.js'][176] = 0; + _$jscoverage['plugins/inserthtml.js'][177] = 0; + _$jscoverage['plugins/inserthtml.js'][179] = 0; + _$jscoverage['plugins/inserthtml.js'][180] = 0; + _$jscoverage['plugins/inserthtml.js'][181] = 0; + _$jscoverage['plugins/inserthtml.js'][182] = 0; + _$jscoverage['plugins/inserthtml.js'][188] = 0; + _$jscoverage['plugins/inserthtml.js'][190] = 0; + _$jscoverage['plugins/inserthtml.js'][191] = 0; + _$jscoverage['plugins/inserthtml.js'][192] = 0; + _$jscoverage['plugins/inserthtml.js'][193] = 0; + _$jscoverage['plugins/inserthtml.js'][197] = 0; + _$jscoverage['plugins/inserthtml.js'][202] = 0; + _$jscoverage['plugins/inserthtml.js'][204] = 0; + _$jscoverage['plugins/inserthtml.js'][207] = 0; + _$jscoverage['plugins/inserthtml.js'][208] = 0; + _$jscoverage['plugins/inserthtml.js'][210] = 0; + _$jscoverage['plugins/inserthtml.js'][211] = 0; + _$jscoverage['plugins/inserthtml.js'][213] = 0; + _$jscoverage['plugins/inserthtml.js'][217] = 0; + _$jscoverage['plugins/inserthtml.js'][219] = 0; + _$jscoverage['plugins/inserthtml.js'][220] = 0; + _$jscoverage['plugins/inserthtml.js'][223] = 0; + _$jscoverage['plugins/inserthtml.js'][224] = 0; + _$jscoverage['plugins/inserthtml.js'][225] = 0; + _$jscoverage['plugins/inserthtml.js'][226] = 0; + _$jscoverage['plugins/inserthtml.js'][228] = 0; + _$jscoverage['plugins/inserthtml.js'][232] = 0; + _$jscoverage['plugins/inserthtml.js'][233] = 0; + _$jscoverage['plugins/inserthtml.js'][235] = 0; + _$jscoverage['plugins/inserthtml.js'][236] = 0; + _$jscoverage['plugins/inserthtml.js'][243] = 0; + _$jscoverage['plugins/inserthtml.js'][244] = 0; + _$jscoverage['plugins/inserthtml.js'][251] = 0; + _$jscoverage['plugins/inserthtml.js'][252] = 0; + _$jscoverage['plugins/inserthtml.js'][253] = 0; + _$jscoverage['plugins/inserthtml.js'][254] = 0; +} +_$jscoverage['plugins/inserthtml.js'].source = ["/**"," * 插入html字符串插件"," * @file"," * @since 1.2.6.1"," */","","/**"," * 对编辑器区域插入html字符串"," * @command inserthtml"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @param { String } html 插入的html字符串"," * @example"," * ```javascript"," * editor.execCommand( 'insertcode', '<p>我是UEdtior开发者</P>' );"," * ```"," */","/**"," * 对编辑器区域插入html字符串"," * @command inserthtml"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @param { String } html 插入的html字符串"," * @param { Bool } notNeedFilter 传true时不走过滤规则,反之要走配置项过滤规则"," * @example"," * ```javascript"," * editor.execCommand( 'inserthtml', '<div>我是UEdtior开发者</div>' ,true);"," * ```"," */","","UE.commands['inserthtml'] = {"," execCommand: function (command,html,notNeedFilter){"," var me = this,"," range,"," div;"," if(!html){"," return;"," }"," if(me.fireEvent('beforeinserthtml',html) === true){"," return;"," }"," range = me.selection.getRange();"," div = range.document.createElement( 'div' );"," div.style.display = 'inline';",""," if (!notNeedFilter) {"," var root = UE.htmlparser(html);"," //如果给了过滤规则就先进行过滤"," if(me.options.filterRules){"," UE.filterNode(root,me.options.filterRules);"," }"," //执行默认的处理"," me.filterInputRule(root);"," html = root.toHtml()"," }"," div.innerHTML = utils.trim( html );",""," if ( !range.collapsed ) {"," var tmpNode = range.startContainer;"," if(domUtils.isFillChar(tmpNode)){"," range.setStartBefore(tmpNode)"," }"," tmpNode = range.endContainer;"," if(domUtils.isFillChar(tmpNode)){"," range.setEndAfter(tmpNode)"," }"," range.txtToElmBoundary();"," //结束边界可能放到了br的前边,要把br包含进来"," // x[xxx]<br/>"," if(range.endContainer && range.endContainer.nodeType == 1){"," tmpNode = range.endContainer.childNodes[range.endOffset];"," if(tmpNode && domUtils.isBr(tmpNode)){"," range.setEndAfter(tmpNode);"," }"," }"," if(range.startOffset == 0){"," tmpNode = range.startContainer;"," if(domUtils.isBoundaryNode(tmpNode,'firstChild') ){"," tmpNode = range.endContainer;"," if(range.endOffset == (tmpNode.nodeType == 3 ? tmpNode.nodeValue.length : tmpNode.childNodes.length) && domUtils.isBoundaryNode(tmpNode,'lastChild')){"," me.body.innerHTML = '<p>'+(browser.ie ? '' : '<br/>')+'</p>';"," range.setStart(me.body.firstChild,0).collapse(true)",""," }"," }"," }"," !range.collapsed && range.deleteContents();"," if(range.startContainer.nodeType == 1){"," var child = range.startContainer.childNodes[range.startOffset],pre;"," if(child && domUtils.isBlockElm(child) && (pre = child.previousSibling) && domUtils.isBlockElm(pre)){"," range.setEnd(pre,pre.childNodes.length).collapse();"," while(child.firstChild){"," pre.appendChild(child.firstChild);"," }"," domUtils.remove(child);"," }"," }",""," }","",""," var child,parent,pre,tmp,hadBreak = 0, nextNode;"," //如果当前位置选中了fillchar要干掉,要不会产生空行"," if(range.inFillChar()){"," child = range.startContainer;"," if(domUtils.isFillChar(child)){"," range.setStartBefore(child).collapse(true);"," domUtils.remove(child);"," }else if(domUtils.isFillChar(child,true)){"," child.nodeValue = child.nodeValue.replace(fillCharReg,'');"," range.startOffset--;"," range.collapsed && range.collapse(true)"," }"," }"," //列表单独处理"," var li = domUtils.findParentByTagName(range.startContainer,'li',true);"," if(li){"," var next,last;"," while(child = div.firstChild){"," //针对hr单独处理一下先"," while(child && (child.nodeType == 3 || !domUtils.isBlockElm(child) || child.tagName=='HR' )){"," next = child.nextSibling;"," range.insertNode( child).collapse();"," last = child;"," child = next;",""," }"," if(child){"," if(/^(ol|ul)$/i.test(child.tagName)){"," while(child.firstChild){"," last = child.firstChild;"," domUtils.insertAfter(li,child.firstChild);"," li = li.nextSibling;"," }"," domUtils.remove(child)"," }else{"," var tmpLi;"," next = child.nextSibling;"," tmpLi = me.document.createElement('li');"," domUtils.insertAfter(li,tmpLi);"," tmpLi.appendChild(child);"," last = child;"," child = next;"," li = tmpLi;"," }"," }"," }"," li = domUtils.findParentByTagName(range.startContainer,'li',true);"," if(domUtils.isEmptyBlock(li)){"," domUtils.remove(li)"," }"," if(last){",""," range.setStartAfter(last).collapse(true).select(true)"," }"," }else{"," while ( child = div.firstChild ) {"," if(hadBreak){"," var p = me.document.createElement('p');"," while(child && (child.nodeType == 3 || !dtd.$block[child.tagName])){"," nextNode = child.nextSibling;"," p.appendChild(child);"," child = nextNode;"," }"," if(p.firstChild){",""," child = p"," }"," }"," range.insertNode( child );"," nextNode = child.nextSibling;"," if ( !hadBreak && child.nodeType == domUtils.NODE_ELEMENT && domUtils.isBlockElm( child ) ){",""," parent = domUtils.findParent( child,function ( node ){ return domUtils.isBlockElm( node ); } );"," if ( parent && parent.tagName.toLowerCase() != 'body' && !(dtd[parent.tagName][child.nodeName] && child.parentNode === parent)){"," if(!dtd[parent.tagName][child.nodeName]){"," pre = parent;"," }else{"," tmp = child.parentNode;"," while (tmp !== parent){"," pre = tmp;"," tmp = tmp.parentNode;",""," }"," }","",""," domUtils.breakParent( child, pre || tmp );"," //去掉break后前一个多余的节点 <p>|<[p> ==> <p></p><div></div><p>|</p>"," var pre = child.previousSibling;"," domUtils.trimWhiteTextNode(pre);"," if(!pre.childNodes.length){"," domUtils.remove(pre);"," }"," //trace:2012,在非ie的情况,切开后剩下的节点有可能不能点入光标添加br占位",""," if(!browser.ie &&"," (next = child.nextSibling) &&"," domUtils.isBlockElm(next) &&"," next.lastChild &&"," !domUtils.isBr(next.lastChild)){"," next.appendChild(me.document.createElement('br'));"," }"," hadBreak = 1;"," }"," }"," var next = child.nextSibling;"," if(!div.firstChild && next && domUtils.isBlockElm(next)){",""," range.setStart(next,0).collapse(true);"," break;"," }"," range.setEndAfter( child ).collapse();",""," }",""," child = range.startContainer;",""," if(nextNode && domUtils.isBr(nextNode)){"," domUtils.remove(nextNode)"," }"," //用chrome可能有空白展位符"," if(domUtils.isBlockElm(child) && domUtils.isEmptyNode(child)){"," if(nextNode = child.nextSibling){"," domUtils.remove(child);"," if(nextNode.nodeType == 1 && dtd.$block[nextNode.tagName]){",""," range.setStart(nextNode,0).collapse(true).shrinkBoundary()"," }"," }else{",""," try{"," child.innerHTML = browser.ie ? domUtils.fillChar : '<br/>';"," }catch(e){"," range.setStartBefore(child);"," domUtils.remove(child)"," }",""," }",""," }"," //加上true因为在删除表情等时会删两次,第一次是删的fillData"," try{"," range.select(true);"," }catch(e){}",""," }","","",""," setTimeout(function(){"," range = me.selection.getRange();"," range.scrollToView(me.autoHeightEnabled,me.autoHeightEnabled ? domUtils.getXY(me.iframe).y:0);"," me.fireEvent('afterinserthtml');"," },200);"," }","};"]; +_$jscoverage['plugins/inserthtml.js'][31]++; +UE.commands.inserthtml = {execCommand: (function (command, html, notNeedFilter) { + _$jscoverage['plugins/inserthtml.js'][33]++; + var me = this, range, div; + _$jscoverage['plugins/inserthtml.js'][36]++; + if ((! html)) { + _$jscoverage['plugins/inserthtml.js'][37]++; + return; + } + _$jscoverage['plugins/inserthtml.js'][39]++; + if ((me.fireEvent("beforeinserthtml", html) === true)) { + _$jscoverage['plugins/inserthtml.js'][40]++; + return; + } + _$jscoverage['plugins/inserthtml.js'][42]++; + range = me.selection.getRange(); + _$jscoverage['plugins/inserthtml.js'][43]++; + div = range.document.createElement("div"); + _$jscoverage['plugins/inserthtml.js'][44]++; + div.style.display = "inline"; + _$jscoverage['plugins/inserthtml.js'][46]++; + if ((! notNeedFilter)) { + _$jscoverage['plugins/inserthtml.js'][47]++; + var root = UE.htmlparser(html); + _$jscoverage['plugins/inserthtml.js'][49]++; + if (me.options.filterRules) { + _$jscoverage['plugins/inserthtml.js'][50]++; + UE.filterNode(root, me.options.filterRules); + } + _$jscoverage['plugins/inserthtml.js'][53]++; + me.filterInputRule(root); + _$jscoverage['plugins/inserthtml.js'][54]++; + html = root.toHtml(); + } + _$jscoverage['plugins/inserthtml.js'][56]++; + div.innerHTML = utils.trim(html); + _$jscoverage['plugins/inserthtml.js'][58]++; + if ((! range.collapsed)) { + _$jscoverage['plugins/inserthtml.js'][59]++; + var tmpNode = range.startContainer; + _$jscoverage['plugins/inserthtml.js'][60]++; + if (domUtils.isFillChar(tmpNode)) { + _$jscoverage['plugins/inserthtml.js'][61]++; + range.setStartBefore(tmpNode); + } + _$jscoverage['plugins/inserthtml.js'][63]++; + tmpNode = range.endContainer; + _$jscoverage['plugins/inserthtml.js'][64]++; + if (domUtils.isFillChar(tmpNode)) { + _$jscoverage['plugins/inserthtml.js'][65]++; + range.setEndAfter(tmpNode); + } + _$jscoverage['plugins/inserthtml.js'][67]++; + range.txtToElmBoundary(); + _$jscoverage['plugins/inserthtml.js'][70]++; + if ((range.endContainer && (range.endContainer.nodeType == 1))) { + _$jscoverage['plugins/inserthtml.js'][71]++; + tmpNode = range.endContainer.childNodes[range.endOffset]; + _$jscoverage['plugins/inserthtml.js'][72]++; + if ((tmpNode && domUtils.isBr(tmpNode))) { + _$jscoverage['plugins/inserthtml.js'][73]++; + range.setEndAfter(tmpNode); + } + } + _$jscoverage['plugins/inserthtml.js'][76]++; + if ((range.startOffset == 0)) { + _$jscoverage['plugins/inserthtml.js'][77]++; + tmpNode = range.startContainer; + _$jscoverage['plugins/inserthtml.js'][78]++; + if (domUtils.isBoundaryNode(tmpNode, "firstChild")) { + _$jscoverage['plugins/inserthtml.js'][79]++; + tmpNode = range.endContainer; + _$jscoverage['plugins/inserthtml.js'][80]++; + if (((range.endOffset == ((tmpNode.nodeType == 3)? tmpNode.nodeValue.length: tmpNode.childNodes.length)) && domUtils.isBoundaryNode(tmpNode, "lastChild"))) { + _$jscoverage['plugins/inserthtml.js'][81]++; + me.body.innerHTML = ("

" + (browser.ie? "": "
") + "

"); + _$jscoverage['plugins/inserthtml.js'][82]++; + range.setStart(me.body.firstChild, 0).collapse(true); + } + } + } + _$jscoverage['plugins/inserthtml.js'][87]++; + ((! range.collapsed) && range.deleteContents()); + _$jscoverage['plugins/inserthtml.js'][88]++; + if ((range.startContainer.nodeType == 1)) { + _$jscoverage['plugins/inserthtml.js'][89]++; + var child = range.startContainer.childNodes[range.startOffset], pre; + _$jscoverage['plugins/inserthtml.js'][90]++; + if ((child && domUtils.isBlockElm(child) && (pre = child.previousSibling) && domUtils.isBlockElm(pre))) { + _$jscoverage['plugins/inserthtml.js'][91]++; + range.setEnd(pre, pre.childNodes.length).collapse(); + _$jscoverage['plugins/inserthtml.js'][92]++; + while (child.firstChild) { + _$jscoverage['plugins/inserthtml.js'][93]++; + pre.appendChild(child.firstChild); +} + _$jscoverage['plugins/inserthtml.js'][95]++; + domUtils.remove(child); + } + } + } + _$jscoverage['plugins/inserthtml.js'][102]++; + var child = child, parent, pre = pre, tmp, hadBreak = 0, nextNode; + _$jscoverage['plugins/inserthtml.js'][104]++; + if (range.inFillChar()) { + _$jscoverage['plugins/inserthtml.js'][105]++; + child = range.startContainer; + _$jscoverage['plugins/inserthtml.js'][106]++; + if (domUtils.isFillChar(child)) { + _$jscoverage['plugins/inserthtml.js'][107]++; + range.setStartBefore(child).collapse(true); + _$jscoverage['plugins/inserthtml.js'][108]++; + domUtils.remove(child); + } + else { + _$jscoverage['plugins/inserthtml.js'][109]++; + if (domUtils.isFillChar(child, true)) { + _$jscoverage['plugins/inserthtml.js'][110]++; + child.nodeValue = child.nodeValue.replace(fillCharReg, ""); + _$jscoverage['plugins/inserthtml.js'][111]++; + (range.startOffset--); + _$jscoverage['plugins/inserthtml.js'][112]++; + (range.collapsed && range.collapse(true)); + } + } + } + _$jscoverage['plugins/inserthtml.js'][116]++; + var li = domUtils.findParentByTagName(range.startContainer, "li", true); + _$jscoverage['plugins/inserthtml.js'][117]++; + if (li) { + _$jscoverage['plugins/inserthtml.js'][118]++; + var next, last; + _$jscoverage['plugins/inserthtml.js'][119]++; + while ((child = div.firstChild)) { + _$jscoverage['plugins/inserthtml.js'][121]++; + while ((child && ((child.nodeType == 3) || (! domUtils.isBlockElm(child)) || (child.tagName == "HR")))) { + _$jscoverage['plugins/inserthtml.js'][122]++; + next = child.nextSibling; + _$jscoverage['plugins/inserthtml.js'][123]++; + range.insertNode(child).collapse(); + _$jscoverage['plugins/inserthtml.js'][124]++; + last = child; + _$jscoverage['plugins/inserthtml.js'][125]++; + child = next; +} + _$jscoverage['plugins/inserthtml.js'][128]++; + if (child) { + _$jscoverage['plugins/inserthtml.js'][129]++; + if (/^(ol|ul)$/i.test(child.tagName)) { + _$jscoverage['plugins/inserthtml.js'][130]++; + while (child.firstChild) { + _$jscoverage['plugins/inserthtml.js'][131]++; + last = child.firstChild; + _$jscoverage['plugins/inserthtml.js'][132]++; + domUtils.insertAfter(li, child.firstChild); + _$jscoverage['plugins/inserthtml.js'][133]++; + li = li.nextSibling; +} + _$jscoverage['plugins/inserthtml.js'][135]++; + domUtils.remove(child); + } + else { + _$jscoverage['plugins/inserthtml.js'][137]++; + var tmpLi; + _$jscoverage['plugins/inserthtml.js'][138]++; + next = child.nextSibling; + _$jscoverage['plugins/inserthtml.js'][139]++; + tmpLi = me.document.createElement("li"); + _$jscoverage['plugins/inserthtml.js'][140]++; + domUtils.insertAfter(li, tmpLi); + _$jscoverage['plugins/inserthtml.js'][141]++; + tmpLi.appendChild(child); + _$jscoverage['plugins/inserthtml.js'][142]++; + last = child; + _$jscoverage['plugins/inserthtml.js'][143]++; + child = next; + _$jscoverage['plugins/inserthtml.js'][144]++; + li = tmpLi; + } + } +} + _$jscoverage['plugins/inserthtml.js'][148]++; + li = domUtils.findParentByTagName(range.startContainer, "li", true); + _$jscoverage['plugins/inserthtml.js'][149]++; + if (domUtils.isEmptyBlock(li)) { + _$jscoverage['plugins/inserthtml.js'][150]++; + domUtils.remove(li); + } + _$jscoverage['plugins/inserthtml.js'][152]++; + if (last) { + _$jscoverage['plugins/inserthtml.js'][154]++; + range.setStartAfter(last).collapse(true).select(true); + } + } + else { + _$jscoverage['plugins/inserthtml.js'][157]++; + while ((child = div.firstChild)) { + _$jscoverage['plugins/inserthtml.js'][158]++; + if (hadBreak) { + _$jscoverage['plugins/inserthtml.js'][159]++; + var p = me.document.createElement("p"); + _$jscoverage['plugins/inserthtml.js'][160]++; + while ((child && ((child.nodeType == 3) || (! dtd.$block[child.tagName])))) { + _$jscoverage['plugins/inserthtml.js'][161]++; + nextNode = child.nextSibling; + _$jscoverage['plugins/inserthtml.js'][162]++; + p.appendChild(child); + _$jscoverage['plugins/inserthtml.js'][163]++; + child = nextNode; +} + _$jscoverage['plugins/inserthtml.js'][165]++; + if (p.firstChild) { + _$jscoverage['plugins/inserthtml.js'][167]++; + child = p; + } + } + _$jscoverage['plugins/inserthtml.js'][170]++; + range.insertNode(child); + _$jscoverage['plugins/inserthtml.js'][171]++; + nextNode = child.nextSibling; + _$jscoverage['plugins/inserthtml.js'][172]++; + if (((! hadBreak) && (child.nodeType == domUtils.NODE_ELEMENT) && domUtils.isBlockElm(child))) { + _$jscoverage['plugins/inserthtml.js'][174]++; + parent = domUtils.findParent(child, (function (node) { + _$jscoverage['plugins/inserthtml.js'][174]++; + return domUtils.isBlockElm(node); +})); + _$jscoverage['plugins/inserthtml.js'][175]++; + if ((parent && (parent.tagName.toLowerCase() != "body") && (! (dtd[parent.tagName][child.nodeName] && (child.parentNode === parent))))) { + _$jscoverage['plugins/inserthtml.js'][176]++; + if ((! dtd[parent.tagName][child.nodeName])) { + _$jscoverage['plugins/inserthtml.js'][177]++; + pre = parent; + } + else { + _$jscoverage['plugins/inserthtml.js'][179]++; + tmp = child.parentNode; + _$jscoverage['plugins/inserthtml.js'][180]++; + while ((tmp !== parent)) { + _$jscoverage['plugins/inserthtml.js'][181]++; + pre = tmp; + _$jscoverage['plugins/inserthtml.js'][182]++; + tmp = tmp.parentNode; +} + } + _$jscoverage['plugins/inserthtml.js'][188]++; + domUtils.breakParent(child, (pre || tmp)); + _$jscoverage['plugins/inserthtml.js'][190]++; + var pre = child.previousSibling; + _$jscoverage['plugins/inserthtml.js'][191]++; + domUtils.trimWhiteTextNode(pre); + _$jscoverage['plugins/inserthtml.js'][192]++; + if ((! pre.childNodes.length)) { + _$jscoverage['plugins/inserthtml.js'][193]++; + domUtils.remove(pre); + } + _$jscoverage['plugins/inserthtml.js'][197]++; + if (((! browser.ie) && (next = child.nextSibling) && domUtils.isBlockElm(next) && next.lastChild && (! domUtils.isBr(next.lastChild)))) { + _$jscoverage['plugins/inserthtml.js'][202]++; + next.appendChild(me.document.createElement("br")); + } + _$jscoverage['plugins/inserthtml.js'][204]++; + hadBreak = 1; + } + } + _$jscoverage['plugins/inserthtml.js'][207]++; + var next = child.nextSibling; + _$jscoverage['plugins/inserthtml.js'][208]++; + if (((! div.firstChild) && next && domUtils.isBlockElm(next))) { + _$jscoverage['plugins/inserthtml.js'][210]++; + range.setStart(next, 0).collapse(true); + _$jscoverage['plugins/inserthtml.js'][211]++; + break; + } + _$jscoverage['plugins/inserthtml.js'][213]++; + range.setEndAfter(child).collapse(); +} + _$jscoverage['plugins/inserthtml.js'][217]++; + child = range.startContainer; + _$jscoverage['plugins/inserthtml.js'][219]++; + if ((nextNode && domUtils.isBr(nextNode))) { + _$jscoverage['plugins/inserthtml.js'][220]++; + domUtils.remove(nextNode); + } + _$jscoverage['plugins/inserthtml.js'][223]++; + if ((domUtils.isBlockElm(child) && domUtils.isEmptyNode(child))) { + _$jscoverage['plugins/inserthtml.js'][224]++; + if ((nextNode = child.nextSibling)) { + _$jscoverage['plugins/inserthtml.js'][225]++; + domUtils.remove(child); + _$jscoverage['plugins/inserthtml.js'][226]++; + if (((nextNode.nodeType == 1) && dtd.$block[nextNode.tagName])) { + _$jscoverage['plugins/inserthtml.js'][228]++; + range.setStart(nextNode, 0).collapse(true).shrinkBoundary(); + } + } + else { + _$jscoverage['plugins/inserthtml.js'][232]++; + try { + _$jscoverage['plugins/inserthtml.js'][233]++; + child.innerHTML = (browser.ie? domUtils.fillChar: "
"); + } + catch (e) { + _$jscoverage['plugins/inserthtml.js'][235]++; + range.setStartBefore(child); + _$jscoverage['plugins/inserthtml.js'][236]++; + domUtils.remove(child); + } + } + } + _$jscoverage['plugins/inserthtml.js'][243]++; + try { + _$jscoverage['plugins/inserthtml.js'][244]++; + range.select(true); + } + catch (e) { + } + } + _$jscoverage['plugins/inserthtml.js'][251]++; + setTimeout((function () { + _$jscoverage['plugins/inserthtml.js'][252]++; + range = me.selection.getRange(); + _$jscoverage['plugins/inserthtml.js'][253]++; + range.scrollToView(me.autoHeightEnabled, (me.autoHeightEnabled? domUtils.getXY(me.iframe).y: 0)); + _$jscoverage['plugins/inserthtml.js'][254]++; + me.fireEvent("afterinserthtml"); +}), 200); +})}; diff --git a/_test/coverage/plugins/insertparagraph.js b/_test/coverage/plugins/insertparagraph.js new file mode 100644 index 000000000..d95607770 --- /dev/null +++ b/_test/coverage/plugins/insertparagraph.js @@ -0,0 +1,92 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/insertparagraph.js']) { + _$jscoverage['plugins/insertparagraph.js'] = []; + _$jscoverage['plugins/insertparagraph.js'][20] = 0; + _$jscoverage['plugins/insertparagraph.js'][22] = 0; + _$jscoverage['plugins/insertparagraph.js'][25] = 0; + _$jscoverage['plugins/insertparagraph.js'][26] = 0; + _$jscoverage['plugins/insertparagraph.js'][27] = 0; + _$jscoverage['plugins/insertparagraph.js'][29] = 0; + _$jscoverage['plugins/insertparagraph.js'][30] = 0; + _$jscoverage['plugins/insertparagraph.js'][32] = 0; + _$jscoverage['plugins/insertparagraph.js'][33] = 0; + _$jscoverage['plugins/insertparagraph.js'][34] = 0; + _$jscoverage['plugins/insertparagraph.js'][35] = 0; + _$jscoverage['plugins/insertparagraph.js'][37] = 0; + _$jscoverage['plugins/insertparagraph.js'][39] = 0; + _$jscoverage['plugins/insertparagraph.js'][40] = 0; +} +_$jscoverage['plugins/insertparagraph.js'].source = ["/**"," * 插入新的段落"," * @file"," * @since 1.2.6.1"," */","","","/**"," * 在当前光标位置处插入新段落, 如果光标已经在段落之中, 则会在该段落之后插入一个新的段落。"," * @command insertparagraph"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @example"," * ```javascript"," * //editor是编辑器实例"," * editor.execCommand( 'insertparagraph' );"," * ```"," */","","UE.commands['insertparagraph'] = {"," execCommand : function( cmdName,front) {"," var me = this,"," range = me.selection.getRange(),"," start = range.startContainer,tmpNode;"," while(start ){"," if(domUtils.isBody(start)){"," break;"," }"," tmpNode = start;"," start = start.parentNode;"," }"," if(tmpNode){"," var p = me.document.createElement('p');"," if(front){"," tmpNode.parentNode.insertBefore(p,tmpNode)"," }else{"," tmpNode.parentNode.insertBefore(p,tmpNode.nextSibling)"," }"," domUtils.fillNode(me.document,p);"," range.setStart(p,0).setCursor(false,true);"," }"," }","};",""]; +_$jscoverage['plugins/insertparagraph.js'][20]++; +UE.commands.insertparagraph = {execCommand: (function (cmdName, front) { + _$jscoverage['plugins/insertparagraph.js'][22]++; + var me = this, range = me.selection.getRange(), start = range.startContainer, tmpNode; + _$jscoverage['plugins/insertparagraph.js'][25]++; + while (start) { + _$jscoverage['plugins/insertparagraph.js'][26]++; + if (domUtils.isBody(start)) { + _$jscoverage['plugins/insertparagraph.js'][27]++; + break; + } + _$jscoverage['plugins/insertparagraph.js'][29]++; + tmpNode = start; + _$jscoverage['plugins/insertparagraph.js'][30]++; + start = start.parentNode; +} + _$jscoverage['plugins/insertparagraph.js'][32]++; + if (tmpNode) { + _$jscoverage['plugins/insertparagraph.js'][33]++; + var p = me.document.createElement("p"); + _$jscoverage['plugins/insertparagraph.js'][34]++; + if (front) { + _$jscoverage['plugins/insertparagraph.js'][35]++; + tmpNode.parentNode.insertBefore(p, tmpNode); + } + else { + _$jscoverage['plugins/insertparagraph.js'][37]++; + tmpNode.parentNode.insertBefore(p, tmpNode.nextSibling); + } + _$jscoverage['plugins/insertparagraph.js'][39]++; + domUtils.fillNode(me.document, p); + _$jscoverage['plugins/insertparagraph.js'][40]++; + range.setStart(p, 0).setCursor(false, true); + } +})}; diff --git a/_test/coverage/plugins/justify.js b/_test/coverage/plugins/justify.js new file mode 100644 index 000000000..ebe5ef7f1 --- /dev/null +++ b/_test/coverage/plugins/justify.js @@ -0,0 +1,186 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/justify.js']) { + _$jscoverage['plugins/justify.js'] = []; + _$jscoverage['plugins/justify.js'][40] = 0; + _$jscoverage['plugins/justify.js'][41] = 0; + _$jscoverage['plugins/justify.js'][50] = 0; + _$jscoverage['plugins/justify.js'][52] = 0; + _$jscoverage['plugins/justify.js'][55] = 0; + _$jscoverage['plugins/justify.js'][56] = 0; + _$jscoverage['plugins/justify.js'][60] = 0; + _$jscoverage['plugins/justify.js'][61] = 0; + _$jscoverage['plugins/justify.js'][62] = 0; + _$jscoverage['plugins/justify.js'][63] = 0; + _$jscoverage['plugins/justify.js'][64] = 0; + _$jscoverage['plugins/justify.js'][65] = 0; + _$jscoverage['plugins/justify.js'][66] = 0; + _$jscoverage['plugins/justify.js'][69] = 0; + _$jscoverage['plugins/justify.js'][70] = 0; + _$jscoverage['plugins/justify.js'][71] = 0; + _$jscoverage['plugins/justify.js'][72] = 0; + _$jscoverage['plugins/justify.js'][73] = 0; + _$jscoverage['plugins/justify.js'][75] = 0; + _$jscoverage['plugins/justify.js'][76] = 0; + _$jscoverage['plugins/justify.js'][77] = 0; + _$jscoverage['plugins/justify.js'][78] = 0; + _$jscoverage['plugins/justify.js'][79] = 0; + _$jscoverage['plugins/justify.js'][80] = 0; + _$jscoverage['plugins/justify.js'][82] = 0; + _$jscoverage['plugins/justify.js'][84] = 0; + _$jscoverage['plugins/justify.js'][87] = 0; + _$jscoverage['plugins/justify.js'][90] = 0; + _$jscoverage['plugins/justify.js'][92] = 0; + _$jscoverage['plugins/justify.js'][96] = 0; + _$jscoverage['plugins/justify.js'][97] = 0; + _$jscoverage['plugins/justify.js'][98] = 0; + _$jscoverage['plugins/justify.js'][100] = 0; + _$jscoverage['plugins/justify.js'][101] = 0; + _$jscoverage['plugins/justify.js'][102] = 0; + _$jscoverage['plugins/justify.js'][103] = 0; + _$jscoverage['plugins/justify.js'][106] = 0; + _$jscoverage['plugins/justify.js'][109] = 0; + _$jscoverage['plugins/justify.js'][112] = 0; + _$jscoverage['plugins/justify.js'][114] = 0; + _$jscoverage['plugins/justify.js'][117] = 0; + _$jscoverage['plugins/justify.js'][120] = 0; +} +_$jscoverage['plugins/justify.js'].source = ["/**"," * 段落格式"," * @file"," * @since 1.2.6.1"," */","","/**"," * 对段落居左,居右,居中,两端对齐"," * @command justify"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @param { String } align 对齐方式:left居左,right居右,center居中,justify两端对齐"," * @example"," * ```javascript"," * editor.execCommand( 'justify', 'center' );"," * ```"," */","/**"," * 如果选区所在位置是段落区域,返回当前段落对齐方式"," * @command justify"," * @method queryCommandValue"," * @param { String } cmd 命令字符串"," * @return { String } 返回图片对齐方式"," * @example"," * ```javascript"," * editor.queryCommandValue( 'justify' );"," * ```"," */","/**"," * 返回当前选区位置是否是图片"," * @command justify"," * @method queryCommandState"," * @param { String } cmd 命令字符串"," * @return { Int } 0为是,-1为不是"," * @example"," * ```javascript"," * editor.queryCommandState( 'justify' );"," * ```"," */","UE.plugins['justify']=function(){"," var me=this,"," block = domUtils.isBlockElm,"," defaultValue = {"," left:1,"," right:1,"," center:1,"," justify:1"," },"," doJustify = function (range, style) {"," var bookmark = range.createBookmark(),"," filterFn = function (node) {"," return node.nodeType == 1 ? node.tagName.toLowerCase() != 'br' && !domUtils.isBookmarkNode(node) : !domUtils.isWhitespace(node);"," };",""," range.enlarge(true);"," var bookmark2 = range.createBookmark(),"," current = domUtils.getNextDomNode(bookmark2.start, false, filterFn),"," tmpRange = range.cloneRange(),"," tmpNode;"," while (current && !(domUtils.getPosition(current, bookmark2.end) & domUtils.POSITION_FOLLOWING)) {"," if (current.nodeType == 3 || !block(current)) {"," tmpRange.setStartBefore(current);"," while (current && current !== bookmark2.end && !block(current)) {"," tmpNode = current;"," current = domUtils.getNextDomNode(current, false, null, function (node) {"," return !block(node);"," });"," }"," tmpRange.setEndAfter(tmpNode);"," var common = tmpRange.getCommonAncestor();"," if (!domUtils.isBody(common) && block(common)) {"," domUtils.setStyles(common, utils.isString(style) ? {'text-align':style} : style);"," current = common;"," } else {"," var p = range.document.createElement('p');"," domUtils.setStyles(p, utils.isString(style) ? {'text-align':style} : style);"," var frag = tmpRange.extractContents();"," p.appendChild(frag);"," tmpRange.insertNode(p);"," current = p;"," }"," current = domUtils.getNextDomNode(current, false, filterFn);"," } else {"," current = domUtils.getNextDomNode(current, true, filterFn);"," }"," }"," return range.moveToBookmark(bookmark2).moveToBookmark(bookmark);"," };",""," UE.commands['justify'] = {"," execCommand:function (cmdName, align) {"," var range = this.selection.getRange(),"," txt;",""," //闭合时单独处理"," if (range.collapsed) {"," txt = this.document.createTextNode('p');"," range.insertNode(txt);"," }"," doJustify(range, align);"," if (txt) {"," range.setStartBefore(txt).collapse(true);"," domUtils.remove(txt);"," }",""," range.select();","",""," return true;"," },"," queryCommandValue:function () {"," var startNode = this.selection.getStart(),"," value = domUtils.getComputedStyle(startNode, 'text-align');"," return defaultValue[value] ? value : 'left';"," },"," queryCommandState:function () {"," var start = this.selection.getStart(),"," cell = start && domUtils.findParentByTagName(start, [\"td\", \"th\",\"caption\"], true);",""," return cell? -1:0;"," }",""," };","};"]; +_$jscoverage['plugins/justify.js'][40]++; +UE.plugins.justify = (function () { + _$jscoverage['plugins/justify.js'][41]++; + var me = this, block = domUtils.isBlockElm, defaultValue = {left: 1, right: 1, center: 1, justify: 1}, doJustify = (function (range, style) { + _$jscoverage['plugins/justify.js'][50]++; + var bookmark = range.createBookmark(), filterFn = (function (node) { + _$jscoverage['plugins/justify.js'][52]++; + return ((node.nodeType == 1)? ((node.tagName.toLowerCase() != "br") && (! domUtils.isBookmarkNode(node))): (! domUtils.isWhitespace(node))); +}); + _$jscoverage['plugins/justify.js'][55]++; + range.enlarge(true); + _$jscoverage['plugins/justify.js'][56]++; + var bookmark2 = range.createBookmark(), current = domUtils.getNextDomNode(bookmark2.start, false, filterFn), tmpRange = range.cloneRange(), tmpNode; + _$jscoverage['plugins/justify.js'][60]++; + while ((current && (! (domUtils.getPosition(current, bookmark2.end) & domUtils.POSITION_FOLLOWING)))) { + _$jscoverage['plugins/justify.js'][61]++; + if (((current.nodeType == 3) || (! block(current)))) { + _$jscoverage['plugins/justify.js'][62]++; + tmpRange.setStartBefore(current); + _$jscoverage['plugins/justify.js'][63]++; + while ((current && (current !== bookmark2.end) && (! block(current)))) { + _$jscoverage['plugins/justify.js'][64]++; + tmpNode = current; + _$jscoverage['plugins/justify.js'][65]++; + current = domUtils.getNextDomNode(current, false, null, (function (node) { + _$jscoverage['plugins/justify.js'][66]++; + return (! block(node)); +})); +} + _$jscoverage['plugins/justify.js'][69]++; + tmpRange.setEndAfter(tmpNode); + _$jscoverage['plugins/justify.js'][70]++; + var common = tmpRange.getCommonAncestor(); + _$jscoverage['plugins/justify.js'][71]++; + if (((! domUtils.isBody(common)) && block(common))) { + _$jscoverage['plugins/justify.js'][72]++; + domUtils.setStyles(common, (utils.isString(style)? {"text-align": style}: style)); + _$jscoverage['plugins/justify.js'][73]++; + current = common; + } + else { + _$jscoverage['plugins/justify.js'][75]++; + var p = range.document.createElement("p"); + _$jscoverage['plugins/justify.js'][76]++; + domUtils.setStyles(p, (utils.isString(style)? {"text-align": style}: style)); + _$jscoverage['plugins/justify.js'][77]++; + var frag = tmpRange.extractContents(); + _$jscoverage['plugins/justify.js'][78]++; + p.appendChild(frag); + _$jscoverage['plugins/justify.js'][79]++; + tmpRange.insertNode(p); + _$jscoverage['plugins/justify.js'][80]++; + current = p; + } + _$jscoverage['plugins/justify.js'][82]++; + current = domUtils.getNextDomNode(current, false, filterFn); + } + else { + _$jscoverage['plugins/justify.js'][84]++; + current = domUtils.getNextDomNode(current, true, filterFn); + } +} + _$jscoverage['plugins/justify.js'][87]++; + return range.moveToBookmark(bookmark2).moveToBookmark(bookmark); +}); + _$jscoverage['plugins/justify.js'][90]++; + UE.commands.justify = {execCommand: (function (cmdName, align) { + _$jscoverage['plugins/justify.js'][92]++; + var range = this.selection.getRange(), txt; + _$jscoverage['plugins/justify.js'][96]++; + if (range.collapsed) { + _$jscoverage['plugins/justify.js'][97]++; + txt = this.document.createTextNode("p"); + _$jscoverage['plugins/justify.js'][98]++; + range.insertNode(txt); + } + _$jscoverage['plugins/justify.js'][100]++; + doJustify(range, align); + _$jscoverage['plugins/justify.js'][101]++; + if (txt) { + _$jscoverage['plugins/justify.js'][102]++; + range.setStartBefore(txt).collapse(true); + _$jscoverage['plugins/justify.js'][103]++; + domUtils.remove(txt); + } + _$jscoverage['plugins/justify.js'][106]++; + range.select(); + _$jscoverage['plugins/justify.js'][109]++; + return true; +}), queryCommandValue: (function () { + _$jscoverage['plugins/justify.js'][112]++; + var startNode = this.selection.getStart(), value = domUtils.getComputedStyle(startNode, "text-align"); + _$jscoverage['plugins/justify.js'][114]++; + return (defaultValue[value]? value: "left"); +}), queryCommandState: (function () { + _$jscoverage['plugins/justify.js'][117]++; + var start = this.selection.getStart(), cell = (start && domUtils.findParentByTagName(start, ["td", "th", "caption"], true)); + _$jscoverage['plugins/justify.js'][120]++; + return (cell? -1: 0); +})}; +}); diff --git a/_test/coverage/plugins/keystrokes.js b/_test/coverage/plugins/keystrokes.js new file mode 100644 index 000000000..6be9a96d8 --- /dev/null +++ b/_test/coverage/plugins/keystrokes.js @@ -0,0 +1,465 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/keystrokes.js']) { + _$jscoverage['plugins/keystrokes.js'] = []; + _$jscoverage['plugins/keystrokes.js'][4] = 0; + _$jscoverage['plugins/keystrokes.js'][5] = 0; + _$jscoverage['plugins/keystrokes.js'][6] = 0; + _$jscoverage['plugins/keystrokes.js'][7] = 0; + _$jscoverage['plugins/keystrokes.js'][8] = 0; + _$jscoverage['plugins/keystrokes.js'][12] = 0; + _$jscoverage['plugins/keystrokes.js'][21] = 0; + _$jscoverage['plugins/keystrokes.js'][22] = 0; + _$jscoverage['plugins/keystrokes.js'][23] = 0; + _$jscoverage['plugins/keystrokes.js'][25] = 0; + _$jscoverage['plugins/keystrokes.js'][26] = 0; + _$jscoverage['plugins/keystrokes.js'][27] = 0; + _$jscoverage['plugins/keystrokes.js'][29] = 0; + _$jscoverage['plugins/keystrokes.js'][32] = 0; + _$jscoverage['plugins/keystrokes.js'][33] = 0; + _$jscoverage['plugins/keystrokes.js'][34] = 0; + _$jscoverage['plugins/keystrokes.js'][35] = 0; + _$jscoverage['plugins/keystrokes.js'][38] = 0; + _$jscoverage['plugins/keystrokes.js'][39] = 0; + _$jscoverage['plugins/keystrokes.js'][40] = 0; + _$jscoverage['plugins/keystrokes.js'][41] = 0; + _$jscoverage['plugins/keystrokes.js'][42] = 0; + _$jscoverage['plugins/keystrokes.js'][43] = 0; + _$jscoverage['plugins/keystrokes.js'][44] = 0; + _$jscoverage['plugins/keystrokes.js'][45] = 0; + _$jscoverage['plugins/keystrokes.js'][46] = 0; + _$jscoverage['plugins/keystrokes.js'][47] = 0; + _$jscoverage['plugins/keystrokes.js'][54] = 0; + _$jscoverage['plugins/keystrokes.js'][55] = 0; + _$jscoverage['plugins/keystrokes.js'][56] = 0; + _$jscoverage['plugins/keystrokes.js'][57] = 0; + _$jscoverage['plugins/keystrokes.js'][58] = 0; + _$jscoverage['plugins/keystrokes.js'][60] = 0; + _$jscoverage['plugins/keystrokes.js'][62] = 0; + _$jscoverage['plugins/keystrokes.js'][63] = 0; + _$jscoverage['plugins/keystrokes.js'][65] = 0; + _$jscoverage['plugins/keystrokes.js'][66] = 0; + _$jscoverage['plugins/keystrokes.js'][67] = 0; + _$jscoverage['plugins/keystrokes.js'][69] = 0; + _$jscoverage['plugins/keystrokes.js'][70] = 0; + _$jscoverage['plugins/keystrokes.js'][71] = 0; + _$jscoverage['plugins/keystrokes.js'][76] = 0; + _$jscoverage['plugins/keystrokes.js'][77] = 0; + _$jscoverage['plugins/keystrokes.js'][78] = 0; + _$jscoverage['plugins/keystrokes.js'][79] = 0; + _$jscoverage['plugins/keystrokes.js'][80] = 0; + _$jscoverage['plugins/keystrokes.js'][81] = 0; + _$jscoverage['plugins/keystrokes.js'][82] = 0; + _$jscoverage['plugins/keystrokes.js'][83] = 0; + _$jscoverage['plugins/keystrokes.js'][86] = 0; + _$jscoverage['plugins/keystrokes.js'][87] = 0; + _$jscoverage['plugins/keystrokes.js'][88] = 0; + _$jscoverage['plugins/keystrokes.js'][89] = 0; + _$jscoverage['plugins/keystrokes.js'][90] = 0; + _$jscoverage['plugins/keystrokes.js'][91] = 0; + _$jscoverage['plugins/keystrokes.js'][97] = 0; + _$jscoverage['plugins/keystrokes.js'][99] = 0; + _$jscoverage['plugins/keystrokes.js'][105] = 0; + _$jscoverage['plugins/keystrokes.js'][106] = 0; + _$jscoverage['plugins/keystrokes.js'][107] = 0; + _$jscoverage['plugins/keystrokes.js'][109] = 0; + _$jscoverage['plugins/keystrokes.js'][110] = 0; + _$jscoverage['plugins/keystrokes.js'][111] = 0; + _$jscoverage['plugins/keystrokes.js'][112] = 0; + _$jscoverage['plugins/keystrokes.js'][114] = 0; + _$jscoverage['plugins/keystrokes.js'][115] = 0; + _$jscoverage['plugins/keystrokes.js'][116] = 0; + _$jscoverage['plugins/keystrokes.js'][117] = 0; + _$jscoverage['plugins/keystrokes.js'][120] = 0; + _$jscoverage['plugins/keystrokes.js'][121] = 0; + _$jscoverage['plugins/keystrokes.js'][122] = 0; + _$jscoverage['plugins/keystrokes.js'][123] = 0; + _$jscoverage['plugins/keystrokes.js'][124] = 0; + _$jscoverage['plugins/keystrokes.js'][126] = 0; + _$jscoverage['plugins/keystrokes.js'][128] = 0; + _$jscoverage['plugins/keystrokes.js'][131] = 0; + _$jscoverage['plugins/keystrokes.js'][132] = 0; + _$jscoverage['plugins/keystrokes.js'][134] = 0; + _$jscoverage['plugins/keystrokes.js'][135] = 0; + _$jscoverage['plugins/keystrokes.js'][136] = 0; + _$jscoverage['plugins/keystrokes.js'][138] = 0; + _$jscoverage['plugins/keystrokes.js'][141] = 0; + _$jscoverage['plugins/keystrokes.js'][145] = 0; + _$jscoverage['plugins/keystrokes.js'][146] = 0; + _$jscoverage['plugins/keystrokes.js'][147] = 0; + _$jscoverage['plugins/keystrokes.js'][148] = 0; + _$jscoverage['plugins/keystrokes.js'][149] = 0; + _$jscoverage['plugins/keystrokes.js'][150] = 0; + _$jscoverage['plugins/keystrokes.js'][151] = 0; + _$jscoverage['plugins/keystrokes.js'][152] = 0; + _$jscoverage['plugins/keystrokes.js'][153] = 0; + _$jscoverage['plugins/keystrokes.js'][155] = 0; + _$jscoverage['plugins/keystrokes.js'][156] = 0; + _$jscoverage['plugins/keystrokes.js'][157] = 0; + _$jscoverage['plugins/keystrokes.js'][162] = 0; + _$jscoverage['plugins/keystrokes.js'][163] = 0; + _$jscoverage['plugins/keystrokes.js'][165] = 0; + _$jscoverage['plugins/keystrokes.js'][166] = 0; + _$jscoverage['plugins/keystrokes.js'][167] = 0; + _$jscoverage['plugins/keystrokes.js'][169] = 0; + _$jscoverage['plugins/keystrokes.js'][170] = 0; + _$jscoverage['plugins/keystrokes.js'][171] = 0; + _$jscoverage['plugins/keystrokes.js'][173] = 0; + _$jscoverage['plugins/keystrokes.js'][174] = 0; + _$jscoverage['plugins/keystrokes.js'][175] = 0; + _$jscoverage['plugins/keystrokes.js'][176] = 0; + _$jscoverage['plugins/keystrokes.js'][177] = 0; + _$jscoverage['plugins/keystrokes.js'][178] = 0; + _$jscoverage['plugins/keystrokes.js'][179] = 0; + _$jscoverage['plugins/keystrokes.js'][181] = 0; + _$jscoverage['plugins/keystrokes.js'][182] = 0; + _$jscoverage['plugins/keystrokes.js'][183] = 0; + _$jscoverage['plugins/keystrokes.js'][184] = 0; + _$jscoverage['plugins/keystrokes.js'][185] = 0; + _$jscoverage['plugins/keystrokes.js'][191] = 0; + _$jscoverage['plugins/keystrokes.js'][192] = 0; + _$jscoverage['plugins/keystrokes.js'][195] = 0; + _$jscoverage['plugins/keystrokes.js'][201] = 0; + _$jscoverage['plugins/keystrokes.js'][202] = 0; + _$jscoverage['plugins/keystrokes.js'][203] = 0; + _$jscoverage['plugins/keystrokes.js'][204] = 0; + _$jscoverage['plugins/keystrokes.js'][205] = 0; + _$jscoverage['plugins/keystrokes.js'][206] = 0; + _$jscoverage['plugins/keystrokes.js'][208] = 0; +} +_$jscoverage['plugins/keystrokes.js'].source = ["/*"," * 处理特殊键的兼容性问题"," */","UE.plugins['keystrokes'] = function() {"," var me = this;"," var collapsed = true;"," me.addListener('keydown', function(type, evt) {"," var keyCode = evt.keyCode || evt.which,"," rng = me.selection.getRange();",""," //处理全选的情况"," if(!rng.collapsed && !(evt.ctrlKey || evt.shiftKey || evt.altKey || evt.metaKey) && (keyCode >= 65 && keyCode <=90"," || keyCode >= 48 && keyCode <= 57 ||"," keyCode >= 96 && keyCode <= 111 || {"," 13:1,"," 8:1,"," 46:1"," }[keyCode])"," ){",""," var tmpNode = rng.startContainer;"," if(domUtils.isFillChar(tmpNode)){"," rng.setStartBefore(tmpNode)"," }"," tmpNode = rng.endContainer;"," if(domUtils.isFillChar(tmpNode)){"," rng.setEndAfter(tmpNode)"," }"," rng.txtToElmBoundary();"," //结束边界可能放到了br的前边,要把br包含进来"," // x[xxx]<br/>"," if(rng.endContainer && rng.endContainer.nodeType == 1){"," tmpNode = rng.endContainer.childNodes[rng.endOffset];"," if(tmpNode && domUtils.isBr(tmpNode)){"," rng.setEndAfter(tmpNode);"," }"," }"," if(rng.startOffset == 0){"," tmpNode = rng.startContainer;"," if(domUtils.isBoundaryNode(tmpNode,'firstChild') ){"," tmpNode = rng.endContainer;"," if(rng.endOffset == (tmpNode.nodeType == 3 ? tmpNode.nodeValue.length : tmpNode.childNodes.length) && domUtils.isBoundaryNode(tmpNode,'lastChild')){"," me.fireEvent('saveScene');"," me.body.innerHTML = '<p>'+(browser.ie ? '' : '<br/>')+'</p>';"," rng.setStart(me.body.firstChild,0).setCursor(false,true);"," me._selectionChange();"," return;"," }"," }"," }"," }",""," //处理backspace"," if (keyCode == 8) {"," rng = me.selection.getRange();"," collapsed = rng.collapsed;"," if(me.fireEvent('delkeydown',evt)){"," return;"," }"," var start,end;"," //避免按两次删除才能生效的问题"," if(rng.collapsed && rng.inFillChar()){"," start = rng.startContainer;",""," if(domUtils.isFillChar(start)){"," rng.setStartBefore(start).shrinkBoundary(true).collapse(true);"," domUtils.remove(start)"," }else{"," start.nodeValue = start.nodeValue.replace(new RegExp('^' + domUtils.fillChar ),'');"," rng.startOffset--;"," rng.collapse(true).select(true)"," }"," }",""," //解决选中control元素不能删除的问题"," if (start = rng.getClosedNode()) {"," me.fireEvent('saveScene');"," rng.setStartBefore(start);"," domUtils.remove(start);"," rng.setCursor();"," me.fireEvent('saveScene');"," domUtils.preventDefault(evt);"," return;"," }"," //阻止在table上的删除"," if (!browser.ie) {"," start = domUtils.findParentByTagName(rng.startContainer, 'table', true);"," end = domUtils.findParentByTagName(rng.endContainer, 'table', true);"," if (start && !end || !start && end || start !== end) {"," evt.preventDefault();"," return;"," }"," }",""," }"," //处理tab键的逻辑"," if (keyCode == 9) {"," //不处理以下标签"," var excludeTagNameForTabKey = {"," 'ol' : 1,"," 'ul' : 1,"," 'table':1"," };"," //处理组件里的tab按下事件"," if(me.fireEvent('tabkeydown',evt)){"," domUtils.preventDefault(evt);"," return;"," }"," var range = me.selection.getRange();"," me.fireEvent('saveScene');"," for (var i = 0,txt = '',tabSize = me.options.tabSize|| 4,tabNode = me.options.tabNode || '&nbsp;'; i < tabSize; i++) {"," txt += tabNode;"," }"," var span = me.document.createElement('span');"," span.innerHTML = txt + domUtils.fillChar;"," if (range.collapsed) {"," range.insertNode(span.cloneNode(true).firstChild).setCursor(true);"," } else {"," //普通的情况"," start = domUtils.findParent(range.startContainer, filterFn);"," end = domUtils.findParent(range.endContainer, filterFn);"," if (start && end && start === end) {"," range.deleteContents();"," range.insertNode(span.cloneNode(true).firstChild).setCursor(true);"," } else {"," var bookmark = range.createBookmark(),"," filterFn = function(node) {"," return domUtils.isBlockElm(node) && !excludeTagNameForTabKey[node.tagName.toLowerCase()]",""," };"," range.enlarge(true);"," var bookmark2 = range.createBookmark(),"," current = domUtils.getNextDomNode(bookmark2.start, false, filterFn);"," while (current && !(domUtils.getPosition(current, bookmark2.end) & domUtils.POSITION_FOLLOWING)) {"," current.insertBefore(span.cloneNode(true).firstChild, current.firstChild);"," current = domUtils.getNextDomNode(current, false, filterFn);"," }"," range.moveToBookmark(bookmark2).moveToBookmark(bookmark).select();"," }"," }"," domUtils.preventDefault(evt)"," }"," //trace:1634"," //ff的del键在容器空的时候,也会删除"," if(browser.gecko && keyCode == 46){"," range = me.selection.getRange();"," if(range.collapsed){"," start = range.startContainer;"," if(domUtils.isEmptyBlock(start)){"," var parent = start.parentNode;"," while(domUtils.getChildCount(parent) == 1 && !domUtils.isBody(parent)){"," start = parent;"," parent = parent.parentNode;"," }"," if(start === parent.lastChild)"," evt.preventDefault();"," return;"," }"," }"," }"," });"," me.addListener('keyup', function(type, evt) {"," var keyCode = evt.keyCode || evt.which,"," rng,me = this;"," if(keyCode == 8){"," if(me.fireEvent('delkeyup')){"," return;"," }"," rng = me.selection.getRange();"," if(rng.collapsed){"," var tmpNode,"," autoClearTagName = ['h1','h2','h3','h4','h5','h6'];"," if(tmpNode = domUtils.findParentByTagName(rng.startContainer,autoClearTagName,true)){"," if(domUtils.isEmptyBlock(tmpNode)){"," var pre = tmpNode.previousSibling;"," if(pre && pre.nodeName != 'TABLE'){"," domUtils.remove(tmpNode);"," rng.setStartAtLast(pre).setCursor(false,true);"," return;"," }else{"," var next = tmpNode.nextSibling;"," if(next && next.nodeName != 'TABLE'){"," domUtils.remove(tmpNode);"," rng.setStartAtFirst(next).setCursor(false,true);"," return;"," }"," }"," }"," }"," //处理当删除到body时,要重新给p标签展位"," if(domUtils.isBody(rng.startContainer)){"," var tmpNode = domUtils.createElement(me.document,'p',{"," 'innerHTML' : browser.ie ? domUtils.fillChar : '<br/>'"," });"," rng.insertNode(tmpNode).setStart(tmpNode,0).setCursor(false,true);"," }"," }","",""," //chrome下如果删除了inline标签,浏览器会有记忆,在输入文字还是会套上刚才删除的标签,所以这里再选一次就不会了"," if( !collapsed && (rng.startContainer.nodeType == 3 || rng.startContainer.nodeType == 1 && domUtils.isEmptyBlock(rng.startContainer))){"," if(browser.ie){"," var span = rng.document.createElement('span');"," rng.insertNode(span).setStartBefore(span).collapse(true);"," rng.select();"," domUtils.remove(span)"," }else{"," rng.select()"," }",""," }"," }",""," })","};"]; +_$jscoverage['plugins/keystrokes.js'][4]++; +UE.plugins.keystrokes = (function () { + _$jscoverage['plugins/keystrokes.js'][5]++; + var me = this; + _$jscoverage['plugins/keystrokes.js'][6]++; + var collapsed = true; + _$jscoverage['plugins/keystrokes.js'][7]++; + me.addListener("keydown", (function (type, evt) { + _$jscoverage['plugins/keystrokes.js'][8]++; + var keyCode = (evt.keyCode || evt.which), rng = me.selection.getRange(); + _$jscoverage['plugins/keystrokes.js'][12]++; + if (((! rng.collapsed) && (! (evt.ctrlKey || evt.shiftKey || evt.altKey || evt.metaKey)) && (((keyCode >= 65) && (keyCode <= 90)) || ((keyCode >= 48) && (keyCode <= 57)) || ((keyCode >= 96) && (keyCode <= 111)) || {13: 1, 8: 1, 46: 1}[keyCode]))) { + _$jscoverage['plugins/keystrokes.js'][21]++; + var tmpNode = rng.startContainer; + _$jscoverage['plugins/keystrokes.js'][22]++; + if (domUtils.isFillChar(tmpNode)) { + _$jscoverage['plugins/keystrokes.js'][23]++; + rng.setStartBefore(tmpNode); + } + _$jscoverage['plugins/keystrokes.js'][25]++; + tmpNode = rng.endContainer; + _$jscoverage['plugins/keystrokes.js'][26]++; + if (domUtils.isFillChar(tmpNode)) { + _$jscoverage['plugins/keystrokes.js'][27]++; + rng.setEndAfter(tmpNode); + } + _$jscoverage['plugins/keystrokes.js'][29]++; + rng.txtToElmBoundary(); + _$jscoverage['plugins/keystrokes.js'][32]++; + if ((rng.endContainer && (rng.endContainer.nodeType == 1))) { + _$jscoverage['plugins/keystrokes.js'][33]++; + tmpNode = rng.endContainer.childNodes[rng.endOffset]; + _$jscoverage['plugins/keystrokes.js'][34]++; + if ((tmpNode && domUtils.isBr(tmpNode))) { + _$jscoverage['plugins/keystrokes.js'][35]++; + rng.setEndAfter(tmpNode); + } + } + _$jscoverage['plugins/keystrokes.js'][38]++; + if ((rng.startOffset == 0)) { + _$jscoverage['plugins/keystrokes.js'][39]++; + tmpNode = rng.startContainer; + _$jscoverage['plugins/keystrokes.js'][40]++; + if (domUtils.isBoundaryNode(tmpNode, "firstChild")) { + _$jscoverage['plugins/keystrokes.js'][41]++; + tmpNode = rng.endContainer; + _$jscoverage['plugins/keystrokes.js'][42]++; + if (((rng.endOffset == ((tmpNode.nodeType == 3)? tmpNode.nodeValue.length: tmpNode.childNodes.length)) && domUtils.isBoundaryNode(tmpNode, "lastChild"))) { + _$jscoverage['plugins/keystrokes.js'][43]++; + me.fireEvent("saveScene"); + _$jscoverage['plugins/keystrokes.js'][44]++; + me.body.innerHTML = ("

" + (browser.ie? "": "
") + "

"); + _$jscoverage['plugins/keystrokes.js'][45]++; + rng.setStart(me.body.firstChild, 0).setCursor(false, true); + _$jscoverage['plugins/keystrokes.js'][46]++; + me._selectionChange(); + _$jscoverage['plugins/keystrokes.js'][47]++; + return; + } + } + } + } + _$jscoverage['plugins/keystrokes.js'][54]++; + if ((keyCode == 8)) { + _$jscoverage['plugins/keystrokes.js'][55]++; + rng = me.selection.getRange(); + _$jscoverage['plugins/keystrokes.js'][56]++; + collapsed = rng.collapsed; + _$jscoverage['plugins/keystrokes.js'][57]++; + if (me.fireEvent("delkeydown", evt)) { + _$jscoverage['plugins/keystrokes.js'][58]++; + return; + } + _$jscoverage['plugins/keystrokes.js'][60]++; + var start, end; + _$jscoverage['plugins/keystrokes.js'][62]++; + if ((rng.collapsed && rng.inFillChar())) { + _$jscoverage['plugins/keystrokes.js'][63]++; + start = rng.startContainer; + _$jscoverage['plugins/keystrokes.js'][65]++; + if (domUtils.isFillChar(start)) { + _$jscoverage['plugins/keystrokes.js'][66]++; + rng.setStartBefore(start).shrinkBoundary(true).collapse(true); + _$jscoverage['plugins/keystrokes.js'][67]++; + domUtils.remove(start); + } + else { + _$jscoverage['plugins/keystrokes.js'][69]++; + start.nodeValue = start.nodeValue.replace(new RegExp(("^" + domUtils.fillChar)), ""); + _$jscoverage['plugins/keystrokes.js'][70]++; + (rng.startOffset--); + _$jscoverage['plugins/keystrokes.js'][71]++; + rng.collapse(true).select(true); + } + } + _$jscoverage['plugins/keystrokes.js'][76]++; + if ((start = rng.getClosedNode())) { + _$jscoverage['plugins/keystrokes.js'][77]++; + me.fireEvent("saveScene"); + _$jscoverage['plugins/keystrokes.js'][78]++; + rng.setStartBefore(start); + _$jscoverage['plugins/keystrokes.js'][79]++; + domUtils.remove(start); + _$jscoverage['plugins/keystrokes.js'][80]++; + rng.setCursor(); + _$jscoverage['plugins/keystrokes.js'][81]++; + me.fireEvent("saveScene"); + _$jscoverage['plugins/keystrokes.js'][82]++; + domUtils.preventDefault(evt); + _$jscoverage['plugins/keystrokes.js'][83]++; + return; + } + _$jscoverage['plugins/keystrokes.js'][86]++; + if ((! browser.ie)) { + _$jscoverage['plugins/keystrokes.js'][87]++; + start = domUtils.findParentByTagName(rng.startContainer, "table", true); + _$jscoverage['plugins/keystrokes.js'][88]++; + end = domUtils.findParentByTagName(rng.endContainer, "table", true); + _$jscoverage['plugins/keystrokes.js'][89]++; + if (((start && (! end)) || ((! start) && end) || (start !== end))) { + _$jscoverage['plugins/keystrokes.js'][90]++; + evt.preventDefault(); + _$jscoverage['plugins/keystrokes.js'][91]++; + return; + } + } + } + _$jscoverage['plugins/keystrokes.js'][97]++; + if ((keyCode == 9)) { + _$jscoverage['plugins/keystrokes.js'][99]++; + var excludeTagNameForTabKey = {"ol": 1, "ul": 1, "table": 1}; + _$jscoverage['plugins/keystrokes.js'][105]++; + if (me.fireEvent("tabkeydown", evt)) { + _$jscoverage['plugins/keystrokes.js'][106]++; + domUtils.preventDefault(evt); + _$jscoverage['plugins/keystrokes.js'][107]++; + return; + } + _$jscoverage['plugins/keystrokes.js'][109]++; + var range = me.selection.getRange(); + _$jscoverage['plugins/keystrokes.js'][110]++; + me.fireEvent("saveScene"); + _$jscoverage['plugins/keystrokes.js'][111]++; + for (var i = 0, txt = "", tabSize = (me.options.tabSize || 4), tabNode = (me.options.tabNode || " "); (i < tabSize); (i++)) { + _$jscoverage['plugins/keystrokes.js'][112]++; + txt += tabNode; +} + _$jscoverage['plugins/keystrokes.js'][114]++; + var span = me.document.createElement("span"); + _$jscoverage['plugins/keystrokes.js'][115]++; + span.innerHTML = (txt + domUtils.fillChar); + _$jscoverage['plugins/keystrokes.js'][116]++; + if (range.collapsed) { + _$jscoverage['plugins/keystrokes.js'][117]++; + range.insertNode(span.cloneNode(true).firstChild).setCursor(true); + } + else { + _$jscoverage['plugins/keystrokes.js'][120]++; + start = domUtils.findParent(range.startContainer, filterFn); + _$jscoverage['plugins/keystrokes.js'][121]++; + end = domUtils.findParent(range.endContainer, filterFn); + _$jscoverage['plugins/keystrokes.js'][122]++; + if ((start && end && (start === end))) { + _$jscoverage['plugins/keystrokes.js'][123]++; + range.deleteContents(); + _$jscoverage['plugins/keystrokes.js'][124]++; + range.insertNode(span.cloneNode(true).firstChild).setCursor(true); + } + else { + _$jscoverage['plugins/keystrokes.js'][126]++; + var bookmark = range.createBookmark(), filterFn = (function (node) { + _$jscoverage['plugins/keystrokes.js'][128]++; + return (domUtils.isBlockElm(node) && (! excludeTagNameForTabKey[node.tagName.toLowerCase()])); +}); + _$jscoverage['plugins/keystrokes.js'][131]++; + range.enlarge(true); + _$jscoverage['plugins/keystrokes.js'][132]++; + var bookmark2 = range.createBookmark(), current = domUtils.getNextDomNode(bookmark2.start, false, filterFn); + _$jscoverage['plugins/keystrokes.js'][134]++; + while ((current && (! (domUtils.getPosition(current, bookmark2.end) & domUtils.POSITION_FOLLOWING)))) { + _$jscoverage['plugins/keystrokes.js'][135]++; + current.insertBefore(span.cloneNode(true).firstChild, current.firstChild); + _$jscoverage['plugins/keystrokes.js'][136]++; + current = domUtils.getNextDomNode(current, false, filterFn); +} + _$jscoverage['plugins/keystrokes.js'][138]++; + range.moveToBookmark(bookmark2).moveToBookmark(bookmark).select(); + } + } + _$jscoverage['plugins/keystrokes.js'][141]++; + domUtils.preventDefault(evt); + } + _$jscoverage['plugins/keystrokes.js'][145]++; + if ((browser.gecko && (keyCode == 46))) { + _$jscoverage['plugins/keystrokes.js'][146]++; + range = me.selection.getRange(); + _$jscoverage['plugins/keystrokes.js'][147]++; + if (range.collapsed) { + _$jscoverage['plugins/keystrokes.js'][148]++; + start = range.startContainer; + _$jscoverage['plugins/keystrokes.js'][149]++; + if (domUtils.isEmptyBlock(start)) { + _$jscoverage['plugins/keystrokes.js'][150]++; + var parent = start.parentNode; + _$jscoverage['plugins/keystrokes.js'][151]++; + while (((domUtils.getChildCount(parent) == 1) && (! domUtils.isBody(parent)))) { + _$jscoverage['plugins/keystrokes.js'][152]++; + start = parent; + _$jscoverage['plugins/keystrokes.js'][153]++; + parent = parent.parentNode; +} + _$jscoverage['plugins/keystrokes.js'][155]++; + if ((start === parent.lastChild)) { + _$jscoverage['plugins/keystrokes.js'][156]++; + evt.preventDefault(); + } + _$jscoverage['plugins/keystrokes.js'][157]++; + return; + } + } + } +})); + _$jscoverage['plugins/keystrokes.js'][162]++; + me.addListener("keyup", (function (type, evt) { + _$jscoverage['plugins/keystrokes.js'][163]++; + var keyCode = (evt.keyCode || evt.which), rng, me = this; + _$jscoverage['plugins/keystrokes.js'][165]++; + if ((keyCode == 8)) { + _$jscoverage['plugins/keystrokes.js'][166]++; + if (me.fireEvent("delkeyup")) { + _$jscoverage['plugins/keystrokes.js'][167]++; + return; + } + _$jscoverage['plugins/keystrokes.js'][169]++; + rng = me.selection.getRange(); + _$jscoverage['plugins/keystrokes.js'][170]++; + if (rng.collapsed) { + _$jscoverage['plugins/keystrokes.js'][171]++; + var tmpNode, autoClearTagName = ["h1", "h2", "h3", "h4", "h5", "h6"]; + _$jscoverage['plugins/keystrokes.js'][173]++; + if ((tmpNode = domUtils.findParentByTagName(rng.startContainer, autoClearTagName, true))) { + _$jscoverage['plugins/keystrokes.js'][174]++; + if (domUtils.isEmptyBlock(tmpNode)) { + _$jscoverage['plugins/keystrokes.js'][175]++; + var pre = tmpNode.previousSibling; + _$jscoverage['plugins/keystrokes.js'][176]++; + if ((pre && (pre.nodeName != "TABLE"))) { + _$jscoverage['plugins/keystrokes.js'][177]++; + domUtils.remove(tmpNode); + _$jscoverage['plugins/keystrokes.js'][178]++; + rng.setStartAtLast(pre).setCursor(false, true); + _$jscoverage['plugins/keystrokes.js'][179]++; + return; + } + else { + _$jscoverage['plugins/keystrokes.js'][181]++; + var next = tmpNode.nextSibling; + _$jscoverage['plugins/keystrokes.js'][182]++; + if ((next && (next.nodeName != "TABLE"))) { + _$jscoverage['plugins/keystrokes.js'][183]++; + domUtils.remove(tmpNode); + _$jscoverage['plugins/keystrokes.js'][184]++; + rng.setStartAtFirst(next).setCursor(false, true); + _$jscoverage['plugins/keystrokes.js'][185]++; + return; + } + } + } + } + _$jscoverage['plugins/keystrokes.js'][191]++; + if (domUtils.isBody(rng.startContainer)) { + _$jscoverage['plugins/keystrokes.js'][192]++; + var tmpNode = domUtils.createElement(me.document, "p", {"innerHTML": (browser.ie? domUtils.fillChar: "
")}); + _$jscoverage['plugins/keystrokes.js'][195]++; + rng.insertNode(tmpNode).setStart(tmpNode, 0).setCursor(false, true); + } + } + _$jscoverage['plugins/keystrokes.js'][201]++; + if (((! collapsed) && ((rng.startContainer.nodeType == 3) || ((rng.startContainer.nodeType == 1) && domUtils.isEmptyBlock(rng.startContainer))))) { + _$jscoverage['plugins/keystrokes.js'][202]++; + if (browser.ie) { + _$jscoverage['plugins/keystrokes.js'][203]++; + var span = rng.document.createElement("span"); + _$jscoverage['plugins/keystrokes.js'][204]++; + rng.insertNode(span).setStartBefore(span).collapse(true); + _$jscoverage['plugins/keystrokes.js'][205]++; + rng.select(); + _$jscoverage['plugins/keystrokes.js'][206]++; + domUtils.remove(span); + } + else { + _$jscoverage['plugins/keystrokes.js'][208]++; + rng.select(); + } + } + } +})); +}); diff --git a/_test/coverage/plugins/lineheight.js b/_test/coverage/plugins/lineheight.js new file mode 100644 index 000000000..7c9d13c2f --- /dev/null +++ b/_test/coverage/plugins/lineheight.js @@ -0,0 +1,80 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/lineheight.js']) { + _$jscoverage['plugins/lineheight.js'] = []; + _$jscoverage['plugins/lineheight.js'][7] = 0; + _$jscoverage['plugins/lineheight.js'][8] = 0; + _$jscoverage['plugins/lineheight.js'][9] = 0; + _$jscoverage['plugins/lineheight.js'][33] = 0; + _$jscoverage['plugins/lineheight.js'][35] = 0; + _$jscoverage['plugins/lineheight.js'][36] = 0; + _$jscoverage['plugins/lineheight.js'][39] = 0; + _$jscoverage['plugins/lineheight.js'][40] = 0; + _$jscoverage['plugins/lineheight.js'][41] = 0; + _$jscoverage['plugins/lineheight.js'][42] = 0; +} +_$jscoverage['plugins/lineheight.js'].source = ["/**"," * 设置行内间距"," * @file"," * @since 1.2.6.1"," */","","UE.plugins['lineheight'] = function(){"," var me = this;"," me.setOpt({'lineheight':['1', '1.5','1.75','2', '3', '4', '5']});",""," /**"," * 设置选区的行高"," * @command lineheight"," * @method execCommand"," * @param { String } cmdName 命令字符串"," * @param { String } value 传入的行高大小"," * @example"," * ```javascript"," * editor.execCommand( 'lineheight', '1');"," * ```"," */"," /**"," * 查询当前选区内容的行高大小"," * @command lineheight"," * @method queryCommandValue"," * @param { String } cmd 命令字符串"," * @return { String } 返回当前行高大小"," * @example"," * ```javascript"," * editor.queryCommandValue( 'lineheight' );"," * ```"," */"," me.commands['lineheight'] = {"," execCommand : function( cmdName,value ) {"," this.execCommand('paragraph','p',{style:'line-height:'+ (value == \"1\" ? \"normal\" : value + 'em') });"," return true;"," },"," queryCommandValue : function() {"," var pN = domUtils.filterNodeList(this.selection.getStartElementPath(),function(node){return domUtils.isBlockElm(node)});"," if(pN){"," var value = domUtils.getComputedStyle(pN,'line-height');"," return value == 'normal' ? 1 : value.replace(/[^\\d.]*/ig,\"\");"," }"," }"," };","};","",""]; +_$jscoverage['plugins/lineheight.js'][7]++; +UE.plugins.lineheight = (function () { + _$jscoverage['plugins/lineheight.js'][8]++; + var me = this; + _$jscoverage['plugins/lineheight.js'][9]++; + me.setOpt({"lineheight": ["1", "1.5", "1.75", "2", "3", "4", "5"]}); + _$jscoverage['plugins/lineheight.js'][33]++; + me.commands.lineheight = {execCommand: (function (cmdName, value) { + _$jscoverage['plugins/lineheight.js'][35]++; + this.execCommand("paragraph", "p", {style: ("line-height:" + ((value == "1")? "normal": (value + "em")))}); + _$jscoverage['plugins/lineheight.js'][36]++; + return true; +}), queryCommandValue: (function () { + _$jscoverage['plugins/lineheight.js'][39]++; + var pN = domUtils.filterNodeList(this.selection.getStartElementPath(), (function (node) { + _$jscoverage['plugins/lineheight.js'][39]++; + return domUtils.isBlockElm(node); +})); + _$jscoverage['plugins/lineheight.js'][40]++; + if (pN) { + _$jscoverage['plugins/lineheight.js'][41]++; + var value = domUtils.getComputedStyle(pN, "line-height"); + _$jscoverage['plugins/lineheight.js'][42]++; + return ((value == "normal")? 1: value.replace(/[^\d.]*/gi, "")); + } +})}; +}); diff --git a/_test/coverage/plugins/link.js b/_test/coverage/plugins/link.js new file mode 100644 index 000000000..eeedea7ab --- /dev/null +++ b/_test/coverage/plugins/link.js @@ -0,0 +1,266 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/link.js']) { + _$jscoverage['plugins/link.js'] = []; + _$jscoverage['plugins/link.js'][66] = 0; + _$jscoverage['plugins/link.js'][67] = 0; + _$jscoverage['plugins/link.js'][68] = 0; + _$jscoverage['plugins/link.js'][70] = 0; + _$jscoverage['plugins/link.js'][71] = 0; + _$jscoverage['plugins/link.js'][73] = 0; + _$jscoverage['plugins/link.js'][74] = 0; + _$jscoverage['plugins/link.js'][79] = 0; + _$jscoverage['plugins/link.js'][81] = 0; + _$jscoverage['plugins/link.js'][83] = 0; + _$jscoverage['plugins/link.js'][84] = 0; + _$jscoverage['plugins/link.js'][86] = 0; + _$jscoverage['plugins/link.js'][87] = 0; + _$jscoverage['plugins/link.js'][88] = 0; + _$jscoverage['plugins/link.js'][91] = 0; + _$jscoverage['plugins/link.js'][95] = 0; + _$jscoverage['plugins/link.js'][96] = 0; + _$jscoverage['plugins/link.js'][98] = 0; + _$jscoverage['plugins/link.js'][99] = 0; + _$jscoverage['plugins/link.js'][100] = 0; + _$jscoverage['plugins/link.js'][101] = 0; + _$jscoverage['plugins/link.js'][102] = 0; + _$jscoverage['plugins/link.js'][103] = 0; + _$jscoverage['plugins/link.js'][107] = 0; + _$jscoverage['plugins/link.js'][108] = 0; + _$jscoverage['plugins/link.js'][109] = 0; + _$jscoverage['plugins/link.js'][112] = 0; + _$jscoverage['plugins/link.js'][113] = 0; + _$jscoverage['plugins/link.js'][115] = 0; + _$jscoverage['plugins/link.js'][117] = 0; + _$jscoverage['plugins/link.js'][118] = 0; + _$jscoverage['plugins/link.js'][120] = 0; + _$jscoverage['plugins/link.js'][123] = 0; + _$jscoverage['plugins/link.js'][124] = 0; + _$jscoverage['plugins/link.js'][125] = 0; + _$jscoverage['plugins/link.js'][126] = 0; + _$jscoverage['plugins/link.js'][129] = 0; + _$jscoverage['plugins/link.js'][130] = 0; + _$jscoverage['plugins/link.js'][132] = 0; + _$jscoverage['plugins/link.js'][136] = 0; + _$jscoverage['plugins/link.js'][138] = 0; + _$jscoverage['plugins/link.js'][139] = 0; + _$jscoverage['plugins/link.js'][140] = 0; + _$jscoverage['plugins/link.js'][141] = 0; + _$jscoverage['plugins/link.js'][142] = 0; + _$jscoverage['plugins/link.js'][144] = 0; + _$jscoverage['plugins/link.js'][148] = 0; + _$jscoverage['plugins/link.js'][150] = 0; + _$jscoverage['plugins/link.js'][153] = 0; + _$jscoverage['plugins/link.js'][154] = 0; + _$jscoverage['plugins/link.js'][156] = 0; + _$jscoverage['plugins/link.js'][158] = 0; + _$jscoverage['plugins/link.js'][162] = 0; + _$jscoverage['plugins/link.js'][163] = 0; + _$jscoverage['plugins/link.js'][166] = 0; + _$jscoverage['plugins/link.js'][167] = 0; + _$jscoverage['plugins/link.js'][169] = 0; + _$jscoverage['plugins/link.js'][172] = 0; + _$jscoverage['plugins/link.js'][173] = 0; + _$jscoverage['plugins/link.js'][174] = 0; + _$jscoverage['plugins/link.js'][178] = 0; + _$jscoverage['plugins/link.js'][179] = 0; + _$jscoverage['plugins/link.js'][183] = 0; + _$jscoverage['plugins/link.js'][190] = 0; + _$jscoverage['plugins/link.js'][192] = 0; +} +_$jscoverage['plugins/link.js'].source = ["/**"," * 超链接"," * @file"," * @since 1.2.6.1"," */","","/**"," * 插入超链接"," * @command link"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @param { Object } options url地址,title标题,target是否打开新页"," * @example"," * ```javascript"," * editor.execCommand( 'link', '{"," * url:'ueditor.baidu.com',"," * title:'ueditor官网',"," * target:'_blank'"," * }' );"," * ```"," */","/**"," * 如果选区所在位置是区域,返回当前超链接节点"," * @command link"," * @method queryCommandValue"," * @param { String } cmd 命令字符串"," * @return { Element } 超链接节点"," * @example"," * ```javascript"," * editor.queryCommandValue( 'link' );"," * ```"," */","/**"," * 返回当前选区位置是否是超链接"," * @command link"," * @method queryCommandState"," * @param { String } cmd 命令字符串"," * @return { Int } 0为是,-1为不是"," * @example"," * ```javascript"," * editor.queryCommandState( 'link' );"," * ```"," */","","/**"," * 根据当前选区取消超链接"," * @command unlink"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @example"," * ```javascript"," * editor.execCommand( 'unlink');"," * ```"," */","/**"," * 返回当前选区位置是否是超链接"," * @command unlink"," * @method queryCommandState"," * @param { String } cmd 命令字符串"," * @return { Int } 0为是,-1为不是"," * @example"," * ```javascript"," * editor.queryCommandState( 'unlink' );"," * ```"," */","UE.plugins['link'] = function(){"," function optimize( range ) {"," var start = range.startContainer,end = range.endContainer;",""," if ( start = domUtils.findParentByTagName( start, 'a', true ) ) {"," range.setStartBefore( start );"," }"," if ( end = domUtils.findParentByTagName( end, 'a', true ) ) {"," range.setEndAfter( end );"," }"," }","",""," UE.commands['unlink'] = {"," execCommand : function() {"," var range = this.selection.getRange(),"," bookmark;"," if(range.collapsed && !domUtils.findParentByTagName( range.startContainer, 'a', true )){"," return;"," }"," bookmark = range.createBookmark();"," optimize( range );"," range.removeInlineStyle( 'a' ).moveToBookmark( bookmark ).select();"," },"," queryCommandState : function(){"," return !this.highlight && this.queryCommandValue('link') ? 0 : -1;"," }",""," };"," function doLink(range,opt,me){"," var rngClone = range.cloneRange(),"," link = me.queryCommandValue('link');"," optimize( range = range.adjustmentBoundary() );"," var start = range.startContainer;"," if(start.nodeType == 1 && link){"," start = start.childNodes[range.startOffset];"," if(start && start.nodeType == 1 && start.tagName == 'A' && /^(?:https?|ftp|file)\\s*:\\s*\\/\\//.test(start[browser.ie?'innerText':'textContent'])){"," start[browser.ie ? 'innerText' : 'textContent'] = utils.html(opt.textValue||opt.href);",""," }"," }"," if( !rngClone.collapsed || link){"," range.removeInlineStyle( 'a' );"," rngClone = range.cloneRange();"," }",""," if ( rngClone.collapsed ) {"," var a = range.document.createElement( 'a'),"," text = '';"," if(opt.textValue){",""," text = utils.html(opt.textValue);"," delete opt.textValue;"," }else{"," text = utils.html(opt.href);",""," }"," domUtils.setAttributes( a, opt );"," start = domUtils.findParentByTagName( rngClone.startContainer, 'a', true );"," if(start && domUtils.isInNodeEndBoundary(rngClone,start)){"," range.setStartAfter(start).collapse(true);",""," }"," a[browser.ie ? 'innerText' : 'textContent'] = text;"," range.insertNode(a).selectNode( a );"," } else {"," range.applyInlineStyle( 'a', opt );",""," }"," }"," UE.commands['link'] = {"," execCommand : function( cmdName, opt ) {"," var range;"," opt._href && (opt._href = utils.unhtml(opt._href,/[<\">]/g));"," opt.href && (opt.href = utils.unhtml(opt.href,/[<\">]/g));"," opt.textValue && (opt.textValue = utils.unhtml(opt.textValue,/[<\">]/g));"," doLink(range=this.selection.getRange(),opt,this);"," //闭合都不加占位符,如果加了会在a后边多个占位符节点,导致a是图片背景组成的列表,出现空白问题"," range.collapse().select(true);",""," },"," queryCommandValue : function() {"," var range = this.selection.getRange(),"," node;"," if ( range.collapsed ) {","// node = this.selection.getStart();"," //在ie下getstart()取值偏上了"," node = range.startContainer;"," node = node.nodeType == 1 ? node : node.parentNode;",""," if ( node && (node = domUtils.findParentByTagName( node, 'a', true )) && ! domUtils.isInNodeEndBoundary(range,node)) {",""," return node;"," }"," } else {"," //trace:1111 如果是<p><a>xx</a></p> startContainer是p就会找不到a"," range.shrinkBoundary();"," var start = range.startContainer.nodeType == 3 || !range.startContainer.childNodes[range.startOffset] ? range.startContainer : range.startContainer.childNodes[range.startOffset],"," end = range.endContainer.nodeType == 3 || range.endOffset == 0 ? range.endContainer : range.endContainer.childNodes[range.endOffset-1],"," common = range.getCommonAncestor();"," node = domUtils.findParentByTagName( common, 'a', true );"," if ( !node && common.nodeType == 1){",""," var as = common.getElementsByTagName( 'a' ),"," ps,pe;",""," for ( var i = 0,ci; ci = as[i++]; ) {"," ps = domUtils.getPosition( ci, start ),pe = domUtils.getPosition( ci,end);"," if ( (ps & domUtils.POSITION_FOLLOWING || ps & domUtils.POSITION_CONTAINS)"," &&"," (pe & domUtils.POSITION_PRECEDING || pe & domUtils.POSITION_CONTAINS)"," ) {"," node = ci;"," break;"," }"," }"," }"," return node;"," }",""," },"," queryCommandState : function() {"," //判断如果是视频的话连接不可用"," //fix 853"," var img = this.selection.getRange().getClosedNode(),"," flag = img && (img.className == \"edui-faked-video\");"," return flag ? -1 : 0;"," }"," };","};"]; +_$jscoverage['plugins/link.js'][66]++; +UE.plugins.link = (function () { + _$jscoverage['plugins/link.js'][67]++; + function optimize(range) { + _$jscoverage['plugins/link.js'][68]++; + var start = range.startContainer, end = range.endContainer; + _$jscoverage['plugins/link.js'][70]++; + if ((start = domUtils.findParentByTagName(start, "a", true))) { + _$jscoverage['plugins/link.js'][71]++; + range.setStartBefore(start); + } + _$jscoverage['plugins/link.js'][73]++; + if ((end = domUtils.findParentByTagName(end, "a", true))) { + _$jscoverage['plugins/link.js'][74]++; + range.setEndAfter(end); + } +} + _$jscoverage['plugins/link.js'][79]++; + UE.commands.unlink = {execCommand: (function () { + _$jscoverage['plugins/link.js'][81]++; + var range = this.selection.getRange(), bookmark; + _$jscoverage['plugins/link.js'][83]++; + if ((range.collapsed && (! domUtils.findParentByTagName(range.startContainer, "a", true)))) { + _$jscoverage['plugins/link.js'][84]++; + return; + } + _$jscoverage['plugins/link.js'][86]++; + bookmark = range.createBookmark(); + _$jscoverage['plugins/link.js'][87]++; + optimize(range); + _$jscoverage['plugins/link.js'][88]++; + range.removeInlineStyle("a").moveToBookmark(bookmark).select(); +}), queryCommandState: (function () { + _$jscoverage['plugins/link.js'][91]++; + return (((! this.highlight) && this.queryCommandValue("link"))? 0: -1); +})}; + _$jscoverage['plugins/link.js'][95]++; + function doLink(range, opt, me) { + _$jscoverage['plugins/link.js'][96]++; + var rngClone = range.cloneRange(), link = me.queryCommandValue("link"); + _$jscoverage['plugins/link.js'][98]++; + optimize((range = range.adjustmentBoundary())); + _$jscoverage['plugins/link.js'][99]++; + var start = range.startContainer; + _$jscoverage['plugins/link.js'][100]++; + if (((start.nodeType == 1) && link)) { + _$jscoverage['plugins/link.js'][101]++; + start = start.childNodes[range.startOffset]; + _$jscoverage['plugins/link.js'][102]++; + if ((start && (start.nodeType == 1) && (start.tagName == "A") && /^(?:https?|ftp|file)\s*:\s*\/\//.test(start[(browser.ie? "innerText": "textContent")]))) { + _$jscoverage['plugins/link.js'][103]++; + start[(browser.ie? "innerText": "textContent")] = utils.html((opt.textValue || opt.href)); + } + } + _$jscoverage['plugins/link.js'][107]++; + if (((! rngClone.collapsed) || link)) { + _$jscoverage['plugins/link.js'][108]++; + range.removeInlineStyle("a"); + _$jscoverage['plugins/link.js'][109]++; + rngClone = range.cloneRange(); + } + _$jscoverage['plugins/link.js'][112]++; + if (rngClone.collapsed) { + _$jscoverage['plugins/link.js'][113]++; + var a = range.document.createElement("a"), text = ""; + _$jscoverage['plugins/link.js'][115]++; + if (opt.textValue) { + _$jscoverage['plugins/link.js'][117]++; + text = utils.html(opt.textValue); + _$jscoverage['plugins/link.js'][118]++; + (delete opt.textValue); + } + else { + _$jscoverage['plugins/link.js'][120]++; + text = utils.html(opt.href); + } + _$jscoverage['plugins/link.js'][123]++; + domUtils.setAttributes(a, opt); + _$jscoverage['plugins/link.js'][124]++; + start = domUtils.findParentByTagName(rngClone.startContainer, "a", true); + _$jscoverage['plugins/link.js'][125]++; + if ((start && domUtils.isInNodeEndBoundary(rngClone, start))) { + _$jscoverage['plugins/link.js'][126]++; + range.setStartAfter(start).collapse(true); + } + _$jscoverage['plugins/link.js'][129]++; + a[(browser.ie? "innerText": "textContent")] = text; + _$jscoverage['plugins/link.js'][130]++; + range.insertNode(a).selectNode(a); + } + else { + _$jscoverage['plugins/link.js'][132]++; + range.applyInlineStyle("a", opt); + } +} + _$jscoverage['plugins/link.js'][136]++; + UE.commands.link = {execCommand: (function (cmdName, opt) { + _$jscoverage['plugins/link.js'][138]++; + var range; + _$jscoverage['plugins/link.js'][139]++; + (opt._href && (opt._href = utils.unhtml(opt._href, /[<">]/g))); + _$jscoverage['plugins/link.js'][140]++; + (opt.href && (opt.href = utils.unhtml(opt.href, /[<">]/g))); + _$jscoverage['plugins/link.js'][141]++; + (opt.textValue && (opt.textValue = utils.unhtml(opt.textValue, /[<">]/g))); + _$jscoverage['plugins/link.js'][142]++; + doLink((range = this.selection.getRange()), opt, this); + _$jscoverage['plugins/link.js'][144]++; + range.collapse().select(true); +}), queryCommandValue: (function () { + _$jscoverage['plugins/link.js'][148]++; + var range = this.selection.getRange(), node; + _$jscoverage['plugins/link.js'][150]++; + if (range.collapsed) { + _$jscoverage['plugins/link.js'][153]++; + node = range.startContainer; + _$jscoverage['plugins/link.js'][154]++; + node = ((node.nodeType == 1)? node: node.parentNode); + _$jscoverage['plugins/link.js'][156]++; + if ((node && (node = domUtils.findParentByTagName(node, "a", true)) && (! domUtils.isInNodeEndBoundary(range, node)))) { + _$jscoverage['plugins/link.js'][158]++; + return node; + } + } + else { + _$jscoverage['plugins/link.js'][162]++; + range.shrinkBoundary(); + _$jscoverage['plugins/link.js'][163]++; + var start = (((range.startContainer.nodeType == 3) || (! range.startContainer.childNodes[range.startOffset]))? range.startContainer: range.startContainer.childNodes[range.startOffset]), end = (((range.endContainer.nodeType == 3) || (range.endOffset == 0))? range.endContainer: range.endContainer.childNodes[(range.endOffset - 1)]), common = range.getCommonAncestor(); + _$jscoverage['plugins/link.js'][166]++; + node = domUtils.findParentByTagName(common, "a", true); + _$jscoverage['plugins/link.js'][167]++; + if (((! node) && (common.nodeType == 1))) { + _$jscoverage['plugins/link.js'][169]++; + var as = common.getElementsByTagName("a"), ps, pe; + _$jscoverage['plugins/link.js'][172]++; + for (var i = 0, ci; (ci = as[(i++)]);) { + _$jscoverage['plugins/link.js'][173]++; + ((ps = domUtils.getPosition(ci, start)), (pe = domUtils.getPosition(ci, end))); + _$jscoverage['plugins/link.js'][174]++; + if ((((ps & domUtils.POSITION_FOLLOWING) || (ps & domUtils.POSITION_CONTAINS)) && ((pe & domUtils.POSITION_PRECEDING) || (pe & domUtils.POSITION_CONTAINS)))) { + _$jscoverage['plugins/link.js'][178]++; + node = ci; + _$jscoverage['plugins/link.js'][179]++; + break; + } +} + } + _$jscoverage['plugins/link.js'][183]++; + return node; + } +}), queryCommandState: (function () { + _$jscoverage['plugins/link.js'][190]++; + var img = this.selection.getRange().getClosedNode(), flag = (img && (img.className == "edui-faked-video")); + _$jscoverage['plugins/link.js'][192]++; + return (flag? -1: 0); +})}; +}); diff --git a/_test/coverage/plugins/list.js b/_test/coverage/plugins/list.js new file mode 100644 index 000000000..3b18180e6 --- /dev/null +++ b/_test/coverage/plugins/list.js @@ -0,0 +1,2337 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/list.js']) { + _$jscoverage['plugins/list.js'] = []; + _$jscoverage['plugins/list.js'][7] = 0; + _$jscoverage['plugins/list.js'][8] = 0; + _$jscoverage['plugins/list.js'][14] = 0; + _$jscoverage['plugins/list.js'][25] = 0; + _$jscoverage['plugins/list.js'][50] = 0; + _$jscoverage['plugins/list.js'][51] = 0; + _$jscoverage['plugins/list.js'][52] = 0; + _$jscoverage['plugins/list.js'][53] = 0; + _$jscoverage['plugins/list.js'][55] = 0; + _$jscoverage['plugins/list.js'][57] = 0; + _$jscoverage['plugins/list.js'][61] = 0; + _$jscoverage['plugins/list.js'][64] = 0; + _$jscoverage['plugins/list.js'][65] = 0; + _$jscoverage['plugins/list.js'][66] = 0; + _$jscoverage['plugins/list.js'][70] = 0; + _$jscoverage['plugins/list.js'][71] = 0; + _$jscoverage['plugins/list.js'][72] = 0; + _$jscoverage['plugins/list.js'][73] = 0; + _$jscoverage['plugins/list.js'][74] = 0; + _$jscoverage['plugins/list.js'][75] = 0; + _$jscoverage['plugins/list.js'][77] = 0; + _$jscoverage['plugins/list.js'][78] = 0; + _$jscoverage['plugins/list.js'][80] = 0; + _$jscoverage['plugins/list.js'][82] = 0; + _$jscoverage['plugins/list.js'][84] = 0; + _$jscoverage['plugins/list.js'][85] = 0; + _$jscoverage['plugins/list.js'][86] = 0; + _$jscoverage['plugins/list.js'][87] = 0; + _$jscoverage['plugins/list.js'][89] = 0; + _$jscoverage['plugins/list.js'][90] = 0; + _$jscoverage['plugins/list.js'][91] = 0; + _$jscoverage['plugins/list.js'][92] = 0; + _$jscoverage['plugins/list.js'][94] = 0; + _$jscoverage['plugins/list.js'][95] = 0; + _$jscoverage['plugins/list.js'][96] = 0; + _$jscoverage['plugins/list.js'][97] = 0; + _$jscoverage['plugins/list.js'][100] = 0; + _$jscoverage['plugins/list.js'][101] = 0; + _$jscoverage['plugins/list.js'][103] = 0; + _$jscoverage['plugins/list.js'][104] = 0; + _$jscoverage['plugins/list.js'][105] = 0; + _$jscoverage['plugins/list.js'][107] = 0; + _$jscoverage['plugins/list.js'][108] = 0; + _$jscoverage['plugins/list.js'][110] = 0; + _$jscoverage['plugins/list.js'][113] = 0; + _$jscoverage['plugins/list.js'][114] = 0; + _$jscoverage['plugins/list.js'][115] = 0; + _$jscoverage['plugins/list.js'][117] = 0; + _$jscoverage['plugins/list.js'][120] = 0; + _$jscoverage['plugins/list.js'][121] = 0; + _$jscoverage['plugins/list.js'][122] = 0; + _$jscoverage['plugins/list.js'][123] = 0; + _$jscoverage['plugins/list.js'][125] = 0; + _$jscoverage['plugins/list.js'][126] = 0; + _$jscoverage['plugins/list.js'][127] = 0; + _$jscoverage['plugins/list.js'][128] = 0; + _$jscoverage['plugins/list.js'][129] = 0; + _$jscoverage['plugins/list.js'][130] = 0; + _$jscoverage['plugins/list.js'][131] = 0; + _$jscoverage['plugins/list.js'][132] = 0; + _$jscoverage['plugins/list.js'][133] = 0; + _$jscoverage['plugins/list.js'][134] = 0; + _$jscoverage['plugins/list.js'][135] = 0; + _$jscoverage['plugins/list.js'][136] = 0; + _$jscoverage['plugins/list.js'][138] = 0; + _$jscoverage['plugins/list.js'][139] = 0; + _$jscoverage['plugins/list.js'][140] = 0; + _$jscoverage['plugins/list.js'][141] = 0; + _$jscoverage['plugins/list.js'][142] = 0; + _$jscoverage['plugins/list.js'][143] = 0; + _$jscoverage['plugins/list.js'][153] = 0; + _$jscoverage['plugins/list.js'][154] = 0; + _$jscoverage['plugins/list.js'][155] = 0; + _$jscoverage['plugins/list.js'][156] = 0; + _$jscoverage['plugins/list.js'][158] = 0; + _$jscoverage['plugins/list.js'][162] = 0; + _$jscoverage['plugins/list.js'][163] = 0; + _$jscoverage['plugins/list.js'][165] = 0; + _$jscoverage['plugins/list.js'][166] = 0; + _$jscoverage['plugins/list.js'][167] = 0; + _$jscoverage['plugins/list.js'][168] = 0; + _$jscoverage['plugins/list.js'][169] = 0; + _$jscoverage['plugins/list.js'][170] = 0; + _$jscoverage['plugins/list.js'][171] = 0; + _$jscoverage['plugins/list.js'][172] = 0; + _$jscoverage['plugins/list.js'][174] = 0; + _$jscoverage['plugins/list.js'][175] = 0; + _$jscoverage['plugins/list.js'][176] = 0; + _$jscoverage['plugins/list.js'][178] = 0; + _$jscoverage['plugins/list.js'][180] = 0; + _$jscoverage['plugins/list.js'][181] = 0; + _$jscoverage['plugins/list.js'][184] = 0; + _$jscoverage['plugins/list.js'][185] = 0; + _$jscoverage['plugins/list.js'][186] = 0; + _$jscoverage['plugins/list.js'][187] = 0; + _$jscoverage['plugins/list.js'][188] = 0; + _$jscoverage['plugins/list.js'][189] = 0; + _$jscoverage['plugins/list.js'][192] = 0; + _$jscoverage['plugins/list.js'][198] = 0; + _$jscoverage['plugins/list.js'][201] = 0; + _$jscoverage['plugins/list.js'][202] = 0; + _$jscoverage['plugins/list.js'][203] = 0; + _$jscoverage['plugins/list.js'][204] = 0; + _$jscoverage['plugins/list.js'][205] = 0; + _$jscoverage['plugins/list.js'][206] = 0; + _$jscoverage['plugins/list.js'][208] = 0; + _$jscoverage['plugins/list.js'][209] = 0; + _$jscoverage['plugins/list.js'][210] = 0; + _$jscoverage['plugins/list.js'][211] = 0; + _$jscoverage['plugins/list.js'][213] = 0; + _$jscoverage['plugins/list.js'][218] = 0; + _$jscoverage['plugins/list.js'][219] = 0; + _$jscoverage['plugins/list.js'][223] = 0; + _$jscoverage['plugins/list.js'][224] = 0; + _$jscoverage['plugins/list.js'][227] = 0; + _$jscoverage['plugins/list.js'][228] = 0; + _$jscoverage['plugins/list.js'][229] = 0; + _$jscoverage['plugins/list.js'][230] = 0; + _$jscoverage['plugins/list.js'][233] = 0; + _$jscoverage['plugins/list.js'][244] = 0; + _$jscoverage['plugins/list.js'][245] = 0; + _$jscoverage['plugins/list.js'][246] = 0; + _$jscoverage['plugins/list.js'][247] = 0; + _$jscoverage['plugins/list.js'][248] = 0; + _$jscoverage['plugins/list.js'][249] = 0; + _$jscoverage['plugins/list.js'][252] = 0; + _$jscoverage['plugins/list.js'][254] = 0; + _$jscoverage['plugins/list.js'][255] = 0; + _$jscoverage['plugins/list.js'][256] = 0; + _$jscoverage['plugins/list.js'][261] = 0; + _$jscoverage['plugins/list.js'][262] = 0; + _$jscoverage['plugins/list.js'][263] = 0; + _$jscoverage['plugins/list.js'][267] = 0; + _$jscoverage['plugins/list.js'][268] = 0; + _$jscoverage['plugins/list.js'][269] = 0; + _$jscoverage['plugins/list.js'][271] = 0; + _$jscoverage['plugins/list.js'][272] = 0; + _$jscoverage['plugins/list.js'][273] = 0; + _$jscoverage['plugins/list.js'][274] = 0; + _$jscoverage['plugins/list.js'][275] = 0; + _$jscoverage['plugins/list.js'][276] = 0; + _$jscoverage['plugins/list.js'][279] = 0; + _$jscoverage['plugins/list.js'][282] = 0; + _$jscoverage['plugins/list.js'][285] = 0; + _$jscoverage['plugins/list.js'][286] = 0; + _$jscoverage['plugins/list.js'][287] = 0; + _$jscoverage['plugins/list.js'][289] = 0; + _$jscoverage['plugins/list.js'][291] = 0; + _$jscoverage['plugins/list.js'][293] = 0; + _$jscoverage['plugins/list.js'][294] = 0; + _$jscoverage['plugins/list.js'][295] = 0; + _$jscoverage['plugins/list.js'][297] = 0; + _$jscoverage['plugins/list.js'][299] = 0; + _$jscoverage['plugins/list.js'][300] = 0; + _$jscoverage['plugins/list.js'][301] = 0; + _$jscoverage['plugins/list.js'][302] = 0; + _$jscoverage['plugins/list.js'][304] = 0; + _$jscoverage['plugins/list.js'][305] = 0; + _$jscoverage['plugins/list.js'][307] = 0; + _$jscoverage['plugins/list.js'][308] = 0; + _$jscoverage['plugins/list.js'][311] = 0; + _$jscoverage['plugins/list.js'][312] = 0; + _$jscoverage['plugins/list.js'][313] = 0; + _$jscoverage['plugins/list.js'][319] = 0; + _$jscoverage['plugins/list.js'][320] = 0; + _$jscoverage['plugins/list.js'][323] = 0; + _$jscoverage['plugins/list.js'][324] = 0; + _$jscoverage['plugins/list.js'][326] = 0; + _$jscoverage['plugins/list.js'][327] = 0; + _$jscoverage['plugins/list.js'][329] = 0; + _$jscoverage['plugins/list.js'][330] = 0; + _$jscoverage['plugins/list.js'][331] = 0; + _$jscoverage['plugins/list.js'][333] = 0; + _$jscoverage['plugins/list.js'][334] = 0; + _$jscoverage['plugins/list.js'][335] = 0; + _$jscoverage['plugins/list.js'][336] = 0; + _$jscoverage['plugins/list.js'][340] = 0; + _$jscoverage['plugins/list.js'][341] = 0; + _$jscoverage['plugins/list.js'][342] = 0; + _$jscoverage['plugins/list.js'][343] = 0; + _$jscoverage['plugins/list.js'][346] = 0; + _$jscoverage['plugins/list.js'][347] = 0; + _$jscoverage['plugins/list.js'][351] = 0; + _$jscoverage['plugins/list.js'][352] = 0; + _$jscoverage['plugins/list.js'][353] = 0; + _$jscoverage['plugins/list.js'][354] = 0; + _$jscoverage['plugins/list.js'][355] = 0; + _$jscoverage['plugins/list.js'][356] = 0; + _$jscoverage['plugins/list.js'][357] = 0; + _$jscoverage['plugins/list.js'][358] = 0; + _$jscoverage['plugins/list.js'][360] = 0; + _$jscoverage['plugins/list.js'][361] = 0; + _$jscoverage['plugins/list.js'][363] = 0; + _$jscoverage['plugins/list.js'][364] = 0; + _$jscoverage['plugins/list.js'][365] = 0; + _$jscoverage['plugins/list.js'][366] = 0; + _$jscoverage['plugins/list.js'][367] = 0; + _$jscoverage['plugins/list.js'][368] = 0; + _$jscoverage['plugins/list.js'][372] = 0; + _$jscoverage['plugins/list.js'][373] = 0; + _$jscoverage['plugins/list.js'][374] = 0; + _$jscoverage['plugins/list.js'][375] = 0; + _$jscoverage['plugins/list.js'][377] = 0; + _$jscoverage['plugins/list.js'][379] = 0; + _$jscoverage['plugins/list.js'][380] = 0; + _$jscoverage['plugins/list.js'][384] = 0; + _$jscoverage['plugins/list.js'][386] = 0; + _$jscoverage['plugins/list.js'][389] = 0; + _$jscoverage['plugins/list.js'][391] = 0; + _$jscoverage['plugins/list.js'][392] = 0; + _$jscoverage['plugins/list.js'][393] = 0; + _$jscoverage['plugins/list.js'][396] = 0; + _$jscoverage['plugins/list.js'][399] = 0; + _$jscoverage['plugins/list.js'][400] = 0; + _$jscoverage['plugins/list.js'][401] = 0; + _$jscoverage['plugins/list.js'][402] = 0; + _$jscoverage['plugins/list.js'][403] = 0; + _$jscoverage['plugins/list.js'][404] = 0; + _$jscoverage['plugins/list.js'][407] = 0; + _$jscoverage['plugins/list.js'][408] = 0; + _$jscoverage['plugins/list.js'][410] = 0; + _$jscoverage['plugins/list.js'][411] = 0; + _$jscoverage['plugins/list.js'][412] = 0; + _$jscoverage['plugins/list.js'][414] = 0; + _$jscoverage['plugins/list.js'][415] = 0; + _$jscoverage['plugins/list.js'][417] = 0; + _$jscoverage['plugins/list.js'][418] = 0; + _$jscoverage['plugins/list.js'][419] = 0; + _$jscoverage['plugins/list.js'][423] = 0; + _$jscoverage['plugins/list.js'][424] = 0; + _$jscoverage['plugins/list.js'][425] = 0; + _$jscoverage['plugins/list.js'][427] = 0; + _$jscoverage['plugins/list.js'][428] = 0; + _$jscoverage['plugins/list.js'][431] = 0; + _$jscoverage['plugins/list.js'][432] = 0; + _$jscoverage['plugins/list.js'][433] = 0; + _$jscoverage['plugins/list.js'][434] = 0; + _$jscoverage['plugins/list.js'][436] = 0; + _$jscoverage['plugins/list.js'][437] = 0; + _$jscoverage['plugins/list.js'][438] = 0; + _$jscoverage['plugins/list.js'][442] = 0; + _$jscoverage['plugins/list.js'][443] = 0; + _$jscoverage['plugins/list.js'][444] = 0; + _$jscoverage['plugins/list.js'][445] = 0; + _$jscoverage['plugins/list.js'][446] = 0; + _$jscoverage['plugins/list.js'][448] = 0; + _$jscoverage['plugins/list.js'][449] = 0; + _$jscoverage['plugins/list.js'][450] = 0; + _$jscoverage['plugins/list.js'][451] = 0; + _$jscoverage['plugins/list.js'][453] = 0; + _$jscoverage['plugins/list.js'][454] = 0; + _$jscoverage['plugins/list.js'][456] = 0; + _$jscoverage['plugins/list.js'][458] = 0; + _$jscoverage['plugins/list.js'][460] = 0; + _$jscoverage['plugins/list.js'][461] = 0; + _$jscoverage['plugins/list.js'][462] = 0; + _$jscoverage['plugins/list.js'][463] = 0; + _$jscoverage['plugins/list.js'][465] = 0; + _$jscoverage['plugins/list.js'][466] = 0; + _$jscoverage['plugins/list.js'][467] = 0; + _$jscoverage['plugins/list.js'][468] = 0; + _$jscoverage['plugins/list.js'][469] = 0; + _$jscoverage['plugins/list.js'][470] = 0; + _$jscoverage['plugins/list.js'][471] = 0; + _$jscoverage['plugins/list.js'][472] = 0; + _$jscoverage['plugins/list.js'][475] = 0; + _$jscoverage['plugins/list.js'][477] = 0; + _$jscoverage['plugins/list.js'][480] = 0; + _$jscoverage['plugins/list.js'][483] = 0; + _$jscoverage['plugins/list.js'][485] = 0; + _$jscoverage['plugins/list.js'][486] = 0; + _$jscoverage['plugins/list.js'][487] = 0; + _$jscoverage['plugins/list.js'][488] = 0; + _$jscoverage['plugins/list.js'][489] = 0; + _$jscoverage['plugins/list.js'][490] = 0; + _$jscoverage['plugins/list.js'][491] = 0; + _$jscoverage['plugins/list.js'][493] = 0; + _$jscoverage['plugins/list.js'][494] = 0; + _$jscoverage['plugins/list.js'][495] = 0; + _$jscoverage['plugins/list.js'][497] = 0; + _$jscoverage['plugins/list.js'][498] = 0; + _$jscoverage['plugins/list.js'][499] = 0; + _$jscoverage['plugins/list.js'][500] = 0; + _$jscoverage['plugins/list.js'][501] = 0; + _$jscoverage['plugins/list.js'][504] = 0; + _$jscoverage['plugins/list.js'][506] = 0; + _$jscoverage['plugins/list.js'][510] = 0; + _$jscoverage['plugins/list.js'][512] = 0; + _$jscoverage['plugins/list.js'][513] = 0; + _$jscoverage['plugins/list.js'][514] = 0; + _$jscoverage['plugins/list.js'][516] = 0; + _$jscoverage['plugins/list.js'][520] = 0; + _$jscoverage['plugins/list.js'][521] = 0; + _$jscoverage['plugins/list.js'][525] = 0; + _$jscoverage['plugins/list.js'][528] = 0; + _$jscoverage['plugins/list.js'][529] = 0; + _$jscoverage['plugins/list.js'][530] = 0; + _$jscoverage['plugins/list.js'][532] = 0; + _$jscoverage['plugins/list.js'][533] = 0; + _$jscoverage['plugins/list.js'][534] = 0; + _$jscoverage['plugins/list.js'][535] = 0; + _$jscoverage['plugins/list.js'][540] = 0; + _$jscoverage['plugins/list.js'][542] = 0; + _$jscoverage['plugins/list.js'][543] = 0; + _$jscoverage['plugins/list.js'][544] = 0; + _$jscoverage['plugins/list.js'][545] = 0; + _$jscoverage['plugins/list.js'][546] = 0; + _$jscoverage['plugins/list.js'][547] = 0; + _$jscoverage['plugins/list.js'][548] = 0; + _$jscoverage['plugins/list.js'][551] = 0; + _$jscoverage['plugins/list.js'][552] = 0; + _$jscoverage['plugins/list.js'][553] = 0; + _$jscoverage['plugins/list.js'][557] = 0; + _$jscoverage['plugins/list.js'][559] = 0; + _$jscoverage['plugins/list.js'][560] = 0; + _$jscoverage['plugins/list.js'][561] = 0; + _$jscoverage['plugins/list.js'][562] = 0; + _$jscoverage['plugins/list.js'][563] = 0; + _$jscoverage['plugins/list.js'][565] = 0; + _$jscoverage['plugins/list.js'][567] = 0; + _$jscoverage['plugins/list.js'][570] = 0; + _$jscoverage['plugins/list.js'][574] = 0; + _$jscoverage['plugins/list.js'][575] = 0; + _$jscoverage['plugins/list.js'][576] = 0; + _$jscoverage['plugins/list.js'][578] = 0; + _$jscoverage['plugins/list.js'][579] = 0; + _$jscoverage['plugins/list.js'][581] = 0; + _$jscoverage['plugins/list.js'][583] = 0; + _$jscoverage['plugins/list.js'][584] = 0; + _$jscoverage['plugins/list.js'][587] = 0; + _$jscoverage['plugins/list.js'][589] = 0; + _$jscoverage['plugins/list.js'][590] = 0; + _$jscoverage['plugins/list.js'][592] = 0; + _$jscoverage['plugins/list.js'][593] = 0; + _$jscoverage['plugins/list.js'][595] = 0; + _$jscoverage['plugins/list.js'][596] = 0; + _$jscoverage['plugins/list.js'][598] = 0; + _$jscoverage['plugins/list.js'][599] = 0; + _$jscoverage['plugins/list.js'][600] = 0; + _$jscoverage['plugins/list.js'][602] = 0; + _$jscoverage['plugins/list.js'][603] = 0; + _$jscoverage['plugins/list.js'][604] = 0; + _$jscoverage['plugins/list.js'][607] = 0; + _$jscoverage['plugins/list.js'][608] = 0; + _$jscoverage['plugins/list.js'][609] = 0; + _$jscoverage['plugins/list.js'][610] = 0; + _$jscoverage['plugins/list.js'][611] = 0; + _$jscoverage['plugins/list.js'][612] = 0; + _$jscoverage['plugins/list.js'][617] = 0; + _$jscoverage['plugins/list.js'][625] = 0; + _$jscoverage['plugins/list.js'][627] = 0; + _$jscoverage['plugins/list.js'][628] = 0; + _$jscoverage['plugins/list.js'][629] = 0; + _$jscoverage['plugins/list.js'][630] = 0; + _$jscoverage['plugins/list.js'][632] = 0; + _$jscoverage['plugins/list.js'][633] = 0; + _$jscoverage['plugins/list.js'][634] = 0; + _$jscoverage['plugins/list.js'][635] = 0; + _$jscoverage['plugins/list.js'][636] = 0; + _$jscoverage['plugins/list.js'][637] = 0; + _$jscoverage['plugins/list.js'][638] = 0; + _$jscoverage['plugins/list.js'][639] = 0; + _$jscoverage['plugins/list.js'][640] = 0; + _$jscoverage['plugins/list.js'][641] = 0; + _$jscoverage['plugins/list.js'][642] = 0; + _$jscoverage['plugins/list.js'][645] = 0; + _$jscoverage['plugins/list.js'][646] = 0; + _$jscoverage['plugins/list.js'][647] = 0; + _$jscoverage['plugins/list.js'][650] = 0; + _$jscoverage['plugins/list.js'][651] = 0; + _$jscoverage['plugins/list.js'][653] = 0; + _$jscoverage['plugins/list.js'][654] = 0; + _$jscoverage['plugins/list.js'][655] = 0; + _$jscoverage['plugins/list.js'][656] = 0; + _$jscoverage['plugins/list.js'][658] = 0; + _$jscoverage['plugins/list.js'][659] = 0; + _$jscoverage['plugins/list.js'][661] = 0; + _$jscoverage['plugins/list.js'][662] = 0; + _$jscoverage['plugins/list.js'][666] = 0; + _$jscoverage['plugins/list.js'][667] = 0; + _$jscoverage['plugins/list.js'][669] = 0; + _$jscoverage['plugins/list.js'][670] = 0; + _$jscoverage['plugins/list.js'][672] = 0; + _$jscoverage['plugins/list.js'][673] = 0; + _$jscoverage['plugins/list.js'][675] = 0; + _$jscoverage['plugins/list.js'][679] = 0; + _$jscoverage['plugins/list.js'][680] = 0; + _$jscoverage['plugins/list.js'][681] = 0; + _$jscoverage['plugins/list.js'][682] = 0; + _$jscoverage['plugins/list.js'][685] = 0; + _$jscoverage['plugins/list.js'][686] = 0; + _$jscoverage['plugins/list.js'][687] = 0; + _$jscoverage['plugins/list.js'][691] = 0; + _$jscoverage['plugins/list.js'][692] = 0; + _$jscoverage['plugins/list.js'][693] = 0; + _$jscoverage['plugins/list.js'][694] = 0; + _$jscoverage['plugins/list.js'][695] = 0; + _$jscoverage['plugins/list.js'][700] = 0; + _$jscoverage['plugins/list.js'][701] = 0; + _$jscoverage['plugins/list.js'][702] = 0; + _$jscoverage['plugins/list.js'][703] = 0; + _$jscoverage['plugins/list.js'][704] = 0; + _$jscoverage['plugins/list.js'][705] = 0; + _$jscoverage['plugins/list.js'][706] = 0; + _$jscoverage['plugins/list.js'][710] = 0; + _$jscoverage['plugins/list.js'][711] = 0; + _$jscoverage['plugins/list.js'][714] = 0; + _$jscoverage['plugins/list.js'][715] = 0; + _$jscoverage['plugins/list.js'][716] = 0; + _$jscoverage['plugins/list.js'][720] = 0; + _$jscoverage['plugins/list.js'][721] = 0; + _$jscoverage['plugins/list.js'][722] = 0; + _$jscoverage['plugins/list.js'][723] = 0; + _$jscoverage['plugins/list.js'][724] = 0; + _$jscoverage['plugins/list.js'][737] = 0; + _$jscoverage['plugins/list.js'][738] = 0; + _$jscoverage['plugins/list.js'][739] = 0; + _$jscoverage['plugins/list.js'][740] = 0; + _$jscoverage['plugins/list.js'][741] = 0; + _$jscoverage['plugins/list.js'][742] = 0; + _$jscoverage['plugins/list.js'][747] = 0; + _$jscoverage['plugins/list.js'][749] = 0; + _$jscoverage['plugins/list.js'][752] = 0; + _$jscoverage['plugins/list.js'][753] = 0; + _$jscoverage['plugins/list.js'][754] = 0; + _$jscoverage['plugins/list.js'][755] = 0; + _$jscoverage['plugins/list.js'][756] = 0; + _$jscoverage['plugins/list.js'][757] = 0; + _$jscoverage['plugins/list.js'][759] = 0; + _$jscoverage['plugins/list.js'][760] = 0; + _$jscoverage['plugins/list.js'][766] = 0; + _$jscoverage['plugins/list.js'][767] = 0; + _$jscoverage['plugins/list.js'][769] = 0; + _$jscoverage['plugins/list.js'][770] = 0; + _$jscoverage['plugins/list.js'][771] = 0; + _$jscoverage['plugins/list.js'][772] = 0; + _$jscoverage['plugins/list.js'][773] = 0; + _$jscoverage['plugins/list.js'][776] = 0; + _$jscoverage['plugins/list.js'][777] = 0; + _$jscoverage['plugins/list.js'][778] = 0; + _$jscoverage['plugins/list.js'][779] = 0; + _$jscoverage['plugins/list.js'][780] = 0; + _$jscoverage['plugins/list.js'][781] = 0; + _$jscoverage['plugins/list.js'][782] = 0; + _$jscoverage['plugins/list.js'][783] = 0; + _$jscoverage['plugins/list.js'][784] = 0; + _$jscoverage['plugins/list.js'][785] = 0; + _$jscoverage['plugins/list.js'][786] = 0; + _$jscoverage['plugins/list.js'][787] = 0; + _$jscoverage['plugins/list.js'][790] = 0; + _$jscoverage['plugins/list.js'][791] = 0; + _$jscoverage['plugins/list.js'][792] = 0; + _$jscoverage['plugins/list.js'][793] = 0; + _$jscoverage['plugins/list.js'][794] = 0; + _$jscoverage['plugins/list.js'][795] = 0; + _$jscoverage['plugins/list.js'][798] = 0; + _$jscoverage['plugins/list.js'][799] = 0; + _$jscoverage['plugins/list.js'][800] = 0; + _$jscoverage['plugins/list.js'][801] = 0; + _$jscoverage['plugins/list.js'][802] = 0; + _$jscoverage['plugins/list.js'][803] = 0; + _$jscoverage['plugins/list.js'][805] = 0; + _$jscoverage['plugins/list.js'][808] = 0; + _$jscoverage['plugins/list.js'][809] = 0; + _$jscoverage['plugins/list.js'][810] = 0; + _$jscoverage['plugins/list.js'][811] = 0; + _$jscoverage['plugins/list.js'][812] = 0; + _$jscoverage['plugins/list.js'][813] = 0; + _$jscoverage['plugins/list.js'][814] = 0; + _$jscoverage['plugins/list.js'][815] = 0; + _$jscoverage['plugins/list.js'][816] = 0; + _$jscoverage['plugins/list.js'][817] = 0; + _$jscoverage['plugins/list.js'][818] = 0; + _$jscoverage['plugins/list.js'][819] = 0; + _$jscoverage['plugins/list.js'][823] = 0; + _$jscoverage['plugins/list.js'][825] = 0; + _$jscoverage['plugins/list.js'][827] = 0; + _$jscoverage['plugins/list.js'][829] = 0; + _$jscoverage['plugins/list.js'][830] = 0; + _$jscoverage['plugins/list.js'][833] = 0; + _$jscoverage['plugins/list.js'][834] = 0; + _$jscoverage['plugins/list.js'][835] = 0; + _$jscoverage['plugins/list.js'][840] = 0; + _$jscoverage['plugins/list.js'][841] = 0; + _$jscoverage['plugins/list.js'][842] = 0; + _$jscoverage['plugins/list.js'][843] = 0; + _$jscoverage['plugins/list.js'][845] = 0; + _$jscoverage['plugins/list.js'][846] = 0; + _$jscoverage['plugins/list.js'][848] = 0; + _$jscoverage['plugins/list.js'][921] = 0; + _$jscoverage['plugins/list.js'][925] = 0; + _$jscoverage['plugins/list.js'][926] = 0; + _$jscoverage['plugins/list.js'][928] = 0; + _$jscoverage['plugins/list.js'][931] = 0; + _$jscoverage['plugins/list.js'][937] = 0; + _$jscoverage['plugins/list.js'][938] = 0; + _$jscoverage['plugins/list.js'][946] = 0; + _$jscoverage['plugins/list.js'][947] = 0; + _$jscoverage['plugins/list.js'][948] = 0; + _$jscoverage['plugins/list.js'][949] = 0; + _$jscoverage['plugins/list.js'][951] = 0; + _$jscoverage['plugins/list.js'][953] = 0; + _$jscoverage['plugins/list.js'][954] = 0; + _$jscoverage['plugins/list.js'][955] = 0; + _$jscoverage['plugins/list.js'][956] = 0; + _$jscoverage['plugins/list.js'][957] = 0; + _$jscoverage['plugins/list.js'][958] = 0; + _$jscoverage['plugins/list.js'][959] = 0; + _$jscoverage['plugins/list.js'][960] = 0; + _$jscoverage['plugins/list.js'][962] = 0; + _$jscoverage['plugins/list.js'][964] = 0; + _$jscoverage['plugins/list.js'][966] = 0; + _$jscoverage['plugins/list.js'][967] = 0; + _$jscoverage['plugins/list.js'][968] = 0; + _$jscoverage['plugins/list.js'][969] = 0; + _$jscoverage['plugins/list.js'][970] = 0; + _$jscoverage['plugins/list.js'][971] = 0; + _$jscoverage['plugins/list.js'][973] = 0; + _$jscoverage['plugins/list.js'][975] = 0; + _$jscoverage['plugins/list.js'][976] = 0; + _$jscoverage['plugins/list.js'][977] = 0; + _$jscoverage['plugins/list.js'][978] = 0; + _$jscoverage['plugins/list.js'][980] = 0; + _$jscoverage['plugins/list.js'][981] = 0; + _$jscoverage['plugins/list.js'][983] = 0; + _$jscoverage['plugins/list.js'][984] = 0; + _$jscoverage['plugins/list.js'][985] = 0; + _$jscoverage['plugins/list.js'][986] = 0; + _$jscoverage['plugins/list.js'][987] = 0; + _$jscoverage['plugins/list.js'][988] = 0; + _$jscoverage['plugins/list.js'][989] = 0; + _$jscoverage['plugins/list.js'][994] = 0; + _$jscoverage['plugins/list.js'][995] = 0; + _$jscoverage['plugins/list.js'][1000] = 0; + _$jscoverage['plugins/list.js'][1002] = 0; + _$jscoverage['plugins/list.js'][1003] = 0; + _$jscoverage['plugins/list.js'][1004] = 0; + _$jscoverage['plugins/list.js'][1005] = 0; + _$jscoverage['plugins/list.js'][1008] = 0; + _$jscoverage['plugins/list.js'][1009] = 0; + _$jscoverage['plugins/list.js'][1010] = 0; + _$jscoverage['plugins/list.js'][1011] = 0; + _$jscoverage['plugins/list.js'][1014] = 0; + _$jscoverage['plugins/list.js'][1015] = 0; + _$jscoverage['plugins/list.js'][1016] = 0; + _$jscoverage['plugins/list.js'][1017] = 0; + _$jscoverage['plugins/list.js'][1018] = 0; + _$jscoverage['plugins/list.js'][1020] = 0; + _$jscoverage['plugins/list.js'][1022] = 0; + _$jscoverage['plugins/list.js'][1023] = 0; + _$jscoverage['plugins/list.js'][1024] = 0; + _$jscoverage['plugins/list.js'][1026] = 0; + _$jscoverage['plugins/list.js'][1028] = 0; + _$jscoverage['plugins/list.js'][1029] = 0; + _$jscoverage['plugins/list.js'][1030] = 0; + _$jscoverage['plugins/list.js'][1031] = 0; + _$jscoverage['plugins/list.js'][1033] = 0; + _$jscoverage['plugins/list.js'][1035] = 0; + _$jscoverage['plugins/list.js'][1038] = 0; + _$jscoverage['plugins/list.js'][1040] = 0; + _$jscoverage['plugins/list.js'][1041] = 0; + _$jscoverage['plugins/list.js'][1042] = 0; + _$jscoverage['plugins/list.js'][1043] = 0; + _$jscoverage['plugins/list.js'][1045] = 0; + _$jscoverage['plugins/list.js'][1047] = 0; + _$jscoverage['plugins/list.js'][1050] = 0; + _$jscoverage['plugins/list.js'][1052] = 0; + _$jscoverage['plugins/list.js'][1053] = 0; + _$jscoverage['plugins/list.js'][1054] = 0; + _$jscoverage['plugins/list.js'][1055] = 0; + _$jscoverage['plugins/list.js'][1056] = 0; + _$jscoverage['plugins/list.js'][1058] = 0; + _$jscoverage['plugins/list.js'][1059] = 0; + _$jscoverage['plugins/list.js'][1060] = 0; + _$jscoverage['plugins/list.js'][1061] = 0; + _$jscoverage['plugins/list.js'][1062] = 0; + _$jscoverage['plugins/list.js'][1064] = 0; + _$jscoverage['plugins/list.js'][1066] = 0; + _$jscoverage['plugins/list.js'][1067] = 0; + _$jscoverage['plugins/list.js'][1068] = 0; + _$jscoverage['plugins/list.js'][1069] = 0; + _$jscoverage['plugins/list.js'][1071] = 0; + _$jscoverage['plugins/list.js'][1073] = 0; + _$jscoverage['plugins/list.js'][1075] = 0; + _$jscoverage['plugins/list.js'][1077] = 0; + _$jscoverage['plugins/list.js'][1080] = 0; + _$jscoverage['plugins/list.js'][1082] = 0; + _$jscoverage['plugins/list.js'][1083] = 0; + _$jscoverage['plugins/list.js'][1084] = 0; + _$jscoverage['plugins/list.js'][1085] = 0; + _$jscoverage['plugins/list.js'][1086] = 0; + _$jscoverage['plugins/list.js'][1087] = 0; + _$jscoverage['plugins/list.js'][1090] = 0; + _$jscoverage['plugins/list.js'][1096] = 0; + _$jscoverage['plugins/list.js'][1097] = 0; + _$jscoverage['plugins/list.js'][1099] = 0; + _$jscoverage['plugins/list.js'][1100] = 0; + _$jscoverage['plugins/list.js'][1102] = 0; + _$jscoverage['plugins/list.js'][1103] = 0; + _$jscoverage['plugins/list.js'][1106] = 0; + _$jscoverage['plugins/list.js'][1108] = 0; + _$jscoverage['plugins/list.js'][1114] = 0; + _$jscoverage['plugins/list.js'][1116] = 0; + _$jscoverage['plugins/list.js'][1117] = 0; + _$jscoverage['plugins/list.js'][1118] = 0; + _$jscoverage['plugins/list.js'][1119] = 0; + _$jscoverage['plugins/list.js'][1121] = 0; + _$jscoverage['plugins/list.js'][1122] = 0; + _$jscoverage['plugins/list.js'][1123] = 0; + _$jscoverage['plugins/list.js'][1124] = 0; + _$jscoverage['plugins/list.js'][1127] = 0; + _$jscoverage['plugins/list.js'][1128] = 0; + _$jscoverage['plugins/list.js'][1130] = 0; + _$jscoverage['plugins/list.js'][1131] = 0; + _$jscoverage['plugins/list.js'][1132] = 0; + _$jscoverage['plugins/list.js'][1133] = 0; + _$jscoverage['plugins/list.js'][1137] = 0; + _$jscoverage['plugins/list.js'][1138] = 0; + _$jscoverage['plugins/list.js'][1139] = 0; + _$jscoverage['plugins/list.js'][1140] = 0; + _$jscoverage['plugins/list.js'][1141] = 0; + _$jscoverage['plugins/list.js'][1144] = 0; + _$jscoverage['plugins/list.js'][1146] = 0; + _$jscoverage['plugins/list.js'][1148] = 0; + _$jscoverage['plugins/list.js'][1150] = 0; + _$jscoverage['plugins/list.js'][1151] = 0; + _$jscoverage['plugins/list.js'][1152] = 0; + _$jscoverage['plugins/list.js'][1153] = 0; + _$jscoverage['plugins/list.js'][1154] = 0; + _$jscoverage['plugins/list.js'][1156] = 0; + _$jscoverage['plugins/list.js'][1158] = 0; + _$jscoverage['plugins/list.js'][1160] = 0; + _$jscoverage['plugins/list.js'][1163] = 0; + _$jscoverage['plugins/list.js'][1164] = 0; + _$jscoverage['plugins/list.js'][1165] = 0; + _$jscoverage['plugins/list.js'][1166] = 0; + _$jscoverage['plugins/list.js'][1167] = 0; + _$jscoverage['plugins/list.js'][1169] = 0; + _$jscoverage['plugins/list.js'][1171] = 0; + _$jscoverage['plugins/list.js'][1172] = 0; + _$jscoverage['plugins/list.js'][1173] = 0; + _$jscoverage['plugins/list.js'][1176] = 0; + _$jscoverage['plugins/list.js'][1180] = 0; + _$jscoverage['plugins/list.js'][1181] = 0; + _$jscoverage['plugins/list.js'][1182] = 0; + _$jscoverage['plugins/list.js'][1183] = 0; + _$jscoverage['plugins/list.js'][1184] = 0; + _$jscoverage['plugins/list.js'][1186] = 0; + _$jscoverage['plugins/list.js'][1187] = 0; + _$jscoverage['plugins/list.js'][1188] = 0; + _$jscoverage['plugins/list.js'][1190] = 0; + _$jscoverage['plugins/list.js'][1194] = 0; + _$jscoverage['plugins/list.js'][1195] = 0; + _$jscoverage['plugins/list.js'][1197] = 0; + _$jscoverage['plugins/list.js'][1198] = 0; + _$jscoverage['plugins/list.js'][1199] = 0; + _$jscoverage['plugins/list.js'][1200] = 0; + _$jscoverage['plugins/list.js'][1202] = 0; + _$jscoverage['plugins/list.js'][1203] = 0; + _$jscoverage['plugins/list.js'][1204] = 0; + _$jscoverage['plugins/list.js'][1205] = 0; + _$jscoverage['plugins/list.js'][1207] = 0; +} +_$jscoverage['plugins/list.js'].source = ["/**"," * 有序列表,无序列表插件"," * @file"," * @since 1.2.6.1"," */","","UE.plugins['list'] = function () {"," var me = this,"," notExchange = {"," 'TD':1,"," 'PRE':1,"," 'BLOCKQUOTE':1"," };"," var customStyle = {"," 'cn' : 'cn-1-',"," 'cn1' : 'cn-2-',"," 'cn2' : 'cn-3-',"," 'num': 'num-1-',"," 'num1' : 'num-2-',"," 'num2' : 'num-3-',"," 'dash' : 'dash',"," 'dot':'dot'"," };",""," me.setOpt( {"," 'insertorderedlist':{"," 'num':'',"," 'num1':'',"," 'num2':'',"," 'cn':'',"," 'cn1':'',"," 'cn2':'',"," 'decimal':'',"," 'lower-alpha':'',"," 'lower-roman':'',"," 'upper-alpha':'',"," 'upper-roman':''"," },"," 'insertunorderedlist':{"," 'circle':'',"," 'disc':'',"," 'square':'',"," 'dash' : '',"," 'dot':''"," },"," listDefaultPaddingLeft : '30',"," listiconpath : 'http://bs.baidu.com/listicon/',"," maxListLevel : -1//-1不限制"," } );"," function listToArray(list){"," var arr = [];"," for(var p in list){"," arr.push(p)"," }"," return arr;"," }"," var listStyle = {"," 'OL':listToArray(me.options.insertorderedlist),"," 'UL':listToArray(me.options.insertunorderedlist)"," };"," var liiconpath = me.options.listiconpath;",""," //根据用户配置,调整customStyle"," for(var s in customStyle){"," if(!me.options.insertorderedlist.hasOwnProperty(s) && !me.options.insertunorderedlist.hasOwnProperty(s)){"," delete customStyle[s];"," }"," }",""," me.ready(function () {"," var customCss = [];"," for(var p in customStyle){"," if(p == 'dash' || p == 'dot'){"," customCss.push('li.list-' + customStyle[p] + '{background-image:url(' + liiconpath +customStyle[p]+'.gif)}');"," customCss.push('ul.custom_'+p+'{list-style:none;}ul.custom_'+p+' li{background-position:0 3px;background-repeat:no-repeat}');"," }else{"," for(var i= 0;i<99;i++){"," customCss.push('li.list-' + customStyle[p] + i + '{background-image:url(' + liiconpath + 'list-'+customStyle[p] + i + '.gif)}')"," }"," customCss.push('ol.custom_'+p+'{list-style:none;}ol.custom_'+p+' li{background-position:0 3px;background-repeat:no-repeat}');"," }"," switch(p){"," case 'cn':"," customCss.push('li.list-'+p+'-paddingleft-1{padding-left:25px}');"," customCss.push('li.list-'+p+'-paddingleft-2{padding-left:40px}');"," customCss.push('li.list-'+p+'-paddingleft-3{padding-left:55px}');"," break;"," case 'cn1':"," customCss.push('li.list-'+p+'-paddingleft-1{padding-left:30px}');"," customCss.push('li.list-'+p+'-paddingleft-2{padding-left:40px}');"," customCss.push('li.list-'+p+'-paddingleft-3{padding-left:55px}');"," break;"," case 'cn2':"," customCss.push('li.list-'+p+'-paddingleft-1{padding-left:40px}');"," customCss.push('li.list-'+p+'-paddingleft-2{padding-left:55px}');"," customCss.push('li.list-'+p+'-paddingleft-3{padding-left:68px}');"," break;"," case 'num':"," case 'num1':"," customCss.push('li.list-'+p+'-paddingleft-1{padding-left:25px}');"," break;"," case 'num2':"," customCss.push('li.list-'+p+'-paddingleft-1{padding-left:35px}');"," customCss.push('li.list-'+p+'-paddingleft-2{padding-left:40px}');"," break;"," case 'dash':"," customCss.push('li.list-'+p+'-paddingleft{padding-left:35px}');"," break;"," case 'dot':"," customCss.push('li.list-'+p+'-paddingleft{padding-left:20px}');"," }"," }"," customCss.push('.list-paddingleft-1{padding-left:0}');"," customCss.push('.list-paddingleft-2{padding-left:'+me.options.listDefaultPaddingLeft+'px}');"," customCss.push('.list-paddingleft-3{padding-left:'+me.options.listDefaultPaddingLeft*2+'px}');"," //如果不给宽度会在自定应样式里出现滚动条"," utils.cssRule('list', 'ol,ul{margin:0;pading:0;'+(browser.ie ? '' : 'width:95%')+'}li{clear:both;}'+customCss.join('\\n'), me.document);"," });"," //单独处理剪切的问题"," me.ready(function(){"," domUtils.on(me.body,'cut',function(){"," setTimeout(function(){"," var rng = me.selection.getRange(),li;"," //trace:3416"," if(!rng.collapsed){"," if(li = domUtils.findParentByTagName(rng.startContainer,'li',true)){"," if(!li.nextSibling && domUtils.isEmptyBlock(li)){"," var pn = li.parentNode,node;"," if(node = pn.previousSibling){"," domUtils.remove(pn);"," rng.setStartAtLast(node).collapse(true);"," rng.select(true);"," }else if(node = pn.nextSibling){"," domUtils.remove(pn);"," rng.setStartAtFirst(node).collapse(true);"," rng.select(true);"," }else{"," var tmpNode = me.document.createElement('p');"," domUtils.fillNode(me.document,tmpNode);"," pn.parentNode.insertBefore(tmpNode,pn);"," domUtils.remove(pn);"," rng.setStart(tmpNode,0).collapse(true);"," rng.select(true);"," }"," }"," }"," }",""," })"," })"," });",""," function getStyle(node){"," var cls = node.className;"," if(domUtils.hasClass(node,/custom_/)){"," return cls.match(/custom_(\\w+)/)[1]"," }"," return domUtils.getStyle(node, 'list-style-type')",""," }",""," me.addListener('beforepaste',function(type,html){"," var me = this,"," rng = me.selection.getRange(),li;"," var root = UE.htmlparser(html.html,true);"," if(li = domUtils.findParentByTagName(rng.startContainer,'li',true)){"," var list = li.parentNode,tagName = list.tagName == 'OL' ? 'ul':'ol';"," utils.each(root.getNodesByTagName(tagName),function(n){"," n.tagName = list.tagName;"," n.setAttr();"," if(n.parentNode === root){"," type = getStyle(list) || (list.tagName == 'OL' ? 'decimal' : 'disc')"," }else{"," var className = n.parentNode.getAttr('class');"," if(className && /custom_/.test(className)){"," type = className.match(/custom_(\\w+)/)[1]"," }else{"," type = n.parentNode.getStyle('list-style-type');"," }"," if(!type){"," type = list.tagName == 'OL' ? 'decimal' : 'disc';"," }"," }"," var index = utils.indexOf(listStyle[list.tagName], type);"," if(n.parentNode !== root)"," index = index + 1 == listStyle[list.tagName].length ? 0 : index + 1;"," var currentStyle = listStyle[list.tagName][index];"," if(customStyle[currentStyle]){"," n.setAttr('class', 'custom_' + currentStyle)",""," }else{"," n.setStyle('list-style-type',currentStyle)"," }"," })",""," }",""," html.html = root.toHtml();"," });"," //进入编辑器的li要套p标签"," me.addInputRule(function(root){"," utils.each(root.getNodesByTagName('li'),function(li){"," var tmpP = UE.uNode.createElement('p');"," for(var i= 0,ci;ci=li.children[i];){"," if(ci.type == 'text' || dtd.p[ci.tagName]){"," tmpP.appendChild(ci);"," }else{"," if(tmpP.firstChild()){"," li.insertBefore(tmpP,ci);"," tmpP = UE.uNode.createElement('p');"," i = i + 2;"," }else{"," i++;"," }",""," }"," }"," if(tmpP.firstChild() && !tmpP.parentNode || !li.firstChild()){"," li.appendChild(tmpP);"," }"," //trace:3357"," //p不能为空"," if (!tmpP.firstChild()) {"," tmpP.innerHTML(browser.ie ? '&nbsp;' : '<br/>')"," }"," //去掉末尾的空白"," var p = li.firstChild();"," var lastChild = p.lastChild();"," if(lastChild && lastChild.type == 'text' && /^\\s*$/.test(lastChild.data)){"," p.removeChild(lastChild)"," }"," });"," var orderlisttype = {"," 'num1':/^\\d+\\)/,"," 'decimal':/^\\d+\\./,"," 'lower-alpha':/^[a-z]+\\)/,"," 'upper-alpha':/^[A-Z]+\\./,"," 'cn':/^[\\u4E00\\u4E8C\\u4E09\\u56DB\\u516d\\u4e94\\u4e03\\u516b\\u4e5d]+[\\u3001]/,"," 'cn2':/^\\([\\u4E00\\u4E8C\\u4E09\\u56DB\\u516d\\u4e94\\u4e03\\u516b\\u4e5d]+\\)/"," },"," unorderlisttype = {"," 'square':'n'"," };"," function checkListType(content,container){"," var span = container.firstChild();"," if(span && span.type == 'element' && span.tagName == 'span' && /Wingdings|Symbol/.test(span.getStyle('font-family'))){"," for(var p in unorderlisttype){"," if(unorderlisttype[p] == span.data){"," return p"," }"," }"," return 'disc'"," }"," for(var p in orderlisttype){"," if(orderlisttype[p].test(content)){"," return p;"," }"," }",""," }"," utils.each(root.getNodesByTagName('p'),function(node){"," if(node.getAttr('class') != 'MsoListParagraph'){"," return"," }",""," //word粘贴过来的会带有margin要去掉,但这样也可能会误命中一些央视"," node.setStyle('margin','');"," node.setStyle('margin-left','');"," node.setAttr('class','');",""," function appendLi(list,p,type){"," if(list.tagName == 'ol'){"," if(browser.ie){"," var first = p.firstChild();"," if(first.type =='element' && first.tagName == 'span' && orderlisttype[type].test(first.innerText())){"," p.removeChild(first);"," }"," }else{"," p.innerHTML(p.innerHTML().replace(orderlisttype[type],''));"," }"," }else{"," p.removeChild(p.firstChild())"," }",""," var li = UE.uNode.createElement('li');"," li.appendChild(p);"," list.appendChild(li);"," }"," var tmp = node,type,cacheNode = node;",""," if(node.parentNode.tagName != 'li' && (type = checkListType(node.innerText(),node))){",""," var list = UE.uNode.createElement(me.options.insertorderedlist.hasOwnProperty(type) ? 'ol' : 'ul');"," if(customStyle[type]){"," list.setAttr('class','custom_'+type)"," }else{"," list.setStyle('list-style-type',type)"," }"," while(node && node.parentNode.tagName != 'li' && checkListType(node.innerText(),node)){"," tmp = node.nextSibling();"," if(!tmp){"," node.parentNode.insertBefore(list,node)"," }"," appendLi(list,node,type);"," node = tmp;"," }"," if(!list.parentNode && node && node.parentNode){"," node.parentNode.insertBefore(list,node)"," }"," }"," var span = cacheNode.firstChild();"," if(span && span.type == 'element' && span.tagName == 'span' && /^\\s*(&nbsp;)+\\s*$/.test(span.innerText())){"," span.parentNode.removeChild(span)"," }"," })"," });",""," //调整索引标签"," me.addListener('contentchange',function(){"," adjustListStyle(me.document)"," });",""," function adjustListStyle(doc,ignore){"," utils.each(domUtils.getElementsByTagName(doc,'ol ul'),function(node){",""," if(!domUtils.inDoc(node,doc))"," return;",""," var parent = node.parentNode;"," if(parent.tagName == node.tagName){"," var nodeStyleType = getStyle(node) || (node.tagName == 'OL' ? 'decimal' : 'disc'),"," parentStyleType = getStyle(parent) || (parent.tagName == 'OL' ? 'decimal' : 'disc');"," if(nodeStyleType == parentStyleType){"," var styleIndex = utils.indexOf(listStyle[node.tagName], nodeStyleType);"," styleIndex = styleIndex + 1 == listStyle[node.tagName].length ? 0 : styleIndex + 1;"," setListStyle(node,listStyle[node.tagName][styleIndex])"," }",""," }"," var index = 0,type = 2;"," if( domUtils.hasClass(node,/custom_/)){"," if(!(/[ou]l/i.test(parent.tagName) && domUtils.hasClass(parent,/custom_/))){"," type = 1;"," }"," }else{"," if(/[ou]l/i.test(parent.tagName) && domUtils.hasClass(parent,/custom_/)){"," type = 3;"," }"," }",""," var style = domUtils.getStyle(node, 'list-style-type');"," style && (node.style.cssText = 'list-style-type:' + style);"," node.className = utils.trim(node.className.replace(/list-paddingleft-\\w+/,'')) + ' list-paddingleft-' + type;"," utils.each(domUtils.getElementsByTagName(node,'li'),function(li){"," li.style.cssText && (li.style.cssText = '');"," if(!li.firstChild){"," domUtils.remove(li);"," return;"," }"," if(li.parentNode !== node){"," return;"," }"," index++;"," if(domUtils.hasClass(node,/custom_/) ){"," var paddingLeft = 1,currentStyle = getStyle(node);"," if(node.tagName == 'OL'){"," if(currentStyle){"," switch(currentStyle){"," case 'cn' :"," case 'cn1':"," case 'cn2':"," if(index > 10 && (index % 10 == 0 || index > 10 && index < 20)){"," paddingLeft = 2"," }else if(index > 20){"," paddingLeft = 3"," }"," break;"," case 'num2' :"," if(index > 9){"," paddingLeft = 2"," }"," }"," }"," li.className = 'list-'+customStyle[currentStyle]+ index + ' ' + 'list-'+currentStyle+'-paddingleft-' + paddingLeft;"," }else{"," li.className = 'list-'+customStyle[currentStyle] + ' ' + 'list-'+currentStyle+'-paddingleft';"," }"," }else{"," li.className = li.className.replace(/list-[\\w\\-]+/gi,'');"," }"," var className = li.getAttribute('class');"," if(className !== null && !className.replace(/\\s/g,'')){"," domUtils.removeAttributes(li,'class')"," }"," });"," !ignore && adjustList(node,node.tagName.toLowerCase(),getStyle(node)||domUtils.getStyle(node, 'list-style-type'),true);"," })"," }"," function adjustList(list, tag, style,ignoreEmpty) {"," var nextList = list.nextSibling;"," if (nextList && nextList.nodeType == 1 && nextList.tagName.toLowerCase() == tag && (getStyle(nextList) || domUtils.getStyle(nextList, 'list-style-type') || (tag == 'ol' ? 'decimal' : 'disc')) == style) {"," domUtils.moveChild(nextList, list);"," if (nextList.childNodes.length == 0) {"," domUtils.remove(nextList);"," }"," }"," if(nextList && domUtils.isFillChar(nextList)){"," domUtils.remove(nextList);"," }"," var preList = list.previousSibling;"," if (preList && preList.nodeType == 1 && preList.tagName.toLowerCase() == tag && (getStyle(preList) || domUtils.getStyle(preList, 'list-style-type') || (tag == 'ol' ? 'decimal' : 'disc')) == style) {"," domUtils.moveChild(list, preList);"," }"," if(preList && domUtils.isFillChar(preList)){"," domUtils.remove(preList);"," }"," !ignoreEmpty && domUtils.isEmptyBlock(list) && domUtils.remove(list);"," if(getStyle(list)){"," adjustListStyle(list.ownerDocument,true)"," }"," }",""," function setListStyle(list,style){"," if(customStyle[style]){"," list.className = 'custom_' + style;"," }"," try{"," domUtils.setStyle(list, 'list-style-type', style);"," }catch(e){}"," }"," function clearEmptySibling(node) {"," var tmpNode = node.previousSibling;"," if (tmpNode && domUtils.isEmptyBlock(tmpNode)) {"," domUtils.remove(tmpNode);"," }"," tmpNode = node.nextSibling;"," if (tmpNode && domUtils.isEmptyBlock(tmpNode)) {"," domUtils.remove(tmpNode);"," }"," }",""," me.addListener('keydown', function (type, evt) {"," function preventAndSave() {"," evt.preventDefault ? evt.preventDefault() : (evt.returnValue = false);"," me.fireEvent('contentchange');"," me.undoManger && me.undoManger.save();"," }"," function findList(node,filterFn){"," while(node && !domUtils.isBody(node)){"," if(filterFn(node)){"," return null"," }"," if(node.nodeType == 1 && /[ou]l/i.test(node.tagName)){"," return node;"," }"," node = node.parentNode;"," }"," return null;"," }"," var keyCode = evt.keyCode || evt.which;"," if (keyCode == 13 && !evt.shiftKey) {//回车"," var rng = me.selection.getRange(),"," parent = domUtils.findParent(rng.startContainer,function(node){return domUtils.isBlockElm(node)},true),"," li = domUtils.findParentByTagName(rng.startContainer,'li',true);"," if(parent && parent.tagName != 'PRE' && !li){"," var html = parent.innerHTML.replace(new RegExp(domUtils.fillChar, 'g'),'');"," if(/^\\s*1\\s*\\.[^\\d]/.test(html)){"," parent.innerHTML = html.replace(/^\\s*1\\s*\\./,'');"," rng.setStartAtLast(parent).collapse(true).select();"," me.__hasEnterExecCommand = true;"," me.execCommand('insertorderedlist');"," me.__hasEnterExecCommand = false;"," }"," }"," var range = me.selection.getRange(),"," start = findList(range.startContainer,function (node) {"," return node.tagName == 'TABLE';"," }),"," end = range.collapsed ? start : findList(range.endContainer,function (node) {"," return node.tagName == 'TABLE';"," });",""," if (start && end && start === end) {",""," if (!range.collapsed) {"," start = domUtils.findParentByTagName(range.startContainer, 'li', true);"," end = domUtils.findParentByTagName(range.endContainer, 'li', true);"," if (start && end && start === end) {"," range.deleteContents();"," li = domUtils.findParentByTagName(range.startContainer, 'li', true);"," if (li && domUtils.isEmptyBlock(li)) {",""," pre = li.previousSibling;"," next = li.nextSibling;"," p = me.document.createElement('p');",""," domUtils.fillNode(me.document, p);"," parentList = li.parentNode;"," if (pre && next) {"," range.setStart(next, 0).collapse(true).select(true);"," domUtils.remove(li);",""," } else {"," if (!pre && !next || !pre) {",""," parentList.parentNode.insertBefore(p, parentList);","",""," } else {"," li.parentNode.parentNode.insertBefore(p, parentList.nextSibling);"," }"," domUtils.remove(li);"," if (!parentList.firstChild) {"," domUtils.remove(parentList);"," }"," range.setStart(p, 0).setCursor();","",""," }"," preventAndSave();"," return;",""," }"," } else {"," var tmpRange = range.cloneRange(),"," bk = tmpRange.collapse(false).createBookmark();",""," range.deleteContents();"," tmpRange.moveToBookmark(bk);"," var li = domUtils.findParentByTagName(tmpRange.startContainer, 'li', true);",""," clearEmptySibling(li);"," tmpRange.select();"," preventAndSave();"," return;"," }"," }","",""," li = domUtils.findParentByTagName(range.startContainer, 'li', true);",""," if (li) {"," if (domUtils.isEmptyBlock(li)) {"," bk = range.createBookmark();"," var parentList = li.parentNode;"," if (li !== parentList.lastChild) {"," domUtils.breakParent(li, parentList);"," clearEmptySibling(li);"," } else {",""," parentList.parentNode.insertBefore(li, parentList.nextSibling);"," if (domUtils.isEmptyNode(parentList)) {"," domUtils.remove(parentList);"," }"," }"," //嵌套不处理"," if (!dtd.$list[li.parentNode.tagName]) {",""," if (!domUtils.isBlockElm(li.firstChild)) {"," p = me.document.createElement('p');"," li.parentNode.insertBefore(p, li);"," while (li.firstChild) {"," p.appendChild(li.firstChild);"," }"," domUtils.remove(li);"," } else {"," domUtils.remove(li, true);"," }"," }"," range.moveToBookmark(bk).select();","",""," } else {"," var first = li.firstChild;"," if (!first || !domUtils.isBlockElm(first)) {"," var p = me.document.createElement('p');",""," !li.firstChild && domUtils.fillNode(me.document, p);"," while (li.firstChild) {",""," p.appendChild(li.firstChild);"," }"," li.appendChild(p);"," first = p;"," }",""," var span = me.document.createElement('span');",""," range.insertNode(span);"," domUtils.breakParent(span, li);",""," var nextLi = span.nextSibling;"," first = nextLi.firstChild;",""," if (!first) {"," p = me.document.createElement('p');",""," domUtils.fillNode(me.document, p);"," nextLi.appendChild(p);"," first = p;"," }"," if (domUtils.isEmptyNode(first)) {"," first.innerHTML = '';"," domUtils.fillNode(me.document, first);"," }",""," range.setStart(first, 0).collapse(true).shrinkBoundary().select();"," domUtils.remove(span);"," var pre = nextLi.previousSibling;"," if (pre && domUtils.isEmptyBlock(pre)) {"," pre.innerHTML = '<p></p>';"," domUtils.fillNode(me.document, pre.firstChild);"," }",""," }","// }"," preventAndSave();"," }","",""," }","",""," }"," if (keyCode == 8) {"," //修中ie中li下的问题"," range = me.selection.getRange();"," if (range.collapsed && domUtils.isStartInblock(range)) {"," tmpRange = range.cloneRange().trimBoundary();"," li = domUtils.findParentByTagName(range.startContainer, 'li', true);"," //要在li的最左边,才能处理"," if (li && domUtils.isStartInblock(tmpRange)) {"," start = domUtils.findParentByTagName(range.startContainer, 'p', true);"," if (start && start !== li.firstChild) {"," var parentList = domUtils.findParentByTagName(start,['ol','ul']);"," domUtils.breakParent(start,parentList);"," clearEmptySibling(start);"," me.fireEvent('contentchange');"," range.setStart(start,0).setCursor(false,true);"," me.fireEvent('saveScene');"," domUtils.preventDefault(evt);"," return;"," }",""," if (li && (pre = li.previousSibling)) {"," if (keyCode == 46 && li.childNodes.length) {"," return;"," }"," //有可能上边的兄弟节点是个2级菜单,要追加到2级菜单的最后的li"," if (dtd.$list[pre.tagName]) {"," pre = pre.lastChild;"," }"," me.undoManger && me.undoManger.save();"," first = li.firstChild;"," if (domUtils.isBlockElm(first)) {"," if (domUtils.isEmptyNode(first)) {","// range.setEnd(pre, pre.childNodes.length).shrinkBoundary().collapse().select(true);"," pre.appendChild(first);"," range.setStart(first, 0).setCursor(false, true);"," //first不是唯一的节点"," while (li.firstChild) {"," pre.appendChild(li.firstChild);"," }"," } else {",""," span = me.document.createElement('span');"," range.insertNode(span);"," //判断pre是否是空的节点,如果是<p><br/></p>类型的空节点,干掉p标签防止它占位"," if (domUtils.isEmptyBlock(pre)) {"," pre.innerHTML = '';"," }"," domUtils.moveChild(li, pre);"," range.setStartBefore(span).collapse(true).select(true);",""," domUtils.remove(span);",""," }"," } else {"," if (domUtils.isEmptyNode(li)) {"," var p = me.document.createElement('p');"," pre.appendChild(p);"," range.setStart(p, 0).setCursor();","// range.setEnd(pre, pre.childNodes.length).shrinkBoundary().collapse().select(true);"," } else {"," range.setEnd(pre, pre.childNodes.length).collapse().select(true);"," while (li.firstChild) {"," pre.appendChild(li.firstChild);"," }"," }"," }"," domUtils.remove(li);"," me.fireEvent('contentchange');"," me.fireEvent('saveScene');"," domUtils.preventDefault(evt);"," return;",""," }"," //trace:980",""," if (li && !li.previousSibling) {"," var parentList = li.parentNode;"," var bk = range.createBookmark();"," if(domUtils.isTagNode(parentList.parentNode,'ol ul')){"," parentList.parentNode.insertBefore(li,parentList);"," if(domUtils.isEmptyNode(parentList)){"," domUtils.remove(parentList)"," }"," }else{",""," while(li.firstChild){"," parentList.parentNode.insertBefore(li.firstChild,parentList);"," }",""," domUtils.remove(li);"," if(domUtils.isEmptyNode(parentList)){"," domUtils.remove(parentList)"," }",""," }"," range.moveToBookmark(bk).setCursor(false,true);"," me.fireEvent('contentchange');"," me.fireEvent('saveScene');"," domUtils.preventDefault(evt);"," return;",""," }","",""," }","",""," }",""," }"," });",""," me.addListener('keyup',function(type, evt){"," var keyCode = evt.keyCode || evt.which;"," if (keyCode == 8) {"," var rng = me.selection.getRange(),list;"," if(list = domUtils.findParentByTagName(rng.startContainer,['ol', 'ul'],true)){"," adjustList(list,list.tagName.toLowerCase(),getStyle(list)||domUtils.getComputedStyle(list,'list-style-type'),true)"," }"," }"," });"," //处理tab键"," me.addListener('tabkeydown',function(){",""," var range = me.selection.getRange();",""," //控制级数"," function checkLevel(li){"," if(me.options.maxListLevel != -1){"," var level = li.parentNode,levelNum = 0;"," while(/[ou]l/i.test(level.tagName)){"," levelNum++;"," level = level.parentNode;"," }"," if(levelNum >= me.options.maxListLevel){"," return true;"," }"," }"," }"," //只以开始为准"," //todo 后续改进"," var li = domUtils.findParentByTagName(range.startContainer, 'li', true);"," if(li){",""," var bk;"," if(range.collapsed){"," if(checkLevel(li))"," return true;"," var parentLi = li.parentNode,"," list = me.document.createElement(parentLi.tagName),"," index = utils.indexOf(listStyle[list.tagName], getStyle(parentLi)||domUtils.getComputedStyle(parentLi, 'list-style-type'));"," index = index + 1 == listStyle[list.tagName].length ? 0 : index + 1;"," var currentStyle = listStyle[list.tagName][index];"," setListStyle(list,currentStyle);"," if(domUtils.isStartInblock(range)){"," me.fireEvent('saveScene');"," bk = range.createBookmark();"," parentLi.insertBefore(list, li);"," list.appendChild(li);"," adjustList(list,list.tagName.toLowerCase(),currentStyle);"," me.fireEvent('contentchange');"," range.moveToBookmark(bk).select(true);"," return true;"," }"," }else{"," me.fireEvent('saveScene');"," bk = range.createBookmark();"," for(var i= 0,closeList,parents = domUtils.findParents(li),ci;ci=parents[i++];){"," if(domUtils.isTagNode(ci,'ol ul')){"," closeList = ci;"," break;"," }"," }"," var current = li;"," if(bk.end){"," while(current && !(domUtils.getPosition(current, bk.end) & domUtils.POSITION_FOLLOWING)){"," if(checkLevel(current)){"," current = domUtils.getNextDomNode(current,false,null,function(node){return node !== closeList});"," continue;"," }"," var parentLi = current.parentNode,"," list = me.document.createElement(parentLi.tagName),"," index = utils.indexOf(listStyle[list.tagName], getStyle(parentLi)||domUtils.getComputedStyle(parentLi, 'list-style-type'));"," var currentIndex = index + 1 == listStyle[list.tagName].length ? 0 : index + 1;"," var currentStyle = listStyle[list.tagName][currentIndex];"," setListStyle(list,currentStyle);"," parentLi.insertBefore(list, current);"," while(current && !(domUtils.getPosition(current, bk.end) & domUtils.POSITION_FOLLOWING)){"," li = current.nextSibling;"," list.appendChild(current);"," if(!li || domUtils.isTagNode(li,'ol ul')){"," if(li){"," while(li = li.firstChild){"," if(li.tagName == 'LI'){"," break;"," }"," }"," }else{"," li = domUtils.getNextDomNode(current,false,null,function(node){return node !== closeList});"," }"," break;"," }"," current = li;"," }"," adjustList(list,list.tagName.toLowerCase(),currentStyle);"," current = li;"," }"," }"," me.fireEvent('contentchange');"," range.moveToBookmark(bk).select();"," return true;"," }"," }",""," });"," function getLi(start){"," while(start && !domUtils.isBody(start)){"," if(start.nodeName == 'TABLE'){"," return null;"," }"," if(start.nodeName == 'LI'){"," return start"," }"," start = start.parentNode;"," }"," }","",""," /**"," * 运行有序列表命令"," * @command insertorderedlist"," * @method execCommand"," * @param { String } command 命令字符串"," * @param { String } style 插入的有序列表类型,值为:decimal,lower-alpha,lower-roman,upper-alpha,upper-roman"," * @example"," * ```javascript"," * editor.execCommand( 'insertunorderedlist','decimal');"," * ```"," */"," /**"," * 查询当前选区内容是否有序列表"," * @command insertorderedlist"," * @method queryCommandState"," * @param { String } cmd 命令字符串"," * @return { int } 如果当前选区是有序列表返回1,否则返回0"," * @example"," * ```javascript"," * editor.queryCommandState( 'insertorderedlist' );"," * ```"," */"," /**"," * 查询当前选区内容是否有序列表"," * @command insertorderedlist"," * @method queryCommandValue"," * @param { String } cmd 命令字符串"," * @return { String } 返回当前有序列表的类型,值为null或decimal,lower-alpha,lower-roman,upper-alpha,upper-roman"," * @example"," * ```javascript"," * editor.queryCommandValue( 'insertorderedlist' );"," * ```"," */",""," /**"," * 运行无序列表命令"," * @command insertunorderedlist"," * @method execCommand"," * @param { String } command 命令字符串"," * @param { String } style 插入的无序列表类型,值为:circle,disc,square"," * @example"," * ```javascript"," * editor.execCommand( 'insertunorderedlist','circle');"," * ```"," */"," /**"," * 查询当前是否有word文档粘贴进来的图片"," * @command insertunorderedlist"," * @method insertunorderedlist"," * @param { String } command 命令字符串"," * @return { int } 如果当前选区是无序列表返回1,否则返回0"," * @example"," * ```javascript"," * editor.queryCommandState( 'insertunorderedlist' );"," * ```"," */"," /**"," * 查询当前选区内容是否有序列表"," * @command insertunorderedlist"," * @method queryCommandValue"," * @param { String } command 命令字符串"," * @return { String } 返回当前无序列表的类型,值为null或circle,disc,square"," * @example"," * ```javascript"," * editor.queryCommandValue( 'insertunorderedlist' );"," * ```"," */",""," me.commands['insertorderedlist'] ="," me.commands['insertunorderedlist'] = {"," execCommand:function (command, style) {",""," if (!style) {"," style = command.toLowerCase() == 'insertorderedlist' ? 'decimal' : 'disc';"," }"," var me = this,"," range = this.selection.getRange(),"," filterFn = function (node) {"," return node.nodeType == 1 ? node.tagName.toLowerCase() != 'br' : !domUtils.isWhitespace(node);"," },"," tag = command.toLowerCase() == 'insertorderedlist' ? 'ol' : 'ul',"," frag = me.document.createDocumentFragment();"," //去掉是因为会出现选到末尾,导致adjustmentBoundary缩到ol/ul的位置"," //range.shrinkBoundary();//.adjustmentBoundary();"," range.adjustmentBoundary().shrinkBoundary();"," var bko = range.createBookmark(true),"," start = getLi(me.document.getElementById(bko.start)),"," modifyStart = 0,"," end = getLi(me.document.getElementById(bko.end)),"," modifyEnd = 0,"," startParent, endParent,"," list, tmp;",""," if (start || end) {"," start && (startParent = start.parentNode);"," if (!bko.end) {"," end = start;"," }"," end && (endParent = end.parentNode);",""," if (startParent === endParent) {"," while (start !== end) {"," tmp = start;"," start = start.nextSibling;"," if (!domUtils.isBlockElm(tmp.firstChild)) {"," var p = me.document.createElement('p');"," while (tmp.firstChild) {"," p.appendChild(tmp.firstChild);"," }"," tmp.appendChild(p);"," }"," frag.appendChild(tmp);"," }"," tmp = me.document.createElement('span');"," startParent.insertBefore(tmp, end);"," if (!domUtils.isBlockElm(end.firstChild)) {"," p = me.document.createElement('p');"," while (end.firstChild) {"," p.appendChild(end.firstChild);"," }"," end.appendChild(p);"," }"," frag.appendChild(end);"," domUtils.breakParent(tmp, startParent);"," if (domUtils.isEmptyNode(tmp.previousSibling)) {"," domUtils.remove(tmp.previousSibling);"," }"," if (domUtils.isEmptyNode(tmp.nextSibling)) {"," domUtils.remove(tmp.nextSibling)"," }"," var nodeStyle = getStyle(startParent) || domUtils.getComputedStyle(startParent, 'list-style-type') || (command.toLowerCase() == 'insertorderedlist' ? 'decimal' : 'disc');"," if (startParent.tagName.toLowerCase() == tag && nodeStyle == style) {"," for (var i = 0, ci, tmpFrag = me.document.createDocumentFragment(); ci = frag.childNodes[i++];) {"," if(domUtils.isTagNode(ci,'ol ul')){"," utils.each(domUtils.getElementsByTagName(ci,'li'),function(li){"," while(li.firstChild){"," tmpFrag.appendChild(li.firstChild);"," }",""," });"," }else{"," while (ci.firstChild) {"," tmpFrag.appendChild(ci.firstChild);"," }"," }",""," }"," tmp.parentNode.insertBefore(tmpFrag, tmp);"," } else {"," list = me.document.createElement(tag);"," setListStyle(list,style);"," list.appendChild(frag);"," tmp.parentNode.insertBefore(list, tmp);"," }",""," domUtils.remove(tmp);"," list && adjustList(list, tag, style);"," range.moveToBookmark(bko).select();"," return;"," }"," //开始"," if (start) {"," while (start) {"," tmp = start.nextSibling;"," if (domUtils.isTagNode(start, 'ol ul')) {"," frag.appendChild(start);"," } else {"," var tmpfrag = me.document.createDocumentFragment(),"," hasBlock = 0;"," while (start.firstChild) {"," if (domUtils.isBlockElm(start.firstChild)) {"," hasBlock = 1;"," }"," tmpfrag.appendChild(start.firstChild);"," }"," if (!hasBlock) {"," var tmpP = me.document.createElement('p');"," tmpP.appendChild(tmpfrag);"," frag.appendChild(tmpP);"," } else {"," frag.appendChild(tmpfrag);"," }"," domUtils.remove(start);"," }",""," start = tmp;"," }"," startParent.parentNode.insertBefore(frag, startParent.nextSibling);"," if (domUtils.isEmptyNode(startParent)) {"," range.setStartBefore(startParent);"," domUtils.remove(startParent);"," } else {"," range.setStartAfter(startParent);"," }"," modifyStart = 1;"," }",""," if (end && domUtils.inDoc(endParent, me.document)) {"," //结束"," start = endParent.firstChild;"," while (start && start !== end) {"," tmp = start.nextSibling;"," if (domUtils.isTagNode(start, 'ol ul')) {"," frag.appendChild(start);"," } else {"," tmpfrag = me.document.createDocumentFragment();"," hasBlock = 0;"," while (start.firstChild) {"," if (domUtils.isBlockElm(start.firstChild)) {"," hasBlock = 1;"," }"," tmpfrag.appendChild(start.firstChild);"," }"," if (!hasBlock) {"," tmpP = me.document.createElement('p');"," tmpP.appendChild(tmpfrag);"," frag.appendChild(tmpP);"," } else {"," frag.appendChild(tmpfrag);"," }"," domUtils.remove(start);"," }"," start = tmp;"," }"," var tmpDiv = domUtils.createElement(me.document, 'div', {"," 'tmpDiv':1"," });"," domUtils.moveChild(end, tmpDiv);",""," frag.appendChild(tmpDiv);"," domUtils.remove(end);"," endParent.parentNode.insertBefore(frag, endParent);"," range.setEndBefore(endParent);"," if (domUtils.isEmptyNode(endParent)) {"," domUtils.remove(endParent);"," }",""," modifyEnd = 1;"," }","",""," }",""," if (!modifyStart) {"," range.setStartBefore(me.document.getElementById(bko.start));"," }"," if (bko.end && !modifyEnd) {"," range.setEndAfter(me.document.getElementById(bko.end));"," }"," range.enlarge(true, function (node) {"," return notExchange[node.tagName];"," });",""," frag = me.document.createDocumentFragment();",""," var bk = range.createBookmark(),"," current = domUtils.getNextDomNode(bk.start, false, filterFn),"," tmpRange = range.cloneRange(),"," tmpNode,"," block = domUtils.isBlockElm;",""," while (current && current !== bk.end && (domUtils.getPosition(current, bk.end) & domUtils.POSITION_PRECEDING)) {",""," if (current.nodeType == 3 || dtd.li[current.tagName]) {"," if (current.nodeType == 1 && dtd.$list[current.tagName]) {"," while (current.firstChild) {"," frag.appendChild(current.firstChild);"," }"," tmpNode = domUtils.getNextDomNode(current, false, filterFn);"," domUtils.remove(current);"," current = tmpNode;"," continue;",""," }"," tmpNode = current;"," tmpRange.setStartBefore(current);",""," while (current && current !== bk.end && (!block(current) || domUtils.isBookmarkNode(current) )) {"," tmpNode = current;"," current = domUtils.getNextDomNode(current, false, null, function (node) {"," return !notExchange[node.tagName];"," });"," }",""," if (current && block(current)) {"," tmp = domUtils.getNextDomNode(tmpNode, false, filterFn);"," if (tmp && domUtils.isBookmarkNode(tmp)) {"," current = domUtils.getNextDomNode(tmp, false, filterFn);"," tmpNode = tmp;"," }"," }"," tmpRange.setEndAfter(tmpNode);",""," current = domUtils.getNextDomNode(tmpNode, false, filterFn);",""," var li = range.document.createElement('li');",""," li.appendChild(tmpRange.extractContents());"," if(domUtils.isEmptyNode(li)){"," var tmpNode = range.document.createElement('p');"," while(li.firstChild){"," tmpNode.appendChild(li.firstChild)"," }"," li.appendChild(tmpNode);"," }"," frag.appendChild(li);"," } else {"," current = domUtils.getNextDomNode(current, true, filterFn);"," }"," }"," range.moveToBookmark(bk).collapse(true);"," list = me.document.createElement(tag);"," setListStyle(list,style);"," list.appendChild(frag);"," range.insertNode(list);"," //当前list上下看能否合并"," adjustList(list, tag, style);"," //去掉冗余的tmpDiv"," for (var i = 0, ci, tmpDivs = domUtils.getElementsByTagName(list, 'div'); ci = tmpDivs[i++];) {"," if (ci.getAttribute('tmpDiv')) {"," domUtils.remove(ci, true)"," }"," }"," range.moveToBookmark(bko).select();",""," },"," queryCommandState:function (command) {"," var tag = command.toLowerCase() == 'insertorderedlist' ? 'ol' : 'ul';"," var path = this.selection.getStartElementPath();"," for(var i= 0,ci;ci = path[i++];){"," if(ci.nodeName == 'TABLE'){"," return 0"," }"," if(tag == ci.nodeName.toLowerCase()){"," return 1"," };"," }"," return 0;",""," },"," queryCommandValue:function (command) {"," var tag = command.toLowerCase() == 'insertorderedlist' ? 'ol' : 'ul';"," var path = this.selection.getStartElementPath(),"," node;"," for(var i= 0,ci;ci = path[i++];){"," if(ci.nodeName == 'TABLE'){"," node = null;"," break;"," }"," if(tag == ci.nodeName.toLowerCase()){"," node = ci;"," break;"," };"," }"," return node ? getStyle(node) || domUtils.getComputedStyle(node, 'list-style-type') : null;"," }"," };","};",""]; +_$jscoverage['plugins/list.js'][7]++; +UE.plugins.list = (function () { + _$jscoverage['plugins/list.js'][8]++; + var me = this, notExchange = {"TD": 1, "PRE": 1, "BLOCKQUOTE": 1}; + _$jscoverage['plugins/list.js'][14]++; + var customStyle = {"cn": "cn-1-", "cn1": "cn-2-", "cn2": "cn-3-", "num": "num-1-", "num1": "num-2-", "num2": "num-3-", "dash": "dash", "dot": "dot"}; + _$jscoverage['plugins/list.js'][25]++; + me.setOpt({"insertorderedlist": {"num": "", "num1": "", "num2": "", "cn": "", "cn1": "", "cn2": "", "decimal": "", "lower-alpha": "", "lower-roman": "", "upper-alpha": "", "upper-roman": ""}, "insertunorderedlist": {"circle": "", "disc": "", "square": "", "dash": "", "dot": ""}, listDefaultPaddingLeft: "30", listiconpath: "http://bs.baidu.com/listicon/", maxListLevel: -1}); + _$jscoverage['plugins/list.js'][50]++; + function listToArray(list) { + _$jscoverage['plugins/list.js'][51]++; + var arr = []; + _$jscoverage['plugins/list.js'][52]++; + for (var p in list) { + _$jscoverage['plugins/list.js'][53]++; + arr.push(p); +} + _$jscoverage['plugins/list.js'][55]++; + return arr; +} + _$jscoverage['plugins/list.js'][57]++; + var listStyle = {"OL": listToArray(me.options.insertorderedlist), "UL": listToArray(me.options.insertunorderedlist)}; + _$jscoverage['plugins/list.js'][61]++; + var liiconpath = me.options.listiconpath; + _$jscoverage['plugins/list.js'][64]++; + for (var s in customStyle) { + _$jscoverage['plugins/list.js'][65]++; + if (((! me.options.insertorderedlist.hasOwnProperty(s)) && (! me.options.insertunorderedlist.hasOwnProperty(s)))) { + _$jscoverage['plugins/list.js'][66]++; + (delete customStyle[s]); + } +} + _$jscoverage['plugins/list.js'][70]++; + me.ready((function () { + _$jscoverage['plugins/list.js'][71]++; + var customCss = []; + _$jscoverage['plugins/list.js'][72]++; + for (var p in customStyle) { + _$jscoverage['plugins/list.js'][73]++; + if (((p == "dash") || (p == "dot"))) { + _$jscoverage['plugins/list.js'][74]++; + customCss.push(("li.list-" + customStyle[p] + "{background-image:url(" + liiconpath + customStyle[p] + ".gif)}")); + _$jscoverage['plugins/list.js'][75]++; + customCss.push(("ul.custom_" + p + "{list-style:none;}ul.custom_" + p + " li{background-position:0 3px;background-repeat:no-repeat}")); + } + else { + _$jscoverage['plugins/list.js'][77]++; + for (var i = 0; (i < 99); (i++)) { + _$jscoverage['plugins/list.js'][78]++; + customCss.push(("li.list-" + customStyle[p] + i + "{background-image:url(" + liiconpath + "list-" + customStyle[p] + i + ".gif)}")); +} + _$jscoverage['plugins/list.js'][80]++; + customCss.push(("ol.custom_" + p + "{list-style:none;}ol.custom_" + p + " li{background-position:0 3px;background-repeat:no-repeat}")); + } + _$jscoverage['plugins/list.js'][82]++; + switch (p) { + case "cn": + _$jscoverage['plugins/list.js'][84]++; + customCss.push(("li.list-" + p + "-paddingleft-1{padding-left:25px}")); + _$jscoverage['plugins/list.js'][85]++; + customCss.push(("li.list-" + p + "-paddingleft-2{padding-left:40px}")); + _$jscoverage['plugins/list.js'][86]++; + customCss.push(("li.list-" + p + "-paddingleft-3{padding-left:55px}")); + _$jscoverage['plugins/list.js'][87]++; + break; + case "cn1": + _$jscoverage['plugins/list.js'][89]++; + customCss.push(("li.list-" + p + "-paddingleft-1{padding-left:30px}")); + _$jscoverage['plugins/list.js'][90]++; + customCss.push(("li.list-" + p + "-paddingleft-2{padding-left:40px}")); + _$jscoverage['plugins/list.js'][91]++; + customCss.push(("li.list-" + p + "-paddingleft-3{padding-left:55px}")); + _$jscoverage['plugins/list.js'][92]++; + break; + case "cn2": + _$jscoverage['plugins/list.js'][94]++; + customCss.push(("li.list-" + p + "-paddingleft-1{padding-left:40px}")); + _$jscoverage['plugins/list.js'][95]++; + customCss.push(("li.list-" + p + "-paddingleft-2{padding-left:55px}")); + _$jscoverage['plugins/list.js'][96]++; + customCss.push(("li.list-" + p + "-paddingleft-3{padding-left:68px}")); + _$jscoverage['plugins/list.js'][97]++; + break; + case "num": + case "num1": + _$jscoverage['plugins/list.js'][100]++; + customCss.push(("li.list-" + p + "-paddingleft-1{padding-left:25px}")); + _$jscoverage['plugins/list.js'][101]++; + break; + case "num2": + _$jscoverage['plugins/list.js'][103]++; + customCss.push(("li.list-" + p + "-paddingleft-1{padding-left:35px}")); + _$jscoverage['plugins/list.js'][104]++; + customCss.push(("li.list-" + p + "-paddingleft-2{padding-left:40px}")); + _$jscoverage['plugins/list.js'][105]++; + break; + case "dash": + _$jscoverage['plugins/list.js'][107]++; + customCss.push(("li.list-" + p + "-paddingleft{padding-left:35px}")); + _$jscoverage['plugins/list.js'][108]++; + break; + case "dot": + _$jscoverage['plugins/list.js'][110]++; + customCss.push(("li.list-" + p + "-paddingleft{padding-left:20px}")); + } +} + _$jscoverage['plugins/list.js'][113]++; + customCss.push(".list-paddingleft-1{padding-left:0}"); + _$jscoverage['plugins/list.js'][114]++; + customCss.push((".list-paddingleft-2{padding-left:" + me.options.listDefaultPaddingLeft + "px}")); + _$jscoverage['plugins/list.js'][115]++; + customCss.push((".list-paddingleft-3{padding-left:" + (me.options.listDefaultPaddingLeft * 2) + "px}")); + _$jscoverage['plugins/list.js'][117]++; + utils.cssRule("list", ("ol,ul{margin:0;pading:0;" + (browser.ie? "": "width:95%") + "}li{clear:both;}" + customCss.join("\n")), me.document); +})); + _$jscoverage['plugins/list.js'][120]++; + me.ready((function () { + _$jscoverage['plugins/list.js'][121]++; + domUtils.on(me.body, "cut", (function () { + _$jscoverage['plugins/list.js'][122]++; + setTimeout((function () { + _$jscoverage['plugins/list.js'][123]++; + var rng = me.selection.getRange(), li; + _$jscoverage['plugins/list.js'][125]++; + if ((! rng.collapsed)) { + _$jscoverage['plugins/list.js'][126]++; + if ((li = domUtils.findParentByTagName(rng.startContainer, "li", true))) { + _$jscoverage['plugins/list.js'][127]++; + if (((! li.nextSibling) && domUtils.isEmptyBlock(li))) { + _$jscoverage['plugins/list.js'][128]++; + var pn = li.parentNode, node; + _$jscoverage['plugins/list.js'][129]++; + if ((node = pn.previousSibling)) { + _$jscoverage['plugins/list.js'][130]++; + domUtils.remove(pn); + _$jscoverage['plugins/list.js'][131]++; + rng.setStartAtLast(node).collapse(true); + _$jscoverage['plugins/list.js'][132]++; + rng.select(true); + } + else { + _$jscoverage['plugins/list.js'][133]++; + if ((node = pn.nextSibling)) { + _$jscoverage['plugins/list.js'][134]++; + domUtils.remove(pn); + _$jscoverage['plugins/list.js'][135]++; + rng.setStartAtFirst(node).collapse(true); + _$jscoverage['plugins/list.js'][136]++; + rng.select(true); + } + else { + _$jscoverage['plugins/list.js'][138]++; + var tmpNode = me.document.createElement("p"); + _$jscoverage['plugins/list.js'][139]++; + domUtils.fillNode(me.document, tmpNode); + _$jscoverage['plugins/list.js'][140]++; + pn.parentNode.insertBefore(tmpNode, pn); + _$jscoverage['plugins/list.js'][141]++; + domUtils.remove(pn); + _$jscoverage['plugins/list.js'][142]++; + rng.setStart(tmpNode, 0).collapse(true); + _$jscoverage['plugins/list.js'][143]++; + rng.select(true); + } + } + } + } + } +})); +})); +})); + _$jscoverage['plugins/list.js'][153]++; + function getStyle(node) { + _$jscoverage['plugins/list.js'][154]++; + var cls = node.className; + _$jscoverage['plugins/list.js'][155]++; + if (domUtils.hasClass(node, /custom_/)) { + _$jscoverage['plugins/list.js'][156]++; + return cls.match(/custom_(\w+)/)[1]; + } + _$jscoverage['plugins/list.js'][158]++; + return domUtils.getStyle(node, "list-style-type"); +} + _$jscoverage['plugins/list.js'][162]++; + me.addListener("beforepaste", (function (type, html) { + _$jscoverage['plugins/list.js'][163]++; + var me = this, rng = me.selection.getRange(), li; + _$jscoverage['plugins/list.js'][165]++; + var root = UE.htmlparser(html.html, true); + _$jscoverage['plugins/list.js'][166]++; + if ((li = domUtils.findParentByTagName(rng.startContainer, "li", true))) { + _$jscoverage['plugins/list.js'][167]++; + var list = li.parentNode, tagName = ((list.tagName == "OL")? "ul": "ol"); + _$jscoverage['plugins/list.js'][168]++; + utils.each(root.getNodesByTagName(tagName), (function (n) { + _$jscoverage['plugins/list.js'][169]++; + n.tagName = list.tagName; + _$jscoverage['plugins/list.js'][170]++; + n.setAttr(); + _$jscoverage['plugins/list.js'][171]++; + if ((n.parentNode === root)) { + _$jscoverage['plugins/list.js'][172]++; + type = (getStyle(list) || ((list.tagName == "OL")? "decimal": "disc")); + } + else { + _$jscoverage['plugins/list.js'][174]++; + var className = n.parentNode.getAttr("class"); + _$jscoverage['plugins/list.js'][175]++; + if ((className && /custom_/.test(className))) { + _$jscoverage['plugins/list.js'][176]++; + type = className.match(/custom_(\w+)/)[1]; + } + else { + _$jscoverage['plugins/list.js'][178]++; + type = n.parentNode.getStyle("list-style-type"); + } + _$jscoverage['plugins/list.js'][180]++; + if ((! type)) { + _$jscoverage['plugins/list.js'][181]++; + type = ((list.tagName == "OL")? "decimal": "disc"); + } + } + _$jscoverage['plugins/list.js'][184]++; + var index = utils.indexOf(listStyle[list.tagName], type); + _$jscoverage['plugins/list.js'][185]++; + if ((n.parentNode !== root)) { + _$jscoverage['plugins/list.js'][186]++; + index = (((index + 1) == listStyle[list.tagName].length)? 0: (index + 1)); + } + _$jscoverage['plugins/list.js'][187]++; + var currentStyle = listStyle[list.tagName][index]; + _$jscoverage['plugins/list.js'][188]++; + if (customStyle[currentStyle]) { + _$jscoverage['plugins/list.js'][189]++; + n.setAttr("class", ("custom_" + currentStyle)); + } + else { + _$jscoverage['plugins/list.js'][192]++; + n.setStyle("list-style-type", currentStyle); + } +})); + } + _$jscoverage['plugins/list.js'][198]++; + html.html = root.toHtml(); +})); + _$jscoverage['plugins/list.js'][201]++; + me.addInputRule((function (root) { + _$jscoverage['plugins/list.js'][202]++; + utils.each(root.getNodesByTagName("li"), (function (li) { + _$jscoverage['plugins/list.js'][203]++; + var tmpP = UE.uNode.createElement("p"); + _$jscoverage['plugins/list.js'][204]++; + for (var i = 0, ci; (ci = li.children[i]);) { + _$jscoverage['plugins/list.js'][205]++; + if (((ci.type == "text") || dtd.p[ci.tagName])) { + _$jscoverage['plugins/list.js'][206]++; + tmpP.appendChild(ci); + } + else { + _$jscoverage['plugins/list.js'][208]++; + if (tmpP.firstChild()) { + _$jscoverage['plugins/list.js'][209]++; + li.insertBefore(tmpP, ci); + _$jscoverage['plugins/list.js'][210]++; + tmpP = UE.uNode.createElement("p"); + _$jscoverage['plugins/list.js'][211]++; + i = (i + 2); + } + else { + _$jscoverage['plugins/list.js'][213]++; + (i++); + } + } +} + _$jscoverage['plugins/list.js'][218]++; + if (((tmpP.firstChild() && (! tmpP.parentNode)) || (! li.firstChild()))) { + _$jscoverage['plugins/list.js'][219]++; + li.appendChild(tmpP); + } + _$jscoverage['plugins/list.js'][223]++; + if ((! tmpP.firstChild())) { + _$jscoverage['plugins/list.js'][224]++; + tmpP.innerHTML((browser.ie? " ": "
")); + } + _$jscoverage['plugins/list.js'][227]++; + var p = li.firstChild(); + _$jscoverage['plugins/list.js'][228]++; + var lastChild = p.lastChild(); + _$jscoverage['plugins/list.js'][229]++; + if ((lastChild && (lastChild.type == "text") && /^\s*$/.test(lastChild.data))) { + _$jscoverage['plugins/list.js'][230]++; + p.removeChild(lastChild); + } +})); + _$jscoverage['plugins/list.js'][233]++; + var orderlisttype = {"num1": /^\d+\)/, "decimal": /^\d+\./, "lower-alpha": /^[a-z]+\)/, "upper-alpha": /^[A-Z]+\./, "cn": /^[\u4E00\u4E8C\u4E09\u56DB\u516d\u4e94\u4e03\u516b\u4e5d]+[\u3001]/, "cn2": /^\([\u4E00\u4E8C\u4E09\u56DB\u516d\u4e94\u4e03\u516b\u4e5d]+\)/}, unorderlisttype = {"square": "n"}; + _$jscoverage['plugins/list.js'][244]++; + function checkListType(content, container) { + _$jscoverage['plugins/list.js'][245]++; + var span = container.firstChild(); + _$jscoverage['plugins/list.js'][246]++; + if ((span && (span.type == "element") && (span.tagName == "span") && /Wingdings|Symbol/.test(span.getStyle("font-family")))) { + _$jscoverage['plugins/list.js'][247]++; + for (var p in unorderlisttype) { + _$jscoverage['plugins/list.js'][248]++; + if ((unorderlisttype[p] == span.data)) { + _$jscoverage['plugins/list.js'][249]++; + return p; + } +} + _$jscoverage['plugins/list.js'][252]++; + return "disc"; + } + _$jscoverage['plugins/list.js'][254]++; + for (var p = p in orderlisttype) { + _$jscoverage['plugins/list.js'][255]++; + if (orderlisttype[p].test(content)) { + _$jscoverage['plugins/list.js'][256]++; + return p; + } +} +} + _$jscoverage['plugins/list.js'][261]++; + utils.each(root.getNodesByTagName("p"), (function (node) { + _$jscoverage['plugins/list.js'][262]++; + if ((node.getAttr("class") != "MsoListParagraph")) { + _$jscoverage['plugins/list.js'][263]++; + return; + } + _$jscoverage['plugins/list.js'][267]++; + node.setStyle("margin", ""); + _$jscoverage['plugins/list.js'][268]++; + node.setStyle("margin-left", ""); + _$jscoverage['plugins/list.js'][269]++; + node.setAttr("class", ""); + _$jscoverage['plugins/list.js'][271]++; + function appendLi(list, p, type) { + _$jscoverage['plugins/list.js'][272]++; + if ((list.tagName == "ol")) { + _$jscoverage['plugins/list.js'][273]++; + if (browser.ie) { + _$jscoverage['plugins/list.js'][274]++; + var first = p.firstChild(); + _$jscoverage['plugins/list.js'][275]++; + if (((first.type == "element") && (first.tagName == "span") && orderlisttype[type].test(first.innerText()))) { + _$jscoverage['plugins/list.js'][276]++; + p.removeChild(first); + } + } + else { + _$jscoverage['plugins/list.js'][279]++; + p.innerHTML(p.innerHTML().replace(orderlisttype[type], "")); + } + } + else { + _$jscoverage['plugins/list.js'][282]++; + p.removeChild(p.firstChild()); + } + _$jscoverage['plugins/list.js'][285]++; + var li = UE.uNode.createElement("li"); + _$jscoverage['plugins/list.js'][286]++; + li.appendChild(p); + _$jscoverage['plugins/list.js'][287]++; + list.appendChild(li); +} + _$jscoverage['plugins/list.js'][289]++; + var tmp = node, type, cacheNode = node; + _$jscoverage['plugins/list.js'][291]++; + if (((node.parentNode.tagName != "li") && (type = checkListType(node.innerText(), node)))) { + _$jscoverage['plugins/list.js'][293]++; + var list = UE.uNode.createElement((me.options.insertorderedlist.hasOwnProperty(type)? "ol": "ul")); + _$jscoverage['plugins/list.js'][294]++; + if (customStyle[type]) { + _$jscoverage['plugins/list.js'][295]++; + list.setAttr("class", ("custom_" + type)); + } + else { + _$jscoverage['plugins/list.js'][297]++; + list.setStyle("list-style-type", type); + } + _$jscoverage['plugins/list.js'][299]++; + while ((node && (node.parentNode.tagName != "li") && checkListType(node.innerText(), node))) { + _$jscoverage['plugins/list.js'][300]++; + tmp = node.nextSibling(); + _$jscoverage['plugins/list.js'][301]++; + if ((! tmp)) { + _$jscoverage['plugins/list.js'][302]++; + node.parentNode.insertBefore(list, node); + } + _$jscoverage['plugins/list.js'][304]++; + appendLi(list, node, type); + _$jscoverage['plugins/list.js'][305]++; + node = tmp; +} + _$jscoverage['plugins/list.js'][307]++; + if (((! list.parentNode) && node && node.parentNode)) { + _$jscoverage['plugins/list.js'][308]++; + node.parentNode.insertBefore(list, node); + } + } + _$jscoverage['plugins/list.js'][311]++; + var span = cacheNode.firstChild(); + _$jscoverage['plugins/list.js'][312]++; + if ((span && (span.type == "element") && (span.tagName == "span") && /^\s*( )+\s*$/.test(span.innerText()))) { + _$jscoverage['plugins/list.js'][313]++; + span.parentNode.removeChild(span); + } +})); +})); + _$jscoverage['plugins/list.js'][319]++; + me.addListener("contentchange", (function () { + _$jscoverage['plugins/list.js'][320]++; + adjustListStyle(me.document); +})); + _$jscoverage['plugins/list.js'][323]++; + function adjustListStyle(doc, ignore) { + _$jscoverage['plugins/list.js'][324]++; + utils.each(domUtils.getElementsByTagName(doc, "ol ul"), (function (node) { + _$jscoverage['plugins/list.js'][326]++; + if ((! domUtils.inDoc(node, doc))) { + _$jscoverage['plugins/list.js'][327]++; + return; + } + _$jscoverage['plugins/list.js'][329]++; + var parent = node.parentNode; + _$jscoverage['plugins/list.js'][330]++; + if ((parent.tagName == node.tagName)) { + _$jscoverage['plugins/list.js'][331]++; + var nodeStyleType = (getStyle(node) || ((node.tagName == "OL")? "decimal": "disc")), parentStyleType = (getStyle(parent) || ((parent.tagName == "OL")? "decimal": "disc")); + _$jscoverage['plugins/list.js'][333]++; + if ((nodeStyleType == parentStyleType)) { + _$jscoverage['plugins/list.js'][334]++; + var styleIndex = utils.indexOf(listStyle[node.tagName], nodeStyleType); + _$jscoverage['plugins/list.js'][335]++; + styleIndex = (((styleIndex + 1) == listStyle[node.tagName].length)? 0: (styleIndex + 1)); + _$jscoverage['plugins/list.js'][336]++; + setListStyle(node, listStyle[node.tagName][styleIndex]); + } + } + _$jscoverage['plugins/list.js'][340]++; + var index = 0, type = 2; + _$jscoverage['plugins/list.js'][341]++; + if (domUtils.hasClass(node, /custom_/)) { + _$jscoverage['plugins/list.js'][342]++; + if ((! (/[ou]l/i.test(parent.tagName) && domUtils.hasClass(parent, /custom_/)))) { + _$jscoverage['plugins/list.js'][343]++; + type = 1; + } + } + else { + _$jscoverage['plugins/list.js'][346]++; + if ((/[ou]l/i.test(parent.tagName) && domUtils.hasClass(parent, /custom_/))) { + _$jscoverage['plugins/list.js'][347]++; + type = 3; + } + } + _$jscoverage['plugins/list.js'][351]++; + var style = domUtils.getStyle(node, "list-style-type"); + _$jscoverage['plugins/list.js'][352]++; + (style && (node.style.cssText = ("list-style-type:" + style))); + _$jscoverage['plugins/list.js'][353]++; + node.className = (utils.trim(node.className.replace(/list-paddingleft-\w+/, "")) + " list-paddingleft-" + type); + _$jscoverage['plugins/list.js'][354]++; + utils.each(domUtils.getElementsByTagName(node, "li"), (function (li) { + _$jscoverage['plugins/list.js'][355]++; + (li.style.cssText && (li.style.cssText = "")); + _$jscoverage['plugins/list.js'][356]++; + if ((! li.firstChild)) { + _$jscoverage['plugins/list.js'][357]++; + domUtils.remove(li); + _$jscoverage['plugins/list.js'][358]++; + return; + } + _$jscoverage['plugins/list.js'][360]++; + if ((li.parentNode !== node)) { + _$jscoverage['plugins/list.js'][361]++; + return; + } + _$jscoverage['plugins/list.js'][363]++; + (index++); + _$jscoverage['plugins/list.js'][364]++; + if (domUtils.hasClass(node, /custom_/)) { + _$jscoverage['plugins/list.js'][365]++; + var paddingLeft = 1, currentStyle = getStyle(node); + _$jscoverage['plugins/list.js'][366]++; + if ((node.tagName == "OL")) { + _$jscoverage['plugins/list.js'][367]++; + if (currentStyle) { + _$jscoverage['plugins/list.js'][368]++; + switch (currentStyle) { + case "cn": + case "cn1": + case "cn2": + _$jscoverage['plugins/list.js'][372]++; + if (((index > 10) && (((index % 10) == 0) || ((index > 10) && (index < 20))))) { + _$jscoverage['plugins/list.js'][373]++; + paddingLeft = 2; + } + else { + _$jscoverage['plugins/list.js'][374]++; + if ((index > 20)) { + _$jscoverage['plugins/list.js'][375]++; + paddingLeft = 3; + } + } + _$jscoverage['plugins/list.js'][377]++; + break; + case "num2": + _$jscoverage['plugins/list.js'][379]++; + if ((index > 9)) { + _$jscoverage['plugins/list.js'][380]++; + paddingLeft = 2; + } + } + } + _$jscoverage['plugins/list.js'][384]++; + li.className = ("list-" + customStyle[currentStyle] + index + " " + "list-" + currentStyle + "-paddingleft-" + paddingLeft); + } + else { + _$jscoverage['plugins/list.js'][386]++; + li.className = ("list-" + customStyle[currentStyle] + " " + "list-" + currentStyle + "-paddingleft"); + } + } + else { + _$jscoverage['plugins/list.js'][389]++; + li.className = li.className.replace(/list-[\w\-]+/gi, ""); + } + _$jscoverage['plugins/list.js'][391]++; + var className = li.getAttribute("class"); + _$jscoverage['plugins/list.js'][392]++; + if (((className !== null) && (! className.replace(/\s/g, "")))) { + _$jscoverage['plugins/list.js'][393]++; + domUtils.removeAttributes(li, "class"); + } +})); + _$jscoverage['plugins/list.js'][396]++; + ((! ignore) && adjustList(node, node.tagName.toLowerCase(), (getStyle(node) || domUtils.getStyle(node, "list-style-type")), true)); +})); +} + _$jscoverage['plugins/list.js'][399]++; + function adjustList(list, tag, style, ignoreEmpty) { + _$jscoverage['plugins/list.js'][400]++; + var nextList = list.nextSibling; + _$jscoverage['plugins/list.js'][401]++; + if ((nextList && (nextList.nodeType == 1) && (nextList.tagName.toLowerCase() == tag) && ((getStyle(nextList) || domUtils.getStyle(nextList, "list-style-type") || ((tag == "ol")? "decimal": "disc")) == style))) { + _$jscoverage['plugins/list.js'][402]++; + domUtils.moveChild(nextList, list); + _$jscoverage['plugins/list.js'][403]++; + if ((nextList.childNodes.length == 0)) { + _$jscoverage['plugins/list.js'][404]++; + domUtils.remove(nextList); + } + } + _$jscoverage['plugins/list.js'][407]++; + if ((nextList && domUtils.isFillChar(nextList))) { + _$jscoverage['plugins/list.js'][408]++; + domUtils.remove(nextList); + } + _$jscoverage['plugins/list.js'][410]++; + var preList = list.previousSibling; + _$jscoverage['plugins/list.js'][411]++; + if ((preList && (preList.nodeType == 1) && (preList.tagName.toLowerCase() == tag) && ((getStyle(preList) || domUtils.getStyle(preList, "list-style-type") || ((tag == "ol")? "decimal": "disc")) == style))) { + _$jscoverage['plugins/list.js'][412]++; + domUtils.moveChild(list, preList); + } + _$jscoverage['plugins/list.js'][414]++; + if ((preList && domUtils.isFillChar(preList))) { + _$jscoverage['plugins/list.js'][415]++; + domUtils.remove(preList); + } + _$jscoverage['plugins/list.js'][417]++; + ((! ignoreEmpty) && domUtils.isEmptyBlock(list) && domUtils.remove(list)); + _$jscoverage['plugins/list.js'][418]++; + if (getStyle(list)) { + _$jscoverage['plugins/list.js'][419]++; + adjustListStyle(list.ownerDocument, true); + } +} + _$jscoverage['plugins/list.js'][423]++; + function setListStyle(list, style) { + _$jscoverage['plugins/list.js'][424]++; + if (customStyle[style]) { + _$jscoverage['plugins/list.js'][425]++; + list.className = ("custom_" + style); + } + _$jscoverage['plugins/list.js'][427]++; + try { + _$jscoverage['plugins/list.js'][428]++; + domUtils.setStyle(list, "list-style-type", style); + } + catch (e) { + } +} + _$jscoverage['plugins/list.js'][431]++; + function clearEmptySibling(node) { + _$jscoverage['plugins/list.js'][432]++; + var tmpNode = node.previousSibling; + _$jscoverage['plugins/list.js'][433]++; + if ((tmpNode && domUtils.isEmptyBlock(tmpNode))) { + _$jscoverage['plugins/list.js'][434]++; + domUtils.remove(tmpNode); + } + _$jscoverage['plugins/list.js'][436]++; + tmpNode = node.nextSibling; + _$jscoverage['plugins/list.js'][437]++; + if ((tmpNode && domUtils.isEmptyBlock(tmpNode))) { + _$jscoverage['plugins/list.js'][438]++; + domUtils.remove(tmpNode); + } +} + _$jscoverage['plugins/list.js'][442]++; + me.addListener("keydown", (function (type, evt) { + _$jscoverage['plugins/list.js'][443]++; + function preventAndSave() { + _$jscoverage['plugins/list.js'][444]++; + (evt.preventDefault? evt.preventDefault(): (evt.returnValue = false)); + _$jscoverage['plugins/list.js'][445]++; + me.fireEvent("contentchange"); + _$jscoverage['plugins/list.js'][446]++; + (me.undoManger && me.undoManger.save()); +} + _$jscoverage['plugins/list.js'][448]++; + function findList(node, filterFn) { + _$jscoverage['plugins/list.js'][449]++; + while ((node && (! domUtils.isBody(node)))) { + _$jscoverage['plugins/list.js'][450]++; + if (filterFn(node)) { + _$jscoverage['plugins/list.js'][451]++; + return null; + } + _$jscoverage['plugins/list.js'][453]++; + if (((node.nodeType == 1) && /[ou]l/i.test(node.tagName))) { + _$jscoverage['plugins/list.js'][454]++; + return node; + } + _$jscoverage['plugins/list.js'][456]++; + node = node.parentNode; +} + _$jscoverage['plugins/list.js'][458]++; + return null; +} + _$jscoverage['plugins/list.js'][460]++; + var keyCode = (evt.keyCode || evt.which); + _$jscoverage['plugins/list.js'][461]++; + if (((keyCode == 13) && (! evt.shiftKey))) { + _$jscoverage['plugins/list.js'][462]++; + var rng = me.selection.getRange(), parent = domUtils.findParent(rng.startContainer, (function (node) { + _$jscoverage['plugins/list.js'][463]++; + return domUtils.isBlockElm(node); +}), true), li = domUtils.findParentByTagName(rng.startContainer, "li", true); + _$jscoverage['plugins/list.js'][465]++; + if ((parent && (parent.tagName != "PRE") && (! li))) { + _$jscoverage['plugins/list.js'][466]++; + var html = parent.innerHTML.replace(new RegExp(domUtils.fillChar, "g"), ""); + _$jscoverage['plugins/list.js'][467]++; + if (/^\s*1\s*\.[^\d]/.test(html)) { + _$jscoverage['plugins/list.js'][468]++; + parent.innerHTML = html.replace(/^\s*1\s*\./, ""); + _$jscoverage['plugins/list.js'][469]++; + rng.setStartAtLast(parent).collapse(true).select(); + _$jscoverage['plugins/list.js'][470]++; + me.__hasEnterExecCommand = true; + _$jscoverage['plugins/list.js'][471]++; + me.execCommand("insertorderedlist"); + _$jscoverage['plugins/list.js'][472]++; + me.__hasEnterExecCommand = false; + } + } + _$jscoverage['plugins/list.js'][475]++; + var range = me.selection.getRange(), start = findList(range.startContainer, (function (node) { + _$jscoverage['plugins/list.js'][477]++; + return (node.tagName == "TABLE"); +})), end = (range.collapsed? start: findList(range.endContainer, (function (node) { + _$jscoverage['plugins/list.js'][480]++; + return (node.tagName == "TABLE"); +}))); + _$jscoverage['plugins/list.js'][483]++; + if ((start && end && (start === end))) { + _$jscoverage['plugins/list.js'][485]++; + if ((! range.collapsed)) { + _$jscoverage['plugins/list.js'][486]++; + start = domUtils.findParentByTagName(range.startContainer, "li", true); + _$jscoverage['plugins/list.js'][487]++; + end = domUtils.findParentByTagName(range.endContainer, "li", true); + _$jscoverage['plugins/list.js'][488]++; + if ((start && end && (start === end))) { + _$jscoverage['plugins/list.js'][489]++; + range.deleteContents(); + _$jscoverage['plugins/list.js'][490]++; + li = domUtils.findParentByTagName(range.startContainer, "li", true); + _$jscoverage['plugins/list.js'][491]++; + if ((li && domUtils.isEmptyBlock(li))) { + _$jscoverage['plugins/list.js'][493]++; + pre = li.previousSibling; + _$jscoverage['plugins/list.js'][494]++; + next = li.nextSibling; + _$jscoverage['plugins/list.js'][495]++; + p = me.document.createElement("p"); + _$jscoverage['plugins/list.js'][497]++; + domUtils.fillNode(me.document, p); + _$jscoverage['plugins/list.js'][498]++; + parentList = li.parentNode; + _$jscoverage['plugins/list.js'][499]++; + if ((pre && next)) { + _$jscoverage['plugins/list.js'][500]++; + range.setStart(next, 0).collapse(true).select(true); + _$jscoverage['plugins/list.js'][501]++; + domUtils.remove(li); + } + else { + _$jscoverage['plugins/list.js'][504]++; + if ((((! pre) && (! next)) || (! pre))) { + _$jscoverage['plugins/list.js'][506]++; + parentList.parentNode.insertBefore(p, parentList); + } + else { + _$jscoverage['plugins/list.js'][510]++; + li.parentNode.parentNode.insertBefore(p, parentList.nextSibling); + } + _$jscoverage['plugins/list.js'][512]++; + domUtils.remove(li); + _$jscoverage['plugins/list.js'][513]++; + if ((! parentList.firstChild)) { + _$jscoverage['plugins/list.js'][514]++; + domUtils.remove(parentList); + } + _$jscoverage['plugins/list.js'][516]++; + range.setStart(p, 0).setCursor(); + } + _$jscoverage['plugins/list.js'][520]++; + preventAndSave(); + _$jscoverage['plugins/list.js'][521]++; + return; + } + } + else { + _$jscoverage['plugins/list.js'][525]++; + var tmpRange = range.cloneRange(), bk = tmpRange.collapse(false).createBookmark(); + _$jscoverage['plugins/list.js'][528]++; + range.deleteContents(); + _$jscoverage['plugins/list.js'][529]++; + tmpRange.moveToBookmark(bk); + _$jscoverage['plugins/list.js'][530]++; + var li = domUtils.findParentByTagName(tmpRange.startContainer, "li", true); + _$jscoverage['plugins/list.js'][532]++; + clearEmptySibling(li); + _$jscoverage['plugins/list.js'][533]++; + tmpRange.select(); + _$jscoverage['plugins/list.js'][534]++; + preventAndSave(); + _$jscoverage['plugins/list.js'][535]++; + return; + } + } + _$jscoverage['plugins/list.js'][540]++; + li = domUtils.findParentByTagName(range.startContainer, "li", true); + _$jscoverage['plugins/list.js'][542]++; + if (li) { + _$jscoverage['plugins/list.js'][543]++; + if (domUtils.isEmptyBlock(li)) { + _$jscoverage['plugins/list.js'][544]++; + bk = range.createBookmark(); + _$jscoverage['plugins/list.js'][545]++; + var parentList = li.parentNode; + _$jscoverage['plugins/list.js'][546]++; + if ((li !== parentList.lastChild)) { + _$jscoverage['plugins/list.js'][547]++; + domUtils.breakParent(li, parentList); + _$jscoverage['plugins/list.js'][548]++; + clearEmptySibling(li); + } + else { + _$jscoverage['plugins/list.js'][551]++; + parentList.parentNode.insertBefore(li, parentList.nextSibling); + _$jscoverage['plugins/list.js'][552]++; + if (domUtils.isEmptyNode(parentList)) { + _$jscoverage['plugins/list.js'][553]++; + domUtils.remove(parentList); + } + } + _$jscoverage['plugins/list.js'][557]++; + if ((! dtd.$list[li.parentNode.tagName])) { + _$jscoverage['plugins/list.js'][559]++; + if ((! domUtils.isBlockElm(li.firstChild))) { + _$jscoverage['plugins/list.js'][560]++; + p = me.document.createElement("p"); + _$jscoverage['plugins/list.js'][561]++; + li.parentNode.insertBefore(p, li); + _$jscoverage['plugins/list.js'][562]++; + while (li.firstChild) { + _$jscoverage['plugins/list.js'][563]++; + p.appendChild(li.firstChild); +} + _$jscoverage['plugins/list.js'][565]++; + domUtils.remove(li); + } + else { + _$jscoverage['plugins/list.js'][567]++; + domUtils.remove(li, true); + } + } + _$jscoverage['plugins/list.js'][570]++; + range.moveToBookmark(bk).select(); + } + else { + _$jscoverage['plugins/list.js'][574]++; + var first = li.firstChild; + _$jscoverage['plugins/list.js'][575]++; + if (((! first) || (! domUtils.isBlockElm(first)))) { + _$jscoverage['plugins/list.js'][576]++; + var p = me.document.createElement("p"); + _$jscoverage['plugins/list.js'][578]++; + ((! li.firstChild) && domUtils.fillNode(me.document, p)); + _$jscoverage['plugins/list.js'][579]++; + while (li.firstChild) { + _$jscoverage['plugins/list.js'][581]++; + p.appendChild(li.firstChild); +} + _$jscoverage['plugins/list.js'][583]++; + li.appendChild(p); + _$jscoverage['plugins/list.js'][584]++; + first = p; + } + _$jscoverage['plugins/list.js'][587]++; + var span = me.document.createElement("span"); + _$jscoverage['plugins/list.js'][589]++; + range.insertNode(span); + _$jscoverage['plugins/list.js'][590]++; + domUtils.breakParent(span, li); + _$jscoverage['plugins/list.js'][592]++; + var nextLi = span.nextSibling; + _$jscoverage['plugins/list.js'][593]++; + first = nextLi.firstChild; + _$jscoverage['plugins/list.js'][595]++; + if ((! first)) { + _$jscoverage['plugins/list.js'][596]++; + p = me.document.createElement("p"); + _$jscoverage['plugins/list.js'][598]++; + domUtils.fillNode(me.document, p); + _$jscoverage['plugins/list.js'][599]++; + nextLi.appendChild(p); + _$jscoverage['plugins/list.js'][600]++; + first = p; + } + _$jscoverage['plugins/list.js'][602]++; + if (domUtils.isEmptyNode(first)) { + _$jscoverage['plugins/list.js'][603]++; + first.innerHTML = ""; + _$jscoverage['plugins/list.js'][604]++; + domUtils.fillNode(me.document, first); + } + _$jscoverage['plugins/list.js'][607]++; + range.setStart(first, 0).collapse(true).shrinkBoundary().select(); + _$jscoverage['plugins/list.js'][608]++; + domUtils.remove(span); + _$jscoverage['plugins/list.js'][609]++; + var pre = nextLi.previousSibling; + _$jscoverage['plugins/list.js'][610]++; + if ((pre && domUtils.isEmptyBlock(pre))) { + _$jscoverage['plugins/list.js'][611]++; + pre.innerHTML = "

"; + _$jscoverage['plugins/list.js'][612]++; + domUtils.fillNode(me.document, pre.firstChild); + } + } + _$jscoverage['plugins/list.js'][617]++; + preventAndSave(); + } + } + } + _$jscoverage['plugins/list.js'][625]++; + if ((keyCode == 8)) { + _$jscoverage['plugins/list.js'][627]++; + range = me.selection.getRange(); + _$jscoverage['plugins/list.js'][628]++; + if ((range.collapsed && domUtils.isStartInblock(range))) { + _$jscoverage['plugins/list.js'][629]++; + tmpRange = range.cloneRange().trimBoundary(); + _$jscoverage['plugins/list.js'][630]++; + li = domUtils.findParentByTagName(range.startContainer, "li", true); + _$jscoverage['plugins/list.js'][632]++; + if ((li && domUtils.isStartInblock(tmpRange))) { + _$jscoverage['plugins/list.js'][633]++; + start = domUtils.findParentByTagName(range.startContainer, "p", true); + _$jscoverage['plugins/list.js'][634]++; + if ((start && (start !== li.firstChild))) { + _$jscoverage['plugins/list.js'][635]++; + var parentList = domUtils.findParentByTagName(start, ["ol", "ul"]); + _$jscoverage['plugins/list.js'][636]++; + domUtils.breakParent(start, parentList); + _$jscoverage['plugins/list.js'][637]++; + clearEmptySibling(start); + _$jscoverage['plugins/list.js'][638]++; + me.fireEvent("contentchange"); + _$jscoverage['plugins/list.js'][639]++; + range.setStart(start, 0).setCursor(false, true); + _$jscoverage['plugins/list.js'][640]++; + me.fireEvent("saveScene"); + _$jscoverage['plugins/list.js'][641]++; + domUtils.preventDefault(evt); + _$jscoverage['plugins/list.js'][642]++; + return; + } + _$jscoverage['plugins/list.js'][645]++; + if ((li && (pre = li.previousSibling))) { + _$jscoverage['plugins/list.js'][646]++; + if (((keyCode == 46) && li.childNodes.length)) { + _$jscoverage['plugins/list.js'][647]++; + return; + } + _$jscoverage['plugins/list.js'][650]++; + if (dtd.$list[pre.tagName]) { + _$jscoverage['plugins/list.js'][651]++; + pre = pre.lastChild; + } + _$jscoverage['plugins/list.js'][653]++; + (me.undoManger && me.undoManger.save()); + _$jscoverage['plugins/list.js'][654]++; + first = li.firstChild; + _$jscoverage['plugins/list.js'][655]++; + if (domUtils.isBlockElm(first)) { + _$jscoverage['plugins/list.js'][656]++; + if (domUtils.isEmptyNode(first)) { + _$jscoverage['plugins/list.js'][658]++; + pre.appendChild(first); + _$jscoverage['plugins/list.js'][659]++; + range.setStart(first, 0).setCursor(false, true); + _$jscoverage['plugins/list.js'][661]++; + while (li.firstChild) { + _$jscoverage['plugins/list.js'][662]++; + pre.appendChild(li.firstChild); +} + } + else { + _$jscoverage['plugins/list.js'][666]++; + span = me.document.createElement("span"); + _$jscoverage['plugins/list.js'][667]++; + range.insertNode(span); + _$jscoverage['plugins/list.js'][669]++; + if (domUtils.isEmptyBlock(pre)) { + _$jscoverage['plugins/list.js'][670]++; + pre.innerHTML = ""; + } + _$jscoverage['plugins/list.js'][672]++; + domUtils.moveChild(li, pre); + _$jscoverage['plugins/list.js'][673]++; + range.setStartBefore(span).collapse(true).select(true); + _$jscoverage['plugins/list.js'][675]++; + domUtils.remove(span); + } + } + else { + _$jscoverage['plugins/list.js'][679]++; + if (domUtils.isEmptyNode(li)) { + _$jscoverage['plugins/list.js'][680]++; + var p = me.document.createElement("p"); + _$jscoverage['plugins/list.js'][681]++; + pre.appendChild(p); + _$jscoverage['plugins/list.js'][682]++; + range.setStart(p, 0).setCursor(); + } + else { + _$jscoverage['plugins/list.js'][685]++; + range.setEnd(pre, pre.childNodes.length).collapse().select(true); + _$jscoverage['plugins/list.js'][686]++; + while (li.firstChild) { + _$jscoverage['plugins/list.js'][687]++; + pre.appendChild(li.firstChild); +} + } + } + _$jscoverage['plugins/list.js'][691]++; + domUtils.remove(li); + _$jscoverage['plugins/list.js'][692]++; + me.fireEvent("contentchange"); + _$jscoverage['plugins/list.js'][693]++; + me.fireEvent("saveScene"); + _$jscoverage['plugins/list.js'][694]++; + domUtils.preventDefault(evt); + _$jscoverage['plugins/list.js'][695]++; + return; + } + _$jscoverage['plugins/list.js'][700]++; + if ((li && (! li.previousSibling))) { + _$jscoverage['plugins/list.js'][701]++; + var parentList = li.parentNode; + _$jscoverage['plugins/list.js'][702]++; + var bk = range.createBookmark(); + _$jscoverage['plugins/list.js'][703]++; + if (domUtils.isTagNode(parentList.parentNode, "ol ul")) { + _$jscoverage['plugins/list.js'][704]++; + parentList.parentNode.insertBefore(li, parentList); + _$jscoverage['plugins/list.js'][705]++; + if (domUtils.isEmptyNode(parentList)) { + _$jscoverage['plugins/list.js'][706]++; + domUtils.remove(parentList); + } + } + else { + _$jscoverage['plugins/list.js'][710]++; + while (li.firstChild) { + _$jscoverage['plugins/list.js'][711]++; + parentList.parentNode.insertBefore(li.firstChild, parentList); +} + _$jscoverage['plugins/list.js'][714]++; + domUtils.remove(li); + _$jscoverage['plugins/list.js'][715]++; + if (domUtils.isEmptyNode(parentList)) { + _$jscoverage['plugins/list.js'][716]++; + domUtils.remove(parentList); + } + } + _$jscoverage['plugins/list.js'][720]++; + range.moveToBookmark(bk).setCursor(false, true); + _$jscoverage['plugins/list.js'][721]++; + me.fireEvent("contentchange"); + _$jscoverage['plugins/list.js'][722]++; + me.fireEvent("saveScene"); + _$jscoverage['plugins/list.js'][723]++; + domUtils.preventDefault(evt); + _$jscoverage['plugins/list.js'][724]++; + return; + } + } + } + } +})); + _$jscoverage['plugins/list.js'][737]++; + me.addListener("keyup", (function (type, evt) { + _$jscoverage['plugins/list.js'][738]++; + var keyCode = (evt.keyCode || evt.which); + _$jscoverage['plugins/list.js'][739]++; + if ((keyCode == 8)) { + _$jscoverage['plugins/list.js'][740]++; + var rng = me.selection.getRange(), list; + _$jscoverage['plugins/list.js'][741]++; + if ((list = domUtils.findParentByTagName(rng.startContainer, ["ol", "ul"], true))) { + _$jscoverage['plugins/list.js'][742]++; + adjustList(list, list.tagName.toLowerCase(), (getStyle(list) || domUtils.getComputedStyle(list, "list-style-type")), true); + } + } +})); + _$jscoverage['plugins/list.js'][747]++; + me.addListener("tabkeydown", (function () { + _$jscoverage['plugins/list.js'][749]++; + var range = me.selection.getRange(); + _$jscoverage['plugins/list.js'][752]++; + function checkLevel(li) { + _$jscoverage['plugins/list.js'][753]++; + if ((me.options.maxListLevel != -1)) { + _$jscoverage['plugins/list.js'][754]++; + var level = li.parentNode, levelNum = 0; + _$jscoverage['plugins/list.js'][755]++; + while (/[ou]l/i.test(level.tagName)) { + _$jscoverage['plugins/list.js'][756]++; + (levelNum++); + _$jscoverage['plugins/list.js'][757]++; + level = level.parentNode; +} + _$jscoverage['plugins/list.js'][759]++; + if ((levelNum >= me.options.maxListLevel)) { + _$jscoverage['plugins/list.js'][760]++; + return true; + } + } +} + _$jscoverage['plugins/list.js'][766]++; + var li = domUtils.findParentByTagName(range.startContainer, "li", true); + _$jscoverage['plugins/list.js'][767]++; + if (li) { + _$jscoverage['plugins/list.js'][769]++; + var bk; + _$jscoverage['plugins/list.js'][770]++; + if (range.collapsed) { + _$jscoverage['plugins/list.js'][771]++; + if (checkLevel(li)) { + _$jscoverage['plugins/list.js'][772]++; + return true; + } + _$jscoverage['plugins/list.js'][773]++; + var parentLi = li.parentNode, list = me.document.createElement(parentLi.tagName), index = utils.indexOf(listStyle[list.tagName], (getStyle(parentLi) || domUtils.getComputedStyle(parentLi, "list-style-type"))); + _$jscoverage['plugins/list.js'][776]++; + index = (((index + 1) == listStyle[list.tagName].length)? 0: (index + 1)); + _$jscoverage['plugins/list.js'][777]++; + var currentStyle = listStyle[list.tagName][index]; + _$jscoverage['plugins/list.js'][778]++; + setListStyle(list, currentStyle); + _$jscoverage['plugins/list.js'][779]++; + if (domUtils.isStartInblock(range)) { + _$jscoverage['plugins/list.js'][780]++; + me.fireEvent("saveScene"); + _$jscoverage['plugins/list.js'][781]++; + bk = range.createBookmark(); + _$jscoverage['plugins/list.js'][782]++; + parentLi.insertBefore(list, li); + _$jscoverage['plugins/list.js'][783]++; + list.appendChild(li); + _$jscoverage['plugins/list.js'][784]++; + adjustList(list, list.tagName.toLowerCase(), currentStyle); + _$jscoverage['plugins/list.js'][785]++; + me.fireEvent("contentchange"); + _$jscoverage['plugins/list.js'][786]++; + range.moveToBookmark(bk).select(true); + _$jscoverage['plugins/list.js'][787]++; + return true; + } + } + else { + _$jscoverage['plugins/list.js'][790]++; + me.fireEvent("saveScene"); + _$jscoverage['plugins/list.js'][791]++; + bk = range.createBookmark(); + _$jscoverage['plugins/list.js'][792]++; + for (var i = 0, closeList, parents = domUtils.findParents(li), ci; (ci = parents[(i++)]);) { + _$jscoverage['plugins/list.js'][793]++; + if (domUtils.isTagNode(ci, "ol ul")) { + _$jscoverage['plugins/list.js'][794]++; + closeList = ci; + _$jscoverage['plugins/list.js'][795]++; + break; + } +} + _$jscoverage['plugins/list.js'][798]++; + var current = li; + _$jscoverage['plugins/list.js'][799]++; + if (bk.end) { + _$jscoverage['plugins/list.js'][800]++; + while ((current && (! (domUtils.getPosition(current, bk.end) & domUtils.POSITION_FOLLOWING)))) { + _$jscoverage['plugins/list.js'][801]++; + if (checkLevel(current)) { + _$jscoverage['plugins/list.js'][802]++; + current = domUtils.getNextDomNode(current, false, null, (function (node) { + _$jscoverage['plugins/list.js'][802]++; + return (node !== closeList); +})); + _$jscoverage['plugins/list.js'][803]++; + continue; + } + _$jscoverage['plugins/list.js'][805]++; + var parentLi = current.parentNode, list = me.document.createElement(parentLi.tagName), index = utils.indexOf(listStyle[list.tagName], (getStyle(parentLi) || domUtils.getComputedStyle(parentLi, "list-style-type"))); + _$jscoverage['plugins/list.js'][808]++; + var currentIndex = (((index + 1) == listStyle[list.tagName].length)? 0: (index + 1)); + _$jscoverage['plugins/list.js'][809]++; + var currentStyle = listStyle[list.tagName][currentIndex]; + _$jscoverage['plugins/list.js'][810]++; + setListStyle(list, currentStyle); + _$jscoverage['plugins/list.js'][811]++; + parentLi.insertBefore(list, current); + _$jscoverage['plugins/list.js'][812]++; + while ((current && (! (domUtils.getPosition(current, bk.end) & domUtils.POSITION_FOLLOWING)))) { + _$jscoverage['plugins/list.js'][813]++; + li = current.nextSibling; + _$jscoverage['plugins/list.js'][814]++; + list.appendChild(current); + _$jscoverage['plugins/list.js'][815]++; + if (((! li) || domUtils.isTagNode(li, "ol ul"))) { + _$jscoverage['plugins/list.js'][816]++; + if (li) { + _$jscoverage['plugins/list.js'][817]++; + while ((li = li.firstChild)) { + _$jscoverage['plugins/list.js'][818]++; + if ((li.tagName == "LI")) { + _$jscoverage['plugins/list.js'][819]++; + break; + } +} + } + else { + _$jscoverage['plugins/list.js'][823]++; + li = domUtils.getNextDomNode(current, false, null, (function (node) { + _$jscoverage['plugins/list.js'][823]++; + return (node !== closeList); +})); + } + _$jscoverage['plugins/list.js'][825]++; + break; + } + _$jscoverage['plugins/list.js'][827]++; + current = li; +} + _$jscoverage['plugins/list.js'][829]++; + adjustList(list, list.tagName.toLowerCase(), currentStyle); + _$jscoverage['plugins/list.js'][830]++; + current = li; +} + } + _$jscoverage['plugins/list.js'][833]++; + me.fireEvent("contentchange"); + _$jscoverage['plugins/list.js'][834]++; + range.moveToBookmark(bk).select(); + _$jscoverage['plugins/list.js'][835]++; + return true; + } + } +})); + _$jscoverage['plugins/list.js'][840]++; + function getLi(start) { + _$jscoverage['plugins/list.js'][841]++; + while ((start && (! domUtils.isBody(start)))) { + _$jscoverage['plugins/list.js'][842]++; + if ((start.nodeName == "TABLE")) { + _$jscoverage['plugins/list.js'][843]++; + return null; + } + _$jscoverage['plugins/list.js'][845]++; + if ((start.nodeName == "LI")) { + _$jscoverage['plugins/list.js'][846]++; + return start; + } + _$jscoverage['plugins/list.js'][848]++; + start = start.parentNode; +} +} + _$jscoverage['plugins/list.js'][921]++; + me.commands.insertorderedlist = (me.commands.insertunorderedlist = {execCommand: (function (command, style) { + _$jscoverage['plugins/list.js'][925]++; + if ((! style)) { + _$jscoverage['plugins/list.js'][926]++; + style = ((command.toLowerCase() == "insertorderedlist")? "decimal": "disc"); + } + _$jscoverage['plugins/list.js'][928]++; + var me = this, range = this.selection.getRange(), filterFn = (function (node) { + _$jscoverage['plugins/list.js'][931]++; + return ((node.nodeType == 1)? (node.tagName.toLowerCase() != "br"): (! domUtils.isWhitespace(node))); +}), tag = ((command.toLowerCase() == "insertorderedlist")? "ol": "ul"), frag = me.document.createDocumentFragment(); + _$jscoverage['plugins/list.js'][937]++; + range.adjustmentBoundary().shrinkBoundary(); + _$jscoverage['plugins/list.js'][938]++; + var bko = range.createBookmark(true), start = getLi(me.document.getElementById(bko.start)), modifyStart = 0, end = getLi(me.document.getElementById(bko.end)), modifyEnd = 0, startParent, endParent, list, tmp; + _$jscoverage['plugins/list.js'][946]++; + if ((start || end)) { + _$jscoverage['plugins/list.js'][947]++; + (start && (startParent = start.parentNode)); + _$jscoverage['plugins/list.js'][948]++; + if ((! bko.end)) { + _$jscoverage['plugins/list.js'][949]++; + end = start; + } + _$jscoverage['plugins/list.js'][951]++; + (end && (endParent = end.parentNode)); + _$jscoverage['plugins/list.js'][953]++; + if ((startParent === endParent)) { + _$jscoverage['plugins/list.js'][954]++; + while ((start !== end)) { + _$jscoverage['plugins/list.js'][955]++; + tmp = start; + _$jscoverage['plugins/list.js'][956]++; + start = start.nextSibling; + _$jscoverage['plugins/list.js'][957]++; + if ((! domUtils.isBlockElm(tmp.firstChild))) { + _$jscoverage['plugins/list.js'][958]++; + var p = me.document.createElement("p"); + _$jscoverage['plugins/list.js'][959]++; + while (tmp.firstChild) { + _$jscoverage['plugins/list.js'][960]++; + p.appendChild(tmp.firstChild); +} + _$jscoverage['plugins/list.js'][962]++; + tmp.appendChild(p); + } + _$jscoverage['plugins/list.js'][964]++; + frag.appendChild(tmp); +} + _$jscoverage['plugins/list.js'][966]++; + tmp = me.document.createElement("span"); + _$jscoverage['plugins/list.js'][967]++; + startParent.insertBefore(tmp, end); + _$jscoverage['plugins/list.js'][968]++; + if ((! domUtils.isBlockElm(end.firstChild))) { + _$jscoverage['plugins/list.js'][969]++; + p = me.document.createElement("p"); + _$jscoverage['plugins/list.js'][970]++; + while (end.firstChild) { + _$jscoverage['plugins/list.js'][971]++; + p.appendChild(end.firstChild); +} + _$jscoverage['plugins/list.js'][973]++; + end.appendChild(p); + } + _$jscoverage['plugins/list.js'][975]++; + frag.appendChild(end); + _$jscoverage['plugins/list.js'][976]++; + domUtils.breakParent(tmp, startParent); + _$jscoverage['plugins/list.js'][977]++; + if (domUtils.isEmptyNode(tmp.previousSibling)) { + _$jscoverage['plugins/list.js'][978]++; + domUtils.remove(tmp.previousSibling); + } + _$jscoverage['plugins/list.js'][980]++; + if (domUtils.isEmptyNode(tmp.nextSibling)) { + _$jscoverage['plugins/list.js'][981]++; + domUtils.remove(tmp.nextSibling); + } + _$jscoverage['plugins/list.js'][983]++; + var nodeStyle = (getStyle(startParent) || domUtils.getComputedStyle(startParent, "list-style-type") || ((command.toLowerCase() == "insertorderedlist")? "decimal": "disc")); + _$jscoverage['plugins/list.js'][984]++; + if (((startParent.tagName.toLowerCase() == tag) && (nodeStyle == style))) { + _$jscoverage['plugins/list.js'][985]++; + for (var i = 0, ci, tmpFrag = me.document.createDocumentFragment(); (ci = frag.childNodes[(i++)]);) { + _$jscoverage['plugins/list.js'][986]++; + if (domUtils.isTagNode(ci, "ol ul")) { + _$jscoverage['plugins/list.js'][987]++; + utils.each(domUtils.getElementsByTagName(ci, "li"), (function (li) { + _$jscoverage['plugins/list.js'][988]++; + while (li.firstChild) { + _$jscoverage['plugins/list.js'][989]++; + tmpFrag.appendChild(li.firstChild); +} +})); + } + else { + _$jscoverage['plugins/list.js'][994]++; + while (ci.firstChild) { + _$jscoverage['plugins/list.js'][995]++; + tmpFrag.appendChild(ci.firstChild); +} + } +} + _$jscoverage['plugins/list.js'][1000]++; + tmp.parentNode.insertBefore(tmpFrag, tmp); + } + else { + _$jscoverage['plugins/list.js'][1002]++; + list = me.document.createElement(tag); + _$jscoverage['plugins/list.js'][1003]++; + setListStyle(list, style); + _$jscoverage['plugins/list.js'][1004]++; + list.appendChild(frag); + _$jscoverage['plugins/list.js'][1005]++; + tmp.parentNode.insertBefore(list, tmp); + } + _$jscoverage['plugins/list.js'][1008]++; + domUtils.remove(tmp); + _$jscoverage['plugins/list.js'][1009]++; + (list && adjustList(list, tag, style)); + _$jscoverage['plugins/list.js'][1010]++; + range.moveToBookmark(bko).select(); + _$jscoverage['plugins/list.js'][1011]++; + return; + } + _$jscoverage['plugins/list.js'][1014]++; + if (start) { + _$jscoverage['plugins/list.js'][1015]++; + while (start) { + _$jscoverage['plugins/list.js'][1016]++; + tmp = start.nextSibling; + _$jscoverage['plugins/list.js'][1017]++; + if (domUtils.isTagNode(start, "ol ul")) { + _$jscoverage['plugins/list.js'][1018]++; + frag.appendChild(start); + } + else { + _$jscoverage['plugins/list.js'][1020]++; + var tmpfrag = me.document.createDocumentFragment(), hasBlock = 0; + _$jscoverage['plugins/list.js'][1022]++; + while (start.firstChild) { + _$jscoverage['plugins/list.js'][1023]++; + if (domUtils.isBlockElm(start.firstChild)) { + _$jscoverage['plugins/list.js'][1024]++; + hasBlock = 1; + } + _$jscoverage['plugins/list.js'][1026]++; + tmpfrag.appendChild(start.firstChild); +} + _$jscoverage['plugins/list.js'][1028]++; + if ((! hasBlock)) { + _$jscoverage['plugins/list.js'][1029]++; + var tmpP = me.document.createElement("p"); + _$jscoverage['plugins/list.js'][1030]++; + tmpP.appendChild(tmpfrag); + _$jscoverage['plugins/list.js'][1031]++; + frag.appendChild(tmpP); + } + else { + _$jscoverage['plugins/list.js'][1033]++; + frag.appendChild(tmpfrag); + } + _$jscoverage['plugins/list.js'][1035]++; + domUtils.remove(start); + } + _$jscoverage['plugins/list.js'][1038]++; + start = tmp; +} + _$jscoverage['plugins/list.js'][1040]++; + startParent.parentNode.insertBefore(frag, startParent.nextSibling); + _$jscoverage['plugins/list.js'][1041]++; + if (domUtils.isEmptyNode(startParent)) { + _$jscoverage['plugins/list.js'][1042]++; + range.setStartBefore(startParent); + _$jscoverage['plugins/list.js'][1043]++; + domUtils.remove(startParent); + } + else { + _$jscoverage['plugins/list.js'][1045]++; + range.setStartAfter(startParent); + } + _$jscoverage['plugins/list.js'][1047]++; + modifyStart = 1; + } + _$jscoverage['plugins/list.js'][1050]++; + if ((end && domUtils.inDoc(endParent, me.document))) { + _$jscoverage['plugins/list.js'][1052]++; + start = endParent.firstChild; + _$jscoverage['plugins/list.js'][1053]++; + while ((start && (start !== end))) { + _$jscoverage['plugins/list.js'][1054]++; + tmp = start.nextSibling; + _$jscoverage['plugins/list.js'][1055]++; + if (domUtils.isTagNode(start, "ol ul")) { + _$jscoverage['plugins/list.js'][1056]++; + frag.appendChild(start); + } + else { + _$jscoverage['plugins/list.js'][1058]++; + tmpfrag = me.document.createDocumentFragment(); + _$jscoverage['plugins/list.js'][1059]++; + hasBlock = 0; + _$jscoverage['plugins/list.js'][1060]++; + while (start.firstChild) { + _$jscoverage['plugins/list.js'][1061]++; + if (domUtils.isBlockElm(start.firstChild)) { + _$jscoverage['plugins/list.js'][1062]++; + hasBlock = 1; + } + _$jscoverage['plugins/list.js'][1064]++; + tmpfrag.appendChild(start.firstChild); +} + _$jscoverage['plugins/list.js'][1066]++; + if ((! hasBlock)) { + _$jscoverage['plugins/list.js'][1067]++; + tmpP = me.document.createElement("p"); + _$jscoverage['plugins/list.js'][1068]++; + tmpP.appendChild(tmpfrag); + _$jscoverage['plugins/list.js'][1069]++; + frag.appendChild(tmpP); + } + else { + _$jscoverage['plugins/list.js'][1071]++; + frag.appendChild(tmpfrag); + } + _$jscoverage['plugins/list.js'][1073]++; + domUtils.remove(start); + } + _$jscoverage['plugins/list.js'][1075]++; + start = tmp; +} + _$jscoverage['plugins/list.js'][1077]++; + var tmpDiv = domUtils.createElement(me.document, "div", {"tmpDiv": 1}); + _$jscoverage['plugins/list.js'][1080]++; + domUtils.moveChild(end, tmpDiv); + _$jscoverage['plugins/list.js'][1082]++; + frag.appendChild(tmpDiv); + _$jscoverage['plugins/list.js'][1083]++; + domUtils.remove(end); + _$jscoverage['plugins/list.js'][1084]++; + endParent.parentNode.insertBefore(frag, endParent); + _$jscoverage['plugins/list.js'][1085]++; + range.setEndBefore(endParent); + _$jscoverage['plugins/list.js'][1086]++; + if (domUtils.isEmptyNode(endParent)) { + _$jscoverage['plugins/list.js'][1087]++; + domUtils.remove(endParent); + } + _$jscoverage['plugins/list.js'][1090]++; + modifyEnd = 1; + } + } + _$jscoverage['plugins/list.js'][1096]++; + if ((! modifyStart)) { + _$jscoverage['plugins/list.js'][1097]++; + range.setStartBefore(me.document.getElementById(bko.start)); + } + _$jscoverage['plugins/list.js'][1099]++; + if ((bko.end && (! modifyEnd))) { + _$jscoverage['plugins/list.js'][1100]++; + range.setEndAfter(me.document.getElementById(bko.end)); + } + _$jscoverage['plugins/list.js'][1102]++; + range.enlarge(true, (function (node) { + _$jscoverage['plugins/list.js'][1103]++; + return notExchange[node.tagName]; +})); + _$jscoverage['plugins/list.js'][1106]++; + frag = me.document.createDocumentFragment(); + _$jscoverage['plugins/list.js'][1108]++; + var bk = range.createBookmark(), current = domUtils.getNextDomNode(bk.start, false, filterFn), tmpRange = range.cloneRange(), tmpNode, block = domUtils.isBlockElm; + _$jscoverage['plugins/list.js'][1114]++; + while ((current && (current !== bk.end) && (domUtils.getPosition(current, bk.end) & domUtils.POSITION_PRECEDING))) { + _$jscoverage['plugins/list.js'][1116]++; + if (((current.nodeType == 3) || dtd.li[current.tagName])) { + _$jscoverage['plugins/list.js'][1117]++; + if (((current.nodeType == 1) && dtd.$list[current.tagName])) { + _$jscoverage['plugins/list.js'][1118]++; + while (current.firstChild) { + _$jscoverage['plugins/list.js'][1119]++; + frag.appendChild(current.firstChild); +} + _$jscoverage['plugins/list.js'][1121]++; + tmpNode = domUtils.getNextDomNode(current, false, filterFn); + _$jscoverage['plugins/list.js'][1122]++; + domUtils.remove(current); + _$jscoverage['plugins/list.js'][1123]++; + current = tmpNode; + _$jscoverage['plugins/list.js'][1124]++; + continue; + } + _$jscoverage['plugins/list.js'][1127]++; + tmpNode = current; + _$jscoverage['plugins/list.js'][1128]++; + tmpRange.setStartBefore(current); + _$jscoverage['plugins/list.js'][1130]++; + while ((current && (current !== bk.end) && ((! block(current)) || domUtils.isBookmarkNode(current)))) { + _$jscoverage['plugins/list.js'][1131]++; + tmpNode = current; + _$jscoverage['plugins/list.js'][1132]++; + current = domUtils.getNextDomNode(current, false, null, (function (node) { + _$jscoverage['plugins/list.js'][1133]++; + return (! notExchange[node.tagName]); +})); +} + _$jscoverage['plugins/list.js'][1137]++; + if ((current && block(current))) { + _$jscoverage['plugins/list.js'][1138]++; + tmp = domUtils.getNextDomNode(tmpNode, false, filterFn); + _$jscoverage['plugins/list.js'][1139]++; + if ((tmp && domUtils.isBookmarkNode(tmp))) { + _$jscoverage['plugins/list.js'][1140]++; + current = domUtils.getNextDomNode(tmp, false, filterFn); + _$jscoverage['plugins/list.js'][1141]++; + tmpNode = tmp; + } + } + _$jscoverage['plugins/list.js'][1144]++; + tmpRange.setEndAfter(tmpNode); + _$jscoverage['plugins/list.js'][1146]++; + current = domUtils.getNextDomNode(tmpNode, false, filterFn); + _$jscoverage['plugins/list.js'][1148]++; + var li = range.document.createElement("li"); + _$jscoverage['plugins/list.js'][1150]++; + li.appendChild(tmpRange.extractContents()); + _$jscoverage['plugins/list.js'][1151]++; + if (domUtils.isEmptyNode(li)) { + _$jscoverage['plugins/list.js'][1152]++; + var tmpNode = range.document.createElement("p"); + _$jscoverage['plugins/list.js'][1153]++; + while (li.firstChild) { + _$jscoverage['plugins/list.js'][1154]++; + tmpNode.appendChild(li.firstChild); +} + _$jscoverage['plugins/list.js'][1156]++; + li.appendChild(tmpNode); + } + _$jscoverage['plugins/list.js'][1158]++; + frag.appendChild(li); + } + else { + _$jscoverage['plugins/list.js'][1160]++; + current = domUtils.getNextDomNode(current, true, filterFn); + } +} + _$jscoverage['plugins/list.js'][1163]++; + range.moveToBookmark(bk).collapse(true); + _$jscoverage['plugins/list.js'][1164]++; + list = me.document.createElement(tag); + _$jscoverage['plugins/list.js'][1165]++; + setListStyle(list, style); + _$jscoverage['plugins/list.js'][1166]++; + list.appendChild(frag); + _$jscoverage['plugins/list.js'][1167]++; + range.insertNode(list); + _$jscoverage['plugins/list.js'][1169]++; + adjustList(list, tag, style); + _$jscoverage['plugins/list.js'][1171]++; + for (var i = 0, ci = ci, tmpDivs = domUtils.getElementsByTagName(list, "div"); (ci = tmpDivs[(i++)]);) { + _$jscoverage['plugins/list.js'][1172]++; + if (ci.getAttribute("tmpDiv")) { + _$jscoverage['plugins/list.js'][1173]++; + domUtils.remove(ci, true); + } +} + _$jscoverage['plugins/list.js'][1176]++; + range.moveToBookmark(bko).select(); +}), queryCommandState: (function (command) { + _$jscoverage['plugins/list.js'][1180]++; + var tag = ((command.toLowerCase() == "insertorderedlist")? "ol": "ul"); + _$jscoverage['plugins/list.js'][1181]++; + var path = this.selection.getStartElementPath(); + _$jscoverage['plugins/list.js'][1182]++; + for (var i = 0, ci; (ci = path[(i++)]);) { + _$jscoverage['plugins/list.js'][1183]++; + if ((ci.nodeName == "TABLE")) { + _$jscoverage['plugins/list.js'][1184]++; + return 0; + } + _$jscoverage['plugins/list.js'][1186]++; + if ((tag == ci.nodeName.toLowerCase())) { + _$jscoverage['plugins/list.js'][1187]++; + return 1; + } + _$jscoverage['plugins/list.js'][1188]++; + ; +} + _$jscoverage['plugins/list.js'][1190]++; + return 0; +}), queryCommandValue: (function (command) { + _$jscoverage['plugins/list.js'][1194]++; + var tag = ((command.toLowerCase() == "insertorderedlist")? "ol": "ul"); + _$jscoverage['plugins/list.js'][1195]++; + var path = this.selection.getStartElementPath(), node; + _$jscoverage['plugins/list.js'][1197]++; + for (var i = 0, ci; (ci = path[(i++)]);) { + _$jscoverage['plugins/list.js'][1198]++; + if ((ci.nodeName == "TABLE")) { + _$jscoverage['plugins/list.js'][1199]++; + node = null; + _$jscoverage['plugins/list.js'][1200]++; + break; + } + _$jscoverage['plugins/list.js'][1202]++; + if ((tag == ci.nodeName.toLowerCase())) { + _$jscoverage['plugins/list.js'][1203]++; + node = ci; + _$jscoverage['plugins/list.js'][1204]++; + break; + } + _$jscoverage['plugins/list.js'][1205]++; + ; +} + _$jscoverage['plugins/list.js'][1207]++; + return (node? (getStyle(node) || domUtils.getComputedStyle(node, "list-style-type")): null); +})}); +}); diff --git a/_test/coverage/plugins/music.js b/_test/coverage/plugins/music.js new file mode 100644 index 000000000..ee7d4efc9 --- /dev/null +++ b/_test/coverage/plugins/music.js @@ -0,0 +1,135 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/music.js']) { + _$jscoverage['plugins/music.js'] = []; + _$jscoverage['plugins/music.js'][24] = 0; + _$jscoverage['plugins/music.js'][25] = 0; + _$jscoverage['plugins/music.js'][37] = 0; + _$jscoverage['plugins/music.js'][38] = 0; + _$jscoverage['plugins/music.js'][50] = 0; + _$jscoverage['plugins/music.js'][51] = 0; + _$jscoverage['plugins/music.js'][53] = 0; + _$jscoverage['plugins/music.js'][54] = 0; + _$jscoverage['plugins/music.js'][55] = 0; + _$jscoverage['plugins/music.js'][57] = 0; + _$jscoverage['plugins/music.js'][59] = 0; + _$jscoverage['plugins/music.js'][60] = 0; + _$jscoverage['plugins/music.js'][61] = 0; + _$jscoverage['plugins/music.js'][62] = 0; + _$jscoverage['plugins/music.js'][66] = 0; + _$jscoverage['plugins/music.js'][67] = 0; + _$jscoverage['plugins/music.js'][69] = 0; + _$jscoverage['plugins/music.js'][70] = 0; + _$jscoverage['plugins/music.js'][72] = 0; + _$jscoverage['plugins/music.js'][73] = 0; + _$jscoverage['plugins/music.js'][74] = 0; + _$jscoverage['plugins/music.js'][76] = 0; + _$jscoverage['plugins/music.js'][79] = 0; + _$jscoverage['plugins/music.js'][81] = 0; + _$jscoverage['plugins/music.js'][83] = 0; + _$jscoverage['plugins/music.js'][86] = 0; + _$jscoverage['plugins/music.js'][89] = 0; +} +_$jscoverage['plugins/music.js'].source = ["/**"," * 插入音乐命令"," * @file"," */","","/**"," * 在当前光标处插入音乐"," * @command music"," * @method execCommand"," * @param { KeyValueMap } musicOptions 插入音乐的参数项, 支持的key有: url=>音乐地址;"," * width=>音乐容器宽度;height=>音乐容器高度;align=>音乐文件的对齐方式, 可选值有: left, center, right, none"," * @example"," * ```javascript"," * //editor是编辑器实例"," * //在编辑器里插入一个“植物大战僵尸”的APP"," * editor.execCommand( 'music' , {"," * width: 400,"," * height: 95,"," * align: \"center\","," * url: \"音乐地址\""," * } );"," * ```"," */","UE.plugins['music'] = function () {"," var me = this,"," div;",""," /*"," * 创建插入音乐字符串"," * @param url 音乐地址"," * @param width 音乐宽度"," * @param height 音乐高度"," * @param align 对齐"," * @param toEmbed 是否以flash代替显示"," * @param addParagraph 是否需要添加P标签"," */"," function creatInsertStr(url,width,height,align,toEmbed,addParagraph){"," return !toEmbed ?"," (addParagraph? ('<p '+ (align !=\"none\" ? ( align == \"center\"? ' style=\"text-align:center;\" ':' style=\"float:\"'+ align ) : '') + '>'): '') +"," '<img align=\"'+align+'\" width=\"'+ width +'\" height=\"' + height + '\" _url=\"'+url+'\" class=\"edui-faked-music\"' +"," ' src=\"'+me.options.langPath+me.options.lang+'/images/music.png\" />' +"," (addParagraph?'</p>':'')"," :"," '<embed type=\"application/x-shockwave-flash\" class=\"edui-faked-music\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\"' +"," ' src=\"' + url + '\" width=\"' + width + '\" height=\"' + height + '\" align=\"' + align + '\"' +"," ( align !=\"none\" ? ' style= \"'+ ( align == \"center\"? \"display:block;\":\" float: \"+ align ) + '\"' :'' ) +"," ' wmode=\"transparent\" play=\"true\" loop=\"false\" menu=\"false\" allowscriptaccess=\"never\" allowfullscreen=\"true\" >';"," }",""," function switchImgAndEmbed(img2embed) {"," var tmpdiv,"," nodes = domUtils.getElementsByTagName(me.document, !img2embed ? \"embed\" : \"img\");"," for (var i = 0, node; node = nodes[i++];) {"," if (node.className != \"edui-faked-music\") {"," continue;"," }"," tmpdiv = me.document.createElement(\"div\");"," //先看float在看align,浮动有的是时候是在float上定义的"," var align = domUtils.getComputedStyle(node,'float');"," align = align == 'none' ? (node.getAttribute('align') || '') : align;"," tmpdiv.innerHTML = creatInsertStr(img2embed ? node.getAttribute(\"_url\") : node.getAttribute(\"src\"), node.width, node.height, align, img2embed);"," node.parentNode.replaceChild(tmpdiv.firstChild, node);"," }"," }",""," me.addListener(\"beforegetcontent\", function () {"," switchImgAndEmbed(true);"," });"," me.addListener('aftersetcontent', function () {"," switchImgAndEmbed(false);"," });"," me.addListener('aftergetcontent', function (cmdName) {"," if (cmdName == 'aftergetcontent' && me.queryCommandState('source')) {"," return;"," }"," switchImgAndEmbed(false);"," });",""," me.commands[\"music\"] = {"," execCommand:function (cmd, musicObj) {"," var me = this,"," str = creatInsertStr(musicObj.url, musicObj.width || 400, musicObj.height || 95, \"none\", false, true);"," me.execCommand(\"inserthtml\",str);"," },"," queryCommandState:function () {"," var me = this,"," img = me.selection.getRange().getClosedNode(),"," flag = img && (img.className == \"edui-faked-music\");"," return flag ? 1 : 0;"," }"," };","};"]; +_$jscoverage['plugins/music.js'][24]++; +UE.plugins.music = (function () { + _$jscoverage['plugins/music.js'][25]++; + var me = this, div; + _$jscoverage['plugins/music.js'][37]++; + function creatInsertStr(url, width, height, align, toEmbed, addParagraph) { + _$jscoverage['plugins/music.js'][38]++; + return ((! toEmbed)? ((addParagraph? ("

"): "") + "" + (addParagraph? "

": "")): ("")); +} + _$jscoverage['plugins/music.js'][50]++; + function switchImgAndEmbed(img2embed) { + _$jscoverage['plugins/music.js'][51]++; + var tmpdiv, nodes = domUtils.getElementsByTagName(me.document, ((! img2embed)? "embed": "img")); + _$jscoverage['plugins/music.js'][53]++; + for (var i = 0, node; (node = nodes[(i++)]);) { + _$jscoverage['plugins/music.js'][54]++; + if ((node.className != "edui-faked-music")) { + _$jscoverage['plugins/music.js'][55]++; + continue; + } + _$jscoverage['plugins/music.js'][57]++; + tmpdiv = me.document.createElement("div"); + _$jscoverage['plugins/music.js'][59]++; + var align = domUtils.getComputedStyle(node, "float"); + _$jscoverage['plugins/music.js'][60]++; + align = ((align == "none")? (node.getAttribute("align") || ""): align); + _$jscoverage['plugins/music.js'][61]++; + tmpdiv.innerHTML = creatInsertStr((img2embed? node.getAttribute("_url"): node.getAttribute("src")), node.width, node.height, align, img2embed); + _$jscoverage['plugins/music.js'][62]++; + node.parentNode.replaceChild(tmpdiv.firstChild, node); +} +} + _$jscoverage['plugins/music.js'][66]++; + me.addListener("beforegetcontent", (function () { + _$jscoverage['plugins/music.js'][67]++; + switchImgAndEmbed(true); +})); + _$jscoverage['plugins/music.js'][69]++; + me.addListener("aftersetcontent", (function () { + _$jscoverage['plugins/music.js'][70]++; + switchImgAndEmbed(false); +})); + _$jscoverage['plugins/music.js'][72]++; + me.addListener("aftergetcontent", (function (cmdName) { + _$jscoverage['plugins/music.js'][73]++; + if (((cmdName == "aftergetcontent") && me.queryCommandState("source"))) { + _$jscoverage['plugins/music.js'][74]++; + return; + } + _$jscoverage['plugins/music.js'][76]++; + switchImgAndEmbed(false); +})); + _$jscoverage['plugins/music.js'][79]++; + me.commands.music = {execCommand: (function (cmd, musicObj) { + _$jscoverage['plugins/music.js'][81]++; + var me = this, str = creatInsertStr(musicObj.url, (musicObj.width || 400), (musicObj.height || 95), "none", false, true); + _$jscoverage['plugins/music.js'][83]++; + me.execCommand("inserthtml", str); +}), queryCommandState: (function () { + _$jscoverage['plugins/music.js'][86]++; + var me = this, img = me.selection.getRange().getClosedNode(), flag = (img && (img.className == "edui-faked-music")); + _$jscoverage['plugins/music.js'][89]++; + return (flag? 1: 0); +})}; +}); diff --git a/_test/coverage/plugins/pagebreak.js b/_test/coverage/plugins/pagebreak.js new file mode 100644 index 000000000..33d635338 --- /dev/null +++ b/_test/coverage/plugins/pagebreak.js @@ -0,0 +1,303 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/pagebreak.js']) { + _$jscoverage['plugins/pagebreak.js'] = []; + _$jscoverage['plugins/pagebreak.js'][7] = 0; + _$jscoverage['plugins/pagebreak.js'][8] = 0; + _$jscoverage['plugins/pagebreak.js'][10] = 0; + _$jscoverage['plugins/pagebreak.js'][12] = 0; + _$jscoverage['plugins/pagebreak.js'][13] = 0; + _$jscoverage['plugins/pagebreak.js'][14] = 0; + _$jscoverage['plugins/pagebreak.js'][16] = 0; + _$jscoverage['plugins/pagebreak.js'][17] = 0; + _$jscoverage['plugins/pagebreak.js'][18] = 0; + _$jscoverage['plugins/pagebreak.js'][20] = 0; + _$jscoverage['plugins/pagebreak.js'][21] = 0; + _$jscoverage['plugins/pagebreak.js'][26] = 0; + _$jscoverage['plugins/pagebreak.js'][27] = 0; + _$jscoverage['plugins/pagebreak.js'][29] = 0; + _$jscoverage['plugins/pagebreak.js'][30] = 0; + _$jscoverage['plugins/pagebreak.js'][32] = 0; + _$jscoverage['plugins/pagebreak.js'][33] = 0; + _$jscoverage['plugins/pagebreak.js'][34] = 0; + _$jscoverage['plugins/pagebreak.js'][35] = 0; + _$jscoverage['plugins/pagebreak.js'][36] = 0; + _$jscoverage['plugins/pagebreak.js'][37] = 0; + _$jscoverage['plugins/pagebreak.js'][41] = 0; + _$jscoverage['plugins/pagebreak.js'][42] = 0; + _$jscoverage['plugins/pagebreak.js'][43] = 0; + _$jscoverage['plugins/pagebreak.js'][44] = 0; + _$jscoverage['plugins/pagebreak.js'][45] = 0; + _$jscoverage['plugins/pagebreak.js'][46] = 0; + _$jscoverage['plugins/pagebreak.js'][62] = 0; + _$jscoverage['plugins/pagebreak.js'][64] = 0; + _$jscoverage['plugins/pagebreak.js'][65] = 0; + _$jscoverage['plugins/pagebreak.js'][70] = 0; + _$jscoverage['plugins/pagebreak.js'][72] = 0; + _$jscoverage['plugins/pagebreak.js'][75] = 0; + _$jscoverage['plugins/pagebreak.js'][76] = 0; + _$jscoverage['plugins/pagebreak.js'][78] = 0; + _$jscoverage['plugins/pagebreak.js'][79] = 0; + _$jscoverage['plugins/pagebreak.js'][80] = 0; + _$jscoverage['plugins/pagebreak.js'][88] = 0; + _$jscoverage['plugins/pagebreak.js'][89] = 0; + _$jscoverage['plugins/pagebreak.js'][92] = 0; + _$jscoverage['plugins/pagebreak.js'][93] = 0; + _$jscoverage['plugins/pagebreak.js'][96] = 0; + _$jscoverage['plugins/pagebreak.js'][97] = 0; + _$jscoverage['plugins/pagebreak.js'][98] = 0; + _$jscoverage['plugins/pagebreak.js'][102] = 0; + _$jscoverage['plugins/pagebreak.js'][107] = 0; + _$jscoverage['plugins/pagebreak.js'][108] = 0; + _$jscoverage['plugins/pagebreak.js'][109] = 0; + _$jscoverage['plugins/pagebreak.js'][110] = 0; + _$jscoverage['plugins/pagebreak.js'][111] = 0; + _$jscoverage['plugins/pagebreak.js'][112] = 0; + _$jscoverage['plugins/pagebreak.js'][113] = 0; + _$jscoverage['plugins/pagebreak.js'][117] = 0; + _$jscoverage['plugins/pagebreak.js'][119] = 0; + _$jscoverage['plugins/pagebreak.js'][120] = 0; + _$jscoverage['plugins/pagebreak.js'][121] = 0; + _$jscoverage['plugins/pagebreak.js'][122] = 0; + _$jscoverage['plugins/pagebreak.js'][123] = 0; + _$jscoverage['plugins/pagebreak.js'][124] = 0; + _$jscoverage['plugins/pagebreak.js'][126] = 0; + _$jscoverage['plugins/pagebreak.js'][128] = 0; + _$jscoverage['plugins/pagebreak.js'][129] = 0; + _$jscoverage['plugins/pagebreak.js'][130] = 0; + _$jscoverage['plugins/pagebreak.js'][131] = 0; + _$jscoverage['plugins/pagebreak.js'][133] = 0; + _$jscoverage['plugins/pagebreak.js'][136] = 0; + _$jscoverage['plugins/pagebreak.js'][137] = 0; + _$jscoverage['plugins/pagebreak.js'][139] = 0; + _$jscoverage['plugins/pagebreak.js'][140] = 0; + _$jscoverage['plugins/pagebreak.js'][141] = 0; + _$jscoverage['plugins/pagebreak.js'][143] = 0; + _$jscoverage['plugins/pagebreak.js'][144] = 0; + _$jscoverage['plugins/pagebreak.js'][146] = 0; + _$jscoverage['plugins/pagebreak.js'][148] = 0; + _$jscoverage['plugins/pagebreak.js'][151] = 0; +} +_$jscoverage['plugins/pagebreak.js'].source = ["/**"," * 分页功能插件"," * @file"," * @since 1.2.6.1"," */","","UE.plugins['pagebreak'] = function () {"," var me = this,"," notBreakTags = ['td'];"," me.setOpt('pageBreakTag','_ueditor_page_break_tag_');",""," function fillNode(node){"," if(domUtils.isEmptyBlock(node)){"," var firstChild = node.firstChild,tmpNode;",""," while(firstChild && firstChild.nodeType == 1 && domUtils.isEmptyBlock(firstChild)){"," tmpNode = firstChild;"," firstChild = firstChild.firstChild;"," }"," !tmpNode && (tmpNode = node);"," domUtils.fillNode(me.document,tmpNode);"," }"," }"," //分页符样式添加",""," me.ready(function(){"," utils.cssRule('pagebreak','.pagebreak{display:block;clear:both !important;cursor:default !important;width: 100% !important;margin:0;}',me.document);"," });"," function isHr(node){"," return node && node.nodeType == 1 && node.tagName == 'HR' && node.className == 'pagebreak';"," }"," me.addInputRule(function(root){"," root.traversal(function(node){"," if(node.type == 'text' && node.data == me.options.pageBreakTag){"," var hr = UE.uNode.createElement('<hr class=\"pagebreak\" noshade=\"noshade\" size=\"5\" style=\"-webkit-user-select: none;\">');"," node.parentNode.insertBefore(hr,node);"," node.parentNode.removeChild(node)"," }"," })"," });"," me.addOutputRule(function(node){"," utils.each(node.getNodesByTagName('hr'),function(n){"," if(n.getAttr('class') == 'pagebreak'){"," var txt = UE.uNode.createText(me.options.pageBreakTag);"," n.parentNode.insertBefore(txt,n);"," n.parentNode.removeChild(n);"," }"," })",""," });",""," /**"," * 插入分页符,在当前光标插入分页符"," * @command pagebreak"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @example"," * ```javascript"," * editor.execCommand( 'pagebreak'); //插入一个hr标签,带有样式类名pagebreak"," * ```"," */"," me.commands['pagebreak'] = {"," execCommand:function () {"," var range = me.selection.getRange(),hr = me.document.createElement('hr');"," domUtils.setAttributes(hr,{"," 'class' : 'pagebreak',"," noshade:\"noshade\","," size:\"5\""," });"," domUtils.unSelectable(hr);"," //table单独处理"," var node = domUtils.findParentByTagName(range.startContainer, notBreakTags, true),",""," parents = [], pN;"," if (node) {"," switch (node.tagName) {"," case 'TD':"," pN = node.parentNode;"," if (!pN.previousSibling) {"," var table = domUtils.findParentByTagName(pN, 'table');","// var tableWrapDiv = table.parentNode;","// if(tableWrapDiv && tableWrapDiv.nodeType == 1","// && tableWrapDiv.tagName == 'DIV'","// && tableWrapDiv.getAttribute('dropdrag')","// ){","// domUtils.remove(tableWrapDiv,true);","// }"," table.parentNode.insertBefore(hr, table);"," parents = domUtils.findParents(hr, true);",""," } else {"," pN.parentNode.insertBefore(hr, pN);"," parents = domUtils.findParents(hr);",""," }"," pN = parents[1];"," if (hr !== pN) {"," domUtils.breakParent(hr, pN);",""," }"," //table要重写绑定一下拖拽"," me.fireEvent('afteradjusttable',me.document);"," }",""," } else {",""," if (!range.collapsed) {"," range.deleteContents();"," var start = range.startContainer;"," while ( !domUtils.isBody(start) && domUtils.isBlockElm(start) && domUtils.isEmptyNode(start)) {"," range.setStartBefore(start).collapse(true);"," domUtils.remove(start);"," start = range.startContainer;"," }",""," }"," range.insertNode(hr);",""," var pN = hr.parentNode, nextNode;"," while (!domUtils.isBody(pN)) {"," domUtils.breakParent(hr, pN);"," nextNode = hr.nextSibling;"," if (nextNode && domUtils.isEmptyBlock(nextNode)) {"," domUtils.remove(nextNode);"," }"," pN = hr.parentNode;"," }"," nextNode = hr.nextSibling;"," var pre = hr.previousSibling;"," if(isHr(pre)){"," domUtils.remove(pre);"," }else{"," pre && fillNode(pre);"," }",""," if(!nextNode){"," var p = me.document.createElement('p');",""," hr.parentNode.appendChild(p);"," domUtils.fillNode(me.document,p);"," range.setStart(p,0).collapse(true);"," }else{"," if(isHr(nextNode)){"," domUtils.remove(nextNode);"," }else{"," fillNode(nextNode);"," }"," range.setEndAfter(hr).collapse(false);"," }",""," range.select(true);",""," }",""," }"," };","};"]; +_$jscoverage['plugins/pagebreak.js'][7]++; +UE.plugins.pagebreak = (function () { + _$jscoverage['plugins/pagebreak.js'][8]++; + var me = this, notBreakTags = ["td"]; + _$jscoverage['plugins/pagebreak.js'][10]++; + me.setOpt("pageBreakTag", "_ueditor_page_break_tag_"); + _$jscoverage['plugins/pagebreak.js'][12]++; + function fillNode(node) { + _$jscoverage['plugins/pagebreak.js'][13]++; + if (domUtils.isEmptyBlock(node)) { + _$jscoverage['plugins/pagebreak.js'][14]++; + var firstChild = node.firstChild, tmpNode; + _$jscoverage['plugins/pagebreak.js'][16]++; + while ((firstChild && (firstChild.nodeType == 1) && domUtils.isEmptyBlock(firstChild))) { + _$jscoverage['plugins/pagebreak.js'][17]++; + tmpNode = firstChild; + _$jscoverage['plugins/pagebreak.js'][18]++; + firstChild = firstChild.firstChild; +} + _$jscoverage['plugins/pagebreak.js'][20]++; + ((! tmpNode) && (tmpNode = node)); + _$jscoverage['plugins/pagebreak.js'][21]++; + domUtils.fillNode(me.document, tmpNode); + } +} + _$jscoverage['plugins/pagebreak.js'][26]++; + me.ready((function () { + _$jscoverage['plugins/pagebreak.js'][27]++; + utils.cssRule("pagebreak", ".pagebreak{display:block;clear:both !important;cursor:default !important;width: 100% !important;margin:0;}", me.document); +})); + _$jscoverage['plugins/pagebreak.js'][29]++; + function isHr(node) { + _$jscoverage['plugins/pagebreak.js'][30]++; + return (node && (node.nodeType == 1) && (node.tagName == "HR") && (node.className == "pagebreak")); +} + _$jscoverage['plugins/pagebreak.js'][32]++; + me.addInputRule((function (root) { + _$jscoverage['plugins/pagebreak.js'][33]++; + root.traversal((function (node) { + _$jscoverage['plugins/pagebreak.js'][34]++; + if (((node.type == "text") && (node.data == me.options.pageBreakTag))) { + _$jscoverage['plugins/pagebreak.js'][35]++; + var hr = UE.uNode.createElement("
"); + _$jscoverage['plugins/pagebreak.js'][36]++; + node.parentNode.insertBefore(hr, node); + _$jscoverage['plugins/pagebreak.js'][37]++; + node.parentNode.removeChild(node); + } +})); +})); + _$jscoverage['plugins/pagebreak.js'][41]++; + me.addOutputRule((function (node) { + _$jscoverage['plugins/pagebreak.js'][42]++; + utils.each(node.getNodesByTagName("hr"), (function (n) { + _$jscoverage['plugins/pagebreak.js'][43]++; + if ((n.getAttr("class") == "pagebreak")) { + _$jscoverage['plugins/pagebreak.js'][44]++; + var txt = UE.uNode.createText(me.options.pageBreakTag); + _$jscoverage['plugins/pagebreak.js'][45]++; + n.parentNode.insertBefore(txt, n); + _$jscoverage['plugins/pagebreak.js'][46]++; + n.parentNode.removeChild(n); + } +})); +})); + _$jscoverage['plugins/pagebreak.js'][62]++; + me.commands.pagebreak = {execCommand: (function () { + _$jscoverage['plugins/pagebreak.js'][64]++; + var range = me.selection.getRange(), hr = me.document.createElement("hr"); + _$jscoverage['plugins/pagebreak.js'][65]++; + domUtils.setAttributes(hr, {"class": "pagebreak", noshade: "noshade", size: "5"}); + _$jscoverage['plugins/pagebreak.js'][70]++; + domUtils.unSelectable(hr); + _$jscoverage['plugins/pagebreak.js'][72]++; + var node = domUtils.findParentByTagName(range.startContainer, notBreakTags, true), parents = [], pN; + _$jscoverage['plugins/pagebreak.js'][75]++; + if (node) { + _$jscoverage['plugins/pagebreak.js'][76]++; + switch (node.tagName) { + case "TD": + _$jscoverage['plugins/pagebreak.js'][78]++; + pN = node.parentNode; + _$jscoverage['plugins/pagebreak.js'][79]++; + if ((! pN.previousSibling)) { + _$jscoverage['plugins/pagebreak.js'][80]++; + var table = domUtils.findParentByTagName(pN, "table"); + _$jscoverage['plugins/pagebreak.js'][88]++; + table.parentNode.insertBefore(hr, table); + _$jscoverage['plugins/pagebreak.js'][89]++; + parents = domUtils.findParents(hr, true); + } + else { + _$jscoverage['plugins/pagebreak.js'][92]++; + pN.parentNode.insertBefore(hr, pN); + _$jscoverage['plugins/pagebreak.js'][93]++; + parents = domUtils.findParents(hr); + } + _$jscoverage['plugins/pagebreak.js'][96]++; + pN = parents[1]; + _$jscoverage['plugins/pagebreak.js'][97]++; + if ((hr !== pN)) { + _$jscoverage['plugins/pagebreak.js'][98]++; + domUtils.breakParent(hr, pN); + } + _$jscoverage['plugins/pagebreak.js'][102]++; + me.fireEvent("afteradjusttable", me.document); + } + } + else { + _$jscoverage['plugins/pagebreak.js'][107]++; + if ((! range.collapsed)) { + _$jscoverage['plugins/pagebreak.js'][108]++; + range.deleteContents(); + _$jscoverage['plugins/pagebreak.js'][109]++; + var start = range.startContainer; + _$jscoverage['plugins/pagebreak.js'][110]++; + while (((! domUtils.isBody(start)) && domUtils.isBlockElm(start) && domUtils.isEmptyNode(start))) { + _$jscoverage['plugins/pagebreak.js'][111]++; + range.setStartBefore(start).collapse(true); + _$jscoverage['plugins/pagebreak.js'][112]++; + domUtils.remove(start); + _$jscoverage['plugins/pagebreak.js'][113]++; + start = range.startContainer; +} + } + _$jscoverage['plugins/pagebreak.js'][117]++; + range.insertNode(hr); + _$jscoverage['plugins/pagebreak.js'][119]++; + var pN = hr.parentNode, nextNode; + _$jscoverage['plugins/pagebreak.js'][120]++; + while ((! domUtils.isBody(pN))) { + _$jscoverage['plugins/pagebreak.js'][121]++; + domUtils.breakParent(hr, pN); + _$jscoverage['plugins/pagebreak.js'][122]++; + nextNode = hr.nextSibling; + _$jscoverage['plugins/pagebreak.js'][123]++; + if ((nextNode && domUtils.isEmptyBlock(nextNode))) { + _$jscoverage['plugins/pagebreak.js'][124]++; + domUtils.remove(nextNode); + } + _$jscoverage['plugins/pagebreak.js'][126]++; + pN = hr.parentNode; +} + _$jscoverage['plugins/pagebreak.js'][128]++; + nextNode = hr.nextSibling; + _$jscoverage['plugins/pagebreak.js'][129]++; + var pre = hr.previousSibling; + _$jscoverage['plugins/pagebreak.js'][130]++; + if (isHr(pre)) { + _$jscoverage['plugins/pagebreak.js'][131]++; + domUtils.remove(pre); + } + else { + _$jscoverage['plugins/pagebreak.js'][133]++; + (pre && fillNode(pre)); + } + _$jscoverage['plugins/pagebreak.js'][136]++; + if ((! nextNode)) { + _$jscoverage['plugins/pagebreak.js'][137]++; + var p = me.document.createElement("p"); + _$jscoverage['plugins/pagebreak.js'][139]++; + hr.parentNode.appendChild(p); + _$jscoverage['plugins/pagebreak.js'][140]++; + domUtils.fillNode(me.document, p); + _$jscoverage['plugins/pagebreak.js'][141]++; + range.setStart(p, 0).collapse(true); + } + else { + _$jscoverage['plugins/pagebreak.js'][143]++; + if (isHr(nextNode)) { + _$jscoverage['plugins/pagebreak.js'][144]++; + domUtils.remove(nextNode); + } + else { + _$jscoverage['plugins/pagebreak.js'][146]++; + fillNode(nextNode); + } + _$jscoverage['plugins/pagebreak.js'][148]++; + range.setEndAfter(hr).collapse(false); + } + _$jscoverage['plugins/pagebreak.js'][151]++; + range.select(true); + } +})}; +}); diff --git a/_test/coverage/plugins/paragraph.js b/_test/coverage/plugins/paragraph.js new file mode 100644 index 000000000..33ceb78b6 --- /dev/null +++ b/_test/coverage/plugins/paragraph.js @@ -0,0 +1,290 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/paragraph.js']) { + _$jscoverage['plugins/paragraph.js'] = []; + _$jscoverage['plugins/paragraph.js'][47] = 0; + _$jscoverage['plugins/paragraph.js'][48] = 0; + _$jscoverage['plugins/paragraph.js'][53] = 0; + _$jscoverage['plugins/paragraph.js'][55] = 0; + _$jscoverage['plugins/paragraph.js'][59] = 0; + _$jscoverage['plugins/paragraph.js'][60] = 0; + _$jscoverage['plugins/paragraph.js'][64] = 0; + _$jscoverage['plugins/paragraph.js'][65] = 0; + _$jscoverage['plugins/paragraph.js'][66] = 0; + _$jscoverage['plugins/paragraph.js'][67] = 0; + _$jscoverage['plugins/paragraph.js'][68] = 0; + _$jscoverage['plugins/paragraph.js'][69] = 0; + _$jscoverage['plugins/paragraph.js'][70] = 0; + _$jscoverage['plugins/paragraph.js'][73] = 0; + _$jscoverage['plugins/paragraph.js'][75] = 0; + _$jscoverage['plugins/paragraph.js'][76] = 0; + _$jscoverage['plugins/paragraph.js'][77] = 0; + _$jscoverage['plugins/paragraph.js'][78] = 0; + _$jscoverage['plugins/paragraph.js'][79] = 0; + _$jscoverage['plugins/paragraph.js'][82] = 0; + _$jscoverage['plugins/paragraph.js'][84] = 0; + _$jscoverage['plugins/paragraph.js'][85] = 0; + _$jscoverage['plugins/paragraph.js'][89] = 0; + _$jscoverage['plugins/paragraph.js'][91] = 0; + _$jscoverage['plugins/paragraph.js'][93] = 0; + _$jscoverage['plugins/paragraph.js'][95] = 0; + _$jscoverage['plugins/paragraph.js'][96] = 0; + _$jscoverage['plugins/paragraph.js'][98] = 0; + _$jscoverage['plugins/paragraph.js'][100] = 0; + _$jscoverage['plugins/paragraph.js'][101] = 0; + _$jscoverage['plugins/paragraph.js'][102] = 0; + _$jscoverage['plugins/paragraph.js'][106] = 0; + _$jscoverage['plugins/paragraph.js'][107] = 0; + _$jscoverage['plugins/paragraph.js'][108] = 0; + _$jscoverage['plugins/paragraph.js'][109] = 0; + _$jscoverage['plugins/paragraph.js'][111] = 0; + _$jscoverage['plugins/paragraph.js'][112] = 0; + _$jscoverage['plugins/paragraph.js'][114] = 0; + _$jscoverage['plugins/paragraph.js'][118] = 0; + _$jscoverage['plugins/paragraph.js'][119] = 0; + _$jscoverage['plugins/paragraph.js'][121] = 0; + _$jscoverage['plugins/paragraph.js'][125] = 0; + _$jscoverage['plugins/paragraph.js'][127] = 0; + _$jscoverage['plugins/paragraph.js'][130] = 0; + _$jscoverage['plugins/paragraph.js'][132] = 0; + _$jscoverage['plugins/paragraph.js'][133] = 0; + _$jscoverage['plugins/paragraph.js'][135] = 0; + _$jscoverage['plugins/paragraph.js'][137] = 0; + _$jscoverage['plugins/paragraph.js'][138] = 0; + _$jscoverage['plugins/paragraph.js'][139] = 0; + _$jscoverage['plugins/paragraph.js'][141] = 0; + _$jscoverage['plugins/paragraph.js'][142] = 0; + _$jscoverage['plugins/paragraph.js'][143] = 0; + _$jscoverage['plugins/paragraph.js'][144] = 0; + _$jscoverage['plugins/paragraph.js'][146] = 0; + _$jscoverage['plugins/paragraph.js'][147] = 0; + _$jscoverage['plugins/paragraph.js'][148] = 0; + _$jscoverage['plugins/paragraph.js'][153] = 0; + _$jscoverage['plugins/paragraph.js'][154] = 0; + _$jscoverage['plugins/paragraph.js'][155] = 0; + _$jscoverage['plugins/paragraph.js'][156] = 0; + _$jscoverage['plugins/paragraph.js'][158] = 0; + _$jscoverage['plugins/paragraph.js'][160] = 0; + _$jscoverage['plugins/paragraph.js'][161] = 0; + _$jscoverage['plugins/paragraph.js'][166] = 0; + _$jscoverage['plugins/paragraph.js'][167] = 0; + _$jscoverage['plugins/paragraph.js'][168] = 0; + _$jscoverage['plugins/paragraph.js'][169] = 0; + _$jscoverage['plugins/paragraph.js'][173] = 0; + _$jscoverage['plugins/paragraph.js'][176] = 0; + _$jscoverage['plugins/paragraph.js'][179] = 0; + _$jscoverage['plugins/paragraph.js'][180] = 0; +} +_$jscoverage['plugins/paragraph.js'].source = ["/**"," * 段落样式"," * @file"," * @since 1.2.6.1"," */","/**"," * 对选区内文本添加相应标签嵌套"," * @command Paragraph"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @param {String} style 标签值为:'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'"," * @param {Object} attrs 标签的属性"," * @example"," * ```javascript"," * editor.execCommand( 'Paragraph','h1','{"," * color:'#000'"," * }' );"," * ```"," */","/**"," * 对选区内文本添加相应标签嵌套"," * @command Paragraph"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @param {String} style 标签值为:'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'"," * @param {Object} attrs 标签的属性"," * @param {String} sourceCmdName 对与customstyle特殊处理"," * @example"," * ```javascript"," * editor.execCommand( 'Paragraph','h1','{"," * color:'#000'"," * }' );"," * ```"," */","/**"," * 返回选区内节点标签名"," * @command Paragraph"," * @method queryCommandValue"," * @param { String } cmd 命令字符串"," * @return { String } 节点标签名"," * @example"," * ```javascript"," * editor.queryCommandValue( 'Paragraph' );"," * ```"," */","","UE.plugins['paragraph'] = function() {"," var me = this,"," block = domUtils.isBlockElm,"," notExchange = ['TD','LI','PRE'],",""," doParagraph = function(range,style,attrs,sourceCmdName){"," var bookmark = range.createBookmark(),"," filterFn = function( node ) {"," return node.nodeType == 1 ? node.tagName.toLowerCase() != 'br' && !domUtils.isBookmarkNode(node) : !domUtils.isWhitespace( node );"," },"," para;",""," range.enlarge( true );"," var bookmark2 = range.createBookmark(),"," current = domUtils.getNextDomNode( bookmark2.start, false, filterFn ),"," tmpRange = range.cloneRange(),"," tmpNode;"," while ( current && !(domUtils.getPosition( current, bookmark2.end ) & domUtils.POSITION_FOLLOWING) ) {"," if ( current.nodeType == 3 || !block( current ) ) {"," tmpRange.setStartBefore( current );"," while ( current && current !== bookmark2.end && !block( current ) ) {"," tmpNode = current;"," current = domUtils.getNextDomNode( current, false, null, function( node ) {"," return !block( node );"," } );"," }"," tmpRange.setEndAfter( tmpNode );"," "," para = range.document.createElement( style );"," if(attrs){"," domUtils.setAttributes(para,attrs);"," if(sourceCmdName && sourceCmdName == 'customstyle' && attrs.style){"," para.style.cssText = attrs.style;"," }"," }"," para.appendChild( tmpRange.extractContents() );"," //需要内容占位"," if(domUtils.isEmptyNode(para)){"," domUtils.fillChar(range.document,para);"," "," }",""," tmpRange.insertNode( para );",""," var parent = para.parentNode;"," //如果para上一级是一个block元素且不是body,td就删除它"," if ( block( parent ) && !domUtils.isBody( para.parentNode ) && utils.indexOf(notExchange,parent.tagName)==-1) {"," //存储dir,style"," if(!(sourceCmdName && sourceCmdName == 'customstyle')){"," parent.getAttribute('dir') && para.setAttribute('dir',parent.getAttribute('dir'));"," //trace:1070"," parent.style.cssText && (para.style.cssText = parent.style.cssText + ';' + para.style.cssText);"," //trace:1030"," parent.style.textAlign && !para.style.textAlign && (para.style.textAlign = parent.style.textAlign);"," parent.style.textIndent && !para.style.textIndent && (para.style.textIndent = parent.style.textIndent);"," parent.style.padding && !para.style.padding && (para.style.padding = parent.style.padding);"," }",""," //trace:1706 选择的就是h1-6要删除"," if(attrs && /h\\d/i.test(parent.tagName) && !/h\\d/i.test(para.tagName) ){"," domUtils.setAttributes(parent,attrs);"," if(sourceCmdName && sourceCmdName == 'customstyle' && attrs.style){"," parent.style.cssText = attrs.style;"," }"," domUtils.remove(para,true);"," para = parent;"," }else{"," domUtils.remove( para.parentNode, true );"," }",""," }"," if( utils.indexOf(notExchange,parent.tagName)!=-1){"," current = parent;"," }else{"," current = para;"," }","",""," current = domUtils.getNextDomNode( current, false, filterFn );"," } else {"," current = domUtils.getNextDomNode( current, true, filterFn );"," }"," }"," return range.moveToBookmark( bookmark2 ).moveToBookmark( bookmark );"," };"," me.setOpt('paragraph',{'p':'', 'h1':'', 'h2':'', 'h3':'', 'h4':'', 'h5':'', 'h6':''});"," me.commands['paragraph'] = {"," execCommand : function( cmdName, style,attrs,sourceCmdName ) {"," var range = this.selection.getRange();"," //闭合时单独处理"," if(range.collapsed){"," var txt = this.document.createTextNode('p');"," range.insertNode(txt);"," //去掉冗余的fillchar"," if(browser.ie){"," var node = txt.previousSibling;"," if(node && domUtils.isWhitespace(node)){"," domUtils.remove(node);"," }"," node = txt.nextSibling;"," if(node && domUtils.isWhitespace(node)){"," domUtils.remove(node);"," }"," }",""," }"," range = doParagraph(range,style,attrs,sourceCmdName);"," if(txt){"," range.setStartBefore(txt).collapse(true);"," pN = txt.parentNode;",""," domUtils.remove(txt);",""," if(domUtils.isBlockElm(pN)&&domUtils.isEmptyNode(pN)){"," domUtils.fillNode(this.document,pN);"," }",""," }",""," if(browser.gecko && range.collapsed && range.startContainer.nodeType == 1){"," var child = range.startContainer.childNodes[range.startOffset];"," if(child && child.nodeType == 1 && child.tagName.toLowerCase() == style){"," range.setStart(child,0).collapse(true);"," }"," }"," //trace:1097 原来有true,原因忘了,但去了就不能清除多余的占位符了"," range.select();","",""," return true;"," },"," queryCommandValue : function() {"," var node = domUtils.filterNodeList(this.selection.getStartElementPath(),'p h1 h2 h3 h4 h5 h6');"," return node ? node.tagName.toLowerCase() : '';"," }"," };","};"]; +_$jscoverage['plugins/paragraph.js'][47]++; +UE.plugins.paragraph = (function () { + _$jscoverage['plugins/paragraph.js'][48]++; + var me = this, block = domUtils.isBlockElm, notExchange = ["TD", "LI", "PRE"], doParagraph = (function (range, style, attrs, sourceCmdName) { + _$jscoverage['plugins/paragraph.js'][53]++; + var bookmark = range.createBookmark(), filterFn = (function (node) { + _$jscoverage['plugins/paragraph.js'][55]++; + return ((node.nodeType == 1)? ((node.tagName.toLowerCase() != "br") && (! domUtils.isBookmarkNode(node))): (! domUtils.isWhitespace(node))); +}), para; + _$jscoverage['plugins/paragraph.js'][59]++; + range.enlarge(true); + _$jscoverage['plugins/paragraph.js'][60]++; + var bookmark2 = range.createBookmark(), current = domUtils.getNextDomNode(bookmark2.start, false, filterFn), tmpRange = range.cloneRange(), tmpNode; + _$jscoverage['plugins/paragraph.js'][64]++; + while ((current && (! (domUtils.getPosition(current, bookmark2.end) & domUtils.POSITION_FOLLOWING)))) { + _$jscoverage['plugins/paragraph.js'][65]++; + if (((current.nodeType == 3) || (! block(current)))) { + _$jscoverage['plugins/paragraph.js'][66]++; + tmpRange.setStartBefore(current); + _$jscoverage['plugins/paragraph.js'][67]++; + while ((current && (current !== bookmark2.end) && (! block(current)))) { + _$jscoverage['plugins/paragraph.js'][68]++; + tmpNode = current; + _$jscoverage['plugins/paragraph.js'][69]++; + current = domUtils.getNextDomNode(current, false, null, (function (node) { + _$jscoverage['plugins/paragraph.js'][70]++; + return (! block(node)); +})); +} + _$jscoverage['plugins/paragraph.js'][73]++; + tmpRange.setEndAfter(tmpNode); + _$jscoverage['plugins/paragraph.js'][75]++; + para = range.document.createElement(style); + _$jscoverage['plugins/paragraph.js'][76]++; + if (attrs) { + _$jscoverage['plugins/paragraph.js'][77]++; + domUtils.setAttributes(para, attrs); + _$jscoverage['plugins/paragraph.js'][78]++; + if ((sourceCmdName && (sourceCmdName == "customstyle") && attrs.style)) { + _$jscoverage['plugins/paragraph.js'][79]++; + para.style.cssText = attrs.style; + } + } + _$jscoverage['plugins/paragraph.js'][82]++; + para.appendChild(tmpRange.extractContents()); + _$jscoverage['plugins/paragraph.js'][84]++; + if (domUtils.isEmptyNode(para)) { + _$jscoverage['plugins/paragraph.js'][85]++; + domUtils.fillChar(range.document, para); + } + _$jscoverage['plugins/paragraph.js'][89]++; + tmpRange.insertNode(para); + _$jscoverage['plugins/paragraph.js'][91]++; + var parent = para.parentNode; + _$jscoverage['plugins/paragraph.js'][93]++; + if ((block(parent) && (! domUtils.isBody(para.parentNode)) && (utils.indexOf(notExchange, parent.tagName) == -1))) { + _$jscoverage['plugins/paragraph.js'][95]++; + if ((! (sourceCmdName && (sourceCmdName == "customstyle")))) { + _$jscoverage['plugins/paragraph.js'][96]++; + (parent.getAttribute("dir") && para.setAttribute("dir", parent.getAttribute("dir"))); + _$jscoverage['plugins/paragraph.js'][98]++; + (parent.style.cssText && (para.style.cssText = (parent.style.cssText + ";" + para.style.cssText))); + _$jscoverage['plugins/paragraph.js'][100]++; + (parent.style.textAlign && (! para.style.textAlign) && (para.style.textAlign = parent.style.textAlign)); + _$jscoverage['plugins/paragraph.js'][101]++; + (parent.style.textIndent && (! para.style.textIndent) && (para.style.textIndent = parent.style.textIndent)); + _$jscoverage['plugins/paragraph.js'][102]++; + (parent.style.padding && (! para.style.padding) && (para.style.padding = parent.style.padding)); + } + _$jscoverage['plugins/paragraph.js'][106]++; + if ((attrs && /h\d/i.test(parent.tagName) && (! /h\d/i.test(para.tagName)))) { + _$jscoverage['plugins/paragraph.js'][107]++; + domUtils.setAttributes(parent, attrs); + _$jscoverage['plugins/paragraph.js'][108]++; + if ((sourceCmdName && (sourceCmdName == "customstyle") && attrs.style)) { + _$jscoverage['plugins/paragraph.js'][109]++; + parent.style.cssText = attrs.style; + } + _$jscoverage['plugins/paragraph.js'][111]++; + domUtils.remove(para, true); + _$jscoverage['plugins/paragraph.js'][112]++; + para = parent; + } + else { + _$jscoverage['plugins/paragraph.js'][114]++; + domUtils.remove(para.parentNode, true); + } + } + _$jscoverage['plugins/paragraph.js'][118]++; + if ((utils.indexOf(notExchange, parent.tagName) != -1)) { + _$jscoverage['plugins/paragraph.js'][119]++; + current = parent; + } + else { + _$jscoverage['plugins/paragraph.js'][121]++; + current = para; + } + _$jscoverage['plugins/paragraph.js'][125]++; + current = domUtils.getNextDomNode(current, false, filterFn); + } + else { + _$jscoverage['plugins/paragraph.js'][127]++; + current = domUtils.getNextDomNode(current, true, filterFn); + } +} + _$jscoverage['plugins/paragraph.js'][130]++; + return range.moveToBookmark(bookmark2).moveToBookmark(bookmark); +}); + _$jscoverage['plugins/paragraph.js'][132]++; + me.setOpt("paragraph", {"p": "", "h1": "", "h2": "", "h3": "", "h4": "", "h5": "", "h6": ""}); + _$jscoverage['plugins/paragraph.js'][133]++; + me.commands.paragraph = {execCommand: (function (cmdName, style, attrs, sourceCmdName) { + _$jscoverage['plugins/paragraph.js'][135]++; + var range = this.selection.getRange(); + _$jscoverage['plugins/paragraph.js'][137]++; + if (range.collapsed) { + _$jscoverage['plugins/paragraph.js'][138]++; + var txt = this.document.createTextNode("p"); + _$jscoverage['plugins/paragraph.js'][139]++; + range.insertNode(txt); + _$jscoverage['plugins/paragraph.js'][141]++; + if (browser.ie) { + _$jscoverage['plugins/paragraph.js'][142]++; + var node = txt.previousSibling; + _$jscoverage['plugins/paragraph.js'][143]++; + if ((node && domUtils.isWhitespace(node))) { + _$jscoverage['plugins/paragraph.js'][144]++; + domUtils.remove(node); + } + _$jscoverage['plugins/paragraph.js'][146]++; + node = txt.nextSibling; + _$jscoverage['plugins/paragraph.js'][147]++; + if ((node && domUtils.isWhitespace(node))) { + _$jscoverage['plugins/paragraph.js'][148]++; + domUtils.remove(node); + } + } + } + _$jscoverage['plugins/paragraph.js'][153]++; + range = doParagraph(range, style, attrs, sourceCmdName); + _$jscoverage['plugins/paragraph.js'][154]++; + if (txt) { + _$jscoverage['plugins/paragraph.js'][155]++; + range.setStartBefore(txt).collapse(true); + _$jscoverage['plugins/paragraph.js'][156]++; + pN = txt.parentNode; + _$jscoverage['plugins/paragraph.js'][158]++; + domUtils.remove(txt); + _$jscoverage['plugins/paragraph.js'][160]++; + if ((domUtils.isBlockElm(pN) && domUtils.isEmptyNode(pN))) { + _$jscoverage['plugins/paragraph.js'][161]++; + domUtils.fillNode(this.document, pN); + } + } + _$jscoverage['plugins/paragraph.js'][166]++; + if ((browser.gecko && range.collapsed && (range.startContainer.nodeType == 1))) { + _$jscoverage['plugins/paragraph.js'][167]++; + var child = range.startContainer.childNodes[range.startOffset]; + _$jscoverage['plugins/paragraph.js'][168]++; + if ((child && (child.nodeType == 1) && (child.tagName.toLowerCase() == style))) { + _$jscoverage['plugins/paragraph.js'][169]++; + range.setStart(child, 0).collapse(true); + } + } + _$jscoverage['plugins/paragraph.js'][173]++; + range.select(); + _$jscoverage['plugins/paragraph.js'][176]++; + return true; +}), queryCommandValue: (function () { + _$jscoverage['plugins/paragraph.js'][179]++; + var node = domUtils.filterNodeList(this.selection.getStartElementPath(), "p h1 h2 h3 h4 h5 h6"); + _$jscoverage['plugins/paragraph.js'][180]++; + return (node? node.tagName.toLowerCase(): ""); +})}; +}); diff --git a/_test/coverage/plugins/paste.js b/_test/coverage/plugins/paste.js new file mode 100644 index 000000000..df0dde7f3 --- /dev/null +++ b/_test/coverage/plugins/paste.js @@ -0,0 +1,574 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/paste.js']) { + _$jscoverage['plugins/paste.js'] = []; + _$jscoverage['plugins/paste.js'][12] = 0; + _$jscoverage['plugins/paste.js'][13] = 0; + _$jscoverage['plugins/paste.js'][14] = 0; + _$jscoverage['plugins/paste.js'][15] = 0; + _$jscoverage['plugins/paste.js'][16] = 0; + _$jscoverage['plugins/paste.js'][18] = 0; + _$jscoverage['plugins/paste.js'][22] = 0; + _$jscoverage['plugins/paste.js'][24] = 0; + _$jscoverage['plugins/paste.js'][25] = 0; + _$jscoverage['plugins/paste.js'][28] = 0; + _$jscoverage['plugins/paste.js'][29] = 0; + _$jscoverage['plugins/paste.js'][33] = 0; + _$jscoverage['plugins/paste.js'][35] = 0; + _$jscoverage['plugins/paste.js'][36] = 0; + _$jscoverage['plugins/paste.js'][37] = 0; + _$jscoverage['plugins/paste.js'][38] = 0; + _$jscoverage['plugins/paste.js'][39] = 0; + _$jscoverage['plugins/paste.js'][41] = 0; + _$jscoverage['plugins/paste.js'][42] = 0; + _$jscoverage['plugins/paste.js'][46] = 0; + _$jscoverage['plugins/paste.js'][47] = 0; + _$jscoverage['plugins/paste.js'][50] = 0; + _$jscoverage['plugins/paste.js'][51] = 0; + _$jscoverage['plugins/paste.js'][55] = 0; + _$jscoverage['plugins/paste.js'][57] = 0; + _$jscoverage['plugins/paste.js'][59] = 0; + _$jscoverage['plugins/paste.js'][60] = 0; + _$jscoverage['plugins/paste.js'][61] = 0; + _$jscoverage['plugins/paste.js'][63] = 0; + _$jscoverage['plugins/paste.js'][64] = 0; + _$jscoverage['plugins/paste.js'][65] = 0; + _$jscoverage['plugins/paste.js'][66] = 0; + _$jscoverage['plugins/paste.js'][70] = 0; + _$jscoverage['plugins/paste.js'][72] = 0; + _$jscoverage['plugins/paste.js'][73] = 0; + _$jscoverage['plugins/paste.js'][74] = 0; + _$jscoverage['plugins/paste.js'][75] = 0; + _$jscoverage['plugins/paste.js'][76] = 0; + _$jscoverage['plugins/paste.js'][77] = 0; + _$jscoverage['plugins/paste.js'][80] = 0; + _$jscoverage['plugins/paste.js'][81] = 0; + _$jscoverage['plugins/paste.js'][82] = 0; + _$jscoverage['plugins/paste.js'][83] = 0; + _$jscoverage['plugins/paste.js'][84] = 0; + _$jscoverage['plugins/paste.js'][85] = 0; + _$jscoverage['plugins/paste.js'][87] = 0; + _$jscoverage['plugins/paste.js'][90] = 0; + _$jscoverage['plugins/paste.js'][91] = 0; + _$jscoverage['plugins/paste.js'][92] = 0; + _$jscoverage['plugins/paste.js'][95] = 0; + _$jscoverage['plugins/paste.js'][96] = 0; + _$jscoverage['plugins/paste.js'][97] = 0; + _$jscoverage['plugins/paste.js'][98] = 0; + _$jscoverage['plugins/paste.js'][102] = 0; + _$jscoverage['plugins/paste.js'][103] = 0; + _$jscoverage['plugins/paste.js'][104] = 0; + _$jscoverage['plugins/paste.js'][105] = 0; + _$jscoverage['plugins/paste.js'][108] = 0; + _$jscoverage['plugins/paste.js'][109] = 0; + _$jscoverage['plugins/paste.js'][110] = 0; + _$jscoverage['plugins/paste.js'][111] = 0; + _$jscoverage['plugins/paste.js'][116] = 0; + _$jscoverage['plugins/paste.js'][119] = 0; + _$jscoverage['plugins/paste.js'][121] = 0; + _$jscoverage['plugins/paste.js'][123] = 0; + _$jscoverage['plugins/paste.js'][124] = 0; + _$jscoverage['plugins/paste.js'][127] = 0; + _$jscoverage['plugins/paste.js'][129] = 0; + _$jscoverage['plugins/paste.js'][130] = 0; + _$jscoverage['plugins/paste.js'][131] = 0; + _$jscoverage['plugins/paste.js'][132] = 0; + _$jscoverage['plugins/paste.js'][134] = 0; + _$jscoverage['plugins/paste.js'][135] = 0; + _$jscoverage['plugins/paste.js'][136] = 0; + _$jscoverage['plugins/paste.js'][140] = 0; + _$jscoverage['plugins/paste.js'][141] = 0; + _$jscoverage['plugins/paste.js'][143] = 0; + _$jscoverage['plugins/paste.js'][144] = 0; + _$jscoverage['plugins/paste.js'][146] = 0; + _$jscoverage['plugins/paste.js'][148] = 0; + _$jscoverage['plugins/paste.js'][149] = 0; + _$jscoverage['plugins/paste.js'][152] = 0; + _$jscoverage['plugins/paste.js'][153] = 0; + _$jscoverage['plugins/paste.js'][155] = 0; + _$jscoverage['plugins/paste.js'][157] = 0; + _$jscoverage['plugins/paste.js'][158] = 0; + _$jscoverage['plugins/paste.js'][160] = 0; + _$jscoverage['plugins/paste.js'][164] = 0; + _$jscoverage['plugins/paste.js'][166] = 0; + _$jscoverage['plugins/paste.js'][167] = 0; + _$jscoverage['plugins/paste.js'][168] = 0; + _$jscoverage['plugins/paste.js'][170] = 0; + _$jscoverage['plugins/paste.js'][172] = 0; + _$jscoverage['plugins/paste.js'][174] = 0; + _$jscoverage['plugins/paste.js'][175] = 0; + _$jscoverage['plugins/paste.js'][176] = 0; + _$jscoverage['plugins/paste.js'][177] = 0; + _$jscoverage['plugins/paste.js'][178] = 0; + _$jscoverage['plugins/paste.js'][179] = 0; + _$jscoverage['plugins/paste.js'][181] = 0; + _$jscoverage['plugins/paste.js'][183] = 0; + _$jscoverage['plugins/paste.js'][184] = 0; + _$jscoverage['plugins/paste.js'][187] = 0; + _$jscoverage['plugins/paste.js'][188] = 0; + _$jscoverage['plugins/paste.js'][190] = 0; + _$jscoverage['plugins/paste.js'][194] = 0; + _$jscoverage['plugins/paste.js'][196] = 0; + _$jscoverage['plugins/paste.js'][197] = 0; + _$jscoverage['plugins/paste.js'][198] = 0; + _$jscoverage['plugins/paste.js'][199] = 0; + _$jscoverage['plugins/paste.js'][200] = 0; + _$jscoverage['plugins/paste.js'][201] = 0; + _$jscoverage['plugins/paste.js'][203] = 0; + _$jscoverage['plugins/paste.js'][204] = 0; + _$jscoverage['plugins/paste.js'][205] = 0; + _$jscoverage['plugins/paste.js'][208] = 0; + _$jscoverage['plugins/paste.js'][209] = 0; + _$jscoverage['plugins/paste.js'][211] = 0; + _$jscoverage['plugins/paste.js'][218] = 0; + _$jscoverage['plugins/paste.js'][219] = 0; + _$jscoverage['plugins/paste.js'][220] = 0; + _$jscoverage['plugins/paste.js'][221] = 0; + _$jscoverage['plugins/paste.js'][222] = 0; + _$jscoverage['plugins/paste.js'][223] = 0; + _$jscoverage['plugins/paste.js'][224] = 0; + _$jscoverage['plugins/paste.js'][225] = 0; + _$jscoverage['plugins/paste.js'][226] = 0; + _$jscoverage['plugins/paste.js'][228] = 0; + _$jscoverage['plugins/paste.js'][229] = 0; + _$jscoverage['plugins/paste.js'][234] = 0; + _$jscoverage['plugins/paste.js'][236] = 0; + _$jscoverage['plugins/paste.js'][238] = 0; + _$jscoverage['plugins/paste.js'][242] = 0; + _$jscoverage['plugins/paste.js'][245] = 0; + _$jscoverage['plugins/paste.js'][249] = 0; + _$jscoverage['plugins/paste.js'][250] = 0; + _$jscoverage['plugins/paste.js'][252] = 0; + _$jscoverage['plugins/paste.js'][253] = 0; + _$jscoverage['plugins/paste.js'][254] = 0; + _$jscoverage['plugins/paste.js'][255] = 0; + _$jscoverage['plugins/paste.js'][258] = 0; + _$jscoverage['plugins/paste.js'][260] = 0; + _$jscoverage['plugins/paste.js'][261] = 0; + _$jscoverage['plugins/paste.js'][264] = 0; + _$jscoverage['plugins/paste.js'][265] = 0; + _$jscoverage['plugins/paste.js'][266] = 0; + _$jscoverage['plugins/paste.js'][267] = 0; + _$jscoverage['plugins/paste.js'][268] = 0; + _$jscoverage['plugins/paste.js'][273] = 0; + _$jscoverage['plugins/paste.js'][274] = 0; + _$jscoverage['plugins/paste.js'][275] = 0; + _$jscoverage['plugins/paste.js'][277] = 0; + _$jscoverage['plugins/paste.js'][278] = 0; +} +_$jscoverage['plugins/paste.js'].source = ["///import core","///import plugins/inserthtml.js","///import plugins/undo.js","///import plugins/serialize.js","///commands 粘贴","///commandsName PastePlain","///commandsTitle 纯文本粘贴模式","/*"," ** @description 粘贴"," * @author zhanyi"," */","UE.plugins['paste'] = function () {"," function getClipboardData(callback) {"," var doc = this.document;"," if (doc.getElementById('baidu_pastebin')) {"," return;"," }"," var range = this.selection.getRange(),"," bk = range.createBookmark(),"," //创建剪贴的容器div"," pastebin = doc.createElement('div');"," pastebin.id = 'baidu_pastebin';"," // Safari 要求div必须有内容,才能粘贴内容进来"," browser.webkit && pastebin.appendChild(doc.createTextNode(domUtils.fillChar + domUtils.fillChar));"," doc.body.appendChild(pastebin);"," //trace:717 隐藏的span不能得到top"," //bk.start.innerHTML = '&nbsp;';"," bk.start.style.display = '';"," pastebin.style.cssText = \"position:absolute;width:1px;height:1px;overflow:hidden;left:-1000px;white-space:nowrap;top:\" +"," //要在现在光标平行的位置加入,否则会出现跳动的问题"," domUtils.getXY(bk.start).y + 'px';",""," range.selectNodeContents(pastebin).select(true);",""," setTimeout(function () {"," if (browser.webkit) {"," for (var i = 0, pastebins = doc.querySelectorAll('#baidu_pastebin'), pi; pi = pastebins[i++];) {"," if (domUtils.isEmptyNode(pi)) {"," domUtils.remove(pi);"," } else {"," pastebin = pi;"," break;"," }"," }"," }"," try {"," pastebin.parentNode.removeChild(pastebin);"," } catch (e) {"," }"," range.moveToBookmark(bk).select(true);"," callback(pastebin);"," }, 0);"," }",""," var me = this;",""," var txtContent, htmlContent, address;",""," function filter(div) {"," var html;"," if (div.firstChild) {"," //去掉cut中添加的边界值"," var nodes = domUtils.getElementsByTagName(div, 'span');"," for (var i = 0, ni; ni = nodes[i++];) {"," if (ni.id == '_baidu_cut_start' || ni.id == '_baidu_cut_end') {"," domUtils.remove(ni);"," }"," }",""," if (browser.webkit) {",""," var brs = div.querySelectorAll('div br');"," for (var i = 0, bi; bi = brs[i++];) {"," var pN = bi.parentNode;"," if (pN.tagName == 'DIV' && pN.childNodes.length == 1) {"," pN.innerHTML = '<p><br/></p>';"," domUtils.remove(pN);"," }"," }"," var divs = div.querySelectorAll('#baidu_pastebin');"," for (var i = 0, di; di = divs[i++];) {"," var tmpP = me.document.createElement('p');"," di.parentNode.insertBefore(tmpP, di);"," while (di.firstChild) {"," tmpP.appendChild(di.firstChild);"," }"," domUtils.remove(di);"," }",""," var metas = div.querySelectorAll('meta');"," for (var i = 0, ci; ci = metas[i++];) {"," domUtils.remove(ci);"," }",""," var brs = div.querySelectorAll('br');"," for (i = 0; ci = brs[i++];) {"," if (/^apple-/i.test(ci.className)) {"," domUtils.remove(ci);"," }"," }"," }"," if (browser.gecko) {"," var dirtyNodes = div.querySelectorAll('[_moz_dirty]');"," for (i = 0; ci = dirtyNodes[i++];) {"," ci.removeAttribute('_moz_dirty');"," }"," }"," if (!browser.ie) {"," var spans = div.querySelectorAll('span.Apple-style-span');"," for (var i = 0, ci; ci = spans[i++];) {"," domUtils.remove(ci, true);"," }"," }",""," //ie下使用innerHTML会产生多余的\\r\\n字符,也会产生&nbsp;这里过滤掉"," html = div.innerHTML;//.replace(/>(?:(\\s|&nbsp;)*?)</g,'><');",""," //过滤word粘贴过来的冗余属性"," html = UE.filterWord(html);"," //取消了忽略空白的第二个参数,粘贴过来的有些是有空白的,会被套上相关的标签"," var root = UE.htmlparser(html);"," //如果给了过滤规则就先进行过滤"," if (me.options.filterRules) {"," UE.filterNode(root, me.options.filterRules);"," }"," //执行默认的处理"," me.filterInputRule(root);"," //针对chrome的处理"," if (browser.webkit) {"," var br = root.lastChild();"," if (br && br.type == 'element' && br.tagName == 'br') {"," root.removeChild(br)"," }"," utils.each(me.body.querySelectorAll('div'), function (node) {"," if (domUtils.isEmptyBlock(node)) {"," domUtils.remove(node)"," }"," })"," }"," html = {'html': root.toHtml()};"," me.fireEvent('beforepaste', html, root);"," //抢了默认的粘贴,那后边的内容就不执行了,比如表格粘贴"," if(!html.html){"," return;"," }"," root = UE.htmlparser(html.html,true);"," //如果开启了纯文本模式"," if (me.queryCommandState('pasteplain') === 1) {"," me.execCommand('insertHtml', UE.filterNode(root, me.options.filterTxtRules).toHtml(), true);"," } else {"," //文本模式"," UE.filterNode(root, me.options.filterTxtRules);"," txtContent = root.toHtml();"," //完全模式"," htmlContent = html.html;",""," address = me.selection.getRange().createAddress(true);"," me.execCommand('insertHtml', htmlContent, true);"," }"," me.fireEvent(\"afterpaste\", html);"," }"," }",""," me.addListener('pasteTransfer', function (cmd, plainType) {",""," if (address && txtContent && htmlContent && txtContent != htmlContent) {"," var range = me.selection.getRange();"," range.moveToAddress(address, true);",""," if (!range.collapsed) {",""," while (!domUtils.isBody(range.startContainer)"," ) {"," var start = range.startContainer;"," if(start.nodeType == 1){"," start = start.childNodes[range.startOffset];"," if(!start){"," range.setStartBefore(range.startContainer);"," continue;"," }"," var pre = start.previousSibling;",""," if(pre && pre.nodeType == 3 && new RegExp('^[\\n\\r\\t '+domUtils.fillChar+']*$').test(pre.nodeValue)){"," range.setStartBefore(pre)"," }"," }"," if(range.startOffset == 0){"," range.setStartBefore(range.startContainer);"," }else{"," break;"," }",""," }"," while (!domUtils.isBody(range.endContainer)"," ) {"," var end = range.endContainer;"," if(end.nodeType == 1){"," end = end.childNodes[range.endOffset];"," if(!end){"," range.setEndAfter(range.endContainer);"," continue;"," }"," var next = end.nextSibling;"," if(next && next.nodeType == 3 && new RegExp('^[\\n\\r\\t'+domUtils.fillChar+']*$').test(next.nodeValue)){"," range.setEndAfter(next)"," }"," }"," if(range.endOffset == range.endContainer[range.endContainer.nodeType == 3 ? 'nodeValue' : 'childNodes'].length){"," range.setEndAfter(range.endContainer);"," }else{"," break;"," }",""," }",""," }",""," range.deleteContents();"," range.select(true);"," me.__hasEnterExecCommand = true;"," var html = htmlContent;"," if (plainType === 2) {"," html = html.replace(/<(\\/?)([\\w\\-]+)([^>]*)>/gi, function (a, b, tagName, attrs) {"," tagName = tagName.toLowerCase();"," if ({img: 1}[tagName]) {"," return a;"," }"," attrs = attrs.replace(/([\\w\\-]*?)\\s*=\\s*((\"([^\"]*)\")|('([^']*)')|([^\\s>]+))/gi, function (str, atr, val) {"," if ({"," 'src': 1,"," 'href': 1,"," 'name': 1"," }[atr.toLowerCase()]) {"," return atr + '=' + val + ' '"," }"," return ''"," });"," if ({"," 'span': 1,"," 'div': 1"," }[tagName]) {"," return ''"," } else {",""," return '<' + b + tagName + ' ' + utils.trim(attrs) + '>'"," }",""," });"," } else if (plainType) {"," html = txtContent;"," }"," me.execCommand('inserthtml', html, true);"," me.__hasEnterExecCommand = false;"," var rng = me.selection.getRange();"," while (!domUtils.isBody(rng.startContainer) && !rng.startOffset &&"," rng.startContainer[rng.startContainer.nodeType == 3 ? 'nodeValue' : 'childNodes'].length"," ) {"," rng.setStartBefore(rng.startContainer);"," }"," var tmpAddress = rng.createAddress(true);"," address.endAddress = tmpAddress.startAddress;"," }"," });"," me.addListener('ready', function () {"," domUtils.on(me.body, 'cut', function () {"," var range = me.selection.getRange();"," if (!range.collapsed && me.undoManger) {"," me.undoManger.save();"," }"," });",""," //ie下beforepaste在点击右键时也会触发,所以用监控键盘才处理"," domUtils.on(me.body, browser.ie || browser.opera ? 'keydown' : 'paste', function (e) {"," if ((browser.ie || browser.opera) && ((!e.ctrlKey && !e.metaKey) || e.keyCode != '86')) {"," return;"," }"," getClipboardData.call(me, function (div) {"," filter(div);"," });"," });",""," });","};",""]; +_$jscoverage['plugins/paste.js'][12]++; +UE.plugins.paste = (function () { + _$jscoverage['plugins/paste.js'][13]++; + function getClipboardData(callback) { + _$jscoverage['plugins/paste.js'][14]++; + var doc = this.document; + _$jscoverage['plugins/paste.js'][15]++; + if (doc.getElementById("baidu_pastebin")) { + _$jscoverage['plugins/paste.js'][16]++; + return; + } + _$jscoverage['plugins/paste.js'][18]++; + var range = this.selection.getRange(), bk = range.createBookmark(), pastebin = doc.createElement("div"); + _$jscoverage['plugins/paste.js'][22]++; + pastebin.id = "baidu_pastebin"; + _$jscoverage['plugins/paste.js'][24]++; + (browser.webkit && pastebin.appendChild(doc.createTextNode((domUtils.fillChar + domUtils.fillChar)))); + _$jscoverage['plugins/paste.js'][25]++; + doc.body.appendChild(pastebin); + _$jscoverage['plugins/paste.js'][28]++; + bk.start.style.display = ""; + _$jscoverage['plugins/paste.js'][29]++; + pastebin.style.cssText = ("position:absolute;width:1px;height:1px;overflow:hidden;left:-1000px;white-space:nowrap;top:" + domUtils.getXY(bk.start).y + "px"); + _$jscoverage['plugins/paste.js'][33]++; + range.selectNodeContents(pastebin).select(true); + _$jscoverage['plugins/paste.js'][35]++; + setTimeout((function () { + _$jscoverage['plugins/paste.js'][36]++; + if (browser.webkit) { + _$jscoverage['plugins/paste.js'][37]++; + for (var i = 0, pastebins = doc.querySelectorAll("#baidu_pastebin"), pi; (pi = pastebins[(i++)]);) { + _$jscoverage['plugins/paste.js'][38]++; + if (domUtils.isEmptyNode(pi)) { + _$jscoverage['plugins/paste.js'][39]++; + domUtils.remove(pi); + } + else { + _$jscoverage['plugins/paste.js'][41]++; + pastebin = pi; + _$jscoverage['plugins/paste.js'][42]++; + break; + } +} + } + _$jscoverage['plugins/paste.js'][46]++; + try { + _$jscoverage['plugins/paste.js'][47]++; + pastebin.parentNode.removeChild(pastebin); + } + catch (e) { + } + _$jscoverage['plugins/paste.js'][50]++; + range.moveToBookmark(bk).select(true); + _$jscoverage['plugins/paste.js'][51]++; + callback(pastebin); +}), 0); +} + _$jscoverage['plugins/paste.js'][55]++; + var me = this; + _$jscoverage['plugins/paste.js'][57]++; + var txtContent, htmlContent, address; + _$jscoverage['plugins/paste.js'][59]++; + function filter(div) { + _$jscoverage['plugins/paste.js'][60]++; + var html; + _$jscoverage['plugins/paste.js'][61]++; + if (div.firstChild) { + _$jscoverage['plugins/paste.js'][63]++; + var nodes = domUtils.getElementsByTagName(div, "span"); + _$jscoverage['plugins/paste.js'][64]++; + for (var i = 0, ni; (ni = nodes[(i++)]);) { + _$jscoverage['plugins/paste.js'][65]++; + if (((ni.id == "_baidu_cut_start") || (ni.id == "_baidu_cut_end"))) { + _$jscoverage['plugins/paste.js'][66]++; + domUtils.remove(ni); + } +} + _$jscoverage['plugins/paste.js'][70]++; + if (browser.webkit) { + _$jscoverage['plugins/paste.js'][72]++; + var brs = div.querySelectorAll("div br"); + _$jscoverage['plugins/paste.js'][73]++; + for (var i = 0, bi; (bi = brs[(i++)]);) { + _$jscoverage['plugins/paste.js'][74]++; + var pN = bi.parentNode; + _$jscoverage['plugins/paste.js'][75]++; + if (((pN.tagName == "DIV") && (pN.childNodes.length == 1))) { + _$jscoverage['plugins/paste.js'][76]++; + pN.innerHTML = "


"; + _$jscoverage['plugins/paste.js'][77]++; + domUtils.remove(pN); + } +} + _$jscoverage['plugins/paste.js'][80]++; + var divs = div.querySelectorAll("#baidu_pastebin"); + _$jscoverage['plugins/paste.js'][81]++; + for (var i = 0, di; (di = divs[(i++)]);) { + _$jscoverage['plugins/paste.js'][82]++; + var tmpP = me.document.createElement("p"); + _$jscoverage['plugins/paste.js'][83]++; + di.parentNode.insertBefore(tmpP, di); + _$jscoverage['plugins/paste.js'][84]++; + while (di.firstChild) { + _$jscoverage['plugins/paste.js'][85]++; + tmpP.appendChild(di.firstChild); +} + _$jscoverage['plugins/paste.js'][87]++; + domUtils.remove(di); +} + _$jscoverage['plugins/paste.js'][90]++; + var metas = div.querySelectorAll("meta"); + _$jscoverage['plugins/paste.js'][91]++; + for (var i = 0, ci; (ci = metas[(i++)]);) { + _$jscoverage['plugins/paste.js'][92]++; + domUtils.remove(ci); +} + _$jscoverage['plugins/paste.js'][95]++; + var brs = div.querySelectorAll("br"); + _$jscoverage['plugins/paste.js'][96]++; + for (i = 0; (ci = brs[(i++)]);) { + _$jscoverage['plugins/paste.js'][97]++; + if (/^apple-/i.test(ci.className)) { + _$jscoverage['plugins/paste.js'][98]++; + domUtils.remove(ci); + } +} + } + _$jscoverage['plugins/paste.js'][102]++; + if (browser.gecko) { + _$jscoverage['plugins/paste.js'][103]++; + var dirtyNodes = div.querySelectorAll("[_moz_dirty]"); + _$jscoverage['plugins/paste.js'][104]++; + for (i = 0; (ci = dirtyNodes[(i++)]);) { + _$jscoverage['plugins/paste.js'][105]++; + ci.removeAttribute("_moz_dirty"); +} + } + _$jscoverage['plugins/paste.js'][108]++; + if ((! browser.ie)) { + _$jscoverage['plugins/paste.js'][109]++; + var spans = div.querySelectorAll("span.Apple-style-span"); + _$jscoverage['plugins/paste.js'][110]++; + for (var i = 0, ci = ci; (ci = spans[(i++)]);) { + _$jscoverage['plugins/paste.js'][111]++; + domUtils.remove(ci, true); +} + } + _$jscoverage['plugins/paste.js'][116]++; + html = div.innerHTML; + _$jscoverage['plugins/paste.js'][119]++; + html = UE.filterWord(html); + _$jscoverage['plugins/paste.js'][121]++; + var root = UE.htmlparser(html); + _$jscoverage['plugins/paste.js'][123]++; + if (me.options.filterRules) { + _$jscoverage['plugins/paste.js'][124]++; + UE.filterNode(root, me.options.filterRules); + } + _$jscoverage['plugins/paste.js'][127]++; + me.filterInputRule(root); + _$jscoverage['plugins/paste.js'][129]++; + if (browser.webkit) { + _$jscoverage['plugins/paste.js'][130]++; + var br = root.lastChild(); + _$jscoverage['plugins/paste.js'][131]++; + if ((br && (br.type == "element") && (br.tagName == "br"))) { + _$jscoverage['plugins/paste.js'][132]++; + root.removeChild(br); + } + _$jscoverage['plugins/paste.js'][134]++; + utils.each(me.body.querySelectorAll("div"), (function (node) { + _$jscoverage['plugins/paste.js'][135]++; + if (domUtils.isEmptyBlock(node)) { + _$jscoverage['plugins/paste.js'][136]++; + domUtils.remove(node); + } +})); + } + _$jscoverage['plugins/paste.js'][140]++; + html = {"html": root.toHtml()}; + _$jscoverage['plugins/paste.js'][141]++; + me.fireEvent("beforepaste", html, root); + _$jscoverage['plugins/paste.js'][143]++; + if ((! html.html)) { + _$jscoverage['plugins/paste.js'][144]++; + return; + } + _$jscoverage['plugins/paste.js'][146]++; + root = UE.htmlparser(html.html, true); + _$jscoverage['plugins/paste.js'][148]++; + if ((me.queryCommandState("pasteplain") === 1)) { + _$jscoverage['plugins/paste.js'][149]++; + me.execCommand("insertHtml", UE.filterNode(root, me.options.filterTxtRules).toHtml(), true); + } + else { + _$jscoverage['plugins/paste.js'][152]++; + UE.filterNode(root, me.options.filterTxtRules); + _$jscoverage['plugins/paste.js'][153]++; + txtContent = root.toHtml(); + _$jscoverage['plugins/paste.js'][155]++; + htmlContent = html.html; + _$jscoverage['plugins/paste.js'][157]++; + address = me.selection.getRange().createAddress(true); + _$jscoverage['plugins/paste.js'][158]++; + me.execCommand("insertHtml", htmlContent, true); + } + _$jscoverage['plugins/paste.js'][160]++; + me.fireEvent("afterpaste", html); + } +} + _$jscoverage['plugins/paste.js'][164]++; + me.addListener("pasteTransfer", (function (cmd, plainType) { + _$jscoverage['plugins/paste.js'][166]++; + if ((address && txtContent && htmlContent && (txtContent != htmlContent))) { + _$jscoverage['plugins/paste.js'][167]++; + var range = me.selection.getRange(); + _$jscoverage['plugins/paste.js'][168]++; + range.moveToAddress(address, true); + _$jscoverage['plugins/paste.js'][170]++; + if ((! range.collapsed)) { + _$jscoverage['plugins/paste.js'][172]++; + while ((! domUtils.isBody(range.startContainer))) { + _$jscoverage['plugins/paste.js'][174]++; + var start = range.startContainer; + _$jscoverage['plugins/paste.js'][175]++; + if ((start.nodeType == 1)) { + _$jscoverage['plugins/paste.js'][176]++; + start = start.childNodes[range.startOffset]; + _$jscoverage['plugins/paste.js'][177]++; + if ((! start)) { + _$jscoverage['plugins/paste.js'][178]++; + range.setStartBefore(range.startContainer); + _$jscoverage['plugins/paste.js'][179]++; + continue; + } + _$jscoverage['plugins/paste.js'][181]++; + var pre = start.previousSibling; + _$jscoverage['plugins/paste.js'][183]++; + if ((pre && (pre.nodeType == 3) && new RegExp(("^[\n\r\t " + domUtils.fillChar + "]*$")).test(pre.nodeValue))) { + _$jscoverage['plugins/paste.js'][184]++; + range.setStartBefore(pre); + } + } + _$jscoverage['plugins/paste.js'][187]++; + if ((range.startOffset == 0)) { + _$jscoverage['plugins/paste.js'][188]++; + range.setStartBefore(range.startContainer); + } + else { + _$jscoverage['plugins/paste.js'][190]++; + break; + } +} + _$jscoverage['plugins/paste.js'][194]++; + while ((! domUtils.isBody(range.endContainer))) { + _$jscoverage['plugins/paste.js'][196]++; + var end = range.endContainer; + _$jscoverage['plugins/paste.js'][197]++; + if ((end.nodeType == 1)) { + _$jscoverage['plugins/paste.js'][198]++; + end = end.childNodes[range.endOffset]; + _$jscoverage['plugins/paste.js'][199]++; + if ((! end)) { + _$jscoverage['plugins/paste.js'][200]++; + range.setEndAfter(range.endContainer); + _$jscoverage['plugins/paste.js'][201]++; + continue; + } + _$jscoverage['plugins/paste.js'][203]++; + var next = end.nextSibling; + _$jscoverage['plugins/paste.js'][204]++; + if ((next && (next.nodeType == 3) && new RegExp(("^[\n\r\t" + domUtils.fillChar + "]*$")).test(next.nodeValue))) { + _$jscoverage['plugins/paste.js'][205]++; + range.setEndAfter(next); + } + } + _$jscoverage['plugins/paste.js'][208]++; + if ((range.endOffset == range.endContainer[((range.endContainer.nodeType == 3)? "nodeValue": "childNodes")].length)) { + _$jscoverage['plugins/paste.js'][209]++; + range.setEndAfter(range.endContainer); + } + else { + _$jscoverage['plugins/paste.js'][211]++; + break; + } +} + } + _$jscoverage['plugins/paste.js'][218]++; + range.deleteContents(); + _$jscoverage['plugins/paste.js'][219]++; + range.select(true); + _$jscoverage['plugins/paste.js'][220]++; + me.__hasEnterExecCommand = true; + _$jscoverage['plugins/paste.js'][221]++; + var html = htmlContent; + _$jscoverage['plugins/paste.js'][222]++; + if ((plainType === 2)) { + _$jscoverage['plugins/paste.js'][223]++; + html = html.replace(/<(\/?)([\w\-]+)([^>]*)>/gi, (function (a, b, tagName, attrs) { + _$jscoverage['plugins/paste.js'][224]++; + tagName = tagName.toLowerCase(); + _$jscoverage['plugins/paste.js'][225]++; + if ({img: 1}[tagName]) { + _$jscoverage['plugins/paste.js'][226]++; + return a; + } + _$jscoverage['plugins/paste.js'][228]++; + attrs = attrs.replace(/([\w\-]*?)\s*=\s*(("([^"]*)")|('([^']*)')|([^\s>]+))/gi, (function (str, atr, val) { + _$jscoverage['plugins/paste.js'][229]++; + if ({"src": 1, "href": 1, "name": 1}[atr.toLowerCase()]) { + _$jscoverage['plugins/paste.js'][234]++; + return (atr + "=" + val + " "); + } + _$jscoverage['plugins/paste.js'][236]++; + return ""; +})); + _$jscoverage['plugins/paste.js'][238]++; + if ({"span": 1, "div": 1}[tagName]) { + _$jscoverage['plugins/paste.js'][242]++; + return ""; + } + else { + _$jscoverage['plugins/paste.js'][245]++; + return ("<" + b + tagName + " " + utils.trim(attrs) + ">"); + } +})); + } + else { + _$jscoverage['plugins/paste.js'][249]++; + if (plainType) { + _$jscoverage['plugins/paste.js'][250]++; + html = txtContent; + } + } + _$jscoverage['plugins/paste.js'][252]++; + me.execCommand("inserthtml", html, true); + _$jscoverage['plugins/paste.js'][253]++; + me.__hasEnterExecCommand = false; + _$jscoverage['plugins/paste.js'][254]++; + var rng = me.selection.getRange(); + _$jscoverage['plugins/paste.js'][255]++; + while (((! domUtils.isBody(rng.startContainer)) && (! rng.startOffset) && rng.startContainer[((rng.startContainer.nodeType == 3)? "nodeValue": "childNodes")].length)) { + _$jscoverage['plugins/paste.js'][258]++; + rng.setStartBefore(rng.startContainer); +} + _$jscoverage['plugins/paste.js'][260]++; + var tmpAddress = rng.createAddress(true); + _$jscoverage['plugins/paste.js'][261]++; + address.endAddress = tmpAddress.startAddress; + } +})); + _$jscoverage['plugins/paste.js'][264]++; + me.addListener("ready", (function () { + _$jscoverage['plugins/paste.js'][265]++; + domUtils.on(me.body, "cut", (function () { + _$jscoverage['plugins/paste.js'][266]++; + var range = me.selection.getRange(); + _$jscoverage['plugins/paste.js'][267]++; + if (((! range.collapsed) && me.undoManger)) { + _$jscoverage['plugins/paste.js'][268]++; + me.undoManger.save(); + } +})); + _$jscoverage['plugins/paste.js'][273]++; + domUtils.on(me.body, ((browser.ie || browser.opera)? "keydown": "paste"), (function (e) { + _$jscoverage['plugins/paste.js'][274]++; + if (((browser.ie || browser.opera) && (((! e.ctrlKey) && (! e.metaKey)) || (e.keyCode != "86")))) { + _$jscoverage['plugins/paste.js'][275]++; + return; + } + _$jscoverage['plugins/paste.js'][277]++; + getClipboardData.call(me, (function (div) { + _$jscoverage['plugins/paste.js'][278]++; + filter(div); +})); +})); +})); +}); diff --git a/_test/coverage/plugins/preview.js b/_test/coverage/plugins/preview.js new file mode 100644 index 000000000..4612b2bba --- /dev/null +++ b/_test/coverage/plugins/preview.js @@ -0,0 +1,59 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/preview.js']) { + _$jscoverage['plugins/preview.js'] = []; + _$jscoverage['plugins/preview.js'][17] = 0; + _$jscoverage['plugins/preview.js'][19] = 0; + _$jscoverage['plugins/preview.js'][21] = 0; + _$jscoverage['plugins/preview.js'][22] = 0; + _$jscoverage['plugins/preview.js'][28] = 0; +} +_$jscoverage['plugins/preview.js'].source = ["/**"," * 预览"," * @file"," * @since 1.2.6.1"," */","","/**"," * 预览"," * @command preview"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @example"," * ```javascript"," * editor.execCommand( 'preview' );"," * ```"," */","UE.commands['preview'] = {"," execCommand : function(){"," var w = window.open('', '_blank', ''),"," d = w.document;"," d.open();"," d.write('<html><head><script src=\"'+this.options.UEDITOR_HOME_URL+'ueditor.parse.js\"></script><script>' +"," \"setTimeout(function(){uParse('div',{\" +"," \" 'highlightJsUrl':'\"+this.options.UEDITOR_HOME_URL+\"third-party/SyntaxHighlighter/shCore.js',\" +"," \" 'highlightCssUrl':'\"+this.options.UEDITOR_HOME_URL+\"third-party/SyntaxHighlighter/shCoreDefault.css'\" +"," \"})},300)\" +"," '</script></head><body><div>'+this.getContent(null,null,true)+'</div></body></html>');"," d.close();"," },"," notNeedUndo : 1","};"]; +_$jscoverage['plugins/preview.js'][17]++; +UE.commands.preview = {execCommand: (function () { + _$jscoverage['plugins/preview.js'][19]++; + var w = window.open("", "_blank", ""), d = w.document; + _$jscoverage['plugins/preview.js'][21]++; + d.open(); + _$jscoverage['plugins/preview.js'][22]++; + d.write(("
" + this.getContent(null, null, true) + "
")); + _$jscoverage['plugins/preview.js'][28]++; + d.close(); +}), notNeedUndo: 1}; diff --git a/_test/coverage/plugins/print.js b/_test/coverage/plugins/print.js new file mode 100644 index 000000000..da94c1bb2 --- /dev/null +++ b/_test/coverage/plugins/print.js @@ -0,0 +1,50 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/print.js']) { + _$jscoverage['plugins/print.js'] = []; + _$jscoverage['plugins/print.js'][17] = 0; + _$jscoverage['plugins/print.js'][19] = 0; +} +_$jscoverage['plugins/print.js'].source = ["/**"," * 打印"," * @file"," * @since 1.2.6.1"," */","","/**"," * 打印"," * @command print"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @example"," * ```javascript"," * editor.execCommand( 'print' );"," * ```"," */","UE.commands['print'] = {"," execCommand : function(){"," this.window.print();"," },"," notNeedUndo : 1","};",""]; +_$jscoverage['plugins/print.js'][17]++; +UE.commands.print = {execCommand: (function () { + _$jscoverage['plugins/print.js'][19]++; + this.window.print(); +}), notNeedUndo: 1}; diff --git a/_test/coverage/plugins/puretxtpaste.js b/_test/coverage/plugins/puretxtpaste.js new file mode 100644 index 000000000..cc8fe4e0a --- /dev/null +++ b/_test/coverage/plugins/puretxtpaste.js @@ -0,0 +1,144 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/puretxtpaste.js']) { + _$jscoverage['plugins/puretxtpaste.js'] = []; + _$jscoverage['plugins/puretxtpaste.js'][7] = 0; + _$jscoverage['plugins/puretxtpaste.js'][8] = 0; + _$jscoverage['plugins/puretxtpaste.js'][9] = 0; + _$jscoverage['plugins/puretxtpaste.js'][12] = 0; + _$jscoverage['plugins/puretxtpaste.js'][13] = 0; + _$jscoverage['plugins/puretxtpaste.js'][14] = 0; + _$jscoverage['plugins/puretxtpaste.js'][16] = 0; + _$jscoverage['plugins/puretxtpaste.js'][17] = 0; + _$jscoverage['plugins/puretxtpaste.js'][19] = 0; + _$jscoverage['plugins/puretxtpaste.js'][25] = 0; + _$jscoverage['plugins/puretxtpaste.js'][26] = 0; + _$jscoverage['plugins/puretxtpaste.js'][27] = 0; + _$jscoverage['plugins/puretxtpaste.js'][28] = 0; + _$jscoverage['plugins/puretxtpaste.js'][30] = 0; + _$jscoverage['plugins/puretxtpaste.js'][31] = 0; + _$jscoverage['plugins/puretxtpaste.js'][32] = 0; + _$jscoverage['plugins/puretxtpaste.js'][34] = 0; + _$jscoverage['plugins/puretxtpaste.js'][38] = 0; + _$jscoverage['plugins/puretxtpaste.js'][39] = 0; + _$jscoverage['plugins/puretxtpaste.js'][41] = 0; + _$jscoverage['plugins/puretxtpaste.js'][55] = 0; + _$jscoverage['plugins/puretxtpaste.js'][56] = 0; + _$jscoverage['plugins/puretxtpaste.js'][57] = 0; + _$jscoverage['plugins/puretxtpaste.js'][59] = 0; + _$jscoverage['plugins/puretxtpaste.js'][65] = 0; + _$jscoverage['plugins/puretxtpaste.js'][89] = 0; + _$jscoverage['plugins/puretxtpaste.js'][91] = 0; + _$jscoverage['plugins/puretxtpaste.js'][94] = 0; +} +_$jscoverage['plugins/puretxtpaste.js'].source = ["/**"," * 纯文本粘贴插件"," * @file"," * @since 1.2.6.1"," */","","UE.plugins['pasteplain'] = function(){"," var me = this;"," me.setOpt({"," 'pasteplain':false,"," 'filterTxtRules' : function(){"," function transP(node){"," node.tagName = 'p';"," node.setStyle();"," }"," function removeNode(node){"," node.parentNode.removeChild(node,true)"," }"," return {"," //直接删除及其字节点内容"," '-' : 'script style object iframe embed input select',"," 'p': {$:{}},"," 'br':{$:{}},"," div: function (node) {"," var tmpNode, p = UE.uNode.createElement('p');"," while (tmpNode = node.firstChild()) {"," if (tmpNode.type == 'text' || !UE.dom.dtd.$block[tmpNode.tagName]) {"," p.appendChild(tmpNode);"," } else {"," if (p.firstChild()) {"," node.parentNode.insertBefore(p, node);"," p = UE.uNode.createElement('p');"," } else {"," node.parentNode.insertBefore(tmpNode, node);"," }"," }"," }"," if (p.firstChild()) {"," node.parentNode.insertBefore(p, node);"," }"," node.parentNode.removeChild(node);"," },"," ol: removeNode,"," ul: removeNode,"," dl:removeNode,"," dt:removeNode,"," dd:removeNode,"," 'li':removeNode,"," 'caption':transP,"," 'th':transP,"," 'tr':transP,"," 'h1':transP,'h2':transP,'h3':transP,'h4':transP,'h5':transP,'h6':transP,"," 'td':function(node){"," //没有内容的td直接删掉"," var txt = !!node.innerText();"," if(txt){"," node.parentNode.insertAfter(UE.uNode.createText(' &nbsp; &nbsp;'),node);"," }"," node.parentNode.removeChild(node,node.innerText())"," }"," }"," }()"," });"," //暂时这里支持一下老版本的属性"," var pasteplain = me.options.pasteplain;",""," /**"," * 启用或取消纯文本粘贴模式"," * @command pasteplain"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @example"," * ```javascript"," * editor.queryCommandState( 'pasteplain' );"," * ```"," */",""," /**"," * 查询当前是否处于纯文本粘贴模式"," * @command pasteplain"," * @method queryCommandState"," * @param { String } cmd 命令字符串"," * @return { int } 如果处于纯文本模式,返回1,否则,返回0"," * @example"," * ```javascript"," * editor.queryCommandState( 'pasteplain' );"," * ```"," */"," me.commands['pasteplain'] = {"," queryCommandState: function (){"," return pasteplain ? 1 : 0;"," },"," execCommand: function (){"," pasteplain = !pasteplain|0;"," },"," notNeedUndo : 1"," };","};"]; +_$jscoverage['plugins/puretxtpaste.js'][7]++; +UE.plugins.pasteplain = (function () { + _$jscoverage['plugins/puretxtpaste.js'][8]++; + var me = this; + _$jscoverage['plugins/puretxtpaste.js'][9]++; + me.setOpt({"pasteplain": false, "filterTxtRules": (function () { + _$jscoverage['plugins/puretxtpaste.js'][12]++; + function transP(node) { + _$jscoverage['plugins/puretxtpaste.js'][13]++; + node.tagName = "p"; + _$jscoverage['plugins/puretxtpaste.js'][14]++; + node.setStyle(); +} + _$jscoverage['plugins/puretxtpaste.js'][16]++; + function removeNode(node) { + _$jscoverage['plugins/puretxtpaste.js'][17]++; + node.parentNode.removeChild(node, true); +} + _$jscoverage['plugins/puretxtpaste.js'][19]++; + return ({"-": "script style object iframe embed input select", "p": {$: {}}, "br": {$: {}}, div: (function (node) { + _$jscoverage['plugins/puretxtpaste.js'][25]++; + var tmpNode, p = UE.uNode.createElement("p"); + _$jscoverage['plugins/puretxtpaste.js'][26]++; + while ((tmpNode = node.firstChild())) { + _$jscoverage['plugins/puretxtpaste.js'][27]++; + if (((tmpNode.type == "text") || (! UE.dom.dtd.$block[tmpNode.tagName]))) { + _$jscoverage['plugins/puretxtpaste.js'][28]++; + p.appendChild(tmpNode); + } + else { + _$jscoverage['plugins/puretxtpaste.js'][30]++; + if (p.firstChild()) { + _$jscoverage['plugins/puretxtpaste.js'][31]++; + node.parentNode.insertBefore(p, node); + _$jscoverage['plugins/puretxtpaste.js'][32]++; + p = UE.uNode.createElement("p"); + } + else { + _$jscoverage['plugins/puretxtpaste.js'][34]++; + node.parentNode.insertBefore(tmpNode, node); + } + } +} + _$jscoverage['plugins/puretxtpaste.js'][38]++; + if (p.firstChild()) { + _$jscoverage['plugins/puretxtpaste.js'][39]++; + node.parentNode.insertBefore(p, node); + } + _$jscoverage['plugins/puretxtpaste.js'][41]++; + node.parentNode.removeChild(node); +}), ol: removeNode, ul: removeNode, dl: removeNode, dt: removeNode, dd: removeNode, "li": removeNode, "caption": transP, "th": transP, "tr": transP, "h1": transP, "h2": transP, "h3": transP, "h4": transP, "h5": transP, "h6": transP, "td": (function (node) { + _$jscoverage['plugins/puretxtpaste.js'][55]++; + var txt = (! (! node.innerText())); + _$jscoverage['plugins/puretxtpaste.js'][56]++; + if (txt) { + _$jscoverage['plugins/puretxtpaste.js'][57]++; + node.parentNode.insertAfter(UE.uNode.createText("    "), node); + } + _$jscoverage['plugins/puretxtpaste.js'][59]++; + node.parentNode.removeChild(node, node.innerText()); +})}); +})()}); + _$jscoverage['plugins/puretxtpaste.js'][65]++; + var pasteplain = me.options.pasteplain; + _$jscoverage['plugins/puretxtpaste.js'][89]++; + me.commands.pasteplain = {queryCommandState: (function () { + _$jscoverage['plugins/puretxtpaste.js'][91]++; + return (pasteplain? 1: 0); +}), execCommand: (function () { + _$jscoverage['plugins/puretxtpaste.js'][94]++; + pasteplain = ((! pasteplain) | 0); +}), notNeedUndo: 1}; +}); diff --git a/_test/coverage/plugins/removeformat.js b/_test/coverage/plugins/removeformat.js new file mode 100644 index 000000000..c13eaaf8d --- /dev/null +++ b/_test/coverage/plugins/removeformat.js @@ -0,0 +1,318 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/removeformat.js']) { + _$jscoverage['plugins/removeformat.js'] = []; + _$jscoverage['plugins/removeformat.js'][22] = 0; + _$jscoverage['plugins/removeformat.js'][23] = 0; + _$jscoverage['plugins/removeformat.js'][24] = 0; + _$jscoverage['plugins/removeformat.js'][28] = 0; + _$jscoverage['plugins/removeformat.js'][31] = 0; + _$jscoverage['plugins/removeformat.js'][36] = 0; + _$jscoverage['plugins/removeformat.js'][39] = 0; + _$jscoverage['plugins/removeformat.js'][40] = 0; + _$jscoverage['plugins/removeformat.js'][41] = 0; + _$jscoverage['plugins/removeformat.js'][43] = 0; + _$jscoverage['plugins/removeformat.js'][46] = 0; + _$jscoverage['plugins/removeformat.js'][47] = 0; + _$jscoverage['plugins/removeformat.js'][48] = 0; + _$jscoverage['plugins/removeformat.js'][49] = 0; + _$jscoverage['plugins/removeformat.js'][50] = 0; + _$jscoverage['plugins/removeformat.js'][53] = 0; + _$jscoverage['plugins/removeformat.js'][56] = 0; + _$jscoverage['plugins/removeformat.js'][58] = 0; + _$jscoverage['plugins/removeformat.js'][60] = 0; + _$jscoverage['plugins/removeformat.js'][61] = 0; + _$jscoverage['plugins/removeformat.js'][62] = 0; + _$jscoverage['plugins/removeformat.js'][66] = 0; + _$jscoverage['plugins/removeformat.js'][67] = 0; + _$jscoverage['plugins/removeformat.js'][68] = 0; + _$jscoverage['plugins/removeformat.js'][69] = 0; + _$jscoverage['plugins/removeformat.js'][72] = 0; + _$jscoverage['plugins/removeformat.js'][73] = 0; + _$jscoverage['plugins/removeformat.js'][74] = 0; + _$jscoverage['plugins/removeformat.js'][80] = 0; + _$jscoverage['plugins/removeformat.js'][82] = 0; + _$jscoverage['plugins/removeformat.js'][85] = 0; + _$jscoverage['plugins/removeformat.js'][86] = 0; + _$jscoverage['plugins/removeformat.js'][88] = 0; + _$jscoverage['plugins/removeformat.js'][90] = 0; + _$jscoverage['plugins/removeformat.js'][92] = 0; + _$jscoverage['plugins/removeformat.js'][93] = 0; + _$jscoverage['plugins/removeformat.js'][94] = 0; + _$jscoverage['plugins/removeformat.js'][95] = 0; + _$jscoverage['plugins/removeformat.js'][99] = 0; + _$jscoverage['plugins/removeformat.js'][101] = 0; + _$jscoverage['plugins/removeformat.js'][102] = 0; + _$jscoverage['plugins/removeformat.js'][103] = 0; + _$jscoverage['plugins/removeformat.js'][106] = 0; + _$jscoverage['plugins/removeformat.js'][108] = 0; + _$jscoverage['plugins/removeformat.js'][109] = 0; + _$jscoverage['plugins/removeformat.js'][110] = 0; + _$jscoverage['plugins/removeformat.js'][111] = 0; + _$jscoverage['plugins/removeformat.js'][112] = 0; + _$jscoverage['plugins/removeformat.js'][113] = 0; + _$jscoverage['plugins/removeformat.js'][116] = 0; + _$jscoverage['plugins/removeformat.js'][120] = 0; + _$jscoverage['plugins/removeformat.js'][121] = 0; + _$jscoverage['plugins/removeformat.js'][122] = 0; + _$jscoverage['plugins/removeformat.js'][123] = 0; + _$jscoverage['plugins/removeformat.js'][129] = 0; + _$jscoverage['plugins/removeformat.js'][134] = 0; + _$jscoverage['plugins/removeformat.js'][135] = 0; + _$jscoverage['plugins/removeformat.js'][136] = 0; + _$jscoverage['plugins/removeformat.js'][138] = 0; + _$jscoverage['plugins/removeformat.js'][139] = 0; + _$jscoverage['plugins/removeformat.js'][140] = 0; + _$jscoverage['plugins/removeformat.js'][142] = 0; + _$jscoverage['plugins/removeformat.js'][144] = 0; + _$jscoverage['plugins/removeformat.js'][147] = 0; + _$jscoverage['plugins/removeformat.js'][148] = 0; + _$jscoverage['plugins/removeformat.js'][149] = 0; + _$jscoverage['plugins/removeformat.js'][152] = 0; + _$jscoverage['plugins/removeformat.js'][153] = 0; + _$jscoverage['plugins/removeformat.js'][155] = 0; + _$jscoverage['plugins/removeformat.js'][156] = 0; + _$jscoverage['plugins/removeformat.js'][159] = 0; + _$jscoverage['plugins/removeformat.js'][160] = 0; + _$jscoverage['plugins/removeformat.js'][161] = 0; + _$jscoverage['plugins/removeformat.js'][162] = 0; + _$jscoverage['plugins/removeformat.js'][163] = 0; + _$jscoverage['plugins/removeformat.js'][164] = 0; + _$jscoverage['plugins/removeformat.js'][166] = 0; + _$jscoverage['plugins/removeformat.js'][175] = 0; + _$jscoverage['plugins/removeformat.js'][176] = 0; + _$jscoverage['plugins/removeformat.js'][177] = 0; +} +_$jscoverage['plugins/removeformat.js'].source = ["/**"," * 清除格式"," * @file"," * @since 1.2.6.1"," */","","/**"," * 对图片居左居中居右排版"," * @command removeformat"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @param {String} tags 以逗号隔开的标签。如:span,a"," * @param {String} style 样式"," * @param {String} attrs 属性"," * @param {String} notIncluedA 是否把a标签切开"," * @example"," * ```javascript"," * editor.execCommand( 'removeformat', 'center' );"," * ```"," */","","UE.plugins['removeformat'] = function(){"," var me = this;"," me.setOpt({"," 'removeFormatTags': 'b,big,code,del,dfn,em,font,i,ins,kbd,q,samp,small,span,strike,strong,sub,sup,tt,u,var',"," 'removeFormatAttributes':'class,style,lang,width,height,align,hspace,valign'"," });"," me.commands['removeformat'] = {"," execCommand : function( cmdName, tags, style, attrs,notIncludeA ) {",""," var tagReg = new RegExp( '^(?:' + (tags || this.options.removeFormatTags).replace( /,/g, '|' ) + ')$', 'i' ) ,"," removeFormatAttributes = style ? [] : (attrs || this.options.removeFormatAttributes).split( ',' ),"," range = new dom.Range( this.document ),"," bookmark,node,parent,"," filter = function( node ) {"," return node.nodeType == 1;"," };",""," function isRedundantSpan (node) {"," if (node.nodeType == 3 || node.tagName.toLowerCase() != 'span'){"," return 0;"," }"," if (browser.ie) {"," //ie 下判断实效,所以只能简单用style来判断"," //return node.style.cssText == '' ? 1 : 0;"," var attrs = node.attributes;"," if ( attrs.length ) {"," for ( var i = 0,l = attrs.length; i<l; i++ ) {"," if ( attrs[i].specified ) {"," return 0;"," }"," }"," return 1;"," }"," }"," return !node.attributes.length;"," }"," function doRemove( range ) {",""," var bookmark1 = range.createBookmark();"," if ( range.collapsed ) {"," range.enlarge( true );"," }",""," //不能把a标签切了"," if(!notIncludeA){"," var aNode = domUtils.findParentByTagName(range.startContainer,'a',true);"," if(aNode){"," range.setStartBefore(aNode);"," }",""," aNode = domUtils.findParentByTagName(range.endContainer,'a',true);"," if(aNode){"," range.setEndAfter(aNode);"," }",""," }","",""," bookmark = range.createBookmark();",""," node = bookmark.start;",""," //切开始"," while ( (parent = node.parentNode) && !domUtils.isBlockElm( parent ) ) {"," domUtils.breakParent( node, parent );",""," domUtils.clearEmptySibling( node );"," }"," if ( bookmark.end ) {"," //切结束"," node = bookmark.end;"," while ( (parent = node.parentNode) && !domUtils.isBlockElm( parent ) ) {"," domUtils.breakParent( node, parent );"," domUtils.clearEmptySibling( node );"," }",""," //开始去除样式"," var current = domUtils.getNextDomNode( bookmark.start, false, filter ),"," next;"," while ( current ) {"," if ( current == bookmark.end ) {"," break;"," }",""," next = domUtils.getNextDomNode( current, true, filter );",""," if ( !dtd.$empty[current.tagName.toLowerCase()] && !domUtils.isBookmarkNode( current ) ) {"," if ( tagReg.test( current.tagName ) ) {"," if ( style ) {"," domUtils.removeStyle( current, style );"," if ( isRedundantSpan( current ) && style != 'text-decoration'){"," domUtils.remove( current, true );"," }"," } else {"," domUtils.remove( current, true );"," }"," } else {"," //trace:939 不能把list上的样式去掉"," if(!dtd.$tableContent[current.tagName] && !dtd.$list[current.tagName]){"," domUtils.removeAttributes( current, removeFormatAttributes );"," if ( isRedundantSpan( current ) ){"," domUtils.remove( current, true );"," }"," }",""," }"," }"," current = next;"," }"," }"," //trace:1035"," //trace:1096 不能把td上的样式去掉,比如边框"," var pN = bookmark.start.parentNode;"," if(domUtils.isBlockElm(pN) && !dtd.$tableContent[pN.tagName] && !dtd.$list[pN.tagName]){"," domUtils.removeAttributes( pN,removeFormatAttributes );"," }"," pN = bookmark.end.parentNode;"," if(bookmark.end && domUtils.isBlockElm(pN) && !dtd.$tableContent[pN.tagName]&& !dtd.$list[pN.tagName]){"," domUtils.removeAttributes( pN,removeFormatAttributes );"," }"," range.moveToBookmark( bookmark ).moveToBookmark(bookmark1);"," //清除冗余的代码 <b><bookmark></b>"," var node = range.startContainer,"," tmp,"," collapsed = range.collapsed;"," while(node.nodeType == 1 && domUtils.isEmptyNode(node) && dtd.$removeEmpty[node.tagName]){"," tmp = node.parentNode;"," range.setStartBefore(node);"," //trace:937"," //更新结束边界"," if(range.startContainer === range.endContainer){"," range.endOffset--;"," }"," domUtils.remove(node);"," node = tmp;"," }",""," if(!collapsed){"," node = range.endContainer;"," while(node.nodeType == 1 && domUtils.isEmptyNode(node) && dtd.$removeEmpty[node.tagName]){"," tmp = node.parentNode;"," range.setEndBefore(node);"," domUtils.remove(node);",""," node = tmp;"," }","",""," }"," }","","",""," range = this.selection.getRange();"," doRemove( range );"," range.select();",""," }",""," };","","};"]; +_$jscoverage['plugins/removeformat.js'][22]++; +UE.plugins.removeformat = (function () { + _$jscoverage['plugins/removeformat.js'][23]++; + var me = this; + _$jscoverage['plugins/removeformat.js'][24]++; + me.setOpt({"removeFormatTags": "b,big,code,del,dfn,em,font,i,ins,kbd,q,samp,small,span,strike,strong,sub,sup,tt,u,var", "removeFormatAttributes": "class,style,lang,width,height,align,hspace,valign"}); + _$jscoverage['plugins/removeformat.js'][28]++; + me.commands.removeformat = {execCommand: (function (cmdName, tags, style, attrs, notIncludeA) { + _$jscoverage['plugins/removeformat.js'][31]++; + var tagReg = new RegExp(("^(?:" + (tags || this.options.removeFormatTags).replace(/,/g, "|") + ")$"), "i"), removeFormatAttributes = (style? []: (attrs || this.options.removeFormatAttributes).split(",")), range = new (dom.Range)(this.document), bookmark, node, parent, filter = (function (node) { + _$jscoverage['plugins/removeformat.js'][36]++; + return (node.nodeType == 1); +}); + _$jscoverage['plugins/removeformat.js'][39]++; + function isRedundantSpan(node) { + _$jscoverage['plugins/removeformat.js'][40]++; + if (((node.nodeType == 3) || (node.tagName.toLowerCase() != "span"))) { + _$jscoverage['plugins/removeformat.js'][41]++; + return 0; + } + _$jscoverage['plugins/removeformat.js'][43]++; + if (browser.ie) { + _$jscoverage['plugins/removeformat.js'][46]++; + var attrs = node.attributes; + _$jscoverage['plugins/removeformat.js'][47]++; + if (attrs.length) { + _$jscoverage['plugins/removeformat.js'][48]++; + for (var i = 0, l = attrs.length; (i < l); (i++)) { + _$jscoverage['plugins/removeformat.js'][49]++; + if (attrs[i].specified) { + _$jscoverage['plugins/removeformat.js'][50]++; + return 0; + } +} + _$jscoverage['plugins/removeformat.js'][53]++; + return 1; + } + } + _$jscoverage['plugins/removeformat.js'][56]++; + return (! node.attributes.length); +} + _$jscoverage['plugins/removeformat.js'][58]++; + function doRemove(range) { + _$jscoverage['plugins/removeformat.js'][60]++; + var bookmark1 = range.createBookmark(); + _$jscoverage['plugins/removeformat.js'][61]++; + if (range.collapsed) { + _$jscoverage['plugins/removeformat.js'][62]++; + range.enlarge(true); + } + _$jscoverage['plugins/removeformat.js'][66]++; + if ((! notIncludeA)) { + _$jscoverage['plugins/removeformat.js'][67]++; + var aNode = domUtils.findParentByTagName(range.startContainer, "a", true); + _$jscoverage['plugins/removeformat.js'][68]++; + if (aNode) { + _$jscoverage['plugins/removeformat.js'][69]++; + range.setStartBefore(aNode); + } + _$jscoverage['plugins/removeformat.js'][72]++; + aNode = domUtils.findParentByTagName(range.endContainer, "a", true); + _$jscoverage['plugins/removeformat.js'][73]++; + if (aNode) { + _$jscoverage['plugins/removeformat.js'][74]++; + range.setEndAfter(aNode); + } + } + _$jscoverage['plugins/removeformat.js'][80]++; + bookmark = range.createBookmark(); + _$jscoverage['plugins/removeformat.js'][82]++; + node = bookmark.start; + _$jscoverage['plugins/removeformat.js'][85]++; + while (((parent = node.parentNode) && (! domUtils.isBlockElm(parent)))) { + _$jscoverage['plugins/removeformat.js'][86]++; + domUtils.breakParent(node, parent); + _$jscoverage['plugins/removeformat.js'][88]++; + domUtils.clearEmptySibling(node); +} + _$jscoverage['plugins/removeformat.js'][90]++; + if (bookmark.end) { + _$jscoverage['plugins/removeformat.js'][92]++; + node = bookmark.end; + _$jscoverage['plugins/removeformat.js'][93]++; + while (((parent = node.parentNode) && (! domUtils.isBlockElm(parent)))) { + _$jscoverage['plugins/removeformat.js'][94]++; + domUtils.breakParent(node, parent); + _$jscoverage['plugins/removeformat.js'][95]++; + domUtils.clearEmptySibling(node); +} + _$jscoverage['plugins/removeformat.js'][99]++; + var current = domUtils.getNextDomNode(bookmark.start, false, filter), next; + _$jscoverage['plugins/removeformat.js'][101]++; + while (current) { + _$jscoverage['plugins/removeformat.js'][102]++; + if ((current == bookmark.end)) { + _$jscoverage['plugins/removeformat.js'][103]++; + break; + } + _$jscoverage['plugins/removeformat.js'][106]++; + next = domUtils.getNextDomNode(current, true, filter); + _$jscoverage['plugins/removeformat.js'][108]++; + if (((! dtd.$empty[current.tagName.toLowerCase()]) && (! domUtils.isBookmarkNode(current)))) { + _$jscoverage['plugins/removeformat.js'][109]++; + if (tagReg.test(current.tagName)) { + _$jscoverage['plugins/removeformat.js'][110]++; + if (style) { + _$jscoverage['plugins/removeformat.js'][111]++; + domUtils.removeStyle(current, style); + _$jscoverage['plugins/removeformat.js'][112]++; + if ((isRedundantSpan(current) && (style != "text-decoration"))) { + _$jscoverage['plugins/removeformat.js'][113]++; + domUtils.remove(current, true); + } + } + else { + _$jscoverage['plugins/removeformat.js'][116]++; + domUtils.remove(current, true); + } + } + else { + _$jscoverage['plugins/removeformat.js'][120]++; + if (((! dtd.$tableContent[current.tagName]) && (! dtd.$list[current.tagName]))) { + _$jscoverage['plugins/removeformat.js'][121]++; + domUtils.removeAttributes(current, removeFormatAttributes); + _$jscoverage['plugins/removeformat.js'][122]++; + if (isRedundantSpan(current)) { + _$jscoverage['plugins/removeformat.js'][123]++; + domUtils.remove(current, true); + } + } + } + } + _$jscoverage['plugins/removeformat.js'][129]++; + current = next; +} + } + _$jscoverage['plugins/removeformat.js'][134]++; + var pN = bookmark.start.parentNode; + _$jscoverage['plugins/removeformat.js'][135]++; + if ((domUtils.isBlockElm(pN) && (! dtd.$tableContent[pN.tagName]) && (! dtd.$list[pN.tagName]))) { + _$jscoverage['plugins/removeformat.js'][136]++; + domUtils.removeAttributes(pN, removeFormatAttributes); + } + _$jscoverage['plugins/removeformat.js'][138]++; + pN = bookmark.end.parentNode; + _$jscoverage['plugins/removeformat.js'][139]++; + if ((bookmark.end && domUtils.isBlockElm(pN) && (! dtd.$tableContent[pN.tagName]) && (! dtd.$list[pN.tagName]))) { + _$jscoverage['plugins/removeformat.js'][140]++; + domUtils.removeAttributes(pN, removeFormatAttributes); + } + _$jscoverage['plugins/removeformat.js'][142]++; + range.moveToBookmark(bookmark).moveToBookmark(bookmark1); + _$jscoverage['plugins/removeformat.js'][144]++; + var node = range.startContainer, tmp, collapsed = range.collapsed; + _$jscoverage['plugins/removeformat.js'][147]++; + while (((node.nodeType == 1) && domUtils.isEmptyNode(node) && dtd.$removeEmpty[node.tagName])) { + _$jscoverage['plugins/removeformat.js'][148]++; + tmp = node.parentNode; + _$jscoverage['plugins/removeformat.js'][149]++; + range.setStartBefore(node); + _$jscoverage['plugins/removeformat.js'][152]++; + if ((range.startContainer === range.endContainer)) { + _$jscoverage['plugins/removeformat.js'][153]++; + (range.endOffset--); + } + _$jscoverage['plugins/removeformat.js'][155]++; + domUtils.remove(node); + _$jscoverage['plugins/removeformat.js'][156]++; + node = tmp; +} + _$jscoverage['plugins/removeformat.js'][159]++; + if ((! collapsed)) { + _$jscoverage['plugins/removeformat.js'][160]++; + node = range.endContainer; + _$jscoverage['plugins/removeformat.js'][161]++; + while (((node.nodeType == 1) && domUtils.isEmptyNode(node) && dtd.$removeEmpty[node.tagName])) { + _$jscoverage['plugins/removeformat.js'][162]++; + tmp = node.parentNode; + _$jscoverage['plugins/removeformat.js'][163]++; + range.setEndBefore(node); + _$jscoverage['plugins/removeformat.js'][164]++; + domUtils.remove(node); + _$jscoverage['plugins/removeformat.js'][166]++; + node = tmp; +} + } +} + _$jscoverage['plugins/removeformat.js'][175]++; + range = this.selection.getRange(); + _$jscoverage['plugins/removeformat.js'][176]++; + doRemove(range); + _$jscoverage['plugins/removeformat.js'][177]++; + range.select(); +})}; +}); diff --git a/_test/coverage/plugins/rowspacing.js b/_test/coverage/plugins/rowspacing.js new file mode 100644 index 000000000..3d4a37ff9 --- /dev/null +++ b/_test/coverage/plugins/rowspacing.js @@ -0,0 +1,83 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/rowspacing.js']) { + _$jscoverage['plugins/rowspacing.js'] = []; + _$jscoverage['plugins/rowspacing.js'][19] = 0; + _$jscoverage['plugins/rowspacing.js'][20] = 0; + _$jscoverage['plugins/rowspacing.js'][21] = 0; + _$jscoverage['plugins/rowspacing.js'][26] = 0; + _$jscoverage['plugins/rowspacing.js'][28] = 0; + _$jscoverage['plugins/rowspacing.js'][29] = 0; + _$jscoverage['plugins/rowspacing.js'][32] = 0; + _$jscoverage['plugins/rowspacing.js'][35] = 0; + _$jscoverage['plugins/rowspacing.js'][36] = 0; + _$jscoverage['plugins/rowspacing.js'][37] = 0; + _$jscoverage['plugins/rowspacing.js'][39] = 0; +} +_$jscoverage['plugins/rowspacing.js'].source = ["/**"," * 段前段后间距插件"," * @file"," * @since 1.2.6.1"," */","","/**"," * 设置段前距,段后距"," * @command rowspacing"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @param { String } value 传入段间距的值,以px为单位"," * @param { String } dir 传入间距位置,top或bottom,分别表示段前和段后"," * @example"," * ```javascript"," * editor.execCommand( 'rowspacing', '10', 'top' );"," * ```"," */","UE.plugins['rowspacing'] = function(){"," var me = this;"," me.setOpt({"," 'rowspacingtop':['5', '10', '15', '20', '25'],"," 'rowspacingbottom':['5', '10', '15', '20', '25']",""," });"," me.commands['rowspacing'] = {"," execCommand : function( cmdName,value,dir ) {"," this.execCommand('paragraph','p',{style:'margin-'+dir+':'+value + 'px'});"," return true;"," },"," queryCommandValue : function(cmdName,dir) {"," var pN = domUtils.filterNodeList(this.selection.getStartElementPath(),function(node){return domUtils.isBlockElm(node) }),"," value;"," //trace:1026"," if(pN){"," value = domUtils.getComputedStyle(pN,'margin-'+dir).replace(/[^\\d]/g,'');"," return !value ? 0 : value;"," }"," return 0;",""," }"," };","};","",""]; +_$jscoverage['plugins/rowspacing.js'][19]++; +UE.plugins.rowspacing = (function () { + _$jscoverage['plugins/rowspacing.js'][20]++; + var me = this; + _$jscoverage['plugins/rowspacing.js'][21]++; + me.setOpt({"rowspacingtop": ["5", "10", "15", "20", "25"], "rowspacingbottom": ["5", "10", "15", "20", "25"]}); + _$jscoverage['plugins/rowspacing.js'][26]++; + me.commands.rowspacing = {execCommand: (function (cmdName, value, dir) { + _$jscoverage['plugins/rowspacing.js'][28]++; + this.execCommand("paragraph", "p", {style: ("margin-" + dir + ":" + value + "px")}); + _$jscoverage['plugins/rowspacing.js'][29]++; + return true; +}), queryCommandValue: (function (cmdName, dir) { + _$jscoverage['plugins/rowspacing.js'][32]++; + var pN = domUtils.filterNodeList(this.selection.getStartElementPath(), (function (node) { + _$jscoverage['plugins/rowspacing.js'][32]++; + return domUtils.isBlockElm(node); +})), value; + _$jscoverage['plugins/rowspacing.js'][35]++; + if (pN) { + _$jscoverage['plugins/rowspacing.js'][36]++; + value = domUtils.getComputedStyle(pN, ("margin-" + dir)).replace(/[^\d]/g, ""); + _$jscoverage['plugins/rowspacing.js'][37]++; + return ((! value)? 0: value); + } + _$jscoverage['plugins/rowspacing.js'][39]++; + return 0; +})}; +}); diff --git a/_test/coverage/plugins/scrawl.js b/_test/coverage/plugins/scrawl.js new file mode 100644 index 000000000..62c528f16 --- /dev/null +++ b/_test/coverage/plugins/scrawl.js @@ -0,0 +1,50 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/scrawl.js']) { + _$jscoverage['plugins/scrawl.js'] = []; + _$jscoverage['plugins/scrawl.js'][17] = 0; + _$jscoverage['plugins/scrawl.js'][19] = 0; +} +_$jscoverage['plugins/scrawl.js'].source = ["/**"," * 涂鸦"," * @file"," * @since 1.2.6.1"," */","","/*"," * 涂鸦浏览器判断"," * @command scrawl"," * @method queryCommandState"," * @return { Int } ie8下返回-1,反之返回0"," * @example"," * ```javascript"," * editor.queryCommandState( 'scrawl' );"," * ```"," */","UE.commands['scrawl'] = {"," queryCommandState : function(){"," return ( browser.ie && browser.version <= 8 ) ? -1 :0;"," }","};"]; +_$jscoverage['plugins/scrawl.js'][17]++; +UE.commands.scrawl = {queryCommandState: (function () { + _$jscoverage['plugins/scrawl.js'][19]++; + return ((browser.ie && (browser.version <= 8))? -1: 0); +})}; diff --git a/_test/coverage/plugins/searchreplace.js b/_test/coverage/plugins/searchreplace.js new file mode 100644 index 000000000..4129d8216 --- /dev/null +++ b/_test/coverage/plugins/searchreplace.js @@ -0,0 +1,405 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/searchreplace.js']) { + _$jscoverage['plugins/searchreplace.js'] = []; + _$jscoverage['plugins/searchreplace.js'][10] = 0; + _$jscoverage['plugins/searchreplace.js'][12] = 0; + _$jscoverage['plugins/searchreplace.js'][15] = 0; + _$jscoverage['plugins/searchreplace.js'][16] = 0; + _$jscoverage['plugins/searchreplace.js'][17] = 0; + _$jscoverage['plugins/searchreplace.js'][19] = 0; + _$jscoverage['plugins/searchreplace.js'][21] = 0; + _$jscoverage['plugins/searchreplace.js'][31] = 0; + _$jscoverage['plugins/searchreplace.js'][32] = 0; + _$jscoverage['plugins/searchreplace.js'][33] = 0; + _$jscoverage['plugins/searchreplace.js'][34] = 0; + _$jscoverage['plugins/searchreplace.js'][35] = 0; + _$jscoverage['plugins/searchreplace.js'][37] = 0; + _$jscoverage['plugins/searchreplace.js'][38] = 0; + _$jscoverage['plugins/searchreplace.js'][39] = 0; + _$jscoverage['plugins/searchreplace.js'][40] = 0; + _$jscoverage['plugins/searchreplace.js'][41] = 0; + _$jscoverage['plugins/searchreplace.js'][42] = 0; + _$jscoverage['plugins/searchreplace.js'][43] = 0; + _$jscoverage['plugins/searchreplace.js'][44] = 0; + _$jscoverage['plugins/searchreplace.js'][46] = 0; + _$jscoverage['plugins/searchreplace.js'][50] = 0; + _$jscoverage['plugins/searchreplace.js'][51] = 0; + _$jscoverage['plugins/searchreplace.js'][52] = 0; + _$jscoverage['plugins/searchreplace.js'][55] = 0; + _$jscoverage['plugins/searchreplace.js'][57] = 0; + _$jscoverage['plugins/searchreplace.js'][58] = 0; + _$jscoverage['plugins/searchreplace.js'][60] = 0; + _$jscoverage['plugins/searchreplace.js'][61] = 0; + _$jscoverage['plugins/searchreplace.js'][62] = 0; + _$jscoverage['plugins/searchreplace.js'][64] = 0; + _$jscoverage['plugins/searchreplace.js'][65] = 0; + _$jscoverage['plugins/searchreplace.js'][68] = 0; + _$jscoverage['plugins/searchreplace.js'][69] = 0; + _$jscoverage['plugins/searchreplace.js'][70] = 0; + _$jscoverage['plugins/searchreplace.js'][71] = 0; + _$jscoverage['plugins/searchreplace.js'][72] = 0; + _$jscoverage['plugins/searchreplace.js'][73] = 0; + _$jscoverage['plugins/searchreplace.js'][75] = 0; + _$jscoverage['plugins/searchreplace.js'][77] = 0; + _$jscoverage['plugins/searchreplace.js'][78] = 0; + _$jscoverage['plugins/searchreplace.js'][79] = 0; + _$jscoverage['plugins/searchreplace.js'][80] = 0; + _$jscoverage['plugins/searchreplace.js'][83] = 0; + _$jscoverage['plugins/searchreplace.js'][84] = 0; + _$jscoverage['plugins/searchreplace.js'][85] = 0; + _$jscoverage['plugins/searchreplace.js'][90] = 0; + _$jscoverage['plugins/searchreplace.js'][91] = 0; + _$jscoverage['plugins/searchreplace.js'][92] = 0; + _$jscoverage['plugins/searchreplace.js'][93] = 0; + _$jscoverage['plugins/searchreplace.js'][94] = 0; + _$jscoverage['plugins/searchreplace.js'][95] = 0; + _$jscoverage['plugins/searchreplace.js'][97] = 0; + _$jscoverage['plugins/searchreplace.js'][98] = 0; + _$jscoverage['plugins/searchreplace.js'][99] = 0; + _$jscoverage['plugins/searchreplace.js'][102] = 0; + _$jscoverage['plugins/searchreplace.js'][103] = 0; + _$jscoverage['plugins/searchreplace.js'][104] = 0; + _$jscoverage['plugins/searchreplace.js'][105] = 0; + _$jscoverage['plugins/searchreplace.js'][108] = 0; + _$jscoverage['plugins/searchreplace.js'][109] = 0; + _$jscoverage['plugins/searchreplace.js'][112] = 0; + _$jscoverage['plugins/searchreplace.js'][113] = 0; + _$jscoverage['plugins/searchreplace.js'][114] = 0; + _$jscoverage['plugins/searchreplace.js'][116] = 0; + _$jscoverage['plugins/searchreplace.js'][119] = 0; + _$jscoverage['plugins/searchreplace.js'][120] = 0; + _$jscoverage['plugins/searchreplace.js'][126] = 0; + _$jscoverage['plugins/searchreplace.js'][127] = 0; + _$jscoverage['plugins/searchreplace.js'][128] = 0; + _$jscoverage['plugins/searchreplace.js'][129] = 0; + _$jscoverage['plugins/searchreplace.js'][131] = 0; + _$jscoverage['plugins/searchreplace.js'][135] = 0; + _$jscoverage['plugins/searchreplace.js'][136] = 0; + _$jscoverage['plugins/searchreplace.js'][138] = 0; + _$jscoverage['plugins/searchreplace.js'][139] = 0; + _$jscoverage['plugins/searchreplace.js'][140] = 0; + _$jscoverage['plugins/searchreplace.js'][142] = 0; + _$jscoverage['plugins/searchreplace.js'][144] = 0; + _$jscoverage['plugins/searchreplace.js'][146] = 0; + _$jscoverage['plugins/searchreplace.js'][147] = 0; + _$jscoverage['plugins/searchreplace.js'][148] = 0; + _$jscoverage['plugins/searchreplace.js'][150] = 0; + _$jscoverage['plugins/searchreplace.js'][151] = 0; + _$jscoverage['plugins/searchreplace.js'][153] = 0; + _$jscoverage['plugins/searchreplace.js'][154] = 0; + _$jscoverage['plugins/searchreplace.js'][155] = 0; + _$jscoverage['plugins/searchreplace.js'][157] = 0; + _$jscoverage['plugins/searchreplace.js'][158] = 0; + _$jscoverage['plugins/searchreplace.js'][159] = 0; + _$jscoverage['plugins/searchreplace.js'][160] = 0; + _$jscoverage['plugins/searchreplace.js'][162] = 0; + _$jscoverage['plugins/searchreplace.js'][163] = 0; + _$jscoverage['plugins/searchreplace.js'][164] = 0; + _$jscoverage['plugins/searchreplace.js'][166] = 0; + _$jscoverage['plugins/searchreplace.js'][167] = 0; + _$jscoverage['plugins/searchreplace.js'][168] = 0; + _$jscoverage['plugins/searchreplace.js'][169] = 0; + _$jscoverage['plugins/searchreplace.js'][170] = 0; + _$jscoverage['plugins/searchreplace.js'][171] = 0; + _$jscoverage['plugins/searchreplace.js'][174] = 0; + _$jscoverage['plugins/searchreplace.js'][176] = 0; + _$jscoverage['plugins/searchreplace.js'][177] = 0; + _$jscoverage['plugins/searchreplace.js'][178] = 0; + _$jscoverage['plugins/searchreplace.js'][183] = 0; +} +_$jscoverage['plugins/searchreplace.js'].source = ["///import core","///commands 查找替换","///commandsName SearchReplace","///commandsTitle 查询替换","///commandsDialog dialogs\\searchreplace","/*"," * @description 查找替换"," * @author zhanyi"," */","UE.plugins['searchreplace'] = function(){",""," var currentRange,"," first,"," me = this;"," me.addListener('reset',function(){"," currentRange = null;"," first = null;"," });"," me.commands['searchreplace'] = {"," execCommand : function(cmdName,opt){"," var me = this,"," sel = me.selection,"," range,"," nativeRange,"," num = 0,"," opt = utils.extend(opt,{"," all : false,"," casesensitive : false,"," dir : 1"," },true);"," var searchStr = opt.searchStr;"," if(browser.ie){"," me.focus();"," while(1){"," var tmpRange;",""," nativeRange = me.document.selection.createRange();"," tmpRange = nativeRange.duplicate();"," tmpRange.moveToElementText(me.document.body);"," if(opt.all){"," first = 0;"," opt.dir = 1;"," if(currentRange){"," tmpRange.setEndPoint(opt.dir == -1 ? 'EndToStart' : 'StartToEnd',currentRange);"," }else{"," tmpRange.moveToElementText(me.document.body);"," }",""," }else{"," tmpRange.setEndPoint(opt.dir == -1 ? 'EndToStart' : 'StartToEnd',nativeRange);"," if(opt.hasOwnProperty(\"replaceStr\")){"," tmpRange.setEndPoint(opt.dir == -1 ? 'StartToEnd' : 'EndToStart',nativeRange);"," }"," }"," nativeRange = tmpRange.duplicate();",""," if(/^\\/[^/]+\\/\\w*$/.test(opt.searchStr)){"," var str = tmpRange.text,"," reg = new RegExp(opt.searchStr.replace(/^\\/|\\/\\w*$/g,''),'g' + (opt.casesensitive ? '':'i'));"," var match = str.match(reg);"," if(match && match.length){"," searchStr = opt.dir < 0 ? match[match.length -1] : match[0];"," }else{"," currentRange = null;"," return num;"," }"," }"," if(!tmpRange.findText(searchStr,opt.dir,opt.casesensitive ? 4 : 0)){"," currentRange = null;"," tmpRange = me.document.selection.createRange();"," tmpRange.scrollIntoView();"," currentRange = null;"," return num;"," }"," tmpRange.select();"," //替换"," if(opt.hasOwnProperty(\"replaceStr\")){"," range = sel.getRange();"," range.deleteContents().insertNode(range.document.createTextNode(opt.replaceStr)).select();"," currentRange = sel.getNative().createRange();",""," }"," num++;"," if(!opt.all){"," break;"," }"," }"," }else{",""," var w = me.window,nativeSel = sel.getNative();"," while(1){"," if(opt.all){"," if(currentRange){"," currentRange.collapse(false);"," nativeRange = currentRange;"," }else{"," nativeRange = me.document.createRange();"," nativeRange.setStart(me.document.body,0);"," nativeRange.collapse(true);"," }",""," nativeSel.removeAllRanges();"," nativeSel.addRange( nativeRange );"," first = 0;"," opt.dir = 1;"," }else{"," //safari弹出层,原生已经找不到range了,所以需要先选回来,再取原生"," if(browser.safari){"," me.selection.getRange().select();",""," }"," var nativeSel = w.getSelection();"," if(!nativeSel.rangeCount){"," nativeRange = currentRange || me._bakNativeRange;"," }else{"," nativeRange = nativeSel.getRangeAt(0);"," }",""," if(opt.hasOwnProperty(\"replaceStr\")){"," nativeRange.collapse(opt.dir == 1 ? true : false);"," }"," }",""," //如果是第一次并且海选中了内容那就要清除,为find做准备",""," if(!first){"," nativeRange.collapse( opt.dir <0 ? true : false);"," nativeSel.removeAllRanges();"," nativeSel.addRange( nativeRange );"," }else{"," nativeSel.removeAllRanges();"," }"," //是正则查找",""," if(/^\\/[^/]+\\/\\w*$/.test(opt.searchStr)){"," var tmpRange = nativeRange.cloneRange();"," //向前查找"," if(opt.dir < 0 ){"," nativeRange.collapse(true);"," nativeRange.setStart(me.body,0);"," }else{"," nativeRange.setEnd(me.body,me.body.childNodes.length);"," }"," var str = nativeRange + '',"," reg = new RegExp(opt.searchStr.replace(/^\\/|\\/\\w*$/g,''),'g' + (opt.casesensitive ? '':'i'));"," var match = str.match(reg);"," if(match && match.length){"," searchStr = opt.dir < 0 ? match[match.length -1] : match[0];"," }else{"," currentRange = null;"," return num;"," }"," nativeSel.removeAllRanges();"," nativeRange = tmpRange;"," nativeSel.addRange(nativeRange);"," }"," if(!w.find(searchStr,opt.casesensitive,opt.dir < 0 ? true : false) ) {"," currentRange = null;"," nativeSel.removeAllRanges();"," return num;"," }"," first = 0;"," range = w.getSelection().getRangeAt(0);"," if(!range.collapsed){",""," if(opt.hasOwnProperty(\"replaceStr\")){"," range.deleteContents();"," var text = w.document.createTextNode(opt.replaceStr);"," range.insertNode(text);"," range.selectNode(text);"," nativeSel.addRange(range);",""," }"," currentRange = range.cloneRange();"," }"," num++;"," if(!opt.all){"," break;"," }"," }",""," }"," return true;"," }"," };","","};"]; +_$jscoverage['plugins/searchreplace.js'][10]++; +UE.plugins.searchreplace = (function () { + _$jscoverage['plugins/searchreplace.js'][12]++; + var currentRange, first, me = this; + _$jscoverage['plugins/searchreplace.js'][15]++; + me.addListener("reset", (function () { + _$jscoverage['plugins/searchreplace.js'][16]++; + currentRange = null; + _$jscoverage['plugins/searchreplace.js'][17]++; + first = null; +})); + _$jscoverage['plugins/searchreplace.js'][19]++; + me.commands.searchreplace = {execCommand: (function (cmdName, opt) { + _$jscoverage['plugins/searchreplace.js'][21]++; + var me = this, sel = me.selection, range, nativeRange, num = 0, opt = utils.extend(opt, {all: false, casesensitive: false, dir: 1}, true); + _$jscoverage['plugins/searchreplace.js'][31]++; + var searchStr = opt.searchStr; + _$jscoverage['plugins/searchreplace.js'][32]++; + if (browser.ie) { + _$jscoverage['plugins/searchreplace.js'][33]++; + me.focus(); + _$jscoverage['plugins/searchreplace.js'][34]++; + while (true) { + _$jscoverage['plugins/searchreplace.js'][35]++; + var tmpRange; + _$jscoverage['plugins/searchreplace.js'][37]++; + nativeRange = me.document.selection.createRange(); + _$jscoverage['plugins/searchreplace.js'][38]++; + tmpRange = nativeRange.duplicate(); + _$jscoverage['plugins/searchreplace.js'][39]++; + tmpRange.moveToElementText(me.document.body); + _$jscoverage['plugins/searchreplace.js'][40]++; + if (opt.all) { + _$jscoverage['plugins/searchreplace.js'][41]++; + first = 0; + _$jscoverage['plugins/searchreplace.js'][42]++; + opt.dir = 1; + _$jscoverage['plugins/searchreplace.js'][43]++; + if (currentRange) { + _$jscoverage['plugins/searchreplace.js'][44]++; + tmpRange.setEndPoint(((opt.dir == -1)? "EndToStart": "StartToEnd"), currentRange); + } + else { + _$jscoverage['plugins/searchreplace.js'][46]++; + tmpRange.moveToElementText(me.document.body); + } + } + else { + _$jscoverage['plugins/searchreplace.js'][50]++; + tmpRange.setEndPoint(((opt.dir == -1)? "EndToStart": "StartToEnd"), nativeRange); + _$jscoverage['plugins/searchreplace.js'][51]++; + if (opt.hasOwnProperty("replaceStr")) { + _$jscoverage['plugins/searchreplace.js'][52]++; + tmpRange.setEndPoint(((opt.dir == -1)? "StartToEnd": "EndToStart"), nativeRange); + } + } + _$jscoverage['plugins/searchreplace.js'][55]++; + nativeRange = tmpRange.duplicate(); + _$jscoverage['plugins/searchreplace.js'][57]++; + if (/^\/[^/]+\/\w*$/.test(opt.searchStr)) { + _$jscoverage['plugins/searchreplace.js'][58]++; + var str = tmpRange.text, reg = new RegExp(opt.searchStr.replace(/^\/|\/\w*$/g, ""), ("g" + (opt.casesensitive? "": "i"))); + _$jscoverage['plugins/searchreplace.js'][60]++; + var match = str.match(reg); + _$jscoverage['plugins/searchreplace.js'][61]++; + if ((match && match.length)) { + _$jscoverage['plugins/searchreplace.js'][62]++; + searchStr = ((opt.dir < 0)? match[(match.length - 1)]: match[0]); + } + else { + _$jscoverage['plugins/searchreplace.js'][64]++; + currentRange = null; + _$jscoverage['plugins/searchreplace.js'][65]++; + return num; + } + } + _$jscoverage['plugins/searchreplace.js'][68]++; + if ((! tmpRange.findText(searchStr, opt.dir, (opt.casesensitive? 4: 0)))) { + _$jscoverage['plugins/searchreplace.js'][69]++; + currentRange = null; + _$jscoverage['plugins/searchreplace.js'][70]++; + tmpRange = me.document.selection.createRange(); + _$jscoverage['plugins/searchreplace.js'][71]++; + tmpRange.scrollIntoView(); + _$jscoverage['plugins/searchreplace.js'][72]++; + currentRange = null; + _$jscoverage['plugins/searchreplace.js'][73]++; + return num; + } + _$jscoverage['plugins/searchreplace.js'][75]++; + tmpRange.select(); + _$jscoverage['plugins/searchreplace.js'][77]++; + if (opt.hasOwnProperty("replaceStr")) { + _$jscoverage['plugins/searchreplace.js'][78]++; + range = sel.getRange(); + _$jscoverage['plugins/searchreplace.js'][79]++; + range.deleteContents().insertNode(range.document.createTextNode(opt.replaceStr)).select(); + _$jscoverage['plugins/searchreplace.js'][80]++; + currentRange = sel.getNative().createRange(); + } + _$jscoverage['plugins/searchreplace.js'][83]++; + (num++); + _$jscoverage['plugins/searchreplace.js'][84]++; + if ((! opt.all)) { + _$jscoverage['plugins/searchreplace.js'][85]++; + break; + } +} + } + else { + _$jscoverage['plugins/searchreplace.js'][90]++; + var w = me.window, nativeSel = sel.getNative(); + _$jscoverage['plugins/searchreplace.js'][91]++; + while (true) { + _$jscoverage['plugins/searchreplace.js'][92]++; + if (opt.all) { + _$jscoverage['plugins/searchreplace.js'][93]++; + if (currentRange) { + _$jscoverage['plugins/searchreplace.js'][94]++; + currentRange.collapse(false); + _$jscoverage['plugins/searchreplace.js'][95]++; + nativeRange = currentRange; + } + else { + _$jscoverage['plugins/searchreplace.js'][97]++; + nativeRange = me.document.createRange(); + _$jscoverage['plugins/searchreplace.js'][98]++; + nativeRange.setStart(me.document.body, 0); + _$jscoverage['plugins/searchreplace.js'][99]++; + nativeRange.collapse(true); + } + _$jscoverage['plugins/searchreplace.js'][102]++; + nativeSel.removeAllRanges(); + _$jscoverage['plugins/searchreplace.js'][103]++; + nativeSel.addRange(nativeRange); + _$jscoverage['plugins/searchreplace.js'][104]++; + first = 0; + _$jscoverage['plugins/searchreplace.js'][105]++; + opt.dir = 1; + } + else { + _$jscoverage['plugins/searchreplace.js'][108]++; + if (browser.safari) { + _$jscoverage['plugins/searchreplace.js'][109]++; + me.selection.getRange().select(); + } + _$jscoverage['plugins/searchreplace.js'][112]++; + var nativeSel = w.getSelection(); + _$jscoverage['plugins/searchreplace.js'][113]++; + if ((! nativeSel.rangeCount)) { + _$jscoverage['plugins/searchreplace.js'][114]++; + nativeRange = (currentRange || me._bakNativeRange); + } + else { + _$jscoverage['plugins/searchreplace.js'][116]++; + nativeRange = nativeSel.getRangeAt(0); + } + _$jscoverage['plugins/searchreplace.js'][119]++; + if (opt.hasOwnProperty("replaceStr")) { + _$jscoverage['plugins/searchreplace.js'][120]++; + nativeRange.collapse(((opt.dir == 1)? true: false)); + } + } + _$jscoverage['plugins/searchreplace.js'][126]++; + if ((! first)) { + _$jscoverage['plugins/searchreplace.js'][127]++; + nativeRange.collapse(((opt.dir < 0)? true: false)); + _$jscoverage['plugins/searchreplace.js'][128]++; + nativeSel.removeAllRanges(); + _$jscoverage['plugins/searchreplace.js'][129]++; + nativeSel.addRange(nativeRange); + } + else { + _$jscoverage['plugins/searchreplace.js'][131]++; + nativeSel.removeAllRanges(); + } + _$jscoverage['plugins/searchreplace.js'][135]++; + if (/^\/[^/]+\/\w*$/.test(opt.searchStr)) { + _$jscoverage['plugins/searchreplace.js'][136]++; + var tmpRange = nativeRange.cloneRange(); + _$jscoverage['plugins/searchreplace.js'][138]++; + if ((opt.dir < 0)) { + _$jscoverage['plugins/searchreplace.js'][139]++; + nativeRange.collapse(true); + _$jscoverage['plugins/searchreplace.js'][140]++; + nativeRange.setStart(me.body, 0); + } + else { + _$jscoverage['plugins/searchreplace.js'][142]++; + nativeRange.setEnd(me.body, me.body.childNodes.length); + } + _$jscoverage['plugins/searchreplace.js'][144]++; + var str = (nativeRange + ""), reg = new RegExp(opt.searchStr.replace(/^\/|\/\w*$/g, ""), ("g" + (opt.casesensitive? "": "i"))); + _$jscoverage['plugins/searchreplace.js'][146]++; + var match = str.match(reg); + _$jscoverage['plugins/searchreplace.js'][147]++; + if ((match && match.length)) { + _$jscoverage['plugins/searchreplace.js'][148]++; + searchStr = ((opt.dir < 0)? match[(match.length - 1)]: match[0]); + } + else { + _$jscoverage['plugins/searchreplace.js'][150]++; + currentRange = null; + _$jscoverage['plugins/searchreplace.js'][151]++; + return num; + } + _$jscoverage['plugins/searchreplace.js'][153]++; + nativeSel.removeAllRanges(); + _$jscoverage['plugins/searchreplace.js'][154]++; + nativeRange = tmpRange; + _$jscoverage['plugins/searchreplace.js'][155]++; + nativeSel.addRange(nativeRange); + } + _$jscoverage['plugins/searchreplace.js'][157]++; + if ((! w.find(searchStr, opt.casesensitive, ((opt.dir < 0)? true: false)))) { + _$jscoverage['plugins/searchreplace.js'][158]++; + currentRange = null; + _$jscoverage['plugins/searchreplace.js'][159]++; + nativeSel.removeAllRanges(); + _$jscoverage['plugins/searchreplace.js'][160]++; + return num; + } + _$jscoverage['plugins/searchreplace.js'][162]++; + first = 0; + _$jscoverage['plugins/searchreplace.js'][163]++; + range = w.getSelection().getRangeAt(0); + _$jscoverage['plugins/searchreplace.js'][164]++; + if ((! range.collapsed)) { + _$jscoverage['plugins/searchreplace.js'][166]++; + if (opt.hasOwnProperty("replaceStr")) { + _$jscoverage['plugins/searchreplace.js'][167]++; + range.deleteContents(); + _$jscoverage['plugins/searchreplace.js'][168]++; + var text = w.document.createTextNode(opt.replaceStr); + _$jscoverage['plugins/searchreplace.js'][169]++; + range.insertNode(text); + _$jscoverage['plugins/searchreplace.js'][170]++; + range.selectNode(text); + _$jscoverage['plugins/searchreplace.js'][171]++; + nativeSel.addRange(range); + } + _$jscoverage['plugins/searchreplace.js'][174]++; + currentRange = range.cloneRange(); + } + _$jscoverage['plugins/searchreplace.js'][176]++; + (num++); + _$jscoverage['plugins/searchreplace.js'][177]++; + if ((! opt.all)) { + _$jscoverage['plugins/searchreplace.js'][178]++; + break; + } +} + } + _$jscoverage['plugins/searchreplace.js'][183]++; + return true; +})}; +}); diff --git a/_test/coverage/plugins/selectall.js b/_test/coverage/plugins/selectall.js new file mode 100644 index 000000000..a59fe08d2 --- /dev/null +++ b/_test/coverage/plugins/selectall.js @@ -0,0 +1,80 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/selectall.js']) { + _$jscoverage['plugins/selectall.js'] = []; + _$jscoverage['plugins/selectall.js'][17] = 0; + _$jscoverage['plugins/selectall.js'][18] = 0; + _$jscoverage['plugins/selectall.js'][19] = 0; + _$jscoverage['plugins/selectall.js'][22] = 0; + _$jscoverage['plugins/selectall.js'][24] = 0; + _$jscoverage['plugins/selectall.js'][25] = 0; + _$jscoverage['plugins/selectall.js'][27] = 0; + _$jscoverage['plugins/selectall.js'][28] = 0; + _$jscoverage['plugins/selectall.js'][30] = 0; + _$jscoverage['plugins/selectall.js'][32] = 0; + _$jscoverage['plugins/selectall.js'][39] = 0; +} +_$jscoverage['plugins/selectall.js'].source = ["/**"," * 全选"," * @file"," * @since 1.2.6.1"," */","","/**"," * 选中编辑器里的所有内容"," * @command selectall"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @example"," * ```javascript"," * editor.execCommand( 'selectall' );"," * ```"," */","UE.plugins['selectall'] = function(){"," var me = this;"," me.commands['selectall'] = {"," execCommand : function(){"," //去掉了原生的selectAll,因为会出现报错和当内容为空时,不能出现闭合状态的光标"," var me = this,body = me.body,"," range = me.selection.getRange();"," range.selectNodeContents(body);"," if(domUtils.isEmptyBlock(body)){"," //opera不能自动合并到元素的里边,要手动处理一下"," if(browser.opera && body.firstChild && body.firstChild.nodeType == 1){"," range.setStartAtFirst(body.firstChild);"," }"," range.collapse(true);"," }"," range.select(true);"," },"," notNeedUndo : 1"," };","",""," //快捷键"," me.addshortcutkey({"," \"selectAll\" : \"ctrl+65\""," });","};"]; +_$jscoverage['plugins/selectall.js'][17]++; +UE.plugins.selectall = (function () { + _$jscoverage['plugins/selectall.js'][18]++; + var me = this; + _$jscoverage['plugins/selectall.js'][19]++; + me.commands.selectall = {execCommand: (function () { + _$jscoverage['plugins/selectall.js'][22]++; + var me = this, body = me.body, range = me.selection.getRange(); + _$jscoverage['plugins/selectall.js'][24]++; + range.selectNodeContents(body); + _$jscoverage['plugins/selectall.js'][25]++; + if (domUtils.isEmptyBlock(body)) { + _$jscoverage['plugins/selectall.js'][27]++; + if ((browser.opera && body.firstChild && (body.firstChild.nodeType == 1))) { + _$jscoverage['plugins/selectall.js'][28]++; + range.setStartAtFirst(body.firstChild); + } + _$jscoverage['plugins/selectall.js'][30]++; + range.collapse(true); + } + _$jscoverage['plugins/selectall.js'][32]++; + range.select(true); +}), notNeedUndo: 1}; + _$jscoverage['plugins/selectall.js'][39]++; + me.addshortcutkey({"selectAll": "ctrl+65"}); +}); diff --git a/_test/coverage/plugins/shortcutmenu.js b/_test/coverage/plugins/shortcutmenu.js new file mode 100644 index 000000000..1f728c1db --- /dev/null +++ b/_test/coverage/plugins/shortcutmenu.js @@ -0,0 +1,145 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/shortcutmenu.js']) { + _$jscoverage['plugins/shortcutmenu.js'] = []; + _$jscoverage['plugins/shortcutmenu.js'][12] = 0; + _$jscoverage['plugins/shortcutmenu.js'][13] = 0; + _$jscoverage['plugins/shortcutmenu.js'][17] = 0; + _$jscoverage['plugins/shortcutmenu.js'][18] = 0; + _$jscoverage['plugins/shortcutmenu.js'][21] = 0; + _$jscoverage['plugins/shortcutmenu.js'][22] = 0; + _$jscoverage['plugins/shortcutmenu.js'][32] = 0; + _$jscoverage['plugins/shortcutmenu.js'][33] = 0; + _$jscoverage['plugins/shortcutmenu.js'][34] = 0; + _$jscoverage['plugins/shortcutmenu.js'][36] = 0; + _$jscoverage['plugins/shortcutmenu.js'][37] = 0; + _$jscoverage['plugins/shortcutmenu.js'][44] = 0; + _$jscoverage['plugins/shortcutmenu.js'][45] = 0; + _$jscoverage['plugins/shortcutmenu.js'][48] = 0; + _$jscoverage['plugins/shortcutmenu.js'][52] = 0; + _$jscoverage['plugins/shortcutmenu.js'][53] = 0; + _$jscoverage['plugins/shortcutmenu.js'][54] = 0; + _$jscoverage['plugins/shortcutmenu.js'][55] = 0; + _$jscoverage['plugins/shortcutmenu.js'][56] = 0; + _$jscoverage['plugins/shortcutmenu.js'][57] = 0; + _$jscoverage['plugins/shortcutmenu.js'][59] = 0; + _$jscoverage['plugins/shortcutmenu.js'][61] = 0; + _$jscoverage['plugins/shortcutmenu.js'][62] = 0; + _$jscoverage['plugins/shortcutmenu.js'][63] = 0; + _$jscoverage['plugins/shortcutmenu.js'][69] = 0; + _$jscoverage['plugins/shortcutmenu.js'][70] = 0; + _$jscoverage['plugins/shortcutmenu.js'][74] = 0; + _$jscoverage['plugins/shortcutmenu.js'][75] = 0; + _$jscoverage['plugins/shortcutmenu.js'][76] = 0; +} +_$jscoverage['plugins/shortcutmenu.js'].source = ["///import core","///commands 弹出菜单","// commandsName popupmenu","///commandsTitle 弹出菜单","/*"," * 弹出菜单"," * @function"," * @name baidu.editor.plugins.popupmenu"," * @author xuheng"," */","","UE.plugins['shortcutmenu'] = function () {"," var me = this,"," menu,"," items = me.options.shortcutMenu || [];",""," if (!items.length) {"," return;"," }",""," me.addListener ('contextmenu mouseup' , function (type , e) {"," var me = this,"," customEvt = {"," type : type ,"," target : e.target || e.srcElement ,"," screenX : e.screenX ,"," screenY : e.screenY ,"," clientX : e.clientX ,"," clientY : e.clientY"," };",""," setTimeout (function () {"," var rng = me.selection.getRange ();"," if (rng.collapsed === false || type == \"contextmenu\") {",""," if (!menu) {"," menu = new baidu.editor.ui.ShortCutMenu ({"," editor : me ,"," items : items ,"," theme : me.options.theme ,"," className : 'edui-shortcutmenu'"," });",""," menu.render ();"," me.fireEvent (\"afterrendershortcutmenu\" , menu);"," }",""," menu.show (customEvt , !!UE.plugins['contextmenu']);"," }"," });",""," if (type == 'contextmenu') {"," domUtils.preventDefault (e);"," if (browser.ie) {"," var ieRange;"," try {"," ieRange = me.selection.getNative ().createRange ();"," } catch (e) {"," return;"," }"," if (ieRange.item) {"," var range = new dom.Range (me.document);"," range.selectNode (ieRange.item (0)).select (true , true);",""," }"," }"," }",""," if (type == \"keydown\") {"," menu && !menu.isHidden && menu.hide ();"," }"," });",""," me.addListener ('keydown' , function (type) {"," if (type == \"keydown\") {"," menu && !menu.isHidden && menu.hide ();"," }",""," });","","};","",""]; +_$jscoverage['plugins/shortcutmenu.js'][12]++; +UE.plugins.shortcutmenu = (function () { + _$jscoverage['plugins/shortcutmenu.js'][13]++; + var me = this, menu, items = (me.options.shortcutMenu || []); + _$jscoverage['plugins/shortcutmenu.js'][17]++; + if ((! items.length)) { + _$jscoverage['plugins/shortcutmenu.js'][18]++; + return; + } + _$jscoverage['plugins/shortcutmenu.js'][21]++; + me.addListener("contextmenu mouseup", (function (type, e) { + _$jscoverage['plugins/shortcutmenu.js'][22]++; + var me = this, customEvt = {type: type, target: (e.target || e.srcElement), screenX: e.screenX, screenY: e.screenY, clientX: e.clientX, clientY: e.clientY}; + _$jscoverage['plugins/shortcutmenu.js'][32]++; + setTimeout((function () { + _$jscoverage['plugins/shortcutmenu.js'][33]++; + var rng = me.selection.getRange(); + _$jscoverage['plugins/shortcutmenu.js'][34]++; + if (((rng.collapsed === false) || (type == "contextmenu"))) { + _$jscoverage['plugins/shortcutmenu.js'][36]++; + if ((! menu)) { + _$jscoverage['plugins/shortcutmenu.js'][37]++; + menu = new (baidu.editor.ui.ShortCutMenu)({editor: me, items: items, theme: me.options.theme, className: "edui-shortcutmenu"}); + _$jscoverage['plugins/shortcutmenu.js'][44]++; + menu.render(); + _$jscoverage['plugins/shortcutmenu.js'][45]++; + me.fireEvent("afterrendershortcutmenu", menu); + } + _$jscoverage['plugins/shortcutmenu.js'][48]++; + menu.show(customEvt, (! (! UE.plugins.contextmenu))); + } +})); + _$jscoverage['plugins/shortcutmenu.js'][52]++; + if ((type == "contextmenu")) { + _$jscoverage['plugins/shortcutmenu.js'][53]++; + domUtils.preventDefault(e); + _$jscoverage['plugins/shortcutmenu.js'][54]++; + if (browser.ie) { + _$jscoverage['plugins/shortcutmenu.js'][55]++; + var ieRange; + _$jscoverage['plugins/shortcutmenu.js'][56]++; + try { + _$jscoverage['plugins/shortcutmenu.js'][57]++; + ieRange = me.selection.getNative().createRange(); + } + catch (e) { + _$jscoverage['plugins/shortcutmenu.js'][59]++; + return; + } + _$jscoverage['plugins/shortcutmenu.js'][61]++; + if (ieRange.item) { + _$jscoverage['plugins/shortcutmenu.js'][62]++; + var range = new (dom.Range)(me.document); + _$jscoverage['plugins/shortcutmenu.js'][63]++; + range.selectNode(ieRange.item(0)).select(true, true); + } + } + } + _$jscoverage['plugins/shortcutmenu.js'][69]++; + if ((type == "keydown")) { + _$jscoverage['plugins/shortcutmenu.js'][70]++; + (menu && (! menu.isHidden) && menu.hide()); + } +})); + _$jscoverage['plugins/shortcutmenu.js'][74]++; + me.addListener("keydown", (function (type) { + _$jscoverage['plugins/shortcutmenu.js'][75]++; + if ((type == "keydown")) { + _$jscoverage['plugins/shortcutmenu.js'][76]++; + (menu && (! menu.isHidden) && menu.hide()); + } +})); +}); diff --git a/_test/coverage/plugins/snapscreen.js b/_test/coverage/plugins/snapscreen.js new file mode 100644 index 000000000..11e252cb1 --- /dev/null +++ b/_test/coverage/plugins/snapscreen.js @@ -0,0 +1,173 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/snapscreen.js']) { + _$jscoverage['plugins/snapscreen.js'] = []; + _$jscoverage['plugins/snapscreen.js'][20] = 0; + _$jscoverage['plugins/snapscreen.js'][21] = 0; + _$jscoverage['plugins/snapscreen.js'][25] = 0; + _$jscoverage['plugins/snapscreen.js'][31] = 0; + _$jscoverage['plugins/snapscreen.js'][33] = 0; + _$jscoverage['plugins/snapscreen.js'][34] = 0; + _$jscoverage['plugins/snapscreen.js'][35] = 0; + _$jscoverage['plugins/snapscreen.js'][36] = 0; + _$jscoverage['plugins/snapscreen.js'][37] = 0; + _$jscoverage['plugins/snapscreen.js'][38] = 0; + _$jscoverage['plugins/snapscreen.js'][39] = 0; + _$jscoverage['plugins/snapscreen.js'][41] = 0; + _$jscoverage['plugins/snapscreen.js'][42] = 0; + _$jscoverage['plugins/snapscreen.js'][43] = 0; + _$jscoverage['plugins/snapscreen.js'][44] = 0; + _$jscoverage['plugins/snapscreen.js'][48] = 0; + _$jscoverage['plugins/snapscreen.js'][50] = 0; + _$jscoverage['plugins/snapscreen.js'][51] = 0; + _$jscoverage['plugins/snapscreen.js'][52] = 0; + _$jscoverage['plugins/snapscreen.js'][54] = 0; + _$jscoverage['plugins/snapscreen.js'][55] = 0; + _$jscoverage['plugins/snapscreen.js'][58] = 0; + _$jscoverage['plugins/snapscreen.js'][59] = 0; + _$jscoverage['plugins/snapscreen.js'][60] = 0; + _$jscoverage['plugins/snapscreen.js'][62] = 0; + _$jscoverage['plugins/snapscreen.js'][68] = 0; + _$jscoverage['plugins/snapscreen.js'][71] = 0; + _$jscoverage['plugins/snapscreen.js'][72] = 0; + _$jscoverage['plugins/snapscreen.js'][74] = 0; + _$jscoverage['plugins/snapscreen.js'][75] = 0; + _$jscoverage['plugins/snapscreen.js'][76] = 0; + _$jscoverage['plugins/snapscreen.js'][77] = 0; + _$jscoverage['plugins/snapscreen.js'][78] = 0; + _$jscoverage['plugins/snapscreen.js'][79] = 0; + _$jscoverage['plugins/snapscreen.js'][81] = 0; + _$jscoverage['plugins/snapscreen.js'][82] = 0; + _$jscoverage['plugins/snapscreen.js'][84] = 0; +} +_$jscoverage['plugins/snapscreen.js'].source = ["/**"," * 截屏"," * @file"," * @since 1.2.6.1"," */","","/**"," * 截屏"," * @command snapscreen"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @example"," * ```javascript"," * //editor是编辑器实例"," * //执行截屏命令, 需要服务器端配合接收图片"," * editor.execCommand( 'snapscreen' );"," * ```"," */","","UE.plugins['snapscreen'] = function(){"," var me = this,"," doc,"," snapplugin;",""," me.setOpt({"," snapscreenServerPort: location.port //屏幕截图的server端端口"," ,snapscreenImgAlign: '' //截图的图片默认的排版方式"," ,snapscreenHost: location.hostname //屏幕截图的server端文件所在的网站地址或者ip,请不要加http://",""," });"," me.commands['snapscreen'] = {"," execCommand: function(){"," var me = this,lang = me.getLang(\"snapScreen_plugin\");"," if(!snapplugin){"," var container = me.container;"," doc = container.ownerDocument || container.document;"," snapplugin = doc.createElement(\"object\");"," try{snapplugin.type = \"application/x-pluginbaidusnap\";}catch(e){"," return;"," }"," snapplugin.style.cssText = \"position:absolute;left:-9999px;\";"," snapplugin.setAttribute(\"width\",\"0\");"," snapplugin.setAttribute(\"height\",\"0\");"," container.appendChild(snapplugin);"," }","",""," var editorOptions = me.options;",""," var onSuccess = function(rs){"," try{"," rs = eval(\"(\"+ rs +\")\");"," }catch(e){"," alert(lang.callBackErrorMsg);"," return;"," }",""," if(rs.state != 'SUCCESS'){"," alert(rs.state);"," return;"," }"," me.execCommand('insertimage', {"," src: editorOptions.snapscreenPath + rs.url,"," floatStyle: editorOptions.snapscreenImgAlign,"," _src:editorOptions.snapscreenPath + rs.url"," });"," };"," var onStartUpload = function(){"," //开始截图上传"," };"," var onError = function(){"," alert(lang.uploadErrorMsg);"," };"," try{"," var port = editorOptions.snapscreenServerPort + '';"," editorOptions.snapscreenServerUrl = editorOptions.snapscreenServerUrl.split( editorOptions.snapscreenHost );"," editorOptions.snapscreenServerUrl = editorOptions.snapscreenServerUrl[1] || editorOptions.snapscreenServerUrl[0];"," if( editorOptions.snapscreenServerUrl.indexOf(\":\"+port) === 0 ) {"," editorOptions.snapscreenServerUrl = editorOptions.snapscreenServerUrl.substring( port.length+1 );"," }"," var ret =snapplugin.saveSnapshot(editorOptions.snapscreenHost, editorOptions.snapscreenServerUrl, port);"," onSuccess(ret);"," }catch(e){"," me.ui._dialogs['snapscreenDialog'].open();"," }"," }"," };","}",""]; +_$jscoverage['plugins/snapscreen.js'][20]++; +UE.plugins.snapscreen = (function () { + _$jscoverage['plugins/snapscreen.js'][21]++; + var me = this, doc, snapplugin; + _$jscoverage['plugins/snapscreen.js'][25]++; + me.setOpt({snapscreenServerPort: location.port, snapscreenImgAlign: "", snapscreenHost: location.hostname}); + _$jscoverage['plugins/snapscreen.js'][31]++; + me.commands.snapscreen = {execCommand: (function () { + _$jscoverage['plugins/snapscreen.js'][33]++; + var me = this, lang = me.getLang("snapScreen_plugin"); + _$jscoverage['plugins/snapscreen.js'][34]++; + if ((! snapplugin)) { + _$jscoverage['plugins/snapscreen.js'][35]++; + var container = me.container; + _$jscoverage['plugins/snapscreen.js'][36]++; + doc = (container.ownerDocument || container.document); + _$jscoverage['plugins/snapscreen.js'][37]++; + snapplugin = doc.createElement("object"); + _$jscoverage['plugins/snapscreen.js'][38]++; + try { + _$jscoverage['plugins/snapscreen.js'][38]++; + snapplugin.type = "application/x-pluginbaidusnap"; + } + catch (e) { + _$jscoverage['plugins/snapscreen.js'][39]++; + return; + } + _$jscoverage['plugins/snapscreen.js'][41]++; + snapplugin.style.cssText = "position:absolute;left:-9999px;"; + _$jscoverage['plugins/snapscreen.js'][42]++; + snapplugin.setAttribute("width", "0"); + _$jscoverage['plugins/snapscreen.js'][43]++; + snapplugin.setAttribute("height", "0"); + _$jscoverage['plugins/snapscreen.js'][44]++; + container.appendChild(snapplugin); + } + _$jscoverage['plugins/snapscreen.js'][48]++; + var editorOptions = me.options; + _$jscoverage['plugins/snapscreen.js'][50]++; + var onSuccess = (function (rs) { + _$jscoverage['plugins/snapscreen.js'][51]++; + try { + _$jscoverage['plugins/snapscreen.js'][52]++; + rs = eval(("(" + rs + ")")); + } + catch (e) { + _$jscoverage['plugins/snapscreen.js'][54]++; + alert(lang.callBackErrorMsg); + _$jscoverage['plugins/snapscreen.js'][55]++; + return; + } + _$jscoverage['plugins/snapscreen.js'][58]++; + if ((rs.state != "SUCCESS")) { + _$jscoverage['plugins/snapscreen.js'][59]++; + alert(rs.state); + _$jscoverage['plugins/snapscreen.js'][60]++; + return; + } + _$jscoverage['plugins/snapscreen.js'][62]++; + me.execCommand("insertimage", {src: (editorOptions.snapscreenPath + rs.url), floatStyle: editorOptions.snapscreenImgAlign, _src: (editorOptions.snapscreenPath + rs.url)}); +}); + _$jscoverage['plugins/snapscreen.js'][68]++; + var onStartUpload = (function () { +}); + _$jscoverage['plugins/snapscreen.js'][71]++; + var onError = (function () { + _$jscoverage['plugins/snapscreen.js'][72]++; + alert(lang.uploadErrorMsg); +}); + _$jscoverage['plugins/snapscreen.js'][74]++; + try { + _$jscoverage['plugins/snapscreen.js'][75]++; + var port = (editorOptions.snapscreenServerPort + ""); + _$jscoverage['plugins/snapscreen.js'][76]++; + editorOptions.snapscreenServerUrl = editorOptions.snapscreenServerUrl.split(editorOptions.snapscreenHost); + _$jscoverage['plugins/snapscreen.js'][77]++; + editorOptions.snapscreenServerUrl = (editorOptions.snapscreenServerUrl[1] || editorOptions.snapscreenServerUrl[0]); + _$jscoverage['plugins/snapscreen.js'][78]++; + if ((editorOptions.snapscreenServerUrl.indexOf((":" + port)) === 0)) { + _$jscoverage['plugins/snapscreen.js'][79]++; + editorOptions.snapscreenServerUrl = editorOptions.snapscreenServerUrl.substring((port.length + 1)); + } + _$jscoverage['plugins/snapscreen.js'][81]++; + var ret = snapplugin.saveSnapshot(editorOptions.snapscreenHost, editorOptions.snapscreenServerUrl, port); + _$jscoverage['plugins/snapscreen.js'][82]++; + onSuccess(ret); + } + catch (e) { + _$jscoverage['plugins/snapscreen.js'][84]++; + me.ui._dialogs.snapscreenDialog.open(); + } +})}; +}); diff --git a/_test/coverage/plugins/source.js b/_test/coverage/plugins/source.js new file mode 100644 index 000000000..a67509153 --- /dev/null +++ b/_test/coverage/plugins/source.js @@ -0,0 +1,476 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/source.js']) { + _$jscoverage['plugins/source.js'] = []; + _$jscoverage['plugins/source.js'][7] = 0; + _$jscoverage['plugins/source.js'][8] = 0; + _$jscoverage['plugins/source.js'][10] = 0; + _$jscoverage['plugins/source.js'][11] = 0; + _$jscoverage['plugins/source.js'][13] = 0; + _$jscoverage['plugins/source.js'][14] = 0; + _$jscoverage['plugins/source.js'][15] = 0; + _$jscoverage['plugins/source.js'][16] = 0; + _$jscoverage['plugins/source.js'][17] = 0; + _$jscoverage['plugins/source.js'][18] = 0; + _$jscoverage['plugins/source.js'][21] = 0; + _$jscoverage['plugins/source.js'][22] = 0; + _$jscoverage['plugins/source.js'][24] = 0; + _$jscoverage['plugins/source.js'][27] = 0; + _$jscoverage['plugins/source.js'][30] = 0; + _$jscoverage['plugins/source.js'][31] = 0; + _$jscoverage['plugins/source.js'][32] = 0; + _$jscoverage['plugins/source.js'][33] = 0; + _$jscoverage['plugins/source.js'][34] = 0; + _$jscoverage['plugins/source.js'][37] = 0; + _$jscoverage['plugins/source.js'][38] = 0; + _$jscoverage['plugins/source.js'][42] = 0; + _$jscoverage['plugins/source.js'][44] = 0; + _$jscoverage['plugins/source.js'][45] = 0; + _$jscoverage['plugins/source.js'][46] = 0; + _$jscoverage['plugins/source.js'][52] = 0; + _$jscoverage['plugins/source.js'][58] = 0; + _$jscoverage['plugins/source.js'][59] = 0; + _$jscoverage['plugins/source.js'][60] = 0; + _$jscoverage['plugins/source.js'][61] = 0; + _$jscoverage['plugins/source.js'][62] = 0; + _$jscoverage['plugins/source.js'][64] = 0; + _$jscoverage['plugins/source.js'][67] = 0; + _$jscoverage['plugins/source.js'][70] = 0; + _$jscoverage['plugins/source.js'][73] = 0; + _$jscoverage['plugins/source.js'][76] = 0; + _$jscoverage['plugins/source.js'][77] = 0; + _$jscoverage['plugins/source.js'][78] = 0; + _$jscoverage['plugins/source.js'][84] = 0; + _$jscoverage['plugins/source.js'][85] = 0; + _$jscoverage['plugins/source.js'][86] = 0; + _$jscoverage['plugins/source.js'][87] = 0; + _$jscoverage['plugins/source.js'][88] = 0; + _$jscoverage['plugins/source.js'][90] = 0; + _$jscoverage['plugins/source.js'][92] = 0; + _$jscoverage['plugins/source.js'][95] = 0; + _$jscoverage['plugins/source.js'][96] = 0; + _$jscoverage['plugins/source.js'][99] = 0; + _$jscoverage['plugins/source.js'][101] = 0; + _$jscoverage['plugins/source.js'][127] = 0; + _$jscoverage['plugins/source.js'][130] = 0; + _$jscoverage['plugins/source.js'][131] = 0; + _$jscoverage['plugins/source.js'][132] = 0; + _$jscoverage['plugins/source.js'][133] = 0; + _$jscoverage['plugins/source.js'][134] = 0; + _$jscoverage['plugins/source.js'][135] = 0; + _$jscoverage['plugins/source.js'][138] = 0; + _$jscoverage['plugins/source.js'][139] = 0; + _$jscoverage['plugins/source.js'][142] = 0; + _$jscoverage['plugins/source.js'][143] = 0; + _$jscoverage['plugins/source.js'][144] = 0; + _$jscoverage['plugins/source.js'][145] = 0; + _$jscoverage['plugins/source.js'][146] = 0; + _$jscoverage['plugins/source.js'][147] = 0; + _$jscoverage['plugins/source.js'][151] = 0; + _$jscoverage['plugins/source.js'][152] = 0; + _$jscoverage['plugins/source.js'][153] = 0; + _$jscoverage['plugins/source.js'][155] = 0; + _$jscoverage['plugins/source.js'][156] = 0; + _$jscoverage['plugins/source.js'][158] = 0; + _$jscoverage['plugins/source.js'][164] = 0; + _$jscoverage['plugins/source.js'][166] = 0; + _$jscoverage['plugins/source.js'][168] = 0; + _$jscoverage['plugins/source.js'][170] = 0; + _$jscoverage['plugins/source.js'][171] = 0; + _$jscoverage['plugins/source.js'][172] = 0; + _$jscoverage['plugins/source.js'][173] = 0; + _$jscoverage['plugins/source.js'][174] = 0; + _$jscoverage['plugins/source.js'][175] = 0; + _$jscoverage['plugins/source.js'][180] = 0; + _$jscoverage['plugins/source.js'][181] = 0; + _$jscoverage['plugins/source.js'][184] = 0; + _$jscoverage['plugins/source.js'][185] = 0; + _$jscoverage['plugins/source.js'][187] = 0; + _$jscoverage['plugins/source.js'][188] = 0; + _$jscoverage['plugins/source.js'][189] = 0; + _$jscoverage['plugins/source.js'][191] = 0; + _$jscoverage['plugins/source.js'][193] = 0; + _$jscoverage['plugins/source.js'][194] = 0; + _$jscoverage['plugins/source.js'][195] = 0; + _$jscoverage['plugins/source.js'][197] = 0; + _$jscoverage['plugins/source.js'][198] = 0; + _$jscoverage['plugins/source.js'][200] = 0; + _$jscoverage['plugins/source.js'][201] = 0; + _$jscoverage['plugins/source.js'][202] = 0; + _$jscoverage['plugins/source.js'][206] = 0; + _$jscoverage['plugins/source.js'][208] = 0; + _$jscoverage['plugins/source.js'][210] = 0; + _$jscoverage['plugins/source.js'][211] = 0; + _$jscoverage['plugins/source.js'][213] = 0; + _$jscoverage['plugins/source.js'][215] = 0; + _$jscoverage['plugins/source.js'][216] = 0; + _$jscoverage['plugins/source.js'][217] = 0; + _$jscoverage['plugins/source.js'][218] = 0; + _$jscoverage['plugins/source.js'][219] = 0; + _$jscoverage['plugins/source.js'][220] = 0; + _$jscoverage['plugins/source.js'][221] = 0; + _$jscoverage['plugins/source.js'][222] = 0; + _$jscoverage['plugins/source.js'][228] = 0; + _$jscoverage['plugins/source.js'][229] = 0; + _$jscoverage['plugins/source.js'][234] = 0; + _$jscoverage['plugins/source.js'][237] = 0; + _$jscoverage['plugins/source.js'][241] = 0; + _$jscoverage['plugins/source.js'][243] = 0; + _$jscoverage['plugins/source.js'][244] = 0; + _$jscoverage['plugins/source.js'][245] = 0; + _$jscoverage['plugins/source.js'][247] = 0; + _$jscoverage['plugins/source.js'][252] = 0; + _$jscoverage['plugins/source.js'][255] = 0; + _$jscoverage['plugins/source.js'][257] = 0; + _$jscoverage['plugins/source.js'][258] = 0; + _$jscoverage['plugins/source.js'][264] = 0; + _$jscoverage['plugins/source.js'][265] = 0; + _$jscoverage['plugins/source.js'][266] = 0; + _$jscoverage['plugins/source.js'][270] = 0; +} +_$jscoverage['plugins/source.js'].source = ["/**"," * 源码编辑插件"," * @file"," * @since 1.2.6.1"," */","","(function (){"," var sourceEditors = {"," textarea: function (editor, holder){"," var textarea = holder.ownerDocument.createElement('textarea');"," textarea.style.cssText = 'position:absolute;resize:none;width:100%;height:100%;border:0;padding:0;margin:0;overflow-y:auto;';"," // todo: IE下只有onresize属性可用... 很纠结"," if (browser.ie && browser.version < 8) {"," textarea.style.width = holder.offsetWidth + 'px';"," textarea.style.height = holder.offsetHeight + 'px';"," holder.onresize = function (){"," textarea.style.width = holder.offsetWidth + 'px';"," textarea.style.height = holder.offsetHeight + 'px';"," };"," }"," holder.appendChild(textarea);"," return {"," setContent: function (content){"," textarea.value = content;"," },"," getContent: function (){"," return textarea.value;"," },"," select: function (){"," var range;"," if (browser.ie) {"," range = textarea.createTextRange();"," range.collapse(true);"," range.select();"," } else {"," //todo: chrome下无法设置焦点"," textarea.setSelectionRange(0, 0);"," textarea.focus();"," }"," },"," dispose: function (){"," holder.removeChild(textarea);"," // todo"," holder.onresize = null;"," textarea = null;"," holder = null;"," }"," };"," },"," codemirror: function (editor, holder){",""," var codeEditor = window.CodeMirror(holder, {"," mode: \"text/html\","," tabMode: \"indent\","," lineNumbers: true,"," lineWrapping:true"," });"," var dom = codeEditor.getWrapperElement();"," dom.style.cssText = 'position:absolute;left:0;top:0;width:100%;height:100%;font-family:consolas,\"Courier new\",monospace;font-size:13px;';"," codeEditor.getScrollerElement().style.cssText = 'position:absolute;left:0;top:0;width:100%;height:100%;';"," codeEditor.refresh();"," return {"," getCodeMirror:function(){"," return codeEditor;"," },"," setContent: function (content){"," codeEditor.setValue(content);"," },"," getContent: function (){"," return codeEditor.getValue();"," },"," select: function (){"," codeEditor.focus();"," },"," dispose: function (){"," holder.removeChild(dom);"," dom = null;"," codeEditor = null;"," }"," };"," }"," };",""," UE.plugins['source'] = function (){"," var me = this;"," var opt = this.options;"," var sourceMode = false;"," var sourceEditor;",""," opt.sourceEditor = browser.ie ? 'textarea' : (opt.sourceEditor || 'codemirror');",""," me.setOpt({"," sourceEditorFirst:false"," });"," function createSourceEditor(holder){"," return sourceEditors[opt.sourceEditor == 'codemirror' && window.CodeMirror ? 'codemirror' : 'textarea'](me, holder);"," }",""," var bakCssText;"," //解决在源码模式下getContent不能得到最新的内容问题"," var oldGetContent = me.getContent,"," bakAddress;","",""," /**"," * 切换源码编辑模式和可视化编辑模式"," * @command source"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @example"," * ```javascript"," * editor.execCommand( 'source');"," * ```"," */",""," /**"," * 查询当前编辑区域的状态是源码模式还是可视化模式"," * @command source"," * @method queryCommandState"," * @param { String } cmd 命令字符串"," * @return { int } 如果当前是源码编辑模式,返回1,否则返回0"," * @example"," * ```javascript"," * editor.queryCommandState( 'source' );"," * ```"," */"," me.commands['source'] = {"," execCommand: function (){",""," sourceMode = !sourceMode;"," if (sourceMode) {"," bakAddress = me.selection.getRange().createAddress(false,true);"," me.undoManger && me.undoManger.save(true);"," if(browser.gecko){"," me.body.contentEditable = false;"," }",""," bakCssText = me.iframe.style.cssText;"," me.iframe.style.cssText += 'position:absolute;left:-32768px;top:-32768px;';","",""," me.fireEvent('beforegetcontent');"," var root = UE.htmlparser(me.body.innerHTML);"," me.filterOutputRule(root);"," root.traversal(function (node) {"," if (node.type == 'element') {"," switch (node.tagName) {"," case 'td':"," case 'th':"," case 'caption':"," if(node.children && node.children.length == 1){"," if(node.firstChild().tagName == 'br' ){"," node.removeChild(node.firstChild())"," }"," };"," break;"," case 'pre':"," node.innerText(node.innerText().replace(/&nbsp;/g,' '))",""," }"," }"," });",""," me.fireEvent('aftergetcontent');",""," var content = root.toHtml(true);",""," sourceEditor = createSourceEditor(me.iframe.parentNode);",""," sourceEditor.setContent(content);"," setTimeout(function (){"," sourceEditor.select();"," me.addListener('fullscreenchanged', function(){"," try{"," sourceEditor.getCodeMirror().refresh()"," }catch(e){}"," });"," });"," //重置getContent,源码模式下取值也能是最新的数据"," me.getContent = function (){"," return sourceEditor.getContent() || '<p>' + (browser.ie ? '' : '<br/>')+'</p>';"," };"," } else {"," me.iframe.style.cssText = bakCssText;"," var cont = sourceEditor.getContent() || '<p>' + (browser.ie ? '' : '<br/>')+'</p>';"," //处理掉block节点前后的空格,有可能会误命中,暂时不考虑"," cont = cont.replace(new RegExp('[\\\\r\\\\t\\\\n ]*<\\/?(\\\\w+)\\\\s*(?:[^>]*)>','g'), function(a,b){"," if(b && !dtd.$inlineWithA[b.toLowerCase()]){"," return a.replace(/(^[\\n\\r\\t ]*)|([\\n\\r\\t ]*$)/g,'');"," }"," return a.replace(/(^[\\n\\r\\t]*)|([\\n\\r\\t]*$)/g,'')"," });"," me.setContent(cont);"," sourceEditor.dispose();"," sourceEditor = null;"," //还原getContent方法"," me.getContent = oldGetContent;"," var first = me.body.firstChild;"," //trace:1106 都删除空了,下边会报错,所以补充一个p占位"," if(!first){"," me.body.innerHTML = '<p>'+(browser.ie?'':'<br/>')+'</p>';"," first = me.body.firstChild;"," }"," //要在ifm为显示时ff才能取到selection,否则报错"," //这里不能比较位置了"," me.undoManger && me.undoManger.save(true);",""," if(browser.gecko){",""," var input = document.createElement('input');"," input.style.cssText = 'position:absolute;left:0;top:-32768px';",""," document.body.appendChild(input);",""," me.body.contentEditable = false;"," setTimeout(function(){"," domUtils.setViewportOffset(input, { left: -32768, top: 0 });"," input.focus();"," setTimeout(function(){"," me.body.contentEditable = true;"," me.selection.getRange().moveToAddress(bakAddress).select(true);"," domUtils.remove(input);"," });",""," });"," }else{"," //ie下有可能报错,比如在代码顶头的情况"," try{"," me.selection.getRange().moveToAddress(bakAddress).select(true);"," }catch(e){}",""," }"," }"," this.fireEvent('sourcemodechanged', sourceMode);"," },"," queryCommandState: function (){"," return sourceMode|0;"," },"," notNeedUndo : 1"," };"," var oldQueryCommandState = me.queryCommandState;",""," me.queryCommandState = function (cmdName){"," cmdName = cmdName.toLowerCase();"," if (sourceMode) {"," //源码模式下可以开启的命令"," return cmdName in {"," 'source' : 1,"," 'fullscreen' : 1"," } ? 1 : -1"," }"," return oldQueryCommandState.apply(this, arguments);"," };",""," if(opt.sourceEditor == \"codemirror\"){",""," me.addListener(\"ready\",function(){"," utils.loadFile(document,{"," src : opt.codeMirrorJsUrl || opt.UEDITOR_HOME_URL + \"third-party/codemirror/codemirror.js\","," tag : \"script\","," type : \"text/javascript\","," defer : \"defer\""," },function(){"," if(opt.sourceEditorFirst){"," setTimeout(function(){"," me.execCommand(\"source\");"," },0);"," }"," });"," utils.loadFile(document,{"," tag : \"link\","," rel : \"stylesheet\","," type : \"text/css\","," href : opt.codeMirrorCssUrl || opt.UEDITOR_HOME_URL + \"third-party/codemirror/codemirror.css\""," });",""," });"," }",""," };","","})();"]; +_$jscoverage['plugins/source.js'][7]++; +(function () { + _$jscoverage['plugins/source.js'][8]++; + var sourceEditors = {textarea: (function (editor, holder) { + _$jscoverage['plugins/source.js'][10]++; + var textarea = holder.ownerDocument.createElement("textarea"); + _$jscoverage['plugins/source.js'][11]++; + textarea.style.cssText = "position:absolute;resize:none;width:100%;height:100%;border:0;padding:0;margin:0;overflow-y:auto;"; + _$jscoverage['plugins/source.js'][13]++; + if ((browser.ie && (browser.version < 8))) { + _$jscoverage['plugins/source.js'][14]++; + textarea.style.width = (holder.offsetWidth + "px"); + _$jscoverage['plugins/source.js'][15]++; + textarea.style.height = (holder.offsetHeight + "px"); + _$jscoverage['plugins/source.js'][16]++; + holder.onresize = (function () { + _$jscoverage['plugins/source.js'][17]++; + textarea.style.width = (holder.offsetWidth + "px"); + _$jscoverage['plugins/source.js'][18]++; + textarea.style.height = (holder.offsetHeight + "px"); +}); + } + _$jscoverage['plugins/source.js'][21]++; + holder.appendChild(textarea); + _$jscoverage['plugins/source.js'][22]++; + return ({setContent: (function (content) { + _$jscoverage['plugins/source.js'][24]++; + textarea.value = content; +}), getContent: (function () { + _$jscoverage['plugins/source.js'][27]++; + return textarea.value; +}), select: (function () { + _$jscoverage['plugins/source.js'][30]++; + var range; + _$jscoverage['plugins/source.js'][31]++; + if (browser.ie) { + _$jscoverage['plugins/source.js'][32]++; + range = textarea.createTextRange(); + _$jscoverage['plugins/source.js'][33]++; + range.collapse(true); + _$jscoverage['plugins/source.js'][34]++; + range.select(); + } + else { + _$jscoverage['plugins/source.js'][37]++; + textarea.setSelectionRange(0, 0); + _$jscoverage['plugins/source.js'][38]++; + textarea.focus(); + } +}), dispose: (function () { + _$jscoverage['plugins/source.js'][42]++; + holder.removeChild(textarea); + _$jscoverage['plugins/source.js'][44]++; + holder.onresize = null; + _$jscoverage['plugins/source.js'][45]++; + textarea = null; + _$jscoverage['plugins/source.js'][46]++; + holder = null; +})}); +}), codemirror: (function (editor, holder) { + _$jscoverage['plugins/source.js'][52]++; + var codeEditor = window.CodeMirror(holder, {mode: "text/html", tabMode: "indent", lineNumbers: true, lineWrapping: true}); + _$jscoverage['plugins/source.js'][58]++; + var dom = codeEditor.getWrapperElement(); + _$jscoverage['plugins/source.js'][59]++; + dom.style.cssText = "position:absolute;left:0;top:0;width:100%;height:100%;font-family:consolas,\"Courier new\",monospace;font-size:13px;"; + _$jscoverage['plugins/source.js'][60]++; + codeEditor.getScrollerElement().style.cssText = "position:absolute;left:0;top:0;width:100%;height:100%;"; + _$jscoverage['plugins/source.js'][61]++; + codeEditor.refresh(); + _$jscoverage['plugins/source.js'][62]++; + return ({getCodeMirror: (function () { + _$jscoverage['plugins/source.js'][64]++; + return codeEditor; +}), setContent: (function (content) { + _$jscoverage['plugins/source.js'][67]++; + codeEditor.setValue(content); +}), getContent: (function () { + _$jscoverage['plugins/source.js'][70]++; + return codeEditor.getValue(); +}), select: (function () { + _$jscoverage['plugins/source.js'][73]++; + codeEditor.focus(); +}), dispose: (function () { + _$jscoverage['plugins/source.js'][76]++; + holder.removeChild(dom); + _$jscoverage['plugins/source.js'][77]++; + dom = null; + _$jscoverage['plugins/source.js'][78]++; + codeEditor = null; +})}); +})}; + _$jscoverage['plugins/source.js'][84]++; + UE.plugins.source = (function () { + _$jscoverage['plugins/source.js'][85]++; + var me = this; + _$jscoverage['plugins/source.js'][86]++; + var opt = this.options; + _$jscoverage['plugins/source.js'][87]++; + var sourceMode = false; + _$jscoverage['plugins/source.js'][88]++; + var sourceEditor; + _$jscoverage['plugins/source.js'][90]++; + opt.sourceEditor = (browser.ie? "textarea": (opt.sourceEditor || "codemirror")); + _$jscoverage['plugins/source.js'][92]++; + me.setOpt({sourceEditorFirst: false}); + _$jscoverage['plugins/source.js'][95]++; + function createSourceEditor(holder) { + _$jscoverage['plugins/source.js'][96]++; + return (sourceEditors[(((opt.sourceEditor == "codemirror") && window.CodeMirror)? "codemirror": "textarea")])(me, holder); +} + _$jscoverage['plugins/source.js'][99]++; + var bakCssText; + _$jscoverage['plugins/source.js'][101]++; + var oldGetContent = me.getContent, bakAddress; + _$jscoverage['plugins/source.js'][127]++; + me.commands.source = {execCommand: (function () { + _$jscoverage['plugins/source.js'][130]++; + sourceMode = (! sourceMode); + _$jscoverage['plugins/source.js'][131]++; + if (sourceMode) { + _$jscoverage['plugins/source.js'][132]++; + bakAddress = me.selection.getRange().createAddress(false, true); + _$jscoverage['plugins/source.js'][133]++; + (me.undoManger && me.undoManger.save(true)); + _$jscoverage['plugins/source.js'][134]++; + if (browser.gecko) { + _$jscoverage['plugins/source.js'][135]++; + me.body.contentEditable = false; + } + _$jscoverage['plugins/source.js'][138]++; + bakCssText = me.iframe.style.cssText; + _$jscoverage['plugins/source.js'][139]++; + me.iframe.style.cssText += "position:absolute;left:-32768px;top:-32768px;"; + _$jscoverage['plugins/source.js'][142]++; + me.fireEvent("beforegetcontent"); + _$jscoverage['plugins/source.js'][143]++; + var root = UE.htmlparser(me.body.innerHTML); + _$jscoverage['plugins/source.js'][144]++; + me.filterOutputRule(root); + _$jscoverage['plugins/source.js'][145]++; + root.traversal((function (node) { + _$jscoverage['plugins/source.js'][146]++; + if ((node.type == "element")) { + _$jscoverage['plugins/source.js'][147]++; + switch (node.tagName) { + case "td": + case "th": + case "caption": + _$jscoverage['plugins/source.js'][151]++; + if ((node.children && (node.children.length == 1))) { + _$jscoverage['plugins/source.js'][152]++; + if ((node.firstChild().tagName == "br")) { + _$jscoverage['plugins/source.js'][153]++; + node.removeChild(node.firstChild()); + } + } + _$jscoverage['plugins/source.js'][155]++; + ; + _$jscoverage['plugins/source.js'][156]++; + break; + case "pre": + _$jscoverage['plugins/source.js'][158]++; + node.innerText(node.innerText().replace(/ /g, " ")); + } + } +})); + _$jscoverage['plugins/source.js'][164]++; + me.fireEvent("aftergetcontent"); + _$jscoverage['plugins/source.js'][166]++; + var content = root.toHtml(true); + _$jscoverage['plugins/source.js'][168]++; + sourceEditor = createSourceEditor(me.iframe.parentNode); + _$jscoverage['plugins/source.js'][170]++; + sourceEditor.setContent(content); + _$jscoverage['plugins/source.js'][171]++; + setTimeout((function () { + _$jscoverage['plugins/source.js'][172]++; + sourceEditor.select(); + _$jscoverage['plugins/source.js'][173]++; + me.addListener("fullscreenchanged", (function () { + _$jscoverage['plugins/source.js'][174]++; + try { + _$jscoverage['plugins/source.js'][175]++; + sourceEditor.getCodeMirror().refresh(); + } + catch (e) { + } +})); +})); + _$jscoverage['plugins/source.js'][180]++; + me.getContent = (function () { + _$jscoverage['plugins/source.js'][181]++; + return (sourceEditor.getContent() || ("

" + (browser.ie? "": "
") + "

")); +}); + } + else { + _$jscoverage['plugins/source.js'][184]++; + me.iframe.style.cssText = bakCssText; + _$jscoverage['plugins/source.js'][185]++; + var cont = (sourceEditor.getContent() || ("

" + (browser.ie? "": "
") + "

")); + _$jscoverage['plugins/source.js'][187]++; + cont = cont.replace(new RegExp("[\\r\\t\\n ]*]*)>", "g"), (function (a, b) { + _$jscoverage['plugins/source.js'][188]++; + if ((b && (! dtd.$inlineWithA[b.toLowerCase()]))) { + _$jscoverage['plugins/source.js'][189]++; + return a.replace(/(^[\n\r\t ]*)|([\n\r\t ]*$)/g, ""); + } + _$jscoverage['plugins/source.js'][191]++; + return a.replace(/(^[\n\r\t]*)|([\n\r\t]*$)/g, ""); +})); + _$jscoverage['plugins/source.js'][193]++; + me.setContent(cont); + _$jscoverage['plugins/source.js'][194]++; + sourceEditor.dispose(); + _$jscoverage['plugins/source.js'][195]++; + sourceEditor = null; + _$jscoverage['plugins/source.js'][197]++; + me.getContent = oldGetContent; + _$jscoverage['plugins/source.js'][198]++; + var first = me.body.firstChild; + _$jscoverage['plugins/source.js'][200]++; + if ((! first)) { + _$jscoverage['plugins/source.js'][201]++; + me.body.innerHTML = ("

" + (browser.ie? "": "
") + "

"); + _$jscoverage['plugins/source.js'][202]++; + first = me.body.firstChild; + } + _$jscoverage['plugins/source.js'][206]++; + (me.undoManger && me.undoManger.save(true)); + _$jscoverage['plugins/source.js'][208]++; + if (browser.gecko) { + _$jscoverage['plugins/source.js'][210]++; + var input = document.createElement("input"); + _$jscoverage['plugins/source.js'][211]++; + input.style.cssText = "position:absolute;left:0;top:-32768px"; + _$jscoverage['plugins/source.js'][213]++; + document.body.appendChild(input); + _$jscoverage['plugins/source.js'][215]++; + me.body.contentEditable = false; + _$jscoverage['plugins/source.js'][216]++; + setTimeout((function () { + _$jscoverage['plugins/source.js'][217]++; + domUtils.setViewportOffset(input, {left: -32768, top: 0}); + _$jscoverage['plugins/source.js'][218]++; + input.focus(); + _$jscoverage['plugins/source.js'][219]++; + setTimeout((function () { + _$jscoverage['plugins/source.js'][220]++; + me.body.contentEditable = true; + _$jscoverage['plugins/source.js'][221]++; + me.selection.getRange().moveToAddress(bakAddress).select(true); + _$jscoverage['plugins/source.js'][222]++; + domUtils.remove(input); +})); +})); + } + else { + _$jscoverage['plugins/source.js'][228]++; + try { + _$jscoverage['plugins/source.js'][229]++; + me.selection.getRange().moveToAddress(bakAddress).select(true); + } + catch (e) { + } + } + } + _$jscoverage['plugins/source.js'][234]++; + this.fireEvent("sourcemodechanged", sourceMode); +}), queryCommandState: (function () { + _$jscoverage['plugins/source.js'][237]++; + return (sourceMode | 0); +}), notNeedUndo: 1}; + _$jscoverage['plugins/source.js'][241]++; + var oldQueryCommandState = me.queryCommandState; + _$jscoverage['plugins/source.js'][243]++; + me.queryCommandState = (function (cmdName) { + _$jscoverage['plugins/source.js'][244]++; + cmdName = cmdName.toLowerCase(); + _$jscoverage['plugins/source.js'][245]++; + if (sourceMode) { + _$jscoverage['plugins/source.js'][247]++; + return ((cmdName in {"source": 1, "fullscreen": 1})? 1: -1); + } + _$jscoverage['plugins/source.js'][252]++; + return oldQueryCommandState.apply(this, arguments); +}); + _$jscoverage['plugins/source.js'][255]++; + if ((opt.sourceEditor == "codemirror")) { + _$jscoverage['plugins/source.js'][257]++; + me.addListener("ready", (function () { + _$jscoverage['plugins/source.js'][258]++; + utils.loadFile(document, {src: (opt.codeMirrorJsUrl || (opt.UEDITOR_HOME_URL + "third-party/codemirror/codemirror.js")), tag: "script", type: "text/javascript", defer: "defer"}, (function () { + _$jscoverage['plugins/source.js'][264]++; + if (opt.sourceEditorFirst) { + _$jscoverage['plugins/source.js'][265]++; + setTimeout((function () { + _$jscoverage['plugins/source.js'][266]++; + me.execCommand("source"); +}), 0); + } +})); + _$jscoverage['plugins/source.js'][270]++; + utils.loadFile(document, {tag: "link", rel: "stylesheet", type: "text/css", href: (opt.codeMirrorCssUrl || (opt.UEDITOR_HOME_URL + "third-party/codemirror/codemirror.css"))}); +})); + } +}); +})(); diff --git a/_test/coverage/plugins/table.action.js b/_test/coverage/plugins/table.action.js new file mode 100644 index 000000000..f42a061c2 --- /dev/null +++ b/_test/coverage/plugins/table.action.js @@ -0,0 +1,3173 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/table.action.js']) { + _$jscoverage['plugins/table.action.js'] = []; + _$jscoverage['plugins/table.action.js'][8] = 0; + _$jscoverage['plugins/table.action.js'][9] = 0; + _$jscoverage['plugins/table.action.js'][29] = 0; + _$jscoverage['plugins/table.action.js'][32] = 0; + _$jscoverage['plugins/table.action.js'][35] = 0; + _$jscoverage['plugins/table.action.js'][38] = 0; + _$jscoverage['plugins/table.action.js'][41] = 0; + _$jscoverage['plugins/table.action.js'][44] = 0; + _$jscoverage['plugins/table.action.js'][45] = 0; + _$jscoverage['plugins/table.action.js'][46] = 0; + _$jscoverage['plugins/table.action.js'][47] = 0; + _$jscoverage['plugins/table.action.js'][48] = 0; + _$jscoverage['plugins/table.action.js'][49] = 0; + _$jscoverage['plugins/table.action.js'][50] = 0; + _$jscoverage['plugins/table.action.js'][51] = 0; + _$jscoverage['plugins/table.action.js'][52] = 0; + _$jscoverage['plugins/table.action.js'][54] = 0; + _$jscoverage['plugins/table.action.js'][56] = 0; + _$jscoverage['plugins/table.action.js'][63] = 0; + _$jscoverage['plugins/table.action.js'][72] = 0; + _$jscoverage['plugins/table.action.js'][76] = 0; + _$jscoverage['plugins/table.action.js'][86] = 0; + _$jscoverage['plugins/table.action.js'][87] = 0; + _$jscoverage['plugins/table.action.js'][115] = 0; + _$jscoverage['plugins/table.action.js'][116] = 0; + _$jscoverage['plugins/table.action.js'][128] = 0; + _$jscoverage['plugins/table.action.js'][130] = 0; + _$jscoverage['plugins/table.action.js'][131] = 0; + _$jscoverage['plugins/table.action.js'][132] = 0; + _$jscoverage['plugins/table.action.js'][134] = 0; + _$jscoverage['plugins/table.action.js'][136] = 0; + _$jscoverage['plugins/table.action.js'][137] = 0; + _$jscoverage['plugins/table.action.js'][139] = 0; + _$jscoverage['plugins/table.action.js'][140] = 0; + _$jscoverage['plugins/table.action.js'][141] = 0; + _$jscoverage['plugins/table.action.js'][142] = 0; + _$jscoverage['plugins/table.action.js'][144] = 0; + _$jscoverage['plugins/table.action.js'][146] = 0; + _$jscoverage['plugins/table.action.js'][149] = 0; + _$jscoverage['plugins/table.action.js'][151] = 0; + _$jscoverage['plugins/table.action.js'][152] = 0; + _$jscoverage['plugins/table.action.js'][153] = 0; + _$jscoverage['plugins/table.action.js'][154] = 0; + _$jscoverage['plugins/table.action.js'][155] = 0; + _$jscoverage['plugins/table.action.js'][156] = 0; + _$jscoverage['plugins/table.action.js'][158] = 0; + _$jscoverage['plugins/table.action.js'][163] = 0; + _$jscoverage['plugins/table.action.js'][165] = 0; + _$jscoverage['plugins/table.action.js'][166] = 0; + _$jscoverage['plugins/table.action.js'][167] = 0; + _$jscoverage['plugins/table.action.js'][168] = 0; + _$jscoverage['plugins/table.action.js'][169] = 0; + _$jscoverage['plugins/table.action.js'][171] = 0; + _$jscoverage['plugins/table.action.js'][172] = 0; + _$jscoverage['plugins/table.action.js'][177] = 0; + _$jscoverage['plugins/table.action.js'][179] = 0; + _$jscoverage['plugins/table.action.js'][181] = 0; + _$jscoverage['plugins/table.action.js'][182] = 0; + _$jscoverage['plugins/table.action.js'][183] = 0; + _$jscoverage['plugins/table.action.js'][185] = 0; + _$jscoverage['plugins/table.action.js'][186] = 0; + _$jscoverage['plugins/table.action.js'][188] = 0; + _$jscoverage['plugins/table.action.js'][189] = 0; + _$jscoverage['plugins/table.action.js'][192] = 0; + _$jscoverage['plugins/table.action.js'][193] = 0; + _$jscoverage['plugins/table.action.js'][195] = 0; + _$jscoverage['plugins/table.action.js'][196] = 0; + _$jscoverage['plugins/table.action.js'][197] = 0; + _$jscoverage['plugins/table.action.js'][198] = 0; + _$jscoverage['plugins/table.action.js'][201] = 0; + _$jscoverage['plugins/table.action.js'][202] = 0; + _$jscoverage['plugins/table.action.js'][203] = 0; + _$jscoverage['plugins/table.action.js'][204] = 0; + _$jscoverage['plugins/table.action.js'][205] = 0; + _$jscoverage['plugins/table.action.js'][213] = 0; + _$jscoverage['plugins/table.action.js'][214] = 0; + _$jscoverage['plugins/table.action.js'][215] = 0; + _$jscoverage['plugins/table.action.js'][216] = 0; + _$jscoverage['plugins/table.action.js'][217] = 0; + _$jscoverage['plugins/table.action.js'][218] = 0; + _$jscoverage['plugins/table.action.js'][219] = 0; + _$jscoverage['plugins/table.action.js'][220] = 0; + _$jscoverage['plugins/table.action.js'][223] = 0; + _$jscoverage['plugins/table.action.js'][224] = 0; + _$jscoverage['plugins/table.action.js'][225] = 0; + _$jscoverage['plugins/table.action.js'][227] = 0; + _$jscoverage['plugins/table.action.js'][234] = 0; + _$jscoverage['plugins/table.action.js'][235] = 0; + _$jscoverage['plugins/table.action.js'][236] = 0; + _$jscoverage['plugins/table.action.js'][239] = 0; + _$jscoverage['plugins/table.action.js'][240] = 0; + _$jscoverage['plugins/table.action.js'][241] = 0; + _$jscoverage['plugins/table.action.js'][242] = 0; + _$jscoverage['plugins/table.action.js'][243] = 0; + _$jscoverage['plugins/table.action.js'][244] = 0; + _$jscoverage['plugins/table.action.js'][245] = 0; + _$jscoverage['plugins/table.action.js'][246] = 0; + _$jscoverage['plugins/table.action.js'][248] = 0; + _$jscoverage['plugins/table.action.js'][249] = 0; + _$jscoverage['plugins/table.action.js'][250] = 0; + _$jscoverage['plugins/table.action.js'][251] = 0; + _$jscoverage['plugins/table.action.js'][252] = 0; + _$jscoverage['plugins/table.action.js'][253] = 0; + _$jscoverage['plugins/table.action.js'][254] = 0; + _$jscoverage['plugins/table.action.js'][255] = 0; + _$jscoverage['plugins/table.action.js'][256] = 0; + _$jscoverage['plugins/table.action.js'][257] = 0; + _$jscoverage['plugins/table.action.js'][258] = 0; + _$jscoverage['plugins/table.action.js'][260] = 0; + _$jscoverage['plugins/table.action.js'][261] = 0; + _$jscoverage['plugins/table.action.js'][262] = 0; + _$jscoverage['plugins/table.action.js'][263] = 0; + _$jscoverage['plugins/table.action.js'][264] = 0; + _$jscoverage['plugins/table.action.js'][265] = 0; + _$jscoverage['plugins/table.action.js'][267] = 0; + _$jscoverage['plugins/table.action.js'][268] = 0; + _$jscoverage['plugins/table.action.js'][269] = 0; + _$jscoverage['plugins/table.action.js'][270] = 0; + _$jscoverage['plugins/table.action.js'][271] = 0; + _$jscoverage['plugins/table.action.js'][273] = 0; + _$jscoverage['plugins/table.action.js'][274] = 0; + _$jscoverage['plugins/table.action.js'][275] = 0; + _$jscoverage['plugins/table.action.js'][276] = 0; + _$jscoverage['plugins/table.action.js'][277] = 0; + _$jscoverage['plugins/table.action.js'][278] = 0; + _$jscoverage['plugins/table.action.js'][279] = 0; + _$jscoverage['plugins/table.action.js'][280] = 0; + _$jscoverage['plugins/table.action.js'][284] = 0; + _$jscoverage['plugins/table.action.js'][285] = 0; + _$jscoverage['plugins/table.action.js'][286] = 0; + _$jscoverage['plugins/table.action.js'][287] = 0; + _$jscoverage['plugins/table.action.js'][288] = 0; + _$jscoverage['plugins/table.action.js'][290] = 0; + _$jscoverage['plugins/table.action.js'][291] = 0; + _$jscoverage['plugins/table.action.js'][292] = 0; + _$jscoverage['plugins/table.action.js'][294] = 0; + _$jscoverage['plugins/table.action.js'][295] = 0; + _$jscoverage['plugins/table.action.js'][296] = 0; + _$jscoverage['plugins/table.action.js'][297] = 0; + _$jscoverage['plugins/table.action.js'][300] = 0; + _$jscoverage['plugins/table.action.js'][301] = 0; + _$jscoverage['plugins/table.action.js'][302] = 0; + _$jscoverage['plugins/table.action.js'][303] = 0; + _$jscoverage['plugins/table.action.js'][304] = 0; + _$jscoverage['plugins/table.action.js'][306] = 0; + _$jscoverage['plugins/table.action.js'][307] = 0; + _$jscoverage['plugins/table.action.js'][308] = 0; + _$jscoverage['plugins/table.action.js'][309] = 0; + _$jscoverage['plugins/table.action.js'][310] = 0; + _$jscoverage['plugins/table.action.js'][311] = 0; + _$jscoverage['plugins/table.action.js'][313] = 0; + _$jscoverage['plugins/table.action.js'][314] = 0; + _$jscoverage['plugins/table.action.js'][316] = 0; + _$jscoverage['plugins/table.action.js'][319] = 0; + _$jscoverage['plugins/table.action.js'][320] = 0; + _$jscoverage['plugins/table.action.js'][321] = 0; + _$jscoverage['plugins/table.action.js'][322] = 0; + _$jscoverage['plugins/table.action.js'][323] = 0; + _$jscoverage['plugins/table.action.js'][324] = 0; + _$jscoverage['plugins/table.action.js'][325] = 0; + _$jscoverage['plugins/table.action.js'][326] = 0; + _$jscoverage['plugins/table.action.js'][330] = 0; + _$jscoverage['plugins/table.action.js'][332] = 0; + _$jscoverage['plugins/table.action.js'][333] = 0; + _$jscoverage['plugins/table.action.js'][334] = 0; + _$jscoverage['plugins/table.action.js'][335] = 0; + _$jscoverage['plugins/table.action.js'][336] = 0; + _$jscoverage['plugins/table.action.js'][337] = 0; + _$jscoverage['plugins/table.action.js'][338] = 0; + _$jscoverage['plugins/table.action.js'][340] = 0; + _$jscoverage['plugins/table.action.js'][341] = 0; + _$jscoverage['plugins/table.action.js'][345] = 0; + _$jscoverage['plugins/table.action.js'][348] = 0; + _$jscoverage['plugins/table.action.js'][352] = 0; + _$jscoverage['plugins/table.action.js'][353] = 0; + _$jscoverage['plugins/table.action.js'][354] = 0; + _$jscoverage['plugins/table.action.js'][355] = 0; + _$jscoverage['plugins/table.action.js'][357] = 0; + _$jscoverage['plugins/table.action.js'][358] = 0; + _$jscoverage['plugins/table.action.js'][359] = 0; + _$jscoverage['plugins/table.action.js'][360] = 0; + _$jscoverage['plugins/table.action.js'][361] = 0; + _$jscoverage['plugins/table.action.js'][362] = 0; + _$jscoverage['plugins/table.action.js'][364] = 0; + _$jscoverage['plugins/table.action.js'][365] = 0; + _$jscoverage['plugins/table.action.js'][368] = 0; + _$jscoverage['plugins/table.action.js'][369] = 0; + _$jscoverage['plugins/table.action.js'][370] = 0; + _$jscoverage['plugins/table.action.js'][371] = 0; + _$jscoverage['plugins/table.action.js'][372] = 0; + _$jscoverage['plugins/table.action.js'][373] = 0; + _$jscoverage['plugins/table.action.js'][375] = 0; + _$jscoverage['plugins/table.action.js'][380] = 0; + _$jscoverage['plugins/table.action.js'][384] = 0; + _$jscoverage['plugins/table.action.js'][385] = 0; + _$jscoverage['plugins/table.action.js'][386] = 0; + _$jscoverage['plugins/table.action.js'][387] = 0; + _$jscoverage['plugins/table.action.js'][388] = 0; + _$jscoverage['plugins/table.action.js'][392] = 0; + _$jscoverage['plugins/table.action.js'][393] = 0; + _$jscoverage['plugins/table.action.js'][395] = 0; + _$jscoverage['plugins/table.action.js'][396] = 0; + _$jscoverage['plugins/table.action.js'][397] = 0; + _$jscoverage['plugins/table.action.js'][398] = 0; + _$jscoverage['plugins/table.action.js'][399] = 0; + _$jscoverage['plugins/table.action.js'][401] = 0; + _$jscoverage['plugins/table.action.js'][402] = 0; + _$jscoverage['plugins/table.action.js'][403] = 0; + _$jscoverage['plugins/table.action.js'][404] = 0; + _$jscoverage['plugins/table.action.js'][410] = 0; + _$jscoverage['plugins/table.action.js'][411] = 0; + _$jscoverage['plugins/table.action.js'][417] = 0; + _$jscoverage['plugins/table.action.js'][418] = 0; + _$jscoverage['plugins/table.action.js'][420] = 0; + _$jscoverage['plugins/table.action.js'][421] = 0; + _$jscoverage['plugins/table.action.js'][422] = 0; + _$jscoverage['plugins/table.action.js'][423] = 0; + _$jscoverage['plugins/table.action.js'][424] = 0; + _$jscoverage['plugins/table.action.js'][425] = 0; + _$jscoverage['plugins/table.action.js'][426] = 0; + _$jscoverage['plugins/table.action.js'][427] = 0; + _$jscoverage['plugins/table.action.js'][428] = 0; + _$jscoverage['plugins/table.action.js'][430] = 0; + _$jscoverage['plugins/table.action.js'][431] = 0; + _$jscoverage['plugins/table.action.js'][432] = 0; + _$jscoverage['plugins/table.action.js'][433] = 0; + _$jscoverage['plugins/table.action.js'][437] = 0; + _$jscoverage['plugins/table.action.js'][438] = 0; + _$jscoverage['plugins/table.action.js'][439] = 0; + _$jscoverage['plugins/table.action.js'][440] = 0; + _$jscoverage['plugins/table.action.js'][441] = 0; + _$jscoverage['plugins/table.action.js'][445] = 0; + _$jscoverage['plugins/table.action.js'][446] = 0; + _$jscoverage['plugins/table.action.js'][448] = 0; + _$jscoverage['plugins/table.action.js'][449] = 0; + _$jscoverage['plugins/table.action.js'][450] = 0; + _$jscoverage['plugins/table.action.js'][452] = 0; + _$jscoverage['plugins/table.action.js'][453] = 0; + _$jscoverage['plugins/table.action.js'][454] = 0; + _$jscoverage['plugins/table.action.js'][455] = 0; + _$jscoverage['plugins/table.action.js'][457] = 0; + _$jscoverage['plugins/table.action.js'][458] = 0; + _$jscoverage['plugins/table.action.js'][459] = 0; + _$jscoverage['plugins/table.action.js'][460] = 0; + _$jscoverage['plugins/table.action.js'][461] = 0; + _$jscoverage['plugins/table.action.js'][475] = 0; + _$jscoverage['plugins/table.action.js'][476] = 0; + _$jscoverage['plugins/table.action.js'][477] = 0; + _$jscoverage['plugins/table.action.js'][478] = 0; + _$jscoverage['plugins/table.action.js'][479] = 0; + _$jscoverage['plugins/table.action.js'][480] = 0; + _$jscoverage['plugins/table.action.js'][482] = 0; + _$jscoverage['plugins/table.action.js'][485] = 0; + _$jscoverage['plugins/table.action.js'][486] = 0; + _$jscoverage['plugins/table.action.js'][487] = 0; + _$jscoverage['plugins/table.action.js'][489] = 0; + _$jscoverage['plugins/table.action.js'][492] = 0; + _$jscoverage['plugins/table.action.js'][494] = 0; + _$jscoverage['plugins/table.action.js'][495] = 0; + _$jscoverage['plugins/table.action.js'][496] = 0; + _$jscoverage['plugins/table.action.js'][497] = 0; + _$jscoverage['plugins/table.action.js'][498] = 0; + _$jscoverage['plugins/table.action.js'][499] = 0; + _$jscoverage['plugins/table.action.js'][501] = 0; + _$jscoverage['plugins/table.action.js'][504] = 0; + _$jscoverage['plugins/table.action.js'][505] = 0; + _$jscoverage['plugins/table.action.js'][506] = 0; + _$jscoverage['plugins/table.action.js'][508] = 0; + _$jscoverage['plugins/table.action.js'][515] = 0; + _$jscoverage['plugins/table.action.js'][518] = 0; + _$jscoverage['plugins/table.action.js'][520] = 0; + _$jscoverage['plugins/table.action.js'][521] = 0; + _$jscoverage['plugins/table.action.js'][522] = 0; + _$jscoverage['plugins/table.action.js'][523] = 0; + _$jscoverage['plugins/table.action.js'][529] = 0; + _$jscoverage['plugins/table.action.js'][530] = 0; + _$jscoverage['plugins/table.action.js'][531] = 0; + _$jscoverage['plugins/table.action.js'][535] = 0; + _$jscoverage['plugins/table.action.js'][537] = 0; + _$jscoverage['plugins/table.action.js'][538] = 0; + _$jscoverage['plugins/table.action.js'][541] = 0; + _$jscoverage['plugins/table.action.js'][542] = 0; + _$jscoverage['plugins/table.action.js'][543] = 0; + _$jscoverage['plugins/table.action.js'][547] = 0; + _$jscoverage['plugins/table.action.js'][548] = 0; + _$jscoverage['plugins/table.action.js'][552] = 0; + _$jscoverage['plugins/table.action.js'][553] = 0; + _$jscoverage['plugins/table.action.js'][555] = 0; + _$jscoverage['plugins/table.action.js'][556] = 0; + _$jscoverage['plugins/table.action.js'][559] = 0; + _$jscoverage['plugins/table.action.js'][560] = 0; + _$jscoverage['plugins/table.action.js'][561] = 0; + _$jscoverage['plugins/table.action.js'][563] = 0; + _$jscoverage['plugins/table.action.js'][564] = 0; + _$jscoverage['plugins/table.action.js'][567] = 0; + _$jscoverage['plugins/table.action.js'][568] = 0; + _$jscoverage['plugins/table.action.js'][569] = 0; + _$jscoverage['plugins/table.action.js'][570] = 0; + _$jscoverage['plugins/table.action.js'][571] = 0; + _$jscoverage['plugins/table.action.js'][574] = 0; + _$jscoverage['plugins/table.action.js'][576] = 0; + _$jscoverage['plugins/table.action.js'][577] = 0; + _$jscoverage['plugins/table.action.js'][578] = 0; + _$jscoverage['plugins/table.action.js'][579] = 0; + _$jscoverage['plugins/table.action.js'][580] = 0; + _$jscoverage['plugins/table.action.js'][582] = 0; + _$jscoverage['plugins/table.action.js'][585] = 0; + _$jscoverage['plugins/table.action.js'][586] = 0; + _$jscoverage['plugins/table.action.js'][587] = 0; + _$jscoverage['plugins/table.action.js'][588] = 0; + _$jscoverage['plugins/table.action.js'][589] = 0; + _$jscoverage['plugins/table.action.js'][590] = 0; + _$jscoverage['plugins/table.action.js'][591] = 0; + _$jscoverage['plugins/table.action.js'][594] = 0; + _$jscoverage['plugins/table.action.js'][598] = 0; + _$jscoverage['plugins/table.action.js'][599] = 0; + _$jscoverage['plugins/table.action.js'][601] = 0; + _$jscoverage['plugins/table.action.js'][602] = 0; + _$jscoverage['plugins/table.action.js'][604] = 0; + _$jscoverage['plugins/table.action.js'][605] = 0; + _$jscoverage['plugins/table.action.js'][606] = 0; + _$jscoverage['plugins/table.action.js'][608] = 0; + _$jscoverage['plugins/table.action.js'][609] = 0; + _$jscoverage['plugins/table.action.js'][610] = 0; + _$jscoverage['plugins/table.action.js'][611] = 0; + _$jscoverage['plugins/table.action.js'][612] = 0; + _$jscoverage['plugins/table.action.js'][615] = 0; + _$jscoverage['plugins/table.action.js'][616] = 0; + _$jscoverage['plugins/table.action.js'][617] = 0; + _$jscoverage['plugins/table.action.js'][618] = 0; + _$jscoverage['plugins/table.action.js'][619] = 0; + _$jscoverage['plugins/table.action.js'][623] = 0; + _$jscoverage['plugins/table.action.js'][624] = 0; + _$jscoverage['plugins/table.action.js'][626] = 0; + _$jscoverage['plugins/table.action.js'][627] = 0; + _$jscoverage['plugins/table.action.js'][630] = 0; + _$jscoverage['plugins/table.action.js'][631] = 0; + _$jscoverage['plugins/table.action.js'][632] = 0; + _$jscoverage['plugins/table.action.js'][634] = 0; + _$jscoverage['plugins/table.action.js'][635] = 0; + _$jscoverage['plugins/table.action.js'][636] = 0; + _$jscoverage['plugins/table.action.js'][638] = 0; + _$jscoverage['plugins/table.action.js'][639] = 0; + _$jscoverage['plugins/table.action.js'][641] = 0; + _$jscoverage['plugins/table.action.js'][642] = 0; + _$jscoverage['plugins/table.action.js'][644] = 0; + _$jscoverage['plugins/table.action.js'][650] = 0; + _$jscoverage['plugins/table.action.js'][651] = 0; + _$jscoverage['plugins/table.action.js'][653] = 0; + _$jscoverage['plugins/table.action.js'][656] = 0; + _$jscoverage['plugins/table.action.js'][657] = 0; + _$jscoverage['plugins/table.action.js'][661] = 0; + _$jscoverage['plugins/table.action.js'][662] = 0; + _$jscoverage['plugins/table.action.js'][663] = 0; + _$jscoverage['plugins/table.action.js'][664] = 0; + _$jscoverage['plugins/table.action.js'][665] = 0; + _$jscoverage['plugins/table.action.js'][666] = 0; + _$jscoverage['plugins/table.action.js'][667] = 0; + _$jscoverage['plugins/table.action.js'][668] = 0; + _$jscoverage['plugins/table.action.js'][669] = 0; + _$jscoverage['plugins/table.action.js'][671] = 0; + _$jscoverage['plugins/table.action.js'][673] = 0; + _$jscoverage['plugins/table.action.js'][674] = 0; + _$jscoverage['plugins/table.action.js'][675] = 0; + _$jscoverage['plugins/table.action.js'][676] = 0; + _$jscoverage['plugins/table.action.js'][677] = 0; + _$jscoverage['plugins/table.action.js'][678] = 0; + _$jscoverage['plugins/table.action.js'][679] = 0; + _$jscoverage['plugins/table.action.js'][682] = 0; + _$jscoverage['plugins/table.action.js'][683] = 0; + _$jscoverage['plugins/table.action.js'][684] = 0; + _$jscoverage['plugins/table.action.js'][685] = 0; + _$jscoverage['plugins/table.action.js'][689] = 0; + _$jscoverage['plugins/table.action.js'][690] = 0; + _$jscoverage['plugins/table.action.js'][691] = 0; + _$jscoverage['plugins/table.action.js'][692] = 0; + _$jscoverage['plugins/table.action.js'][693] = 0; + _$jscoverage['plugins/table.action.js'][695] = 0; + _$jscoverage['plugins/table.action.js'][697] = 0; + _$jscoverage['plugins/table.action.js'][707] = 0; + _$jscoverage['plugins/table.action.js'][708] = 0; + _$jscoverage['plugins/table.action.js'][709] = 0; + _$jscoverage['plugins/table.action.js'][712] = 0; + _$jscoverage['plugins/table.action.js'][713] = 0; + _$jscoverage['plugins/table.action.js'][714] = 0; + _$jscoverage['plugins/table.action.js'][715] = 0; + _$jscoverage['plugins/table.action.js'][719] = 0; + _$jscoverage['plugins/table.action.js'][720] = 0; + _$jscoverage['plugins/table.action.js'][721] = 0; + _$jscoverage['plugins/table.action.js'][722] = 0; + _$jscoverage['plugins/table.action.js'][723] = 0; + _$jscoverage['plugins/table.action.js'][726] = 0; + _$jscoverage['plugins/table.action.js'][727] = 0; + _$jscoverage['plugins/table.action.js'][728] = 0; + _$jscoverage['plugins/table.action.js'][729] = 0; + _$jscoverage['plugins/table.action.js'][731] = 0; + _$jscoverage['plugins/table.action.js'][732] = 0; + _$jscoverage['plugins/table.action.js'][733] = 0; + _$jscoverage['plugins/table.action.js'][736] = 0; + _$jscoverage['plugins/table.action.js'][740] = 0; + _$jscoverage['plugins/table.action.js'][741] = 0; + _$jscoverage['plugins/table.action.js'][742] = 0; + _$jscoverage['plugins/table.action.js'][744] = 0; + _$jscoverage['plugins/table.action.js'][750] = 0; + _$jscoverage['plugins/table.action.js'][752] = 0; + _$jscoverage['plugins/table.action.js'][753] = 0; + _$jscoverage['plugins/table.action.js'][756] = 0; + _$jscoverage['plugins/table.action.js'][759] = 0; + _$jscoverage['plugins/table.action.js'][763] = 0; + _$jscoverage['plugins/table.action.js'][765] = 0; + _$jscoverage['plugins/table.action.js'][767] = 0; + _$jscoverage['plugins/table.action.js'][768] = 0; + _$jscoverage['plugins/table.action.js'][769] = 0; + _$jscoverage['plugins/table.action.js'][770] = 0; + _$jscoverage['plugins/table.action.js'][772] = 0; + _$jscoverage['plugins/table.action.js'][777] = 0; + _$jscoverage['plugins/table.action.js'][778] = 0; + _$jscoverage['plugins/table.action.js'][779] = 0; + _$jscoverage['plugins/table.action.js'][780] = 0; + _$jscoverage['plugins/table.action.js'][781] = 0; + _$jscoverage['plugins/table.action.js'][782] = 0; + _$jscoverage['plugins/table.action.js'][783] = 0; + _$jscoverage['plugins/table.action.js'][784] = 0; + _$jscoverage['plugins/table.action.js'][785] = 0; + _$jscoverage['plugins/table.action.js'][786] = 0; + _$jscoverage['plugins/table.action.js'][788] = 0; + _$jscoverage['plugins/table.action.js'][791] = 0; + _$jscoverage['plugins/table.action.js'][793] = 0; + _$jscoverage['plugins/table.action.js'][794] = 0; + _$jscoverage['plugins/table.action.js'][795] = 0; + _$jscoverage['plugins/table.action.js'][796] = 0; + _$jscoverage['plugins/table.action.js'][799] = 0; + _$jscoverage['plugins/table.action.js'][800] = 0; + _$jscoverage['plugins/table.action.js'][801] = 0; + _$jscoverage['plugins/table.action.js'][802] = 0; + _$jscoverage['plugins/table.action.js'][803] = 0; + _$jscoverage['plugins/table.action.js'][804] = 0; + _$jscoverage['plugins/table.action.js'][806] = 0; + _$jscoverage['plugins/table.action.js'][807] = 0; + _$jscoverage['plugins/table.action.js'][808] = 0; + _$jscoverage['plugins/table.action.js'][809] = 0; + _$jscoverage['plugins/table.action.js'][810] = 0; + _$jscoverage['plugins/table.action.js'][813] = 0; + _$jscoverage['plugins/table.action.js'][817] = 0; + _$jscoverage['plugins/table.action.js'][821] = 0; + _$jscoverage['plugins/table.action.js'][825] = 0; + _$jscoverage['plugins/table.action.js'][827] = 0; + _$jscoverage['plugins/table.action.js'][828] = 0; + _$jscoverage['plugins/table.action.js'][829] = 0; + _$jscoverage['plugins/table.action.js'][830] = 0; + _$jscoverage['plugins/table.action.js'][831] = 0; + _$jscoverage['plugins/table.action.js'][834] = 0; + _$jscoverage['plugins/table.action.js'][838] = 0; + _$jscoverage['plugins/table.action.js'][839] = 0; + _$jscoverage['plugins/table.action.js'][841] = 0; + _$jscoverage['plugins/table.action.js'][842] = 0; + _$jscoverage['plugins/table.action.js'][843] = 0; + _$jscoverage['plugins/table.action.js'][844] = 0; + _$jscoverage['plugins/table.action.js'][845] = 0; + _$jscoverage['plugins/table.action.js'][846] = 0; + _$jscoverage['plugins/table.action.js'][847] = 0; + _$jscoverage['plugins/table.action.js'][848] = 0; + _$jscoverage['plugins/table.action.js'][850] = 0; + _$jscoverage['plugins/table.action.js'][851] = 0; + _$jscoverage['plugins/table.action.js'][853] = 0; + _$jscoverage['plugins/table.action.js'][854] = 0; + _$jscoverage['plugins/table.action.js'][856] = 0; + _$jscoverage['plugins/table.action.js'][857] = 0; + _$jscoverage['plugins/table.action.js'][859] = 0; + _$jscoverage['plugins/table.action.js'][860] = 0; + _$jscoverage['plugins/table.action.js'][862] = 0; + _$jscoverage['plugins/table.action.js'][864] = 0; + _$jscoverage['plugins/table.action.js'][866] = 0; + _$jscoverage['plugins/table.action.js'][867] = 0; + _$jscoverage['plugins/table.action.js'][868] = 0; + _$jscoverage['plugins/table.action.js'][872] = 0; + _$jscoverage['plugins/table.action.js'][873] = 0; + _$jscoverage['plugins/table.action.js'][874] = 0; + _$jscoverage['plugins/table.action.js'][878] = 0; + _$jscoverage['plugins/table.action.js'][879] = 0; + _$jscoverage['plugins/table.action.js'][882] = 0; + _$jscoverage['plugins/table.action.js'][897] = 0; + _$jscoverage['plugins/table.action.js'][898] = 0; + _$jscoverage['plugins/table.action.js'][901] = 0; + _$jscoverage['plugins/table.action.js'][902] = 0; + _$jscoverage['plugins/table.action.js'][904] = 0; + _$jscoverage['plugins/table.action.js'][906] = 0; + _$jscoverage['plugins/table.action.js'][915] = 0; + _$jscoverage['plugins/table.action.js'][916] = 0; + _$jscoverage['plugins/table.action.js'][917] = 0; + _$jscoverage['plugins/table.action.js'][918] = 0; + _$jscoverage['plugins/table.action.js'][924] = 0; + _$jscoverage['plugins/table.action.js'][925] = 0; + _$jscoverage['plugins/table.action.js'][927] = 0; + _$jscoverage['plugins/table.action.js'][934] = 0; + _$jscoverage['plugins/table.action.js'][935] = 0; + _$jscoverage['plugins/table.action.js'][936] = 0; + _$jscoverage['plugins/table.action.js'][938] = 0; + _$jscoverage['plugins/table.action.js'][940] = 0; + _$jscoverage['plugins/table.action.js'][947] = 0; + _$jscoverage['plugins/table.action.js'][948] = 0; + _$jscoverage['plugins/table.action.js'][949] = 0; + _$jscoverage['plugins/table.action.js'][950] = 0; + _$jscoverage['plugins/table.action.js'][951] = 0; + _$jscoverage['plugins/table.action.js'][952] = 0; + _$jscoverage['plugins/table.action.js'][953] = 0; + _$jscoverage['plugins/table.action.js'][955] = 0; + _$jscoverage['plugins/table.action.js'][958] = 0; + _$jscoverage['plugins/table.action.js'][960] = 0; + _$jscoverage['plugins/table.action.js'][968] = 0; + _$jscoverage['plugins/table.action.js'][970] = 0; + _$jscoverage['plugins/table.action.js'][973] = 0; + _$jscoverage['plugins/table.action.js'][974] = 0; + _$jscoverage['plugins/table.action.js'][975] = 0; + _$jscoverage['plugins/table.action.js'][976] = 0; + _$jscoverage['plugins/table.action.js'][977] = 0; + _$jscoverage['plugins/table.action.js'][979] = 0; + _$jscoverage['plugins/table.action.js'][989] = 0; + _$jscoverage['plugins/table.action.js'][990] = 0; + _$jscoverage['plugins/table.action.js'][993] = 0; + _$jscoverage['plugins/table.action.js'][995] = 0; + _$jscoverage['plugins/table.action.js'][999] = 0; + _$jscoverage['plugins/table.action.js'][1006] = 0; + _$jscoverage['plugins/table.action.js'][1008] = 0; + _$jscoverage['plugins/table.action.js'][1017] = 0; + _$jscoverage['plugins/table.action.js'][1024] = 0; + _$jscoverage['plugins/table.action.js'][1026] = 0; + _$jscoverage['plugins/table.action.js'][1028] = 0; + _$jscoverage['plugins/table.action.js'][1037] = 0; + _$jscoverage['plugins/table.action.js'][1038] = 0; + _$jscoverage['plugins/table.action.js'][1040] = 0; + _$jscoverage['plugins/table.action.js'][1041] = 0; + _$jscoverage['plugins/table.action.js'][1044] = 0; + _$jscoverage['plugins/table.action.js'][1045] = 0; + _$jscoverage['plugins/table.action.js'][1047] = 0; + _$jscoverage['plugins/table.action.js'][1048] = 0; + _$jscoverage['plugins/table.action.js'][1050] = 0; + _$jscoverage['plugins/table.action.js'][1051] = 0; + _$jscoverage['plugins/table.action.js'][1053] = 0; + _$jscoverage['plugins/table.action.js'][1054] = 0; + _$jscoverage['plugins/table.action.js'][1056] = 0; + _$jscoverage['plugins/table.action.js'][1059] = 0; + _$jscoverage['plugins/table.action.js'][1061] = 0; + _$jscoverage['plugins/table.action.js'][1062] = 0; + _$jscoverage['plugins/table.action.js'][1065] = 0; + _$jscoverage['plugins/table.action.js'][1071] = 0; + _$jscoverage['plugins/table.action.js'][1072] = 0; + _$jscoverage['plugins/table.action.js'][1075] = 0; + _$jscoverage['plugins/table.action.js'][1076] = 0; + _$jscoverage['plugins/table.action.js'][1077] = 0; + _$jscoverage['plugins/table.action.js'][1078] = 0; + _$jscoverage['plugins/table.action.js'][1079] = 0; + _$jscoverage['plugins/table.action.js'][1082] = 0; + _$jscoverage['plugins/table.action.js'][1083] = 0; + _$jscoverage['plugins/table.action.js'][1084] = 0; + _$jscoverage['plugins/table.action.js'][1086] = 0; + _$jscoverage['plugins/table.action.js'][1087] = 0; + _$jscoverage['plugins/table.action.js'][1088] = 0; + _$jscoverage['plugins/table.action.js'][1094] = 0; + _$jscoverage['plugins/table.action.js'][1100] = 0; + _$jscoverage['plugins/table.action.js'][1101] = 0; + _$jscoverage['plugins/table.action.js'][1102] = 0; + _$jscoverage['plugins/table.action.js'][1106] = 0; + _$jscoverage['plugins/table.action.js'][1107] = 0; + _$jscoverage['plugins/table.action.js'][1108] = 0; + _$jscoverage['plugins/table.action.js'][1109] = 0; + _$jscoverage['plugins/table.action.js'][1110] = 0; + _$jscoverage['plugins/table.action.js'][1111] = 0; + _$jscoverage['plugins/table.action.js'][1112] = 0; + _$jscoverage['plugins/table.action.js'][1114] = 0; + _$jscoverage['plugins/table.action.js'][1116] = 0; + _$jscoverage['plugins/table.action.js'][1117] = 0; + _$jscoverage['plugins/table.action.js'][1118] = 0; + _$jscoverage['plugins/table.action.js'][1119] = 0; + _$jscoverage['plugins/table.action.js'][1121] = 0; + _$jscoverage['plugins/table.action.js'][1122] = 0; + _$jscoverage['plugins/table.action.js'][1123] = 0; + _$jscoverage['plugins/table.action.js'][1124] = 0; + _$jscoverage['plugins/table.action.js'][1128] = 0; + _$jscoverage['plugins/table.action.js'][1129] = 0; + _$jscoverage['plugins/table.action.js'][1133] = 0; + _$jscoverage['plugins/table.action.js'][1135] = 0; + _$jscoverage['plugins/table.action.js'][1137] = 0; + _$jscoverage['plugins/table.action.js'][1140] = 0; + _$jscoverage['plugins/table.action.js'][1142] = 0; + _$jscoverage['plugins/table.action.js'][1146] = 0; + _$jscoverage['plugins/table.action.js'][1148] = 0; + _$jscoverage['plugins/table.action.js'][1152] = 0; + _$jscoverage['plugins/table.action.js'][1155] = 0; + _$jscoverage['plugins/table.action.js'][1157] = 0; + _$jscoverage['plugins/table.action.js'][1159] = 0; + _$jscoverage['plugins/table.action.js'][1161] = 0; + _$jscoverage['plugins/table.action.js'][1162] = 0; + _$jscoverage['plugins/table.action.js'][1163] = 0; + _$jscoverage['plugins/table.action.js'][1166] = 0; + _$jscoverage['plugins/table.action.js'][1170] = 0; + _$jscoverage['plugins/table.action.js'][1172] = 0; + _$jscoverage['plugins/table.action.js'][1174] = 0; + _$jscoverage['plugins/table.action.js'][1194] = 0; + _$jscoverage['plugins/table.action.js'][1196] = 0; + _$jscoverage['plugins/table.action.js'][1199] = 0; + _$jscoverage['plugins/table.action.js'][1200] = 0; + _$jscoverage['plugins/table.action.js'][1202] = 0; + _$jscoverage['plugins/table.action.js'][1203] = 0; + _$jscoverage['plugins/table.action.js'][1204] = 0; + _$jscoverage['plugins/table.action.js'][1205] = 0; + _$jscoverage['plugins/table.action.js'][1206] = 0; + _$jscoverage['plugins/table.action.js'][1209] = 0; + _$jscoverage['plugins/table.action.js'][1210] = 0; + _$jscoverage['plugins/table.action.js'][1211] = 0; + _$jscoverage['plugins/table.action.js'][1212] = 0; + _$jscoverage['plugins/table.action.js'][1215] = 0; + _$jscoverage['plugins/table.action.js'][1222] = 0; + _$jscoverage['plugins/table.action.js'][1224] = 0; + _$jscoverage['plugins/table.action.js'][1225] = 0; + _$jscoverage['plugins/table.action.js'][1228] = 0; + _$jscoverage['plugins/table.action.js'][1231] = 0; + _$jscoverage['plugins/table.action.js'][1233] = 0; + _$jscoverage['plugins/table.action.js'][1234] = 0; + _$jscoverage['plugins/table.action.js'][1239] = 0; + _$jscoverage['plugins/table.action.js'][1241] = 0; + _$jscoverage['plugins/table.action.js'][1244] = 0; + _$jscoverage['plugins/table.action.js'][1246] = 0; + _$jscoverage['plugins/table.action.js'][1248] = 0; + _$jscoverage['plugins/table.action.js'][1249] = 0; + _$jscoverage['plugins/table.action.js'][1254] = 0; + _$jscoverage['plugins/table.action.js'][1258] = 0; + _$jscoverage['plugins/table.action.js'][1259] = 0; + _$jscoverage['plugins/table.action.js'][1260] = 0; + _$jscoverage['plugins/table.action.js'][1263] = 0; + _$jscoverage['plugins/table.action.js'][1265] = 0; + _$jscoverage['plugins/table.action.js'][1268] = 0; + _$jscoverage['plugins/table.action.js'][1270] = 0; + _$jscoverage['plugins/table.action.js'][1271] = 0; + _$jscoverage['plugins/table.action.js'][1272] = 0; + _$jscoverage['plugins/table.action.js'][1277] = 0; + _$jscoverage['plugins/table.action.js'][1282] = 0; + _$jscoverage['plugins/table.action.js'][1284] = 0; + _$jscoverage['plugins/table.action.js'][1286] = 0; + _$jscoverage['plugins/table.action.js'][1287] = 0; + _$jscoverage['plugins/table.action.js'][1289] = 0; + _$jscoverage['plugins/table.action.js'][1290] = 0; + _$jscoverage['plugins/table.action.js'][1291] = 0; + _$jscoverage['plugins/table.action.js'][1293] = 0; + _$jscoverage['plugins/table.action.js'][1294] = 0; + _$jscoverage['plugins/table.action.js'][1295] = 0; + _$jscoverage['plugins/table.action.js'][1296] = 0; + _$jscoverage['plugins/table.action.js'][1297] = 0; + _$jscoverage['plugins/table.action.js'][1299] = 0; + _$jscoverage['plugins/table.action.js'][1300] = 0; + _$jscoverage['plugins/table.action.js'][1303] = 0; + _$jscoverage['plugins/table.action.js'][1305] = 0; + _$jscoverage['plugins/table.action.js'][1306] = 0; + _$jscoverage['plugins/table.action.js'][1309] = 0; + _$jscoverage['plugins/table.action.js'][1311] = 0; + _$jscoverage['plugins/table.action.js'][1313] = 0; + _$jscoverage['plugins/table.action.js'][1314] = 0; + _$jscoverage['plugins/table.action.js'][1316] = 0; + _$jscoverage['plugins/table.action.js'][1321] = 0; + _$jscoverage['plugins/table.action.js'][1322] = 0; + _$jscoverage['plugins/table.action.js'][1325] = 0; + _$jscoverage['plugins/table.action.js'][1327] = 0; + _$jscoverage['plugins/table.action.js'][1328] = 0; + _$jscoverage['plugins/table.action.js'][1329] = 0; + _$jscoverage['plugins/table.action.js'][1335] = 0; + _$jscoverage['plugins/table.action.js'][1336] = 0; + _$jscoverage['plugins/table.action.js'][1338] = 0; + _$jscoverage['plugins/table.action.js'][1342] = 0; + _$jscoverage['plugins/table.action.js'][1343] = 0; + _$jscoverage['plugins/table.action.js'][1344] = 0; + _$jscoverage['plugins/table.action.js'][1345] = 0; + _$jscoverage['plugins/table.action.js'][1346] = 0; + _$jscoverage['plugins/table.action.js'][1347] = 0; + _$jscoverage['plugins/table.action.js'][1350] = 0; + _$jscoverage['plugins/table.action.js'][1353] = 0; + _$jscoverage['plugins/table.action.js'][1354] = 0; + _$jscoverage['plugins/table.action.js'][1356] = 0; + _$jscoverage['plugins/table.action.js'][1358] = 0; + _$jscoverage['plugins/table.action.js'][1360] = 0; + _$jscoverage['plugins/table.action.js'][1361] = 0; + _$jscoverage['plugins/table.action.js'][1363] = 0; + _$jscoverage['plugins/table.action.js'][1366] = 0; + _$jscoverage['plugins/table.action.js'][1368] = 0; + _$jscoverage['plugins/table.action.js'][1369] = 0; + _$jscoverage['plugins/table.action.js'][1371] = 0; + _$jscoverage['plugins/table.action.js'][1372] = 0; + _$jscoverage['plugins/table.action.js'][1375] = 0; + _$jscoverage['plugins/table.action.js'][1376] = 0; + _$jscoverage['plugins/table.action.js'][1378] = 0; + _$jscoverage['plugins/table.action.js'][1379] = 0; + _$jscoverage['plugins/table.action.js'][1380] = 0; + _$jscoverage['plugins/table.action.js'][1383] = 0; + _$jscoverage['plugins/table.action.js'][1384] = 0; + _$jscoverage['plugins/table.action.js'][1385] = 0; + _$jscoverage['plugins/table.action.js'][1386] = 0; + _$jscoverage['plugins/table.action.js'][1387] = 0; + _$jscoverage['plugins/table.action.js'][1388] = 0; + _$jscoverage['plugins/table.action.js'][1389] = 0; + _$jscoverage['plugins/table.action.js'][1392] = 0; + _$jscoverage['plugins/table.action.js'][1394] = 0; + _$jscoverage['plugins/table.action.js'][1395] = 0; + _$jscoverage['plugins/table.action.js'][1396] = 0; + _$jscoverage['plugins/table.action.js'][1397] = 0; + _$jscoverage['plugins/table.action.js'][1399] = 0; + _$jscoverage['plugins/table.action.js'][1402] = 0; + _$jscoverage['plugins/table.action.js'][1403] = 0; + _$jscoverage['plugins/table.action.js'][1404] = 0; + _$jscoverage['plugins/table.action.js'][1407] = 0; + _$jscoverage['plugins/table.action.js'][1408] = 0; + _$jscoverage['plugins/table.action.js'][1412] = 0; + _$jscoverage['plugins/table.action.js'][1413] = 0; + _$jscoverage['plugins/table.action.js'][1415] = 0; + _$jscoverage['plugins/table.action.js'][1418] = 0; + _$jscoverage['plugins/table.action.js'][1420] = 0; + _$jscoverage['plugins/table.action.js'][1421] = 0; + _$jscoverage['plugins/table.action.js'][1424] = 0; + _$jscoverage['plugins/table.action.js'][1426] = 0; + _$jscoverage['plugins/table.action.js'][1428] = 0; + _$jscoverage['plugins/table.action.js'][1431] = 0; + _$jscoverage['plugins/table.action.js'][1432] = 0; + _$jscoverage['plugins/table.action.js'][1433] = 0; + _$jscoverage['plugins/table.action.js'][1434] = 0; + _$jscoverage['plugins/table.action.js'][1435] = 0; + _$jscoverage['plugins/table.action.js'][1436] = 0; + _$jscoverage['plugins/table.action.js'][1438] = 0; + _$jscoverage['plugins/table.action.js'][1439] = 0; + _$jscoverage['plugins/table.action.js'][1443] = 0; + _$jscoverage['plugins/table.action.js'][1446] = 0; + _$jscoverage['plugins/table.action.js'][1447] = 0; + _$jscoverage['plugins/table.action.js'][1449] = 0; + _$jscoverage['plugins/table.action.js'][1450] = 0; + _$jscoverage['plugins/table.action.js'][1451] = 0; + _$jscoverage['plugins/table.action.js'][1454] = 0; + _$jscoverage['plugins/table.action.js'][1455] = 0; + _$jscoverage['plugins/table.action.js'][1456] = 0; + _$jscoverage['plugins/table.action.js'][1459] = 0; + _$jscoverage['plugins/table.action.js'][1461] = 0; + _$jscoverage['plugins/table.action.js'][1462] = 0; + _$jscoverage['plugins/table.action.js'][1465] = 0; + _$jscoverage['plugins/table.action.js'][1468] = 0; + _$jscoverage['plugins/table.action.js'][1469] = 0; + _$jscoverage['plugins/table.action.js'][1472] = 0; + _$jscoverage['plugins/table.action.js'][1474] = 0; + _$jscoverage['plugins/table.action.js'][1476] = 0; + _$jscoverage['plugins/table.action.js'][1478] = 0; + _$jscoverage['plugins/table.action.js'][1480] = 0; + _$jscoverage['plugins/table.action.js'][1481] = 0; + _$jscoverage['plugins/table.action.js'][1487] = 0; + _$jscoverage['plugins/table.action.js'][1488] = 0; + _$jscoverage['plugins/table.action.js'][1496] = 0; + _$jscoverage['plugins/table.action.js'][1497] = 0; + _$jscoverage['plugins/table.action.js'][1500] = 0; + _$jscoverage['plugins/table.action.js'][1501] = 0; + _$jscoverage['plugins/table.action.js'][1502] = 0; + _$jscoverage['plugins/table.action.js'][1503] = 0; + _$jscoverage['plugins/table.action.js'][1504] = 0; + _$jscoverage['plugins/table.action.js'][1507] = 0; + _$jscoverage['plugins/table.action.js'][1508] = 0; + _$jscoverage['plugins/table.action.js'][1518] = 0; + _$jscoverage['plugins/table.action.js'][1520] = 0; + _$jscoverage['plugins/table.action.js'][1521] = 0; + _$jscoverage['plugins/table.action.js'][1524] = 0; + _$jscoverage['plugins/table.action.js'][1525] = 0; + _$jscoverage['plugins/table.action.js'][1529] = 0; + _$jscoverage['plugins/table.action.js'][1534] = 0; + _$jscoverage['plugins/table.action.js'][1536] = 0; + _$jscoverage['plugins/table.action.js'][1537] = 0; + _$jscoverage['plugins/table.action.js'][1539] = 0; + _$jscoverage['plugins/table.action.js'][1542] = 0; + _$jscoverage['plugins/table.action.js'][1545] = 0; + _$jscoverage['plugins/table.action.js'][1547] = 0; + _$jscoverage['plugins/table.action.js'][1549] = 0; + _$jscoverage['plugins/table.action.js'][1552] = 0; + _$jscoverage['plugins/table.action.js'][1554] = 0; + _$jscoverage['plugins/table.action.js'][1556] = 0; + _$jscoverage['plugins/table.action.js'][1558] = 0; + _$jscoverage['plugins/table.action.js'][1563] = 0; + _$jscoverage['plugins/table.action.js'][1565] = 0; + _$jscoverage['plugins/table.action.js'][1567] = 0; + _$jscoverage['plugins/table.action.js'][1568] = 0; + _$jscoverage['plugins/table.action.js'][1573] = 0; + _$jscoverage['plugins/table.action.js'][1581] = 0; + _$jscoverage['plugins/table.action.js'][1589] = 0; + _$jscoverage['plugins/table.action.js'][1591] = 0; + _$jscoverage['plugins/table.action.js'][1593] = 0; + _$jscoverage['plugins/table.action.js'][1595] = 0; + _$jscoverage['plugins/table.action.js'][1599] = 0; + _$jscoverage['plugins/table.action.js'][1603] = 0; + _$jscoverage['plugins/table.action.js'][1606] = 0; + _$jscoverage['plugins/table.action.js'][1608] = 0; + _$jscoverage['plugins/table.action.js'][1609] = 0; + _$jscoverage['plugins/table.action.js'][1612] = 0; + _$jscoverage['plugins/table.action.js'][1615] = 0; + _$jscoverage['plugins/table.action.js'][1617] = 0; + _$jscoverage['plugins/table.action.js'][1620] = 0; + _$jscoverage['plugins/table.action.js'][1622] = 0; + _$jscoverage['plugins/table.action.js'][1625] = 0; + _$jscoverage['plugins/table.action.js'][1626] = 0; + _$jscoverage['plugins/table.action.js'][1634] = 0; + _$jscoverage['plugins/table.action.js'][1636] = 0; + _$jscoverage['plugins/table.action.js'][1640] = 0; + _$jscoverage['plugins/table.action.js'][1642] = 0; + _$jscoverage['plugins/table.action.js'][1648] = 0; + _$jscoverage['plugins/table.action.js'][1650] = 0; + _$jscoverage['plugins/table.action.js'][1654] = 0; + _$jscoverage['plugins/table.action.js'][1656] = 0; + _$jscoverage['plugins/table.action.js'][1657] = 0; + _$jscoverage['plugins/table.action.js'][1661] = 0; + _$jscoverage['plugins/table.action.js'][1668] = 0; + _$jscoverage['plugins/table.action.js'][1670] = 0; + _$jscoverage['plugins/table.action.js'][1672] = 0; + _$jscoverage['plugins/table.action.js'][1674] = 0; + _$jscoverage['plugins/table.action.js'][1676] = 0; + _$jscoverage['plugins/table.action.js'][1679] = 0; + _$jscoverage['plugins/table.action.js'][1682] = 0; + _$jscoverage['plugins/table.action.js'][1687] = 0; + _$jscoverage['plugins/table.action.js'][1691] = 0; + _$jscoverage['plugins/table.action.js'][1693] = 0; + _$jscoverage['plugins/table.action.js'][1695] = 0; + _$jscoverage['plugins/table.action.js'][1702] = 0; + _$jscoverage['plugins/table.action.js'][1703] = 0; + _$jscoverage['plugins/table.action.js'][1705] = 0; + _$jscoverage['plugins/table.action.js'][1706] = 0; + _$jscoverage['plugins/table.action.js'][1708] = 0; + _$jscoverage['plugins/table.action.js'][1710] = 0; + _$jscoverage['plugins/table.action.js'][1712] = 0; + _$jscoverage['plugins/table.action.js'][1714] = 0; + _$jscoverage['plugins/table.action.js'][1716] = 0; + _$jscoverage['plugins/table.action.js'][1718] = 0; + _$jscoverage['plugins/table.action.js'][1720] = 0; + _$jscoverage['plugins/table.action.js'][1721] = 0; + _$jscoverage['plugins/table.action.js'][1723] = 0; + _$jscoverage['plugins/table.action.js'][1725] = 0; + _$jscoverage['plugins/table.action.js'][1727] = 0; + _$jscoverage['plugins/table.action.js'][1731] = 0; + _$jscoverage['plugins/table.action.js'][1733] = 0; + _$jscoverage['plugins/table.action.js'][1737] = 0; + _$jscoverage['plugins/table.action.js'][1738] = 0; + _$jscoverage['plugins/table.action.js'][1739] = 0; + _$jscoverage['plugins/table.action.js'][1740] = 0; + _$jscoverage['plugins/table.action.js'][1749] = 0; + _$jscoverage['plugins/table.action.js'][1752] = 0; + _$jscoverage['plugins/table.action.js'][1753] = 0; + _$jscoverage['plugins/table.action.js'][1754] = 0; + _$jscoverage['plugins/table.action.js'][1755] = 0; + _$jscoverage['plugins/table.action.js'][1756] = 0; + _$jscoverage['plugins/table.action.js'][1765] = 0; + _$jscoverage['plugins/table.action.js'][1766] = 0; + _$jscoverage['plugins/table.action.js'][1767] = 0; + _$jscoverage['plugins/table.action.js'][1773] = 0; + _$jscoverage['plugins/table.action.js'][1775] = 0; + _$jscoverage['plugins/table.action.js'][1776] = 0; + _$jscoverage['plugins/table.action.js'][1777] = 0; + _$jscoverage['plugins/table.action.js'][1779] = 0; + _$jscoverage['plugins/table.action.js'][1781] = 0; + _$jscoverage['plugins/table.action.js'][1782] = 0; + _$jscoverage['plugins/table.action.js'][1792] = 0; + _$jscoverage['plugins/table.action.js'][1793] = 0; + _$jscoverage['plugins/table.action.js'][1794] = 0; + _$jscoverage['plugins/table.action.js'][1795] = 0; + _$jscoverage['plugins/table.action.js'][1796] = 0; + _$jscoverage['plugins/table.action.js'][1797] = 0; + _$jscoverage['plugins/table.action.js'][1798] = 0; + _$jscoverage['plugins/table.action.js'][1799] = 0; + _$jscoverage['plugins/table.action.js'][1800] = 0; + _$jscoverage['plugins/table.action.js'][1802] = 0; + _$jscoverage['plugins/table.action.js'][1809] = 0; + _$jscoverage['plugins/table.action.js'][1810] = 0; + _$jscoverage['plugins/table.action.js'][1811] = 0; + _$jscoverage['plugins/table.action.js'][1817] = 0; + _$jscoverage['plugins/table.action.js'][1819] = 0; + _$jscoverage['plugins/table.action.js'][1822] = 0; + _$jscoverage['plugins/table.action.js'][1823] = 0; + _$jscoverage['plugins/table.action.js'][1826] = 0; + _$jscoverage['plugins/table.action.js'][1830] = 0; + _$jscoverage['plugins/table.action.js'][1831] = 0; + _$jscoverage['plugins/table.action.js'][1834] = 0; + _$jscoverage['plugins/table.action.js'][1836] = 0; + _$jscoverage['plugins/table.action.js'][1839] = 0; + _$jscoverage['plugins/table.action.js'][1840] = 0; + _$jscoverage['plugins/table.action.js'][1843] = 0; + _$jscoverage['plugins/table.action.js'][1845] = 0; + _$jscoverage['plugins/table.action.js'][1848] = 0; + _$jscoverage['plugins/table.action.js'][1849] = 0; + _$jscoverage['plugins/table.action.js'][1856] = 0; +} +_$jscoverage['plugins/table.action.js'].source = ["/*"," * Created with JetBrains PhpStorm."," * User: taoqili"," * Date: 12-10-12"," * Time: 上午10:05"," * To change this template use File | Settings | File Templates."," */","UE.plugins['table'] = function () {"," var me = this,"," tabTimer = null,"," //拖动计时器"," tableDragTimer = null,"," //双击计时器"," tableResizeTimer = null,"," //单元格最小宽度"," cellMinWidth = 5,"," isInResizeBuffer = false,"," //单元格边框大小"," cellBorderWidth = 5,"," //鼠标偏移距离"," offsetOfTableCell = 10,"," //记录在有限时间内的点击状态, 共有3个取值, 0, 1, 2。 0代表未初始化, 1代表单击了1次,2代表2次"," singleClickState = 0,"," userActionStatus = null,"," //双击允许的时间范围"," dblclickTime = 360,"," UT = UE.UETable,"," getUETable = function (tdOrTable) {"," return UT.getUETable(tdOrTable);"," },"," getUETableBySelected = function (editor) {"," return UT.getUETableBySelected(editor);"," },"," getDefaultValue = function (editor, table) {"," return UT.getDefaultValue(editor, table);"," },"," removeSelectedClass = function (cells) {"," return UT.removeSelectedClass(cells);"," };",""," function showError(e) {","// throw e;"," }"," me.ready(function(){"," var me = this;"," var orgGetText = me.selection.getText;"," me.selection.getText = function(){"," var table = getUETableBySelected(me);"," if(table){"," var str = '';"," utils.each(table.selectedTds,function(td){"," str += td[browser.ie?'innerText':'textContent'];"," })"," return str;"," }else{"," return orgGetText.call(me.selection)"," }",""," }"," })",""," //处理拖动及框选相关方法"," var startTd = null, //鼠标按下时的锚点td"," currentTd = null, //当前鼠标经过时的td"," onDrag = \"\", //指示当前拖动状态,其值可为\"\",\"h\",\"v\" ,分别表示未拖动状态,横向拖动状态,纵向拖动状态,用于鼠标移动过程中的判断"," onBorder = false, //检测鼠标按下时是否处在单元格边缘位置"," dragButton = null,"," dragOver = false,"," dragLine = null, //模拟的拖动线"," dragTd = null; //发生拖动的目标td",""," var mousedown = false,"," //todo 判断混乱模式"," needIEHack = true;",""," me.setOpt({"," 'maxColNum':20,"," 'maxRowNum':100,"," 'defaultCols':5,"," 'defaultRows':5,"," 'tdvalign':'top',"," 'cursorpath':me.options.UEDITOR_HOME_URL + \"themes/default/images/cursor_\","," 'tableDragable':false,"," 'classList':[\"ue-table-interlace-color-single\",\"ue-table-interlace-color-double\"]"," });"," me.getUETable = getUETable;"," var commands = {"," 'deletetable':1,"," 'inserttable':1,"," 'cellvalign':1,"," 'insertcaption':1,"," 'deletecaption':1,"," 'inserttitle':1,"," 'deletetitle':1,"," \"mergeright\":1,"," \"mergedown\":1,"," \"mergecells\":1,"," \"insertrow\":1,"," \"insertrownext\":1,"," \"deleterow\":1,"," \"insertcol\":1,"," \"insertcolnext\":1,"," \"deletecol\":1,"," \"splittocells\":1,"," \"splittorows\":1,"," \"splittocols\":1,"," \"adaptbytext\":1,"," \"adaptbywindow\":1,"," \"adaptbycustomer\":1,"," \"insertparagraph\":1,"," \"insertparagraphbeforetable\":1,"," \"averagedistributecol\":1,"," \"averagedistributerow\":1"," };"," me.ready(function () {"," utils.cssRule('table',"," //选中的td上的样式"," '.selectTdClass{background-color:#edf5fa !important}' +"," 'table.noBorderTable td,table.noBorderTable th,table.noBorderTable caption{border:1px dashed #ddd !important}' +"," //插入的表格的默认样式"," 'table{margin-bottom:10px;border-collapse:collapse;display:table;}' +"," 'td,th{padding: 5px 10px;border: 1px solid #DDD;}' +"," 'caption{border:1px dashed #DDD;border-bottom:0;padding:3px;text-align:center;}' +"," 'th{border-top:2px solid #BBB;background:#F7F7F7;}' +"," '.ue-table-interlace-color-single{ background-color: #fcfcfc; } .ue-table-interlace-color-double{ background-color: #f7faff; }' +"," 'td p{margin:0;padding:0;}', me.document);",""," var tableCopyList, isFullCol, isFullRow;"," //注册del/backspace事件"," me.addListener('keydown', function (cmd, evt) {"," var me = this;"," var keyCode = evt.keyCode || evt.which;",""," if (keyCode == 8) {",""," var ut = getUETableBySelected(me);"," if (ut && ut.selectedTds.length) {",""," if (ut.isFullCol()) {"," me.execCommand('deletecol')"," } else if (ut.isFullRow()) {"," me.execCommand('deleterow')"," } else {"," me.fireEvent('delcells');"," }"," domUtils.preventDefault(evt);"," }",""," var caption = domUtils.findParentByTagName(me.selection.getStart(), 'caption', true),"," range = me.selection.getRange();"," if (range.collapsed && caption && isEmptyBlock(caption)) {"," me.fireEvent('saveScene');"," var table = caption.parentNode;"," domUtils.remove(caption);"," if (table) {"," range.setStart(table.rows[0].cells[0], 0).setCursor(false, true);"," }"," me.fireEvent('saveScene');"," }",""," }",""," if (keyCode == 46) {",""," ut = getUETableBySelected(me);"," if (ut) {"," me.fireEvent('saveScene');"," for (var i = 0, ci; ci = ut.selectedTds[i++];) {"," domUtils.fillNode(me.document, ci)"," }"," me.fireEvent('saveScene');"," domUtils.preventDefault(evt);",""," }",""," }"," if (keyCode == 13) {",""," var rng = me.selection.getRange(),"," caption = domUtils.findParentByTagName(rng.startContainer, 'caption', true);"," if (caption) {"," var table = domUtils.findParentByTagName(caption, 'table');"," if (!rng.collapsed) {",""," rng.deleteContents();"," me.fireEvent('saveScene');"," } else {"," if (caption) {"," rng.setStart(table.rows[0].cells[0], 0).setCursor(false, true);"," }"," }"," domUtils.preventDefault(evt);"," return;"," }"," if (rng.collapsed) {"," var table = domUtils.findParentByTagName(rng.startContainer, 'table');"," if (table) {"," var cell = table.rows[0].cells[0],"," start = domUtils.findParentByTagName(me.selection.getStart(), ['td', 'th'], true),"," preNode = table.previousSibling;"," if (cell === start && (!preNode || preNode.nodeType == 1 && preNode.tagName == 'TABLE' ) && domUtils.isStartInblock(rng)) {"," var first = domUtils.findParent(me.selection.getStart(), function(n){return domUtils.isBlockElm(n)}, true);"," if(first && ( /t(h|d)/i.test(first.tagName) || first === start.firstChild )){"," me.execCommand('insertparagraphbeforetable');"," domUtils.preventDefault(evt);"," }",""," }"," }"," }"," }",""," if ((evt.ctrlKey || evt.metaKey) && evt.keyCode == '67') {"," tableCopyList = null;"," var ut = getUETableBySelected(me);"," if (ut) {"," var tds = ut.selectedTds;"," isFullCol = ut.isFullCol();"," isFullRow = ut.isFullRow();"," tableCopyList = ["," [ut.cloneCell(tds[0],null,true)]"," ];"," for (var i = 1, ci; ci = tds[i]; i++) {"," if (ci.parentNode !== tds[i - 1].parentNode) {"," tableCopyList.push([ut.cloneCell(ci,null,true)]);"," } else {"," tableCopyList[tableCopyList.length - 1].push(ut.cloneCell(ci,null,true));"," }",""," }"," }"," }"," });"," me.addListener(\"tablehasdeleted\",function(){"," toggleDraggableState(this, false, \"\", null);"," if (dragButton)domUtils.remove(dragButton);"," });",""," me.addListener('beforepaste', function (cmd, html) {"," var me = this;"," var rng = me.selection.getRange();"," if (domUtils.findParentByTagName(rng.startContainer, 'caption', true)) {"," var div = me.document.createElement(\"div\");"," div.innerHTML = html.html;"," html.html = div[browser.ie ? 'innerText' : 'textContent'];"," return;"," }"," var table = getUETableBySelected(me);"," if (tableCopyList) {"," me.fireEvent('saveScene');"," var rng = me.selection.getRange();"," var td = domUtils.findParentByTagName(rng.startContainer, ['td', 'th'], true), tmpNode, preNode;"," if (td) {"," var ut = getUETable(td);"," if (isFullRow) {"," var rowIndex = ut.getCellInfo(td).rowIndex;"," if (td.tagName == 'TH') {"," rowIndex++;"," }"," for (var i = 0, ci; ci = tableCopyList[i++];) {"," var tr = ut.insertRow(rowIndex++, \"td\");"," for (var j = 0, cj; cj = ci[j]; j++) {"," var cell = tr.cells[j];"," if (!cell) {"," cell = tr.insertCell(j)"," }"," cell.innerHTML = cj.innerHTML;"," cj.getAttribute('width') && cell.setAttribute('width', cj.getAttribute('width'));"," cj.getAttribute('vAlign') && cell.setAttribute('vAlign', cj.getAttribute('vAlign'));"," cj.getAttribute('align') && cell.setAttribute('align', cj.getAttribute('align'));"," cj.style.cssText && (cell.style.cssText = cj.style.cssText)"," }"," for (var j = 0, cj; cj = tr.cells[j]; j++) {"," if (!ci[j])"," break;"," cj.innerHTML = ci[j].innerHTML;"," ci[j].getAttribute('width') && cj.setAttribute('width', ci[j].getAttribute('width'));"," ci[j].getAttribute('vAlign') && cj.setAttribute('vAlign', ci[j].getAttribute('vAlign'));"," ci[j].getAttribute('align') && cj.setAttribute('align', ci[j].getAttribute('align'));"," ci[j].style.cssText && (cj.style.cssText = ci[j].style.cssText)"," }"," }"," } else {"," if (isFullCol) {"," cellInfo = ut.getCellInfo(td);"," var maxColNum = 0;"," for (var j = 0, ci = tableCopyList[0], cj; cj = ci[j++];) {"," maxColNum += cj.colSpan || 1;"," }"," me.__hasEnterExecCommand = true;"," for (i = 0; i < maxColNum; i++) {"," me.execCommand('insertcol');"," }"," me.__hasEnterExecCommand = false;"," td = ut.table.rows[0].cells[cellInfo.cellIndex];"," if (td.tagName == 'TH') {"," td = ut.table.rows[1].cells[cellInfo.cellIndex];"," }"," }"," for (var i = 0, ci; ci = tableCopyList[i++];) {"," tmpNode = td;"," for (var j = 0, cj; cj = ci[j++];) {"," if (td) {"," td.innerHTML = cj.innerHTML;"," //todo 定制处理"," cj.getAttribute('width') && td.setAttribute('width', cj.getAttribute('width'));"," cj.getAttribute('vAlign') && td.setAttribute('vAlign', cj.getAttribute('vAlign'));"," cj.getAttribute('align') && td.setAttribute('align', cj.getAttribute('align'));"," cj.style.cssText && (td.style.cssText = cj.style.cssText);"," preNode = td;"," td = td.nextSibling;"," } else {"," var cloneTd = cj.cloneNode(true);"," domUtils.removeAttributes(cloneTd, ['class', 'rowSpan', 'colSpan']);",""," preNode.parentNode.appendChild(cloneTd)"," }"," }"," td = ut.getNextCell(tmpNode, true, true);"," if (!tableCopyList[i])"," break;"," if (!td) {"," var cellInfo = ut.getCellInfo(tmpNode);"," ut.table.insertRow(ut.table.rows.length);"," ut.update();"," td = ut.getVSideCell(tmpNode, true);"," }"," }"," }"," ut.update();"," } else {"," table = me.document.createElement('table');"," for (var i = 0, ci; ci = tableCopyList[i++];) {"," var tr = table.insertRow(table.rows.length);"," for (var j = 0, cj; cj = ci[j++];) {"," cloneTd = UT.cloneCell(cj,null,true);"," domUtils.removeAttributes(cloneTd, ['class']);"," tr.appendChild(cloneTd)"," }"," if (j == 2 && cloneTd.rowSpan > 1) {"," cloneTd.rowSpan = 1;"," }"," }",""," var defaultValue = getDefaultValue(me),"," width = me.body.offsetWidth -"," (needIEHack ? parseInt(domUtils.getComputedStyle(me.body, 'margin-left'), 10) * 2 : 0) - defaultValue.tableBorder * 2 - (me.options.offsetWidth || 0);"," me.execCommand('insertHTML', '<table ' +"," ( isFullCol && isFullRow ? 'width=\"' + width + '\"' : '') +"," '>' + table.innerHTML.replace(/>\\s*</g, '><').replace(/\\bth\\b/gi, \"td\") + '</table>')"," }"," me.fireEvent('contentchange');"," me.fireEvent('saveScene');"," html.html = '';"," return true;"," } else {"," var div = me.document.createElement(\"div\"), tables;"," div.innerHTML = html.html;"," tables = div.getElementsByTagName(\"table\");"," if (domUtils.findParentByTagName(me.selection.getStart(), 'table')) {"," utils.each(tables, function (t) {"," domUtils.remove(t)"," });"," if (domUtils.findParentByTagName(me.selection.getStart(), 'caption', true)) {"," div.innerHTML = div[browser.ie ? 'innerText' : 'textContent'];"," }"," } else {"," utils.each(tables, function (table) {"," removeStyleSize(table, true);"," domUtils.removeAttributes(table, ['style', 'border']);"," utils.each(domUtils.getElementsByTagName(table, \"td\"), function (td) {"," if (isEmptyBlock(td)) {"," domUtils.fillNode(me.document, td);"," }"," removeStyleSize(td, true);","// domUtils.removeAttributes(td, ['style'])"," });"," });"," }"," html.html = div.innerHTML;"," }"," });",""," me.addListener('afterpaste', function () {"," utils.each(domUtils.getElementsByTagName(me.body, \"table\"), function (table) {"," if (table.offsetWidth > me.body.offsetWidth) {"," var defaultValue = getDefaultValue(me, table);"," table.style.width = me.body.offsetWidth - (needIEHack ? parseInt(domUtils.getComputedStyle(me.body, 'margin-left'), 10) * 2 : 0) - defaultValue.tableBorder * 2 - (me.options.offsetWidth || 0) + 'px'"," }"," })"," });"," me.addListener('blur', function () {"," tableCopyList = null;"," });"," var timer;"," me.addListener('keydown', function () {"," clearTimeout(timer);"," timer = setTimeout(function () {"," var rng = me.selection.getRange(),"," cell = domUtils.findParentByTagName(rng.startContainer, ['th', 'td'], true);"," if (cell) {"," var table = cell.parentNode.parentNode.parentNode;"," if (table.offsetWidth > table.getAttribute(\"width\")) {"," cell.style.wordBreak = \"break-all\";"," }"," }",""," }, 100);"," });"," me.addListener(\"selectionchange\", function () {"," toggleDraggableState(me, false, \"\", null);"," });","",""," //内容变化时触发索引更新"," //todo 可否考虑标记检测,如果不涉及表格的变化就不进行索引重建和更新"," me.addListener(\"contentchange\", function () {"," var me = this;"," //尽可能排除一些不需要更新的状况"," hideDragLine(me);"," if (getUETableBySelected(me))return;"," var rng = me.selection.getRange();"," var start = rng.startContainer;"," start = domUtils.findParentByTagName(start, ['td', 'th'], true);"," utils.each(domUtils.getElementsByTagName(me.document, 'table'), function (table) {"," if (me.fireEvent(\"excludetable\", table) === true) return;"," table.ueTable = new UT(table);"," utils.each(domUtils.getElementsByTagName(me.document, 'td'), function (td) {",""," if (domUtils.isEmptyBlock(td) && td !== start) {"," domUtils.fillNode(me.document, td);"," if (browser.ie && browser.version == 6) {"," td.innerHTML = '&nbsp;'"," }"," }"," });"," utils.each(domUtils.getElementsByTagName(me.document, 'th'), function (th) {"," if (domUtils.isEmptyBlock(th) && th !== start) {"," domUtils.fillNode(me.document, th);"," if (browser.ie && browser.version == 6) {"," th.innerHTML = '&nbsp;'"," }"," }"," });"," table.onmouseover = function () {"," me.fireEvent('tablemouseover', table);"," };"," table.onmousemove = function () {"," me.fireEvent('tablemousemove', table);"," me.options.tableDragable && toggleDragButton(true, this, me);"," };"," table.onmouseout = function () {"," me.fireEvent('tablemouseout', table);"," toggleDraggableState(me, false, \"\", null);"," hideDragLine(me);"," };"," table.onclick = function (evt) {"," evt = me.window.event || evt;"," var target = getParentTdOrTh(evt.target || evt.srcElement);"," if (!target)return;"," var ut = getUETable(target),"," table = ut.table,"," cellInfo = ut.getCellInfo(target),"," cellsRange,"," rng = me.selection.getRange();","// if (\"topLeft\" == inPosition(table, mouseCoords(evt))) {","// cellsRange = ut.getCellsRange(ut.table.rows[0].cells[0], ut.getLastCell());","// ut.setSelected(cellsRange);","// return;","// }","// if (\"bottomRight\" == inPosition(table, mouseCoords(evt))) {","//","// return;","// }"," if (inTableSide(table, target, evt, true)) {"," var endTdCol = ut.getCell(ut.indexTable[ut.rowsNum - 1][cellInfo.colIndex].rowIndex, ut.indexTable[ut.rowsNum - 1][cellInfo.colIndex].cellIndex);"," if (evt.shiftKey && ut.selectedTds.length) {"," if (ut.selectedTds[0] !== endTdCol) {"," cellsRange = ut.getCellsRange(ut.selectedTds[0], endTdCol);"," ut.setSelected(cellsRange);"," } else {"," rng && rng.selectNodeContents(endTdCol).select();"," }"," } else {"," if (target !== endTdCol) {"," cellsRange = ut.getCellsRange(target, endTdCol);"," ut.setSelected(cellsRange);"," } else {"," rng && rng.selectNodeContents(endTdCol).select();"," }"," }"," return;"," }"," if (inTableSide(table, target, evt)) {"," var endTdRow = ut.getCell(ut.indexTable[cellInfo.rowIndex][ut.colsNum - 1].rowIndex, ut.indexTable[cellInfo.rowIndex][ut.colsNum - 1].cellIndex);"," if (evt.shiftKey && ut.selectedTds.length) {"," if (ut.selectedTds[0] !== endTdRow) {"," cellsRange = ut.getCellsRange(ut.selectedTds[0], endTdRow);"," ut.setSelected(cellsRange);"," } else {"," rng && rng.selectNodeContents(endTdRow).select();"," }"," } else {"," if (target !== endTdRow) {"," cellsRange = ut.getCellsRange(target, endTdRow);"," ut.setSelected(cellsRange);"," } else {"," rng && rng.selectNodeContents(endTdRow).select();"," }"," }"," }"," };"," });",""," switchBorderColor(me, true);"," });",""," domUtils.on(me.document, \"mousemove\", mouseMoveEvent);",""," domUtils.on(me.document, \"mouseout\", function (evt) {"," var target = evt.target || evt.srcElement;"," if (target.tagName == \"TABLE\") {"," toggleDraggableState(me, false, \"\", null);"," }"," });"," /*"," * 表格隔行变色"," */"," me.addListener(\"interlacetable\",function(type,table,classList){"," if(!table) return;"," var me = this,"," rows = table.rows,"," len = rows.length,"," getClass = function(list,index,repeat){"," return list[index] ? list[index] : repeat ? list[index % list.length]: \"\";"," };"," for(var i = 0;i<len;i++){"," rows[i].className = getClass( classList|| me.options.classList,i,true);"," }"," });"," me.addListener(\"uninterlacetable\",function(type,table){"," if(!table) return;"," var me = this,"," rows = table.rows,"," classList = me.options.classList,"," len = rows.length;"," for(var i = 0;i<len;i++){"," domUtils.removeClasses( rows[i], classList );"," }"," });",""," me.addListener(\"mousedown\", mouseDownEvent);"," me.addListener(\"mouseup\", mouseUpEvent);"," //拖动的时候不出发mouseup"," domUtils.on( me.body, 'dragstart', function( evt ){"," mouseUpEvent.call( me, 'dragstart', evt );"," });",""," var currentRowIndex = 0;"," me.addListener(\"mousedown\", function () {"," currentRowIndex = 0;"," });"," me.addListener('tabkeydown', function () {"," var range = this.selection.getRange(),"," common = range.getCommonAncestor(true, true),"," table = domUtils.findParentByTagName(common, 'table');"," if (table) {"," if (domUtils.findParentByTagName(common, 'caption', true)) {"," var cell = domUtils.getElementsByTagName(table, 'th td');"," if (cell && cell.length) {"," range.setStart(cell[0], 0).setCursor(false, true)"," }"," } else {"," var cell = domUtils.findParentByTagName(common, ['td', 'th'], true),"," ua = getUETable(cell);"," currentRowIndex = cell.rowSpan > 1 ? currentRowIndex : ua.getCellInfo(cell).rowIndex;"," var nextCell = ua.getTabNextCell(cell, currentRowIndex);"," if (nextCell) {"," if (isEmptyBlock(nextCell)) {"," range.setStart(nextCell, 0).setCursor(false, true)"," } else {"," range.selectNodeContents(nextCell).select()"," }"," } else {"," me.fireEvent('saveScene');"," me.__hasEnterExecCommand = true;"," this.execCommand('insertrownext');"," me.__hasEnterExecCommand = false;"," range = this.selection.getRange();"," range.setStart(table.rows[table.rows.length - 1].cells[0], 0).setCursor();"," me.fireEvent('saveScene');"," }"," }"," return true;"," }",""," });"," browser.ie && me.addListener('selectionchange', function () {"," toggleDraggableState(this, false, \"\", null);"," });"," me.addListener(\"keydown\", function (type, evt) {"," var me = this;"," //处理在表格的最后一个输入tab产生新的表格"," var keyCode = evt.keyCode || evt.which;"," if (keyCode == 8 || keyCode == 46) {"," return;"," }"," var notCtrlKey = !evt.ctrlKey && !evt.metaKey && !evt.shiftKey && !evt.altKey;"," notCtrlKey && removeSelectedClass(domUtils.getElementsByTagName(me.body, \"td\"));"," var ut = getUETableBySelected(me);"," if (!ut) return;"," notCtrlKey && ut.clearSelected();"," });",""," me.addListener(\"beforegetcontent\", function () {"," switchBorderColor(this, false);"," browser.ie && utils.each(this.document.getElementsByTagName('caption'), function (ci) {"," if (domUtils.isEmptyNode(ci)) {"," ci.innerHTML = '&nbsp;'"," }"," });"," });"," me.addListener(\"aftergetcontent\", function () {"," switchBorderColor(this, true);"," });"," me.addListener(\"getAllHtml\", function () {"," removeSelectedClass(me.document.getElementsByTagName(\"td\"));"," });"," //修正全屏状态下插入的表格宽度在非全屏状态下撑开编辑器的情况"," me.addListener(\"fullscreenchanged\", function (type, fullscreen) {"," if (!fullscreen) {"," var ratio = this.body.offsetWidth / document.body.offsetWidth,"," tables = domUtils.getElementsByTagName(this.body, \"table\");"," utils.each(tables, function (table) {"," if (table.offsetWidth < me.body.offsetWidth) return false;"," var tds = domUtils.getElementsByTagName(table, \"td\"),"," backWidths = [];"," utils.each(tds, function (td) {"," backWidths.push(td.offsetWidth);"," });"," for (var i = 0, td; td = tds[i]; i++) {"," td.setAttribute(\"width\", Math.floor(backWidths[i] * ratio));"," }"," table.setAttribute(\"width\", Math.floor(getTableWidth(me, needIEHack, getDefaultValue(me))))"," });"," }"," });",""," //重写execCommand命令,用于处理框选时的处理"," var oldExecCommand = me.execCommand;"," me.execCommand = function (cmd, datatat) {",""," var me = this,"," args = arguments;",""," cmd = cmd.toLowerCase();"," var ut = getUETableBySelected(me), tds,"," range = new dom.Range(me.document),"," cmdFun = me.commands[cmd] || UE.commands[cmd],"," result;"," if (!cmdFun) return;"," if (ut && !commands[cmd] && !cmdFun.notNeedUndo && !me.__hasEnterExecCommand) {"," me.__hasEnterExecCommand = true;"," me.fireEvent(\"beforeexeccommand\", cmd);"," tds = ut.selectedTds;"," var lastState = -2, lastValue = -2, value, state;"," for (var i = 0, td; td = tds[i]; i++) {"," if (isEmptyBlock(td)) {"," range.setStart(td, 0).setCursor(false, true)"," } else {"," range.selectNode(td).select(true);"," }"," state = me.queryCommandState(cmd);"," value = me.queryCommandValue(cmd);"," if (state != -1) {"," if (lastState !== state || lastValue !== value) {"," me._ignoreContentChange = true;"," result = oldExecCommand.apply(me, arguments);"," me._ignoreContentChange = false;",""," }"," lastState = me.queryCommandState(cmd);"," lastValue = me.queryCommandValue(cmd);"," if (domUtils.isEmptyBlock(td)) {"," domUtils.fillNode(me.document, td)"," }"," }"," }"," range.setStart(tds[0], 0).shrinkBoundary(true).setCursor(false, true);"," me.fireEvent('contentchange');"," me.fireEvent(\"afterexeccommand\", cmd);"," me.__hasEnterExecCommand = false;"," me._selectionChange();"," } else {"," result = oldExecCommand.apply(me, arguments);"," }"," return result;"," };","",""," });"," /*"," * 删除obj的宽高style,改成属性宽高"," * @param obj"," * @param replaceToProperty"," */"," function removeStyleSize(obj, replaceToProperty) {"," removeStyle(obj, \"width\", true);"," removeStyle(obj, \"height\", true);"," }",""," function removeStyle(obj, styleName, replaceToProperty) {"," if (obj.style[styleName]) {"," replaceToProperty && obj.setAttribute(styleName, parseInt(obj.style[styleName], 10));"," obj.style[styleName] = \"\";"," }"," }",""," function getParentTdOrTh(ele) {"," if (ele.tagName == \"TD\" || ele.tagName == \"TH\") return ele;"," var td;"," if (td = domUtils.findParentByTagName(ele, \"td\", true) || domUtils.findParentByTagName(ele, \"th\", true)) return td;"," return null;"," }",""," function isEmptyBlock(node) {"," var reg = new RegExp(domUtils.fillChar, 'g');"," if (node[browser.ie ? 'innerText' : 'textContent'].replace(/^\\s*$/, '').replace(reg, '').length > 0) {"," return 0;"," }"," for (var n in dtd.$isNotEmpty) {"," if (node.getElementsByTagName(n).length) {"," return 0;"," }"," }"," return 1;"," }","",""," function mouseCoords(evt) {"," if (evt.pageX || evt.pageY) {"," return { x:evt.pageX, y:evt.pageY };"," }"," return {"," x:evt.clientX + me.document.body.scrollLeft - me.document.body.clientLeft,"," y:evt.clientY + me.document.body.scrollTop - me.document.body.clientTop"," };"," }",""," function mouseMoveEvent(evt) {",""," if( isEditorDisabled() ) {"," return;"," }",""," try {",""," //普通状态下鼠标移动"," var target = getParentTdOrTh(evt.target || evt.srcElement),"," pos;",""," //区分用户的行为是拖动还是双击"," if( isInResizeBuffer ) {",""," me.body.style.webkitUserSelect = 'none';",""," if( Math.abs( userActionStatus.x - evt.clientX ) > offsetOfTableCell || Math.abs( userActionStatus.y - evt.clientY ) > offsetOfTableCell ) {"," clearTableDragTimer();"," isInResizeBuffer = false;"," singleClickState = 0;"," //drag action"," tableBorderDrag(evt);"," }"," }",""," //修改单元格大小时的鼠标移动"," if (onDrag && dragTd) {"," singleClickState = 0;"," me.body.style.webkitUserSelect = 'none';"," me.selection.getNative()[browser.ie ? 'empty' : 'removeAllRanges']();"," pos = mouseCoords(evt);"," toggleDraggableState(me, true, onDrag, pos, target);"," if (onDrag == \"h\") {"," dragLine.style.left = getPermissionX(dragTd, evt) + \"px\";"," } else if (onDrag == \"v\") {"," dragLine.style.top = getPermissionY(dragTd, evt) + \"px\";"," }"," return;"," }"," //当鼠标处于table上时,修改移动过程中的光标状态"," if (target) {"," //针对使用table作为容器的组件不触发拖拽效果"," if (me.fireEvent('excludetable', target) === true)"," return;"," pos = mouseCoords(evt);"," var state = getRelation(target, pos),"," table = domUtils.findParentByTagName(target, \"table\", true);",""," if (inTableSide(table, target, evt, true)) {"," if (me.fireEvent(\"excludetable\", table) === true) return;"," me.body.style.cursor = \"url(\" + me.options.cursorpath + \"h.png),pointer\";"," } else if (inTableSide(table, target, evt)) {"," if (me.fireEvent(\"excludetable\", table) === true) return;"," me.body.style.cursor = \"url(\" + me.options.cursorpath + \"v.png),pointer\";"," } else {"," me.body.style.cursor = \"text\";"," var curCell = target;"," if (/\\d/.test(state)) {"," state = state.replace(/\\d/, '');"," target = getUETable(target).getPreviewCell(target, state == \"v\");"," }"," //位于第一行的顶部或者第一列的左边时不可拖动"," toggleDraggableState(me, target ? !!state : false, target ? state : '', pos, target);",""," }"," } else {"," toggleDragButton(false, table, me);"," }",""," } catch (e) {"," showError(e);"," }"," }",""," var dragButtonTimer;",""," function toggleDragButton(show, table, editor) {"," if (!show) {"," if (dragOver)return;"," dragButtonTimer = setTimeout(function () {"," !dragOver && dragButton && dragButton.parentNode && dragButton.parentNode.removeChild(dragButton);"," }, 2000);"," } else {"," createDragButton(table, editor);"," }"," }",""," function createDragButton(table, editor) {"," var pos = domUtils.getXY(table),"," doc = table.ownerDocument;"," if (dragButton && dragButton.parentNode)return dragButton;"," dragButton = doc.createElement(\"div\");"," dragButton.contentEditable = false;"," dragButton.innerHTML = \"\";"," dragButton.style.cssText = \"width:15px;height:15px;background-image:url(\" + editor.options.UEDITOR_HOME_URL + \"dialogs/table/dragicon.png);position: absolute;cursor:move;top:\" + (pos.y - 15) + \"px;left:\" + (pos.x) + \"px;\";"," domUtils.unSelectable(dragButton);"," dragButton.onmouseover = function (evt) {"," dragOver = true;"," };"," dragButton.onmouseout = function (evt) {"," dragOver = false;"," };"," domUtils.on(dragButton, 'click', function (type, evt) {"," doClick(evt, this);"," });"," domUtils.on(dragButton, 'dblclick', function (type, evt) {"," doDblClick(evt);"," });"," domUtils.on(dragButton, 'dragstart', function (type, evt) {"," domUtils.preventDefault(evt);"," });"," var timer;",""," function doClick(evt, button) {"," // 部分浏览器下需要清理"," clearTimeout(timer);"," timer = setTimeout(function () {"," editor.fireEvent(\"tableClicked\", table, button);"," }, 300);"," }",""," function doDblClick(evt) {"," clearTimeout(timer);"," var ut = getUETable(table),"," start = table.rows[0].cells[0],"," end = ut.getLastCell(),"," range = ut.getCellsRange(start, end);"," editor.selection.getRange().setStart(start, 0).setCursor(false, true);"," ut.setSelected(range);"," }",""," doc.body.appendChild(dragButton);"," }","","","// function inPosition(table, pos) {","// var tablePos = domUtils.getXY(table),","// width = table.offsetWidth,","// height = table.offsetHeight;","// if (pos.x - tablePos.x < 5 && pos.y - tablePos.y < 5) {","// return \"topLeft\";","// } else if (tablePos.x + width - pos.x < 5 && tablePos.y + height - pos.y < 5) {","// return \"bottomRight\";","// }","// }",""," function inTableSide(table, cell, evt, top) {"," var pos = mouseCoords(evt),"," state = getRelation(cell, pos);",""," if (top) {"," var caption = table.getElementsByTagName(\"caption\")[0],"," capHeight = caption ? caption.offsetHeight : 0;"," return (state == \"v1\") && ((pos.y - domUtils.getXY(table).y - capHeight) < 8);"," } else {"," return (state == \"h1\") && ((pos.x - domUtils.getXY(table).x) < 8);"," }"," }",""," /*"," * 获取拖动时允许的X轴坐标"," * @param dragTd"," * @param evt"," */"," function getPermissionX(dragTd, evt) {"," var ut = getUETable(dragTd);"," if (ut) {"," var preTd = ut.getSameEndPosCells(dragTd, \"x\")[0],"," nextTd = ut.getSameStartPosXCells(dragTd)[0],"," mouseX = mouseCoords(evt).x,"," left = (preTd ? domUtils.getXY(preTd).x : domUtils.getXY(ut.table).x) + 20 ,"," right = nextTd ? domUtils.getXY(nextTd).x + nextTd.offsetWidth - 20 : (me.body.offsetWidth + 5 || parseInt(domUtils.getComputedStyle(me.body, \"width\"), 10));",""," left += cellMinWidth;"," right -= cellMinWidth;",""," return mouseX < left ? left : mouseX > right ? right : mouseX;"," }"," }",""," /*"," * 获取拖动时允许的Y轴坐标"," */"," function getPermissionY(dragTd, evt) {"," try {"," var top = domUtils.getXY(dragTd).y,"," mousePosY = mouseCoords(evt).y;"," return mousePosY < top ? top : mousePosY;"," } catch (e) {"," showError(e);"," }"," }",""," /*"," * 移动状态切换"," */"," function toggleDraggableState(editor, draggable, dir, mousePos, cell) {"," try {"," editor.body.style.cursor = dir == \"h\" ? \"col-resize\" : dir == \"v\" ? \"row-resize\" : \"text\";"," if (browser.ie) {"," if (dir && !mousedown && !getUETableBySelected(editor)) {"," getDragLine(editor, editor.document);"," showDragLineAt(dir, cell);"," } else {"," hideDragLine(editor)"," }"," }"," onBorder = draggable;"," } catch (e) {"," showError(e);"," }"," }",""," /*"," * 获取与UETable相关的resize line"," * @param uetable UETable对象"," */"," function getResizeLineByUETable() {",""," var lineId = '_UETableResizeLine',"," line = this.document.getElementById( lineId );",""," if( !line ) {"," line = this.document.createElement(\"div\");"," line.id = lineId;"," line.contnetEditable = false;"," line.setAttribute(\"unselectable\", \"on\");",""," var styles = {"," width: 2*cellBorderWidth + 1 + 'px',"," position: 'absolute',"," 'z-index': 100000,"," cursor: 'col-resize',"," background: 'red',"," display: 'none'"," };",""," //切换状态"," line.onmouseout = function(){"," this.style.display = 'none';"," };",""," utils.extend( line.style, styles );",""," this.document.body.appendChild( line );",""," }",""," return line;",""," }",""," /*"," * 更新resize-line"," */"," function updateResizeLine( cell, uetable ) {",""," var line = getResizeLineByUETable.call( this ),"," table = uetable.table,"," styles = {"," top: domUtils.getXY( table ).y + 'px',"," left: domUtils.getXY( cell).x + cell.offsetWidth - cellBorderWidth + 'px',"," display: 'block',"," height: table.offsetHeight + 'px'"," };",""," utils.extend( line.style, styles );",""," }",""," /*"," * 显示resize-line"," */"," function showResizeLine( cell ) {",""," var uetable = getUETable( cell );",""," updateResizeLine.call( this, cell, uetable );",""," }",""," /*"," * 获取鼠标与当前单元格的相对位置"," * @param ele"," * @param mousePos"," */"," function getRelation(ele, mousePos) {"," var elePos = domUtils.getXY(ele);",""," if( !elePos ) {"," return '';"," }",""," if (elePos.x + ele.offsetWidth - mousePos.x < cellBorderWidth) {"," return \"h\";"," }"," if (mousePos.x - elePos.x < cellBorderWidth) {"," return 'h1'"," }"," if (elePos.y + ele.offsetHeight - mousePos.y < cellBorderWidth) {"," return \"v\";"," }"," if (mousePos.y - elePos.y < cellBorderWidth) {"," return 'v1'"," }"," return '';"," }",""," function mouseDownEvent(type, evt) {",""," if( isEditorDisabled() ) {"," return ;"," }",""," userActionStatus = {"," x: evt.clientX,"," y: evt.clientY"," };",""," //右键菜单单独处理"," if (evt.button == 2) {"," var ut = getUETableBySelected(me),"," flag = false;",""," if (ut) {"," var td = getTargetTd(me, evt);"," utils.each(ut.selectedTds, function (ti) {"," if (ti === td) {"," flag = true;"," }"," });"," if (!flag) {"," removeSelectedClass(domUtils.getElementsByTagName(me.body, \"th td\"));"," ut.clearSelected()"," } else {"," td = ut.selectedTds[0];"," setTimeout(function () {"," me.selection.getRange().setStart(td, 0).setCursor(false, true);"," }, 0);",""," }"," }"," } else {"," tableClickHander( evt );"," }",""," }",""," //清除表格的计时器"," function clearTableTimer() {"," tabTimer && clearTimeout( tabTimer );"," tabTimer = null;"," }",""," //双击收缩"," function tableDbclickHandler(evt) {"," singleClickState = 0;"," evt = evt || me.window.event;"," var target = getParentTdOrTh(evt.target || evt.srcElement);"," if (target) {"," var h;"," if (h = getRelation(target, mouseCoords(evt))) {",""," hideDragLine( me );",""," if (h == 'h1') {"," h = 'h';"," if (inTableSide(domUtils.findParentByTagName(target, \"table\"), target, evt)) {"," me.execCommand('adaptbywindow');"," } else {"," target = getUETable(target).getPreviewCell(target);"," if (target) {"," var rng = me.selection.getRange();"," rng.selectNodeContents(target).setCursor(true, true)"," }"," }"," }"," if (h == 'h') {"," var ut = getUETable(target),"," table = ut.table,"," cells = getCellsByMoveBorder( target, table, true );",""," cells = extractArray( cells, 'left' );",""," ut.width = ut.offsetWidth;",""," var oldWidth = [],"," newWidth = [];",""," utils.each( cells, function( cell ){",""," oldWidth.push( cell.offsetWidth );",""," } );",""," utils.each( cells, function( cell ){",""," cell.removeAttribute(\"width\");",""," } );",""," window.setTimeout( function(){",""," //是否允许改变"," var changeable = true;",""," utils.each( cells, function( cell, index ){",""," var width = cell.offsetWidth;",""," if( width > oldWidth[index] ) {"," changeable = false;"," return false;"," }",""," newWidth.push( width );",""," } );",""," var change = changeable ? newWidth : oldWidth;",""," utils.each( cells, function( cell, index ){",""," cell.width = change[index] - getTabcellSpace();",""," } );","",""," }, 0 );","","// minWidth -= cellMinWidth;","//","// table.removeAttribute(\"width\");","// utils.each(cells, function (cell) {","// cell.style.width = \"\";","// cell.width -= minWidth;","// });",""," }"," }"," }"," }",""," function tableClickHander( evt ) {",""," removeSelectedClass(domUtils.getElementsByTagName(me.body, \"td th\"));"," //trace:3113"," //选中单元格,点击table外部,不会清掉table上挂的ueTable,会引起getUETableBySelected方法返回值"," utils.each(me.document.getElementsByTagName('table'), function (t) {"," t.ueTable = null;"," });"," startTd = getTargetTd(me, evt);"," if( !startTd ) return;"," var table = domUtils.findParentByTagName(startTd, \"table\", true);"," ut = getUETable(table);"," ut && ut.clearSelected();",""," //判断当前鼠标状态"," if (!onBorder) {"," me.document.body.style.webkitUserSelect = '';"," mousedown = true;"," me.addListener('mouseover', mouseOverEvent);"," } else {"," //边框上的动作处理"," borderActionHandler( evt );"," }","",""," }",""," //处理表格边框上的动作, 这里做延时处理,避免两种动作互相影响"," function borderActionHandler( evt ) {",""," if ( browser.ie ) {"," evt = reconstruct(evt );"," }",""," clearTableDragTimer();",""," //是否正在等待resize的缓冲中"," isInResizeBuffer = true;",""," tableDragTimer = setTimeout(function(){"," tableBorderDrag( evt );"," }, dblclickTime);",""," }",""," function extractArray( originArr, key ) {",""," var result = [],"," tmp = null;",""," for( var i = 0, len = originArr.length; i<len; i++ ) {",""," tmp = originArr[ i ][ key ];",""," if( tmp ) {"," result.push( tmp );"," }",""," }",""," return result;",""," }",""," function clearTableDragTimer() {"," tableDragTimer && clearTimeout(tableDragTimer);"," tableDragTimer = null;"," }",""," function reconstruct( obj ) {",""," var attrs = ['pageX', 'pageY', 'clientX', 'clientY', 'srcElement', 'target'],"," newObj = {};",""," if( obj ) {",""," for( var i = 0, key, val; key = attrs[i]; i++ ) {"," val=obj[ key ];"," val && (newObj[ key ] = val);"," }",""," }",""," return newObj;",""," }",""," //边框拖动"," function tableBorderDrag( evt ) {",""," isInResizeBuffer = false;",""," if( !startTd ) return;"," var state = Math.abs( userActionStatus.x - evt.clientX ) >= Math.abs( userActionStatus.y - evt.clientY ) ? 'h' : 'v';","// var state = getRelation(startTd, mouseCoords(evt));"," if (/\\d/.test(state)) {"," state = state.replace(/\\d/, '');"," startTd = getUETable(startTd).getPreviewCell(startTd, state == 'v');"," }"," hideDragLine(me);"," getDragLine(me, me.document);"," me.fireEvent('saveScene');"," showDragLineAt(state, startTd);"," mousedown = true;"," //拖动开始"," onDrag = state;"," dragTd = startTd;"," }",""," function mouseUpEvent(type, evt) {",""," if( isEditorDisabled() ) {"," return ;"," }",""," clearTableDragTimer();",""," isInResizeBuffer = false;",""," if( onBorder ) {"," singleClickState = ++singleClickState % 3;",""," userActionStatus = {"," x: evt.clientX,"," y: evt.clientY"," };",""," tableResizeTimer = setTimeout(function(){"," singleClickState > 0 && singleClickState--;"," }, dblclickTime );",""," if( singleClickState === 2 ) {",""," singleClickState = 0;"," tableDbclickHandler(evt);"," return;",""," }",""," }",""," if (evt.button == 2)return;"," var me = this;"," //清除表格上原生跨选问题"," var range = me.selection.getRange(),"," start = domUtils.findParentByTagName(range.startContainer, 'table', true),"," end = domUtils.findParentByTagName(range.endContainer, 'table', true);",""," if (start || end) {"," if (start === end) {"," start = domUtils.findParentByTagName(range.startContainer, ['td', 'th', 'caption'], true);"," end = domUtils.findParentByTagName(range.endContainer, ['td', 'th', 'caption'], true);"," if (start !== end) {"," me.selection.clearRange()"," }"," } else {"," me.selection.clearRange()"," }"," }"," mousedown = false;"," me.document.body.style.webkitUserSelect = '';"," //拖拽状态下的mouseUP"," if ( onDrag && dragTd ) {",""," me.selection.getNative()[browser.ie ? 'empty' : 'removeAllRanges']();",""," singleClickState = 0;"," dragLine = me.document.getElementById('ue_tableDragLine');",""," var dragTdPos = domUtils.getXY(dragTd),"," dragLinePos = domUtils.getXY(dragLine);",""," switch (onDrag) {"," case \"h\":"," changeColWidth(dragTd, dragLinePos.x - dragTdPos.x);"," break;"," case \"v\":"," changeRowHeight(dragTd, dragLinePos.y - dragTdPos.y - dragTd.offsetHeight);"," break;"," default:"," }"," onDrag = \"\";"," dragTd = null;",""," hideDragLine(me);"," me.fireEvent('saveScene');"," return;"," }"," //正常状态下的mouseup"," if (!startTd) {"," var target = domUtils.findParentByTagName(evt.target || evt.srcElement, \"td\", true);"," if (!target) target = domUtils.findParentByTagName(evt.target || evt.srcElement, \"th\", true);"," if (target && (target.tagName == \"TD\" || target.tagName == \"TH\")) {"," if (me.fireEvent(\"excludetable\", target) === true) return;"," range = new dom.Range(me.document);"," range.setStart(target, 0).setCursor(false, true);"," }"," } else {"," var ut = getUETable(startTd),"," cell = ut ? ut.selectedTds[0] : null;"," if (cell) {"," range = new dom.Range(me.document);"," if (domUtils.isEmptyBlock(cell)) {"," range.setStart(cell, 0).setCursor(false, true);"," } else {"," range.selectNodeContents(cell).shrinkBoundary().setCursor(false, true);"," }"," } else {"," range = me.selection.getRange().shrinkBoundary();"," if (!range.collapsed) {"," var start = domUtils.findParentByTagName(range.startContainer, ['td', 'th'], true),"," end = domUtils.findParentByTagName(range.endContainer, ['td', 'th'], true);"," //在table里边的不能清除"," if (start && !end || !start && end || start && end && start !== end) {"," range.setCursor(false, true);"," }"," }"," }"," startTd = null;"," me.removeListener('mouseover', mouseOverEvent);"," }"," me._selectionChange(250, evt);"," }",""," function mouseOverEvent(type, evt) {",""," if( isEditorDisabled() ) {"," return;"," }",""," var me = this,"," tar = evt.target || evt.srcElement;"," currentTd = domUtils.findParentByTagName(tar, \"td\", true) || domUtils.findParentByTagName(tar, \"th\", true);"," //需要判断两个TD是否位于同一个表格内"," if (startTd && currentTd &&"," ((startTd.tagName == \"TD\" && currentTd.tagName == \"TD\") || (startTd.tagName == \"TH\" && currentTd.tagName == \"TH\")) &&"," domUtils.findParentByTagName(startTd, 'table') == domUtils.findParentByTagName(currentTd, 'table')) {"," var ut = getUETable(currentTd);"," if (startTd != currentTd) {"," me.document.body.style.webkitUserSelect = 'none';"," me.selection.getNative()[browser.ie ? 'empty' : 'removeAllRanges']();"," var range = ut.getCellsRange(startTd, currentTd);"," ut.setSelected(range);"," } else {"," me.document.body.style.webkitUserSelect = '';"," ut.clearSelected();"," }",""," }"," evt.preventDefault ? evt.preventDefault() : (evt.returnValue = false);"," }",""," function setCellHeight(cell, height, backHeight) {"," var lineHight = parseInt(domUtils.getComputedStyle(cell, \"line-height\"), 10),"," tmpHeight = backHeight + height;"," height = tmpHeight < lineHight ? lineHight : tmpHeight;"," if (cell.style.height) cell.style.height = \"\";"," cell.rowSpan == 1 ? cell.setAttribute(\"height\", height) : (cell.removeAttribute && cell.removeAttribute(\"height\"));"," }",""," function getWidth(cell) {"," if (!cell)return 0;"," return parseInt(domUtils.getComputedStyle(cell, \"width\"), 10);"," }",""," function changeColWidth(cell, changeValue) {",""," var ut = getUETable(cell);"," if (ut) {",""," //根据当前移动的边框获取相关的单元格"," var table = ut.table,"," cells = getCellsByMoveBorder( cell, table );",""," table.style.width = \"\";"," table.removeAttribute(\"width\");",""," //修正改变量"," changeValue = correctChangeValue( changeValue, cell, cells );",""," if (cell.nextSibling) {",""," var i=0;",""," utils.each( cells, function( cellGroup ){",""," cellGroup.left.width = (+cellGroup.left.width)+changeValue;"," cellGroup.right && ( cellGroup.right.width = (+cellGroup.right.width)-changeValue );",""," } );",""," } else {",""," utils.each( cells, function( cellGroup ){"," cellGroup.left.width -= -changeValue;"," } );",""," }"," }",""," }",""," function isEditorDisabled() {"," return me.body.contentEditable === \"false\";"," }",""," function changeRowHeight(td, changeValue) {"," if (Math.abs(changeValue) < 10) return;"," var ut = getUETable(td);"," if (ut) {"," var cells = ut.getSameEndPosCells(td, \"y\"),"," //备份需要连带变化的td的原始高度,否则后期无法获取正确的值"," backHeight = cells[0] ? cells[0].offsetHeight : 0;"," for (var i = 0, cell; cell = cells[i++];) {"," setCellHeight(cell, changeValue, backHeight);"," }"," }",""," }",""," /*"," * 获取调整单元格大小的相关单元格"," * @isContainMergeCell 返回的结果中是否包含发生合并后的单元格"," */"," function getCellsByMoveBorder( cell, table, isContainMergeCell ) {",""," if( !table ) {"," table = domUtils.findParentByTagName( cell, 'table' );"," }",""," if( !table ) {"," return null;"," }",""," //获取到该单元格所在行的序列号"," var index = domUtils.getNodeIndex( cell ),"," temp = cell,"," rows = table.rows,"," colIndex = 0;",""," while( temp ) {"," //获取到当前单元格在未发生单元格合并时的序列"," if( temp.nodeType === 1 ) {"," colIndex += (temp.colSpan || 1);"," }"," temp = temp.previousSibling;"," }",""," temp = null;",""," //记录想关的单元格"," var borderCells = [];",""," utils.each(rows, function( tabRow ){",""," var cells = tabRow.cells,"," currIndex = 0;",""," utils.each( cells, function( tabCell ){",""," currIndex += (tabCell.colSpan || 1);",""," if( currIndex === colIndex ) {",""," borderCells.push({"," left: tabCell,"," right: tabCell.nextSibling || null"," });",""," return false;",""," } else if( currIndex > colIndex ) {",""," if( isContainMergeCell ) {"," borderCells.push({"," left: tabCell"," });"," }",""," return false;"," }","",""," } );",""," });",""," return borderCells;",""," }","",""," /*"," * 通过给定的单元格集合获取最小的单元格width"," */"," function getMinWidthByTableCells( cells ) {",""," var minWidth = Number.MAX_VALUE;",""," for( var i = 0, curCell; curCell = cells[ i ] ; i++ ) {",""," minWidth = Math.min( minWidth, curCell.width || getTableCellWidth( curCell ) );",""," }",""," return minWidth;",""," }",""," function correctChangeValue( changeValue, relatedCell, cells ) {",""," //为单元格的paading预留空间"," changeValue -= getTabcellSpace();",""," if( changeValue < 0 ) {"," return 0;"," }",""," changeValue -= getTableCellWidth( relatedCell );",""," //确定方向"," var direction = changeValue < 0 ? 'left':'right';",""," changeValue = Math.abs(changeValue);",""," //只关心非最后一个单元格就可以"," utils.each( cells, function( cellGroup ){",""," var curCell = cellGroup[direction];",""," //为单元格保留最小空间"," if( curCell ) {"," changeValue = Math.min( changeValue, getTableCellWidth( curCell )-cellMinWidth );"," }","",""," } );","",""," //修正越界"," changeValue = changeValue < 0 ? 0 : changeValue;",""," return direction === 'left' ? -changeValue : changeValue;",""," }",""," function getTableCellWidth( cell ) {",""," var width = 0,"," //偏移纠正量"," offset = 0,"," width = cell.offsetWidth - getTabcellSpace();",""," //最后一个节点纠正一下"," if( !cell.nextSibling ) {",""," width -= getTableCellOffset( cell );",""," }",""," width = width < 0 ? 0 : width;",""," try {"," cell.width = width;"," } catch(e) {"," }",""," return width;",""," }",""," /*"," * 获取单元格所在表格的最末单元格的偏移量"," */"," function getTableCellOffset( cell ) {",""," tab = domUtils.findParentByTagName( cell, \"table\", false);",""," if( tab.offsetVal === undefined ) {",""," var prev = cell.previousSibling;",""," if( prev ) {",""," //最后一个单元格和前一个单元格的width diff结果 如果恰好为一个border width, 则条件成立"," tab.offsetVal = cell.offsetWidth - prev.offsetWidth === UT.borderWidth ? UT.borderWidth : 0;",""," } else {"," tab.offsetVal = 0;"," }",""," }",""," return tab.offsetVal;",""," }",""," function getTabcellSpace() {",""," if( UT.tabcellSpace === undefined ) {",""," var cell = null,"," tab = me.document.createElement(\"table\"),"," tbody = me.document.createElement(\"tbody\"),"," trow = me.document.createElement(\"tr\"),"," tabcell = me.document.createElement(\"td\"),"," mirror = null;",""," tabcell.style.cssText = 'border: 0;';"," tabcell.width = 1;",""," trow.appendChild( tabcell );"," trow.appendChild( mirror = tabcell.cloneNode( false ) );",""," tbody.appendChild( trow );",""," tab.appendChild( tbody );",""," tab.style.cssText = \"visibility: hidden;\";",""," me.body.appendChild( tab );",""," UT.paddingSpace = tabcell.offsetWidth - 1;",""," var tmpTabWidth = tab.offsetWidth;",""," tabcell.style.cssText = '';"," mirror.style.cssText = '';",""," UT.borderWidth = ( tab.offsetWidth - tmpTabWidth ) / 3;",""," UT.tabcellSpace = UT.paddingSpace + UT.borderWidth;",""," me.body.removeChild( tab );",""," }",""," getTabcellSpace = function(){ return UT.tabcellSpace; };",""," return UT.tabcellSpace;",""," }",""," function getDragLine(editor, doc) {"," if (mousedown)return;"," dragLine = editor.document.createElement(\"div\");"," domUtils.setAttributes(dragLine, {"," id:\"ue_tableDragLine\","," unselectable:'on',"," contenteditable:false,"," 'onresizestart':'return false',"," 'ondragstart':'return false',"," 'onselectstart':'return false',"," style:\"background-color:blue;position:absolute;padding:0;margin:0;background-image:none;border:0px none;opacity:0;filter:alpha(opacity=0)\""," });"," editor.body.appendChild(dragLine);"," }",""," function hideDragLine(editor) {"," if (mousedown)return;"," var line;"," while (line = editor.document.getElementById('ue_tableDragLine')) {"," domUtils.remove(line)"," }"," }",""," /*"," * 依据state(v|h)在cell位置显示横线"," * @param state"," * @param cell"," */"," function showDragLineAt(state, cell) {"," if (!cell) return;"," var table = domUtils.findParentByTagName(cell, \"table\"),"," caption = table.getElementsByTagName('caption'),"," width = table.offsetWidth,"," height = table.offsetHeight - (caption.length > 0 ? caption[0].offsetHeight : 0),"," tablePos = domUtils.getXY(table),"," cellPos = domUtils.getXY(cell), css;"," switch (state) {"," case \"h\":"," css = 'height:' + height + 'px;top:' + (tablePos.y + (caption.length > 0 ? caption[0].offsetHeight : 0)) + 'px;left:' + (cellPos.x + cell.offsetWidth);"," dragLine.style.cssText = css + 'px;position: absolute;display:block;background-color:blue;width:1px;border:0; color:blue;opacity:.3;filter:alpha(opacity=30)';"," break;"," case \"v\":"," css = 'width:' + width + 'px;left:' + tablePos.x + 'px;top:' + (cellPos.y + cell.offsetHeight );"," //必须加上border:0和color:blue,否则低版ie不支持背景色显示"," dragLine.style.cssText = css + 'px;overflow:hidden;position: absolute;display:block;background-color:blue;height:1px;border:0;color:blue;opacity:.2;filter:alpha(opacity=20)';"," break;"," default:"," }"," }",""," /*"," * 当表格边框颜色为白色时设置为虚线,true为添加虚线"," * @param editor"," * @param flag"," */"," function switchBorderColor(editor, flag) {"," var tableArr = domUtils.getElementsByTagName(editor.body, \"table\"), color;"," for (var i = 0, node; node = tableArr[i++];) {"," var td = domUtils.getElementsByTagName(node, \"td\");"," if (td[0]) {"," if (flag) {"," color = (td[0].style.borderColor).replace(/\\s/g, \"\");"," if (/(#ffffff)|(rgb\\(255,f55,255\\))/ig.test(color))"," domUtils.addClass(node, \"noBorderTable\")"," } else {"," domUtils.removeClasses(node, \"noBorderTable\")"," }"," }",""," }"," }",""," function getTableWidth(editor, needIEHack, defaultValue) {"," var body = editor.body;"," return body.offsetWidth - (needIEHack ? parseInt(domUtils.getComputedStyle(body, 'margin-left'), 10) * 2 : 0) - defaultValue.tableBorder * 2 - (editor.options.offsetWidth || 0);"," }",""," /*"," * 获取当前拖动的单元格"," */"," function getTargetTd(editor, evt) {",""," var target = domUtils.findParentByTagName(evt.target || evt.srcElement, [\"td\", \"th\"], true),"," dir = null;",""," if( !target ) {"," return null;"," }",""," dir = getRelation( target, mouseCoords( evt ) );",""," //如果有前一个节点, 需要做一个修正, 否则可能会得到一个错误的td",""," if( !target ) {"," return null;"," }",""," if( dir === 'h1' && target.previousSibling ) {",""," var position = domUtils.getXY( target),"," cellWidth = target.offsetWidth;",""," if( Math.abs( position.x + cellWidth - evt.clientX ) > cellWidth / 3 ) {"," target = target.previousSibling;"," }",""," } else if( dir === 'v1' && target.parentNode.previousSibling ) {",""," var position = domUtils.getXY( target),"," cellHeight = target.offsetHeight;",""," if( Math.abs( position.y + cellHeight - evt.clientY ) > cellHeight / 3 ) {"," target = target.parentNode.previousSibling.firstChild;"," }",""," }","",""," //排除了非td内部以及用于代码高亮部分的td"," return target && !(editor.fireEvent(\"excludetable\", target) === true) ? target : null;"," }","","};"]; +_$jscoverage['plugins/table.action.js'][8]++; +UE.plugins.table = (function () { + _$jscoverage['plugins/table.action.js'][9]++; + var me = this, tabTimer = null, tableDragTimer = null, tableResizeTimer = null, cellMinWidth = 5, isInResizeBuffer = false, cellBorderWidth = 5, offsetOfTableCell = 10, singleClickState = 0, userActionStatus = null, dblclickTime = 360, UT = UE.UETable, getUETable = (function (tdOrTable) { + _$jscoverage['plugins/table.action.js'][29]++; + return UT.getUETable(tdOrTable); +}), getUETableBySelected = (function (editor) { + _$jscoverage['plugins/table.action.js'][32]++; + return UT.getUETableBySelected(editor); +}), getDefaultValue = (function (editor, table) { + _$jscoverage['plugins/table.action.js'][35]++; + return UT.getDefaultValue(editor, table); +}), removeSelectedClass = (function (cells) { + _$jscoverage['plugins/table.action.js'][38]++; + return UT.removeSelectedClass(cells); +}); + _$jscoverage['plugins/table.action.js'][41]++; + function showError(e) { +} + _$jscoverage['plugins/table.action.js'][44]++; + me.ready((function () { + _$jscoverage['plugins/table.action.js'][45]++; + var me = this; + _$jscoverage['plugins/table.action.js'][46]++; + var orgGetText = me.selection.getText; + _$jscoverage['plugins/table.action.js'][47]++; + me.selection.getText = (function () { + _$jscoverage['plugins/table.action.js'][48]++; + var table = getUETableBySelected(me); + _$jscoverage['plugins/table.action.js'][49]++; + if (table) { + _$jscoverage['plugins/table.action.js'][50]++; + var str = ""; + _$jscoverage['plugins/table.action.js'][51]++; + utils.each(table.selectedTds, (function (td) { + _$jscoverage['plugins/table.action.js'][52]++; + str += td[(browser.ie? "innerText": "textContent")]; +})); + _$jscoverage['plugins/table.action.js'][54]++; + return str; + } + else { + _$jscoverage['plugins/table.action.js'][56]++; + return orgGetText.call(me.selection); + } +}); +})); + _$jscoverage['plugins/table.action.js'][63]++; + var startTd = null, currentTd = null, onDrag = "", onBorder = false, dragButton = null, dragOver = false, dragLine = null, dragTd = null; + _$jscoverage['plugins/table.action.js'][72]++; + var mousedown = false, needIEHack = true; + _$jscoverage['plugins/table.action.js'][76]++; + me.setOpt({"maxColNum": 20, "maxRowNum": 100, "defaultCols": 5, "defaultRows": 5, "tdvalign": "top", "cursorpath": (me.options.UEDITOR_HOME_URL + "themes/default/images/cursor_"), "tableDragable": false, "classList": ["ue-table-interlace-color-single", "ue-table-interlace-color-double"]}); + _$jscoverage['plugins/table.action.js'][86]++; + me.getUETable = getUETable; + _$jscoverage['plugins/table.action.js'][87]++; + var commands = {"deletetable": 1, "inserttable": 1, "cellvalign": 1, "insertcaption": 1, "deletecaption": 1, "inserttitle": 1, "deletetitle": 1, "mergeright": 1, "mergedown": 1, "mergecells": 1, "insertrow": 1, "insertrownext": 1, "deleterow": 1, "insertcol": 1, "insertcolnext": 1, "deletecol": 1, "splittocells": 1, "splittorows": 1, "splittocols": 1, "adaptbytext": 1, "adaptbywindow": 1, "adaptbycustomer": 1, "insertparagraph": 1, "insertparagraphbeforetable": 1, "averagedistributecol": 1, "averagedistributerow": 1}; + _$jscoverage['plugins/table.action.js'][115]++; + me.ready((function () { + _$jscoverage['plugins/table.action.js'][116]++; + utils.cssRule("table", ".selectTdClass{background-color:#edf5fa !important}table.noBorderTable td,table.noBorderTable th,table.noBorderTable caption{border:1px dashed #ddd !important}table{margin-bottom:10px;border-collapse:collapse;display:table;}td,th{padding: 5px 10px;border: 1px solid #DDD;}caption{border:1px dashed #DDD;border-bottom:0;padding:3px;text-align:center;}th{border-top:2px solid #BBB;background:#F7F7F7;}.ue-table-interlace-color-single{ background-color: #fcfcfc; } .ue-table-interlace-color-double{ background-color: #f7faff; }td p{margin:0;padding:0;}", me.document); + _$jscoverage['plugins/table.action.js'][128]++; + var tableCopyList, isFullCol, isFullRow; + _$jscoverage['plugins/table.action.js'][130]++; + me.addListener("keydown", (function (cmd, evt) { + _$jscoverage['plugins/table.action.js'][131]++; + var me = this; + _$jscoverage['plugins/table.action.js'][132]++; + var keyCode = (evt.keyCode || evt.which); + _$jscoverage['plugins/table.action.js'][134]++; + if ((keyCode == 8)) { + _$jscoverage['plugins/table.action.js'][136]++; + var ut = getUETableBySelected(me); + _$jscoverage['plugins/table.action.js'][137]++; + if ((ut && ut.selectedTds.length)) { + _$jscoverage['plugins/table.action.js'][139]++; + if (ut.isFullCol()) { + _$jscoverage['plugins/table.action.js'][140]++; + me.execCommand("deletecol"); + } + else { + _$jscoverage['plugins/table.action.js'][141]++; + if (ut.isFullRow()) { + _$jscoverage['plugins/table.action.js'][142]++; + me.execCommand("deleterow"); + } + else { + _$jscoverage['plugins/table.action.js'][144]++; + me.fireEvent("delcells"); + } + } + _$jscoverage['plugins/table.action.js'][146]++; + domUtils.preventDefault(evt); + } + _$jscoverage['plugins/table.action.js'][149]++; + var caption = domUtils.findParentByTagName(me.selection.getStart(), "caption", true), range = me.selection.getRange(); + _$jscoverage['plugins/table.action.js'][151]++; + if ((range.collapsed && caption && isEmptyBlock(caption))) { + _$jscoverage['plugins/table.action.js'][152]++; + me.fireEvent("saveScene"); + _$jscoverage['plugins/table.action.js'][153]++; + var table = caption.parentNode; + _$jscoverage['plugins/table.action.js'][154]++; + domUtils.remove(caption); + _$jscoverage['plugins/table.action.js'][155]++; + if (table) { + _$jscoverage['plugins/table.action.js'][156]++; + range.setStart(table.rows[0].cells[0], 0).setCursor(false, true); + } + _$jscoverage['plugins/table.action.js'][158]++; + me.fireEvent("saveScene"); + } + } + _$jscoverage['plugins/table.action.js'][163]++; + if ((keyCode == 46)) { + _$jscoverage['plugins/table.action.js'][165]++; + ut = getUETableBySelected(me); + _$jscoverage['plugins/table.action.js'][166]++; + if (ut) { + _$jscoverage['plugins/table.action.js'][167]++; + me.fireEvent("saveScene"); + _$jscoverage['plugins/table.action.js'][168]++; + for (var i = 0, ci; (ci = ut.selectedTds[(i++)]);) { + _$jscoverage['plugins/table.action.js'][169]++; + domUtils.fillNode(me.document, ci); +} + _$jscoverage['plugins/table.action.js'][171]++; + me.fireEvent("saveScene"); + _$jscoverage['plugins/table.action.js'][172]++; + domUtils.preventDefault(evt); + } + } + _$jscoverage['plugins/table.action.js'][177]++; + if ((keyCode == 13)) { + _$jscoverage['plugins/table.action.js'][179]++; + var rng = me.selection.getRange(), caption = domUtils.findParentByTagName(rng.startContainer, "caption", true); + _$jscoverage['plugins/table.action.js'][181]++; + if (caption) { + _$jscoverage['plugins/table.action.js'][182]++; + var table = domUtils.findParentByTagName(caption, "table"); + _$jscoverage['plugins/table.action.js'][183]++; + if ((! rng.collapsed)) { + _$jscoverage['plugins/table.action.js'][185]++; + rng.deleteContents(); + _$jscoverage['plugins/table.action.js'][186]++; + me.fireEvent("saveScene"); + } + else { + _$jscoverage['plugins/table.action.js'][188]++; + if (caption) { + _$jscoverage['plugins/table.action.js'][189]++; + rng.setStart(table.rows[0].cells[0], 0).setCursor(false, true); + } + } + _$jscoverage['plugins/table.action.js'][192]++; + domUtils.preventDefault(evt); + _$jscoverage['plugins/table.action.js'][193]++; + return; + } + _$jscoverage['plugins/table.action.js'][195]++; + if (rng.collapsed) { + _$jscoverage['plugins/table.action.js'][196]++; + var table = domUtils.findParentByTagName(rng.startContainer, "table"); + _$jscoverage['plugins/table.action.js'][197]++; + if (table) { + _$jscoverage['plugins/table.action.js'][198]++; + var cell = table.rows[0].cells[0], start = domUtils.findParentByTagName(me.selection.getStart(), ["td", "th"], true), preNode = table.previousSibling; + _$jscoverage['plugins/table.action.js'][201]++; + if (((cell === start) && ((! preNode) || ((preNode.nodeType == 1) && (preNode.tagName == "TABLE"))) && domUtils.isStartInblock(rng))) { + _$jscoverage['plugins/table.action.js'][202]++; + var first = domUtils.findParent(me.selection.getStart(), (function (n) { + _$jscoverage['plugins/table.action.js'][202]++; + return domUtils.isBlockElm(n); +}), true); + _$jscoverage['plugins/table.action.js'][203]++; + if ((first && (/t(h|d)/i.test(first.tagName) || (first === start.firstChild)))) { + _$jscoverage['plugins/table.action.js'][204]++; + me.execCommand("insertparagraphbeforetable"); + _$jscoverage['plugins/table.action.js'][205]++; + domUtils.preventDefault(evt); + } + } + } + } + } + _$jscoverage['plugins/table.action.js'][213]++; + if (((evt.ctrlKey || evt.metaKey) && (evt.keyCode == "67"))) { + _$jscoverage['plugins/table.action.js'][214]++; + tableCopyList = null; + _$jscoverage['plugins/table.action.js'][215]++; + var ut = getUETableBySelected(me); + _$jscoverage['plugins/table.action.js'][216]++; + if (ut) { + _$jscoverage['plugins/table.action.js'][217]++; + var tds = ut.selectedTds; + _$jscoverage['plugins/table.action.js'][218]++; + isFullCol = ut.isFullCol(); + _$jscoverage['plugins/table.action.js'][219]++; + isFullRow = ut.isFullRow(); + _$jscoverage['plugins/table.action.js'][220]++; + tableCopyList = [[ut.cloneCell(tds[0], null, true)]]; + _$jscoverage['plugins/table.action.js'][223]++; + for (var i = 1, ci = ci; (ci = tds[i]); (i++)) { + _$jscoverage['plugins/table.action.js'][224]++; + if ((ci.parentNode !== tds[(i - 1)].parentNode)) { + _$jscoverage['plugins/table.action.js'][225]++; + tableCopyList.push([ut.cloneCell(ci, null, true)]); + } + else { + _$jscoverage['plugins/table.action.js'][227]++; + tableCopyList[(tableCopyList.length - 1)].push(ut.cloneCell(ci, null, true)); + } +} + } + } +})); + _$jscoverage['plugins/table.action.js'][234]++; + me.addListener("tablehasdeleted", (function () { + _$jscoverage['plugins/table.action.js'][235]++; + toggleDraggableState(this, false, "", null); + _$jscoverage['plugins/table.action.js'][236]++; + if (dragButton) { + _$jscoverage['plugins/table.action.js'][236]++; + domUtils.remove(dragButton); + } +})); + _$jscoverage['plugins/table.action.js'][239]++; + me.addListener("beforepaste", (function (cmd, html) { + _$jscoverage['plugins/table.action.js'][240]++; + var me = this; + _$jscoverage['plugins/table.action.js'][241]++; + var rng = me.selection.getRange(); + _$jscoverage['plugins/table.action.js'][242]++; + if (domUtils.findParentByTagName(rng.startContainer, "caption", true)) { + _$jscoverage['plugins/table.action.js'][243]++; + var div = me.document.createElement("div"); + _$jscoverage['plugins/table.action.js'][244]++; + div.innerHTML = html.html; + _$jscoverage['plugins/table.action.js'][245]++; + html.html = div[(browser.ie? "innerText": "textContent")]; + _$jscoverage['plugins/table.action.js'][246]++; + return; + } + _$jscoverage['plugins/table.action.js'][248]++; + var table = getUETableBySelected(me); + _$jscoverage['plugins/table.action.js'][249]++; + if (tableCopyList) { + _$jscoverage['plugins/table.action.js'][250]++; + me.fireEvent("saveScene"); + _$jscoverage['plugins/table.action.js'][251]++; + var rng = me.selection.getRange(); + _$jscoverage['plugins/table.action.js'][252]++; + var td = domUtils.findParentByTagName(rng.startContainer, ["td", "th"], true), tmpNode, preNode; + _$jscoverage['plugins/table.action.js'][253]++; + if (td) { + _$jscoverage['plugins/table.action.js'][254]++; + var ut = getUETable(td); + _$jscoverage['plugins/table.action.js'][255]++; + if (isFullRow) { + _$jscoverage['plugins/table.action.js'][256]++; + var rowIndex = ut.getCellInfo(td).rowIndex; + _$jscoverage['plugins/table.action.js'][257]++; + if ((td.tagName == "TH")) { + _$jscoverage['plugins/table.action.js'][258]++; + (rowIndex++); + } + _$jscoverage['plugins/table.action.js'][260]++; + for (var i = 0, ci; (ci = tableCopyList[(i++)]);) { + _$jscoverage['plugins/table.action.js'][261]++; + var tr = ut.insertRow((rowIndex++), "td"); + _$jscoverage['plugins/table.action.js'][262]++; + for (var j = 0, cj; (cj = ci[j]); (j++)) { + _$jscoverage['plugins/table.action.js'][263]++; + var cell = tr.cells[j]; + _$jscoverage['plugins/table.action.js'][264]++; + if ((! cell)) { + _$jscoverage['plugins/table.action.js'][265]++; + cell = tr.insertCell(j); + } + _$jscoverage['plugins/table.action.js'][267]++; + cell.innerHTML = cj.innerHTML; + _$jscoverage['plugins/table.action.js'][268]++; + (cj.getAttribute("width") && cell.setAttribute("width", cj.getAttribute("width"))); + _$jscoverage['plugins/table.action.js'][269]++; + (cj.getAttribute("vAlign") && cell.setAttribute("vAlign", cj.getAttribute("vAlign"))); + _$jscoverage['plugins/table.action.js'][270]++; + (cj.getAttribute("align") && cell.setAttribute("align", cj.getAttribute("align"))); + _$jscoverage['plugins/table.action.js'][271]++; + (cj.style.cssText && (cell.style.cssText = cj.style.cssText)); +} + _$jscoverage['plugins/table.action.js'][273]++; + for (var j = 0, cj = cj; (cj = tr.cells[j]); (j++)) { + _$jscoverage['plugins/table.action.js'][274]++; + if ((! ci[j])) { + _$jscoverage['plugins/table.action.js'][275]++; + break; + } + _$jscoverage['plugins/table.action.js'][276]++; + cj.innerHTML = ci[j].innerHTML; + _$jscoverage['plugins/table.action.js'][277]++; + (ci[j].getAttribute("width") && cj.setAttribute("width", ci[j].getAttribute("width"))); + _$jscoverage['plugins/table.action.js'][278]++; + (ci[j].getAttribute("vAlign") && cj.setAttribute("vAlign", ci[j].getAttribute("vAlign"))); + _$jscoverage['plugins/table.action.js'][279]++; + (ci[j].getAttribute("align") && cj.setAttribute("align", ci[j].getAttribute("align"))); + _$jscoverage['plugins/table.action.js'][280]++; + (ci[j].style.cssText && (cj.style.cssText = ci[j].style.cssText)); +} +} + } + else { + _$jscoverage['plugins/table.action.js'][284]++; + if (isFullCol) { + _$jscoverage['plugins/table.action.js'][285]++; + cellInfo = ut.getCellInfo(td); + _$jscoverage['plugins/table.action.js'][286]++; + var maxColNum = 0; + _$jscoverage['plugins/table.action.js'][287]++; + for (var j = 0, ci = tableCopyList[0], cj = cj; (cj = ci[(j++)]);) { + _$jscoverage['plugins/table.action.js'][288]++; + maxColNum += (cj.colSpan || 1); +} + _$jscoverage['plugins/table.action.js'][290]++; + me.__hasEnterExecCommand = true; + _$jscoverage['plugins/table.action.js'][291]++; + for (i = 0; (i < maxColNum); (i++)) { + _$jscoverage['plugins/table.action.js'][292]++; + me.execCommand("insertcol"); +} + _$jscoverage['plugins/table.action.js'][294]++; + me.__hasEnterExecCommand = false; + _$jscoverage['plugins/table.action.js'][295]++; + td = ut.table.rows[0].cells[cellInfo.cellIndex]; + _$jscoverage['plugins/table.action.js'][296]++; + if ((td.tagName == "TH")) { + _$jscoverage['plugins/table.action.js'][297]++; + td = ut.table.rows[1].cells[cellInfo.cellIndex]; + } + } + _$jscoverage['plugins/table.action.js'][300]++; + for (var i = 0, ci = ci; (ci = tableCopyList[(i++)]);) { + _$jscoverage['plugins/table.action.js'][301]++; + tmpNode = td; + _$jscoverage['plugins/table.action.js'][302]++; + for (var j = 0, cj = cj; (cj = ci[(j++)]);) { + _$jscoverage['plugins/table.action.js'][303]++; + if (td) { + _$jscoverage['plugins/table.action.js'][304]++; + td.innerHTML = cj.innerHTML; + _$jscoverage['plugins/table.action.js'][306]++; + (cj.getAttribute("width") && td.setAttribute("width", cj.getAttribute("width"))); + _$jscoverage['plugins/table.action.js'][307]++; + (cj.getAttribute("vAlign") && td.setAttribute("vAlign", cj.getAttribute("vAlign"))); + _$jscoverage['plugins/table.action.js'][308]++; + (cj.getAttribute("align") && td.setAttribute("align", cj.getAttribute("align"))); + _$jscoverage['plugins/table.action.js'][309]++; + (cj.style.cssText && (td.style.cssText = cj.style.cssText)); + _$jscoverage['plugins/table.action.js'][310]++; + preNode = td; + _$jscoverage['plugins/table.action.js'][311]++; + td = td.nextSibling; + } + else { + _$jscoverage['plugins/table.action.js'][313]++; + var cloneTd = cj.cloneNode(true); + _$jscoverage['plugins/table.action.js'][314]++; + domUtils.removeAttributes(cloneTd, ["class", "rowSpan", "colSpan"]); + _$jscoverage['plugins/table.action.js'][316]++; + preNode.parentNode.appendChild(cloneTd); + } +} + _$jscoverage['plugins/table.action.js'][319]++; + td = ut.getNextCell(tmpNode, true, true); + _$jscoverage['plugins/table.action.js'][320]++; + if ((! tableCopyList[i])) { + _$jscoverage['plugins/table.action.js'][321]++; + break; + } + _$jscoverage['plugins/table.action.js'][322]++; + if ((! td)) { + _$jscoverage['plugins/table.action.js'][323]++; + var cellInfo = ut.getCellInfo(tmpNode); + _$jscoverage['plugins/table.action.js'][324]++; + ut.table.insertRow(ut.table.rows.length); + _$jscoverage['plugins/table.action.js'][325]++; + ut.update(); + _$jscoverage['plugins/table.action.js'][326]++; + td = ut.getVSideCell(tmpNode, true); + } +} + } + _$jscoverage['plugins/table.action.js'][330]++; + ut.update(); + } + else { + _$jscoverage['plugins/table.action.js'][332]++; + table = me.document.createElement("table"); + _$jscoverage['plugins/table.action.js'][333]++; + for (var i = 0, ci = ci; (ci = tableCopyList[(i++)]);) { + _$jscoverage['plugins/table.action.js'][334]++; + var tr = table.insertRow(table.rows.length); + _$jscoverage['plugins/table.action.js'][335]++; + for (var j = 0, cj = cj; (cj = ci[(j++)]);) { + _$jscoverage['plugins/table.action.js'][336]++; + cloneTd = UT.cloneCell(cj, null, true); + _$jscoverage['plugins/table.action.js'][337]++; + domUtils.removeAttributes(cloneTd, ["class"]); + _$jscoverage['plugins/table.action.js'][338]++; + tr.appendChild(cloneTd); +} + _$jscoverage['plugins/table.action.js'][340]++; + if (((j == 2) && (cloneTd.rowSpan > 1))) { + _$jscoverage['plugins/table.action.js'][341]++; + cloneTd.rowSpan = 1; + } +} + _$jscoverage['plugins/table.action.js'][345]++; + var defaultValue = getDefaultValue(me), width = (me.body.offsetWidth - (needIEHack? (parseInt(domUtils.getComputedStyle(me.body, "margin-left"), 10) * 2): 0) - (defaultValue.tableBorder * 2) - (me.options.offsetWidth || 0)); + _$jscoverage['plugins/table.action.js'][348]++; + me.execCommand("insertHTML", ("" + table.innerHTML.replace(/>\s*<").replace(/\bth\b/gi, "td") + "
")); + } + _$jscoverage['plugins/table.action.js'][352]++; + me.fireEvent("contentchange"); + _$jscoverage['plugins/table.action.js'][353]++; + me.fireEvent("saveScene"); + _$jscoverage['plugins/table.action.js'][354]++; + html.html = ""; + _$jscoverage['plugins/table.action.js'][355]++; + return true; + } + else { + _$jscoverage['plugins/table.action.js'][357]++; + var div = me.document.createElement("div"), tables; + _$jscoverage['plugins/table.action.js'][358]++; + div.innerHTML = html.html; + _$jscoverage['plugins/table.action.js'][359]++; + tables = div.getElementsByTagName("table"); + _$jscoverage['plugins/table.action.js'][360]++; + if (domUtils.findParentByTagName(me.selection.getStart(), "table")) { + _$jscoverage['plugins/table.action.js'][361]++; + utils.each(tables, (function (t) { + _$jscoverage['plugins/table.action.js'][362]++; + domUtils.remove(t); +})); + _$jscoverage['plugins/table.action.js'][364]++; + if (domUtils.findParentByTagName(me.selection.getStart(), "caption", true)) { + _$jscoverage['plugins/table.action.js'][365]++; + div.innerHTML = div[(browser.ie? "innerText": "textContent")]; + } + } + else { + _$jscoverage['plugins/table.action.js'][368]++; + utils.each(tables, (function (table) { + _$jscoverage['plugins/table.action.js'][369]++; + removeStyleSize(table, true); + _$jscoverage['plugins/table.action.js'][370]++; + domUtils.removeAttributes(table, ["style", "border"]); + _$jscoverage['plugins/table.action.js'][371]++; + utils.each(domUtils.getElementsByTagName(table, "td"), (function (td) { + _$jscoverage['plugins/table.action.js'][372]++; + if (isEmptyBlock(td)) { + _$jscoverage['plugins/table.action.js'][373]++; + domUtils.fillNode(me.document, td); + } + _$jscoverage['plugins/table.action.js'][375]++; + removeStyleSize(td, true); +})); +})); + } + _$jscoverage['plugins/table.action.js'][380]++; + html.html = div.innerHTML; + } +})); + _$jscoverage['plugins/table.action.js'][384]++; + me.addListener("afterpaste", (function () { + _$jscoverage['plugins/table.action.js'][385]++; + utils.each(domUtils.getElementsByTagName(me.body, "table"), (function (table) { + _$jscoverage['plugins/table.action.js'][386]++; + if ((table.offsetWidth > me.body.offsetWidth)) { + _$jscoverage['plugins/table.action.js'][387]++; + var defaultValue = getDefaultValue(me, table); + _$jscoverage['plugins/table.action.js'][388]++; + table.style.width = ((me.body.offsetWidth - (needIEHack? (parseInt(domUtils.getComputedStyle(me.body, "margin-left"), 10) * 2): 0) - (defaultValue.tableBorder * 2) - (me.options.offsetWidth || 0)) + "px"); + } +})); +})); + _$jscoverage['plugins/table.action.js'][392]++; + me.addListener("blur", (function () { + _$jscoverage['plugins/table.action.js'][393]++; + tableCopyList = null; +})); + _$jscoverage['plugins/table.action.js'][395]++; + var timer; + _$jscoverage['plugins/table.action.js'][396]++; + me.addListener("keydown", (function () { + _$jscoverage['plugins/table.action.js'][397]++; + clearTimeout(timer); + _$jscoverage['plugins/table.action.js'][398]++; + timer = setTimeout((function () { + _$jscoverage['plugins/table.action.js'][399]++; + var rng = me.selection.getRange(), cell = domUtils.findParentByTagName(rng.startContainer, ["th", "td"], true); + _$jscoverage['plugins/table.action.js'][401]++; + if (cell) { + _$jscoverage['plugins/table.action.js'][402]++; + var table = cell.parentNode.parentNode.parentNode; + _$jscoverage['plugins/table.action.js'][403]++; + if ((table.offsetWidth > table.getAttribute("width"))) { + _$jscoverage['plugins/table.action.js'][404]++; + cell.style.wordBreak = "break-all"; + } + } +}), 100); +})); + _$jscoverage['plugins/table.action.js'][410]++; + me.addListener("selectionchange", (function () { + _$jscoverage['plugins/table.action.js'][411]++; + toggleDraggableState(me, false, "", null); +})); + _$jscoverage['plugins/table.action.js'][417]++; + me.addListener("contentchange", (function () { + _$jscoverage['plugins/table.action.js'][418]++; + var me = this; + _$jscoverage['plugins/table.action.js'][420]++; + hideDragLine(me); + _$jscoverage['plugins/table.action.js'][421]++; + if (getUETableBySelected(me)) { + _$jscoverage['plugins/table.action.js'][421]++; + return; + } + _$jscoverage['plugins/table.action.js'][422]++; + var rng = me.selection.getRange(); + _$jscoverage['plugins/table.action.js'][423]++; + var start = rng.startContainer; + _$jscoverage['plugins/table.action.js'][424]++; + start = domUtils.findParentByTagName(start, ["td", "th"], true); + _$jscoverage['plugins/table.action.js'][425]++; + utils.each(domUtils.getElementsByTagName(me.document, "table"), (function (table) { + _$jscoverage['plugins/table.action.js'][426]++; + if ((me.fireEvent("excludetable", table) === true)) { + _$jscoverage['plugins/table.action.js'][426]++; + return; + } + _$jscoverage['plugins/table.action.js'][427]++; + table.ueTable = new UT(table); + _$jscoverage['plugins/table.action.js'][428]++; + utils.each(domUtils.getElementsByTagName(me.document, "td"), (function (td) { + _$jscoverage['plugins/table.action.js'][430]++; + if ((domUtils.isEmptyBlock(td) && (td !== start))) { + _$jscoverage['plugins/table.action.js'][431]++; + domUtils.fillNode(me.document, td); + _$jscoverage['plugins/table.action.js'][432]++; + if ((browser.ie && (browser.version == 6))) { + _$jscoverage['plugins/table.action.js'][433]++; + td.innerHTML = " "; + } + } +})); + _$jscoverage['plugins/table.action.js'][437]++; + utils.each(domUtils.getElementsByTagName(me.document, "th"), (function (th) { + _$jscoverage['plugins/table.action.js'][438]++; + if ((domUtils.isEmptyBlock(th) && (th !== start))) { + _$jscoverage['plugins/table.action.js'][439]++; + domUtils.fillNode(me.document, th); + _$jscoverage['plugins/table.action.js'][440]++; + if ((browser.ie && (browser.version == 6))) { + _$jscoverage['plugins/table.action.js'][441]++; + th.innerHTML = " "; + } + } +})); + _$jscoverage['plugins/table.action.js'][445]++; + table.onmouseover = (function () { + _$jscoverage['plugins/table.action.js'][446]++; + me.fireEvent("tablemouseover", table); +}); + _$jscoverage['plugins/table.action.js'][448]++; + table.onmousemove = (function () { + _$jscoverage['plugins/table.action.js'][449]++; + me.fireEvent("tablemousemove", table); + _$jscoverage['plugins/table.action.js'][450]++; + (me.options.tableDragable && toggleDragButton(true, this, me)); +}); + _$jscoverage['plugins/table.action.js'][452]++; + table.onmouseout = (function () { + _$jscoverage['plugins/table.action.js'][453]++; + me.fireEvent("tablemouseout", table); + _$jscoverage['plugins/table.action.js'][454]++; + toggleDraggableState(me, false, "", null); + _$jscoverage['plugins/table.action.js'][455]++; + hideDragLine(me); +}); + _$jscoverage['plugins/table.action.js'][457]++; + table.onclick = (function (evt) { + _$jscoverage['plugins/table.action.js'][458]++; + evt = (me.window.event || evt); + _$jscoverage['plugins/table.action.js'][459]++; + var target = getParentTdOrTh((evt.target || evt.srcElement)); + _$jscoverage['plugins/table.action.js'][460]++; + if ((! target)) { + _$jscoverage['plugins/table.action.js'][460]++; + return; + } + _$jscoverage['plugins/table.action.js'][461]++; + var ut = getUETable(target), table = ut.table, cellInfo = ut.getCellInfo(target), cellsRange, rng = me.selection.getRange(); + _$jscoverage['plugins/table.action.js'][475]++; + if (inTableSide(table, target, evt, true)) { + _$jscoverage['plugins/table.action.js'][476]++; + var endTdCol = ut.getCell(ut.indexTable[(ut.rowsNum - 1)][cellInfo.colIndex].rowIndex, ut.indexTable[(ut.rowsNum - 1)][cellInfo.colIndex].cellIndex); + _$jscoverage['plugins/table.action.js'][477]++; + if ((evt.shiftKey && ut.selectedTds.length)) { + _$jscoverage['plugins/table.action.js'][478]++; + if ((ut.selectedTds[0] !== endTdCol)) { + _$jscoverage['plugins/table.action.js'][479]++; + cellsRange = ut.getCellsRange(ut.selectedTds[0], endTdCol); + _$jscoverage['plugins/table.action.js'][480]++; + ut.setSelected(cellsRange); + } + else { + _$jscoverage['plugins/table.action.js'][482]++; + (rng && rng.selectNodeContents(endTdCol).select()); + } + } + else { + _$jscoverage['plugins/table.action.js'][485]++; + if ((target !== endTdCol)) { + _$jscoverage['plugins/table.action.js'][486]++; + cellsRange = ut.getCellsRange(target, endTdCol); + _$jscoverage['plugins/table.action.js'][487]++; + ut.setSelected(cellsRange); + } + else { + _$jscoverage['plugins/table.action.js'][489]++; + (rng && rng.selectNodeContents(endTdCol).select()); + } + } + _$jscoverage['plugins/table.action.js'][492]++; + return; + } + _$jscoverage['plugins/table.action.js'][494]++; + if (inTableSide(table, target, evt)) { + _$jscoverage['plugins/table.action.js'][495]++; + var endTdRow = ut.getCell(ut.indexTable[cellInfo.rowIndex][(ut.colsNum - 1)].rowIndex, ut.indexTable[cellInfo.rowIndex][(ut.colsNum - 1)].cellIndex); + _$jscoverage['plugins/table.action.js'][496]++; + if ((evt.shiftKey && ut.selectedTds.length)) { + _$jscoverage['plugins/table.action.js'][497]++; + if ((ut.selectedTds[0] !== endTdRow)) { + _$jscoverage['plugins/table.action.js'][498]++; + cellsRange = ut.getCellsRange(ut.selectedTds[0], endTdRow); + _$jscoverage['plugins/table.action.js'][499]++; + ut.setSelected(cellsRange); + } + else { + _$jscoverage['plugins/table.action.js'][501]++; + (rng && rng.selectNodeContents(endTdRow).select()); + } + } + else { + _$jscoverage['plugins/table.action.js'][504]++; + if ((target !== endTdRow)) { + _$jscoverage['plugins/table.action.js'][505]++; + cellsRange = ut.getCellsRange(target, endTdRow); + _$jscoverage['plugins/table.action.js'][506]++; + ut.setSelected(cellsRange); + } + else { + _$jscoverage['plugins/table.action.js'][508]++; + (rng && rng.selectNodeContents(endTdRow).select()); + } + } + } +}); +})); + _$jscoverage['plugins/table.action.js'][515]++; + switchBorderColor(me, true); +})); + _$jscoverage['plugins/table.action.js'][518]++; + domUtils.on(me.document, "mousemove", mouseMoveEvent); + _$jscoverage['plugins/table.action.js'][520]++; + domUtils.on(me.document, "mouseout", (function (evt) { + _$jscoverage['plugins/table.action.js'][521]++; + var target = (evt.target || evt.srcElement); + _$jscoverage['plugins/table.action.js'][522]++; + if ((target.tagName == "TABLE")) { + _$jscoverage['plugins/table.action.js'][523]++; + toggleDraggableState(me, false, "", null); + } +})); + _$jscoverage['plugins/table.action.js'][529]++; + me.addListener("interlacetable", (function (type, table, classList) { + _$jscoverage['plugins/table.action.js'][530]++; + if ((! table)) { + _$jscoverage['plugins/table.action.js'][530]++; + return; + } + _$jscoverage['plugins/table.action.js'][531]++; + var me = this, rows = table.rows, len = rows.length, getClass = (function (list, index, repeat) { + _$jscoverage['plugins/table.action.js'][535]++; + return (list[index]? list[index]: (repeat? list[(index % list.length)]: "")); +}); + _$jscoverage['plugins/table.action.js'][537]++; + for (var i = 0; (i < len); (i++)) { + _$jscoverage['plugins/table.action.js'][538]++; + rows[i].className = getClass((classList || me.options.classList), i, true); +} +})); + _$jscoverage['plugins/table.action.js'][541]++; + me.addListener("uninterlacetable", (function (type, table) { + _$jscoverage['plugins/table.action.js'][542]++; + if ((! table)) { + _$jscoverage['plugins/table.action.js'][542]++; + return; + } + _$jscoverage['plugins/table.action.js'][543]++; + var me = this, rows = table.rows, classList = me.options.classList, len = rows.length; + _$jscoverage['plugins/table.action.js'][547]++; + for (var i = 0; (i < len); (i++)) { + _$jscoverage['plugins/table.action.js'][548]++; + domUtils.removeClasses(rows[i], classList); +} +})); + _$jscoverage['plugins/table.action.js'][552]++; + me.addListener("mousedown", mouseDownEvent); + _$jscoverage['plugins/table.action.js'][553]++; + me.addListener("mouseup", mouseUpEvent); + _$jscoverage['plugins/table.action.js'][555]++; + domUtils.on(me.body, "dragstart", (function (evt) { + _$jscoverage['plugins/table.action.js'][556]++; + mouseUpEvent.call(me, "dragstart", evt); +})); + _$jscoverage['plugins/table.action.js'][559]++; + var currentRowIndex = 0; + _$jscoverage['plugins/table.action.js'][560]++; + me.addListener("mousedown", (function () { + _$jscoverage['plugins/table.action.js'][561]++; + currentRowIndex = 0; +})); + _$jscoverage['plugins/table.action.js'][563]++; + me.addListener("tabkeydown", (function () { + _$jscoverage['plugins/table.action.js'][564]++; + var range = this.selection.getRange(), common = range.getCommonAncestor(true, true), table = domUtils.findParentByTagName(common, "table"); + _$jscoverage['plugins/table.action.js'][567]++; + if (table) { + _$jscoverage['plugins/table.action.js'][568]++; + if (domUtils.findParentByTagName(common, "caption", true)) { + _$jscoverage['plugins/table.action.js'][569]++; + var cell = domUtils.getElementsByTagName(table, "th td"); + _$jscoverage['plugins/table.action.js'][570]++; + if ((cell && cell.length)) { + _$jscoverage['plugins/table.action.js'][571]++; + range.setStart(cell[0], 0).setCursor(false, true); + } + } + else { + _$jscoverage['plugins/table.action.js'][574]++; + var cell = domUtils.findParentByTagName(common, ["td", "th"], true), ua = getUETable(cell); + _$jscoverage['plugins/table.action.js'][576]++; + currentRowIndex = ((cell.rowSpan > 1)? currentRowIndex: ua.getCellInfo(cell).rowIndex); + _$jscoverage['plugins/table.action.js'][577]++; + var nextCell = ua.getTabNextCell(cell, currentRowIndex); + _$jscoverage['plugins/table.action.js'][578]++; + if (nextCell) { + _$jscoverage['plugins/table.action.js'][579]++; + if (isEmptyBlock(nextCell)) { + _$jscoverage['plugins/table.action.js'][580]++; + range.setStart(nextCell, 0).setCursor(false, true); + } + else { + _$jscoverage['plugins/table.action.js'][582]++; + range.selectNodeContents(nextCell).select(); + } + } + else { + _$jscoverage['plugins/table.action.js'][585]++; + me.fireEvent("saveScene"); + _$jscoverage['plugins/table.action.js'][586]++; + me.__hasEnterExecCommand = true; + _$jscoverage['plugins/table.action.js'][587]++; + this.execCommand("insertrownext"); + _$jscoverage['plugins/table.action.js'][588]++; + me.__hasEnterExecCommand = false; + _$jscoverage['plugins/table.action.js'][589]++; + range = this.selection.getRange(); + _$jscoverage['plugins/table.action.js'][590]++; + range.setStart(table.rows[(table.rows.length - 1)].cells[0], 0).setCursor(); + _$jscoverage['plugins/table.action.js'][591]++; + me.fireEvent("saveScene"); + } + } + _$jscoverage['plugins/table.action.js'][594]++; + return true; + } +})); + _$jscoverage['plugins/table.action.js'][598]++; + (browser.ie && me.addListener("selectionchange", (function () { + _$jscoverage['plugins/table.action.js'][599]++; + toggleDraggableState(this, false, "", null); +}))); + _$jscoverage['plugins/table.action.js'][601]++; + me.addListener("keydown", (function (type, evt) { + _$jscoverage['plugins/table.action.js'][602]++; + var me = this; + _$jscoverage['plugins/table.action.js'][604]++; + var keyCode = (evt.keyCode || evt.which); + _$jscoverage['plugins/table.action.js'][605]++; + if (((keyCode == 8) || (keyCode == 46))) { + _$jscoverage['plugins/table.action.js'][606]++; + return; + } + _$jscoverage['plugins/table.action.js'][608]++; + var notCtrlKey = ((! evt.ctrlKey) && (! evt.metaKey) && (! evt.shiftKey) && (! evt.altKey)); + _$jscoverage['plugins/table.action.js'][609]++; + (notCtrlKey && removeSelectedClass(domUtils.getElementsByTagName(me.body, "td"))); + _$jscoverage['plugins/table.action.js'][610]++; + var ut = getUETableBySelected(me); + _$jscoverage['plugins/table.action.js'][611]++; + if ((! ut)) { + _$jscoverage['plugins/table.action.js'][611]++; + return; + } + _$jscoverage['plugins/table.action.js'][612]++; + (notCtrlKey && ut.clearSelected()); +})); + _$jscoverage['plugins/table.action.js'][615]++; + me.addListener("beforegetcontent", (function () { + _$jscoverage['plugins/table.action.js'][616]++; + switchBorderColor(this, false); + _$jscoverage['plugins/table.action.js'][617]++; + (browser.ie && utils.each(this.document.getElementsByTagName("caption"), (function (ci) { + _$jscoverage['plugins/table.action.js'][618]++; + if (domUtils.isEmptyNode(ci)) { + _$jscoverage['plugins/table.action.js'][619]++; + ci.innerHTML = " "; + } +}))); +})); + _$jscoverage['plugins/table.action.js'][623]++; + me.addListener("aftergetcontent", (function () { + _$jscoverage['plugins/table.action.js'][624]++; + switchBorderColor(this, true); +})); + _$jscoverage['plugins/table.action.js'][626]++; + me.addListener("getAllHtml", (function () { + _$jscoverage['plugins/table.action.js'][627]++; + removeSelectedClass(me.document.getElementsByTagName("td")); +})); + _$jscoverage['plugins/table.action.js'][630]++; + me.addListener("fullscreenchanged", (function (type, fullscreen) { + _$jscoverage['plugins/table.action.js'][631]++; + if ((! fullscreen)) { + _$jscoverage['plugins/table.action.js'][632]++; + var ratio = (this.body.offsetWidth / document.body.offsetWidth), tables = domUtils.getElementsByTagName(this.body, "table"); + _$jscoverage['plugins/table.action.js'][634]++; + utils.each(tables, (function (table) { + _$jscoverage['plugins/table.action.js'][635]++; + if ((table.offsetWidth < me.body.offsetWidth)) { + _$jscoverage['plugins/table.action.js'][635]++; + return false; + } + _$jscoverage['plugins/table.action.js'][636]++; + var tds = domUtils.getElementsByTagName(table, "td"), backWidths = []; + _$jscoverage['plugins/table.action.js'][638]++; + utils.each(tds, (function (td) { + _$jscoverage['plugins/table.action.js'][639]++; + backWidths.push(td.offsetWidth); +})); + _$jscoverage['plugins/table.action.js'][641]++; + for (var i = 0, td; (td = tds[i]); (i++)) { + _$jscoverage['plugins/table.action.js'][642]++; + td.setAttribute("width", Math.floor((backWidths[i] * ratio))); +} + _$jscoverage['plugins/table.action.js'][644]++; + table.setAttribute("width", Math.floor(getTableWidth(me, needIEHack, getDefaultValue(me)))); +})); + } +})); + _$jscoverage['plugins/table.action.js'][650]++; + var oldExecCommand = me.execCommand; + _$jscoverage['plugins/table.action.js'][651]++; + me.execCommand = (function (cmd, datatat) { + _$jscoverage['plugins/table.action.js'][653]++; + var me = this, args = arguments; + _$jscoverage['plugins/table.action.js'][656]++; + cmd = cmd.toLowerCase(); + _$jscoverage['plugins/table.action.js'][657]++; + var ut = getUETableBySelected(me), tds, range = new (dom.Range)(me.document), cmdFun = (me.commands[cmd] || UE.commands[cmd]), result; + _$jscoverage['plugins/table.action.js'][661]++; + if ((! cmdFun)) { + _$jscoverage['plugins/table.action.js'][661]++; + return; + } + _$jscoverage['plugins/table.action.js'][662]++; + if ((ut && (! commands[cmd]) && (! cmdFun.notNeedUndo) && (! me.__hasEnterExecCommand))) { + _$jscoverage['plugins/table.action.js'][663]++; + me.__hasEnterExecCommand = true; + _$jscoverage['plugins/table.action.js'][664]++; + me.fireEvent("beforeexeccommand", cmd); + _$jscoverage['plugins/table.action.js'][665]++; + tds = ut.selectedTds; + _$jscoverage['plugins/table.action.js'][666]++; + var lastState = -2, lastValue = -2, value, state; + _$jscoverage['plugins/table.action.js'][667]++; + for (var i = 0, td; (td = tds[i]); (i++)) { + _$jscoverage['plugins/table.action.js'][668]++; + if (isEmptyBlock(td)) { + _$jscoverage['plugins/table.action.js'][669]++; + range.setStart(td, 0).setCursor(false, true); + } + else { + _$jscoverage['plugins/table.action.js'][671]++; + range.selectNode(td).select(true); + } + _$jscoverage['plugins/table.action.js'][673]++; + state = me.queryCommandState(cmd); + _$jscoverage['plugins/table.action.js'][674]++; + value = me.queryCommandValue(cmd); + _$jscoverage['plugins/table.action.js'][675]++; + if ((state != -1)) { + _$jscoverage['plugins/table.action.js'][676]++; + if (((lastState !== state) || (lastValue !== value))) { + _$jscoverage['plugins/table.action.js'][677]++; + me._ignoreContentChange = true; + _$jscoverage['plugins/table.action.js'][678]++; + result = oldExecCommand.apply(me, arguments); + _$jscoverage['plugins/table.action.js'][679]++; + me._ignoreContentChange = false; + } + _$jscoverage['plugins/table.action.js'][682]++; + lastState = me.queryCommandState(cmd); + _$jscoverage['plugins/table.action.js'][683]++; + lastValue = me.queryCommandValue(cmd); + _$jscoverage['plugins/table.action.js'][684]++; + if (domUtils.isEmptyBlock(td)) { + _$jscoverage['plugins/table.action.js'][685]++; + domUtils.fillNode(me.document, td); + } + } +} + _$jscoverage['plugins/table.action.js'][689]++; + range.setStart(tds[0], 0).shrinkBoundary(true).setCursor(false, true); + _$jscoverage['plugins/table.action.js'][690]++; + me.fireEvent("contentchange"); + _$jscoverage['plugins/table.action.js'][691]++; + me.fireEvent("afterexeccommand", cmd); + _$jscoverage['plugins/table.action.js'][692]++; + me.__hasEnterExecCommand = false; + _$jscoverage['plugins/table.action.js'][693]++; + me._selectionChange(); + } + else { + _$jscoverage['plugins/table.action.js'][695]++; + result = oldExecCommand.apply(me, arguments); + } + _$jscoverage['plugins/table.action.js'][697]++; + return result; +}); +})); + _$jscoverage['plugins/table.action.js'][707]++; + function removeStyleSize(obj, replaceToProperty) { + _$jscoverage['plugins/table.action.js'][708]++; + removeStyle(obj, "width", true); + _$jscoverage['plugins/table.action.js'][709]++; + removeStyle(obj, "height", true); +} + _$jscoverage['plugins/table.action.js'][712]++; + function removeStyle(obj, styleName, replaceToProperty) { + _$jscoverage['plugins/table.action.js'][713]++; + if (obj.style[styleName]) { + _$jscoverage['plugins/table.action.js'][714]++; + (replaceToProperty && obj.setAttribute(styleName, parseInt(obj.style[styleName], 10))); + _$jscoverage['plugins/table.action.js'][715]++; + obj.style[styleName] = ""; + } +} + _$jscoverage['plugins/table.action.js'][719]++; + function getParentTdOrTh(ele) { + _$jscoverage['plugins/table.action.js'][720]++; + if (((ele.tagName == "TD") || (ele.tagName == "TH"))) { + _$jscoverage['plugins/table.action.js'][720]++; + return ele; + } + _$jscoverage['plugins/table.action.js'][721]++; + var td; + _$jscoverage['plugins/table.action.js'][722]++; + if ((td = (domUtils.findParentByTagName(ele, "td", true) || domUtils.findParentByTagName(ele, "th", true)))) { + _$jscoverage['plugins/table.action.js'][722]++; + return td; + } + _$jscoverage['plugins/table.action.js'][723]++; + return null; +} + _$jscoverage['plugins/table.action.js'][726]++; + function isEmptyBlock(node) { + _$jscoverage['plugins/table.action.js'][727]++; + var reg = new RegExp(domUtils.fillChar, "g"); + _$jscoverage['plugins/table.action.js'][728]++; + if ((node[(browser.ie? "innerText": "textContent")].replace(/^\s*$/, "").replace(reg, "").length > 0)) { + _$jscoverage['plugins/table.action.js'][729]++; + return 0; + } + _$jscoverage['plugins/table.action.js'][731]++; + for (var n in dtd.$isNotEmpty) { + _$jscoverage['plugins/table.action.js'][732]++; + if (node.getElementsByTagName(n).length) { + _$jscoverage['plugins/table.action.js'][733]++; + return 0; + } +} + _$jscoverage['plugins/table.action.js'][736]++; + return 1; +} + _$jscoverage['plugins/table.action.js'][740]++; + function mouseCoords(evt) { + _$jscoverage['plugins/table.action.js'][741]++; + if ((evt.pageX || evt.pageY)) { + _$jscoverage['plugins/table.action.js'][742]++; + return ({x: evt.pageX, y: evt.pageY}); + } + _$jscoverage['plugins/table.action.js'][744]++; + return ({x: ((evt.clientX + me.document.body.scrollLeft) - me.document.body.clientLeft), y: ((evt.clientY + me.document.body.scrollTop) - me.document.body.clientTop)}); +} + _$jscoverage['plugins/table.action.js'][750]++; + function mouseMoveEvent(evt) { + _$jscoverage['plugins/table.action.js'][752]++; + if (isEditorDisabled()) { + _$jscoverage['plugins/table.action.js'][753]++; + return; + } + _$jscoverage['plugins/table.action.js'][756]++; + try { + _$jscoverage['plugins/table.action.js'][759]++; + var target = getParentTdOrTh((evt.target || evt.srcElement)), pos; + _$jscoverage['plugins/table.action.js'][763]++; + if (isInResizeBuffer) { + _$jscoverage['plugins/table.action.js'][765]++; + me.body.style.webkitUserSelect = "none"; + _$jscoverage['plugins/table.action.js'][767]++; + if (((Math.abs((userActionStatus.x - evt.clientX)) > offsetOfTableCell) || (Math.abs((userActionStatus.y - evt.clientY)) > offsetOfTableCell))) { + _$jscoverage['plugins/table.action.js'][768]++; + clearTableDragTimer(); + _$jscoverage['plugins/table.action.js'][769]++; + isInResizeBuffer = false; + _$jscoverage['plugins/table.action.js'][770]++; + singleClickState = 0; + _$jscoverage['plugins/table.action.js'][772]++; + tableBorderDrag(evt); + } + } + _$jscoverage['plugins/table.action.js'][777]++; + if ((onDrag && dragTd)) { + _$jscoverage['plugins/table.action.js'][778]++; + singleClickState = 0; + _$jscoverage['plugins/table.action.js'][779]++; + me.body.style.webkitUserSelect = "none"; + _$jscoverage['plugins/table.action.js'][780]++; + (me.selection.getNative()[(browser.ie? "empty": "removeAllRanges")])(); + _$jscoverage['plugins/table.action.js'][781]++; + pos = mouseCoords(evt); + _$jscoverage['plugins/table.action.js'][782]++; + toggleDraggableState(me, true, onDrag, pos, target); + _$jscoverage['plugins/table.action.js'][783]++; + if ((onDrag == "h")) { + _$jscoverage['plugins/table.action.js'][784]++; + dragLine.style.left = (getPermissionX(dragTd, evt) + "px"); + } + else { + _$jscoverage['plugins/table.action.js'][785]++; + if ((onDrag == "v")) { + _$jscoverage['plugins/table.action.js'][786]++; + dragLine.style.top = (getPermissionY(dragTd, evt) + "px"); + } + } + _$jscoverage['plugins/table.action.js'][788]++; + return; + } + _$jscoverage['plugins/table.action.js'][791]++; + if (target) { + _$jscoverage['plugins/table.action.js'][793]++; + if ((me.fireEvent("excludetable", target) === true)) { + _$jscoverage['plugins/table.action.js'][794]++; + return; + } + _$jscoverage['plugins/table.action.js'][795]++; + pos = mouseCoords(evt); + _$jscoverage['plugins/table.action.js'][796]++; + var state = getRelation(target, pos), table = domUtils.findParentByTagName(target, "table", true); + _$jscoverage['plugins/table.action.js'][799]++; + if (inTableSide(table, target, evt, true)) { + _$jscoverage['plugins/table.action.js'][800]++; + if ((me.fireEvent("excludetable", table) === true)) { + _$jscoverage['plugins/table.action.js'][800]++; + return; + } + _$jscoverage['plugins/table.action.js'][801]++; + me.body.style.cursor = ("url(" + me.options.cursorpath + "h.png),pointer"); + } + else { + _$jscoverage['plugins/table.action.js'][802]++; + if (inTableSide(table, target, evt)) { + _$jscoverage['plugins/table.action.js'][803]++; + if ((me.fireEvent("excludetable", table) === true)) { + _$jscoverage['plugins/table.action.js'][803]++; + return; + } + _$jscoverage['plugins/table.action.js'][804]++; + me.body.style.cursor = ("url(" + me.options.cursorpath + "v.png),pointer"); + } + else { + _$jscoverage['plugins/table.action.js'][806]++; + me.body.style.cursor = "text"; + _$jscoverage['plugins/table.action.js'][807]++; + var curCell = target; + _$jscoverage['plugins/table.action.js'][808]++; + if (/\d/.test(state)) { + _$jscoverage['plugins/table.action.js'][809]++; + state = state.replace(/\d/, ""); + _$jscoverage['plugins/table.action.js'][810]++; + target = getUETable(target).getPreviewCell(target, (state == "v")); + } + _$jscoverage['plugins/table.action.js'][813]++; + toggleDraggableState(me, (target? (! (! state)): false), (target? state: ""), pos, target); + } + } + } + else { + _$jscoverage['plugins/table.action.js'][817]++; + toggleDragButton(false, table, me); + } + } + catch (e) { + _$jscoverage['plugins/table.action.js'][821]++; + showError(e); + } +} + _$jscoverage['plugins/table.action.js'][825]++; + var dragButtonTimer; + _$jscoverage['plugins/table.action.js'][827]++; + function toggleDragButton(show, table, editor) { + _$jscoverage['plugins/table.action.js'][828]++; + if ((! show)) { + _$jscoverage['plugins/table.action.js'][829]++; + if (dragOver) { + _$jscoverage['plugins/table.action.js'][829]++; + return; + } + _$jscoverage['plugins/table.action.js'][830]++; + dragButtonTimer = setTimeout((function () { + _$jscoverage['plugins/table.action.js'][831]++; + ((! dragOver) && dragButton && dragButton.parentNode && dragButton.parentNode.removeChild(dragButton)); +}), 2000); + } + else { + _$jscoverage['plugins/table.action.js'][834]++; + createDragButton(table, editor); + } +} + _$jscoverage['plugins/table.action.js'][838]++; + function createDragButton(table, editor) { + _$jscoverage['plugins/table.action.js'][839]++; + var pos = domUtils.getXY(table), doc = table.ownerDocument; + _$jscoverage['plugins/table.action.js'][841]++; + if ((dragButton && dragButton.parentNode)) { + _$jscoverage['plugins/table.action.js'][841]++; + return dragButton; + } + _$jscoverage['plugins/table.action.js'][842]++; + dragButton = doc.createElement("div"); + _$jscoverage['plugins/table.action.js'][843]++; + dragButton.contentEditable = false; + _$jscoverage['plugins/table.action.js'][844]++; + dragButton.innerHTML = ""; + _$jscoverage['plugins/table.action.js'][845]++; + dragButton.style.cssText = ("width:15px;height:15px;background-image:url(" + editor.options.UEDITOR_HOME_URL + "dialogs/table/dragicon.png);position: absolute;cursor:move;top:" + (pos.y - 15) + "px;left:" + pos.x + "px;"); + _$jscoverage['plugins/table.action.js'][846]++; + domUtils.unSelectable(dragButton); + _$jscoverage['plugins/table.action.js'][847]++; + dragButton.onmouseover = (function (evt) { + _$jscoverage['plugins/table.action.js'][848]++; + dragOver = true; +}); + _$jscoverage['plugins/table.action.js'][850]++; + dragButton.onmouseout = (function (evt) { + _$jscoverage['plugins/table.action.js'][851]++; + dragOver = false; +}); + _$jscoverage['plugins/table.action.js'][853]++; + domUtils.on(dragButton, "click", (function (type, evt) { + _$jscoverage['plugins/table.action.js'][854]++; + doClick(evt, this); +})); + _$jscoverage['plugins/table.action.js'][856]++; + domUtils.on(dragButton, "dblclick", (function (type, evt) { + _$jscoverage['plugins/table.action.js'][857]++; + doDblClick(evt); +})); + _$jscoverage['plugins/table.action.js'][859]++; + domUtils.on(dragButton, "dragstart", (function (type, evt) { + _$jscoverage['plugins/table.action.js'][860]++; + domUtils.preventDefault(evt); +})); + _$jscoverage['plugins/table.action.js'][862]++; + var timer; + _$jscoverage['plugins/table.action.js'][864]++; + function doClick(evt, button) { + _$jscoverage['plugins/table.action.js'][866]++; + clearTimeout(timer); + _$jscoverage['plugins/table.action.js'][867]++; + timer = setTimeout((function () { + _$jscoverage['plugins/table.action.js'][868]++; + editor.fireEvent("tableClicked", table, button); +}), 300); +} + _$jscoverage['plugins/table.action.js'][872]++; + function doDblClick(evt) { + _$jscoverage['plugins/table.action.js'][873]++; + clearTimeout(timer); + _$jscoverage['plugins/table.action.js'][874]++; + var ut = getUETable(table), start = table.rows[0].cells[0], end = ut.getLastCell(), range = ut.getCellsRange(start, end); + _$jscoverage['plugins/table.action.js'][878]++; + editor.selection.getRange().setStart(start, 0).setCursor(false, true); + _$jscoverage['plugins/table.action.js'][879]++; + ut.setSelected(range); +} + _$jscoverage['plugins/table.action.js'][882]++; + doc.body.appendChild(dragButton); +} + _$jscoverage['plugins/table.action.js'][897]++; + function inTableSide(table, cell, evt, top) { + _$jscoverage['plugins/table.action.js'][898]++; + var pos = mouseCoords(evt), state = getRelation(cell, pos); + _$jscoverage['plugins/table.action.js'][901]++; + if (top) { + _$jscoverage['plugins/table.action.js'][902]++; + var caption = table.getElementsByTagName("caption")[0], capHeight = (caption? caption.offsetHeight: 0); + _$jscoverage['plugins/table.action.js'][904]++; + return ((state == "v1") && ((pos.y - domUtils.getXY(table).y - capHeight) < 8)); + } + else { + _$jscoverage['plugins/table.action.js'][906]++; + return ((state == "h1") && ((pos.x - domUtils.getXY(table).x) < 8)); + } +} + _$jscoverage['plugins/table.action.js'][915]++; + function getPermissionX(dragTd, evt) { + _$jscoverage['plugins/table.action.js'][916]++; + var ut = getUETable(dragTd); + _$jscoverage['plugins/table.action.js'][917]++; + if (ut) { + _$jscoverage['plugins/table.action.js'][918]++; + var preTd = ut.getSameEndPosCells(dragTd, "x")[0], nextTd = ut.getSameStartPosXCells(dragTd)[0], mouseX = mouseCoords(evt).x, left = ((preTd? domUtils.getXY(preTd).x: domUtils.getXY(ut.table).x) + 20), right = (nextTd? ((domUtils.getXY(nextTd).x + nextTd.offsetWidth) - 20): ((me.body.offsetWidth + 5) || parseInt(domUtils.getComputedStyle(me.body, "width"), 10))); + _$jscoverage['plugins/table.action.js'][924]++; + left += cellMinWidth; + _$jscoverage['plugins/table.action.js'][925]++; + right -= cellMinWidth; + _$jscoverage['plugins/table.action.js'][927]++; + return ((mouseX < left)? left: ((mouseX > right)? right: mouseX)); + } +} + _$jscoverage['plugins/table.action.js'][934]++; + function getPermissionY(dragTd, evt) { + _$jscoverage['plugins/table.action.js'][935]++; + try { + _$jscoverage['plugins/table.action.js'][936]++; + var top = domUtils.getXY(dragTd).y, mousePosY = mouseCoords(evt).y; + _$jscoverage['plugins/table.action.js'][938]++; + return ((mousePosY < top)? top: mousePosY); + } + catch (e) { + _$jscoverage['plugins/table.action.js'][940]++; + showError(e); + } +} + _$jscoverage['plugins/table.action.js'][947]++; + function toggleDraggableState(editor, draggable, dir, mousePos, cell) { + _$jscoverage['plugins/table.action.js'][948]++; + try { + _$jscoverage['plugins/table.action.js'][949]++; + editor.body.style.cursor = ((dir == "h")? "col-resize": ((dir == "v")? "row-resize": "text")); + _$jscoverage['plugins/table.action.js'][950]++; + if (browser.ie) { + _$jscoverage['plugins/table.action.js'][951]++; + if ((dir && (! mousedown) && (! getUETableBySelected(editor)))) { + _$jscoverage['plugins/table.action.js'][952]++; + getDragLine(editor, editor.document); + _$jscoverage['plugins/table.action.js'][953]++; + showDragLineAt(dir, cell); + } + else { + _$jscoverage['plugins/table.action.js'][955]++; + hideDragLine(editor); + } + } + _$jscoverage['plugins/table.action.js'][958]++; + onBorder = draggable; + } + catch (e) { + _$jscoverage['plugins/table.action.js'][960]++; + showError(e); + } +} + _$jscoverage['plugins/table.action.js'][968]++; + function getResizeLineByUETable() { + _$jscoverage['plugins/table.action.js'][970]++; + var lineId = "_UETableResizeLine", line = this.document.getElementById(lineId); + _$jscoverage['plugins/table.action.js'][973]++; + if ((! line)) { + _$jscoverage['plugins/table.action.js'][974]++; + line = this.document.createElement("div"); + _$jscoverage['plugins/table.action.js'][975]++; + line.id = lineId; + _$jscoverage['plugins/table.action.js'][976]++; + line.contnetEditable = false; + _$jscoverage['plugins/table.action.js'][977]++; + line.setAttribute("unselectable", "on"); + _$jscoverage['plugins/table.action.js'][979]++; + var styles = {width: ((2 * cellBorderWidth) + 1 + "px"), position: "absolute", "z-index": 100000, cursor: "col-resize", background: "red", display: "none"}; + _$jscoverage['plugins/table.action.js'][989]++; + line.onmouseout = (function () { + _$jscoverage['plugins/table.action.js'][990]++; + this.style.display = "none"; +}); + _$jscoverage['plugins/table.action.js'][993]++; + utils.extend(line.style, styles); + _$jscoverage['plugins/table.action.js'][995]++; + this.document.body.appendChild(line); + } + _$jscoverage['plugins/table.action.js'][999]++; + return line; +} + _$jscoverage['plugins/table.action.js'][1006]++; + function updateResizeLine(cell, uetable) { + _$jscoverage['plugins/table.action.js'][1008]++; + var line = getResizeLineByUETable.call(this), table = uetable.table, styles = {top: (domUtils.getXY(table).y + "px"), left: (((domUtils.getXY(cell).x + cell.offsetWidth) - cellBorderWidth) + "px"), display: "block", height: (table.offsetHeight + "px")}; + _$jscoverage['plugins/table.action.js'][1017]++; + utils.extend(line.style, styles); +} + _$jscoverage['plugins/table.action.js'][1024]++; + function showResizeLine(cell) { + _$jscoverage['plugins/table.action.js'][1026]++; + var uetable = getUETable(cell); + _$jscoverage['plugins/table.action.js'][1028]++; + updateResizeLine.call(this, cell, uetable); +} + _$jscoverage['plugins/table.action.js'][1037]++; + function getRelation(ele, mousePos) { + _$jscoverage['plugins/table.action.js'][1038]++; + var elePos = domUtils.getXY(ele); + _$jscoverage['plugins/table.action.js'][1040]++; + if ((! elePos)) { + _$jscoverage['plugins/table.action.js'][1041]++; + return ""; + } + _$jscoverage['plugins/table.action.js'][1044]++; + if ((((elePos.x + ele.offsetWidth) - mousePos.x) < cellBorderWidth)) { + _$jscoverage['plugins/table.action.js'][1045]++; + return "h"; + } + _$jscoverage['plugins/table.action.js'][1047]++; + if (((mousePos.x - elePos.x) < cellBorderWidth)) { + _$jscoverage['plugins/table.action.js'][1048]++; + return "h1"; + } + _$jscoverage['plugins/table.action.js'][1050]++; + if ((((elePos.y + ele.offsetHeight) - mousePos.y) < cellBorderWidth)) { + _$jscoverage['plugins/table.action.js'][1051]++; + return "v"; + } + _$jscoverage['plugins/table.action.js'][1053]++; + if (((mousePos.y - elePos.y) < cellBorderWidth)) { + _$jscoverage['plugins/table.action.js'][1054]++; + return "v1"; + } + _$jscoverage['plugins/table.action.js'][1056]++; + return ""; +} + _$jscoverage['plugins/table.action.js'][1059]++; + function mouseDownEvent(type, evt) { + _$jscoverage['plugins/table.action.js'][1061]++; + if (isEditorDisabled()) { + _$jscoverage['plugins/table.action.js'][1062]++; + return; + } + _$jscoverage['plugins/table.action.js'][1065]++; + userActionStatus = {x: evt.clientX, y: evt.clientY}; + _$jscoverage['plugins/table.action.js'][1071]++; + if ((evt.button == 2)) { + _$jscoverage['plugins/table.action.js'][1072]++; + var ut = getUETableBySelected(me), flag = false; + _$jscoverage['plugins/table.action.js'][1075]++; + if (ut) { + _$jscoverage['plugins/table.action.js'][1076]++; + var td = getTargetTd(me, evt); + _$jscoverage['plugins/table.action.js'][1077]++; + utils.each(ut.selectedTds, (function (ti) { + _$jscoverage['plugins/table.action.js'][1078]++; + if ((ti === td)) { + _$jscoverage['plugins/table.action.js'][1079]++; + flag = true; + } +})); + _$jscoverage['plugins/table.action.js'][1082]++; + if ((! flag)) { + _$jscoverage['plugins/table.action.js'][1083]++; + removeSelectedClass(domUtils.getElementsByTagName(me.body, "th td")); + _$jscoverage['plugins/table.action.js'][1084]++; + ut.clearSelected(); + } + else { + _$jscoverage['plugins/table.action.js'][1086]++; + td = ut.selectedTds[0]; + _$jscoverage['plugins/table.action.js'][1087]++; + setTimeout((function () { + _$jscoverage['plugins/table.action.js'][1088]++; + me.selection.getRange().setStart(td, 0).setCursor(false, true); +}), 0); + } + } + } + else { + _$jscoverage['plugins/table.action.js'][1094]++; + tableClickHander(evt); + } +} + _$jscoverage['plugins/table.action.js'][1100]++; + function clearTableTimer() { + _$jscoverage['plugins/table.action.js'][1101]++; + (tabTimer && clearTimeout(tabTimer)); + _$jscoverage['plugins/table.action.js'][1102]++; + tabTimer = null; +} + _$jscoverage['plugins/table.action.js'][1106]++; + function tableDbclickHandler(evt) { + _$jscoverage['plugins/table.action.js'][1107]++; + singleClickState = 0; + _$jscoverage['plugins/table.action.js'][1108]++; + evt = (evt || me.window.event); + _$jscoverage['plugins/table.action.js'][1109]++; + var target = getParentTdOrTh((evt.target || evt.srcElement)); + _$jscoverage['plugins/table.action.js'][1110]++; + if (target) { + _$jscoverage['plugins/table.action.js'][1111]++; + var h; + _$jscoverage['plugins/table.action.js'][1112]++; + if ((h = getRelation(target, mouseCoords(evt)))) { + _$jscoverage['plugins/table.action.js'][1114]++; + hideDragLine(me); + _$jscoverage['plugins/table.action.js'][1116]++; + if ((h == "h1")) { + _$jscoverage['plugins/table.action.js'][1117]++; + h = "h"; + _$jscoverage['plugins/table.action.js'][1118]++; + if (inTableSide(domUtils.findParentByTagName(target, "table"), target, evt)) { + _$jscoverage['plugins/table.action.js'][1119]++; + me.execCommand("adaptbywindow"); + } + else { + _$jscoverage['plugins/table.action.js'][1121]++; + target = getUETable(target).getPreviewCell(target); + _$jscoverage['plugins/table.action.js'][1122]++; + if (target) { + _$jscoverage['plugins/table.action.js'][1123]++; + var rng = me.selection.getRange(); + _$jscoverage['plugins/table.action.js'][1124]++; + rng.selectNodeContents(target).setCursor(true, true); + } + } + } + _$jscoverage['plugins/table.action.js'][1128]++; + if ((h == "h")) { + _$jscoverage['plugins/table.action.js'][1129]++; + var ut = getUETable(target), table = ut.table, cells = getCellsByMoveBorder(target, table, true); + _$jscoverage['plugins/table.action.js'][1133]++; + cells = extractArray(cells, "left"); + _$jscoverage['plugins/table.action.js'][1135]++; + ut.width = ut.offsetWidth; + _$jscoverage['plugins/table.action.js'][1137]++; + var oldWidth = [], newWidth = []; + _$jscoverage['plugins/table.action.js'][1140]++; + utils.each(cells, (function (cell) { + _$jscoverage['plugins/table.action.js'][1142]++; + oldWidth.push(cell.offsetWidth); +})); + _$jscoverage['plugins/table.action.js'][1146]++; + utils.each(cells, (function (cell) { + _$jscoverage['plugins/table.action.js'][1148]++; + cell.removeAttribute("width"); +})); + _$jscoverage['plugins/table.action.js'][1152]++; + window.setTimeout((function () { + _$jscoverage['plugins/table.action.js'][1155]++; + var changeable = true; + _$jscoverage['plugins/table.action.js'][1157]++; + utils.each(cells, (function (cell, index) { + _$jscoverage['plugins/table.action.js'][1159]++; + var width = cell.offsetWidth; + _$jscoverage['plugins/table.action.js'][1161]++; + if ((width > oldWidth[index])) { + _$jscoverage['plugins/table.action.js'][1162]++; + changeable = false; + _$jscoverage['plugins/table.action.js'][1163]++; + return false; + } + _$jscoverage['plugins/table.action.js'][1166]++; + newWidth.push(width); +})); + _$jscoverage['plugins/table.action.js'][1170]++; + var change = (changeable? newWidth: oldWidth); + _$jscoverage['plugins/table.action.js'][1172]++; + utils.each(cells, (function (cell, index) { + _$jscoverage['plugins/table.action.js'][1174]++; + cell.width = (change[index] - getTabcellSpace()); +})); +}), 0); + } + } + } +} + _$jscoverage['plugins/table.action.js'][1194]++; + function tableClickHander(evt) { + _$jscoverage['plugins/table.action.js'][1196]++; + removeSelectedClass(domUtils.getElementsByTagName(me.body, "td th")); + _$jscoverage['plugins/table.action.js'][1199]++; + utils.each(me.document.getElementsByTagName("table"), (function (t) { + _$jscoverage['plugins/table.action.js'][1200]++; + t.ueTable = null; +})); + _$jscoverage['plugins/table.action.js'][1202]++; + startTd = getTargetTd(me, evt); + _$jscoverage['plugins/table.action.js'][1203]++; + if ((! startTd)) { + _$jscoverage['plugins/table.action.js'][1203]++; + return; + } + _$jscoverage['plugins/table.action.js'][1204]++; + var table = domUtils.findParentByTagName(startTd, "table", true); + _$jscoverage['plugins/table.action.js'][1205]++; + ut = getUETable(table); + _$jscoverage['plugins/table.action.js'][1206]++; + (ut && ut.clearSelected()); + _$jscoverage['plugins/table.action.js'][1209]++; + if ((! onBorder)) { + _$jscoverage['plugins/table.action.js'][1210]++; + me.document.body.style.webkitUserSelect = ""; + _$jscoverage['plugins/table.action.js'][1211]++; + mousedown = true; + _$jscoverage['plugins/table.action.js'][1212]++; + me.addListener("mouseover", mouseOverEvent); + } + else { + _$jscoverage['plugins/table.action.js'][1215]++; + borderActionHandler(evt); + } +} + _$jscoverage['plugins/table.action.js'][1222]++; + function borderActionHandler(evt) { + _$jscoverage['plugins/table.action.js'][1224]++; + if (browser.ie) { + _$jscoverage['plugins/table.action.js'][1225]++; + evt = reconstruct(evt); + } + _$jscoverage['plugins/table.action.js'][1228]++; + clearTableDragTimer(); + _$jscoverage['plugins/table.action.js'][1231]++; + isInResizeBuffer = true; + _$jscoverage['plugins/table.action.js'][1233]++; + tableDragTimer = setTimeout((function () { + _$jscoverage['plugins/table.action.js'][1234]++; + tableBorderDrag(evt); +}), dblclickTime); +} + _$jscoverage['plugins/table.action.js'][1239]++; + function extractArray(originArr, key) { + _$jscoverage['plugins/table.action.js'][1241]++; + var result = [], tmp = null; + _$jscoverage['plugins/table.action.js'][1244]++; + for (var i = 0, len = originArr.length; (i < len); (i++)) { + _$jscoverage['plugins/table.action.js'][1246]++; + tmp = originArr[i][key]; + _$jscoverage['plugins/table.action.js'][1248]++; + if (tmp) { + _$jscoverage['plugins/table.action.js'][1249]++; + result.push(tmp); + } +} + _$jscoverage['plugins/table.action.js'][1254]++; + return result; +} + _$jscoverage['plugins/table.action.js'][1258]++; + function clearTableDragTimer() { + _$jscoverage['plugins/table.action.js'][1259]++; + (tableDragTimer && clearTimeout(tableDragTimer)); + _$jscoverage['plugins/table.action.js'][1260]++; + tableDragTimer = null; +} + _$jscoverage['plugins/table.action.js'][1263]++; + function reconstruct(obj) { + _$jscoverage['plugins/table.action.js'][1265]++; + var attrs = ["pageX", "pageY", "clientX", "clientY", "srcElement", "target"], newObj = {}; + _$jscoverage['plugins/table.action.js'][1268]++; + if (obj) { + _$jscoverage['plugins/table.action.js'][1270]++; + for (var i = 0, key, val; (key = attrs[i]); (i++)) { + _$jscoverage['plugins/table.action.js'][1271]++; + val = obj[key]; + _$jscoverage['plugins/table.action.js'][1272]++; + (val && (newObj[key] = val)); +} + } + _$jscoverage['plugins/table.action.js'][1277]++; + return newObj; +} + _$jscoverage['plugins/table.action.js'][1282]++; + function tableBorderDrag(evt) { + _$jscoverage['plugins/table.action.js'][1284]++; + isInResizeBuffer = false; + _$jscoverage['plugins/table.action.js'][1286]++; + if ((! startTd)) { + _$jscoverage['plugins/table.action.js'][1286]++; + return; + } + _$jscoverage['plugins/table.action.js'][1287]++; + var state = ((Math.abs((userActionStatus.x - evt.clientX)) >= Math.abs((userActionStatus.y - evt.clientY)))? "h": "v"); + _$jscoverage['plugins/table.action.js'][1289]++; + if (/\d/.test(state)) { + _$jscoverage['plugins/table.action.js'][1290]++; + state = state.replace(/\d/, ""); + _$jscoverage['plugins/table.action.js'][1291]++; + startTd = getUETable(startTd).getPreviewCell(startTd, (state == "v")); + } + _$jscoverage['plugins/table.action.js'][1293]++; + hideDragLine(me); + _$jscoverage['plugins/table.action.js'][1294]++; + getDragLine(me, me.document); + _$jscoverage['plugins/table.action.js'][1295]++; + me.fireEvent("saveScene"); + _$jscoverage['plugins/table.action.js'][1296]++; + showDragLineAt(state, startTd); + _$jscoverage['plugins/table.action.js'][1297]++; + mousedown = true; + _$jscoverage['plugins/table.action.js'][1299]++; + onDrag = state; + _$jscoverage['plugins/table.action.js'][1300]++; + dragTd = startTd; +} + _$jscoverage['plugins/table.action.js'][1303]++; + function mouseUpEvent(type, evt) { + _$jscoverage['plugins/table.action.js'][1305]++; + if (isEditorDisabled()) { + _$jscoverage['plugins/table.action.js'][1306]++; + return; + } + _$jscoverage['plugins/table.action.js'][1309]++; + clearTableDragTimer(); + _$jscoverage['plugins/table.action.js'][1311]++; + isInResizeBuffer = false; + _$jscoverage['plugins/table.action.js'][1313]++; + if (onBorder) { + _$jscoverage['plugins/table.action.js'][1314]++; + singleClickState = ((++singleClickState) % 3); + _$jscoverage['plugins/table.action.js'][1316]++; + userActionStatus = {x: evt.clientX, y: evt.clientY}; + _$jscoverage['plugins/table.action.js'][1321]++; + tableResizeTimer = setTimeout((function () { + _$jscoverage['plugins/table.action.js'][1322]++; + ((singleClickState > 0) && (singleClickState--)); +}), dblclickTime); + _$jscoverage['plugins/table.action.js'][1325]++; + if ((singleClickState === 2)) { + _$jscoverage['plugins/table.action.js'][1327]++; + singleClickState = 0; + _$jscoverage['plugins/table.action.js'][1328]++; + tableDbclickHandler(evt); + _$jscoverage['plugins/table.action.js'][1329]++; + return; + } + } + _$jscoverage['plugins/table.action.js'][1335]++; + if ((evt.button == 2)) { + _$jscoverage['plugins/table.action.js'][1335]++; + return; + } + _$jscoverage['plugins/table.action.js'][1336]++; + var me = this; + _$jscoverage['plugins/table.action.js'][1338]++; + var range = me.selection.getRange(), start = domUtils.findParentByTagName(range.startContainer, "table", true), end = domUtils.findParentByTagName(range.endContainer, "table", true); + _$jscoverage['plugins/table.action.js'][1342]++; + if ((start || end)) { + _$jscoverage['plugins/table.action.js'][1343]++; + if ((start === end)) { + _$jscoverage['plugins/table.action.js'][1344]++; + start = domUtils.findParentByTagName(range.startContainer, ["td", "th", "caption"], true); + _$jscoverage['plugins/table.action.js'][1345]++; + end = domUtils.findParentByTagName(range.endContainer, ["td", "th", "caption"], true); + _$jscoverage['plugins/table.action.js'][1346]++; + if ((start !== end)) { + _$jscoverage['plugins/table.action.js'][1347]++; + me.selection.clearRange(); + } + } + else { + _$jscoverage['plugins/table.action.js'][1350]++; + me.selection.clearRange(); + } + } + _$jscoverage['plugins/table.action.js'][1353]++; + mousedown = false; + _$jscoverage['plugins/table.action.js'][1354]++; + me.document.body.style.webkitUserSelect = ""; + _$jscoverage['plugins/table.action.js'][1356]++; + if ((onDrag && dragTd)) { + _$jscoverage['plugins/table.action.js'][1358]++; + (me.selection.getNative()[(browser.ie? "empty": "removeAllRanges")])(); + _$jscoverage['plugins/table.action.js'][1360]++; + singleClickState = 0; + _$jscoverage['plugins/table.action.js'][1361]++; + dragLine = me.document.getElementById("ue_tableDragLine"); + _$jscoverage['plugins/table.action.js'][1363]++; + var dragTdPos = domUtils.getXY(dragTd), dragLinePos = domUtils.getXY(dragLine); + _$jscoverage['plugins/table.action.js'][1366]++; + switch (onDrag) { + case "h": + _$jscoverage['plugins/table.action.js'][1368]++; + changeColWidth(dragTd, (dragLinePos.x - dragTdPos.x)); + _$jscoverage['plugins/table.action.js'][1369]++; + break; + case "v": + _$jscoverage['plugins/table.action.js'][1371]++; + changeRowHeight(dragTd, (dragLinePos.y - dragTdPos.y - dragTd.offsetHeight)); + _$jscoverage['plugins/table.action.js'][1372]++; + break; + default: + } + _$jscoverage['plugins/table.action.js'][1375]++; + onDrag = ""; + _$jscoverage['plugins/table.action.js'][1376]++; + dragTd = null; + _$jscoverage['plugins/table.action.js'][1378]++; + hideDragLine(me); + _$jscoverage['plugins/table.action.js'][1379]++; + me.fireEvent("saveScene"); + _$jscoverage['plugins/table.action.js'][1380]++; + return; + } + _$jscoverage['plugins/table.action.js'][1383]++; + if ((! startTd)) { + _$jscoverage['plugins/table.action.js'][1384]++; + var target = domUtils.findParentByTagName((evt.target || evt.srcElement), "td", true); + _$jscoverage['plugins/table.action.js'][1385]++; + if ((! target)) { + _$jscoverage['plugins/table.action.js'][1385]++; + target = domUtils.findParentByTagName((evt.target || evt.srcElement), "th", true); + } + _$jscoverage['plugins/table.action.js'][1386]++; + if ((target && ((target.tagName == "TD") || (target.tagName == "TH")))) { + _$jscoverage['plugins/table.action.js'][1387]++; + if ((me.fireEvent("excludetable", target) === true)) { + _$jscoverage['plugins/table.action.js'][1387]++; + return; + } + _$jscoverage['plugins/table.action.js'][1388]++; + range = new (dom.Range)(me.document); + _$jscoverage['plugins/table.action.js'][1389]++; + range.setStart(target, 0).setCursor(false, true); + } + } + else { + _$jscoverage['plugins/table.action.js'][1392]++; + var ut = getUETable(startTd), cell = (ut? ut.selectedTds[0]: null); + _$jscoverage['plugins/table.action.js'][1394]++; + if (cell) { + _$jscoverage['plugins/table.action.js'][1395]++; + range = new (dom.Range)(me.document); + _$jscoverage['plugins/table.action.js'][1396]++; + if (domUtils.isEmptyBlock(cell)) { + _$jscoverage['plugins/table.action.js'][1397]++; + range.setStart(cell, 0).setCursor(false, true); + } + else { + _$jscoverage['plugins/table.action.js'][1399]++; + range.selectNodeContents(cell).shrinkBoundary().setCursor(false, true); + } + } + else { + _$jscoverage['plugins/table.action.js'][1402]++; + range = me.selection.getRange().shrinkBoundary(); + _$jscoverage['plugins/table.action.js'][1403]++; + if ((! range.collapsed)) { + _$jscoverage['plugins/table.action.js'][1404]++; + var start = domUtils.findParentByTagName(range.startContainer, ["td", "th"], true), end = domUtils.findParentByTagName(range.endContainer, ["td", "th"], true); + _$jscoverage['plugins/table.action.js'][1407]++; + if (((start && (! end)) || ((! start) && end) || (start && end && (start !== end)))) { + _$jscoverage['plugins/table.action.js'][1408]++; + range.setCursor(false, true); + } + } + } + _$jscoverage['plugins/table.action.js'][1412]++; + startTd = null; + _$jscoverage['plugins/table.action.js'][1413]++; + me.removeListener("mouseover", mouseOverEvent); + } + _$jscoverage['plugins/table.action.js'][1415]++; + me._selectionChange(250, evt); +} + _$jscoverage['plugins/table.action.js'][1418]++; + function mouseOverEvent(type, evt) { + _$jscoverage['plugins/table.action.js'][1420]++; + if (isEditorDisabled()) { + _$jscoverage['plugins/table.action.js'][1421]++; + return; + } + _$jscoverage['plugins/table.action.js'][1424]++; + var me = this, tar = (evt.target || evt.srcElement); + _$jscoverage['plugins/table.action.js'][1426]++; + currentTd = (domUtils.findParentByTagName(tar, "td", true) || domUtils.findParentByTagName(tar, "th", true)); + _$jscoverage['plugins/table.action.js'][1428]++; + if ((startTd && currentTd && (((startTd.tagName == "TD") && (currentTd.tagName == "TD")) || ((startTd.tagName == "TH") && (currentTd.tagName == "TH"))) && (domUtils.findParentByTagName(startTd, "table") == domUtils.findParentByTagName(currentTd, "table")))) { + _$jscoverage['plugins/table.action.js'][1431]++; + var ut = getUETable(currentTd); + _$jscoverage['plugins/table.action.js'][1432]++; + if ((startTd != currentTd)) { + _$jscoverage['plugins/table.action.js'][1433]++; + me.document.body.style.webkitUserSelect = "none"; + _$jscoverage['plugins/table.action.js'][1434]++; + (me.selection.getNative()[(browser.ie? "empty": "removeAllRanges")])(); + _$jscoverage['plugins/table.action.js'][1435]++; + var range = ut.getCellsRange(startTd, currentTd); + _$jscoverage['plugins/table.action.js'][1436]++; + ut.setSelected(range); + } + else { + _$jscoverage['plugins/table.action.js'][1438]++; + me.document.body.style.webkitUserSelect = ""; + _$jscoverage['plugins/table.action.js'][1439]++; + ut.clearSelected(); + } + } + _$jscoverage['plugins/table.action.js'][1443]++; + (evt.preventDefault? evt.preventDefault(): (evt.returnValue = false)); +} + _$jscoverage['plugins/table.action.js'][1446]++; + function setCellHeight(cell, height, backHeight) { + _$jscoverage['plugins/table.action.js'][1447]++; + var lineHight = parseInt(domUtils.getComputedStyle(cell, "line-height"), 10), tmpHeight = (backHeight + height); + _$jscoverage['plugins/table.action.js'][1449]++; + height = ((tmpHeight < lineHight)? lineHight: tmpHeight); + _$jscoverage['plugins/table.action.js'][1450]++; + if (cell.style.height) { + _$jscoverage['plugins/table.action.js'][1450]++; + cell.style.height = ""; + } + _$jscoverage['plugins/table.action.js'][1451]++; + ((cell.rowSpan == 1)? cell.setAttribute("height", height): (cell.removeAttribute && cell.removeAttribute("height"))); +} + _$jscoverage['plugins/table.action.js'][1454]++; + function getWidth(cell) { + _$jscoverage['plugins/table.action.js'][1455]++; + if ((! cell)) { + _$jscoverage['plugins/table.action.js'][1455]++; + return 0; + } + _$jscoverage['plugins/table.action.js'][1456]++; + return parseInt(domUtils.getComputedStyle(cell, "width"), 10); +} + _$jscoverage['plugins/table.action.js'][1459]++; + function changeColWidth(cell, changeValue) { + _$jscoverage['plugins/table.action.js'][1461]++; + var ut = getUETable(cell); + _$jscoverage['plugins/table.action.js'][1462]++; + if (ut) { + _$jscoverage['plugins/table.action.js'][1465]++; + var table = ut.table, cells = getCellsByMoveBorder(cell, table); + _$jscoverage['plugins/table.action.js'][1468]++; + table.style.width = ""; + _$jscoverage['plugins/table.action.js'][1469]++; + table.removeAttribute("width"); + _$jscoverage['plugins/table.action.js'][1472]++; + changeValue = correctChangeValue(changeValue, cell, cells); + _$jscoverage['plugins/table.action.js'][1474]++; + if (cell.nextSibling) { + _$jscoverage['plugins/table.action.js'][1476]++; + var i = 0; + _$jscoverage['plugins/table.action.js'][1478]++; + utils.each(cells, (function (cellGroup) { + _$jscoverage['plugins/table.action.js'][1480]++; + cellGroup.left.width = ((+ cellGroup.left.width) + changeValue); + _$jscoverage['plugins/table.action.js'][1481]++; + (cellGroup.right && (cellGroup.right.width = ((+ cellGroup.right.width) - changeValue))); +})); + } + else { + _$jscoverage['plugins/table.action.js'][1487]++; + utils.each(cells, (function (cellGroup) { + _$jscoverage['plugins/table.action.js'][1488]++; + cellGroup.left.width -= (- changeValue); +})); + } + } +} + _$jscoverage['plugins/table.action.js'][1496]++; + function isEditorDisabled() { + _$jscoverage['plugins/table.action.js'][1497]++; + return (me.body.contentEditable === "false"); +} + _$jscoverage['plugins/table.action.js'][1500]++; + function changeRowHeight(td, changeValue) { + _$jscoverage['plugins/table.action.js'][1501]++; + if ((Math.abs(changeValue) < 10)) { + _$jscoverage['plugins/table.action.js'][1501]++; + return; + } + _$jscoverage['plugins/table.action.js'][1502]++; + var ut = getUETable(td); + _$jscoverage['plugins/table.action.js'][1503]++; + if (ut) { + _$jscoverage['plugins/table.action.js'][1504]++; + var cells = ut.getSameEndPosCells(td, "y"), backHeight = (cells[0]? cells[0].offsetHeight: 0); + _$jscoverage['plugins/table.action.js'][1507]++; + for (var i = 0, cell; (cell = cells[(i++)]);) { + _$jscoverage['plugins/table.action.js'][1508]++; + setCellHeight(cell, changeValue, backHeight); +} + } +} + _$jscoverage['plugins/table.action.js'][1518]++; + function getCellsByMoveBorder(cell, table, isContainMergeCell) { + _$jscoverage['plugins/table.action.js'][1520]++; + if ((! table)) { + _$jscoverage['plugins/table.action.js'][1521]++; + table = domUtils.findParentByTagName(cell, "table"); + } + _$jscoverage['plugins/table.action.js'][1524]++; + if ((! table)) { + _$jscoverage['plugins/table.action.js'][1525]++; + return null; + } + _$jscoverage['plugins/table.action.js'][1529]++; + var index = domUtils.getNodeIndex(cell), temp = cell, rows = table.rows, colIndex = 0; + _$jscoverage['plugins/table.action.js'][1534]++; + while (temp) { + _$jscoverage['plugins/table.action.js'][1536]++; + if ((temp.nodeType === 1)) { + _$jscoverage['plugins/table.action.js'][1537]++; + colIndex += (temp.colSpan || 1); + } + _$jscoverage['plugins/table.action.js'][1539]++; + temp = temp.previousSibling; +} + _$jscoverage['plugins/table.action.js'][1542]++; + temp = null; + _$jscoverage['plugins/table.action.js'][1545]++; + var borderCells = []; + _$jscoverage['plugins/table.action.js'][1547]++; + utils.each(rows, (function (tabRow) { + _$jscoverage['plugins/table.action.js'][1549]++; + var cells = tabRow.cells, currIndex = 0; + _$jscoverage['plugins/table.action.js'][1552]++; + utils.each(cells, (function (tabCell) { + _$jscoverage['plugins/table.action.js'][1554]++; + currIndex += (tabCell.colSpan || 1); + _$jscoverage['plugins/table.action.js'][1556]++; + if ((currIndex === colIndex)) { + _$jscoverage['plugins/table.action.js'][1558]++; + borderCells.push({left: tabCell, right: (tabCell.nextSibling || null)}); + _$jscoverage['plugins/table.action.js'][1563]++; + return false; + } + else { + _$jscoverage['plugins/table.action.js'][1565]++; + if ((currIndex > colIndex)) { + _$jscoverage['plugins/table.action.js'][1567]++; + if (isContainMergeCell) { + _$jscoverage['plugins/table.action.js'][1568]++; + borderCells.push({left: tabCell}); + } + _$jscoverage['plugins/table.action.js'][1573]++; + return false; + } + } +})); +})); + _$jscoverage['plugins/table.action.js'][1581]++; + return borderCells; +} + _$jscoverage['plugins/table.action.js'][1589]++; + function getMinWidthByTableCells(cells) { + _$jscoverage['plugins/table.action.js'][1591]++; + var minWidth = Number.MAX_VALUE; + _$jscoverage['plugins/table.action.js'][1593]++; + for (var i = 0, curCell; (curCell = cells[i]); (i++)) { + _$jscoverage['plugins/table.action.js'][1595]++; + minWidth = Math.min(minWidth, (curCell.width || getTableCellWidth(curCell))); +} + _$jscoverage['plugins/table.action.js'][1599]++; + return minWidth; +} + _$jscoverage['plugins/table.action.js'][1603]++; + function correctChangeValue(changeValue, relatedCell, cells) { + _$jscoverage['plugins/table.action.js'][1606]++; + changeValue -= getTabcellSpace(); + _$jscoverage['plugins/table.action.js'][1608]++; + if ((changeValue < 0)) { + _$jscoverage['plugins/table.action.js'][1609]++; + return 0; + } + _$jscoverage['plugins/table.action.js'][1612]++; + changeValue -= getTableCellWidth(relatedCell); + _$jscoverage['plugins/table.action.js'][1615]++; + var direction = ((changeValue < 0)? "left": "right"); + _$jscoverage['plugins/table.action.js'][1617]++; + changeValue = Math.abs(changeValue); + _$jscoverage['plugins/table.action.js'][1620]++; + utils.each(cells, (function (cellGroup) { + _$jscoverage['plugins/table.action.js'][1622]++; + var curCell = cellGroup[direction]; + _$jscoverage['plugins/table.action.js'][1625]++; + if (curCell) { + _$jscoverage['plugins/table.action.js'][1626]++; + changeValue = Math.min(changeValue, (getTableCellWidth(curCell) - cellMinWidth)); + } +})); + _$jscoverage['plugins/table.action.js'][1634]++; + changeValue = ((changeValue < 0)? 0: changeValue); + _$jscoverage['plugins/table.action.js'][1636]++; + return ((direction === "left")? (- changeValue): changeValue); +} + _$jscoverage['plugins/table.action.js'][1640]++; + function getTableCellWidth(cell) { + _$jscoverage['plugins/table.action.js'][1642]++; + var width = 0, offset = 0, width = (cell.offsetWidth - getTabcellSpace()); + _$jscoverage['plugins/table.action.js'][1648]++; + if ((! cell.nextSibling)) { + _$jscoverage['plugins/table.action.js'][1650]++; + width -= getTableCellOffset(cell); + } + _$jscoverage['plugins/table.action.js'][1654]++; + width = ((width < 0)? 0: width); + _$jscoverage['plugins/table.action.js'][1656]++; + try { + _$jscoverage['plugins/table.action.js'][1657]++; + cell.width = width; + } + catch (e) { + } + _$jscoverage['plugins/table.action.js'][1661]++; + return width; +} + _$jscoverage['plugins/table.action.js'][1668]++; + function getTableCellOffset(cell) { + _$jscoverage['plugins/table.action.js'][1670]++; + tab = domUtils.findParentByTagName(cell, "table", false); + _$jscoverage['plugins/table.action.js'][1672]++; + if ((tab.offsetVal === undefined)) { + _$jscoverage['plugins/table.action.js'][1674]++; + var prev = cell.previousSibling; + _$jscoverage['plugins/table.action.js'][1676]++; + if (prev) { + _$jscoverage['plugins/table.action.js'][1679]++; + tab.offsetVal = (((cell.offsetWidth - prev.offsetWidth) === UT.borderWidth)? UT.borderWidth: 0); + } + else { + _$jscoverage['plugins/table.action.js'][1682]++; + tab.offsetVal = 0; + } + } + _$jscoverage['plugins/table.action.js'][1687]++; + return tab.offsetVal; +} + _$jscoverage['plugins/table.action.js'][1691]++; + function getTabcellSpace() { + _$jscoverage['plugins/table.action.js'][1693]++; + if ((UT.tabcellSpace === undefined)) { + _$jscoverage['plugins/table.action.js'][1695]++; + var cell = null, tab = me.document.createElement("table"), tbody = me.document.createElement("tbody"), trow = me.document.createElement("tr"), tabcell = me.document.createElement("td"), mirror = null; + _$jscoverage['plugins/table.action.js'][1702]++; + tabcell.style.cssText = "border: 0;"; + _$jscoverage['plugins/table.action.js'][1703]++; + tabcell.width = 1; + _$jscoverage['plugins/table.action.js'][1705]++; + trow.appendChild(tabcell); + _$jscoverage['plugins/table.action.js'][1706]++; + trow.appendChild((mirror = tabcell.cloneNode(false))); + _$jscoverage['plugins/table.action.js'][1708]++; + tbody.appendChild(trow); + _$jscoverage['plugins/table.action.js'][1710]++; + tab.appendChild(tbody); + _$jscoverage['plugins/table.action.js'][1712]++; + tab.style.cssText = "visibility: hidden;"; + _$jscoverage['plugins/table.action.js'][1714]++; + me.body.appendChild(tab); + _$jscoverage['plugins/table.action.js'][1716]++; + UT.paddingSpace = (tabcell.offsetWidth - 1); + _$jscoverage['plugins/table.action.js'][1718]++; + var tmpTabWidth = tab.offsetWidth; + _$jscoverage['plugins/table.action.js'][1720]++; + tabcell.style.cssText = ""; + _$jscoverage['plugins/table.action.js'][1721]++; + mirror.style.cssText = ""; + _$jscoverage['plugins/table.action.js'][1723]++; + UT.borderWidth = ((tab.offsetWidth - tmpTabWidth) / 3); + _$jscoverage['plugins/table.action.js'][1725]++; + UT.tabcellSpace = (UT.paddingSpace + UT.borderWidth); + _$jscoverage['plugins/table.action.js'][1727]++; + me.body.removeChild(tab); + } + _$jscoverage['plugins/table.action.js'][1731]++; + getTabcellSpace = (function () { + _$jscoverage['plugins/table.action.js'][1731]++; + return UT.tabcellSpace; +}); + _$jscoverage['plugins/table.action.js'][1733]++; + return UT.tabcellSpace; +} + _$jscoverage['plugins/table.action.js'][1737]++; + function getDragLine(editor, doc) { + _$jscoverage['plugins/table.action.js'][1738]++; + if (mousedown) { + _$jscoverage['plugins/table.action.js'][1738]++; + return; + } + _$jscoverage['plugins/table.action.js'][1739]++; + dragLine = editor.document.createElement("div"); + _$jscoverage['plugins/table.action.js'][1740]++; + domUtils.setAttributes(dragLine, {id: "ue_tableDragLine", unselectable: "on", contenteditable: false, "onresizestart": "return false", "ondragstart": "return false", "onselectstart": "return false", style: "background-color:blue;position:absolute;padding:0;margin:0;background-image:none;border:0px none;opacity:0;filter:alpha(opacity=0)"}); + _$jscoverage['plugins/table.action.js'][1749]++; + editor.body.appendChild(dragLine); +} + _$jscoverage['plugins/table.action.js'][1752]++; + function hideDragLine(editor) { + _$jscoverage['plugins/table.action.js'][1753]++; + if (mousedown) { + _$jscoverage['plugins/table.action.js'][1753]++; + return; + } + _$jscoverage['plugins/table.action.js'][1754]++; + var line; + _$jscoverage['plugins/table.action.js'][1755]++; + while ((line = editor.document.getElementById("ue_tableDragLine"))) { + _$jscoverage['plugins/table.action.js'][1756]++; + domUtils.remove(line); +} +} + _$jscoverage['plugins/table.action.js'][1765]++; + function showDragLineAt(state, cell) { + _$jscoverage['plugins/table.action.js'][1766]++; + if ((! cell)) { + _$jscoverage['plugins/table.action.js'][1766]++; + return; + } + _$jscoverage['plugins/table.action.js'][1767]++; + var table = domUtils.findParentByTagName(cell, "table"), caption = table.getElementsByTagName("caption"), width = table.offsetWidth, height = (table.offsetHeight - ((caption.length > 0)? caption[0].offsetHeight: 0)), tablePos = domUtils.getXY(table), cellPos = domUtils.getXY(cell), css; + _$jscoverage['plugins/table.action.js'][1773]++; + switch (state) { + case "h": + _$jscoverage['plugins/table.action.js'][1775]++; + css = ("height:" + height + "px;top:" + (tablePos.y + ((caption.length > 0)? caption[0].offsetHeight: 0)) + "px;left:" + (cellPos.x + cell.offsetWidth)); + _$jscoverage['plugins/table.action.js'][1776]++; + dragLine.style.cssText = (css + "px;position: absolute;display:block;background-color:blue;width:1px;border:0; color:blue;opacity:.3;filter:alpha(opacity=30)"); + _$jscoverage['plugins/table.action.js'][1777]++; + break; + case "v": + _$jscoverage['plugins/table.action.js'][1779]++; + css = ("width:" + width + "px;left:" + tablePos.x + "px;top:" + (cellPos.y + cell.offsetHeight)); + _$jscoverage['plugins/table.action.js'][1781]++; + dragLine.style.cssText = (css + "px;overflow:hidden;position: absolute;display:block;background-color:blue;height:1px;border:0;color:blue;opacity:.2;filter:alpha(opacity=20)"); + _$jscoverage['plugins/table.action.js'][1782]++; + break; + default: + } +} + _$jscoverage['plugins/table.action.js'][1792]++; + function switchBorderColor(editor, flag) { + _$jscoverage['plugins/table.action.js'][1793]++; + var tableArr = domUtils.getElementsByTagName(editor.body, "table"), color; + _$jscoverage['plugins/table.action.js'][1794]++; + for (var i = 0, node; (node = tableArr[(i++)]);) { + _$jscoverage['plugins/table.action.js'][1795]++; + var td = domUtils.getElementsByTagName(node, "td"); + _$jscoverage['plugins/table.action.js'][1796]++; + if (td[0]) { + _$jscoverage['plugins/table.action.js'][1797]++; + if (flag) { + _$jscoverage['plugins/table.action.js'][1798]++; + color = td[0].style.borderColor.replace(/\s/g, ""); + _$jscoverage['plugins/table.action.js'][1799]++; + if (/(#ffffff)|(rgb\(255,f55,255\))/gi.test(color)) { + _$jscoverage['plugins/table.action.js'][1800]++; + domUtils.addClass(node, "noBorderTable"); + } + } + else { + _$jscoverage['plugins/table.action.js'][1802]++; + domUtils.removeClasses(node, "noBorderTable"); + } + } +} +} + _$jscoverage['plugins/table.action.js'][1809]++; + function getTableWidth(editor, needIEHack, defaultValue) { + _$jscoverage['plugins/table.action.js'][1810]++; + var body = editor.body; + _$jscoverage['plugins/table.action.js'][1811]++; + return (body.offsetWidth - (needIEHack? (parseInt(domUtils.getComputedStyle(body, "margin-left"), 10) * 2): 0) - (defaultValue.tableBorder * 2) - (editor.options.offsetWidth || 0)); +} + _$jscoverage['plugins/table.action.js'][1817]++; + function getTargetTd(editor, evt) { + _$jscoverage['plugins/table.action.js'][1819]++; + var target = domUtils.findParentByTagName((evt.target || evt.srcElement), ["td", "th"], true), dir = null; + _$jscoverage['plugins/table.action.js'][1822]++; + if ((! target)) { + _$jscoverage['plugins/table.action.js'][1823]++; + return null; + } + _$jscoverage['plugins/table.action.js'][1826]++; + dir = getRelation(target, mouseCoords(evt)); + _$jscoverage['plugins/table.action.js'][1830]++; + if ((! target)) { + _$jscoverage['plugins/table.action.js'][1831]++; + return null; + } + _$jscoverage['plugins/table.action.js'][1834]++; + if (((dir === "h1") && target.previousSibling)) { + _$jscoverage['plugins/table.action.js'][1836]++; + var position = domUtils.getXY(target), cellWidth = target.offsetWidth; + _$jscoverage['plugins/table.action.js'][1839]++; + if ((Math.abs(((position.x + cellWidth) - evt.clientX)) > (cellWidth / 3))) { + _$jscoverage['plugins/table.action.js'][1840]++; + target = target.previousSibling; + } + } + else { + _$jscoverage['plugins/table.action.js'][1843]++; + if (((dir === "v1") && target.parentNode.previousSibling)) { + _$jscoverage['plugins/table.action.js'][1845]++; + var position = domUtils.getXY(target), cellHeight = target.offsetHeight; + _$jscoverage['plugins/table.action.js'][1848]++; + if ((Math.abs(((position.y + cellHeight) - evt.clientY)) > (cellHeight / 3))) { + _$jscoverage['plugins/table.action.js'][1849]++; + target = target.parentNode.previousSibling.firstChild; + } + } + } + _$jscoverage['plugins/table.action.js'][1856]++; + return ((target && (! (editor.fireEvent("excludetable", target) === true)))? target: null); +} +}); diff --git a/_test/coverage/plugins/table.cmds.js b/_test/coverage/plugins/table.cmds.js new file mode 100644 index 000000000..f90fa6651 --- /dev/null +++ b/_test/coverage/plugins/table.cmds.js @@ -0,0 +1,1622 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/table.cmds.js']) { + _$jscoverage['plugins/table.cmds.js'] = []; + _$jscoverage['plugins/table.cmds.js'][8] = 0; + _$jscoverage['plugins/table.cmds.js'][9] = 0; + _$jscoverage['plugins/table.cmds.js'][10] = 0; + _$jscoverage['plugins/table.cmds.js'][12] = 0; + _$jscoverage['plugins/table.cmds.js'][15] = 0; + _$jscoverage['plugins/table.cmds.js'][18] = 0; + _$jscoverage['plugins/table.cmds.js'][21] = 0; + _$jscoverage['plugins/table.cmds.js'][25] = 0; + _$jscoverage['plugins/table.cmds.js'][27] = 0; + _$jscoverage['plugins/table.cmds.js'][30] = 0; + _$jscoverage['plugins/table.cmds.js'][31] = 0; + _$jscoverage['plugins/table.cmds.js'][34] = 0; + _$jscoverage['plugins/table.cmds.js'][35] = 0; + _$jscoverage['plugins/table.cmds.js'][36] = 0; + _$jscoverage['plugins/table.cmds.js'][37] = 0; + _$jscoverage['plugins/table.cmds.js'][39] = 0; + _$jscoverage['plugins/table.cmds.js'][42] = 0; + _$jscoverage['plugins/table.cmds.js'][45] = 0; + _$jscoverage['plugins/table.cmds.js'][46] = 0; + _$jscoverage['plugins/table.cmds.js'][52] = 0; + _$jscoverage['plugins/table.cmds.js'][53] = 0; + _$jscoverage['plugins/table.cmds.js'][56] = 0; + _$jscoverage['plugins/table.cmds.js'][59] = 0; + _$jscoverage['plugins/table.cmds.js'][64] = 0; + _$jscoverage['plugins/table.cmds.js'][65] = 0; + _$jscoverage['plugins/table.cmds.js'][69] = 0; + _$jscoverage['plugins/table.cmds.js'][71] = 0; + _$jscoverage['plugins/table.cmds.js'][74] = 0; + _$jscoverage['plugins/table.cmds.js'][75] = 0; + _$jscoverage['plugins/table.cmds.js'][76] = 0; + _$jscoverage['plugins/table.cmds.js'][77] = 0; + _$jscoverage['plugins/table.cmds.js'][78] = 0; + _$jscoverage['plugins/table.cmds.js'][79] = 0; + _$jscoverage['plugins/table.cmds.js'][84] = 0; + _$jscoverage['plugins/table.cmds.js'][86] = 0; + _$jscoverage['plugins/table.cmds.js'][87] = 0; + _$jscoverage['plugins/table.cmds.js'][90] = 0; + _$jscoverage['plugins/table.cmds.js'][91] = 0; + _$jscoverage['plugins/table.cmds.js'][92] = 0; + _$jscoverage['plugins/table.cmds.js'][93] = 0; + _$jscoverage['plugins/table.cmds.js'][94] = 0; + _$jscoverage['plugins/table.cmds.js'][95] = 0; + _$jscoverage['plugins/table.cmds.js'][98] = 0; + _$jscoverage['plugins/table.cmds.js'][100] = 0; + _$jscoverage['plugins/table.cmds.js'][101] = 0; + _$jscoverage['plugins/table.cmds.js'][102] = 0; + _$jscoverage['plugins/table.cmds.js'][103] = 0; + _$jscoverage['plugins/table.cmds.js'][105] = 0; + _$jscoverage['plugins/table.cmds.js'][107] = 0; + _$jscoverage['plugins/table.cmds.js'][108] = 0; + _$jscoverage['plugins/table.cmds.js'][114] = 0; + _$jscoverage['plugins/table.cmds.js'][116] = 0; + _$jscoverage['plugins/table.cmds.js'][119] = 0; + _$jscoverage['plugins/table.cmds.js'][120] = 0; + _$jscoverage['plugins/table.cmds.js'][121] = 0; + _$jscoverage['plugins/table.cmds.js'][122] = 0; + _$jscoverage['plugins/table.cmds.js'][127] = 0; + _$jscoverage['plugins/table.cmds.js'][129] = 0; + _$jscoverage['plugins/table.cmds.js'][132] = 0; + _$jscoverage['plugins/table.cmds.js'][133] = 0; + _$jscoverage['plugins/table.cmds.js'][134] = 0; + _$jscoverage['plugins/table.cmds.js'][135] = 0; + _$jscoverage['plugins/table.cmds.js'][140] = 0; + _$jscoverage['plugins/table.cmds.js'][142] = 0; + _$jscoverage['plugins/table.cmds.js'][143] = 0; + _$jscoverage['plugins/table.cmds.js'][144] = 0; + _$jscoverage['plugins/table.cmds.js'][146] = 0; + _$jscoverage['plugins/table.cmds.js'][149] = 0; + _$jscoverage['plugins/table.cmds.js'][150] = 0; + _$jscoverage['plugins/table.cmds.js'][151] = 0; + _$jscoverage['plugins/table.cmds.js'][152] = 0; + _$jscoverage['plugins/table.cmds.js'][153] = 0; + _$jscoverage['plugins/table.cmds.js'][154] = 0; + _$jscoverage['plugins/table.cmds.js'][155] = 0; + _$jscoverage['plugins/table.cmds.js'][160] = 0; + _$jscoverage['plugins/table.cmds.js'][162] = 0; + _$jscoverage['plugins/table.cmds.js'][164] = 0; + _$jscoverage['plugins/table.cmds.js'][165] = 0; + _$jscoverage['plugins/table.cmds.js'][167] = 0; + _$jscoverage['plugins/table.cmds.js'][170] = 0; + _$jscoverage['plugins/table.cmds.js'][172] = 0; + _$jscoverage['plugins/table.cmds.js'][173] = 0; + _$jscoverage['plugins/table.cmds.js'][174] = 0; + _$jscoverage['plugins/table.cmds.js'][175] = 0; + _$jscoverage['plugins/table.cmds.js'][180] = 0; + _$jscoverage['plugins/table.cmds.js'][182] = 0; + _$jscoverage['plugins/table.cmds.js'][183] = 0; + _$jscoverage['plugins/table.cmds.js'][184] = 0; + _$jscoverage['plugins/table.cmds.js'][185] = 0; + _$jscoverage['plugins/table.cmds.js'][187] = 0; + _$jscoverage['plugins/table.cmds.js'][190] = 0; + _$jscoverage['plugins/table.cmds.js'][191] = 0; + _$jscoverage['plugins/table.cmds.js'][192] = 0; + _$jscoverage['plugins/table.cmds.js'][194] = 0; + _$jscoverage['plugins/table.cmds.js'][195] = 0; + _$jscoverage['plugins/table.cmds.js'][198] = 0; + _$jscoverage['plugins/table.cmds.js'][200] = 0; + _$jscoverage['plugins/table.cmds.js'][201] = 0; + _$jscoverage['plugins/table.cmds.js'][202] = 0; + _$jscoverage['plugins/table.cmds.js'][203] = 0; + _$jscoverage['plugins/table.cmds.js'][205] = 0; + _$jscoverage['plugins/table.cmds.js'][208] = 0; + _$jscoverage['plugins/table.cmds.js'][209] = 0; + _$jscoverage['plugins/table.cmds.js'][210] = 0; + _$jscoverage['plugins/table.cmds.js'][212] = 0; + _$jscoverage['plugins/table.cmds.js'][213] = 0; + _$jscoverage['plugins/table.cmds.js'][217] = 0; + _$jscoverage['plugins/table.cmds.js'][219] = 0; + _$jscoverage['plugins/table.cmds.js'][220] = 0; + _$jscoverage['plugins/table.cmds.js'][221] = 0; + _$jscoverage['plugins/table.cmds.js'][222] = 0; + _$jscoverage['plugins/table.cmds.js'][223] = 0; + _$jscoverage['plugins/table.cmds.js'][225] = 0; + _$jscoverage['plugins/table.cmds.js'][226] = 0; + _$jscoverage['plugins/table.cmds.js'][227] = 0; + _$jscoverage['plugins/table.cmds.js'][231] = 0; + _$jscoverage['plugins/table.cmds.js'][233] = 0; + _$jscoverage['plugins/table.cmds.js'][235] = 0; + _$jscoverage['plugins/table.cmds.js'][236] = 0; + _$jscoverage['plugins/table.cmds.js'][239] = 0; + _$jscoverage['plugins/table.cmds.js'][241] = 0; + _$jscoverage['plugins/table.cmds.js'][243] = 0; + _$jscoverage['plugins/table.cmds.js'][244] = 0; + _$jscoverage['plugins/table.cmds.js'][245] = 0; + _$jscoverage['plugins/table.cmds.js'][246] = 0; + _$jscoverage['plugins/table.cmds.js'][249] = 0; + _$jscoverage['plugins/table.cmds.js'][250] = 0; + _$jscoverage['plugins/table.cmds.js'][252] = 0; + _$jscoverage['plugins/table.cmds.js'][256] = 0; + _$jscoverage['plugins/table.cmds.js'][258] = 0; + _$jscoverage['plugins/table.cmds.js'][260] = 0; + _$jscoverage['plugins/table.cmds.js'][261] = 0; + _$jscoverage['plugins/table.cmds.js'][264] = 0; + _$jscoverage['plugins/table.cmds.js'][266] = 0; + _$jscoverage['plugins/table.cmds.js'][269] = 0; + _$jscoverage['plugins/table.cmds.js'][270] = 0; + _$jscoverage['plugins/table.cmds.js'][271] = 0; + _$jscoverage['plugins/table.cmds.js'][272] = 0; + _$jscoverage['plugins/table.cmds.js'][273] = 0; + _$jscoverage['plugins/table.cmds.js'][274] = 0; + _$jscoverage['plugins/table.cmds.js'][275] = 0; + _$jscoverage['plugins/table.cmds.js'][277] = 0; + _$jscoverage['plugins/table.cmds.js'][279] = 0; + _$jscoverage['plugins/table.cmds.js'][285] = 0; + _$jscoverage['plugins/table.cmds.js'][287] = 0; + _$jscoverage['plugins/table.cmds.js'][289] = 0; + _$jscoverage['plugins/table.cmds.js'][292] = 0; + _$jscoverage['plugins/table.cmds.js'][294] = 0; + _$jscoverage['plugins/table.cmds.js'][300] = 0; + _$jscoverage['plugins/table.cmds.js'][301] = 0; + _$jscoverage['plugins/table.cmds.js'][303] = 0; + _$jscoverage['plugins/table.cmds.js'][304] = 0; + _$jscoverage['plugins/table.cmds.js'][305] = 0; + _$jscoverage['plugins/table.cmds.js'][308] = 0; + _$jscoverage['plugins/table.cmds.js'][309] = 0; + _$jscoverage['plugins/table.cmds.js'][313] = 0; + _$jscoverage['plugins/table.cmds.js'][315] = 0; + _$jscoverage['plugins/table.cmds.js'][317] = 0; + _$jscoverage['plugins/table.cmds.js'][320] = 0; + _$jscoverage['plugins/table.cmds.js'][322] = 0; + _$jscoverage['plugins/table.cmds.js'][328] = 0; + _$jscoverage['plugins/table.cmds.js'][329] = 0; + _$jscoverage['plugins/table.cmds.js'][331] = 0; + _$jscoverage['plugins/table.cmds.js'][332] = 0; + _$jscoverage['plugins/table.cmds.js'][333] = 0; + _$jscoverage['plugins/table.cmds.js'][336] = 0; + _$jscoverage['plugins/table.cmds.js'][337] = 0; + _$jscoverage['plugins/table.cmds.js'][340] = 0; + _$jscoverage['plugins/table.cmds.js'][342] = 0; + _$jscoverage['plugins/table.cmds.js'][343] = 0; + _$jscoverage['plugins/table.cmds.js'][344] = 0; + _$jscoverage['plugins/table.cmds.js'][348] = 0; + _$jscoverage['plugins/table.cmds.js'][355] = 0; + _$jscoverage['plugins/table.cmds.js'][356] = 0; + _$jscoverage['plugins/table.cmds.js'][358] = 0; + _$jscoverage['plugins/table.cmds.js'][359] = 0; + _$jscoverage['plugins/table.cmds.js'][362] = 0; + _$jscoverage['plugins/table.cmds.js'][363] = 0; + _$jscoverage['plugins/table.cmds.js'][364] = 0; + _$jscoverage['plugins/table.cmds.js'][365] = 0; + _$jscoverage['plugins/table.cmds.js'][366] = 0; + _$jscoverage['plugins/table.cmds.js'][367] = 0; + _$jscoverage['plugins/table.cmds.js'][370] = 0; + _$jscoverage['plugins/table.cmds.js'][371] = 0; + _$jscoverage['plugins/table.cmds.js'][373] = 0; + _$jscoverage['plugins/table.cmds.js'][374] = 0; + _$jscoverage['plugins/table.cmds.js'][377] = 0; + _$jscoverage['plugins/table.cmds.js'][380] = 0; + _$jscoverage['plugins/table.cmds.js'][382] = 0; + _$jscoverage['plugins/table.cmds.js'][384] = 0; + _$jscoverage['plugins/table.cmds.js'][387] = 0; + _$jscoverage['plugins/table.cmds.js'][389] = 0; + _$jscoverage['plugins/table.cmds.js'][390] = 0; + _$jscoverage['plugins/table.cmds.js'][395] = 0; + _$jscoverage['plugins/table.cmds.js'][396] = 0; + _$jscoverage['plugins/table.cmds.js'][398] = 0; + _$jscoverage['plugins/table.cmds.js'][399] = 0; + _$jscoverage['plugins/table.cmds.js'][400] = 0; + _$jscoverage['plugins/table.cmds.js'][403] = 0; + _$jscoverage['plugins/table.cmds.js'][406] = 0; + _$jscoverage['plugins/table.cmds.js'][408] = 0; + _$jscoverage['plugins/table.cmds.js'][410] = 0; + _$jscoverage['plugins/table.cmds.js'][413] = 0; + _$jscoverage['plugins/table.cmds.js'][415] = 0; + _$jscoverage['plugins/table.cmds.js'][419] = 0; + _$jscoverage['plugins/table.cmds.js'][420] = 0; + _$jscoverage['plugins/table.cmds.js'][422] = 0; + _$jscoverage['plugins/table.cmds.js'][423] = 0; + _$jscoverage['plugins/table.cmds.js'][424] = 0; + _$jscoverage['plugins/table.cmds.js'][427] = 0; + _$jscoverage['plugins/table.cmds.js'][431] = 0; + _$jscoverage['plugins/table.cmds.js'][433] = 0; + _$jscoverage['plugins/table.cmds.js'][434] = 0; + _$jscoverage['plugins/table.cmds.js'][437] = 0; + _$jscoverage['plugins/table.cmds.js'][443] = 0; + _$jscoverage['plugins/table.cmds.js'][444] = 0; + _$jscoverage['plugins/table.cmds.js'][446] = 0; + _$jscoverage['plugins/table.cmds.js'][447] = 0; + _$jscoverage['plugins/table.cmds.js'][450] = 0; + _$jscoverage['plugins/table.cmds.js'][453] = 0; + _$jscoverage['plugins/table.cmds.js'][454] = 0; + _$jscoverage['plugins/table.cmds.js'][455] = 0; + _$jscoverage['plugins/table.cmds.js'][456] = 0; + _$jscoverage['plugins/table.cmds.js'][457] = 0; + _$jscoverage['plugins/table.cmds.js'][460] = 0; + _$jscoverage['plugins/table.cmds.js'][461] = 0; + _$jscoverage['plugins/table.cmds.js'][463] = 0; + _$jscoverage['plugins/table.cmds.js'][464] = 0; + _$jscoverage['plugins/table.cmds.js'][466] = 0; + _$jscoverage['plugins/table.cmds.js'][467] = 0; + _$jscoverage['plugins/table.cmds.js'][474] = 0; + _$jscoverage['plugins/table.cmds.js'][476] = 0; + _$jscoverage['plugins/table.cmds.js'][478] = 0; + _$jscoverage['plugins/table.cmds.js'][479] = 0; + _$jscoverage['plugins/table.cmds.js'][480] = 0; + _$jscoverage['plugins/table.cmds.js'][481] = 0; + _$jscoverage['plugins/table.cmds.js'][484] = 0; + _$jscoverage['plugins/table.cmds.js'][486] = 0; + _$jscoverage['plugins/table.cmds.js'][488] = 0; + _$jscoverage['plugins/table.cmds.js'][489] = 0; + _$jscoverage['plugins/table.cmds.js'][492] = 0; + _$jscoverage['plugins/table.cmds.js'][494] = 0; + _$jscoverage['plugins/table.cmds.js'][496] = 0; + _$jscoverage['plugins/table.cmds.js'][497] = 0; + _$jscoverage['plugins/table.cmds.js'][498] = 0; + _$jscoverage['plugins/table.cmds.js'][499] = 0; + _$jscoverage['plugins/table.cmds.js'][502] = 0; + _$jscoverage['plugins/table.cmds.js'][504] = 0; + _$jscoverage['plugins/table.cmds.js'][506] = 0; + _$jscoverage['plugins/table.cmds.js'][507] = 0; + _$jscoverage['plugins/table.cmds.js'][510] = 0; + _$jscoverage['plugins/table.cmds.js'][512] = 0; + _$jscoverage['plugins/table.cmds.js'][514] = 0; + _$jscoverage['plugins/table.cmds.js'][515] = 0; + _$jscoverage['plugins/table.cmds.js'][516] = 0; + _$jscoverage['plugins/table.cmds.js'][517] = 0; + _$jscoverage['plugins/table.cmds.js'][520] = 0; + _$jscoverage['plugins/table.cmds.js'][522] = 0; + _$jscoverage['plugins/table.cmds.js'][524] = 0; + _$jscoverage['plugins/table.cmds.js'][525] = 0; + _$jscoverage['plugins/table.cmds.js'][530] = 0; + _$jscoverage['plugins/table.cmds.js'][533] = 0; + _$jscoverage['plugins/table.cmds.js'][536] = 0; + _$jscoverage['plugins/table.cmds.js'][538] = 0; + _$jscoverage['plugins/table.cmds.js'][539] = 0; + _$jscoverage['plugins/table.cmds.js'][540] = 0; + _$jscoverage['plugins/table.cmds.js'][542] = 0; + _$jscoverage['plugins/table.cmds.js'][543] = 0; + _$jscoverage['plugins/table.cmds.js'][544] = 0; + _$jscoverage['plugins/table.cmds.js'][546] = 0; + _$jscoverage['plugins/table.cmds.js'][553] = 0; + _$jscoverage['plugins/table.cmds.js'][555] = 0; + _$jscoverage['plugins/table.cmds.js'][556] = 0; + _$jscoverage['plugins/table.cmds.js'][557] = 0; + _$jscoverage['plugins/table.cmds.js'][560] = 0; + _$jscoverage['plugins/table.cmds.js'][563] = 0; + _$jscoverage['plugins/table.cmds.js'][564] = 0; + _$jscoverage['plugins/table.cmds.js'][568] = 0; + _$jscoverage['plugins/table.cmds.js'][569] = 0; + _$jscoverage['plugins/table.cmds.js'][570] = 0; + _$jscoverage['plugins/table.cmds.js'][572] = 0; + _$jscoverage['plugins/table.cmds.js'][575] = 0; + _$jscoverage['plugins/table.cmds.js'][576] = 0; + _$jscoverage['plugins/table.cmds.js'][577] = 0; + _$jscoverage['plugins/table.cmds.js'][578] = 0; + _$jscoverage['plugins/table.cmds.js'][579] = 0; + _$jscoverage['plugins/table.cmds.js'][582] = 0; + _$jscoverage['plugins/table.cmds.js'][583] = 0; + _$jscoverage['plugins/table.cmds.js'][586] = 0; + _$jscoverage['plugins/table.cmds.js'][587] = 0; + _$jscoverage['plugins/table.cmds.js'][588] = 0; + _$jscoverage['plugins/table.cmds.js'][590] = 0; + _$jscoverage['plugins/table.cmds.js'][592] = 0; + _$jscoverage['plugins/table.cmds.js'][593] = 0; + _$jscoverage['plugins/table.cmds.js'][594] = 0; + _$jscoverage['plugins/table.cmds.js'][599] = 0; + _$jscoverage['plugins/table.cmds.js'][600] = 0; + _$jscoverage['plugins/table.cmds.js'][605] = 0; + _$jscoverage['plugins/table.cmds.js'][607] = 0; + _$jscoverage['plugins/table.cmds.js'][608] = 0; + _$jscoverage['plugins/table.cmds.js'][609] = 0; + _$jscoverage['plugins/table.cmds.js'][610] = 0; + _$jscoverage['plugins/table.cmds.js'][613] = 0; + _$jscoverage['plugins/table.cmds.js'][616] = 0; + _$jscoverage['plugins/table.cmds.js'][617] = 0; + _$jscoverage['plugins/table.cmds.js'][622] = 0; + _$jscoverage['plugins/table.cmds.js'][623] = 0; + _$jscoverage['plugins/table.cmds.js'][627] = 0; + _$jscoverage['plugins/table.cmds.js'][628] = 0; + _$jscoverage['plugins/table.cmds.js'][630] = 0; + _$jscoverage['plugins/table.cmds.js'][631] = 0; + _$jscoverage['plugins/table.cmds.js'][634] = 0; + _$jscoverage['plugins/table.cmds.js'][635] = 0; + _$jscoverage['plugins/table.cmds.js'][637] = 0; + _$jscoverage['plugins/table.cmds.js'][641] = 0; + _$jscoverage['plugins/table.cmds.js'][642] = 0; + _$jscoverage['plugins/table.cmds.js'][643] = 0; + _$jscoverage['plugins/table.cmds.js'][645] = 0; + _$jscoverage['plugins/table.cmds.js'][648] = 0; + _$jscoverage['plugins/table.cmds.js'][649] = 0; + _$jscoverage['plugins/table.cmds.js'][651] = 0; + _$jscoverage['plugins/table.cmds.js'][653] = 0; + _$jscoverage['plugins/table.cmds.js'][656] = 0; + _$jscoverage['plugins/table.cmds.js'][657] = 0; + _$jscoverage['plugins/table.cmds.js'][658] = 0; + _$jscoverage['plugins/table.cmds.js'][659] = 0; + _$jscoverage['plugins/table.cmds.js'][660] = 0; + _$jscoverage['plugins/table.cmds.js'][665] = 0; + _$jscoverage['plugins/table.cmds.js'][666] = 0; + _$jscoverage['plugins/table.cmds.js'][672] = 0; + _$jscoverage['plugins/table.cmds.js'][674] = 0; + _$jscoverage['plugins/table.cmds.js'][677] = 0; + _$jscoverage['plugins/table.cmds.js'][680] = 0; + _$jscoverage['plugins/table.cmds.js'][681] = 0; + _$jscoverage['plugins/table.cmds.js'][683] = 0; + _$jscoverage['plugins/table.cmds.js'][684] = 0; + _$jscoverage['plugins/table.cmds.js'][686] = 0; + _$jscoverage['plugins/table.cmds.js'][687] = 0; + _$jscoverage['plugins/table.cmds.js'][689] = 0; + _$jscoverage['plugins/table.cmds.js'][691] = 0; + _$jscoverage['plugins/table.cmds.js'][692] = 0; + _$jscoverage['plugins/table.cmds.js'][702] = 0; + _$jscoverage['plugins/table.cmds.js'][704] = 0; + _$jscoverage['plugins/table.cmds.js'][705] = 0; + _$jscoverage['plugins/table.cmds.js'][708] = 0; + _$jscoverage['plugins/table.cmds.js'][710] = 0; + _$jscoverage['plugins/table.cmds.js'][715] = 0; + _$jscoverage['plugins/table.cmds.js'][717] = 0; + _$jscoverage['plugins/table.cmds.js'][719] = 0; + _$jscoverage['plugins/table.cmds.js'][726] = 0; + _$jscoverage['plugins/table.cmds.js'][728] = 0; + _$jscoverage['plugins/table.cmds.js'][729] = 0; + _$jscoverage['plugins/table.cmds.js'][731] = 0; + _$jscoverage['plugins/table.cmds.js'][734] = 0; + _$jscoverage['plugins/table.cmds.js'][738] = 0; + _$jscoverage['plugins/table.cmds.js'][739] = 0; + _$jscoverage['plugins/table.cmds.js'][745] = 0; + _$jscoverage['plugins/table.cmds.js'][747] = 0; + _$jscoverage['plugins/table.cmds.js'][750] = 0; + _$jscoverage['plugins/table.cmds.js'][752] = 0; + _$jscoverage['plugins/table.cmds.js'][753] = 0; + _$jscoverage['plugins/table.cmds.js'][757] = 0; + _$jscoverage['plugins/table.cmds.js'][758] = 0; + _$jscoverage['plugins/table.cmds.js'][764] = 0; + _$jscoverage['plugins/table.cmds.js'][766] = 0; + _$jscoverage['plugins/table.cmds.js'][769] = 0; + _$jscoverage['plugins/table.cmds.js'][772] = 0; + _$jscoverage['plugins/table.cmds.js'][773] = 0; + _$jscoverage['plugins/table.cmds.js'][775] = 0; + _$jscoverage['plugins/table.cmds.js'][776] = 0; + _$jscoverage['plugins/table.cmds.js'][779] = 0; + _$jscoverage['plugins/table.cmds.js'][780] = 0; + _$jscoverage['plugins/table.cmds.js'][785] = 0; + _$jscoverage['plugins/table.cmds.js'][787] = 0; + _$jscoverage['plugins/table.cmds.js'][789] = 0; + _$jscoverage['plugins/table.cmds.js'][790] = 0; + _$jscoverage['plugins/table.cmds.js'][792] = 0; + _$jscoverage['plugins/table.cmds.js'][793] = 0; + _$jscoverage['plugins/table.cmds.js'][795] = 0; + _$jscoverage['plugins/table.cmds.js'][798] = 0; + _$jscoverage['plugins/table.cmds.js'][805] = 0; + _$jscoverage['plugins/table.cmds.js'][806] = 0; + _$jscoverage['plugins/table.cmds.js'][810] = 0; + _$jscoverage['plugins/table.cmds.js'][812] = 0; + _$jscoverage['plugins/table.cmds.js'][815] = 0; + _$jscoverage['plugins/table.cmds.js'][816] = 0; + _$jscoverage['plugins/table.cmds.js'][819] = 0; + _$jscoverage['plugins/table.cmds.js'][821] = 0; + _$jscoverage['plugins/table.cmds.js'][824] = 0; + _$jscoverage['plugins/table.cmds.js'][825] = 0; + _$jscoverage['plugins/table.cmds.js'][826] = 0; + _$jscoverage['plugins/table.cmds.js'][827] = 0; + _$jscoverage['plugins/table.cmds.js'][831] = 0; + _$jscoverage['plugins/table.cmds.js'][833] = 0; + _$jscoverage['plugins/table.cmds.js'][834] = 0; + _$jscoverage['plugins/table.cmds.js'][835] = 0; + _$jscoverage['plugins/table.cmds.js'][836] = 0; + _$jscoverage['plugins/table.cmds.js'][838] = 0; + _$jscoverage['plugins/table.cmds.js'][841] = 0; + _$jscoverage['plugins/table.cmds.js'][843] = 0; + _$jscoverage['plugins/table.cmds.js'][847] = 0; + _$jscoverage['plugins/table.cmds.js'][849] = 0; + _$jscoverage['plugins/table.cmds.js'][850] = 0; + _$jscoverage['plugins/table.cmds.js'][851] = 0; + _$jscoverage['plugins/table.cmds.js'][852] = 0; + _$jscoverage['plugins/table.cmds.js'][855] = 0; + _$jscoverage['plugins/table.cmds.js'][857] = 0; + _$jscoverage['plugins/table.cmds.js'][861] = 0; + _$jscoverage['plugins/table.cmds.js'][862] = 0; + _$jscoverage['plugins/table.cmds.js'][863] = 0; + _$jscoverage['plugins/table.cmds.js'][864] = 0; + _$jscoverage['plugins/table.cmds.js'][866] = 0; + _$jscoverage['plugins/table.cmds.js'][867] = 0; + _$jscoverage['plugins/table.cmds.js'][872] = 0; + _$jscoverage['plugins/table.cmds.js'][873] = 0; + _$jscoverage['plugins/table.cmds.js'][874] = 0; + _$jscoverage['plugins/table.cmds.js'][875] = 0; + _$jscoverage['plugins/table.cmds.js'][877] = 0; + _$jscoverage['plugins/table.cmds.js'][878] = 0; + _$jscoverage['plugins/table.cmds.js'][879] = 0; + _$jscoverage['plugins/table.cmds.js'][880] = 0; + _$jscoverage['plugins/table.cmds.js'][885] = 0; + _$jscoverage['plugins/table.cmds.js'][886] = 0; + _$jscoverage['plugins/table.cmds.js'][887] = 0; + _$jscoverage['plugins/table.cmds.js'][890] = 0; + _$jscoverage['plugins/table.cmds.js'][891] = 0; + _$jscoverage['plugins/table.cmds.js'][892] = 0; + _$jscoverage['plugins/table.cmds.js'][893] = 0; + _$jscoverage['plugins/table.cmds.js'][894] = 0; + _$jscoverage['plugins/table.cmds.js'][896] = 0; +} +_$jscoverage['plugins/table.cmds.js'].source = ["/*"," * Created with JetBrains PhpStorm."," * User: taoqili"," * Date: 13-2-20"," * Time: 下午6:25"," * To change this template use File | Settings | File Templates."," */",";","(function () {"," var UT = UE.UETable,"," getTableItemsByRange = function (editor) {"," return UT.getTableItemsByRange(editor);"," },"," getUETableBySelected = function (editor) {"," return UT.getUETableBySelected(editor)"," },"," getDefaultValue = function (editor, table) {"," return UT.getDefaultValue(editor, table);"," },"," getUETable = function (tdOrTable) {"," return UT.getUETable(tdOrTable);"," };","",""," UE.commands['inserttable'] = {"," queryCommandState: function () {"," return getTableItemsByRange(this).table ? -1 : 0;"," },"," execCommand: function (cmd, opt) {"," function createTable(opt, tdWidth) {"," var html = [],"," rowsNum = opt.numRows,"," colsNum = opt.numCols;"," for (var r = 0; r < rowsNum; r++) {"," html.push('<tr>');"," for (var c = 0; c < colsNum; c++) {"," html.push('<td width=\"' + tdWidth + '\" vAlign=\"' + opt.tdvalign + '\" >' + (browser.ie ? domUtils.fillChar : '<br/>') + '</td>')"," }"," html.push('</tr>')"," }"," //禁止指定table-width"," return '<table><tbody>' + html.join('') + '</tbody></table>'"," }",""," if (!opt) {"," opt = utils.extend({}, {"," numCols: this.options.defaultCols,"," numRows: this.options.defaultRows,"," tdvalign: this.options.tdvalign"," })"," }"," var me = this;"," var range = this.selection.getRange(),"," start = range.startContainer,"," firstParentBlock = domUtils.findParent(start, function (node) {"," return domUtils.isBlockElm(node);"," }, true) || me.body;",""," var defaultValue = getDefaultValue(me),"," tableWidth = firstParentBlock.offsetWidth,"," tdWidth = Math.floor(tableWidth / opt.numCols - defaultValue.tdPadding * 2 - defaultValue.tdBorder);",""," //todo其他属性"," !opt.tdvalign && (opt.tdvalign = me.options.tdvalign);"," me.execCommand(\"inserthtml\", createTable(opt, tdWidth));"," }"," };",""," UE.commands['insertparagraphbeforetable'] = {"," queryCommandState: function () {"," return getTableItemsByRange(this).cell ? 0 : -1;"," },"," execCommand: function () {"," var table = getTableItemsByRange(this).table;"," if (table) {"," var p = this.document.createElement(\"p\");"," p.innerHTML = browser.ie ? '&nbsp;' : '<br />';"," table.parentNode.insertBefore(p, table);"," this.selection.getRange().setStart(p, 0).setCursor();"," }"," }"," };",""," UE.commands['deletetable'] = {"," queryCommandState: function () {"," var rng = this.selection.getRange();"," return domUtils.findParentByTagName(rng.startContainer, 'table', true) ? 0 : -1;"," },"," execCommand: function (cmd, table) {"," var rng = this.selection.getRange();"," table = table || domUtils.findParentByTagName(rng.startContainer, 'table', true);"," if (table) {"," var next = table.nextSibling;"," if (!next) {"," next = domUtils.createElement(this.document, 'p', {"," 'innerHTML': browser.ie ? domUtils.fillChar : '<br/>'"," });"," table.parentNode.insertBefore(next, table);"," }"," domUtils.remove(table);"," rng = this.selection.getRange();"," if (next.nodeType == 3) {"," rng.setStartBefore(next)"," } else {"," rng.setStart(next, 0)"," }"," rng.setCursor(false, true)"," this.fireEvent(\"tablehasdeleted\")",""," }",""," }"," };"," UE.commands['cellalign'] = {"," queryCommandState: function () {"," return getSelectedArr(this).length ? 0 : -1"," },"," execCommand: function (cmd, align) {"," var selectedTds = getSelectedArr(this);"," if (selectedTds.length) {"," for (var i = 0, ci; ci = selectedTds[i++];) {"," ci.setAttribute('align', align);"," }"," }"," }"," };"," UE.commands['cellvalign'] = {"," queryCommandState: function () {"," return getSelectedArr(this).length ? 0 : -1;"," },"," execCommand: function (cmd, valign) {"," var selectedTds = getSelectedArr(this);"," if (selectedTds.length) {"," for (var i = 0, ci; ci = selectedTds[i++];) {"," ci.setAttribute('vAlign', valign);"," }"," }"," }"," };"," UE.commands['insertcaption'] = {"," queryCommandState: function () {"," var table = getTableItemsByRange(this).table;"," if (table) {"," return table.getElementsByTagName('caption').length == 0 ? 1 : -1;"," }"," return -1;"," },"," execCommand: function () {"," var table = getTableItemsByRange(this).table;"," if (table) {"," var caption = this.document.createElement('caption');"," caption.innerHTML = browser.ie ? domUtils.fillChar : '<br/>';"," table.insertBefore(caption, table.firstChild);"," var range = this.selection.getRange();"," range.setStart(caption, 0).setCursor();"," }",""," }"," };"," UE.commands['deletecaption'] = {"," queryCommandState: function () {"," var rng = this.selection.getRange(),"," table = domUtils.findParentByTagName(rng.startContainer, 'table');"," if (table) {"," return table.getElementsByTagName('caption').length == 0 ? -1 : 1;"," }"," return -1;"," },"," execCommand: function () {"," var rng = this.selection.getRange(),"," table = domUtils.findParentByTagName(rng.startContainer, 'table');"," if (table) {"," domUtils.remove(table.getElementsByTagName('caption')[0]);"," var range = this.selection.getRange();"," range.setStart(table.rows[0].cells[0], 0).setCursor();"," }",""," }"," };"," UE.commands['inserttitle'] = {"," queryCommandState: function () {"," var table = getTableItemsByRange(this).table;"," if (table) {"," var firstRow = table.rows[0];"," return firstRow.getElementsByTagName('th').length == 0 ? 0 : -1"," }"," return -1;"," },"," execCommand: function () {"," var table = getTableItemsByRange(this).table;"," if (table) {"," getUETable(table).insertRow(0, 'th');"," }"," var th = table.getElementsByTagName('th')[0];"," this.selection.getRange().setStart(th, 0).setCursor(false, true);"," }"," };"," UE.commands['deletetitle'] = {"," queryCommandState: function () {"," var table = getTableItemsByRange(this).table;"," if (table) {"," var firstRow = table.rows[0];"," return firstRow.getElementsByTagName('th').length ? 0 : -1"," }"," return -1;"," },"," execCommand: function () {"," var table = getTableItemsByRange(this).table;"," if (table) {"," domUtils.remove(table.rows[0])"," }"," var td = table.getElementsByTagName('td')[0];"," this.selection.getRange().setStart(td, 0).setCursor(false, true);"," }"," };",""," UE.commands[\"mergeright\"] = {"," queryCommandState: function (cmd) {"," var tableItems = getTableItemsByRange(this);"," if (!tableItems.cell) return -1;"," var ut = getUETable(tableItems.table);"," if (ut.selectedTds.length) return -1;"," var cellInfo = ut.getCellInfo(tableItems.cell),"," rightColIndex = cellInfo.colIndex + cellInfo.colSpan;"," if (rightColIndex >= ut.colsNum) return -1;"," var rightCellInfo = ut.indexTable[cellInfo.rowIndex][rightColIndex];"," return (rightCellInfo.rowIndex == cellInfo.rowIndex"," && rightCellInfo.rowSpan == cellInfo.rowSpan) ? 0 : -1;"," },"," execCommand: function (cmd) {"," var rng = this.selection.getRange(),"," bk = rng.createBookmark(true);"," var cell = getTableItemsByRange(this).cell,"," ut = getUETable(cell);"," ut.mergeRight(cell);"," rng.moveToBookmark(bk).select();"," }"," };"," UE.commands[\"mergedown\"] = {"," queryCommandState: function (cmd) {"," var tableItems = getTableItemsByRange(this),"," cell = tableItems.cell;"," if (!cell || cell.tagName == \"TH\") return -1;"," var ut = getUETable(tableItems.table);"," if (ut.selectedTds.length)return -1;"," var cellInfo = ut.getCellInfo(tableItems.cell),"," downRowIndex = cellInfo.rowIndex + cellInfo.rowSpan;"," // 如果处于最下边则不能f向右合并"," if (downRowIndex >= ut.rowsNum) return -1;"," var downCellInfo = ut.indexTable[downRowIndex][cellInfo.colIndex];"," // 当且仅当两个Cell的开始列号和结束列号一致时能进行合并"," return (downCellInfo.colIndex == cellInfo.colIndex"," && downCellInfo.colSpan == cellInfo.colSpan) && tableItems.cell.tagName !== 'TH' ? 0 : -1;"," },"," execCommand: function () {"," var rng = this.selection.getRange(),"," bk = rng.createBookmark(true);"," var cell = getTableItemsByRange(this).cell,"," ut = getUETable(cell);"," ut.mergeDown(cell);"," rng.moveToBookmark(bk).select();"," }"," };"," UE.commands[\"mergecells\"] = {"," queryCommandState: function () {"," return getUETableBySelected(this) ? 0 : -1;"," },"," execCommand: function () {"," var ut = getUETableBySelected(this);"," if (ut && ut.selectedTds.length) {"," var cell = ut.selectedTds[0];"," ut.mergeRange();"," var rng = this.selection.getRange();"," if (domUtils.isEmptyBlock(cell)) {"," rng.setStart(cell, 0).collapse(true)"," } else {"," rng.selectNodeContents(cell)"," }"," rng.select();"," }","",""," }"," };"," UE.commands[\"insertrow\"] = {"," queryCommandState: function () {"," var tableItems = getTableItemsByRange(this),"," cell = tableItems.cell;"," return cell && cell.tagName == \"TD\" && getUETable(tableItems.table).rowsNum < this.options.maxRowNum ? 0 : -1;"," },"," execCommand: function () {"," var rng = this.selection.getRange(),"," bk = rng.createBookmark(true);"," var tableItems = getTableItemsByRange(this),"," cell = tableItems.cell,"," table = tableItems.table,"," ut = getUETable(table),"," cellInfo = ut.getCellInfo(cell);"," //ut.insertRow(!ut.selectedTds.length ? cellInfo.rowIndex:ut.cellsRange.beginRowIndex,'');"," if (!ut.selectedTds.length) {"," ut.insertRow(cellInfo.rowIndex, cell);"," } else {"," var range = ut.cellsRange;"," for (var i = 0, len = range.endRowIndex - range.beginRowIndex + 1; i < len; i++) {"," ut.insertRow(range.beginRowIndex, cell);"," }"," }"," rng.moveToBookmark(bk).select();"," if (table.getAttribute(\"interlaced\") === \"enabled\")this.fireEvent(\"interlacetable\", table);"," }"," };"," //后插入行"," UE.commands[\"insertrownext\"] = {"," queryCommandState: function () {"," var tableItems = getTableItemsByRange(this),"," cell = tableItems.cell;"," return cell && (cell.tagName == \"TD\") && getUETable(tableItems.table).rowsNum < this.options.maxRowNum ? 0 : -1;"," },"," execCommand: function () {"," var rng = this.selection.getRange(),"," bk = rng.createBookmark(true);"," var tableItems = getTableItemsByRange(this),"," cell = tableItems.cell,"," table = tableItems.table,"," ut = getUETable(table),"," cellInfo = ut.getCellInfo(cell);"," //ut.insertRow(!ut.selectedTds.length? cellInfo.rowIndex + cellInfo.rowSpan : ut.cellsRange.endRowIndex + 1,'');"," if (!ut.selectedTds.length) {"," ut.insertRow(cellInfo.rowIndex + cellInfo.rowSpan, cell);"," } else {"," var range = ut.cellsRange;"," for (var i = 0, len = range.endRowIndex - range.beginRowIndex + 1; i < len; i++) {"," ut.insertRow(range.endRowIndex + 1, cell);"," }"," }"," rng.moveToBookmark(bk).select();"," if (table.getAttribute(\"interlaced\") === \"enabled\")this.fireEvent(\"interlacetable\", table);"," }"," };"," UE.commands[\"deleterow\"] = {"," queryCommandState: function () {"," var tableItems = getTableItemsByRange(this);"," if (!tableItems.cell) {"," return -1;"," }"," },"," execCommand: function () {"," var cell = getTableItemsByRange(this).cell,"," ut = getUETable(cell),"," cellsRange = ut.cellsRange,"," cellInfo = ut.getCellInfo(cell),"," preCell = ut.getVSideCell(cell),"," nextCell = ut.getVSideCell(cell, true),"," rng = this.selection.getRange();"," if (utils.isEmptyObject(cellsRange)) {"," ut.deleteRow(cellInfo.rowIndex);"," } else {"," for (var i = cellsRange.beginRowIndex; i < cellsRange.endRowIndex + 1; i++) {"," ut.deleteRow(cellsRange.beginRowIndex);"," }"," }"," var table = ut.table;"," if (!table.getElementsByTagName('td').length) {"," var nextSibling = table.nextSibling;"," domUtils.remove(table);"," if (nextSibling) {"," rng.setStart(nextSibling, 0).setCursor(false, true);"," }"," } else {"," if (cellInfo.rowSpan == 1 || cellInfo.rowSpan == cellsRange.endRowIndex - cellsRange.beginRowIndex + 1) {"," if (nextCell || preCell) rng.selectNodeContents(nextCell || preCell).setCursor(false, true);"," } else {"," var newCell = ut.getCell(cellInfo.rowIndex, ut.indexTable[cellInfo.rowIndex][cellInfo.colIndex].cellIndex);"," if (newCell) rng.selectNodeContents(newCell).setCursor(false, true);"," }"," }"," if (table.getAttribute(\"interlaced\") === \"enabled\")this.fireEvent(\"interlacetable\", table);"," }"," };"," UE.commands[\"insertcol\"] = {"," queryCommandState: function (cmd) {"," var tableItems = getTableItemsByRange(this),"," cell = tableItems.cell;"," return cell && (cell.tagName == \"TD\" || cell.tagName == 'TH') && getUETable(tableItems.table).colsNum < this.options.maxColNum ? 0 : -1;"," },"," execCommand: function (cmd) {"," var rng = this.selection.getRange(),"," bk = rng.createBookmark(true);"," if (this.queryCommandState(cmd) == -1)return;"," var cell = getTableItemsByRange(this).cell,"," ut = getUETable(cell),"," cellInfo = ut.getCellInfo(cell);",""," //ut.insertCol(!ut.selectedTds.length ? cellInfo.colIndex:ut.cellsRange.beginColIndex);"," if (!ut.selectedTds.length) {"," ut.insertCol(cellInfo.colIndex, cell);"," } else {"," var range = ut.cellsRange;"," for (var i = 0, len = range.endColIndex - range.beginColIndex + 1; i < len; i++) {"," ut.insertCol(range.beginColIndex, cell);"," }"," }"," rng.moveToBookmark(bk).select(true);"," }"," };"," UE.commands[\"insertcolnext\"] = {"," queryCommandState: function () {"," var tableItems = getTableItemsByRange(this),"," cell = tableItems.cell;"," return cell && getUETable(tableItems.table).colsNum < this.options.maxColNum ? 0 : -1;"," },"," execCommand: function () {"," var rng = this.selection.getRange(),"," bk = rng.createBookmark(true);"," var cell = getTableItemsByRange(this).cell,"," ut = getUETable(cell),"," cellInfo = ut.getCellInfo(cell);"," //ut.insertCol(!ut.selectedTds.length ? cellInfo.colIndex + cellInfo.colSpan:ut.cellsRange.endColIndex +1);"," if (!ut.selectedTds.length) {"," ut.insertCol(cellInfo.colIndex + cellInfo.colSpan, cell);"," } else {"," var range = ut.cellsRange;"," for (var i = 0, len = range.endColIndex - range.beginColIndex + 1; i < len; i++) {"," ut.insertCol(range.endColIndex + 1, cell);"," }"," }"," rng.moveToBookmark(bk).select();"," }"," };",""," UE.commands[\"deletecol\"] = {"," queryCommandState: function () {"," var tableItems = getTableItemsByRange(this);"," if (!tableItems.cell) return -1;"," },"," execCommand: function () {"," var cell = getTableItemsByRange(this).cell,"," ut = getUETable(cell),"," range = ut.cellsRange,"," cellInfo = ut.getCellInfo(cell),"," preCell = ut.getHSideCell(cell),"," nextCell = ut.getHSideCell(cell, true);"," if (utils.isEmptyObject(range)) {"," ut.deleteCol(cellInfo.colIndex);"," } else {"," for (var i = range.beginColIndex; i < range.endColIndex + 1; i++) {"," ut.deleteCol(range.beginColIndex);"," }"," }"," var table = ut.table,"," rng = this.selection.getRange();",""," if (!table.getElementsByTagName('td').length) {"," var nextSibling = table.nextSibling;"," domUtils.remove(table);"," if (nextSibling) {"," rng.setStart(nextSibling, 0).setCursor(false, true);"," }"," } else {"," if (domUtils.inDoc(cell, this.document)) {"," rng.setStart(cell, 0).setCursor(false, true);"," } else {"," if (nextCell && domUtils.inDoc(nextCell, this.document)) {"," rng.selectNodeContents(nextCell).setCursor(false, true);"," } else {"," if (preCell && domUtils.inDoc(preCell, this.document)) {"," rng.selectNodeContents(preCell).setCursor(true, true);"," }"," }"," }"," }"," }"," };"," UE.commands[\"splittocells\"] = {"," queryCommandState: function () {"," var tableItems = getTableItemsByRange(this),"," cell = tableItems.cell;"," if (!cell) return -1;"," var ut = getUETable(tableItems.table);"," if (ut.selectedTds.length > 0) return -1;"," return cell && (cell.colSpan > 1 || cell.rowSpan > 1) ? 0 : -1;"," },"," execCommand: function () {"," var rng = this.selection.getRange(),"," bk = rng.createBookmark(true);"," var cell = getTableItemsByRange(this).cell,"," ut = getUETable(cell);"," ut.splitToCells(cell);"," rng.moveToBookmark(bk).select();"," }"," };"," UE.commands[\"splittorows\"] = {"," queryCommandState: function () {"," var tableItems = getTableItemsByRange(this),"," cell = tableItems.cell;"," if (!cell) return -1;"," var ut = getUETable(tableItems.table);"," if (ut.selectedTds.length > 0) return -1;"," return cell && cell.rowSpan > 1 ? 0 : -1;"," },"," execCommand: function () {"," var rng = this.selection.getRange(),"," bk = rng.createBookmark(true);"," var cell = getTableItemsByRange(this).cell,"," ut = getUETable(cell);"," ut.splitToRows(cell);"," rng.moveToBookmark(bk).select();"," }"," };"," UE.commands[\"splittocols\"] = {"," queryCommandState: function () {"," var tableItems = getTableItemsByRange(this),"," cell = tableItems.cell;"," if (!cell) return -1;"," var ut = getUETable(tableItems.table);"," if (ut.selectedTds.length > 0) return -1;"," return cell && cell.colSpan > 1 ? 0 : -1;"," },"," execCommand: function () {"," var rng = this.selection.getRange(),"," bk = rng.createBookmark(true);"," var cell = getTableItemsByRange(this).cell,"," ut = getUETable(cell);"," ut.splitToCols(cell);"," rng.moveToBookmark(bk).select();",""," }"," };",""," UE.commands[\"adaptbytext\"] ="," UE.commands[\"adaptbywindow\"] = {"," queryCommandState: function () {"," return getTableItemsByRange(this).table ? 0 : -1"," },"," execCommand: function (cmd) {"," var tableItems = getTableItemsByRange(this),"," table = tableItems.table;"," if (table) {"," if (cmd == 'adaptbywindow') {"," resetTdWidth(table, this);"," } else {"," var cells = domUtils.getElementsByTagName(table, \"td th\");"," utils.each(cells, function (cell) {"," cell.removeAttribute(\"width\");"," });"," table.removeAttribute(\"width\");"," }"," }"," }"," };",""," //平均分配各列"," UE.commands['averagedistributecol'] = {"," queryCommandState: function () {"," var ut = getUETableBySelected(this);"," if (!ut) return -1;"," return ut.isFullRow() || ut.isFullCol() ? 0 : -1;"," },"," execCommand: function (cmd) {"," var me = this,"," ut = getUETableBySelected(me);",""," function getAverageWidth() {"," var tb = ut.table,"," averageWidth, sumWidth = 0, colsNum = 0,"," tbAttr = getDefaultValue(me, tb);",""," if (ut.isFullRow()) {"," sumWidth = tb.offsetWidth;"," colsNum = ut.colsNum;"," } else {"," var begin = ut.cellsRange.beginColIndex,"," end = ut.cellsRange.endColIndex,"," node;"," for (var i = begin; i <= end;) {"," node = ut.selectedTds[i];"," sumWidth += node.offsetWidth;"," i += node.colSpan;"," colsNum += 1;"," }"," }"," averageWidth = Math.ceil(sumWidth / colsNum) - tbAttr.tdBorder * 2 - tbAttr.tdPadding * 2;"," return averageWidth;"," }",""," function setAverageWidth(averageWidth) {"," utils.each(domUtils.getElementsByTagName(ut.table, \"th\"), function (node) {"," node.setAttribute(\"width\", \"\");"," });"," var cells = ut.isFullRow() ? domUtils.getElementsByTagName(ut.table, \"td\") : ut.selectedTds;",""," utils.each(cells, function (node) {"," if (node.colSpan == 1) {"," node.setAttribute(\"width\", averageWidth);"," }"," });"," }",""," if (ut && ut.selectedTds.length) {"," setAverageWidth(getAverageWidth());"," }"," }"," };"," //平均分配各行"," UE.commands['averagedistributerow'] = {"," queryCommandState: function () {"," var ut = getUETableBySelected(this);"," if (!ut) return -1;"," if (ut.selectedTds && /th/ig.test(ut.selectedTds[0].tagName)) return -1;"," return ut.isFullRow() || ut.isFullCol() ? 0 : -1;"," },"," execCommand: function (cmd) {"," var me = this,"," ut = getUETableBySelected(me);",""," function getAverageHeight() {"," var averageHeight, rowNum, sumHeight = 0,"," tb = ut.table,"," tbAttr = getDefaultValue(me, tb),"," tdpadding = parseInt(domUtils.getComputedStyle(tb.getElementsByTagName('td')[0], \"padding-top\"));",""," if (ut.isFullCol()) {"," var captionArr = domUtils.getElementsByTagName(tb, \"caption\"),"," thArr = domUtils.getElementsByTagName(tb, \"th\"),"," captionHeight, thHeight;",""," if (captionArr.length > 0) {"," captionHeight = captionArr[0].offsetHeight;"," }"," if (thArr.length > 0) {"," thHeight = thArr[0].offsetHeight;"," }",""," sumHeight = tb.offsetHeight - (captionHeight || 0) - (thHeight || 0);"," rowNum = thArr.length == 0 ? ut.rowsNum : (ut.rowsNum - 1);"," } else {"," var begin = ut.cellsRange.beginRowIndex,"," end = ut.cellsRange.endRowIndex,"," count = 0,"," trs = domUtils.getElementsByTagName(tb, \"tr\");"," for (var i = begin; i <= end; i++) {"," sumHeight += trs[i].offsetHeight;"," count += 1;"," }"," rowNum = count;"," }"," //ie8下是混杂模式"," if (browser.ie && browser.version < 9) {"," averageHeight = Math.ceil(sumHeight / rowNum);"," } else {"," averageHeight = Math.ceil(sumHeight / rowNum) - tbAttr.tdBorder * 2 - tdpadding * 2;"," }"," return averageHeight;"," }",""," function setAverageHeight(averageHeight) {"," var cells = ut.isFullCol() ? domUtils.getElementsByTagName(ut.table, \"td\") : ut.selectedTds;"," utils.each(cells, function (node) {"," if (node.rowSpan == 1) {"," node.setAttribute(\"height\", averageHeight);"," }"," });"," }",""," if (ut && ut.selectedTds.length) {"," setAverageHeight(getAverageHeight());"," }"," }"," };",""," //单元格对齐方式"," UE.commands['cellalignment'] = {"," queryCommandState: function () {"," return getTableItemsByRange(this).table ? 0 : -1"," },"," execCommand: function (cmd, data) {"," var me = this,"," ut = getUETableBySelected(me);",""," if (!ut) {"," var start = me.selection.getStart(),"," cell = start && domUtils.findParentByTagName(start, [\"td\", \"th\", \"caption\"], true);"," if (!/caption/ig.test(cell.tagName)) {"," domUtils.setAttributes(cell, data);"," } else {"," cell.style.textAlign = data.align;"," cell.style.verticalAlign = data.vAlign;"," }"," me.selection.getRange().setCursor(true);"," } else {"," utils.each(ut.selectedTds, function (cell) {"," domUtils.setAttributes(cell, data);"," });"," }"," },"," /*"," * 查询当前点击的单元格的对齐状态, 如果当前已经选择了多个单元格, 则会返回所有单元格经过统一协调过后的状态"," * @see UE.UETable.getTableCellAlignState"," */"," queryCommandValue: function (cmd) {",""," var activeMenuCell = getTableItemsByRange( this).cell;",""," if( !activeMenuCell ) {"," activeMenuCell = getSelectedArr(this)[0];"," }",""," if (!activeMenuCell) {",""," return null;",""," } else {",""," //获取同时选中的其他单元格"," var cells = UE.UETable.getUETable(activeMenuCell).selectedTds;",""," !cells.length && ( cells = activeMenuCell );",""," return UE.UETable.getTableCellAlignState(cells);",""," }",""," }"," };"," //表格对齐方式"," UE.commands['tablealignment'] = {"," queryCommandState: function () {"," if (browser.ie && browser.version < 8) {"," return -1;"," }"," return getTableItemsByRange(this).table ? 0 : -1"," },"," execCommand: function (cmd, value) {"," var me = this,"," start = me.selection.getStart(),"," table = start && domUtils.findParentByTagName(start, [\"table\"], true);",""," if (table) {"," table.setAttribute(\"align\",value);"," }"," }"," };",""," //表格属性"," UE.commands['edittable'] = {"," queryCommandState: function () {"," return getTableItemsByRange(this).table ? 0 : -1"," },"," execCommand: function (cmd, color) {"," var rng = this.selection.getRange(),"," table = domUtils.findParentByTagName(rng.startContainer, 'table');"," if (table) {"," var arr = domUtils.getElementsByTagName(table, \"td\").concat("," domUtils.getElementsByTagName(table, \"th\"),"," domUtils.getElementsByTagName(table, \"caption\")"," );"," utils.each(arr, function (node) {"," node.style.borderColor = color;"," });"," }"," }"," };"," //单元格属性"," UE.commands['edittd'] = {"," queryCommandState: function () {"," return getTableItemsByRange(this).table ? 0 : -1"," },"," execCommand: function (cmd, bkColor) {"," var me = this,"," ut = getUETableBySelected(me);",""," if (!ut) {"," var start = me.selection.getStart(),"," cell = start && domUtils.findParentByTagName(start, [\"td\", \"th\", \"caption\"], true);"," if (cell) {"," cell.style.backgroundColor = bkColor;"," }"," } else {"," utils.each(ut.selectedTds, function (cell) {"," cell.style.backgroundColor = bkColor;"," });"," }"," }"," };"," UE.commands['sorttable'] = {"," queryCommandState: function () {"," var me = this,"," tableItems = getTableItemsByRange(me);"," if (!tableItems.cell) return -1;"," var table = tableItems.table,"," cells = table.getElementsByTagName(\"td\");"," for (var i = 0, cell; cell = cells[i++];) {"," if (cell.rowSpan != 1 || cell.colSpan != 1) return -1;"," }"," return 0;"," },"," execCommand: function (cmd, fn) {"," var me = this,"," range = me.selection.getRange(),"," bk = range.createBookmark(true),"," tableItems = getTableItemsByRange(me),"," cell = tableItems.cell,"," ut = getUETable(tableItems.table),"," cellInfo = ut.getCellInfo(cell);"," ut.sortTable(cellInfo.cellIndex, fn);"," range.moveToBookmark(bk).select();"," }"," };",""," UE.commands[\"enablesort\"] = UE.commands[\"disablesort\"] = {"," queryCommandState: function () {"," return getTableItemsByRange(this).table ? 0 : -1;"," },"," execCommand: function (cmd) {"," var table = getTableItemsByRange(this).table;"," table.setAttribute(\"data-sort\", cmd == \"enablesort\" ? \"sortEnabled\" : \"sortDisabled\");"," }"," };"," UE.commands[\"settablebackground\"] = {"," queryCommandState: function () {"," return getSelectedArr(this).length > 1 ? 0 : -1;"," },"," execCommand: function (cmd, value) {"," var table, cells, ut;"," cells = getSelectedArr(this);"," ut = getUETable(cells[0]);"," ut.setBackground(cells, value);"," }"," };",""," UE.commands[\"cleartablebackground\"] = {"," queryCommandState: function () {"," var cells = getSelectedArr(this);"," if (!cells.length)return -1;"," for (var i = 0, cell; cell = cells[i++];) {"," if (cell.style.backgroundColor !== \"\") return 0;"," }"," return -1;"," },"," execCommand: function () {"," var cells = getSelectedArr(this),"," ut = getUETable(cells[0]);"," ut.removeBackground(cells);"," }"," };",""," UE.commands[\"interlacetable\"] = UE.commands[\"uninterlacetable\"] = {"," queryCommandState: function (cmd) {"," var table = getTableItemsByRange(this).table;"," if (!table) return -1;"," var interlaced = table.getAttribute(\"interlaced\");"," if (cmd == \"interlacetable\") {"," //TODO 待定"," //是否需要待定,如果设置,则命令只能单次执行成功,但反射具备toggle效果;否则可以覆盖前次命令,但反射将不存在toggle效果"," return (interlaced === \"enabled\") ? -1 : 0;"," } else {"," return (!interlaced || interlaced === \"disabled\") ? -1 : 0;"," }"," },"," execCommand: function (cmd, classList) {"," var table = getTableItemsByRange(this).table;"," if (cmd == \"interlacetable\") {"," table.setAttribute(\"interlaced\", \"enabled\");"," this.fireEvent(\"interlacetable\", table, classList);"," } else {"," table.setAttribute(\"interlaced\", \"disabled\");"," this.fireEvent(\"uninterlacetable\", table);"," }"," }"," };",""," function resetTdWidth(table, editor) {"," var tds = table.getElementsByTagName(\"td\");"," utils.each(tds, function (td) {"," td.removeAttribute(\"width\");"," });"," table.setAttribute('width', getTableWidth(editor, true, getDefaultValue(editor, table)));"," setTimeout(function () {"," utils.each(tds, function (td) {"," (td.colSpan == 1) && td.setAttribute(\"width\", td.offsetWidth + \"\");"," })"," }, 0);"," }",""," function getTableWidth(editor, needIEHack, defaultValue) {"," var body = editor.body;"," return body.offsetWidth - (needIEHack ? parseInt(domUtils.getComputedStyle(body, 'margin-left'), 10) * 2 : 0) - defaultValue.tableBorder * 2 - (editor.options.offsetWidth || 0);"," }",""," function getSelectedArr(editor) {"," var cell = getTableItemsByRange(editor).cell;"," if (cell) {"," var ut = getUETable(cell);"," return ut.selectedTds.length ? ut.selectedTds : [cell];"," } else {"," return [];"," }"," }","})();"]; +_$jscoverage['plugins/table.cmds.js'][8]++; +; +_$jscoverage['plugins/table.cmds.js'][9]++; +(function () { + _$jscoverage['plugins/table.cmds.js'][10]++; + var UT = UE.UETable, getTableItemsByRange = (function (editor) { + _$jscoverage['plugins/table.cmds.js'][12]++; + return UT.getTableItemsByRange(editor); +}), getUETableBySelected = (function (editor) { + _$jscoverage['plugins/table.cmds.js'][15]++; + return UT.getUETableBySelected(editor); +}), getDefaultValue = (function (editor, table) { + _$jscoverage['plugins/table.cmds.js'][18]++; + return UT.getDefaultValue(editor, table); +}), getUETable = (function (tdOrTable) { + _$jscoverage['plugins/table.cmds.js'][21]++; + return UT.getUETable(tdOrTable); +}); + _$jscoverage['plugins/table.cmds.js'][25]++; + UE.commands.inserttable = {queryCommandState: (function () { + _$jscoverage['plugins/table.cmds.js'][27]++; + return (getTableItemsByRange(this).table? -1: 0); +}), execCommand: (function (cmd, opt) { + _$jscoverage['plugins/table.cmds.js'][30]++; + function createTable(opt, tdWidth) { + _$jscoverage['plugins/table.cmds.js'][31]++; + var html = [], rowsNum = opt.numRows, colsNum = opt.numCols; + _$jscoverage['plugins/table.cmds.js'][34]++; + for (var r = 0; (r < rowsNum); (r++)) { + _$jscoverage['plugins/table.cmds.js'][35]++; + html.push(""); + _$jscoverage['plugins/table.cmds.js'][36]++; + for (var c = 0; (c < colsNum); (c++)) { + _$jscoverage['plugins/table.cmds.js'][37]++; + html.push(("" + (browser.ie? domUtils.fillChar: "
") + "")); +} + _$jscoverage['plugins/table.cmds.js'][39]++; + html.push(""); +} + _$jscoverage['plugins/table.cmds.js'][42]++; + return ("" + html.join("") + "
"); +} + _$jscoverage['plugins/table.cmds.js'][45]++; + if ((! opt)) { + _$jscoverage['plugins/table.cmds.js'][46]++; + opt = utils.extend({}, {numCols: this.options.defaultCols, numRows: this.options.defaultRows, tdvalign: this.options.tdvalign}); + } + _$jscoverage['plugins/table.cmds.js'][52]++; + var me = this; + _$jscoverage['plugins/table.cmds.js'][53]++; + var range = this.selection.getRange(), start = range.startContainer, firstParentBlock = (domUtils.findParent(start, (function (node) { + _$jscoverage['plugins/table.cmds.js'][56]++; + return domUtils.isBlockElm(node); +}), true) || me.body); + _$jscoverage['plugins/table.cmds.js'][59]++; + var defaultValue = getDefaultValue(me), tableWidth = firstParentBlock.offsetWidth, tdWidth = Math.floor(((tableWidth / opt.numCols) - (defaultValue.tdPadding * 2) - defaultValue.tdBorder)); + _$jscoverage['plugins/table.cmds.js'][64]++; + ((! opt.tdvalign) && (opt.tdvalign = me.options.tdvalign)); + _$jscoverage['plugins/table.cmds.js'][65]++; + me.execCommand("inserthtml", createTable(opt, tdWidth)); +})}; + _$jscoverage['plugins/table.cmds.js'][69]++; + UE.commands.insertparagraphbeforetable = {queryCommandState: (function () { + _$jscoverage['plugins/table.cmds.js'][71]++; + return (getTableItemsByRange(this).cell? 0: -1); +}), execCommand: (function () { + _$jscoverage['plugins/table.cmds.js'][74]++; + var table = getTableItemsByRange(this).table; + _$jscoverage['plugins/table.cmds.js'][75]++; + if (table) { + _$jscoverage['plugins/table.cmds.js'][76]++; + var p = this.document.createElement("p"); + _$jscoverage['plugins/table.cmds.js'][77]++; + p.innerHTML = (browser.ie? " ": "
"); + _$jscoverage['plugins/table.cmds.js'][78]++; + table.parentNode.insertBefore(p, table); + _$jscoverage['plugins/table.cmds.js'][79]++; + this.selection.getRange().setStart(p, 0).setCursor(); + } +})}; + _$jscoverage['plugins/table.cmds.js'][84]++; + UE.commands.deletetable = {queryCommandState: (function () { + _$jscoverage['plugins/table.cmds.js'][86]++; + var rng = this.selection.getRange(); + _$jscoverage['plugins/table.cmds.js'][87]++; + return (domUtils.findParentByTagName(rng.startContainer, "table", true)? 0: -1); +}), execCommand: (function (cmd, table) { + _$jscoverage['plugins/table.cmds.js'][90]++; + var rng = this.selection.getRange(); + _$jscoverage['plugins/table.cmds.js'][91]++; + table = (table || domUtils.findParentByTagName(rng.startContainer, "table", true)); + _$jscoverage['plugins/table.cmds.js'][92]++; + if (table) { + _$jscoverage['plugins/table.cmds.js'][93]++; + var next = table.nextSibling; + _$jscoverage['plugins/table.cmds.js'][94]++; + if ((! next)) { + _$jscoverage['plugins/table.cmds.js'][95]++; + next = domUtils.createElement(this.document, "p", {"innerHTML": (browser.ie? domUtils.fillChar: "
")}); + _$jscoverage['plugins/table.cmds.js'][98]++; + table.parentNode.insertBefore(next, table); + } + _$jscoverage['plugins/table.cmds.js'][100]++; + domUtils.remove(table); + _$jscoverage['plugins/table.cmds.js'][101]++; + rng = this.selection.getRange(); + _$jscoverage['plugins/table.cmds.js'][102]++; + if ((next.nodeType == 3)) { + _$jscoverage['plugins/table.cmds.js'][103]++; + rng.setStartBefore(next); + } + else { + _$jscoverage['plugins/table.cmds.js'][105]++; + rng.setStart(next, 0); + } + _$jscoverage['plugins/table.cmds.js'][107]++; + rng.setCursor(false, true); + _$jscoverage['plugins/table.cmds.js'][108]++; + this.fireEvent("tablehasdeleted"); + } +})}; + _$jscoverage['plugins/table.cmds.js'][114]++; + UE.commands.cellalign = {queryCommandState: (function () { + _$jscoverage['plugins/table.cmds.js'][116]++; + return (getSelectedArr(this).length? 0: -1); +}), execCommand: (function (cmd, align) { + _$jscoverage['plugins/table.cmds.js'][119]++; + var selectedTds = getSelectedArr(this); + _$jscoverage['plugins/table.cmds.js'][120]++; + if (selectedTds.length) { + _$jscoverage['plugins/table.cmds.js'][121]++; + for (var i = 0, ci; (ci = selectedTds[(i++)]);) { + _$jscoverage['plugins/table.cmds.js'][122]++; + ci.setAttribute("align", align); +} + } +})}; + _$jscoverage['plugins/table.cmds.js'][127]++; + UE.commands.cellvalign = {queryCommandState: (function () { + _$jscoverage['plugins/table.cmds.js'][129]++; + return (getSelectedArr(this).length? 0: -1); +}), execCommand: (function (cmd, valign) { + _$jscoverage['plugins/table.cmds.js'][132]++; + var selectedTds = getSelectedArr(this); + _$jscoverage['plugins/table.cmds.js'][133]++; + if (selectedTds.length) { + _$jscoverage['plugins/table.cmds.js'][134]++; + for (var i = 0, ci; (ci = selectedTds[(i++)]);) { + _$jscoverage['plugins/table.cmds.js'][135]++; + ci.setAttribute("vAlign", valign); +} + } +})}; + _$jscoverage['plugins/table.cmds.js'][140]++; + UE.commands.insertcaption = {queryCommandState: (function () { + _$jscoverage['plugins/table.cmds.js'][142]++; + var table = getTableItemsByRange(this).table; + _$jscoverage['plugins/table.cmds.js'][143]++; + if (table) { + _$jscoverage['plugins/table.cmds.js'][144]++; + return ((table.getElementsByTagName("caption").length == 0)? 1: -1); + } + _$jscoverage['plugins/table.cmds.js'][146]++; + return -1; +}), execCommand: (function () { + _$jscoverage['plugins/table.cmds.js'][149]++; + var table = getTableItemsByRange(this).table; + _$jscoverage['plugins/table.cmds.js'][150]++; + if (table) { + _$jscoverage['plugins/table.cmds.js'][151]++; + var caption = this.document.createElement("caption"); + _$jscoverage['plugins/table.cmds.js'][152]++; + caption.innerHTML = (browser.ie? domUtils.fillChar: "
"); + _$jscoverage['plugins/table.cmds.js'][153]++; + table.insertBefore(caption, table.firstChild); + _$jscoverage['plugins/table.cmds.js'][154]++; + var range = this.selection.getRange(); + _$jscoverage['plugins/table.cmds.js'][155]++; + range.setStart(caption, 0).setCursor(); + } +})}; + _$jscoverage['plugins/table.cmds.js'][160]++; + UE.commands.deletecaption = {queryCommandState: (function () { + _$jscoverage['plugins/table.cmds.js'][162]++; + var rng = this.selection.getRange(), table = domUtils.findParentByTagName(rng.startContainer, "table"); + _$jscoverage['plugins/table.cmds.js'][164]++; + if (table) { + _$jscoverage['plugins/table.cmds.js'][165]++; + return ((table.getElementsByTagName("caption").length == 0)? -1: 1); + } + _$jscoverage['plugins/table.cmds.js'][167]++; + return -1; +}), execCommand: (function () { + _$jscoverage['plugins/table.cmds.js'][170]++; + var rng = this.selection.getRange(), table = domUtils.findParentByTagName(rng.startContainer, "table"); + _$jscoverage['plugins/table.cmds.js'][172]++; + if (table) { + _$jscoverage['plugins/table.cmds.js'][173]++; + domUtils.remove(table.getElementsByTagName("caption")[0]); + _$jscoverage['plugins/table.cmds.js'][174]++; + var range = this.selection.getRange(); + _$jscoverage['plugins/table.cmds.js'][175]++; + range.setStart(table.rows[0].cells[0], 0).setCursor(); + } +})}; + _$jscoverage['plugins/table.cmds.js'][180]++; + UE.commands.inserttitle = {queryCommandState: (function () { + _$jscoverage['plugins/table.cmds.js'][182]++; + var table = getTableItemsByRange(this).table; + _$jscoverage['plugins/table.cmds.js'][183]++; + if (table) { + _$jscoverage['plugins/table.cmds.js'][184]++; + var firstRow = table.rows[0]; + _$jscoverage['plugins/table.cmds.js'][185]++; + return ((firstRow.getElementsByTagName("th").length == 0)? 0: -1); + } + _$jscoverage['plugins/table.cmds.js'][187]++; + return -1; +}), execCommand: (function () { + _$jscoverage['plugins/table.cmds.js'][190]++; + var table = getTableItemsByRange(this).table; + _$jscoverage['plugins/table.cmds.js'][191]++; + if (table) { + _$jscoverage['plugins/table.cmds.js'][192]++; + getUETable(table).insertRow(0, "th"); + } + _$jscoverage['plugins/table.cmds.js'][194]++; + var th = table.getElementsByTagName("th")[0]; + _$jscoverage['plugins/table.cmds.js'][195]++; + this.selection.getRange().setStart(th, 0).setCursor(false, true); +})}; + _$jscoverage['plugins/table.cmds.js'][198]++; + UE.commands.deletetitle = {queryCommandState: (function () { + _$jscoverage['plugins/table.cmds.js'][200]++; + var table = getTableItemsByRange(this).table; + _$jscoverage['plugins/table.cmds.js'][201]++; + if (table) { + _$jscoverage['plugins/table.cmds.js'][202]++; + var firstRow = table.rows[0]; + _$jscoverage['plugins/table.cmds.js'][203]++; + return (firstRow.getElementsByTagName("th").length? 0: -1); + } + _$jscoverage['plugins/table.cmds.js'][205]++; + return -1; +}), execCommand: (function () { + _$jscoverage['plugins/table.cmds.js'][208]++; + var table = getTableItemsByRange(this).table; + _$jscoverage['plugins/table.cmds.js'][209]++; + if (table) { + _$jscoverage['plugins/table.cmds.js'][210]++; + domUtils.remove(table.rows[0]); + } + _$jscoverage['plugins/table.cmds.js'][212]++; + var td = table.getElementsByTagName("td")[0]; + _$jscoverage['plugins/table.cmds.js'][213]++; + this.selection.getRange().setStart(td, 0).setCursor(false, true); +})}; + _$jscoverage['plugins/table.cmds.js'][217]++; + UE.commands.mergeright = {queryCommandState: (function (cmd) { + _$jscoverage['plugins/table.cmds.js'][219]++; + var tableItems = getTableItemsByRange(this); + _$jscoverage['plugins/table.cmds.js'][220]++; + if ((! tableItems.cell)) { + _$jscoverage['plugins/table.cmds.js'][220]++; + return -1; + } + _$jscoverage['plugins/table.cmds.js'][221]++; + var ut = getUETable(tableItems.table); + _$jscoverage['plugins/table.cmds.js'][222]++; + if (ut.selectedTds.length) { + _$jscoverage['plugins/table.cmds.js'][222]++; + return -1; + } + _$jscoverage['plugins/table.cmds.js'][223]++; + var cellInfo = ut.getCellInfo(tableItems.cell), rightColIndex = (cellInfo.colIndex + cellInfo.colSpan); + _$jscoverage['plugins/table.cmds.js'][225]++; + if ((rightColIndex >= ut.colsNum)) { + _$jscoverage['plugins/table.cmds.js'][225]++; + return -1; + } + _$jscoverage['plugins/table.cmds.js'][226]++; + var rightCellInfo = ut.indexTable[cellInfo.rowIndex][rightColIndex]; + _$jscoverage['plugins/table.cmds.js'][227]++; + return (((rightCellInfo.rowIndex == cellInfo.rowIndex) && (rightCellInfo.rowSpan == cellInfo.rowSpan))? 0: -1); +}), execCommand: (function (cmd) { + _$jscoverage['plugins/table.cmds.js'][231]++; + var rng = this.selection.getRange(), bk = rng.createBookmark(true); + _$jscoverage['plugins/table.cmds.js'][233]++; + var cell = getTableItemsByRange(this).cell, ut = getUETable(cell); + _$jscoverage['plugins/table.cmds.js'][235]++; + ut.mergeRight(cell); + _$jscoverage['plugins/table.cmds.js'][236]++; + rng.moveToBookmark(bk).select(); +})}; + _$jscoverage['plugins/table.cmds.js'][239]++; + UE.commands.mergedown = {queryCommandState: (function (cmd) { + _$jscoverage['plugins/table.cmds.js'][241]++; + var tableItems = getTableItemsByRange(this), cell = tableItems.cell; + _$jscoverage['plugins/table.cmds.js'][243]++; + if (((! cell) || (cell.tagName == "TH"))) { + _$jscoverage['plugins/table.cmds.js'][243]++; + return -1; + } + _$jscoverage['plugins/table.cmds.js'][244]++; + var ut = getUETable(tableItems.table); + _$jscoverage['plugins/table.cmds.js'][245]++; + if (ut.selectedTds.length) { + _$jscoverage['plugins/table.cmds.js'][245]++; + return -1; + } + _$jscoverage['plugins/table.cmds.js'][246]++; + var cellInfo = ut.getCellInfo(tableItems.cell), downRowIndex = (cellInfo.rowIndex + cellInfo.rowSpan); + _$jscoverage['plugins/table.cmds.js'][249]++; + if ((downRowIndex >= ut.rowsNum)) { + _$jscoverage['plugins/table.cmds.js'][249]++; + return -1; + } + _$jscoverage['plugins/table.cmds.js'][250]++; + var downCellInfo = ut.indexTable[downRowIndex][cellInfo.colIndex]; + _$jscoverage['plugins/table.cmds.js'][252]++; + return (((downCellInfo.colIndex == cellInfo.colIndex) && (downCellInfo.colSpan == cellInfo.colSpan) && (tableItems.cell.tagName !== "TH"))? 0: -1); +}), execCommand: (function () { + _$jscoverage['plugins/table.cmds.js'][256]++; + var rng = this.selection.getRange(), bk = rng.createBookmark(true); + _$jscoverage['plugins/table.cmds.js'][258]++; + var cell = getTableItemsByRange(this).cell, ut = getUETable(cell); + _$jscoverage['plugins/table.cmds.js'][260]++; + ut.mergeDown(cell); + _$jscoverage['plugins/table.cmds.js'][261]++; + rng.moveToBookmark(bk).select(); +})}; + _$jscoverage['plugins/table.cmds.js'][264]++; + UE.commands.mergecells = {queryCommandState: (function () { + _$jscoverage['plugins/table.cmds.js'][266]++; + return (getUETableBySelected(this)? 0: -1); +}), execCommand: (function () { + _$jscoverage['plugins/table.cmds.js'][269]++; + var ut = getUETableBySelected(this); + _$jscoverage['plugins/table.cmds.js'][270]++; + if ((ut && ut.selectedTds.length)) { + _$jscoverage['plugins/table.cmds.js'][271]++; + var cell = ut.selectedTds[0]; + _$jscoverage['plugins/table.cmds.js'][272]++; + ut.mergeRange(); + _$jscoverage['plugins/table.cmds.js'][273]++; + var rng = this.selection.getRange(); + _$jscoverage['plugins/table.cmds.js'][274]++; + if (domUtils.isEmptyBlock(cell)) { + _$jscoverage['plugins/table.cmds.js'][275]++; + rng.setStart(cell, 0).collapse(true); + } + else { + _$jscoverage['plugins/table.cmds.js'][277]++; + rng.selectNodeContents(cell); + } + _$jscoverage['plugins/table.cmds.js'][279]++; + rng.select(); + } +})}; + _$jscoverage['plugins/table.cmds.js'][285]++; + UE.commands.insertrow = {queryCommandState: (function () { + _$jscoverage['plugins/table.cmds.js'][287]++; + var tableItems = getTableItemsByRange(this), cell = tableItems.cell; + _$jscoverage['plugins/table.cmds.js'][289]++; + return ((cell && (cell.tagName == "TD") && (getUETable(tableItems.table).rowsNum < this.options.maxRowNum))? 0: -1); +}), execCommand: (function () { + _$jscoverage['plugins/table.cmds.js'][292]++; + var rng = this.selection.getRange(), bk = rng.createBookmark(true); + _$jscoverage['plugins/table.cmds.js'][294]++; + var tableItems = getTableItemsByRange(this), cell = tableItems.cell, table = tableItems.table, ut = getUETable(table), cellInfo = ut.getCellInfo(cell); + _$jscoverage['plugins/table.cmds.js'][300]++; + if ((! ut.selectedTds.length)) { + _$jscoverage['plugins/table.cmds.js'][301]++; + ut.insertRow(cellInfo.rowIndex, cell); + } + else { + _$jscoverage['plugins/table.cmds.js'][303]++; + var range = ut.cellsRange; + _$jscoverage['plugins/table.cmds.js'][304]++; + for (var i = 0, len = ((range.endRowIndex - range.beginRowIndex) + 1); (i < len); (i++)) { + _$jscoverage['plugins/table.cmds.js'][305]++; + ut.insertRow(range.beginRowIndex, cell); +} + } + _$jscoverage['plugins/table.cmds.js'][308]++; + rng.moveToBookmark(bk).select(); + _$jscoverage['plugins/table.cmds.js'][309]++; + if ((table.getAttribute("interlaced") === "enabled")) { + _$jscoverage['plugins/table.cmds.js'][309]++; + this.fireEvent("interlacetable", table); + } +})}; + _$jscoverage['plugins/table.cmds.js'][313]++; + UE.commands.insertrownext = {queryCommandState: (function () { + _$jscoverage['plugins/table.cmds.js'][315]++; + var tableItems = getTableItemsByRange(this), cell = tableItems.cell; + _$jscoverage['plugins/table.cmds.js'][317]++; + return ((cell && (cell.tagName == "TD") && (getUETable(tableItems.table).rowsNum < this.options.maxRowNum))? 0: -1); +}), execCommand: (function () { + _$jscoverage['plugins/table.cmds.js'][320]++; + var rng = this.selection.getRange(), bk = rng.createBookmark(true); + _$jscoverage['plugins/table.cmds.js'][322]++; + var tableItems = getTableItemsByRange(this), cell = tableItems.cell, table = tableItems.table, ut = getUETable(table), cellInfo = ut.getCellInfo(cell); + _$jscoverage['plugins/table.cmds.js'][328]++; + if ((! ut.selectedTds.length)) { + _$jscoverage['plugins/table.cmds.js'][329]++; + ut.insertRow((cellInfo.rowIndex + cellInfo.rowSpan), cell); + } + else { + _$jscoverage['plugins/table.cmds.js'][331]++; + var range = ut.cellsRange; + _$jscoverage['plugins/table.cmds.js'][332]++; + for (var i = 0, len = ((range.endRowIndex - range.beginRowIndex) + 1); (i < len); (i++)) { + _$jscoverage['plugins/table.cmds.js'][333]++; + ut.insertRow((range.endRowIndex + 1), cell); +} + } + _$jscoverage['plugins/table.cmds.js'][336]++; + rng.moveToBookmark(bk).select(); + _$jscoverage['plugins/table.cmds.js'][337]++; + if ((table.getAttribute("interlaced") === "enabled")) { + _$jscoverage['plugins/table.cmds.js'][337]++; + this.fireEvent("interlacetable", table); + } +})}; + _$jscoverage['plugins/table.cmds.js'][340]++; + UE.commands.deleterow = {queryCommandState: (function () { + _$jscoverage['plugins/table.cmds.js'][342]++; + var tableItems = getTableItemsByRange(this); + _$jscoverage['plugins/table.cmds.js'][343]++; + if ((! tableItems.cell)) { + _$jscoverage['plugins/table.cmds.js'][344]++; + return -1; + } +}), execCommand: (function () { + _$jscoverage['plugins/table.cmds.js'][348]++; + var cell = getTableItemsByRange(this).cell, ut = getUETable(cell), cellsRange = ut.cellsRange, cellInfo = ut.getCellInfo(cell), preCell = ut.getVSideCell(cell), nextCell = ut.getVSideCell(cell, true), rng = this.selection.getRange(); + _$jscoverage['plugins/table.cmds.js'][355]++; + if (utils.isEmptyObject(cellsRange)) { + _$jscoverage['plugins/table.cmds.js'][356]++; + ut.deleteRow(cellInfo.rowIndex); + } + else { + _$jscoverage['plugins/table.cmds.js'][358]++; + for (var i = cellsRange.beginRowIndex; (i < (cellsRange.endRowIndex + 1)); (i++)) { + _$jscoverage['plugins/table.cmds.js'][359]++; + ut.deleteRow(cellsRange.beginRowIndex); +} + } + _$jscoverage['plugins/table.cmds.js'][362]++; + var table = ut.table; + _$jscoverage['plugins/table.cmds.js'][363]++; + if ((! table.getElementsByTagName("td").length)) { + _$jscoverage['plugins/table.cmds.js'][364]++; + var nextSibling = table.nextSibling; + _$jscoverage['plugins/table.cmds.js'][365]++; + domUtils.remove(table); + _$jscoverage['plugins/table.cmds.js'][366]++; + if (nextSibling) { + _$jscoverage['plugins/table.cmds.js'][367]++; + rng.setStart(nextSibling, 0).setCursor(false, true); + } + } + else { + _$jscoverage['plugins/table.cmds.js'][370]++; + if (((cellInfo.rowSpan == 1) || (cellInfo.rowSpan == ((cellsRange.endRowIndex - cellsRange.beginRowIndex) + 1)))) { + _$jscoverage['plugins/table.cmds.js'][371]++; + if ((nextCell || preCell)) { + _$jscoverage['plugins/table.cmds.js'][371]++; + rng.selectNodeContents((nextCell || preCell)).setCursor(false, true); + } + } + else { + _$jscoverage['plugins/table.cmds.js'][373]++; + var newCell = ut.getCell(cellInfo.rowIndex, ut.indexTable[cellInfo.rowIndex][cellInfo.colIndex].cellIndex); + _$jscoverage['plugins/table.cmds.js'][374]++; + if (newCell) { + _$jscoverage['plugins/table.cmds.js'][374]++; + rng.selectNodeContents(newCell).setCursor(false, true); + } + } + } + _$jscoverage['plugins/table.cmds.js'][377]++; + if ((table.getAttribute("interlaced") === "enabled")) { + _$jscoverage['plugins/table.cmds.js'][377]++; + this.fireEvent("interlacetable", table); + } +})}; + _$jscoverage['plugins/table.cmds.js'][380]++; + UE.commands.insertcol = {queryCommandState: (function (cmd) { + _$jscoverage['plugins/table.cmds.js'][382]++; + var tableItems = getTableItemsByRange(this), cell = tableItems.cell; + _$jscoverage['plugins/table.cmds.js'][384]++; + return ((cell && ((cell.tagName == "TD") || (cell.tagName == "TH")) && (getUETable(tableItems.table).colsNum < this.options.maxColNum))? 0: -1); +}), execCommand: (function (cmd) { + _$jscoverage['plugins/table.cmds.js'][387]++; + var rng = this.selection.getRange(), bk = rng.createBookmark(true); + _$jscoverage['plugins/table.cmds.js'][389]++; + if ((this.queryCommandState(cmd) == -1)) { + _$jscoverage['plugins/table.cmds.js'][389]++; + return; + } + _$jscoverage['plugins/table.cmds.js'][390]++; + var cell = getTableItemsByRange(this).cell, ut = getUETable(cell), cellInfo = ut.getCellInfo(cell); + _$jscoverage['plugins/table.cmds.js'][395]++; + if ((! ut.selectedTds.length)) { + _$jscoverage['plugins/table.cmds.js'][396]++; + ut.insertCol(cellInfo.colIndex, cell); + } + else { + _$jscoverage['plugins/table.cmds.js'][398]++; + var range = ut.cellsRange; + _$jscoverage['plugins/table.cmds.js'][399]++; + for (var i = 0, len = ((range.endColIndex - range.beginColIndex) + 1); (i < len); (i++)) { + _$jscoverage['plugins/table.cmds.js'][400]++; + ut.insertCol(range.beginColIndex, cell); +} + } + _$jscoverage['plugins/table.cmds.js'][403]++; + rng.moveToBookmark(bk).select(true); +})}; + _$jscoverage['plugins/table.cmds.js'][406]++; + UE.commands.insertcolnext = {queryCommandState: (function () { + _$jscoverage['plugins/table.cmds.js'][408]++; + var tableItems = getTableItemsByRange(this), cell = tableItems.cell; + _$jscoverage['plugins/table.cmds.js'][410]++; + return ((cell && (getUETable(tableItems.table).colsNum < this.options.maxColNum))? 0: -1); +}), execCommand: (function () { + _$jscoverage['plugins/table.cmds.js'][413]++; + var rng = this.selection.getRange(), bk = rng.createBookmark(true); + _$jscoverage['plugins/table.cmds.js'][415]++; + var cell = getTableItemsByRange(this).cell, ut = getUETable(cell), cellInfo = ut.getCellInfo(cell); + _$jscoverage['plugins/table.cmds.js'][419]++; + if ((! ut.selectedTds.length)) { + _$jscoverage['plugins/table.cmds.js'][420]++; + ut.insertCol((cellInfo.colIndex + cellInfo.colSpan), cell); + } + else { + _$jscoverage['plugins/table.cmds.js'][422]++; + var range = ut.cellsRange; + _$jscoverage['plugins/table.cmds.js'][423]++; + for (var i = 0, len = ((range.endColIndex - range.beginColIndex) + 1); (i < len); (i++)) { + _$jscoverage['plugins/table.cmds.js'][424]++; + ut.insertCol((range.endColIndex + 1), cell); +} + } + _$jscoverage['plugins/table.cmds.js'][427]++; + rng.moveToBookmark(bk).select(); +})}; + _$jscoverage['plugins/table.cmds.js'][431]++; + UE.commands.deletecol = {queryCommandState: (function () { + _$jscoverage['plugins/table.cmds.js'][433]++; + var tableItems = getTableItemsByRange(this); + _$jscoverage['plugins/table.cmds.js'][434]++; + if ((! tableItems.cell)) { + _$jscoverage['plugins/table.cmds.js'][434]++; + return -1; + } +}), execCommand: (function () { + _$jscoverage['plugins/table.cmds.js'][437]++; + var cell = getTableItemsByRange(this).cell, ut = getUETable(cell), range = ut.cellsRange, cellInfo = ut.getCellInfo(cell), preCell = ut.getHSideCell(cell), nextCell = ut.getHSideCell(cell, true); + _$jscoverage['plugins/table.cmds.js'][443]++; + if (utils.isEmptyObject(range)) { + _$jscoverage['plugins/table.cmds.js'][444]++; + ut.deleteCol(cellInfo.colIndex); + } + else { + _$jscoverage['plugins/table.cmds.js'][446]++; + for (var i = range.beginColIndex; (i < (range.endColIndex + 1)); (i++)) { + _$jscoverage['plugins/table.cmds.js'][447]++; + ut.deleteCol(range.beginColIndex); +} + } + _$jscoverage['plugins/table.cmds.js'][450]++; + var table = ut.table, rng = this.selection.getRange(); + _$jscoverage['plugins/table.cmds.js'][453]++; + if ((! table.getElementsByTagName("td").length)) { + _$jscoverage['plugins/table.cmds.js'][454]++; + var nextSibling = table.nextSibling; + _$jscoverage['plugins/table.cmds.js'][455]++; + domUtils.remove(table); + _$jscoverage['plugins/table.cmds.js'][456]++; + if (nextSibling) { + _$jscoverage['plugins/table.cmds.js'][457]++; + rng.setStart(nextSibling, 0).setCursor(false, true); + } + } + else { + _$jscoverage['plugins/table.cmds.js'][460]++; + if (domUtils.inDoc(cell, this.document)) { + _$jscoverage['plugins/table.cmds.js'][461]++; + rng.setStart(cell, 0).setCursor(false, true); + } + else { + _$jscoverage['plugins/table.cmds.js'][463]++; + if ((nextCell && domUtils.inDoc(nextCell, this.document))) { + _$jscoverage['plugins/table.cmds.js'][464]++; + rng.selectNodeContents(nextCell).setCursor(false, true); + } + else { + _$jscoverage['plugins/table.cmds.js'][466]++; + if ((preCell && domUtils.inDoc(preCell, this.document))) { + _$jscoverage['plugins/table.cmds.js'][467]++; + rng.selectNodeContents(preCell).setCursor(true, true); + } + } + } + } +})}; + _$jscoverage['plugins/table.cmds.js'][474]++; + UE.commands.splittocells = {queryCommandState: (function () { + _$jscoverage['plugins/table.cmds.js'][476]++; + var tableItems = getTableItemsByRange(this), cell = tableItems.cell; + _$jscoverage['plugins/table.cmds.js'][478]++; + if ((! cell)) { + _$jscoverage['plugins/table.cmds.js'][478]++; + return -1; + } + _$jscoverage['plugins/table.cmds.js'][479]++; + var ut = getUETable(tableItems.table); + _$jscoverage['plugins/table.cmds.js'][480]++; + if ((ut.selectedTds.length > 0)) { + _$jscoverage['plugins/table.cmds.js'][480]++; + return -1; + } + _$jscoverage['plugins/table.cmds.js'][481]++; + return ((cell && ((cell.colSpan > 1) || (cell.rowSpan > 1)))? 0: -1); +}), execCommand: (function () { + _$jscoverage['plugins/table.cmds.js'][484]++; + var rng = this.selection.getRange(), bk = rng.createBookmark(true); + _$jscoverage['plugins/table.cmds.js'][486]++; + var cell = getTableItemsByRange(this).cell, ut = getUETable(cell); + _$jscoverage['plugins/table.cmds.js'][488]++; + ut.splitToCells(cell); + _$jscoverage['plugins/table.cmds.js'][489]++; + rng.moveToBookmark(bk).select(); +})}; + _$jscoverage['plugins/table.cmds.js'][492]++; + UE.commands.splittorows = {queryCommandState: (function () { + _$jscoverage['plugins/table.cmds.js'][494]++; + var tableItems = getTableItemsByRange(this), cell = tableItems.cell; + _$jscoverage['plugins/table.cmds.js'][496]++; + if ((! cell)) { + _$jscoverage['plugins/table.cmds.js'][496]++; + return -1; + } + _$jscoverage['plugins/table.cmds.js'][497]++; + var ut = getUETable(tableItems.table); + _$jscoverage['plugins/table.cmds.js'][498]++; + if ((ut.selectedTds.length > 0)) { + _$jscoverage['plugins/table.cmds.js'][498]++; + return -1; + } + _$jscoverage['plugins/table.cmds.js'][499]++; + return ((cell && (cell.rowSpan > 1))? 0: -1); +}), execCommand: (function () { + _$jscoverage['plugins/table.cmds.js'][502]++; + var rng = this.selection.getRange(), bk = rng.createBookmark(true); + _$jscoverage['plugins/table.cmds.js'][504]++; + var cell = getTableItemsByRange(this).cell, ut = getUETable(cell); + _$jscoverage['plugins/table.cmds.js'][506]++; + ut.splitToRows(cell); + _$jscoverage['plugins/table.cmds.js'][507]++; + rng.moveToBookmark(bk).select(); +})}; + _$jscoverage['plugins/table.cmds.js'][510]++; + UE.commands.splittocols = {queryCommandState: (function () { + _$jscoverage['plugins/table.cmds.js'][512]++; + var tableItems = getTableItemsByRange(this), cell = tableItems.cell; + _$jscoverage['plugins/table.cmds.js'][514]++; + if ((! cell)) { + _$jscoverage['plugins/table.cmds.js'][514]++; + return -1; + } + _$jscoverage['plugins/table.cmds.js'][515]++; + var ut = getUETable(tableItems.table); + _$jscoverage['plugins/table.cmds.js'][516]++; + if ((ut.selectedTds.length > 0)) { + _$jscoverage['plugins/table.cmds.js'][516]++; + return -1; + } + _$jscoverage['plugins/table.cmds.js'][517]++; + return ((cell && (cell.colSpan > 1))? 0: -1); +}), execCommand: (function () { + _$jscoverage['plugins/table.cmds.js'][520]++; + var rng = this.selection.getRange(), bk = rng.createBookmark(true); + _$jscoverage['plugins/table.cmds.js'][522]++; + var cell = getTableItemsByRange(this).cell, ut = getUETable(cell); + _$jscoverage['plugins/table.cmds.js'][524]++; + ut.splitToCols(cell); + _$jscoverage['plugins/table.cmds.js'][525]++; + rng.moveToBookmark(bk).select(); +})}; + _$jscoverage['plugins/table.cmds.js'][530]++; + UE.commands.adaptbytext = (UE.commands.adaptbywindow = {queryCommandState: (function () { + _$jscoverage['plugins/table.cmds.js'][533]++; + return (getTableItemsByRange(this).table? 0: -1); +}), execCommand: (function (cmd) { + _$jscoverage['plugins/table.cmds.js'][536]++; + var tableItems = getTableItemsByRange(this), table = tableItems.table; + _$jscoverage['plugins/table.cmds.js'][538]++; + if (table) { + _$jscoverage['plugins/table.cmds.js'][539]++; + if ((cmd == "adaptbywindow")) { + _$jscoverage['plugins/table.cmds.js'][540]++; + resetTdWidth(table, this); + } + else { + _$jscoverage['plugins/table.cmds.js'][542]++; + var cells = domUtils.getElementsByTagName(table, "td th"); + _$jscoverage['plugins/table.cmds.js'][543]++; + utils.each(cells, (function (cell) { + _$jscoverage['plugins/table.cmds.js'][544]++; + cell.removeAttribute("width"); +})); + _$jscoverage['plugins/table.cmds.js'][546]++; + table.removeAttribute("width"); + } + } +})}); + _$jscoverage['plugins/table.cmds.js'][553]++; + UE.commands.averagedistributecol = {queryCommandState: (function () { + _$jscoverage['plugins/table.cmds.js'][555]++; + var ut = getUETableBySelected(this); + _$jscoverage['plugins/table.cmds.js'][556]++; + if ((! ut)) { + _$jscoverage['plugins/table.cmds.js'][556]++; + return -1; + } + _$jscoverage['plugins/table.cmds.js'][557]++; + return ((ut.isFullRow() || ut.isFullCol())? 0: -1); +}), execCommand: (function (cmd) { + _$jscoverage['plugins/table.cmds.js'][560]++; + var me = this, ut = getUETableBySelected(me); + _$jscoverage['plugins/table.cmds.js'][563]++; + function getAverageWidth() { + _$jscoverage['plugins/table.cmds.js'][564]++; + var tb = ut.table, averageWidth, sumWidth = 0, colsNum = 0, tbAttr = getDefaultValue(me, tb); + _$jscoverage['plugins/table.cmds.js'][568]++; + if (ut.isFullRow()) { + _$jscoverage['plugins/table.cmds.js'][569]++; + sumWidth = tb.offsetWidth; + _$jscoverage['plugins/table.cmds.js'][570]++; + colsNum = ut.colsNum; + } + else { + _$jscoverage['plugins/table.cmds.js'][572]++; + var begin = ut.cellsRange.beginColIndex, end = ut.cellsRange.endColIndex, node; + _$jscoverage['plugins/table.cmds.js'][575]++; + for (var i = begin; (i <= end);) { + _$jscoverage['plugins/table.cmds.js'][576]++; + node = ut.selectedTds[i]; + _$jscoverage['plugins/table.cmds.js'][577]++; + sumWidth += node.offsetWidth; + _$jscoverage['plugins/table.cmds.js'][578]++; + i += node.colSpan; + _$jscoverage['plugins/table.cmds.js'][579]++; + colsNum += 1; +} + } + _$jscoverage['plugins/table.cmds.js'][582]++; + averageWidth = (Math.ceil((sumWidth / colsNum)) - (tbAttr.tdBorder * 2) - (tbAttr.tdPadding * 2)); + _$jscoverage['plugins/table.cmds.js'][583]++; + return averageWidth; +} + _$jscoverage['plugins/table.cmds.js'][586]++; + function setAverageWidth(averageWidth) { + _$jscoverage['plugins/table.cmds.js'][587]++; + utils.each(domUtils.getElementsByTagName(ut.table, "th"), (function (node) { + _$jscoverage['plugins/table.cmds.js'][588]++; + node.setAttribute("width", ""); +})); + _$jscoverage['plugins/table.cmds.js'][590]++; + var cells = (ut.isFullRow()? domUtils.getElementsByTagName(ut.table, "td"): ut.selectedTds); + _$jscoverage['plugins/table.cmds.js'][592]++; + utils.each(cells, (function (node) { + _$jscoverage['plugins/table.cmds.js'][593]++; + if ((node.colSpan == 1)) { + _$jscoverage['plugins/table.cmds.js'][594]++; + node.setAttribute("width", averageWidth); + } +})); +} + _$jscoverage['plugins/table.cmds.js'][599]++; + if ((ut && ut.selectedTds.length)) { + _$jscoverage['plugins/table.cmds.js'][600]++; + setAverageWidth(getAverageWidth()); + } +})}; + _$jscoverage['plugins/table.cmds.js'][605]++; + UE.commands.averagedistributerow = {queryCommandState: (function () { + _$jscoverage['plugins/table.cmds.js'][607]++; + var ut = getUETableBySelected(this); + _$jscoverage['plugins/table.cmds.js'][608]++; + if ((! ut)) { + _$jscoverage['plugins/table.cmds.js'][608]++; + return -1; + } + _$jscoverage['plugins/table.cmds.js'][609]++; + if ((ut.selectedTds && /th/gi.test(ut.selectedTds[0].tagName))) { + _$jscoverage['plugins/table.cmds.js'][609]++; + return -1; + } + _$jscoverage['plugins/table.cmds.js'][610]++; + return ((ut.isFullRow() || ut.isFullCol())? 0: -1); +}), execCommand: (function (cmd) { + _$jscoverage['plugins/table.cmds.js'][613]++; + var me = this, ut = getUETableBySelected(me); + _$jscoverage['plugins/table.cmds.js'][616]++; + function getAverageHeight() { + _$jscoverage['plugins/table.cmds.js'][617]++; + var averageHeight, rowNum, sumHeight = 0, tb = ut.table, tbAttr = getDefaultValue(me, tb), tdpadding = parseInt(domUtils.getComputedStyle(tb.getElementsByTagName("td")[0], "padding-top")); + _$jscoverage['plugins/table.cmds.js'][622]++; + if (ut.isFullCol()) { + _$jscoverage['plugins/table.cmds.js'][623]++; + var captionArr = domUtils.getElementsByTagName(tb, "caption"), thArr = domUtils.getElementsByTagName(tb, "th"), captionHeight, thHeight; + _$jscoverage['plugins/table.cmds.js'][627]++; + if ((captionArr.length > 0)) { + _$jscoverage['plugins/table.cmds.js'][628]++; + captionHeight = captionArr[0].offsetHeight; + } + _$jscoverage['plugins/table.cmds.js'][630]++; + if ((thArr.length > 0)) { + _$jscoverage['plugins/table.cmds.js'][631]++; + thHeight = thArr[0].offsetHeight; + } + _$jscoverage['plugins/table.cmds.js'][634]++; + sumHeight = (tb.offsetHeight - (captionHeight || 0) - (thHeight || 0)); + _$jscoverage['plugins/table.cmds.js'][635]++; + rowNum = ((thArr.length == 0)? ut.rowsNum: (ut.rowsNum - 1)); + } + else { + _$jscoverage['plugins/table.cmds.js'][637]++; + var begin = ut.cellsRange.beginRowIndex, end = ut.cellsRange.endRowIndex, count = 0, trs = domUtils.getElementsByTagName(tb, "tr"); + _$jscoverage['plugins/table.cmds.js'][641]++; + for (var i = begin; (i <= end); (i++)) { + _$jscoverage['plugins/table.cmds.js'][642]++; + sumHeight += trs[i].offsetHeight; + _$jscoverage['plugins/table.cmds.js'][643]++; + count += 1; +} + _$jscoverage['plugins/table.cmds.js'][645]++; + rowNum = count; + } + _$jscoverage['plugins/table.cmds.js'][648]++; + if ((browser.ie && (browser.version < 9))) { + _$jscoverage['plugins/table.cmds.js'][649]++; + averageHeight = Math.ceil((sumHeight / rowNum)); + } + else { + _$jscoverage['plugins/table.cmds.js'][651]++; + averageHeight = (Math.ceil((sumHeight / rowNum)) - (tbAttr.tdBorder * 2) - (tdpadding * 2)); + } + _$jscoverage['plugins/table.cmds.js'][653]++; + return averageHeight; +} + _$jscoverage['plugins/table.cmds.js'][656]++; + function setAverageHeight(averageHeight) { + _$jscoverage['plugins/table.cmds.js'][657]++; + var cells = (ut.isFullCol()? domUtils.getElementsByTagName(ut.table, "td"): ut.selectedTds); + _$jscoverage['plugins/table.cmds.js'][658]++; + utils.each(cells, (function (node) { + _$jscoverage['plugins/table.cmds.js'][659]++; + if ((node.rowSpan == 1)) { + _$jscoverage['plugins/table.cmds.js'][660]++; + node.setAttribute("height", averageHeight); + } +})); +} + _$jscoverage['plugins/table.cmds.js'][665]++; + if ((ut && ut.selectedTds.length)) { + _$jscoverage['plugins/table.cmds.js'][666]++; + setAverageHeight(getAverageHeight()); + } +})}; + _$jscoverage['plugins/table.cmds.js'][672]++; + UE.commands.cellalignment = {queryCommandState: (function () { + _$jscoverage['plugins/table.cmds.js'][674]++; + return (getTableItemsByRange(this).table? 0: -1); +}), execCommand: (function (cmd, data) { + _$jscoverage['plugins/table.cmds.js'][677]++; + var me = this, ut = getUETableBySelected(me); + _$jscoverage['plugins/table.cmds.js'][680]++; + if ((! ut)) { + _$jscoverage['plugins/table.cmds.js'][681]++; + var start = me.selection.getStart(), cell = (start && domUtils.findParentByTagName(start, ["td", "th", "caption"], true)); + _$jscoverage['plugins/table.cmds.js'][683]++; + if ((! /caption/gi.test(cell.tagName))) { + _$jscoverage['plugins/table.cmds.js'][684]++; + domUtils.setAttributes(cell, data); + } + else { + _$jscoverage['plugins/table.cmds.js'][686]++; + cell.style.textAlign = data.align; + _$jscoverage['plugins/table.cmds.js'][687]++; + cell.style.verticalAlign = data.vAlign; + } + _$jscoverage['plugins/table.cmds.js'][689]++; + me.selection.getRange().setCursor(true); + } + else { + _$jscoverage['plugins/table.cmds.js'][691]++; + utils.each(ut.selectedTds, (function (cell) { + _$jscoverage['plugins/table.cmds.js'][692]++; + domUtils.setAttributes(cell, data); +})); + } +}), queryCommandValue: (function (cmd) { + _$jscoverage['plugins/table.cmds.js'][702]++; + var activeMenuCell = getTableItemsByRange(this).cell; + _$jscoverage['plugins/table.cmds.js'][704]++; + if ((! activeMenuCell)) { + _$jscoverage['plugins/table.cmds.js'][705]++; + activeMenuCell = getSelectedArr(this)[0]; + } + _$jscoverage['plugins/table.cmds.js'][708]++; + if ((! activeMenuCell)) { + _$jscoverage['plugins/table.cmds.js'][710]++; + return null; + } + else { + _$jscoverage['plugins/table.cmds.js'][715]++; + var cells = UE.UETable.getUETable(activeMenuCell).selectedTds; + _$jscoverage['plugins/table.cmds.js'][717]++; + ((! cells.length) && (cells = activeMenuCell)); + _$jscoverage['plugins/table.cmds.js'][719]++; + return UE.UETable.getTableCellAlignState(cells); + } +})}; + _$jscoverage['plugins/table.cmds.js'][726]++; + UE.commands.tablealignment = {queryCommandState: (function () { + _$jscoverage['plugins/table.cmds.js'][728]++; + if ((browser.ie && (browser.version < 8))) { + _$jscoverage['plugins/table.cmds.js'][729]++; + return -1; + } + _$jscoverage['plugins/table.cmds.js'][731]++; + return (getTableItemsByRange(this).table? 0: -1); +}), execCommand: (function (cmd, value) { + _$jscoverage['plugins/table.cmds.js'][734]++; + var me = this, start = me.selection.getStart(), table = (start && domUtils.findParentByTagName(start, ["table"], true)); + _$jscoverage['plugins/table.cmds.js'][738]++; + if (table) { + _$jscoverage['plugins/table.cmds.js'][739]++; + table.setAttribute("align", value); + } +})}; + _$jscoverage['plugins/table.cmds.js'][745]++; + UE.commands.edittable = {queryCommandState: (function () { + _$jscoverage['plugins/table.cmds.js'][747]++; + return (getTableItemsByRange(this).table? 0: -1); +}), execCommand: (function (cmd, color) { + _$jscoverage['plugins/table.cmds.js'][750]++; + var rng = this.selection.getRange(), table = domUtils.findParentByTagName(rng.startContainer, "table"); + _$jscoverage['plugins/table.cmds.js'][752]++; + if (table) { + _$jscoverage['plugins/table.cmds.js'][753]++; + var arr = domUtils.getElementsByTagName(table, "td").concat(domUtils.getElementsByTagName(table, "th"), domUtils.getElementsByTagName(table, "caption")); + _$jscoverage['plugins/table.cmds.js'][757]++; + utils.each(arr, (function (node) { + _$jscoverage['plugins/table.cmds.js'][758]++; + node.style.borderColor = color; +})); + } +})}; + _$jscoverage['plugins/table.cmds.js'][764]++; + UE.commands.edittd = {queryCommandState: (function () { + _$jscoverage['plugins/table.cmds.js'][766]++; + return (getTableItemsByRange(this).table? 0: -1); +}), execCommand: (function (cmd, bkColor) { + _$jscoverage['plugins/table.cmds.js'][769]++; + var me = this, ut = getUETableBySelected(me); + _$jscoverage['plugins/table.cmds.js'][772]++; + if ((! ut)) { + _$jscoverage['plugins/table.cmds.js'][773]++; + var start = me.selection.getStart(), cell = (start && domUtils.findParentByTagName(start, ["td", "th", "caption"], true)); + _$jscoverage['plugins/table.cmds.js'][775]++; + if (cell) { + _$jscoverage['plugins/table.cmds.js'][776]++; + cell.style.backgroundColor = bkColor; + } + } + else { + _$jscoverage['plugins/table.cmds.js'][779]++; + utils.each(ut.selectedTds, (function (cell) { + _$jscoverage['plugins/table.cmds.js'][780]++; + cell.style.backgroundColor = bkColor; +})); + } +})}; + _$jscoverage['plugins/table.cmds.js'][785]++; + UE.commands.sorttable = {queryCommandState: (function () { + _$jscoverage['plugins/table.cmds.js'][787]++; + var me = this, tableItems = getTableItemsByRange(me); + _$jscoverage['plugins/table.cmds.js'][789]++; + if ((! tableItems.cell)) { + _$jscoverage['plugins/table.cmds.js'][789]++; + return -1; + } + _$jscoverage['plugins/table.cmds.js'][790]++; + var table = tableItems.table, cells = table.getElementsByTagName("td"); + _$jscoverage['plugins/table.cmds.js'][792]++; + for (var i = 0, cell; (cell = cells[(i++)]);) { + _$jscoverage['plugins/table.cmds.js'][793]++; + if (((cell.rowSpan != 1) || (cell.colSpan != 1))) { + _$jscoverage['plugins/table.cmds.js'][793]++; + return -1; + } +} + _$jscoverage['plugins/table.cmds.js'][795]++; + return 0; +}), execCommand: (function (cmd, fn) { + _$jscoverage['plugins/table.cmds.js'][798]++; + var me = this, range = me.selection.getRange(), bk = range.createBookmark(true), tableItems = getTableItemsByRange(me), cell = tableItems.cell, ut = getUETable(tableItems.table), cellInfo = ut.getCellInfo(cell); + _$jscoverage['plugins/table.cmds.js'][805]++; + ut.sortTable(cellInfo.cellIndex, fn); + _$jscoverage['plugins/table.cmds.js'][806]++; + range.moveToBookmark(bk).select(); +})}; + _$jscoverage['plugins/table.cmds.js'][810]++; + UE.commands.enablesort = (UE.commands.disablesort = {queryCommandState: (function () { + _$jscoverage['plugins/table.cmds.js'][812]++; + return (getTableItemsByRange(this).table? 0: -1); +}), execCommand: (function (cmd) { + _$jscoverage['plugins/table.cmds.js'][815]++; + var table = getTableItemsByRange(this).table; + _$jscoverage['plugins/table.cmds.js'][816]++; + table.setAttribute("data-sort", ((cmd == "enablesort")? "sortEnabled": "sortDisabled")); +})}); + _$jscoverage['plugins/table.cmds.js'][819]++; + UE.commands.settablebackground = {queryCommandState: (function () { + _$jscoverage['plugins/table.cmds.js'][821]++; + return ((getSelectedArr(this).length > 1)? 0: -1); +}), execCommand: (function (cmd, value) { + _$jscoverage['plugins/table.cmds.js'][824]++; + var table, cells, ut; + _$jscoverage['plugins/table.cmds.js'][825]++; + cells = getSelectedArr(this); + _$jscoverage['plugins/table.cmds.js'][826]++; + ut = getUETable(cells[0]); + _$jscoverage['plugins/table.cmds.js'][827]++; + ut.setBackground(cells, value); +})}; + _$jscoverage['plugins/table.cmds.js'][831]++; + UE.commands.cleartablebackground = {queryCommandState: (function () { + _$jscoverage['plugins/table.cmds.js'][833]++; + var cells = getSelectedArr(this); + _$jscoverage['plugins/table.cmds.js'][834]++; + if ((! cells.length)) { + _$jscoverage['plugins/table.cmds.js'][834]++; + return -1; + } + _$jscoverage['plugins/table.cmds.js'][835]++; + for (var i = 0, cell; (cell = cells[(i++)]);) { + _$jscoverage['plugins/table.cmds.js'][836]++; + if ((cell.style.backgroundColor !== "")) { + _$jscoverage['plugins/table.cmds.js'][836]++; + return 0; + } +} + _$jscoverage['plugins/table.cmds.js'][838]++; + return -1; +}), execCommand: (function () { + _$jscoverage['plugins/table.cmds.js'][841]++; + var cells = getSelectedArr(this), ut = getUETable(cells[0]); + _$jscoverage['plugins/table.cmds.js'][843]++; + ut.removeBackground(cells); +})}; + _$jscoverage['plugins/table.cmds.js'][847]++; + UE.commands.interlacetable = (UE.commands.uninterlacetable = {queryCommandState: (function (cmd) { + _$jscoverage['plugins/table.cmds.js'][849]++; + var table = getTableItemsByRange(this).table; + _$jscoverage['plugins/table.cmds.js'][850]++; + if ((! table)) { + _$jscoverage['plugins/table.cmds.js'][850]++; + return -1; + } + _$jscoverage['plugins/table.cmds.js'][851]++; + var interlaced = table.getAttribute("interlaced"); + _$jscoverage['plugins/table.cmds.js'][852]++; + if ((cmd == "interlacetable")) { + _$jscoverage['plugins/table.cmds.js'][855]++; + return ((interlaced === "enabled")? -1: 0); + } + else { + _$jscoverage['plugins/table.cmds.js'][857]++; + return (((! interlaced) || (interlaced === "disabled"))? -1: 0); + } +}), execCommand: (function (cmd, classList) { + _$jscoverage['plugins/table.cmds.js'][861]++; + var table = getTableItemsByRange(this).table; + _$jscoverage['plugins/table.cmds.js'][862]++; + if ((cmd == "interlacetable")) { + _$jscoverage['plugins/table.cmds.js'][863]++; + table.setAttribute("interlaced", "enabled"); + _$jscoverage['plugins/table.cmds.js'][864]++; + this.fireEvent("interlacetable", table, classList); + } + else { + _$jscoverage['plugins/table.cmds.js'][866]++; + table.setAttribute("interlaced", "disabled"); + _$jscoverage['plugins/table.cmds.js'][867]++; + this.fireEvent("uninterlacetable", table); + } +})}); + _$jscoverage['plugins/table.cmds.js'][872]++; + function resetTdWidth(table, editor) { + _$jscoverage['plugins/table.cmds.js'][873]++; + var tds = table.getElementsByTagName("td"); + _$jscoverage['plugins/table.cmds.js'][874]++; + utils.each(tds, (function (td) { + _$jscoverage['plugins/table.cmds.js'][875]++; + td.removeAttribute("width"); +})); + _$jscoverage['plugins/table.cmds.js'][877]++; + table.setAttribute("width", getTableWidth(editor, true, getDefaultValue(editor, table))); + _$jscoverage['plugins/table.cmds.js'][878]++; + setTimeout((function () { + _$jscoverage['plugins/table.cmds.js'][879]++; + utils.each(tds, (function (td) { + _$jscoverage['plugins/table.cmds.js'][880]++; + ((td.colSpan == 1) && td.setAttribute("width", (td.offsetWidth + ""))); +})); +}), 0); +} + _$jscoverage['plugins/table.cmds.js'][885]++; + function getTableWidth(editor, needIEHack, defaultValue) { + _$jscoverage['plugins/table.cmds.js'][886]++; + var body = editor.body; + _$jscoverage['plugins/table.cmds.js'][887]++; + return (body.offsetWidth - (needIEHack? (parseInt(domUtils.getComputedStyle(body, "margin-left"), 10) * 2): 0) - (defaultValue.tableBorder * 2) - (editor.options.offsetWidth || 0)); +} + _$jscoverage['plugins/table.cmds.js'][890]++; + function getSelectedArr(editor) { + _$jscoverage['plugins/table.cmds.js'][891]++; + var cell = getTableItemsByRange(editor).cell; + _$jscoverage['plugins/table.cmds.js'][892]++; + if (cell) { + _$jscoverage['plugins/table.cmds.js'][893]++; + var ut = getUETable(cell); + _$jscoverage['plugins/table.cmds.js'][894]++; + return (ut.selectedTds.length? ut.selectedTds: [cell]); + } + else { + _$jscoverage['plugins/table.cmds.js'][896]++; + return []; + } +} +})(); diff --git a/_test/coverage/plugins/table.core.js b/_test/coverage/plugins/table.core.js new file mode 100644 index 000000000..1b675a02d --- /dev/null +++ b/_test/coverage/plugins/table.core.js @@ -0,0 +1,2011 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/table.core.js']) { + _$jscoverage['plugins/table.core.js'] = []; + _$jscoverage['plugins/table.core.js'][13] = 0; + _$jscoverage['plugins/table.core.js'][14] = 0; + _$jscoverage['plugins/table.core.js'][15] = 0; + _$jscoverage['plugins/table.core.js'][16] = 0; + _$jscoverage['plugins/table.core.js'][17] = 0; + _$jscoverage['plugins/table.core.js'][18] = 0; + _$jscoverage['plugins/table.core.js'][19] = 0; + _$jscoverage['plugins/table.core.js'][23] = 0; + _$jscoverage['plugins/table.core.js'][24] = 0; + _$jscoverage['plugins/table.core.js'][25] = 0; + _$jscoverage['plugins/table.core.js'][28] = 0; + _$jscoverage['plugins/table.core.js'][29] = 0; + _$jscoverage['plugins/table.core.js'][30] = 0; + _$jscoverage['plugins/table.core.js'][33] = 0; + _$jscoverage['plugins/table.core.js'][34] = 0; + _$jscoverage['plugins/table.core.js'][35] = 0; + _$jscoverage['plugins/table.core.js'][36] = 0; + _$jscoverage['plugins/table.core.js'][38] = 0; + _$jscoverage['plugins/table.core.js'][39] = 0; + _$jscoverage['plugins/table.core.js'][40] = 0; + _$jscoverage['plugins/table.core.js'][43] = 0; + _$jscoverage['plugins/table.core.js'][45] = 0; + _$jscoverage['plugins/table.core.js'][46] = 0; + _$jscoverage['plugins/table.core.js'][47] = 0; + _$jscoverage['plugins/table.core.js'][56] = 0; + _$jscoverage['plugins/table.core.js'][58] = 0; + _$jscoverage['plugins/table.core.js'][60] = 0; + _$jscoverage['plugins/table.core.js'][65] = 0; + _$jscoverage['plugins/table.core.js'][67] = 0; + _$jscoverage['plugins/table.core.js'][69] = 0; + _$jscoverage['plugins/table.core.js'][71] = 0; + _$jscoverage['plugins/table.core.js'][72] = 0; + _$jscoverage['plugins/table.core.js'][73] = 0; + _$jscoverage['plugins/table.core.js'][74] = 0; + _$jscoverage['plugins/table.core.js'][75] = 0; + _$jscoverage['plugins/table.core.js'][80] = 0; + _$jscoverage['plugins/table.core.js'][84] = 0; + _$jscoverage['plugins/table.core.js'][92] = 0; + _$jscoverage['plugins/table.core.js'][93] = 0; + _$jscoverage['plugins/table.core.js'][96] = 0; + _$jscoverage['plugins/table.core.js'][97] = 0; + _$jscoverage['plugins/table.core.js'][101] = 0; + _$jscoverage['plugins/table.core.js'][106] = 0; + _$jscoverage['plugins/table.core.js'][113] = 0; + _$jscoverage['plugins/table.core.js'][114] = 0; + _$jscoverage['plugins/table.core.js'][115] = 0; + _$jscoverage['plugins/table.core.js'][116] = 0; + _$jscoverage['plugins/table.core.js'][118] = 0; + _$jscoverage['plugins/table.core.js'][121] = 0; + _$jscoverage['plugins/table.core.js'][122] = 0; + _$jscoverage['plugins/table.core.js'][128] = 0; + _$jscoverage['plugins/table.core.js'][129] = 0; + _$jscoverage['plugins/table.core.js'][130] = 0; + _$jscoverage['plugins/table.core.js'][131] = 0; + _$jscoverage['plugins/table.core.js'][132] = 0; + _$jscoverage['plugins/table.core.js'][133] = 0; + _$jscoverage['plugins/table.core.js'][134] = 0; + _$jscoverage['plugins/table.core.js'][135] = 0; + _$jscoverage['plugins/table.core.js'][136] = 0; + _$jscoverage['plugins/table.core.js'][137] = 0; + _$jscoverage['plugins/table.core.js'][138] = 0; + _$jscoverage['plugins/table.core.js'][139] = 0; + _$jscoverage['plugins/table.core.js'][140] = 0; + _$jscoverage['plugins/table.core.js'][146] = 0; + _$jscoverage['plugins/table.core.js'][147] = 0; + _$jscoverage['plugins/table.core.js'][148] = 0; + _$jscoverage['plugins/table.core.js'][149] = 0; + _$jscoverage['plugins/table.core.js'][150] = 0; + _$jscoverage['plugins/table.core.js'][151] = 0; + _$jscoverage['plugins/table.core.js'][152] = 0; + _$jscoverage['plugins/table.core.js'][153] = 0; + _$jscoverage['plugins/table.core.js'][164] = 0; + _$jscoverage['plugins/table.core.js'][165] = 0; + _$jscoverage['plugins/table.core.js'][166] = 0; + _$jscoverage['plugins/table.core.js'][167] = 0; + _$jscoverage['plugins/table.core.js'][168] = 0; + _$jscoverage['plugins/table.core.js'][170] = 0; + _$jscoverage['plugins/table.core.js'][173] = 0; + _$jscoverage['plugins/table.core.js'][174] = 0; + _$jscoverage['plugins/table.core.js'][175] = 0; + _$jscoverage['plugins/table.core.js'][177] = 0; + _$jscoverage['plugins/table.core.js'][178] = 0; + _$jscoverage['plugins/table.core.js'][179] = 0; + _$jscoverage['plugins/table.core.js'][180] = 0; + _$jscoverage['plugins/table.core.js'][181] = 0; + _$jscoverage['plugins/table.core.js'][184] = 0; + _$jscoverage['plugins/table.core.js'][185] = 0; + _$jscoverage['plugins/table.core.js'][187] = 0; + _$jscoverage['plugins/table.core.js'][188] = 0; + _$jscoverage['plugins/table.core.js'][189] = 0; + _$jscoverage['plugins/table.core.js'][190] = 0; + _$jscoverage['plugins/table.core.js'][191] = 0; + _$jscoverage['plugins/table.core.js'][192] = 0; + _$jscoverage['plugins/table.core.js'][193] = 0; + _$jscoverage['plugins/table.core.js'][194] = 0; + _$jscoverage['plugins/table.core.js'][197] = 0; + _$jscoverage['plugins/table.core.js'][199] = 0; + _$jscoverage['plugins/table.core.js'][200] = 0; + _$jscoverage['plugins/table.core.js'][201] = 0; + _$jscoverage['plugins/table.core.js'][202] = 0; + _$jscoverage['plugins/table.core.js'][203] = 0; + _$jscoverage['plugins/table.core.js'][205] = 0; + _$jscoverage['plugins/table.core.js'][207] = 0; + _$jscoverage['plugins/table.core.js'][213] = 0; + _$jscoverage['plugins/table.core.js'][214] = 0; + _$jscoverage['plugins/table.core.js'][215] = 0; + _$jscoverage['plugins/table.core.js'][216] = 0; + _$jscoverage['plugins/table.core.js'][217] = 0; + _$jscoverage['plugins/table.core.js'][218] = 0; + _$jscoverage['plugins/table.core.js'][219] = 0; + _$jscoverage['plugins/table.core.js'][220] = 0; + _$jscoverage['plugins/table.core.js'][221] = 0; + _$jscoverage['plugins/table.core.js'][223] = 0; + _$jscoverage['plugins/table.core.js'][229] = 0; + _$jscoverage['plugins/table.core.js'][230] = 0; + _$jscoverage['plugins/table.core.js'][232] = 0; + _$jscoverage['plugins/table.core.js'][243] = 0; + _$jscoverage['plugins/table.core.js'][244] = 0; + _$jscoverage['plugins/table.core.js'][246] = 0; + _$jscoverage['plugins/table.core.js'][249] = 0; + _$jscoverage['plugins/table.core.js'][251] = 0; + _$jscoverage['plugins/table.core.js'][252] = 0; + _$jscoverage['plugins/table.core.js'][254] = 0; + _$jscoverage['plugins/table.core.js'][256] = 0; + _$jscoverage['plugins/table.core.js'][260] = 0; + _$jscoverage['plugins/table.core.js'][264] = 0; + _$jscoverage['plugins/table.core.js'][265] = 0; + _$jscoverage['plugins/table.core.js'][267] = 0; + _$jscoverage['plugins/table.core.js'][268] = 0; + _$jscoverage['plugins/table.core.js'][269] = 0; + _$jscoverage['plugins/table.core.js'][270] = 0; + _$jscoverage['plugins/table.core.js'][274] = 0; + _$jscoverage['plugins/table.core.js'][283] = 0; + _$jscoverage['plugins/table.core.js'][284] = 0; + _$jscoverage['plugins/table.core.js'][286] = 0; + _$jscoverage['plugins/table.core.js'][289] = 0; + _$jscoverage['plugins/table.core.js'][291] = 0; + _$jscoverage['plugins/table.core.js'][293] = 0; + _$jscoverage['plugins/table.core.js'][294] = 0; + _$jscoverage['plugins/table.core.js'][296] = 0; + _$jscoverage['plugins/table.core.js'][303] = 0; + _$jscoverage['plugins/table.core.js'][304] = 0; + _$jscoverage['plugins/table.core.js'][308] = 0; + _$jscoverage['plugins/table.core.js'][309] = 0; + _$jscoverage['plugins/table.core.js'][310] = 0; + _$jscoverage['plugins/table.core.js'][311] = 0; + _$jscoverage['plugins/table.core.js'][313] = 0; + _$jscoverage['plugins/table.core.js'][314] = 0; + _$jscoverage['plugins/table.core.js'][317] = 0; + _$jscoverage['plugins/table.core.js'][318] = 0; + _$jscoverage['plugins/table.core.js'][320] = 0; + _$jscoverage['plugins/table.core.js'][324] = 0; + _$jscoverage['plugins/table.core.js'][326] = 0; + _$jscoverage['plugins/table.core.js'][330] = 0; + _$jscoverage['plugins/table.core.js'][337] = 0; + _$jscoverage['plugins/table.core.js'][338] = 0; + _$jscoverage['plugins/table.core.js'][340] = 0; + _$jscoverage['plugins/table.core.js'][341] = 0; + _$jscoverage['plugins/table.core.js'][342] = 0; + _$jscoverage['plugins/table.core.js'][343] = 0; + _$jscoverage['plugins/table.core.js'][344] = 0; + _$jscoverage['plugins/table.core.js'][345] = 0; + _$jscoverage['plugins/table.core.js'][346] = 0; + _$jscoverage['plugins/table.core.js'][347] = 0; + _$jscoverage['plugins/table.core.js'][351] = 0; + _$jscoverage['plugins/table.core.js'][353] = 0; + _$jscoverage['plugins/table.core.js'][360] = 0; + _$jscoverage['plugins/table.core.js'][361] = 0; + _$jscoverage['plugins/table.core.js'][362] = 0; + _$jscoverage['plugins/table.core.js'][363] = 0; + _$jscoverage['plugins/table.core.js'][364] = 0; + _$jscoverage['plugins/table.core.js'][368] = 0; + _$jscoverage['plugins/table.core.js'][369] = 0; + _$jscoverage['plugins/table.core.js'][371] = 0; + _$jscoverage['plugins/table.core.js'][372] = 0; + _$jscoverage['plugins/table.core.js'][373] = 0; + _$jscoverage['plugins/table.core.js'][374] = 0; + _$jscoverage['plugins/table.core.js'][377] = 0; + _$jscoverage['plugins/table.core.js'][378] = 0; + _$jscoverage['plugins/table.core.js'][380] = 0; + _$jscoverage['plugins/table.core.js'][381] = 0; + _$jscoverage['plugins/table.core.js'][383] = 0; + _$jscoverage['plugins/table.core.js'][387] = 0; + _$jscoverage['plugins/table.core.js'][388] = 0; + _$jscoverage['plugins/table.core.js'][389] = 0; + _$jscoverage['plugins/table.core.js'][390] = 0; + _$jscoverage['plugins/table.core.js'][402] = 0; + _$jscoverage['plugins/table.core.js'][403] = 0; + _$jscoverage['plugins/table.core.js'][404] = 0; + _$jscoverage['plugins/table.core.js'][405] = 0; + _$jscoverage['plugins/table.core.js'][406] = 0; + _$jscoverage['plugins/table.core.js'][407] = 0; + _$jscoverage['plugins/table.core.js'][408] = 0; + _$jscoverage['plugins/table.core.js'][409] = 0; + _$jscoverage['plugins/table.core.js'][410] = 0; + _$jscoverage['plugins/table.core.js'][411] = 0; + _$jscoverage['plugins/table.core.js'][412] = 0; + _$jscoverage['plugins/table.core.js'][423] = 0; + _$jscoverage['plugins/table.core.js'][425] = 0; + _$jscoverage['plugins/table.core.js'][426] = 0; + _$jscoverage['plugins/table.core.js'][427] = 0; + _$jscoverage['plugins/table.core.js'][430] = 0; + _$jscoverage['plugins/table.core.js'][431] = 0; + _$jscoverage['plugins/table.core.js'][435] = 0; + _$jscoverage['plugins/table.core.js'][436] = 0; + _$jscoverage['plugins/table.core.js'][449] = 0; + _$jscoverage['plugins/table.core.js'][450] = 0; + _$jscoverage['plugins/table.core.js'][454] = 0; + _$jscoverage['plugins/table.core.js'][455] = 0; + _$jscoverage['plugins/table.core.js'][456] = 0; + _$jscoverage['plugins/table.core.js'][457] = 0; + _$jscoverage['plugins/table.core.js'][465] = 0; + _$jscoverage['plugins/table.core.js'][471] = 0; + _$jscoverage['plugins/table.core.js'][472] = 0; + _$jscoverage['plugins/table.core.js'][473] = 0; + _$jscoverage['plugins/table.core.js'][479] = 0; + _$jscoverage['plugins/table.core.js'][480] = 0; + _$jscoverage['plugins/table.core.js'][486] = 0; + _$jscoverage['plugins/table.core.js'][487] = 0; + _$jscoverage['plugins/table.core.js'][488] = 0; + _$jscoverage['plugins/table.core.js'][489] = 0; + _$jscoverage['plugins/table.core.js'][490] = 0; + _$jscoverage['plugins/table.core.js'][491] = 0; + _$jscoverage['plugins/table.core.js'][496] = 0; + _$jscoverage['plugins/table.core.js'][497] = 0; + _$jscoverage['plugins/table.core.js'][498] = 0; + _$jscoverage['plugins/table.core.js'][499] = 0; + _$jscoverage['plugins/table.core.js'][500] = 0; + _$jscoverage['plugins/table.core.js'][501] = 0; + _$jscoverage['plugins/table.core.js'][506] = 0; + _$jscoverage['plugins/table.core.js'][507] = 0; + _$jscoverage['plugins/table.core.js'][508] = 0; + _$jscoverage['plugins/table.core.js'][509] = 0; + _$jscoverage['plugins/table.core.js'][510] = 0; + _$jscoverage['plugins/table.core.js'][511] = 0; + _$jscoverage['plugins/table.core.js'][516] = 0; + _$jscoverage['plugins/table.core.js'][517] = 0; + _$jscoverage['plugins/table.core.js'][518] = 0; + _$jscoverage['plugins/table.core.js'][519] = 0; + _$jscoverage['plugins/table.core.js'][520] = 0; + _$jscoverage['plugins/table.core.js'][521] = 0; + _$jscoverage['plugins/table.core.js'][526] = 0; + _$jscoverage['plugins/table.core.js'][527] = 0; + _$jscoverage['plugins/table.core.js'][530] = 0; + _$jscoverage['plugins/table.core.js'][539] = 0; + _$jscoverage['plugins/table.core.js'][540] = 0; + _$jscoverage['plugins/table.core.js'][542] = 0; + _$jscoverage['plugins/table.core.js'][543] = 0; + _$jscoverage['plugins/table.core.js'][550] = 0; + _$jscoverage['plugins/table.core.js'][552] = 0; + _$jscoverage['plugins/table.core.js'][557] = 0; + _$jscoverage['plugins/table.core.js'][567] = 0; + _$jscoverage['plugins/table.core.js'][568] = 0; + _$jscoverage['plugins/table.core.js'][573] = 0; + _$jscoverage['plugins/table.core.js'][574] = 0; + _$jscoverage['plugins/table.core.js'][575] = 0; + _$jscoverage['plugins/table.core.js'][576] = 0; + _$jscoverage['plugins/table.core.js'][577] = 0; + _$jscoverage['plugins/table.core.js'][579] = 0; + _$jscoverage['plugins/table.core.js'][580] = 0; + _$jscoverage['plugins/table.core.js'][581] = 0; + _$jscoverage['plugins/table.core.js'][582] = 0; + _$jscoverage['plugins/table.core.js'][583] = 0; + _$jscoverage['plugins/table.core.js'][585] = 0; + _$jscoverage['plugins/table.core.js'][588] = 0; + _$jscoverage['plugins/table.core.js'][594] = 0; + _$jscoverage['plugins/table.core.js'][595] = 0; + _$jscoverage['plugins/table.core.js'][596] = 0; + _$jscoverage['plugins/table.core.js'][602] = 0; + _$jscoverage['plugins/table.core.js'][603] = 0; + _$jscoverage['plugins/table.core.js'][604] = 0; + _$jscoverage['plugins/table.core.js'][605] = 0; + _$jscoverage['plugins/table.core.js'][608] = 0; + _$jscoverage['plugins/table.core.js'][609] = 0; + _$jscoverage['plugins/table.core.js'][612] = 0; + _$jscoverage['plugins/table.core.js'][616] = 0; + _$jscoverage['plugins/table.core.js'][625] = 0; + _$jscoverage['plugins/table.core.js'][626] = 0; + _$jscoverage['plugins/table.core.js'][628] = 0; + _$jscoverage['plugins/table.core.js'][631] = 0; + _$jscoverage['plugins/table.core.js'][633] = 0; + _$jscoverage['plugins/table.core.js'][635] = 0; + _$jscoverage['plugins/table.core.js'][636] = 0; + _$jscoverage['plugins/table.core.js'][638] = 0; + _$jscoverage['plugins/table.core.js'][642] = 0; + _$jscoverage['plugins/table.core.js'][643] = 0; + _$jscoverage['plugins/table.core.js'][645] = 0; + _$jscoverage['plugins/table.core.js'][648] = 0; + _$jscoverage['plugins/table.core.js'][650] = 0; + _$jscoverage['plugins/table.core.js'][652] = 0; + _$jscoverage['plugins/table.core.js'][654] = 0; + _$jscoverage['plugins/table.core.js'][656] = 0; + _$jscoverage['plugins/table.core.js'][663] = 0; + _$jscoverage['plugins/table.core.js'][664] = 0; + _$jscoverage['plugins/table.core.js'][665] = 0; + _$jscoverage['plugins/table.core.js'][666] = 0; + _$jscoverage['plugins/table.core.js'][668] = 0; + _$jscoverage['plugins/table.core.js'][669] = 0; + _$jscoverage['plugins/table.core.js'][670] = 0; + _$jscoverage['plugins/table.core.js'][672] = 0; + _$jscoverage['plugins/table.core.js'][673] = 0; + _$jscoverage['plugins/table.core.js'][680] = 0; + _$jscoverage['plugins/table.core.js'][685] = 0; + _$jscoverage['plugins/table.core.js'][687] = 0; + _$jscoverage['plugins/table.core.js'][689] = 0; + _$jscoverage['plugins/table.core.js'][691] = 0; + _$jscoverage['plugins/table.core.js'][692] = 0; + _$jscoverage['plugins/table.core.js'][698] = 0; + _$jscoverage['plugins/table.core.js'][702] = 0; + _$jscoverage['plugins/table.core.js'][703] = 0; + _$jscoverage['plugins/table.core.js'][704] = 0; + _$jscoverage['plugins/table.core.js'][705] = 0; + _$jscoverage['plugins/table.core.js'][706] = 0; + _$jscoverage['plugins/table.core.js'][713] = 0; + _$jscoverage['plugins/table.core.js'][716] = 0; + _$jscoverage['plugins/table.core.js'][717] = 0; + _$jscoverage['plugins/table.core.js'][719] = 0; + _$jscoverage['plugins/table.core.js'][720] = 0; + _$jscoverage['plugins/table.core.js'][724] = 0; + _$jscoverage['plugins/table.core.js'][725] = 0; + _$jscoverage['plugins/table.core.js'][726] = 0; + _$jscoverage['plugins/table.core.js'][727] = 0; + _$jscoverage['plugins/table.core.js'][728] = 0; + _$jscoverage['plugins/table.core.js'][732] = 0; + _$jscoverage['plugins/table.core.js'][733] = 0; + _$jscoverage['plugins/table.core.js'][734] = 0; + _$jscoverage['plugins/table.core.js'][735] = 0; + _$jscoverage['plugins/table.core.js'][736] = 0; + _$jscoverage['plugins/table.core.js'][737] = 0; + _$jscoverage['plugins/table.core.js'][740] = 0; + _$jscoverage['plugins/table.core.js'][741] = 0; + _$jscoverage['plugins/table.core.js'][743] = 0; + _$jscoverage['plugins/table.core.js'][744] = 0; + _$jscoverage['plugins/table.core.js'][745] = 0; + _$jscoverage['plugins/table.core.js'][748] = 0; + _$jscoverage['plugins/table.core.js'][749] = 0; + _$jscoverage['plugins/table.core.js'][750] = 0; + _$jscoverage['plugins/table.core.js'][753] = 0; + _$jscoverage['plugins/table.core.js'][755] = 0; + _$jscoverage['plugins/table.core.js'][761] = 0; + _$jscoverage['plugins/table.core.js'][766] = 0; + _$jscoverage['plugins/table.core.js'][767] = 0; + _$jscoverage['plugins/table.core.js'][768] = 0; + _$jscoverage['plugins/table.core.js'][769] = 0; + _$jscoverage['plugins/table.core.js'][770] = 0; + _$jscoverage['plugins/table.core.js'][771] = 0; + _$jscoverage['plugins/table.core.js'][774] = 0; + _$jscoverage['plugins/table.core.js'][776] = 0; + _$jscoverage['plugins/table.core.js'][777] = 0; + _$jscoverage['plugins/table.core.js'][779] = 0; + _$jscoverage['plugins/table.core.js'][780] = 0; + _$jscoverage['plugins/table.core.js'][781] = 0; + _$jscoverage['plugins/table.core.js'][783] = 0; + _$jscoverage['plugins/table.core.js'][784] = 0; + _$jscoverage['plugins/table.core.js'][785] = 0; + _$jscoverage['plugins/table.core.js'][790] = 0; + _$jscoverage['plugins/table.core.js'][791] = 0; + _$jscoverage['plugins/table.core.js'][798] = 0; + _$jscoverage['plugins/table.core.js'][802] = 0; + _$jscoverage['plugins/table.core.js'][803] = 0; + _$jscoverage['plugins/table.core.js'][805] = 0; + _$jscoverage['plugins/table.core.js'][806] = 0; + _$jscoverage['plugins/table.core.js'][807] = 0; + _$jscoverage['plugins/table.core.js'][808] = 0; + _$jscoverage['plugins/table.core.js'][809] = 0; + _$jscoverage['plugins/table.core.js'][810] = 0; + _$jscoverage['plugins/table.core.js'][811] = 0; + _$jscoverage['plugins/table.core.js'][815] = 0; + _$jscoverage['plugins/table.core.js'][816] = 0; + _$jscoverage['plugins/table.core.js'][818] = 0; + _$jscoverage['plugins/table.core.js'][820] = 0; + _$jscoverage['plugins/table.core.js'][822] = 0; + _$jscoverage['plugins/table.core.js'][826] = 0; + _$jscoverage['plugins/table.core.js'][828] = 0; + _$jscoverage['plugins/table.core.js'][829] = 0; + _$jscoverage['plugins/table.core.js'][830] = 0; + _$jscoverage['plugins/table.core.js'][833] = 0; + _$jscoverage['plugins/table.core.js'][834] = 0; + _$jscoverage['plugins/table.core.js'][835] = 0; + _$jscoverage['plugins/table.core.js'][836] = 0; + _$jscoverage['plugins/table.core.js'][838] = 0; + _$jscoverage['plugins/table.core.js'][839] = 0; + _$jscoverage['plugins/table.core.js'][840] = 0; + _$jscoverage['plugins/table.core.js'][841] = 0; + _$jscoverage['plugins/table.core.js'][843] = 0; + _$jscoverage['plugins/table.core.js'][846] = 0; + _$jscoverage['plugins/table.core.js'][847] = 0; + _$jscoverage['plugins/table.core.js'][849] = 0; + _$jscoverage['plugins/table.core.js'][852] = 0; + _$jscoverage['plugins/table.core.js'][855] = 0; + _$jscoverage['plugins/table.core.js'][860] = 0; + _$jscoverage['plugins/table.core.js'][861] = 0; + _$jscoverage['plugins/table.core.js'][862] = 0; + _$jscoverage['plugins/table.core.js'][863] = 0; + _$jscoverage['plugins/table.core.js'][864] = 0; + _$jscoverage['plugins/table.core.js'][865] = 0; + _$jscoverage['plugins/table.core.js'][866] = 0; + _$jscoverage['plugins/table.core.js'][867] = 0; + _$jscoverage['plugins/table.core.js'][870] = 0; + _$jscoverage['plugins/table.core.js'][871] = 0; + _$jscoverage['plugins/table.core.js'][872] = 0; + _$jscoverage['plugins/table.core.js'][873] = 0; + _$jscoverage['plugins/table.core.js'][874] = 0; + _$jscoverage['plugins/table.core.js'][879] = 0; + _$jscoverage['plugins/table.core.js'][880] = 0; + _$jscoverage['plugins/table.core.js'][881] = 0; + _$jscoverage['plugins/table.core.js'][882] = 0; + _$jscoverage['plugins/table.core.js'][883] = 0; + _$jscoverage['plugins/table.core.js'][884] = 0; + _$jscoverage['plugins/table.core.js'][885] = 0; + _$jscoverage['plugins/table.core.js'][886] = 0; + _$jscoverage['plugins/table.core.js'][887] = 0; + _$jscoverage['plugins/table.core.js'][888] = 0; + _$jscoverage['plugins/table.core.js'][889] = 0; + _$jscoverage['plugins/table.core.js'][891] = 0; + _$jscoverage['plugins/table.core.js'][893] = 0; + _$jscoverage['plugins/table.core.js'][896] = 0; + _$jscoverage['plugins/table.core.js'][897] = 0; + _$jscoverage['plugins/table.core.js'][898] = 0; + _$jscoverage['plugins/table.core.js'][899] = 0; + _$jscoverage['plugins/table.core.js'][900] = 0; + _$jscoverage['plugins/table.core.js'][902] = 0; + _$jscoverage['plugins/table.core.js'][903] = 0; + _$jscoverage['plugins/table.core.js'][905] = 0; + _$jscoverage['plugins/table.core.js'][906] = 0; + _$jscoverage['plugins/table.core.js'][907] = 0; + _$jscoverage['plugins/table.core.js'][908] = 0; + _$jscoverage['plugins/table.core.js'][910] = 0; + _$jscoverage['plugins/table.core.js'][912] = 0; + _$jscoverage['plugins/table.core.js'][916] = 0; + _$jscoverage['plugins/table.core.js'][917] = 0; + _$jscoverage['plugins/table.core.js'][920] = 0; + _$jscoverage['plugins/table.core.js'][922] = 0; + _$jscoverage['plugins/table.core.js'][923] = 0; + _$jscoverage['plugins/table.core.js'][924] = 0; + _$jscoverage['plugins/table.core.js'][926] = 0; + _$jscoverage['plugins/table.core.js'][927] = 0; + _$jscoverage['plugins/table.core.js'][928] = 0; + _$jscoverage['plugins/table.core.js'][932] = 0; + _$jscoverage['plugins/table.core.js'][938] = 0; + _$jscoverage['plugins/table.core.js'][939] = 0; + _$jscoverage['plugins/table.core.js'][943] = 0; + _$jscoverage['plugins/table.core.js'][944] = 0; + _$jscoverage['plugins/table.core.js'][945] = 0; + _$jscoverage['plugins/table.core.js'][946] = 0; + _$jscoverage['plugins/table.core.js'][948] = 0; + _$jscoverage['plugins/table.core.js'][949] = 0; + _$jscoverage['plugins/table.core.js'][951] = 0; + _$jscoverage['plugins/table.core.js'][953] = 0; + _$jscoverage['plugins/table.core.js'][955] = 0; + _$jscoverage['plugins/table.core.js'][956] = 0; + _$jscoverage['plugins/table.core.js'][959] = 0; + _$jscoverage['plugins/table.core.js'][961] = 0; + _$jscoverage['plugins/table.core.js'][962] = 0; + _$jscoverage['plugins/table.core.js'][966] = 0; + _$jscoverage['plugins/table.core.js'][971] = 0; + _$jscoverage['plugins/table.core.js'][972] = 0; + _$jscoverage['plugins/table.core.js'][974] = 0; + _$jscoverage['plugins/table.core.js'][975] = 0; + _$jscoverage['plugins/table.core.js'][976] = 0; + _$jscoverage['plugins/table.core.js'][978] = 0; + _$jscoverage['plugins/table.core.js'][979] = 0; + _$jscoverage['plugins/table.core.js'][980] = 0; + _$jscoverage['plugins/table.core.js'][981] = 0; + _$jscoverage['plugins/table.core.js'][982] = 0; + _$jscoverage['plugins/table.core.js'][983] = 0; + _$jscoverage['plugins/table.core.js'][985] = 0; + _$jscoverage['plugins/table.core.js'][987] = 0; + _$jscoverage['plugins/table.core.js'][988] = 0; + _$jscoverage['plugins/table.core.js'][991] = 0; + _$jscoverage['plugins/table.core.js'][993] = 0; + _$jscoverage['plugins/table.core.js'][994] = 0; + _$jscoverage['plugins/table.core.js'][996] = 0; + _$jscoverage['plugins/table.core.js'][997] = 0; + _$jscoverage['plugins/table.core.js'][999] = 0; + _$jscoverage['plugins/table.core.js'][1002] = 0; + _$jscoverage['plugins/table.core.js'][1009] = 0; + _$jscoverage['plugins/table.core.js'][1010] = 0; + _$jscoverage['plugins/table.core.js'][1011] = 0; + _$jscoverage['plugins/table.core.js'][1013] = 0; + _$jscoverage['plugins/table.core.js'][1014] = 0; + _$jscoverage['plugins/table.core.js'][1015] = 0; + _$jscoverage['plugins/table.core.js'][1017] = 0; + _$jscoverage['plugins/table.core.js'][1018] = 0; + _$jscoverage['plugins/table.core.js'][1019] = 0; + _$jscoverage['plugins/table.core.js'][1020] = 0; + _$jscoverage['plugins/table.core.js'][1021] = 0; + _$jscoverage['plugins/table.core.js'][1022] = 0; + _$jscoverage['plugins/table.core.js'][1023] = 0; + _$jscoverage['plugins/table.core.js'][1026] = 0; + _$jscoverage['plugins/table.core.js'][1027] = 0; + _$jscoverage['plugins/table.core.js'][1028] = 0; + _$jscoverage['plugins/table.core.js'][1029] = 0; + _$jscoverage['plugins/table.core.js'][1030] = 0; + _$jscoverage['plugins/table.core.js'][1031] = 0; + _$jscoverage['plugins/table.core.js'][1032] = 0; + _$jscoverage['plugins/table.core.js'][1034] = 0; + _$jscoverage['plugins/table.core.js'][1036] = 0; + _$jscoverage['plugins/table.core.js'][1037] = 0; + _$jscoverage['plugins/table.core.js'][1040] = 0; + _$jscoverage['plugins/table.core.js'][1041] = 0; + _$jscoverage['plugins/table.core.js'][1042] = 0; + _$jscoverage['plugins/table.core.js'][1043] = 0; + _$jscoverage['plugins/table.core.js'][1047] = 0; + _$jscoverage['plugins/table.core.js'][1048] = 0; + _$jscoverage['plugins/table.core.js'][1049] = 0; + _$jscoverage['plugins/table.core.js'][1052] = 0; + _$jscoverage['plugins/table.core.js'][1053] = 0; + _$jscoverage['plugins/table.core.js'][1054] = 0; + _$jscoverage['plugins/table.core.js'][1056] = 0; + _$jscoverage['plugins/table.core.js'][1057] = 0; + _$jscoverage['plugins/table.core.js'][1058] = 0; + _$jscoverage['plugins/table.core.js'][1059] = 0; + _$jscoverage['plugins/table.core.js'][1060] = 0; + _$jscoverage['plugins/table.core.js'][1063] = 0; + _$jscoverage['plugins/table.core.js'][1067] = 0; + _$jscoverage['plugins/table.core.js'][1071] = 0; + _$jscoverage['plugins/table.core.js'][1074] = 0; + _$jscoverage['plugins/table.core.js'][1076] = 0; + _$jscoverage['plugins/table.core.js'][1079] = 0; + _$jscoverage['plugins/table.core.js'][1084] = 0; + _$jscoverage['plugins/table.core.js'][1085] = 0; + _$jscoverage['plugins/table.core.js'][1087] = 0; + _$jscoverage['plugins/table.core.js'][1088] = 0; + _$jscoverage['plugins/table.core.js'][1090] = 0; + _$jscoverage['plugins/table.core.js'][1091] = 0; + _$jscoverage['plugins/table.core.js'][1093] = 0; + _$jscoverage['plugins/table.core.js'][1094] = 0; + _$jscoverage['plugins/table.core.js'][1098] = 0; + _$jscoverage['plugins/table.core.js'][1099] = 0; + _$jscoverage['plugins/table.core.js'][1100] = 0; + _$jscoverage['plugins/table.core.js'][1101] = 0; + _$jscoverage['plugins/table.core.js'][1103] = 0; + _$jscoverage['plugins/table.core.js'][1104] = 0; + _$jscoverage['plugins/table.core.js'][1106] = 0; + _$jscoverage['plugins/table.core.js'][1109] = 0; + _$jscoverage['plugins/table.core.js'][1110] = 0; + _$jscoverage['plugins/table.core.js'][1111] = 0; + _$jscoverage['plugins/table.core.js'][1113] = 0; + _$jscoverage['plugins/table.core.js'][1114] = 0; + _$jscoverage['plugins/table.core.js'][1115] = 0; + _$jscoverage['plugins/table.core.js'][1117] = 0; + _$jscoverage['plugins/table.core.js'][1121] = 0; + _$jscoverage['plugins/table.core.js'][1122] = 0; + _$jscoverage['plugins/table.core.js'][1123] = 0; + _$jscoverage['plugins/table.core.js'][1125] = 0; + _$jscoverage['plugins/table.core.js'][1126] = 0; + _$jscoverage['plugins/table.core.js'][1130] = 0; + _$jscoverage['plugins/table.core.js'][1134] = 0; + _$jscoverage['plugins/table.core.js'][1136] = 0; + _$jscoverage['plugins/table.core.js'][1137] = 0; + _$jscoverage['plugins/table.core.js'][1138] = 0; + _$jscoverage['plugins/table.core.js'][1143] = 0; + _$jscoverage['plugins/table.core.js'][1144] = 0; + _$jscoverage['plugins/table.core.js'][1150] = 0; +} +_$jscoverage['plugins/table.core.js'].source = ["/*"," * Created with JetBrains WebStorm."," * User: taoqili"," * Date: 13-1-18"," * Time: 上午11:09"," * To change this template use File | Settings | File Templates."," */","/*"," * UE表格操作类"," * @param table"," * @constructor"," */","(function () {"," var UETable = UE.UETable = function (table) {"," this.table = table;"," this.indexTable = [];"," this.selectedTds = [];"," this.cellsRange = {};"," this.update(table);"," };",""," //===以下为静态工具方法==="," UETable.removeSelectedClass = function (cells) {"," utils.each(cells, function (cell) {"," domUtils.removeClasses(cell, \"selectTdClass\");"," })"," };"," UETable.addSelectedClass = function (cells) {"," utils.each(cells, function (cell) {"," domUtils.addClass(cell, \"selectTdClass\");"," })"," };"," UETable.isEmptyBlock = function (node) {"," var reg = new RegExp(domUtils.fillChar, 'g');"," if (node[browser.ie ? 'innerText' : 'textContent'].replace(/^\\s*$/, '').replace(reg, '').length > 0) {"," return 0;"," }"," for (var i in dtd.$isNotEmpty) if (dtd.$isNotEmpty.hasOwnProperty(i)) {"," if (node.getElementsByTagName(i).length) {"," return 0;"," }"," }"," return 1;"," };"," UETable.getWidth = function (cell) {"," if (!cell)return 0;"," return parseInt(domUtils.getComputedStyle(cell, \"width\"), 10);"," };",""," /*"," * 获取单元格或者单元格组的“对齐”状态。 如果当前的检测对象是一个单元格组, 只有在满足所有单元格的 水平和竖直 对齐属性都相同的"," * 条件时才会返回其状态值,否则将返回null; 如果当前只检测了一个单元格, 则直接返回当前单元格的对齐状态;"," * @param table cell or table cells , 支持单个单元格dom对象 或者 单元格dom对象数组"," * @return { align: 'left' || 'right' || 'center', valign: 'top' || 'middle' || 'bottom' } 或者 null"," */"," UETable.getTableCellAlignState = function ( cells ) {",""," !utils.isArray( cells ) && ( cells = [cells] );",""," var result = {},"," status = ['align', 'valign'],"," tempStatus = null,"," isSame = true;//状态是否相同",""," utils.each( cells, function( cellNode ){",""," utils.each( status, function( currentState ){",""," tempStatus = cellNode.getAttribute( currentState );",""," if( !result[ currentState ] && tempStatus ) {"," result[ currentState ] = tempStatus;"," } else if( !result[ currentState ] || ( tempStatus !== result[ currentState ] ) ) {"," isSame = false;"," return false;"," }",""," } );",""," return isSame;",""," });",""," return isSame ? result : null;",""," };",""," /*"," * 根据当前选区获取相关的table信息"," * @return {Object}"," */"," UETable.getTableItemsByRange = function (editor) {"," var start = editor.selection.getStart();",""," //ff下会选中bookmark"," if( start && start.id && start.id.indexOf('_baidu_bookmark_start_') === 0 ) {"," start = start.nextSibling;"," }",""," //在table或者td边缘有可能存在选中tr的情况"," var cell = start && domUtils.findParentByTagName(start, [\"td\", \"th\"], true),"," tr = cell && cell.parentNode,"," caption = start && domUtils.findParentByTagName(start, 'caption', true),"," table = caption ? caption.parentNode : tr && tr.parentNode.parentNode;",""," return {"," cell:cell,"," tr:tr,"," table:table,"," caption:caption"," }"," };"," UETable.getUETableBySelected = function (editor) {"," var table = UETable.getTableItemsByRange(editor).table;"," if (table && table.ueTable && table.ueTable.selectedTds.length) {"," return table.ueTable;"," }"," return null;"," };",""," UETable.getDefaultValue = function (editor, table) {"," var borderMap = {"," thin:'0px',"," medium:'1px',"," thick:'2px'"," },"," tableBorder, tdPadding, tdBorder, tmpValue;"," if (!table) {"," table = editor.document.createElement('table');"," table.insertRow(0).insertCell(0).innerHTML = 'xxx';"," editor.body.appendChild(table);"," var td = table.getElementsByTagName('td')[0];"," tmpValue = domUtils.getComputedStyle(table, 'border-left-width');"," tableBorder = parseInt(borderMap[tmpValue] || tmpValue, 10);"," tmpValue = domUtils.getComputedStyle(td, 'padding-left');"," tdPadding = parseInt(borderMap[tmpValue] || tmpValue, 10);"," tmpValue = domUtils.getComputedStyle(td, 'border-left-width');"," tdBorder = parseInt(borderMap[tmpValue] || tmpValue, 10);"," domUtils.remove(table);"," return {"," tableBorder:tableBorder,"," tdPadding:tdPadding,"," tdBorder:tdBorder"," };"," } else {"," td = table.getElementsByTagName('td')[0];"," tmpValue = domUtils.getComputedStyle(table, 'border-left-width');"," tableBorder = parseInt(borderMap[tmpValue] || tmpValue, 10);"," tmpValue = domUtils.getComputedStyle(td, 'padding-left');"," tdPadding = parseInt(borderMap[tmpValue] || tmpValue, 10);"," tmpValue = domUtils.getComputedStyle(td, 'border-left-width');"," tdBorder = parseInt(borderMap[tmpValue] || tmpValue, 10);"," return {"," tableBorder:tableBorder,"," tdPadding:tdPadding,"," tdBorder:tdBorder"," };"," }"," };"," /*"," * 根据当前点击的td或者table获取索引对象"," * @param tdOrTable"," */"," UETable.getUETable = function (tdOrTable) {"," var tag = tdOrTable.tagName.toLowerCase();"," tdOrTable = (tag == \"td\" || tag == \"th\" || tag == 'caption') ? domUtils.findParentByTagName(tdOrTable, \"table\", true) : tdOrTable;"," if (!tdOrTable.ueTable) {"," tdOrTable.ueTable = new UETable(tdOrTable);"," }"," return tdOrTable.ueTable;"," };",""," UETable.cloneCell = function(cell,ignoreMerge,keepPro){"," if (!cell || utils.isString(cell)) {"," return this.table.ownerDocument.createElement(cell || 'td');"," }"," var flag = domUtils.hasClass(cell, \"selectTdClass\");"," flag && domUtils.removeClasses(cell, \"selectTdClass\");"," var tmpCell = cell.cloneNode(true);"," if (ignoreMerge) {"," tmpCell.rowSpan = tmpCell.colSpan = 1;"," }"," //去掉宽高"," !keepPro && domUtils.removeAttributes(tmpCell,'width height');"," !keepPro && domUtils.removeAttributes(tmpCell,'style');",""," tmpCell.style.borderLeftStyle = \"\";"," tmpCell.style.borderTopStyle = \"\";"," tmpCell.style.borderLeftColor = cell.style.borderRightColor;"," tmpCell.style.borderLeftWidth = cell.style.borderRightWidth;"," tmpCell.style.borderTopColor = cell.style.borderBottomColor;"," tmpCell.style.borderTopWidth = cell.style.borderBottomWidth;"," flag && domUtils.addClass(cell, \"selectTdClass\");"," return tmpCell;"," }",""," UETable.prototype = {"," getMaxRows:function () {"," var rows = this.table.rows, maxLen = 1;"," for (var i = 0, row; row = rows[i]; i++) {"," var currentMax = 1;"," for (var j = 0, cj; cj = row.cells[j++];) {"," currentMax = Math.max(cj.rowSpan || 1, currentMax);"," }"," maxLen = Math.max(currentMax + i, maxLen);"," }"," return maxLen;"," },"," /*"," * 获取当前表格的最大列数"," */"," getMaxCols:function () {"," var rows = this.table.rows, maxLen = 0, cellRows = {};"," for (var i = 0, row; row = rows[i]; i++) {"," var cellsNum = 0;"," for (var j = 0, cj; cj = row.cells[j++];) {"," cellsNum += (cj.colSpan || 1);"," if (cj.rowSpan && cj.rowSpan > 1) {"," for (var k = 1; k < cj.rowSpan; k++) {"," if (!cellRows['row_' + (i + k)]) {"," cellRows['row_' + (i + k)] = (cj.colSpan || 1);"," } else {"," cellRows['row_' + (i + k)]++"," }"," }",""," }"," }"," cellsNum += cellRows['row_' + i] || 0;"," maxLen = Math.max(cellsNum, maxLen);"," }"," return maxLen;"," },"," getCellColIndex:function (cell) {",""," },"," /*"," * 获取当前cell旁边的单元格,"," * @param cell"," * @param right"," */"," getHSideCell:function (cell, right) {"," try {"," var cellInfo = this.getCellInfo(cell),"," previewRowIndex, previewColIndex;"," var len = this.selectedTds.length,"," range = this.cellsRange;"," //首行或者首列没有前置单元格"," if ((!right && (!len ? !cellInfo.colIndex : !range.beginColIndex)) || (right && (!len ? (cellInfo.colIndex == (this.colsNum - 1)) : (range.endColIndex == this.colsNum - 1)))) return null;",""," previewRowIndex = !len ? cellInfo.rowIndex : range.beginRowIndex;"," previewColIndex = !right ? ( !len ? (cellInfo.colIndex < 1 ? 0 : (cellInfo.colIndex - 1)) : range.beginColIndex - 1)"," : ( !len ? cellInfo.colIndex + 1 : range.endColIndex + 1);"," return this.getCell(this.indexTable[previewRowIndex][previewColIndex].rowIndex, this.indexTable[previewRowIndex][previewColIndex].cellIndex);"," } catch (e) {"," showError(e);"," }"," },"," getTabNextCell:function (cell, preRowIndex) {"," var cellInfo = this.getCellInfo(cell),"," rowIndex = preRowIndex || cellInfo.rowIndex,"," colIndex = cellInfo.colIndex + 1 + (cellInfo.colSpan - 1),"," nextCell;"," try {"," nextCell = this.getCell(this.indexTable[rowIndex][colIndex].rowIndex, this.indexTable[rowIndex][colIndex].cellIndex);"," } catch (e) {"," try {"," rowIndex = rowIndex * 1 + 1;"," colIndex = 0;"," nextCell = this.getCell(this.indexTable[rowIndex][colIndex].rowIndex, this.indexTable[rowIndex][colIndex].cellIndex);"," } catch (e) {"," }"," }"," return nextCell;",""," },"," /*"," * 获取视觉上的后置单元格"," * @param cell"," * @param bottom"," */"," getVSideCell:function (cell, bottom, ignoreRange) {"," try {"," var cellInfo = this.getCellInfo(cell),"," nextRowIndex, nextColIndex;"," var len = this.selectedTds.length && !ignoreRange,"," range = this.cellsRange;"," //末行或者末列没有后置单元格"," if ((!bottom && (cellInfo.rowIndex == 0)) || (bottom && (!len ? (cellInfo.rowIndex + cellInfo.rowSpan > this.rowsNum - 1) : (range.endRowIndex == this.rowsNum - 1)))) return null;",""," nextRowIndex = !bottom ? ( !len ? cellInfo.rowIndex - 1 : range.beginRowIndex - 1)"," : ( !len ? (cellInfo.rowIndex + cellInfo.rowSpan) : range.endRowIndex + 1);"," nextColIndex = !len ? cellInfo.colIndex : range.beginColIndex;"," return this.getCell(this.indexTable[nextRowIndex][nextColIndex].rowIndex, this.indexTable[nextRowIndex][nextColIndex].cellIndex);"," } catch (e) {"," showError(e);"," }"," },"," /*"," * 获取相同结束位置的单元格,xOrY指代了是获取x轴相同还是y轴相同"," */"," getSameEndPosCells:function (cell, xOrY) {"," try {"," var flag = (xOrY.toLowerCase() === \"x\"),"," end = domUtils.getXY(cell)[flag ? 'x' : 'y'] + cell[\"offset\" + (flag ? 'Width' : 'Height')],"," rows = this.table.rows,"," cells = null, returns = [];"," for (var i = 0; i < this.rowsNum; i++) {"," cells = rows[i].cells;"," for (var j = 0, tmpCell; tmpCell = cells[j++];) {"," var tmpEnd = domUtils.getXY(tmpCell)[flag ? 'x' : 'y'] + tmpCell[\"offset\" + (flag ? 'Width' : 'Height')];"," //对应行的td已经被上面行rowSpan了"," if (tmpEnd > end && flag) break;"," if (cell == tmpCell || end == tmpEnd) {"," //只获取单一的单元格"," //todo 仅获取单一单元格在特定情况下会造成returns为空,从而影响后续的拖拽实现,修正这个。需考虑性能"," if (tmpCell[flag ? \"colSpan\" : \"rowSpan\"] == 1) {"," returns.push(tmpCell);"," }"," if (flag) break;"," }"," }"," }"," return returns;"," } catch (e) {"," showError(e);"," }"," },"," setCellContent:function (cell, content) {"," cell.innerHTML = content || (browser.ie ? domUtils.fillChar : \"<br />\");"," },"," cloneCell:UETable.cloneCell,"," /*"," * 获取跟当前单元格的右边竖线为左边的所有未合并单元格"," */"," getSameStartPosXCells:function (cell) {"," try {"," var start = domUtils.getXY(cell).x + cell.offsetWidth,"," rows = this.table.rows, cells , returns = [];"," for (var i = 0; i < this.rowsNum; i++) {"," cells = rows[i].cells;"," for (var j = 0, tmpCell; tmpCell = cells[j++];) {"," var tmpStart = domUtils.getXY(tmpCell).x;"," if (tmpStart > start) break;"," if (tmpStart == start && tmpCell.colSpan == 1) {"," returns.push(tmpCell);"," break;"," }"," }"," }"," return returns;"," } catch (e) {"," showError(e);"," }"," },"," /*"," * 更新table对应的索引表"," */"," update:function (table) {"," this.table = table || this.table;"," this.selectedTds = [];"," this.cellsRange = {};"," this.indexTable = [];"," var rows = this.table.rows,"," rowsNum = this.getMaxRows(),"," dNum = rowsNum - rows.length,"," colsNum = this.getMaxCols();"," while (dNum--) {"," this.table.insertRow(rows.length);"," }"," this.rowsNum = rowsNum;"," this.colsNum = colsNum;"," for (var i = 0, len = rows.length; i < len; i++) {"," this.indexTable[i] = new Array(colsNum);"," }"," //填充索引表"," for (var rowIndex = 0, row; row = rows[rowIndex]; rowIndex++) {"," for (var cellIndex = 0, cell, cells = row.cells; cell = cells[cellIndex]; cellIndex++) {"," //修正整行被rowSpan时导致的行数计算错误"," if (cell.rowSpan > rowsNum) {"," cell.rowSpan = rowsNum;"," }"," var colIndex = cellIndex,"," rowSpan = cell.rowSpan || 1,"," colSpan = cell.colSpan || 1;"," //当已经被上一行rowSpan或者被前一列colSpan了,则跳到下一个单元格进行"," while (this.indexTable[rowIndex][colIndex]) colIndex++;"," for (var j = 0; j < rowSpan; j++) {"," for (var k = 0; k < colSpan; k++) {"," this.indexTable[rowIndex + j][colIndex + k] = {"," rowIndex:rowIndex,"," cellIndex:cellIndex,"," colIndex:colIndex,"," rowSpan:rowSpan,"," colSpan:colSpan"," }"," }"," }"," }"," }"," //修复残缺td"," for (j = 0; j < rowsNum; j++) {"," for (k = 0; k < colsNum; k++) {"," if (this.indexTable[j][k] === undefined) {"," row = rows[j];"," cell = row.cells[row.cells.length - 1];"," cell = cell ? cell.cloneNode(true) : this.table.ownerDocument.createElement(\"td\");"," this.setCellContent(cell);"," if (cell.colSpan !== 1)cell.colSpan = 1;"," if (cell.rowSpan !== 1)cell.rowSpan = 1;"," row.appendChild(cell);"," this.indexTable[j][k] = {"," rowIndex:j,"," cellIndex:cell.cellIndex,"," colIndex:k,"," rowSpan:1,"," colSpan:1"," }"," }"," }"," }"," //当框选后删除行或者列后撤销,需要重建选区。"," var tds = domUtils.getElementsByTagName(this.table, \"td\"),"," selectTds = [];"," utils.each(tds, function (td) {"," if (domUtils.hasClass(td, \"selectTdClass\")) {"," selectTds.push(td);"," }"," });"," if (selectTds.length) {"," var start = selectTds[0],"," end = selectTds[selectTds.length - 1],"," startInfo = this.getCellInfo(start),"," endInfo = this.getCellInfo(end);"," this.selectedTds = selectTds;"," this.cellsRange = {"," beginRowIndex:startInfo.rowIndex,"," beginColIndex:startInfo.colIndex,"," endRowIndex:endInfo.rowIndex + endInfo.rowSpan - 1,"," endColIndex:endInfo.colIndex + endInfo.colSpan - 1"," };"," }",""," },"," /*"," * 获取单元格的索引信息"," */"," getCellInfo:function (cell) {"," if (!cell) return;"," var cellIndex = cell.cellIndex,"," rowIndex = cell.parentNode.rowIndex,"," rowInfo = this.indexTable[rowIndex],"," numCols = this.colsNum;"," for (var colIndex = cellIndex; colIndex < numCols; colIndex++) {"," var cellInfo = rowInfo[colIndex];"," if (cellInfo.rowIndex === rowIndex && cellInfo.cellIndex === cellIndex) {"," return cellInfo;"," }"," }"," },"," /*"," * 根据行列号获取单元格"," */"," getCell:function (rowIndex, cellIndex) {"," return rowIndex < this.rowsNum && this.table.rows[rowIndex].cells[cellIndex] || null;"," },"," /*"," * 删除单元格"," */"," deleteCell:function (cell, rowIndex) {"," rowIndex = typeof rowIndex == 'number' ? rowIndex : cell.parentNode.rowIndex;"," var row = this.table.rows[rowIndex];"," row.deleteCell(cell.cellIndex);"," },"," /*"," * 根据始末两个单元格获取被框选的所有单元格范围"," */"," getCellsRange:function (cellA, cellB) {"," function checkRange(beginRowIndex, beginColIndex, endRowIndex, endColIndex) {"," var tmpBeginRowIndex = beginRowIndex,"," tmpBeginColIndex = beginColIndex,"," tmpEndRowIndex = endRowIndex,"," tmpEndColIndex = endColIndex,"," cellInfo, colIndex, rowIndex;"," // 通过indexTable检查是否存在超出TableRange上边界的情况"," if (beginRowIndex > 0) {"," for (colIndex = beginColIndex; colIndex < endColIndex; colIndex++) {"," cellInfo = me.indexTable[beginRowIndex][colIndex];"," rowIndex = cellInfo.rowIndex;"," if (rowIndex < beginRowIndex) {"," tmpBeginRowIndex = Math.min(rowIndex, tmpBeginRowIndex);"," }"," }"," }"," // 通过indexTable检查是否存在超出TableRange右边界的情况"," if (endColIndex < me.colsNum) {"," for (rowIndex = beginRowIndex; rowIndex < endRowIndex; rowIndex++) {"," cellInfo = me.indexTable[rowIndex][endColIndex];"," colIndex = cellInfo.colIndex + cellInfo.colSpan - 1;"," if (colIndex > endColIndex) {"," tmpEndColIndex = Math.max(colIndex, tmpEndColIndex);"," }"," }"," }"," // 检查是否有超出TableRange下边界的情况"," if (endRowIndex < me.rowsNum) {"," for (colIndex = beginColIndex; colIndex < endColIndex; colIndex++) {"," cellInfo = me.indexTable[endRowIndex][colIndex];"," rowIndex = cellInfo.rowIndex + cellInfo.rowSpan - 1;"," if (rowIndex > endRowIndex) {"," tmpEndRowIndex = Math.max(rowIndex, tmpEndRowIndex);"," }"," }"," }"," // 检查是否有超出TableRange左边界的情况"," if (beginColIndex > 0) {"," for (rowIndex = beginRowIndex; rowIndex < endRowIndex; rowIndex++) {"," cellInfo = me.indexTable[rowIndex][beginColIndex];"," colIndex = cellInfo.colIndex;"," if (colIndex < beginColIndex) {"," tmpBeginColIndex = Math.min(cellInfo.colIndex, tmpBeginColIndex);"," }"," }"," }"," //递归调用直至所有完成所有框选单元格的扩展"," if (tmpBeginRowIndex != beginRowIndex || tmpBeginColIndex != beginColIndex || tmpEndRowIndex != endRowIndex || tmpEndColIndex != endColIndex) {"," return checkRange(tmpBeginRowIndex, tmpBeginColIndex, tmpEndRowIndex, tmpEndColIndex);"," } else {"," // 不需要扩展TableRange的情况"," return {"," beginRowIndex:beginRowIndex,"," beginColIndex:beginColIndex,"," endRowIndex:endRowIndex,"," endColIndex:endColIndex"," };"," }"," }",""," try {"," var me = this,"," cellAInfo = me.getCellInfo(cellA);"," if (cellA === cellB) {"," return {"," beginRowIndex:cellAInfo.rowIndex,"," beginColIndex:cellAInfo.colIndex,"," endRowIndex:cellAInfo.rowIndex + cellAInfo.rowSpan - 1,"," endColIndex:cellAInfo.colIndex + cellAInfo.colSpan - 1"," };"," }"," var cellBInfo = me.getCellInfo(cellB);"," // 计算TableRange的四个边"," var beginRowIndex = Math.min(cellAInfo.rowIndex, cellBInfo.rowIndex),"," beginColIndex = Math.min(cellAInfo.colIndex, cellBInfo.colIndex),"," endRowIndex = Math.max(cellAInfo.rowIndex + cellAInfo.rowSpan - 1, cellBInfo.rowIndex + cellBInfo.rowSpan - 1),"," endColIndex = Math.max(cellAInfo.colIndex + cellAInfo.colSpan - 1, cellBInfo.colIndex + cellBInfo.colSpan - 1);",""," return checkRange(beginRowIndex, beginColIndex, endRowIndex, endColIndex);"," } catch (e) {"," //throw e;"," }"," },"," /*"," * 依据cellsRange获取对应的单元格集合"," */"," getCells:function (range) {"," //每次获取cells之前必须先清除上次的选择,否则会对后续获取操作造成影响"," this.clearSelected();"," var beginRowIndex = range.beginRowIndex,"," beginColIndex = range.beginColIndex,"," endRowIndex = range.endRowIndex,"," endColIndex = range.endColIndex,"," cellInfo, rowIndex, colIndex, tdHash = {}, returnTds = [];"," for (var i = beginRowIndex; i <= endRowIndex; i++) {"," for (var j = beginColIndex; j <= endColIndex; j++) {"," cellInfo = this.indexTable[i][j];"," rowIndex = cellInfo.rowIndex;"," colIndex = cellInfo.colIndex;"," // 如果Cells里已经包含了此Cell则跳过"," var key = rowIndex + '|' + colIndex;"," if (tdHash[key]) continue;"," tdHash[key] = 1;"," if (rowIndex < i || colIndex < j || rowIndex + cellInfo.rowSpan - 1 > endRowIndex || colIndex + cellInfo.colSpan - 1 > endColIndex) {"," return null;"," }"," returnTds.push(this.getCell(rowIndex, cellInfo.cellIndex));"," }"," }"," return returnTds;"," },"," /*"," * 清理已经选中的单元格"," */"," clearSelected:function () {"," UETable.removeSelectedClass(this.selectedTds);"," this.selectedTds = [];"," this.cellsRange = {};"," },"," /*"," * 根据range设置已经选中的单元格"," */"," setSelected:function (range) {"," var cells = this.getCells(range);"," UETable.addSelectedClass(cells);"," this.selectedTds = cells;"," this.cellsRange = range;"," },"," isFullRow:function () {"," var range = this.cellsRange;"," return (range.endColIndex - range.beginColIndex + 1) == this.colsNum;"," },"," isFullCol:function () {"," var range = this.cellsRange,"," table = this.table,"," ths = table.getElementsByTagName(\"th\"),"," rows = range.endRowIndex - range.beginRowIndex + 1;"," return !ths.length ? rows == this.rowsNum : rows == this.rowsNum || (rows == this.rowsNum - 1);",""," },"," /*"," * 获取视觉上的前置单元格,默认是左边,top传入时"," * @param cell"," * @param top"," */"," getNextCell:function (cell, bottom, ignoreRange) {"," try {"," var cellInfo = this.getCellInfo(cell),"," nextRowIndex, nextColIndex;"," var len = this.selectedTds.length && !ignoreRange,"," range = this.cellsRange;"," //末行或者末列没有后置单元格"," if ((!bottom && (cellInfo.rowIndex == 0)) || (bottom && (!len ? (cellInfo.rowIndex + cellInfo.rowSpan > this.rowsNum - 1) : (range.endRowIndex == this.rowsNum - 1)))) return null;",""," nextRowIndex = !bottom ? ( !len ? cellInfo.rowIndex - 1 : range.beginRowIndex - 1)"," : ( !len ? (cellInfo.rowIndex + cellInfo.rowSpan) : range.endRowIndex + 1);"," nextColIndex = !len ? cellInfo.colIndex : range.beginColIndex;"," return this.getCell(this.indexTable[nextRowIndex][nextColIndex].rowIndex, this.indexTable[nextRowIndex][nextColIndex].cellIndex);"," } catch (e) {"," showError(e);"," }"," },"," getPreviewCell:function (cell, top) {"," try {"," var cellInfo = this.getCellInfo(cell),"," previewRowIndex, previewColIndex;"," var len = this.selectedTds.length,"," range = this.cellsRange;"," //首行或者首列没有前置单元格"," if ((!top && (!len ? !cellInfo.colIndex : !range.beginColIndex)) || (top && (!len ? (cellInfo.rowIndex > (this.colsNum - 1)) : (range.endColIndex == this.colsNum - 1)))) return null;",""," previewRowIndex = !top ? ( !len ? cellInfo.rowIndex : range.beginRowIndex )"," : ( !len ? (cellInfo.rowIndex < 1 ? 0 : (cellInfo.rowIndex - 1)) : range.beginRowIndex);"," previewColIndex = !top ? ( !len ? (cellInfo.colIndex < 1 ? 0 : (cellInfo.colIndex - 1)) : range.beginColIndex - 1)"," : ( !len ? cellInfo.colIndex : range.endColIndex + 1);"," return this.getCell(this.indexTable[previewRowIndex][previewColIndex].rowIndex, this.indexTable[previewRowIndex][previewColIndex].cellIndex);"," } catch (e) {"," showError(e);"," }"," },"," /*"," * 移动单元格中的内容"," */"," moveContent:function (cellTo, cellFrom) {"," if (UETable.isEmptyBlock(cellFrom)) return;"," if (UETable.isEmptyBlock(cellTo)) {"," cellTo.innerHTML = cellFrom.innerHTML;"," return;"," }"," var child = cellTo.lastChild;"," if (child.nodeType == 3 || !dtd.$block[child.tagName]) {"," cellTo.appendChild(cellTo.ownerDocument.createElement('br'))"," }"," while (child = cellFrom.firstChild) {"," cellTo.appendChild(child);"," }"," },"," /*"," * 向右合并单元格"," */"," mergeRight:function (cell) {"," var cellInfo = this.getCellInfo(cell),"," rightColIndex = cellInfo.colIndex + cellInfo.colSpan,"," rightCellInfo = this.indexTable[cellInfo.rowIndex][rightColIndex],"," rightCell = this.getCell(rightCellInfo.rowIndex, rightCellInfo.cellIndex);"," //合并"," cell.colSpan = cellInfo.colSpan + rightCellInfo.colSpan;"," //被合并的单元格不应存在宽度属性"," cell.removeAttribute(\"width\");"," //移动内容"," this.moveContent(cell, rightCell);"," //删掉被合并的Cell"," this.deleteCell(rightCell, rightCellInfo.rowIndex);"," this.update();"," },"," /*"," * 向下合并单元格"," */"," mergeDown:function (cell) {"," var cellInfo = this.getCellInfo(cell),"," downRowIndex = cellInfo.rowIndex + cellInfo.rowSpan,"," downCellInfo = this.indexTable[downRowIndex][cellInfo.colIndex],"," downCell = this.getCell(downCellInfo.rowIndex, downCellInfo.cellIndex);"," cell.rowSpan = cellInfo.rowSpan + downCellInfo.rowSpan;"," cell.removeAttribute(\"height\");"," this.moveContent(cell, downCell);"," this.deleteCell(downCell, downCellInfo.rowIndex);"," this.update();"," },"," /*"," * 合并整个range中的内容"," */"," mergeRange:function () {"," //由于合并操作可以在任意时刻进行,所以无法通过鼠标位置等信息实时生成range,只能通过缓存实例中的cellsRange对象来访问"," var range = this.cellsRange,"," leftTopCell = this.getCell(range.beginRowIndex, this.indexTable[range.beginRowIndex][range.beginColIndex].cellIndex);",""," if (leftTopCell.tagName == \"TH\" && range.endRowIndex !== range.beginRowIndex) {"," var index = this.indexTable,"," info = this.getCellInfo(leftTopCell);"," leftTopCell = this.getCell(1, index[1][info.colIndex].cellIndex);"," range = this.getCellsRange(leftTopCell, this.getCell(index[this.rowsNum - 1][info.colIndex].rowIndex, index[this.rowsNum - 1][info.colIndex].cellIndex));"," }",""," // 删除剩余的Cells"," var cells = this.getCells(range);"," for(var i= 0,ci;ci=cells[i++];){"," if (ci !== leftTopCell) {"," this.moveContent(leftTopCell, ci);"," this.deleteCell(ci);"," }"," }"," // 修改左上角Cell的rowSpan和colSpan,并调整宽度属性设置"," leftTopCell.rowSpan = range.endRowIndex - range.beginRowIndex + 1;"," leftTopCell.rowSpan > 1 && leftTopCell.removeAttribute(\"height\");"," leftTopCell.colSpan = range.endColIndex - range.beginColIndex + 1;"," leftTopCell.colSpan > 1 && leftTopCell.removeAttribute(\"width\");"," if (leftTopCell.rowSpan == this.rowsNum && leftTopCell.colSpan != 1) {"," leftTopCell.colSpan = 1;"," }",""," if (leftTopCell.colSpan == this.colsNum && leftTopCell.rowSpan != 1) {"," var rowIndex = leftTopCell.parentNode.rowIndex;"," //解决IE下的表格操作问题"," if( this.table.deleteRow ) {"," for (var i = rowIndex+ 1, curIndex=rowIndex+ 1, len=leftTopCell.rowSpan; i < len; i++) {"," this.table.deleteRow(curIndex);"," }"," } else {"," for (var i = 0, len=leftTopCell.rowSpan - 1; i < len; i++) {"," var row = this.table.rows[rowIndex + 1];"," row.parentNode.removeChild(row);"," }"," }"," leftTopCell.rowSpan = 1;"," }"," this.update();"," },"," /*"," * 插入一行单元格"," */"," insertRow:function (rowIndex, sourceCell) {"," var numCols = this.colsNum,"," table = this.table,"," row = table.insertRow(rowIndex), cell,"," width = parseInt((table.offsetWidth - numCols * 20 - numCols - 1) / numCols, 10);"," //首行直接插入,无需考虑部分单元格被rowspan的情况"," if (rowIndex == 0 || rowIndex == this.rowsNum) {"," for (var colIndex = 0; colIndex < numCols; colIndex++) {"," cell = this.cloneCell(sourceCell, true);"," this.setCellContent(cell);"," cell.getAttribute('vAlign') && cell.setAttribute('vAlign', cell.getAttribute('vAlign'));"," row.appendChild(cell);"," }"," } else {"," var infoRow = this.indexTable[rowIndex],"," cellIndex = 0;"," for (colIndex = 0; colIndex < numCols; colIndex++) {"," var cellInfo = infoRow[colIndex];"," //如果存在某个单元格的rowspan穿过待插入行的位置,则修改该单元格的rowspan即可,无需插入单元格"," if (cellInfo.rowIndex < rowIndex) {"," cell = this.getCell(cellInfo.rowIndex, cellInfo.cellIndex);"," cell.rowSpan = cellInfo.rowSpan + 1;"," } else {"," cell = this.cloneCell(sourceCell, true);"," this.setCellContent(cell);"," row.appendChild(cell);"," }"," }"," }"," //框选时插入不触发contentchange,需要手动更新索引。"," this.update();"," return row;"," },"," /*"," * 删除一行单元格"," * @param rowIndex"," */"," deleteRow:function (rowIndex) {"," var row = this.table.rows[rowIndex],"," infoRow = this.indexTable[rowIndex],"," colsNum = this.colsNum,"," count = 0; //处理计数"," for (var colIndex = 0; colIndex < colsNum;) {"," var cellInfo = infoRow[colIndex],"," cell = this.getCell(cellInfo.rowIndex, cellInfo.cellIndex);"," if (cell.rowSpan > 1) {"," if (cellInfo.rowIndex == rowIndex) {"," var clone = cell.cloneNode(true);"," clone.rowSpan = cell.rowSpan - 1;"," clone.innerHTML = \"\";"," cell.rowSpan = 1;"," var nextRowIndex = rowIndex + 1,"," nextRow = this.table.rows[nextRowIndex],"," insertCellIndex,"," preMerged = this.getPreviewMergedCellsNum(nextRowIndex, colIndex) - count;"," if (preMerged < colIndex) {"," insertCellIndex = colIndex - preMerged - 1;"," //nextRow.insertCell(insertCellIndex);"," domUtils.insertAfter(nextRow.cells[insertCellIndex], clone);"," } else {"," if (nextRow.cells.length) nextRow.insertBefore(clone, nextRow.cells[0])"," }"," count += 1;"," //cell.parentNode.removeChild(cell);"," }"," }"," colIndex += cell.colSpan || 1;"," }"," var deleteTds = [], cacheMap = {};"," for (colIndex = 0; colIndex < colsNum; colIndex++) {"," var tmpRowIndex = infoRow[colIndex].rowIndex,"," tmpCellIndex = infoRow[colIndex].cellIndex,"," key = tmpRowIndex + \"_\" + tmpCellIndex;"," if (cacheMap[key])continue;"," cacheMap[key] = 1;"," cell = this.getCell(tmpRowIndex, tmpCellIndex);"," deleteTds.push(cell);"," }"," var mergeTds = [];"," utils.each(deleteTds, function (td) {"," if (td.rowSpan == 1) {"," td.parentNode.removeChild(td);"," } else {"," mergeTds.push(td);"," }"," });"," utils.each(mergeTds, function (td) {"," td.rowSpan--;"," });"," row.parentNode.removeChild(row);"," //浏览器方法本身存在bug,采用自定义方法删除"," //this.table.deleteRow(rowIndex);"," this.update();"," },"," insertCol:function (colIndex, sourceCell, defaultValue) {"," var rowsNum = this.rowsNum,"," rowIndex = 0,"," tableRow, cell,"," backWidth = parseInt((this.table.offsetWidth - (this.colsNum + 1) * 20 - (this.colsNum + 1)) / (this.colsNum + 1), 10);",""," function replaceTdToTh(rowIndex, cell, tableRow) {"," if (rowIndex == 0) {"," var th = cell.nextSibling || cell.previousSibling;"," if (th.tagName == 'TH') {"," th = cell.ownerDocument.createElement(\"th\");"," th.appendChild(cell.firstChild);"," tableRow.insertBefore(th, cell);"," domUtils.remove(cell)"," }"," }else{"," if (cell.tagName == 'TH') {"," var td = cell.ownerDocument.createElement(\"td\");"," td.appendChild(cell.firstChild);"," tableRow.insertBefore(td, cell);"," domUtils.remove(cell)"," }"," }"," }",""," var preCell;"," if (colIndex == 0 || colIndex == this.colsNum) {"," for (; rowIndex < rowsNum; rowIndex++) {"," tableRow = this.table.rows[rowIndex];"," preCell = tableRow.cells[colIndex == 0 ? colIndex : tableRow.cells.length];"," cell = this.cloneCell(sourceCell, true); //tableRow.insertCell(colIndex == 0 ? colIndex : tableRow.cells.length);"," this.setCellContent(cell);"," cell.setAttribute('vAlign', cell.getAttribute('vAlign'));"," preCell && cell.setAttribute('width', preCell.getAttribute('width'));"," if (!colIndex) {"," tableRow.insertBefore(cell, tableRow.cells[0]);"," } else {"," domUtils.insertAfter(tableRow.cells[tableRow.cells.length - 1], cell);"," }"," replaceTdToTh(rowIndex, cell, tableRow)"," }"," } else {"," for (; rowIndex < rowsNum; rowIndex++) {"," var cellInfo = this.indexTable[rowIndex][colIndex];"," if (cellInfo.colIndex < colIndex) {"," cell = this.getCell(cellInfo.rowIndex, cellInfo.cellIndex);"," cell.colSpan = cellInfo.colSpan + 1;"," } else {"," tableRow = this.table.rows[rowIndex];"," preCell = tableRow.cells[cellInfo.cellIndex];",""," cell = this.cloneCell(sourceCell, true);//tableRow.insertCell(cellInfo.cellIndex);"," this.setCellContent(cell);"," cell.setAttribute('vAlign', cell.getAttribute('vAlign'));"," preCell && cell.setAttribute('width', preCell.getAttribute('width'));"," //防止IE下报错"," preCell ? tableRow.insertBefore(cell, preCell) : tableRow.appendChild(cell);"," }"," replaceTdToTh(rowIndex, cell, tableRow);"," }"," }"," //框选时插入不触发contentchange,需要手动更新索引"," this.update();"," this.updateWidth(backWidth, defaultValue || {tdPadding:10, tdBorder:1});"," },"," updateWidth:function (width, defaultValue) {"," var table = this.table,"," tmpWidth = UETable.getWidth(table) - defaultValue.tdPadding * 2 - defaultValue.tdBorder + width;"," if (tmpWidth < table.ownerDocument.body.offsetWidth) {"," table.setAttribute(\"width\", tmpWidth);"," return;"," }"," var tds = domUtils.getElementsByTagName(this.table, \"td\");"," utils.each(tds, function (td) {"," td.setAttribute(\"width\", width);"," })"," },"," deleteCol:function (colIndex) {"," var indexTable = this.indexTable,"," tableRows = this.table.rows,"," backTableWidth = this.table.getAttribute(\"width\"),"," backTdWidth = 0,"," rowsNum = this.rowsNum,"," cacheMap = {};"," for (var rowIndex = 0; rowIndex < rowsNum;) {"," var infoRow = indexTable[rowIndex],"," cellInfo = infoRow[colIndex],"," key = cellInfo.rowIndex + '_' + cellInfo.colIndex;"," // 跳过已经处理过的Cell"," if (cacheMap[key])continue;"," cacheMap[key] = 1;"," var cell = this.getCell(cellInfo.rowIndex, cellInfo.cellIndex);"," if (!backTdWidth) backTdWidth = cell && parseInt(cell.offsetWidth / cell.colSpan, 10).toFixed(0);"," // 如果Cell的colSpan大于1, 就修改colSpan, 否则就删掉这个Cell"," if (cell.colSpan > 1) {"," cell.colSpan--;"," } else {"," tableRows[rowIndex].deleteCell(cellInfo.cellIndex);"," }"," rowIndex += cellInfo.rowSpan || 1;"," }"," this.table.setAttribute(\"width\", backTableWidth - backTdWidth);"," this.update();"," },"," splitToCells:function (cell) {"," var me = this,"," cells = this.splitToRows(cell);"," utils.each(cells, function (cell) {"," me.splitToCols(cell);"," })"," },"," splitToRows:function (cell) {"," var cellInfo = this.getCellInfo(cell),"," rowIndex = cellInfo.rowIndex,"," colIndex = cellInfo.colIndex,"," results = [];"," // 修改Cell的rowSpan"," cell.rowSpan = 1;"," results.push(cell);"," // 补齐单元格"," for (var i = rowIndex, endRow = rowIndex + cellInfo.rowSpan; i < endRow; i++) {"," if (i == rowIndex)continue;"," var tableRow = this.table.rows[i],"," tmpCell = tableRow.insertCell(colIndex - this.getPreviewMergedCellsNum(i, colIndex));"," tmpCell.colSpan = cellInfo.colSpan;"," this.setCellContent(tmpCell);"," tmpCell.setAttribute('vAlign', cell.getAttribute('vAlign'));"," tmpCell.setAttribute('align', cell.getAttribute('align'));"," if (cell.style.cssText) {"," tmpCell.style.cssText = cell.style.cssText;"," }"," results.push(tmpCell);"," }"," this.update();"," return results;"," },"," getPreviewMergedCellsNum:function (rowIndex, colIndex) {"," var indexRow = this.indexTable[rowIndex],"," num = 0;"," for (var i = 0; i < colIndex;) {"," var colSpan = indexRow[i].colSpan,"," tmpRowIndex = indexRow[i].rowIndex;"," num += (colSpan - (tmpRowIndex == rowIndex ? 1 : 0));"," i += colSpan;"," }"," return num;"," },"," splitToCols:function (cell) {"," var backWidth = (cell.offsetWidth / cell.colSpan - 22).toFixed(0),",""," cellInfo = this.getCellInfo(cell),"," rowIndex = cellInfo.rowIndex,"," colIndex = cellInfo.colIndex,"," results = [];"," // 修改Cell的rowSpan"," cell.colSpan = 1;"," cell.setAttribute(\"width\", backWidth);"," results.push(cell);"," // 补齐单元格"," for (var j = colIndex, endCol = colIndex + cellInfo.colSpan; j < endCol; j++) {"," if (j == colIndex)continue;"," var tableRow = this.table.rows[rowIndex],"," tmpCell = tableRow.insertCell(this.indexTable[rowIndex][j].cellIndex + 1);"," tmpCell.rowSpan = cellInfo.rowSpan;"," this.setCellContent(tmpCell);"," tmpCell.setAttribute('vAlign', cell.getAttribute('vAlign'));"," tmpCell.setAttribute('align', cell.getAttribute('align'));"," tmpCell.setAttribute('width', backWidth);"," if (cell.style.cssText) {"," tmpCell.style.cssText = cell.style.cssText;"," }"," //处理th的情况"," if (cell.tagName == 'TH') {"," var th = cell.ownerDocument.createElement('th');"," th.appendChild(tmpCell.firstChild);"," th.setAttribute('vAlign', cell.getAttribute('vAlign'));"," th.rowSpan = tmpCell.rowSpan;"," tableRow.insertBefore(th, tmpCell);"," domUtils.remove(tmpCell);"," }"," results.push(tmpCell);"," }"," this.update();"," return results;"," },"," isLastCell:function (cell, rowsNum, colsNum) {"," rowsNum = rowsNum || this.rowsNum;"," colsNum = colsNum || this.colsNum;"," var cellInfo = this.getCellInfo(cell);"," return ((cellInfo.rowIndex + cellInfo.rowSpan) == rowsNum) &&"," ((cellInfo.colIndex + cellInfo.colSpan) == colsNum);"," },"," getLastCell:function (cells) {"," cells = cells || this.table.getElementsByTagName(\"td\");"," var firstInfo = this.getCellInfo(cells[0]);"," var me = this, last = cells[0],"," tr = last.parentNode,"," cellsNum = 0, cols = 0, rows;"," utils.each(cells, function (cell) {"," if (cell.parentNode == tr)cols += cell.colSpan || 1;"," cellsNum += cell.rowSpan * cell.colSpan || 1;"," });"," rows = cellsNum / cols;"," utils.each(cells, function (cell) {"," if (me.isLastCell(cell, rows, cols)) {"," last = cell;"," return false;"," }"," });"," return last;",""," },"," selectRow:function (rowIndex) {"," var indexRow = this.indexTable[rowIndex],"," start = this.getCell(indexRow[0].rowIndex, indexRow[0].cellIndex),"," end = this.getCell(indexRow[this.colsNum - 1].rowIndex, indexRow[this.colsNum - 1].cellIndex),"," range = this.getCellsRange(start, end);"," this.setSelected(range);"," },"," selectTable:function () {"," var tds = this.table.getElementsByTagName(\"td\"),"," range = this.getCellsRange(tds[0], tds[tds.length - 1]);"," this.setSelected(range);"," },"," sortTable:function (sortByCellIndex, compareFn) {"," var table = this.table,"," rows = table.rows,"," trArray = [],"," flag = rows[0].cells[0].tagName === \"TH\","," lastRowIndex = 0;"," if(this.selectedTds.length){"," var range = this.cellsRange,"," len = range.endRowIndex + 1;"," for (var i = range.beginRowIndex; i < len; i++) {"," trArray[i] = rows[i];"," }"," trArray.splice(0,range.beginRowIndex);"," lastRowIndex = (range.endRowIndex +1) === this.rowsNum ? 0 : range.endRowIndex +1;"," }else{"," for (var i = 0,len = rows.length; i < len; i++) {"," trArray[i] = rows[i];"," }"," }"," //th不参与排序"," flag && trArray.splice(0, 1);"," trArray = utils.sort(trArray,function (tr1, tr2) {"," var txt = function(node){"," return node.innerText||node.textContent;"," };"," return compareFn ? (typeof compareFn === \"number\" ? compareFn : compareFn.call(this, tr1.cells[sortByCellIndex], tr2.cells[sortByCellIndex])) : function () {"," var value1 = txt(tr1.cells[sortByCellIndex]),"," value2 = txt(tr2.cells[sortByCellIndex]);"," return value1.localeCompare(value2);"," }();"," });"," var fragment = table.ownerDocument.createDocumentFragment();"," for (var j = 0, len = trArray.length; j < len; j++) {"," fragment.appendChild(trArray[j]);"," }"," var tbody = table.getElementsByTagName(\"tbody\")[0];"," if(!lastRowIndex){"," tbody.appendChild(fragment);"," }else{"," tbody.insertBefore(fragment,rows[lastRowIndex- range.endRowIndex + range.beginRowIndex - 1])"," }"," },"," setBackground:function (cells, value) {"," if (typeof value === \"string\") {"," utils.each(cells, function (cell) {"," cell.style.backgroundColor = value;"," })"," } else if (typeof value === \"object\") {"," value = utils.extend({"," repeat:true,"," colorList:[\"#ddd\", \"#fff\"]"," }, value);"," var rowIndex = this.getCellInfo(cells[0]).rowIndex,"," count = 0,"," colors = value.colorList,"," getColor = function (list, index, repeat) {"," return list[index] ? list[index] : repeat ? list[index % list.length] : \"\";"," };"," for (var i = 0, cell; cell = cells[i++];) {"," var cellInfo = this.getCellInfo(cell);"," cell.style.backgroundColor = getColor(colors, ((rowIndex + count) == cellInfo.rowIndex) ? count : ++count, value.repeat);"," }"," }"," },"," removeBackground:function (cells) {"," utils.each(cells, function (cell) {"," cell.style.backgroundColor = \"\";"," })"," }","",""," };"," function showError(e) {"," }","})();"]; +_$jscoverage['plugins/table.core.js'][13]++; +(function () { + _$jscoverage['plugins/table.core.js'][14]++; + var UETable = (UE.UETable = (function (table) { + _$jscoverage['plugins/table.core.js'][15]++; + this.table = table; + _$jscoverage['plugins/table.core.js'][16]++; + this.indexTable = []; + _$jscoverage['plugins/table.core.js'][17]++; + this.selectedTds = []; + _$jscoverage['plugins/table.core.js'][18]++; + this.cellsRange = {}; + _$jscoverage['plugins/table.core.js'][19]++; + this.update(table); +})); + _$jscoverage['plugins/table.core.js'][23]++; + UETable.removeSelectedClass = (function (cells) { + _$jscoverage['plugins/table.core.js'][24]++; + utils.each(cells, (function (cell) { + _$jscoverage['plugins/table.core.js'][25]++; + domUtils.removeClasses(cell, "selectTdClass"); +})); +}); + _$jscoverage['plugins/table.core.js'][28]++; + UETable.addSelectedClass = (function (cells) { + _$jscoverage['plugins/table.core.js'][29]++; + utils.each(cells, (function (cell) { + _$jscoverage['plugins/table.core.js'][30]++; + domUtils.addClass(cell, "selectTdClass"); +})); +}); + _$jscoverage['plugins/table.core.js'][33]++; + UETable.isEmptyBlock = (function (node) { + _$jscoverage['plugins/table.core.js'][34]++; + var reg = new RegExp(domUtils.fillChar, "g"); + _$jscoverage['plugins/table.core.js'][35]++; + if ((node[(browser.ie? "innerText": "textContent")].replace(/^\s*$/, "").replace(reg, "").length > 0)) { + _$jscoverage['plugins/table.core.js'][36]++; + return 0; + } + _$jscoverage['plugins/table.core.js'][38]++; + for (var i in dtd.$isNotEmpty) { + _$jscoverage['plugins/table.core.js'][38]++; + if (dtd.$isNotEmpty.hasOwnProperty(i)) { + _$jscoverage['plugins/table.core.js'][39]++; + if (node.getElementsByTagName(i).length) { + _$jscoverage['plugins/table.core.js'][40]++; + return 0; + } + } +} + _$jscoverage['plugins/table.core.js'][43]++; + return 1; +}); + _$jscoverage['plugins/table.core.js'][45]++; + UETable.getWidth = (function (cell) { + _$jscoverage['plugins/table.core.js'][46]++; + if ((! cell)) { + _$jscoverage['plugins/table.core.js'][46]++; + return 0; + } + _$jscoverage['plugins/table.core.js'][47]++; + return parseInt(domUtils.getComputedStyle(cell, "width"), 10); +}); + _$jscoverage['plugins/table.core.js'][56]++; + UETable.getTableCellAlignState = (function (cells) { + _$jscoverage['plugins/table.core.js'][58]++; + ((! utils.isArray(cells)) && (cells = [cells])); + _$jscoverage['plugins/table.core.js'][60]++; + var result = {}, status = ["align", "valign"], tempStatus = null, isSame = true; + _$jscoverage['plugins/table.core.js'][65]++; + utils.each(cells, (function (cellNode) { + _$jscoverage['plugins/table.core.js'][67]++; + utils.each(status, (function (currentState) { + _$jscoverage['plugins/table.core.js'][69]++; + tempStatus = cellNode.getAttribute(currentState); + _$jscoverage['plugins/table.core.js'][71]++; + if (((! result[currentState]) && tempStatus)) { + _$jscoverage['plugins/table.core.js'][72]++; + result[currentState] = tempStatus; + } + else { + _$jscoverage['plugins/table.core.js'][73]++; + if (((! result[currentState]) || (tempStatus !== result[currentState]))) { + _$jscoverage['plugins/table.core.js'][74]++; + isSame = false; + _$jscoverage['plugins/table.core.js'][75]++; + return false; + } + } +})); + _$jscoverage['plugins/table.core.js'][80]++; + return isSame; +})); + _$jscoverage['plugins/table.core.js'][84]++; + return (isSame? result: null); +}); + _$jscoverage['plugins/table.core.js'][92]++; + UETable.getTableItemsByRange = (function (editor) { + _$jscoverage['plugins/table.core.js'][93]++; + var start = editor.selection.getStart(); + _$jscoverage['plugins/table.core.js'][96]++; + if ((start && start.id && (start.id.indexOf("_baidu_bookmark_start_") === 0))) { + _$jscoverage['plugins/table.core.js'][97]++; + start = start.nextSibling; + } + _$jscoverage['plugins/table.core.js'][101]++; + var cell = (start && domUtils.findParentByTagName(start, ["td", "th"], true)), tr = (cell && cell.parentNode), caption = (start && domUtils.findParentByTagName(start, "caption", true)), table = (caption? caption.parentNode: (tr && tr.parentNode.parentNode)); + _$jscoverage['plugins/table.core.js'][106]++; + return ({cell: cell, tr: tr, table: table, caption: caption}); +}); + _$jscoverage['plugins/table.core.js'][113]++; + UETable.getUETableBySelected = (function (editor) { + _$jscoverage['plugins/table.core.js'][114]++; + var table = UETable.getTableItemsByRange(editor).table; + _$jscoverage['plugins/table.core.js'][115]++; + if ((table && table.ueTable && table.ueTable.selectedTds.length)) { + _$jscoverage['plugins/table.core.js'][116]++; + return table.ueTable; + } + _$jscoverage['plugins/table.core.js'][118]++; + return null; +}); + _$jscoverage['plugins/table.core.js'][121]++; + UETable.getDefaultValue = (function (editor, table) { + _$jscoverage['plugins/table.core.js'][122]++; + var borderMap = {thin: "0px", medium: "1px", thick: "2px"}, tableBorder, tdPadding, tdBorder, tmpValue; + _$jscoverage['plugins/table.core.js'][128]++; + if ((! table)) { + _$jscoverage['plugins/table.core.js'][129]++; + table = editor.document.createElement("table"); + _$jscoverage['plugins/table.core.js'][130]++; + table.insertRow(0).insertCell(0).innerHTML = "xxx"; + _$jscoverage['plugins/table.core.js'][131]++; + editor.body.appendChild(table); + _$jscoverage['plugins/table.core.js'][132]++; + var td = table.getElementsByTagName("td")[0]; + _$jscoverage['plugins/table.core.js'][133]++; + tmpValue = domUtils.getComputedStyle(table, "border-left-width"); + _$jscoverage['plugins/table.core.js'][134]++; + tableBorder = parseInt((borderMap[tmpValue] || tmpValue), 10); + _$jscoverage['plugins/table.core.js'][135]++; + tmpValue = domUtils.getComputedStyle(td, "padding-left"); + _$jscoverage['plugins/table.core.js'][136]++; + tdPadding = parseInt((borderMap[tmpValue] || tmpValue), 10); + _$jscoverage['plugins/table.core.js'][137]++; + tmpValue = domUtils.getComputedStyle(td, "border-left-width"); + _$jscoverage['plugins/table.core.js'][138]++; + tdBorder = parseInt((borderMap[tmpValue] || tmpValue), 10); + _$jscoverage['plugins/table.core.js'][139]++; + domUtils.remove(table); + _$jscoverage['plugins/table.core.js'][140]++; + return ({tableBorder: tableBorder, tdPadding: tdPadding, tdBorder: tdBorder}); + } + else { + _$jscoverage['plugins/table.core.js'][146]++; + td = table.getElementsByTagName("td")[0]; + _$jscoverage['plugins/table.core.js'][147]++; + tmpValue = domUtils.getComputedStyle(table, "border-left-width"); + _$jscoverage['plugins/table.core.js'][148]++; + tableBorder = parseInt((borderMap[tmpValue] || tmpValue), 10); + _$jscoverage['plugins/table.core.js'][149]++; + tmpValue = domUtils.getComputedStyle(td, "padding-left"); + _$jscoverage['plugins/table.core.js'][150]++; + tdPadding = parseInt((borderMap[tmpValue] || tmpValue), 10); + _$jscoverage['plugins/table.core.js'][151]++; + tmpValue = domUtils.getComputedStyle(td, "border-left-width"); + _$jscoverage['plugins/table.core.js'][152]++; + tdBorder = parseInt((borderMap[tmpValue] || tmpValue), 10); + _$jscoverage['plugins/table.core.js'][153]++; + return ({tableBorder: tableBorder, tdPadding: tdPadding, tdBorder: tdBorder}); + } +}); + _$jscoverage['plugins/table.core.js'][164]++; + UETable.getUETable = (function (tdOrTable) { + _$jscoverage['plugins/table.core.js'][165]++; + var tag = tdOrTable.tagName.toLowerCase(); + _$jscoverage['plugins/table.core.js'][166]++; + tdOrTable = (((tag == "td") || (tag == "th") || (tag == "caption"))? domUtils.findParentByTagName(tdOrTable, "table", true): tdOrTable); + _$jscoverage['plugins/table.core.js'][167]++; + if ((! tdOrTable.ueTable)) { + _$jscoverage['plugins/table.core.js'][168]++; + tdOrTable.ueTable = new UETable(tdOrTable); + } + _$jscoverage['plugins/table.core.js'][170]++; + return tdOrTable.ueTable; +}); + _$jscoverage['plugins/table.core.js'][173]++; + UETable.cloneCell = (function (cell, ignoreMerge, keepPro) { + _$jscoverage['plugins/table.core.js'][174]++; + if (((! cell) || utils.isString(cell))) { + _$jscoverage['plugins/table.core.js'][175]++; + return this.table.ownerDocument.createElement((cell || "td")); + } + _$jscoverage['plugins/table.core.js'][177]++; + var flag = domUtils.hasClass(cell, "selectTdClass"); + _$jscoverage['plugins/table.core.js'][178]++; + (flag && domUtils.removeClasses(cell, "selectTdClass")); + _$jscoverage['plugins/table.core.js'][179]++; + var tmpCell = cell.cloneNode(true); + _$jscoverage['plugins/table.core.js'][180]++; + if (ignoreMerge) { + _$jscoverage['plugins/table.core.js'][181]++; + tmpCell.rowSpan = (tmpCell.colSpan = 1); + } + _$jscoverage['plugins/table.core.js'][184]++; + ((! keepPro) && domUtils.removeAttributes(tmpCell, "width height")); + _$jscoverage['plugins/table.core.js'][185]++; + ((! keepPro) && domUtils.removeAttributes(tmpCell, "style")); + _$jscoverage['plugins/table.core.js'][187]++; + tmpCell.style.borderLeftStyle = ""; + _$jscoverage['plugins/table.core.js'][188]++; + tmpCell.style.borderTopStyle = ""; + _$jscoverage['plugins/table.core.js'][189]++; + tmpCell.style.borderLeftColor = cell.style.borderRightColor; + _$jscoverage['plugins/table.core.js'][190]++; + tmpCell.style.borderLeftWidth = cell.style.borderRightWidth; + _$jscoverage['plugins/table.core.js'][191]++; + tmpCell.style.borderTopColor = cell.style.borderBottomColor; + _$jscoverage['plugins/table.core.js'][192]++; + tmpCell.style.borderTopWidth = cell.style.borderBottomWidth; + _$jscoverage['plugins/table.core.js'][193]++; + (flag && domUtils.addClass(cell, "selectTdClass")); + _$jscoverage['plugins/table.core.js'][194]++; + return tmpCell; +}); + _$jscoverage['plugins/table.core.js'][197]++; + UETable.prototype = {getMaxRows: (function () { + _$jscoverage['plugins/table.core.js'][199]++; + var rows = this.table.rows, maxLen = 1; + _$jscoverage['plugins/table.core.js'][200]++; + for (var i = 0, row; (row = rows[i]); (i++)) { + _$jscoverage['plugins/table.core.js'][201]++; + var currentMax = 1; + _$jscoverage['plugins/table.core.js'][202]++; + for (var j = 0, cj; (cj = row.cells[(j++)]);) { + _$jscoverage['plugins/table.core.js'][203]++; + currentMax = Math.max((cj.rowSpan || 1), currentMax); +} + _$jscoverage['plugins/table.core.js'][205]++; + maxLen = Math.max((currentMax + i), maxLen); +} + _$jscoverage['plugins/table.core.js'][207]++; + return maxLen; +}), getMaxCols: (function () { + _$jscoverage['plugins/table.core.js'][213]++; + var rows = this.table.rows, maxLen = 0, cellRows = {}; + _$jscoverage['plugins/table.core.js'][214]++; + for (var i = 0, row; (row = rows[i]); (i++)) { + _$jscoverage['plugins/table.core.js'][215]++; + var cellsNum = 0; + _$jscoverage['plugins/table.core.js'][216]++; + for (var j = 0, cj; (cj = row.cells[(j++)]);) { + _$jscoverage['plugins/table.core.js'][217]++; + cellsNum += (cj.colSpan || 1); + _$jscoverage['plugins/table.core.js'][218]++; + if ((cj.rowSpan && (cj.rowSpan > 1))) { + _$jscoverage['plugins/table.core.js'][219]++; + for (var k = 1; (k < cj.rowSpan); (k++)) { + _$jscoverage['plugins/table.core.js'][220]++; + if ((! cellRows[("row_" + (i + k))])) { + _$jscoverage['plugins/table.core.js'][221]++; + cellRows[("row_" + (i + k))] = (cj.colSpan || 1); + } + else { + _$jscoverage['plugins/table.core.js'][223]++; + (cellRows[("row_" + (i + k))]++); + } +} + } +} + _$jscoverage['plugins/table.core.js'][229]++; + cellsNum += (cellRows[("row_" + i)] || 0); + _$jscoverage['plugins/table.core.js'][230]++; + maxLen = Math.max(cellsNum, maxLen); +} + _$jscoverage['plugins/table.core.js'][232]++; + return maxLen; +}), getCellColIndex: (function (cell) { +}), getHSideCell: (function (cell, right) { + _$jscoverage['plugins/table.core.js'][243]++; + try { + _$jscoverage['plugins/table.core.js'][244]++; + var cellInfo = this.getCellInfo(cell), previewRowIndex, previewColIndex; + _$jscoverage['plugins/table.core.js'][246]++; + var len = this.selectedTds.length, range = this.cellsRange; + _$jscoverage['plugins/table.core.js'][249]++; + if ((((! right) && ((! len)? (! cellInfo.colIndex): (! range.beginColIndex))) || (right && ((! len)? (cellInfo.colIndex == (this.colsNum - 1)): (range.endColIndex == (this.colsNum - 1)))))) { + _$jscoverage['plugins/table.core.js'][249]++; + return null; + } + _$jscoverage['plugins/table.core.js'][251]++; + previewRowIndex = ((! len)? cellInfo.rowIndex: range.beginRowIndex); + _$jscoverage['plugins/table.core.js'][252]++; + previewColIndex = ((! right)? ((! len)? ((cellInfo.colIndex < 1)? 0: (cellInfo.colIndex - 1)): (range.beginColIndex - 1)): ((! len)? (cellInfo.colIndex + 1): (range.endColIndex + 1))); + _$jscoverage['plugins/table.core.js'][254]++; + return this.getCell(this.indexTable[previewRowIndex][previewColIndex].rowIndex, this.indexTable[previewRowIndex][previewColIndex].cellIndex); + } + catch (e) { + _$jscoverage['plugins/table.core.js'][256]++; + showError(e); + } +}), getTabNextCell: (function (cell, preRowIndex) { + _$jscoverage['plugins/table.core.js'][260]++; + var cellInfo = this.getCellInfo(cell), rowIndex = (preRowIndex || cellInfo.rowIndex), colIndex = (cellInfo.colIndex + 1 + (cellInfo.colSpan - 1)), nextCell; + _$jscoverage['plugins/table.core.js'][264]++; + try { + _$jscoverage['plugins/table.core.js'][265]++; + nextCell = this.getCell(this.indexTable[rowIndex][colIndex].rowIndex, this.indexTable[rowIndex][colIndex].cellIndex); + } + catch (e) { + _$jscoverage['plugins/table.core.js'][267]++; + try { + _$jscoverage['plugins/table.core.js'][268]++; + rowIndex = ((rowIndex * 1) + 1); + _$jscoverage['plugins/table.core.js'][269]++; + colIndex = 0; + _$jscoverage['plugins/table.core.js'][270]++; + nextCell = this.getCell(this.indexTable[rowIndex][colIndex].rowIndex, this.indexTable[rowIndex][colIndex].cellIndex); + } + catch (e) { + } + } + _$jscoverage['plugins/table.core.js'][274]++; + return nextCell; +}), getVSideCell: (function (cell, bottom, ignoreRange) { + _$jscoverage['plugins/table.core.js'][283]++; + try { + _$jscoverage['plugins/table.core.js'][284]++; + var cellInfo = this.getCellInfo(cell), nextRowIndex, nextColIndex; + _$jscoverage['plugins/table.core.js'][286]++; + var len = (this.selectedTds.length && (! ignoreRange)), range = this.cellsRange; + _$jscoverage['plugins/table.core.js'][289]++; + if ((((! bottom) && (cellInfo.rowIndex == 0)) || (bottom && ((! len)? ((cellInfo.rowIndex + cellInfo.rowSpan) > (this.rowsNum - 1)): (range.endRowIndex == (this.rowsNum - 1)))))) { + _$jscoverage['plugins/table.core.js'][289]++; + return null; + } + _$jscoverage['plugins/table.core.js'][291]++; + nextRowIndex = ((! bottom)? ((! len)? (cellInfo.rowIndex - 1): (range.beginRowIndex - 1)): ((! len)? (cellInfo.rowIndex + cellInfo.rowSpan): (range.endRowIndex + 1))); + _$jscoverage['plugins/table.core.js'][293]++; + nextColIndex = ((! len)? cellInfo.colIndex: range.beginColIndex); + _$jscoverage['plugins/table.core.js'][294]++; + return this.getCell(this.indexTable[nextRowIndex][nextColIndex].rowIndex, this.indexTable[nextRowIndex][nextColIndex].cellIndex); + } + catch (e) { + _$jscoverage['plugins/table.core.js'][296]++; + showError(e); + } +}), getSameEndPosCells: (function (cell, xOrY) { + _$jscoverage['plugins/table.core.js'][303]++; + try { + _$jscoverage['plugins/table.core.js'][304]++; + var flag = (xOrY.toLowerCase() === "x"), end = (domUtils.getXY(cell)[(flag? "x": "y")] + cell[("offset" + (flag? "Width": "Height"))]), rows = this.table.rows, cells = null, returns = []; + _$jscoverage['plugins/table.core.js'][308]++; + for (var i = 0; (i < this.rowsNum); (i++)) { + _$jscoverage['plugins/table.core.js'][309]++; + cells = rows[i].cells; + _$jscoverage['plugins/table.core.js'][310]++; + for (var j = 0, tmpCell; (tmpCell = cells[(j++)]);) { + _$jscoverage['plugins/table.core.js'][311]++; + var tmpEnd = (domUtils.getXY(tmpCell)[(flag? "x": "y")] + tmpCell[("offset" + (flag? "Width": "Height"))]); + _$jscoverage['plugins/table.core.js'][313]++; + if (((tmpEnd > end) && flag)) { + _$jscoverage['plugins/table.core.js'][313]++; + break; + } + _$jscoverage['plugins/table.core.js'][314]++; + if (((cell == tmpCell) || (end == tmpEnd))) { + _$jscoverage['plugins/table.core.js'][317]++; + if ((tmpCell[(flag? "colSpan": "rowSpan")] == 1)) { + _$jscoverage['plugins/table.core.js'][318]++; + returns.push(tmpCell); + } + _$jscoverage['plugins/table.core.js'][320]++; + if (flag) { + _$jscoverage['plugins/table.core.js'][320]++; + break; + } + } +} +} + _$jscoverage['plugins/table.core.js'][324]++; + return returns; + } + catch (e) { + _$jscoverage['plugins/table.core.js'][326]++; + showError(e); + } +}), setCellContent: (function (cell, content) { + _$jscoverage['plugins/table.core.js'][330]++; + cell.innerHTML = (content || (browser.ie? domUtils.fillChar: "
")); +}), cloneCell: UETable.cloneCell, getSameStartPosXCells: (function (cell) { + _$jscoverage['plugins/table.core.js'][337]++; + try { + _$jscoverage['plugins/table.core.js'][338]++; + var start = (domUtils.getXY(cell).x + cell.offsetWidth), rows = this.table.rows, cells, returns = []; + _$jscoverage['plugins/table.core.js'][340]++; + for (var i = 0; (i < this.rowsNum); (i++)) { + _$jscoverage['plugins/table.core.js'][341]++; + cells = rows[i].cells; + _$jscoverage['plugins/table.core.js'][342]++; + for (var j = 0, tmpCell; (tmpCell = cells[(j++)]);) { + _$jscoverage['plugins/table.core.js'][343]++; + var tmpStart = domUtils.getXY(tmpCell).x; + _$jscoverage['plugins/table.core.js'][344]++; + if ((tmpStart > start)) { + _$jscoverage['plugins/table.core.js'][344]++; + break; + } + _$jscoverage['plugins/table.core.js'][345]++; + if (((tmpStart == start) && (tmpCell.colSpan == 1))) { + _$jscoverage['plugins/table.core.js'][346]++; + returns.push(tmpCell); + _$jscoverage['plugins/table.core.js'][347]++; + break; + } +} +} + _$jscoverage['plugins/table.core.js'][351]++; + return returns; + } + catch (e) { + _$jscoverage['plugins/table.core.js'][353]++; + showError(e); + } +}), update: (function (table) { + _$jscoverage['plugins/table.core.js'][360]++; + this.table = (table || this.table); + _$jscoverage['plugins/table.core.js'][361]++; + this.selectedTds = []; + _$jscoverage['plugins/table.core.js'][362]++; + this.cellsRange = {}; + _$jscoverage['plugins/table.core.js'][363]++; + this.indexTable = []; + _$jscoverage['plugins/table.core.js'][364]++; + var rows = this.table.rows, rowsNum = this.getMaxRows(), dNum = (rowsNum - rows.length), colsNum = this.getMaxCols(); + _$jscoverage['plugins/table.core.js'][368]++; + while ((dNum--)) { + _$jscoverage['plugins/table.core.js'][369]++; + this.table.insertRow(rows.length); +} + _$jscoverage['plugins/table.core.js'][371]++; + this.rowsNum = rowsNum; + _$jscoverage['plugins/table.core.js'][372]++; + this.colsNum = colsNum; + _$jscoverage['plugins/table.core.js'][373]++; + for (var i = 0, len = rows.length; (i < len); (i++)) { + _$jscoverage['plugins/table.core.js'][374]++; + this.indexTable[i] = new Array(colsNum); +} + _$jscoverage['plugins/table.core.js'][377]++; + for (var rowIndex = 0, row; (row = rows[rowIndex]); (rowIndex++)) { + _$jscoverage['plugins/table.core.js'][378]++; + for (var cellIndex = 0, cell, cells = row.cells; (cell = cells[cellIndex]); (cellIndex++)) { + _$jscoverage['plugins/table.core.js'][380]++; + if ((cell.rowSpan > rowsNum)) { + _$jscoverage['plugins/table.core.js'][381]++; + cell.rowSpan = rowsNum; + } + _$jscoverage['plugins/table.core.js'][383]++; + var colIndex = cellIndex, rowSpan = (cell.rowSpan || 1), colSpan = (cell.colSpan || 1); + _$jscoverage['plugins/table.core.js'][387]++; + while (this.indexTable[rowIndex][colIndex]) { + _$jscoverage['plugins/table.core.js'][387]++; + (colIndex++); +} + _$jscoverage['plugins/table.core.js'][388]++; + for (var j = 0; (j < rowSpan); (j++)) { + _$jscoverage['plugins/table.core.js'][389]++; + for (var k = 0; (k < colSpan); (k++)) { + _$jscoverage['plugins/table.core.js'][390]++; + this.indexTable[(rowIndex + j)][(colIndex + k)] = {rowIndex: rowIndex, cellIndex: cellIndex, colIndex: colIndex, rowSpan: rowSpan, colSpan: colSpan}; +} +} +} +} + _$jscoverage['plugins/table.core.js'][402]++; + for (j = 0; (j < rowsNum); (j++)) { + _$jscoverage['plugins/table.core.js'][403]++; + for (k = 0; (k < colsNum); (k++)) { + _$jscoverage['plugins/table.core.js'][404]++; + if ((this.indexTable[j][k] === undefined)) { + _$jscoverage['plugins/table.core.js'][405]++; + row = rows[j]; + _$jscoverage['plugins/table.core.js'][406]++; + cell = row.cells[(row.cells.length - 1)]; + _$jscoverage['plugins/table.core.js'][407]++; + cell = (cell? cell.cloneNode(true): this.table.ownerDocument.createElement("td")); + _$jscoverage['plugins/table.core.js'][408]++; + this.setCellContent(cell); + _$jscoverage['plugins/table.core.js'][409]++; + if ((cell.colSpan !== 1)) { + _$jscoverage['plugins/table.core.js'][409]++; + cell.colSpan = 1; + } + _$jscoverage['plugins/table.core.js'][410]++; + if ((cell.rowSpan !== 1)) { + _$jscoverage['plugins/table.core.js'][410]++; + cell.rowSpan = 1; + } + _$jscoverage['plugins/table.core.js'][411]++; + row.appendChild(cell); + _$jscoverage['plugins/table.core.js'][412]++; + this.indexTable[j][k] = {rowIndex: j, cellIndex: cell.cellIndex, colIndex: k, rowSpan: 1, colSpan: 1}; + } +} +} + _$jscoverage['plugins/table.core.js'][423]++; + var tds = domUtils.getElementsByTagName(this.table, "td"), selectTds = []; + _$jscoverage['plugins/table.core.js'][425]++; + utils.each(tds, (function (td) { + _$jscoverage['plugins/table.core.js'][426]++; + if (domUtils.hasClass(td, "selectTdClass")) { + _$jscoverage['plugins/table.core.js'][427]++; + selectTds.push(td); + } +})); + _$jscoverage['plugins/table.core.js'][430]++; + if (selectTds.length) { + _$jscoverage['plugins/table.core.js'][431]++; + var start = selectTds[0], end = selectTds[(selectTds.length - 1)], startInfo = this.getCellInfo(start), endInfo = this.getCellInfo(end); + _$jscoverage['plugins/table.core.js'][435]++; + this.selectedTds = selectTds; + _$jscoverage['plugins/table.core.js'][436]++; + this.cellsRange = {beginRowIndex: startInfo.rowIndex, beginColIndex: startInfo.colIndex, endRowIndex: ((endInfo.rowIndex + endInfo.rowSpan) - 1), endColIndex: ((endInfo.colIndex + endInfo.colSpan) - 1)}; + } +}), getCellInfo: (function (cell) { + _$jscoverage['plugins/table.core.js'][449]++; + if ((! cell)) { + _$jscoverage['plugins/table.core.js'][449]++; + return; + } + _$jscoverage['plugins/table.core.js'][450]++; + var cellIndex = cell.cellIndex, rowIndex = cell.parentNode.rowIndex, rowInfo = this.indexTable[rowIndex], numCols = this.colsNum; + _$jscoverage['plugins/table.core.js'][454]++; + for (var colIndex = cellIndex; (colIndex < numCols); (colIndex++)) { + _$jscoverage['plugins/table.core.js'][455]++; + var cellInfo = rowInfo[colIndex]; + _$jscoverage['plugins/table.core.js'][456]++; + if (((cellInfo.rowIndex === rowIndex) && (cellInfo.cellIndex === cellIndex))) { + _$jscoverage['plugins/table.core.js'][457]++; + return cellInfo; + } +} +}), getCell: (function (rowIndex, cellIndex) { + _$jscoverage['plugins/table.core.js'][465]++; + return (((rowIndex < this.rowsNum) && this.table.rows[rowIndex].cells[cellIndex]) || null); +}), deleteCell: (function (cell, rowIndex) { + _$jscoverage['plugins/table.core.js'][471]++; + rowIndex = (((typeof rowIndex) == "number")? rowIndex: cell.parentNode.rowIndex); + _$jscoverage['plugins/table.core.js'][472]++; + var row = this.table.rows[rowIndex]; + _$jscoverage['plugins/table.core.js'][473]++; + row.deleteCell(cell.cellIndex); +}), getCellsRange: (function (cellA, cellB) { + _$jscoverage['plugins/table.core.js'][479]++; + function checkRange(beginRowIndex, beginColIndex, endRowIndex, endColIndex) { + _$jscoverage['plugins/table.core.js'][480]++; + var tmpBeginRowIndex = beginRowIndex, tmpBeginColIndex = beginColIndex, tmpEndRowIndex = endRowIndex, tmpEndColIndex = endColIndex, cellInfo, colIndex, rowIndex; + _$jscoverage['plugins/table.core.js'][486]++; + if ((beginRowIndex > 0)) { + _$jscoverage['plugins/table.core.js'][487]++; + for (colIndex = beginColIndex; (colIndex < endColIndex); (colIndex++)) { + _$jscoverage['plugins/table.core.js'][488]++; + cellInfo = me.indexTable[beginRowIndex][colIndex]; + _$jscoverage['plugins/table.core.js'][489]++; + rowIndex = cellInfo.rowIndex; + _$jscoverage['plugins/table.core.js'][490]++; + if ((rowIndex < beginRowIndex)) { + _$jscoverage['plugins/table.core.js'][491]++; + tmpBeginRowIndex = Math.min(rowIndex, tmpBeginRowIndex); + } +} + } + _$jscoverage['plugins/table.core.js'][496]++; + if ((endColIndex < me.colsNum)) { + _$jscoverage['plugins/table.core.js'][497]++; + for (rowIndex = beginRowIndex; (rowIndex < endRowIndex); (rowIndex++)) { + _$jscoverage['plugins/table.core.js'][498]++; + cellInfo = me.indexTable[rowIndex][endColIndex]; + _$jscoverage['plugins/table.core.js'][499]++; + colIndex = ((cellInfo.colIndex + cellInfo.colSpan) - 1); + _$jscoverage['plugins/table.core.js'][500]++; + if ((colIndex > endColIndex)) { + _$jscoverage['plugins/table.core.js'][501]++; + tmpEndColIndex = Math.max(colIndex, tmpEndColIndex); + } +} + } + _$jscoverage['plugins/table.core.js'][506]++; + if ((endRowIndex < me.rowsNum)) { + _$jscoverage['plugins/table.core.js'][507]++; + for (colIndex = beginColIndex; (colIndex < endColIndex); (colIndex++)) { + _$jscoverage['plugins/table.core.js'][508]++; + cellInfo = me.indexTable[endRowIndex][colIndex]; + _$jscoverage['plugins/table.core.js'][509]++; + rowIndex = ((cellInfo.rowIndex + cellInfo.rowSpan) - 1); + _$jscoverage['plugins/table.core.js'][510]++; + if ((rowIndex > endRowIndex)) { + _$jscoverage['plugins/table.core.js'][511]++; + tmpEndRowIndex = Math.max(rowIndex, tmpEndRowIndex); + } +} + } + _$jscoverage['plugins/table.core.js'][516]++; + if ((beginColIndex > 0)) { + _$jscoverage['plugins/table.core.js'][517]++; + for (rowIndex = beginRowIndex; (rowIndex < endRowIndex); (rowIndex++)) { + _$jscoverage['plugins/table.core.js'][518]++; + cellInfo = me.indexTable[rowIndex][beginColIndex]; + _$jscoverage['plugins/table.core.js'][519]++; + colIndex = cellInfo.colIndex; + _$jscoverage['plugins/table.core.js'][520]++; + if ((colIndex < beginColIndex)) { + _$jscoverage['plugins/table.core.js'][521]++; + tmpBeginColIndex = Math.min(cellInfo.colIndex, tmpBeginColIndex); + } +} + } + _$jscoverage['plugins/table.core.js'][526]++; + if (((tmpBeginRowIndex != beginRowIndex) || (tmpBeginColIndex != beginColIndex) || (tmpEndRowIndex != endRowIndex) || (tmpEndColIndex != endColIndex))) { + _$jscoverage['plugins/table.core.js'][527]++; + return checkRange(tmpBeginRowIndex, tmpBeginColIndex, tmpEndRowIndex, tmpEndColIndex); + } + else { + _$jscoverage['plugins/table.core.js'][530]++; + return ({beginRowIndex: beginRowIndex, beginColIndex: beginColIndex, endRowIndex: endRowIndex, endColIndex: endColIndex}); + } +} + _$jscoverage['plugins/table.core.js'][539]++; + try { + _$jscoverage['plugins/table.core.js'][540]++; + var me = this, cellAInfo = me.getCellInfo(cellA); + _$jscoverage['plugins/table.core.js'][542]++; + if ((cellA === cellB)) { + _$jscoverage['plugins/table.core.js'][543]++; + return ({beginRowIndex: cellAInfo.rowIndex, beginColIndex: cellAInfo.colIndex, endRowIndex: ((cellAInfo.rowIndex + cellAInfo.rowSpan) - 1), endColIndex: ((cellAInfo.colIndex + cellAInfo.colSpan) - 1)}); + } + _$jscoverage['plugins/table.core.js'][550]++; + var cellBInfo = me.getCellInfo(cellB); + _$jscoverage['plugins/table.core.js'][552]++; + var beginRowIndex = Math.min(cellAInfo.rowIndex, cellBInfo.rowIndex), beginColIndex = Math.min(cellAInfo.colIndex, cellBInfo.colIndex), endRowIndex = Math.max(((cellAInfo.rowIndex + cellAInfo.rowSpan) - 1), ((cellBInfo.rowIndex + cellBInfo.rowSpan) - 1)), endColIndex = Math.max(((cellAInfo.colIndex + cellAInfo.colSpan) - 1), ((cellBInfo.colIndex + cellBInfo.colSpan) - 1)); + _$jscoverage['plugins/table.core.js'][557]++; + return checkRange(beginRowIndex, beginColIndex, endRowIndex, endColIndex); + } + catch (e) { + } +}), getCells: (function (range) { + _$jscoverage['plugins/table.core.js'][567]++; + this.clearSelected(); + _$jscoverage['plugins/table.core.js'][568]++; + var beginRowIndex = range.beginRowIndex, beginColIndex = range.beginColIndex, endRowIndex = range.endRowIndex, endColIndex = range.endColIndex, cellInfo, rowIndex, colIndex, tdHash = {}, returnTds = []; + _$jscoverage['plugins/table.core.js'][573]++; + for (var i = beginRowIndex; (i <= endRowIndex); (i++)) { + _$jscoverage['plugins/table.core.js'][574]++; + for (var j = beginColIndex; (j <= endColIndex); (j++)) { + _$jscoverage['plugins/table.core.js'][575]++; + cellInfo = this.indexTable[i][j]; + _$jscoverage['plugins/table.core.js'][576]++; + rowIndex = cellInfo.rowIndex; + _$jscoverage['plugins/table.core.js'][577]++; + colIndex = cellInfo.colIndex; + _$jscoverage['plugins/table.core.js'][579]++; + var key = (rowIndex + "|" + colIndex); + _$jscoverage['plugins/table.core.js'][580]++; + if (tdHash[key]) { + _$jscoverage['plugins/table.core.js'][580]++; + continue; + } + _$jscoverage['plugins/table.core.js'][581]++; + tdHash[key] = 1; + _$jscoverage['plugins/table.core.js'][582]++; + if (((rowIndex < i) || (colIndex < j) || (((rowIndex + cellInfo.rowSpan) - 1) > endRowIndex) || (((colIndex + cellInfo.colSpan) - 1) > endColIndex))) { + _$jscoverage['plugins/table.core.js'][583]++; + return null; + } + _$jscoverage['plugins/table.core.js'][585]++; + returnTds.push(this.getCell(rowIndex, cellInfo.cellIndex)); +} +} + _$jscoverage['plugins/table.core.js'][588]++; + return returnTds; +}), clearSelected: (function () { + _$jscoverage['plugins/table.core.js'][594]++; + UETable.removeSelectedClass(this.selectedTds); + _$jscoverage['plugins/table.core.js'][595]++; + this.selectedTds = []; + _$jscoverage['plugins/table.core.js'][596]++; + this.cellsRange = {}; +}), setSelected: (function (range) { + _$jscoverage['plugins/table.core.js'][602]++; + var cells = this.getCells(range); + _$jscoverage['plugins/table.core.js'][603]++; + UETable.addSelectedClass(cells); + _$jscoverage['plugins/table.core.js'][604]++; + this.selectedTds = cells; + _$jscoverage['plugins/table.core.js'][605]++; + this.cellsRange = range; +}), isFullRow: (function () { + _$jscoverage['plugins/table.core.js'][608]++; + var range = this.cellsRange; + _$jscoverage['plugins/table.core.js'][609]++; + return (((range.endColIndex - range.beginColIndex) + 1) == this.colsNum); +}), isFullCol: (function () { + _$jscoverage['plugins/table.core.js'][612]++; + var range = this.cellsRange, table = this.table, ths = table.getElementsByTagName("th"), rows = ((range.endRowIndex - range.beginRowIndex) + 1); + _$jscoverage['plugins/table.core.js'][616]++; + return ((! ths.length)? (rows == this.rowsNum): ((rows == this.rowsNum) || (rows == (this.rowsNum - 1)))); +}), getNextCell: (function (cell, bottom, ignoreRange) { + _$jscoverage['plugins/table.core.js'][625]++; + try { + _$jscoverage['plugins/table.core.js'][626]++; + var cellInfo = this.getCellInfo(cell), nextRowIndex, nextColIndex; + _$jscoverage['plugins/table.core.js'][628]++; + var len = (this.selectedTds.length && (! ignoreRange)), range = this.cellsRange; + _$jscoverage['plugins/table.core.js'][631]++; + if ((((! bottom) && (cellInfo.rowIndex == 0)) || (bottom && ((! len)? ((cellInfo.rowIndex + cellInfo.rowSpan) > (this.rowsNum - 1)): (range.endRowIndex == (this.rowsNum - 1)))))) { + _$jscoverage['plugins/table.core.js'][631]++; + return null; + } + _$jscoverage['plugins/table.core.js'][633]++; + nextRowIndex = ((! bottom)? ((! len)? (cellInfo.rowIndex - 1): (range.beginRowIndex - 1)): ((! len)? (cellInfo.rowIndex + cellInfo.rowSpan): (range.endRowIndex + 1))); + _$jscoverage['plugins/table.core.js'][635]++; + nextColIndex = ((! len)? cellInfo.colIndex: range.beginColIndex); + _$jscoverage['plugins/table.core.js'][636]++; + return this.getCell(this.indexTable[nextRowIndex][nextColIndex].rowIndex, this.indexTable[nextRowIndex][nextColIndex].cellIndex); + } + catch (e) { + _$jscoverage['plugins/table.core.js'][638]++; + showError(e); + } +}), getPreviewCell: (function (cell, top) { + _$jscoverage['plugins/table.core.js'][642]++; + try { + _$jscoverage['plugins/table.core.js'][643]++; + var cellInfo = this.getCellInfo(cell), previewRowIndex, previewColIndex; + _$jscoverage['plugins/table.core.js'][645]++; + var len = this.selectedTds.length, range = this.cellsRange; + _$jscoverage['plugins/table.core.js'][648]++; + if ((((! top) && ((! len)? (! cellInfo.colIndex): (! range.beginColIndex))) || (top && ((! len)? (cellInfo.rowIndex > (this.colsNum - 1)): (range.endColIndex == (this.colsNum - 1)))))) { + _$jscoverage['plugins/table.core.js'][648]++; + return null; + } + _$jscoverage['plugins/table.core.js'][650]++; + previewRowIndex = ((! top)? ((! len)? cellInfo.rowIndex: range.beginRowIndex): ((! len)? ((cellInfo.rowIndex < 1)? 0: (cellInfo.rowIndex - 1)): range.beginRowIndex)); + _$jscoverage['plugins/table.core.js'][652]++; + previewColIndex = ((! top)? ((! len)? ((cellInfo.colIndex < 1)? 0: (cellInfo.colIndex - 1)): (range.beginColIndex - 1)): ((! len)? cellInfo.colIndex: (range.endColIndex + 1))); + _$jscoverage['plugins/table.core.js'][654]++; + return this.getCell(this.indexTable[previewRowIndex][previewColIndex].rowIndex, this.indexTable[previewRowIndex][previewColIndex].cellIndex); + } + catch (e) { + _$jscoverage['plugins/table.core.js'][656]++; + showError(e); + } +}), moveContent: (function (cellTo, cellFrom) { + _$jscoverage['plugins/table.core.js'][663]++; + if (UETable.isEmptyBlock(cellFrom)) { + _$jscoverage['plugins/table.core.js'][663]++; + return; + } + _$jscoverage['plugins/table.core.js'][664]++; + if (UETable.isEmptyBlock(cellTo)) { + _$jscoverage['plugins/table.core.js'][665]++; + cellTo.innerHTML = cellFrom.innerHTML; + _$jscoverage['plugins/table.core.js'][666]++; + return; + } + _$jscoverage['plugins/table.core.js'][668]++; + var child = cellTo.lastChild; + _$jscoverage['plugins/table.core.js'][669]++; + if (((child.nodeType == 3) || (! dtd.$block[child.tagName]))) { + _$jscoverage['plugins/table.core.js'][670]++; + cellTo.appendChild(cellTo.ownerDocument.createElement("br")); + } + _$jscoverage['plugins/table.core.js'][672]++; + while ((child = cellFrom.firstChild)) { + _$jscoverage['plugins/table.core.js'][673]++; + cellTo.appendChild(child); +} +}), mergeRight: (function (cell) { + _$jscoverage['plugins/table.core.js'][680]++; + var cellInfo = this.getCellInfo(cell), rightColIndex = (cellInfo.colIndex + cellInfo.colSpan), rightCellInfo = this.indexTable[cellInfo.rowIndex][rightColIndex], rightCell = this.getCell(rightCellInfo.rowIndex, rightCellInfo.cellIndex); + _$jscoverage['plugins/table.core.js'][685]++; + cell.colSpan = (cellInfo.colSpan + rightCellInfo.colSpan); + _$jscoverage['plugins/table.core.js'][687]++; + cell.removeAttribute("width"); + _$jscoverage['plugins/table.core.js'][689]++; + this.moveContent(cell, rightCell); + _$jscoverage['plugins/table.core.js'][691]++; + this.deleteCell(rightCell, rightCellInfo.rowIndex); + _$jscoverage['plugins/table.core.js'][692]++; + this.update(); +}), mergeDown: (function (cell) { + _$jscoverage['plugins/table.core.js'][698]++; + var cellInfo = this.getCellInfo(cell), downRowIndex = (cellInfo.rowIndex + cellInfo.rowSpan), downCellInfo = this.indexTable[downRowIndex][cellInfo.colIndex], downCell = this.getCell(downCellInfo.rowIndex, downCellInfo.cellIndex); + _$jscoverage['plugins/table.core.js'][702]++; + cell.rowSpan = (cellInfo.rowSpan + downCellInfo.rowSpan); + _$jscoverage['plugins/table.core.js'][703]++; + cell.removeAttribute("height"); + _$jscoverage['plugins/table.core.js'][704]++; + this.moveContent(cell, downCell); + _$jscoverage['plugins/table.core.js'][705]++; + this.deleteCell(downCell, downCellInfo.rowIndex); + _$jscoverage['plugins/table.core.js'][706]++; + this.update(); +}), mergeRange: (function () { + _$jscoverage['plugins/table.core.js'][713]++; + var range = this.cellsRange, leftTopCell = this.getCell(range.beginRowIndex, this.indexTable[range.beginRowIndex][range.beginColIndex].cellIndex); + _$jscoverage['plugins/table.core.js'][716]++; + if (((leftTopCell.tagName == "TH") && (range.endRowIndex !== range.beginRowIndex))) { + _$jscoverage['plugins/table.core.js'][717]++; + var index = this.indexTable, info = this.getCellInfo(leftTopCell); + _$jscoverage['plugins/table.core.js'][719]++; + leftTopCell = this.getCell(1, index[1][info.colIndex].cellIndex); + _$jscoverage['plugins/table.core.js'][720]++; + range = this.getCellsRange(leftTopCell, this.getCell(index[(this.rowsNum - 1)][info.colIndex].rowIndex, index[(this.rowsNum - 1)][info.colIndex].cellIndex)); + } + _$jscoverage['plugins/table.core.js'][724]++; + var cells = this.getCells(range); + _$jscoverage['plugins/table.core.js'][725]++; + for (var i = 0, ci; (ci = cells[(i++)]);) { + _$jscoverage['plugins/table.core.js'][726]++; + if ((ci !== leftTopCell)) { + _$jscoverage['plugins/table.core.js'][727]++; + this.moveContent(leftTopCell, ci); + _$jscoverage['plugins/table.core.js'][728]++; + this.deleteCell(ci); + } +} + _$jscoverage['plugins/table.core.js'][732]++; + leftTopCell.rowSpan = ((range.endRowIndex - range.beginRowIndex) + 1); + _$jscoverage['plugins/table.core.js'][733]++; + ((leftTopCell.rowSpan > 1) && leftTopCell.removeAttribute("height")); + _$jscoverage['plugins/table.core.js'][734]++; + leftTopCell.colSpan = ((range.endColIndex - range.beginColIndex) + 1); + _$jscoverage['plugins/table.core.js'][735]++; + ((leftTopCell.colSpan > 1) && leftTopCell.removeAttribute("width")); + _$jscoverage['plugins/table.core.js'][736]++; + if (((leftTopCell.rowSpan == this.rowsNum) && (leftTopCell.colSpan != 1))) { + _$jscoverage['plugins/table.core.js'][737]++; + leftTopCell.colSpan = 1; + } + _$jscoverage['plugins/table.core.js'][740]++; + if (((leftTopCell.colSpan == this.colsNum) && (leftTopCell.rowSpan != 1))) { + _$jscoverage['plugins/table.core.js'][741]++; + var rowIndex = leftTopCell.parentNode.rowIndex; + _$jscoverage['plugins/table.core.js'][743]++; + if (this.table.deleteRow) { + _$jscoverage['plugins/table.core.js'][744]++; + for (var i = (rowIndex + 1), curIndex = (rowIndex + 1), len = leftTopCell.rowSpan; (i < len); (i++)) { + _$jscoverage['plugins/table.core.js'][745]++; + this.table.deleteRow(curIndex); +} + } + else { + _$jscoverage['plugins/table.core.js'][748]++; + for (var i = 0, len = (leftTopCell.rowSpan - 1); (i < len); (i++)) { + _$jscoverage['plugins/table.core.js'][749]++; + var row = this.table.rows[(rowIndex + 1)]; + _$jscoverage['plugins/table.core.js'][750]++; + row.parentNode.removeChild(row); +} + } + _$jscoverage['plugins/table.core.js'][753]++; + leftTopCell.rowSpan = 1; + } + _$jscoverage['plugins/table.core.js'][755]++; + this.update(); +}), insertRow: (function (rowIndex, sourceCell) { + _$jscoverage['plugins/table.core.js'][761]++; + var numCols = this.colsNum, table = this.table, row = table.insertRow(rowIndex), cell, width = parseInt(((table.offsetWidth - (numCols * 20) - numCols - 1) / numCols), 10); + _$jscoverage['plugins/table.core.js'][766]++; + if (((rowIndex == 0) || (rowIndex == this.rowsNum))) { + _$jscoverage['plugins/table.core.js'][767]++; + for (var colIndex = 0; (colIndex < numCols); (colIndex++)) { + _$jscoverage['plugins/table.core.js'][768]++; + cell = this.cloneCell(sourceCell, true); + _$jscoverage['plugins/table.core.js'][769]++; + this.setCellContent(cell); + _$jscoverage['plugins/table.core.js'][770]++; + (cell.getAttribute("vAlign") && cell.setAttribute("vAlign", cell.getAttribute("vAlign"))); + _$jscoverage['plugins/table.core.js'][771]++; + row.appendChild(cell); +} + } + else { + _$jscoverage['plugins/table.core.js'][774]++; + var infoRow = this.indexTable[rowIndex], cellIndex = 0; + _$jscoverage['plugins/table.core.js'][776]++; + for (colIndex = 0; (colIndex < numCols); (colIndex++)) { + _$jscoverage['plugins/table.core.js'][777]++; + var cellInfo = infoRow[colIndex]; + _$jscoverage['plugins/table.core.js'][779]++; + if ((cellInfo.rowIndex < rowIndex)) { + _$jscoverage['plugins/table.core.js'][780]++; + cell = this.getCell(cellInfo.rowIndex, cellInfo.cellIndex); + _$jscoverage['plugins/table.core.js'][781]++; + cell.rowSpan = (cellInfo.rowSpan + 1); + } + else { + _$jscoverage['plugins/table.core.js'][783]++; + cell = this.cloneCell(sourceCell, true); + _$jscoverage['plugins/table.core.js'][784]++; + this.setCellContent(cell); + _$jscoverage['plugins/table.core.js'][785]++; + row.appendChild(cell); + } +} + } + _$jscoverage['plugins/table.core.js'][790]++; + this.update(); + _$jscoverage['plugins/table.core.js'][791]++; + return row; +}), deleteRow: (function (rowIndex) { + _$jscoverage['plugins/table.core.js'][798]++; + var row = this.table.rows[rowIndex], infoRow = this.indexTable[rowIndex], colsNum = this.colsNum, count = 0; + _$jscoverage['plugins/table.core.js'][802]++; + for (var colIndex = 0; (colIndex < colsNum);) { + _$jscoverage['plugins/table.core.js'][803]++; + var cellInfo = infoRow[colIndex], cell = this.getCell(cellInfo.rowIndex, cellInfo.cellIndex); + _$jscoverage['plugins/table.core.js'][805]++; + if ((cell.rowSpan > 1)) { + _$jscoverage['plugins/table.core.js'][806]++; + if ((cellInfo.rowIndex == rowIndex)) { + _$jscoverage['plugins/table.core.js'][807]++; + var clone = cell.cloneNode(true); + _$jscoverage['plugins/table.core.js'][808]++; + clone.rowSpan = (cell.rowSpan - 1); + _$jscoverage['plugins/table.core.js'][809]++; + clone.innerHTML = ""; + _$jscoverage['plugins/table.core.js'][810]++; + cell.rowSpan = 1; + _$jscoverage['plugins/table.core.js'][811]++; + var nextRowIndex = (rowIndex + 1), nextRow = this.table.rows[nextRowIndex], insertCellIndex, preMerged = (this.getPreviewMergedCellsNum(nextRowIndex, colIndex) - count); + _$jscoverage['plugins/table.core.js'][815]++; + if ((preMerged < colIndex)) { + _$jscoverage['plugins/table.core.js'][816]++; + insertCellIndex = (colIndex - preMerged - 1); + _$jscoverage['plugins/table.core.js'][818]++; + domUtils.insertAfter(nextRow.cells[insertCellIndex], clone); + } + else { + _$jscoverage['plugins/table.core.js'][820]++; + if (nextRow.cells.length) { + _$jscoverage['plugins/table.core.js'][820]++; + nextRow.insertBefore(clone, nextRow.cells[0]); + } + } + _$jscoverage['plugins/table.core.js'][822]++; + count += 1; + } + } + _$jscoverage['plugins/table.core.js'][826]++; + colIndex += (cell.colSpan || 1); +} + _$jscoverage['plugins/table.core.js'][828]++; + var deleteTds = [], cacheMap = {}; + _$jscoverage['plugins/table.core.js'][829]++; + for (colIndex = 0; (colIndex < colsNum); (colIndex++)) { + _$jscoverage['plugins/table.core.js'][830]++; + var tmpRowIndex = infoRow[colIndex].rowIndex, tmpCellIndex = infoRow[colIndex].cellIndex, key = (tmpRowIndex + "_" + tmpCellIndex); + _$jscoverage['plugins/table.core.js'][833]++; + if (cacheMap[key]) { + _$jscoverage['plugins/table.core.js'][833]++; + continue; + } + _$jscoverage['plugins/table.core.js'][834]++; + cacheMap[key] = 1; + _$jscoverage['plugins/table.core.js'][835]++; + cell = this.getCell(tmpRowIndex, tmpCellIndex); + _$jscoverage['plugins/table.core.js'][836]++; + deleteTds.push(cell); +} + _$jscoverage['plugins/table.core.js'][838]++; + var mergeTds = []; + _$jscoverage['plugins/table.core.js'][839]++; + utils.each(deleteTds, (function (td) { + _$jscoverage['plugins/table.core.js'][840]++; + if ((td.rowSpan == 1)) { + _$jscoverage['plugins/table.core.js'][841]++; + td.parentNode.removeChild(td); + } + else { + _$jscoverage['plugins/table.core.js'][843]++; + mergeTds.push(td); + } +})); + _$jscoverage['plugins/table.core.js'][846]++; + utils.each(mergeTds, (function (td) { + _$jscoverage['plugins/table.core.js'][847]++; + (td.rowSpan--); +})); + _$jscoverage['plugins/table.core.js'][849]++; + row.parentNode.removeChild(row); + _$jscoverage['plugins/table.core.js'][852]++; + this.update(); +}), insertCol: (function (colIndex, sourceCell, defaultValue) { + _$jscoverage['plugins/table.core.js'][855]++; + var rowsNum = this.rowsNum, rowIndex = 0, tableRow, cell, backWidth = parseInt(((this.table.offsetWidth - ((this.colsNum + 1) * 20) - (this.colsNum + 1)) / (this.colsNum + 1)), 10); + _$jscoverage['plugins/table.core.js'][860]++; + function replaceTdToTh(rowIndex, cell, tableRow) { + _$jscoverage['plugins/table.core.js'][861]++; + if ((rowIndex == 0)) { + _$jscoverage['plugins/table.core.js'][862]++; + var th = (cell.nextSibling || cell.previousSibling); + _$jscoverage['plugins/table.core.js'][863]++; + if ((th.tagName == "TH")) { + _$jscoverage['plugins/table.core.js'][864]++; + th = cell.ownerDocument.createElement("th"); + _$jscoverage['plugins/table.core.js'][865]++; + th.appendChild(cell.firstChild); + _$jscoverage['plugins/table.core.js'][866]++; + tableRow.insertBefore(th, cell); + _$jscoverage['plugins/table.core.js'][867]++; + domUtils.remove(cell); + } + } + else { + _$jscoverage['plugins/table.core.js'][870]++; + if ((cell.tagName == "TH")) { + _$jscoverage['plugins/table.core.js'][871]++; + var td = cell.ownerDocument.createElement("td"); + _$jscoverage['plugins/table.core.js'][872]++; + td.appendChild(cell.firstChild); + _$jscoverage['plugins/table.core.js'][873]++; + tableRow.insertBefore(td, cell); + _$jscoverage['plugins/table.core.js'][874]++; + domUtils.remove(cell); + } + } +} + _$jscoverage['plugins/table.core.js'][879]++; + var preCell; + _$jscoverage['plugins/table.core.js'][880]++; + if (((colIndex == 0) || (colIndex == this.colsNum))) { + _$jscoverage['plugins/table.core.js'][881]++; + for (; (rowIndex < rowsNum); (rowIndex++)) { + _$jscoverage['plugins/table.core.js'][882]++; + tableRow = this.table.rows[rowIndex]; + _$jscoverage['plugins/table.core.js'][883]++; + preCell = tableRow.cells[((colIndex == 0)? colIndex: tableRow.cells.length)]; + _$jscoverage['plugins/table.core.js'][884]++; + cell = this.cloneCell(sourceCell, true); + _$jscoverage['plugins/table.core.js'][885]++; + this.setCellContent(cell); + _$jscoverage['plugins/table.core.js'][886]++; + cell.setAttribute("vAlign", cell.getAttribute("vAlign")); + _$jscoverage['plugins/table.core.js'][887]++; + (preCell && cell.setAttribute("width", preCell.getAttribute("width"))); + _$jscoverage['plugins/table.core.js'][888]++; + if ((! colIndex)) { + _$jscoverage['plugins/table.core.js'][889]++; + tableRow.insertBefore(cell, tableRow.cells[0]); + } + else { + _$jscoverage['plugins/table.core.js'][891]++; + domUtils.insertAfter(tableRow.cells[(tableRow.cells.length - 1)], cell); + } + _$jscoverage['plugins/table.core.js'][893]++; + replaceTdToTh(rowIndex, cell, tableRow); +} + } + else { + _$jscoverage['plugins/table.core.js'][896]++; + for (; (rowIndex < rowsNum); (rowIndex++)) { + _$jscoverage['plugins/table.core.js'][897]++; + var cellInfo = this.indexTable[rowIndex][colIndex]; + _$jscoverage['plugins/table.core.js'][898]++; + if ((cellInfo.colIndex < colIndex)) { + _$jscoverage['plugins/table.core.js'][899]++; + cell = this.getCell(cellInfo.rowIndex, cellInfo.cellIndex); + _$jscoverage['plugins/table.core.js'][900]++; + cell.colSpan = (cellInfo.colSpan + 1); + } + else { + _$jscoverage['plugins/table.core.js'][902]++; + tableRow = this.table.rows[rowIndex]; + _$jscoverage['plugins/table.core.js'][903]++; + preCell = tableRow.cells[cellInfo.cellIndex]; + _$jscoverage['plugins/table.core.js'][905]++; + cell = this.cloneCell(sourceCell, true); + _$jscoverage['plugins/table.core.js'][906]++; + this.setCellContent(cell); + _$jscoverage['plugins/table.core.js'][907]++; + cell.setAttribute("vAlign", cell.getAttribute("vAlign")); + _$jscoverage['plugins/table.core.js'][908]++; + (preCell && cell.setAttribute("width", preCell.getAttribute("width"))); + _$jscoverage['plugins/table.core.js'][910]++; + (preCell? tableRow.insertBefore(cell, preCell): tableRow.appendChild(cell)); + } + _$jscoverage['plugins/table.core.js'][912]++; + replaceTdToTh(rowIndex, cell, tableRow); +} + } + _$jscoverage['plugins/table.core.js'][916]++; + this.update(); + _$jscoverage['plugins/table.core.js'][917]++; + this.updateWidth(backWidth, (defaultValue || {tdPadding: 10, tdBorder: 1})); +}), updateWidth: (function (width, defaultValue) { + _$jscoverage['plugins/table.core.js'][920]++; + var table = this.table, tmpWidth = ((UETable.getWidth(table) - (defaultValue.tdPadding * 2) - defaultValue.tdBorder) + width); + _$jscoverage['plugins/table.core.js'][922]++; + if ((tmpWidth < table.ownerDocument.body.offsetWidth)) { + _$jscoverage['plugins/table.core.js'][923]++; + table.setAttribute("width", tmpWidth); + _$jscoverage['plugins/table.core.js'][924]++; + return; + } + _$jscoverage['plugins/table.core.js'][926]++; + var tds = domUtils.getElementsByTagName(this.table, "td"); + _$jscoverage['plugins/table.core.js'][927]++; + utils.each(tds, (function (td) { + _$jscoverage['plugins/table.core.js'][928]++; + td.setAttribute("width", width); +})); +}), deleteCol: (function (colIndex) { + _$jscoverage['plugins/table.core.js'][932]++; + var indexTable = this.indexTable, tableRows = this.table.rows, backTableWidth = this.table.getAttribute("width"), backTdWidth = 0, rowsNum = this.rowsNum, cacheMap = {}; + _$jscoverage['plugins/table.core.js'][938]++; + for (var rowIndex = 0; (rowIndex < rowsNum);) { + _$jscoverage['plugins/table.core.js'][939]++; + var infoRow = indexTable[rowIndex], cellInfo = infoRow[colIndex], key = (cellInfo.rowIndex + "_" + cellInfo.colIndex); + _$jscoverage['plugins/table.core.js'][943]++; + if (cacheMap[key]) { + _$jscoverage['plugins/table.core.js'][943]++; + continue; + } + _$jscoverage['plugins/table.core.js'][944]++; + cacheMap[key] = 1; + _$jscoverage['plugins/table.core.js'][945]++; + var cell = this.getCell(cellInfo.rowIndex, cellInfo.cellIndex); + _$jscoverage['plugins/table.core.js'][946]++; + if ((! backTdWidth)) { + _$jscoverage['plugins/table.core.js'][946]++; + backTdWidth = (cell && parseInt((cell.offsetWidth / cell.colSpan), 10).toFixed(0)); + } + _$jscoverage['plugins/table.core.js'][948]++; + if ((cell.colSpan > 1)) { + _$jscoverage['plugins/table.core.js'][949]++; + (cell.colSpan--); + } + else { + _$jscoverage['plugins/table.core.js'][951]++; + tableRows[rowIndex].deleteCell(cellInfo.cellIndex); + } + _$jscoverage['plugins/table.core.js'][953]++; + rowIndex += (cellInfo.rowSpan || 1); +} + _$jscoverage['plugins/table.core.js'][955]++; + this.table.setAttribute("width", (backTableWidth - backTdWidth)); + _$jscoverage['plugins/table.core.js'][956]++; + this.update(); +}), splitToCells: (function (cell) { + _$jscoverage['plugins/table.core.js'][959]++; + var me = this, cells = this.splitToRows(cell); + _$jscoverage['plugins/table.core.js'][961]++; + utils.each(cells, (function (cell) { + _$jscoverage['plugins/table.core.js'][962]++; + me.splitToCols(cell); +})); +}), splitToRows: (function (cell) { + _$jscoverage['plugins/table.core.js'][966]++; + var cellInfo = this.getCellInfo(cell), rowIndex = cellInfo.rowIndex, colIndex = cellInfo.colIndex, results = []; + _$jscoverage['plugins/table.core.js'][971]++; + cell.rowSpan = 1; + _$jscoverage['plugins/table.core.js'][972]++; + results.push(cell); + _$jscoverage['plugins/table.core.js'][974]++; + for (var i = rowIndex, endRow = (rowIndex + cellInfo.rowSpan); (i < endRow); (i++)) { + _$jscoverage['plugins/table.core.js'][975]++; + if ((i == rowIndex)) { + _$jscoverage['plugins/table.core.js'][975]++; + continue; + } + _$jscoverage['plugins/table.core.js'][976]++; + var tableRow = this.table.rows[i], tmpCell = tableRow.insertCell((colIndex - this.getPreviewMergedCellsNum(i, colIndex))); + _$jscoverage['plugins/table.core.js'][978]++; + tmpCell.colSpan = cellInfo.colSpan; + _$jscoverage['plugins/table.core.js'][979]++; + this.setCellContent(tmpCell); + _$jscoverage['plugins/table.core.js'][980]++; + tmpCell.setAttribute("vAlign", cell.getAttribute("vAlign")); + _$jscoverage['plugins/table.core.js'][981]++; + tmpCell.setAttribute("align", cell.getAttribute("align")); + _$jscoverage['plugins/table.core.js'][982]++; + if (cell.style.cssText) { + _$jscoverage['plugins/table.core.js'][983]++; + tmpCell.style.cssText = cell.style.cssText; + } + _$jscoverage['plugins/table.core.js'][985]++; + results.push(tmpCell); +} + _$jscoverage['plugins/table.core.js'][987]++; + this.update(); + _$jscoverage['plugins/table.core.js'][988]++; + return results; +}), getPreviewMergedCellsNum: (function (rowIndex, colIndex) { + _$jscoverage['plugins/table.core.js'][991]++; + var indexRow = this.indexTable[rowIndex], num = 0; + _$jscoverage['plugins/table.core.js'][993]++; + for (var i = 0; (i < colIndex);) { + _$jscoverage['plugins/table.core.js'][994]++; + var colSpan = indexRow[i].colSpan, tmpRowIndex = indexRow[i].rowIndex; + _$jscoverage['plugins/table.core.js'][996]++; + num += (colSpan - ((tmpRowIndex == rowIndex)? 1: 0)); + _$jscoverage['plugins/table.core.js'][997]++; + i += colSpan; +} + _$jscoverage['plugins/table.core.js'][999]++; + return num; +}), splitToCols: (function (cell) { + _$jscoverage['plugins/table.core.js'][1002]++; + var backWidth = ((cell.offsetWidth / cell.colSpan) - 22).toFixed(0), cellInfo = this.getCellInfo(cell), rowIndex = cellInfo.rowIndex, colIndex = cellInfo.colIndex, results = []; + _$jscoverage['plugins/table.core.js'][1009]++; + cell.colSpan = 1; + _$jscoverage['plugins/table.core.js'][1010]++; + cell.setAttribute("width", backWidth); + _$jscoverage['plugins/table.core.js'][1011]++; + results.push(cell); + _$jscoverage['plugins/table.core.js'][1013]++; + for (var j = colIndex, endCol = (colIndex + cellInfo.colSpan); (j < endCol); (j++)) { + _$jscoverage['plugins/table.core.js'][1014]++; + if ((j == colIndex)) { + _$jscoverage['plugins/table.core.js'][1014]++; + continue; + } + _$jscoverage['plugins/table.core.js'][1015]++; + var tableRow = this.table.rows[rowIndex], tmpCell = tableRow.insertCell((this.indexTable[rowIndex][j].cellIndex + 1)); + _$jscoverage['plugins/table.core.js'][1017]++; + tmpCell.rowSpan = cellInfo.rowSpan; + _$jscoverage['plugins/table.core.js'][1018]++; + this.setCellContent(tmpCell); + _$jscoverage['plugins/table.core.js'][1019]++; + tmpCell.setAttribute("vAlign", cell.getAttribute("vAlign")); + _$jscoverage['plugins/table.core.js'][1020]++; + tmpCell.setAttribute("align", cell.getAttribute("align")); + _$jscoverage['plugins/table.core.js'][1021]++; + tmpCell.setAttribute("width", backWidth); + _$jscoverage['plugins/table.core.js'][1022]++; + if (cell.style.cssText) { + _$jscoverage['plugins/table.core.js'][1023]++; + tmpCell.style.cssText = cell.style.cssText; + } + _$jscoverage['plugins/table.core.js'][1026]++; + if ((cell.tagName == "TH")) { + _$jscoverage['plugins/table.core.js'][1027]++; + var th = cell.ownerDocument.createElement("th"); + _$jscoverage['plugins/table.core.js'][1028]++; + th.appendChild(tmpCell.firstChild); + _$jscoverage['plugins/table.core.js'][1029]++; + th.setAttribute("vAlign", cell.getAttribute("vAlign")); + _$jscoverage['plugins/table.core.js'][1030]++; + th.rowSpan = tmpCell.rowSpan; + _$jscoverage['plugins/table.core.js'][1031]++; + tableRow.insertBefore(th, tmpCell); + _$jscoverage['plugins/table.core.js'][1032]++; + domUtils.remove(tmpCell); + } + _$jscoverage['plugins/table.core.js'][1034]++; + results.push(tmpCell); +} + _$jscoverage['plugins/table.core.js'][1036]++; + this.update(); + _$jscoverage['plugins/table.core.js'][1037]++; + return results; +}), isLastCell: (function (cell, rowsNum, colsNum) { + _$jscoverage['plugins/table.core.js'][1040]++; + rowsNum = (rowsNum || this.rowsNum); + _$jscoverage['plugins/table.core.js'][1041]++; + colsNum = (colsNum || this.colsNum); + _$jscoverage['plugins/table.core.js'][1042]++; + var cellInfo = this.getCellInfo(cell); + _$jscoverage['plugins/table.core.js'][1043]++; + return (((cellInfo.rowIndex + cellInfo.rowSpan) == rowsNum) && ((cellInfo.colIndex + cellInfo.colSpan) == colsNum)); +}), getLastCell: (function (cells) { + _$jscoverage['plugins/table.core.js'][1047]++; + cells = (cells || this.table.getElementsByTagName("td")); + _$jscoverage['plugins/table.core.js'][1048]++; + var firstInfo = this.getCellInfo(cells[0]); + _$jscoverage['plugins/table.core.js'][1049]++; + var me = this, last = cells[0], tr = last.parentNode, cellsNum = 0, cols = 0, rows; + _$jscoverage['plugins/table.core.js'][1052]++; + utils.each(cells, (function (cell) { + _$jscoverage['plugins/table.core.js'][1053]++; + if ((cell.parentNode == tr)) { + _$jscoverage['plugins/table.core.js'][1053]++; + cols += (cell.colSpan || 1); + } + _$jscoverage['plugins/table.core.js'][1054]++; + cellsNum += ((cell.rowSpan * cell.colSpan) || 1); +})); + _$jscoverage['plugins/table.core.js'][1056]++; + rows = (cellsNum / cols); + _$jscoverage['plugins/table.core.js'][1057]++; + utils.each(cells, (function (cell) { + _$jscoverage['plugins/table.core.js'][1058]++; + if (me.isLastCell(cell, rows, cols)) { + _$jscoverage['plugins/table.core.js'][1059]++; + last = cell; + _$jscoverage['plugins/table.core.js'][1060]++; + return false; + } +})); + _$jscoverage['plugins/table.core.js'][1063]++; + return last; +}), selectRow: (function (rowIndex) { + _$jscoverage['plugins/table.core.js'][1067]++; + var indexRow = this.indexTable[rowIndex], start = this.getCell(indexRow[0].rowIndex, indexRow[0].cellIndex), end = this.getCell(indexRow[(this.colsNum - 1)].rowIndex, indexRow[(this.colsNum - 1)].cellIndex), range = this.getCellsRange(start, end); + _$jscoverage['plugins/table.core.js'][1071]++; + this.setSelected(range); +}), selectTable: (function () { + _$jscoverage['plugins/table.core.js'][1074]++; + var tds = this.table.getElementsByTagName("td"), range = this.getCellsRange(tds[0], tds[(tds.length - 1)]); + _$jscoverage['plugins/table.core.js'][1076]++; + this.setSelected(range); +}), sortTable: (function (sortByCellIndex, compareFn) { + _$jscoverage['plugins/table.core.js'][1079]++; + var table = this.table, rows = table.rows, trArray = [], flag = (rows[0].cells[0].tagName === "TH"), lastRowIndex = 0; + _$jscoverage['plugins/table.core.js'][1084]++; + if (this.selectedTds.length) { + _$jscoverage['plugins/table.core.js'][1085]++; + var range = this.cellsRange, len = (range.endRowIndex + 1); + _$jscoverage['plugins/table.core.js'][1087]++; + for (var i = range.beginRowIndex; (i < len); (i++)) { + _$jscoverage['plugins/table.core.js'][1088]++; + trArray[i] = rows[i]; +} + _$jscoverage['plugins/table.core.js'][1090]++; + trArray.splice(0, range.beginRowIndex); + _$jscoverage['plugins/table.core.js'][1091]++; + lastRowIndex = (((range.endRowIndex + 1) === this.rowsNum)? 0: (range.endRowIndex + 1)); + } + else { + _$jscoverage['plugins/table.core.js'][1093]++; + for (var i = 0, len = rows.length; (i < len); (i++)) { + _$jscoverage['plugins/table.core.js'][1094]++; + trArray[i] = rows[i]; +} + } + _$jscoverage['plugins/table.core.js'][1098]++; + (flag && trArray.splice(0, 1)); + _$jscoverage['plugins/table.core.js'][1099]++; + trArray = utils.sort(trArray, (function (tr1, tr2) { + _$jscoverage['plugins/table.core.js'][1100]++; + var txt = (function (node) { + _$jscoverage['plugins/table.core.js'][1101]++; + return (node.innerText || node.textContent); +}); + _$jscoverage['plugins/table.core.js'][1103]++; + return (compareFn? (((typeof compareFn) === "number")? compareFn: compareFn.call(this, tr1.cells[sortByCellIndex], tr2.cells[sortByCellIndex])): (function () { + _$jscoverage['plugins/table.core.js'][1104]++; + var value1 = txt(tr1.cells[sortByCellIndex]), value2 = txt(tr2.cells[sortByCellIndex]); + _$jscoverage['plugins/table.core.js'][1106]++; + return value1.localeCompare(value2); +})()); +})); + _$jscoverage['plugins/table.core.js'][1109]++; + var fragment = table.ownerDocument.createDocumentFragment(); + _$jscoverage['plugins/table.core.js'][1110]++; + for (var j = 0, len = trArray.length; (j < len); (j++)) { + _$jscoverage['plugins/table.core.js'][1111]++; + fragment.appendChild(trArray[j]); +} + _$jscoverage['plugins/table.core.js'][1113]++; + var tbody = table.getElementsByTagName("tbody")[0]; + _$jscoverage['plugins/table.core.js'][1114]++; + if ((! lastRowIndex)) { + _$jscoverage['plugins/table.core.js'][1115]++; + tbody.appendChild(fragment); + } + else { + _$jscoverage['plugins/table.core.js'][1117]++; + tbody.insertBefore(fragment, rows[(((lastRowIndex - range.endRowIndex) + range.beginRowIndex) - 1)]); + } +}), setBackground: (function (cells, value) { + _$jscoverage['plugins/table.core.js'][1121]++; + if (((typeof value) === "string")) { + _$jscoverage['plugins/table.core.js'][1122]++; + utils.each(cells, (function (cell) { + _$jscoverage['plugins/table.core.js'][1123]++; + cell.style.backgroundColor = value; +})); + } + else { + _$jscoverage['plugins/table.core.js'][1125]++; + if (((typeof value) === "object")) { + _$jscoverage['plugins/table.core.js'][1126]++; + value = utils.extend({repeat: true, colorList: ["#ddd", "#fff"]}, value); + _$jscoverage['plugins/table.core.js'][1130]++; + var rowIndex = this.getCellInfo(cells[0]).rowIndex, count = 0, colors = value.colorList, getColor = (function (list, index, repeat) { + _$jscoverage['plugins/table.core.js'][1134]++; + return (list[index]? list[index]: (repeat? list[(index % list.length)]: "")); +}); + _$jscoverage['plugins/table.core.js'][1136]++; + for (var i = 0, cell; (cell = cells[(i++)]);) { + _$jscoverage['plugins/table.core.js'][1137]++; + var cellInfo = this.getCellInfo(cell); + _$jscoverage['plugins/table.core.js'][1138]++; + cell.style.backgroundColor = getColor(colors, (((rowIndex + count) == cellInfo.rowIndex)? count: (++count)), value.repeat); +} + } + } +}), removeBackground: (function (cells) { + _$jscoverage['plugins/table.core.js'][1143]++; + utils.each(cells, (function (cell) { + _$jscoverage['plugins/table.core.js'][1144]++; + cell.style.backgroundColor = ""; +})); +})}; + _$jscoverage['plugins/table.core.js'][1150]++; + function showError(e) { +} +})(); diff --git a/_test/coverage/plugins/template.js b/_test/coverage/plugins/template.js new file mode 100644 index 000000000..f46cd1d8b --- /dev/null +++ b/_test/coverage/plugins/template.js @@ -0,0 +1,108 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/template.js']) { + _$jscoverage['plugins/template.js'] = []; + _$jscoverage['plugins/template.js'][2] = 0; + _$jscoverage['plugins/template.js'][3] = 0; + _$jscoverage['plugins/template.js'][5] = 0; + _$jscoverage['plugins/template.js'][8] = 0; + _$jscoverage['plugins/template.js'][9] = 0; + _$jscoverage['plugins/template.js'][11] = 0; + _$jscoverage['plugins/template.js'][12] = 0; + _$jscoverage['plugins/template.js'][13] = 0; + _$jscoverage['plugins/template.js'][16] = 0; + _$jscoverage['plugins/template.js'][18] = 0; + _$jscoverage['plugins/template.js'][19] = 0; + _$jscoverage['plugins/template.js'][20] = 0; + _$jscoverage['plugins/template.js'][21] = 0; + _$jscoverage['plugins/template.js'][22] = 0; + _$jscoverage['plugins/template.js'][23] = 0; + _$jscoverage['plugins/template.js'][24] = 0; + _$jscoverage['plugins/template.js'][27] = 0; + _$jscoverage['plugins/template.js'][28] = 0; +} +_$jscoverage['plugins/template.js'].source = ["","UE.plugins['template'] = function () {"," UE.commands['template'] = {"," execCommand:function (cmd, obj) {"," obj.html && this.execCommand(\"inserthtml\", obj.html);"," }"," };"," this.addListener(\"click\", function (type, evt) {"," var el = evt.target || evt.srcElement,"," range = this.selection.getRange();"," var tnode = domUtils.findParent(el, function (node) {"," if (node.className && domUtils.hasClass(node, \"ue_t\")) {"," return node;"," }"," }, true);"," tnode && range.selectNode(tnode).shrinkBoundary().select();"," });"," this.addListener(\"keydown\", function (type, evt) {"," var range = this.selection.getRange();"," if (!range.collapsed) {"," if (!evt.ctrlKey && !evt.metaKey && !evt.shiftKey && !evt.altKey) {"," var tnode = domUtils.findParent(range.startContainer, function (node) {"," if (node.className && domUtils.hasClass(node, \"ue_t\")) {"," return node;"," }"," }, true);"," if (tnode) {"," domUtils.removeClasses(tnode, [\"ue_t\"]);"," }"," }"," }"," });","};"]; +_$jscoverage['plugins/template.js'][2]++; +UE.plugins.template = (function () { + _$jscoverage['plugins/template.js'][3]++; + UE.commands.template = {execCommand: (function (cmd, obj) { + _$jscoverage['plugins/template.js'][5]++; + (obj.html && this.execCommand("inserthtml", obj.html)); +})}; + _$jscoverage['plugins/template.js'][8]++; + this.addListener("click", (function (type, evt) { + _$jscoverage['plugins/template.js'][9]++; + var el = (evt.target || evt.srcElement), range = this.selection.getRange(); + _$jscoverage['plugins/template.js'][11]++; + var tnode = domUtils.findParent(el, (function (node) { + _$jscoverage['plugins/template.js'][12]++; + if ((node.className && domUtils.hasClass(node, "ue_t"))) { + _$jscoverage['plugins/template.js'][13]++; + return node; + } +}), true); + _$jscoverage['plugins/template.js'][16]++; + (tnode && range.selectNode(tnode).shrinkBoundary().select()); +})); + _$jscoverage['plugins/template.js'][18]++; + this.addListener("keydown", (function (type, evt) { + _$jscoverage['plugins/template.js'][19]++; + var range = this.selection.getRange(); + _$jscoverage['plugins/template.js'][20]++; + if ((! range.collapsed)) { + _$jscoverage['plugins/template.js'][21]++; + if (((! evt.ctrlKey) && (! evt.metaKey) && (! evt.shiftKey) && (! evt.altKey))) { + _$jscoverage['plugins/template.js'][22]++; + var tnode = domUtils.findParent(range.startContainer, (function (node) { + _$jscoverage['plugins/template.js'][23]++; + if ((node.className && domUtils.hasClass(node, "ue_t"))) { + _$jscoverage['plugins/template.js'][24]++; + return node; + } +}), true); + _$jscoverage['plugins/template.js'][27]++; + if (tnode) { + _$jscoverage['plugins/template.js'][28]++; + domUtils.removeClasses(tnode, ["ue_t"]); + } + } + } +})); +}); diff --git a/_test/coverage/plugins/time.js b/_test/coverage/plugins/time.js new file mode 100644 index 000000000..d9a0725a5 --- /dev/null +++ b/_test/coverage/plugins/time.js @@ -0,0 +1,53 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/time.js']) { + _$jscoverage['plugins/time.js'] = []; + _$jscoverage['plugins/time.js'][28] = 0; + _$jscoverage['plugins/time.js'][30] = 0; + _$jscoverage['plugins/time.js'][31] = 0; +} +_$jscoverage['plugins/time.js'].source = ["/**"," * 插入时间和日期"," * @file"," * @since 1.2.6.1"," */","","/**"," * 插入当前时间,插入的格式:12:59:59"," * @command time"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @example"," * ```javascript"," * editor.execCommand( 'time');"," * ```"," */","","/**"," * 插入当前日期,插入格式:2013-08-30"," * @command date"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @example"," * ```javascript"," * editor.execCommand( 'date');"," * ```"," */","UE.commands['time'] = UE.commands[\"date\"] = {"," execCommand : function(cmd){"," var date = new Date;"," this.execCommand('insertHtml',cmd == \"time\" ?"," (date.getHours()+\":\"+ (date.getMinutes()<10 ? \"0\"+date.getMinutes() : date.getMinutes())+\":\"+(date.getSeconds()<10 ? \"0\"+date.getSeconds() : date.getSeconds())) :"," (date.getFullYear()+\"-\"+((date.getMonth()+1)<10 ? \"0\"+(date.getMonth()+1) : date.getMonth()+1)+\"-\"+(date.getDate()<10?\"0\"+date.getDate():date.getDate())));"," }","};","","",""]; +_$jscoverage['plugins/time.js'][28]++; +UE.commands.time = (UE.commands.date = {execCommand: (function (cmd) { + _$jscoverage['plugins/time.js'][30]++; + var date = new Date(); + _$jscoverage['plugins/time.js'][31]++; + this.execCommand("insertHtml", ((cmd == "time")? (date.getHours() + ":" + ((date.getMinutes() < 10)? ("0" + date.getMinutes()): date.getMinutes()) + ":" + ((date.getSeconds() < 10)? ("0" + date.getSeconds()): date.getSeconds())): (date.getFullYear() + "-" + (((date.getMonth() + 1) < 10)? ("0" + (date.getMonth() + 1)): (date.getMonth() + 1)) + "-" + ((date.getDate() < 10)? ("0" + date.getDate()): date.getDate())))); +})}); diff --git a/_test/coverage/plugins/undo.js b/_test/coverage/plugins/undo.js new file mode 100644 index 000000000..a4e260b61 --- /dev/null +++ b/_test/coverage/plugins/undo.js @@ -0,0 +1,568 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/undo.js']) { + _$jscoverage['plugins/undo.js'] = []; + _$jscoverage['plugins/undo.js'][10] = 0; + _$jscoverage['plugins/undo.js'][11] = 0; + _$jscoverage['plugins/undo.js'][12] = 0; + _$jscoverage['plugins/undo.js'][16] = 0; + _$jscoverage['plugins/undo.js'][19] = 0; + _$jscoverage['plugins/undo.js'][20] = 0; + _$jscoverage['plugins/undo.js'][21] = 0; + _$jscoverage['plugins/undo.js'][22] = 0; + _$jscoverage['plugins/undo.js'][23] = 0; + _$jscoverage['plugins/undo.js'][24] = 0; + _$jscoverage['plugins/undo.js'][25] = 0; + _$jscoverage['plugins/undo.js'][27] = 0; + _$jscoverage['plugins/undo.js'][30] = 0; + _$jscoverage['plugins/undo.js'][31] = 0; + _$jscoverage['plugins/undo.js'][32] = 0; + _$jscoverage['plugins/undo.js'][34] = 0; + _$jscoverage['plugins/undo.js'][35] = 0; + _$jscoverage['plugins/undo.js'][37] = 0; + _$jscoverage['plugins/undo.js'][40] = 0; + _$jscoverage['plugins/undo.js'][41] = 0; + _$jscoverage['plugins/undo.js'][42] = 0; + _$jscoverage['plugins/undo.js'][43] = 0; + _$jscoverage['plugins/undo.js'][44] = 0; + _$jscoverage['plugins/undo.js'][45] = 0; + _$jscoverage['plugins/undo.js'][46] = 0; + _$jscoverage['plugins/undo.js'][47] = 0; + _$jscoverage['plugins/undo.js'][48] = 0; + _$jscoverage['plugins/undo.js'][49] = 0; + _$jscoverage['plugins/undo.js'][51] = 0; + _$jscoverage['plugins/undo.js'][52] = 0; + _$jscoverage['plugins/undo.js'][53] = 0; + _$jscoverage['plugins/undo.js'][54] = 0; + _$jscoverage['plugins/undo.js'][57] = 0; + _$jscoverage['plugins/undo.js'][60] = 0; + _$jscoverage['plugins/undo.js'][61] = 0; + _$jscoverage['plugins/undo.js'][62] = 0; + _$jscoverage['plugins/undo.js'][63] = 0; + _$jscoverage['plugins/undo.js'][64] = 0; + _$jscoverage['plugins/undo.js'][65] = 0; + _$jscoverage['plugins/undo.js'][68] = 0; + _$jscoverage['plugins/undo.js'][72] = 0; + _$jscoverage['plugins/undo.js'][73] = 0; + _$jscoverage['plugins/undo.js'][74] = 0; + _$jscoverage['plugins/undo.js'][75] = 0; + _$jscoverage['plugins/undo.js'][76] = 0; + _$jscoverage['plugins/undo.js'][77] = 0; + _$jscoverage['plugins/undo.js'][78] = 0; + _$jscoverage['plugins/undo.js'][81] = 0; + _$jscoverage['plugins/undo.js'][82] = 0; + _$jscoverage['plugins/undo.js'][84] = 0; + _$jscoverage['plugins/undo.js'][85] = 0; + _$jscoverage['plugins/undo.js'][86] = 0; + _$jscoverage['plugins/undo.js'][87] = 0; + _$jscoverage['plugins/undo.js'][92] = 0; + _$jscoverage['plugins/undo.js'][93] = 0; + _$jscoverage['plugins/undo.js'][94] = 0; + _$jscoverage['plugins/undo.js'][97] = 0; + _$jscoverage['plugins/undo.js'][98] = 0; + _$jscoverage['plugins/undo.js'][100] = 0; + _$jscoverage['plugins/undo.js'][103] = 0; + _$jscoverage['plugins/undo.js'][104] = 0; + _$jscoverage['plugins/undo.js'][105] = 0; + _$jscoverage['plugins/undo.js'][107] = 0; + _$jscoverage['plugins/undo.js'][108] = 0; + _$jscoverage['plugins/undo.js'][109] = 0; + _$jscoverage['plugins/undo.js'][110] = 0; + _$jscoverage['plugins/undo.js'][111] = 0; + _$jscoverage['plugins/undo.js'][112] = 0; + _$jscoverage['plugins/undo.js'][116] = 0; + _$jscoverage['plugins/undo.js'][118] = 0; + _$jscoverage['plugins/undo.js'][123] = 0; + _$jscoverage['plugins/undo.js'][124] = 0; + _$jscoverage['plugins/undo.js'][125] = 0; + _$jscoverage['plugins/undo.js'][128] = 0; + _$jscoverage['plugins/undo.js'][131] = 0; + _$jscoverage['plugins/undo.js'][133] = 0; + _$jscoverage['plugins/undo.js'][134] = 0; + _$jscoverage['plugins/undo.js'][136] = 0; + _$jscoverage['plugins/undo.js'][137] = 0; + _$jscoverage['plugins/undo.js'][139] = 0; + _$jscoverage['plugins/undo.js'][140] = 0; + _$jscoverage['plugins/undo.js'][142] = 0; + _$jscoverage['plugins/undo.js'][145] = 0; + _$jscoverage['plugins/undo.js'][146] = 0; + _$jscoverage['plugins/undo.js'][147] = 0; + _$jscoverage['plugins/undo.js'][149] = 0; + _$jscoverage['plugins/undo.js'][150] = 0; + _$jscoverage['plugins/undo.js'][151] = 0; + _$jscoverage['plugins/undo.js'][152] = 0; + _$jscoverage['plugins/undo.js'][153] = 0; + _$jscoverage['plugins/undo.js'][154] = 0; + _$jscoverage['plugins/undo.js'][156] = 0; + _$jscoverage['plugins/undo.js'][157] = 0; + _$jscoverage['plugins/undo.js'][158] = 0; + _$jscoverage['plugins/undo.js'][162] = 0; + _$jscoverage['plugins/undo.js'][163] = 0; + _$jscoverage['plugins/undo.js'][164] = 0; + _$jscoverage['plugins/undo.js'][165] = 0; + _$jscoverage['plugins/undo.js'][168] = 0; + _$jscoverage['plugins/undo.js'][169] = 0; + _$jscoverage['plugins/undo.js'][170] = 0; + _$jscoverage['plugins/undo.js'][173] = 0; + _$jscoverage['plugins/undo.js'][174] = 0; + _$jscoverage['plugins/undo.js'][176] = 0; + _$jscoverage['plugins/undo.js'][177] = 0; + _$jscoverage['plugins/undo.js'][178] = 0; + _$jscoverage['plugins/undo.js'][181] = 0; + _$jscoverage['plugins/undo.js'][183] = 0; + _$jscoverage['plugins/undo.js'][186] = 0; + _$jscoverage['plugins/undo.js'][191] = 0; + _$jscoverage['plugins/undo.js'][200] = 0; + _$jscoverage['plugins/undo.js'][201] = 0; + _$jscoverage['plugins/undo.js'][202] = 0; + _$jscoverage['plugins/undo.js'][203] = 0; + _$jscoverage['plugins/undo.js'][205] = 0; + _$jscoverage['plugins/undo.js'][206] = 0; + _$jscoverage['plugins/undo.js'][210] = 0; + _$jscoverage['plugins/undo.js'][215] = 0; + _$jscoverage['plugins/undo.js'][216] = 0; + _$jscoverage['plugins/undo.js'][218] = 0; + _$jscoverage['plugins/undo.js'][219] = 0; + _$jscoverage['plugins/undo.js'][220] = 0; + _$jscoverage['plugins/undo.js'][221] = 0; + _$jscoverage['plugins/undo.js'][222] = 0; + _$jscoverage['plugins/undo.js'][224] = 0; + _$jscoverage['plugins/undo.js'][225] = 0; + _$jscoverage['plugins/undo.js'][226] = 0; + _$jscoverage['plugins/undo.js'][227] = 0; + _$jscoverage['plugins/undo.js'][229] = 0; + _$jscoverage['plugins/undo.js'][230] = 0; + _$jscoverage['plugins/undo.js'][232] = 0; + _$jscoverage['plugins/undo.js'][233] = 0; + _$jscoverage['plugins/undo.js'][235] = 0; + _$jscoverage['plugins/undo.js'][236] = 0; + _$jscoverage['plugins/undo.js'][237] = 0; + _$jscoverage['plugins/undo.js'][238] = 0; + _$jscoverage['plugins/undo.js'][240] = 0; + _$jscoverage['plugins/undo.js'][241] = 0; + _$jscoverage['plugins/undo.js'][242] = 0; + _$jscoverage['plugins/undo.js'][243] = 0; + _$jscoverage['plugins/undo.js'][244] = 0; + _$jscoverage['plugins/undo.js'][245] = 0; + _$jscoverage['plugins/undo.js'][248] = 0; + _$jscoverage['plugins/undo.js'][250] = 0; + _$jscoverage['plugins/undo.js'][253] = 0; + _$jscoverage['plugins/undo.js'][254] = 0; + _$jscoverage['plugins/undo.js'][255] = 0; + _$jscoverage['plugins/undo.js'][256] = 0; + _$jscoverage['plugins/undo.js'][260] = 0; + _$jscoverage['plugins/undo.js'][261] = 0; + _$jscoverage['plugins/undo.js'][262] = 0; + _$jscoverage['plugins/undo.js'][263] = 0; + _$jscoverage['plugins/undo.js'][264] = 0; + _$jscoverage['plugins/undo.js'][265] = 0; + _$jscoverage['plugins/undo.js'][266] = 0; + _$jscoverage['plugins/undo.js'][267] = 0; +} +_$jscoverage['plugins/undo.js'].source = ["///import core","///commands 撤销和重做","///commandsName Undo,Redo","///commandsTitle 撤销,重做","/*"," * @description 回退"," * @author zhanyi"," */","","UE.plugins['undo'] = function () {"," var saveSceneTimer;"," var me = this,"," maxUndoCount = me.options.maxUndoCount || 20,"," maxInputCount = me.options.maxInputCount || 20,"," fillchar = new RegExp(domUtils.fillChar + '|<\\/hr>', 'gi');// ie会产生多余的</hr>"," var noNeedFillCharTags = {"," ol:1,ul:1,table:1,tbody:1,tr:1,body:1"," };"," var orgState = me.options.autoClearEmptyNode;"," function compareAddr(indexA, indexB) {"," if (indexA.length != indexB.length)"," return 0;"," for (var i = 0, l = indexA.length; i < l; i++) {"," if (indexA[i] != indexB[i])"," return 0"," }"," return 1;"," }",""," function compareRangeAddress(rngAddrA, rngAddrB) {"," if (rngAddrA.collapsed != rngAddrB.collapsed) {"," return 0;"," }"," if (!compareAddr(rngAddrA.startAddress, rngAddrB.startAddress) || !compareAddr(rngAddrA.endAddress, rngAddrB.endAddress)) {"," return 0;"," }"," return 1;"," }",""," function UndoManager() {"," this.list = [];"," this.index = 0;"," this.hasUndo = false;"," this.hasRedo = false;"," this.undo = function () {"," if (this.hasUndo) {"," if (!this.list[this.index - 1] && this.list.length == 1) {"," this.reset();"," return;"," }"," while (this.list[this.index].content == this.list[this.index - 1].content) {"," this.index--;"," if (this.index == 0) {"," return this.restore(0);"," }"," }"," this.restore(--this.index);"," }"," };"," this.redo = function () {"," if (this.hasRedo) {"," while (this.list[this.index].content == this.list[this.index + 1].content) {"," this.index++;"," if (this.index == this.list.length - 1) {"," return this.restore(this.index);"," }"," }"," this.restore(++this.index);"," }"," };",""," this.restore = function () {"," var me = this.editor;"," var scene = this.list[this.index];"," var root = UE.htmlparser(scene.content.replace(fillchar, ''));"," me.options.autoClearEmptyNode = false;"," me.filterInputRule(root);"," me.options.autoClearEmptyNode = orgState;"," //trace:873"," //去掉展位符"," me.document.body.innerHTML = root.toHtml();"," me.fireEvent('afterscencerestore');"," //处理undo后空格不展位的问题"," if (browser.ie) {"," utils.each(domUtils.getElementsByTagName(me.document,'td th caption p'),function(node){"," if(domUtils.isEmptyNode(node)){"," domUtils.fillNode(me.document, node);"," }"," })"," }",""," try{"," var rng = new dom.Range(me.document).moveToAddress(scene.address);"," rng.select(noNeedFillCharTags[rng.startContainer.nodeName.toLowerCase()]);"," }catch(e){}",""," this.update();"," this.clearKey();"," //不能把自己reset了"," me.fireEvent('reset', true);"," };",""," this.getScene = function () {"," var me = this.editor;"," var rng = me.selection.getRange(),"," rngAddress = rng.createAddress(false,true);"," me.fireEvent('beforegetscene');"," var root = UE.htmlparser(me.body.innerHTML);"," me.options.autoClearEmptyNode = false;"," me.filterOutputRule(root);"," me.options.autoClearEmptyNode = orgState;"," var cont = root.toHtml();"," //trace:3461"," //这个会引起回退时导致空格丢失的情况","// browser.ie && (cont = cont.replace(/>&nbsp;</g, '><').replace(/\\s*</g, '<').replace(/>\\s*/g, '>'));"," me.fireEvent('aftergetscene');",""," return {"," address:rngAddress,"," content:cont"," }"," };"," this.save = function (notCompareRange,notSetCursor) {"," clearTimeout(saveSceneTimer);"," var currentScene = this.getScene(notSetCursor),"," lastScene = this.list[this.index];"," //内容相同位置相同不存"," if (lastScene && lastScene.content == currentScene.content &&"," ( notCompareRange ? 1 : compareRangeAddress(lastScene.address, currentScene.address) )"," ) {"," return;"," }"," this.list = this.list.slice(0, this.index + 1);"," this.list.push(currentScene);"," //如果大于最大数量了,就把最前的剔除"," if (this.list.length > maxUndoCount) {"," this.list.shift();"," }"," this.index = this.list.length - 1;"," this.clearKey();"," //跟新undo/redo状态"," this.update();",""," };"," this.update = function () {"," this.hasRedo = !!this.list[this.index + 1];"," this.hasUndo = !!this.list[this.index - 1];"," };"," this.reset = function () {"," this.list = [];"," this.index = 0;"," this.hasUndo = false;"," this.hasRedo = false;"," this.clearKey();"," };"," this.clearKey = function () {"," keycont = 0;"," lastKeyCode = null;"," };"," }",""," me.undoManger = new UndoManager();"," me.undoManger.editor = me;"," function saveScene() {"," this.undoManger.save();"," }",""," me.addListener('saveScene', function () {"," var args = Array.prototype.splice.call(arguments,1);"," this.undoManger.save.apply(this.undoManger,args);"," });",""," me.addListener('beforeexeccommand', saveScene);"," me.addListener('afterexeccommand', saveScene);",""," me.addListener('reset', function (type, exclude) {"," if (!exclude) {"," this.undoManger.reset();"," }"," });"," me.commands['redo'] = me.commands['undo'] = {"," execCommand:function (cmdName) {"," this.undoManger[cmdName]();"," },"," queryCommandState:function (cmdName) {"," return this.undoManger['has' + (cmdName.toLowerCase() == 'undo' ? 'Undo' : 'Redo')] ? 0 : -1;"," },"," notNeedUndo:1"," };",""," var keys = {"," // /*Backspace*/ 8:1, /*Delete*/ 46:1,"," /*Shift*/ 16:1, /*Ctrl*/ 17:1, /*Alt*/ 18:1,"," 37:1, 38:1, 39:1, 40:1",""," },"," keycont = 0,"," lastKeyCode;"," //输入法状态下不计算字符数"," var inputType = false;"," me.addListener('ready', function () {"," domUtils.on(this.body, 'compositionstart', function () {"," inputType = true;"," });"," domUtils.on(this.body, 'compositionend', function () {"," inputType = false;"," })"," });"," //快捷键"," me.addshortcutkey({"," \"Undo\":\"ctrl+90\", //undo"," \"Redo\":\"ctrl+89\" //redo",""," });"," var isCollapsed = true;"," me.addListener('keydown', function (type, evt) {",""," var me = this;"," var keyCode = evt.keyCode || evt.which;"," if (!keys[keyCode] && !evt.ctrlKey && !evt.metaKey && !evt.shiftKey && !evt.altKey) {"," if (inputType)"," return;",""," if(!me.selection.getRange().collapsed){"," me.undoManger.save(false,true);"," isCollapsed = false;"," return;"," }"," if (me.undoManger.list.length == 0) {"," me.undoManger.save(true);"," }"," clearTimeout(saveSceneTimer);"," function save(cont){",""," if (cont.selection.getRange().collapsed)"," cont.fireEvent('contentchange');"," cont.undoManger.save(false,true);"," cont.fireEvent('selectionchange');"," }"," saveSceneTimer = setTimeout(function(){"," if(inputType){"," var interalTimer = setInterval(function(){"," if(!inputType){"," save(me);"," clearInterval(interalTimer)"," }"," },300)"," return;"," }"," save(me);"," },200);",""," lastKeyCode = keyCode;"," keycont++;"," if (keycont >= maxInputCount ) {"," save(me)"," }"," }"," });"," me.addListener('keyup', function (type, evt) {"," var keyCode = evt.keyCode || evt.which;"," if (!keys[keyCode] && !evt.ctrlKey && !evt.metaKey && !evt.shiftKey && !evt.altKey) {"," if (inputType)"," return;"," if(!isCollapsed){"," this.undoManger.save(false,true);"," isCollapsed = true;"," }"," }"," });","","};"]; +_$jscoverage['plugins/undo.js'][10]++; +UE.plugins.undo = (function () { + _$jscoverage['plugins/undo.js'][11]++; + var saveSceneTimer; + _$jscoverage['plugins/undo.js'][12]++; + var me = this, maxUndoCount = (me.options.maxUndoCount || 20), maxInputCount = (me.options.maxInputCount || 20), fillchar = new RegExp((domUtils.fillChar + "|"), "gi"); + _$jscoverage['plugins/undo.js'][16]++; + var noNeedFillCharTags = {ol: 1, ul: 1, table: 1, tbody: 1, tr: 1, body: 1}; + _$jscoverage['plugins/undo.js'][19]++; + var orgState = me.options.autoClearEmptyNode; + _$jscoverage['plugins/undo.js'][20]++; + function compareAddr(indexA, indexB) { + _$jscoverage['plugins/undo.js'][21]++; + if ((indexA.length != indexB.length)) { + _$jscoverage['plugins/undo.js'][22]++; + return 0; + } + _$jscoverage['plugins/undo.js'][23]++; + for (var i = 0, l = indexA.length; (i < l); (i++)) { + _$jscoverage['plugins/undo.js'][24]++; + if ((indexA[i] != indexB[i])) { + _$jscoverage['plugins/undo.js'][25]++; + return 0; + } +} + _$jscoverage['plugins/undo.js'][27]++; + return 1; +} + _$jscoverage['plugins/undo.js'][30]++; + function compareRangeAddress(rngAddrA, rngAddrB) { + _$jscoverage['plugins/undo.js'][31]++; + if ((rngAddrA.collapsed != rngAddrB.collapsed)) { + _$jscoverage['plugins/undo.js'][32]++; + return 0; + } + _$jscoverage['plugins/undo.js'][34]++; + if (((! compareAddr(rngAddrA.startAddress, rngAddrB.startAddress)) || (! compareAddr(rngAddrA.endAddress, rngAddrB.endAddress)))) { + _$jscoverage['plugins/undo.js'][35]++; + return 0; + } + _$jscoverage['plugins/undo.js'][37]++; + return 1; +} + _$jscoverage['plugins/undo.js'][40]++; + function UndoManager() { + _$jscoverage['plugins/undo.js'][41]++; + this.list = []; + _$jscoverage['plugins/undo.js'][42]++; + this.index = 0; + _$jscoverage['plugins/undo.js'][43]++; + this.hasUndo = false; + _$jscoverage['plugins/undo.js'][44]++; + this.hasRedo = false; + _$jscoverage['plugins/undo.js'][45]++; + this.undo = (function () { + _$jscoverage['plugins/undo.js'][46]++; + if (this.hasUndo) { + _$jscoverage['plugins/undo.js'][47]++; + if (((! this.list[(this.index - 1)]) && (this.list.length == 1))) { + _$jscoverage['plugins/undo.js'][48]++; + this.reset(); + _$jscoverage['plugins/undo.js'][49]++; + return; + } + _$jscoverage['plugins/undo.js'][51]++; + while ((this.list[this.index].content == this.list[(this.index - 1)].content)) { + _$jscoverage['plugins/undo.js'][52]++; + (this.index--); + _$jscoverage['plugins/undo.js'][53]++; + if ((this.index == 0)) { + _$jscoverage['plugins/undo.js'][54]++; + return this.restore(0); + } +} + _$jscoverage['plugins/undo.js'][57]++; + this.restore((--this.index)); + } +}); + _$jscoverage['plugins/undo.js'][60]++; + this.redo = (function () { + _$jscoverage['plugins/undo.js'][61]++; + if (this.hasRedo) { + _$jscoverage['plugins/undo.js'][62]++; + while ((this.list[this.index].content == this.list[(this.index + 1)].content)) { + _$jscoverage['plugins/undo.js'][63]++; + (this.index++); + _$jscoverage['plugins/undo.js'][64]++; + if ((this.index == (this.list.length - 1))) { + _$jscoverage['plugins/undo.js'][65]++; + return this.restore(this.index); + } +} + _$jscoverage['plugins/undo.js'][68]++; + this.restore((++this.index)); + } +}); + _$jscoverage['plugins/undo.js'][72]++; + this.restore = (function () { + _$jscoverage['plugins/undo.js'][73]++; + var me = this.editor; + _$jscoverage['plugins/undo.js'][74]++; + var scene = this.list[this.index]; + _$jscoverage['plugins/undo.js'][75]++; + var root = UE.htmlparser(scene.content.replace(fillchar, "")); + _$jscoverage['plugins/undo.js'][76]++; + me.options.autoClearEmptyNode = false; + _$jscoverage['plugins/undo.js'][77]++; + me.filterInputRule(root); + _$jscoverage['plugins/undo.js'][78]++; + me.options.autoClearEmptyNode = orgState; + _$jscoverage['plugins/undo.js'][81]++; + me.document.body.innerHTML = root.toHtml(); + _$jscoverage['plugins/undo.js'][82]++; + me.fireEvent("afterscencerestore"); + _$jscoverage['plugins/undo.js'][84]++; + if (browser.ie) { + _$jscoverage['plugins/undo.js'][85]++; + utils.each(domUtils.getElementsByTagName(me.document, "td th caption p"), (function (node) { + _$jscoverage['plugins/undo.js'][86]++; + if (domUtils.isEmptyNode(node)) { + _$jscoverage['plugins/undo.js'][87]++; + domUtils.fillNode(me.document, node); + } +})); + } + _$jscoverage['plugins/undo.js'][92]++; + try { + _$jscoverage['plugins/undo.js'][93]++; + var rng = new (dom.Range)(me.document).moveToAddress(scene.address); + _$jscoverage['plugins/undo.js'][94]++; + rng.select(noNeedFillCharTags[rng.startContainer.nodeName.toLowerCase()]); + } + catch (e) { + } + _$jscoverage['plugins/undo.js'][97]++; + this.update(); + _$jscoverage['plugins/undo.js'][98]++; + this.clearKey(); + _$jscoverage['plugins/undo.js'][100]++; + me.fireEvent("reset", true); +}); + _$jscoverage['plugins/undo.js'][103]++; + this.getScene = (function () { + _$jscoverage['plugins/undo.js'][104]++; + var me = this.editor; + _$jscoverage['plugins/undo.js'][105]++; + var rng = me.selection.getRange(), rngAddress = rng.createAddress(false, true); + _$jscoverage['plugins/undo.js'][107]++; + me.fireEvent("beforegetscene"); + _$jscoverage['plugins/undo.js'][108]++; + var root = UE.htmlparser(me.body.innerHTML); + _$jscoverage['plugins/undo.js'][109]++; + me.options.autoClearEmptyNode = false; + _$jscoverage['plugins/undo.js'][110]++; + me.filterOutputRule(root); + _$jscoverage['plugins/undo.js'][111]++; + me.options.autoClearEmptyNode = orgState; + _$jscoverage['plugins/undo.js'][112]++; + var cont = root.toHtml(); + _$jscoverage['plugins/undo.js'][116]++; + me.fireEvent("aftergetscene"); + _$jscoverage['plugins/undo.js'][118]++; + return ({address: rngAddress, content: cont}); +}); + _$jscoverage['plugins/undo.js'][123]++; + this.save = (function (notCompareRange, notSetCursor) { + _$jscoverage['plugins/undo.js'][124]++; + clearTimeout(saveSceneTimer); + _$jscoverage['plugins/undo.js'][125]++; + var currentScene = this.getScene(notSetCursor), lastScene = this.list[this.index]; + _$jscoverage['plugins/undo.js'][128]++; + if ((lastScene && (lastScene.content == currentScene.content) && (notCompareRange? 1: compareRangeAddress(lastScene.address, currentScene.address)))) { + _$jscoverage['plugins/undo.js'][131]++; + return; + } + _$jscoverage['plugins/undo.js'][133]++; + this.list = this.list.slice(0, (this.index + 1)); + _$jscoverage['plugins/undo.js'][134]++; + this.list.push(currentScene); + _$jscoverage['plugins/undo.js'][136]++; + if ((this.list.length > maxUndoCount)) { + _$jscoverage['plugins/undo.js'][137]++; + this.list.shift(); + } + _$jscoverage['plugins/undo.js'][139]++; + this.index = (this.list.length - 1); + _$jscoverage['plugins/undo.js'][140]++; + this.clearKey(); + _$jscoverage['plugins/undo.js'][142]++; + this.update(); +}); + _$jscoverage['plugins/undo.js'][145]++; + this.update = (function () { + _$jscoverage['plugins/undo.js'][146]++; + this.hasRedo = (! (! this.list[(this.index + 1)])); + _$jscoverage['plugins/undo.js'][147]++; + this.hasUndo = (! (! this.list[(this.index - 1)])); +}); + _$jscoverage['plugins/undo.js'][149]++; + this.reset = (function () { + _$jscoverage['plugins/undo.js'][150]++; + this.list = []; + _$jscoverage['plugins/undo.js'][151]++; + this.index = 0; + _$jscoverage['plugins/undo.js'][152]++; + this.hasUndo = false; + _$jscoverage['plugins/undo.js'][153]++; + this.hasRedo = false; + _$jscoverage['plugins/undo.js'][154]++; + this.clearKey(); +}); + _$jscoverage['plugins/undo.js'][156]++; + this.clearKey = (function () { + _$jscoverage['plugins/undo.js'][157]++; + keycont = 0; + _$jscoverage['plugins/undo.js'][158]++; + lastKeyCode = null; +}); +} + _$jscoverage['plugins/undo.js'][162]++; + me.undoManger = new UndoManager(); + _$jscoverage['plugins/undo.js'][163]++; + me.undoManger.editor = me; + _$jscoverage['plugins/undo.js'][164]++; + function saveScene() { + _$jscoverage['plugins/undo.js'][165]++; + this.undoManger.save(); +} + _$jscoverage['plugins/undo.js'][168]++; + me.addListener("saveScene", (function () { + _$jscoverage['plugins/undo.js'][169]++; + var args = Array.prototype.splice.call(arguments, 1); + _$jscoverage['plugins/undo.js'][170]++; + this.undoManger.save.apply(this.undoManger, args); +})); + _$jscoverage['plugins/undo.js'][173]++; + me.addListener("beforeexeccommand", saveScene); + _$jscoverage['plugins/undo.js'][174]++; + me.addListener("afterexeccommand", saveScene); + _$jscoverage['plugins/undo.js'][176]++; + me.addListener("reset", (function (type, exclude) { + _$jscoverage['plugins/undo.js'][177]++; + if ((! exclude)) { + _$jscoverage['plugins/undo.js'][178]++; + this.undoManger.reset(); + } +})); + _$jscoverage['plugins/undo.js'][181]++; + me.commands.redo = (me.commands.undo = {execCommand: (function (cmdName) { + _$jscoverage['plugins/undo.js'][183]++; + (this.undoManger[cmdName])(); +}), queryCommandState: (function (cmdName) { + _$jscoverage['plugins/undo.js'][186]++; + return (this.undoManger[("has" + ((cmdName.toLowerCase() == "undo")? "Undo": "Redo"))]? 0: -1); +}), notNeedUndo: 1}); + _$jscoverage['plugins/undo.js'][191]++; + var keys = {16: 1, 17: 1, 18: 1, 37: 1, 38: 1, 39: 1, 40: 1}, keycont = 0, lastKeyCode; + _$jscoverage['plugins/undo.js'][200]++; + var inputType = false; + _$jscoverage['plugins/undo.js'][201]++; + me.addListener("ready", (function () { + _$jscoverage['plugins/undo.js'][202]++; + domUtils.on(this.body, "compositionstart", (function () { + _$jscoverage['plugins/undo.js'][203]++; + inputType = true; +})); + _$jscoverage['plugins/undo.js'][205]++; + domUtils.on(this.body, "compositionend", (function () { + _$jscoverage['plugins/undo.js'][206]++; + inputType = false; +})); +})); + _$jscoverage['plugins/undo.js'][210]++; + me.addshortcutkey({"Undo": "ctrl+90", "Redo": "ctrl+89"}); + _$jscoverage['plugins/undo.js'][215]++; + var isCollapsed = true; + _$jscoverage['plugins/undo.js'][216]++; + me.addListener("keydown", (function (type, evt) { + _$jscoverage['plugins/undo.js'][218]++; + var me = this; + _$jscoverage['plugins/undo.js'][219]++; + var keyCode = (evt.keyCode || evt.which); + _$jscoverage['plugins/undo.js'][220]++; + if (((! keys[keyCode]) && (! evt.ctrlKey) && (! evt.metaKey) && (! evt.shiftKey) && (! evt.altKey))) { + _$jscoverage['plugins/undo.js'][221]++; + if (inputType) { + _$jscoverage['plugins/undo.js'][222]++; + return; + } + _$jscoverage['plugins/undo.js'][224]++; + if ((! me.selection.getRange().collapsed)) { + _$jscoverage['plugins/undo.js'][225]++; + me.undoManger.save(false, true); + _$jscoverage['plugins/undo.js'][226]++; + isCollapsed = false; + _$jscoverage['plugins/undo.js'][227]++; + return; + } + _$jscoverage['plugins/undo.js'][229]++; + if ((me.undoManger.list.length == 0)) { + _$jscoverage['plugins/undo.js'][230]++; + me.undoManger.save(true); + } + _$jscoverage['plugins/undo.js'][232]++; + clearTimeout(saveSceneTimer); + _$jscoverage['plugins/undo.js'][233]++; + function save(cont) { + _$jscoverage['plugins/undo.js'][235]++; + if (cont.selection.getRange().collapsed) { + _$jscoverage['plugins/undo.js'][236]++; + cont.fireEvent("contentchange"); + } + _$jscoverage['plugins/undo.js'][237]++; + cont.undoManger.save(false, true); + _$jscoverage['plugins/undo.js'][238]++; + cont.fireEvent("selectionchange"); +} + _$jscoverage['plugins/undo.js'][240]++; + saveSceneTimer = setTimeout((function () { + _$jscoverage['plugins/undo.js'][241]++; + if (inputType) { + _$jscoverage['plugins/undo.js'][242]++; + var interalTimer = setInterval((function () { + _$jscoverage['plugins/undo.js'][243]++; + if ((! inputType)) { + _$jscoverage['plugins/undo.js'][244]++; + save(me); + _$jscoverage['plugins/undo.js'][245]++; + clearInterval(interalTimer); + } +}), 300); + _$jscoverage['plugins/undo.js'][248]++; + return; + } + _$jscoverage['plugins/undo.js'][250]++; + save(me); +}), 200); + _$jscoverage['plugins/undo.js'][253]++; + lastKeyCode = keyCode; + _$jscoverage['plugins/undo.js'][254]++; + (keycont++); + _$jscoverage['plugins/undo.js'][255]++; + if ((keycont >= maxInputCount)) { + _$jscoverage['plugins/undo.js'][256]++; + save(me); + } + } +})); + _$jscoverage['plugins/undo.js'][260]++; + me.addListener("keyup", (function (type, evt) { + _$jscoverage['plugins/undo.js'][261]++; + var keyCode = (evt.keyCode || evt.which); + _$jscoverage['plugins/undo.js'][262]++; + if (((! keys[keyCode]) && (! evt.ctrlKey) && (! evt.metaKey) && (! evt.shiftKey) && (! evt.altKey))) { + _$jscoverage['plugins/undo.js'][263]++; + if (inputType) { + _$jscoverage['plugins/undo.js'][264]++; + return; + } + _$jscoverage['plugins/undo.js'][265]++; + if ((! isCollapsed)) { + _$jscoverage['plugins/undo.js'][266]++; + this.undoManger.save(false, true); + _$jscoverage['plugins/undo.js'][267]++; + isCollapsed = true; + } + } +})); +}); diff --git a/_test/coverage/plugins/video.js b/_test/coverage/plugins/video.js new file mode 100644 index 000000000..95e37bd9d --- /dev/null +++ b/_test/coverage/plugins/video.js @@ -0,0 +1,138 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/video.js']) { + _$jscoverage['plugins/video.js'] = []; + _$jscoverage['plugins/video.js'][7] = 0; + _$jscoverage['plugins/video.js'][9] = 0; + _$jscoverage['plugins/video.js'][21] = 0; + _$jscoverage['plugins/video.js'][22] = 0; + _$jscoverage['plugins/video.js'][33] = 0; + _$jscoverage['plugins/video.js'][34] = 0; + _$jscoverage['plugins/video.js'][35] = 0; + _$jscoverage['plugins/video.js'][37] = 0; + _$jscoverage['plugins/video.js'][38] = 0; + _$jscoverage['plugins/video.js'][43] = 0; + _$jscoverage['plugins/video.js'][44] = 0; + _$jscoverage['plugins/video.js'][46] = 0; + _$jscoverage['plugins/video.js'][47] = 0; + _$jscoverage['plugins/video.js'][93] = 0; + _$jscoverage['plugins/video.js'][95] = 0; + _$jscoverage['plugins/video.js'][96] = 0; + _$jscoverage['plugins/video.js'][97] = 0; + _$jscoverage['plugins/video.js'][98] = 0; + _$jscoverage['plugins/video.js'][99] = 0; + _$jscoverage['plugins/video.js'][101] = 0; + _$jscoverage['plugins/video.js'][102] = 0; + _$jscoverage['plugins/video.js'][103] = 0; + _$jscoverage['plugins/video.js'][104] = 0; + _$jscoverage['plugins/video.js'][105] = 0; + _$jscoverage['plugins/video.js'][106] = 0; + _$jscoverage['plugins/video.js'][107] = 0; + _$jscoverage['plugins/video.js'][111] = 0; + _$jscoverage['plugins/video.js'][113] = 0; +} +_$jscoverage['plugins/video.js'].source = ["/**"," * video插件, 为UEditor提供视频插入支持"," * @file"," * @since 1.2.6.1"," */","","UE.plugins['video'] = function (){",""," var me =this,"," div;",""," /*"," * 创建插入视频字符窜"," * @param url 视频地址"," * @param width 视频宽度"," * @param height 视频高度"," * @param align 视频对齐"," * @param toEmbed 是否以flash代替显示"," * @param addParagraph 是否需要添加P 标签"," */"," function creatInsertStr(url,width,height,id,align,toEmbed){"," return !toEmbed ?",""," '<img ' + (id ? 'id=\"' + id+'\"' : '') + ' width=\"'+ width +'\" height=\"' + height + '\" _url=\"'+url+'\" class=\"edui-faked-video\"' +"," ' src=\"' + me.options.UEDITOR_HOME_URL+'themes/default/images/spacer.gif\" style=\"background:url('+me.options.UEDITOR_HOME_URL+'themes/default/images/videologo.gif) no-repeat center center; border:1px solid gray;'+(align ? 'float:' + align + ';': '')+'\" />'",""," :"," '<embed type=\"application/x-shockwave-flash\" class=\"edui-faked-video\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\"' +"," ' src=\"' + url + '\" width=\"' + width + '\" height=\"' + height + '\"' + (align ? ' style=\"float:' + align + '\"': '') +"," ' wmode=\"transparent\" play=\"true\" loop=\"false\" menu=\"false\" allowscriptaccess=\"never\" allowfullscreen=\"true\" >';"," }",""," function switchImgAndEmbed(root,img2embed){"," utils.each(root.getNodesByTagName(img2embed ? 'img' : 'embed'),function(node){"," if(node.getAttr('class') == 'edui-faked-video'){",""," var html = creatInsertStr( img2embed ? node.getAttr('_url') : node.getAttr('src'),node.getAttr('width'),node.getAttr('height'),null,node.getStyle('float') || '',img2embed);"," node.parentNode.replaceChild(UE.uNode.createElement(html),node)"," }"," })"," }",""," me.addOutputRule(function(root){"," switchImgAndEmbed(root,true)"," });"," me.addInputRule(function(root){"," switchImgAndEmbed(root)"," });",""," /**"," * 插入视频"," * @command insertvideo"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @param { KeyValueMap } videoObj 键值对对象, 描述一个视频的所有属性"," * @example"," * ```javascript"," *"," * //editor 是编辑器实例"," * editor.execCommand( 'insertvideo', {"," *"," * } );"," * ```"," */",""," /**"," * 插入视频"," * @command insertvideo"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @param { Array } videoArr 需要插入的视频的数组, 其中的每一个元素都是一个键值对对象, 描述了一个视频的所有属性"," * @example"," * ```javascript"," *"," * //editor 是编辑器实例"," * editor.execCommand( 'insertvideo', [ ] );"," * ```"," */",""," /**"," * 查询当前光标所在处是否是一个视频"," * @command insertvideo"," * @method queryCommandState"," * @param { String } cmd 需要查询的命令字符串"," * @return { int } 如果当前光标所在处的元素是一个视频对象, 则返回1,否则返回0"," * @example"," * ```javascript"," *"," * //editor 是编辑器实例"," * editor.queryCommandState( 'insertvideo' );"," * ```"," */"," me.commands[\"insertvideo\"] = {"," execCommand: function (cmd, videoObjs){"," videoObjs = utils.isArray(videoObjs)?videoObjs:[videoObjs];"," var html = [],id = 'tmpVedio';"," for(var i=0,vi,len = videoObjs.length;i<len;i++){"," vi = videoObjs[i];"," html.push(creatInsertStr( vi.url, vi.width || 420, vi.height || 280, id + i,null,false));"," }"," me.execCommand(\"inserthtml\",html.join(\"\"),true);"," var rng = this.selection.getRange();"," for(var i= 0,len=videoObjs.length;i<len;i++){"," var img = this.document.getElementById('tmpVedio'+i);"," domUtils.removeAttributes(img,'id');"," rng.selectNode(img).select();"," me.execCommand('imagefloat',videoObjs[i].align)"," }"," },"," queryCommandState : function(){"," var img = me.selection.getRange().getClosedNode(),"," flag = img && (img.className == \"edui-faked-video\");"," return flag ? 1 : 0;"," }"," };","};"]; +_$jscoverage['plugins/video.js'][7]++; +UE.plugins.video = (function () { + _$jscoverage['plugins/video.js'][9]++; + var me = this, div; + _$jscoverage['plugins/video.js'][21]++; + function creatInsertStr(url, width, height, id, align, toEmbed) { + _$jscoverage['plugins/video.js'][22]++; + return ((! toEmbed)? (""): ("")); +} + _$jscoverage['plugins/video.js'][33]++; + function switchImgAndEmbed(root, img2embed) { + _$jscoverage['plugins/video.js'][34]++; + utils.each(root.getNodesByTagName((img2embed? "img": "embed")), (function (node) { + _$jscoverage['plugins/video.js'][35]++; + if ((node.getAttr("class") == "edui-faked-video")) { + _$jscoverage['plugins/video.js'][37]++; + var html = creatInsertStr((img2embed? node.getAttr("_url"): node.getAttr("src")), node.getAttr("width"), node.getAttr("height"), null, (node.getStyle("float") || ""), img2embed); + _$jscoverage['plugins/video.js'][38]++; + node.parentNode.replaceChild(UE.uNode.createElement(html), node); + } +})); +} + _$jscoverage['plugins/video.js'][43]++; + me.addOutputRule((function (root) { + _$jscoverage['plugins/video.js'][44]++; + switchImgAndEmbed(root, true); +})); + _$jscoverage['plugins/video.js'][46]++; + me.addInputRule((function (root) { + _$jscoverage['plugins/video.js'][47]++; + switchImgAndEmbed(root); +})); + _$jscoverage['plugins/video.js'][93]++; + me.commands.insertvideo = {execCommand: (function (cmd, videoObjs) { + _$jscoverage['plugins/video.js'][95]++; + videoObjs = (utils.isArray(videoObjs)? videoObjs: [videoObjs]); + _$jscoverage['plugins/video.js'][96]++; + var html = [], id = "tmpVedio"; + _$jscoverage['plugins/video.js'][97]++; + for (var i = 0, vi, len = videoObjs.length; (i < len); (i++)) { + _$jscoverage['plugins/video.js'][98]++; + vi = videoObjs[i]; + _$jscoverage['plugins/video.js'][99]++; + html.push(creatInsertStr(vi.url, (vi.width || 420), (vi.height || 280), (id + i), null, false)); +} + _$jscoverage['plugins/video.js'][101]++; + me.execCommand("inserthtml", html.join(""), true); + _$jscoverage['plugins/video.js'][102]++; + var rng = this.selection.getRange(); + _$jscoverage['plugins/video.js'][103]++; + for (var i = 0, len = videoObjs.length; (i < len); (i++)) { + _$jscoverage['plugins/video.js'][104]++; + var img = this.document.getElementById(("tmpVedio" + i)); + _$jscoverage['plugins/video.js'][105]++; + domUtils.removeAttributes(img, "id"); + _$jscoverage['plugins/video.js'][106]++; + rng.selectNode(img).select(); + _$jscoverage['plugins/video.js'][107]++; + me.execCommand("imagefloat", videoObjs[i].align); +} +}), queryCommandState: (function () { + _$jscoverage['plugins/video.js'][111]++; + var img = me.selection.getRange().getClosedNode(), flag = (img && (img.className == "edui-faked-video")); + _$jscoverage['plugins/video.js'][113]++; + return (flag? 1: 0); +})}; +}); diff --git a/_test/coverage/plugins/webapp.js b/_test/coverage/plugins/webapp.js new file mode 100644 index 000000000..75660c5ce --- /dev/null +++ b/_test/coverage/plugins/webapp.js @@ -0,0 +1,119 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/webapp.js']) { + _$jscoverage['plugins/webapp.js'] = []; + _$jscoverage['plugins/webapp.js'][28] = 0; + _$jscoverage['plugins/webapp.js'][29] = 0; + _$jscoverage['plugins/webapp.js'][30] = 0; + _$jscoverage['plugins/webapp.js'][31] = 0; + _$jscoverage['plugins/webapp.js'][39] = 0; + _$jscoverage['plugins/webapp.js'][40] = 0; + _$jscoverage['plugins/webapp.js'][42] = 0; + _$jscoverage['plugins/webapp.js'][43] = 0; + _$jscoverage['plugins/webapp.js'][44] = 0; + _$jscoverage['plugins/webapp.js'][46] = 0; + _$jscoverage['plugins/webapp.js'][47] = 0; + _$jscoverage['plugins/webapp.js'][48] = 0; + _$jscoverage['plugins/webapp.js'][52] = 0; + _$jscoverage['plugins/webapp.js'][53] = 0; + _$jscoverage['plugins/webapp.js'][55] = 0; + _$jscoverage['plugins/webapp.js'][56] = 0; + _$jscoverage['plugins/webapp.js'][58] = 0; + _$jscoverage['plugins/webapp.js'][59] = 0; + _$jscoverage['plugins/webapp.js'][60] = 0; + _$jscoverage['plugins/webapp.js'][62] = 0; + _$jscoverage['plugins/webapp.js'][65] = 0; + _$jscoverage['plugins/webapp.js'][67] = 0; +} +_$jscoverage['plugins/webapp.js'].source = ["/**"," * 百度应用"," * @file"," * @since 1.2.6.1"," */","","","/**"," * 在当前光标处插入一个百度应用, 需要百度APPKey"," * @command webapp"," * @method execCommand"," * @param { KeyValueMap } appOptions 应用所需的参数项, 支持的key有: title=>应用标题, width=>应用容器宽度,"," * height=>应用容器高度,logo=>应用logo,url=>应用地址"," * @example"," * ```javascript"," * //editor是编辑器实例"," * //在编辑器里插入一个“植物大战僵尸”的APP"," * editor.execCommand( 'webapp' , {"," * title: '植物大战僵尸',"," * width: 560,"," * height: 465,"," * logo: '应用展示的图片',"," * url: '百度应用的地址'"," * } );"," * ```"," */","","UE.plugins['webapp'] = function () {"," var me = this;"," function createInsertStr( obj, toIframe, addParagraph ) {"," return !toIframe ?"," (addParagraph ? '<p>' : '') + '<img title=\"'+obj.title+'\" width=\"' + obj.width + '\" height=\"' + obj.height + '\"' +"," ' src=\"' + me.options.UEDITOR_HOME_URL + 'themes/default/images/spacer.gif\" style=\"background:url(' + obj.logo+') no-repeat center center; border:1px solid gray;\" class=\"edui-faked-webapp\" _url=\"' + obj.url + '\" />' +"," (addParagraph ? '</p>' : '')"," :"," '<iframe class=\"edui-faked-webapp\" title=\"'+obj.title+'\" width=\"' + obj.width + '\" height=\"' + obj.height + '\" scrolling=\"no\" frameborder=\"0\" src=\"' + obj.url + '\" logo_url = '+obj.logo+'></iframe>';"," }",""," function switchImgAndIframe( img2frame ) {"," var tmpdiv,"," nodes = domUtils.getElementsByTagName( me.document, !img2frame ? \"iframe\" : \"img\" );"," for ( var i = 0, node; node = nodes[i++]; ) {"," if ( node.className != \"edui-faked-webapp\" ){"," continue;"," }"," tmpdiv = me.document.createElement( \"div\" );"," tmpdiv.innerHTML = createInsertStr( img2frame ? {url:node.getAttribute( \"_url\" ), width:node.width, height:node.height,title:node.title,logo:node.style.backgroundImage.replace(\"url(\",\"\").replace(\")\",\"\")} : {url:node.getAttribute( \"src\", 2 ),title:node.title, width:node.width, height:node.height,logo:node.getAttribute(\"logo_url\")}, img2frame ? true : false,false );"," node.parentNode.replaceChild( tmpdiv.firstChild, node );"," }"," }",""," me.addListener( \"beforegetcontent\", function () {"," switchImgAndIframe( true );"," } );"," me.addListener( 'aftersetcontent', function () {"," switchImgAndIframe( false );"," } );"," me.addListener( 'aftergetcontent', function ( cmdName ) {"," if ( cmdName == 'aftergetcontent' && me.queryCommandState( 'source' ) ){"," return;"," }"," switchImgAndIframe( false );"," } );",""," me.commands['webapp'] = {"," execCommand:function ( cmd, obj ) {"," me.execCommand( \"inserthtml\", createInsertStr( obj, false,true ) );"," }"," };","};"]; +_$jscoverage['plugins/webapp.js'][28]++; +UE.plugins.webapp = (function () { + _$jscoverage['plugins/webapp.js'][29]++; + var me = this; + _$jscoverage['plugins/webapp.js'][30]++; + function createInsertStr(obj, toIframe, addParagraph) { + _$jscoverage['plugins/webapp.js'][31]++; + return ((! toIframe)? ((addParagraph? "

": "") + "" + (addParagraph? "

": "")): ("")); +} + _$jscoverage['plugins/webapp.js'][39]++; + function switchImgAndIframe(img2frame) { + _$jscoverage['plugins/webapp.js'][40]++; + var tmpdiv, nodes = domUtils.getElementsByTagName(me.document, ((! img2frame)? "iframe": "img")); + _$jscoverage['plugins/webapp.js'][42]++; + for (var i = 0, node; (node = nodes[(i++)]);) { + _$jscoverage['plugins/webapp.js'][43]++; + if ((node.className != "edui-faked-webapp")) { + _$jscoverage['plugins/webapp.js'][44]++; + continue; + } + _$jscoverage['plugins/webapp.js'][46]++; + tmpdiv = me.document.createElement("div"); + _$jscoverage['plugins/webapp.js'][47]++; + tmpdiv.innerHTML = createInsertStr((img2frame? {url: node.getAttribute("_url"), width: node.width, height: node.height, title: node.title, logo: node.style.backgroundImage.replace("url(", "").replace(")", "")}: {url: node.getAttribute("src", 2), title: node.title, width: node.width, height: node.height, logo: node.getAttribute("logo_url")}), (img2frame? true: false), false); + _$jscoverage['plugins/webapp.js'][48]++; + node.parentNode.replaceChild(tmpdiv.firstChild, node); +} +} + _$jscoverage['plugins/webapp.js'][52]++; + me.addListener("beforegetcontent", (function () { + _$jscoverage['plugins/webapp.js'][53]++; + switchImgAndIframe(true); +})); + _$jscoverage['plugins/webapp.js'][55]++; + me.addListener("aftersetcontent", (function () { + _$jscoverage['plugins/webapp.js'][56]++; + switchImgAndIframe(false); +})); + _$jscoverage['plugins/webapp.js'][58]++; + me.addListener("aftergetcontent", (function (cmdName) { + _$jscoverage['plugins/webapp.js'][59]++; + if (((cmdName == "aftergetcontent") && me.queryCommandState("source"))) { + _$jscoverage['plugins/webapp.js'][60]++; + return; + } + _$jscoverage['plugins/webapp.js'][62]++; + switchImgAndIframe(false); +})); + _$jscoverage['plugins/webapp.js'][65]++; + me.commands.webapp = {execCommand: (function (cmd, obj) { + _$jscoverage['plugins/webapp.js'][67]++; + me.execCommand("inserthtml", createInsertStr(obj, false, true)); +})}; +}); diff --git a/_test/coverage/plugins/wordcount.js b/_test/coverage/plugins/wordcount.js new file mode 100644 index 000000000..08a67d399 --- /dev/null +++ b/_test/coverage/plugins/wordcount.js @@ -0,0 +1,90 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/wordcount.js']) { + _$jscoverage['plugins/wordcount.js'] = []; + _$jscoverage['plugins/wordcount.js'][13] = 0; + _$jscoverage['plugins/wordcount.js'][14] = 0; + _$jscoverage['plugins/wordcount.js'][15] = 0; + _$jscoverage['plugins/wordcount.js'][16] = 0; + _$jscoverage['plugins/wordcount.js'][18] = 0; + _$jscoverage['plugins/wordcount.js'][19] = 0; + _$jscoverage['plugins/wordcount.js'][20] = 0; + _$jscoverage['plugins/wordcount.js'][21] = 0; + _$jscoverage['plugins/wordcount.js'][22] = 0; + _$jscoverage['plugins/wordcount.js'][25] = 0; + _$jscoverage['plugins/wordcount.js'][26] = 0; + _$jscoverage['plugins/wordcount.js'][27] = 0; + _$jscoverage['plugins/wordcount.js'][28] = 0; +} +_$jscoverage['plugins/wordcount.js'].source = ["///import core","///commands 字数统计","///commandsName WordCount,wordCount","///commandsTitle 字数统计","/*"," * Created by JetBrains WebStorm."," * User: taoqili"," * Date: 11-9-7"," * Time: 下午8:18"," * To change this template use File | Settings | File Templates."," */","","UE.plugins['wordcount'] = function(){"," var me = this;"," me.addListener('contentchange',function(){"," me.fireEvent('wordcount');"," });"," var timer;"," me.addListener('ready',function(){"," var me = this;"," domUtils.on(me.body,\"keyup\",function(evt){"," var code = evt.keyCode||evt.which,"," //忽略的按键,ctr,alt,shift,方向键"," ignores = {\"16\":1,\"18\":1,\"20\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1};"," if(code in ignores) return;"," clearTimeout(timer);"," timer = setTimeout(function(){"," me.fireEvent('wordcount');"," },200)"," })"," });","};"]; +_$jscoverage['plugins/wordcount.js'][13]++; +UE.plugins.wordcount = (function () { + _$jscoverage['plugins/wordcount.js'][14]++; + var me = this; + _$jscoverage['plugins/wordcount.js'][15]++; + me.addListener("contentchange", (function () { + _$jscoverage['plugins/wordcount.js'][16]++; + me.fireEvent("wordcount"); +})); + _$jscoverage['plugins/wordcount.js'][18]++; + var timer; + _$jscoverage['plugins/wordcount.js'][19]++; + me.addListener("ready", (function () { + _$jscoverage['plugins/wordcount.js'][20]++; + var me = this; + _$jscoverage['plugins/wordcount.js'][21]++; + domUtils.on(me.body, "keyup", (function (evt) { + _$jscoverage['plugins/wordcount.js'][22]++; + var code = (evt.keyCode || evt.which), ignores = {"16": 1, "18": 1, "20": 1, "37": 1, "38": 1, "39": 1, "40": 1}; + _$jscoverage['plugins/wordcount.js'][25]++; + if ((code in ignores)) { + _$jscoverage['plugins/wordcount.js'][25]++; + return; + } + _$jscoverage['plugins/wordcount.js'][26]++; + clearTimeout(timer); + _$jscoverage['plugins/wordcount.js'][27]++; + timer = setTimeout((function () { + _$jscoverage['plugins/wordcount.js'][28]++; + me.fireEvent("wordcount"); +}), 200); +})); +})); +}); diff --git a/_test/coverage/plugins/wordimage.js b/_test/coverage/plugins/wordimage.js new file mode 100644 index 000000000..04237c9b1 --- /dev/null +++ b/_test/coverage/plugins/wordimage.js @@ -0,0 +1,113 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['plugins/wordimage.js']) { + _$jscoverage['plugins/wordimage.js'] = []; + _$jscoverage['plugins/wordimage.js'][7] = 0; + _$jscoverage['plugins/wordimage.js'][8] = 0; + _$jscoverage['plugins/wordimage.js'][10] = 0; + _$jscoverage['plugins/wordimage.js'][11] = 0; + _$jscoverage['plugins/wordimage.js'][12] = 0; + _$jscoverage['plugins/wordimage.js'][16] = 0; + _$jscoverage['plugins/wordimage.js'][17] = 0; + _$jscoverage['plugins/wordimage.js'][53] = 0; + _$jscoverage['plugins/wordimage.js'][55] = 0; + _$jscoverage['plugins/wordimage.js'][56] = 0; + _$jscoverage['plugins/wordimage.js'][57] = 0; + _$jscoverage['plugins/wordimage.js'][58] = 0; + _$jscoverage['plugins/wordimage.js'][59] = 0; + _$jscoverage['plugins/wordimage.js'][61] = 0; + _$jscoverage['plugins/wordimage.js'][62] = 0; + _$jscoverage['plugins/wordimage.js'][66] = 0; + _$jscoverage['plugins/wordimage.js'][67] = 0; + _$jscoverage['plugins/wordimage.js'][68] = 0; + _$jscoverage['plugins/wordimage.js'][69] = 0; + _$jscoverage['plugins/wordimage.js'][72] = 0; +} +_$jscoverage['plugins/wordimage.js'].source = ["/**"," * 本地图片引导上传插件"," * @file"," * @since 1.2.6.1"," */","","UE.plugins[\"wordimage\"] = function () {"," var me = this,"," images;"," me.addInputRule(function (root) {"," utils.each(root.getNodesByTagName('img'), function (img) {"," var attrs = img.attrs,"," flag = parseInt(attrs.width) < 128 || parseInt(attrs.height) < 43,"," opt = me.options,"," src = opt.UEDITOR_HOME_URL + 'themes/default/images/spacer.gif';"," if (attrs['_src'] && attrs['_src'].indexOf(\"file:///\")!==-1) {"," img.setAttr({"," width:attrs.width,"," height:attrs.height,"," alt:attrs.alt,"," word_img:attrs._src,"," src:src,"," _src:src,"," 'style':'background:url(' + ( flag ? opt.themePath + opt.theme + '/images/word.gif' : opt.langPath + opt.lang + '/images/localimage.png') + ') no-repeat center center;border:1px solid #ddd'"," })"," }"," })"," });",""," /**"," * 粘贴word文档的内容时,运行该命令,会把编辑区域里的word图片地址,赋值到editor.word_img的数组里面"," * @command wordimage"," * @method execCommand"," * @param { String } cmd 命令字符串"," * @example"," * ```javascript"," * editor.execCommand( 'wordimage');"," * ```"," */",""," /**"," * 查询当前是否有word文档粘贴进来的图片"," * @command wordimage"," * @method queryCommandState"," * @param { String } cmd 命令字符串"," * @return { int } 如果当前编辑区域有word文档的粘贴进来的图片,则返回1,否则返回-1"," * @example"," * ```javascript"," * editor.queryCommandState( 'wordimage' );"," * ```"," */",""," me.commands['wordimage'] = {"," execCommand:function () {"," images = domUtils.getElementsByTagName(me.document.body, \"img\");"," var urlList = [];"," for (var i = 0, ci; ci = images[i++];) {"," var url = ci.getAttribute(\"word_img\");"," url && urlList.push(url);"," }"," if (images.length) {"," this[\"word_img\"] = urlList;"," }"," },"," queryCommandState:function () {"," images = domUtils.getElementsByTagName(me.document.body, \"img\");"," for (var i = 0, ci; ci = images[i++];) {"," if (ci.getAttribute(\"word_img\")) {"," return 1;"," }"," }"," return -1;"," }"," };","","};"]; +_$jscoverage['plugins/wordimage.js'][7]++; +UE.plugins.wordimage = (function () { + _$jscoverage['plugins/wordimage.js'][8]++; + var me = this, images; + _$jscoverage['plugins/wordimage.js'][10]++; + me.addInputRule((function (root) { + _$jscoverage['plugins/wordimage.js'][11]++; + utils.each(root.getNodesByTagName("img"), (function (img) { + _$jscoverage['plugins/wordimage.js'][12]++; + var attrs = img.attrs, flag = ((parseInt(attrs.width) < 128) || (parseInt(attrs.height) < 43)), opt = me.options, src = (opt.UEDITOR_HOME_URL + "themes/default/images/spacer.gif"); + _$jscoverage['plugins/wordimage.js'][16]++; + if ((attrs._src && (attrs._src.indexOf("file:///") !== -1))) { + _$jscoverage['plugins/wordimage.js'][17]++; + img.setAttr({width: attrs.width, height: attrs.height, alt: attrs.alt, word_img: attrs._src, src: src, _src: src, "style": ("background:url(" + (flag? (opt.themePath + opt.theme + "/images/word.gif"): (opt.langPath + opt.lang + "/images/localimage.png")) + ") no-repeat center center;border:1px solid #ddd")}); + } +})); +})); + _$jscoverage['plugins/wordimage.js'][53]++; + me.commands.wordimage = {execCommand: (function () { + _$jscoverage['plugins/wordimage.js'][55]++; + images = domUtils.getElementsByTagName(me.document.body, "img"); + _$jscoverage['plugins/wordimage.js'][56]++; + var urlList = []; + _$jscoverage['plugins/wordimage.js'][57]++; + for (var i = 0, ci; (ci = images[(i++)]);) { + _$jscoverage['plugins/wordimage.js'][58]++; + var url = ci.getAttribute("word_img"); + _$jscoverage['plugins/wordimage.js'][59]++; + (url && urlList.push(url)); +} + _$jscoverage['plugins/wordimage.js'][61]++; + if (images.length) { + _$jscoverage['plugins/wordimage.js'][62]++; + this.word_img = urlList; + } +}), queryCommandState: (function () { + _$jscoverage['plugins/wordimage.js'][66]++; + images = domUtils.getElementsByTagName(me.document.body, "img"); + _$jscoverage['plugins/wordimage.js'][67]++; + for (var i = 0, ci; (ci = images[(i++)]);) { + _$jscoverage['plugins/wordimage.js'][68]++; + if (ci.getAttribute("word_img")) { + _$jscoverage['plugins/wordimage.js'][69]++; + return 1; + } +} + _$jscoverage['plugins/wordimage.js'][72]++; + return -1; +})}; +}); diff --git a/_test/coverage/ui/autotypesetbutton.js b/_test/coverage/ui/autotypesetbutton.js new file mode 100644 index 000000000..3cf697733 --- /dev/null +++ b/_test/coverage/ui/autotypesetbutton.js @@ -0,0 +1,207 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['ui/autotypesetbutton.js']) { + _$jscoverage['ui/autotypesetbutton.js'] = []; + _$jscoverage['ui/autotypesetbutton.js'][6] = 0; + _$jscoverage['ui/autotypesetbutton.js'][7] = 0; + _$jscoverage['ui/autotypesetbutton.js'][12] = 0; + _$jscoverage['ui/autotypesetbutton.js'][13] = 0; + _$jscoverage['ui/autotypesetbutton.js'][15] = 0; + _$jscoverage['ui/autotypesetbutton.js'][16] = 0; + _$jscoverage['ui/autotypesetbutton.js'][22] = 0; + _$jscoverage['ui/autotypesetbutton.js'][24] = 0; + _$jscoverage['ui/autotypesetbutton.js'][26] = 0; + _$jscoverage['ui/autotypesetbutton.js'][27] = 0; + _$jscoverage['ui/autotypesetbutton.js'][28] = 0; + _$jscoverage['ui/autotypesetbutton.js'][29] = 0; + _$jscoverage['ui/autotypesetbutton.js'][30] = 0; + _$jscoverage['ui/autotypesetbutton.js'][31] = 0; + _$jscoverage['ui/autotypesetbutton.js'][32] = 0; + _$jscoverage['ui/autotypesetbutton.js'][33] = 0; + _$jscoverage['ui/autotypesetbutton.js'][35] = 0; + _$jscoverage['ui/autotypesetbutton.js'][36] = 0; + _$jscoverage['ui/autotypesetbutton.js'][37] = 0; + _$jscoverage['ui/autotypesetbutton.js'][38] = 0; + _$jscoverage['ui/autotypesetbutton.js'][39] = 0; + _$jscoverage['ui/autotypesetbutton.js'][44] = 0; + _$jscoverage['ui/autotypesetbutton.js'][49] = 0; + _$jscoverage['ui/autotypesetbutton.js'][50] = 0; + _$jscoverage['ui/autotypesetbutton.js'][51] = 0; + _$jscoverage['ui/autotypesetbutton.js'][52] = 0; + _$jscoverage['ui/autotypesetbutton.js'][55] = 0; + _$jscoverage['ui/autotypesetbutton.js'][57] = 0; + _$jscoverage['ui/autotypesetbutton.js'][59] = 0; + _$jscoverage['ui/autotypesetbutton.js'][60] = 0; + _$jscoverage['ui/autotypesetbutton.js'][66] = 0; + _$jscoverage['ui/autotypesetbutton.js'][67] = 0; + _$jscoverage['ui/autotypesetbutton.js'][68] = 0; + _$jscoverage['ui/autotypesetbutton.js'][69] = 0; + _$jscoverage['ui/autotypesetbutton.js'][70] = 0; + _$jscoverage['ui/autotypesetbutton.js'][74] = 0; + _$jscoverage['ui/autotypesetbutton.js'][75] = 0; + _$jscoverage['ui/autotypesetbutton.js'][76] = 0; + _$jscoverage['ui/autotypesetbutton.js'][77] = 0; + _$jscoverage['ui/autotypesetbutton.js'][78] = 0; + _$jscoverage['ui/autotypesetbutton.js'][81] = 0; + _$jscoverage['ui/autotypesetbutton.js'][82] = 0; + _$jscoverage['ui/autotypesetbutton.js'][83] = 0; + _$jscoverage['ui/autotypesetbutton.js'][84] = 0; + _$jscoverage['ui/autotypesetbutton.js'][86] = 0; + _$jscoverage['ui/autotypesetbutton.js'][88] = 0; + _$jscoverage['ui/autotypesetbutton.js'][91] = 0; +} +_$jscoverage['ui/autotypesetbutton.js'].source = ["///import core","///import uicore","///import ui/popup.js","///import ui/autotypesetpicker.js","///import ui/splitbutton.js","(function (){"," var utils = baidu.editor.utils,"," Popup = baidu.editor.ui.Popup,"," AutoTypeSetPicker = baidu.editor.ui.AutoTypeSetPicker,"," SplitButton = baidu.editor.ui.SplitButton,"," AutoTypeSetButton = baidu.editor.ui.AutoTypeSetButton = function (options){"," this.initOptions(options);"," this.initAutoTypeSetButton();"," };"," function getPara(me){"," var opt = me.editor.options.autotypeset,"," cont = me.getDom(),"," editorId = me.editor.uid,"," inputType = null,"," attrName = null,"," ipts = domUtils.getElementsByTagName(cont,\"input\");"," for(var i=ipts.length-1,ipt;ipt=ipts[i--];){",""," inputType = ipt.getAttribute(\"type\");",""," if(inputType==\"checkbox\"){"," attrName = ipt.getAttribute(\"name\");"," opt[attrName] && delete opt[attrName];"," if(ipt.checked){"," var attrValue = document.getElementById( attrName+\"Value\" + editorId );"," if(attrValue){"," if(/input/ig.test(attrValue.tagName)){"," opt[attrName] = attrValue.value;"," }else{"," var iptChilds = attrValue.getElementsByTagName(\"input\");"," for(var j=iptChilds.length-1,iptchild;iptchild=iptChilds[j--];){"," if(iptchild.checked){"," opt[attrName] = iptchild.value;"," break;"," }"," }"," }"," }else{"," opt[attrName] = true;"," }"," }"," }"," }"," var selects = domUtils.getElementsByTagName(cont,\"select\");"," for(var i=0,si;si=selects[i++];){"," var attr = si.getAttribute('name');"," opt[attr] = opt[attr] ? si.value : '';"," }",""," me.editor.options.autotypeset = opt;"," }"," AutoTypeSetButton.prototype = {"," initAutoTypeSetButton: function (){"," var me = this;"," this.popup = new Popup({"," //传入配置参数"," content: new AutoTypeSetPicker({editor:me.editor}),"," 'editor':me.editor,"," hide : function(){",""," if (!this._hidden && this.getDom()) {"," getPara(this);"," this.getDom().style.display = 'none';"," this._hidden = true;"," this.fireEvent('hide');"," }"," }"," });"," var flag = 0;"," this.popup.addListener('postRenderAfter',function(){"," var popupUI = this;"," if(flag)return;"," var cont = this.getDom(),"," btn = cont.getElementsByTagName('button')[0];",""," btn.onclick = function(){"," getPara(popupUI);"," me.editor.execCommand('autotypeset');"," popupUI.hide()"," };"," flag = 1;"," });"," this.initSplitButton();"," }"," };"," utils.inherits(AutoTypeSetButton, SplitButton);","","})();"]; +_$jscoverage['ui/autotypesetbutton.js'][6]++; +(function () { + _$jscoverage['ui/autotypesetbutton.js'][7]++; + var utils = baidu.editor.utils, Popup = baidu.editor.ui.Popup, AutoTypeSetPicker = baidu.editor.ui.AutoTypeSetPicker, SplitButton = baidu.editor.ui.SplitButton, AutoTypeSetButton = (baidu.editor.ui.AutoTypeSetButton = (function (options) { + _$jscoverage['ui/autotypesetbutton.js'][12]++; + this.initOptions(options); + _$jscoverage['ui/autotypesetbutton.js'][13]++; + this.initAutoTypeSetButton(); +})); + _$jscoverage['ui/autotypesetbutton.js'][15]++; + function getPara(me) { + _$jscoverage['ui/autotypesetbutton.js'][16]++; + var opt = me.editor.options.autotypeset, cont = me.getDom(), editorId = me.editor.uid, inputType = null, attrName = null, ipts = domUtils.getElementsByTagName(cont, "input"); + _$jscoverage['ui/autotypesetbutton.js'][22]++; + for (var i = (ipts.length - 1), ipt; (ipt = ipts[(i--)]);) { + _$jscoverage['ui/autotypesetbutton.js'][24]++; + inputType = ipt.getAttribute("type"); + _$jscoverage['ui/autotypesetbutton.js'][26]++; + if ((inputType == "checkbox")) { + _$jscoverage['ui/autotypesetbutton.js'][27]++; + attrName = ipt.getAttribute("name"); + _$jscoverage['ui/autotypesetbutton.js'][28]++; + (opt[attrName] && (delete opt[attrName])); + _$jscoverage['ui/autotypesetbutton.js'][29]++; + if (ipt.checked) { + _$jscoverage['ui/autotypesetbutton.js'][30]++; + var attrValue = document.getElementById((attrName + "Value" + editorId)); + _$jscoverage['ui/autotypesetbutton.js'][31]++; + if (attrValue) { + _$jscoverage['ui/autotypesetbutton.js'][32]++; + if (/input/gi.test(attrValue.tagName)) { + _$jscoverage['ui/autotypesetbutton.js'][33]++; + opt[attrName] = attrValue.value; + } + else { + _$jscoverage['ui/autotypesetbutton.js'][35]++; + var iptChilds = attrValue.getElementsByTagName("input"); + _$jscoverage['ui/autotypesetbutton.js'][36]++; + for (var j = (iptChilds.length - 1), iptchild; (iptchild = iptChilds[(j--)]);) { + _$jscoverage['ui/autotypesetbutton.js'][37]++; + if (iptchild.checked) { + _$jscoverage['ui/autotypesetbutton.js'][38]++; + opt[attrName] = iptchild.value; + _$jscoverage['ui/autotypesetbutton.js'][39]++; + break; + } +} + } + } + else { + _$jscoverage['ui/autotypesetbutton.js'][44]++; + opt[attrName] = true; + } + } + } +} + _$jscoverage['ui/autotypesetbutton.js'][49]++; + var selects = domUtils.getElementsByTagName(cont, "select"); + _$jscoverage['ui/autotypesetbutton.js'][50]++; + for (var i = 0, si; (si = selects[(i++)]);) { + _$jscoverage['ui/autotypesetbutton.js'][51]++; + var attr = si.getAttribute("name"); + _$jscoverage['ui/autotypesetbutton.js'][52]++; + opt[attr] = (opt[attr]? si.value: ""); +} + _$jscoverage['ui/autotypesetbutton.js'][55]++; + me.editor.options.autotypeset = opt; +} + _$jscoverage['ui/autotypesetbutton.js'][57]++; + AutoTypeSetButton.prototype = {initAutoTypeSetButton: (function () { + _$jscoverage['ui/autotypesetbutton.js'][59]++; + var me = this; + _$jscoverage['ui/autotypesetbutton.js'][60]++; + this.popup = new Popup({content: new AutoTypeSetPicker({editor: me.editor}), "editor": me.editor, hide: (function () { + _$jscoverage['ui/autotypesetbutton.js'][66]++; + if (((! this._hidden) && this.getDom())) { + _$jscoverage['ui/autotypesetbutton.js'][67]++; + getPara(this); + _$jscoverage['ui/autotypesetbutton.js'][68]++; + this.getDom().style.display = "none"; + _$jscoverage['ui/autotypesetbutton.js'][69]++; + this._hidden = true; + _$jscoverage['ui/autotypesetbutton.js'][70]++; + this.fireEvent("hide"); + } +})}); + _$jscoverage['ui/autotypesetbutton.js'][74]++; + var flag = 0; + _$jscoverage['ui/autotypesetbutton.js'][75]++; + this.popup.addListener("postRenderAfter", (function () { + _$jscoverage['ui/autotypesetbutton.js'][76]++; + var popupUI = this; + _$jscoverage['ui/autotypesetbutton.js'][77]++; + if (flag) { + _$jscoverage['ui/autotypesetbutton.js'][77]++; + return; + } + _$jscoverage['ui/autotypesetbutton.js'][78]++; + var cont = this.getDom(), btn = cont.getElementsByTagName("button")[0]; + _$jscoverage['ui/autotypesetbutton.js'][81]++; + btn.onclick = (function () { + _$jscoverage['ui/autotypesetbutton.js'][82]++; + getPara(popupUI); + _$jscoverage['ui/autotypesetbutton.js'][83]++; + me.editor.execCommand("autotypeset"); + _$jscoverage['ui/autotypesetbutton.js'][84]++; + popupUI.hide(); +}); + _$jscoverage['ui/autotypesetbutton.js'][86]++; + flag = 1; +})); + _$jscoverage['ui/autotypesetbutton.js'][88]++; + this.initSplitButton(); +})}; + _$jscoverage['ui/autotypesetbutton.js'][91]++; + utils.inherits(AutoTypeSetButton, SplitButton); +})(); diff --git a/_test/coverage/ui/autotypesetpicker.js b/_test/coverage/ui/autotypesetpicker.js new file mode 100644 index 000000000..e499278aa --- /dev/null +++ b/_test/coverage/ui/autotypesetpicker.js @@ -0,0 +1,80 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['ui/autotypesetpicker.js']) { + _$jscoverage['ui/autotypesetpicker.js'] = []; + _$jscoverage['ui/autotypesetpicker.js'][3] = 0; + _$jscoverage['ui/autotypesetpicker.js'][4] = 0; + _$jscoverage['ui/autotypesetpicker.js'][7] = 0; + _$jscoverage['ui/autotypesetpicker.js'][8] = 0; + _$jscoverage['ui/autotypesetpicker.js'][9] = 0; + _$jscoverage['ui/autotypesetpicker.js'][11] = 0; + _$jscoverage['ui/autotypesetpicker.js'][13] = 0; + _$jscoverage['ui/autotypesetpicker.js'][16] = 0; + _$jscoverage['ui/autotypesetpicker.js'][20] = 0; + _$jscoverage['ui/autotypesetpicker.js'][23] = 0; + _$jscoverage['ui/autotypesetpicker.js'][48] = 0; +} +_$jscoverage['ui/autotypesetpicker.js'].source = ["///import core","///import uicore","(function () {"," var utils = baidu.editor.utils,"," UIBase = baidu.editor.ui.UIBase;",""," var AutoTypeSetPicker = baidu.editor.ui.AutoTypeSetPicker = function (options) {"," this.initOptions(options);"," this.initAutoTypeSetPicker();"," };"," AutoTypeSetPicker.prototype = {"," initAutoTypeSetPicker:function () {"," this.initUIBase();"," },"," getHtmlTpl:function () {"," var me = this.editor,"," opt = me.options.autotypeset,"," lang = me.getLang(\"autoTypeSet\");",""," var textAlignInputName = 'textAlignValue' + me.uid,"," imageBlockInputName = 'imageBlockLineValue' + me.uid;",""," return '<div id=\"##\" class=\"edui-autotypesetpicker %%\">' +"," '<div class=\"edui-autotypesetpicker-body\">' +"," '<table >' +"," '<tr><td nowrap colspan=\"2\"><input type=\"checkbox\" name=\"mergeEmptyline\" ' + (opt[\"mergeEmptyline\"] ? \"checked\" : \"\" ) + '>' + lang.mergeLine + '</td><td colspan=\"2\"><input type=\"checkbox\" name=\"removeEmptyline\" ' + (opt[\"removeEmptyline\"] ? \"checked\" : \"\" ) + '>' + lang.delLine + '</td></tr>' +"," '<tr><td nowrap colspan=\"2\"><input type=\"checkbox\" name=\"removeClass\" ' + (opt[\"removeClass\"] ? \"checked\" : \"\" ) + '>' + lang.removeFormat + '</td><td colspan=\"2\"><input type=\"checkbox\" name=\"indent\" ' + (opt[\"indent\"] ? \"checked\" : \"\" ) + '>' + lang.indent + '</td></tr>' +"," '<tr><td nowrap colspan=\"2\"><input type=\"checkbox\" name=\"textAlign\" ' + (opt[\"textAlign\"] ? \"checked\" : \"\" ) + '>' + lang.alignment + '</td><td colspan=\"2\" id=\"' + textAlignInputName + '\"><input type=\"radio\" name=\"'+ textAlignInputName +'\" value=\"left\" ' + ((opt[\"textAlign\"] && opt[\"textAlign\"] == \"left\") ? \"checked\" : \"\") + '>' + me.getLang(\"justifyleft\") + '<input type=\"radio\" name=\"'+ textAlignInputName +'\" value=\"center\" ' + ((opt[\"textAlign\"] && opt[\"textAlign\"] == \"center\") ? \"checked\" : \"\") + '>' + me.getLang(\"justifycenter\") + '<input type=\"radio\" name=\"'+ textAlignInputName +'\" value=\"right\" ' + ((opt[\"textAlign\"] && opt[\"textAlign\"] == \"right\") ? \"checked\" : \"\") + '>' + me.getLang(\"justifyright\") + ' </tr>' +"," '<tr><td nowrap colspan=\"2\"><input type=\"checkbox\" name=\"imageBlockLine\" ' + (opt[\"imageBlockLine\"] ? \"checked\" : \"\" ) + '>' + lang.imageFloat + '</td>' +"," '<td nowrap colspan=\"2\" id=\"'+ imageBlockInputName +'\">' +"," '<input type=\"radio\" name=\"'+ imageBlockInputName +'\" value=\"none\" ' + ((opt[\"imageBlockLine\"] && opt[\"imageBlockLine\"] == \"none\") ? \"checked\" : \"\") + '>' + me.getLang(\"default\") +"," '<input type=\"radio\" name=\"'+ imageBlockInputName +'\" value=\"left\" ' + ((opt[\"imageBlockLine\"] && opt[\"imageBlockLine\"] == \"left\") ? \"checked\" : \"\") + '>' + me.getLang(\"justifyleft\") +"," '<input type=\"radio\" name=\"'+ imageBlockInputName +'\" value=\"center\" ' + ((opt[\"imageBlockLine\"] && opt[\"imageBlockLine\"] == \"center\") ? \"checked\" : \"\") + '>' + me.getLang(\"justifycenter\") +"," '<input type=\"radio\" name=\"'+ imageBlockInputName +'\" value=\"right\" ' + ((opt[\"imageBlockLine\"] && opt[\"imageBlockLine\"] == \"right\") ? \"checked\" : \"\") + '>' + me.getLang(\"justifyright\") + '</tr>' +",""," '<tr><td nowrap colspan=\"2\"><input type=\"checkbox\" name=\"clearFontSize\" ' + (opt[\"clearFontSize\"] ? \"checked\" : \"\" ) + '>' + lang.removeFontsize + '</td><td colspan=\"2\"><input type=\"checkbox\" name=\"clearFontFamily\" ' + (opt[\"clearFontFamily\"] ? \"checked\" : \"\" ) + '>' + lang.removeFontFamily + '</td></tr>' +"," '<tr><td nowrap colspan=\"4\"><input type=\"checkbox\" name=\"removeEmptyNode\" ' + (opt[\"removeEmptyNode\"] ? \"checked\" : \"\" ) + '>' + lang.removeHtml + '</td></tr>' +"," '<tr><td nowrap colspan=\"4\"><input type=\"checkbox\" name=\"pasteFilter\" ' + (opt[\"pasteFilter\"] ? \"checked\" : \"\" ) + '>' + lang.pasteFilter + '</td></tr>' +"," '<tr><td nowrap colspan=\"4\" align=\"right\"><button >' + lang.run + '</button></td></tr>' +"," '</table>' +"," '</div>' +"," '</div>';","",""," },"," _UIBase_render:UIBase.prototype.render"," };"," utils.inherits(AutoTypeSetPicker, UIBase);","})();"]; +_$jscoverage['ui/autotypesetpicker.js'][3]++; +(function () { + _$jscoverage['ui/autotypesetpicker.js'][4]++; + var utils = baidu.editor.utils, UIBase = baidu.editor.ui.UIBase; + _$jscoverage['ui/autotypesetpicker.js'][7]++; + var AutoTypeSetPicker = (baidu.editor.ui.AutoTypeSetPicker = (function (options) { + _$jscoverage['ui/autotypesetpicker.js'][8]++; + this.initOptions(options); + _$jscoverage['ui/autotypesetpicker.js'][9]++; + this.initAutoTypeSetPicker(); +})); + _$jscoverage['ui/autotypesetpicker.js'][11]++; + AutoTypeSetPicker.prototype = {initAutoTypeSetPicker: (function () { + _$jscoverage['ui/autotypesetpicker.js'][13]++; + this.initUIBase(); +}), getHtmlTpl: (function () { + _$jscoverage['ui/autotypesetpicker.js'][16]++; + var me = this.editor, opt = me.options.autotypeset, lang = me.getLang("autoTypeSet"); + _$jscoverage['ui/autotypesetpicker.js'][20]++; + var textAlignInputName = ("textAlignValue" + me.uid), imageBlockInputName = ("imageBlockLineValue" + me.uid); + _$jscoverage['ui/autotypesetpicker.js'][23]++; + return ("
" + "
" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "
" + lang.mergeLine + "" + lang.delLine + "
" + lang.removeFormat + "" + lang.indent + "
" + lang.alignment + "" + me.getLang("justifyleft") + "" + me.getLang("justifycenter") + "" + me.getLang("justifyright") + "
" + lang.imageFloat + "" + "" + me.getLang("default") + "" + me.getLang("justifyleft") + "" + me.getLang("justifycenter") + "" + me.getLang("justifyright") + "
" + lang.removeFontsize + "" + lang.removeFontFamily + "
" + lang.removeHtml + "
" + lang.pasteFilter + "
" + "
" + "
"); +}), _UIBase_render: UIBase.prototype.render}; + _$jscoverage['ui/autotypesetpicker.js'][48]++; + utils.inherits(AutoTypeSetPicker, UIBase); +})(); diff --git a/_test/coverage/ui/breakline.js b/_test/coverage/ui/breakline.js new file mode 100644 index 000000000..35d6745eb --- /dev/null +++ b/_test/coverage/ui/breakline.js @@ -0,0 +1,71 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['ui/breakline.js']) { + _$jscoverage['ui/breakline.js'] = []; + _$jscoverage['ui/breakline.js'][1] = 0; + _$jscoverage['ui/breakline.js'][2] = 0; + _$jscoverage['ui/breakline.js'][5] = 0; + _$jscoverage['ui/breakline.js'][6] = 0; + _$jscoverage['ui/breakline.js'][8] = 0; + _$jscoverage['ui/breakline.js'][11] = 0; + _$jscoverage['ui/breakline.js'][14] = 0; + _$jscoverage['ui/breakline.js'][17] = 0; +} +_$jscoverage['ui/breakline.js'].source = ["(function (){"," var utils = baidu.editor.utils,"," UIBase = baidu.editor.ui.UIBase,"," Breakline = baidu.editor.ui.Breakline = function (options){"," this.initOptions(options);"," this.initSeparator();"," };"," Breakline.prototype = {"," uiName: 'Breakline',"," initSeparator: function (){"," this.initUIBase();"," },"," getHtmlTpl: function (){"," return '<br/>';"," }"," };"," utils.inherits(Breakline, UIBase);","","})();"]; +_$jscoverage['ui/breakline.js'][1]++; +(function () { + _$jscoverage['ui/breakline.js'][2]++; + var utils = baidu.editor.utils, UIBase = baidu.editor.ui.UIBase, Breakline = (baidu.editor.ui.Breakline = (function (options) { + _$jscoverage['ui/breakline.js'][5]++; + this.initOptions(options); + _$jscoverage['ui/breakline.js'][6]++; + this.initSeparator(); +})); + _$jscoverage['ui/breakline.js'][8]++; + Breakline.prototype = {uiName: "Breakline", initSeparator: (function () { + _$jscoverage['ui/breakline.js'][11]++; + this.initUIBase(); +}), getHtmlTpl: (function () { + _$jscoverage['ui/breakline.js'][14]++; + return "
"; +})}; + _$jscoverage['ui/breakline.js'][17]++; + utils.inherits(Breakline, UIBase); +})(); diff --git a/_test/coverage/ui/button.js b/_test/coverage/ui/button.js new file mode 100644 index 000000000..5346f333f --- /dev/null +++ b/_test/coverage/ui/button.js @@ -0,0 +1,92 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['ui/button.js']) { + _$jscoverage['ui/button.js'] = []; + _$jscoverage['ui/button.js'][4] = 0; + _$jscoverage['ui/button.js'][5] = 0; + _$jscoverage['ui/button.js'][9] = 0; + _$jscoverage['ui/button.js'][10] = 0; + _$jscoverage['ui/button.js'][12] = 0; + _$jscoverage['ui/button.js'][19] = 0; + _$jscoverage['ui/button.js'][20] = 0; + _$jscoverage['ui/button.js'][23] = 0; + _$jscoverage['ui/button.js'][34] = 0; + _$jscoverage['ui/button.js'][35] = 0; + _$jscoverage['ui/button.js'][38] = 0; + _$jscoverage['ui/button.js'][39] = 0; + _$jscoverage['ui/button.js'][43] = 0; + _$jscoverage['ui/button.js'][44] = 0; +} +_$jscoverage['ui/button.js'].source = ["///import core","///import uicore","///import ui/stateful.js","(function (){"," var utils = baidu.editor.utils,"," UIBase = baidu.editor.ui.UIBase,"," Stateful = baidu.editor.ui.Stateful,"," Button = baidu.editor.ui.Button = function (options){"," this.initOptions(options);"," this.initButton();"," };"," Button.prototype = {"," uiName: 'button',"," label: '',"," title: '',"," showIcon: true,"," showText: true,"," initButton: function (){"," this.initUIBase();"," this.Stateful_init();"," },"," getHtmlTpl: function (){"," return '<div id=\"##\" class=\"edui-box %%\">' +"," '<div id=\"##_state\" stateful>' +"," '<div class=\"%%-wrap\"><div id=\"##_body\" unselectable=\"on\" ' + (this.title ? 'title=\"' + this.title + '\"' : '') +"," ' class=\"%%-body\" onmousedown=\"return false;\" onclick=\"return $$._onClick();\">' +"," (this.showIcon ? '<div class=\"edui-box edui-icon\"></div>' : '') +"," (this.showText ? '<div class=\"edui-box edui-label\">' + this.label + '</div>' : '') +"," '</div>' +"," '</div>' +"," '</div></div>';"," },"," postRender: function (){"," this.Stateful_postRender();"," this.setDisabled(this.disabled)"," },"," _onClick: function (){"," if (!this.isDisabled()) {"," this.fireEvent('click');"," }"," }"," };"," utils.inherits(Button, UIBase);"," utils.extend(Button.prototype, Stateful);","","})();"]; +_$jscoverage['ui/button.js'][4]++; +(function () { + _$jscoverage['ui/button.js'][5]++; + var utils = baidu.editor.utils, UIBase = baidu.editor.ui.UIBase, Stateful = baidu.editor.ui.Stateful, Button = (baidu.editor.ui.Button = (function (options) { + _$jscoverage['ui/button.js'][9]++; + this.initOptions(options); + _$jscoverage['ui/button.js'][10]++; + this.initButton(); +})); + _$jscoverage['ui/button.js'][12]++; + Button.prototype = {uiName: "button", label: "", title: "", showIcon: true, showText: true, initButton: (function () { + _$jscoverage['ui/button.js'][19]++; + this.initUIBase(); + _$jscoverage['ui/button.js'][20]++; + this.Stateful_init(); +}), getHtmlTpl: (function () { + _$jscoverage['ui/button.js'][23]++; + return ("
" + "
" + "
" + (this.showIcon? "
": "") + (this.showText? ("
" + this.label + "
"): "") + "
" + "
" + "
"); +}), postRender: (function () { + _$jscoverage['ui/button.js'][34]++; + this.Stateful_postRender(); + _$jscoverage['ui/button.js'][35]++; + this.setDisabled(this.disabled); +}), _onClick: (function () { + _$jscoverage['ui/button.js'][38]++; + if ((! this.isDisabled())) { + _$jscoverage['ui/button.js'][39]++; + this.fireEvent("click"); + } +})}; + _$jscoverage['ui/button.js'][43]++; + utils.inherits(Button, UIBase); + _$jscoverage['ui/button.js'][44]++; + utils.extend(Button.prototype, Stateful); +})(); diff --git a/_test/coverage/ui/cellalignpicker.js b/_test/coverage/ui/cellalignpicker.js new file mode 100644 index 000000000..5634b1c3c --- /dev/null +++ b/_test/coverage/ui/cellalignpicker.js @@ -0,0 +1,134 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['ui/cellalignpicker.js']) { + _$jscoverage['ui/cellalignpicker.js'] = []; + _$jscoverage['ui/cellalignpicker.js'][3] = 0; + _$jscoverage['ui/cellalignpicker.js'][4] = 0; + _$jscoverage['ui/cellalignpicker.js'][14] = 0; + _$jscoverage['ui/cellalignpicker.js'][15] = 0; + _$jscoverage['ui/cellalignpicker.js'][16] = 0; + _$jscoverage['ui/cellalignpicker.js'][17] = 0; + _$jscoverage['ui/cellalignpicker.js'][19] = 0; + _$jscoverage['ui/cellalignpicker.js'][23] = 0; + _$jscoverage['ui/cellalignpicker.js'][40] = 0; + _$jscoverage['ui/cellalignpicker.js'][41] = 0; + _$jscoverage['ui/cellalignpicker.js'][46] = 0; + _$jscoverage['ui/cellalignpicker.js'][47] = 0; + _$jscoverage['ui/cellalignpicker.js'][51] = 0; + _$jscoverage['ui/cellalignpicker.js'][58] = 0; + _$jscoverage['ui/cellalignpicker.js'][60] = 0; + _$jscoverage['ui/cellalignpicker.js'][61] = 0; + _$jscoverage['ui/cellalignpicker.js'][63] = 0; + _$jscoverage['ui/cellalignpicker.js'][65] = 0; + _$jscoverage['ui/cellalignpicker.js'][67] = 0; + _$jscoverage['ui/cellalignpicker.js'][71] = 0; + _$jscoverage['ui/cellalignpicker.js'][80] = 0; + _$jscoverage['ui/cellalignpicker.js'][83] = 0; + _$jscoverage['ui/cellalignpicker.js'][84] = 0; + _$jscoverage['ui/cellalignpicker.js'][85] = 0; + _$jscoverage['ui/cellalignpicker.js'][86] = 0; + _$jscoverage['ui/cellalignpicker.js'][91] = 0; + _$jscoverage['ui/cellalignpicker.js'][92] = 0; +} +_$jscoverage['ui/cellalignpicker.js'].source = ["///import core","///import uicore","(function () {"," var utils = baidu.editor.utils,"," Popup = baidu.editor.ui.Popup,"," Stateful = baidu.editor.ui.Stateful,"," UIBase = baidu.editor.ui.UIBase;",""," /**"," * 该参数将新增一个参数: selected, 参数类型为一个Object, 形如{ 'align': 'center', 'valign': 'top' }, 表示单元格的初始"," * 对齐状态为: 竖直居上,水平居中; 其中 align的取值为:'center', 'left', 'right'; valign的取值为: 'top', 'middle', 'bottom'"," * @update 2013/4/2 hancong03@baidu.com"," */"," var CellAlignPicker = baidu.editor.ui.CellAlignPicker = function (options) {"," this.initOptions(options);"," this.initSelected();"," this.initCellAlignPicker();"," };"," CellAlignPicker.prototype = {"," //初始化选中状态, 该方法将根据传递进来的参数获取到应该选中的对齐方式图标的索引"," initSelected: function(){",""," var status = {",""," valign: {"," top: 0,"," middle: 1,"," bottom: 2"," },"," align: {"," left: 0,"," center: 1,"," right: 2"," },"," count: 3",""," },"," result = -1;",""," if( this.selected ) {"," this.selectedIndex = status.valign[ this.selected.valign ] * status.count + status.align[ this.selected.align ];"," }",""," },"," initCellAlignPicker:function () {"," this.initUIBase();"," this.Stateful_init();"," },"," getHtmlTpl:function () {",""," var alignType = [ 'left', 'center', 'right' ],"," COUNT = 9,"," tempClassName = null,"," tempIndex = -1,"," tmpl = [];","",""," for( var i= 0; i<COUNT; i++ ) {",""," tempClassName = this.selectedIndex === i ? ' class=\"edui-cellalign-selected\" ' : '';"," tempIndex = i % 3;",""," tempIndex === 0 && tmpl.push('<tr>');",""," tmpl.push( '<td index=\"'+ i +'\" ' + tempClassName + ' stateful><div class=\"edui-icon edui-'+ alignType[ tempIndex ] +'\"></div></td>' );",""," tempIndex === 2 && tmpl.push('</tr>');",""," }",""," return '<div id=\"##\" class=\"edui-cellalignpicker %%\">' +"," '<div class=\"edui-cellalignpicker-body\">' +"," '<table onclick=\"$$._onClick(event);\">' +"," tmpl.join('') +"," '</table>' +"," '</div>' +"," '</div>';"," },"," getStateDom: function (){"," return this.target;"," },"," _onClick: function (evt){"," var target= evt.target || evt.srcElement;"," if(/icon/.test(target.className)){"," this.items[target.parentNode.getAttribute(\"index\")].onclick();"," Popup.postHide(evt);"," }"," },"," _UIBase_render:UIBase.prototype.render"," };"," utils.inherits(CellAlignPicker, UIBase);"," utils.extend(CellAlignPicker.prototype, Stateful,true);","})();","","",""]; +_$jscoverage['ui/cellalignpicker.js'][3]++; +(function () { + _$jscoverage['ui/cellalignpicker.js'][4]++; + var utils = baidu.editor.utils, Popup = baidu.editor.ui.Popup, Stateful = baidu.editor.ui.Stateful, UIBase = baidu.editor.ui.UIBase; + _$jscoverage['ui/cellalignpicker.js'][14]++; + var CellAlignPicker = (baidu.editor.ui.CellAlignPicker = (function (options) { + _$jscoverage['ui/cellalignpicker.js'][15]++; + this.initOptions(options); + _$jscoverage['ui/cellalignpicker.js'][16]++; + this.initSelected(); + _$jscoverage['ui/cellalignpicker.js'][17]++; + this.initCellAlignPicker(); +})); + _$jscoverage['ui/cellalignpicker.js'][19]++; + CellAlignPicker.prototype = {initSelected: (function () { + _$jscoverage['ui/cellalignpicker.js'][23]++; + var status = {valign: {top: 0, middle: 1, bottom: 2}, align: {left: 0, center: 1, right: 2}, count: 3}, result = -1; + _$jscoverage['ui/cellalignpicker.js'][40]++; + if (this.selected) { + _$jscoverage['ui/cellalignpicker.js'][41]++; + this.selectedIndex = ((status.valign[this.selected.valign] * status.count) + status.align[this.selected.align]); + } +}), initCellAlignPicker: (function () { + _$jscoverage['ui/cellalignpicker.js'][46]++; + this.initUIBase(); + _$jscoverage['ui/cellalignpicker.js'][47]++; + this.Stateful_init(); +}), getHtmlTpl: (function () { + _$jscoverage['ui/cellalignpicker.js'][51]++; + var alignType = ["left", "center", "right"], COUNT = 9, tempClassName = null, tempIndex = -1, tmpl = []; + _$jscoverage['ui/cellalignpicker.js'][58]++; + for (var i = 0; (i < COUNT); (i++)) { + _$jscoverage['ui/cellalignpicker.js'][60]++; + tempClassName = ((this.selectedIndex === i)? " class=\"edui-cellalign-selected\" ": ""); + _$jscoverage['ui/cellalignpicker.js'][61]++; + tempIndex = (i % 3); + _$jscoverage['ui/cellalignpicker.js'][63]++; + ((tempIndex === 0) && tmpl.push("")); + _$jscoverage['ui/cellalignpicker.js'][65]++; + tmpl.push(("
")); + _$jscoverage['ui/cellalignpicker.js'][67]++; + ((tempIndex === 2) && tmpl.push("")); +} + _$jscoverage['ui/cellalignpicker.js'][71]++; + return ("
" + "
" + "" + tmpl.join("") + "
" + "
" + "
"); +}), getStateDom: (function () { + _$jscoverage['ui/cellalignpicker.js'][80]++; + return this.target; +}), _onClick: (function (evt) { + _$jscoverage['ui/cellalignpicker.js'][83]++; + var target = (evt.target || evt.srcElement); + _$jscoverage['ui/cellalignpicker.js'][84]++; + if (/icon/.test(target.className)) { + _$jscoverage['ui/cellalignpicker.js'][85]++; + this.items[target.parentNode.getAttribute("index")].onclick(); + _$jscoverage['ui/cellalignpicker.js'][86]++; + Popup.postHide(evt); + } +}), _UIBase_render: UIBase.prototype.render}; + _$jscoverage['ui/cellalignpicker.js'][91]++; + utils.inherits(CellAlignPicker, UIBase); + _$jscoverage['ui/cellalignpicker.js'][92]++; + utils.extend(CellAlignPicker.prototype, Stateful, true); +})(); diff --git a/_test/coverage/ui/colorbutton.js b/_test/coverage/ui/colorbutton.js new file mode 100644 index 000000000..00b61978b --- /dev/null +++ b/_test/coverage/ui/colorbutton.js @@ -0,0 +1,117 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['ui/colorbutton.js']) { + _$jscoverage['ui/colorbutton.js'] = []; + _$jscoverage['ui/colorbutton.js'][6] = 0; + _$jscoverage['ui/colorbutton.js'][7] = 0; + _$jscoverage['ui/colorbutton.js'][13] = 0; + _$jscoverage['ui/colorbutton.js'][14] = 0; + _$jscoverage['ui/colorbutton.js'][16] = 0; + _$jscoverage['ui/colorbutton.js'][18] = 0; + _$jscoverage['ui/colorbutton.js'][19] = 0; + _$jscoverage['ui/colorbutton.js'][24] = 0; + _$jscoverage['ui/colorbutton.js'][27] = 0; + _$jscoverage['ui/colorbutton.js'][32] = 0; + _$jscoverage['ui/colorbutton.js'][36] = 0; + _$jscoverage['ui/colorbutton.js'][37] = 0; + _$jscoverage['ui/colorbutton.js'][40] = 0; + _$jscoverage['ui/colorbutton.js'][43] = 0; + _$jscoverage['ui/colorbutton.js'][44] = 0; + _$jscoverage['ui/colorbutton.js'][47] = 0; + _$jscoverage['ui/colorbutton.js'][48] = 0; + _$jscoverage['ui/colorbutton.js'][49] = 0; + _$jscoverage['ui/colorbutton.js'][53] = 0; + _$jscoverage['ui/colorbutton.js'][54] = 0; + _$jscoverage['ui/colorbutton.js'][58] = 0; +} +_$jscoverage['ui/colorbutton.js'].source = ["///import core","///import uicore","///import ui/colorpicker.js","///import ui/popup.js","///import ui/splitbutton.js","(function (){"," var utils = baidu.editor.utils,"," uiUtils = baidu.editor.ui.uiUtils,"," ColorPicker = baidu.editor.ui.ColorPicker,"," Popup = baidu.editor.ui.Popup,"," SplitButton = baidu.editor.ui.SplitButton,"," ColorButton = baidu.editor.ui.ColorButton = function (options){"," this.initOptions(options);"," this.initColorButton();"," };"," ColorButton.prototype = {"," initColorButton: function (){"," var me = this;"," this.popup = new Popup({"," content: new ColorPicker({"," noColorText: me.editor.getLang(\"clearColor\"),"," editor:me.editor,"," onpickcolor: function (t, color){"," me._onPickColor(color);"," },"," onpicknocolor: function (t, color){"," me._onPickNoColor(color);"," }"," }),"," editor:me.editor"," });"," this.initSplitButton();"," },"," _SplitButton_postRender: SplitButton.prototype.postRender,"," postRender: function (){"," this._SplitButton_postRender();"," this.getDom('button_body').appendChild("," uiUtils.createElementByHtml('<div id=\"' + this.id + '_colorlump\" class=\"edui-colorlump\"></div>')"," );"," this.getDom().className += ' edui-colorbutton';"," },"," setColor: function (color){"," this.getDom('colorlump').style.backgroundColor = color;"," this.color = color;"," },"," _onPickColor: function (color){"," if (this.fireEvent('pickcolor', color) !== false) {"," this.setColor(color);"," this.popup.hide();"," }"," },"," _onPickNoColor: function (color){"," if (this.fireEvent('picknocolor') !== false) {"," this.popup.hide();"," }"," }"," };"," utils.inherits(ColorButton, SplitButton);","","})();"]; +_$jscoverage['ui/colorbutton.js'][6]++; +(function () { + _$jscoverage['ui/colorbutton.js'][7]++; + var utils = baidu.editor.utils, uiUtils = baidu.editor.ui.uiUtils, ColorPicker = baidu.editor.ui.ColorPicker, Popup = baidu.editor.ui.Popup, SplitButton = baidu.editor.ui.SplitButton, ColorButton = (baidu.editor.ui.ColorButton = (function (options) { + _$jscoverage['ui/colorbutton.js'][13]++; + this.initOptions(options); + _$jscoverage['ui/colorbutton.js'][14]++; + this.initColorButton(); +})); + _$jscoverage['ui/colorbutton.js'][16]++; + ColorButton.prototype = {initColorButton: (function () { + _$jscoverage['ui/colorbutton.js'][18]++; + var me = this; + _$jscoverage['ui/colorbutton.js'][19]++; + this.popup = new Popup({content: new ColorPicker({noColorText: me.editor.getLang("clearColor"), editor: me.editor, onpickcolor: (function (t, color) { + _$jscoverage['ui/colorbutton.js'][24]++; + me._onPickColor(color); +}), onpicknocolor: (function (t, color) { + _$jscoverage['ui/colorbutton.js'][27]++; + me._onPickNoColor(color); +})}), editor: me.editor}); + _$jscoverage['ui/colorbutton.js'][32]++; + this.initSplitButton(); +}), _SplitButton_postRender: SplitButton.prototype.postRender, postRender: (function () { + _$jscoverage['ui/colorbutton.js'][36]++; + this._SplitButton_postRender(); + _$jscoverage['ui/colorbutton.js'][37]++; + this.getDom("button_body").appendChild(uiUtils.createElementByHtml(("
"))); + _$jscoverage['ui/colorbutton.js'][40]++; + this.getDom().className += " edui-colorbutton"; +}), setColor: (function (color) { + _$jscoverage['ui/colorbutton.js'][43]++; + this.getDom("colorlump").style.backgroundColor = color; + _$jscoverage['ui/colorbutton.js'][44]++; + this.color = color; +}), _onPickColor: (function (color) { + _$jscoverage['ui/colorbutton.js'][47]++; + if ((this.fireEvent("pickcolor", color) !== false)) { + _$jscoverage['ui/colorbutton.js'][48]++; + this.setColor(color); + _$jscoverage['ui/colorbutton.js'][49]++; + this.popup.hide(); + } +}), _onPickNoColor: (function (color) { + _$jscoverage['ui/colorbutton.js'][53]++; + if ((this.fireEvent("picknocolor") !== false)) { + _$jscoverage['ui/colorbutton.js'][54]++; + this.popup.hide(); + } +})}; + _$jscoverage['ui/colorbutton.js'][58]++; + utils.inherits(ColorButton, SplitButton); +})(); diff --git a/_test/coverage/ui/colorpicker.js b/_test/coverage/ui/colorpicker.js new file mode 100644 index 000000000..959014f93 --- /dev/null +++ b/_test/coverage/ui/colorpicker.js @@ -0,0 +1,136 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['ui/colorpicker.js']) { + _$jscoverage['ui/colorpicker.js'] = []; + _$jscoverage['ui/colorpicker.js'][3] = 0; + _$jscoverage['ui/colorpicker.js'][4] = 0; + _$jscoverage['ui/colorpicker.js'][7] = 0; + _$jscoverage['ui/colorpicker.js'][8] = 0; + _$jscoverage['ui/colorpicker.js'][9] = 0; + _$jscoverage['ui/colorpicker.js'][12] = 0; + _$jscoverage['ui/colorpicker.js'][14] = 0; + _$jscoverage['ui/colorpicker.js'][17] = 0; + _$jscoverage['ui/colorpicker.js'][18] = 0; + _$jscoverage['ui/colorpicker.js'][19] = 0; + _$jscoverage['ui/colorpicker.js'][20] = 0; + _$jscoverage['ui/colorpicker.js'][24] = 0; + _$jscoverage['ui/colorpicker.js'][25] = 0; + _$jscoverage['ui/colorpicker.js'][26] = 0; + _$jscoverage['ui/colorpicker.js'][27] = 0; + _$jscoverage['ui/colorpicker.js'][31] = 0; + _$jscoverage['ui/colorpicker.js'][34] = 0; + _$jscoverage['ui/colorpicker.js'][37] = 0; + _$jscoverage['ui/colorpicker.js'][39] = 0; + _$jscoverage['ui/colorpicker.js'][48] = 0; + _$jscoverage['ui/colorpicker.js'][49] = 0; + _$jscoverage['ui/colorpicker.js'][57] = 0; + _$jscoverage['ui/colorpicker.js'][58] = 0; + _$jscoverage['ui/colorpicker.js'][59] = 0; + _$jscoverage['ui/colorpicker.js'][61] = 0; + _$jscoverage['ui/colorpicker.js'][71] = 0; + _$jscoverage['ui/colorpicker.js'][72] = 0; +} +_$jscoverage['ui/colorpicker.js'].source = ["///import core","///import uicore","(function (){"," var utils = baidu.editor.utils,"," UIBase = baidu.editor.ui.UIBase,"," ColorPicker = baidu.editor.ui.ColorPicker = function (options){"," this.initOptions(options);"," this.noColorText = this.noColorText || this.editor.getLang(\"clearColor\");"," this.initUIBase();"," };",""," ColorPicker.prototype = {"," getHtmlTpl: function (){"," return genColorPicker(this.noColorText,this.editor);"," },"," _onTableClick: function (evt){"," var tgt = evt.target || evt.srcElement;"," var color = tgt.getAttribute('data-color');"," if (color) {"," this.fireEvent('pickcolor', color);"," }"," },"," _onTableOver: function (evt){"," var tgt = evt.target || evt.srcElement;"," var color = tgt.getAttribute('data-color');"," if (color) {"," this.getDom('preview').style.backgroundColor = color;"," }"," },"," _onTableOut: function (){"," this.getDom('preview').style.backgroundColor = '';"," },"," _onPickNoColor: function (){"," this.fireEvent('picknocolor');"," }"," };"," utils.inherits(ColorPicker, UIBase);",""," var COLORS = ("," 'ffffff,000000,eeece1,1f497d,4f81bd,c0504d,9bbb59,8064a2,4bacc6,f79646,' +"," 'f2f2f2,7f7f7f,ddd9c3,c6d9f0,dbe5f1,f2dcdb,ebf1dd,e5e0ec,dbeef3,fdeada,' +"," 'd8d8d8,595959,c4bd97,8db3e2,b8cce4,e5b9b7,d7e3bc,ccc1d9,b7dde8,fbd5b5,' +"," 'bfbfbf,3f3f3f,938953,548dd4,95b3d7,d99694,c3d69b,b2a2c7,92cddc,fac08f,' +"," 'a5a5a5,262626,494429,17365d,366092,953734,76923c,5f497a,31859b,e36c09,' +"," '7f7f7f,0c0c0c,1d1b10,0f243e,244061,632423,4f6128,3f3151,205867,974806,' +"," 'c00000,ff0000,ffc000,ffff00,92d050,00b050,00b0f0,0070c0,002060,7030a0,').split(',');",""," function genColorPicker(noColorText,editor){"," var html = '<div id=\"##\" class=\"edui-colorpicker %%\">' +"," '<div class=\"edui-colorpicker-topbar edui-clearfix\">' +"," '<div unselectable=\"on\" id=\"##_preview\" class=\"edui-colorpicker-preview\"></div>' +"," '<div unselectable=\"on\" class=\"edui-colorpicker-nocolor\" onclick=\"$$._onPickNoColor(event, this);\">'+ noColorText +'</div>' +"," '</div>' +"," '<table class=\"edui-box\" style=\"border-collapse: collapse;\" onmouseover=\"$$._onTableOver(event, this);\" onmouseout=\"$$._onTableOut(event, this);\" onclick=\"return $$._onTableClick(event, this);\" cellspacing=\"0\" cellpadding=\"0\">' +"," '<tr style=\"border-bottom: 1px solid #ddd;font-size: 13px;line-height: 25px;color:#39C;padding-top: 2px\"><td colspan=\"10\">'+editor.getLang(\"themeColor\")+'</td> </tr>'+"," '<tr class=\"edui-colorpicker-tablefirstrow\" >';"," for (var i=0; i<COLORS.length; i++) {"," if (i && i%10 === 0) {"," html += '</tr>'+(i==60?'<tr style=\"border-bottom: 1px solid #ddd;font-size: 13px;line-height: 25px;color:#39C;\"><td colspan=\"10\">'+editor.getLang(\"standardColor\")+'</td></tr>':'')+'<tr'+(i==60?' class=\"edui-colorpicker-tablefirstrow\"':'')+'>';"," }"," html += i<70 ? '<td style=\"padding: 0 2px;\"><a hidefocus title=\"'+COLORS[i]+'\" onclick=\"return false;\" href=\"javascript:\" unselectable=\"on\" class=\"edui-box edui-colorpicker-colorcell\"' +"," ' data-color=\"#'+ COLORS[i] +'\"'+"," ' style=\"background-color:#'+ COLORS[i] +';border:solid #ccc;'+"," (i<10 || i>=60?'border-width:1px;':"," i>=10&&i<20?'border-width:1px 1px 0 1px;':",""," 'border-width:0 1px 0 1px;')+"," '\"' +"," '></a></td>':'';"," }"," html += '</tr></table></div>';"," return html;"," }","})();"]; +_$jscoverage['ui/colorpicker.js'][3]++; +(function () { + _$jscoverage['ui/colorpicker.js'][4]++; + var utils = baidu.editor.utils, UIBase = baidu.editor.ui.UIBase, ColorPicker = (baidu.editor.ui.ColorPicker = (function (options) { + _$jscoverage['ui/colorpicker.js'][7]++; + this.initOptions(options); + _$jscoverage['ui/colorpicker.js'][8]++; + this.noColorText = (this.noColorText || this.editor.getLang("clearColor")); + _$jscoverage['ui/colorpicker.js'][9]++; + this.initUIBase(); +})); + _$jscoverage['ui/colorpicker.js'][12]++; + ColorPicker.prototype = {getHtmlTpl: (function () { + _$jscoverage['ui/colorpicker.js'][14]++; + return genColorPicker(this.noColorText, this.editor); +}), _onTableClick: (function (evt) { + _$jscoverage['ui/colorpicker.js'][17]++; + var tgt = (evt.target || evt.srcElement); + _$jscoverage['ui/colorpicker.js'][18]++; + var color = tgt.getAttribute("data-color"); + _$jscoverage['ui/colorpicker.js'][19]++; + if (color) { + _$jscoverage['ui/colorpicker.js'][20]++; + this.fireEvent("pickcolor", color); + } +}), _onTableOver: (function (evt) { + _$jscoverage['ui/colorpicker.js'][24]++; + var tgt = (evt.target || evt.srcElement); + _$jscoverage['ui/colorpicker.js'][25]++; + var color = tgt.getAttribute("data-color"); + _$jscoverage['ui/colorpicker.js'][26]++; + if (color) { + _$jscoverage['ui/colorpicker.js'][27]++; + this.getDom("preview").style.backgroundColor = color; + } +}), _onTableOut: (function () { + _$jscoverage['ui/colorpicker.js'][31]++; + this.getDom("preview").style.backgroundColor = ""; +}), _onPickNoColor: (function () { + _$jscoverage['ui/colorpicker.js'][34]++; + this.fireEvent("picknocolor"); +})}; + _$jscoverage['ui/colorpicker.js'][37]++; + utils.inherits(ColorPicker, UIBase); + _$jscoverage['ui/colorpicker.js'][39]++; + var COLORS = "ffffff,000000,eeece1,1f497d,4f81bd,c0504d,9bbb59,8064a2,4bacc6,f79646,f2f2f2,7f7f7f,ddd9c3,c6d9f0,dbe5f1,f2dcdb,ebf1dd,e5e0ec,dbeef3,fdeada,d8d8d8,595959,c4bd97,8db3e2,b8cce4,e5b9b7,d7e3bc,ccc1d9,b7dde8,fbd5b5,bfbfbf,3f3f3f,938953,548dd4,95b3d7,d99694,c3d69b,b2a2c7,92cddc,fac08f,a5a5a5,262626,494429,17365d,366092,953734,76923c,5f497a,31859b,e36c09,7f7f7f,0c0c0c,1d1b10,0f243e,244061,632423,4f6128,3f3151,205867,974806,c00000,ff0000,ffc000,ffff00,92d050,00b050,00b0f0,0070c0,002060,7030a0,".split(","); + _$jscoverage['ui/colorpicker.js'][48]++; + function genColorPicker(noColorText, editor) { + _$jscoverage['ui/colorpicker.js'][49]++; + var html = ("
" + "
" + "
" + "
" + noColorText + "
" + "
" + "" + "" + ""); + _$jscoverage['ui/colorpicker.js'][57]++; + for (var i = 0; (i < COLORS.length); (i++)) { + _$jscoverage['ui/colorpicker.js'][58]++; + if ((i && ((i % 10) === 0))) { + _$jscoverage['ui/colorpicker.js'][59]++; + html += ("" + ((i == 60)? (""): "") + ""); + } + _$jscoverage['ui/colorpicker.js'][61]++; + html += ((i < 70)? (""): ""); +} + _$jscoverage['ui/colorpicker.js'][71]++; + html += "
" + editor.getLang("themeColor") + "
" + editor.getLang("standardColor") + "
= 60))? "border-width:1px;": (((i >= 10) && (i < 20))? "border-width:1px 1px 0 1px;": "border-width:0 1px 0 1px;")) + "\"" + ">
"; + _$jscoverage['ui/colorpicker.js'][72]++; + return html; +} +})(); diff --git a/_test/coverage/ui/combox.js b/_test/coverage/ui/combox.js new file mode 100644 index 000000000..dfb61613d --- /dev/null +++ b/_test/coverage/ui/combox.js @@ -0,0 +1,198 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['ui/combox.js']) { + _$jscoverage['ui/combox.js'] = []; + _$jscoverage['ui/combox.js'][5] = 0; + _$jscoverage['ui/combox.js'][7] = 0; + _$jscoverage['ui/combox.js'][12] = 0; + _$jscoverage['ui/combox.js'][13] = 0; + _$jscoverage['ui/combox.js'][15] = 0; + _$jscoverage['ui/combox.js'][18] = 0; + _$jscoverage['ui/combox.js'][19] = 0; + _$jscoverage['ui/combox.js'][20] = 0; + _$jscoverage['ui/combox.js'][21] = 0; + _$jscoverage['ui/combox.js'][22] = 0; + _$jscoverage['ui/combox.js'][23] = 0; + _$jscoverage['ui/combox.js'][24] = 0; + _$jscoverage['ui/combox.js'][25] = 0; + _$jscoverage['ui/combox.js'][28] = 0; + _$jscoverage['ui/combox.js'][36] = 0; + _$jscoverage['ui/combox.js'][40] = 0; + _$jscoverage['ui/combox.js'][41] = 0; + _$jscoverage['ui/combox.js'][42] = 0; + _$jscoverage['ui/combox.js'][45] = 0; + _$jscoverage['ui/combox.js'][46] = 0; + _$jscoverage['ui/combox.js'][47] = 0; + _$jscoverage['ui/combox.js'][48] = 0; + _$jscoverage['ui/combox.js'][49] = 0; + _$jscoverage['ui/combox.js'][52] = 0; + _$jscoverage['ui/combox.js'][55] = 0; + _$jscoverage['ui/combox.js'][56] = 0; + _$jscoverage['ui/combox.js'][57] = 0; + _$jscoverage['ui/combox.js'][58] = 0; + _$jscoverage['ui/combox.js'][59] = 0; + _$jscoverage['ui/combox.js'][61] = 0; + _$jscoverage['ui/combox.js'][62] = 0; + _$jscoverage['ui/combox.js'][63] = 0; + _$jscoverage['ui/combox.js'][67] = 0; + _$jscoverage['ui/combox.js'][68] = 0; + _$jscoverage['ui/combox.js'][71] = 0; + _$jscoverage['ui/combox.js'][74] = 0; + _$jscoverage['ui/combox.js'][75] = 0; + _$jscoverage['ui/combox.js'][76] = 0; + _$jscoverage['ui/combox.js'][79] = 0; + _$jscoverage['ui/combox.js'][82] = 0; + _$jscoverage['ui/combox.js'][85] = 0; + _$jscoverage['ui/combox.js'][86] = 0; + _$jscoverage['ui/combox.js'][87] = 0; + _$jscoverage['ui/combox.js'][88] = 0; + _$jscoverage['ui/combox.js'][92] = 0; +} +_$jscoverage['ui/combox.js'].source = ["///import core","///import uicore","///import ui/menu.js","///import ui/splitbutton.js","(function (){"," // todo: menu和item提成通用list"," var utils = baidu.editor.utils,"," uiUtils = baidu.editor.ui.uiUtils,"," Menu = baidu.editor.ui.Menu,"," SplitButton = baidu.editor.ui.SplitButton,"," Combox = baidu.editor.ui.Combox = function (options){"," this.initOptions(options);"," this.initCombox();"," };"," Combox.prototype = {"," uiName: 'combox',"," initCombox: function (){"," var me = this;"," this.items = this.items || [];"," for (var i=0; i<this.items.length; i++) {"," var item = this.items[i];"," item.uiName = 'listitem';"," item.index = i;"," item.onclick = function (){"," me.selectByIndex(this.index);"," };"," }"," this.popup = new Menu({"," items: this.items,"," uiName: 'list',"," editor:this.editor,"," captureWheel: true,"," combox: this"," });",""," this.initSplitButton();"," },"," _SplitButton_postRender: SplitButton.prototype.postRender,"," postRender: function (){"," this._SplitButton_postRender();"," this.setLabel(this.label || '');"," this.setValue(this.initValue || '');"," },"," showPopup: function (){"," var rect = uiUtils.getClientRect(this.getDom());"," rect.top += 1;"," rect.bottom -= 1;"," rect.height -= 2;"," this.popup.showAnchorRect(rect);"," },"," getValue: function (){"," return this.value;"," },"," setValue: function (value){"," var index = this.indexByValue(value);"," if (index != -1) {"," this.selectedIndex = index;"," this.setLabel(this.items[index].label);"," this.value = this.items[index].value;"," } else {"," this.selectedIndex = -1;"," this.setLabel(this.getLabelForUnknowValue(value));"," this.value = value;"," }"," },"," setLabel: function (label){"," this.getDom('button_body').innerHTML = label;"," this.label = label;"," },"," getLabelForUnknowValue: function (value){"," return value;"," },"," indexByValue: function (value){"," for (var i=0; i<this.items.length; i++) {"," if (value == this.items[i].value) {"," return i;"," }"," }"," return -1;"," },"," getItem: function (index){"," return this.items[index];"," },"," selectByIndex: function (index){"," if (index < this.items.length && this.fireEvent('select', index) !== false) {"," this.selectedIndex = index;"," this.value = this.items[index].value;"," this.setLabel(this.items[index].label);"," }"," }"," };"," utils.inherits(Combox, SplitButton);","})();"]; +_$jscoverage['ui/combox.js'][5]++; +(function () { + _$jscoverage['ui/combox.js'][7]++; + var utils = baidu.editor.utils, uiUtils = baidu.editor.ui.uiUtils, Menu = baidu.editor.ui.Menu, SplitButton = baidu.editor.ui.SplitButton, Combox = (baidu.editor.ui.Combox = (function (options) { + _$jscoverage['ui/combox.js'][12]++; + this.initOptions(options); + _$jscoverage['ui/combox.js'][13]++; + this.initCombox(); +})); + _$jscoverage['ui/combox.js'][15]++; + Combox.prototype = {uiName: "combox", initCombox: (function () { + _$jscoverage['ui/combox.js'][18]++; + var me = this; + _$jscoverage['ui/combox.js'][19]++; + this.items = (this.items || []); + _$jscoverage['ui/combox.js'][20]++; + for (var i = 0; (i < this.items.length); (i++)) { + _$jscoverage['ui/combox.js'][21]++; + var item = this.items[i]; + _$jscoverage['ui/combox.js'][22]++; + item.uiName = "listitem"; + _$jscoverage['ui/combox.js'][23]++; + item.index = i; + _$jscoverage['ui/combox.js'][24]++; + item.onclick = (function () { + _$jscoverage['ui/combox.js'][25]++; + me.selectByIndex(this.index); +}); +} + _$jscoverage['ui/combox.js'][28]++; + this.popup = new Menu({items: this.items, uiName: "list", editor: this.editor, captureWheel: true, combox: this}); + _$jscoverage['ui/combox.js'][36]++; + this.initSplitButton(); +}), _SplitButton_postRender: SplitButton.prototype.postRender, postRender: (function () { + _$jscoverage['ui/combox.js'][40]++; + this._SplitButton_postRender(); + _$jscoverage['ui/combox.js'][41]++; + this.setLabel((this.label || "")); + _$jscoverage['ui/combox.js'][42]++; + this.setValue((this.initValue || "")); +}), showPopup: (function () { + _$jscoverage['ui/combox.js'][45]++; + var rect = uiUtils.getClientRect(this.getDom()); + _$jscoverage['ui/combox.js'][46]++; + rect.top += 1; + _$jscoverage['ui/combox.js'][47]++; + rect.bottom -= 1; + _$jscoverage['ui/combox.js'][48]++; + rect.height -= 2; + _$jscoverage['ui/combox.js'][49]++; + this.popup.showAnchorRect(rect); +}), getValue: (function () { + _$jscoverage['ui/combox.js'][52]++; + return this.value; +}), setValue: (function (value) { + _$jscoverage['ui/combox.js'][55]++; + var index = this.indexByValue(value); + _$jscoverage['ui/combox.js'][56]++; + if ((index != -1)) { + _$jscoverage['ui/combox.js'][57]++; + this.selectedIndex = index; + _$jscoverage['ui/combox.js'][58]++; + this.setLabel(this.items[index].label); + _$jscoverage['ui/combox.js'][59]++; + this.value = this.items[index].value; + } + else { + _$jscoverage['ui/combox.js'][61]++; + this.selectedIndex = -1; + _$jscoverage['ui/combox.js'][62]++; + this.setLabel(this.getLabelForUnknowValue(value)); + _$jscoverage['ui/combox.js'][63]++; + this.value = value; + } +}), setLabel: (function (label) { + _$jscoverage['ui/combox.js'][67]++; + this.getDom("button_body").innerHTML = label; + _$jscoverage['ui/combox.js'][68]++; + this.label = label; +}), getLabelForUnknowValue: (function (value) { + _$jscoverage['ui/combox.js'][71]++; + return value; +}), indexByValue: (function (value) { + _$jscoverage['ui/combox.js'][74]++; + for (var i = 0; (i < this.items.length); (i++)) { + _$jscoverage['ui/combox.js'][75]++; + if ((value == this.items[i].value)) { + _$jscoverage['ui/combox.js'][76]++; + return i; + } +} + _$jscoverage['ui/combox.js'][79]++; + return -1; +}), getItem: (function (index) { + _$jscoverage['ui/combox.js'][82]++; + return this.items[index]; +}), selectByIndex: (function (index) { + _$jscoverage['ui/combox.js'][85]++; + if (((index < this.items.length) && (this.fireEvent("select", index) !== false))) { + _$jscoverage['ui/combox.js'][86]++; + this.selectedIndex = index; + _$jscoverage['ui/combox.js'][87]++; + this.value = this.items[index].value; + _$jscoverage['ui/combox.js'][88]++; + this.setLabel(this.items[index].label); + } +})}; + _$jscoverage['ui/combox.js'][92]++; + utils.inherits(Combox, SplitButton); +})(); diff --git a/_test/coverage/ui/dialog.js b/_test/coverage/ui/dialog.js new file mode 100644 index 000000000..798216438 --- /dev/null +++ b/_test/coverage/ui/dialog.js @@ -0,0 +1,535 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['ui/dialog.js']) { + _$jscoverage['ui/dialog.js'] = []; + _$jscoverage['ui/dialog.js'][5] = 0; + _$jscoverage['ui/dialog.js'][6] = 0; + _$jscoverage['ui/dialog.js'][13] = 0; + _$jscoverage['ui/dialog.js'][19] = 0; + _$jscoverage['ui/dialog.js'][24] = 0; + _$jscoverage['ui/dialog.js'][26] = 0; + _$jscoverage['ui/dialog.js'][27] = 0; + _$jscoverage['ui/dialog.js'][28] = 0; + _$jscoverage['ui/dialog.js'][32] = 0; + _$jscoverage['ui/dialog.js'][34] = 0; + _$jscoverage['ui/dialog.js'][35] = 0; + _$jscoverage['ui/dialog.js'][39] = 0; + _$jscoverage['ui/dialog.js'][43] = 0; + _$jscoverage['ui/dialog.js'][48] = 0; + _$jscoverage['ui/dialog.js'][51] = 0; + _$jscoverage['ui/dialog.js'][52] = 0; + _$jscoverage['ui/dialog.js'][53] = 0; + _$jscoverage['ui/dialog.js'][54] = 0; + _$jscoverage['ui/dialog.js'][60] = 0; + _$jscoverage['ui/dialog.js'][65] = 0; + _$jscoverage['ui/dialog.js'][66] = 0; + _$jscoverage['ui/dialog.js'][67] = 0; + _$jscoverage['ui/dialog.js'][68] = 0; + _$jscoverage['ui/dialog.js'][71] = 0; + _$jscoverage['ui/dialog.js'][72] = 0; + _$jscoverage['ui/dialog.js'][73] = 0; + _$jscoverage['ui/dialog.js'][74] = 0; + _$jscoverage['ui/dialog.js'][75] = 0; + _$jscoverage['ui/dialog.js'][76] = 0; + _$jscoverage['ui/dialog.js'][77] = 0; + _$jscoverage['ui/dialog.js'][79] = 0; + _$jscoverage['ui/dialog.js'][80] = 0; + _$jscoverage['ui/dialog.js'][81] = 0; + _$jscoverage['ui/dialog.js'][83] = 0; + _$jscoverage['ui/dialog.js'][84] = 0; + _$jscoverage['ui/dialog.js'][87] = 0; + _$jscoverage['ui/dialog.js'][88] = 0; + _$jscoverage['ui/dialog.js'][89] = 0; + _$jscoverage['ui/dialog.js'][90] = 0; + _$jscoverage['ui/dialog.js'][91] = 0; + _$jscoverage['ui/dialog.js'][92] = 0; + _$jscoverage['ui/dialog.js'][93] = 0; + _$jscoverage['ui/dialog.js'][94] = 0; + _$jscoverage['ui/dialog.js'][98] = 0; + _$jscoverage['ui/dialog.js'][99] = 0; + _$jscoverage['ui/dialog.js'][101] = 0; + _$jscoverage['ui/dialog.js'][104] = 0; + _$jscoverage['ui/dialog.js'][105] = 0; + _$jscoverage['ui/dialog.js'][106] = 0; + _$jscoverage['ui/dialog.js'][107] = 0; + _$jscoverage['ui/dialog.js'][108] = 0; + _$jscoverage['ui/dialog.js'][111] = 0; + _$jscoverage['ui/dialog.js'][114] = 0; + _$jscoverage['ui/dialog.js'][116] = 0; + _$jscoverage['ui/dialog.js'][117] = 0; + _$jscoverage['ui/dialog.js'][118] = 0; + _$jscoverage['ui/dialog.js'][119] = 0; + _$jscoverage['ui/dialog.js'][121] = 0; + _$jscoverage['ui/dialog.js'][126] = 0; + _$jscoverage['ui/dialog.js'][140] = 0; + _$jscoverage['ui/dialog.js'][141] = 0; + _$jscoverage['ui/dialog.js'][142] = 0; + _$jscoverage['ui/dialog.js'][144] = 0; + _$jscoverage['ui/dialog.js'][145] = 0; + _$jscoverage['ui/dialog.js'][146] = 0; + _$jscoverage['ui/dialog.js'][148] = 0; + _$jscoverage['ui/dialog.js'][149] = 0; + _$jscoverage['ui/dialog.js'][150] = 0; + _$jscoverage['ui/dialog.js'][152] = 0; + _$jscoverage['ui/dialog.js'][153] = 0; + _$jscoverage['ui/dialog.js'][155] = 0; + _$jscoverage['ui/dialog.js'][156] = 0; + _$jscoverage['ui/dialog.js'][157] = 0; + _$jscoverage['ui/dialog.js'][160] = 0; + _$jscoverage['ui/dialog.js'][161] = 0; + _$jscoverage['ui/dialog.js'][162] = 0; + _$jscoverage['ui/dialog.js'][163] = 0; + _$jscoverage['ui/dialog.js'][169] = 0; + _$jscoverage['ui/dialog.js'][171] = 0; + _$jscoverage['ui/dialog.js'][172] = 0; + _$jscoverage['ui/dialog.js'][173] = 0; + _$jscoverage['ui/dialog.js'][176] = 0; + _$jscoverage['ui/dialog.js'][177] = 0; + _$jscoverage['ui/dialog.js'][178] = 0; + _$jscoverage['ui/dialog.js'][180] = 0; + _$jscoverage['ui/dialog.js'][182] = 0; + _$jscoverage['ui/dialog.js'][184] = 0; + _$jscoverage['ui/dialog.js'][185] = 0; + _$jscoverage['ui/dialog.js'][186] = 0; + _$jscoverage['ui/dialog.js'][187] = 0; + _$jscoverage['ui/dialog.js'][188] = 0; + _$jscoverage['ui/dialog.js'][195] = 0; + _$jscoverage['ui/dialog.js'][196] = 0; + _$jscoverage['ui/dialog.js'][205] = 0; + _$jscoverage['ui/dialog.js'][208] = 0; + _$jscoverage['ui/dialog.js'][209] = 0; + _$jscoverage['ui/dialog.js'][210] = 0; + _$jscoverage['ui/dialog.js'][211] = 0; + _$jscoverage['ui/dialog.js'][212] = 0; + _$jscoverage['ui/dialog.js'][215] = 0; + _$jscoverage['ui/dialog.js'][216] = 0; + _$jscoverage['ui/dialog.js'][217] = 0; + _$jscoverage['ui/dialog.js'][218] = 0; + _$jscoverage['ui/dialog.js'][219] = 0; + _$jscoverage['ui/dialog.js'][221] = 0; + _$jscoverage['ui/dialog.js'][222] = 0; + _$jscoverage['ui/dialog.js'][223] = 0; + _$jscoverage['ui/dialog.js'][226] = 0; + _$jscoverage['ui/dialog.js'][227] = 0; + _$jscoverage['ui/dialog.js'][228] = 0; + _$jscoverage['ui/dialog.js'][234] = 0; + _$jscoverage['ui/dialog.js'][235] = 0; + _$jscoverage['ui/dialog.js'][236] = 0; + _$jscoverage['ui/dialog.js'][242] = 0; + _$jscoverage['ui/dialog.js'][243] = 0; + _$jscoverage['ui/dialog.js'][246] = 0; + _$jscoverage['ui/dialog.js'][247] = 0; + _$jscoverage['ui/dialog.js'][250] = 0; + _$jscoverage['ui/dialog.js'][251] = 0; + _$jscoverage['ui/dialog.js'][252] = 0; + _$jscoverage['ui/dialog.js'][253] = 0; + _$jscoverage['ui/dialog.js'][257] = 0; + _$jscoverage['ui/dialog.js'][260] = 0; + _$jscoverage['ui/dialog.js'][261] = 0; + _$jscoverage['ui/dialog.js'][262] = 0; + _$jscoverage['ui/dialog.js'][263] = 0; + _$jscoverage['ui/dialog.js'][264] = 0; + _$jscoverage['ui/dialog.js'][268] = 0; + _$jscoverage['ui/dialog.js'][270] = 0; + _$jscoverage['ui/dialog.js'][271] = 0; + _$jscoverage['ui/dialog.js'][273] = 0; + _$jscoverage['ui/dialog.js'][274] = 0; + _$jscoverage['ui/dialog.js'][277] = 0; + _$jscoverage['ui/dialog.js'][278] = 0; + _$jscoverage['ui/dialog.js'][279] = 0; + _$jscoverage['ui/dialog.js'][280] = 0; + _$jscoverage['ui/dialog.js'][285] = 0; + _$jscoverage['ui/dialog.js'][288] = 0; + _$jscoverage['ui/dialog.js'][289] = 0; + _$jscoverage['ui/dialog.js'][293] = 0; +} +_$jscoverage['ui/dialog.js'].source = ["///import core","///import uicore","///import ui/mask.js","///import ui/button.js","(function (){"," var utils = baidu.editor.utils,"," domUtils = baidu.editor.dom.domUtils,"," uiUtils = baidu.editor.ui.uiUtils,"," Mask = baidu.editor.ui.Mask,"," UIBase = baidu.editor.ui.UIBase,"," Button = baidu.editor.ui.Button,"," Dialog = baidu.editor.ui.Dialog = function (options){"," this.initOptions(utils.extend({"," autoReset: true,"," draggable: true,"," onok: function (){},"," oncancel: function (){},"," onclose: function (t, ok){"," return ok ? this.onok() : this.oncancel();"," },"," //是否控制dialog中的scroll事件, 默认为不阻止"," holdScroll: false"," },options));"," this.initDialog();"," };"," var modalMask;"," var dragMask;"," Dialog.prototype = {"," draggable: false,"," uiName: 'dialog',"," initDialog: function (){"," var me = this,"," theme=this.editor.options.theme;"," this.initUIBase();"," this.modalMask = (modalMask || (modalMask = new Mask({"," className: 'edui-dialog-modalmask',"," theme:theme"," })));"," this.dragMask = (dragMask || (dragMask = new Mask({"," className: 'edui-dialog-dragmask',"," theme:theme"," })));"," this.closeButton = new Button({"," className: 'edui-dialog-closebutton',"," title: me.closeDialog,"," theme:theme,"," onclick: function (){"," me.close(false);"," }"," });"," if (this.buttons) {"," for (var i=0; i<this.buttons.length; i++) {"," if (!(this.buttons[i] instanceof Button)) {"," this.buttons[i] = new Button(this.buttons[i]);"," }"," }"," }"," },"," fitSize: function (){"," var popBodyEl = this.getDom('body');","// if (!(baidu.editor.browser.ie && baidu.editor.browser.version == 7)) {","// uiUtils.removeStyle(popBodyEl, 'width');","// uiUtils.removeStyle(popBodyEl, 'height');","// }"," var size = this.mesureSize();"," popBodyEl.style.width = size.width + 'px';"," popBodyEl.style.height = size.height + 'px';"," return size;"," },"," safeSetOffset: function (offset){"," var me = this;"," var el = me.getDom();"," var vpRect = uiUtils.getViewportRect();"," var rect = uiUtils.getClientRect(el);"," var left = offset.left;"," if (left + rect.width > vpRect.right) {"," left = vpRect.right - rect.width;"," }"," var top = offset.top;"," if (top + rect.height > vpRect.bottom) {"," top = vpRect.bottom - rect.height;"," }"," el.style.left = Math.max(left, 0) + 'px';"," el.style.top = Math.max(top, 0) + 'px';"," },"," showAtCenter: function (){"," this.getDom().style.display = '';"," var vpRect = uiUtils.getViewportRect();"," var popSize = this.fitSize();"," var titleHeight = this.getDom('titlebar').offsetHeight | 0;"," var left = vpRect.width / 2 - popSize.width / 2;"," var top = vpRect.height / 2 - (popSize.height - titleHeight) / 2 - titleHeight;"," var popEl = this.getDom();"," this.safeSetOffset({"," left: Math.max(left | 0, 0),"," top: Math.max(top | 0, 0)"," });"," if (!domUtils.hasClass(popEl, 'edui-state-centered')) {"," popEl.className += ' edui-state-centered';"," }"," this._show();"," },"," getContentHtml: function (){"," var contentHtml = '';"," if (typeof this.content == 'string') {"," contentHtml = this.content;"," } else if (this.iframeUrl) {"," contentHtml = '<span id=\"'+ this.id +'_contmask\" class=\"dialogcontmask\"></span><iframe id=\"'+ this.id +"," '_iframe\" class=\"%%-iframe\" height=\"100%\" width=\"100%\" frameborder=\"0\" src=\"'+ this.iframeUrl +'\"></iframe>';"," }"," return contentHtml;"," },"," getHtmlTpl: function (){"," var footHtml = '';",""," if (this.buttons) {"," var buff = [];"," for (var i=0; i<this.buttons.length; i++) {"," buff[i] = this.buttons[i].renderHtml();"," }"," footHtml = '<div class=\"%%-foot\">' +"," '<div id=\"##_buttons\" class=\"%%-buttons\">' + buff.join('') + '</div>' +"," '</div>';"," }",""," return '<div id=\"##\" class=\"%%\"><div class=\"%%-wrap\"><div id=\"##_body\" class=\"%%-body\">' +"," '<div class=\"%%-shadow\"></div>' +"," '<div id=\"##_titlebar\" class=\"%%-titlebar\">' +"," '<div class=\"%%-draghandle\" onmousedown=\"$$._onTitlebarMouseDown(event, this);\">' +"," '<span class=\"%%-caption\">' + (this.title || '') + '</span>' +"," '</div>' +"," this.closeButton.renderHtml() +"," '</div>' +"," '<div id=\"##_content\" class=\"%%-content\">'+ ( this.autoReset ? '' : this.getContentHtml()) +'</div>' +"," footHtml +"," '</div></div></div>';"," },"," postRender: function (){"," // todo: 保持居中/记住上次关闭位置选项"," if (!this.modalMask.getDom()) {"," this.modalMask.render();"," this.modalMask.hide();"," }"," if (!this.dragMask.getDom()) {"," this.dragMask.render();"," this.dragMask.hide();"," }"," var me = this;"," this.addListener('show', function (){"," me.modalMask.show(this.getDom().style.zIndex - 2);"," });"," this.addListener('hide', function (){"," me.modalMask.hide();"," });"," if (this.buttons) {"," for (var i=0; i<this.buttons.length; i++) {"," this.buttons[i].postRender();"," }"," }"," domUtils.on(window, 'resize', function (){"," setTimeout(function (){"," if (!me.isHidden()) {"," me.safeSetOffset(uiUtils.getClientRect(me.getDom()));"," }"," });"," });",""," //hold住scroll事件,防止dialog的滚动影响页面"," if( this.holdScroll ) {",""," if( !me.iframeUrl ) {"," domUtils.on( document.getElementById( me.id + \"_iframe\"), !browser.gecko ? \"mousewheel\" : \"DOMMouseScroll\", function(e){"," domUtils.preventDefault(e);"," } );"," } else {"," me.addListener('dialogafterreset', function(){"," window.setTimeout(function(){"," var iframeWindow = document.getElementById( me.id + \"_iframe\").contentWindow;",""," if( browser.ie ) {",""," var timer = window.setInterval(function(){",""," if( iframeWindow.document && iframeWindow.document.body ) {"," window.clearInterval( timer );"," timer = null;"," domUtils.on( iframeWindow.document.body, !browser.gecko ? \"mousewheel\" : \"DOMMouseScroll\", function(e){"," domUtils.preventDefault(e);"," } );"," }",""," }, 100);",""," } else {"," domUtils.on( iframeWindow, !browser.gecko ? \"mousewheel\" : \"DOMMouseScroll\", function(e){"," domUtils.preventDefault(e);"," } );"," }",""," }, 1);"," });"," }",""," }"," this._hide();"," },"," mesureSize: function (){"," var body = this.getDom('body');"," var width = uiUtils.getClientRect(this.getDom('content')).width;"," var dialogBodyStyle = body.style;"," dialogBodyStyle.width = width;"," return uiUtils.getClientRect(body);"," },"," _onTitlebarMouseDown: function (evt, el){"," if (this.draggable) {"," var rect;"," var vpRect = uiUtils.getViewportRect();"," var me = this;"," uiUtils.startDrag(evt, {"," ondragstart: function (){"," rect = uiUtils.getClientRect(me.getDom());"," me.getDom('contmask').style.visibility = 'visible';"," me.dragMask.show(me.getDom().style.zIndex - 1);"," },"," ondragmove: function (x, y){"," var left = rect.left + x;"," var top = rect.top + y;"," me.safeSetOffset({"," left: left,"," top: top"," });"," },"," ondragstop: function (){"," me.getDom('contmask').style.visibility = 'hidden';"," domUtils.removeClasses(me.getDom(), ['edui-state-centered']);"," me.dragMask.hide();"," }"," });"," }"," },"," reset: function (){"," this.getDom('content').innerHTML = this.getContentHtml();"," this.fireEvent('dialogafterreset');"," },"," _show: function (){"," if (this._hidden) {"," this.getDom().style.display = '';",""," //要高过编辑器的zindxe"," this.editor.container.style.zIndex && (this.getDom().style.zIndex = this.editor.container.style.zIndex * 1 + 10);"," this._hidden = false;"," this.fireEvent('show');"," baidu.editor.ui.uiUtils.getFixedLayer().style.zIndex = this.getDom().style.zIndex - 4;"," }"," },"," isHidden: function (){"," return this._hidden;"," },"," _hide: function (){"," if (!this._hidden) {"," this.getDom().style.display = 'none';"," this.getDom().style.zIndex = '';"," this._hidden = true;"," this.fireEvent('hide');"," }"," },"," open: function (){"," if (this.autoReset) {"," //有可能还没有渲染"," try{"," this.reset();"," }catch(e){"," this.render();"," this.open()"," }"," }"," this.showAtCenter();"," if (this.iframeUrl) {"," try {"," this.getDom('iframe').focus();"," } catch(ex){}"," }"," },"," _onCloseButtonClick: function (evt, el){"," this.close(false);"," },"," close: function (ok){"," if (this.fireEvent('close', ok) !== false) {"," this._hide();"," }"," }"," };"," utils.inherits(Dialog, UIBase);","})();"]; +_$jscoverage['ui/dialog.js'][5]++; +(function () { + _$jscoverage['ui/dialog.js'][6]++; + var utils = baidu.editor.utils, domUtils = baidu.editor.dom.domUtils, uiUtils = baidu.editor.ui.uiUtils, Mask = baidu.editor.ui.Mask, UIBase = baidu.editor.ui.UIBase, Button = baidu.editor.ui.Button, Dialog = (baidu.editor.ui.Dialog = (function (options) { + _$jscoverage['ui/dialog.js'][13]++; + this.initOptions(utils.extend({autoReset: true, draggable: true, onok: (function () { +}), oncancel: (function () { +}), onclose: (function (t, ok) { + _$jscoverage['ui/dialog.js'][19]++; + return (ok? this.onok(): this.oncancel()); +}), holdScroll: false}, options)); + _$jscoverage['ui/dialog.js'][24]++; + this.initDialog(); +})); + _$jscoverage['ui/dialog.js'][26]++; + var modalMask; + _$jscoverage['ui/dialog.js'][27]++; + var dragMask; + _$jscoverage['ui/dialog.js'][28]++; + Dialog.prototype = {draggable: false, uiName: "dialog", initDialog: (function () { + _$jscoverage['ui/dialog.js'][32]++; + var me = this, theme = this.editor.options.theme; + _$jscoverage['ui/dialog.js'][34]++; + this.initUIBase(); + _$jscoverage['ui/dialog.js'][35]++; + this.modalMask = (modalMask || (modalMask = new Mask({className: "edui-dialog-modalmask", theme: theme}))); + _$jscoverage['ui/dialog.js'][39]++; + this.dragMask = (dragMask || (dragMask = new Mask({className: "edui-dialog-dragmask", theme: theme}))); + _$jscoverage['ui/dialog.js'][43]++; + this.closeButton = new Button({className: "edui-dialog-closebutton", title: me.closeDialog, theme: theme, onclick: (function () { + _$jscoverage['ui/dialog.js'][48]++; + me.close(false); +})}); + _$jscoverage['ui/dialog.js'][51]++; + if (this.buttons) { + _$jscoverage['ui/dialog.js'][52]++; + for (var i = 0; (i < this.buttons.length); (i++)) { + _$jscoverage['ui/dialog.js'][53]++; + if ((! (this.buttons[i] instanceof Button))) { + _$jscoverage['ui/dialog.js'][54]++; + this.buttons[i] = new Button(this.buttons[i]); + } +} + } +}), fitSize: (function () { + _$jscoverage['ui/dialog.js'][60]++; + var popBodyEl = this.getDom("body"); + _$jscoverage['ui/dialog.js'][65]++; + var size = this.mesureSize(); + _$jscoverage['ui/dialog.js'][66]++; + popBodyEl.style.width = (size.width + "px"); + _$jscoverage['ui/dialog.js'][67]++; + popBodyEl.style.height = (size.height + "px"); + _$jscoverage['ui/dialog.js'][68]++; + return size; +}), safeSetOffset: (function (offset) { + _$jscoverage['ui/dialog.js'][71]++; + var me = this; + _$jscoverage['ui/dialog.js'][72]++; + var el = me.getDom(); + _$jscoverage['ui/dialog.js'][73]++; + var vpRect = uiUtils.getViewportRect(); + _$jscoverage['ui/dialog.js'][74]++; + var rect = uiUtils.getClientRect(el); + _$jscoverage['ui/dialog.js'][75]++; + var left = offset.left; + _$jscoverage['ui/dialog.js'][76]++; + if (((left + rect.width) > vpRect.right)) { + _$jscoverage['ui/dialog.js'][77]++; + left = (vpRect.right - rect.width); + } + _$jscoverage['ui/dialog.js'][79]++; + var top = offset.top; + _$jscoverage['ui/dialog.js'][80]++; + if (((top + rect.height) > vpRect.bottom)) { + _$jscoverage['ui/dialog.js'][81]++; + top = (vpRect.bottom - rect.height); + } + _$jscoverage['ui/dialog.js'][83]++; + el.style.left = (Math.max(left, 0) + "px"); + _$jscoverage['ui/dialog.js'][84]++; + el.style.top = (Math.max(top, 0) + "px"); +}), showAtCenter: (function () { + _$jscoverage['ui/dialog.js'][87]++; + this.getDom().style.display = ""; + _$jscoverage['ui/dialog.js'][88]++; + var vpRect = uiUtils.getViewportRect(); + _$jscoverage['ui/dialog.js'][89]++; + var popSize = this.fitSize(); + _$jscoverage['ui/dialog.js'][90]++; + var titleHeight = (this.getDom("titlebar").offsetHeight | 0); + _$jscoverage['ui/dialog.js'][91]++; + var left = ((vpRect.width / 2) - (popSize.width / 2)); + _$jscoverage['ui/dialog.js'][92]++; + var top = ((vpRect.height / 2) - ((popSize.height - titleHeight) / 2) - titleHeight); + _$jscoverage['ui/dialog.js'][93]++; + var popEl = this.getDom(); + _$jscoverage['ui/dialog.js'][94]++; + this.safeSetOffset({left: Math.max((left | 0), 0), top: Math.max((top | 0), 0)}); + _$jscoverage['ui/dialog.js'][98]++; + if ((! domUtils.hasClass(popEl, "edui-state-centered"))) { + _$jscoverage['ui/dialog.js'][99]++; + popEl.className += " edui-state-centered"; + } + _$jscoverage['ui/dialog.js'][101]++; + this._show(); +}), getContentHtml: (function () { + _$jscoverage['ui/dialog.js'][104]++; + var contentHtml = ""; + _$jscoverage['ui/dialog.js'][105]++; + if (((typeof this.content) == "string")) { + _$jscoverage['ui/dialog.js'][106]++; + contentHtml = this.content; + } + else { + _$jscoverage['ui/dialog.js'][107]++; + if (this.iframeUrl) { + _$jscoverage['ui/dialog.js'][108]++; + contentHtml = (""); + } + } + _$jscoverage['ui/dialog.js'][111]++; + return contentHtml; +}), getHtmlTpl: (function () { + _$jscoverage['ui/dialog.js'][114]++; + var footHtml = ""; + _$jscoverage['ui/dialog.js'][116]++; + if (this.buttons) { + _$jscoverage['ui/dialog.js'][117]++; + var buff = []; + _$jscoverage['ui/dialog.js'][118]++; + for (var i = 0; (i < this.buttons.length); (i++)) { + _$jscoverage['ui/dialog.js'][119]++; + buff[i] = this.buttons[i].renderHtml(); +} + _$jscoverage['ui/dialog.js'][121]++; + footHtml = ("
" + "
" + buff.join("") + "
" + "
"); + } + _$jscoverage['ui/dialog.js'][126]++; + return ("
" + "
" + "
" + "
" + "" + (this.title || "") + "" + "
" + this.closeButton.renderHtml() + "
" + "
" + (this.autoReset? "": this.getContentHtml()) + "
" + footHtml + "
"); +}), postRender: (function () { + _$jscoverage['ui/dialog.js'][140]++; + if ((! this.modalMask.getDom())) { + _$jscoverage['ui/dialog.js'][141]++; + this.modalMask.render(); + _$jscoverage['ui/dialog.js'][142]++; + this.modalMask.hide(); + } + _$jscoverage['ui/dialog.js'][144]++; + if ((! this.dragMask.getDom())) { + _$jscoverage['ui/dialog.js'][145]++; + this.dragMask.render(); + _$jscoverage['ui/dialog.js'][146]++; + this.dragMask.hide(); + } + _$jscoverage['ui/dialog.js'][148]++; + var me = this; + _$jscoverage['ui/dialog.js'][149]++; + this.addListener("show", (function () { + _$jscoverage['ui/dialog.js'][150]++; + me.modalMask.show((this.getDom().style.zIndex - 2)); +})); + _$jscoverage['ui/dialog.js'][152]++; + this.addListener("hide", (function () { + _$jscoverage['ui/dialog.js'][153]++; + me.modalMask.hide(); +})); + _$jscoverage['ui/dialog.js'][155]++; + if (this.buttons) { + _$jscoverage['ui/dialog.js'][156]++; + for (var i = 0; (i < this.buttons.length); (i++)) { + _$jscoverage['ui/dialog.js'][157]++; + this.buttons[i].postRender(); +} + } + _$jscoverage['ui/dialog.js'][160]++; + domUtils.on(window, "resize", (function () { + _$jscoverage['ui/dialog.js'][161]++; + setTimeout((function () { + _$jscoverage['ui/dialog.js'][162]++; + if ((! me.isHidden())) { + _$jscoverage['ui/dialog.js'][163]++; + me.safeSetOffset(uiUtils.getClientRect(me.getDom())); + } +})); +})); + _$jscoverage['ui/dialog.js'][169]++; + if (this.holdScroll) { + _$jscoverage['ui/dialog.js'][171]++; + if ((! me.iframeUrl)) { + _$jscoverage['ui/dialog.js'][172]++; + domUtils.on(document.getElementById((me.id + "_iframe")), ((! browser.gecko)? "mousewheel": "DOMMouseScroll"), (function (e) { + _$jscoverage['ui/dialog.js'][173]++; + domUtils.preventDefault(e); +})); + } + else { + _$jscoverage['ui/dialog.js'][176]++; + me.addListener("dialogafterreset", (function () { + _$jscoverage['ui/dialog.js'][177]++; + window.setTimeout((function () { + _$jscoverage['ui/dialog.js'][178]++; + var iframeWindow = document.getElementById((me.id + "_iframe")).contentWindow; + _$jscoverage['ui/dialog.js'][180]++; + if (browser.ie) { + _$jscoverage['ui/dialog.js'][182]++; + var timer = window.setInterval((function () { + _$jscoverage['ui/dialog.js'][184]++; + if ((iframeWindow.document && iframeWindow.document.body)) { + _$jscoverage['ui/dialog.js'][185]++; + window.clearInterval(timer); + _$jscoverage['ui/dialog.js'][186]++; + timer = null; + _$jscoverage['ui/dialog.js'][187]++; + domUtils.on(iframeWindow.document.body, ((! browser.gecko)? "mousewheel": "DOMMouseScroll"), (function (e) { + _$jscoverage['ui/dialog.js'][188]++; + domUtils.preventDefault(e); +})); + } +}), 100); + } + else { + _$jscoverage['ui/dialog.js'][195]++; + domUtils.on(iframeWindow, ((! browser.gecko)? "mousewheel": "DOMMouseScroll"), (function (e) { + _$jscoverage['ui/dialog.js'][196]++; + domUtils.preventDefault(e); +})); + } +}), 1); +})); + } + } + _$jscoverage['ui/dialog.js'][205]++; + this._hide(); +}), mesureSize: (function () { + _$jscoverage['ui/dialog.js'][208]++; + var body = this.getDom("body"); + _$jscoverage['ui/dialog.js'][209]++; + var width = uiUtils.getClientRect(this.getDom("content")).width; + _$jscoverage['ui/dialog.js'][210]++; + var dialogBodyStyle = body.style; + _$jscoverage['ui/dialog.js'][211]++; + dialogBodyStyle.width = width; + _$jscoverage['ui/dialog.js'][212]++; + return uiUtils.getClientRect(body); +}), _onTitlebarMouseDown: (function (evt, el) { + _$jscoverage['ui/dialog.js'][215]++; + if (this.draggable) { + _$jscoverage['ui/dialog.js'][216]++; + var rect; + _$jscoverage['ui/dialog.js'][217]++; + var vpRect = uiUtils.getViewportRect(); + _$jscoverage['ui/dialog.js'][218]++; + var me = this; + _$jscoverage['ui/dialog.js'][219]++; + uiUtils.startDrag(evt, {ondragstart: (function () { + _$jscoverage['ui/dialog.js'][221]++; + rect = uiUtils.getClientRect(me.getDom()); + _$jscoverage['ui/dialog.js'][222]++; + me.getDom("contmask").style.visibility = "visible"; + _$jscoverage['ui/dialog.js'][223]++; + me.dragMask.show((me.getDom().style.zIndex - 1)); +}), ondragmove: (function (x, y) { + _$jscoverage['ui/dialog.js'][226]++; + var left = (rect.left + x); + _$jscoverage['ui/dialog.js'][227]++; + var top = (rect.top + y); + _$jscoverage['ui/dialog.js'][228]++; + me.safeSetOffset({left: left, top: top}); +}), ondragstop: (function () { + _$jscoverage['ui/dialog.js'][234]++; + me.getDom("contmask").style.visibility = "hidden"; + _$jscoverage['ui/dialog.js'][235]++; + domUtils.removeClasses(me.getDom(), ["edui-state-centered"]); + _$jscoverage['ui/dialog.js'][236]++; + me.dragMask.hide(); +})}); + } +}), reset: (function () { + _$jscoverage['ui/dialog.js'][242]++; + this.getDom("content").innerHTML = this.getContentHtml(); + _$jscoverage['ui/dialog.js'][243]++; + this.fireEvent("dialogafterreset"); +}), _show: (function () { + _$jscoverage['ui/dialog.js'][246]++; + if (this._hidden) { + _$jscoverage['ui/dialog.js'][247]++; + this.getDom().style.display = ""; + _$jscoverage['ui/dialog.js'][250]++; + (this.editor.container.style.zIndex && (this.getDom().style.zIndex = ((this.editor.container.style.zIndex * 1) + 10))); + _$jscoverage['ui/dialog.js'][251]++; + this._hidden = false; + _$jscoverage['ui/dialog.js'][252]++; + this.fireEvent("show"); + _$jscoverage['ui/dialog.js'][253]++; + baidu.editor.ui.uiUtils.getFixedLayer().style.zIndex = (this.getDom().style.zIndex - 4); + } +}), isHidden: (function () { + _$jscoverage['ui/dialog.js'][257]++; + return this._hidden; +}), _hide: (function () { + _$jscoverage['ui/dialog.js'][260]++; + if ((! this._hidden)) { + _$jscoverage['ui/dialog.js'][261]++; + this.getDom().style.display = "none"; + _$jscoverage['ui/dialog.js'][262]++; + this.getDom().style.zIndex = ""; + _$jscoverage['ui/dialog.js'][263]++; + this._hidden = true; + _$jscoverage['ui/dialog.js'][264]++; + this.fireEvent("hide"); + } +}), open: (function () { + _$jscoverage['ui/dialog.js'][268]++; + if (this.autoReset) { + _$jscoverage['ui/dialog.js'][270]++; + try { + _$jscoverage['ui/dialog.js'][271]++; + this.reset(); + } + catch (e) { + _$jscoverage['ui/dialog.js'][273]++; + this.render(); + _$jscoverage['ui/dialog.js'][274]++; + this.open(); + } + } + _$jscoverage['ui/dialog.js'][277]++; + this.showAtCenter(); + _$jscoverage['ui/dialog.js'][278]++; + if (this.iframeUrl) { + _$jscoverage['ui/dialog.js'][279]++; + try { + _$jscoverage['ui/dialog.js'][280]++; + this.getDom("iframe").focus(); + } + catch (ex) { + } + } +}), _onCloseButtonClick: (function (evt, el) { + _$jscoverage['ui/dialog.js'][285]++; + this.close(false); +}), close: (function (ok) { + _$jscoverage['ui/dialog.js'][288]++; + if ((this.fireEvent("close", ok) !== false)) { + _$jscoverage['ui/dialog.js'][289]++; + this._hide(); + } +})}; + _$jscoverage['ui/dialog.js'][293]++; + utils.inherits(Dialog, UIBase); +})(); diff --git a/_test/coverage/ui/editor.js b/_test/coverage/ui/editor.js new file mode 100644 index 000000000..254ce39da --- /dev/null +++ b/_test/coverage/ui/editor.js @@ -0,0 +1,1531 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['ui/editor.js']) { + _$jscoverage['ui/editor.js'] = []; + _$jscoverage['ui/editor.js'][5] = 0; + _$jscoverage['ui/editor.js'][6] = 0; + _$jscoverage['ui/editor.js'][10] = 0; + _$jscoverage['ui/editor.js'][12] = 0; + _$jscoverage['ui/editor.js'][13] = 0; + _$jscoverage['ui/editor.js'][14] = 0; + _$jscoverage['ui/editor.js'][17] = 0; + _$jscoverage['ui/editor.js'][20] = 0; + _$jscoverage['ui/editor.js'][21] = 0; + _$jscoverage['ui/editor.js'][22] = 0; + _$jscoverage['ui/editor.js'][23] = 0; + _$jscoverage['ui/editor.js'][24] = 0; + _$jscoverage['ui/editor.js'][27] = 0; + _$jscoverage['ui/editor.js'][29] = 0; + _$jscoverage['ui/editor.js'][30] = 0; + _$jscoverage['ui/editor.js'][32] = 0; + _$jscoverage['ui/editor.js'][33] = 0; + _$jscoverage['ui/editor.js'][36] = 0; + _$jscoverage['ui/editor.js'][39] = 0; + _$jscoverage['ui/editor.js'][40] = 0; + _$jscoverage['ui/editor.js'][42] = 0; + _$jscoverage['ui/editor.js'][43] = 0; + _$jscoverage['ui/editor.js'][44] = 0; + _$jscoverage['ui/editor.js'][45] = 0; + _$jscoverage['ui/editor.js'][47] = 0; + _$jscoverage['ui/editor.js'][48] = 0; + _$jscoverage['ui/editor.js'][50] = 0; + _$jscoverage['ui/editor.js'][51] = 0; + _$jscoverage['ui/editor.js'][52] = 0; + _$jscoverage['ui/editor.js'][53] = 0; + _$jscoverage['ui/editor.js'][55] = 0; + _$jscoverage['ui/editor.js'][57] = 0; + _$jscoverage['ui/editor.js'][59] = 0; + _$jscoverage['ui/editor.js'][60] = 0; + _$jscoverage['ui/editor.js'][61] = 0; + _$jscoverage['ui/editor.js'][62] = 0; + _$jscoverage['ui/editor.js'][65] = 0; + _$jscoverage['ui/editor.js'][66] = 0; + _$jscoverage['ui/editor.js'][71] = 0; + _$jscoverage['ui/editor.js'][72] = 0; + _$jscoverage['ui/editor.js'][73] = 0; + _$jscoverage['ui/editor.js'][74] = 0; + _$jscoverage['ui/editor.js'][77] = 0; + _$jscoverage['ui/editor.js'][78] = 0; + _$jscoverage['ui/editor.js'][79] = 0; + _$jscoverage['ui/editor.js'][81] = 0; + _$jscoverage['ui/editor.js'][84] = 0; + _$jscoverage['ui/editor.js'][85] = 0; + _$jscoverage['ui/editor.js'][86] = 0; + _$jscoverage['ui/editor.js'][87] = 0; + _$jscoverage['ui/editor.js'][88] = 0; + _$jscoverage['ui/editor.js'][89] = 0; + _$jscoverage['ui/editor.js'][94] = 0; + _$jscoverage['ui/editor.js'][96] = 0; + _$jscoverage['ui/editor.js'][99] = 0; + _$jscoverage['ui/editor.js'][100] = 0; + _$jscoverage['ui/editor.js'][101] = 0; + _$jscoverage['ui/editor.js'][102] = 0; + _$jscoverage['ui/editor.js'][103] = 0; + _$jscoverage['ui/editor.js'][104] = 0; + _$jscoverage['ui/editor.js'][109] = 0; + _$jscoverage['ui/editor.js'][110] = 0; + _$jscoverage['ui/editor.js'][111] = 0; + _$jscoverage['ui/editor.js'][112] = 0; + _$jscoverage['ui/editor.js'][115] = 0; + _$jscoverage['ui/editor.js'][117] = 0; + _$jscoverage['ui/editor.js'][118] = 0; + _$jscoverage['ui/editor.js'][122] = 0; + _$jscoverage['ui/editor.js'][123] = 0; + _$jscoverage['ui/editor.js'][125] = 0; + _$jscoverage['ui/editor.js'][126] = 0; + _$jscoverage['ui/editor.js'][127] = 0; + _$jscoverage['ui/editor.js'][128] = 0; + _$jscoverage['ui/editor.js'][129] = 0; + _$jscoverage['ui/editor.js'][132] = 0; + _$jscoverage['ui/editor.js'][133] = 0; + _$jscoverage['ui/editor.js'][135] = 0; + _$jscoverage['ui/editor.js'][136] = 0; + _$jscoverage['ui/editor.js'][142] = 0; + _$jscoverage['ui/editor.js'][147] = 0; + _$jscoverage['ui/editor.js'][148] = 0; + _$jscoverage['ui/editor.js'][150] = 0; + _$jscoverage['ui/editor.js'][151] = 0; + _$jscoverage['ui/editor.js'][152] = 0; + _$jscoverage['ui/editor.js'][153] = 0; + _$jscoverage['ui/editor.js'][155] = 0; + _$jscoverage['ui/editor.js'][159] = 0; + _$jscoverage['ui/editor.js'][160] = 0; + _$jscoverage['ui/editor.js'][161] = 0; + _$jscoverage['ui/editor.js'][163] = 0; + _$jscoverage['ui/editor.js'][164] = 0; + _$jscoverage['ui/editor.js'][168] = 0; + _$jscoverage['ui/editor.js'][173] = 0; + _$jscoverage['ui/editor.js'][174] = 0; + _$jscoverage['ui/editor.js'][177] = 0; + _$jscoverage['ui/editor.js'][178] = 0; + _$jscoverage['ui/editor.js'][182] = 0; + _$jscoverage['ui/editor.js'][183] = 0; + _$jscoverage['ui/editor.js'][187] = 0; + _$jscoverage['ui/editor.js'][188] = 0; + _$jscoverage['ui/editor.js'][189] = 0; + _$jscoverage['ui/editor.js'][191] = 0; + _$jscoverage['ui/editor.js'][192] = 0; + _$jscoverage['ui/editor.js'][194] = 0; + _$jscoverage['ui/editor.js'][195] = 0; + _$jscoverage['ui/editor.js'][197] = 0; + _$jscoverage['ui/editor.js'][198] = 0; + _$jscoverage['ui/editor.js'][200] = 0; + _$jscoverage['ui/editor.js'][201] = 0; + _$jscoverage['ui/editor.js'][202] = 0; + _$jscoverage['ui/editor.js'][203] = 0; + _$jscoverage['ui/editor.js'][206] = 0; + _$jscoverage['ui/editor.js'][207] = 0; + _$jscoverage['ui/editor.js'][208] = 0; + _$jscoverage['ui/editor.js'][211] = 0; + _$jscoverage['ui/editor.js'][212] = 0; + _$jscoverage['ui/editor.js'][215] = 0; + _$jscoverage['ui/editor.js'][216] = 0; + _$jscoverage['ui/editor.js'][217] = 0; + _$jscoverage['ui/editor.js'][220] = 0; + _$jscoverage['ui/editor.js'][223] = 0; + _$jscoverage['ui/editor.js'][224] = 0; + _$jscoverage['ui/editor.js'][225] = 0; + _$jscoverage['ui/editor.js'][226] = 0; + _$jscoverage['ui/editor.js'][227] = 0; + _$jscoverage['ui/editor.js'][228] = 0; + _$jscoverage['ui/editor.js'][229] = 0; + _$jscoverage['ui/editor.js'][232] = 0; + _$jscoverage['ui/editor.js'][233] = 0; + _$jscoverage['ui/editor.js'][234] = 0; + _$jscoverage['ui/editor.js'][235] = 0; + _$jscoverage['ui/editor.js'][237] = 0; + _$jscoverage['ui/editor.js'][241] = 0; + _$jscoverage['ui/editor.js'][242] = 0; + _$jscoverage['ui/editor.js'][243] = 0; + _$jscoverage['ui/editor.js'][246] = 0; + _$jscoverage['ui/editor.js'][247] = 0; + _$jscoverage['ui/editor.js'][248] = 0; + _$jscoverage['ui/editor.js'][249] = 0; + _$jscoverage['ui/editor.js'][251] = 0; + _$jscoverage['ui/editor.js'][252] = 0; + _$jscoverage['ui/editor.js'][254] = 0; + _$jscoverage['ui/editor.js'][255] = 0; + _$jscoverage['ui/editor.js'][257] = 0; + _$jscoverage['ui/editor.js'][258] = 0; + _$jscoverage['ui/editor.js'][260] = 0; + _$jscoverage['ui/editor.js'][261] = 0; + _$jscoverage['ui/editor.js'][263] = 0; + _$jscoverage['ui/editor.js'][264] = 0; + _$jscoverage['ui/editor.js'][265] = 0; + _$jscoverage['ui/editor.js'][269] = 0; + _$jscoverage['ui/editor.js'][271] = 0; + _$jscoverage['ui/editor.js'][272] = 0; + _$jscoverage['ui/editor.js'][274] = 0; + _$jscoverage['ui/editor.js'][275] = 0; + _$jscoverage['ui/editor.js'][277] = 0; + _$jscoverage['ui/editor.js'][284] = 0; + _$jscoverage['ui/editor.js'][287] = 0; + _$jscoverage['ui/editor.js'][288] = 0; + _$jscoverage['ui/editor.js'][289] = 0; + _$jscoverage['ui/editor.js'][290] = 0; + _$jscoverage['ui/editor.js'][291] = 0; + _$jscoverage['ui/editor.js'][292] = 0; + _$jscoverage['ui/editor.js'][293] = 0; + _$jscoverage['ui/editor.js'][295] = 0; + _$jscoverage['ui/editor.js'][296] = 0; + _$jscoverage['ui/editor.js'][298] = 0; + _$jscoverage['ui/editor.js'][302] = 0; + _$jscoverage['ui/editor.js'][306] = 0; + _$jscoverage['ui/editor.js'][307] = 0; + _$jscoverage['ui/editor.js'][308] = 0; + _$jscoverage['ui/editor.js'][309] = 0; + _$jscoverage['ui/editor.js'][311] = 0; + _$jscoverage['ui/editor.js'][318] = 0; + _$jscoverage['ui/editor.js'][319] = 0; + _$jscoverage['ui/editor.js'][320] = 0; + _$jscoverage['ui/editor.js'][321] = 0; + _$jscoverage['ui/editor.js'][322] = 0; + _$jscoverage['ui/editor.js'][323] = 0; + _$jscoverage['ui/editor.js'][324] = 0; + _$jscoverage['ui/editor.js'][325] = 0; + _$jscoverage['ui/editor.js'][326] = 0; + _$jscoverage['ui/editor.js'][327] = 0; + _$jscoverage['ui/editor.js'][328] = 0; + _$jscoverage['ui/editor.js'][329] = 0; + _$jscoverage['ui/editor.js'][330] = 0; + _$jscoverage['ui/editor.js'][332] = 0; + _$jscoverage['ui/editor.js'][333] = 0; + _$jscoverage['ui/editor.js'][335] = 0; + _$jscoverage['ui/editor.js'][336] = 0; + _$jscoverage['ui/editor.js'][340] = 0; + _$jscoverage['ui/editor.js'][341] = 0; + _$jscoverage['ui/editor.js'][342] = 0; + _$jscoverage['ui/editor.js'][344] = 0; + _$jscoverage['ui/editor.js'][347] = 0; + _$jscoverage['ui/editor.js'][352] = 0; + _$jscoverage['ui/editor.js'][354] = 0; + _$jscoverage['ui/editor.js'][356] = 0; + _$jscoverage['ui/editor.js'][359] = 0; + _$jscoverage['ui/editor.js'][361] = 0; + _$jscoverage['ui/editor.js'][364] = 0; + _$jscoverage['ui/editor.js'][388] = 0; + _$jscoverage['ui/editor.js'][389] = 0; + _$jscoverage['ui/editor.js'][392] = 0; + _$jscoverage['ui/editor.js'][393] = 0; + _$jscoverage['ui/editor.js'][394] = 0; + _$jscoverage['ui/editor.js'][396] = 0; + _$jscoverage['ui/editor.js'][400] = 0; + _$jscoverage['ui/editor.js'][402] = 0; + _$jscoverage['ui/editor.js'][403] = 0; + _$jscoverage['ui/editor.js'][404] = 0; + _$jscoverage['ui/editor.js'][405] = 0; + _$jscoverage['ui/editor.js'][406] = 0; + _$jscoverage['ui/editor.js'][408] = 0; + _$jscoverage['ui/editor.js'][409] = 0; + _$jscoverage['ui/editor.js'][410] = 0; + _$jscoverage['ui/editor.js'][411] = 0; + _$jscoverage['ui/editor.js'][412] = 0; + _$jscoverage['ui/editor.js'][413] = 0; + _$jscoverage['ui/editor.js'][415] = 0; + _$jscoverage['ui/editor.js'][416] = 0; + _$jscoverage['ui/editor.js'][417] = 0; + _$jscoverage['ui/editor.js'][418] = 0; + _$jscoverage['ui/editor.js'][420] = 0; + _$jscoverage['ui/editor.js'][421] = 0; + _$jscoverage['ui/editor.js'][423] = 0; + _$jscoverage['ui/editor.js'][424] = 0; + _$jscoverage['ui/editor.js'][427] = 0; + _$jscoverage['ui/editor.js'][428] = 0; + _$jscoverage['ui/editor.js'][429] = 0; + _$jscoverage['ui/editor.js'][430] = 0; + _$jscoverage['ui/editor.js'][431] = 0; + _$jscoverage['ui/editor.js'][432] = 0; + _$jscoverage['ui/editor.js'][434] = 0; + _$jscoverage['ui/editor.js'][435] = 0; + _$jscoverage['ui/editor.js'][436] = 0; + _$jscoverage['ui/editor.js'][438] = 0; + _$jscoverage['ui/editor.js'][439] = 0; + _$jscoverage['ui/editor.js'][440] = 0; + _$jscoverage['ui/editor.js'][441] = 0; + _$jscoverage['ui/editor.js'][442] = 0; + _$jscoverage['ui/editor.js'][445] = 0; + _$jscoverage['ui/editor.js'][446] = 0; + _$jscoverage['ui/editor.js'][447] = 0; + _$jscoverage['ui/editor.js'][448] = 0; + _$jscoverage['ui/editor.js'][450] = 0; + _$jscoverage['ui/editor.js'][451] = 0; + _$jscoverage['ui/editor.js'][452] = 0; + _$jscoverage['ui/editor.js'][453] = 0; + _$jscoverage['ui/editor.js'][454] = 0; + _$jscoverage['ui/editor.js'][455] = 0; + _$jscoverage['ui/editor.js'][456] = 0; + _$jscoverage['ui/editor.js'][457] = 0; + _$jscoverage['ui/editor.js'][458] = 0; + _$jscoverage['ui/editor.js'][459] = 0; + _$jscoverage['ui/editor.js'][460] = 0; + _$jscoverage['ui/editor.js'][461] = 0; + _$jscoverage['ui/editor.js'][466] = 0; + _$jscoverage['ui/editor.js'][467] = 0; + _$jscoverage['ui/editor.js'][468] = 0; + _$jscoverage['ui/editor.js'][474] = 0; + _$jscoverage['ui/editor.js'][475] = 0; + _$jscoverage['ui/editor.js'][476] = 0; + _$jscoverage['ui/editor.js'][477] = 0; + _$jscoverage['ui/editor.js'][478] = 0; + _$jscoverage['ui/editor.js'][480] = 0; + _$jscoverage['ui/editor.js'][481] = 0; + _$jscoverage['ui/editor.js'][482] = 0; + _$jscoverage['ui/editor.js'][491] = 0; + _$jscoverage['ui/editor.js'][492] = 0; + _$jscoverage['ui/editor.js'][494] = 0; + _$jscoverage['ui/editor.js'][495] = 0; + _$jscoverage['ui/editor.js'][496] = 0; + _$jscoverage['ui/editor.js'][498] = 0; + _$jscoverage['ui/editor.js'][501] = 0; + _$jscoverage['ui/editor.js'][505] = 0; + _$jscoverage['ui/editor.js'][506] = 0; + _$jscoverage['ui/editor.js'][507] = 0; + _$jscoverage['ui/editor.js'][508] = 0; + _$jscoverage['ui/editor.js'][512] = 0; + _$jscoverage['ui/editor.js'][513] = 0; + _$jscoverage['ui/editor.js'][514] = 0; + _$jscoverage['ui/editor.js'][515] = 0; + _$jscoverage['ui/editor.js'][518] = 0; + _$jscoverage['ui/editor.js'][527] = 0; + _$jscoverage['ui/editor.js'][536] = 0; + _$jscoverage['ui/editor.js'][537] = 0; + _$jscoverage['ui/editor.js'][539] = 0; + _$jscoverage['ui/editor.js'][540] = 0; + _$jscoverage['ui/editor.js'][543] = 0; + _$jscoverage['ui/editor.js'][546] = 0; + _$jscoverage['ui/editor.js'][547] = 0; + _$jscoverage['ui/editor.js'][548] = 0; + _$jscoverage['ui/editor.js'][551] = 0; + _$jscoverage['ui/editor.js'][553] = 0; + _$jscoverage['ui/editor.js'][554] = 0; + _$jscoverage['ui/editor.js'][555] = 0; + _$jscoverage['ui/editor.js'][558] = 0; + _$jscoverage['ui/editor.js'][559] = 0; + _$jscoverage['ui/editor.js'][560] = 0; + _$jscoverage['ui/editor.js'][561] = 0; + _$jscoverage['ui/editor.js'][562] = 0; + _$jscoverage['ui/editor.js'][563] = 0; + _$jscoverage['ui/editor.js'][567] = 0; + _$jscoverage['ui/editor.js'][568] = 0; + _$jscoverage['ui/editor.js'][569] = 0; + _$jscoverage['ui/editor.js'][570] = 0; + _$jscoverage['ui/editor.js'][571] = 0; + _$jscoverage['ui/editor.js'][572] = 0; + _$jscoverage['ui/editor.js'][573] = 0; + _$jscoverage['ui/editor.js'][575] = 0; + _$jscoverage['ui/editor.js'][576] = 0; + _$jscoverage['ui/editor.js'][577] = 0; + _$jscoverage['ui/editor.js'][579] = 0; + _$jscoverage['ui/editor.js'][580] = 0; + _$jscoverage['ui/editor.js'][581] = 0; + _$jscoverage['ui/editor.js'][585] = 0; + _$jscoverage['ui/editor.js'][586] = 0; + _$jscoverage['ui/editor.js'][587] = 0; + _$jscoverage['ui/editor.js'][588] = 0; + _$jscoverage['ui/editor.js'][589] = 0; + _$jscoverage['ui/editor.js'][591] = 0; + _$jscoverage['ui/editor.js'][593] = 0; + _$jscoverage['ui/editor.js'][594] = 0; + _$jscoverage['ui/editor.js'][596] = 0; + _$jscoverage['ui/editor.js'][597] = 0; + _$jscoverage['ui/editor.js'][598] = 0; + _$jscoverage['ui/editor.js'][599] = 0; + _$jscoverage['ui/editor.js'][602] = 0; + _$jscoverage['ui/editor.js'][603] = 0; + _$jscoverage['ui/editor.js'][604] = 0; + _$jscoverage['ui/editor.js'][606] = 0; + _$jscoverage['ui/editor.js'][609] = 0; + _$jscoverage['ui/editor.js'][611] = 0; + _$jscoverage['ui/editor.js'][612] = 0; + _$jscoverage['ui/editor.js'][613] = 0; + _$jscoverage['ui/editor.js'][614] = 0; + _$jscoverage['ui/editor.js'][616] = 0; + _$jscoverage['ui/editor.js'][617] = 0; + _$jscoverage['ui/editor.js'][618] = 0; + _$jscoverage['ui/editor.js'][619] = 0; + _$jscoverage['ui/editor.js'][623] = 0; + _$jscoverage['ui/editor.js'][626] = 0; + _$jscoverage['ui/editor.js'][627] = 0; + _$jscoverage['ui/editor.js'][628] = 0; + _$jscoverage['ui/editor.js'][630] = 0; + _$jscoverage['ui/editor.js'][631] = 0; + _$jscoverage['ui/editor.js'][634] = 0; + _$jscoverage['ui/editor.js'][635] = 0; + _$jscoverage['ui/editor.js'][636] = 0; + _$jscoverage['ui/editor.js'][639] = 0; + _$jscoverage['ui/editor.js'][641] = 0; + _$jscoverage['ui/editor.js'][642] = 0; + _$jscoverage['ui/editor.js'][643] = 0; + _$jscoverage['ui/editor.js'][647] = 0; + _$jscoverage['ui/editor.js'][648] = 0; + _$jscoverage['ui/editor.js'][650] = 0; + _$jscoverage['ui/editor.js'][651] = 0; + _$jscoverage['ui/editor.js'][652] = 0; + _$jscoverage['ui/editor.js'][656] = 0; + _$jscoverage['ui/editor.js'][659] = 0; + _$jscoverage['ui/editor.js'][662] = 0; + _$jscoverage['ui/editor.js'][663] = 0; + _$jscoverage['ui/editor.js'][664] = 0; + _$jscoverage['ui/editor.js'][666] = 0; + _$jscoverage['ui/editor.js'][670] = 0; + _$jscoverage['ui/editor.js'][673] = 0; + _$jscoverage['ui/editor.js'][676] = 0; + _$jscoverage['ui/editor.js'][677] = 0; + _$jscoverage['ui/editor.js'][678] = 0; + _$jscoverage['ui/editor.js'][679] = 0; + _$jscoverage['ui/editor.js'][686] = 0; + _$jscoverage['ui/editor.js'][687] = 0; + _$jscoverage['ui/editor.js'][688] = 0; + _$jscoverage['ui/editor.js'][689] = 0; + _$jscoverage['ui/editor.js'][690] = 0; + _$jscoverage['ui/editor.js'][692] = 0; + _$jscoverage['ui/editor.js'][693] = 0; + _$jscoverage['ui/editor.js'][694] = 0; + _$jscoverage['ui/editor.js'][695] = 0; + _$jscoverage['ui/editor.js'][698] = 0; + _$jscoverage['ui/editor.js'][699] = 0; + _$jscoverage['ui/editor.js'][700] = 0; + _$jscoverage['ui/editor.js'][701] = 0; + _$jscoverage['ui/editor.js'][703] = 0; + _$jscoverage['ui/editor.js'][704] = 0; + _$jscoverage['ui/editor.js'][705] = 0; + _$jscoverage['ui/editor.js'][706] = 0; + _$jscoverage['ui/editor.js'][707] = 0; + _$jscoverage['ui/editor.js'][708] = 0; + _$jscoverage['ui/editor.js'][712] = 0; + _$jscoverage['ui/editor.js'][713] = 0; + _$jscoverage['ui/editor.js'][714] = 0; + _$jscoverage['ui/editor.js'][715] = 0; + _$jscoverage['ui/editor.js'][716] = 0; + _$jscoverage['ui/editor.js'][719] = 0; + _$jscoverage['ui/editor.js'][720] = 0; + _$jscoverage['ui/editor.js'][722] = 0; + _$jscoverage['ui/editor.js'][723] = 0; + _$jscoverage['ui/editor.js'][727] = 0; + _$jscoverage['ui/editor.js'][728] = 0; + _$jscoverage['ui/editor.js'][729] = 0; + _$jscoverage['ui/editor.js'][731] = 0; + _$jscoverage['ui/editor.js'][732] = 0; + _$jscoverage['ui/editor.js'][733] = 0; + _$jscoverage['ui/editor.js'][734] = 0; + _$jscoverage['ui/editor.js'][735] = 0; + _$jscoverage['ui/editor.js'][736] = 0; + _$jscoverage['ui/editor.js'][738] = 0; + _$jscoverage['ui/editor.js'][739] = 0; + _$jscoverage['ui/editor.js'][741] = 0; + _$jscoverage['ui/editor.js'][743] = 0; + _$jscoverage['ui/editor.js'][744] = 0; + _$jscoverage['ui/editor.js'][746] = 0; + _$jscoverage['ui/editor.js'][748] = 0; + _$jscoverage['ui/editor.js'][749] = 0; + _$jscoverage['ui/editor.js'][753] = 0; + _$jscoverage['ui/editor.js'][754] = 0; + _$jscoverage['ui/editor.js'][756] = 0; + _$jscoverage['ui/editor.js'][757] = 0; + _$jscoverage['ui/editor.js'][758] = 0; + _$jscoverage['ui/editor.js'][763] = 0; + _$jscoverage['ui/editor.js'][788] = 0; + _$jscoverage['ui/editor.js'][789] = 0; + _$jscoverage['ui/editor.js'][790] = 0; + _$jscoverage['ui/editor.js'][791] = 0; + _$jscoverage['ui/editor.js'][792] = 0; + _$jscoverage['ui/editor.js'][794] = 0; + _$jscoverage['ui/editor.js'][798] = 0; + _$jscoverage['ui/editor.js'][799] = 0; + _$jscoverage['ui/editor.js'][800] = 0; + _$jscoverage['ui/editor.js'][801] = 0; + _$jscoverage['ui/editor.js'][802] = 0; +} +_$jscoverage['ui/editor.js'].source = ["///import core","///commands 全屏","///commandsName FullScreen","///commandsTitle 全屏","(function () {"," var utils = baidu.editor.utils,"," uiUtils = baidu.editor.ui.uiUtils,"," UIBase = baidu.editor.ui.UIBase,"," domUtils = baidu.editor.dom.domUtils;"," var nodeStack = [];",""," function EditorUI(options) {"," this.initOptions(options);"," this.initEditorUI();"," }",""," EditorUI.prototype = {"," uiName:'editor',"," initEditorUI:function () {"," this.editor.ui = this;"," this._dialogs = {};"," this.initUIBase();"," this._initToolbars();"," var editor = this.editor,"," me = this;",""," editor.addListener('ready', function () {"," //提供getDialog方法"," editor.getDialog = function (name) {"," return editor.ui._dialogs[name + \"Dialog\"];"," };"," domUtils.on(editor.window, 'scroll', function (evt) {"," baidu.editor.ui.Popup.postHide(evt);"," });"," //提供编辑器实时宽高(全屏时宽高不变化)"," editor.ui._actualFrameWidth = editor.options.initialFrameWidth;",""," //display bottom-bar label based on config"," if (editor.options.elementPathEnabled) {"," editor.ui.getDom('elementpath').innerHTML = '<div class=\"edui-editor-breadcrumb\">' + editor.getLang(\"elementPathTip\") + ':</div>';"," }"," if (editor.options.wordCount) {"," function countFn() {"," setCount(editor,me);"," domUtils.un(editor.document, \"click\", arguments.callee);"," }"," domUtils.on(editor.document, \"click\", countFn);"," editor.ui.getDom('wordcount').innerHTML = editor.getLang(\"wordCountTip\");"," }"," editor.ui._scale();"," if (editor.options.scaleEnabled) {"," if (editor.autoHeightEnabled) {"," editor.disableAutoHeight();"," }"," me.enableScale();"," } else {"," me.disableScale();"," }"," if (!editor.options.elementPathEnabled && !editor.options.wordCount && !editor.options.scaleEnabled) {"," editor.ui.getDom('elementpath').style.display = \"none\";"," editor.ui.getDom('wordcount').style.display = \"none\";"," editor.ui.getDom('scale').style.display = \"none\";"," }",""," if (!editor.selection.isFocus())return;"," editor.fireEvent('selectionchange', false, true);","",""," });",""," editor.addListener('mousedown', function (t, evt) {"," var el = evt.target || evt.srcElement;"," baidu.editor.ui.Popup.postHide(evt, el);"," baidu.editor.ui.ShortCutMenu.postHide(evt);",""," });"," editor.addListener(\"delcells\", function () {"," if (UE.ui['edittip']) {"," new UE.ui['edittip'](editor);"," }"," editor.getDialog('edittip').open();"," });",""," var pastePop, isPaste = false, timer;"," editor.addListener(\"afterpaste\", function () {"," if(editor.queryCommandState('pasteplain'))"," return;"," if(baidu.editor.ui.PastePicker){"," pastePop = new baidu.editor.ui.Popup({"," content:new baidu.editor.ui.PastePicker({editor:editor}),"," editor:editor,"," className:'edui-wordpastepop'"," });"," pastePop.render();"," }"," isPaste = true;"," });",""," editor.addListener(\"afterinserthtml\", function () {"," clearTimeout(timer);"," timer = setTimeout(function () {"," if (pastePop && (isPaste || editor.ui._isTransfer)) {"," if(pastePop.isHidden()){"," var span = domUtils.createElement(editor.document, 'span', {"," 'style':\"line-height:0px;\","," 'innerHTML':'\\ufeff'"," }),"," range = editor.selection.getRange();"," range.insertNode(span);"," var tmp= getDomNode(span, 'firstChild', 'previousSibling');"," pastePop.showAnchor(tmp.nodeType == 3 ? tmp.parentNode : tmp);"," domUtils.remove(span);",""," }else{"," pastePop.show();"," }"," delete editor.ui._isTransfer;"," isPaste = false;"," }"," }, 200)"," });"," editor.addListener('contextmenu', function (t, evt) {"," baidu.editor.ui.Popup.postHide(evt);"," });"," editor.addListener('keydown', function (t, evt) {"," if (pastePop) pastePop.dispose(evt);"," var keyCode = evt.keyCode || evt.which;"," if(evt.altKey&&keyCode==90){"," UE.ui.buttons['fullscreen'].onclick();"," }"," });"," editor.addListener('wordcount', function (type) {"," setCount(this,me);"," });"," function setCount(editor,ui) {"," editor.setOpt({"," wordCount:true,"," maximumWords:10000,"," wordCountMsg:editor.options.wordCountMsg || editor.getLang(\"wordCountMsg\"),"," wordOverFlowMsg:editor.options.wordOverFlowMsg || editor.getLang(\"wordOverFlowMsg\")"," });"," var opt = editor.options,"," max = opt.maximumWords,"," msg = opt.wordCountMsg ,"," errMsg = opt.wordOverFlowMsg,"," countDom = ui.getDom('wordcount');"," if (!opt.wordCount) {"," return;"," }"," var count = editor.getContentLength(true);"," if (count > max) {"," countDom.innerHTML = errMsg;"," editor.fireEvent(\"wordcountoverflow\");"," } else {"," countDom.innerHTML = msg.replace(\"{#leave}\", max - count).replace(\"{#count}\", count);"," }"," }",""," editor.addListener('selectionchange', function () {"," if (editor.options.elementPathEnabled) {"," me[(editor.queryCommandState('elementpath') == -1 ? 'dis' : 'en') + 'ableElementPath']()"," }"," if (editor.options.scaleEnabled) {"," me[(editor.queryCommandState('scale') == -1 ? 'dis' : 'en') + 'ableScale']();",""," }"," });"," var popup = new baidu.editor.ui.Popup({"," editor:editor,"," content:'',"," className:'edui-bubble',"," _onEditButtonClick:function () {"," this.hide();"," editor.ui._dialogs.linkDialog.open();"," },"," _onImgEditButtonClick:function (name) {"," this.hide();"," editor.ui._dialogs[name] && editor.ui._dialogs[name].open();",""," },"," _onImgSetFloat:function (value) {"," this.hide();"," editor.execCommand(\"imagefloat\", value);",""," },"," _setIframeAlign:function (value) {"," var frame = popup.anchorEl;"," var newFrame = frame.cloneNode(true);"," switch (value) {"," case -2:"," newFrame.setAttribute(\"align\", \"\");"," break;"," case -1:"," newFrame.setAttribute(\"align\", \"left\");"," break;"," case 1:"," newFrame.setAttribute(\"align\", \"right\");"," break;"," }"," frame.parentNode.insertBefore(newFrame, frame);"," domUtils.remove(frame);"," popup.anchorEl = newFrame;"," popup.showAnchor(popup.anchorEl);"," },"," _updateIframe:function () {"," editor._iframe = popup.anchorEl;"," editor.ui._dialogs.insertframeDialog.open();"," popup.hide();"," },"," _onRemoveButtonClick:function (cmdName) {"," editor.execCommand(cmdName);"," this.hide();"," },"," queryAutoHide:function (el) {"," if (el && el.ownerDocument == editor.document) {"," if (el.tagName.toLowerCase() == 'img' || domUtils.findParentByTagName(el, 'a', true)) {"," return el !== popup.anchorEl;"," }"," }"," return baidu.editor.ui.Popup.prototype.queryAutoHide.call(this, el);"," }"," });"," popup.render();"," if (editor.options.imagePopup) {"," editor.addListener('mouseover', function (t, evt) {"," evt = evt || window.event;"," var el = evt.target || evt.srcElement;"," if (editor.ui._dialogs.insertframeDialog && /iframe/ig.test(el.tagName)) {"," var html = popup.formatHtml("," '<nobr>' + editor.getLang(\"property\") + ': <span onclick=$$._setIframeAlign(-2) class=\"edui-clickable\">' + editor.getLang(\"default\") + '</span>&nbsp;&nbsp;<span onclick=$$._setIframeAlign(-1) class=\"edui-clickable\">' + editor.getLang(\"justifyleft\") + '</span>&nbsp;&nbsp;<span onclick=$$._setIframeAlign(1) class=\"edui-clickable\">' + editor.getLang(\"justifyright\") + '</span>&nbsp;&nbsp;' +"," ' <span onclick=\"$$._updateIframe( this);\" class=\"edui-clickable\">' + editor.getLang(\"modify\") + '</span></nobr>');"," if (html) {"," popup.getDom('content').innerHTML = html;"," popup.anchorEl = el;"," popup.showAnchor(popup.anchorEl);"," } else {"," popup.hide();"," }"," }"," });"," editor.addListener('selectionchange', function (t, causeByUi) {"," if (!causeByUi) return;"," var html = '', str = \"\","," img = editor.selection.getRange().getClosedNode(),"," dialogs = editor.ui._dialogs;"," if (img && img.tagName == 'IMG') {"," var dialogName = 'insertimageDialog';"," if (img.className.indexOf(\"edui-faked-video\") != -1) {"," dialogName = \"insertvideoDialog\""," }"," if (img.className.indexOf(\"edui-faked-webapp\") != -1) {"," dialogName = \"webappDialog\""," }"," if (img.src.indexOf(\"http://api.map.baidu.com\") != -1) {"," dialogName = \"mapDialog\""," }"," if (img.className.indexOf(\"edui-faked-music\") != -1) {"," dialogName = \"musicDialog\""," }"," if (img.src.indexOf(\"http://maps.google.com/maps/api/staticmap\") != -1) {"," dialogName = \"gmapDialog\""," }"," if (img.getAttribute(\"anchorname\")) {"," dialogName = \"anchorDialog\";"," html = popup.formatHtml("," '<nobr>' + editor.getLang(\"property\") + ': <span onclick=$$._onImgEditButtonClick(\"anchorDialog\") class=\"edui-clickable\">' + editor.getLang(\"modify\") + '</span>&nbsp;&nbsp;' +"," '<span onclick=$$._onRemoveButtonClick(\\'anchor\\') class=\"edui-clickable\">' + editor.getLang(\"delete\") + '</span></nobr>');"," }"," if (img.getAttribute(\"word_img\")) {"," //todo 放到dialog去做查询"," editor.word_img = [img.getAttribute(\"word_img\")];"," dialogName = \"wordimageDialog\""," }"," if (!dialogs[dialogName]) {"," return;"," }"," str = '<nobr>' + editor.getLang(\"property\") + ': '+"," '<span onclick=$$._onImgSetFloat(\"none\") class=\"edui-clickable\">' + editor.getLang(\"default\") + '</span>&nbsp;&nbsp;' +"," '<span onclick=$$._onImgSetFloat(\"left\") class=\"edui-clickable\">' + editor.getLang(\"justifyleft\") + '</span>&nbsp;&nbsp;' +"," '<span onclick=$$._onImgSetFloat(\"right\") class=\"edui-clickable\">' + editor.getLang(\"justifyright\") + '</span>&nbsp;&nbsp;' +"," '<span onclick=$$._onImgSetFloat(\"center\") class=\"edui-clickable\">' + editor.getLang(\"justifycenter\") + '</span>&nbsp;&nbsp;'+"," '<span onclick=\"$$._onImgEditButtonClick(\\'' + dialogName + '\\');\" class=\"edui-clickable\">' + editor.getLang(\"modify\") + '</span></nobr>';",""," !html && (html = popup.formatHtml(str))",""," }"," if (editor.ui._dialogs.linkDialog) {"," var link = editor.queryCommandValue('link');"," var url;"," if (link && (url = (link.getAttribute('_href') || link.getAttribute('href', 2)))) {"," var txt = url;"," if (url.length > 30) {"," txt = url.substring(0, 20) + \"...\";"," }"," if (html) {"," html += '<div style=\"height:5px;\"></div>'"," }"," html += popup.formatHtml("," '<nobr>' + editor.getLang(\"anthorMsg\") + ': <a target=\"_blank\" href=\"' + url + '\" title=\"' + url + '\" >' + txt + '</a>' +"," ' <span class=\"edui-clickable\" onclick=\"$$._onEditButtonClick();\">' + editor.getLang(\"modify\") + '</span>' +"," ' <span class=\"edui-clickable\" onclick=\"$$._onRemoveButtonClick(\\'unlink\\');\"> ' + editor.getLang(\"clear\") + '</span></nobr>');"," popup.showAnchor(link);"," }"," }",""," if (html) {"," popup.getDom('content').innerHTML = html;"," popup.anchorEl = img || link;"," popup.showAnchor(popup.anchorEl);"," } else {"," popup.hide();"," }"," });"," }",""," },"," _initToolbars:function () {"," var editor = this.editor;"," var toolbars = this.toolbars || [];"," var toolbarUis = [];"," for (var i = 0; i < toolbars.length; i++) {"," var toolbar = toolbars[i];"," var toolbarUi = new baidu.editor.ui.Toolbar({theme:editor.options.theme});"," for (var j = 0; j < toolbar.length; j++) {"," var toolbarItem = toolbar[j];"," var toolbarItemUi = null;"," if (typeof toolbarItem == 'string') {"," toolbarItem = toolbarItem.toLowerCase();"," if (toolbarItem == '|') {"," toolbarItem = 'Separator';"," }"," if(toolbarItem == '||'){"," toolbarItem = 'Breakline';"," }"," if (baidu.editor.ui[toolbarItem]) {"," toolbarItemUi = new baidu.editor.ui[toolbarItem](editor);"," }",""," //fullscreen这里单独处理一下,放到首行去"," if (toolbarItem == 'fullscreen') {"," if (toolbarUis && toolbarUis[0]) {"," toolbarUis[0].items.splice(0, 0, toolbarItemUi);"," } else {"," toolbarItemUi && toolbarUi.items.splice(0, 0, toolbarItemUi);"," }",""," continue;","",""," }"," } else {"," toolbarItemUi = toolbarItem;"," }"," if (toolbarItemUi && toolbarItemUi.id) {",""," toolbarUi.add(toolbarItemUi);"," }"," }"," toolbarUis[i] = toolbarUi;"," }"," this.toolbars = toolbarUis;"," },"," getHtmlTpl:function () {"," return '<div id=\"##\" class=\"%%\">' +"," '<div id=\"##_toolbarbox\" class=\"%%-toolbarbox\">' +"," (this.toolbars.length ?"," '<div id=\"##_toolbarboxouter\" class=\"%%-toolbarboxouter\"><div class=\"%%-toolbarboxinner\">' +"," this.renderToolbarBoxHtml() +"," '</div></div>' : '') +"," '<div id=\"##_toolbarmsg\" class=\"%%-toolbarmsg\" style=\"display:none;\">' +"," '<div id = \"##_upload_dialog\" class=\"%%-toolbarmsg-upload\" onclick=\"$$.showWordImageDialog();\">' + this.editor.getLang(\"clickToUpload\") + '</div>' +"," '<div class=\"%%-toolbarmsg-close\" onclick=\"$$.hideToolbarMsg();\">x</div>' +"," '<div id=\"##_toolbarmsg_label\" class=\"%%-toolbarmsg-label\"></div>' +"," '<div style=\"height:0;overflow:hidden;clear:both;\"></div>' +"," '</div>' +"," '</div>' +"," '<div id=\"##_iframeholder\" class=\"%%-iframeholder\"></div>' +"," //modify wdcount by matao"," '<div id=\"##_bottombar\" class=\"%%-bottomContainer\"><table><tr>' +"," '<td id=\"##_elementpath\" class=\"%%-bottombar\"></td>' +"," '<td id=\"##_wordcount\" class=\"%%-wordcount\"></td>' +"," '<td id=\"##_scale\" class=\"%%-scale\"><div class=\"%%-icon\"></div></td>' +"," '</tr></table></div>' +"," '<div id=\"##_scalelayer\"></div>' +"," '</div>';"," },"," showWordImageDialog:function () {"," this.editor.execCommand(\"wordimage\", \"word_img\");"," this._dialogs['wordimageDialog'].open();"," },"," renderToolbarBoxHtml:function () {"," var buff = [];"," for (var i = 0; i < this.toolbars.length; i++) {"," buff.push(this.toolbars[i].renderHtml());"," }"," return buff.join('');"," },"," setFullScreen:function (fullscreen) {",""," var editor = this.editor,"," container = editor.container.parentNode.parentNode;"," if (this._fullscreen != fullscreen) {"," this._fullscreen = fullscreen;"," this.editor.fireEvent('beforefullscreenchange', fullscreen);"," if (baidu.editor.browser.gecko) {"," var bk = editor.selection.getRange().createBookmark();"," }"," if (fullscreen) {"," while (container.tagName != \"BODY\") {"," var position = baidu.editor.dom.domUtils.getComputedStyle(container, \"position\");"," nodeStack.push(position);"," container.style.position = \"static\";"," container = container.parentNode;"," }"," this._bakHtmlOverflow = document.documentElement.style.overflow;"," this._bakBodyOverflow = document.body.style.overflow;"," this._bakAutoHeight = this.editor.autoHeightEnabled;"," this._bakScrollTop = Math.max(document.documentElement.scrollTop, document.body.scrollTop);",""," this._bakEditorContaninerWidth = editor.iframe.parentNode.offsetWidth;"," if (this._bakAutoHeight) {"," //当全屏时不能执行自动长高"," editor.autoHeightEnabled = false;"," this.editor.disableAutoHeight();"," }",""," document.documentElement.style.overflow = 'hidden';"," document.body.style.overflow = 'hidden';"," this._bakCssText = this.getDom().style.cssText;"," this._bakCssText1 = this.getDom('iframeholder').style.cssText;"," editor.iframe.parentNode.style.width = '';"," this._updateFullScreen();"," } else {"," while (container.tagName != \"BODY\") {"," container.style.position = nodeStack.shift();"," container = container.parentNode;"," }"," this.getDom().style.cssText = this._bakCssText;"," this.getDom('iframeholder').style.cssText = this._bakCssText1;"," if (this._bakAutoHeight) {"," editor.autoHeightEnabled = true;"," this.editor.enableAutoHeight();"," }",""," document.documentElement.style.overflow = this._bakHtmlOverflow;"," document.body.style.overflow = this._bakBodyOverflow;"," editor.iframe.parentNode.style.width = this._bakEditorContaninerWidth + 'px';"," window.scrollTo(0, this._bakScrollTop);"," }"," if (browser.gecko && editor.body.contentEditable === 'true') {"," var input = document.createElement('input');"," document.body.appendChild(input);"," editor.body.contentEditable = false;"," setTimeout(function () {"," input.focus();"," setTimeout(function () {"," editor.body.contentEditable = true;"," editor.fireEvent('fullscreenchanged', fullscreen);"," editor.selection.getRange().moveToBookmark(bk).select(true);"," baidu.editor.dom.domUtils.remove(input);"," fullscreen && window.scroll(0, 0);"," }, 0)"," }, 0)"," }",""," if(editor.body.contentEditable === 'true'){"," this.editor.fireEvent('fullscreenchanged', fullscreen);"," this.triggerLayout();"," }",""," }"," },"," _updateFullScreen:function () {"," if (this._fullscreen) {"," var vpRect = uiUtils.getViewportRect();"," this.getDom().style.cssText = 'border:0;position:absolute;left:0;top:' + (this.editor.options.topOffset || 0) + 'px;width:' + vpRect.width + 'px;height:' + vpRect.height + 'px;z-index:' + (this.getDom().style.zIndex * 1 + 100);"," uiUtils.setViewportOffset(this.getDom(), { left:0, top:this.editor.options.topOffset || 0 });"," this.editor.setHeight(vpRect.height - this.getDom('toolbarbox').offsetHeight - this.getDom('bottombar').offsetHeight - (this.editor.options.topOffset || 0));"," //不手动调一下,会导致全屏失效"," if(browser.gecko){"," try{"," window.onresize();"," }catch(e){",""," }",""," }"," }"," },"," _updateElementPath:function () {"," var bottom = this.getDom('elementpath'), list;"," if (this.elementPathEnabled && (list = this.editor.queryCommandValue('elementpath'))) {",""," var buff = [];"," for (var i = 0, ci; ci = list[i]; i++) {"," buff[i] = this.formatHtml('<span unselectable=\"on\" onclick=\"$$.editor.execCommand(&quot;elementpath&quot;, &quot;' + i + '&quot;);\">' + ci + '</span>');"," }"," bottom.innerHTML = '<div class=\"edui-editor-breadcrumb\" onmousedown=\"return false;\">' + this.editor.getLang(\"elementPathTip\") + ': ' + buff.join(' &gt; ') + '</div>';",""," } else {"," bottom.style.display = 'none'"," }"," },"," disableElementPath:function () {"," var bottom = this.getDom('elementpath');"," bottom.innerHTML = '';"," bottom.style.display = 'none';"," this.elementPathEnabled = false;",""," },"," enableElementPath:function () {"," var bottom = this.getDom('elementpath');"," bottom.style.display = '';"," this.elementPathEnabled = true;"," this._updateElementPath();"," },"," _scale:function () {"," var doc = document,"," editor = this.editor,"," editorHolder = editor.container,"," editorDocument = editor.document,"," toolbarBox = this.getDom(\"toolbarbox\"),"," bottombar = this.getDom(\"bottombar\"),"," scale = this.getDom(\"scale\"),"," scalelayer = this.getDom(\"scalelayer\");",""," var isMouseMove = false,"," position = null,"," minEditorHeight = 0,"," minEditorWidth = editor.options.minFrameWidth,"," pageX = 0,"," pageY = 0,"," scaleWidth = 0,"," scaleHeight = 0;",""," function down() {"," position = domUtils.getXY(editorHolder);",""," if (!minEditorHeight) {"," minEditorHeight = editor.options.minFrameHeight + toolbarBox.offsetHeight + bottombar.offsetHeight;"," }",""," scalelayer.style.cssText = \"position:absolute;left:0;display:;top:0;background-color:#41ABFF;opacity:0.4;filter: Alpha(opacity=40);width:\" + editorHolder.offsetWidth + \"px;height:\""," + editorHolder.offsetHeight + \"px;z-index:\" + (editor.options.zIndex + 1);",""," domUtils.on(doc, \"mousemove\", move);"," domUtils.on(editorDocument, \"mouseup\", up);"," domUtils.on(doc, \"mouseup\", up);"," }",""," var me = this;"," //by xuheng 全屏时关掉缩放"," this.editor.addListener('fullscreenchanged', function (e, fullScreen) {"," if (fullScreen) {"," me.disableScale();",""," } else {"," if (me.editor.options.scaleEnabled) {"," me.enableScale();"," var tmpNode = me.editor.document.createElement('span');"," me.editor.body.appendChild(tmpNode);"," me.editor.body.style.height = Math.max(domUtils.getXY(tmpNode).y, me.editor.iframe.offsetHeight - 20) + 'px';"," domUtils.remove(tmpNode)"," }"," }"," });"," function move(event) {"," clearSelection();"," var e = event || window.event;"," pageX = e.pageX || (doc.documentElement.scrollLeft + e.clientX);"," pageY = e.pageY || (doc.documentElement.scrollTop + e.clientY);"," scaleWidth = pageX - position.x;"," scaleHeight = pageY - position.y;",""," if (scaleWidth >= minEditorWidth) {"," isMouseMove = true;"," scalelayer.style.width = scaleWidth + 'px';"," }"," if (scaleHeight >= minEditorHeight) {"," isMouseMove = true;"," scalelayer.style.height = scaleHeight + \"px\";"," }"," }",""," function up() {"," if (isMouseMove) {"," isMouseMove = false;"," editor.ui._actualFrameWidth = scalelayer.offsetWidth - 2;"," editorHolder.style.width = editor.ui._actualFrameWidth + 'px';",""," editor.setHeight(scalelayer.offsetHeight - bottombar.offsetHeight - toolbarBox.offsetHeight - 2);"," }"," if (scalelayer) {"," scalelayer.style.display = \"none\";"," }"," clearSelection();"," domUtils.un(doc, \"mousemove\", move);"," domUtils.un(editorDocument, \"mouseup\", up);"," domUtils.un(doc, \"mouseup\", up);"," }",""," function clearSelection() {"," if (browser.ie)"," doc.selection.clear();"," else"," window.getSelection().removeAllRanges();"," }",""," this.enableScale = function () {"," //trace:2868"," if (editor.queryCommandState(\"source\") == 1) return;"," scale.style.display = \"\";"," this.scaleEnabled = true;"," domUtils.on(scale, \"mousedown\", down);"," };"," this.disableScale = function () {"," scale.style.display = \"none\";"," this.scaleEnabled = false;"," domUtils.un(scale, \"mousedown\", down);"," };"," },"," isFullScreen:function () {"," return this._fullscreen;"," },"," postRender:function () {"," UIBase.prototype.postRender.call(this);"," for (var i = 0; i < this.toolbars.length; i++) {"," this.toolbars[i].postRender();"," }"," var me = this;"," var timerId,"," domUtils = baidu.editor.dom.domUtils,"," updateFullScreenTime = function () {"," clearTimeout(timerId);"," timerId = setTimeout(function () {"," me._updateFullScreen();"," });"," };"," domUtils.on(window, 'resize', updateFullScreenTime);",""," me.addListener('destroy', function () {"," domUtils.un(window, 'resize', updateFullScreenTime);"," clearTimeout(timerId);"," })"," },"," showToolbarMsg:function (msg, flag) {"," this.getDom('toolbarmsg_label').innerHTML = msg;"," this.getDom('toolbarmsg').style.display = '';"," //"," if (!flag) {"," var w = this.getDom('upload_dialog');"," w.style.display = 'none';"," }"," },"," hideToolbarMsg:function () {"," this.getDom('toolbarmsg').style.display = 'none';"," },"," mapUrl:function (url) {"," return url ? url.replace('~/', this.editor.options.UEDITOR_HOME_URL || '') : ''"," },"," triggerLayout:function () {"," var dom = this.getDom();"," if (dom.style.zoom == '1') {"," dom.style.zoom = '100%';"," } else {"," dom.style.zoom = '1';"," }"," }"," };"," utils.inherits(EditorUI, baidu.editor.ui.UIBase);","",""," var instances = {};","",""," UE.ui.Editor = function (options) {"," var editor = new UE.Editor(options);"," editor.options.editor = editor;"," utils.loadFile(document, {"," href:editor.options.themePath + editor.options.theme + \"/_css/ueditor.css\","," tag:\"link\","," type:\"text/css\","," rel:\"stylesheet\""," });",""," var oldRender = editor.render;"," editor.render = function (holder) {"," if (holder.constructor === String) {"," editor.key = holder;"," instances[holder] = editor;"," }"," utils.domReady(function () {"," editor.langIsReady ? renderUI() : editor.addListener(\"langReady\", renderUI);"," function renderUI() {"," editor.setOpt({"," labelMap:editor.options.labelMap || editor.getLang('labelMap')"," });"," new EditorUI(editor.options);"," if (holder) {"," if (holder.constructor === String) {"," holder = document.getElementById(holder);"," }"," holder && holder.getAttribute('name') && ( editor.options.textarea = holder.getAttribute('name'));"," if (holder && /script|textarea/ig.test(holder.tagName)) {"," var newDiv = document.createElement('div');"," holder.parentNode.insertBefore(newDiv, holder);"," var cont = holder.value || holder.innerHTML;"," editor.options.initialContent = /^[\\t\\r\\n ]*$/.test(cont) ? editor.options.initialContent :"," cont.replace(/>[\\n\\r\\t]+([ ]{4})+/g, '>')"," .replace(/[\\n\\r\\t]+([ ]{4})+</g, '<')"," .replace(/>[\\n\\r\\t]+</g, '><');"," holder.className && (newDiv.className = holder.className);"," holder.style.cssText && (newDiv.style.cssText = holder.style.cssText);"," if (/textarea/i.test(holder.tagName)) {"," editor.textarea = holder;"," editor.textarea.style.display = 'none';",""," } else {"," holder.parentNode.removeChild(holder);"," holder.id && (newDiv.id = holder.id);"," }"," holder = newDiv;"," holder.innerHTML = '';"," }",""," }"," domUtils.addClass(holder, \"edui-\" + editor.options.theme);"," editor.ui.render(holder);"," var opt = editor.options;"," //给实例添加一个编辑器的容器引用"," editor.container = editor.ui.getDom();"," var parents = domUtils.findParents(holder,true);"," var displays = [];"," for(var i = 0 ,ci;ci=parents[i];i++){"," displays[i] = ci.style.display;"," ci.style.display = 'block'"," }"," if (opt.initialFrameWidth) {"," opt.minFrameWidth = opt.initialFrameWidth;"," } else {"," opt.minFrameWidth = opt.initialFrameWidth = holder.offsetWidth;"," }"," if (opt.initialFrameHeight) {"," opt.minFrameHeight = opt.initialFrameHeight;"," } else {"," opt.initialFrameHeight = opt.minFrameHeight = holder.offsetHeight;"," }"," for(var i = 0 ,ci;ci=parents[i];i++){"," ci.style.display = displays[i]"," }"," //编辑器最外容器设置了高度,会导致,编辑器不占位"," //todo 先去掉,没有找到原因"," if(holder.style.height){"," holder.style.height = ''"," }"," editor.container.style.width = opt.initialFrameWidth + (/%$/.test(opt.initialFrameWidth) ? '' : 'px');"," editor.container.style.zIndex = opt.zIndex;"," oldRender.call(editor, editor.ui.getDom('iframeholder'));",""," }"," })"," };"," return editor;"," };","",""," /**"," * @file"," * @name UE"," * @short UE"," * @desc UEditor的顶部命名空间"," */"," /**"," * @name getEditor"," * @since 1.2.4+"," * @grammar UE.getEditor(id,[opt]) => Editor实例"," * @desc 提供一个全局的方法得到编辑器实例"," *"," * * ''id'' 放置编辑器的容器id, 如果容器下的编辑器已经存在,就直接返回"," * * ''opt'' 编辑器的可选参数"," * @example"," * UE.getEditor('containerId',{onready:function(){//创建一个编辑器实例"," * this.setContent('hello')"," * }});"," * UE.getEditor('containerId'); //返回刚创建的实例"," *"," */"," UE.getEditor = function (id, opt) {"," var editor = instances[id];"," if (!editor) {"," editor = instances[id] = new UE.ui.Editor(opt);"," editor.render(id);"," }"," return editor;"," };","",""," UE.delEditor = function (id) {"," var editor;"," if (editor = instances[id]) {"," editor.key && editor.destroy();"," delete instances[id]"," }"," }","})();"]; +_$jscoverage['ui/editor.js'][5]++; +(function () { + _$jscoverage['ui/editor.js'][6]++; + var utils = baidu.editor.utils, uiUtils = baidu.editor.ui.uiUtils, UIBase = baidu.editor.ui.UIBase, domUtils = baidu.editor.dom.domUtils; + _$jscoverage['ui/editor.js'][10]++; + var nodeStack = []; + _$jscoverage['ui/editor.js'][12]++; + function EditorUI(options) { + _$jscoverage['ui/editor.js'][13]++; + this.initOptions(options); + _$jscoverage['ui/editor.js'][14]++; + this.initEditorUI(); +} + _$jscoverage['ui/editor.js'][17]++; + EditorUI.prototype = {uiName: "editor", initEditorUI: (function () { + _$jscoverage['ui/editor.js'][20]++; + this.editor.ui = this; + _$jscoverage['ui/editor.js'][21]++; + this._dialogs = {}; + _$jscoverage['ui/editor.js'][22]++; + this.initUIBase(); + _$jscoverage['ui/editor.js'][23]++; + this._initToolbars(); + _$jscoverage['ui/editor.js'][24]++; + var editor = this.editor, me = this; + _$jscoverage['ui/editor.js'][27]++; + editor.addListener("ready", (function () { + _$jscoverage['ui/editor.js'][29]++; + editor.getDialog = (function (name) { + _$jscoverage['ui/editor.js'][30]++; + return editor.ui._dialogs[(name + "Dialog")]; +}); + _$jscoverage['ui/editor.js'][32]++; + domUtils.on(editor.window, "scroll", (function (evt) { + _$jscoverage['ui/editor.js'][33]++; + baidu.editor.ui.Popup.postHide(evt); +})); + _$jscoverage['ui/editor.js'][36]++; + editor.ui._actualFrameWidth = editor.options.initialFrameWidth; + _$jscoverage['ui/editor.js'][39]++; + if (editor.options.elementPathEnabled) { + _$jscoverage['ui/editor.js'][40]++; + editor.ui.getDom("elementpath").innerHTML = ("
" + editor.getLang("elementPathTip") + ":
"); + } + _$jscoverage['ui/editor.js'][42]++; + if (editor.options.wordCount) { + _$jscoverage['ui/editor.js'][43]++; + function countFn() { + _$jscoverage['ui/editor.js'][44]++; + setCount(editor, me); + _$jscoverage['ui/editor.js'][45]++; + domUtils.un(editor.document, "click", arguments.callee); +} + _$jscoverage['ui/editor.js'][47]++; + domUtils.on(editor.document, "click", countFn); + _$jscoverage['ui/editor.js'][48]++; + editor.ui.getDom("wordcount").innerHTML = editor.getLang("wordCountTip"); + } + _$jscoverage['ui/editor.js'][50]++; + editor.ui._scale(); + _$jscoverage['ui/editor.js'][51]++; + if (editor.options.scaleEnabled) { + _$jscoverage['ui/editor.js'][52]++; + if (editor.autoHeightEnabled) { + _$jscoverage['ui/editor.js'][53]++; + editor.disableAutoHeight(); + } + _$jscoverage['ui/editor.js'][55]++; + me.enableScale(); + } + else { + _$jscoverage['ui/editor.js'][57]++; + me.disableScale(); + } + _$jscoverage['ui/editor.js'][59]++; + if (((! editor.options.elementPathEnabled) && (! editor.options.wordCount) && (! editor.options.scaleEnabled))) { + _$jscoverage['ui/editor.js'][60]++; + editor.ui.getDom("elementpath").style.display = "none"; + _$jscoverage['ui/editor.js'][61]++; + editor.ui.getDom("wordcount").style.display = "none"; + _$jscoverage['ui/editor.js'][62]++; + editor.ui.getDom("scale").style.display = "none"; + } + _$jscoverage['ui/editor.js'][65]++; + if ((! editor.selection.isFocus())) { + _$jscoverage['ui/editor.js'][65]++; + return; + } + _$jscoverage['ui/editor.js'][66]++; + editor.fireEvent("selectionchange", false, true); +})); + _$jscoverage['ui/editor.js'][71]++; + editor.addListener("mousedown", (function (t, evt) { + _$jscoverage['ui/editor.js'][72]++; + var el = (evt.target || evt.srcElement); + _$jscoverage['ui/editor.js'][73]++; + baidu.editor.ui.Popup.postHide(evt, el); + _$jscoverage['ui/editor.js'][74]++; + baidu.editor.ui.ShortCutMenu.postHide(evt); +})); + _$jscoverage['ui/editor.js'][77]++; + editor.addListener("delcells", (function () { + _$jscoverage['ui/editor.js'][78]++; + if (UE.ui.edittip) { + _$jscoverage['ui/editor.js'][79]++; + new (UE.ui.edittip)(editor); + } + _$jscoverage['ui/editor.js'][81]++; + editor.getDialog("edittip").open(); +})); + _$jscoverage['ui/editor.js'][84]++; + var pastePop, isPaste = false, timer; + _$jscoverage['ui/editor.js'][85]++; + editor.addListener("afterpaste", (function () { + _$jscoverage['ui/editor.js'][86]++; + if (editor.queryCommandState("pasteplain")) { + _$jscoverage['ui/editor.js'][87]++; + return; + } + _$jscoverage['ui/editor.js'][88]++; + if (baidu.editor.ui.PastePicker) { + _$jscoverage['ui/editor.js'][89]++; + pastePop = new (baidu.editor.ui.Popup)({content: new (baidu.editor.ui.PastePicker)({editor: editor}), editor: editor, className: "edui-wordpastepop"}); + _$jscoverage['ui/editor.js'][94]++; + pastePop.render(); + } + _$jscoverage['ui/editor.js'][96]++; + isPaste = true; +})); + _$jscoverage['ui/editor.js'][99]++; + editor.addListener("afterinserthtml", (function () { + _$jscoverage['ui/editor.js'][100]++; + clearTimeout(timer); + _$jscoverage['ui/editor.js'][101]++; + timer = setTimeout((function () { + _$jscoverage['ui/editor.js'][102]++; + if ((pastePop && (isPaste || editor.ui._isTransfer))) { + _$jscoverage['ui/editor.js'][103]++; + if (pastePop.isHidden()) { + _$jscoverage['ui/editor.js'][104]++; + var span = domUtils.createElement(editor.document, "span", {"style": "line-height:0px;", "innerHTML": "\ufeff"}), range = editor.selection.getRange(); + _$jscoverage['ui/editor.js'][109]++; + range.insertNode(span); + _$jscoverage['ui/editor.js'][110]++; + var tmp = getDomNode(span, "firstChild", "previousSibling"); + _$jscoverage['ui/editor.js'][111]++; + pastePop.showAnchor(((tmp.nodeType == 3)? tmp.parentNode: tmp)); + _$jscoverage['ui/editor.js'][112]++; + domUtils.remove(span); + } + else { + _$jscoverage['ui/editor.js'][115]++; + pastePop.show(); + } + _$jscoverage['ui/editor.js'][117]++; + (delete editor.ui._isTransfer); + _$jscoverage['ui/editor.js'][118]++; + isPaste = false; + } +}), 200); +})); + _$jscoverage['ui/editor.js'][122]++; + editor.addListener("contextmenu", (function (t, evt) { + _$jscoverage['ui/editor.js'][123]++; + baidu.editor.ui.Popup.postHide(evt); +})); + _$jscoverage['ui/editor.js'][125]++; + editor.addListener("keydown", (function (t, evt) { + _$jscoverage['ui/editor.js'][126]++; + if (pastePop) { + _$jscoverage['ui/editor.js'][126]++; + pastePop.dispose(evt); + } + _$jscoverage['ui/editor.js'][127]++; + var keyCode = (evt.keyCode || evt.which); + _$jscoverage['ui/editor.js'][128]++; + if ((evt.altKey && (keyCode == 90))) { + _$jscoverage['ui/editor.js'][129]++; + UE.ui.buttons.fullscreen.onclick(); + } +})); + _$jscoverage['ui/editor.js'][132]++; + editor.addListener("wordcount", (function (type) { + _$jscoverage['ui/editor.js'][133]++; + setCount(this, me); +})); + _$jscoverage['ui/editor.js'][135]++; + function setCount(editor, ui) { + _$jscoverage['ui/editor.js'][136]++; + editor.setOpt({wordCount: true, maximumWords: 10000, wordCountMsg: (editor.options.wordCountMsg || editor.getLang("wordCountMsg")), wordOverFlowMsg: (editor.options.wordOverFlowMsg || editor.getLang("wordOverFlowMsg"))}); + _$jscoverage['ui/editor.js'][142]++; + var opt = editor.options, max = opt.maximumWords, msg = opt.wordCountMsg, errMsg = opt.wordOverFlowMsg, countDom = ui.getDom("wordcount"); + _$jscoverage['ui/editor.js'][147]++; + if ((! opt.wordCount)) { + _$jscoverage['ui/editor.js'][148]++; + return; + } + _$jscoverage['ui/editor.js'][150]++; + var count = editor.getContentLength(true); + _$jscoverage['ui/editor.js'][151]++; + if ((count > max)) { + _$jscoverage['ui/editor.js'][152]++; + countDom.innerHTML = errMsg; + _$jscoverage['ui/editor.js'][153]++; + editor.fireEvent("wordcountoverflow"); + } + else { + _$jscoverage['ui/editor.js'][155]++; + countDom.innerHTML = msg.replace("{#leave}", (max - count)).replace("{#count}", count); + } +} + _$jscoverage['ui/editor.js'][159]++; + editor.addListener("selectionchange", (function () { + _$jscoverage['ui/editor.js'][160]++; + if (editor.options.elementPathEnabled) { + _$jscoverage['ui/editor.js'][161]++; + (me[(((editor.queryCommandState("elementpath") == -1)? "dis": "en") + "ableElementPath")])(); + } + _$jscoverage['ui/editor.js'][163]++; + if (editor.options.scaleEnabled) { + _$jscoverage['ui/editor.js'][164]++; + (me[(((editor.queryCommandState("scale") == -1)? "dis": "en") + "ableScale")])(); + } +})); + _$jscoverage['ui/editor.js'][168]++; + var popup = new (baidu.editor.ui.Popup)({editor: editor, content: "", className: "edui-bubble", _onEditButtonClick: (function () { + _$jscoverage['ui/editor.js'][173]++; + this.hide(); + _$jscoverage['ui/editor.js'][174]++; + editor.ui._dialogs.linkDialog.open(); +}), _onImgEditButtonClick: (function (name) { + _$jscoverage['ui/editor.js'][177]++; + this.hide(); + _$jscoverage['ui/editor.js'][178]++; + (editor.ui._dialogs[name] && editor.ui._dialogs[name].open()); +}), _onImgSetFloat: (function (value) { + _$jscoverage['ui/editor.js'][182]++; + this.hide(); + _$jscoverage['ui/editor.js'][183]++; + editor.execCommand("imagefloat", value); +}), _setIframeAlign: (function (value) { + _$jscoverage['ui/editor.js'][187]++; + var frame = popup.anchorEl; + _$jscoverage['ui/editor.js'][188]++; + var newFrame = frame.cloneNode(true); + _$jscoverage['ui/editor.js'][189]++; + switch (value) { + case -2: + _$jscoverage['ui/editor.js'][191]++; + newFrame.setAttribute("align", ""); + _$jscoverage['ui/editor.js'][192]++; + break; + case -1: + _$jscoverage['ui/editor.js'][194]++; + newFrame.setAttribute("align", "left"); + _$jscoverage['ui/editor.js'][195]++; + break; + case 1: + _$jscoverage['ui/editor.js'][197]++; + newFrame.setAttribute("align", "right"); + _$jscoverage['ui/editor.js'][198]++; + break; + } + _$jscoverage['ui/editor.js'][200]++; + frame.parentNode.insertBefore(newFrame, frame); + _$jscoverage['ui/editor.js'][201]++; + domUtils.remove(frame); + _$jscoverage['ui/editor.js'][202]++; + popup.anchorEl = newFrame; + _$jscoverage['ui/editor.js'][203]++; + popup.showAnchor(popup.anchorEl); +}), _updateIframe: (function () { + _$jscoverage['ui/editor.js'][206]++; + editor._iframe = popup.anchorEl; + _$jscoverage['ui/editor.js'][207]++; + editor.ui._dialogs.insertframeDialog.open(); + _$jscoverage['ui/editor.js'][208]++; + popup.hide(); +}), _onRemoveButtonClick: (function (cmdName) { + _$jscoverage['ui/editor.js'][211]++; + editor.execCommand(cmdName); + _$jscoverage['ui/editor.js'][212]++; + this.hide(); +}), queryAutoHide: (function (el) { + _$jscoverage['ui/editor.js'][215]++; + if ((el && (el.ownerDocument == editor.document))) { + _$jscoverage['ui/editor.js'][216]++; + if (((el.tagName.toLowerCase() == "img") || domUtils.findParentByTagName(el, "a", true))) { + _$jscoverage['ui/editor.js'][217]++; + return (el !== popup.anchorEl); + } + } + _$jscoverage['ui/editor.js'][220]++; + return baidu.editor.ui.Popup.prototype.queryAutoHide.call(this, el); +})}); + _$jscoverage['ui/editor.js'][223]++; + popup.render(); + _$jscoverage['ui/editor.js'][224]++; + if (editor.options.imagePopup) { + _$jscoverage['ui/editor.js'][225]++; + editor.addListener("mouseover", (function (t, evt) { + _$jscoverage['ui/editor.js'][226]++; + evt = (evt || window.event); + _$jscoverage['ui/editor.js'][227]++; + var el = (evt.target || evt.srcElement); + _$jscoverage['ui/editor.js'][228]++; + if ((editor.ui._dialogs.insertframeDialog && /iframe/gi.test(el.tagName))) { + _$jscoverage['ui/editor.js'][229]++; + var html = popup.formatHtml(("" + editor.getLang("property") + ": " + editor.getLang("default") + "  " + editor.getLang("justifyleft") + "  " + editor.getLang("justifyright") + "  " + " " + editor.getLang("modify") + "")); + _$jscoverage['ui/editor.js'][232]++; + if (html) { + _$jscoverage['ui/editor.js'][233]++; + popup.getDom("content").innerHTML = html; + _$jscoverage['ui/editor.js'][234]++; + popup.anchorEl = el; + _$jscoverage['ui/editor.js'][235]++; + popup.showAnchor(popup.anchorEl); + } + else { + _$jscoverage['ui/editor.js'][237]++; + popup.hide(); + } + } +})); + _$jscoverage['ui/editor.js'][241]++; + editor.addListener("selectionchange", (function (t, causeByUi) { + _$jscoverage['ui/editor.js'][242]++; + if ((! causeByUi)) { + _$jscoverage['ui/editor.js'][242]++; + return; + } + _$jscoverage['ui/editor.js'][243]++; + var html = "", str = "", img = editor.selection.getRange().getClosedNode(), dialogs = editor.ui._dialogs; + _$jscoverage['ui/editor.js'][246]++; + if ((img && (img.tagName == "IMG"))) { + _$jscoverage['ui/editor.js'][247]++; + var dialogName = "insertimageDialog"; + _$jscoverage['ui/editor.js'][248]++; + if ((img.className.indexOf("edui-faked-video") != -1)) { + _$jscoverage['ui/editor.js'][249]++; + dialogName = "insertvideoDialog"; + } + _$jscoverage['ui/editor.js'][251]++; + if ((img.className.indexOf("edui-faked-webapp") != -1)) { + _$jscoverage['ui/editor.js'][252]++; + dialogName = "webappDialog"; + } + _$jscoverage['ui/editor.js'][254]++; + if ((img.src.indexOf("http://api.map.baidu.com") != -1)) { + _$jscoverage['ui/editor.js'][255]++; + dialogName = "mapDialog"; + } + _$jscoverage['ui/editor.js'][257]++; + if ((img.className.indexOf("edui-faked-music") != -1)) { + _$jscoverage['ui/editor.js'][258]++; + dialogName = "musicDialog"; + } + _$jscoverage['ui/editor.js'][260]++; + if ((img.src.indexOf("http://maps.google.com/maps/api/staticmap") != -1)) { + _$jscoverage['ui/editor.js'][261]++; + dialogName = "gmapDialog"; + } + _$jscoverage['ui/editor.js'][263]++; + if (img.getAttribute("anchorname")) { + _$jscoverage['ui/editor.js'][264]++; + dialogName = "anchorDialog"; + _$jscoverage['ui/editor.js'][265]++; + html = popup.formatHtml(("" + editor.getLang("property") + ": " + editor.getLang("modify") + "  " + "" + editor.getLang("delete") + "")); + } + _$jscoverage['ui/editor.js'][269]++; + if (img.getAttribute("word_img")) { + _$jscoverage['ui/editor.js'][271]++; + editor.word_img = [img.getAttribute("word_img")]; + _$jscoverage['ui/editor.js'][272]++; + dialogName = "wordimageDialog"; + } + _$jscoverage['ui/editor.js'][274]++; + if ((! dialogs[dialogName])) { + _$jscoverage['ui/editor.js'][275]++; + return; + } + _$jscoverage['ui/editor.js'][277]++; + str = ("" + editor.getLang("property") + ": " + "" + editor.getLang("default") + "  " + "" + editor.getLang("justifyleft") + "  " + "" + editor.getLang("justifyright") + "  " + "" + editor.getLang("justifycenter") + "  " + "" + editor.getLang("modify") + ""); + _$jscoverage['ui/editor.js'][284]++; + ((! html) && (html = popup.formatHtml(str))); + } + _$jscoverage['ui/editor.js'][287]++; + if (editor.ui._dialogs.linkDialog) { + _$jscoverage['ui/editor.js'][288]++; + var link = editor.queryCommandValue("link"); + _$jscoverage['ui/editor.js'][289]++; + var url; + _$jscoverage['ui/editor.js'][290]++; + if ((link && (url = (link.getAttribute("_href") || link.getAttribute("href", 2))))) { + _$jscoverage['ui/editor.js'][291]++; + var txt = url; + _$jscoverage['ui/editor.js'][292]++; + if ((url.length > 30)) { + _$jscoverage['ui/editor.js'][293]++; + txt = (url.substring(0, 20) + "..."); + } + _$jscoverage['ui/editor.js'][295]++; + if (html) { + _$jscoverage['ui/editor.js'][296]++; + html += "
"; + } + _$jscoverage['ui/editor.js'][298]++; + html += popup.formatHtml(("" + editor.getLang("anthorMsg") + ": " + txt + "" + " " + editor.getLang("modify") + "" + " " + editor.getLang("clear") + "")); + _$jscoverage['ui/editor.js'][302]++; + popup.showAnchor(link); + } + } + _$jscoverage['ui/editor.js'][306]++; + if (html) { + _$jscoverage['ui/editor.js'][307]++; + popup.getDom("content").innerHTML = html; + _$jscoverage['ui/editor.js'][308]++; + popup.anchorEl = (img || link); + _$jscoverage['ui/editor.js'][309]++; + popup.showAnchor(popup.anchorEl); + } + else { + _$jscoverage['ui/editor.js'][311]++; + popup.hide(); + } +})); + } +}), _initToolbars: (function () { + _$jscoverage['ui/editor.js'][318]++; + var editor = this.editor; + _$jscoverage['ui/editor.js'][319]++; + var toolbars = (this.toolbars || []); + _$jscoverage['ui/editor.js'][320]++; + var toolbarUis = []; + _$jscoverage['ui/editor.js'][321]++; + for (var i = 0; (i < toolbars.length); (i++)) { + _$jscoverage['ui/editor.js'][322]++; + var toolbar = toolbars[i]; + _$jscoverage['ui/editor.js'][323]++; + var toolbarUi = new (baidu.editor.ui.Toolbar)({theme: editor.options.theme}); + _$jscoverage['ui/editor.js'][324]++; + for (var j = 0; (j < toolbar.length); (j++)) { + _$jscoverage['ui/editor.js'][325]++; + var toolbarItem = toolbar[j]; + _$jscoverage['ui/editor.js'][326]++; + var toolbarItemUi = null; + _$jscoverage['ui/editor.js'][327]++; + if (((typeof toolbarItem) == "string")) { + _$jscoverage['ui/editor.js'][328]++; + toolbarItem = toolbarItem.toLowerCase(); + _$jscoverage['ui/editor.js'][329]++; + if ((toolbarItem == "|")) { + _$jscoverage['ui/editor.js'][330]++; + toolbarItem = "Separator"; + } + _$jscoverage['ui/editor.js'][332]++; + if ((toolbarItem == "||")) { + _$jscoverage['ui/editor.js'][333]++; + toolbarItem = "Breakline"; + } + _$jscoverage['ui/editor.js'][335]++; + if (baidu.editor.ui[toolbarItem]) { + _$jscoverage['ui/editor.js'][336]++; + toolbarItemUi = new (baidu.editor.ui[toolbarItem])(editor); + } + _$jscoverage['ui/editor.js'][340]++; + if ((toolbarItem == "fullscreen")) { + _$jscoverage['ui/editor.js'][341]++; + if ((toolbarUis && toolbarUis[0])) { + _$jscoverage['ui/editor.js'][342]++; + toolbarUis[0].items.splice(0, 0, toolbarItemUi); + } + else { + _$jscoverage['ui/editor.js'][344]++; + (toolbarItemUi && toolbarUi.items.splice(0, 0, toolbarItemUi)); + } + _$jscoverage['ui/editor.js'][347]++; + continue; + } + } + else { + _$jscoverage['ui/editor.js'][352]++; + toolbarItemUi = toolbarItem; + } + _$jscoverage['ui/editor.js'][354]++; + if ((toolbarItemUi && toolbarItemUi.id)) { + _$jscoverage['ui/editor.js'][356]++; + toolbarUi.add(toolbarItemUi); + } +} + _$jscoverage['ui/editor.js'][359]++; + toolbarUis[i] = toolbarUi; +} + _$jscoverage['ui/editor.js'][361]++; + this.toolbars = toolbarUis; +}), getHtmlTpl: (function () { + _$jscoverage['ui/editor.js'][364]++; + return ("
" + "
" + (this.toolbars.length? ("
" + this.renderToolbarBoxHtml() + "
"): "") + "
" + "
" + this.editor.getLang("clickToUpload") + "
" + "
x
" + "
" + "
" + "
" + "
" + "
" + "
" + "" + "" + "" + "
" + "
" + "
"); +}), showWordImageDialog: (function () { + _$jscoverage['ui/editor.js'][388]++; + this.editor.execCommand("wordimage", "word_img"); + _$jscoverage['ui/editor.js'][389]++; + this._dialogs.wordimageDialog.open(); +}), renderToolbarBoxHtml: (function () { + _$jscoverage['ui/editor.js'][392]++; + var buff = []; + _$jscoverage['ui/editor.js'][393]++; + for (var i = 0; (i < this.toolbars.length); (i++)) { + _$jscoverage['ui/editor.js'][394]++; + buff.push(this.toolbars[i].renderHtml()); +} + _$jscoverage['ui/editor.js'][396]++; + return buff.join(""); +}), setFullScreen: (function (fullscreen) { + _$jscoverage['ui/editor.js'][400]++; + var editor = this.editor, container = editor.container.parentNode.parentNode; + _$jscoverage['ui/editor.js'][402]++; + if ((this._fullscreen != fullscreen)) { + _$jscoverage['ui/editor.js'][403]++; + this._fullscreen = fullscreen; + _$jscoverage['ui/editor.js'][404]++; + this.editor.fireEvent("beforefullscreenchange", fullscreen); + _$jscoverage['ui/editor.js'][405]++; + if (baidu.editor.browser.gecko) { + _$jscoverage['ui/editor.js'][406]++; + var bk = editor.selection.getRange().createBookmark(); + } + _$jscoverage['ui/editor.js'][408]++; + if (fullscreen) { + _$jscoverage['ui/editor.js'][409]++; + while ((container.tagName != "BODY")) { + _$jscoverage['ui/editor.js'][410]++; + var position = baidu.editor.dom.domUtils.getComputedStyle(container, "position"); + _$jscoverage['ui/editor.js'][411]++; + nodeStack.push(position); + _$jscoverage['ui/editor.js'][412]++; + container.style.position = "static"; + _$jscoverage['ui/editor.js'][413]++; + container = container.parentNode; +} + _$jscoverage['ui/editor.js'][415]++; + this._bakHtmlOverflow = document.documentElement.style.overflow; + _$jscoverage['ui/editor.js'][416]++; + this._bakBodyOverflow = document.body.style.overflow; + _$jscoverage['ui/editor.js'][417]++; + this._bakAutoHeight = this.editor.autoHeightEnabled; + _$jscoverage['ui/editor.js'][418]++; + this._bakScrollTop = Math.max(document.documentElement.scrollTop, document.body.scrollTop); + _$jscoverage['ui/editor.js'][420]++; + this._bakEditorContaninerWidth = editor.iframe.parentNode.offsetWidth; + _$jscoverage['ui/editor.js'][421]++; + if (this._bakAutoHeight) { + _$jscoverage['ui/editor.js'][423]++; + editor.autoHeightEnabled = false; + _$jscoverage['ui/editor.js'][424]++; + this.editor.disableAutoHeight(); + } + _$jscoverage['ui/editor.js'][427]++; + document.documentElement.style.overflow = "hidden"; + _$jscoverage['ui/editor.js'][428]++; + document.body.style.overflow = "hidden"; + _$jscoverage['ui/editor.js'][429]++; + this._bakCssText = this.getDom().style.cssText; + _$jscoverage['ui/editor.js'][430]++; + this._bakCssText1 = this.getDom("iframeholder").style.cssText; + _$jscoverage['ui/editor.js'][431]++; + editor.iframe.parentNode.style.width = ""; + _$jscoverage['ui/editor.js'][432]++; + this._updateFullScreen(); + } + else { + _$jscoverage['ui/editor.js'][434]++; + while ((container.tagName != "BODY")) { + _$jscoverage['ui/editor.js'][435]++; + container.style.position = nodeStack.shift(); + _$jscoverage['ui/editor.js'][436]++; + container = container.parentNode; +} + _$jscoverage['ui/editor.js'][438]++; + this.getDom().style.cssText = this._bakCssText; + _$jscoverage['ui/editor.js'][439]++; + this.getDom("iframeholder").style.cssText = this._bakCssText1; + _$jscoverage['ui/editor.js'][440]++; + if (this._bakAutoHeight) { + _$jscoverage['ui/editor.js'][441]++; + editor.autoHeightEnabled = true; + _$jscoverage['ui/editor.js'][442]++; + this.editor.enableAutoHeight(); + } + _$jscoverage['ui/editor.js'][445]++; + document.documentElement.style.overflow = this._bakHtmlOverflow; + _$jscoverage['ui/editor.js'][446]++; + document.body.style.overflow = this._bakBodyOverflow; + _$jscoverage['ui/editor.js'][447]++; + editor.iframe.parentNode.style.width = (this._bakEditorContaninerWidth + "px"); + _$jscoverage['ui/editor.js'][448]++; + window.scrollTo(0, this._bakScrollTop); + } + _$jscoverage['ui/editor.js'][450]++; + if ((browser.gecko && (editor.body.contentEditable === "true"))) { + _$jscoverage['ui/editor.js'][451]++; + var input = document.createElement("input"); + _$jscoverage['ui/editor.js'][452]++; + document.body.appendChild(input); + _$jscoverage['ui/editor.js'][453]++; + editor.body.contentEditable = false; + _$jscoverage['ui/editor.js'][454]++; + setTimeout((function () { + _$jscoverage['ui/editor.js'][455]++; + input.focus(); + _$jscoverage['ui/editor.js'][456]++; + setTimeout((function () { + _$jscoverage['ui/editor.js'][457]++; + editor.body.contentEditable = true; + _$jscoverage['ui/editor.js'][458]++; + editor.fireEvent("fullscreenchanged", fullscreen); + _$jscoverage['ui/editor.js'][459]++; + editor.selection.getRange().moveToBookmark(bk).select(true); + _$jscoverage['ui/editor.js'][460]++; + baidu.editor.dom.domUtils.remove(input); + _$jscoverage['ui/editor.js'][461]++; + (fullscreen && window.scroll(0, 0)); +}), 0); +}), 0); + } + _$jscoverage['ui/editor.js'][466]++; + if ((editor.body.contentEditable === "true")) { + _$jscoverage['ui/editor.js'][467]++; + this.editor.fireEvent("fullscreenchanged", fullscreen); + _$jscoverage['ui/editor.js'][468]++; + this.triggerLayout(); + } + } +}), _updateFullScreen: (function () { + _$jscoverage['ui/editor.js'][474]++; + if (this._fullscreen) { + _$jscoverage['ui/editor.js'][475]++; + var vpRect = uiUtils.getViewportRect(); + _$jscoverage['ui/editor.js'][476]++; + this.getDom().style.cssText = ("border:0;position:absolute;left:0;top:" + (this.editor.options.topOffset || 0) + "px;width:" + vpRect.width + "px;height:" + vpRect.height + "px;z-index:" + ((this.getDom().style.zIndex * 1) + 100)); + _$jscoverage['ui/editor.js'][477]++; + uiUtils.setViewportOffset(this.getDom(), {left: 0, top: (this.editor.options.topOffset || 0)}); + _$jscoverage['ui/editor.js'][478]++; + this.editor.setHeight((vpRect.height - this.getDom("toolbarbox").offsetHeight - this.getDom("bottombar").offsetHeight - (this.editor.options.topOffset || 0))); + _$jscoverage['ui/editor.js'][480]++; + if (browser.gecko) { + _$jscoverage['ui/editor.js'][481]++; + try { + _$jscoverage['ui/editor.js'][482]++; + window.onresize(); + } + catch (e) { + } + } + } +}), _updateElementPath: (function () { + _$jscoverage['ui/editor.js'][491]++; + var bottom = this.getDom("elementpath"), list; + _$jscoverage['ui/editor.js'][492]++; + if ((this.elementPathEnabled && (list = this.editor.queryCommandValue("elementpath")))) { + _$jscoverage['ui/editor.js'][494]++; + var buff = []; + _$jscoverage['ui/editor.js'][495]++; + for (var i = 0, ci; (ci = list[i]); (i++)) { + _$jscoverage['ui/editor.js'][496]++; + buff[i] = this.formatHtml(("" + ci + "")); +} + _$jscoverage['ui/editor.js'][498]++; + bottom.innerHTML = ("
" + this.editor.getLang("elementPathTip") + ": " + buff.join(" > ") + "
"); + } + else { + _$jscoverage['ui/editor.js'][501]++; + bottom.style.display = "none"; + } +}), disableElementPath: (function () { + _$jscoverage['ui/editor.js'][505]++; + var bottom = this.getDom("elementpath"); + _$jscoverage['ui/editor.js'][506]++; + bottom.innerHTML = ""; + _$jscoverage['ui/editor.js'][507]++; + bottom.style.display = "none"; + _$jscoverage['ui/editor.js'][508]++; + this.elementPathEnabled = false; +}), enableElementPath: (function () { + _$jscoverage['ui/editor.js'][512]++; + var bottom = this.getDom("elementpath"); + _$jscoverage['ui/editor.js'][513]++; + bottom.style.display = ""; + _$jscoverage['ui/editor.js'][514]++; + this.elementPathEnabled = true; + _$jscoverage['ui/editor.js'][515]++; + this._updateElementPath(); +}), _scale: (function () { + _$jscoverage['ui/editor.js'][518]++; + var doc = document, editor = this.editor, editorHolder = editor.container, editorDocument = editor.document, toolbarBox = this.getDom("toolbarbox"), bottombar = this.getDom("bottombar"), scale = this.getDom("scale"), scalelayer = this.getDom("scalelayer"); + _$jscoverage['ui/editor.js'][527]++; + var isMouseMove = false, position = null, minEditorHeight = 0, minEditorWidth = editor.options.minFrameWidth, pageX = 0, pageY = 0, scaleWidth = 0, scaleHeight = 0; + _$jscoverage['ui/editor.js'][536]++; + function down() { + _$jscoverage['ui/editor.js'][537]++; + position = domUtils.getXY(editorHolder); + _$jscoverage['ui/editor.js'][539]++; + if ((! minEditorHeight)) { + _$jscoverage['ui/editor.js'][540]++; + minEditorHeight = (editor.options.minFrameHeight + toolbarBox.offsetHeight + bottombar.offsetHeight); + } + _$jscoverage['ui/editor.js'][543]++; + scalelayer.style.cssText = ("position:absolute;left:0;display:;top:0;background-color:#41ABFF;opacity:0.4;filter: Alpha(opacity=40);width:" + editorHolder.offsetWidth + "px;height:" + editorHolder.offsetHeight + "px;z-index:" + (editor.options.zIndex + 1)); + _$jscoverage['ui/editor.js'][546]++; + domUtils.on(doc, "mousemove", move); + _$jscoverage['ui/editor.js'][547]++; + domUtils.on(editorDocument, "mouseup", up); + _$jscoverage['ui/editor.js'][548]++; + domUtils.on(doc, "mouseup", up); +} + _$jscoverage['ui/editor.js'][551]++; + var me = this; + _$jscoverage['ui/editor.js'][553]++; + this.editor.addListener("fullscreenchanged", (function (e, fullScreen) { + _$jscoverage['ui/editor.js'][554]++; + if (fullScreen) { + _$jscoverage['ui/editor.js'][555]++; + me.disableScale(); + } + else { + _$jscoverage['ui/editor.js'][558]++; + if (me.editor.options.scaleEnabled) { + _$jscoverage['ui/editor.js'][559]++; + me.enableScale(); + _$jscoverage['ui/editor.js'][560]++; + var tmpNode = me.editor.document.createElement("span"); + _$jscoverage['ui/editor.js'][561]++; + me.editor.body.appendChild(tmpNode); + _$jscoverage['ui/editor.js'][562]++; + me.editor.body.style.height = (Math.max(domUtils.getXY(tmpNode).y, (me.editor.iframe.offsetHeight - 20)) + "px"); + _$jscoverage['ui/editor.js'][563]++; + domUtils.remove(tmpNode); + } + } +})); + _$jscoverage['ui/editor.js'][567]++; + function move(event) { + _$jscoverage['ui/editor.js'][568]++; + clearSelection(); + _$jscoverage['ui/editor.js'][569]++; + var e = (event || window.event); + _$jscoverage['ui/editor.js'][570]++; + pageX = (e.pageX || (doc.documentElement.scrollLeft + e.clientX)); + _$jscoverage['ui/editor.js'][571]++; + pageY = (e.pageY || (doc.documentElement.scrollTop + e.clientY)); + _$jscoverage['ui/editor.js'][572]++; + scaleWidth = (pageX - position.x); + _$jscoverage['ui/editor.js'][573]++; + scaleHeight = (pageY - position.y); + _$jscoverage['ui/editor.js'][575]++; + if ((scaleWidth >= minEditorWidth)) { + _$jscoverage['ui/editor.js'][576]++; + isMouseMove = true; + _$jscoverage['ui/editor.js'][577]++; + scalelayer.style.width = (scaleWidth + "px"); + } + _$jscoverage['ui/editor.js'][579]++; + if ((scaleHeight >= minEditorHeight)) { + _$jscoverage['ui/editor.js'][580]++; + isMouseMove = true; + _$jscoverage['ui/editor.js'][581]++; + scalelayer.style.height = (scaleHeight + "px"); + } +} + _$jscoverage['ui/editor.js'][585]++; + function up() { + _$jscoverage['ui/editor.js'][586]++; + if (isMouseMove) { + _$jscoverage['ui/editor.js'][587]++; + isMouseMove = false; + _$jscoverage['ui/editor.js'][588]++; + editor.ui._actualFrameWidth = (scalelayer.offsetWidth - 2); + _$jscoverage['ui/editor.js'][589]++; + editorHolder.style.width = (editor.ui._actualFrameWidth + "px"); + _$jscoverage['ui/editor.js'][591]++; + editor.setHeight((scalelayer.offsetHeight - bottombar.offsetHeight - toolbarBox.offsetHeight - 2)); + } + _$jscoverage['ui/editor.js'][593]++; + if (scalelayer) { + _$jscoverage['ui/editor.js'][594]++; + scalelayer.style.display = "none"; + } + _$jscoverage['ui/editor.js'][596]++; + clearSelection(); + _$jscoverage['ui/editor.js'][597]++; + domUtils.un(doc, "mousemove", move); + _$jscoverage['ui/editor.js'][598]++; + domUtils.un(editorDocument, "mouseup", up); + _$jscoverage['ui/editor.js'][599]++; + domUtils.un(doc, "mouseup", up); +} + _$jscoverage['ui/editor.js'][602]++; + function clearSelection() { + _$jscoverage['ui/editor.js'][603]++; + if (browser.ie) { + _$jscoverage['ui/editor.js'][604]++; + doc.selection.clear(); + } + else { + _$jscoverage['ui/editor.js'][606]++; + window.getSelection().removeAllRanges(); + } +} + _$jscoverage['ui/editor.js'][609]++; + this.enableScale = (function () { + _$jscoverage['ui/editor.js'][611]++; + if ((editor.queryCommandState("source") == 1)) { + _$jscoverage['ui/editor.js'][611]++; + return; + } + _$jscoverage['ui/editor.js'][612]++; + scale.style.display = ""; + _$jscoverage['ui/editor.js'][613]++; + this.scaleEnabled = true; + _$jscoverage['ui/editor.js'][614]++; + domUtils.on(scale, "mousedown", down); +}); + _$jscoverage['ui/editor.js'][616]++; + this.disableScale = (function () { + _$jscoverage['ui/editor.js'][617]++; + scale.style.display = "none"; + _$jscoverage['ui/editor.js'][618]++; + this.scaleEnabled = false; + _$jscoverage['ui/editor.js'][619]++; + domUtils.un(scale, "mousedown", down); +}); +}), isFullScreen: (function () { + _$jscoverage['ui/editor.js'][623]++; + return this._fullscreen; +}), postRender: (function () { + _$jscoverage['ui/editor.js'][626]++; + UIBase.prototype.postRender.call(this); + _$jscoverage['ui/editor.js'][627]++; + for (var i = 0; (i < this.toolbars.length); (i++)) { + _$jscoverage['ui/editor.js'][628]++; + this.toolbars[i].postRender(); +} + _$jscoverage['ui/editor.js'][630]++; + var me = this; + _$jscoverage['ui/editor.js'][631]++; + var timerId, domUtils = baidu.editor.dom.domUtils, updateFullScreenTime = (function () { + _$jscoverage['ui/editor.js'][634]++; + clearTimeout(timerId); + _$jscoverage['ui/editor.js'][635]++; + timerId = setTimeout((function () { + _$jscoverage['ui/editor.js'][636]++; + me._updateFullScreen(); +})); +}); + _$jscoverage['ui/editor.js'][639]++; + domUtils.on(window, "resize", updateFullScreenTime); + _$jscoverage['ui/editor.js'][641]++; + me.addListener("destroy", (function () { + _$jscoverage['ui/editor.js'][642]++; + domUtils.un(window, "resize", updateFullScreenTime); + _$jscoverage['ui/editor.js'][643]++; + clearTimeout(timerId); +})); +}), showToolbarMsg: (function (msg, flag) { + _$jscoverage['ui/editor.js'][647]++; + this.getDom("toolbarmsg_label").innerHTML = msg; + _$jscoverage['ui/editor.js'][648]++; + this.getDom("toolbarmsg").style.display = ""; + _$jscoverage['ui/editor.js'][650]++; + if ((! flag)) { + _$jscoverage['ui/editor.js'][651]++; + var w = this.getDom("upload_dialog"); + _$jscoverage['ui/editor.js'][652]++; + w.style.display = "none"; + } +}), hideToolbarMsg: (function () { + _$jscoverage['ui/editor.js'][656]++; + this.getDom("toolbarmsg").style.display = "none"; +}), mapUrl: (function (url) { + _$jscoverage['ui/editor.js'][659]++; + return (url? url.replace("~/", (this.editor.options.UEDITOR_HOME_URL || "")): ""); +}), triggerLayout: (function () { + _$jscoverage['ui/editor.js'][662]++; + var dom = this.getDom(); + _$jscoverage['ui/editor.js'][663]++; + if ((dom.style.zoom == "1")) { + _$jscoverage['ui/editor.js'][664]++; + dom.style.zoom = "100%"; + } + else { + _$jscoverage['ui/editor.js'][666]++; + dom.style.zoom = "1"; + } +})}; + _$jscoverage['ui/editor.js'][670]++; + utils.inherits(EditorUI, baidu.editor.ui.UIBase); + _$jscoverage['ui/editor.js'][673]++; + var instances = {}; + _$jscoverage['ui/editor.js'][676]++; + UE.ui.Editor = (function (options) { + _$jscoverage['ui/editor.js'][677]++; + var editor = new (UE.Editor)(options); + _$jscoverage['ui/editor.js'][678]++; + editor.options.editor = editor; + _$jscoverage['ui/editor.js'][679]++; + utils.loadFile(document, {href: (editor.options.themePath + editor.options.theme + "/_css/ueditor.css"), tag: "link", type: "text/css", rel: "stylesheet"}); + _$jscoverage['ui/editor.js'][686]++; + var oldRender = editor.render; + _$jscoverage['ui/editor.js'][687]++; + editor.render = (function (holder) { + _$jscoverage['ui/editor.js'][688]++; + if ((holder.constructor === String)) { + _$jscoverage['ui/editor.js'][689]++; + editor.key = holder; + _$jscoverage['ui/editor.js'][690]++; + instances[holder] = editor; + } + _$jscoverage['ui/editor.js'][692]++; + utils.domReady((function () { + _$jscoverage['ui/editor.js'][693]++; + (editor.langIsReady? renderUI(): editor.addListener("langReady", renderUI)); + _$jscoverage['ui/editor.js'][694]++; + function renderUI() { + _$jscoverage['ui/editor.js'][695]++; + editor.setOpt({labelMap: (editor.options.labelMap || editor.getLang("labelMap"))}); + _$jscoverage['ui/editor.js'][698]++; + new EditorUI(editor.options); + _$jscoverage['ui/editor.js'][699]++; + if (holder) { + _$jscoverage['ui/editor.js'][700]++; + if ((holder.constructor === String)) { + _$jscoverage['ui/editor.js'][701]++; + holder = document.getElementById(holder); + } + _$jscoverage['ui/editor.js'][703]++; + (holder && holder.getAttribute("name") && (editor.options.textarea = holder.getAttribute("name"))); + _$jscoverage['ui/editor.js'][704]++; + if ((holder && /script|textarea/gi.test(holder.tagName))) { + _$jscoverage['ui/editor.js'][705]++; + var newDiv = document.createElement("div"); + _$jscoverage['ui/editor.js'][706]++; + holder.parentNode.insertBefore(newDiv, holder); + _$jscoverage['ui/editor.js'][707]++; + var cont = (holder.value || holder.innerHTML); + _$jscoverage['ui/editor.js'][708]++; + editor.options.initialContent = (/^[\t\r\n ]*$/.test(cont)? editor.options.initialContent: cont.replace(/>[\n\r\t]+([ ]{4})+/g, ">").replace(/[\n\r\t]+([ ]{4})+[\n\r\t]+<")); + _$jscoverage['ui/editor.js'][712]++; + (holder.className && (newDiv.className = holder.className)); + _$jscoverage['ui/editor.js'][713]++; + (holder.style.cssText && (newDiv.style.cssText = holder.style.cssText)); + _$jscoverage['ui/editor.js'][714]++; + if (/textarea/i.test(holder.tagName)) { + _$jscoverage['ui/editor.js'][715]++; + editor.textarea = holder; + _$jscoverage['ui/editor.js'][716]++; + editor.textarea.style.display = "none"; + } + else { + _$jscoverage['ui/editor.js'][719]++; + holder.parentNode.removeChild(holder); + _$jscoverage['ui/editor.js'][720]++; + (holder.id && (newDiv.id = holder.id)); + } + _$jscoverage['ui/editor.js'][722]++; + holder = newDiv; + _$jscoverage['ui/editor.js'][723]++; + holder.innerHTML = ""; + } + } + _$jscoverage['ui/editor.js'][727]++; + domUtils.addClass(holder, ("edui-" + editor.options.theme)); + _$jscoverage['ui/editor.js'][728]++; + editor.ui.render(holder); + _$jscoverage['ui/editor.js'][729]++; + var opt = editor.options; + _$jscoverage['ui/editor.js'][731]++; + editor.container = editor.ui.getDom(); + _$jscoverage['ui/editor.js'][732]++; + var parents = domUtils.findParents(holder, true); + _$jscoverage['ui/editor.js'][733]++; + var displays = []; + _$jscoverage['ui/editor.js'][734]++; + for (var i = 0, ci; (ci = parents[i]); (i++)) { + _$jscoverage['ui/editor.js'][735]++; + displays[i] = ci.style.display; + _$jscoverage['ui/editor.js'][736]++; + ci.style.display = "block"; +} + _$jscoverage['ui/editor.js'][738]++; + if (opt.initialFrameWidth) { + _$jscoverage['ui/editor.js'][739]++; + opt.minFrameWidth = opt.initialFrameWidth; + } + else { + _$jscoverage['ui/editor.js'][741]++; + opt.minFrameWidth = (opt.initialFrameWidth = holder.offsetWidth); + } + _$jscoverage['ui/editor.js'][743]++; + if (opt.initialFrameHeight) { + _$jscoverage['ui/editor.js'][744]++; + opt.minFrameHeight = opt.initialFrameHeight; + } + else { + _$jscoverage['ui/editor.js'][746]++; + opt.initialFrameHeight = (opt.minFrameHeight = holder.offsetHeight); + } + _$jscoverage['ui/editor.js'][748]++; + for (var i = 0, ci = ci; (ci = parents[i]); (i++)) { + _$jscoverage['ui/editor.js'][749]++; + ci.style.display = displays[i]; +} + _$jscoverage['ui/editor.js'][753]++; + if (holder.style.height) { + _$jscoverage['ui/editor.js'][754]++; + holder.style.height = ""; + } + _$jscoverage['ui/editor.js'][756]++; + editor.container.style.width = (opt.initialFrameWidth + (/%$/.test(opt.initialFrameWidth)? "": "px")); + _$jscoverage['ui/editor.js'][757]++; + editor.container.style.zIndex = opt.zIndex; + _$jscoverage['ui/editor.js'][758]++; + oldRender.call(editor, editor.ui.getDom("iframeholder")); +} +})); +}); + _$jscoverage['ui/editor.js'][763]++; + return editor; +}); + _$jscoverage['ui/editor.js'][788]++; + UE.getEditor = (function (id, opt) { + _$jscoverage['ui/editor.js'][789]++; + var editor = instances[id]; + _$jscoverage['ui/editor.js'][790]++; + if ((! editor)) { + _$jscoverage['ui/editor.js'][791]++; + editor = (instances[id] = new (UE.ui.Editor)(opt)); + _$jscoverage['ui/editor.js'][792]++; + editor.render(id); + } + _$jscoverage['ui/editor.js'][794]++; + return editor; +}); + _$jscoverage['ui/editor.js'][798]++; + UE.delEditor = (function (id) { + _$jscoverage['ui/editor.js'][799]++; + var editor; + _$jscoverage['ui/editor.js'][800]++; + if ((editor = instances[id])) { + _$jscoverage['ui/editor.js'][801]++; + (editor.key && editor.destroy()); + _$jscoverage['ui/editor.js'][802]++; + (delete instances[id]); + } +}); +})(); diff --git a/_test/coverage/ui/editorui.js b/_test/coverage/ui/editorui.js new file mode 100644 index 000000000..61249dfff --- /dev/null +++ b/_test/coverage/ui/editorui.js @@ -0,0 +1,1302 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['ui/editorui.js']) { + _$jscoverage['ui/editorui.js'] = []; + _$jscoverage['ui/editorui.js'][4] = 0; + _$jscoverage['ui/editorui.js'][5] = 0; + _$jscoverage['ui/editorui.js'][6] = 0; + _$jscoverage['ui/editorui.js'][7] = 0; + _$jscoverage['ui/editorui.js'][8] = 0; + _$jscoverage['ui/editorui.js'][10] = 0; + _$jscoverage['ui/editorui.js'][11] = 0; + _$jscoverage['ui/editorui.js'][12] = 0; + _$jscoverage['ui/editorui.js'][14] = 0; + _$jscoverage['ui/editorui.js'][15] = 0; + _$jscoverage['ui/editorui.js'][16] = 0; + _$jscoverage['ui/editorui.js'][17] = 0; + _$jscoverage['ui/editorui.js'][18] = 0; + _$jscoverage['ui/editorui.js'][20] = 0; + _$jscoverage['ui/editorui.js'][21] = 0; + _$jscoverage['ui/editorui.js'][23] = 0; + _$jscoverage['ui/editorui.js'][31] = 0; + _$jscoverage['ui/editorui.js'][34] = 0; + _$jscoverage['ui/editorui.js'][60] = 0; + _$jscoverage['ui/editorui.js'][68] = 0; + _$jscoverage['ui/editorui.js'][69] = 0; + _$jscoverage['ui/editorui.js'][70] = 0; + _$jscoverage['ui/editorui.js'][71] = 0; + _$jscoverage['ui/editorui.js'][72] = 0; + _$jscoverage['ui/editorui.js'][76] = 0; + _$jscoverage['ui/editorui.js'][81] = 0; + _$jscoverage['ui/editorui.js'][82] = 0; + _$jscoverage['ui/editorui.js'][83] = 0; + _$jscoverage['ui/editorui.js'][84] = 0; + _$jscoverage['ui/editorui.js'][85] = 0; + _$jscoverage['ui/editorui.js'][86] = 0; + _$jscoverage['ui/editorui.js'][88] = 0; + _$jscoverage['ui/editorui.js'][89] = 0; + _$jscoverage['ui/editorui.js'][90] = 0; + _$jscoverage['ui/editorui.js'][94] = 0; + _$jscoverage['ui/editorui.js'][100] = 0; + _$jscoverage['ui/editorui.js'][101] = 0; + _$jscoverage['ui/editorui.js'][106] = 0; + _$jscoverage['ui/editorui.js'][107] = 0; + _$jscoverage['ui/editorui.js'][111] = 0; + _$jscoverage['ui/editorui.js'][112] = 0; + _$jscoverage['ui/editorui.js'][113] = 0; + _$jscoverage['ui/editorui.js'][115] = 0; + _$jscoverage['ui/editorui.js'][119] = 0; + _$jscoverage['ui/editorui.js'][125] = 0; + _$jscoverage['ui/editorui.js'][127] = 0; + _$jscoverage['ui/editorui.js'][128] = 0; + _$jscoverage['ui/editorui.js'][129] = 0; + _$jscoverage['ui/editorui.js'][130] = 0; + _$jscoverage['ui/editorui.js'][131] = 0; + _$jscoverage['ui/editorui.js'][136] = 0; + _$jscoverage['ui/editorui.js'][139] = 0; + _$jscoverage['ui/editorui.js'][140] = 0; + _$jscoverage['ui/editorui.js'][141] = 0; + _$jscoverage['ui/editorui.js'][142] = 0; + _$jscoverage['ui/editorui.js'][144] = 0; + _$jscoverage['ui/editorui.js'][152] = 0; + _$jscoverage['ui/editorui.js'][153] = 0; + _$jscoverage['ui/editorui.js'][154] = 0; + _$jscoverage['ui/editorui.js'][155] = 0; + _$jscoverage['ui/editorui.js'][161] = 0; + _$jscoverage['ui/editorui.js'][164] = 0; + _$jscoverage['ui/editorui.js'][165] = 0; + _$jscoverage['ui/editorui.js'][166] = 0; + _$jscoverage['ui/editorui.js'][169] = 0; + _$jscoverage['ui/editorui.js'][172] = 0; + _$jscoverage['ui/editorui.js'][173] = 0; + _$jscoverage['ui/editorui.js'][174] = 0; + _$jscoverage['ui/editorui.js'][176] = 0; + _$jscoverage['ui/editorui.js'][182] = 0; + _$jscoverage['ui/editorui.js'][189] = 0; + _$jscoverage['ui/editorui.js'][190] = 0; + _$jscoverage['ui/editorui.js'][191] = 0; + _$jscoverage['ui/editorui.js'][193] = 0; + _$jscoverage['ui/editorui.js'][194] = 0; + _$jscoverage['ui/editorui.js'][196] = 0; + _$jscoverage['ui/editorui.js'][197] = 0; + _$jscoverage['ui/editorui.js'][198] = 0; + _$jscoverage['ui/editorui.js'][199] = 0; + _$jscoverage['ui/editorui.js'][201] = 0; + _$jscoverage['ui/editorui.js'][203] = 0; + _$jscoverage['ui/editorui.js'][204] = 0; + _$jscoverage['ui/editorui.js'][218] = 0; + _$jscoverage['ui/editorui.js'][226] = 0; + _$jscoverage['ui/editorui.js'][232] = 0; + _$jscoverage['ui/editorui.js'][235] = 0; + _$jscoverage['ui/editorui.js'][239] = 0; + _$jscoverage['ui/editorui.js'][240] = 0; + _$jscoverage['ui/editorui.js'][242] = 0; + _$jscoverage['ui/editorui.js'][243] = 0; + _$jscoverage['ui/editorui.js'][244] = 0; + _$jscoverage['ui/editorui.js'][245] = 0; + _$jscoverage['ui/editorui.js'][247] = 0; + _$jscoverage['ui/editorui.js'][249] = 0; + _$jscoverage['ui/editorui.js'][250] = 0; + _$jscoverage['ui/editorui.js'][251] = 0; + _$jscoverage['ui/editorui.js'][254] = 0; + _$jscoverage['ui/editorui.js'][256] = 0; + _$jscoverage['ui/editorui.js'][257] = 0; + _$jscoverage['ui/editorui.js'][264] = 0; + _$jscoverage['ui/editorui.js'][265] = 0; + _$jscoverage['ui/editorui.js'][267] = 0; + _$jscoverage['ui/editorui.js'][268] = 0; + _$jscoverage['ui/editorui.js'][270] = 0; + _$jscoverage['ui/editorui.js'][271] = 0; + _$jscoverage['ui/editorui.js'][272] = 0; + _$jscoverage['ui/editorui.js'][273] = 0; + _$jscoverage['ui/editorui.js'][278] = 0; + _$jscoverage['ui/editorui.js'][285] = 0; + _$jscoverage['ui/editorui.js'][286] = 0; + _$jscoverage['ui/editorui.js'][287] = 0; + _$jscoverage['ui/editorui.js'][291] = 0; + _$jscoverage['ui/editorui.js'][296] = 0; + _$jscoverage['ui/editorui.js'][297] = 0; + _$jscoverage['ui/editorui.js'][298] = 0; + _$jscoverage['ui/editorui.js'][299] = 0; + _$jscoverage['ui/editorui.js'][310] = 0; + _$jscoverage['ui/editorui.js'][318] = 0; + _$jscoverage['ui/editorui.js'][324] = 0; + _$jscoverage['ui/editorui.js'][325] = 0; + _$jscoverage['ui/editorui.js'][327] = 0; + _$jscoverage['ui/editorui.js'][328] = 0; + _$jscoverage['ui/editorui.js'][330] = 0; + _$jscoverage['ui/editorui.js'][333] = 0; + _$jscoverage['ui/editorui.js'][334] = 0; + _$jscoverage['ui/editorui.js'][335] = 0; + _$jscoverage['ui/editorui.js'][337] = 0; + _$jscoverage['ui/editorui.js'][338] = 0; + _$jscoverage['ui/editorui.js'][339] = 0; + _$jscoverage['ui/editorui.js'][344] = 0; + _$jscoverage['ui/editorui.js'][349] = 0; + _$jscoverage['ui/editorui.js'][353] = 0; + _$jscoverage['ui/editorui.js'][356] = 0; + _$jscoverage['ui/editorui.js'][362] = 0; + _$jscoverage['ui/editorui.js'][363] = 0; + _$jscoverage['ui/editorui.js'][364] = 0; + _$jscoverage['ui/editorui.js'][365] = 0; + _$jscoverage['ui/editorui.js'][369] = 0; + _$jscoverage['ui/editorui.js'][372] = 0; + _$jscoverage['ui/editorui.js'][373] = 0; + _$jscoverage['ui/editorui.js'][374] = 0; + _$jscoverage['ui/editorui.js'][375] = 0; + _$jscoverage['ui/editorui.js'][376] = 0; + _$jscoverage['ui/editorui.js'][377] = 0; + _$jscoverage['ui/editorui.js'][379] = 0; + _$jscoverage['ui/editorui.js'][380] = 0; + _$jscoverage['ui/editorui.js'][381] = 0; + _$jscoverage['ui/editorui.js'][382] = 0; + _$jscoverage['ui/editorui.js'][383] = 0; + _$jscoverage['ui/editorui.js'][386] = 0; + _$jscoverage['ui/editorui.js'][387] = 0; + _$jscoverage['ui/editorui.js'][393] = 0; + _$jscoverage['ui/editorui.js'][395] = 0; + _$jscoverage['ui/editorui.js'][397] = 0; + _$jscoverage['ui/editorui.js'][398] = 0; + _$jscoverage['ui/editorui.js'][399] = 0; + _$jscoverage['ui/editorui.js'][400] = 0; + _$jscoverage['ui/editorui.js'][401] = 0; + _$jscoverage['ui/editorui.js'][402] = 0; + _$jscoverage['ui/editorui.js'][403] = 0; + _$jscoverage['ui/editorui.js'][408] = 0; + _$jscoverage['ui/editorui.js'][414] = 0; + _$jscoverage['ui/editorui.js'][418] = 0; + _$jscoverage['ui/editorui.js'][421] = 0; + _$jscoverage['ui/editorui.js'][427] = 0; + _$jscoverage['ui/editorui.js'][428] = 0; + _$jscoverage['ui/editorui.js'][429] = 0; + _$jscoverage['ui/editorui.js'][430] = 0; + _$jscoverage['ui/editorui.js'][434] = 0; + _$jscoverage['ui/editorui.js'][437] = 0; + _$jscoverage['ui/editorui.js'][438] = 0; + _$jscoverage['ui/editorui.js'][439] = 0; + _$jscoverage['ui/editorui.js'][440] = 0; + _$jscoverage['ui/editorui.js'][441] = 0; + _$jscoverage['ui/editorui.js'][442] = 0; + _$jscoverage['ui/editorui.js'][444] = 0; + _$jscoverage['ui/editorui.js'][445] = 0; + _$jscoverage['ui/editorui.js'][447] = 0; + _$jscoverage['ui/editorui.js'][448] = 0; + _$jscoverage['ui/editorui.js'][454] = 0; + _$jscoverage['ui/editorui.js'][457] = 0; + _$jscoverage['ui/editorui.js'][458] = 0; + _$jscoverage['ui/editorui.js'][459] = 0; + _$jscoverage['ui/editorui.js'][460] = 0; + _$jscoverage['ui/editorui.js'][461] = 0; + _$jscoverage['ui/editorui.js'][462] = 0; + _$jscoverage['ui/editorui.js'][463] = 0; + _$jscoverage['ui/editorui.js'][464] = 0; + _$jscoverage['ui/editorui.js'][469] = 0; + _$jscoverage['ui/editorui.js'][474] = 0; + _$jscoverage['ui/editorui.js'][480] = 0; + _$jscoverage['ui/editorui.js'][483] = 0; + _$jscoverage['ui/editorui.js'][487] = 0; + _$jscoverage['ui/editorui.js'][488] = 0; + _$jscoverage['ui/editorui.js'][489] = 0; + _$jscoverage['ui/editorui.js'][490] = 0; + _$jscoverage['ui/editorui.js'][491] = 0; + _$jscoverage['ui/editorui.js'][492] = 0; + _$jscoverage['ui/editorui.js'][494] = 0; + _$jscoverage['ui/editorui.js'][495] = 0; + _$jscoverage['ui/editorui.js'][500] = 0; + _$jscoverage['ui/editorui.js'][503] = 0; + _$jscoverage['ui/editorui.js'][504] = 0; + _$jscoverage['ui/editorui.js'][505] = 0; + _$jscoverage['ui/editorui.js'][506] = 0; + _$jscoverage['ui/editorui.js'][507] = 0; + _$jscoverage['ui/editorui.js'][508] = 0; + _$jscoverage['ui/editorui.js'][509] = 0; + _$jscoverage['ui/editorui.js'][514] = 0; + _$jscoverage['ui/editorui.js'][518] = 0; + _$jscoverage['ui/editorui.js'][525] = 0; + _$jscoverage['ui/editorui.js'][528] = 0; + _$jscoverage['ui/editorui.js'][531] = 0; + _$jscoverage['ui/editorui.js'][532] = 0; + _$jscoverage['ui/editorui.js'][533] = 0; + _$jscoverage['ui/editorui.js'][534] = 0; + _$jscoverage['ui/editorui.js'][535] = 0; + _$jscoverage['ui/editorui.js'][536] = 0; + _$jscoverage['ui/editorui.js'][538] = 0; + _$jscoverage['ui/editorui.js'][539] = 0; + _$jscoverage['ui/editorui.js'][540] = 0; + _$jscoverage['ui/editorui.js'][541] = 0; + _$jscoverage['ui/editorui.js'][542] = 0; + _$jscoverage['ui/editorui.js'][544] = 0; + _$jscoverage['ui/editorui.js'][550] = 0; + _$jscoverage['ui/editorui.js'][555] = 0; + _$jscoverage['ui/editorui.js'][556] = 0; + _$jscoverage['ui/editorui.js'][558] = 0; + _$jscoverage['ui/editorui.js'][559] = 0; + _$jscoverage['ui/editorui.js'][560] = 0; + _$jscoverage['ui/editorui.js'][561] = 0; + _$jscoverage['ui/editorui.js'][562] = 0; + _$jscoverage['ui/editorui.js'][563] = 0; + _$jscoverage['ui/editorui.js'][564] = 0; + _$jscoverage['ui/editorui.js'][565] = 0; + _$jscoverage['ui/editorui.js'][566] = 0; + _$jscoverage['ui/editorui.js'][567] = 0; + _$jscoverage['ui/editorui.js'][572] = 0; + _$jscoverage['ui/editorui.js'][580] = 0; + _$jscoverage['ui/editorui.js'][587] = 0; + _$jscoverage['ui/editorui.js'][590] = 0; + _$jscoverage['ui/editorui.js'][593] = 0; + _$jscoverage['ui/editorui.js'][594] = 0; + _$jscoverage['ui/editorui.js'][595] = 0; + _$jscoverage['ui/editorui.js'][598] = 0; + _$jscoverage['ui/editorui.js'][601] = 0; + _$jscoverage['ui/editorui.js'][602] = 0; + _$jscoverage['ui/editorui.js'][603] = 0; + _$jscoverage['ui/editorui.js'][604] = 0; + _$jscoverage['ui/editorui.js'][605] = 0; + _$jscoverage['ui/editorui.js'][606] = 0; + _$jscoverage['ui/editorui.js'][608] = 0; + _$jscoverage['ui/editorui.js'][609] = 0; + _$jscoverage['ui/editorui.js'][610] = 0; + _$jscoverage['ui/editorui.js'][611] = 0; + _$jscoverage['ui/editorui.js'][612] = 0; + _$jscoverage['ui/editorui.js'][614] = 0; + _$jscoverage['ui/editorui.js'][620] = 0; + _$jscoverage['ui/editorui.js'][622] = 0; + _$jscoverage['ui/editorui.js'][623] = 0; + _$jscoverage['ui/editorui.js'][624] = 0; + _$jscoverage['ui/editorui.js'][629] = 0; + _$jscoverage['ui/editorui.js'][632] = 0; + _$jscoverage['ui/editorui.js'][635] = 0; + _$jscoverage['ui/editorui.js'][636] = 0; + _$jscoverage['ui/editorui.js'][637] = 0; + _$jscoverage['ui/editorui.js'][639] = 0; + _$jscoverage['ui/editorui.js'][642] = 0; + _$jscoverage['ui/editorui.js'][643] = 0; + _$jscoverage['ui/editorui.js'][644] = 0; + _$jscoverage['ui/editorui.js'][645] = 0; + _$jscoverage['ui/editorui.js'][646] = 0; + _$jscoverage['ui/editorui.js'][652] = 0; + _$jscoverage['ui/editorui.js'][656] = 0; + _$jscoverage['ui/editorui.js'][662] = 0; + _$jscoverage['ui/editorui.js'][663] = 0; + _$jscoverage['ui/editorui.js'][666] = 0; + _$jscoverage['ui/editorui.js'][667] = 0; + _$jscoverage['ui/editorui.js'][668] = 0; + _$jscoverage['ui/editorui.js'][669] = 0; + _$jscoverage['ui/editorui.js'][670] = 0; + _$jscoverage['ui/editorui.js'][672] = 0; + _$jscoverage['ui/editorui.js'][673] = 0; + _$jscoverage['ui/editorui.js'][674] = 0; + _$jscoverage['ui/editorui.js'][675] = 0; + _$jscoverage['ui/editorui.js'][678] = 0; + _$jscoverage['ui/editorui.js'][681] = 0; + _$jscoverage['ui/editorui.js'][682] = 0; + _$jscoverage['ui/editorui.js'][683] = 0; + _$jscoverage['ui/editorui.js'][684] = 0; + _$jscoverage['ui/editorui.js'][685] = 0; + _$jscoverage['ui/editorui.js'][686] = 0; + _$jscoverage['ui/editorui.js'][687] = 0; + _$jscoverage['ui/editorui.js'][688] = 0; + _$jscoverage['ui/editorui.js'][693] = 0; + _$jscoverage['ui/editorui.js'][697] = 0; + _$jscoverage['ui/editorui.js'][703] = 0; + _$jscoverage['ui/editorui.js'][704] = 0; + _$jscoverage['ui/editorui.js'][707] = 0; + _$jscoverage['ui/editorui.js'][708] = 0; + _$jscoverage['ui/editorui.js'][709] = 0; + _$jscoverage['ui/editorui.js'][710] = 0; + _$jscoverage['ui/editorui.js'][711] = 0; + _$jscoverage['ui/editorui.js'][713] = 0; + _$jscoverage['ui/editorui.js'][714] = 0; + _$jscoverage['ui/editorui.js'][715] = 0; + _$jscoverage['ui/editorui.js'][716] = 0; + _$jscoverage['ui/editorui.js'][719] = 0; + _$jscoverage['ui/editorui.js'][724] = 0; + _$jscoverage['ui/editorui.js'][725] = 0; + _$jscoverage['ui/editorui.js'][726] = 0; + _$jscoverage['ui/editorui.js'][727] = 0; + _$jscoverage['ui/editorui.js'][728] = 0; + _$jscoverage['ui/editorui.js'][730] = 0; + _$jscoverage['ui/editorui.js'][732] = 0; + _$jscoverage['ui/editorui.js'][733] = 0; + _$jscoverage['ui/editorui.js'][740] = 0; + _$jscoverage['ui/editorui.js'][746] = 0; + _$jscoverage['ui/editorui.js'][747] = 0; + _$jscoverage['ui/editorui.js'][750] = 0; + _$jscoverage['ui/editorui.js'][751] = 0; + _$jscoverage['ui/editorui.js'][752] = 0; + _$jscoverage['ui/editorui.js'][753] = 0; + _$jscoverage['ui/editorui.js'][754] = 0; + _$jscoverage['ui/editorui.js'][756] = 0; + _$jscoverage['ui/editorui.js'][757] = 0; + _$jscoverage['ui/editorui.js'][758] = 0; + _$jscoverage['ui/editorui.js'][759] = 0; + _$jscoverage['ui/editorui.js'][762] = 0; + _$jscoverage['ui/editorui.js'][767] = 0; + _$jscoverage['ui/editorui.js'][768] = 0; + _$jscoverage['ui/editorui.js'][769] = 0; + _$jscoverage['ui/editorui.js'][774] = 0; + _$jscoverage['ui/editorui.js'][775] = 0; + _$jscoverage['ui/editorui.js'][777] = 0; + _$jscoverage['ui/editorui.js'][780] = 0; + _$jscoverage['ui/editorui.js'][781] = 0; + _$jscoverage['ui/editorui.js'][782] = 0; + _$jscoverage['ui/editorui.js'][783] = 0; + _$jscoverage['ui/editorui.js'][784] = 0; + _$jscoverage['ui/editorui.js'][786] = 0; + _$jscoverage['ui/editorui.js'][790] = 0; + _$jscoverage['ui/editorui.js'][791] = 0; + _$jscoverage['ui/editorui.js'][792] = 0; + _$jscoverage['ui/editorui.js'][798] = 0; + _$jscoverage['ui/editorui.js'][800] = 0; + _$jscoverage['ui/editorui.js'][801] = 0; + _$jscoverage['ui/editorui.js'][803] = 0; + _$jscoverage['ui/editorui.js'][806] = 0; + _$jscoverage['ui/editorui.js'][807] = 0; + _$jscoverage['ui/editorui.js'][812] = 0; + _$jscoverage['ui/editorui.js'][815] = 0; + _$jscoverage['ui/editorui.js'][816] = 0; + _$jscoverage['ui/editorui.js'][817] = 0; + _$jscoverage['ui/editorui.js'][819] = 0; +} +_$jscoverage['ui/editorui.js'].source = ["//ui跟编辑器的适配層","//那个按钮弹出是dialog,是下拉筐等都是在这个js中配置","//自己写的ui也要在这里配置,放到baidu.editor.ui下边,当编辑器实例化的时候会根据ueditor.config中的toolbars找到相应的进行实例化","(function () {"," var utils = baidu.editor.utils;"," var editorui = baidu.editor.ui;"," var _Dialog = editorui.Dialog;"," editorui.buttons = {};",""," editorui.Dialog = function (options) {"," var dialog = new _Dialog(options);"," dialog.addListener('hide', function () {",""," if (dialog.editor) {"," var editor = dialog.editor;"," try {"," if (browser.gecko) {"," var y = editor.window.scrollY,"," x = editor.window.scrollX;"," editor.body.focus();"," editor.window.scrollTo(x, y);"," } else {"," editor.focus();"," }","",""," } catch (ex) {"," }"," }"," });"," return dialog;"," };",""," var iframeUrlMap = {"," 'anchor':'~/dialogs/anchor/anchor.html',"," 'insertimage':'~/dialogs/image/image.html',"," 'link':'~/dialogs/link/link.html',"," 'spechars':'~/dialogs/spechars/spechars.html',"," 'searchreplace':'~/dialogs/searchreplace/searchreplace.html',"," 'map':'~/dialogs/map/map.html',"," 'gmap':'~/dialogs/gmap/gmap.html',"," 'insertvideo':'~/dialogs/video/video.html',"," 'help':'~/dialogs/help/help.html',"," //'highlightcode':'~/dialogs/highlightcode/highlightcode.html',"," 'emotion':'~/dialogs/emotion/emotion.html',"," 'wordimage':'~/dialogs/wordimage/wordimage.html',"," 'attachment':'~/dialogs/attachment/attachment.html',"," 'insertframe':'~/dialogs/insertframe/insertframe.html',"," 'edittip':'~/dialogs/table/edittip.html',"," 'edittable':'~/dialogs/table/edittable.html',"," 'edittd':'~/dialogs/table/edittd.html',"," 'webapp':'~/dialogs/webapp/webapp.html',"," 'snapscreen':'~/dialogs/snapscreen/snapscreen.html',"," 'scrawl':'~/dialogs/scrawl/scrawl.html',"," 'music':'~/dialogs/music/music.html',"," 'template':'~/dialogs/template/template.html',"," 'background':'~/dialogs/background/background.html'"," };"," //为工具栏添加按钮,以下都是统一的按钮触发命令,所以写在一起"," var btnCmds = ['undo', 'redo', 'formatmatch',"," 'bold', 'italic', 'underline', 'fontborder', 'touppercase', 'tolowercase',"," 'strikethrough', 'subscript', 'superscript', 'source', 'indent', 'outdent',"," 'blockquote', 'pasteplain', 'pagebreak',"," 'selectall', 'print', 'preview', 'horizontal', 'removeformat', 'time', 'date', 'unlink',"," 'insertparagraphbeforetable', 'insertrow', 'insertcol', 'mergeright', 'mergedown', 'deleterow',"," 'deletecol', 'splittorows', 'splittocols', 'splittocells', 'mergecells', 'deletetable'];",""," for (var i = 0, ci; ci = btnCmds[i++];) {"," ci = ci.toLowerCase();"," editorui[ci] = function (cmd) {"," return function (editor) {"," var ui = new editorui.Button({"," className:'edui-for-' + cmd,"," title:editor.options.labelMap[cmd] || editor.getLang(\"labelMap.\" + cmd) || '',"," onclick:function () {"," editor.execCommand(cmd);"," },"," theme:editor.options.theme,"," showText:false"," });"," editorui.buttons[cmd] = ui;"," editor.addListener('selectionchange', function (type, causeByUi, uiReady) {"," var state = editor.queryCommandState(cmd);"," if (state == -1) {"," ui.setDisabled(true);"," ui.setChecked(false);"," } else {"," if (!uiReady) {"," ui.setDisabled(false);"," ui.setChecked(state);"," }"," }"," });"," return ui;"," };"," }(ci);"," }",""," //清除文档"," editorui.cleardoc = function (editor) {"," var ui = new editorui.Button({"," className:'edui-for-cleardoc',"," title:editor.options.labelMap.cleardoc || editor.getLang(\"labelMap.cleardoc\") || '',"," theme:editor.options.theme,"," onclick:function () {"," if (confirm(editor.getLang(\"confirmClear\"))) {"," editor.execCommand('cleardoc');"," }"," }"," });"," editorui.buttons[\"cleardoc\"] = ui;"," editor.addListener('selectionchange', function () {"," ui.setDisabled(editor.queryCommandState('cleardoc') == -1);"," });"," return ui;"," };",""," //排版,图片排版,文字方向"," var typeset = {"," 'justify':['left', 'right', 'center', 'justify'],"," 'imagefloat':['none', 'left', 'center', 'right'],"," 'directionality':['ltr', 'rtl']"," };",""," for (var p in typeset) {",""," (function (cmd, val) {"," for (var i = 0, ci; ci = val[i++];) {"," (function (cmd2) {"," editorui[cmd.replace('float', '') + cmd2] = function (editor) {"," var ui = new editorui.Button({"," className:'edui-for-' + cmd.replace('float', '') + cmd2,"," title:editor.options.labelMap[cmd.replace('float', '') + cmd2] || editor.getLang(\"labelMap.\" + cmd.replace('float', '') + cmd2) || '',"," theme:editor.options.theme,"," onclick:function () {"," editor.execCommand(cmd, cmd2);"," }"," });"," editorui.buttons[cmd] = ui;"," editor.addListener('selectionchange', function (type, causeByUi, uiReady) {"," ui.setDisabled(editor.queryCommandState(cmd) == -1);"," ui.setChecked(editor.queryCommandValue(cmd) == cmd2 && !uiReady);"," });"," return ui;"," };"," })(ci)"," }"," })(p, typeset[p])"," }",""," //字体颜色和背景颜色"," for (var i = 0, ci; ci = ['backcolor', 'forecolor'][i++];) {"," editorui[ci] = function (cmd) {"," return function (editor) {"," var ui = new editorui.ColorButton({"," className:'edui-for-' + cmd,"," color:'default',"," title:editor.options.labelMap[cmd] || editor.getLang(\"labelMap.\" + cmd) || '',"," editor:editor,"," onpickcolor:function (t, color) {"," editor.execCommand(cmd, color);"," },"," onpicknocolor:function () {"," editor.execCommand(cmd, 'default');"," this.setColor('transparent');"," this.color = 'default';"," },"," onbuttonclick:function () {"," editor.execCommand(cmd, this.color);"," }"," });"," editorui.buttons[cmd] = ui;"," editor.addListener('selectionchange', function () {"," ui.setDisabled(editor.queryCommandState(cmd) == -1);"," });"," return ui;"," };"," }(ci);"," }","",""," var dialogBtns = {"," noOk:['searchreplace', 'help', 'spechars', 'webapp'],"," ok:['attachment', 'anchor', 'link', 'insertimage', 'map', 'gmap', 'insertframe', 'wordimage',"," 'insertvideo', 'insertframe', 'edittip', 'edittable', 'edittd', 'scrawl', 'template', 'music', 'background']",""," };",""," for (var p in dialogBtns) {"," (function (type, vals) {"," for (var i = 0, ci; ci = vals[i++];) {"," //todo opera下存在问题"," if (browser.opera && ci === \"searchreplace\") {"," continue;"," }"," (function (cmd) {"," editorui[cmd] = function (editor, iframeUrl, title) {"," iframeUrl = iframeUrl || (editor.options.iframeUrlMap || {})[cmd] || iframeUrlMap[cmd];"," title = editor.options.labelMap[cmd] || editor.getLang(\"labelMap.\" + cmd) || '';",""," var dialog;"," //没有iframeUrl不创建dialog"," if (iframeUrl) {"," dialog = new editorui.Dialog(utils.extend({"," iframeUrl:editor.ui.mapUrl(iframeUrl),"," editor:editor,"," className:'edui-for-' + cmd,"," title:title,"," holdScroll: cmd === 'insertimage',"," closeDialog:editor.getLang(\"closeDialog\")"," }, type == 'ok' ? {"," buttons:["," {"," className:'edui-okbutton',"," label:editor.getLang(\"ok\"),"," editor:editor,"," onclick:function () {"," dialog.close(true);"," }"," },"," {"," className:'edui-cancelbutton',"," label:editor.getLang(\"cancel\"),"," editor:editor,"," onclick:function () {"," dialog.close(false);"," }"," }"," ]"," } : {}));",""," editor.ui._dialogs[cmd + \"Dialog\"] = dialog;"," }",""," var ui = new editorui.Button({"," className:'edui-for-' + cmd,"," title:title,"," onclick:function () {"," if (dialog) {"," switch (cmd) {"," case \"wordimage\":"," editor.execCommand(\"wordimage\", \"word_img\");"," if (editor.word_img) {"," dialog.render();"," dialog.open();"," }"," break;"," case \"scrawl\":"," if (editor.queryCommandState(\"scrawl\") != -1) {"," dialog.render();"," dialog.open();"," }",""," break;"," default:"," dialog.render();"," dialog.open();"," }"," }"," },"," theme:editor.options.theme,"," disabled:cmd == 'scrawl' && editor.queryCommandState(\"scrawl\") == -1"," });"," editorui.buttons[cmd] = ui;"," editor.addListener('selectionchange', function () {"," //只存在于右键菜单而无工具栏按钮的ui不需要检测状态"," var unNeedCheckState = {'edittable':1};"," if (cmd in unNeedCheckState)return;",""," var state = editor.queryCommandState(cmd);"," if (ui.getDom()) {"," ui.setDisabled(state == -1);"," ui.setChecked(state);"," }",""," });",""," return ui;"," };"," })(ci.toLowerCase())"," }"," })(p, dialogBtns[p])"," }",""," editorui.snapscreen = function (editor, iframeUrl, title) {"," title = editor.options.labelMap['snapscreen'] || editor.getLang(\"labelMap.snapscreen\") || '';"," var ui = new editorui.Button({"," className:'edui-for-snapscreen',"," title:title,"," onclick:function () {"," editor.execCommand(\"snapscreen\");"," },"," theme:editor.options.theme",""," });"," editorui.buttons['snapscreen'] = ui;"," iframeUrl = iframeUrl || (editor.options.iframeUrlMap || {})[\"snapscreen\"] || iframeUrlMap[\"snapscreen\"];"," if (iframeUrl) {"," var dialog = new editorui.Dialog({"," iframeUrl:editor.ui.mapUrl(iframeUrl),"," editor:editor,"," className:'edui-for-snapscreen',"," title:title,"," buttons:["," {"," className:'edui-okbutton',"," label:editor.getLang(\"ok\"),"," editor:editor,"," onclick:function () {"," dialog.close(true);"," }"," },"," {"," className:'edui-cancelbutton',"," label:editor.getLang(\"cancel\"),"," editor:editor,"," onclick:function () {"," dialog.close(false);"," }"," }"," ]",""," });"," dialog.render();"," editor.ui._dialogs[\"snapscreenDialog\"] = dialog;"," }"," editor.addListener('selectionchange', function () {"," ui.setDisabled(editor.queryCommandState('snapscreen') == -1);"," });"," return ui;"," };",""," editorui.insertcode = function (editor, list, title) {"," list = editor.options['insertcode'] || [];"," title = editor.options.labelMap['insertcode'] || editor.getLang(\"labelMap.insertcode\") || '';"," // if (!list.length) return;"," var items = [];"," utils.each(list,function(key,val){"," items.push({"," label:key,"," value:val,"," theme:editor.options.theme,"," renderLabelHtml:function () {"," return '<div class=\"edui-label %%-label\" >' + (this.label || '') + '</div>';"," }"," });"," });",""," var ui = new editorui.Combox({"," editor:editor,"," items:items,"," onselect:function (t, index) {"," editor.execCommand('insertcode', this.items[index].value);"," },"," onbuttonclick:function () {"," this.showPopup();"," },"," title:title,"," initValue:title,"," className:'edui-for-insertcode',"," indexByValue:function (value) {"," if (value) {"," for (var i = 0, ci; ci = this.items[i]; i++) {"," if (ci.value.indexOf(value) != -1)"," return i;"," }"," }",""," return -1;"," }"," });"," editorui.buttons['insertcode'] = ui;"," editor.addListener('selectionchange', function (type, causeByUi, uiReady) {"," if (!uiReady) {"," var state = editor.queryCommandState('insertcode');"," if (state == -1) {"," ui.setDisabled(true);"," } else {"," ui.setDisabled(false);"," var value = editor.queryCommandValue('insertcode');"," if(!value){"," ui.setValue(title);"," return;"," }"," //trace:1871 ie下从源码模式切换回来时,字体会带单引号,而且会有逗号"," value && (value = value.replace(/['\"]/g, '').split(',')[0]);"," ui.setValue(value);",""," }"," }",""," });"," return ui;"," };"," editorui.fontfamily = function (editor, list, title) {",""," list = editor.options['fontfamily'] || [];"," title = editor.options.labelMap['fontfamily'] || editor.getLang(\"labelMap.fontfamily\") || '';"," if (!list.length) return;"," for (var i = 0, ci, items = []; ci = list[i]; i++) {"," var langLabel = editor.getLang('fontfamily')[ci.name] || \"\";"," (function (key, val) {"," items.push({"," label:key,"," value:val,"," theme:editor.options.theme,"," renderLabelHtml:function () {"," return '<div class=\"edui-label %%-label\" style=\"font-family:' +"," utils.unhtml(this.value) + '\">' + (this.label || '') + '</div>';"," }"," });"," })(ci.label || langLabel, ci.val)"," }"," var ui = new editorui.Combox({"," editor:editor,"," items:items,"," onselect:function (t, index) {"," editor.execCommand('FontFamily', this.items[index].value);"," },"," onbuttonclick:function () {"," this.showPopup();"," },"," title:title,"," initValue:title,"," className:'edui-for-fontfamily',"," indexByValue:function (value) {"," if (value) {"," for (var i = 0, ci; ci = this.items[i]; i++) {"," if (ci.value.indexOf(value) != -1)"," return i;"," }"," }",""," return -1;"," }"," });"," editorui.buttons['fontfamily'] = ui;"," editor.addListener('selectionchange', function (type, causeByUi, uiReady) {"," if (!uiReady) {"," var state = editor.queryCommandState('FontFamily');"," if (state == -1) {"," ui.setDisabled(true);"," } else {"," ui.setDisabled(false);"," var value = editor.queryCommandValue('FontFamily');"," //trace:1871 ie下从源码模式切换回来时,字体会带单引号,而且会有逗号"," value && (value = value.replace(/['\"]/g, '').split(',')[0]);"," ui.setValue(value);",""," }"," }",""," });"," return ui;"," };",""," editorui.fontsize = function (editor, list, title) {"," title = editor.options.labelMap['fontsize'] || editor.getLang(\"labelMap.fontsize\") || '';"," list = list || editor.options['fontsize'] || [];"," if (!list.length) return;"," var items = [];"," for (var i = 0; i < list.length; i++) {"," var size = list[i] + 'px';"," items.push({"," label:size,"," value:size,"," theme:editor.options.theme,"," renderLabelHtml:function () {"," return '<div class=\"edui-label %%-label\" style=\"line-height:1;font-size:' +"," this.value + '\">' + (this.label || '') + '</div>';"," }"," });"," }"," var ui = new editorui.Combox({"," editor:editor,"," items:items,"," title:title,"," initValue:title,"," onselect:function (t, index) {"," editor.execCommand('FontSize', this.items[index].value);"," },"," onbuttonclick:function () {"," this.showPopup();"," },"," className:'edui-for-fontsize'"," });"," editorui.buttons['fontsize'] = ui;"," editor.addListener('selectionchange', function (type, causeByUi, uiReady) {"," if (!uiReady) {"," var state = editor.queryCommandState('FontSize');"," if (state == -1) {"," ui.setDisabled(true);"," } else {"," ui.setDisabled(false);"," ui.setValue(editor.queryCommandValue('FontSize'));"," }"," }",""," });"," return ui;"," };",""," editorui.paragraph = function (editor, list, title) {"," title = editor.options.labelMap['paragraph'] || editor.getLang(\"labelMap.paragraph\") || '';"," list = editor.options['paragraph'] || [];"," if (utils.isEmptyObject(list)) return;"," var items = [];"," for (var i in list) {"," items.push({"," value:i,"," label:list[i] || editor.getLang(\"paragraph\")[i],"," theme:editor.options.theme,"," renderLabelHtml:function () {"," return '<div class=\"edui-label %%-label\"><span class=\"edui-for-' + this.value + '\">' + (this.label || '') + '</span></div>';"," }"," })"," }"," var ui = new editorui.Combox({"," editor:editor,"," items:items,"," title:title,"," initValue:title,"," className:'edui-for-paragraph',"," onselect:function (t, index) {"," editor.execCommand('Paragraph', this.items[index].value);"," },"," onbuttonclick:function () {"," this.showPopup();"," }"," });"," editorui.buttons['paragraph'] = ui;"," editor.addListener('selectionchange', function (type, causeByUi, uiReady) {"," if (!uiReady) {"," var state = editor.queryCommandState('Paragraph');"," if (state == -1) {"," ui.setDisabled(true);"," } else {"," ui.setDisabled(false);"," var value = editor.queryCommandValue('Paragraph');"," var index = ui.indexByValue(value);"," if (index != -1) {"," ui.setValue(value);"," } else {"," ui.setValue(ui.initValue);"," }"," }"," }",""," });"," return ui;"," };","",""," //自定义标题"," editorui.customstyle = function (editor) {"," var list = editor.options['customstyle'] || [],"," title = editor.options.labelMap['customstyle'] || editor.getLang(\"labelMap.customstyle\") || '';"," if (!list.length)return;"," var langCs = editor.getLang('customstyle');"," for (var i = 0, items = [], t; t = list[i++];) {"," (function (t) {"," var ck = {};"," ck.label = t.label ? t.label : langCs[t.name];"," ck.style = t.style;"," ck.className = t.className;"," ck.tag = t.tag;"," items.push({"," label:ck.label,"," value:ck,"," theme:editor.options.theme,"," renderLabelHtml:function () {"," return '<div class=\"edui-label %%-label\">' + '<' + ck.tag + ' ' + (ck.className ? ' class=\"' + ck.className + '\"' : \"\")"," + (ck.style ? ' style=\"' + ck.style + '\"' : \"\") + '>' + ck.label + \"<\\/\" + ck.tag + \">\""," + '</div>';"," }"," });"," })(t);"," }",""," var ui = new editorui.Combox({"," editor:editor,"," items:items,"," title:title,"," initValue:title,"," className:'edui-for-customstyle',"," onselect:function (t, index) {"," editor.execCommand('customstyle', this.items[index].value);"," },"," onbuttonclick:function () {"," this.showPopup();"," },"," indexByValue:function (value) {"," for (var i = 0, ti; ti = this.items[i++];) {"," if (ti.label == value) {"," return i - 1"," }"," }"," return -1;"," }"," });"," editorui.buttons['customstyle'] = ui;"," editor.addListener('selectionchange', function (type, causeByUi, uiReady) {"," if (!uiReady) {"," var state = editor.queryCommandState('customstyle');"," if (state == -1) {"," ui.setDisabled(true);"," } else {"," ui.setDisabled(false);"," var value = editor.queryCommandValue('customstyle');"," var index = ui.indexByValue(value);"," if (index != -1) {"," ui.setValue(value);"," } else {"," ui.setValue(ui.initValue);"," }"," }"," }",""," });"," return ui;"," };"," editorui.inserttable = function (editor, iframeUrl, title) {"," title = editor.options.labelMap['inserttable'] || editor.getLang(\"labelMap.inserttable\") || '';"," var ui = new editorui.TableButton({"," editor:editor,"," title:title,"," className:'edui-for-inserttable',"," onpicktable:function (t, numCols, numRows) {"," editor.execCommand('InsertTable', {numRows:numRows, numCols:numCols, border:1});"," },"," onbuttonclick:function () {"," this.showPopup();"," }"," });"," editorui.buttons['inserttable'] = ui;"," editor.addListener('selectionchange', function () {"," ui.setDisabled(editor.queryCommandState('inserttable') == -1);"," });"," return ui;"," };",""," editorui.lineheight = function (editor) {"," var val = editor.options.lineheight || [];"," if (!val.length)return;"," for (var i = 0, ci, items = []; ci = val[i++];) {"," items.push({"," //todo:写死了"," label:ci,"," value:ci,"," theme:editor.options.theme,"," onclick:function () {"," editor.execCommand(\"lineheight\", this.value);"," }"," })"," }"," var ui = new editorui.MenuButton({"," editor:editor,"," className:'edui-for-lineheight',"," title:editor.options.labelMap['lineheight'] || editor.getLang(\"labelMap.lineheight\") || '',"," items:items,"," onbuttonclick:function () {"," var value = editor.queryCommandValue('LineHeight') || this.value;"," editor.execCommand(\"LineHeight\", value);"," }"," });"," editorui.buttons['lineheight'] = ui;"," editor.addListener('selectionchange', function () {"," var state = editor.queryCommandState('LineHeight');"," if (state == -1) {"," ui.setDisabled(true);"," } else {"," ui.setDisabled(false);"," var value = editor.queryCommandValue('LineHeight');"," value && ui.setValue((value + '').replace(/cm/, ''));"," ui.setChecked(state)"," }"," });"," return ui;"," };",""," var rowspacings = ['top', 'bottom'];"," for (var r = 0, ri; ri = rowspacings[r++];) {"," (function (cmd) {"," editorui['rowspacing' + cmd] = function (editor) {"," var val = editor.options['rowspacing' + cmd] || [];"," if (!val.length) return null;"," for (var i = 0, ci, items = []; ci = val[i++];) {"," items.push({"," label:ci,"," value:ci,"," theme:editor.options.theme,"," onclick:function () {"," editor.execCommand(\"rowspacing\", this.value, cmd);"," }"," })"," }"," var ui = new editorui.MenuButton({"," editor:editor,"," className:'edui-for-rowspacing' + cmd,"," title:editor.options.labelMap['rowspacing' + cmd] || editor.getLang(\"labelMap.rowspacing\" + cmd) || '',"," items:items,"," onbuttonclick:function () {"," var value = editor.queryCommandValue('rowspacing', cmd) || this.value;"," editor.execCommand(\"rowspacing\", value, cmd);"," }"," });"," editorui.buttons[cmd] = ui;"," editor.addListener('selectionchange', function () {"," var state = editor.queryCommandState('rowspacing', cmd);"," if (state == -1) {"," ui.setDisabled(true);"," } else {"," ui.setDisabled(false);"," var value = editor.queryCommandValue('rowspacing', cmd);"," value && ui.setValue((value + '').replace(/%/, ''));"," ui.setChecked(state)"," }"," });"," return ui;"," }"," })(ri)"," }"," //有序,无序列表"," var lists = ['insertorderedlist', 'insertunorderedlist'];"," for (var l = 0, cl; cl = lists[l++];) {"," (function (cmd) {"," editorui[cmd] = function (editor) {"," var vals = editor.options[cmd],"," _onMenuClick = function () {"," editor.execCommand(cmd, this.value);"," }, items = [];"," for (var i in vals) {"," items.push({"," label:vals[i] || editor.getLang()[cmd][i] || \"\","," value:i,"," theme:editor.options.theme,"," onclick:_onMenuClick"," })"," }"," var ui = new editorui.MenuButton({"," editor:editor,"," className:'edui-for-' + cmd,"," title:editor.getLang(\"labelMap.\" + cmd) || '',"," 'items':items,"," onbuttonclick:function () {"," var value = editor.queryCommandValue(cmd) || this.value;"," editor.execCommand(cmd, value);"," }"," });"," editorui.buttons[cmd] = ui;"," editor.addListener('selectionchange', function () {"," var state = editor.queryCommandState(cmd);"," if (state == -1) {"," ui.setDisabled(true);"," } else {"," ui.setDisabled(false);"," var value = editor.queryCommandValue(cmd);"," ui.setValue(value);"," ui.setChecked(state)"," }"," });"," return ui;"," };"," })(cl)"," }",""," editorui.fullscreen = function (editor, title) {"," title = editor.options.labelMap['fullscreen'] || editor.getLang(\"labelMap.fullscreen\") || '';"," var ui = new editorui.Button({"," className:'edui-for-fullscreen',"," title:title,"," theme:editor.options.theme,"," onclick:function () {"," if (editor.ui) {"," editor.ui.setFullScreen(!editor.ui.isFullScreen());"," }"," this.setChecked(editor.ui.isFullScreen());"," }"," });"," editorui.buttons['fullscreen'] = ui;"," editor.addListener('selectionchange', function () {"," var state = editor.queryCommandState('fullscreen');"," ui.setDisabled(state == -1);"," ui.setChecked(editor.ui.isFullScreen());"," });"," return ui;"," };",""," // 表情"," editorui[\"emotion\"] = function (editor, iframeUrl) {"," var cmd = \"emotion\";"," var ui = new editorui.MultiMenuPop({"," title:editor.options.labelMap[cmd] || editor.getLang(\"labelMap.\" + cmd + \"\") || '',"," editor:editor,"," className:'edui-for-' + cmd,"," iframeUrl:editor.ui.mapUrl(iframeUrl || (editor.options.iframeUrlMap || {})[cmd] || iframeUrlMap[cmd])"," });"," editorui.buttons[cmd] = ui;",""," editor.addListener('selectionchange', function () {"," ui.setDisabled(editor.queryCommandState(cmd) == -1)"," });"," return ui;"," };",""," editorui.autotypeset = function (editor) {"," var ui = new editorui.AutoTypeSetButton({"," editor:editor,"," title:editor.options.labelMap['autotypeset'] || editor.getLang(\"labelMap.autotypeset\") || '',"," className:'edui-for-autotypeset',"," onbuttonclick:function () {"," editor.execCommand('autotypeset')"," }"," });"," editorui.buttons['autotypeset'] = ui;"," editor.addListener('selectionchange', function () {"," ui.setDisabled(editor.queryCommandState('autotypeset') == -1);"," });"," return ui;"," };","","})();"]; +_$jscoverage['ui/editorui.js'][4]++; +(function () { + _$jscoverage['ui/editorui.js'][5]++; + var utils = baidu.editor.utils; + _$jscoverage['ui/editorui.js'][6]++; + var editorui = baidu.editor.ui; + _$jscoverage['ui/editorui.js'][7]++; + var _Dialog = editorui.Dialog; + _$jscoverage['ui/editorui.js'][8]++; + editorui.buttons = {}; + _$jscoverage['ui/editorui.js'][10]++; + editorui.Dialog = (function (options) { + _$jscoverage['ui/editorui.js'][11]++; + var dialog = new _Dialog(options); + _$jscoverage['ui/editorui.js'][12]++; + dialog.addListener("hide", (function () { + _$jscoverage['ui/editorui.js'][14]++; + if (dialog.editor) { + _$jscoverage['ui/editorui.js'][15]++; + var editor = dialog.editor; + _$jscoverage['ui/editorui.js'][16]++; + try { + _$jscoverage['ui/editorui.js'][17]++; + if (browser.gecko) { + _$jscoverage['ui/editorui.js'][18]++; + var y = editor.window.scrollY, x = editor.window.scrollX; + _$jscoverage['ui/editorui.js'][20]++; + editor.body.focus(); + _$jscoverage['ui/editorui.js'][21]++; + editor.window.scrollTo(x, y); + } + else { + _$jscoverage['ui/editorui.js'][23]++; + editor.focus(); + } + } + catch (ex) { + } + } +})); + _$jscoverage['ui/editorui.js'][31]++; + return dialog; +}); + _$jscoverage['ui/editorui.js'][34]++; + var iframeUrlMap = {"anchor": "~/dialogs/anchor/anchor.html", "insertimage": "~/dialogs/image/image.html", "link": "~/dialogs/link/link.html", "spechars": "~/dialogs/spechars/spechars.html", "searchreplace": "~/dialogs/searchreplace/searchreplace.html", "map": "~/dialogs/map/map.html", "gmap": "~/dialogs/gmap/gmap.html", "insertvideo": "~/dialogs/video/video.html", "help": "~/dialogs/help/help.html", "emotion": "~/dialogs/emotion/emotion.html", "wordimage": "~/dialogs/wordimage/wordimage.html", "attachment": "~/dialogs/attachment/attachment.html", "insertframe": "~/dialogs/insertframe/insertframe.html", "edittip": "~/dialogs/table/edittip.html", "edittable": "~/dialogs/table/edittable.html", "edittd": "~/dialogs/table/edittd.html", "webapp": "~/dialogs/webapp/webapp.html", "snapscreen": "~/dialogs/snapscreen/snapscreen.html", "scrawl": "~/dialogs/scrawl/scrawl.html", "music": "~/dialogs/music/music.html", "template": "~/dialogs/template/template.html", "background": "~/dialogs/background/background.html"}; + _$jscoverage['ui/editorui.js'][60]++; + var btnCmds = ["undo", "redo", "formatmatch", "bold", "italic", "underline", "fontborder", "touppercase", "tolowercase", "strikethrough", "subscript", "superscript", "source", "indent", "outdent", "blockquote", "pasteplain", "pagebreak", "selectall", "print", "preview", "horizontal", "removeformat", "time", "date", "unlink", "insertparagraphbeforetable", "insertrow", "insertcol", "mergeright", "mergedown", "deleterow", "deletecol", "splittorows", "splittocols", "splittocells", "mergecells", "deletetable"]; + _$jscoverage['ui/editorui.js'][68]++; + for (var i = 0, ci; (ci = btnCmds[(i++)]);) { + _$jscoverage['ui/editorui.js'][69]++; + ci = ci.toLowerCase(); + _$jscoverage['ui/editorui.js'][70]++; + editorui[ci] = (function (cmd) { + _$jscoverage['ui/editorui.js'][71]++; + return (function (editor) { + _$jscoverage['ui/editorui.js'][72]++; + var ui = new (editorui.Button)({className: ("edui-for-" + cmd), title: (editor.options.labelMap[cmd] || editor.getLang(("labelMap." + cmd)) || ""), onclick: (function () { + _$jscoverage['ui/editorui.js'][76]++; + editor.execCommand(cmd); +}), theme: editor.options.theme, showText: false}); + _$jscoverage['ui/editorui.js'][81]++; + editorui.buttons[cmd] = ui; + _$jscoverage['ui/editorui.js'][82]++; + editor.addListener("selectionchange", (function (type, causeByUi, uiReady) { + _$jscoverage['ui/editorui.js'][83]++; + var state = editor.queryCommandState(cmd); + _$jscoverage['ui/editorui.js'][84]++; + if ((state == -1)) { + _$jscoverage['ui/editorui.js'][85]++; + ui.setDisabled(true); + _$jscoverage['ui/editorui.js'][86]++; + ui.setChecked(false); + } + else { + _$jscoverage['ui/editorui.js'][88]++; + if ((! uiReady)) { + _$jscoverage['ui/editorui.js'][89]++; + ui.setDisabled(false); + _$jscoverage['ui/editorui.js'][90]++; + ui.setChecked(state); + } + } +})); + _$jscoverage['ui/editorui.js'][94]++; + return ui; +}); +})(ci); +} + _$jscoverage['ui/editorui.js'][100]++; + editorui.cleardoc = (function (editor) { + _$jscoverage['ui/editorui.js'][101]++; + var ui = new (editorui.Button)({className: "edui-for-cleardoc", title: (editor.options.labelMap.cleardoc || editor.getLang("labelMap.cleardoc") || ""), theme: editor.options.theme, onclick: (function () { + _$jscoverage['ui/editorui.js'][106]++; + if (confirm(editor.getLang("confirmClear"))) { + _$jscoverage['ui/editorui.js'][107]++; + editor.execCommand("cleardoc"); + } +})}); + _$jscoverage['ui/editorui.js'][111]++; + editorui.buttons.cleardoc = ui; + _$jscoverage['ui/editorui.js'][112]++; + editor.addListener("selectionchange", (function () { + _$jscoverage['ui/editorui.js'][113]++; + ui.setDisabled((editor.queryCommandState("cleardoc") == -1)); +})); + _$jscoverage['ui/editorui.js'][115]++; + return ui; +}); + _$jscoverage['ui/editorui.js'][119]++; + var typeset = {"justify": ["left", "right", "center", "justify"], "imagefloat": ["none", "left", "center", "right"], "directionality": ["ltr", "rtl"]}; + _$jscoverage['ui/editorui.js'][125]++; + for (var p in typeset) { + _$jscoverage['ui/editorui.js'][127]++; + (function (cmd, val) { + _$jscoverage['ui/editorui.js'][128]++; + for (var i = 0, ci; (ci = val[(i++)]);) { + _$jscoverage['ui/editorui.js'][129]++; + (function (cmd2) { + _$jscoverage['ui/editorui.js'][130]++; + editorui[(cmd.replace("float", "") + cmd2)] = (function (editor) { + _$jscoverage['ui/editorui.js'][131]++; + var ui = new (editorui.Button)({className: ("edui-for-" + cmd.replace("float", "") + cmd2), title: (editor.options.labelMap[(cmd.replace("float", "") + cmd2)] || editor.getLang(("labelMap." + cmd.replace("float", "") + cmd2)) || ""), theme: editor.options.theme, onclick: (function () { + _$jscoverage['ui/editorui.js'][136]++; + editor.execCommand(cmd, cmd2); +})}); + _$jscoverage['ui/editorui.js'][139]++; + editorui.buttons[cmd] = ui; + _$jscoverage['ui/editorui.js'][140]++; + editor.addListener("selectionchange", (function (type, causeByUi, uiReady) { + _$jscoverage['ui/editorui.js'][141]++; + ui.setDisabled((editor.queryCommandState(cmd) == -1)); + _$jscoverage['ui/editorui.js'][142]++; + ui.setChecked(((editor.queryCommandValue(cmd) == cmd2) && (! uiReady))); +})); + _$jscoverage['ui/editorui.js'][144]++; + return ui; +}); +})(ci); +} +})(p, typeset[p]); +} + _$jscoverage['ui/editorui.js'][152]++; + for (var i = 0, ci = ci; (ci = ["backcolor", "forecolor"][(i++)]);) { + _$jscoverage['ui/editorui.js'][153]++; + editorui[ci] = (function (cmd) { + _$jscoverage['ui/editorui.js'][154]++; + return (function (editor) { + _$jscoverage['ui/editorui.js'][155]++; + var ui = new (editorui.ColorButton)({className: ("edui-for-" + cmd), color: "default", title: (editor.options.labelMap[cmd] || editor.getLang(("labelMap." + cmd)) || ""), editor: editor, onpickcolor: (function (t, color) { + _$jscoverage['ui/editorui.js'][161]++; + editor.execCommand(cmd, color); +}), onpicknocolor: (function () { + _$jscoverage['ui/editorui.js'][164]++; + editor.execCommand(cmd, "default"); + _$jscoverage['ui/editorui.js'][165]++; + this.setColor("transparent"); + _$jscoverage['ui/editorui.js'][166]++; + this.color = "default"; +}), onbuttonclick: (function () { + _$jscoverage['ui/editorui.js'][169]++; + editor.execCommand(cmd, this.color); +})}); + _$jscoverage['ui/editorui.js'][172]++; + editorui.buttons[cmd] = ui; + _$jscoverage['ui/editorui.js'][173]++; + editor.addListener("selectionchange", (function () { + _$jscoverage['ui/editorui.js'][174]++; + ui.setDisabled((editor.queryCommandState(cmd) == -1)); +})); + _$jscoverage['ui/editorui.js'][176]++; + return ui; +}); +})(ci); +} + _$jscoverage['ui/editorui.js'][182]++; + var dialogBtns = {noOk: ["searchreplace", "help", "spechars", "webapp"], ok: ["attachment", "anchor", "link", "insertimage", "map", "gmap", "insertframe", "wordimage", "insertvideo", "insertframe", "edittip", "edittable", "edittd", "scrawl", "template", "music", "background"]}; + _$jscoverage['ui/editorui.js'][189]++; + for (var p = p in dialogBtns) { + _$jscoverage['ui/editorui.js'][190]++; + (function (type, vals) { + _$jscoverage['ui/editorui.js'][191]++; + for (var i = 0, ci; (ci = vals[(i++)]);) { + _$jscoverage['ui/editorui.js'][193]++; + if ((browser.opera && (ci === "searchreplace"))) { + _$jscoverage['ui/editorui.js'][194]++; + continue; + } + _$jscoverage['ui/editorui.js'][196]++; + (function (cmd) { + _$jscoverage['ui/editorui.js'][197]++; + editorui[cmd] = (function (editor, iframeUrl, title) { + _$jscoverage['ui/editorui.js'][198]++; + iframeUrl = (iframeUrl || (editor.options.iframeUrlMap || {})[cmd] || iframeUrlMap[cmd]); + _$jscoverage['ui/editorui.js'][199]++; + title = (editor.options.labelMap[cmd] || editor.getLang(("labelMap." + cmd)) || ""); + _$jscoverage['ui/editorui.js'][201]++; + var dialog; + _$jscoverage['ui/editorui.js'][203]++; + if (iframeUrl) { + _$jscoverage['ui/editorui.js'][204]++; + dialog = new (editorui.Dialog)(utils.extend({iframeUrl: editor.ui.mapUrl(iframeUrl), editor: editor, className: ("edui-for-" + cmd), title: title, holdScroll: (cmd === "insertimage"), closeDialog: editor.getLang("closeDialog")}, ((type == "ok")? {buttons: [{className: "edui-okbutton", label: editor.getLang("ok"), editor: editor, onclick: (function () { + _$jscoverage['ui/editorui.js'][218]++; + dialog.close(true); +})}, {className: "edui-cancelbutton", label: editor.getLang("cancel"), editor: editor, onclick: (function () { + _$jscoverage['ui/editorui.js'][226]++; + dialog.close(false); +})}]}: {}))); + _$jscoverage['ui/editorui.js'][232]++; + editor.ui._dialogs[(cmd + "Dialog")] = dialog; + } + _$jscoverage['ui/editorui.js'][235]++; + var ui = new (editorui.Button)({className: ("edui-for-" + cmd), title: title, onclick: (function () { + _$jscoverage['ui/editorui.js'][239]++; + if (dialog) { + _$jscoverage['ui/editorui.js'][240]++; + switch (cmd) { + case "wordimage": + _$jscoverage['ui/editorui.js'][242]++; + editor.execCommand("wordimage", "word_img"); + _$jscoverage['ui/editorui.js'][243]++; + if (editor.word_img) { + _$jscoverage['ui/editorui.js'][244]++; + dialog.render(); + _$jscoverage['ui/editorui.js'][245]++; + dialog.open(); + } + _$jscoverage['ui/editorui.js'][247]++; + break; + case "scrawl": + _$jscoverage['ui/editorui.js'][249]++; + if ((editor.queryCommandState("scrawl") != -1)) { + _$jscoverage['ui/editorui.js'][250]++; + dialog.render(); + _$jscoverage['ui/editorui.js'][251]++; + dialog.open(); + } + _$jscoverage['ui/editorui.js'][254]++; + break; + default: + _$jscoverage['ui/editorui.js'][256]++; + dialog.render(); + _$jscoverage['ui/editorui.js'][257]++; + dialog.open(); + } + } +}), theme: editor.options.theme, disabled: ((cmd == "scrawl") && (editor.queryCommandState("scrawl") == -1))}); + _$jscoverage['ui/editorui.js'][264]++; + editorui.buttons[cmd] = ui; + _$jscoverage['ui/editorui.js'][265]++; + editor.addListener("selectionchange", (function () { + _$jscoverage['ui/editorui.js'][267]++; + var unNeedCheckState = {"edittable": 1}; + _$jscoverage['ui/editorui.js'][268]++; + if ((cmd in unNeedCheckState)) { + _$jscoverage['ui/editorui.js'][268]++; + return; + } + _$jscoverage['ui/editorui.js'][270]++; + var state = editor.queryCommandState(cmd); + _$jscoverage['ui/editorui.js'][271]++; + if (ui.getDom()) { + _$jscoverage['ui/editorui.js'][272]++; + ui.setDisabled((state == -1)); + _$jscoverage['ui/editorui.js'][273]++; + ui.setChecked(state); + } +})); + _$jscoverage['ui/editorui.js'][278]++; + return ui; +}); +})(ci.toLowerCase()); +} +})(p, dialogBtns[p]); +} + _$jscoverage['ui/editorui.js'][285]++; + editorui.snapscreen = (function (editor, iframeUrl, title) { + _$jscoverage['ui/editorui.js'][286]++; + title = (editor.options.labelMap.snapscreen || editor.getLang("labelMap.snapscreen") || ""); + _$jscoverage['ui/editorui.js'][287]++; + var ui = new (editorui.Button)({className: "edui-for-snapscreen", title: title, onclick: (function () { + _$jscoverage['ui/editorui.js'][291]++; + editor.execCommand("snapscreen"); +}), theme: editor.options.theme}); + _$jscoverage['ui/editorui.js'][296]++; + editorui.buttons.snapscreen = ui; + _$jscoverage['ui/editorui.js'][297]++; + iframeUrl = (iframeUrl || (editor.options.iframeUrlMap || {}).snapscreen || iframeUrlMap.snapscreen); + _$jscoverage['ui/editorui.js'][298]++; + if (iframeUrl) { + _$jscoverage['ui/editorui.js'][299]++; + var dialog = new (editorui.Dialog)({iframeUrl: editor.ui.mapUrl(iframeUrl), editor: editor, className: "edui-for-snapscreen", title: title, buttons: [{className: "edui-okbutton", label: editor.getLang("ok"), editor: editor, onclick: (function () { + _$jscoverage['ui/editorui.js'][310]++; + dialog.close(true); +})}, {className: "edui-cancelbutton", label: editor.getLang("cancel"), editor: editor, onclick: (function () { + _$jscoverage['ui/editorui.js'][318]++; + dialog.close(false); +})}]}); + _$jscoverage['ui/editorui.js'][324]++; + dialog.render(); + _$jscoverage['ui/editorui.js'][325]++; + editor.ui._dialogs.snapscreenDialog = dialog; + } + _$jscoverage['ui/editorui.js'][327]++; + editor.addListener("selectionchange", (function () { + _$jscoverage['ui/editorui.js'][328]++; + ui.setDisabled((editor.queryCommandState("snapscreen") == -1)); +})); + _$jscoverage['ui/editorui.js'][330]++; + return ui; +}); + _$jscoverage['ui/editorui.js'][333]++; + editorui.insertcode = (function (editor, list, title) { + _$jscoverage['ui/editorui.js'][334]++; + list = (editor.options.insertcode || []); + _$jscoverage['ui/editorui.js'][335]++; + title = (editor.options.labelMap.insertcode || editor.getLang("labelMap.insertcode") || ""); + _$jscoverage['ui/editorui.js'][337]++; + var items = []; + _$jscoverage['ui/editorui.js'][338]++; + utils.each(list, (function (key, val) { + _$jscoverage['ui/editorui.js'][339]++; + items.push({label: key, value: val, theme: editor.options.theme, renderLabelHtml: (function () { + _$jscoverage['ui/editorui.js'][344]++; + return ("
" + (this.label || "") + "
"); +})}); +})); + _$jscoverage['ui/editorui.js'][349]++; + var ui = new (editorui.Combox)({editor: editor, items: items, onselect: (function (t, index) { + _$jscoverage['ui/editorui.js'][353]++; + editor.execCommand("insertcode", this.items[index].value); +}), onbuttonclick: (function () { + _$jscoverage['ui/editorui.js'][356]++; + this.showPopup(); +}), title: title, initValue: title, className: "edui-for-insertcode", indexByValue: (function (value) { + _$jscoverage['ui/editorui.js'][362]++; + if (value) { + _$jscoverage['ui/editorui.js'][363]++; + for (var i = 0, ci; (ci = this.items[i]); (i++)) { + _$jscoverage['ui/editorui.js'][364]++; + if ((ci.value.indexOf(value) != -1)) { + _$jscoverage['ui/editorui.js'][365]++; + return i; + } +} + } + _$jscoverage['ui/editorui.js'][369]++; + return -1; +})}); + _$jscoverage['ui/editorui.js'][372]++; + editorui.buttons.insertcode = ui; + _$jscoverage['ui/editorui.js'][373]++; + editor.addListener("selectionchange", (function (type, causeByUi, uiReady) { + _$jscoverage['ui/editorui.js'][374]++; + if ((! uiReady)) { + _$jscoverage['ui/editorui.js'][375]++; + var state = editor.queryCommandState("insertcode"); + _$jscoverage['ui/editorui.js'][376]++; + if ((state == -1)) { + _$jscoverage['ui/editorui.js'][377]++; + ui.setDisabled(true); + } + else { + _$jscoverage['ui/editorui.js'][379]++; + ui.setDisabled(false); + _$jscoverage['ui/editorui.js'][380]++; + var value = editor.queryCommandValue("insertcode"); + _$jscoverage['ui/editorui.js'][381]++; + if ((! value)) { + _$jscoverage['ui/editorui.js'][382]++; + ui.setValue(title); + _$jscoverage['ui/editorui.js'][383]++; + return; + } + _$jscoverage['ui/editorui.js'][386]++; + (value && (value = value.replace(/['"]/g, "").split(",")[0])); + _$jscoverage['ui/editorui.js'][387]++; + ui.setValue(value); + } + } +})); + _$jscoverage['ui/editorui.js'][393]++; + return ui; +}); + _$jscoverage['ui/editorui.js'][395]++; + editorui.fontfamily = (function (editor, list, title) { + _$jscoverage['ui/editorui.js'][397]++; + list = (editor.options.fontfamily || []); + _$jscoverage['ui/editorui.js'][398]++; + title = (editor.options.labelMap.fontfamily || editor.getLang("labelMap.fontfamily") || ""); + _$jscoverage['ui/editorui.js'][399]++; + if ((! list.length)) { + _$jscoverage['ui/editorui.js'][399]++; + return; + } + _$jscoverage['ui/editorui.js'][400]++; + for (var i = 0, ci, items = []; (ci = list[i]); (i++)) { + _$jscoverage['ui/editorui.js'][401]++; + var langLabel = (editor.getLang("fontfamily")[ci.name] || ""); + _$jscoverage['ui/editorui.js'][402]++; + (function (key, val) { + _$jscoverage['ui/editorui.js'][403]++; + items.push({label: key, value: val, theme: editor.options.theme, renderLabelHtml: (function () { + _$jscoverage['ui/editorui.js'][408]++; + return ("
" + (this.label || "") + "
"); +})}); +})((ci.label || langLabel), ci.val); +} + _$jscoverage['ui/editorui.js'][414]++; + var ui = new (editorui.Combox)({editor: editor, items: items, onselect: (function (t, index) { + _$jscoverage['ui/editorui.js'][418]++; + editor.execCommand("FontFamily", this.items[index].value); +}), onbuttonclick: (function () { + _$jscoverage['ui/editorui.js'][421]++; + this.showPopup(); +}), title: title, initValue: title, className: "edui-for-fontfamily", indexByValue: (function (value) { + _$jscoverage['ui/editorui.js'][427]++; + if (value) { + _$jscoverage['ui/editorui.js'][428]++; + for (var i = 0, ci; (ci = this.items[i]); (i++)) { + _$jscoverage['ui/editorui.js'][429]++; + if ((ci.value.indexOf(value) != -1)) { + _$jscoverage['ui/editorui.js'][430]++; + return i; + } +} + } + _$jscoverage['ui/editorui.js'][434]++; + return -1; +})}); + _$jscoverage['ui/editorui.js'][437]++; + editorui.buttons.fontfamily = ui; + _$jscoverage['ui/editorui.js'][438]++; + editor.addListener("selectionchange", (function (type, causeByUi, uiReady) { + _$jscoverage['ui/editorui.js'][439]++; + if ((! uiReady)) { + _$jscoverage['ui/editorui.js'][440]++; + var state = editor.queryCommandState("FontFamily"); + _$jscoverage['ui/editorui.js'][441]++; + if ((state == -1)) { + _$jscoverage['ui/editorui.js'][442]++; + ui.setDisabled(true); + } + else { + _$jscoverage['ui/editorui.js'][444]++; + ui.setDisabled(false); + _$jscoverage['ui/editorui.js'][445]++; + var value = editor.queryCommandValue("FontFamily"); + _$jscoverage['ui/editorui.js'][447]++; + (value && (value = value.replace(/['"]/g, "").split(",")[0])); + _$jscoverage['ui/editorui.js'][448]++; + ui.setValue(value); + } + } +})); + _$jscoverage['ui/editorui.js'][454]++; + return ui; +}); + _$jscoverage['ui/editorui.js'][457]++; + editorui.fontsize = (function (editor, list, title) { + _$jscoverage['ui/editorui.js'][458]++; + title = (editor.options.labelMap.fontsize || editor.getLang("labelMap.fontsize") || ""); + _$jscoverage['ui/editorui.js'][459]++; + list = (list || editor.options.fontsize || []); + _$jscoverage['ui/editorui.js'][460]++; + if ((! list.length)) { + _$jscoverage['ui/editorui.js'][460]++; + return; + } + _$jscoverage['ui/editorui.js'][461]++; + var items = []; + _$jscoverage['ui/editorui.js'][462]++; + for (var i = 0; (i < list.length); (i++)) { + _$jscoverage['ui/editorui.js'][463]++; + var size = (list[i] + "px"); + _$jscoverage['ui/editorui.js'][464]++; + items.push({label: size, value: size, theme: editor.options.theme, renderLabelHtml: (function () { + _$jscoverage['ui/editorui.js'][469]++; + return ("
" + (this.label || "") + "
"); +})}); +} + _$jscoverage['ui/editorui.js'][474]++; + var ui = new (editorui.Combox)({editor: editor, items: items, title: title, initValue: title, onselect: (function (t, index) { + _$jscoverage['ui/editorui.js'][480]++; + editor.execCommand("FontSize", this.items[index].value); +}), onbuttonclick: (function () { + _$jscoverage['ui/editorui.js'][483]++; + this.showPopup(); +}), className: "edui-for-fontsize"}); + _$jscoverage['ui/editorui.js'][487]++; + editorui.buttons.fontsize = ui; + _$jscoverage['ui/editorui.js'][488]++; + editor.addListener("selectionchange", (function (type, causeByUi, uiReady) { + _$jscoverage['ui/editorui.js'][489]++; + if ((! uiReady)) { + _$jscoverage['ui/editorui.js'][490]++; + var state = editor.queryCommandState("FontSize"); + _$jscoverage['ui/editorui.js'][491]++; + if ((state == -1)) { + _$jscoverage['ui/editorui.js'][492]++; + ui.setDisabled(true); + } + else { + _$jscoverage['ui/editorui.js'][494]++; + ui.setDisabled(false); + _$jscoverage['ui/editorui.js'][495]++; + ui.setValue(editor.queryCommandValue("FontSize")); + } + } +})); + _$jscoverage['ui/editorui.js'][500]++; + return ui; +}); + _$jscoverage['ui/editorui.js'][503]++; + editorui.paragraph = (function (editor, list, title) { + _$jscoverage['ui/editorui.js'][504]++; + title = (editor.options.labelMap.paragraph || editor.getLang("labelMap.paragraph") || ""); + _$jscoverage['ui/editorui.js'][505]++; + list = (editor.options.paragraph || []); + _$jscoverage['ui/editorui.js'][506]++; + if (utils.isEmptyObject(list)) { + _$jscoverage['ui/editorui.js'][506]++; + return; + } + _$jscoverage['ui/editorui.js'][507]++; + var items = []; + _$jscoverage['ui/editorui.js'][508]++; + for (var i in list) { + _$jscoverage['ui/editorui.js'][509]++; + items.push({value: i, label: (list[i] || editor.getLang("paragraph")[i]), theme: editor.options.theme, renderLabelHtml: (function () { + _$jscoverage['ui/editorui.js'][514]++; + return ("
" + (this.label || "") + "
"); +})}); +} + _$jscoverage['ui/editorui.js'][518]++; + var ui = new (editorui.Combox)({editor: editor, items: items, title: title, initValue: title, className: "edui-for-paragraph", onselect: (function (t, index) { + _$jscoverage['ui/editorui.js'][525]++; + editor.execCommand("Paragraph", this.items[index].value); +}), onbuttonclick: (function () { + _$jscoverage['ui/editorui.js'][528]++; + this.showPopup(); +})}); + _$jscoverage['ui/editorui.js'][531]++; + editorui.buttons.paragraph = ui; + _$jscoverage['ui/editorui.js'][532]++; + editor.addListener("selectionchange", (function (type, causeByUi, uiReady) { + _$jscoverage['ui/editorui.js'][533]++; + if ((! uiReady)) { + _$jscoverage['ui/editorui.js'][534]++; + var state = editor.queryCommandState("Paragraph"); + _$jscoverage['ui/editorui.js'][535]++; + if ((state == -1)) { + _$jscoverage['ui/editorui.js'][536]++; + ui.setDisabled(true); + } + else { + _$jscoverage['ui/editorui.js'][538]++; + ui.setDisabled(false); + _$jscoverage['ui/editorui.js'][539]++; + var value = editor.queryCommandValue("Paragraph"); + _$jscoverage['ui/editorui.js'][540]++; + var index = ui.indexByValue(value); + _$jscoverage['ui/editorui.js'][541]++; + if ((index != -1)) { + _$jscoverage['ui/editorui.js'][542]++; + ui.setValue(value); + } + else { + _$jscoverage['ui/editorui.js'][544]++; + ui.setValue(ui.initValue); + } + } + } +})); + _$jscoverage['ui/editorui.js'][550]++; + return ui; +}); + _$jscoverage['ui/editorui.js'][555]++; + editorui.customstyle = (function (editor) { + _$jscoverage['ui/editorui.js'][556]++; + var list = (editor.options.customstyle || []), title = (editor.options.labelMap.customstyle || editor.getLang("labelMap.customstyle") || ""); + _$jscoverage['ui/editorui.js'][558]++; + if ((! list.length)) { + _$jscoverage['ui/editorui.js'][558]++; + return; + } + _$jscoverage['ui/editorui.js'][559]++; + var langCs = editor.getLang("customstyle"); + _$jscoverage['ui/editorui.js'][560]++; + for (var i = 0, items = [], t; (t = list[(i++)]);) { + _$jscoverage['ui/editorui.js'][561]++; + (function (t) { + _$jscoverage['ui/editorui.js'][562]++; + var ck = {}; + _$jscoverage['ui/editorui.js'][563]++; + ck.label = (t.label? t.label: langCs[t.name]); + _$jscoverage['ui/editorui.js'][564]++; + ck.style = t.style; + _$jscoverage['ui/editorui.js'][565]++; + ck.className = t.className; + _$jscoverage['ui/editorui.js'][566]++; + ck.tag = t.tag; + _$jscoverage['ui/editorui.js'][567]++; + items.push({label: ck.label, value: ck, theme: editor.options.theme, renderLabelHtml: (function () { + _$jscoverage['ui/editorui.js'][572]++; + return ("
" + "<" + ck.tag + " " + (ck.className? (" class=\"" + ck.className + "\""): "") + (ck.style? (" style=\"" + ck.style + "\""): "") + ">" + ck.label + "" + "
"); +})}); +})(t); +} + _$jscoverage['ui/editorui.js'][580]++; + var ui = new (editorui.Combox)({editor: editor, items: items, title: title, initValue: title, className: "edui-for-customstyle", onselect: (function (t, index) { + _$jscoverage['ui/editorui.js'][587]++; + editor.execCommand("customstyle", this.items[index].value); +}), onbuttonclick: (function () { + _$jscoverage['ui/editorui.js'][590]++; + this.showPopup(); +}), indexByValue: (function (value) { + _$jscoverage['ui/editorui.js'][593]++; + for (var i = 0, ti; (ti = this.items[(i++)]);) { + _$jscoverage['ui/editorui.js'][594]++; + if ((ti.label == value)) { + _$jscoverage['ui/editorui.js'][595]++; + return (i - 1); + } +} + _$jscoverage['ui/editorui.js'][598]++; + return -1; +})}); + _$jscoverage['ui/editorui.js'][601]++; + editorui.buttons.customstyle = ui; + _$jscoverage['ui/editorui.js'][602]++; + editor.addListener("selectionchange", (function (type, causeByUi, uiReady) { + _$jscoverage['ui/editorui.js'][603]++; + if ((! uiReady)) { + _$jscoverage['ui/editorui.js'][604]++; + var state = editor.queryCommandState("customstyle"); + _$jscoverage['ui/editorui.js'][605]++; + if ((state == -1)) { + _$jscoverage['ui/editorui.js'][606]++; + ui.setDisabled(true); + } + else { + _$jscoverage['ui/editorui.js'][608]++; + ui.setDisabled(false); + _$jscoverage['ui/editorui.js'][609]++; + var value = editor.queryCommandValue("customstyle"); + _$jscoverage['ui/editorui.js'][610]++; + var index = ui.indexByValue(value); + _$jscoverage['ui/editorui.js'][611]++; + if ((index != -1)) { + _$jscoverage['ui/editorui.js'][612]++; + ui.setValue(value); + } + else { + _$jscoverage['ui/editorui.js'][614]++; + ui.setValue(ui.initValue); + } + } + } +})); + _$jscoverage['ui/editorui.js'][620]++; + return ui; +}); + _$jscoverage['ui/editorui.js'][622]++; + editorui.inserttable = (function (editor, iframeUrl, title) { + _$jscoverage['ui/editorui.js'][623]++; + title = (editor.options.labelMap.inserttable || editor.getLang("labelMap.inserttable") || ""); + _$jscoverage['ui/editorui.js'][624]++; + var ui = new (editorui.TableButton)({editor: editor, title: title, className: "edui-for-inserttable", onpicktable: (function (t, numCols, numRows) { + _$jscoverage['ui/editorui.js'][629]++; + editor.execCommand("InsertTable", {numRows: numRows, numCols: numCols, border: 1}); +}), onbuttonclick: (function () { + _$jscoverage['ui/editorui.js'][632]++; + this.showPopup(); +})}); + _$jscoverage['ui/editorui.js'][635]++; + editorui.buttons.inserttable = ui; + _$jscoverage['ui/editorui.js'][636]++; + editor.addListener("selectionchange", (function () { + _$jscoverage['ui/editorui.js'][637]++; + ui.setDisabled((editor.queryCommandState("inserttable") == -1)); +})); + _$jscoverage['ui/editorui.js'][639]++; + return ui; +}); + _$jscoverage['ui/editorui.js'][642]++; + editorui.lineheight = (function (editor) { + _$jscoverage['ui/editorui.js'][643]++; + var val = (editor.options.lineheight || []); + _$jscoverage['ui/editorui.js'][644]++; + if ((! val.length)) { + _$jscoverage['ui/editorui.js'][644]++; + return; + } + _$jscoverage['ui/editorui.js'][645]++; + for (var i = 0, ci, items = []; (ci = val[(i++)]);) { + _$jscoverage['ui/editorui.js'][646]++; + items.push({label: ci, value: ci, theme: editor.options.theme, onclick: (function () { + _$jscoverage['ui/editorui.js'][652]++; + editor.execCommand("lineheight", this.value); +})}); +} + _$jscoverage['ui/editorui.js'][656]++; + var ui = new (editorui.MenuButton)({editor: editor, className: "edui-for-lineheight", title: (editor.options.labelMap.lineheight || editor.getLang("labelMap.lineheight") || ""), items: items, onbuttonclick: (function () { + _$jscoverage['ui/editorui.js'][662]++; + var value = (editor.queryCommandValue("LineHeight") || this.value); + _$jscoverage['ui/editorui.js'][663]++; + editor.execCommand("LineHeight", value); +})}); + _$jscoverage['ui/editorui.js'][666]++; + editorui.buttons.lineheight = ui; + _$jscoverage['ui/editorui.js'][667]++; + editor.addListener("selectionchange", (function () { + _$jscoverage['ui/editorui.js'][668]++; + var state = editor.queryCommandState("LineHeight"); + _$jscoverage['ui/editorui.js'][669]++; + if ((state == -1)) { + _$jscoverage['ui/editorui.js'][670]++; + ui.setDisabled(true); + } + else { + _$jscoverage['ui/editorui.js'][672]++; + ui.setDisabled(false); + _$jscoverage['ui/editorui.js'][673]++; + var value = editor.queryCommandValue("LineHeight"); + _$jscoverage['ui/editorui.js'][674]++; + (value && ui.setValue((value + "").replace(/cm/, ""))); + _$jscoverage['ui/editorui.js'][675]++; + ui.setChecked(state); + } +})); + _$jscoverage['ui/editorui.js'][678]++; + return ui; +}); + _$jscoverage['ui/editorui.js'][681]++; + var rowspacings = ["top", "bottom"]; + _$jscoverage['ui/editorui.js'][682]++; + for (var r = 0, ri; (ri = rowspacings[(r++)]);) { + _$jscoverage['ui/editorui.js'][683]++; + (function (cmd) { + _$jscoverage['ui/editorui.js'][684]++; + editorui[("rowspacing" + cmd)] = (function (editor) { + _$jscoverage['ui/editorui.js'][685]++; + var val = (editor.options[("rowspacing" + cmd)] || []); + _$jscoverage['ui/editorui.js'][686]++; + if ((! val.length)) { + _$jscoverage['ui/editorui.js'][686]++; + return null; + } + _$jscoverage['ui/editorui.js'][687]++; + for (var i = 0, ci, items = []; (ci = val[(i++)]);) { + _$jscoverage['ui/editorui.js'][688]++; + items.push({label: ci, value: ci, theme: editor.options.theme, onclick: (function () { + _$jscoverage['ui/editorui.js'][693]++; + editor.execCommand("rowspacing", this.value, cmd); +})}); +} + _$jscoverage['ui/editorui.js'][697]++; + var ui = new (editorui.MenuButton)({editor: editor, className: ("edui-for-rowspacing" + cmd), title: (editor.options.labelMap[("rowspacing" + cmd)] || editor.getLang(("labelMap.rowspacing" + cmd)) || ""), items: items, onbuttonclick: (function () { + _$jscoverage['ui/editorui.js'][703]++; + var value = (editor.queryCommandValue("rowspacing", cmd) || this.value); + _$jscoverage['ui/editorui.js'][704]++; + editor.execCommand("rowspacing", value, cmd); +})}); + _$jscoverage['ui/editorui.js'][707]++; + editorui.buttons[cmd] = ui; + _$jscoverage['ui/editorui.js'][708]++; + editor.addListener("selectionchange", (function () { + _$jscoverage['ui/editorui.js'][709]++; + var state = editor.queryCommandState("rowspacing", cmd); + _$jscoverage['ui/editorui.js'][710]++; + if ((state == -1)) { + _$jscoverage['ui/editorui.js'][711]++; + ui.setDisabled(true); + } + else { + _$jscoverage['ui/editorui.js'][713]++; + ui.setDisabled(false); + _$jscoverage['ui/editorui.js'][714]++; + var value = editor.queryCommandValue("rowspacing", cmd); + _$jscoverage['ui/editorui.js'][715]++; + (value && ui.setValue((value + "").replace(/%/, ""))); + _$jscoverage['ui/editorui.js'][716]++; + ui.setChecked(state); + } +})); + _$jscoverage['ui/editorui.js'][719]++; + return ui; +}); +})(ri); +} + _$jscoverage['ui/editorui.js'][724]++; + var lists = ["insertorderedlist", "insertunorderedlist"]; + _$jscoverage['ui/editorui.js'][725]++; + for (var l = 0, cl; (cl = lists[(l++)]);) { + _$jscoverage['ui/editorui.js'][726]++; + (function (cmd) { + _$jscoverage['ui/editorui.js'][727]++; + editorui[cmd] = (function (editor) { + _$jscoverage['ui/editorui.js'][728]++; + var vals = editor.options[cmd], _onMenuClick = (function () { + _$jscoverage['ui/editorui.js'][730]++; + editor.execCommand(cmd, this.value); +}), items = []; + _$jscoverage['ui/editorui.js'][732]++; + for (var i in vals) { + _$jscoverage['ui/editorui.js'][733]++; + items.push({label: (vals[i] || editor.getLang()[cmd][i] || ""), value: i, theme: editor.options.theme, onclick: _onMenuClick}); +} + _$jscoverage['ui/editorui.js'][740]++; + var ui = new (editorui.MenuButton)({editor: editor, className: ("edui-for-" + cmd), title: (editor.getLang(("labelMap." + cmd)) || ""), "items": items, onbuttonclick: (function () { + _$jscoverage['ui/editorui.js'][746]++; + var value = (editor.queryCommandValue(cmd) || this.value); + _$jscoverage['ui/editorui.js'][747]++; + editor.execCommand(cmd, value); +})}); + _$jscoverage['ui/editorui.js'][750]++; + editorui.buttons[cmd] = ui; + _$jscoverage['ui/editorui.js'][751]++; + editor.addListener("selectionchange", (function () { + _$jscoverage['ui/editorui.js'][752]++; + var state = editor.queryCommandState(cmd); + _$jscoverage['ui/editorui.js'][753]++; + if ((state == -1)) { + _$jscoverage['ui/editorui.js'][754]++; + ui.setDisabled(true); + } + else { + _$jscoverage['ui/editorui.js'][756]++; + ui.setDisabled(false); + _$jscoverage['ui/editorui.js'][757]++; + var value = editor.queryCommandValue(cmd); + _$jscoverage['ui/editorui.js'][758]++; + ui.setValue(value); + _$jscoverage['ui/editorui.js'][759]++; + ui.setChecked(state); + } +})); + _$jscoverage['ui/editorui.js'][762]++; + return ui; +}); +})(cl); +} + _$jscoverage['ui/editorui.js'][767]++; + editorui.fullscreen = (function (editor, title) { + _$jscoverage['ui/editorui.js'][768]++; + title = (editor.options.labelMap.fullscreen || editor.getLang("labelMap.fullscreen") || ""); + _$jscoverage['ui/editorui.js'][769]++; + var ui = new (editorui.Button)({className: "edui-for-fullscreen", title: title, theme: editor.options.theme, onclick: (function () { + _$jscoverage['ui/editorui.js'][774]++; + if (editor.ui) { + _$jscoverage['ui/editorui.js'][775]++; + editor.ui.setFullScreen((! editor.ui.isFullScreen())); + } + _$jscoverage['ui/editorui.js'][777]++; + this.setChecked(editor.ui.isFullScreen()); +})}); + _$jscoverage['ui/editorui.js'][780]++; + editorui.buttons.fullscreen = ui; + _$jscoverage['ui/editorui.js'][781]++; + editor.addListener("selectionchange", (function () { + _$jscoverage['ui/editorui.js'][782]++; + var state = editor.queryCommandState("fullscreen"); + _$jscoverage['ui/editorui.js'][783]++; + ui.setDisabled((state == -1)); + _$jscoverage['ui/editorui.js'][784]++; + ui.setChecked(editor.ui.isFullScreen()); +})); + _$jscoverage['ui/editorui.js'][786]++; + return ui; +}); + _$jscoverage['ui/editorui.js'][790]++; + editorui.emotion = (function (editor, iframeUrl) { + _$jscoverage['ui/editorui.js'][791]++; + var cmd = "emotion"; + _$jscoverage['ui/editorui.js'][792]++; + var ui = new (editorui.MultiMenuPop)({title: (editor.options.labelMap[cmd] || editor.getLang(("labelMap." + cmd + "")) || ""), editor: editor, className: ("edui-for-" + cmd), iframeUrl: editor.ui.mapUrl((iframeUrl || (editor.options.iframeUrlMap || {})[cmd] || iframeUrlMap[cmd]))}); + _$jscoverage['ui/editorui.js'][798]++; + editorui.buttons[cmd] = ui; + _$jscoverage['ui/editorui.js'][800]++; + editor.addListener("selectionchange", (function () { + _$jscoverage['ui/editorui.js'][801]++; + ui.setDisabled((editor.queryCommandState(cmd) == -1)); +})); + _$jscoverage['ui/editorui.js'][803]++; + return ui; +}); + _$jscoverage['ui/editorui.js'][806]++; + editorui.autotypeset = (function (editor) { + _$jscoverage['ui/editorui.js'][807]++; + var ui = new (editorui.AutoTypeSetButton)({editor: editor, title: (editor.options.labelMap.autotypeset || editor.getLang("labelMap.autotypeset") || ""), className: "edui-for-autotypeset", onbuttonclick: (function () { + _$jscoverage['ui/editorui.js'][812]++; + editor.execCommand("autotypeset"); +})}); + _$jscoverage['ui/editorui.js'][815]++; + editorui.buttons.autotypeset = ui; + _$jscoverage['ui/editorui.js'][816]++; + editor.addListener("selectionchange", (function () { + _$jscoverage['ui/editorui.js'][817]++; + ui.setDisabled((editor.queryCommandState("autotypeset") == -1)); +})); + _$jscoverage['ui/editorui.js'][819]++; + return ui; +}); +})(); diff --git a/_test/coverage/ui/mask.js b/_test/coverage/ui/mask.js new file mode 100644 index 000000000..c9498ee73 --- /dev/null +++ b/_test/coverage/ui/mask.js @@ -0,0 +1,127 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['ui/mask.js']) { + _$jscoverage['ui/mask.js'] = []; + _$jscoverage['ui/mask.js'][3] = 0; + _$jscoverage['ui/mask.js'][4] = 0; + _$jscoverage['ui/mask.js'][9] = 0; + _$jscoverage['ui/mask.js'][10] = 0; + _$jscoverage['ui/mask.js'][11] = 0; + _$jscoverage['ui/mask.js'][13] = 0; + _$jscoverage['ui/mask.js'][15] = 0; + _$jscoverage['ui/mask.js'][18] = 0; + _$jscoverage['ui/mask.js'][19] = 0; + _$jscoverage['ui/mask.js'][20] = 0; + _$jscoverage['ui/mask.js'][21] = 0; + _$jscoverage['ui/mask.js'][22] = 0; + _$jscoverage['ui/mask.js'][28] = 0; + _$jscoverage['ui/mask.js'][29] = 0; + _$jscoverage['ui/mask.js'][30] = 0; + _$jscoverage['ui/mask.js'][33] = 0; + _$jscoverage['ui/mask.js'][34] = 0; + _$jscoverage['ui/mask.js'][37] = 0; + _$jscoverage['ui/mask.js'][40] = 0; + _$jscoverage['ui/mask.js'][43] = 0; + _$jscoverage['ui/mask.js'][44] = 0; + _$jscoverage['ui/mask.js'][45] = 0; + _$jscoverage['ui/mask.js'][46] = 0; + _$jscoverage['ui/mask.js'][49] = 0; +} +_$jscoverage['ui/mask.js'].source = ["///import core","///import uicore","(function (){"," var utils = baidu.editor.utils,"," domUtils = baidu.editor.dom.domUtils,"," UIBase = baidu.editor.ui.UIBase,"," uiUtils = baidu.editor.ui.uiUtils;"," "," var Mask = baidu.editor.ui.Mask = function (options){"," this.initOptions(options);"," this.initUIBase();"," };"," Mask.prototype = {"," getHtmlTpl: function (){"," return '<div id=\"##\" class=\"edui-mask %%\" onmousedown=\"return $$._onMouseDown(event, this);\"></div>';"," },"," postRender: function (){"," var me = this;"," domUtils.on(window, 'resize', function (){"," setTimeout(function (){"," if (!me.isHidden()) {"," me._fill();"," }"," });"," });"," },"," show: function (zIndex){"," this._fill();"," this.getDom().style.display = '';"," this.getDom().style.zIndex = zIndex;"," },"," hide: function (){"," this.getDom().style.display = 'none';"," this.getDom().style.zIndex = '';"," },"," isHidden: function (){"," return this.getDom().style.display == 'none';"," },"," _onMouseDown: function (){"," return false;"," },"," _fill: function (){"," var el = this.getDom();"," var vpRect = uiUtils.getViewportRect();"," el.style.width = vpRect.width + 'px';"," el.style.height = vpRect.height + 'px';"," }"," };"," utils.inherits(Mask, UIBase);","})();"]; +_$jscoverage['ui/mask.js'][3]++; +(function () { + _$jscoverage['ui/mask.js'][4]++; + var utils = baidu.editor.utils, domUtils = baidu.editor.dom.domUtils, UIBase = baidu.editor.ui.UIBase, uiUtils = baidu.editor.ui.uiUtils; + _$jscoverage['ui/mask.js'][9]++; + var Mask = (baidu.editor.ui.Mask = (function (options) { + _$jscoverage['ui/mask.js'][10]++; + this.initOptions(options); + _$jscoverage['ui/mask.js'][11]++; + this.initUIBase(); +})); + _$jscoverage['ui/mask.js'][13]++; + Mask.prototype = {getHtmlTpl: (function () { + _$jscoverage['ui/mask.js'][15]++; + return "
"; +}), postRender: (function () { + _$jscoverage['ui/mask.js'][18]++; + var me = this; + _$jscoverage['ui/mask.js'][19]++; + domUtils.on(window, "resize", (function () { + _$jscoverage['ui/mask.js'][20]++; + setTimeout((function () { + _$jscoverage['ui/mask.js'][21]++; + if ((! me.isHidden())) { + _$jscoverage['ui/mask.js'][22]++; + me._fill(); + } +})); +})); +}), show: (function (zIndex) { + _$jscoverage['ui/mask.js'][28]++; + this._fill(); + _$jscoverage['ui/mask.js'][29]++; + this.getDom().style.display = ""; + _$jscoverage['ui/mask.js'][30]++; + this.getDom().style.zIndex = zIndex; +}), hide: (function () { + _$jscoverage['ui/mask.js'][33]++; + this.getDom().style.display = "none"; + _$jscoverage['ui/mask.js'][34]++; + this.getDom().style.zIndex = ""; +}), isHidden: (function () { + _$jscoverage['ui/mask.js'][37]++; + return (this.getDom().style.display == "none"); +}), _onMouseDown: (function () { + _$jscoverage['ui/mask.js'][40]++; + return false; +}), _fill: (function () { + _$jscoverage['ui/mask.js'][43]++; + var el = this.getDom(); + _$jscoverage['ui/mask.js'][44]++; + var vpRect = uiUtils.getViewportRect(); + _$jscoverage['ui/mask.js'][45]++; + el.style.width = (vpRect.width + "px"); + _$jscoverage['ui/mask.js'][46]++; + el.style.height = (vpRect.height + "px"); +})}; + _$jscoverage['ui/mask.js'][49]++; + utils.inherits(Mask, UIBase); +})(); diff --git a/_test/coverage/ui/menu.js b/_test/coverage/ui/menu.js new file mode 100644 index 000000000..8f001266a --- /dev/null +++ b/_test/coverage/ui/menu.js @@ -0,0 +1,541 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['ui/menu.js']) { + _$jscoverage['ui/menu.js'] = []; + _$jscoverage['ui/menu.js'][5] = 0; + _$jscoverage['ui/menu.js'][6] = 0; + _$jscoverage['ui/menu.js'][15] = 0; + _$jscoverage['ui/menu.js'][16] = 0; + _$jscoverage['ui/menu.js'][19] = 0; + _$jscoverage['ui/menu.js'][21] = 0; + _$jscoverage['ui/menu.js'][26] = 0; + _$jscoverage['ui/menu.js'][29] = 0; + _$jscoverage['ui/menu.js'][33] = 0; + _$jscoverage['ui/menu.js'][34] = 0; + _$jscoverage['ui/menu.js'][35] = 0; + _$jscoverage['ui/menu.js'][38] = 0; + _$jscoverage['ui/menu.js'][39] = 0; + _$jscoverage['ui/menu.js'][40] = 0; + _$jscoverage['ui/menu.js'][41] = 0; + _$jscoverage['ui/menu.js'][42] = 0; + _$jscoverage['ui/menu.js'][43] = 0; + _$jscoverage['ui/menu.js'][44] = 0; + _$jscoverage['ui/menu.js'][45] = 0; + _$jscoverage['ui/menu.js'][50] = 0; + _$jscoverage['ui/menu.js'][54] = 0; + _$jscoverage['ui/menu.js'][55] = 0; + _$jscoverage['ui/menu.js'][59] = 0; + _$jscoverage['ui/menu.js'][60] = 0; + _$jscoverage['ui/menu.js'][62] = 0; + _$jscoverage['ui/menu.js'][63] = 0; + _$jscoverage['ui/menu.js'][64] = 0; + _$jscoverage['ui/menu.js'][65] = 0; + _$jscoverage['ui/menu.js'][67] = 0; + _$jscoverage['ui/menu.js'][71] = 0; + _$jscoverage['ui/menu.js'][72] = 0; + _$jscoverage['ui/menu.js'][73] = 0; + _$jscoverage['ui/menu.js'][74] = 0; + _$jscoverage['ui/menu.js'][75] = 0; + _$jscoverage['ui/menu.js'][77] = 0; + _$jscoverage['ui/menu.js'][78] = 0; + _$jscoverage['ui/menu.js'][79] = 0; + _$jscoverage['ui/menu.js'][80] = 0; + _$jscoverage['ui/menu.js'][81] = 0; + _$jscoverage['ui/menu.js'][82] = 0; + _$jscoverage['ui/menu.js'][85] = 0; + _$jscoverage['ui/menu.js'][88] = 0; + _$jscoverage['ui/menu.js'][89] = 0; + _$jscoverage['ui/menu.js'][90] = 0; + _$jscoverage['ui/menu.js'][92] = 0; + _$jscoverage['ui/menu.js'][93] = 0; + _$jscoverage['ui/menu.js'][94] = 0; + _$jscoverage['ui/menu.js'][95] = 0; + _$jscoverage['ui/menu.js'][101] = 0; + _$jscoverage['ui/menu.js'][102] = 0; + _$jscoverage['ui/menu.js'][103] = 0; + _$jscoverage['ui/menu.js'][104] = 0; + _$jscoverage['ui/menu.js'][105] = 0; + _$jscoverage['ui/menu.js'][106] = 0; + _$jscoverage['ui/menu.js'][109] = 0; + _$jscoverage['ui/menu.js'][112] = 0; + _$jscoverage['ui/menu.js'][113] = 0; + _$jscoverage['ui/menu.js'][115] = 0; + _$jscoverage['ui/menu.js'][118] = 0; + _$jscoverage['ui/menu.js'][121] = 0; + _$jscoverage['ui/menu.js'][127] = 0; + _$jscoverage['ui/menu.js'][128] = 0; + _$jscoverage['ui/menu.js'][129] = 0; + _$jscoverage['ui/menu.js'][130] = 0; + _$jscoverage['ui/menu.js'][131] = 0; + _$jscoverage['ui/menu.js'][132] = 0; + _$jscoverage['ui/menu.js'][133] = 0; + _$jscoverage['ui/menu.js'][136] = 0; + _$jscoverage['ui/menu.js'][138] = 0; + _$jscoverage['ui/menu.js'][143] = 0; + _$jscoverage['ui/menu.js'][144] = 0; + _$jscoverage['ui/menu.js'][148] = 0; + _$jscoverage['ui/menu.js'][149] = 0; + _$jscoverage['ui/menu.js'][150] = 0; + _$jscoverage['ui/menu.js'][154] = 0; + _$jscoverage['ui/menu.js'][158] = 0; + _$jscoverage['ui/menu.js'][165] = 0; + _$jscoverage['ui/menu.js'][172] = 0; + _$jscoverage['ui/menu.js'][173] = 0; + _$jscoverage['ui/menu.js'][174] = 0; + _$jscoverage['ui/menu.js'][175] = 0; + _$jscoverage['ui/menu.js'][176] = 0; + _$jscoverage['ui/menu.js'][179] = 0; + _$jscoverage['ui/menu.js'][180] = 0; + _$jscoverage['ui/menu.js'][181] = 0; + _$jscoverage['ui/menu.js'][182] = 0; + _$jscoverage['ui/menu.js'][183] = 0; + _$jscoverage['ui/menu.js'][185] = 0; + _$jscoverage['ui/menu.js'][186] = 0; + _$jscoverage['ui/menu.js'][187] = 0; + _$jscoverage['ui/menu.js'][188] = 0; + _$jscoverage['ui/menu.js'][190] = 0; + _$jscoverage['ui/menu.js'][191] = 0; + _$jscoverage['ui/menu.js'][193] = 0; + _$jscoverage['ui/menu.js'][194] = 0; + _$jscoverage['ui/menu.js'][195] = 0; + _$jscoverage['ui/menu.js'][198] = 0; + _$jscoverage['ui/menu.js'][199] = 0; + _$jscoverage['ui/menu.js'][200] = 0; + _$jscoverage['ui/menu.js'][201] = 0; + _$jscoverage['ui/menu.js'][203] = 0; + _$jscoverage['ui/menu.js'][206] = 0; + _$jscoverage['ui/menu.js'][207] = 0; + _$jscoverage['ui/menu.js'][208] = 0; + _$jscoverage['ui/menu.js'][211] = 0; + _$jscoverage['ui/menu.js'][212] = 0; + _$jscoverage['ui/menu.js'][213] = 0; + _$jscoverage['ui/menu.js'][214] = 0; + _$jscoverage['ui/menu.js'][215] = 0; + _$jscoverage['ui/menu.js'][216] = 0; + _$jscoverage['ui/menu.js'][217] = 0; + _$jscoverage['ui/menu.js'][218] = 0; + _$jscoverage['ui/menu.js'][223] = 0; + _$jscoverage['ui/menu.js'][224] = 0; + _$jscoverage['ui/menu.js'][225] = 0; + _$jscoverage['ui/menu.js'][226] = 0; + _$jscoverage['ui/menu.js'][227] = 0; + _$jscoverage['ui/menu.js'][228] = 0; + _$jscoverage['ui/menu.js'][229] = 0; + _$jscoverage['ui/menu.js'][230] = 0; + _$jscoverage['ui/menu.js'][232] = 0; + _$jscoverage['ui/menu.js'][238] = 0; + _$jscoverage['ui/menu.js'][243] = 0; + _$jscoverage['ui/menu.js'][246] = 0; + _$jscoverage['ui/menu.js'][247] = 0; + _$jscoverage['ui/menu.js'][251] = 0; + _$jscoverage['ui/menu.js'][252] = 0; + _$jscoverage['ui/menu.js'][253] = 0; + _$jscoverage['ui/menu.js'][254] = 0; + _$jscoverage['ui/menu.js'][256] = 0; + _$jscoverage['ui/menu.js'][261] = 0; + _$jscoverage['ui/menu.js'][262] = 0; + _$jscoverage['ui/menu.js'][263] = 0; + _$jscoverage['ui/menu.js'][264] = 0; + _$jscoverage['ui/menu.js'][265] = 0; + _$jscoverage['ui/menu.js'][266] = 0; + _$jscoverage['ui/menu.js'][267] = 0; + _$jscoverage['ui/menu.js'][268] = 0; + _$jscoverage['ui/menu.js'][271] = 0; + _$jscoverage['ui/menu.js'][274] = 0; + _$jscoverage['ui/menu.js'][275] = 0; +} +_$jscoverage['ui/menu.js'].source = ["///import core","///import uicore","///import ui\\popup.js","///import ui\\stateful.js","(function () {"," var utils = baidu.editor.utils,"," domUtils = baidu.editor.dom.domUtils,"," uiUtils = baidu.editor.ui.uiUtils,"," UIBase = baidu.editor.ui.UIBase,"," Popup = baidu.editor.ui.Popup,"," Stateful = baidu.editor.ui.Stateful,"," CellAlignPicker = baidu.editor.ui.CellAlignPicker,",""," Menu = baidu.editor.ui.Menu = function (options) {"," this.initOptions(options);"," this.initMenu();"," };",""," var menuSeparator = {"," renderHtml:function () {"," return '<div class=\"edui-menuitem edui-menuseparator\"><div class=\"edui-menuseparator-inner\"></div></div>';"," },"," postRender:function () {"," },"," queryAutoHide:function () {"," return true;"," }"," };"," Menu.prototype = {"," items:null,"," uiName:'menu',"," initMenu:function () {"," this.items = this.items || [];"," this.initPopup();"," this.initItems();"," },"," initItems:function () {"," for (var i = 0; i < this.items.length; i++) {"," var item = this.items[i];"," if (item == '-') {"," this.items[i] = this.getSeparator();"," } else if (!(item instanceof MenuItem)) {"," item.editor = this.editor;"," item.theme = this.editor.options.theme;"," this.items[i] = this.createItem(item);"," }"," }"," },"," getSeparator:function () {"," return menuSeparator;"," },"," createItem:function (item) {"," //新增一个参数menu, 该参数存储了menuItem所对应的menu引用"," item.menu = this;"," return new MenuItem(item);"," },"," _Popup_getContentHtmlTpl:Popup.prototype.getContentHtmlTpl,"," getContentHtmlTpl:function () {"," if (this.items.length == 0) {"," return this._Popup_getContentHtmlTpl();"," }"," var buff = [];"," for (var i = 0; i < this.items.length; i++) {"," var item = this.items[i];"," buff[i] = item.renderHtml();"," }"," return ('<div class=\"%%-body\">' + buff.join('') + '</div>');"," },"," _Popup_postRender:Popup.prototype.postRender,"," postRender:function () {"," var me = this;"," for (var i = 0; i < this.items.length; i++) {"," var item = this.items[i];"," item.ownerMenu = this;"," item.postRender();"," }"," domUtils.on(this.getDom(), 'mouseover', function (evt) {"," evt = evt || event;"," var rel = evt.relatedTarget || evt.fromElement;"," var el = me.getDom();"," if (!uiUtils.contains(el, rel) && el !== rel) {"," me.fireEvent('over');"," }"," });"," this._Popup_postRender();"," },"," queryAutoHide:function (el) {"," if (el) {"," if (uiUtils.contains(this.getDom(), el)) {"," return false;"," }"," for (var i = 0; i < this.items.length; i++) {"," var item = this.items[i];"," if (item.queryAutoHide(el) === false) {"," return false;"," }"," }"," }"," },"," clearItems:function () {"," for (var i = 0; i < this.items.length; i++) {"," var item = this.items[i];"," clearTimeout(item._showingTimer);"," clearTimeout(item._closingTimer);"," if (item.subMenu) {"," item.subMenu.destroy();"," }"," }"," this.items = [];"," },"," destroy:function () {"," if (this.getDom()) {"," domUtils.remove(this.getDom());"," }"," this.clearItems();"," },"," dispose:function () {"," this.destroy();"," }"," };"," utils.inherits(Menu, Popup);",""," /**"," * @update 2013/04/03 hancong03 新增一个参数menu, 该参数存储了menuItem所对应的menu引用"," * @type {Function}"," */"," var MenuItem = baidu.editor.ui.MenuItem = function (options) {"," this.initOptions(options);"," this.initUIBase();"," this.Stateful_init();"," if (this.subMenu && !(this.subMenu instanceof Menu)) {"," if (options.className && options.className.indexOf(\"aligntd\") != -1) {"," var me = this;",""," //获取单元格对齐初始状态"," this.subMenu.selected = this.editor.queryCommandValue( 'cellalignment' );",""," this.subMenu = new Popup({"," content:new CellAlignPicker(this.subMenu),"," parentMenu:me,"," editor:me.editor,"," destroy:function () {"," if (this.getDom()) {"," domUtils.remove(this.getDom());"," }"," }"," });"," this.subMenu.addListener(\"postRenderAfter\", function () {"," domUtils.on(this.getDom(), \"mouseover\", function () {"," me.addState('opened');"," });"," });"," } else {"," this.subMenu = new Menu(this.subMenu);"," }"," }"," };"," MenuItem.prototype = {"," label:'',"," subMenu:null,"," ownerMenu:null,"," uiName:'menuitem',"," alwalysHoverable:true,"," getHtmlTpl:function () {"," return '<div id=\"##\" class=\"%%\" stateful onclick=\"$$._onClick(event, this);\">' +"," '<div class=\"%%-body\">' +"," this.renderLabelHtml() +"," '</div>' +"," '</div>';"," },"," postRender:function () {"," var me = this;"," this.addListener('over', function () {"," me.ownerMenu.fireEvent('submenuover', me);"," if (me.subMenu) {"," me.delayShowSubMenu();"," }"," });"," if (this.subMenu) {"," this.getDom().className += ' edui-hassubmenu';"," this.subMenu.render();"," this.addListener('out', function () {"," me.delayHideSubMenu();"," });"," this.subMenu.addListener('over', function () {"," clearTimeout(me._closingTimer);"," me._closingTimer = null;"," me.addState('opened');"," });"," this.ownerMenu.addListener('hide', function () {"," me.hideSubMenu();"," });"," this.ownerMenu.addListener('submenuover', function (t, subMenu) {"," if (subMenu !== me) {"," me.delayHideSubMenu();"," }"," });"," this.subMenu._bakQueryAutoHide = this.subMenu.queryAutoHide;"," this.subMenu.queryAutoHide = function (el) {"," if (el && uiUtils.contains(me.getDom(), el)) {"," return false;"," }"," return this._bakQueryAutoHide(el);"," };"," }"," this.getDom().style.tabIndex = '-1';"," uiUtils.makeUnselectable(this.getDom());"," this.Stateful_postRender();"," },"," delayShowSubMenu:function () {"," var me = this;"," if (!me.isDisabled()) {"," me.addState('opened');"," clearTimeout(me._showingTimer);"," clearTimeout(me._closingTimer);"," me._closingTimer = null;"," me._showingTimer = setTimeout(function () {"," me.showSubMenu();"," }, 250);"," }"," },"," delayHideSubMenu:function () {"," var me = this;"," if (!me.isDisabled()) {"," me.removeState('opened');"," clearTimeout(me._showingTimer);"," if (!me._closingTimer) {"," me._closingTimer = setTimeout(function () {"," if (!me.hasState('opened')) {"," me.hideSubMenu();"," }"," me._closingTimer = null;"," }, 400);"," }"," }"," },"," renderLabelHtml:function () {"," return '<div class=\"edui-arrow\"></div>' +"," '<div class=\"edui-box edui-icon\"></div>' +"," '<div class=\"edui-box edui-label %%-label\">' + (this.label || '') + '</div>';"," },"," getStateDom:function () {"," return this.getDom();"," },"," queryAutoHide:function (el) {"," if (this.subMenu && this.hasState('opened')) {"," return this.subMenu.queryAutoHide(el);"," }"," },"," _onClick:function (event, this_) {"," if (this.hasState('disabled')) return;"," if (this.fireEvent('click', event, this_) !== false) {"," if (this.subMenu) {"," this.showSubMenu();"," } else {"," Popup.postHide(event);"," }"," }"," },"," showSubMenu:function () {"," var rect = uiUtils.getClientRect(this.getDom());"," rect.right -= 5;"," rect.left += 2;"," rect.width -= 7;"," rect.top -= 4;"," rect.bottom += 4;"," rect.height += 8;"," this.subMenu.showAnchorRect(rect, true, true);"," },"," hideSubMenu:function () {"," this.subMenu.hide();"," }"," };"," utils.inherits(MenuItem, UIBase);"," utils.extend(MenuItem.prototype, Stateful, true);","})();"]; +_$jscoverage['ui/menu.js'][5]++; +(function () { + _$jscoverage['ui/menu.js'][6]++; + var utils = baidu.editor.utils, domUtils = baidu.editor.dom.domUtils, uiUtils = baidu.editor.ui.uiUtils, UIBase = baidu.editor.ui.UIBase, Popup = baidu.editor.ui.Popup, Stateful = baidu.editor.ui.Stateful, CellAlignPicker = baidu.editor.ui.CellAlignPicker, Menu = (baidu.editor.ui.Menu = (function (options) { + _$jscoverage['ui/menu.js'][15]++; + this.initOptions(options); + _$jscoverage['ui/menu.js'][16]++; + this.initMenu(); +})); + _$jscoverage['ui/menu.js'][19]++; + var menuSeparator = {renderHtml: (function () { + _$jscoverage['ui/menu.js'][21]++; + return "
"; +}), postRender: (function () { +}), queryAutoHide: (function () { + _$jscoverage['ui/menu.js'][26]++; + return true; +})}; + _$jscoverage['ui/menu.js'][29]++; + Menu.prototype = {items: null, uiName: "menu", initMenu: (function () { + _$jscoverage['ui/menu.js'][33]++; + this.items = (this.items || []); + _$jscoverage['ui/menu.js'][34]++; + this.initPopup(); + _$jscoverage['ui/menu.js'][35]++; + this.initItems(); +}), initItems: (function () { + _$jscoverage['ui/menu.js'][38]++; + for (var i = 0; (i < this.items.length); (i++)) { + _$jscoverage['ui/menu.js'][39]++; + var item = this.items[i]; + _$jscoverage['ui/menu.js'][40]++; + if ((item == "-")) { + _$jscoverage['ui/menu.js'][41]++; + this.items[i] = this.getSeparator(); + } + else { + _$jscoverage['ui/menu.js'][42]++; + if ((! (item instanceof MenuItem))) { + _$jscoverage['ui/menu.js'][43]++; + item.editor = this.editor; + _$jscoverage['ui/menu.js'][44]++; + item.theme = this.editor.options.theme; + _$jscoverage['ui/menu.js'][45]++; + this.items[i] = this.createItem(item); + } + } +} +}), getSeparator: (function () { + _$jscoverage['ui/menu.js'][50]++; + return menuSeparator; +}), createItem: (function (item) { + _$jscoverage['ui/menu.js'][54]++; + item.menu = this; + _$jscoverage['ui/menu.js'][55]++; + return new MenuItem(item); +}), _Popup_getContentHtmlTpl: Popup.prototype.getContentHtmlTpl, getContentHtmlTpl: (function () { + _$jscoverage['ui/menu.js'][59]++; + if ((this.items.length == 0)) { + _$jscoverage['ui/menu.js'][60]++; + return this._Popup_getContentHtmlTpl(); + } + _$jscoverage['ui/menu.js'][62]++; + var buff = []; + _$jscoverage['ui/menu.js'][63]++; + for (var i = 0; (i < this.items.length); (i++)) { + _$jscoverage['ui/menu.js'][64]++; + var item = this.items[i]; + _$jscoverage['ui/menu.js'][65]++; + buff[i] = item.renderHtml(); +} + _$jscoverage['ui/menu.js'][67]++; + return ("
" + buff.join("") + "
"); +}), _Popup_postRender: Popup.prototype.postRender, postRender: (function () { + _$jscoverage['ui/menu.js'][71]++; + var me = this; + _$jscoverage['ui/menu.js'][72]++; + for (var i = 0; (i < this.items.length); (i++)) { + _$jscoverage['ui/menu.js'][73]++; + var item = this.items[i]; + _$jscoverage['ui/menu.js'][74]++; + item.ownerMenu = this; + _$jscoverage['ui/menu.js'][75]++; + item.postRender(); +} + _$jscoverage['ui/menu.js'][77]++; + domUtils.on(this.getDom(), "mouseover", (function (evt) { + _$jscoverage['ui/menu.js'][78]++; + evt = (evt || event); + _$jscoverage['ui/menu.js'][79]++; + var rel = (evt.relatedTarget || evt.fromElement); + _$jscoverage['ui/menu.js'][80]++; + var el = me.getDom(); + _$jscoverage['ui/menu.js'][81]++; + if (((! uiUtils.contains(el, rel)) && (el !== rel))) { + _$jscoverage['ui/menu.js'][82]++; + me.fireEvent("over"); + } +})); + _$jscoverage['ui/menu.js'][85]++; + this._Popup_postRender(); +}), queryAutoHide: (function (el) { + _$jscoverage['ui/menu.js'][88]++; + if (el) { + _$jscoverage['ui/menu.js'][89]++; + if (uiUtils.contains(this.getDom(), el)) { + _$jscoverage['ui/menu.js'][90]++; + return false; + } + _$jscoverage['ui/menu.js'][92]++; + for (var i = 0; (i < this.items.length); (i++)) { + _$jscoverage['ui/menu.js'][93]++; + var item = this.items[i]; + _$jscoverage['ui/menu.js'][94]++; + if ((item.queryAutoHide(el) === false)) { + _$jscoverage['ui/menu.js'][95]++; + return false; + } +} + } +}), clearItems: (function () { + _$jscoverage['ui/menu.js'][101]++; + for (var i = 0; (i < this.items.length); (i++)) { + _$jscoverage['ui/menu.js'][102]++; + var item = this.items[i]; + _$jscoverage['ui/menu.js'][103]++; + clearTimeout(item._showingTimer); + _$jscoverage['ui/menu.js'][104]++; + clearTimeout(item._closingTimer); + _$jscoverage['ui/menu.js'][105]++; + if (item.subMenu) { + _$jscoverage['ui/menu.js'][106]++; + item.subMenu.destroy(); + } +} + _$jscoverage['ui/menu.js'][109]++; + this.items = []; +}), destroy: (function () { + _$jscoverage['ui/menu.js'][112]++; + if (this.getDom()) { + _$jscoverage['ui/menu.js'][113]++; + domUtils.remove(this.getDom()); + } + _$jscoverage['ui/menu.js'][115]++; + this.clearItems(); +}), dispose: (function () { + _$jscoverage['ui/menu.js'][118]++; + this.destroy(); +})}; + _$jscoverage['ui/menu.js'][121]++; + utils.inherits(Menu, Popup); + _$jscoverage['ui/menu.js'][127]++; + var MenuItem = (baidu.editor.ui.MenuItem = (function (options) { + _$jscoverage['ui/menu.js'][128]++; + this.initOptions(options); + _$jscoverage['ui/menu.js'][129]++; + this.initUIBase(); + _$jscoverage['ui/menu.js'][130]++; + this.Stateful_init(); + _$jscoverage['ui/menu.js'][131]++; + if ((this.subMenu && (! (this.subMenu instanceof Menu)))) { + _$jscoverage['ui/menu.js'][132]++; + if ((options.className && (options.className.indexOf("aligntd") != -1))) { + _$jscoverage['ui/menu.js'][133]++; + var me = this; + _$jscoverage['ui/menu.js'][136]++; + this.subMenu.selected = this.editor.queryCommandValue("cellalignment"); + _$jscoverage['ui/menu.js'][138]++; + this.subMenu = new Popup({content: new CellAlignPicker(this.subMenu), parentMenu: me, editor: me.editor, destroy: (function () { + _$jscoverage['ui/menu.js'][143]++; + if (this.getDom()) { + _$jscoverage['ui/menu.js'][144]++; + domUtils.remove(this.getDom()); + } +})}); + _$jscoverage['ui/menu.js'][148]++; + this.subMenu.addListener("postRenderAfter", (function () { + _$jscoverage['ui/menu.js'][149]++; + domUtils.on(this.getDom(), "mouseover", (function () { + _$jscoverage['ui/menu.js'][150]++; + me.addState("opened"); +})); +})); + } + else { + _$jscoverage['ui/menu.js'][154]++; + this.subMenu = new Menu(this.subMenu); + } + } +})); + _$jscoverage['ui/menu.js'][158]++; + MenuItem.prototype = {label: "", subMenu: null, ownerMenu: null, uiName: "menuitem", alwalysHoverable: true, getHtmlTpl: (function () { + _$jscoverage['ui/menu.js'][165]++; + return ("
" + "
" + this.renderLabelHtml() + "
" + "
"); +}), postRender: (function () { + _$jscoverage['ui/menu.js'][172]++; + var me = this; + _$jscoverage['ui/menu.js'][173]++; + this.addListener("over", (function () { + _$jscoverage['ui/menu.js'][174]++; + me.ownerMenu.fireEvent("submenuover", me); + _$jscoverage['ui/menu.js'][175]++; + if (me.subMenu) { + _$jscoverage['ui/menu.js'][176]++; + me.delayShowSubMenu(); + } +})); + _$jscoverage['ui/menu.js'][179]++; + if (this.subMenu) { + _$jscoverage['ui/menu.js'][180]++; + this.getDom().className += " edui-hassubmenu"; + _$jscoverage['ui/menu.js'][181]++; + this.subMenu.render(); + _$jscoverage['ui/menu.js'][182]++; + this.addListener("out", (function () { + _$jscoverage['ui/menu.js'][183]++; + me.delayHideSubMenu(); +})); + _$jscoverage['ui/menu.js'][185]++; + this.subMenu.addListener("over", (function () { + _$jscoverage['ui/menu.js'][186]++; + clearTimeout(me._closingTimer); + _$jscoverage['ui/menu.js'][187]++; + me._closingTimer = null; + _$jscoverage['ui/menu.js'][188]++; + me.addState("opened"); +})); + _$jscoverage['ui/menu.js'][190]++; + this.ownerMenu.addListener("hide", (function () { + _$jscoverage['ui/menu.js'][191]++; + me.hideSubMenu(); +})); + _$jscoverage['ui/menu.js'][193]++; + this.ownerMenu.addListener("submenuover", (function (t, subMenu) { + _$jscoverage['ui/menu.js'][194]++; + if ((subMenu !== me)) { + _$jscoverage['ui/menu.js'][195]++; + me.delayHideSubMenu(); + } +})); + _$jscoverage['ui/menu.js'][198]++; + this.subMenu._bakQueryAutoHide = this.subMenu.queryAutoHide; + _$jscoverage['ui/menu.js'][199]++; + this.subMenu.queryAutoHide = (function (el) { + _$jscoverage['ui/menu.js'][200]++; + if ((el && uiUtils.contains(me.getDom(), el))) { + _$jscoverage['ui/menu.js'][201]++; + return false; + } + _$jscoverage['ui/menu.js'][203]++; + return this._bakQueryAutoHide(el); +}); + } + _$jscoverage['ui/menu.js'][206]++; + this.getDom().style.tabIndex = "-1"; + _$jscoverage['ui/menu.js'][207]++; + uiUtils.makeUnselectable(this.getDom()); + _$jscoverage['ui/menu.js'][208]++; + this.Stateful_postRender(); +}), delayShowSubMenu: (function () { + _$jscoverage['ui/menu.js'][211]++; + var me = this; + _$jscoverage['ui/menu.js'][212]++; + if ((! me.isDisabled())) { + _$jscoverage['ui/menu.js'][213]++; + me.addState("opened"); + _$jscoverage['ui/menu.js'][214]++; + clearTimeout(me._showingTimer); + _$jscoverage['ui/menu.js'][215]++; + clearTimeout(me._closingTimer); + _$jscoverage['ui/menu.js'][216]++; + me._closingTimer = null; + _$jscoverage['ui/menu.js'][217]++; + me._showingTimer = setTimeout((function () { + _$jscoverage['ui/menu.js'][218]++; + me.showSubMenu(); +}), 250); + } +}), delayHideSubMenu: (function () { + _$jscoverage['ui/menu.js'][223]++; + var me = this; + _$jscoverage['ui/menu.js'][224]++; + if ((! me.isDisabled())) { + _$jscoverage['ui/menu.js'][225]++; + me.removeState("opened"); + _$jscoverage['ui/menu.js'][226]++; + clearTimeout(me._showingTimer); + _$jscoverage['ui/menu.js'][227]++; + if ((! me._closingTimer)) { + _$jscoverage['ui/menu.js'][228]++; + me._closingTimer = setTimeout((function () { + _$jscoverage['ui/menu.js'][229]++; + if ((! me.hasState("opened"))) { + _$jscoverage['ui/menu.js'][230]++; + me.hideSubMenu(); + } + _$jscoverage['ui/menu.js'][232]++; + me._closingTimer = null; +}), 400); + } + } +}), renderLabelHtml: (function () { + _$jscoverage['ui/menu.js'][238]++; + return ("
" + "
" + "
" + (this.label || "") + "
"); +}), getStateDom: (function () { + _$jscoverage['ui/menu.js'][243]++; + return this.getDom(); +}), queryAutoHide: (function (el) { + _$jscoverage['ui/menu.js'][246]++; + if ((this.subMenu && this.hasState("opened"))) { + _$jscoverage['ui/menu.js'][247]++; + return this.subMenu.queryAutoHide(el); + } +}), _onClick: (function (event, this_) { + _$jscoverage['ui/menu.js'][251]++; + if (this.hasState("disabled")) { + _$jscoverage['ui/menu.js'][251]++; + return; + } + _$jscoverage['ui/menu.js'][252]++; + if ((this.fireEvent("click", event, this_) !== false)) { + _$jscoverage['ui/menu.js'][253]++; + if (this.subMenu) { + _$jscoverage['ui/menu.js'][254]++; + this.showSubMenu(); + } + else { + _$jscoverage['ui/menu.js'][256]++; + Popup.postHide(event); + } + } +}), showSubMenu: (function () { + _$jscoverage['ui/menu.js'][261]++; + var rect = uiUtils.getClientRect(this.getDom()); + _$jscoverage['ui/menu.js'][262]++; + rect.right -= 5; + _$jscoverage['ui/menu.js'][263]++; + rect.left += 2; + _$jscoverage['ui/menu.js'][264]++; + rect.width -= 7; + _$jscoverage['ui/menu.js'][265]++; + rect.top -= 4; + _$jscoverage['ui/menu.js'][266]++; + rect.bottom += 4; + _$jscoverage['ui/menu.js'][267]++; + rect.height += 8; + _$jscoverage['ui/menu.js'][268]++; + this.subMenu.showAnchorRect(rect, true, true); +}), hideSubMenu: (function () { + _$jscoverage['ui/menu.js'][271]++; + this.subMenu.hide(); +})}; + _$jscoverage['ui/menu.js'][274]++; + utils.inherits(MenuItem, UIBase); + _$jscoverage['ui/menu.js'][275]++; + utils.extend(MenuItem.prototype, Stateful, true); +})(); diff --git a/_test/coverage/ui/menubutton.js b/_test/coverage/ui/menubutton.js new file mode 100644 index 000000000..00f482ad9 --- /dev/null +++ b/_test/coverage/ui/menubutton.js @@ -0,0 +1,104 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['ui/menubutton.js']) { + _$jscoverage['ui/menubutton.js'] = []; + _$jscoverage['ui/menubutton.js'][5] = 0; + _$jscoverage['ui/menubutton.js'][6] = 0; + _$jscoverage['ui/menubutton.js'][10] = 0; + _$jscoverage['ui/menubutton.js'][11] = 0; + _$jscoverage['ui/menubutton.js'][13] = 0; + _$jscoverage['ui/menubutton.js'][15] = 0; + _$jscoverage['ui/menubutton.js'][16] = 0; + _$jscoverage['ui/menubutton.js'][17] = 0; + _$jscoverage['ui/menubutton.js'][22] = 0; + _$jscoverage['ui/menubutton.js'][23] = 0; + _$jscoverage['ui/menubutton.js'][24] = 0; + _$jscoverage['ui/menubutton.js'][25] = 0; + _$jscoverage['ui/menubutton.js'][26] = 0; + _$jscoverage['ui/menubutton.js'][27] = 0; + _$jscoverage['ui/menubutton.js'][28] = 0; + _$jscoverage['ui/menubutton.js'][32] = 0; + _$jscoverage['ui/menubutton.js'][35] = 0; + _$jscoverage['ui/menubutton.js'][39] = 0; +} +_$jscoverage['ui/menubutton.js'].source = ["///import core","///import uicore","///import ui/menu.js","///import ui/splitbutton.js","(function (){"," var utils = baidu.editor.utils,"," Menu = baidu.editor.ui.Menu,"," SplitButton = baidu.editor.ui.SplitButton,"," MenuButton = baidu.editor.ui.MenuButton = function (options){"," this.initOptions(options);"," this.initMenuButton();"," };"," MenuButton.prototype = {"," initMenuButton: function (){"," var me = this;"," this.uiName = \"menubutton\";"," this.popup = new Menu({"," items: me.items,"," className: me.className,"," editor:me.editor"," });"," this.popup.addListener('show', function (){"," var list = this;"," for (var i=0; i<list.items.length; i++) {"," list.items[i].removeState('checked');"," if (list.items[i].value == me._value) {"," list.items[i].addState('checked');"," this.value = me._value;"," }"," }"," });"," this.initSplitButton();"," },"," setValue : function(value){"," this._value = value;"," }"," "," };"," utils.inherits(MenuButton, SplitButton);","})();"]; +_$jscoverage['ui/menubutton.js'][5]++; +(function () { + _$jscoverage['ui/menubutton.js'][6]++; + var utils = baidu.editor.utils, Menu = baidu.editor.ui.Menu, SplitButton = baidu.editor.ui.SplitButton, MenuButton = (baidu.editor.ui.MenuButton = (function (options) { + _$jscoverage['ui/menubutton.js'][10]++; + this.initOptions(options); + _$jscoverage['ui/menubutton.js'][11]++; + this.initMenuButton(); +})); + _$jscoverage['ui/menubutton.js'][13]++; + MenuButton.prototype = {initMenuButton: (function () { + _$jscoverage['ui/menubutton.js'][15]++; + var me = this; + _$jscoverage['ui/menubutton.js'][16]++; + this.uiName = "menubutton"; + _$jscoverage['ui/menubutton.js'][17]++; + this.popup = new Menu({items: me.items, className: me.className, editor: me.editor}); + _$jscoverage['ui/menubutton.js'][22]++; + this.popup.addListener("show", (function () { + _$jscoverage['ui/menubutton.js'][23]++; + var list = this; + _$jscoverage['ui/menubutton.js'][24]++; + for (var i = 0; (i < list.items.length); (i++)) { + _$jscoverage['ui/menubutton.js'][25]++; + list.items[i].removeState("checked"); + _$jscoverage['ui/menubutton.js'][26]++; + if ((list.items[i].value == me._value)) { + _$jscoverage['ui/menubutton.js'][27]++; + list.items[i].addState("checked"); + _$jscoverage['ui/menubutton.js'][28]++; + this.value = me._value; + } +} +})); + _$jscoverage['ui/menubutton.js'][32]++; + this.initSplitButton(); +}), setValue: (function (value) { + _$jscoverage['ui/menubutton.js'][35]++; + this._value = value; +})}; + _$jscoverage['ui/menubutton.js'][39]++; + utils.inherits(MenuButton, SplitButton); +})(); diff --git a/_test/coverage/ui/multiMenu.js b/_test/coverage/ui/multiMenu.js new file mode 100644 index 000000000..78557ac8f --- /dev/null +++ b/_test/coverage/ui/multiMenu.js @@ -0,0 +1,94 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['ui/multiMenu.js']) { + _$jscoverage['ui/multiMenu.js'] = []; + _$jscoverage['ui/multiMenu.js'][4] = 0; + _$jscoverage['ui/multiMenu.js'][5] = 0; + _$jscoverage['ui/multiMenu.js'][9] = 0; + _$jscoverage['ui/multiMenu.js'][10] = 0; + _$jscoverage['ui/multiMenu.js'][13] = 0; + _$jscoverage['ui/multiMenu.js'][15] = 0; + _$jscoverage['ui/multiMenu.js'][16] = 0; + _$jscoverage['ui/multiMenu.js'][21] = 0; + _$jscoverage['ui/multiMenu.js'][22] = 0; + _$jscoverage['ui/multiMenu.js'][23] = 0; + _$jscoverage['ui/multiMenu.js'][24] = 0; + _$jscoverage['ui/multiMenu.js'][30] = 0; + _$jscoverage['ui/multiMenu.js'][31] = 0; + _$jscoverage['ui/multiMenu.js'][33] = 0; + _$jscoverage['ui/multiMenu.js'][38] = 0; +} +_$jscoverage['ui/multiMenu.js'].source = ["///import core","///import uicore"," ///commands 表情","(function(){"," var utils = baidu.editor.utils,"," Popup = baidu.editor.ui.Popup,"," SplitButton = baidu.editor.ui.SplitButton,"," MultiMenuPop = baidu.editor.ui.MultiMenuPop = function(options){"," this.initOptions(options);"," this.initMultiMenu();"," };",""," MultiMenuPop.prototype = {"," initMultiMenu: function (){"," var me = this;"," this.popup = new Popup({"," content: '',"," editor : me.editor,"," iframe_rendered: false,"," onshow: function (){"," if (!this.iframe_rendered) {"," this.iframe_rendered = true;"," this.getDom('content').innerHTML = '<iframe id=\"'+me.id+'_iframe\" src=\"'+ me.iframeUrl +'\" frameborder=\"0\"></iframe>';"," me.editor.container.style.zIndex && (this.getDom().style.zIndex = me.editor.container.style.zIndex * 1 + 1);"," }"," }"," // canSideUp:false,"," // canSideLeft:false"," });"," this.onbuttonclick = function(){"," this.showPopup();"," };"," this.initSplitButton();"," }",""," };",""," utils.inherits(MultiMenuPop, SplitButton);","})();"]; +_$jscoverage['ui/multiMenu.js'][4]++; +(function () { + _$jscoverage['ui/multiMenu.js'][5]++; + var utils = baidu.editor.utils, Popup = baidu.editor.ui.Popup, SplitButton = baidu.editor.ui.SplitButton, MultiMenuPop = (baidu.editor.ui.MultiMenuPop = (function (options) { + _$jscoverage['ui/multiMenu.js'][9]++; + this.initOptions(options); + _$jscoverage['ui/multiMenu.js'][10]++; + this.initMultiMenu(); +})); + _$jscoverage['ui/multiMenu.js'][13]++; + MultiMenuPop.prototype = {initMultiMenu: (function () { + _$jscoverage['ui/multiMenu.js'][15]++; + var me = this; + _$jscoverage['ui/multiMenu.js'][16]++; + this.popup = new Popup({content: "", editor: me.editor, iframe_rendered: false, onshow: (function () { + _$jscoverage['ui/multiMenu.js'][21]++; + if ((! this.iframe_rendered)) { + _$jscoverage['ui/multiMenu.js'][22]++; + this.iframe_rendered = true; + _$jscoverage['ui/multiMenu.js'][23]++; + this.getDom("content").innerHTML = (""); + _$jscoverage['ui/multiMenu.js'][24]++; + (me.editor.container.style.zIndex && (this.getDom().style.zIndex = ((me.editor.container.style.zIndex * 1) + 1))); + } +})}); + _$jscoverage['ui/multiMenu.js'][30]++; + this.onbuttonclick = (function () { + _$jscoverage['ui/multiMenu.js'][31]++; + this.showPopup(); +}); + _$jscoverage['ui/multiMenu.js'][33]++; + this.initSplitButton(); +})}; + _$jscoverage['ui/multiMenu.js'][38]++; + utils.inherits(MultiMenuPop, SplitButton); +})(); diff --git a/_test/coverage/ui/pastepicker.js b/_test/coverage/ui/pastepicker.js new file mode 100644 index 000000000..d17ca60dc --- /dev/null +++ b/_test/coverage/ui/pastepicker.js @@ -0,0 +1,125 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['ui/pastepicker.js']) { + _$jscoverage['ui/pastepicker.js'] = []; + _$jscoverage['ui/pastepicker.js'][3] = 0; + _$jscoverage['ui/pastepicker.js'][4] = 0; + _$jscoverage['ui/pastepicker.js'][9] = 0; + _$jscoverage['ui/pastepicker.js'][10] = 0; + _$jscoverage['ui/pastepicker.js'][11] = 0; + _$jscoverage['ui/pastepicker.js'][13] = 0; + _$jscoverage['ui/pastepicker.js'][15] = 0; + _$jscoverage['ui/pastepicker.js'][16] = 0; + _$jscoverage['ui/pastepicker.js'][19] = 0; + _$jscoverage['ui/pastepicker.js'][34] = 0; + _$jscoverage['ui/pastepicker.js'][37] = 0; + _$jscoverage['ui/pastepicker.js'][38] = 0; + _$jscoverage['ui/pastepicker.js'][41] = 0; + _$jscoverage['ui/pastepicker.js'][45] = 0; + _$jscoverage['ui/pastepicker.js'][46] = 0; + _$jscoverage['ui/pastepicker.js'][48] = 0; + _$jscoverage['ui/pastepicker.js'][50] = 0; + _$jscoverage['ui/pastepicker.js'][51] = 0; + _$jscoverage['ui/pastepicker.js'][52] = 0; + _$jscoverage['ui/pastepicker.js'][54] = 0; + _$jscoverage['ui/pastepicker.js'][55] = 0; + _$jscoverage['ui/pastepicker.js'][60] = 0; + _$jscoverage['ui/pastepicker.js'][61] = 0; +} +_$jscoverage['ui/pastepicker.js'].source = ["///import core","///import uicore","(function () {"," var utils = baidu.editor.utils,"," Stateful = baidu.editor.ui.Stateful,"," uiUtils = baidu.editor.ui.uiUtils,"," UIBase = baidu.editor.ui.UIBase;",""," var PastePicker = baidu.editor.ui.PastePicker = function (options) {"," this.initOptions(options);"," this.initPastePicker();"," };"," PastePicker.prototype = {"," initPastePicker:function () {"," this.initUIBase();"," this.Stateful_init();"," },"," getHtmlTpl:function () {"," return '<div class=\"edui-pasteicon\" onclick=\"$$._onClick(this)\"></div>' +"," '<div class=\"edui-pastecontainer\">' +"," '<div class=\"edui-title\">' + this.editor.getLang(\"pasteOpt\") + '</div>' +"," '<div class=\"edui-button\">' +"," '<div title=\"' + this.editor.getLang(\"pasteSourceFormat\") + '\" onclick=\"$$.format(false)\" stateful>' +"," '<div class=\"edui-richtxticon\"></div></div>' +"," '<div title=\"' + this.editor.getLang(\"tagFormat\") + '\" onclick=\"$$.format(2)\" stateful>' +"," '<div class=\"edui-tagicon\"></div></div>' +"," '<div title=\"' + this.editor.getLang(\"pasteTextFormat\") + '\" onclick=\"$$.format(true)\" stateful>' +"," '<div class=\"edui-plaintxticon\"></div></div>' +"," '</div>' +"," '</div>' +"," '</div>'"," },"," getStateDom:function () {"," return this.target;"," },"," format:function (param) {"," this.editor.ui._isTransfer = true;"," this.editor.fireEvent('pasteTransfer', param);"," },"," _onClick:function (cur) {"," var node = domUtils.getNextDomNode(cur),"," screenHt = uiUtils.getViewportRect().height,"," subPop = uiUtils.getClientRect(node);",""," if ((subPop.top + subPop.height) > screenHt)"," node.style.top = (-subPop.height - cur.offsetHeight) + \"px\";"," else"," node.style.top = \"\";",""," if (/hidden/ig.test(domUtils.getComputedStyle(node, \"visibility\"))) {"," node.style.visibility = \"visible\";"," domUtils.addClass(cur, \"edui-state-opened\");"," } else {"," node.style.visibility = \"hidden\";"," domUtils.removeClasses(cur, \"edui-state-opened\")"," }"," },"," _UIBase_render:UIBase.prototype.render"," };"," utils.inherits(PastePicker, UIBase);"," utils.extend(PastePicker.prototype, Stateful, true);","})();","","","",""]; +_$jscoverage['ui/pastepicker.js'][3]++; +(function () { + _$jscoverage['ui/pastepicker.js'][4]++; + var utils = baidu.editor.utils, Stateful = baidu.editor.ui.Stateful, uiUtils = baidu.editor.ui.uiUtils, UIBase = baidu.editor.ui.UIBase; + _$jscoverage['ui/pastepicker.js'][9]++; + var PastePicker = (baidu.editor.ui.PastePicker = (function (options) { + _$jscoverage['ui/pastepicker.js'][10]++; + this.initOptions(options); + _$jscoverage['ui/pastepicker.js'][11]++; + this.initPastePicker(); +})); + _$jscoverage['ui/pastepicker.js'][13]++; + PastePicker.prototype = {initPastePicker: (function () { + _$jscoverage['ui/pastepicker.js'][15]++; + this.initUIBase(); + _$jscoverage['ui/pastepicker.js'][16]++; + this.Stateful_init(); +}), getHtmlTpl: (function () { + _$jscoverage['ui/pastepicker.js'][19]++; + return ("
" + "
" + "
" + this.editor.getLang("pasteOpt") + "
" + "
" + "
" + "
" + "
" + "
" + "
" + "
" + "
" + "
" + ""); +}), getStateDom: (function () { + _$jscoverage['ui/pastepicker.js'][34]++; + return this.target; +}), format: (function (param) { + _$jscoverage['ui/pastepicker.js'][37]++; + this.editor.ui._isTransfer = true; + _$jscoverage['ui/pastepicker.js'][38]++; + this.editor.fireEvent("pasteTransfer", param); +}), _onClick: (function (cur) { + _$jscoverage['ui/pastepicker.js'][41]++; + var node = domUtils.getNextDomNode(cur), screenHt = uiUtils.getViewportRect().height, subPop = uiUtils.getClientRect(node); + _$jscoverage['ui/pastepicker.js'][45]++; + if (((subPop.top + subPop.height) > screenHt)) { + _$jscoverage['ui/pastepicker.js'][46]++; + node.style.top = (((- subPop.height) - cur.offsetHeight) + "px"); + } + else { + _$jscoverage['ui/pastepicker.js'][48]++; + node.style.top = ""; + } + _$jscoverage['ui/pastepicker.js'][50]++; + if (/hidden/gi.test(domUtils.getComputedStyle(node, "visibility"))) { + _$jscoverage['ui/pastepicker.js'][51]++; + node.style.visibility = "visible"; + _$jscoverage['ui/pastepicker.js'][52]++; + domUtils.addClass(cur, "edui-state-opened"); + } + else { + _$jscoverage['ui/pastepicker.js'][54]++; + node.style.visibility = "hidden"; + _$jscoverage['ui/pastepicker.js'][55]++; + domUtils.removeClasses(cur, "edui-state-opened"); + } +}), _UIBase_render: UIBase.prototype.render}; + _$jscoverage['ui/pastepicker.js'][60]++; + utils.inherits(PastePicker, UIBase); + _$jscoverage['ui/pastepicker.js'][61]++; + utils.extend(PastePicker.prototype, Stateful, true); +})(); diff --git a/_test/coverage/ui/popup.js b/_test/coverage/ui/popup.js new file mode 100644 index 000000000..ced902dd1 --- /dev/null +++ b/_test/coverage/ui/popup.js @@ -0,0 +1,433 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['ui/popup.js']) { + _$jscoverage['ui/popup.js'] = []; + _$jscoverage['ui/popup.js'][3] = 0; + _$jscoverage['ui/popup.js'][4] = 0; + _$jscoverage['ui/popup.js'][9] = 0; + _$jscoverage['ui/popup.js'][10] = 0; + _$jscoverage['ui/popup.js'][13] = 0; + _$jscoverage['ui/popup.js'][14] = 0; + _$jscoverage['ui/popup.js'][15] = 0; + _$jscoverage['ui/popup.js'][16] = 0; + _$jscoverage['ui/popup.js'][17] = 0; + _$jscoverage['ui/popup.js'][18] = 0; + _$jscoverage['ui/popup.js'][19] = 0; + _$jscoverage['ui/popup.js'][20] = 0; + _$jscoverage['ui/popup.js'][25] = 0; + _$jscoverage['ui/popup.js'][26] = 0; + _$jscoverage['ui/popup.js'][29] = 0; + _$jscoverage['ui/popup.js'][31] = 0; + _$jscoverage['ui/popup.js'][33] = 0; + _$jscoverage['ui/popup.js'][41] = 0; + _$jscoverage['ui/popup.js'][42] = 0; + _$jscoverage['ui/popup.js'][45] = 0; + _$jscoverage['ui/popup.js'][56] = 0; + _$jscoverage['ui/popup.js'][57] = 0; + _$jscoverage['ui/popup.js'][58] = 0; + _$jscoverage['ui/popup.js'][60] = 0; + _$jscoverage['ui/popup.js'][62] = 0; + _$jscoverage['ui/popup.js'][70] = 0; + _$jscoverage['ui/popup.js'][71] = 0; + _$jscoverage['ui/popup.js'][75] = 0; + _$jscoverage['ui/popup.js'][77] = 0; + _$jscoverage['ui/popup.js'][79] = 0; + _$jscoverage['ui/popup.js'][85] = 0; + _$jscoverage['ui/popup.js'][86] = 0; + _$jscoverage['ui/popup.js'][87] = 0; + _$jscoverage['ui/popup.js'][91] = 0; + _$jscoverage['ui/popup.js'][93] = 0; + _$jscoverage['ui/popup.js'][95] = 0; + _$jscoverage['ui/popup.js'][96] = 0; + _$jscoverage['ui/popup.js'][98] = 0; + _$jscoverage['ui/popup.js'][101] = 0; + _$jscoverage['ui/popup.js'][103] = 0; + _$jscoverage['ui/popup.js'][107] = 0; + _$jscoverage['ui/popup.js'][116] = 0; + _$jscoverage['ui/popup.js'][118] = 0; + _$jscoverage['ui/popup.js'][120] = 0; + _$jscoverage['ui/popup.js'][127] = 0; + _$jscoverage['ui/popup.js'][128] = 0; + _$jscoverage['ui/popup.js'][129] = 0; + _$jscoverage['ui/popup.js'][132] = 0; + _$jscoverage['ui/popup.js'][133] = 0; + _$jscoverage['ui/popup.js'][137] = 0; + _$jscoverage['ui/popup.js'][138] = 0; + _$jscoverage['ui/popup.js'][141] = 0; + _$jscoverage['ui/popup.js'][142] = 0; + _$jscoverage['ui/popup.js'][144] = 0; + _$jscoverage['ui/popup.js'][145] = 0; + _$jscoverage['ui/popup.js'][146] = 0; + _$jscoverage['ui/popup.js'][147] = 0; + _$jscoverage['ui/popup.js'][148] = 0; + _$jscoverage['ui/popup.js'][149] = 0; + _$jscoverage['ui/popup.js'][150] = 0; + _$jscoverage['ui/popup.js'][152] = 0; + _$jscoverage['ui/popup.js'][154] = 0; + _$jscoverage['ui/popup.js'][155] = 0; + _$jscoverage['ui/popup.js'][156] = 0; + _$jscoverage['ui/popup.js'][157] = 0; + _$jscoverage['ui/popup.js'][160] = 0; + _$jscoverage['ui/popup.js'][163] = 0; + _$jscoverage['ui/popup.js'][164] = 0; + _$jscoverage['ui/popup.js'][165] = 0; + _$jscoverage['ui/popup.js'][166] = 0; + _$jscoverage['ui/popup.js'][168] = 0; + _$jscoverage['ui/popup.js'][169] = 0; + _$jscoverage['ui/popup.js'][170] = 0; + _$jscoverage['ui/popup.js'][171] = 0; + _$jscoverage['ui/popup.js'][172] = 0; + _$jscoverage['ui/popup.js'][173] = 0; + _$jscoverage['ui/popup.js'][175] = 0; + _$jscoverage['ui/popup.js'][176] = 0; + _$jscoverage['ui/popup.js'][177] = 0; + _$jscoverage['ui/popup.js'][178] = 0; + _$jscoverage['ui/popup.js'][181] = 0; + _$jscoverage['ui/popup.js'][182] = 0; + _$jscoverage['ui/popup.js'][186] = 0; + _$jscoverage['ui/popup.js'][187] = 0; + _$jscoverage['ui/popup.js'][188] = 0; + _$jscoverage['ui/popup.js'][189] = 0; + _$jscoverage['ui/popup.js'][190] = 0; + _$jscoverage['ui/popup.js'][195] = 0; + _$jscoverage['ui/popup.js'][196] = 0; + _$jscoverage['ui/popup.js'][197] = 0; + _$jscoverage['ui/popup.js'][205] = 0; + _$jscoverage['ui/popup.js'][208] = 0; + _$jscoverage['ui/popup.js'][209] = 0; + _$jscoverage['ui/popup.js'][210] = 0; + _$jscoverage['ui/popup.js'][211] = 0; + _$jscoverage['ui/popup.js'][215] = 0; + _$jscoverage['ui/popup.js'][219] = 0; + _$jscoverage['ui/popup.js'][222] = 0; + _$jscoverage['ui/popup.js'][223] = 0; + _$jscoverage['ui/popup.js'][226] = 0; + _$jscoverage['ui/popup.js'][227] = 0; + _$jscoverage['ui/popup.js'][228] = 0; + _$jscoverage['ui/popup.js'][229] = 0; + _$jscoverage['ui/popup.js'][230] = 0; + _$jscoverage['ui/popup.js'][235] = 0; + _$jscoverage['ui/popup.js'][238] = 0; + _$jscoverage['ui/popup.js'][240] = 0; + _$jscoverage['ui/popup.js'][241] = 0; + _$jscoverage['ui/popup.js'][242] = 0; + _$jscoverage['ui/popup.js'][244] = 0; + _$jscoverage['ui/popup.js'][245] = 0; +} +_$jscoverage['ui/popup.js'].source = ["///import core","///import uicore","(function () {"," var utils = baidu.editor.utils,"," uiUtils = baidu.editor.ui.uiUtils,"," domUtils = baidu.editor.dom.domUtils,"," UIBase = baidu.editor.ui.UIBase,"," Popup = baidu.editor.ui.Popup = function (options){"," this.initOptions(options);"," this.initPopup();"," };",""," var allPopups = [];"," function closeAllPopup( evt,el ){"," for ( var i = 0; i < allPopups.length; i++ ) {"," var pop = allPopups[i];"," if (!pop.isHidden()) {"," if (pop.queryAutoHide(el) !== false) {"," if(evt&&/scroll/ig.test(evt.type)&&pop.className==\"edui-wordpastepop\") return;"," pop.hide();"," }"," }"," }",""," if(allPopups.length)"," pop.editor.fireEvent(\"afterhidepop\");"," }",""," Popup.postHide = closeAllPopup;",""," var ANCHOR_CLASSES = ['edui-anchor-topleft','edui-anchor-topright',"," 'edui-anchor-bottomleft','edui-anchor-bottomright'];"," Popup.prototype = {"," SHADOW_RADIUS: 5,"," content: null,"," _hidden: false,"," autoRender: true,"," canSideLeft: true,"," canSideUp: true,"," initPopup: function (){"," this.initUIBase();"," allPopups.push( this );"," },"," getHtmlTpl: function (){"," return '<div id=\"##\" class=\"edui-popup %%\" onmousedown=\"return false;\">' +"," ' <div id=\"##_body\" class=\"edui-popup-body\">' +"," ' <iframe style=\"position:absolute;z-index:-1;left:0;top:0;background-color: transparent;\" frameborder=\"0\" width=\"100%\" height=\"100%\" src=\"javascript:\"></iframe>' +"," ' <div class=\"edui-shadow\"></div>' +"," ' <div id=\"##_content\" class=\"edui-popup-content\">' +"," this.getContentHtmlTpl() +"," ' </div>' +"," ' </div>' +"," '</div>';"," },"," getContentHtmlTpl: function (){"," if(this.content){"," if (typeof this.content == 'string') {"," return this.content;"," }"," return this.content.renderHtml();"," }else{"," return ''"," }",""," },"," _UIBase_postRender: UIBase.prototype.postRender,"," postRender: function (){","",""," if (this.content instanceof UIBase) {"," this.content.postRender();"," }",""," //捕获鼠标滚轮"," if( this.captureWheel && !this.captured ) {",""," this.captured = true;",""," var winHeight = ( document.documentElement.clientHeight || document.body.clientHeight ) - 80,"," _height = this.getDom().offsetHeight,"," _top = domUtils.getXY( this.combox.getDom() ).y,"," content = this.getDom('content'),"," me = this;",""," while( _top + _height > winHeight ) {"," _height -= 30;"," content.style.height = _height + 'px';"," }",""," //阻止在combox上的鼠标滚轮事件, 防止用户的正常操作被误解"," if( window.XMLHttpRequest ) {",""," domUtils.on( content, ( 'onmousewheel' in document.body ) ? 'mousewheel' :'DOMMouseScroll' , function(e){",""," if(e.preventDefault) {"," e.preventDefault();"," } else {"," e.returnValue = false;"," }",""," if( e.wheelDelta ) {",""," content.scrollTop -= ( e.wheelDelta / 120 )*60;",""," } else {",""," content.scrollTop -= ( e.detail / -3 )*60;",""," }",""," });",""," } else {",""," //ie6"," domUtils.on( this.getDom(), 'mousewheel' , function(e){",""," e.returnValue = false;",""," me.getDom('content').scrollTop -= ( e.wheelDelta / 120 )*60;",""," });",""," }",""," }"," this.fireEvent('postRenderAfter');"," this.hide(true);"," this._UIBase_postRender();"," },"," _doAutoRender: function (){"," if (!this.getDom() && this.autoRender) {"," this.render();"," }"," },"," mesureSize: function (){"," var box = this.getDom('content');"," return uiUtils.getClientRect(box);"," },"," fitSize: function (){"," if( this.captureWheel && this.sized ) {"," return this.__size;"," }"," this.sized = true;"," var popBodyEl = this.getDom('body');"," popBodyEl.style.width = '';"," popBodyEl.style.height = '';"," var size = this.mesureSize();"," if( this.captureWheel ) {"," popBodyEl.style.width = -(-20 -size.width) + 'px';"," } else {"," popBodyEl.style.width = size.width + 'px';"," }"," popBodyEl.style.height = size.height + 'px';"," this.__size = size;"," this.captureWheel && (this.getDom('content').style.overflow = 'auto');"," return size;"," },"," showAnchor: function ( element, hoz ){"," this.showAnchorRect( uiUtils.getClientRect( element ), hoz );"," },"," showAnchorRect: function ( rect, hoz, adj ){"," this._doAutoRender();"," var vpRect = uiUtils.getViewportRect();"," this._show();"," var popSize = this.fitSize();",""," var sideLeft, sideUp, left, top;"," if (hoz) {"," sideLeft = this.canSideLeft && (rect.right + popSize.width > vpRect.right && rect.left > popSize.width);"," sideUp = this.canSideUp && (rect.top + popSize.height > vpRect.bottom && rect.bottom > popSize.height);"," left = (sideLeft ? rect.left - popSize.width : rect.right);"," top = (sideUp ? rect.bottom - popSize.height : rect.top);"," } else {"," sideLeft = this.canSideLeft && (rect.right + popSize.width > vpRect.right && rect.left > popSize.width);"," sideUp = this.canSideUp && (rect.top + popSize.height > vpRect.bottom && rect.bottom > popSize.height);"," left = (sideLeft ? rect.right - popSize.width : rect.left);"," top = (sideUp ? rect.top - popSize.height : rect.bottom);"," }",""," var popEl = this.getDom();"," uiUtils.setViewportOffset(popEl, {"," left: left,"," top: top"," });"," domUtils.removeClasses(popEl, ANCHOR_CLASSES);"," popEl.className += ' ' + ANCHOR_CLASSES[(sideUp ? 1 : 0) * 2 + (sideLeft ? 1 : 0)];"," if(this.editor){"," popEl.style.zIndex = this.editor.container.style.zIndex * 1 + 10;"," baidu.editor.ui.uiUtils.getFixedLayer().style.zIndex = popEl.style.zIndex - 1;"," }",""," },"," showAt: function (offset) {"," var left = offset.left;"," var top = offset.top;"," var rect = {"," left: left,"," top: top,"," right: left,"," bottom: top,"," height: 0,"," width: 0"," };"," this.showAnchorRect(rect, false, true);"," },"," _show: function (){"," if (this._hidden) {"," var box = this.getDom();"," box.style.display = '';"," this._hidden = false;","// if (box.setActive) {","// box.setActive();","// }"," this.fireEvent('show');"," }"," },"," isHidden: function (){"," return this._hidden;"," },"," show: function (){"," this._doAutoRender();"," this._show();"," },"," hide: function (notNofity){"," if (!this._hidden && this.getDom()) {"," this.getDom().style.display = 'none';"," this._hidden = true;"," if (!notNofity) {"," this.fireEvent('hide');"," }"," }"," },"," queryAutoHide: function (el){"," return !el || !uiUtils.contains(this.getDom(), el);"," }"," };"," utils.inherits(Popup, UIBase);"," "," domUtils.on( document, 'mousedown', function ( evt ) {"," var el = evt.target || evt.srcElement;"," closeAllPopup( evt,el );"," } );"," domUtils.on( window, 'scroll', function (evt,el) {"," closeAllPopup( evt,el );"," } );","","})();"]; +_$jscoverage['ui/popup.js'][3]++; +(function () { + _$jscoverage['ui/popup.js'][4]++; + var utils = baidu.editor.utils, uiUtils = baidu.editor.ui.uiUtils, domUtils = baidu.editor.dom.domUtils, UIBase = baidu.editor.ui.UIBase, Popup = (baidu.editor.ui.Popup = (function (options) { + _$jscoverage['ui/popup.js'][9]++; + this.initOptions(options); + _$jscoverage['ui/popup.js'][10]++; + this.initPopup(); +})); + _$jscoverage['ui/popup.js'][13]++; + var allPopups = []; + _$jscoverage['ui/popup.js'][14]++; + function closeAllPopup(evt, el) { + _$jscoverage['ui/popup.js'][15]++; + for (var i = 0; (i < allPopups.length); (i++)) { + _$jscoverage['ui/popup.js'][16]++; + var pop = allPopups[i]; + _$jscoverage['ui/popup.js'][17]++; + if ((! pop.isHidden())) { + _$jscoverage['ui/popup.js'][18]++; + if ((pop.queryAutoHide(el) !== false)) { + _$jscoverage['ui/popup.js'][19]++; + if ((evt && /scroll/gi.test(evt.type) && (pop.className == "edui-wordpastepop"))) { + _$jscoverage['ui/popup.js'][19]++; + return; + } + _$jscoverage['ui/popup.js'][20]++; + pop.hide(); + } + } +} + _$jscoverage['ui/popup.js'][25]++; + if (allPopups.length) { + _$jscoverage['ui/popup.js'][26]++; + pop.editor.fireEvent("afterhidepop"); + } +} + _$jscoverage['ui/popup.js'][29]++; + Popup.postHide = closeAllPopup; + _$jscoverage['ui/popup.js'][31]++; + var ANCHOR_CLASSES = ["edui-anchor-topleft", "edui-anchor-topright", "edui-anchor-bottomleft", "edui-anchor-bottomright"]; + _$jscoverage['ui/popup.js'][33]++; + Popup.prototype = {SHADOW_RADIUS: 5, content: null, _hidden: false, autoRender: true, canSideLeft: true, canSideUp: true, initPopup: (function () { + _$jscoverage['ui/popup.js'][41]++; + this.initUIBase(); + _$jscoverage['ui/popup.js'][42]++; + allPopups.push(this); +}), getHtmlTpl: (function () { + _$jscoverage['ui/popup.js'][45]++; + return ("
" + "
" + " " + "
" + "
" + this.getContentHtmlTpl() + "
" + "
" + "
"); +}), getContentHtmlTpl: (function () { + _$jscoverage['ui/popup.js'][56]++; + if (this.content) { + _$jscoverage['ui/popup.js'][57]++; + if (((typeof this.content) == "string")) { + _$jscoverage['ui/popup.js'][58]++; + return this.content; + } + _$jscoverage['ui/popup.js'][60]++; + return this.content.renderHtml(); + } + else { + _$jscoverage['ui/popup.js'][62]++; + return ""; + } +}), _UIBase_postRender: UIBase.prototype.postRender, postRender: (function () { + _$jscoverage['ui/popup.js'][70]++; + if ((this.content instanceof UIBase)) { + _$jscoverage['ui/popup.js'][71]++; + this.content.postRender(); + } + _$jscoverage['ui/popup.js'][75]++; + if ((this.captureWheel && (! this.captured))) { + _$jscoverage['ui/popup.js'][77]++; + this.captured = true; + _$jscoverage['ui/popup.js'][79]++; + var winHeight = ((document.documentElement.clientHeight || document.body.clientHeight) - 80), _height = this.getDom().offsetHeight, _top = domUtils.getXY(this.combox.getDom()).y, content = this.getDom("content"), me = this; + _$jscoverage['ui/popup.js'][85]++; + while (((_top + _height) > winHeight)) { + _$jscoverage['ui/popup.js'][86]++; + _height -= 30; + _$jscoverage['ui/popup.js'][87]++; + content.style.height = (_height + "px"); +} + _$jscoverage['ui/popup.js'][91]++; + if (window.XMLHttpRequest) { + _$jscoverage['ui/popup.js'][93]++; + domUtils.on(content, (("onmousewheel" in document.body)? "mousewheel": "DOMMouseScroll"), (function (e) { + _$jscoverage['ui/popup.js'][95]++; + if (e.preventDefault) { + _$jscoverage['ui/popup.js'][96]++; + e.preventDefault(); + } + else { + _$jscoverage['ui/popup.js'][98]++; + e.returnValue = false; + } + _$jscoverage['ui/popup.js'][101]++; + if (e.wheelDelta) { + _$jscoverage['ui/popup.js'][103]++; + content.scrollTop -= ((e.wheelDelta / 120) * 60); + } + else { + _$jscoverage['ui/popup.js'][107]++; + content.scrollTop -= ((e.detail / -3) * 60); + } +})); + } + else { + _$jscoverage['ui/popup.js'][116]++; + domUtils.on(this.getDom(), "mousewheel", (function (e) { + _$jscoverage['ui/popup.js'][118]++; + e.returnValue = false; + _$jscoverage['ui/popup.js'][120]++; + me.getDom("content").scrollTop -= ((e.wheelDelta / 120) * 60); +})); + } + } + _$jscoverage['ui/popup.js'][127]++; + this.fireEvent("postRenderAfter"); + _$jscoverage['ui/popup.js'][128]++; + this.hide(true); + _$jscoverage['ui/popup.js'][129]++; + this._UIBase_postRender(); +}), _doAutoRender: (function () { + _$jscoverage['ui/popup.js'][132]++; + if (((! this.getDom()) && this.autoRender)) { + _$jscoverage['ui/popup.js'][133]++; + this.render(); + } +}), mesureSize: (function () { + _$jscoverage['ui/popup.js'][137]++; + var box = this.getDom("content"); + _$jscoverage['ui/popup.js'][138]++; + return uiUtils.getClientRect(box); +}), fitSize: (function () { + _$jscoverage['ui/popup.js'][141]++; + if ((this.captureWheel && this.sized)) { + _$jscoverage['ui/popup.js'][142]++; + return this.__size; + } + _$jscoverage['ui/popup.js'][144]++; + this.sized = true; + _$jscoverage['ui/popup.js'][145]++; + var popBodyEl = this.getDom("body"); + _$jscoverage['ui/popup.js'][146]++; + popBodyEl.style.width = ""; + _$jscoverage['ui/popup.js'][147]++; + popBodyEl.style.height = ""; + _$jscoverage['ui/popup.js'][148]++; + var size = this.mesureSize(); + _$jscoverage['ui/popup.js'][149]++; + if (this.captureWheel) { + _$jscoverage['ui/popup.js'][150]++; + popBodyEl.style.width = ((- (-20 - size.width)) + "px"); + } + else { + _$jscoverage['ui/popup.js'][152]++; + popBodyEl.style.width = (size.width + "px"); + } + _$jscoverage['ui/popup.js'][154]++; + popBodyEl.style.height = (size.height + "px"); + _$jscoverage['ui/popup.js'][155]++; + this.__size = size; + _$jscoverage['ui/popup.js'][156]++; + (this.captureWheel && (this.getDom("content").style.overflow = "auto")); + _$jscoverage['ui/popup.js'][157]++; + return size; +}), showAnchor: (function (element, hoz) { + _$jscoverage['ui/popup.js'][160]++; + this.showAnchorRect(uiUtils.getClientRect(element), hoz); +}), showAnchorRect: (function (rect, hoz, adj) { + _$jscoverage['ui/popup.js'][163]++; + this._doAutoRender(); + _$jscoverage['ui/popup.js'][164]++; + var vpRect = uiUtils.getViewportRect(); + _$jscoverage['ui/popup.js'][165]++; + this._show(); + _$jscoverage['ui/popup.js'][166]++; + var popSize = this.fitSize(); + _$jscoverage['ui/popup.js'][168]++; + var sideLeft, sideUp, left, top; + _$jscoverage['ui/popup.js'][169]++; + if (hoz) { + _$jscoverage['ui/popup.js'][170]++; + sideLeft = (this.canSideLeft && (((rect.right + popSize.width) > vpRect.right) && (rect.left > popSize.width))); + _$jscoverage['ui/popup.js'][171]++; + sideUp = (this.canSideUp && (((rect.top + popSize.height) > vpRect.bottom) && (rect.bottom > popSize.height))); + _$jscoverage['ui/popup.js'][172]++; + left = (sideLeft? (rect.left - popSize.width): rect.right); + _$jscoverage['ui/popup.js'][173]++; + top = (sideUp? (rect.bottom - popSize.height): rect.top); + } + else { + _$jscoverage['ui/popup.js'][175]++; + sideLeft = (this.canSideLeft && (((rect.right + popSize.width) > vpRect.right) && (rect.left > popSize.width))); + _$jscoverage['ui/popup.js'][176]++; + sideUp = (this.canSideUp && (((rect.top + popSize.height) > vpRect.bottom) && (rect.bottom > popSize.height))); + _$jscoverage['ui/popup.js'][177]++; + left = (sideLeft? (rect.right - popSize.width): rect.left); + _$jscoverage['ui/popup.js'][178]++; + top = (sideUp? (rect.top - popSize.height): rect.bottom); + } + _$jscoverage['ui/popup.js'][181]++; + var popEl = this.getDom(); + _$jscoverage['ui/popup.js'][182]++; + uiUtils.setViewportOffset(popEl, {left: left, top: top}); + _$jscoverage['ui/popup.js'][186]++; + domUtils.removeClasses(popEl, ANCHOR_CLASSES); + _$jscoverage['ui/popup.js'][187]++; + popEl.className += (" " + ANCHOR_CLASSES[(((sideUp? 1: 0) * 2) + (sideLeft? 1: 0))]); + _$jscoverage['ui/popup.js'][188]++; + if (this.editor) { + _$jscoverage['ui/popup.js'][189]++; + popEl.style.zIndex = ((this.editor.container.style.zIndex * 1) + 10); + _$jscoverage['ui/popup.js'][190]++; + baidu.editor.ui.uiUtils.getFixedLayer().style.zIndex = (popEl.style.zIndex - 1); + } +}), showAt: (function (offset) { + _$jscoverage['ui/popup.js'][195]++; + var left = offset.left; + _$jscoverage['ui/popup.js'][196]++; + var top = offset.top; + _$jscoverage['ui/popup.js'][197]++; + var rect = {left: left, top: top, right: left, bottom: top, height: 0, width: 0}; + _$jscoverage['ui/popup.js'][205]++; + this.showAnchorRect(rect, false, true); +}), _show: (function () { + _$jscoverage['ui/popup.js'][208]++; + if (this._hidden) { + _$jscoverage['ui/popup.js'][209]++; + var box = this.getDom(); + _$jscoverage['ui/popup.js'][210]++; + box.style.display = ""; + _$jscoverage['ui/popup.js'][211]++; + this._hidden = false; + _$jscoverage['ui/popup.js'][215]++; + this.fireEvent("show"); + } +}), isHidden: (function () { + _$jscoverage['ui/popup.js'][219]++; + return this._hidden; +}), show: (function () { + _$jscoverage['ui/popup.js'][222]++; + this._doAutoRender(); + _$jscoverage['ui/popup.js'][223]++; + this._show(); +}), hide: (function (notNofity) { + _$jscoverage['ui/popup.js'][226]++; + if (((! this._hidden) && this.getDom())) { + _$jscoverage['ui/popup.js'][227]++; + this.getDom().style.display = "none"; + _$jscoverage['ui/popup.js'][228]++; + this._hidden = true; + _$jscoverage['ui/popup.js'][229]++; + if ((! notNofity)) { + _$jscoverage['ui/popup.js'][230]++; + this.fireEvent("hide"); + } + } +}), queryAutoHide: (function (el) { + _$jscoverage['ui/popup.js'][235]++; + return ((! el) || (! uiUtils.contains(this.getDom(), el))); +})}; + _$jscoverage['ui/popup.js'][238]++; + utils.inherits(Popup, UIBase); + _$jscoverage['ui/popup.js'][240]++; + domUtils.on(document, "mousedown", (function (evt) { + _$jscoverage['ui/popup.js'][241]++; + var el = (evt.target || evt.srcElement); + _$jscoverage['ui/popup.js'][242]++; + closeAllPopup(evt, el); +})); + _$jscoverage['ui/popup.js'][244]++; + domUtils.on(window, "scroll", (function (evt, el) { + _$jscoverage['ui/popup.js'][245]++; + closeAllPopup(evt, el); +})); +})(); diff --git a/_test/coverage/ui/separator.js b/_test/coverage/ui/separator.js new file mode 100644 index 000000000..1ea7a8980 --- /dev/null +++ b/_test/coverage/ui/separator.js @@ -0,0 +1,71 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['ui/separator.js']) { + _$jscoverage['ui/separator.js'] = []; + _$jscoverage['ui/separator.js'][1] = 0; + _$jscoverage['ui/separator.js'][2] = 0; + _$jscoverage['ui/separator.js'][5] = 0; + _$jscoverage['ui/separator.js'][6] = 0; + _$jscoverage['ui/separator.js'][8] = 0; + _$jscoverage['ui/separator.js'][11] = 0; + _$jscoverage['ui/separator.js'][14] = 0; + _$jscoverage['ui/separator.js'][17] = 0; +} +_$jscoverage['ui/separator.js'].source = ["(function (){"," var utils = baidu.editor.utils,"," UIBase = baidu.editor.ui.UIBase,"," Separator = baidu.editor.ui.Separator = function (options){"," this.initOptions(options);"," this.initSeparator();"," };"," Separator.prototype = {"," uiName: 'separator',"," initSeparator: function (){"," this.initUIBase();"," },"," getHtmlTpl: function (){"," return '<div id=\"##\" class=\"edui-box %%\"></div>';"," }"," };"," utils.inherits(Separator, UIBase);","","})();"]; +_$jscoverage['ui/separator.js'][1]++; +(function () { + _$jscoverage['ui/separator.js'][2]++; + var utils = baidu.editor.utils, UIBase = baidu.editor.ui.UIBase, Separator = (baidu.editor.ui.Separator = (function (options) { + _$jscoverage['ui/separator.js'][5]++; + this.initOptions(options); + _$jscoverage['ui/separator.js'][6]++; + this.initSeparator(); +})); + _$jscoverage['ui/separator.js'][8]++; + Separator.prototype = {uiName: "separator", initSeparator: (function () { + _$jscoverage['ui/separator.js'][11]++; + this.initUIBase(); +}), getHtmlTpl: (function () { + _$jscoverage['ui/separator.js'][14]++; + return "
"; +})}; + _$jscoverage['ui/separator.js'][17]++; + utils.inherits(Separator, UIBase); +})(); diff --git a/_test/coverage/ui/shortcutmenu.js b/_test/coverage/ui/shortcutmenu.js new file mode 100644 index 000000000..a15b2d07a --- /dev/null +++ b/_test/coverage/ui/shortcutmenu.js @@ -0,0 +1,462 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['ui/shortcutmenu.js']) { + _$jscoverage['ui/shortcutmenu.js'] = []; + _$jscoverage['ui/shortcutmenu.js'][1] = 0; + _$jscoverage['ui/shortcutmenu.js'][2] = 0; + _$jscoverage['ui/shortcutmenu.js'][8] = 0; + _$jscoverage['ui/shortcutmenu.js'][12] = 0; + _$jscoverage['ui/shortcutmenu.js'][13] = 0; + _$jscoverage['ui/shortcutmenu.js'][14] = 0; + _$jscoverage['ui/shortcutmenu.js'][17] = 0; + _$jscoverage['ui/shortcutmenu.js'][19] = 0; + _$jscoverage['ui/shortcutmenu.js'][23] = 0; + _$jscoverage['ui/shortcutmenu.js'][24] = 0; + _$jscoverage['ui/shortcutmenu.js'][25] = 0; + _$jscoverage['ui/shortcutmenu.js'][26] = 0; + _$jscoverage['ui/shortcutmenu.js'][27] = 0; + _$jscoverage['ui/shortcutmenu.js'][30] = 0; + _$jscoverage['ui/shortcutmenu.js'][33] = 0; + _$jscoverage['ui/shortcutmenu.js'][34] = 0; + _$jscoverage['ui/shortcutmenu.js'][36] = 0; + _$jscoverage['ui/shortcutmenu.js'][39] = 0; + _$jscoverage['ui/shortcutmenu.js'][48] = 0; + _$jscoverage['ui/shortcutmenu.js'][49] = 0; + _$jscoverage['ui/shortcutmenu.js'][50] = 0; + _$jscoverage['ui/shortcutmenu.js'][51] = 0; + _$jscoverage['ui/shortcutmenu.js'][52] = 0; + _$jscoverage['ui/shortcutmenu.js'][53] = 0; + _$jscoverage['ui/shortcutmenu.js'][54] = 0; + _$jscoverage['ui/shortcutmenu.js'][55] = 0; + _$jscoverage['ui/shortcutmenu.js'][56] = 0; + _$jscoverage['ui/shortcutmenu.js'][59] = 0; + _$jscoverage['ui/shortcutmenu.js'][60] = 0; + _$jscoverage['ui/shortcutmenu.js'][61] = 0; + _$jscoverage['ui/shortcutmenu.js'][62] = 0; + _$jscoverage['ui/shortcutmenu.js'][63] = 0; + _$jscoverage['ui/shortcutmenu.js'][64] = 0; + _$jscoverage['ui/shortcutmenu.js'][71] = 0; + _$jscoverage['ui/shortcutmenu.js'][72] = 0; + _$jscoverage['ui/shortcutmenu.js'][73] = 0; + _$jscoverage['ui/shortcutmenu.js'][75] = 0; + _$jscoverage['ui/shortcutmenu.js'][76] = 0; + _$jscoverage['ui/shortcutmenu.js'][81] = 0; + _$jscoverage['ui/shortcutmenu.js'][82] = 0; + _$jscoverage['ui/shortcutmenu.js'][83] = 0; + _$jscoverage['ui/shortcutmenu.js'][89] = 0; + _$jscoverage['ui/shortcutmenu.js'][90] = 0; + _$jscoverage['ui/shortcutmenu.js'][91] = 0; + _$jscoverage['ui/shortcutmenu.js'][93] = 0; + _$jscoverage['ui/shortcutmenu.js'][94] = 0; + _$jscoverage['ui/shortcutmenu.js'][95] = 0; + _$jscoverage['ui/shortcutmenu.js'][101] = 0; + _$jscoverage['ui/shortcutmenu.js'][102] = 0; + _$jscoverage['ui/shortcutmenu.js'][104] = 0; + _$jscoverage['ui/shortcutmenu.js'][108] = 0; + _$jscoverage['ui/shortcutmenu.js'][109] = 0; + _$jscoverage['ui/shortcutmenu.js'][110] = 0; + _$jscoverage['ui/shortcutmenu.js'][111] = 0; + _$jscoverage['ui/shortcutmenu.js'][114] = 0; + _$jscoverage['ui/shortcutmenu.js'][115] = 0; + _$jscoverage['ui/shortcutmenu.js'][116] = 0; + _$jscoverage['ui/shortcutmenu.js'][119] = 0; + _$jscoverage['ui/shortcutmenu.js'][122] = 0; + _$jscoverage['ui/shortcutmenu.js'][127] = 0; + _$jscoverage['ui/shortcutmenu.js'][128] = 0; + _$jscoverage['ui/shortcutmenu.js'][129] = 0; + _$jscoverage['ui/shortcutmenu.js'][131] = 0; + _$jscoverage['ui/shortcutmenu.js'][132] = 0; + _$jscoverage['ui/shortcutmenu.js'][134] = 0; + _$jscoverage['ui/shortcutmenu.js'][137] = 0; + _$jscoverage['ui/shortcutmenu.js'][138] = 0; + _$jscoverage['ui/shortcutmenu.js'][139] = 0; + _$jscoverage['ui/shortcutmenu.js'][141] = 0; + _$jscoverage['ui/shortcutmenu.js'][142] = 0; + _$jscoverage['ui/shortcutmenu.js'][143] = 0; + _$jscoverage['ui/shortcutmenu.js'][144] = 0; + _$jscoverage['ui/shortcutmenu.js'][148] = 0; + _$jscoverage['ui/shortcutmenu.js'][149] = 0; + _$jscoverage['ui/shortcutmenu.js'][151] = 0; + _$jscoverage['ui/shortcutmenu.js'][152] = 0; + _$jscoverage['ui/shortcutmenu.js'][153] = 0; + _$jscoverage['ui/shortcutmenu.js'][154] = 0; + _$jscoverage['ui/shortcutmenu.js'][156] = 0; + _$jscoverage['ui/shortcutmenu.js'][157] = 0; + _$jscoverage['ui/shortcutmenu.js'][161] = 0; + _$jscoverage['ui/shortcutmenu.js'][162] = 0; + _$jscoverage['ui/shortcutmenu.js'][163] = 0; + _$jscoverage['ui/shortcutmenu.js'][164] = 0; + _$jscoverage['ui/shortcutmenu.js'][165] = 0; + _$jscoverage['ui/shortcutmenu.js'][169] = 0; + _$jscoverage['ui/shortcutmenu.js'][170] = 0; + _$jscoverage['ui/shortcutmenu.js'][171] = 0; + _$jscoverage['ui/shortcutmenu.js'][173] = 0; + _$jscoverage['ui/shortcutmenu.js'][174] = 0; + _$jscoverage['ui/shortcutmenu.js'][175] = 0; + _$jscoverage['ui/shortcutmenu.js'][179] = 0; + _$jscoverage['ui/shortcutmenu.js'][180] = 0; + _$jscoverage['ui/shortcutmenu.js'][182] = 0; + _$jscoverage['ui/shortcutmenu.js'][185] = 0; + _$jscoverage['ui/shortcutmenu.js'][186] = 0; + _$jscoverage['ui/shortcutmenu.js'][187] = 0; + _$jscoverage['ui/shortcutmenu.js'][192] = 0; + _$jscoverage['ui/shortcutmenu.js'][193] = 0; + _$jscoverage['ui/shortcutmenu.js'][194] = 0; + _$jscoverage['ui/shortcutmenu.js'][195] = 0; + _$jscoverage['ui/shortcutmenu.js'][196] = 0; + _$jscoverage['ui/shortcutmenu.js'][198] = 0; + _$jscoverage['ui/shortcutmenu.js'][200] = 0; + _$jscoverage['ui/shortcutmenu.js'][203] = 0; + _$jscoverage['ui/shortcutmenu.js'][209] = 0; + _$jscoverage['ui/shortcutmenu.js'][211] = 0; + _$jscoverage['ui/shortcutmenu.js'][212] = 0; + _$jscoverage['ui/shortcutmenu.js'][214] = 0; + _$jscoverage['ui/shortcutmenu.js'][217] = 0; + _$jscoverage['ui/shortcutmenu.js'][218] = 0; + _$jscoverage['ui/shortcutmenu.js'][219] = 0; + _$jscoverage['ui/shortcutmenu.js'][224] = 0; + _$jscoverage['ui/shortcutmenu.js'][225] = 0; + _$jscoverage['ui/shortcutmenu.js'][228] = 0; + _$jscoverage['ui/shortcutmenu.js'][229] = 0; +} +_$jscoverage['ui/shortcutmenu.js'].source = ["(function () {"," var UI = baidu.editor.ui,"," UIBase = UI.UIBase,"," uiUtils = UI.uiUtils,"," utils = baidu.editor.utils,"," domUtils = baidu.editor.dom.domUtils;",""," var allMenus = [],//存储所有快捷菜单"," timeID,"," isSubMenuShow = false;//是否有子pop显示",""," var ShortCutMenu = UI.ShortCutMenu = function (options) {"," this.initOptions (options);"," this.initShortCutMenu ();"," };",""," ShortCutMenu.postHide = hideAllMenu;",""," ShortCutMenu.prototype = {"," isHidden : true ,"," SPACE : 5 ,"," initShortCutMenu : function () {"," this.items = this.items || [];"," this.initUIBase ();"," this.initItems ();"," this.initEvent ();"," allMenus.push (this);"," } ,"," initEvent : function () {"," var me = this,"," doc = me.editor.document;",""," domUtils.on (doc , \"mousemove\" , function (e) {"," if (me.isHidden === false) {"," //有pop显示就不隐藏快捷菜单"," if (me.getSubMenuMark () || me.eventType == \"contextmenu\") return;","",""," var flag = true,"," el = me.getDom (),"," wt = el.offsetWidth,"," ht = el.offsetHeight,"," distanceX = wt / 2 + me.SPACE,//距离中心X标准"," distanceY = ht / 2,//距离中心Y标准"," x = Math.abs (e.screenX - me.left),//离中心距离横坐标"," y = Math.abs (e.screenY - me.top);//离中心距离纵坐标",""," clearTimeout (timeID);"," timeID = setTimeout (function () {"," if (y > 0 && y < distanceY) {"," me.setOpacity (el , \"1\");"," } else if (y > distanceY && y < distanceY + 70) {"," me.setOpacity (el , \"0.5\");"," flag = false;"," } else if (y > distanceY + 70 && y < distanceY + 140) {"," me.hide ();"," }",""," if (flag && x > 0 && x < distanceX) {"," me.setOpacity (el , \"1\")"," } else if (x > distanceX && x < distanceX + 70) {"," me.setOpacity (el , \"0.5\")"," } else if (x > distanceX + 70 && x < distanceX + 140) {"," me.hide ();"," }"," });"," }"," });",""," //ie\\ff下 mouseout不准"," if (browser.chrome) {"," domUtils.on (doc , \"mouseout\" , function (e) {"," var relatedTgt = e.relatedTarget || e.toElement;",""," if (relatedTgt == null || relatedTgt.tagName == \"HTML\") {"," me.hide ();"," }"," });"," }",""," me.editor.addListener (\"afterhidepop\" , function () {"," if (!me.isHidden) {"," isSubMenuShow = true;"," }"," });",""," } ,"," initItems : function () {"," if (utils.isArray (this.items)) {"," for (var i = 0, len = this.items.length ; i < len ; i++) {"," var item = this.items[i].toLowerCase ();",""," if (UI[item]) {"," this.items[i] = new UI[item] (this.editor);"," this.items[i].className += \" edui-shortcutsubmenu \";"," }"," }"," }"," } ,"," setOpacity : function (el , value) {"," if (browser.ie && browser.version < 9) {"," el.style.filter = \"alpha(opacity = \" + parseFloat (value) * 100 + \");\""," } else {"," el.style.opacity = value;"," }"," } ,"," getSubMenuMark : function () {"," isSubMenuShow = false;"," var layerEle = uiUtils.getFixedLayer ();"," var list = domUtils.getElementsByTagName (layerEle , \"div\" , function (node) {"," return domUtils.hasClass (node , \"edui-shortcutsubmenu edui-popup\")"," });",""," for (var i = 0, node ; node = list[i++] ;) {"," if (node.style.display != \"none\") {"," isSubMenuShow = true;"," }"," }"," return isSubMenuShow;"," } ,"," show : function (e , hasContextmenu) {"," var me = this,"," offset = {},"," el = this.getDom (),"," fixedlayer = uiUtils.getFixedLayer ();",""," function setPos (offset) {"," if (offset.left < 0) {"," offset.left = 0;"," }"," if (offset.top < 0) {"," offset.top = 0;"," }"," el.style.cssText = \"position:absolute;left:\" + offset.left + \"px;top:\" + offset.top + \"px;\";"," }",""," function setPosByCxtMenu (menu) {"," if (!menu.tagName) {"," menu = menu.getDom ();"," }"," offset.left = parseInt (menu.style.left);"," offset.top = parseInt (menu.style.top);"," offset.top -= el.offsetHeight + 15;"," setPos (offset);"," }","",""," me.eventType = e.type;"," el.style.cssText = \"display:block;left:-9999px\";",""," if (e.type == \"contextmenu\" && hasContextmenu) {"," var menu = domUtils.getElementsByTagName (fixedlayer , \"div\" , \"edui-contextmenu\")[0];"," if (menu) {"," setPosByCxtMenu (menu)"," } else {"," me.editor.addListener (\"aftershowcontextmenu\" , function (type , menu) {"," setPosByCxtMenu (menu);"," });"," }"," } else {"," offset = uiUtils.getViewportOffsetByEvent (e);"," offset.top -= el.offsetHeight + me.SPACE;"," offset.left += me.SPACE + 20;"," setPos (offset);"," me.setOpacity (el , 0.2);"," }","",""," me.isHidden = false;"," me.left = e.screenX + el.offsetWidth / 2 - me.SPACE;"," me.top = e.screenY - (el.offsetHeight / 2) - me.SPACE;",""," if (me.editor) {"," el.style.zIndex = me.editor.container.style.zIndex * 1 + 10;"," fixedlayer.style.zIndex = el.style.zIndex - 1;"," }"," } ,"," hide : function () {"," if (this.getDom ()) {"," this.getDom ().style.display = \"none\";"," }"," this.isHidden = true;"," } ,"," postRender : function () {"," if (utils.isArray (this.items)) {"," for (var i = 0, item ; item = this.items[i++] ;) {"," item.postRender ();"," }"," }"," } ,"," getHtmlTpl : function () {"," var buff;"," if (utils.isArray (this.items)) {"," buff = [];"," for (var i = 0 ; i < this.items.length ; i++) {"," buff[i] = this.items[i].renderHtml ();"," }"," buff = buff.join (\"\");"," } else {"," buff = this.items;"," }",""," return '<div id=\"##\" class=\"%% edui-toolbar\" data-src=\"shortcutmenu\" onmousedown=\"return false;\" onselectstart=\"return false;\" >' +"," buff +"," '</div>';"," }"," };",""," utils.inherits (ShortCutMenu , UIBase);",""," function hideAllMenu (e) {"," var tgt = e.target || e.srcElement,"," cur = domUtils.findParent (tgt , function (node) {"," return domUtils.hasClass (node , \"edui-shortcutmenu\") || domUtils.hasClass (node , \"edui-popup\");"," } , true);",""," if (!cur) {"," for (var i = 0, menu ; menu = allMenus[i++] ;) {"," menu.hide ()"," }"," }"," }",""," domUtils.on (document , 'mousedown' , function (e) {"," hideAllMenu (e);"," });",""," domUtils.on (window , 'scroll' , function (e) {"," hideAllMenu (e);"," });","","}) ();"]; +_$jscoverage['ui/shortcutmenu.js'][1]++; +(function () { + _$jscoverage['ui/shortcutmenu.js'][2]++; + var UI = baidu.editor.ui, UIBase = UI.UIBase, uiUtils = UI.uiUtils, utils = baidu.editor.utils, domUtils = baidu.editor.dom.domUtils; + _$jscoverage['ui/shortcutmenu.js'][8]++; + var allMenus = [], timeID, isSubMenuShow = false; + _$jscoverage['ui/shortcutmenu.js'][12]++; + var ShortCutMenu = (UI.ShortCutMenu = (function (options) { + _$jscoverage['ui/shortcutmenu.js'][13]++; + this.initOptions(options); + _$jscoverage['ui/shortcutmenu.js'][14]++; + this.initShortCutMenu(); +})); + _$jscoverage['ui/shortcutmenu.js'][17]++; + ShortCutMenu.postHide = hideAllMenu; + _$jscoverage['ui/shortcutmenu.js'][19]++; + ShortCutMenu.prototype = {isHidden: true, SPACE: 5, initShortCutMenu: (function () { + _$jscoverage['ui/shortcutmenu.js'][23]++; + this.items = (this.items || []); + _$jscoverage['ui/shortcutmenu.js'][24]++; + this.initUIBase(); + _$jscoverage['ui/shortcutmenu.js'][25]++; + this.initItems(); + _$jscoverage['ui/shortcutmenu.js'][26]++; + this.initEvent(); + _$jscoverage['ui/shortcutmenu.js'][27]++; + allMenus.push(this); +}), initEvent: (function () { + _$jscoverage['ui/shortcutmenu.js'][30]++; + var me = this, doc = me.editor.document; + _$jscoverage['ui/shortcutmenu.js'][33]++; + domUtils.on(doc, "mousemove", (function (e) { + _$jscoverage['ui/shortcutmenu.js'][34]++; + if ((me.isHidden === false)) { + _$jscoverage['ui/shortcutmenu.js'][36]++; + if ((me.getSubMenuMark() || (me.eventType == "contextmenu"))) { + _$jscoverage['ui/shortcutmenu.js'][36]++; + return; + } + _$jscoverage['ui/shortcutmenu.js'][39]++; + var flag = true, el = me.getDom(), wt = el.offsetWidth, ht = el.offsetHeight, distanceX = ((wt / 2) + me.SPACE), distanceY = (ht / 2), x = Math.abs((e.screenX - me.left)), y = Math.abs((e.screenY - me.top)); + _$jscoverage['ui/shortcutmenu.js'][48]++; + clearTimeout(timeID); + _$jscoverage['ui/shortcutmenu.js'][49]++; + timeID = setTimeout((function () { + _$jscoverage['ui/shortcutmenu.js'][50]++; + if (((y > 0) && (y < distanceY))) { + _$jscoverage['ui/shortcutmenu.js'][51]++; + me.setOpacity(el, "1"); + } + else { + _$jscoverage['ui/shortcutmenu.js'][52]++; + if (((y > distanceY) && (y < (distanceY + 70)))) { + _$jscoverage['ui/shortcutmenu.js'][53]++; + me.setOpacity(el, "0.5"); + _$jscoverage['ui/shortcutmenu.js'][54]++; + flag = false; + } + else { + _$jscoverage['ui/shortcutmenu.js'][55]++; + if (((y > (distanceY + 70)) && (y < (distanceY + 140)))) { + _$jscoverage['ui/shortcutmenu.js'][56]++; + me.hide(); + } + } + } + _$jscoverage['ui/shortcutmenu.js'][59]++; + if ((flag && (x > 0) && (x < distanceX))) { + _$jscoverage['ui/shortcutmenu.js'][60]++; + me.setOpacity(el, "1"); + } + else { + _$jscoverage['ui/shortcutmenu.js'][61]++; + if (((x > distanceX) && (x < (distanceX + 70)))) { + _$jscoverage['ui/shortcutmenu.js'][62]++; + me.setOpacity(el, "0.5"); + } + else { + _$jscoverage['ui/shortcutmenu.js'][63]++; + if (((x > (distanceX + 70)) && (x < (distanceX + 140)))) { + _$jscoverage['ui/shortcutmenu.js'][64]++; + me.hide(); + } + } + } +})); + } +})); + _$jscoverage['ui/shortcutmenu.js'][71]++; + if (browser.chrome) { + _$jscoverage['ui/shortcutmenu.js'][72]++; + domUtils.on(doc, "mouseout", (function (e) { + _$jscoverage['ui/shortcutmenu.js'][73]++; + var relatedTgt = (e.relatedTarget || e.toElement); + _$jscoverage['ui/shortcutmenu.js'][75]++; + if (((relatedTgt == null) || (relatedTgt.tagName == "HTML"))) { + _$jscoverage['ui/shortcutmenu.js'][76]++; + me.hide(); + } +})); + } + _$jscoverage['ui/shortcutmenu.js'][81]++; + me.editor.addListener("afterhidepop", (function () { + _$jscoverage['ui/shortcutmenu.js'][82]++; + if ((! me.isHidden)) { + _$jscoverage['ui/shortcutmenu.js'][83]++; + isSubMenuShow = true; + } +})); +}), initItems: (function () { + _$jscoverage['ui/shortcutmenu.js'][89]++; + if (utils.isArray(this.items)) { + _$jscoverage['ui/shortcutmenu.js'][90]++; + for (var i = 0, len = this.items.length; (i < len); (i++)) { + _$jscoverage['ui/shortcutmenu.js'][91]++; + var item = this.items[i].toLowerCase(); + _$jscoverage['ui/shortcutmenu.js'][93]++; + if (UI[item]) { + _$jscoverage['ui/shortcutmenu.js'][94]++; + this.items[i] = new (UI[item])(this.editor); + _$jscoverage['ui/shortcutmenu.js'][95]++; + this.items[i].className += " edui-shortcutsubmenu "; + } +} + } +}), setOpacity: (function (el, value) { + _$jscoverage['ui/shortcutmenu.js'][101]++; + if ((browser.ie && (browser.version < 9))) { + _$jscoverage['ui/shortcutmenu.js'][102]++; + el.style.filter = ("alpha(opacity = " + (parseFloat(value) * 100) + ");"); + } + else { + _$jscoverage['ui/shortcutmenu.js'][104]++; + el.style.opacity = value; + } +}), getSubMenuMark: (function () { + _$jscoverage['ui/shortcutmenu.js'][108]++; + isSubMenuShow = false; + _$jscoverage['ui/shortcutmenu.js'][109]++; + var layerEle = uiUtils.getFixedLayer(); + _$jscoverage['ui/shortcutmenu.js'][110]++; + var list = domUtils.getElementsByTagName(layerEle, "div", (function (node) { + _$jscoverage['ui/shortcutmenu.js'][111]++; + return domUtils.hasClass(node, "edui-shortcutsubmenu edui-popup"); +})); + _$jscoverage['ui/shortcutmenu.js'][114]++; + for (var i = 0, node; (node = list[(i++)]);) { + _$jscoverage['ui/shortcutmenu.js'][115]++; + if ((node.style.display != "none")) { + _$jscoverage['ui/shortcutmenu.js'][116]++; + isSubMenuShow = true; + } +} + _$jscoverage['ui/shortcutmenu.js'][119]++; + return isSubMenuShow; +}), show: (function (e, hasContextmenu) { + _$jscoverage['ui/shortcutmenu.js'][122]++; + var me = this, offset = {}, el = this.getDom(), fixedlayer = uiUtils.getFixedLayer(); + _$jscoverage['ui/shortcutmenu.js'][127]++; + function setPos(offset) { + _$jscoverage['ui/shortcutmenu.js'][128]++; + if ((offset.left < 0)) { + _$jscoverage['ui/shortcutmenu.js'][129]++; + offset.left = 0; + } + _$jscoverage['ui/shortcutmenu.js'][131]++; + if ((offset.top < 0)) { + _$jscoverage['ui/shortcutmenu.js'][132]++; + offset.top = 0; + } + _$jscoverage['ui/shortcutmenu.js'][134]++; + el.style.cssText = ("position:absolute;left:" + offset.left + "px;top:" + offset.top + "px;"); +} + _$jscoverage['ui/shortcutmenu.js'][137]++; + function setPosByCxtMenu(menu) { + _$jscoverage['ui/shortcutmenu.js'][138]++; + if ((! menu.tagName)) { + _$jscoverage['ui/shortcutmenu.js'][139]++; + menu = menu.getDom(); + } + _$jscoverage['ui/shortcutmenu.js'][141]++; + offset.left = parseInt(menu.style.left); + _$jscoverage['ui/shortcutmenu.js'][142]++; + offset.top = parseInt(menu.style.top); + _$jscoverage['ui/shortcutmenu.js'][143]++; + offset.top -= (el.offsetHeight + 15); + _$jscoverage['ui/shortcutmenu.js'][144]++; + setPos(offset); +} + _$jscoverage['ui/shortcutmenu.js'][148]++; + me.eventType = e.type; + _$jscoverage['ui/shortcutmenu.js'][149]++; + el.style.cssText = "display:block;left:-9999px"; + _$jscoverage['ui/shortcutmenu.js'][151]++; + if (((e.type == "contextmenu") && hasContextmenu)) { + _$jscoverage['ui/shortcutmenu.js'][152]++; + var menu = domUtils.getElementsByTagName(fixedlayer, "div", "edui-contextmenu")[0]; + _$jscoverage['ui/shortcutmenu.js'][153]++; + if (menu) { + _$jscoverage['ui/shortcutmenu.js'][154]++; + setPosByCxtMenu(menu); + } + else { + _$jscoverage['ui/shortcutmenu.js'][156]++; + me.editor.addListener("aftershowcontextmenu", (function (type, menu) { + _$jscoverage['ui/shortcutmenu.js'][157]++; + setPosByCxtMenu(menu); +})); + } + } + else { + _$jscoverage['ui/shortcutmenu.js'][161]++; + offset = uiUtils.getViewportOffsetByEvent(e); + _$jscoverage['ui/shortcutmenu.js'][162]++; + offset.top -= (el.offsetHeight + me.SPACE); + _$jscoverage['ui/shortcutmenu.js'][163]++; + offset.left += (me.SPACE + 20); + _$jscoverage['ui/shortcutmenu.js'][164]++; + setPos(offset); + _$jscoverage['ui/shortcutmenu.js'][165]++; + me.setOpacity(el, 0.20000000000000001); + } + _$jscoverage['ui/shortcutmenu.js'][169]++; + me.isHidden = false; + _$jscoverage['ui/shortcutmenu.js'][170]++; + me.left = ((e.screenX + (el.offsetWidth / 2)) - me.SPACE); + _$jscoverage['ui/shortcutmenu.js'][171]++; + me.top = (e.screenY - (el.offsetHeight / 2) - me.SPACE); + _$jscoverage['ui/shortcutmenu.js'][173]++; + if (me.editor) { + _$jscoverage['ui/shortcutmenu.js'][174]++; + el.style.zIndex = ((me.editor.container.style.zIndex * 1) + 10); + _$jscoverage['ui/shortcutmenu.js'][175]++; + fixedlayer.style.zIndex = (el.style.zIndex - 1); + } +}), hide: (function () { + _$jscoverage['ui/shortcutmenu.js'][179]++; + if (this.getDom()) { + _$jscoverage['ui/shortcutmenu.js'][180]++; + this.getDom().style.display = "none"; + } + _$jscoverage['ui/shortcutmenu.js'][182]++; + this.isHidden = true; +}), postRender: (function () { + _$jscoverage['ui/shortcutmenu.js'][185]++; + if (utils.isArray(this.items)) { + _$jscoverage['ui/shortcutmenu.js'][186]++; + for (var i = 0, item; (item = this.items[(i++)]);) { + _$jscoverage['ui/shortcutmenu.js'][187]++; + item.postRender(); +} + } +}), getHtmlTpl: (function () { + _$jscoverage['ui/shortcutmenu.js'][192]++; + var buff; + _$jscoverage['ui/shortcutmenu.js'][193]++; + if (utils.isArray(this.items)) { + _$jscoverage['ui/shortcutmenu.js'][194]++; + buff = []; + _$jscoverage['ui/shortcutmenu.js'][195]++; + for (var i = 0; (i < this.items.length); (i++)) { + _$jscoverage['ui/shortcutmenu.js'][196]++; + buff[i] = this.items[i].renderHtml(); +} + _$jscoverage['ui/shortcutmenu.js'][198]++; + buff = buff.join(""); + } + else { + _$jscoverage['ui/shortcutmenu.js'][200]++; + buff = this.items; + } + _$jscoverage['ui/shortcutmenu.js'][203]++; + return ("
" + buff + "
"); +})}; + _$jscoverage['ui/shortcutmenu.js'][209]++; + utils.inherits(ShortCutMenu, UIBase); + _$jscoverage['ui/shortcutmenu.js'][211]++; + function hideAllMenu(e) { + _$jscoverage['ui/shortcutmenu.js'][212]++; + var tgt = (e.target || e.srcElement), cur = domUtils.findParent(tgt, (function (node) { + _$jscoverage['ui/shortcutmenu.js'][214]++; + return (domUtils.hasClass(node, "edui-shortcutmenu") || domUtils.hasClass(node, "edui-popup")); +}), true); + _$jscoverage['ui/shortcutmenu.js'][217]++; + if ((! cur)) { + _$jscoverage['ui/shortcutmenu.js'][218]++; + for (var i = 0, menu; (menu = allMenus[(i++)]);) { + _$jscoverage['ui/shortcutmenu.js'][219]++; + menu.hide(); +} + } +} + _$jscoverage['ui/shortcutmenu.js'][224]++; + domUtils.on(document, "mousedown", (function (e) { + _$jscoverage['ui/shortcutmenu.js'][225]++; + hideAllMenu(e); +})); + _$jscoverage['ui/shortcutmenu.js'][228]++; + domUtils.on(window, "scroll", (function (e) { + _$jscoverage['ui/shortcutmenu.js'][229]++; + hideAllMenu(e); +})); +})(); diff --git a/_test/coverage/ui/splitbutton.js b/_test/coverage/ui/splitbutton.js new file mode 100644 index 000000000..9d7b95a5d --- /dev/null +++ b/_test/coverage/ui/splitbutton.js @@ -0,0 +1,170 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['ui/splitbutton.js']) { + _$jscoverage['ui/splitbutton.js'] = []; + _$jscoverage['ui/splitbutton.js'][4] = 0; + _$jscoverage['ui/splitbutton.js'][5] = 0; + _$jscoverage['ui/splitbutton.js'][11] = 0; + _$jscoverage['ui/splitbutton.js'][12] = 0; + _$jscoverage['ui/splitbutton.js'][14] = 0; + _$jscoverage['ui/splitbutton.js'][19] = 0; + _$jscoverage['ui/splitbutton.js'][20] = 0; + _$jscoverage['ui/splitbutton.js'][21] = 0; + _$jscoverage['ui/splitbutton.js'][22] = 0; + _$jscoverage['ui/splitbutton.js'][23] = 0; + _$jscoverage['ui/splitbutton.js'][24] = 0; + _$jscoverage['ui/splitbutton.js'][25] = 0; + _$jscoverage['ui/splitbutton.js'][30] = 0; + _$jscoverage['ui/splitbutton.js'][31] = 0; + _$jscoverage['ui/splitbutton.js'][34] = 0; + _$jscoverage['ui/splitbutton.js'][35] = 0; + _$jscoverage['ui/splitbutton.js'][36] = 0; + _$jscoverage['ui/splitbutton.js'][38] = 0; + _$jscoverage['ui/splitbutton.js'][39] = 0; + _$jscoverage['ui/splitbutton.js'][40] = 0; + _$jscoverage['ui/splitbutton.js'][41] = 0; + _$jscoverage['ui/splitbutton.js'][46] = 0; + _$jscoverage['ui/splitbutton.js'][48] = 0; + _$jscoverage['ui/splitbutton.js'][51] = 0; + _$jscoverage['ui/splitbutton.js'][54] = 0; + _$jscoverage['ui/splitbutton.js'][57] = 0; + _$jscoverage['ui/splitbutton.js'][68] = 0; + _$jscoverage['ui/splitbutton.js'][69] = 0; + _$jscoverage['ui/splitbutton.js'][70] = 0; + _$jscoverage['ui/splitbutton.js'][71] = 0; + _$jscoverage['ui/splitbutton.js'][74] = 0; + _$jscoverage['ui/splitbutton.js'][75] = 0; + _$jscoverage['ui/splitbutton.js'][79] = 0; + _$jscoverage['ui/splitbutton.js'][80] = 0; + _$jscoverage['ui/splitbutton.js'][84] = 0; + _$jscoverage['ui/splitbutton.js'][85] = 0; +} +_$jscoverage['ui/splitbutton.js'].source = ["///import core","///import uicore","///import ui/stateful.js","(function (){"," var utils = baidu.editor.utils,"," uiUtils = baidu.editor.ui.uiUtils,"," domUtils = baidu.editor.dom.domUtils,"," UIBase = baidu.editor.ui.UIBase,"," Stateful = baidu.editor.ui.Stateful,"," SplitButton = baidu.editor.ui.SplitButton = function (options){"," this.initOptions(options);"," this.initSplitButton();"," };"," SplitButton.prototype = {"," popup: null,"," uiName: 'splitbutton',"," title: '',"," initSplitButton: function (){"," this.initUIBase();"," this.Stateful_init();"," var me = this;"," if (this.popup != null) {"," var popup = this.popup;"," this.popup = null;"," this.setPopup(popup);"," }"," },"," _UIBase_postRender: UIBase.prototype.postRender,"," postRender: function (){"," this.Stateful_postRender();"," this._UIBase_postRender();"," },"," setPopup: function (popup){"," if (this.popup === popup) return;"," if (this.popup != null) {"," this.popup.dispose();"," }"," popup.addListener('show', utils.bind(this._onPopupShow, this));"," popup.addListener('hide', utils.bind(this._onPopupHide, this));"," popup.addListener('postrender', utils.bind(function (){"," popup.getDom('body').appendChild("," uiUtils.createElementByHtml('<div id=\"' +"," this.popup.id + '_bordereraser\" class=\"edui-bordereraser edui-background\" style=\"width:' +"," (uiUtils.getClientRect(this.getDom()).width + 20) + 'px\"></div>')"," );"," popup.getDom().className += ' ' + this.className;"," }, this));"," this.popup = popup;"," },"," _onPopupShow: function (){"," this.addState('opened');"," },"," _onPopupHide: function (){"," this.removeState('opened');"," },"," getHtmlTpl: function (){"," return '<div id=\"##\" class=\"edui-box %%\">' +"," '<div '+ (this.title ? 'title=\"' + this.title + '\"' : '') +' id=\"##_state\" stateful><div class=\"%%-body\">' +"," '<div id=\"##_button_body\" class=\"edui-box edui-button-body\" onclick=\"$$._onButtonClick(event, this);\">' +"," '<div class=\"edui-box edui-icon\"></div>' +"," '</div>' +"," '<div class=\"edui-box edui-splitborder\"></div>' +"," '<div class=\"edui-box edui-arrow\" onclick=\"$$._onArrowClick();\"></div>' +"," '</div></div></div>';"," },"," showPopup: function (){"," // 当popup往上弹出的时候,做特殊处理"," var rect = uiUtils.getClientRect(this.getDom());"," rect.top -= this.popup.SHADOW_RADIUS;"," rect.height += this.popup.SHADOW_RADIUS;"," this.popup.showAnchorRect(rect);"," },"," _onArrowClick: function (event, el){"," if (!this.isDisabled()) {"," this.showPopup();"," }"," },"," _onButtonClick: function (){"," if (!this.isDisabled()) {"," this.fireEvent('buttonclick');"," }"," }"," };"," utils.inherits(SplitButton, UIBase);"," utils.extend(SplitButton.prototype, Stateful, true);","","})();"]; +_$jscoverage['ui/splitbutton.js'][4]++; +(function () { + _$jscoverage['ui/splitbutton.js'][5]++; + var utils = baidu.editor.utils, uiUtils = baidu.editor.ui.uiUtils, domUtils = baidu.editor.dom.domUtils, UIBase = baidu.editor.ui.UIBase, Stateful = baidu.editor.ui.Stateful, SplitButton = (baidu.editor.ui.SplitButton = (function (options) { + _$jscoverage['ui/splitbutton.js'][11]++; + this.initOptions(options); + _$jscoverage['ui/splitbutton.js'][12]++; + this.initSplitButton(); +})); + _$jscoverage['ui/splitbutton.js'][14]++; + SplitButton.prototype = {popup: null, uiName: "splitbutton", title: "", initSplitButton: (function () { + _$jscoverage['ui/splitbutton.js'][19]++; + this.initUIBase(); + _$jscoverage['ui/splitbutton.js'][20]++; + this.Stateful_init(); + _$jscoverage['ui/splitbutton.js'][21]++; + var me = this; + _$jscoverage['ui/splitbutton.js'][22]++; + if ((this.popup != null)) { + _$jscoverage['ui/splitbutton.js'][23]++; + var popup = this.popup; + _$jscoverage['ui/splitbutton.js'][24]++; + this.popup = null; + _$jscoverage['ui/splitbutton.js'][25]++; + this.setPopup(popup); + } +}), _UIBase_postRender: UIBase.prototype.postRender, postRender: (function () { + _$jscoverage['ui/splitbutton.js'][30]++; + this.Stateful_postRender(); + _$jscoverage['ui/splitbutton.js'][31]++; + this._UIBase_postRender(); +}), setPopup: (function (popup) { + _$jscoverage['ui/splitbutton.js'][34]++; + if ((this.popup === popup)) { + _$jscoverage['ui/splitbutton.js'][34]++; + return; + } + _$jscoverage['ui/splitbutton.js'][35]++; + if ((this.popup != null)) { + _$jscoverage['ui/splitbutton.js'][36]++; + this.popup.dispose(); + } + _$jscoverage['ui/splitbutton.js'][38]++; + popup.addListener("show", utils.bind(this._onPopupShow, this)); + _$jscoverage['ui/splitbutton.js'][39]++; + popup.addListener("hide", utils.bind(this._onPopupHide, this)); + _$jscoverage['ui/splitbutton.js'][40]++; + popup.addListener("postrender", utils.bind((function () { + _$jscoverage['ui/splitbutton.js'][41]++; + popup.getDom("body").appendChild(uiUtils.createElementByHtml(("
"))); + _$jscoverage['ui/splitbutton.js'][46]++; + popup.getDom().className += (" " + this.className); +}), this)); + _$jscoverage['ui/splitbutton.js'][48]++; + this.popup = popup; +}), _onPopupShow: (function () { + _$jscoverage['ui/splitbutton.js'][51]++; + this.addState("opened"); +}), _onPopupHide: (function () { + _$jscoverage['ui/splitbutton.js'][54]++; + this.removeState("opened"); +}), getHtmlTpl: (function () { + _$jscoverage['ui/splitbutton.js'][57]++; + return ("
" + "
" + "
" + "
" + "
" + "
" + "
" + "
"); +}), showPopup: (function () { + _$jscoverage['ui/splitbutton.js'][68]++; + var rect = uiUtils.getClientRect(this.getDom()); + _$jscoverage['ui/splitbutton.js'][69]++; + rect.top -= this.popup.SHADOW_RADIUS; + _$jscoverage['ui/splitbutton.js'][70]++; + rect.height += this.popup.SHADOW_RADIUS; + _$jscoverage['ui/splitbutton.js'][71]++; + this.popup.showAnchorRect(rect); +}), _onArrowClick: (function (event, el) { + _$jscoverage['ui/splitbutton.js'][74]++; + if ((! this.isDisabled())) { + _$jscoverage['ui/splitbutton.js'][75]++; + this.showPopup(); + } +}), _onButtonClick: (function () { + _$jscoverage['ui/splitbutton.js'][79]++; + if ((! this.isDisabled())) { + _$jscoverage['ui/splitbutton.js'][80]++; + this.fireEvent("buttonclick"); + } +})}; + _$jscoverage['ui/splitbutton.js'][84]++; + utils.inherits(SplitButton, UIBase); + _$jscoverage['ui/splitbutton.js'][85]++; + utils.extend(SplitButton.prototype, Stateful, true); +})(); diff --git a/_test/coverage/ui/stateful.js b/_test/coverage/ui/stateful.js new file mode 100644 index 000000000..61621e327 --- /dev/null +++ b/_test/coverage/ui/stateful.js @@ -0,0 +1,214 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['ui/stateful.js']) { + _$jscoverage['ui/stateful.js'] = []; + _$jscoverage['ui/stateful.js'][1] = 0; + _$jscoverage['ui/stateful.js'][2] = 0; + _$jscoverage['ui/stateful.js'][6] = 0; + _$jscoverage['ui/stateful.js'][15] = 0; + _$jscoverage['ui/stateful.js'][19] = 0; + _$jscoverage['ui/stateful.js'][20] = 0; + _$jscoverage['ui/stateful.js'][23] = 0; + _$jscoverage['ui/stateful.js'][25] = 0; + _$jscoverage['ui/stateful.js'][28] = 0; + _$jscoverage['ui/stateful.js'][29] = 0; + _$jscoverage['ui/stateful.js'][30] = 0; + _$jscoverage['ui/stateful.js'][31] = 0; + _$jscoverage['ui/stateful.js'][35] = 0; + _$jscoverage['ui/stateful.js'][36] = 0; + _$jscoverage['ui/stateful.js'][37] = 0; + _$jscoverage['ui/stateful.js'][38] = 0; + _$jscoverage['ui/stateful.js'][42] = 0; + _$jscoverage['ui/stateful.js'][43] = 0; + _$jscoverage['ui/stateful.js'][44] = 0; + _$jscoverage['ui/stateful.js'][48] = 0; + _$jscoverage['ui/stateful.js'][49] = 0; + _$jscoverage['ui/stateful.js'][50] = 0; + _$jscoverage['ui/stateful.js'][54] = 0; + _$jscoverage['ui/stateful.js'][55] = 0; + _$jscoverage['ui/stateful.js'][59] = 0; + _$jscoverage['ui/stateful.js'][60] = 0; + _$jscoverage['ui/stateful.js'][64] = 0; + _$jscoverage['ui/stateful.js'][65] = 0; + _$jscoverage['ui/stateful.js'][69] = 0; + _$jscoverage['ui/stateful.js'][72] = 0; + _$jscoverage['ui/stateful.js'][73] = 0; + _$jscoverage['ui/stateful.js'][77] = 0; + _$jscoverage['ui/stateful.js'][78] = 0; + _$jscoverage['ui/stateful.js'][82] = 0; + _$jscoverage['ui/stateful.js'][85] = 0; + _$jscoverage['ui/stateful.js'][88] = 0; + _$jscoverage['ui/stateful.js'][89] = 0; + _$jscoverage['ui/stateful.js'][91] = 0; + _$jscoverage['ui/stateful.js'][95] = 0; + _$jscoverage['ui/stateful.js'][98] = 0; + _$jscoverage['ui/stateful.js'][99] = 0; + _$jscoverage['ui/stateful.js'][100] = 0; + _$jscoverage['ui/stateful.js'][101] = 0; + _$jscoverage['ui/stateful.js'][102] = 0; + _$jscoverage['ui/stateful.js'][104] = 0; +} +_$jscoverage['ui/stateful.js'].source = ["(function (){"," var browser = baidu.editor.browser,"," domUtils = baidu.editor.dom.domUtils,"," uiUtils = baidu.editor.ui.uiUtils;"," "," var TPL_STATEFUL = 'onmousedown=\"$$.Stateful_onMouseDown(event, this);\"' +"," ' onmouseup=\"$$.Stateful_onMouseUp(event, this);\"' +"," ( browser.ie ? ("," ' onmouseenter=\"$$.Stateful_onMouseEnter(event, this);\"' +"," ' onmouseleave=\"$$.Stateful_onMouseLeave(event, this);\"' )"," : ("," ' onmouseover=\"$$.Stateful_onMouseOver(event, this);\"' +"," ' onmouseout=\"$$.Stateful_onMouseOut(event, this);\"' ));"," "," baidu.editor.ui.Stateful = {"," alwalysHoverable: false,"," target:null,//目标元素和this指向dom不一样"," Stateful_init: function (){"," this._Stateful_dGetHtmlTpl = this.getHtmlTpl;"," this.getHtmlTpl = this.Stateful_getHtmlTpl;"," },"," Stateful_getHtmlTpl: function (){"," var tpl = this._Stateful_dGetHtmlTpl();"," // 使用function避免$转义"," return tpl.replace(/stateful/g, function (){ return TPL_STATEFUL; });"," },"," Stateful_onMouseEnter: function (evt, el){"," this.target=el;"," if (!this.isDisabled() || this.alwalysHoverable) {"," this.addState('hover');"," this.fireEvent('over');"," }"," },"," Stateful_onMouseLeave: function (evt, el){"," if (!this.isDisabled() || this.alwalysHoverable) {"," this.removeState('hover');"," this.removeState('active');"," this.fireEvent('out');"," }"," },"," Stateful_onMouseOver: function (evt, el){"," var rel = evt.relatedTarget;"," if (!uiUtils.contains(el, rel) && el !== rel) {"," this.Stateful_onMouseEnter(evt, el);"," }"," },"," Stateful_onMouseOut: function (evt, el){"," var rel = evt.relatedTarget;"," if (!uiUtils.contains(el, rel) && el !== rel) {"," this.Stateful_onMouseLeave(evt, el);"," }"," },"," Stateful_onMouseDown: function (evt, el){"," if (!this.isDisabled()) {"," this.addState('active');"," }"," },"," Stateful_onMouseUp: function (evt, el){"," if (!this.isDisabled()) {"," this.removeState('active');"," }"," },"," Stateful_postRender: function (){"," if (this.disabled && !this.hasState('disabled')) {"," this.addState('disabled');"," }"," },"," hasState: function (state){"," return domUtils.hasClass(this.getStateDom(), 'edui-state-' + state);"," },"," addState: function (state){"," if (!this.hasState(state)) {"," this.getStateDom().className += ' edui-state-' + state;"," }"," },"," removeState: function (state){"," if (this.hasState(state)) {"," domUtils.removeClasses(this.getStateDom(), ['edui-state-' + state]);"," }"," },"," getStateDom: function (){"," return this.getDom('state');"," },"," isChecked: function (){"," return this.hasState('checked');"," },"," setChecked: function (checked){"," if (!this.isDisabled() && checked) {"," this.addState('checked');"," } else {"," this.removeState('checked');"," }"," },"," isDisabled: function (){"," return this.hasState('disabled');"," },"," setDisabled: function (disabled){"," if (disabled) {"," this.removeState('hover');"," this.removeState('checked');"," this.removeState('active');"," this.addState('disabled');"," } else {"," this.removeState('disabled');"," }"," }"," };","})();"]; +_$jscoverage['ui/stateful.js'][1]++; +(function () { + _$jscoverage['ui/stateful.js'][2]++; + var browser = baidu.editor.browser, domUtils = baidu.editor.dom.domUtils, uiUtils = baidu.editor.ui.uiUtils; + _$jscoverage['ui/stateful.js'][6]++; + var TPL_STATEFUL = ("onmousedown=\"$$.Stateful_onMouseDown(event, this);\"" + " onmouseup=\"$$.Stateful_onMouseUp(event, this);\"" + (browser.ie? " onmouseenter=\"$$.Stateful_onMouseEnter(event, this);\" onmouseleave=\"$$.Stateful_onMouseLeave(event, this);\"": " onmouseover=\"$$.Stateful_onMouseOver(event, this);\" onmouseout=\"$$.Stateful_onMouseOut(event, this);\"")); + _$jscoverage['ui/stateful.js'][15]++; + baidu.editor.ui.Stateful = {alwalysHoverable: false, target: null, Stateful_init: (function () { + _$jscoverage['ui/stateful.js'][19]++; + this._Stateful_dGetHtmlTpl = this.getHtmlTpl; + _$jscoverage['ui/stateful.js'][20]++; + this.getHtmlTpl = this.Stateful_getHtmlTpl; +}), Stateful_getHtmlTpl: (function () { + _$jscoverage['ui/stateful.js'][23]++; + var tpl = this._Stateful_dGetHtmlTpl(); + _$jscoverage['ui/stateful.js'][25]++; + return tpl.replace(/stateful/g, (function () { + _$jscoverage['ui/stateful.js'][25]++; + return TPL_STATEFUL; +})); +}), Stateful_onMouseEnter: (function (evt, el) { + _$jscoverage['ui/stateful.js'][28]++; + this.target = el; + _$jscoverage['ui/stateful.js'][29]++; + if (((! this.isDisabled()) || this.alwalysHoverable)) { + _$jscoverage['ui/stateful.js'][30]++; + this.addState("hover"); + _$jscoverage['ui/stateful.js'][31]++; + this.fireEvent("over"); + } +}), Stateful_onMouseLeave: (function (evt, el) { + _$jscoverage['ui/stateful.js'][35]++; + if (((! this.isDisabled()) || this.alwalysHoverable)) { + _$jscoverage['ui/stateful.js'][36]++; + this.removeState("hover"); + _$jscoverage['ui/stateful.js'][37]++; + this.removeState("active"); + _$jscoverage['ui/stateful.js'][38]++; + this.fireEvent("out"); + } +}), Stateful_onMouseOver: (function (evt, el) { + _$jscoverage['ui/stateful.js'][42]++; + var rel = evt.relatedTarget; + _$jscoverage['ui/stateful.js'][43]++; + if (((! uiUtils.contains(el, rel)) && (el !== rel))) { + _$jscoverage['ui/stateful.js'][44]++; + this.Stateful_onMouseEnter(evt, el); + } +}), Stateful_onMouseOut: (function (evt, el) { + _$jscoverage['ui/stateful.js'][48]++; + var rel = evt.relatedTarget; + _$jscoverage['ui/stateful.js'][49]++; + if (((! uiUtils.contains(el, rel)) && (el !== rel))) { + _$jscoverage['ui/stateful.js'][50]++; + this.Stateful_onMouseLeave(evt, el); + } +}), Stateful_onMouseDown: (function (evt, el) { + _$jscoverage['ui/stateful.js'][54]++; + if ((! this.isDisabled())) { + _$jscoverage['ui/stateful.js'][55]++; + this.addState("active"); + } +}), Stateful_onMouseUp: (function (evt, el) { + _$jscoverage['ui/stateful.js'][59]++; + if ((! this.isDisabled())) { + _$jscoverage['ui/stateful.js'][60]++; + this.removeState("active"); + } +}), Stateful_postRender: (function () { + _$jscoverage['ui/stateful.js'][64]++; + if ((this.disabled && (! this.hasState("disabled")))) { + _$jscoverage['ui/stateful.js'][65]++; + this.addState("disabled"); + } +}), hasState: (function (state) { + _$jscoverage['ui/stateful.js'][69]++; + return domUtils.hasClass(this.getStateDom(), ("edui-state-" + state)); +}), addState: (function (state) { + _$jscoverage['ui/stateful.js'][72]++; + if ((! this.hasState(state))) { + _$jscoverage['ui/stateful.js'][73]++; + this.getStateDom().className += (" edui-state-" + state); + } +}), removeState: (function (state) { + _$jscoverage['ui/stateful.js'][77]++; + if (this.hasState(state)) { + _$jscoverage['ui/stateful.js'][78]++; + domUtils.removeClasses(this.getStateDom(), [("edui-state-" + state)]); + } +}), getStateDom: (function () { + _$jscoverage['ui/stateful.js'][82]++; + return this.getDom("state"); +}), isChecked: (function () { + _$jscoverage['ui/stateful.js'][85]++; + return this.hasState("checked"); +}), setChecked: (function (checked) { + _$jscoverage['ui/stateful.js'][88]++; + if (((! this.isDisabled()) && checked)) { + _$jscoverage['ui/stateful.js'][89]++; + this.addState("checked"); + } + else { + _$jscoverage['ui/stateful.js'][91]++; + this.removeState("checked"); + } +}), isDisabled: (function () { + _$jscoverage['ui/stateful.js'][95]++; + return this.hasState("disabled"); +}), setDisabled: (function (disabled) { + _$jscoverage['ui/stateful.js'][98]++; + if (disabled) { + _$jscoverage['ui/stateful.js'][99]++; + this.removeState("hover"); + _$jscoverage['ui/stateful.js'][100]++; + this.removeState("checked"); + _$jscoverage['ui/stateful.js'][101]++; + this.removeState("active"); + _$jscoverage['ui/stateful.js'][102]++; + this.addState("disabled"); + } + else { + _$jscoverage['ui/stateful.js'][104]++; + this.removeState("disabled"); + } +})}; +})(); diff --git a/_test/coverage/ui/tablebutton.js b/_test/coverage/ui/tablebutton.js new file mode 100644 index 000000000..1460e41de --- /dev/null +++ b/_test/coverage/ui/tablebutton.js @@ -0,0 +1,85 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['ui/tablebutton.js']) { + _$jscoverage['ui/tablebutton.js'] = []; + _$jscoverage['ui/tablebutton.js'][6] = 0; + _$jscoverage['ui/tablebutton.js'][7] = 0; + _$jscoverage['ui/tablebutton.js'][12] = 0; + _$jscoverage['ui/tablebutton.js'][13] = 0; + _$jscoverage['ui/tablebutton.js'][15] = 0; + _$jscoverage['ui/tablebutton.js'][17] = 0; + _$jscoverage['ui/tablebutton.js'][18] = 0; + _$jscoverage['ui/tablebutton.js'][22] = 0; + _$jscoverage['ui/tablebutton.js'][27] = 0; + _$jscoverage['ui/tablebutton.js'][30] = 0; + _$jscoverage['ui/tablebutton.js'][31] = 0; + _$jscoverage['ui/tablebutton.js'][35] = 0; +} +_$jscoverage['ui/tablebutton.js'].source = ["///import core","///import uicore","///import ui/popup.js","///import ui/tablepicker.js","///import ui/splitbutton.js","(function (){"," var utils = baidu.editor.utils,"," Popup = baidu.editor.ui.Popup,"," TablePicker = baidu.editor.ui.TablePicker,"," SplitButton = baidu.editor.ui.SplitButton,"," TableButton = baidu.editor.ui.TableButton = function (options){"," this.initOptions(options);"," this.initTableButton();"," };"," TableButton.prototype = {"," initTableButton: function (){"," var me = this;"," this.popup = new Popup({"," content: new TablePicker({"," editor:me.editor,"," onpicktable: function (t, numCols, numRows){"," me._onPickTable(numCols, numRows);"," }"," }),"," 'editor':me.editor"," });"," this.initSplitButton();"," },"," _onPickTable: function (numCols, numRows){"," if (this.fireEvent('picktable', numCols, numRows) !== false) {"," this.popup.hide();"," }"," }"," };"," utils.inherits(TableButton, SplitButton);","","})();"]; +_$jscoverage['ui/tablebutton.js'][6]++; +(function () { + _$jscoverage['ui/tablebutton.js'][7]++; + var utils = baidu.editor.utils, Popup = baidu.editor.ui.Popup, TablePicker = baidu.editor.ui.TablePicker, SplitButton = baidu.editor.ui.SplitButton, TableButton = (baidu.editor.ui.TableButton = (function (options) { + _$jscoverage['ui/tablebutton.js'][12]++; + this.initOptions(options); + _$jscoverage['ui/tablebutton.js'][13]++; + this.initTableButton(); +})); + _$jscoverage['ui/tablebutton.js'][15]++; + TableButton.prototype = {initTableButton: (function () { + _$jscoverage['ui/tablebutton.js'][17]++; + var me = this; + _$jscoverage['ui/tablebutton.js'][18]++; + this.popup = new Popup({content: new TablePicker({editor: me.editor, onpicktable: (function (t, numCols, numRows) { + _$jscoverage['ui/tablebutton.js'][22]++; + me._onPickTable(numCols, numRows); +})}), "editor": me.editor}); + _$jscoverage['ui/tablebutton.js'][27]++; + this.initSplitButton(); +}), _onPickTable: (function (numCols, numRows) { + _$jscoverage['ui/tablebutton.js'][30]++; + if ((this.fireEvent("picktable", numCols, numRows) !== false)) { + _$jscoverage['ui/tablebutton.js'][31]++; + this.popup.hide(); + } +})}; + _$jscoverage['ui/tablebutton.js'][35]++; + utils.inherits(TableButton, SplitButton); +})(); diff --git a/_test/coverage/ui/tablepicker.js b/_test/coverage/ui/tablepicker.js new file mode 100644 index 000000000..255faa362 --- /dev/null +++ b/_test/coverage/ui/tablepicker.js @@ -0,0 +1,160 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['ui/tablepicker.js']) { + _$jscoverage['ui/tablepicker.js'] = []; + _$jscoverage['ui/tablepicker.js'][3] = 0; + _$jscoverage['ui/tablepicker.js'][4] = 0; + _$jscoverage['ui/tablepicker.js'][8] = 0; + _$jscoverage['ui/tablepicker.js'][9] = 0; + _$jscoverage['ui/tablepicker.js'][10] = 0; + _$jscoverage['ui/tablepicker.js'][12] = 0; + _$jscoverage['ui/tablepicker.js'][21] = 0; + _$jscoverage['ui/tablepicker.js'][24] = 0; + _$jscoverage['ui/tablepicker.js'][25] = 0; + _$jscoverage['ui/tablepicker.js'][43] = 0; + _$jscoverage['ui/tablepicker.js'][44] = 0; + _$jscoverage['ui/tablepicker.js'][47] = 0; + _$jscoverage['ui/tablepicker.js'][48] = 0; + _$jscoverage['ui/tablepicker.js'][49] = 0; + _$jscoverage['ui/tablepicker.js'][50] = 0; + _$jscoverage['ui/tablepicker.js'][51] = 0; + _$jscoverage['ui/tablepicker.js'][52] = 0; + _$jscoverage['ui/tablepicker.js'][53] = 0; + _$jscoverage['ui/tablepicker.js'][54] = 0; + _$jscoverage['ui/tablepicker.js'][57] = 0; + _$jscoverage['ui/tablepicker.js'][58] = 0; + _$jscoverage['ui/tablepicker.js'][59] = 0; + _$jscoverage['ui/tablepicker.js'][60] = 0; + _$jscoverage['ui/tablepicker.js'][64] = 0; + _$jscoverage['ui/tablepicker.js'][65] = 0; + _$jscoverage['ui/tablepicker.js'][66] = 0; + _$jscoverage['ui/tablepicker.js'][67] = 0; + _$jscoverage['ui/tablepicker.js'][71] = 0; + _$jscoverage['ui/tablepicker.js'][72] = 0; + _$jscoverage['ui/tablepicker.js'][73] = 0; + _$jscoverage['ui/tablepicker.js'][74] = 0; + _$jscoverage['ui/tablepicker.js'][75] = 0; + _$jscoverage['ui/tablepicker.js'][76] = 0; + _$jscoverage['ui/tablepicker.js'][79] = 0; + _$jscoverage['ui/tablepicker.js'][82] = 0; +} +_$jscoverage['ui/tablepicker.js'].source = ["///import core","///import uicore","(function (){"," var utils = baidu.editor.utils,"," uiUtils = baidu.editor.ui.uiUtils,"," UIBase = baidu.editor.ui.UIBase;"," "," var TablePicker = baidu.editor.ui.TablePicker = function (options){"," this.initOptions(options);"," this.initTablePicker();"," };"," TablePicker.prototype = {"," defaultNumRows: 10,"," defaultNumCols: 10,"," maxNumRows: 20,"," maxNumCols: 20,"," numRows: 10,"," numCols: 10,"," lengthOfCellSide: 22,"," initTablePicker: function (){"," this.initUIBase();"," },"," getHtmlTpl: function (){"," var me = this;"," return '<div id=\"##\" class=\"edui-tablepicker %%\">' +"," '<div class=\"edui-tablepicker-body\">' +"," '<div class=\"edui-infoarea\">' +"," '<span id=\"##_label\" class=\"edui-label\"></span>' +"," '</div>' +"," '<div class=\"edui-pickarea\"' +"," ' onmousemove=\"$$._onMouseMove(event, this);\"' +"," ' onmouseover=\"$$._onMouseOver(event, this);\"' +"," ' onmouseout=\"$$._onMouseOut(event, this);\"' +"," ' onclick=\"$$._onClick(event, this);\"' +"," '>' +"," '<div id=\"##_overlay\" class=\"edui-overlay\"></div>' +"," '</div>' +"," '</div>' +"," '</div>';"," },"," _UIBase_render: UIBase.prototype.render,"," render: function (holder){"," this._UIBase_render(holder);"," this.getDom('label').innerHTML = '0'+this.editor.getLang(\"t_row\")+' x 0'+this.editor.getLang(\"t_col\");"," },"," _track: function (numCols, numRows){"," var style = this.getDom('overlay').style;"," var sideLen = this.lengthOfCellSide;"," style.width = numCols * sideLen + 'px';"," style.height = numRows * sideLen + 'px';"," var label = this.getDom('label');"," label.innerHTML = numCols +this.editor.getLang(\"t_col\")+' x ' + numRows + this.editor.getLang(\"t_row\");"," this.numCols = numCols;"," this.numRows = numRows;"," },"," _onMouseOver: function (evt, el){"," var rel = evt.relatedTarget || evt.fromElement;"," if (!uiUtils.contains(el, rel) && el !== rel) {"," this.getDom('label').innerHTML = '0'+this.editor.getLang(\"t_col\")+' x 0'+this.editor.getLang(\"t_row\");"," this.getDom('overlay').style.visibility = '';"," }"," },"," _onMouseOut: function (evt, el){"," var rel = evt.relatedTarget || evt.toElement;"," if (!uiUtils.contains(el, rel) && el !== rel) {"," this.getDom('label').innerHTML = '0'+this.editor.getLang(\"t_col\")+' x 0'+this.editor.getLang(\"t_row\");"," this.getDom('overlay').style.visibility = 'hidden';"," }"," },"," _onMouseMove: function (evt, el){"," var style = this.getDom('overlay').style;"," var offset = uiUtils.getEventOffset(evt);"," var sideLen = this.lengthOfCellSide;"," var numCols = Math.ceil(offset.left / sideLen);"," var numRows = Math.ceil(offset.top / sideLen);"," this._track(numCols, numRows);"," },"," _onClick: function (){"," this.fireEvent('picktable', this.numCols, this.numRows);"," }"," };"," utils.inherits(TablePicker, UIBase);","})();"]; +_$jscoverage['ui/tablepicker.js'][3]++; +(function () { + _$jscoverage['ui/tablepicker.js'][4]++; + var utils = baidu.editor.utils, uiUtils = baidu.editor.ui.uiUtils, UIBase = baidu.editor.ui.UIBase; + _$jscoverage['ui/tablepicker.js'][8]++; + var TablePicker = (baidu.editor.ui.TablePicker = (function (options) { + _$jscoverage['ui/tablepicker.js'][9]++; + this.initOptions(options); + _$jscoverage['ui/tablepicker.js'][10]++; + this.initTablePicker(); +})); + _$jscoverage['ui/tablepicker.js'][12]++; + TablePicker.prototype = {defaultNumRows: 10, defaultNumCols: 10, maxNumRows: 20, maxNumCols: 20, numRows: 10, numCols: 10, lengthOfCellSide: 22, initTablePicker: (function () { + _$jscoverage['ui/tablepicker.js'][21]++; + this.initUIBase(); +}), getHtmlTpl: (function () { + _$jscoverage['ui/tablepicker.js'][24]++; + var me = this; + _$jscoverage['ui/tablepicker.js'][25]++; + return "
"; +}), _UIBase_render: UIBase.prototype.render, render: (function (holder) { + _$jscoverage['ui/tablepicker.js'][43]++; + this._UIBase_render(holder); + _$jscoverage['ui/tablepicker.js'][44]++; + this.getDom("label").innerHTML = ("0" + this.editor.getLang("t_row") + " x 0" + this.editor.getLang("t_col")); +}), _track: (function (numCols, numRows) { + _$jscoverage['ui/tablepicker.js'][47]++; + var style = this.getDom("overlay").style; + _$jscoverage['ui/tablepicker.js'][48]++; + var sideLen = this.lengthOfCellSide; + _$jscoverage['ui/tablepicker.js'][49]++; + style.width = ((numCols * sideLen) + "px"); + _$jscoverage['ui/tablepicker.js'][50]++; + style.height = ((numRows * sideLen) + "px"); + _$jscoverage['ui/tablepicker.js'][51]++; + var label = this.getDom("label"); + _$jscoverage['ui/tablepicker.js'][52]++; + label.innerHTML = (numCols + this.editor.getLang("t_col") + " x " + numRows + this.editor.getLang("t_row")); + _$jscoverage['ui/tablepicker.js'][53]++; + this.numCols = numCols; + _$jscoverage['ui/tablepicker.js'][54]++; + this.numRows = numRows; +}), _onMouseOver: (function (evt, el) { + _$jscoverage['ui/tablepicker.js'][57]++; + var rel = (evt.relatedTarget || evt.fromElement); + _$jscoverage['ui/tablepicker.js'][58]++; + if (((! uiUtils.contains(el, rel)) && (el !== rel))) { + _$jscoverage['ui/tablepicker.js'][59]++; + this.getDom("label").innerHTML = ("0" + this.editor.getLang("t_col") + " x 0" + this.editor.getLang("t_row")); + _$jscoverage['ui/tablepicker.js'][60]++; + this.getDom("overlay").style.visibility = ""; + } +}), _onMouseOut: (function (evt, el) { + _$jscoverage['ui/tablepicker.js'][64]++; + var rel = (evt.relatedTarget || evt.toElement); + _$jscoverage['ui/tablepicker.js'][65]++; + if (((! uiUtils.contains(el, rel)) && (el !== rel))) { + _$jscoverage['ui/tablepicker.js'][66]++; + this.getDom("label").innerHTML = ("0" + this.editor.getLang("t_col") + " x 0" + this.editor.getLang("t_row")); + _$jscoverage['ui/tablepicker.js'][67]++; + this.getDom("overlay").style.visibility = "hidden"; + } +}), _onMouseMove: (function (evt, el) { + _$jscoverage['ui/tablepicker.js'][71]++; + var style = this.getDom("overlay").style; + _$jscoverage['ui/tablepicker.js'][72]++; + var offset = uiUtils.getEventOffset(evt); + _$jscoverage['ui/tablepicker.js'][73]++; + var sideLen = this.lengthOfCellSide; + _$jscoverage['ui/tablepicker.js'][74]++; + var numCols = Math.ceil((offset.left / sideLen)); + _$jscoverage['ui/tablepicker.js'][75]++; + var numRows = Math.ceil((offset.top / sideLen)); + _$jscoverage['ui/tablepicker.js'][76]++; + this._track(numCols, numRows); +}), _onClick: (function () { + _$jscoverage['ui/tablepicker.js'][79]++; + this.fireEvent("picktable", this.numCols, this.numRows); +})}; + _$jscoverage['ui/tablepicker.js'][82]++; + utils.inherits(TablePicker, UIBase); +})(); diff --git a/_test/coverage/ui/toolbar.js b/_test/coverage/ui/toolbar.js new file mode 100644 index 000000000..7ec17ec85 --- /dev/null +++ b/_test/coverage/ui/toolbar.js @@ -0,0 +1,106 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['ui/toolbar.js']) { + _$jscoverage['ui/toolbar.js'] = []; + _$jscoverage['ui/toolbar.js'][1] = 0; + _$jscoverage['ui/toolbar.js'][2] = 0; + _$jscoverage['ui/toolbar.js'][6] = 0; + _$jscoverage['ui/toolbar.js'][7] = 0; + _$jscoverage['ui/toolbar.js'][9] = 0; + _$jscoverage['ui/toolbar.js'][12] = 0; + _$jscoverage['ui/toolbar.js'][13] = 0; + _$jscoverage['ui/toolbar.js'][16] = 0; + _$jscoverage['ui/toolbar.js'][19] = 0; + _$jscoverage['ui/toolbar.js'][20] = 0; + _$jscoverage['ui/toolbar.js'][21] = 0; + _$jscoverage['ui/toolbar.js'][23] = 0; + _$jscoverage['ui/toolbar.js'][28] = 0; + _$jscoverage['ui/toolbar.js'][29] = 0; + _$jscoverage['ui/toolbar.js'][30] = 0; + _$jscoverage['ui/toolbar.js'][32] = 0; + _$jscoverage['ui/toolbar.js'][35] = 0; + _$jscoverage['ui/toolbar.js'][38] = 0; +} +_$jscoverage['ui/toolbar.js'].source = ["(function (){"," var utils = baidu.editor.utils,"," uiUtils = baidu.editor.ui.uiUtils,"," UIBase = baidu.editor.ui.UIBase,"," Toolbar = baidu.editor.ui.Toolbar = function (options){"," this.initOptions(options);"," this.initToolbar();"," };"," Toolbar.prototype = {"," items: null,"," initToolbar: function (){"," this.items = this.items || [];"," this.initUIBase();"," },"," add: function (item){"," this.items.push(item);"," },"," getHtmlTpl: function (){"," var buff = [];"," for (var i=0; i<this.items.length; i++) {"," buff[i] = this.items[i].renderHtml();"," }"," return '<div id=\"##\" class=\"edui-toolbar %%\" onselectstart=\"return false;\" onmousedown=\"return $$._onMouseDown(event, this);\">' +"," buff.join('') +"," '</div>'"," },"," postRender: function (){"," var box = this.getDom();"," for (var i=0; i<this.items.length; i++) {"," this.items[i].postRender();"," }"," uiUtils.makeUnselectable(box);"," },"," _onMouseDown: function (){"," return false;"," }"," };"," utils.inherits(Toolbar, UIBase);","","})();"]; +_$jscoverage['ui/toolbar.js'][1]++; +(function () { + _$jscoverage['ui/toolbar.js'][2]++; + var utils = baidu.editor.utils, uiUtils = baidu.editor.ui.uiUtils, UIBase = baidu.editor.ui.UIBase, Toolbar = (baidu.editor.ui.Toolbar = (function (options) { + _$jscoverage['ui/toolbar.js'][6]++; + this.initOptions(options); + _$jscoverage['ui/toolbar.js'][7]++; + this.initToolbar(); +})); + _$jscoverage['ui/toolbar.js'][9]++; + Toolbar.prototype = {items: null, initToolbar: (function () { + _$jscoverage['ui/toolbar.js'][12]++; + this.items = (this.items || []); + _$jscoverage['ui/toolbar.js'][13]++; + this.initUIBase(); +}), add: (function (item) { + _$jscoverage['ui/toolbar.js'][16]++; + this.items.push(item); +}), getHtmlTpl: (function () { + _$jscoverage['ui/toolbar.js'][19]++; + var buff = []; + _$jscoverage['ui/toolbar.js'][20]++; + for (var i = 0; (i < this.items.length); (i++)) { + _$jscoverage['ui/toolbar.js'][21]++; + buff[i] = this.items[i].renderHtml(); +} + _$jscoverage['ui/toolbar.js'][23]++; + return ("
" + buff.join("") + "
"); +}), postRender: (function () { + _$jscoverage['ui/toolbar.js'][28]++; + var box = this.getDom(); + _$jscoverage['ui/toolbar.js'][29]++; + for (var i = 0; (i < this.items.length); (i++)) { + _$jscoverage['ui/toolbar.js'][30]++; + this.items[i].postRender(); +} + _$jscoverage['ui/toolbar.js'][32]++; + uiUtils.makeUnselectable(box); +}), _onMouseDown: (function () { + _$jscoverage['ui/toolbar.js'][35]++; + return false; +})}; + _$jscoverage['ui/toolbar.js'][38]++; + utils.inherits(Toolbar, UIBase); +})(); diff --git a/_test/coverage/ui/ui.js b/_test/coverage/ui/ui.js new file mode 100644 index 000000000..0f59b2cef --- /dev/null +++ b/_test/coverage/ui/ui.js @@ -0,0 +1,52 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['ui/ui.js']) { + _$jscoverage['ui/ui.js'] = []; + _$jscoverage['ui/ui.js'][1] = 0; + _$jscoverage['ui/ui.js'][2] = 0; + _$jscoverage['ui/ui.js'][3] = 0; +} +_$jscoverage['ui/ui.js'].source = ["var baidu = baidu || {};","baidu.editor = baidu.editor || {};","baidu.editor.ui = {};"]; +_$jscoverage['ui/ui.js'][1]++; +var baidu = (baidu || {}); +_$jscoverage['ui/ui.js'][2]++; +baidu.editor = (baidu.editor || {}); +_$jscoverage['ui/ui.js'][3]++; +baidu.editor.ui = {}; diff --git a/_test/coverage/ui/uibase.js b/_test/coverage/ui/uibase.js new file mode 100644 index 000000000..cd2583fd7 --- /dev/null +++ b/_test/coverage/ui/uibase.js @@ -0,0 +1,190 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['ui/uibase.js']) { + _$jscoverage['ui/uibase.js'] = []; + _$jscoverage['ui/uibase.js'][1] = 0; + _$jscoverage['ui/uibase.js'][2] = 0; + _$jscoverage['ui/uibase.js'][8] = 0; + _$jscoverage['ui/uibase.js'][12] = 0; + _$jscoverage['ui/uibase.js'][13] = 0; + _$jscoverage['ui/uibase.js'][14] = 0; + _$jscoverage['ui/uibase.js'][16] = 0; + _$jscoverage['ui/uibase.js'][19] = 0; + _$jscoverage['ui/uibase.js'][22] = 0; + _$jscoverage['ui/uibase.js'][23] = 0; + _$jscoverage['ui/uibase.js'][26] = 0; + _$jscoverage['ui/uibase.js'][27] = 0; + _$jscoverage['ui/uibase.js'][28] = 0; + _$jscoverage['ui/uibase.js'][29] = 0; + _$jscoverage['ui/uibase.js'][30] = 0; + _$jscoverage['ui/uibase.js'][32] = 0; + _$jscoverage['ui/uibase.js'][33] = 0; + _$jscoverage['ui/uibase.js'][34] = 0; + _$jscoverage['ui/uibase.js'][35] = 0; + _$jscoverage['ui/uibase.js'][38] = 0; + _$jscoverage['ui/uibase.js'][39] = 0; + _$jscoverage['ui/uibase.js'][40] = 0; + _$jscoverage['ui/uibase.js'][41] = 0; + _$jscoverage['ui/uibase.js'][43] = 0; + _$jscoverage['ui/uibase.js'][44] = 0; + _$jscoverage['ui/uibase.js'][46] = 0; + _$jscoverage['ui/uibase.js'][47] = 0; + _$jscoverage['ui/uibase.js'][48] = 0; + _$jscoverage['ui/uibase.js'][50] = 0; + _$jscoverage['ui/uibase.js'][53] = 0; + _$jscoverage['ui/uibase.js'][54] = 0; + _$jscoverage['ui/uibase.js'][56] = 0; + _$jscoverage['ui/uibase.js'][60] = 0; + _$jscoverage['ui/uibase.js'][63] = 0; + _$jscoverage['ui/uibase.js'][66] = 0; + _$jscoverage['ui/uibase.js'][67] = 0; + _$jscoverage['ui/uibase.js'][74] = 0; + _$jscoverage['ui/uibase.js'][77] = 0; + _$jscoverage['ui/uibase.js'][78] = 0; + _$jscoverage['ui/uibase.js'][79] = 0; + _$jscoverage['ui/uibase.js'][82] = 0; +} +_$jscoverage['ui/uibase.js'].source = ["(function () {"," var utils = baidu.editor.utils,"," uiUtils = baidu.editor.ui.uiUtils,"," EventBase = baidu.editor.EventBase,"," UIBase = baidu.editor.ui.UIBase = function () {"," };",""," UIBase.prototype = {"," className:'',"," uiName:'',"," initOptions:function (options) {"," var me = this;"," for (var k in options) {"," me[k] = options[k];"," }"," this.id = this.id || 'edui' + uiUtils.uid();"," },"," initUIBase:function () {"," this._globalKey = utils.unhtml(uiUtils.setGlobal(this.id, this));"," },"," render:function (holder) {"," var html = this.renderHtml();"," var el = uiUtils.createElementByHtml(html);",""," //by xuheng 给每个node添加class"," var list = domUtils.getElementsByTagName(el, \"*\");"," var theme = \"edui-\" + (this.theme || this.editor.options.theme);"," var layer = document.getElementById('edui_fixedlayer');"," for (var i = 0, node; node = list[i++];) {"," domUtils.addClass(node, theme);"," }"," domUtils.addClass(el, theme);"," if(layer){"," layer.className=\"\";"," domUtils.addClass(layer,theme);"," }",""," var seatEl = this.getDom();"," if (seatEl != null) {"," seatEl.parentNode.replaceChild(el, seatEl);"," uiUtils.copyAttributes(el, seatEl);"," } else {"," if (typeof holder == 'string') {"," holder = document.getElementById(holder);"," }"," holder = holder || uiUtils.getFixedLayer();"," domUtils.addClass(holder, theme);"," holder.appendChild(el);"," }"," this.postRender();"," },"," getDom:function (name) {"," if (!name) {"," return document.getElementById(this.id);"," } else {"," return document.getElementById(this.id + '_' + name);"," }"," },"," postRender:function () {"," this.fireEvent('postrender');"," },"," getHtmlTpl:function () {"," return '';"," },"," formatHtml:function (tpl) {"," var prefix = 'edui-' + this.uiName;"," return (tpl"," .replace(/##/g, this.id)"," .replace(/%%-/g, this.uiName ? prefix + '-' : '')"," .replace(/%%/g, (this.uiName ? prefix : '') + ' ' + this.className)"," .replace(/\\$\\$/g, this._globalKey));"," },"," renderHtml:function () {"," return this.formatHtml(this.getHtmlTpl());"," },"," dispose:function () {"," var box = this.getDom();"," if (box) baidu.editor.dom.domUtils.remove(box);"," uiUtils.unsetGlobal(this.id);"," }"," };"," utils.inherits(UIBase, EventBase);","})();"]; +_$jscoverage['ui/uibase.js'][1]++; +(function () { + _$jscoverage['ui/uibase.js'][2]++; + var utils = baidu.editor.utils, uiUtils = baidu.editor.ui.uiUtils, EventBase = baidu.editor.EventBase, UIBase = (baidu.editor.ui.UIBase = (function () { +})); + _$jscoverage['ui/uibase.js'][8]++; + UIBase.prototype = {className: "", uiName: "", initOptions: (function (options) { + _$jscoverage['ui/uibase.js'][12]++; + var me = this; + _$jscoverage['ui/uibase.js'][13]++; + for (var k in options) { + _$jscoverage['ui/uibase.js'][14]++; + me[k] = options[k]; +} + _$jscoverage['ui/uibase.js'][16]++; + this.id = (this.id || ("edui" + uiUtils.uid())); +}), initUIBase: (function () { + _$jscoverage['ui/uibase.js'][19]++; + this._globalKey = utils.unhtml(uiUtils.setGlobal(this.id, this)); +}), render: (function (holder) { + _$jscoverage['ui/uibase.js'][22]++; + var html = this.renderHtml(); + _$jscoverage['ui/uibase.js'][23]++; + var el = uiUtils.createElementByHtml(html); + _$jscoverage['ui/uibase.js'][26]++; + var list = domUtils.getElementsByTagName(el, "*"); + _$jscoverage['ui/uibase.js'][27]++; + var theme = ("edui-" + (this.theme || this.editor.options.theme)); + _$jscoverage['ui/uibase.js'][28]++; + var layer = document.getElementById("edui_fixedlayer"); + _$jscoverage['ui/uibase.js'][29]++; + for (var i = 0, node; (node = list[(i++)]);) { + _$jscoverage['ui/uibase.js'][30]++; + domUtils.addClass(node, theme); +} + _$jscoverage['ui/uibase.js'][32]++; + domUtils.addClass(el, theme); + _$jscoverage['ui/uibase.js'][33]++; + if (layer) { + _$jscoverage['ui/uibase.js'][34]++; + layer.className = ""; + _$jscoverage['ui/uibase.js'][35]++; + domUtils.addClass(layer, theme); + } + _$jscoverage['ui/uibase.js'][38]++; + var seatEl = this.getDom(); + _$jscoverage['ui/uibase.js'][39]++; + if ((seatEl != null)) { + _$jscoverage['ui/uibase.js'][40]++; + seatEl.parentNode.replaceChild(el, seatEl); + _$jscoverage['ui/uibase.js'][41]++; + uiUtils.copyAttributes(el, seatEl); + } + else { + _$jscoverage['ui/uibase.js'][43]++; + if (((typeof holder) == "string")) { + _$jscoverage['ui/uibase.js'][44]++; + holder = document.getElementById(holder); + } + _$jscoverage['ui/uibase.js'][46]++; + holder = (holder || uiUtils.getFixedLayer()); + _$jscoverage['ui/uibase.js'][47]++; + domUtils.addClass(holder, theme); + _$jscoverage['ui/uibase.js'][48]++; + holder.appendChild(el); + } + _$jscoverage['ui/uibase.js'][50]++; + this.postRender(); +}), getDom: (function (name) { + _$jscoverage['ui/uibase.js'][53]++; + if ((! name)) { + _$jscoverage['ui/uibase.js'][54]++; + return document.getElementById(this.id); + } + else { + _$jscoverage['ui/uibase.js'][56]++; + return document.getElementById((this.id + "_" + name)); + } +}), postRender: (function () { + _$jscoverage['ui/uibase.js'][60]++; + this.fireEvent("postrender"); +}), getHtmlTpl: (function () { + _$jscoverage['ui/uibase.js'][63]++; + return ""; +}), formatHtml: (function (tpl) { + _$jscoverage['ui/uibase.js'][66]++; + var prefix = ("edui-" + this.uiName); + _$jscoverage['ui/uibase.js'][67]++; + return tpl.replace(/##/g, this.id).replace(/%%-/g, (this.uiName? (prefix + "-"): "")).replace(/%%/g, ((this.uiName? prefix: "") + " " + this.className)).replace(/\$\$/g, this._globalKey); +}), renderHtml: (function () { + _$jscoverage['ui/uibase.js'][74]++; + return this.formatHtml(this.getHtmlTpl()); +}), dispose: (function () { + _$jscoverage['ui/uibase.js'][77]++; + var box = this.getDom(); + _$jscoverage['ui/uibase.js'][78]++; + if (box) { + _$jscoverage['ui/uibase.js'][78]++; + baidu.editor.dom.domUtils.remove(box); + } + _$jscoverage['ui/uibase.js'][79]++; + uiUtils.unsetGlobal(this.id); +})}; + _$jscoverage['ui/uibase.js'][82]++; + utils.inherits(UIBase, EventBase); +})(); diff --git a/_test/coverage/ui/uiutils.js b/_test/coverage/ui/uiutils.js new file mode 100644 index 000000000..bd974add5 --- /dev/null +++ b/_test/coverage/ui/uiutils.js @@ -0,0 +1,567 @@ +/* automatically generated by JSCoverage - do not edit */ +try { + if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) { + // this is a browser window that was opened from another window + + if (! top.opener._$jscoverage) { + top.opener._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null) { + // this is a browser window + + try { + if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) { + top._$jscoverage = top.opener._$jscoverage; + } + } + catch (e) {} + + if (! top._$jscoverage) { + top._$jscoverage = {}; + } + } +} +catch (e) {} + +try { + if (typeof top === 'object' && top !== null && top._$jscoverage) { + _$jscoverage = top._$jscoverage; + } +} +catch (e) {} +if (typeof _$jscoverage !== 'object') { + _$jscoverage = {}; +} +if (! _$jscoverage['ui/uiutils.js']) { + _$jscoverage['ui/uiutils.js'] = []; + _$jscoverage['ui/uiutils.js'][1] = 0; + _$jscoverage['ui/uiutils.js'][2] = 0; + _$jscoverage['ui/uiutils.js'][5] = 0; + _$jscoverage['ui/uiutils.js'][6] = 0; + _$jscoverage['ui/uiutils.js'][7] = 0; + _$jscoverage['ui/uiutils.js'][8] = 0; + _$jscoverage['ui/uiutils.js'][10] = 0; + _$jscoverage['ui/uiutils.js'][12] = 0; + _$jscoverage['ui/uiutils.js'][15] = 0; + _$jscoverage['ui/uiutils.js'][16] = 0; + _$jscoverage['ui/uiutils.js'][17] = 0; + _$jscoverage['ui/uiutils.js'][19] = 0; + _$jscoverage['ui/uiutils.js'][20] = 0; + _$jscoverage['ui/uiutils.js'][21] = 0; + _$jscoverage['ui/uiutils.js'][22] = 0; + _$jscoverage['ui/uiutils.js'][24] = 0; + _$jscoverage['ui/uiutils.js'][25] = 0; + _$jscoverage['ui/uiutils.js'][26] = 0; + _$jscoverage['ui/uiutils.js'][27] = 0; + _$jscoverage['ui/uiutils.js'][28] = 0; + _$jscoverage['ui/uiutils.js'][29] = 0; + _$jscoverage['ui/uiutils.js'][32] = 0; + _$jscoverage['ui/uiutils.js'][34] = 0; + _$jscoverage['ui/uiutils.js'][36] = 0; + _$jscoverage['ui/uiutils.js'][37] = 0; + _$jscoverage['ui/uiutils.js'][40] = 0; + _$jscoverage['ui/uiutils.js'][41] = 0; + _$jscoverage['ui/uiutils.js'][42] = 0; + _$jscoverage['ui/uiutils.js'][43] = 0; + _$jscoverage['ui/uiutils.js'][44] = 0; + _$jscoverage['ui/uiutils.js'][47] = 0; + _$jscoverage['ui/uiutils.js'][51] = 0; + _$jscoverage['ui/uiutils.js'][53] = 0; + _$jscoverage['ui/uiutils.js'][54] = 0; + _$jscoverage['ui/uiutils.js'][56] = 0; + _$jscoverage['ui/uiutils.js'][58] = 0; + _$jscoverage['ui/uiutils.js'][64] = 0; + _$jscoverage['ui/uiutils.js'][65] = 0; + _$jscoverage['ui/uiutils.js'][67] = 0; + _$jscoverage['ui/uiutils.js'][68] = 0; + _$jscoverage['ui/uiutils.js'][69] = 0; + _$jscoverage['ui/uiutils.js'][71] = 0; + _$jscoverage['ui/uiutils.js'][72] = 0; + _$jscoverage['ui/uiutils.js'][73] = 0; + _$jscoverage['ui/uiutils.js'][76] = 0; + _$jscoverage['ui/uiutils.js'][77] = 0; + _$jscoverage['ui/uiutils.js'][78] = 0; + _$jscoverage['ui/uiutils.js'][79] = 0; + _$jscoverage['ui/uiutils.js'][89] = 0; + _$jscoverage['ui/uiutils.js'][90] = 0; + _$jscoverage['ui/uiutils.js'][91] = 0; + _$jscoverage['ui/uiutils.js'][92] = 0; + _$jscoverage['ui/uiutils.js'][93] = 0; + _$jscoverage['ui/uiutils.js'][95] = 0; + _$jscoverage['ui/uiutils.js'][99] = 0; + _$jscoverage['ui/uiutils.js'][100] = 0; + _$jscoverage['ui/uiutils.js'][101] = 0; + _$jscoverage['ui/uiutils.js'][102] = 0; + _$jscoverage['ui/uiutils.js'][108] = 0; + _$jscoverage['ui/uiutils.js'][109] = 0; + _$jscoverage['ui/uiutils.js'][110] = 0; + _$jscoverage['ui/uiutils.js'][114] = 0; + _$jscoverage['ui/uiutils.js'][115] = 0; + _$jscoverage['ui/uiutils.js'][116] = 0; + _$jscoverage['ui/uiutils.js'][117] = 0; + _$jscoverage['ui/uiutils.js'][119] = 0; + _$jscoverage['ui/uiutils.js'][122] = 0; + _$jscoverage['ui/uiutils.js'][123] = 0; + _$jscoverage['ui/uiutils.js'][126] = 0; + _$jscoverage['ui/uiutils.js'][129] = 0; + _$jscoverage['ui/uiutils.js'][130] = 0; + _$jscoverage['ui/uiutils.js'][131] = 0; + _$jscoverage['ui/uiutils.js'][132] = 0; + _$jscoverage['ui/uiutils.js'][133] = 0; + _$jscoverage['ui/uiutils.js'][134] = 0; + _$jscoverage['ui/uiutils.js'][137] = 0; + _$jscoverage['ui/uiutils.js'][138] = 0; + _$jscoverage['ui/uiutils.js'][140] = 0; + _$jscoverage['ui/uiutils.js'][141] = 0; + _$jscoverage['ui/uiutils.js'][145] = 0; + _$jscoverage['ui/uiutils.js'][146] = 0; + _$jscoverage['ui/uiutils.js'][147] = 0; + _$jscoverage['ui/uiutils.js'][148] = 0; + _$jscoverage['ui/uiutils.js'][149] = 0; + _$jscoverage['ui/uiutils.js'][152] = 0; + _$jscoverage['ui/uiutils.js'][158] = 0; + _$jscoverage['ui/uiutils.js'][159] = 0; + _$jscoverage['ui/uiutils.js'][160] = 0; + _$jscoverage['ui/uiutils.js'][161] = 0; + _$jscoverage['ui/uiutils.js'][162] = 0; + _$jscoverage['ui/uiutils.js'][163] = 0; + _$jscoverage['ui/uiutils.js'][164] = 0; + _$jscoverage['ui/uiutils.js'][165] = 0; + _$jscoverage['ui/uiutils.js'][166] = 0; + _$jscoverage['ui/uiutils.js'][168] = 0; + _$jscoverage['ui/uiutils.js'][171] = 0; + _$jscoverage['ui/uiutils.js'][172] = 0; + _$jscoverage['ui/uiutils.js'][173] = 0; + _$jscoverage['ui/uiutils.js'][174] = 0; + _$jscoverage['ui/uiutils.js'][175] = 0; + _$jscoverage['ui/uiutils.js'][176] = 0; + _$jscoverage['ui/uiutils.js'][178] = 0; + _$jscoverage['ui/uiutils.js'][179] = 0; + _$jscoverage['ui/uiutils.js'][180] = 0; + _$jscoverage['ui/uiutils.js'][182] = 0; + _$jscoverage['ui/uiutils.js'][184] = 0; + _$jscoverage['ui/uiutils.js'][185] = 0; + _$jscoverage['ui/uiutils.js'][186] = 0; + _$jscoverage['ui/uiutils.js'][187] = 0; + _$jscoverage['ui/uiutils.js'][188] = 0; + _$jscoverage['ui/uiutils.js'][189] = 0; + _$jscoverage['ui/uiutils.js'][190] = 0; + _$jscoverage['ui/uiutils.js'][191] = 0; + _$jscoverage['ui/uiutils.js'][193] = 0; + _$jscoverage['ui/uiutils.js'][194] = 0; + _$jscoverage['ui/uiutils.js'][195] = 0; + _$jscoverage['ui/uiutils.js'][196] = 0; + _$jscoverage['ui/uiutils.js'][198] = 0; + _$jscoverage['ui/uiutils.js'][201] = 0; + _$jscoverage['ui/uiutils.js'][202] = 0; + _$jscoverage['ui/uiutils.js'][203] = 0; + _$jscoverage['ui/uiutils.js'][204] = 0; + _$jscoverage['ui/uiutils.js'][205] = 0; + _$jscoverage['ui/uiutils.js'][206] = 0; + _$jscoverage['ui/uiutils.js'][207] = 0; + _$jscoverage['ui/uiutils.js'][208] = 0; + _$jscoverage['ui/uiutils.js'][209] = 0; + _$jscoverage['ui/uiutils.js'][211] = 0; + _$jscoverage['ui/uiutils.js'][213] = 0; + _$jscoverage['ui/uiutils.js'][214] = 0; + _$jscoverage['ui/uiutils.js'][215] = 0; + _$jscoverage['ui/uiutils.js'][216] = 0; + _$jscoverage['ui/uiutils.js'][218] = 0; + _$jscoverage['ui/uiutils.js'][221] = 0; + _$jscoverage['ui/uiutils.js'][222] = 0; + _$jscoverage['ui/uiutils.js'][223] = 0; + _$jscoverage['ui/uiutils.js'][224] = 0; + _$jscoverage['ui/uiutils.js'][225] = 0; + _$jscoverage['ui/uiutils.js'][226] = 0; + _$jscoverage['ui/uiutils.js'][231] = 0; + _$jscoverage['ui/uiutils.js'][232] = 0; + _$jscoverage['ui/uiutils.js'][233] = 0; + _$jscoverage['ui/uiutils.js'][234] = 0; + _$jscoverage['ui/uiutils.js'][235] = 0; + _$jscoverage['ui/uiutils.js'][236] = 0; + _$jscoverage['ui/uiutils.js'][241] = 0; + _$jscoverage['ui/uiutils.js'][242] = 0; + _$jscoverage['ui/uiutils.js'][243] = 0; + _$jscoverage['ui/uiutils.js'][253] = 0; + _$jscoverage['ui/uiutils.js'][254] = 0; + _$jscoverage['ui/uiutils.js'][255] = 0; +} +_$jscoverage['ui/uiutils.js'].source = ["(function (){"," var browser = baidu.editor.browser,"," domUtils = baidu.editor.dom.domUtils;",""," var magic = '$EDITORUI';"," var root = window[magic] = {};"," var uidMagic = 'ID' + magic;"," var uidCount = 0;",""," var uiUtils = baidu.editor.ui.uiUtils = {"," uid: function (obj){"," return (obj ? obj[uidMagic] || (obj[uidMagic] = ++ uidCount) : ++ uidCount);"," },"," hook: function ( fn, callback ) {"," var dg;"," if (fn && fn._callbacks) {"," dg = fn;"," } else {"," dg = function (){"," var q;"," if (fn) {"," q = fn.apply(this, arguments);"," }"," var callbacks = dg._callbacks;"," var k = callbacks.length;"," while (k --) {"," var r = callbacks[k].apply(this, arguments);"," if (q === undefined) {"," q = r;"," }"," }"," return q;"," };"," dg._callbacks = [];"," }"," dg._callbacks.push(callback);"," return dg;"," },"," createElementByHtml: function (html){"," var el = document.createElement('div');"," el.innerHTML = html;"," el = el.firstChild;"," el.parentNode.removeChild(el);"," return el;"," },"," getViewportElement: function (){"," return (browser.ie && browser.quirks) ?"," document.body : document.documentElement;"," },"," getClientRect: function (element){"," var bcr;"," //trace IE6下在控制编辑器显隐时可能会报错,catch一下"," try{"," bcr = element.getBoundingClientRect();"," }catch(e){"," bcr={left:0,top:0,height:0,width:0}"," }"," var rect = {"," left: Math.round(bcr.left),"," top: Math.round(bcr.top),"," height: Math.round(bcr.bottom - bcr.top),"," width: Math.round(bcr.right - bcr.left)"," };"," var doc;"," while ((doc = element.ownerDocument) !== document &&"," (element = domUtils.getWindow(doc).frameElement)) {"," bcr = element.getBoundingClientRect();"," rect.left += bcr.left;"," rect.top += bcr.top;"," }"," rect.bottom = rect.top + rect.height;"," rect.right = rect.left + rect.width;"," return rect;"," },"," getViewportRect: function (){"," var viewportEl = uiUtils.getViewportElement();"," var width = (window.innerWidth || viewportEl.clientWidth) | 0;"," var height = (window.innerHeight ||viewportEl.clientHeight) | 0;"," return {"," left: 0,"," top: 0,"," height: height,"," width: width,"," bottom: height,"," right: width"," };"," },"," setViewportOffset: function (element, offset){"," var rect;"," var fixedLayer = uiUtils.getFixedLayer();"," if (element.parentNode === fixedLayer) {"," element.style.left = offset.left + 'px';"," element.style.top = offset.top + 'px';"," } else {"," domUtils.setViewportOffset(element, offset);"," }"," },"," getEventOffset: function (evt){"," var el = evt.target || evt.srcElement;"," var rect = uiUtils.getClientRect(el);"," var offset = uiUtils.getViewportOffsetByEvent(evt);"," return {"," left: offset.left - rect.left,"," top: offset.top - rect.top"," };"," },"," getViewportOffsetByEvent: function (evt){"," var el = evt.target || evt.srcElement;"," var frameEl = domUtils.getWindow(el).frameElement;"," var offset = {"," left: evt.clientX,"," top: evt.clientY"," };"," if (frameEl && el.ownerDocument !== document) {"," var rect = uiUtils.getClientRect(frameEl);"," offset.left += rect.left;"," offset.top += rect.top;"," }"," return offset;"," },"," setGlobal: function (id, obj){"," root[id] = obj;"," return magic + '[\"' + id + '\"]';"," },"," unsetGlobal: function (id){"," delete root[id];"," },"," copyAttributes: function (tgt, src){"," var attributes = src.attributes;"," var k = attributes.length;"," while (k --) {"," var attrNode = attributes[k];"," if ( attrNode.nodeName != 'style' && attrNode.nodeName != 'class' && (!browser.ie || attrNode.specified) ) {"," tgt.setAttribute(attrNode.nodeName, attrNode.nodeValue);"," }"," }"," if (src.className) {"," domUtils.addClass(tgt,src.className);"," }"," if (src.style.cssText) {"," tgt.style.cssText += ';' + src.style.cssText;"," }"," },"," removeStyle: function (el, styleName){"," if (el.style.removeProperty) {"," el.style.removeProperty(styleName);"," } else if (el.style.removeAttribute) {"," el.style.removeAttribute(styleName);"," } else throw '';"," },"," contains: function (elA, elB){"," return elA && elB && (elA === elB ? false : ("," elA.contains ? elA.contains(elB) :"," elA.compareDocumentPosition(elB) & 16"," ));"," },"," startDrag: function (evt, callbacks,doc){"," var doc = doc || document;"," var startX = evt.clientX;"," var startY = evt.clientY;"," function handleMouseMove(evt){"," var x = evt.clientX - startX;"," var y = evt.clientY - startY;"," callbacks.ondragmove(x, y,evt);"," if (evt.stopPropagation) {"," evt.stopPropagation();"," } else {"," evt.cancelBubble = true;"," }"," }"," if (doc.addEventListener) {"," function handleMouseUp(evt){"," doc.removeEventListener('mousemove', handleMouseMove, true);"," doc.removeEventListener('mouseup', handleMouseUp, true);"," window.removeEventListener('mouseup', handleMouseUp, true);"," callbacks.ondragstop();"," }"," doc.addEventListener('mousemove', handleMouseMove, true);"," doc.addEventListener('mouseup', handleMouseUp, true);"," window.addEventListener('mouseup', handleMouseUp, true);",""," evt.preventDefault();"," } else {"," var elm = evt.srcElement;"," elm.setCapture();"," function releaseCaptrue(){"," elm.releaseCapture();"," elm.detachEvent('onmousemove', handleMouseMove);"," elm.detachEvent('onmouseup', releaseCaptrue);"," elm.detachEvent('onlosecaptrue', releaseCaptrue);"," callbacks.ondragstop();"," }"," elm.attachEvent('onmousemove', handleMouseMove);"," elm.attachEvent('onmouseup', releaseCaptrue);"," elm.attachEvent('onlosecaptrue', releaseCaptrue);"," evt.returnValue = false;"," }"," callbacks.ondragstart();"," },"," getFixedLayer: function (){"," var layer = document.getElementById('edui_fixedlayer');"," if (layer == null) {"," layer = document.createElement('div');"," layer.id = 'edui_fixedlayer';"," document.body.appendChild(layer);"," if (browser.ie && browser.version <= 8) {"," layer.style.position = 'absolute';"," bindFixedLayer();"," setTimeout(updateFixedOffset);"," } else {"," layer.style.position = 'fixed';"," }"," layer.style.left = '0';"," layer.style.top = '0';"," layer.style.width = '0';"," layer.style.height = '0';"," }"," return layer;"," },"," makeUnselectable: function (element){"," if (browser.opera || (browser.ie && browser.version < 9)) {"," element.unselectable = 'on';"," if (element.hasChildNodes()) {"," for (var i=0; i<element.childNodes.length; i++) {"," if (element.childNodes[i].nodeType == 1) {"," uiUtils.makeUnselectable(element.childNodes[i]);"," }"," }"," }"," } else {"," if (element.style.MozUserSelect !== undefined) {"," element.style.MozUserSelect = 'none';"," } else if (element.style.WebkitUserSelect !== undefined) {"," element.style.WebkitUserSelect = 'none';"," } else if (element.style.KhtmlUserSelect !== undefined) {"," element.style.KhtmlUserSelect = 'none';"," }"," }"," }"," };"," function updateFixedOffset(){"," var layer = document.getElementById('edui_fixedlayer');"," uiUtils.setViewportOffset(layer, {"," left: 0,"," top: 0"," });","// layer.style.display = 'none';","// layer.style.display = 'block';",""," //#trace: 1354","// setTimeout(updateFixedOffset);"," }"," function bindFixedLayer(adjOffset){"," domUtils.on(window, 'scroll', updateFixedOffset);"," domUtils.on(window, 'resize', baidu.editor.utils.defer(updateFixedOffset, 0, true));"," }","})();"]; +_$jscoverage['ui/uiutils.js'][1]++; +(function () { + _$jscoverage['ui/uiutils.js'][2]++; + var browser = baidu.editor.browser, domUtils = baidu.editor.dom.domUtils; + _$jscoverage['ui/uiutils.js'][5]++; + var magic = "$EDITORUI"; + _$jscoverage['ui/uiutils.js'][6]++; + var root = (window[magic] = {}); + _$jscoverage['ui/uiutils.js'][7]++; + var uidMagic = ("ID" + magic); + _$jscoverage['ui/uiutils.js'][8]++; + var uidCount = 0; + _$jscoverage['ui/uiutils.js'][10]++; + var uiUtils = (baidu.editor.ui.uiUtils = {uid: (function (obj) { + _$jscoverage['ui/uiutils.js'][12]++; + return (obj? (obj[uidMagic] || (obj[uidMagic] = (++uidCount))): (++uidCount)); +}), hook: (function (fn, callback) { + _$jscoverage['ui/uiutils.js'][15]++; + var dg; + _$jscoverage['ui/uiutils.js'][16]++; + if ((fn && fn._callbacks)) { + _$jscoverage['ui/uiutils.js'][17]++; + dg = fn; + } + else { + _$jscoverage['ui/uiutils.js'][19]++; + dg = (function () { + _$jscoverage['ui/uiutils.js'][20]++; + var q; + _$jscoverage['ui/uiutils.js'][21]++; + if (fn) { + _$jscoverage['ui/uiutils.js'][22]++; + q = fn.apply(this, arguments); + } + _$jscoverage['ui/uiutils.js'][24]++; + var callbacks = dg._callbacks; + _$jscoverage['ui/uiutils.js'][25]++; + var k = callbacks.length; + _$jscoverage['ui/uiutils.js'][26]++; + while ((k--)) { + _$jscoverage['ui/uiutils.js'][27]++; + var r = callbacks[k].apply(this, arguments); + _$jscoverage['ui/uiutils.js'][28]++; + if ((q === undefined)) { + _$jscoverage['ui/uiutils.js'][29]++; + q = r; + } +} + _$jscoverage['ui/uiutils.js'][32]++; + return q; +}); + _$jscoverage['ui/uiutils.js'][34]++; + dg._callbacks = []; + } + _$jscoverage['ui/uiutils.js'][36]++; + dg._callbacks.push(callback); + _$jscoverage['ui/uiutils.js'][37]++; + return dg; +}), createElementByHtml: (function (html) { + _$jscoverage['ui/uiutils.js'][40]++; + var el = document.createElement("div"); + _$jscoverage['ui/uiutils.js'][41]++; + el.innerHTML = html; + _$jscoverage['ui/uiutils.js'][42]++; + el = el.firstChild; + _$jscoverage['ui/uiutils.js'][43]++; + el.parentNode.removeChild(el); + _$jscoverage['ui/uiutils.js'][44]++; + return el; +}), getViewportElement: (function () { + _$jscoverage['ui/uiutils.js'][47]++; + return ((browser.ie && browser.quirks)? document.body: document.documentElement); +}), getClientRect: (function (element) { + _$jscoverage['ui/uiutils.js'][51]++; + var bcr; + _$jscoverage['ui/uiutils.js'][53]++; + try { + _$jscoverage['ui/uiutils.js'][54]++; + bcr = element.getBoundingClientRect(); + } + catch (e) { + _$jscoverage['ui/uiutils.js'][56]++; + bcr = {left: 0, top: 0, height: 0, width: 0}; + } + _$jscoverage['ui/uiutils.js'][58]++; + var rect = {left: Math.round(bcr.left), top: Math.round(bcr.top), height: Math.round((bcr.bottom - bcr.top)), width: Math.round((bcr.right - bcr.left))}; + _$jscoverage['ui/uiutils.js'][64]++; + var doc; + _$jscoverage['ui/uiutils.js'][65]++; + while ((((doc = element.ownerDocument) !== document) && (element = domUtils.getWindow(doc).frameElement))) { + _$jscoverage['ui/uiutils.js'][67]++; + bcr = element.getBoundingClientRect(); + _$jscoverage['ui/uiutils.js'][68]++; + rect.left += bcr.left; + _$jscoverage['ui/uiutils.js'][69]++; + rect.top += bcr.top; +} + _$jscoverage['ui/uiutils.js'][71]++; + rect.bottom = (rect.top + rect.height); + _$jscoverage['ui/uiutils.js'][72]++; + rect.right = (rect.left + rect.width); + _$jscoverage['ui/uiutils.js'][73]++; + return rect; +}), getViewportRect: (function () { + _$jscoverage['ui/uiutils.js'][76]++; + var viewportEl = uiUtils.getViewportElement(); + _$jscoverage['ui/uiutils.js'][77]++; + var width = ((window.innerWidth || viewportEl.clientWidth) | 0); + _$jscoverage['ui/uiutils.js'][78]++; + var height = ((window.innerHeight || viewportEl.clientHeight) | 0); + _$jscoverage['ui/uiutils.js'][79]++; + return ({left: 0, top: 0, height: height, width: width, bottom: height, right: width}); +}), setViewportOffset: (function (element, offset) { + _$jscoverage['ui/uiutils.js'][89]++; + var rect; + _$jscoverage['ui/uiutils.js'][90]++; + var fixedLayer = uiUtils.getFixedLayer(); + _$jscoverage['ui/uiutils.js'][91]++; + if ((element.parentNode === fixedLayer)) { + _$jscoverage['ui/uiutils.js'][92]++; + element.style.left = (offset.left + "px"); + _$jscoverage['ui/uiutils.js'][93]++; + element.style.top = (offset.top + "px"); + } + else { + _$jscoverage['ui/uiutils.js'][95]++; + domUtils.setViewportOffset(element, offset); + } +}), getEventOffset: (function (evt) { + _$jscoverage['ui/uiutils.js'][99]++; + var el = (evt.target || evt.srcElement); + _$jscoverage['ui/uiutils.js'][100]++; + var rect = uiUtils.getClientRect(el); + _$jscoverage['ui/uiutils.js'][101]++; + var offset = uiUtils.getViewportOffsetByEvent(evt); + _$jscoverage['ui/uiutils.js'][102]++; + return ({left: (offset.left - rect.left), top: (offset.top - rect.top)}); +}), getViewportOffsetByEvent: (function (evt) { + _$jscoverage['ui/uiutils.js'][108]++; + var el = (evt.target || evt.srcElement); + _$jscoverage['ui/uiutils.js'][109]++; + var frameEl = domUtils.getWindow(el).frameElement; + _$jscoverage['ui/uiutils.js'][110]++; + var offset = {left: evt.clientX, top: evt.clientY}; + _$jscoverage['ui/uiutils.js'][114]++; + if ((frameEl && (el.ownerDocument !== document))) { + _$jscoverage['ui/uiutils.js'][115]++; + var rect = uiUtils.getClientRect(frameEl); + _$jscoverage['ui/uiutils.js'][116]++; + offset.left += rect.left; + _$jscoverage['ui/uiutils.js'][117]++; + offset.top += rect.top; + } + _$jscoverage['ui/uiutils.js'][119]++; + return offset; +}), setGlobal: (function (id, obj) { + _$jscoverage['ui/uiutils.js'][122]++; + root[id] = obj; + _$jscoverage['ui/uiutils.js'][123]++; + return (magic + "[\"" + id + "\"]"); +}), unsetGlobal: (function (id) { + _$jscoverage['ui/uiutils.js'][126]++; + (delete root[id]); +}), copyAttributes: (function (tgt, src) { + _$jscoverage['ui/uiutils.js'][129]++; + var attributes = src.attributes; + _$jscoverage['ui/uiutils.js'][130]++; + var k = attributes.length; + _$jscoverage['ui/uiutils.js'][131]++; + while ((k--)) { + _$jscoverage['ui/uiutils.js'][132]++; + var attrNode = attributes[k]; + _$jscoverage['ui/uiutils.js'][133]++; + if (((attrNode.nodeName != "style") && (attrNode.nodeName != "class") && ((! browser.ie) || attrNode.specified))) { + _$jscoverage['ui/uiutils.js'][134]++; + tgt.setAttribute(attrNode.nodeName, attrNode.nodeValue); + } +} + _$jscoverage['ui/uiutils.js'][137]++; + if (src.className) { + _$jscoverage['ui/uiutils.js'][138]++; + domUtils.addClass(tgt, src.className); + } + _$jscoverage['ui/uiutils.js'][140]++; + if (src.style.cssText) { + _$jscoverage['ui/uiutils.js'][141]++; + tgt.style.cssText += (";" + src.style.cssText); + } +}), removeStyle: (function (el, styleName) { + _$jscoverage['ui/uiutils.js'][145]++; + if (el.style.removeProperty) { + _$jscoverage['ui/uiutils.js'][146]++; + el.style.removeProperty(styleName); + } + else { + _$jscoverage['ui/uiutils.js'][147]++; + if (el.style.removeAttribute) { + _$jscoverage['ui/uiutils.js'][148]++; + el.style.removeAttribute(styleName); + } + else { + _$jscoverage['ui/uiutils.js'][149]++; + throw ""; + } + } +}), contains: (function (elA, elB) { + _$jscoverage['ui/uiutils.js'][152]++; + return (elA && elB && ((elA === elB)? false: (elA.contains? elA.contains(elB): (elA.compareDocumentPosition(elB) & 16)))); +}), startDrag: (function (evt, callbacks, doc) { + _$jscoverage['ui/uiutils.js'][158]++; + var doc = (doc || document); + _$jscoverage['ui/uiutils.js'][159]++; + var startX = evt.clientX; + _$jscoverage['ui/uiutils.js'][160]++; + var startY = evt.clientY; + _$jscoverage['ui/uiutils.js'][161]++; + function handleMouseMove(evt) { + _$jscoverage['ui/uiutils.js'][162]++; + var x = (evt.clientX - startX); + _$jscoverage['ui/uiutils.js'][163]++; + var y = (evt.clientY - startY); + _$jscoverage['ui/uiutils.js'][164]++; + callbacks.ondragmove(x, y, evt); + _$jscoverage['ui/uiutils.js'][165]++; + if (evt.stopPropagation) { + _$jscoverage['ui/uiutils.js'][166]++; + evt.stopPropagation(); + } + else { + _$jscoverage['ui/uiutils.js'][168]++; + evt.cancelBubble = true; + } +} + _$jscoverage['ui/uiutils.js'][171]++; + if (doc.addEventListener) { + _$jscoverage['ui/uiutils.js'][172]++; + function handleMouseUp(evt) { + _$jscoverage['ui/uiutils.js'][173]++; + doc.removeEventListener("mousemove", handleMouseMove, true); + _$jscoverage['ui/uiutils.js'][174]++; + doc.removeEventListener("mouseup", handleMouseUp, true); + _$jscoverage['ui/uiutils.js'][175]++; + window.removeEventListener("mouseup", handleMouseUp, true); + _$jscoverage['ui/uiutils.js'][176]++; + callbacks.ondragstop(); +} + _$jscoverage['ui/uiutils.js'][178]++; + doc.addEventListener("mousemove", handleMouseMove, true); + _$jscoverage['ui/uiutils.js'][179]++; + doc.addEventListener("mouseup", handleMouseUp, true); + _$jscoverage['ui/uiutils.js'][180]++; + window.addEventListener("mouseup", handleMouseUp, true); + _$jscoverage['ui/uiutils.js'][182]++; + evt.preventDefault(); + } + else { + _$jscoverage['ui/uiutils.js'][184]++; + var elm = evt.srcElement; + _$jscoverage['ui/uiutils.js'][185]++; + elm.setCapture(); + _$jscoverage['ui/uiutils.js'][186]++; + function releaseCaptrue() { + _$jscoverage['ui/uiutils.js'][187]++; + elm.releaseCapture(); + _$jscoverage['ui/uiutils.js'][188]++; + elm.detachEvent("onmousemove", handleMouseMove); + _$jscoverage['ui/uiutils.js'][189]++; + elm.detachEvent("onmouseup", releaseCaptrue); + _$jscoverage['ui/uiutils.js'][190]++; + elm.detachEvent("onlosecaptrue", releaseCaptrue); + _$jscoverage['ui/uiutils.js'][191]++; + callbacks.ondragstop(); +} + _$jscoverage['ui/uiutils.js'][193]++; + elm.attachEvent("onmousemove", handleMouseMove); + _$jscoverage['ui/uiutils.js'][194]++; + elm.attachEvent("onmouseup", releaseCaptrue); + _$jscoverage['ui/uiutils.js'][195]++; + elm.attachEvent("onlosecaptrue", releaseCaptrue); + _$jscoverage['ui/uiutils.js'][196]++; + evt.returnValue = false; + } + _$jscoverage['ui/uiutils.js'][198]++; + callbacks.ondragstart(); +}), getFixedLayer: (function () { + _$jscoverage['ui/uiutils.js'][201]++; + var layer = document.getElementById("edui_fixedlayer"); + _$jscoverage['ui/uiutils.js'][202]++; + if ((layer == null)) { + _$jscoverage['ui/uiutils.js'][203]++; + layer = document.createElement("div"); + _$jscoverage['ui/uiutils.js'][204]++; + layer.id = "edui_fixedlayer"; + _$jscoverage['ui/uiutils.js'][205]++; + document.body.appendChild(layer); + _$jscoverage['ui/uiutils.js'][206]++; + if ((browser.ie && (browser.version <= 8))) { + _$jscoverage['ui/uiutils.js'][207]++; + layer.style.position = "absolute"; + _$jscoverage['ui/uiutils.js'][208]++; + bindFixedLayer(); + _$jscoverage['ui/uiutils.js'][209]++; + setTimeout(updateFixedOffset); + } + else { + _$jscoverage['ui/uiutils.js'][211]++; + layer.style.position = "fixed"; + } + _$jscoverage['ui/uiutils.js'][213]++; + layer.style.left = "0"; + _$jscoverage['ui/uiutils.js'][214]++; + layer.style.top = "0"; + _$jscoverage['ui/uiutils.js'][215]++; + layer.style.width = "0"; + _$jscoverage['ui/uiutils.js'][216]++; + layer.style.height = "0"; + } + _$jscoverage['ui/uiutils.js'][218]++; + return layer; +}), makeUnselectable: (function (element) { + _$jscoverage['ui/uiutils.js'][221]++; + if ((browser.opera || (browser.ie && (browser.version < 9)))) { + _$jscoverage['ui/uiutils.js'][222]++; + element.unselectable = "on"; + _$jscoverage['ui/uiutils.js'][223]++; + if (element.hasChildNodes()) { + _$jscoverage['ui/uiutils.js'][224]++; + for (var i = 0; (i < element.childNodes.length); (i++)) { + _$jscoverage['ui/uiutils.js'][225]++; + if ((element.childNodes[i].nodeType == 1)) { + _$jscoverage['ui/uiutils.js'][226]++; + uiUtils.makeUnselectable(element.childNodes[i]); + } +} + } + } + else { + _$jscoverage['ui/uiutils.js'][231]++; + if ((element.style.MozUserSelect !== undefined)) { + _$jscoverage['ui/uiutils.js'][232]++; + element.style.MozUserSelect = "none"; + } + else { + _$jscoverage['ui/uiutils.js'][233]++; + if ((element.style.WebkitUserSelect !== undefined)) { + _$jscoverage['ui/uiutils.js'][234]++; + element.style.WebkitUserSelect = "none"; + } + else { + _$jscoverage['ui/uiutils.js'][235]++; + if ((element.style.KhtmlUserSelect !== undefined)) { + _$jscoverage['ui/uiutils.js'][236]++; + element.style.KhtmlUserSelect = "none"; + } + } + } + } +})}); + _$jscoverage['ui/uiutils.js'][241]++; + function updateFixedOffset() { + _$jscoverage['ui/uiutils.js'][242]++; + var layer = document.getElementById("edui_fixedlayer"); + _$jscoverage['ui/uiutils.js'][243]++; + uiUtils.setViewportOffset(layer, {left: 0, top: 0}); +} + _$jscoverage['ui/uiutils.js'][253]++; + function bindFixedLayer(adjOffset) { + _$jscoverage['ui/uiutils.js'][254]++; + domUtils.on(window, "scroll", updateFixedOffset); + _$jscoverage['ui/uiutils.js'][255]++; + domUtils.on(window, "resize", baidu.editor.utils.defer(updateFixedOffset, 0, true)); +} +})(); diff --git a/_test/plugins/table.cmds.js b/_test/plugins/table.cmds.js index c532ee0a7..aca0c18e0 100644 --- a/_test/plugins/table.cmds.js +++ b/_test/plugins/table.cmds.js @@ -79,6 +79,7 @@ test('trace 3985 向下合并-拆分成行', function () { }); test('完全拆分单元格', function () { + if (ua.browser.ie&&ua.browser.ie >8)return;//todo ie9,10改range bug trace 单元格不能框选 var editor = te.obj[0]; var range = te.obj[1]; editor.setContent('

'); diff --git a/_test/testDesign/Internationalization.xmind b/_test/testDesign/Internationalization.xmind deleted file mode 100644 index c9944ed83..000000000 Binary files a/_test/testDesign/Internationalization.xmind and /dev/null differ diff --git a/_test/testDesign/Range.mm b/_test/testDesign/Range.mm deleted file mode 100644 index a2320126e..000000000 --- a/_test/testDesign/Range.mm +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_test/testDesign/attachment.xmind b/_test/testDesign/attachment.xmind deleted file mode 100644 index b47c9aa05..000000000 Binary files a/_test/testDesign/attachment.xmind and /dev/null differ diff --git a/_test/testDesign/autotypeset.xmind b/_test/testDesign/autotypeset.xmind deleted file mode 100644 index 1af893d1b..000000000 Binary files a/_test/testDesign/autotypeset.xmind and /dev/null differ diff --git a/_test/testDesign/config.xmind b/_test/testDesign/config.xmind deleted file mode 100644 index b171b5cec..000000000 Binary files a/_test/testDesign/config.xmind and /dev/null differ diff --git a/_test/testDesign/core.xmind b/_test/testDesign/core.xmind deleted file mode 100644 index 9be7cc13a..000000000 Binary files a/_test/testDesign/core.xmind and /dev/null differ diff --git a/_test/testDesign/domUtils.xmind b/_test/testDesign/domUtils.xmind deleted file mode 100644 index 38cdd2b7e..000000000 Binary files a/_test/testDesign/domUtils.xmind and /dev/null differ diff --git a/_test/testDesign/image revelant.xmind b/_test/testDesign/image revelant.xmind deleted file mode 100644 index d7f0b23e6..000000000 Binary files a/_test/testDesign/image revelant.xmind and /dev/null differ diff --git a/_test/testDesign/interlacetable.xmind b/_test/testDesign/interlacetable.xmind deleted file mode 100644 index 483c0612a..000000000 Binary files a/_test/testDesign/interlacetable.xmind and /dev/null differ diff --git a/_test/testDesign/lineheight.xmind b/_test/testDesign/lineheight.xmind deleted file mode 100644 index b52636013..000000000 Binary files a/_test/testDesign/lineheight.xmind and /dev/null differ diff --git a/_test/testDesign/regression testing.xmind b/_test/testDesign/regression testing.xmind deleted file mode 100644 index a6e5dfcd1..000000000 Binary files a/_test/testDesign/regression testing.xmind and /dev/null differ diff --git a/_test/testDesign/shortcutkeys.mm b/_test/testDesign/shortcutkeys.mm deleted file mode 100644 index f891903e3..000000000 --- a/_test/testDesign/shortcutkeys.mm +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/_test/testDesign/sorttable.xmind b/_test/testDesign/sorttable.xmind deleted file mode 100644 index e6489fa2b..000000000 Binary files a/_test/testDesign/sorttable.xmind and /dev/null differ diff --git a/_test/testDesign/table drag.xmind b/_test/testDesign/table drag.xmind deleted file mode 100644 index f0d1df469..000000000 Binary files a/_test/testDesign/table drag.xmind and /dev/null differ diff --git a/_test/testDesign/template.xmind b/_test/testDesign/template.xmind deleted file mode 100644 index 01ec53b3a..000000000 Binary files a/_test/testDesign/template.xmind and /dev/null differ diff --git a/_test/testDesign/test case.xmind b/_test/testDesign/test case.xmind deleted file mode 100644 index c1d14ed91..000000000 Binary files a/_test/testDesign/test case.xmind and /dev/null differ diff --git a/_test/testDesign/test design.xmind b/_test/testDesign/test design.xmind deleted file mode 100644 index 009d4186b..000000000 Binary files a/_test/testDesign/test design.xmind and /dev/null differ diff --git a/_test/testDesign/wordimage.xmind b/_test/testDesign/wordimage.xmind deleted file mode 100644 index 1c201e2e7..000000000 Binary files a/_test/testDesign/wordimage.xmind and /dev/null differ diff --git a/_test/testDesign/wordpress integrate.xmind b/_test/testDesign/wordpress integrate.xmind deleted file mode 100644 index 167ae8134..000000000 Binary files a/_test/testDesign/wordpress integrate.xmind and /dev/null differ diff --git a/dialogs/anchor/anchor.html b/dialogs/anchor/anchor.html old mode 100755 new mode 100644 diff --git a/dialogs/attachment/attachment.css b/dialogs/attachment/attachment.css old mode 100755 new mode 100644 diff --git a/dialogs/attachment/attachment.html b/dialogs/attachment/attachment.html old mode 100755 new mode 100644 diff --git a/dialogs/attachment/fileTypeImages/icon_chm.gif b/dialogs/attachment/fileTypeImages/icon_chm.gif old mode 100755 new mode 100644 diff --git a/dialogs/attachment/fileTypeImages/icon_default.png b/dialogs/attachment/fileTypeImages/icon_default.png old mode 100755 new mode 100644 diff --git a/dialogs/attachment/fileTypeImages/icon_doc.gif b/dialogs/attachment/fileTypeImages/icon_doc.gif old mode 100755 new mode 100644 diff --git a/dialogs/attachment/fileTypeImages/icon_exe.gif b/dialogs/attachment/fileTypeImages/icon_exe.gif old mode 100755 new mode 100644 diff --git a/dialogs/attachment/fileTypeImages/icon_mp3.gif b/dialogs/attachment/fileTypeImages/icon_mp3.gif old mode 100755 new mode 100644 diff --git a/dialogs/attachment/fileTypeImages/icon_mv.gif b/dialogs/attachment/fileTypeImages/icon_mv.gif old mode 100755 new mode 100644 diff --git a/dialogs/attachment/fileTypeImages/icon_pdf.gif b/dialogs/attachment/fileTypeImages/icon_pdf.gif old mode 100755 new mode 100644 diff --git a/dialogs/attachment/fileTypeImages/icon_ppt.gif b/dialogs/attachment/fileTypeImages/icon_ppt.gif old mode 100755 new mode 100644 diff --git a/dialogs/attachment/fileTypeImages/icon_psd.gif b/dialogs/attachment/fileTypeImages/icon_psd.gif old mode 100755 new mode 100644 diff --git a/dialogs/attachment/fileTypeImages/icon_rar.gif b/dialogs/attachment/fileTypeImages/icon_rar.gif old mode 100755 new mode 100644 diff --git a/dialogs/attachment/fileTypeImages/icon_txt.gif b/dialogs/attachment/fileTypeImages/icon_txt.gif old mode 100755 new mode 100644 diff --git a/dialogs/attachment/fileTypeImages/icon_xls.gif b/dialogs/attachment/fileTypeImages/icon_xls.gif old mode 100755 new mode 100644 diff --git a/dialogs/background/background.css b/dialogs/background/background.css old mode 100755 new mode 100644 diff --git a/dialogs/background/background.html b/dialogs/background/background.html old mode 100755 new mode 100644 diff --git a/dialogs/background/background.js b/dialogs/background/background.js old mode 100755 new mode 100644 diff --git a/dialogs/emotion/emotion.css b/dialogs/emotion/emotion.css old mode 100755 new mode 100644 diff --git a/dialogs/emotion/emotion.html b/dialogs/emotion/emotion.html old mode 100755 new mode 100644 diff --git a/dialogs/emotion/emotion.js b/dialogs/emotion/emotion.js old mode 100755 new mode 100644 diff --git a/dialogs/emotion/images/0.gif b/dialogs/emotion/images/0.gif old mode 100755 new mode 100644 diff --git a/dialogs/emotion/images/bface.gif b/dialogs/emotion/images/bface.gif old mode 100755 new mode 100644 diff --git a/dialogs/emotion/images/cface.gif b/dialogs/emotion/images/cface.gif old mode 100755 new mode 100644 diff --git a/dialogs/emotion/images/fface.gif b/dialogs/emotion/images/fface.gif old mode 100755 new mode 100644 diff --git a/dialogs/emotion/images/jxface2.gif b/dialogs/emotion/images/jxface2.gif old mode 100755 new mode 100644 diff --git a/dialogs/emotion/images/neweditor-tab-bg.png b/dialogs/emotion/images/neweditor-tab-bg.png old mode 100755 new mode 100644 diff --git a/dialogs/emotion/images/tface.gif b/dialogs/emotion/images/tface.gif old mode 100755 new mode 100644 diff --git a/dialogs/emotion/images/wface.gif b/dialogs/emotion/images/wface.gif old mode 100755 new mode 100644 diff --git a/dialogs/emotion/images/yface.gif b/dialogs/emotion/images/yface.gif old mode 100755 new mode 100644 diff --git a/dialogs/gmap/gmap.html b/dialogs/gmap/gmap.html old mode 100755 new mode 100644 diff --git a/dialogs/help/help.css b/dialogs/help/help.css old mode 100755 new mode 100644 diff --git a/dialogs/help/help.html b/dialogs/help/help.html old mode 100755 new mode 100644 diff --git a/dialogs/help/help.js b/dialogs/help/help.js old mode 100755 new mode 100644 diff --git a/dialogs/image/image.css b/dialogs/image/image.css old mode 100755 new mode 100644 diff --git a/dialogs/image/image.html b/dialogs/image/image.html old mode 100755 new mode 100644 diff --git a/dialogs/image/image.js b/dialogs/image/image.js old mode 100755 new mode 100644 diff --git a/dialogs/insertframe/insertframe.html b/dialogs/insertframe/insertframe.html old mode 100755 new mode 100644 diff --git a/dialogs/internal.js b/dialogs/internal.js old mode 100755 new mode 100644 diff --git a/dialogs/link/link.html b/dialogs/link/link.html old mode 100755 new mode 100644 diff --git a/dialogs/map/map.html b/dialogs/map/map.html old mode 100755 new mode 100644 diff --git a/dialogs/music/music.css b/dialogs/music/music.css old mode 100755 new mode 100644 diff --git a/dialogs/music/music.html b/dialogs/music/music.html old mode 100755 new mode 100644 diff --git a/dialogs/music/music.js b/dialogs/music/music.js old mode 100755 new mode 100644 diff --git a/dialogs/scrawl/images/addimg.png b/dialogs/scrawl/images/addimg.png old mode 100755 new mode 100644 diff --git a/dialogs/scrawl/images/brush.png b/dialogs/scrawl/images/brush.png old mode 100755 new mode 100644 diff --git a/dialogs/scrawl/images/delimg.png b/dialogs/scrawl/images/delimg.png old mode 100755 new mode 100644 diff --git a/dialogs/scrawl/images/delimgH.png b/dialogs/scrawl/images/delimgH.png old mode 100755 new mode 100644 diff --git a/dialogs/scrawl/images/empty.png b/dialogs/scrawl/images/empty.png old mode 100755 new mode 100644 diff --git a/dialogs/scrawl/images/emptyH.png b/dialogs/scrawl/images/emptyH.png old mode 100755 new mode 100644 diff --git a/dialogs/scrawl/images/eraser.png b/dialogs/scrawl/images/eraser.png old mode 100755 new mode 100644 diff --git a/dialogs/scrawl/images/redo.png b/dialogs/scrawl/images/redo.png old mode 100755 new mode 100644 diff --git a/dialogs/scrawl/images/redoH.png b/dialogs/scrawl/images/redoH.png old mode 100755 new mode 100644 diff --git a/dialogs/scrawl/images/scale.png b/dialogs/scrawl/images/scale.png old mode 100755 new mode 100644 diff --git a/dialogs/scrawl/images/scaleH.png b/dialogs/scrawl/images/scaleH.png old mode 100755 new mode 100644 diff --git a/dialogs/scrawl/images/size.png b/dialogs/scrawl/images/size.png old mode 100755 new mode 100644 diff --git a/dialogs/scrawl/images/undo.png b/dialogs/scrawl/images/undo.png old mode 100755 new mode 100644 diff --git a/dialogs/scrawl/images/undoH.png b/dialogs/scrawl/images/undoH.png old mode 100755 new mode 100644 diff --git a/dialogs/scrawl/scrawl.css b/dialogs/scrawl/scrawl.css old mode 100755 new mode 100644 diff --git a/dialogs/scrawl/scrawl.html b/dialogs/scrawl/scrawl.html old mode 100755 new mode 100644 diff --git a/dialogs/scrawl/scrawl.js b/dialogs/scrawl/scrawl.js old mode 100755 new mode 100644 diff --git a/dialogs/searchreplace/searchreplace.html b/dialogs/searchreplace/searchreplace.html old mode 100755 new mode 100644 diff --git a/dialogs/searchreplace/searchreplace.js b/dialogs/searchreplace/searchreplace.js old mode 100755 new mode 100644 diff --git a/dialogs/snapscreen/snapscreen.html b/dialogs/snapscreen/snapscreen.html old mode 100755 new mode 100644 diff --git a/dialogs/spechars/spechars.html b/dialogs/spechars/spechars.html old mode 100755 new mode 100644 diff --git a/dialogs/spechars/spechars.js b/dialogs/spechars/spechars.js old mode 100755 new mode 100644 diff --git a/dialogs/template/config.js b/dialogs/template/config.js old mode 100755 new mode 100644 diff --git a/dialogs/template/images/bg.gif b/dialogs/template/images/bg.gif old mode 100755 new mode 100644 diff --git a/dialogs/template/images/pre0.png b/dialogs/template/images/pre0.png old mode 100755 new mode 100644 diff --git a/dialogs/template/images/pre1.png b/dialogs/template/images/pre1.png old mode 100755 new mode 100644 diff --git a/dialogs/template/images/pre2.png b/dialogs/template/images/pre2.png old mode 100755 new mode 100644 diff --git a/dialogs/template/images/pre3.png b/dialogs/template/images/pre3.png old mode 100755 new mode 100644 diff --git a/dialogs/template/images/pre4.png b/dialogs/template/images/pre4.png old mode 100755 new mode 100644 diff --git a/dialogs/template/template.css b/dialogs/template/template.css old mode 100755 new mode 100644 diff --git a/dialogs/template/template.html b/dialogs/template/template.html old mode 100755 new mode 100644 diff --git a/dialogs/template/template.js b/dialogs/template/template.js old mode 100755 new mode 100644 diff --git a/dialogs/video/images/center_focus.jpg b/dialogs/video/images/center_focus.jpg old mode 100755 new mode 100644 diff --git a/dialogs/video/images/left_focus.jpg b/dialogs/video/images/left_focus.jpg old mode 100755 new mode 100644 diff --git a/dialogs/video/images/none_focus.jpg b/dialogs/video/images/none_focus.jpg old mode 100755 new mode 100644 diff --git a/dialogs/video/images/right_focus.jpg b/dialogs/video/images/right_focus.jpg old mode 100755 new mode 100644 diff --git a/dialogs/video/video.css b/dialogs/video/video.css old mode 100755 new mode 100644 diff --git a/dialogs/video/video.html b/dialogs/video/video.html old mode 100755 new mode 100644 diff --git a/dialogs/video/video.js b/dialogs/video/video.js old mode 100755 new mode 100644 diff --git a/dialogs/webapp/webapp.html b/dialogs/webapp/webapp.html old mode 100755 new mode 100644 diff --git a/dialogs/wordimage/fClipboard_ueditor.swf b/dialogs/wordimage/fClipboard_ueditor.swf old mode 100755 new mode 100644 diff --git a/dialogs/wordimage/imageUploader.swf b/dialogs/wordimage/imageUploader.swf old mode 100755 new mode 100644 diff --git a/dialogs/wordimage/tangram.js b/dialogs/wordimage/tangram.js old mode 100755 new mode 100644 diff --git a/dialogs/wordimage/wordimage.html b/dialogs/wordimage/wordimage.html old mode 100755 new mode 100644 diff --git a/dialogs/wordimage/wordimage.js b/dialogs/wordimage/wordimage.js old mode 100755 new mode 100644 diff --git a/lang/en/en.js b/lang/en/en.js old mode 100755 new mode 100644 diff --git a/lang/en/images/addimage.png b/lang/en/images/addimage.png old mode 100755 new mode 100644 diff --git a/lang/en/images/alldeletebtnhoverskin.png b/lang/en/images/alldeletebtnhoverskin.png old mode 100755 new mode 100644 diff --git a/lang/en/images/alldeletebtnupskin.png b/lang/en/images/alldeletebtnupskin.png old mode 100755 new mode 100644 diff --git a/lang/en/images/background.png b/lang/en/images/background.png old mode 100755 new mode 100644 diff --git a/lang/en/images/button.png b/lang/en/images/button.png old mode 100755 new mode 100644 diff --git a/lang/en/images/copy.png b/lang/en/images/copy.png old mode 100755 new mode 100644 diff --git a/lang/en/images/deletedisable.png b/lang/en/images/deletedisable.png old mode 100755 new mode 100644 diff --git a/lang/en/images/deleteenable.png b/lang/en/images/deleteenable.png old mode 100755 new mode 100644 diff --git a/lang/en/images/listbackground.png b/lang/en/images/listbackground.png old mode 100755 new mode 100644 diff --git a/lang/en/images/localimage.png b/lang/en/images/localimage.png old mode 100755 new mode 100644 diff --git a/lang/en/images/rotateleftdisable.png b/lang/en/images/rotateleftdisable.png old mode 100755 new mode 100644 diff --git a/lang/en/images/rotateleftenable.png b/lang/en/images/rotateleftenable.png old mode 100755 new mode 100644 diff --git a/lang/en/images/rotaterightdisable.png b/lang/en/images/rotaterightdisable.png old mode 100755 new mode 100644 diff --git a/lang/en/images/rotaterightenable.png b/lang/en/images/rotaterightenable.png old mode 100755 new mode 100644 diff --git a/lang/en/images/upload.png b/lang/en/images/upload.png old mode 100755 new mode 100644 diff --git a/lang/zh-cn/images/copy.png b/lang/zh-cn/images/copy.png old mode 100755 new mode 100644 diff --git a/lang/zh-cn/images/localimage.png b/lang/zh-cn/images/localimage.png old mode 100755 new mode 100644 diff --git a/lang/zh-cn/images/music.png b/lang/zh-cn/images/music.png old mode 100755 new mode 100644 diff --git a/lang/zh-cn/images/upload.png b/lang/zh-cn/images/upload.png old mode 100755 new mode 100644 diff --git a/lang/zh-cn/zh-cn.js b/lang/zh-cn/zh-cn.js old mode 100755 new mode 100644 diff --git a/net/Web.config b/net/Web.config old mode 100755 new mode 100644 diff --git a/php/Uploader.class.php b/php/Uploader.class.php old mode 100755 new mode 100644 diff --git a/themes/default/_css/autotypesetpicker.css b/themes/default/_css/autotypesetpicker.css old mode 100755 new mode 100644 diff --git a/themes/default/_css/button.css b/themes/default/_css/button.css old mode 100755 new mode 100644 diff --git a/themes/default/_css/buttonicon.css b/themes/default/_css/buttonicon.css old mode 100755 new mode 100644 diff --git a/themes/default/_css/colorbutton.css b/themes/default/_css/colorbutton.css old mode 100755 new mode 100644 diff --git a/themes/default/_css/colorpicker.css b/themes/default/_css/colorpicker.css old mode 100755 new mode 100644 diff --git a/themes/default/_css/combox.css b/themes/default/_css/combox.css old mode 100755 new mode 100644 diff --git a/themes/default/_css/contextmenu.css b/themes/default/_css/contextmenu.css old mode 100755 new mode 100644 diff --git a/themes/default/_css/dialog.css b/themes/default/_css/dialog.css old mode 100755 new mode 100644 diff --git a/themes/default/_css/editor.css b/themes/default/_css/editor.css old mode 100755 new mode 100644 diff --git a/themes/default/_css/menu.css b/themes/default/_css/menu.css old mode 100755 new mode 100644 diff --git a/themes/default/_css/menubutton.css b/themes/default/_css/menubutton.css old mode 100755 new mode 100644 diff --git a/themes/default/_css/multiMenu.css b/themes/default/_css/multiMenu.css old mode 100755 new mode 100644 diff --git a/themes/default/_css/paragraphpicker.css b/themes/default/_css/paragraphpicker.css old mode 100755 new mode 100644 diff --git a/themes/default/_css/popup.css b/themes/default/_css/popup.css old mode 100755 new mode 100644 diff --git a/themes/default/_css/separtor.css b/themes/default/_css/separtor.css old mode 100755 new mode 100644 diff --git a/themes/default/_css/splitbutton.css b/themes/default/_css/splitbutton.css old mode 100755 new mode 100644 diff --git a/themes/default/_css/tablepicker.css b/themes/default/_css/tablepicker.css old mode 100755 new mode 100644 diff --git a/themes/default/_css/toolbar.css b/themes/default/_css/toolbar.css old mode 100755 new mode 100644 diff --git a/themes/default/_css/ueditor.css b/themes/default/_css/ueditor.css old mode 100755 new mode 100644 diff --git a/themes/default/_css/uibase.css b/themes/default/_css/uibase.css old mode 100755 new mode 100644 diff --git a/themes/default/dialogbase.css b/themes/default/dialogbase.css old mode 100755 new mode 100644 diff --git a/themes/default/images/anchor.gif b/themes/default/images/anchor.gif old mode 100755 new mode 100644 diff --git a/themes/default/images/arrow.png b/themes/default/images/arrow.png old mode 100755 new mode 100644 diff --git a/themes/default/images/button-bg.gif b/themes/default/images/button-bg.gif old mode 100755 new mode 100644 diff --git a/themes/default/images/cancelbutton.gif b/themes/default/images/cancelbutton.gif old mode 100755 new mode 100644 diff --git a/themes/default/images/cursor_h.gif b/themes/default/images/cursor_h.gif old mode 100755 new mode 100644 diff --git a/themes/default/images/cursor_v.gif b/themes/default/images/cursor_v.gif old mode 100755 new mode 100644 diff --git a/themes/default/images/dialog-title-bg.png b/themes/default/images/dialog-title-bg.png old mode 100755 new mode 100644 diff --git a/themes/default/images/filescan.png b/themes/default/images/filescan.png old mode 100755 new mode 100644 diff --git a/themes/default/images/highlighted.gif b/themes/default/images/highlighted.gif old mode 100755 new mode 100644 diff --git a/themes/default/images/icons-all.gif b/themes/default/images/icons-all.gif old mode 100755 new mode 100644 diff --git a/themes/default/images/icons.gif b/themes/default/images/icons.gif old mode 100755 new mode 100644 diff --git a/themes/default/images/icons.png b/themes/default/images/icons.png old mode 100755 new mode 100644 diff --git a/themes/default/images/lock.gif b/themes/default/images/lock.gif old mode 100755 new mode 100644 diff --git a/themes/default/images/neweditor-tab-bg.png b/themes/default/images/neweditor-tab-bg.png old mode 100755 new mode 100644 diff --git a/themes/default/images/pagebreak.gif b/themes/default/images/pagebreak.gif old mode 100755 new mode 100644 diff --git a/themes/default/images/scale.png b/themes/default/images/scale.png old mode 100755 new mode 100644 diff --git a/themes/default/images/spacer.gif b/themes/default/images/spacer.gif old mode 100755 new mode 100644 diff --git a/themes/default/images/sparator_v.png b/themes/default/images/sparator_v.png old mode 100755 new mode 100644 diff --git a/themes/default/images/toolbar_bg.png b/themes/default/images/toolbar_bg.png old mode 100755 new mode 100644 diff --git a/themes/default/images/unhighlighted.gif b/themes/default/images/unhighlighted.gif old mode 100755 new mode 100644 diff --git a/themes/default/images/upload.png b/themes/default/images/upload.png old mode 100755 new mode 100644 diff --git a/themes/default/images/videologo.gif b/themes/default/images/videologo.gif old mode 100755 new mode 100644 diff --git a/themes/default/images/word.gif b/themes/default/images/word.gif old mode 100755 new mode 100644 diff --git a/themes/iframe.css b/themes/iframe.css old mode 100755 new mode 100644 diff --git a/third-party/SyntaxHighlighter/shCoreDefault.css b/third-party/SyntaxHighlighter/shCoreDefault.css old mode 100755 new mode 100644 diff --git a/third-party/codemirror/codemirror.css b/third-party/codemirror/codemirror.css old mode 100755 new mode 100644 diff --git a/third-party/codemirror/codemirror.js b/third-party/codemirror/codemirror.js old mode 100755 new mode 100644 diff --git a/third-party/snapscreen/UEditorSnapscreen.exe b/third-party/snapscreen/UEditorSnapscreen.exe old mode 100755 new mode 100644 diff --git a/ueditor.config.js b/ueditor.config.js old mode 100755 new mode 100644