ckeditor-rails 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (347) hide show
  1. data/README.md +10 -4
  2. data/ckeditor-rails.gemspec +1 -1
  3. data/lib/ckeditor-rails/version.rb +1 -1
  4. data/vendor/assets/ckeditor/ckeditor/INSTALL.html +92 -92
  5. data/vendor/assets/ckeditor/ckeditor/_samples/adobeair/application.xml +32 -32
  6. data/vendor/assets/ckeditor/ckeditor/_samples/adobeair/run.bat +9 -9
  7. data/vendor/assets/ckeditor/ckeditor/_samples/adobeair/sample.html +45 -45
  8. data/vendor/assets/ckeditor/ckeditor/_samples/ajax.html +98 -98
  9. data/vendor/assets/ckeditor/ckeditor/_samples/api.html +192 -192
  10. data/vendor/assets/ckeditor/ckeditor/_samples/api_dialog.html +198 -198
  11. data/vendor/assets/ckeditor/ckeditor/_samples/api_dialog/my_dialog.js +28 -28
  12. data/vendor/assets/ckeditor/ckeditor/_samples/asp/advanced.asp +105 -105
  13. data/vendor/assets/ckeditor/ckeditor/_samples/asp/events.asp +136 -136
  14. data/vendor/assets/ckeditor/ckeditor/_samples/asp/index.html +103 -103
  15. data/vendor/assets/ckeditor/ckeditor/_samples/asp/replace.asp +72 -72
  16. data/vendor/assets/ckeditor/ckeditor/_samples/asp/replaceall.asp +77 -77
  17. data/vendor/assets/ckeditor/ckeditor/_samples/asp/sample_posteddata.asp +46 -46
  18. data/vendor/assets/ckeditor/ckeditor/_samples/asp/standalone.asp +72 -72
  19. data/vendor/assets/ckeditor/ckeditor/_samples/assets/_posteddata.php +59 -59
  20. data/vendor/assets/ckeditor/ckeditor/_samples/assets/output_xhtml.css +204 -204
  21. data/vendor/assets/ckeditor/ckeditor/_samples/assets/parsesample.css +70 -70
  22. data/vendor/assets/ckeditor/ckeditor/_samples/assets/swfobject.js +18 -18
  23. data/vendor/assets/ckeditor/ckeditor/_samples/autogrow.html +107 -107
  24. data/vendor/assets/ckeditor/ckeditor/_samples/bbcode.html +125 -125
  25. data/vendor/assets/ckeditor/ckeditor/_samples/devtools.html +94 -94
  26. data/vendor/assets/ckeditor/ckeditor/_samples/divreplace.html +154 -154
  27. data/vendor/assets/ckeditor/ckeditor/_samples/enterkey.html +115 -115
  28. data/vendor/assets/ckeditor/ckeditor/_samples/fullpage.html +82 -82
  29. data/vendor/assets/ckeditor/ckeditor/_samples/index.html +116 -116
  30. data/vendor/assets/ckeditor/ckeditor/_samples/jqueryadapter.html +99 -99
  31. data/vendor/assets/ckeditor/ckeditor/_samples/output_for_flash.html +275 -275
  32. data/vendor/assets/ckeditor/ckeditor/_samples/output_html.html +285 -285
  33. data/vendor/assets/ckeditor/ckeditor/_samples/output_xhtml.html +177 -177
  34. data/vendor/assets/ckeditor/ckeditor/_samples/php/advanced.php +120 -120
  35. data/vendor/assets/ckeditor/ckeditor/_samples/php/events.php +153 -153
  36. data/vendor/assets/ckeditor/ckeditor/_samples/php/index.html +47 -47
  37. data/vendor/assets/ckeditor/ckeditor/_samples/php/replace.php +87 -87
  38. data/vendor/assets/ckeditor/ckeditor/_samples/php/replaceall.php +88 -88
  39. data/vendor/assets/ckeditor/ckeditor/_samples/php/standalone.php +83 -83
  40. data/vendor/assets/ckeditor/ckeditor/_samples/placeholder.html +81 -81
  41. data/vendor/assets/ckeditor/ckeditor/_samples/readonly.html +91 -91
  42. data/vendor/assets/ckeditor/ckeditor/_samples/replacebyclass.html +64 -64
  43. data/vendor/assets/ckeditor/ckeditor/_samples/replacebycode.html +97 -97
  44. data/vendor/assets/ckeditor/ckeditor/_samples/sample.css +163 -163
  45. data/vendor/assets/ckeditor/ckeditor/_samples/sample.js +65 -65
  46. data/vendor/assets/ckeditor/ckeditor/_samples/sample_posteddata.php +21 -21
  47. data/vendor/assets/ckeditor/ckeditor/_samples/sharedspaces.html +153 -153
  48. data/vendor/assets/ckeditor/ckeditor/_samples/skins.html +110 -110
  49. data/vendor/assets/ckeditor/ckeditor/_samples/stylesheetparser.html +93 -93
  50. data/vendor/assets/ckeditor/ckeditor/_samples/tableresize.html +115 -115
  51. data/vendor/assets/ckeditor/ckeditor/_samples/ui_color.html +129 -129
  52. data/vendor/assets/ckeditor/ckeditor/_samples/ui_languages.html +134 -134
  53. data/vendor/assets/ckeditor/ckeditor/_source/adapters/jquery.js +306 -306
  54. data/vendor/assets/ckeditor/ckeditor/_source/core/_bootstrap.js +87 -87
  55. data/vendor/assets/ckeditor/ckeditor/_source/core/ckeditor.js +141 -141
  56. data/vendor/assets/ckeditor/ckeditor/_source/core/ckeditor_base.js +227 -227
  57. data/vendor/assets/ckeditor/ckeditor/_source/core/ckeditor_basic.js +238 -238
  58. data/vendor/assets/ckeditor/ckeditor/_source/core/command.js +209 -209
  59. data/vendor/assets/ckeditor/ckeditor/_source/core/commanddefinition.js +129 -129
  60. data/vendor/assets/ckeditor/ckeditor/_source/core/config.js +431 -431
  61. data/vendor/assets/ckeditor/ckeditor/_source/core/dataprocessor.js +65 -65
  62. data/vendor/assets/ckeditor/ckeditor/_source/core/dom.js +20 -20
  63. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/comment.js +32 -32
  64. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/document.js +251 -251
  65. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/documentfragment.js +49 -49
  66. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/domobject.js +258 -258
  67. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/element.js +1681 -1681
  68. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/elementpath.js +119 -119
  69. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/event.js +145 -145
  70. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/node.js +695 -695
  71. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/nodelist.js +26 -26
  72. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/range.js +2032 -2032
  73. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/rangelist.js +213 -213
  74. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/text.js +128 -128
  75. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/walker.js +462 -462
  76. data/vendor/assets/ckeditor/ckeditor/_source/core/dom/window.js +96 -96
  77. data/vendor/assets/ckeditor/ckeditor/_source/core/dtd.js +266 -266
  78. data/vendor/assets/ckeditor/ckeditor/_source/core/editor.js +1059 -1059
  79. data/vendor/assets/ckeditor/ckeditor/_source/core/editor_basic.js +186 -186
  80. data/vendor/assets/ckeditor/ckeditor/_source/core/env.js +291 -291
  81. data/vendor/assets/ckeditor/ckeditor/_source/core/event.js +342 -342
  82. data/vendor/assets/ckeditor/ckeditor/_source/core/eventInfo.js +120 -120
  83. data/vendor/assets/ckeditor/ckeditor/_source/core/focusmanager.js +152 -152
  84. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser.js +224 -224
  85. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/basicwriter.js +145 -145
  86. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/cdata.js +43 -43
  87. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/comment.js +60 -60
  88. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/element.js +308 -308
  89. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/filter.js +288 -288
  90. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/fragment.js +497 -497
  91. data/vendor/assets/ckeditor/ckeditor/_source/core/htmlparser/text.js +55 -55
  92. data/vendor/assets/ckeditor/ckeditor/_source/core/lang.js +157 -157
  93. data/vendor/assets/ckeditor/ckeditor/_source/core/loader.js +240 -240
  94. data/vendor/assets/ckeditor/ckeditor/_source/core/plugindefinition.js +83 -83
  95. data/vendor/assets/ckeditor/ckeditor/_source/core/plugins.js +103 -103
  96. data/vendor/assets/ckeditor/ckeditor/_source/core/resourcemanager.js +238 -238
  97. data/vendor/assets/ckeditor/ckeditor/_source/core/scriptloader.js +180 -180
  98. data/vendor/assets/ckeditor/ckeditor/_source/core/skins.js +184 -184
  99. data/vendor/assets/ckeditor/ckeditor/_source/core/themes.js +19 -19
  100. data/vendor/assets/ckeditor/ckeditor/_source/core/tools.js +763 -763
  101. data/vendor/assets/ckeditor/ckeditor/_source/core/ui.js +128 -128
  102. data/vendor/assets/ckeditor/ckeditor/_source/lang/_languages.js +84 -84
  103. data/vendor/assets/ckeditor/ckeditor/_source/lang/_translationstatus.txt +61 -61
  104. data/vendor/assets/ckeditor/ckeditor/_source/lang/af.js +812 -812
  105. data/vendor/assets/ckeditor/ckeditor/_source/lang/ar.js +812 -812
  106. data/vendor/assets/ckeditor/ckeditor/_source/lang/bg.js +812 -812
  107. data/vendor/assets/ckeditor/ckeditor/_source/lang/bn.js +812 -812
  108. data/vendor/assets/ckeditor/ckeditor/_source/lang/bs.js +812 -812
  109. data/vendor/assets/ckeditor/ckeditor/_source/lang/ca.js +812 -812
  110. data/vendor/assets/ckeditor/ckeditor/_source/lang/cs.js +812 -812
  111. data/vendor/assets/ckeditor/ckeditor/_source/lang/cy.js +812 -812
  112. data/vendor/assets/ckeditor/ckeditor/_source/lang/da.js +812 -812
  113. data/vendor/assets/ckeditor/ckeditor/_source/lang/de.js +812 -812
  114. data/vendor/assets/ckeditor/ckeditor/_source/lang/el.js +812 -812
  115. data/vendor/assets/ckeditor/ckeditor/_source/lang/en-au.js +812 -812
  116. data/vendor/assets/ckeditor/ckeditor/_source/lang/en-ca.js +812 -812
  117. data/vendor/assets/ckeditor/ckeditor/_source/lang/en-gb.js +812 -812
  118. data/vendor/assets/ckeditor/ckeditor/_source/lang/en.js +812 -812
  119. data/vendor/assets/ckeditor/ckeditor/_source/lang/eo.js +812 -812
  120. data/vendor/assets/ckeditor/ckeditor/_source/lang/es.js +812 -812
  121. data/vendor/assets/ckeditor/ckeditor/_source/lang/et.js +812 -812
  122. data/vendor/assets/ckeditor/ckeditor/_source/lang/eu.js +812 -812
  123. data/vendor/assets/ckeditor/ckeditor/_source/lang/fa.js +812 -812
  124. data/vendor/assets/ckeditor/ckeditor/_source/lang/fi.js +812 -812
  125. data/vendor/assets/ckeditor/ckeditor/_source/lang/fo.js +812 -812
  126. data/vendor/assets/ckeditor/ckeditor/_source/lang/fr-ca.js +812 -812
  127. data/vendor/assets/ckeditor/ckeditor/_source/lang/fr.js +812 -812
  128. data/vendor/assets/ckeditor/ckeditor/_source/lang/gl.js +812 -812
  129. data/vendor/assets/ckeditor/ckeditor/_source/lang/gu.js +812 -812
  130. data/vendor/assets/ckeditor/ckeditor/_source/lang/he.js +812 -812
  131. data/vendor/assets/ckeditor/ckeditor/_source/lang/hi.js +812 -812
  132. data/vendor/assets/ckeditor/ckeditor/_source/lang/hr.js +812 -812
  133. data/vendor/assets/ckeditor/ckeditor/_source/lang/hu.js +812 -812
  134. data/vendor/assets/ckeditor/ckeditor/_source/lang/is.js +812 -812
  135. data/vendor/assets/ckeditor/ckeditor/_source/lang/it.js +812 -812
  136. data/vendor/assets/ckeditor/ckeditor/_source/lang/ja.js +812 -812
  137. data/vendor/assets/ckeditor/ckeditor/_source/lang/ka.js +812 -812
  138. data/vendor/assets/ckeditor/ckeditor/_source/lang/km.js +812 -812
  139. data/vendor/assets/ckeditor/ckeditor/_source/lang/ko.js +812 -812
  140. data/vendor/assets/ckeditor/ckeditor/_source/lang/lt.js +812 -812
  141. data/vendor/assets/ckeditor/ckeditor/_source/lang/lv.js +812 -812
  142. data/vendor/assets/ckeditor/ckeditor/_source/lang/mn.js +812 -812
  143. data/vendor/assets/ckeditor/ckeditor/_source/lang/ms.js +812 -812
  144. data/vendor/assets/ckeditor/ckeditor/_source/lang/nb.js +812 -812
  145. data/vendor/assets/ckeditor/ckeditor/_source/lang/nl.js +812 -812
  146. data/vendor/assets/ckeditor/ckeditor/_source/lang/no.js +812 -812
  147. data/vendor/assets/ckeditor/ckeditor/_source/lang/pl.js +812 -812
  148. data/vendor/assets/ckeditor/ckeditor/_source/lang/pt-br.js +811 -811
  149. data/vendor/assets/ckeditor/ckeditor/_source/lang/pt.js +812 -812
  150. data/vendor/assets/ckeditor/ckeditor/_source/lang/ro.js +812 -812
  151. data/vendor/assets/ckeditor/ckeditor/_source/lang/ru.js +812 -812
  152. data/vendor/assets/ckeditor/ckeditor/_source/lang/sk.js +812 -812
  153. data/vendor/assets/ckeditor/ckeditor/_source/lang/sl.js +812 -812
  154. data/vendor/assets/ckeditor/ckeditor/_source/lang/sr-latn.js +812 -812
  155. data/vendor/assets/ckeditor/ckeditor/_source/lang/sr.js +812 -812
  156. data/vendor/assets/ckeditor/ckeditor/_source/lang/sv.js +811 -811
  157. data/vendor/assets/ckeditor/ckeditor/_source/lang/th.js +812 -812
  158. data/vendor/assets/ckeditor/ckeditor/_source/lang/tr.js +811 -811
  159. data/vendor/assets/ckeditor/ckeditor/_source/lang/uk.js +812 -812
  160. data/vendor/assets/ckeditor/ckeditor/_source/lang/vi.js +812 -812
  161. data/vendor/assets/ckeditor/ckeditor/_source/lang/zh-cn.js +812 -812
  162. data/vendor/assets/ckeditor/ckeditor/_source/lang/zh.js +812 -812
  163. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/dialogs/a11yhelp.js +222 -222
  164. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/en.js +108 -108
  165. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/lang/he.js +216 -216
  166. data/vendor/assets/ckeditor/ckeditor/_source/plugins/a11yhelp/plugin.js +47 -47
  167. data/vendor/assets/ckeditor/ckeditor/_source/plugins/about/dialogs/about.js +76 -76
  168. data/vendor/assets/ckeditor/ckeditor/_source/plugins/about/plugin.js +24 -24
  169. data/vendor/assets/ckeditor/ckeditor/_source/plugins/adobeair/plugin.js +228 -228
  170. data/vendor/assets/ckeditor/ckeditor/_source/plugins/ajax/plugin.js +152 -152
  171. data/vendor/assets/ckeditor/ckeditor/_source/plugins/autogrow/plugin.js +88 -88
  172. data/vendor/assets/ckeditor/ckeditor/_source/plugins/basicstyles/plugin.js +101 -101
  173. data/vendor/assets/ckeditor/ckeditor/_source/plugins/bbcode/plugin.js +931 -931
  174. data/vendor/assets/ckeditor/ckeditor/_source/plugins/bidi/plugin.js +334 -334
  175. data/vendor/assets/ckeditor/ckeditor/_source/plugins/blockquote/plugin.js +305 -305
  176. data/vendor/assets/ckeditor/ckeditor/_source/plugins/button/plugin.js +290 -290
  177. data/vendor/assets/ckeditor/ckeditor/_source/plugins/clipboard/dialogs/paste.js +223 -223
  178. data/vendor/assets/ckeditor/ckeditor/_source/plugins/clipboard/plugin.js +453 -453
  179. data/vendor/assets/ckeditor/ckeditor/_source/plugins/colorbutton/plugin.js +294 -294
  180. data/vendor/assets/ckeditor/ckeditor/_source/plugins/colordialog/dialogs/colordialog.js +340 -340
  181. data/vendor/assets/ckeditor/ckeditor/_source/plugins/colordialog/plugin.js +15 -15
  182. data/vendor/assets/ckeditor/ckeditor/_source/plugins/contextmenu/plugin.js +177 -177
  183. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/lang/en.js +16 -16
  184. data/vendor/assets/ckeditor/ckeditor/_source/plugins/devtools/plugin.js +173 -173
  185. data/vendor/assets/ckeditor/ckeditor/_source/plugins/dialog/dialogDefinition.js +1166 -1166
  186. data/vendor/assets/ckeditor/ckeditor/_source/plugins/dialog/plugin.js +3289 -3289
  187. data/vendor/assets/ckeditor/ckeditor/_source/plugins/dialogadvtab/plugin.js +207 -207
  188. data/vendor/assets/ckeditor/ckeditor/_source/plugins/dialogui/plugin.js +1541 -1541
  189. data/vendor/assets/ckeditor/ckeditor/_source/plugins/div/dialogs/div.js +535 -535
  190. data/vendor/assets/ckeditor/ckeditor/_source/plugins/div/plugin.js +121 -121
  191. data/vendor/assets/ckeditor/ckeditor/_source/plugins/docprops/dialogs/docprops.js +686 -686
  192. data/vendor/assets/ckeditor/ckeditor/_source/plugins/docprops/plugin.js +22 -22
  193. data/vendor/assets/ckeditor/ckeditor/_source/plugins/domiterator/plugin.js +361 -361
  194. data/vendor/assets/ckeditor/ckeditor/_source/plugins/editingblock/plugin.js +275 -275
  195. data/vendor/assets/ckeditor/ckeditor/_source/plugins/elementspath/plugin.js +218 -218
  196. data/vendor/assets/ckeditor/ckeditor/_source/plugins/enterkey/plugin.js +413 -413
  197. data/vendor/assets/ckeditor/ckeditor/_source/plugins/entities/plugin.js +250 -250
  198. data/vendor/assets/ckeditor/ckeditor/_source/plugins/fakeobjects/plugin.js +175 -175
  199. data/vendor/assets/ckeditor/ckeditor/_source/plugins/filebrowser/plugin.js +524 -524
  200. data/vendor/assets/ckeditor/ckeditor/_source/plugins/find/dialogs/find.js +903 -903
  201. data/vendor/assets/ckeditor/ckeditor/_source/plugins/find/plugin.js +47 -47
  202. data/vendor/assets/ckeditor/ckeditor/_source/plugins/flash/dialogs/flash.js +673 -673
  203. data/vendor/assets/ckeditor/ckeditor/_source/plugins/flash/plugin.js +154 -154
  204. data/vendor/assets/ckeditor/ckeditor/_source/plugins/floatpanel/plugin.js +428 -428
  205. data/vendor/assets/ckeditor/ckeditor/_source/plugins/font/plugin.js +234 -234
  206. data/vendor/assets/ckeditor/ckeditor/_source/plugins/format/plugin.js +197 -197
  207. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/button.js +118 -118
  208. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/checkbox.js +153 -153
  209. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/form.js +177 -177
  210. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/hiddenfield.js +100 -100
  211. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/radio.js +135 -135
  212. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/select.js +558 -558
  213. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/textarea.js +114 -114
  214. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/dialogs/textfield.js +199 -199
  215. data/vendor/assets/ckeditor/ckeditor/_source/plugins/forms/plugin.js +288 -288
  216. data/vendor/assets/ckeditor/ckeditor/_source/plugins/horizontalrule/plugin.js +48 -48
  217. data/vendor/assets/ckeditor/ckeditor/_source/plugins/htmldataprocessor/plugin.js +595 -595
  218. data/vendor/assets/ckeditor/ckeditor/_source/plugins/htmlwriter/plugin.js +319 -319
  219. data/vendor/assets/ckeditor/ckeditor/_source/plugins/iframe/dialogs/iframe.js +229 -229
  220. data/vendor/assets/ckeditor/ckeditor/_source/plugins/iframe/plugin.js +87 -87
  221. data/vendor/assets/ckeditor/ckeditor/_source/plugins/iframedialog/plugin.js +188 -188
  222. data/vendor/assets/ckeditor/ckeditor/_source/plugins/image/dialogs/image.js +1406 -1406
  223. data/vendor/assets/ckeditor/ckeditor/_source/plugins/image/plugin.js +81 -81
  224. data/vendor/assets/ckeditor/ckeditor/_source/plugins/indent/plugin.js +461 -461
  225. data/vendor/assets/ckeditor/ckeditor/_source/plugins/justify/plugin.js +253 -253
  226. data/vendor/assets/ckeditor/ckeditor/_source/plugins/keystrokes/plugin.js +225 -225
  227. data/vendor/assets/ckeditor/ckeditor/_source/plugins/link/dialogs/anchor.js +144 -144
  228. data/vendor/assets/ckeditor/ckeditor/_source/plugins/link/dialogs/link.js +1424 -1424
  229. data/vendor/assets/ckeditor/ckeditor/_source/plugins/link/plugin.js +374 -374
  230. data/vendor/assets/ckeditor/ckeditor/_source/plugins/list/plugin.js +734 -734
  231. data/vendor/assets/ckeditor/ckeditor/_source/plugins/listblock/plugin.js +268 -268
  232. data/vendor/assets/ckeditor/ckeditor/_source/plugins/liststyle/dialogs/liststyle.js +225 -225
  233. data/vendor/assets/ckeditor/ckeditor/_source/plugins/liststyle/plugin.js +66 -66
  234. data/vendor/assets/ckeditor/ckeditor/_source/plugins/maximize/plugin.js +352 -352
  235. data/vendor/assets/ckeditor/ckeditor/_source/plugins/menu/plugin.js +541 -541
  236. data/vendor/assets/ckeditor/ckeditor/_source/plugins/menubutton/plugin.js +98 -98
  237. data/vendor/assets/ckeditor/ckeditor/_source/plugins/newpage/plugin.js +54 -54
  238. data/vendor/assets/ckeditor/ckeditor/_source/plugins/pagebreak/plugin.js +164 -164
  239. data/vendor/assets/ckeditor/ckeditor/_source/plugins/panel/plugin.js +403 -403
  240. data/vendor/assets/ckeditor/ckeditor/_source/plugins/panelbutton/plugin.js +144 -144
  241. data/vendor/assets/ckeditor/ckeditor/_source/plugins/pastefromword/filter/default.js +1367 -1367
  242. data/vendor/assets/ckeditor/ckeditor/_source/plugins/pastefromword/plugin.js +141 -141
  243. data/vendor/assets/ckeditor/ckeditor/_source/plugins/pastetext/dialogs/pastetext.js +67 -67
  244. data/vendor/assets/ckeditor/ckeditor/_source/plugins/pastetext/plugin.js +98 -98
  245. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/dialogs/placeholder.js +71 -71
  246. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/en.js +16 -16
  247. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/lang/he.js +16 -16
  248. data/vendor/assets/ckeditor/ckeditor/_source/plugins/placeholder/plugin.js +171 -171
  249. data/vendor/assets/ckeditor/ckeditor/_source/plugins/popup/plugin.js +64 -64
  250. data/vendor/assets/ckeditor/ckeditor/_source/plugins/preview/plugin.js +109 -109
  251. data/vendor/assets/ckeditor/ckeditor/_source/plugins/print/plugin.js +42 -42
  252. data/vendor/assets/ckeditor/ckeditor/_source/plugins/removeformat/plugin.js +185 -185
  253. data/vendor/assets/ckeditor/ckeditor/_source/plugins/resize/plugin.js +168 -168
  254. data/vendor/assets/ckeditor/ckeditor/_source/plugins/richcombo/plugin.js +381 -381
  255. data/vendor/assets/ckeditor/ckeditor/_source/plugins/save/plugin.js +56 -56
  256. data/vendor/assets/ckeditor/ckeditor/_source/plugins/scayt/dialogs/options.js +537 -537
  257. data/vendor/assets/ckeditor/ckeditor/_source/plugins/scayt/dialogs/toolbar.css +71 -71
  258. data/vendor/assets/ckeditor/ckeditor/_source/plugins/scayt/plugin.js +964 -964
  259. data/vendor/assets/ckeditor/ckeditor/_source/plugins/selection/plugin.js +1601 -1601
  260. data/vendor/assets/ckeditor/ckeditor/_source/plugins/showblocks/plugin.js +160 -160
  261. data/vendor/assets/ckeditor/ckeditor/_source/plugins/showborders/plugin.js +207 -207
  262. data/vendor/assets/ckeditor/ckeditor/_source/plugins/smiley/dialogs/smiley.js +224 -224
  263. data/vendor/assets/ckeditor/ckeditor/_source/plugins/smiley/plugin.js +94 -94
  264. data/vendor/assets/ckeditor/ckeditor/_source/plugins/sourcearea/plugin.js +209 -209
  265. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/dialogs/specialchar.js +350 -350
  266. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/lang/en.js +89 -89
  267. data/vendor/assets/ckeditor/ckeditor/_source/plugins/specialchar/plugin.js +70 -70
  268. data/vendor/assets/ckeditor/ckeditor/_source/plugins/styles/plugin.js +1696 -1696
  269. data/vendor/assets/ckeditor/ckeditor/_source/plugins/styles/styles/default.js +88 -88
  270. data/vendor/assets/ckeditor/ckeditor/_source/plugins/stylescombo/plugin.js +218 -218
  271. data/vendor/assets/ckeditor/ckeditor/_source/plugins/stylesheetparser/plugin.js +148 -148
  272. data/vendor/assets/ckeditor/ckeditor/_source/plugins/tab/plugin.js +367 -367
  273. data/vendor/assets/ckeditor/ckeditor/_source/plugins/table/dialogs/table.js +602 -602
  274. data/vendor/assets/ckeditor/ckeditor/_source/plugins/table/plugin.js +78 -78
  275. data/vendor/assets/ckeditor/ckeditor/_source/plugins/tableresize/plugin.js +443 -443
  276. data/vendor/assets/ckeditor/ckeditor/_source/plugins/tabletools/dialogs/tableCell.js +525 -525
  277. data/vendor/assets/ckeditor/ckeditor/_source/plugins/tabletools/plugin.js +1194 -1194
  278. data/vendor/assets/ckeditor/ckeditor/_source/plugins/templates/dialogs/templates.js +234 -234
  279. data/vendor/assets/ckeditor/ckeditor/_source/plugins/templates/plugin.js +99 -99
  280. data/vendor/assets/ckeditor/ckeditor/_source/plugins/templates/templates/default.js +94 -94
  281. data/vendor/assets/ckeditor/ckeditor/_source/plugins/toolbar/plugin.js +545 -545
  282. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/dialogs/uicolor.js +205 -205
  283. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/en.js +15 -15
  284. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/lang/he.js +15 -15
  285. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/plugin.js +37 -37
  286. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/yui/assets/yui.css +15 -15
  287. data/vendor/assets/ckeditor/ckeditor/_source/plugins/uicolor/yui/yui.js +71 -71
  288. data/vendor/assets/ckeditor/ckeditor/_source/plugins/undo/plugin.js +580 -580
  289. data/vendor/assets/ckeditor/ckeditor/_source/plugins/wsc/dialogs/ciframe.html +49 -49
  290. data/vendor/assets/ckeditor/ckeditor/_source/plugins/wsc/dialogs/tmpFrameset.html +52 -52
  291. data/vendor/assets/ckeditor/ckeditor/_source/plugins/wsc/dialogs/wsc.css +82 -82
  292. data/vendor/assets/ckeditor/ckeditor/_source/plugins/wsc/dialogs/wsc.js +192 -192
  293. data/vendor/assets/ckeditor/ckeditor/_source/plugins/wsc/plugin.js +33 -33
  294. data/vendor/assets/ckeditor/ckeditor/_source/plugins/wysiwygarea/plugin.js +1351 -1351
  295. data/vendor/assets/ckeditor/ckeditor/_source/plugins/xml/plugin.js +170 -170
  296. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/dialog.css +943 -943
  297. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/editor.css +25 -25
  298. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/elementspath.css +73 -73
  299. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/icons.css +366 -366
  300. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/mainui.css +203 -203
  301. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/menu.css +232 -232
  302. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/panel.css +217 -217
  303. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/presets.css +49 -49
  304. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/reset.css +84 -84
  305. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/richcombo.css +287 -287
  306. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/skin.js +236 -236
  307. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/templates.css +88 -88
  308. data/vendor/assets/ckeditor/ckeditor/_source/skins/kama/toolbar.css +407 -407
  309. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/dialog.css +844 -844
  310. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/editor.css +25 -25
  311. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/elementspath.css +74 -74
  312. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/icons.css +363 -363
  313. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/mainui.css +153 -153
  314. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/menu.css +229 -229
  315. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/panel.css +212 -212
  316. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/presets.css +49 -49
  317. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/reset.css +84 -84
  318. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/richcombo.css +309 -309
  319. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/skin.js +74 -74
  320. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/templates.css +87 -87
  321. data/vendor/assets/ckeditor/ckeditor/_source/skins/office2003/toolbar.css +522 -522
  322. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/dialog.css +861 -861
  323. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/editor.css +25 -25
  324. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/elementspath.css +74 -74
  325. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/icons.css +363 -363
  326. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/mainui.css +162 -162
  327. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/menu.css +232 -232
  328. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/panel.css +212 -212
  329. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/presets.css +50 -50
  330. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/reset.css +84 -84
  331. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/richcombo.css +302 -302
  332. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/skin.js +70 -70
  333. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/templates.css +87 -87
  334. data/vendor/assets/ckeditor/ckeditor/_source/skins/v2/toolbar.css +465 -465
  335. data/vendor/assets/ckeditor/ckeditor/_source/themes/default/theme.js +395 -395
  336. data/vendor/assets/ckeditor/ckeditor/adapters/jquery.js +6 -6
  337. data/vendor/assets/ckeditor/ckeditor/ckeditor.asp +955 -955
  338. data/vendor/assets/ckeditor/ckeditor/ckeditor.pack +211 -211
  339. data/vendor/assets/ckeditor/ckeditor/ckeditor.php +29 -29
  340. data/vendor/assets/ckeditor/ckeditor/ckeditor_basic.js +8 -8
  341. data/vendor/assets/ckeditor/ckeditor/ckeditor_basic_source.js +20 -20
  342. data/vendor/assets/ckeditor/ckeditor/ckeditor_php4.php +566 -566
  343. data/vendor/assets/ckeditor/ckeditor/ckeditor_php5.php +556 -556
  344. data/vendor/assets/ckeditor/ckeditor/config.js +11 -11
  345. data/vendor/assets/ckeditor/ckeditor/contents.css +25 -25
  346. data/vendor/assets/ckeditor/ckeditor/themes/default/theme.js +8 -8
  347. metadata +7 -9
@@ -1,22 +1,22 @@
1
- /*
2
- Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
3
- For licensing, see LICENSE.html or http://ckeditor.com/license
4
- */
5
-
6
- CKEDITOR.plugins.add( 'docprops',
7
- {
8
- init : function( editor )
9
- {
10
- var cmd = new CKEDITOR.dialogCommand( 'docProps' );
11
- // Only applicable on full page mode.
12
- cmd.modes = { wysiwyg : editor.config.fullPage };
13
- editor.addCommand( 'docProps', cmd );
14
- CKEDITOR.dialog.add( 'docProps', this.path + 'dialogs/docprops.js' );
15
-
16
- editor.ui.addButton( 'DocProps',
17
- {
18
- label : editor.lang.docprops.label,
19
- command : 'docProps'
20
- });
21
- }
22
- });
1
+ /*
2
+ Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+
6
+ CKEDITOR.plugins.add( 'docprops',
7
+ {
8
+ init : function( editor )
9
+ {
10
+ var cmd = new CKEDITOR.dialogCommand( 'docProps' );
11
+ // Only applicable on full page mode.
12
+ cmd.modes = { wysiwyg : editor.config.fullPage };
13
+ editor.addCommand( 'docProps', cmd );
14
+ CKEDITOR.dialog.add( 'docProps', this.path + 'dialogs/docprops.js' );
15
+
16
+ editor.ui.addButton( 'DocProps',
17
+ {
18
+ label : editor.lang.docprops.label,
19
+ command : 'docProps'
20
+ });
21
+ }
22
+ });
@@ -1,361 +1,361 @@
1
- /*
2
- Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
3
- For licensing, see LICENSE.html or http://ckeditor.com/license
4
- */
5
-
6
- /**
7
- * @file DOM iterator, which iterates over list items, lines and paragraphs.
8
- */
9
-
10
- CKEDITOR.plugins.add( 'domiterator' );
11
-
12
- (function()
13
- {
14
- /**
15
- * @name CKEDITOR.dom.iterator
16
- */
17
- function iterator( range )
18
- {
19
- if ( arguments.length < 1 )
20
- return;
21
-
22
- this.range = range;
23
- this.forceBrBreak = 0;
24
-
25
- // Whether include <br>s into the enlarged range.(#3730).
26
- this.enlargeBr = 1;
27
- this.enforceRealBlocks = 0;
28
-
29
- this._ || ( this._ = {} );
30
- }
31
-
32
- var beginWhitespaceRegex = /^[\r\n\t ]+$/,
33
- // Ignore bookmark nodes.(#3783)
34
- bookmarkGuard = CKEDITOR.dom.walker.bookmark( false, true ),
35
- whitespacesGuard = CKEDITOR.dom.walker.whitespaces( true ),
36
- skipGuard = function( node ) { return bookmarkGuard( node ) && whitespacesGuard( node ); };
37
-
38
- // Get a reference for the next element, bookmark nodes are skipped.
39
- function getNextSourceNode( node, startFromSibling, lastNode )
40
- {
41
- var next = node.getNextSourceNode( startFromSibling, null, lastNode );
42
- while ( !bookmarkGuard( next ) )
43
- next = next.getNextSourceNode( startFromSibling, null, lastNode );
44
- return next;
45
- }
46
-
47
- iterator.prototype = {
48
- getNextParagraph : function( blockTag )
49
- {
50
- // The block element to be returned.
51
- var block;
52
-
53
- // The range object used to identify the paragraph contents.
54
- var range;
55
-
56
- // Indicats that the current element in the loop is the last one.
57
- var isLast;
58
-
59
- // Indicate at least one of the range boundaries is inside a preformat block.
60
- var touchPre;
61
-
62
- // Instructs to cleanup remaining BRs.
63
- var removePreviousBr, removeLastBr;
64
-
65
- // This is the first iteration. Let's initialize it.
66
- if ( !this._.lastNode )
67
- {
68
- range = this.range.clone();
69
-
70
- // Shrink the range to exclude harmful "noises" (#4087, #4450, #5435).
71
- range.shrink( CKEDITOR.NODE_ELEMENT, true );
72
-
73
- touchPre = range.endContainer.hasAscendant( 'pre', true )
74
- || range.startContainer.hasAscendant( 'pre', true );
75
-
76
- range.enlarge( this.forceBrBreak && !touchPre || !this.enlargeBr ?
77
- CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS : CKEDITOR.ENLARGE_BLOCK_CONTENTS );
78
-
79
- var walker = new CKEDITOR.dom.walker( range ),
80
- ignoreBookmarkTextEvaluator = CKEDITOR.dom.walker.bookmark( true, true );
81
- // Avoid anchor inside bookmark inner text.
82
- walker.evaluator = ignoreBookmarkTextEvaluator;
83
- this._.nextNode = walker.next();
84
- // TODO: It's better to have walker.reset() used here.
85
- walker = new CKEDITOR.dom.walker( range );
86
- walker.evaluator = ignoreBookmarkTextEvaluator;
87
- var lastNode = walker.previous();
88
- this._.lastNode = lastNode.getNextSourceNode( true );
89
-
90
- // We may have an empty text node at the end of block due to [3770].
91
- // If that node is the lastNode, it would cause our logic to leak to the
92
- // next block.(#3887)
93
- if ( this._.lastNode &&
94
- this._.lastNode.type == CKEDITOR.NODE_TEXT &&
95
- !CKEDITOR.tools.trim( this._.lastNode.getText() ) &&
96
- this._.lastNode.getParent().isBlockBoundary() )
97
- {
98
- var testRange = new CKEDITOR.dom.range( range.document );
99
- testRange.moveToPosition( this._.lastNode, CKEDITOR.POSITION_AFTER_END );
100
- if ( testRange.checkEndOfBlock() )
101
- {
102
- var path = new CKEDITOR.dom.elementPath( testRange.endContainer );
103
- var lastBlock = path.block || path.blockLimit;
104
- this._.lastNode = lastBlock.getNextSourceNode( true );
105
- }
106
- }
107
-
108
- // Probably the document end is reached, we need a marker node.
109
- if ( !this._.lastNode )
110
- {
111
- this._.lastNode = this._.docEndMarker = range.document.createText( '' );
112
- this._.lastNode.insertAfter( lastNode );
113
- }
114
-
115
- // Let's reuse this variable.
116
- range = null;
117
- }
118
-
119
- var currentNode = this._.nextNode;
120
- lastNode = this._.lastNode;
121
-
122
- this._.nextNode = null;
123
- while ( currentNode )
124
- {
125
- // closeRange indicates that a paragraph boundary has been found,
126
- // so the range can be closed.
127
- var closeRange = 0,
128
- parentPre = currentNode.hasAscendant( 'pre' );
129
-
130
- // includeNode indicates that the current node is good to be part
131
- // of the range. By default, any non-element node is ok for it.
132
- var includeNode = ( currentNode.type != CKEDITOR.NODE_ELEMENT ),
133
- continueFromSibling = 0;
134
-
135
- // If it is an element node, let's check if it can be part of the
136
- // range.
137
- if ( !includeNode )
138
- {
139
- var nodeName = currentNode.getName();
140
-
141
- if ( currentNode.isBlockBoundary( this.forceBrBreak &&
142
- !parentPre && { br : 1 } ) )
143
- {
144
- // <br> boundaries must be part of the range. It will
145
- // happen only if ForceBrBreak.
146
- if ( nodeName == 'br' )
147
- includeNode = 1;
148
- else if ( !range && !currentNode.getChildCount() && nodeName != 'hr' )
149
- {
150
- // If we have found an empty block, and haven't started
151
- // the range yet, it means we must return this block.
152
- block = currentNode;
153
- isLast = currentNode.equals( lastNode );
154
- break;
155
- }
156
-
157
- // The range must finish right before the boundary,
158
- // including possibly skipped empty spaces. (#1603)
159
- if ( range )
160
- {
161
- range.setEndAt( currentNode, CKEDITOR.POSITION_BEFORE_START );
162
-
163
- // The found boundary must be set as the next one at this
164
- // point. (#1717)
165
- if ( nodeName != 'br' )
166
- this._.nextNode = currentNode;
167
- }
168
-
169
- closeRange = 1;
170
- }
171
- else
172
- {
173
- // If we have child nodes, let's check them.
174
- if ( currentNode.getFirst() )
175
- {
176
- // If we don't have a range yet, let's start it.
177
- if ( !range )
178
- {
179
- range = new CKEDITOR.dom.range( this.range.document );
180
- range.setStartAt( currentNode, CKEDITOR.POSITION_BEFORE_START );
181
- }
182
-
183
- currentNode = currentNode.getFirst();
184
- continue;
185
- }
186
- includeNode = 1;
187
- }
188
- }
189
- else if ( currentNode.type == CKEDITOR.NODE_TEXT )
190
- {
191
- // Ignore normal whitespaces (i.e. not including &nbsp; or
192
- // other unicode whitespaces) before/after a block node.
193
- if ( beginWhitespaceRegex.test( currentNode.getText() ) )
194
- includeNode = 0;
195
- }
196
-
197
- // The current node is good to be part of the range and we are
198
- // starting a new range, initialize it first.
199
- if ( includeNode && !range )
200
- {
201
- range = new CKEDITOR.dom.range( this.range.document );
202
- range.setStartAt( currentNode, CKEDITOR.POSITION_BEFORE_START );
203
- }
204
-
205
- // The last node has been found.
206
- isLast = ( ( !closeRange || includeNode ) && currentNode.equals( lastNode ) );
207
-
208
- // If we are in an element boundary, let's check if it is time
209
- // to close the range, otherwise we include the parent within it.
210
- if ( range && !closeRange )
211
- {
212
- while ( !currentNode.getNext( skipGuard ) && !isLast )
213
- {
214
- var parentNode = currentNode.getParent();
215
-
216
- if ( parentNode.isBlockBoundary( this.forceBrBreak
217
- && !parentPre && { br : 1 } ) )
218
- {
219
- closeRange = 1;
220
- includeNode = 0;
221
- isLast = isLast || ( parentNode.equals( lastNode) );
222
- // Make sure range includes bookmarks at the end of the block. (#7359)
223
- range.setEndAt( parentNode, CKEDITOR.POSITION_BEFORE_END );
224
- break;
225
- }
226
-
227
- currentNode = parentNode;
228
- includeNode = 1;
229
- isLast = ( currentNode.equals( lastNode ) );
230
- continueFromSibling = 1;
231
- }
232
- }
233
-
234
- // Now finally include the node.
235
- if ( includeNode )
236
- range.setEndAt( currentNode, CKEDITOR.POSITION_AFTER_END );
237
-
238
- currentNode = getNextSourceNode ( currentNode, continueFromSibling, lastNode );
239
- isLast = !currentNode;
240
-
241
- // We have found a block boundary. Let's close the range and move out of the
242
- // loop.
243
- if ( isLast || ( closeRange && range ) )
244
- break;
245
- }
246
-
247
- // Now, based on the processed range, look for (or create) the block to be returned.
248
- if ( !block )
249
- {
250
- // If no range has been found, this is the end.
251
- if ( !range )
252
- {
253
- this._.docEndMarker && this._.docEndMarker.remove();
254
- this._.nextNode = null;
255
- return null;
256
- }
257
-
258
- var startPath = new CKEDITOR.dom.elementPath( range.startContainer );
259
- var startBlockLimit = startPath.blockLimit,
260
- checkLimits = { div : 1, th : 1, td : 1 };
261
- block = startPath.block;
262
-
263
- if ( !block
264
- && !this.enforceRealBlocks
265
- && checkLimits[ startBlockLimit.getName() ]
266
- && range.checkStartOfBlock()
267
- && range.checkEndOfBlock() )
268
- block = startBlockLimit;
269
- else if ( !block || ( this.enforceRealBlocks && block.getName() == 'li' ) )
270
- {
271
- // Create the fixed block.
272
- block = this.range.document.createElement( blockTag || 'p' );
273
-
274
- // Move the contents of the temporary range to the fixed block.
275
- range.extractContents().appendTo( block );
276
- block.trim();
277
-
278
- // Insert the fixed block into the DOM.
279
- range.insertNode( block );
280
-
281
- removePreviousBr = removeLastBr = true;
282
- }
283
- else if ( block.getName() != 'li' )
284
- {
285
- // If the range doesn't includes the entire contents of the
286
- // block, we must split it, isolating the range in a dedicated
287
- // block.
288
- if ( !range.checkStartOfBlock() || !range.checkEndOfBlock() )
289
- {
290
- // The resulting block will be a clone of the current one.
291
- block = block.clone( false );
292
-
293
- // Extract the range contents, moving it to the new block.
294
- range.extractContents().appendTo( block );
295
- block.trim();
296
-
297
- // Split the block. At this point, the range will be in the
298
- // right position for our intents.
299
- var splitInfo = range.splitBlock();
300
-
301
- removePreviousBr = !splitInfo.wasStartOfBlock;
302
- removeLastBr = !splitInfo.wasEndOfBlock;
303
-
304
- // Insert the new block into the DOM.
305
- range.insertNode( block );
306
- }
307
- }
308
- else if ( !isLast )
309
- {
310
- // LIs are returned as is, with all their children (due to the
311
- // nested lists). But, the next node is the node right after
312
- // the current range, which could be an <li> child (nested
313
- // lists) or the next sibling <li>.
314
-
315
- this._.nextNode = ( block.equals( lastNode ) ? null : getNextSourceNode( range.getBoundaryNodes().endNode, 1, lastNode ) );
316
- }
317
- }
318
-
319
- if ( removePreviousBr )
320
- {
321
- var previousSibling = block.getPrevious();
322
- if ( previousSibling && previousSibling.type == CKEDITOR.NODE_ELEMENT )
323
- {
324
- if ( previousSibling.getName() == 'br' )
325
- previousSibling.remove();
326
- else if ( previousSibling.getLast() && previousSibling.getLast().$.nodeName.toLowerCase() == 'br' )
327
- previousSibling.getLast().remove();
328
- }
329
- }
330
-
331
- if ( removeLastBr )
332
- {
333
- var lastChild = block.getLast();
334
- if ( lastChild && lastChild.type == CKEDITOR.NODE_ELEMENT && lastChild.getName() == 'br' )
335
- {
336
- // Take care not to remove the block expanding <br> in non-IE browsers.
337
- if ( CKEDITOR.env.ie
338
- || lastChild.getPrevious( bookmarkGuard )
339
- || lastChild.getNext( bookmarkGuard ) )
340
- lastChild.remove();
341
- }
342
- }
343
-
344
- // Get a reference for the next element. This is important because the
345
- // above block can be removed or changed, so we can rely on it for the
346
- // next interation.
347
- if ( !this._.nextNode )
348
- {
349
- this._.nextNode = ( isLast || block.equals( lastNode ) ) ? null :
350
- getNextSourceNode( block, 1, lastNode );
351
- }
352
-
353
- return block;
354
- }
355
- };
356
-
357
- CKEDITOR.dom.range.prototype.createIterator = function()
358
- {
359
- return new iterator( this );
360
- };
361
- })();
1
+ /*
2
+ Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
3
+ For licensing, see LICENSE.html or http://ckeditor.com/license
4
+ */
5
+
6
+ /**
7
+ * @file DOM iterator, which iterates over list items, lines and paragraphs.
8
+ */
9
+
10
+ CKEDITOR.plugins.add( 'domiterator' );
11
+
12
+ (function()
13
+ {
14
+ /**
15
+ * @name CKEDITOR.dom.iterator
16
+ */
17
+ function iterator( range )
18
+ {
19
+ if ( arguments.length < 1 )
20
+ return;
21
+
22
+ this.range = range;
23
+ this.forceBrBreak = 0;
24
+
25
+ // Whether include <br>s into the enlarged range.(#3730).
26
+ this.enlargeBr = 1;
27
+ this.enforceRealBlocks = 0;
28
+
29
+ this._ || ( this._ = {} );
30
+ }
31
+
32
+ var beginWhitespaceRegex = /^[\r\n\t ]+$/,
33
+ // Ignore bookmark nodes.(#3783)
34
+ bookmarkGuard = CKEDITOR.dom.walker.bookmark( false, true ),
35
+ whitespacesGuard = CKEDITOR.dom.walker.whitespaces( true ),
36
+ skipGuard = function( node ) { return bookmarkGuard( node ) && whitespacesGuard( node ); };
37
+
38
+ // Get a reference for the next element, bookmark nodes are skipped.
39
+ function getNextSourceNode( node, startFromSibling, lastNode )
40
+ {
41
+ var next = node.getNextSourceNode( startFromSibling, null, lastNode );
42
+ while ( !bookmarkGuard( next ) )
43
+ next = next.getNextSourceNode( startFromSibling, null, lastNode );
44
+ return next;
45
+ }
46
+
47
+ iterator.prototype = {
48
+ getNextParagraph : function( blockTag )
49
+ {
50
+ // The block element to be returned.
51
+ var block;
52
+
53
+ // The range object used to identify the paragraph contents.
54
+ var range;
55
+
56
+ // Indicats that the current element in the loop is the last one.
57
+ var isLast;
58
+
59
+ // Indicate at least one of the range boundaries is inside a preformat block.
60
+ var touchPre;
61
+
62
+ // Instructs to cleanup remaining BRs.
63
+ var removePreviousBr, removeLastBr;
64
+
65
+ // This is the first iteration. Let's initialize it.
66
+ if ( !this._.lastNode )
67
+ {
68
+ range = this.range.clone();
69
+
70
+ // Shrink the range to exclude harmful "noises" (#4087, #4450, #5435).
71
+ range.shrink( CKEDITOR.NODE_ELEMENT, true );
72
+
73
+ touchPre = range.endContainer.hasAscendant( 'pre', true )
74
+ || range.startContainer.hasAscendant( 'pre', true );
75
+
76
+ range.enlarge( this.forceBrBreak && !touchPre || !this.enlargeBr ?
77
+ CKEDITOR.ENLARGE_LIST_ITEM_CONTENTS : CKEDITOR.ENLARGE_BLOCK_CONTENTS );
78
+
79
+ var walker = new CKEDITOR.dom.walker( range ),
80
+ ignoreBookmarkTextEvaluator = CKEDITOR.dom.walker.bookmark( true, true );
81
+ // Avoid anchor inside bookmark inner text.
82
+ walker.evaluator = ignoreBookmarkTextEvaluator;
83
+ this._.nextNode = walker.next();
84
+ // TODO: It's better to have walker.reset() used here.
85
+ walker = new CKEDITOR.dom.walker( range );
86
+ walker.evaluator = ignoreBookmarkTextEvaluator;
87
+ var lastNode = walker.previous();
88
+ this._.lastNode = lastNode.getNextSourceNode( true );
89
+
90
+ // We may have an empty text node at the end of block due to [3770].
91
+ // If that node is the lastNode, it would cause our logic to leak to the
92
+ // next block.(#3887)
93
+ if ( this._.lastNode &&
94
+ this._.lastNode.type == CKEDITOR.NODE_TEXT &&
95
+ !CKEDITOR.tools.trim( this._.lastNode.getText() ) &&
96
+ this._.lastNode.getParent().isBlockBoundary() )
97
+ {
98
+ var testRange = new CKEDITOR.dom.range( range.document );
99
+ testRange.moveToPosition( this._.lastNode, CKEDITOR.POSITION_AFTER_END );
100
+ if ( testRange.checkEndOfBlock() )
101
+ {
102
+ var path = new CKEDITOR.dom.elementPath( testRange.endContainer );
103
+ var lastBlock = path.block || path.blockLimit;
104
+ this._.lastNode = lastBlock.getNextSourceNode( true );
105
+ }
106
+ }
107
+
108
+ // Probably the document end is reached, we need a marker node.
109
+ if ( !this._.lastNode )
110
+ {
111
+ this._.lastNode = this._.docEndMarker = range.document.createText( '' );
112
+ this._.lastNode.insertAfter( lastNode );
113
+ }
114
+
115
+ // Let's reuse this variable.
116
+ range = null;
117
+ }
118
+
119
+ var currentNode = this._.nextNode;
120
+ lastNode = this._.lastNode;
121
+
122
+ this._.nextNode = null;
123
+ while ( currentNode )
124
+ {
125
+ // closeRange indicates that a paragraph boundary has been found,
126
+ // so the range can be closed.
127
+ var closeRange = 0,
128
+ parentPre = currentNode.hasAscendant( 'pre' );
129
+
130
+ // includeNode indicates that the current node is good to be part
131
+ // of the range. By default, any non-element node is ok for it.
132
+ var includeNode = ( currentNode.type != CKEDITOR.NODE_ELEMENT ),
133
+ continueFromSibling = 0;
134
+
135
+ // If it is an element node, let's check if it can be part of the
136
+ // range.
137
+ if ( !includeNode )
138
+ {
139
+ var nodeName = currentNode.getName();
140
+
141
+ if ( currentNode.isBlockBoundary( this.forceBrBreak &&
142
+ !parentPre && { br : 1 } ) )
143
+ {
144
+ // <br> boundaries must be part of the range. It will
145
+ // happen only if ForceBrBreak.
146
+ if ( nodeName == 'br' )
147
+ includeNode = 1;
148
+ else if ( !range && !currentNode.getChildCount() && nodeName != 'hr' )
149
+ {
150
+ // If we have found an empty block, and haven't started
151
+ // the range yet, it means we must return this block.
152
+ block = currentNode;
153
+ isLast = currentNode.equals( lastNode );
154
+ break;
155
+ }
156
+
157
+ // The range must finish right before the boundary,
158
+ // including possibly skipped empty spaces. (#1603)
159
+ if ( range )
160
+ {
161
+ range.setEndAt( currentNode, CKEDITOR.POSITION_BEFORE_START );
162
+
163
+ // The found boundary must be set as the next one at this
164
+ // point. (#1717)
165
+ if ( nodeName != 'br' )
166
+ this._.nextNode = currentNode;
167
+ }
168
+
169
+ closeRange = 1;
170
+ }
171
+ else
172
+ {
173
+ // If we have child nodes, let's check them.
174
+ if ( currentNode.getFirst() )
175
+ {
176
+ // If we don't have a range yet, let's start it.
177
+ if ( !range )
178
+ {
179
+ range = new CKEDITOR.dom.range( this.range.document );
180
+ range.setStartAt( currentNode, CKEDITOR.POSITION_BEFORE_START );
181
+ }
182
+
183
+ currentNode = currentNode.getFirst();
184
+ continue;
185
+ }
186
+ includeNode = 1;
187
+ }
188
+ }
189
+ else if ( currentNode.type == CKEDITOR.NODE_TEXT )
190
+ {
191
+ // Ignore normal whitespaces (i.e. not including &nbsp; or
192
+ // other unicode whitespaces) before/after a block node.
193
+ if ( beginWhitespaceRegex.test( currentNode.getText() ) )
194
+ includeNode = 0;
195
+ }
196
+
197
+ // The current node is good to be part of the range and we are
198
+ // starting a new range, initialize it first.
199
+ if ( includeNode && !range )
200
+ {
201
+ range = new CKEDITOR.dom.range( this.range.document );
202
+ range.setStartAt( currentNode, CKEDITOR.POSITION_BEFORE_START );
203
+ }
204
+
205
+ // The last node has been found.
206
+ isLast = ( ( !closeRange || includeNode ) && currentNode.equals( lastNode ) );
207
+
208
+ // If we are in an element boundary, let's check if it is time
209
+ // to close the range, otherwise we include the parent within it.
210
+ if ( range && !closeRange )
211
+ {
212
+ while ( !currentNode.getNext( skipGuard ) && !isLast )
213
+ {
214
+ var parentNode = currentNode.getParent();
215
+
216
+ if ( parentNode.isBlockBoundary( this.forceBrBreak
217
+ && !parentPre && { br : 1 } ) )
218
+ {
219
+ closeRange = 1;
220
+ includeNode = 0;
221
+ isLast = isLast || ( parentNode.equals( lastNode) );
222
+ // Make sure range includes bookmarks at the end of the block. (#7359)
223
+ range.setEndAt( parentNode, CKEDITOR.POSITION_BEFORE_END );
224
+ break;
225
+ }
226
+
227
+ currentNode = parentNode;
228
+ includeNode = 1;
229
+ isLast = ( currentNode.equals( lastNode ) );
230
+ continueFromSibling = 1;
231
+ }
232
+ }
233
+
234
+ // Now finally include the node.
235
+ if ( includeNode )
236
+ range.setEndAt( currentNode, CKEDITOR.POSITION_AFTER_END );
237
+
238
+ currentNode = getNextSourceNode ( currentNode, continueFromSibling, lastNode );
239
+ isLast = !currentNode;
240
+
241
+ // We have found a block boundary. Let's close the range and move out of the
242
+ // loop.
243
+ if ( isLast || ( closeRange && range ) )
244
+ break;
245
+ }
246
+
247
+ // Now, based on the processed range, look for (or create) the block to be returned.
248
+ if ( !block )
249
+ {
250
+ // If no range has been found, this is the end.
251
+ if ( !range )
252
+ {
253
+ this._.docEndMarker && this._.docEndMarker.remove();
254
+ this._.nextNode = null;
255
+ return null;
256
+ }
257
+
258
+ var startPath = new CKEDITOR.dom.elementPath( range.startContainer );
259
+ var startBlockLimit = startPath.blockLimit,
260
+ checkLimits = { div : 1, th : 1, td : 1 };
261
+ block = startPath.block;
262
+
263
+ if ( !block
264
+ && !this.enforceRealBlocks
265
+ && checkLimits[ startBlockLimit.getName() ]
266
+ && range.checkStartOfBlock()
267
+ && range.checkEndOfBlock() )
268
+ block = startBlockLimit;
269
+ else if ( !block || ( this.enforceRealBlocks && block.getName() == 'li' ) )
270
+ {
271
+ // Create the fixed block.
272
+ block = this.range.document.createElement( blockTag || 'p' );
273
+
274
+ // Move the contents of the temporary range to the fixed block.
275
+ range.extractContents().appendTo( block );
276
+ block.trim();
277
+
278
+ // Insert the fixed block into the DOM.
279
+ range.insertNode( block );
280
+
281
+ removePreviousBr = removeLastBr = true;
282
+ }
283
+ else if ( block.getName() != 'li' )
284
+ {
285
+ // If the range doesn't includes the entire contents of the
286
+ // block, we must split it, isolating the range in a dedicated
287
+ // block.
288
+ if ( !range.checkStartOfBlock() || !range.checkEndOfBlock() )
289
+ {
290
+ // The resulting block will be a clone of the current one.
291
+ block = block.clone( false );
292
+
293
+ // Extract the range contents, moving it to the new block.
294
+ range.extractContents().appendTo( block );
295
+ block.trim();
296
+
297
+ // Split the block. At this point, the range will be in the
298
+ // right position for our intents.
299
+ var splitInfo = range.splitBlock();
300
+
301
+ removePreviousBr = !splitInfo.wasStartOfBlock;
302
+ removeLastBr = !splitInfo.wasEndOfBlock;
303
+
304
+ // Insert the new block into the DOM.
305
+ range.insertNode( block );
306
+ }
307
+ }
308
+ else if ( !isLast )
309
+ {
310
+ // LIs are returned as is, with all their children (due to the
311
+ // nested lists). But, the next node is the node right after
312
+ // the current range, which could be an <li> child (nested
313
+ // lists) or the next sibling <li>.
314
+
315
+ this._.nextNode = ( block.equals( lastNode ) ? null : getNextSourceNode( range.getBoundaryNodes().endNode, 1, lastNode ) );
316
+ }
317
+ }
318
+
319
+ if ( removePreviousBr )
320
+ {
321
+ var previousSibling = block.getPrevious();
322
+ if ( previousSibling && previousSibling.type == CKEDITOR.NODE_ELEMENT )
323
+ {
324
+ if ( previousSibling.getName() == 'br' )
325
+ previousSibling.remove();
326
+ else if ( previousSibling.getLast() && previousSibling.getLast().$.nodeName.toLowerCase() == 'br' )
327
+ previousSibling.getLast().remove();
328
+ }
329
+ }
330
+
331
+ if ( removeLastBr )
332
+ {
333
+ var lastChild = block.getLast();
334
+ if ( lastChild && lastChild.type == CKEDITOR.NODE_ELEMENT && lastChild.getName() == 'br' )
335
+ {
336
+ // Take care not to remove the block expanding <br> in non-IE browsers.
337
+ if ( CKEDITOR.env.ie
338
+ || lastChild.getPrevious( bookmarkGuard )
339
+ || lastChild.getNext( bookmarkGuard ) )
340
+ lastChild.remove();
341
+ }
342
+ }
343
+
344
+ // Get a reference for the next element. This is important because the
345
+ // above block can be removed or changed, so we can rely on it for the
346
+ // next interation.
347
+ if ( !this._.nextNode )
348
+ {
349
+ this._.nextNode = ( isLast || block.equals( lastNode ) ) ? null :
350
+ getNextSourceNode( block, 1, lastNode );
351
+ }
352
+
353
+ return block;
354
+ }
355
+ };
356
+
357
+ CKEDITOR.dom.range.prototype.createIterator = function()
358
+ {
359
+ return new iterator( this );
360
+ };
361
+ })();